isdn: whitespace coding style cleanup
authorJoe Perches <joe@perches.com>
Mon, 20 Feb 2012 03:52:38 +0000 (19:52 -0800)
committerJoe Perches <joe@perches.com>
Tue, 21 Feb 2012 17:04:01 +0000 (09:04 -0800)
isdn source code uses a not-current coding style.

Update the coding style used on a per-line basis
so that git diff -w shows only elided blank lines
at EOF.

Done with emacs and some scripts and some typing.

Built x86 allyesconfig.
No detected change in objdump -d or size.

Signed-off-by: Joe Perches <joe@perches.com>
314 files changed:
drivers/isdn/act2000/act2000.h
drivers/isdn/act2000/act2000_isa.c
drivers/isdn/act2000/act2000_isa.h
drivers/isdn/act2000/capi.c
drivers/isdn/act2000/capi.h
drivers/isdn/act2000/module.c
drivers/isdn/capi/capi.c
drivers/isdn/capi/capidrv.c
drivers/isdn/capi/capidrv.h
drivers/isdn/capi/capilib.c
drivers/isdn/capi/capiutil.c
drivers/isdn/capi/kcapi.c
drivers/isdn/capi/kcapi.h
drivers/isdn/capi/kcapi_proc.c
drivers/isdn/divert/divert_init.c
drivers/isdn/divert/divert_procfs.c
drivers/isdn/divert/isdn_divert.c
drivers/isdn/divert/isdn_divert.h
drivers/isdn/gigaset/asyncdata.c
drivers/isdn/gigaset/bas-gigaset.c
drivers/isdn/gigaset/capi.c
drivers/isdn/gigaset/common.c
drivers/isdn/gigaset/ev-layer.c
drivers/isdn/gigaset/gigaset.h
drivers/isdn/gigaset/i4l.c
drivers/isdn/gigaset/interface.c
drivers/isdn/gigaset/isocdata.c
drivers/isdn/gigaset/proc.c
drivers/isdn/gigaset/ser-gigaset.c
drivers/isdn/gigaset/usb-gigaset.c
drivers/isdn/hardware/avm/avm_cs.c
drivers/isdn/hardware/avm/avmcard.h
drivers/isdn/hardware/avm/b1.c
drivers/isdn/hardware/avm/b1dma.c
drivers/isdn/hardware/avm/b1isa.c
drivers/isdn/hardware/avm/b1pci.c
drivers/isdn/hardware/avm/b1pcmcia.c
drivers/isdn/hardware/avm/c4.c
drivers/isdn/hardware/avm/t1isa.c
drivers/isdn/hardware/avm/t1pci.c
drivers/isdn/hardware/eicon/capi20.h
drivers/isdn/hardware/eicon/capidtmf.c
drivers/isdn/hardware/eicon/capidtmf.h
drivers/isdn/hardware/eicon/capifunc.c
drivers/isdn/hardware/eicon/capifunc.h
drivers/isdn/hardware/eicon/capimain.c
drivers/isdn/hardware/eicon/cardtype.h
drivers/isdn/hardware/eicon/cp_vers.h
drivers/isdn/hardware/eicon/dadapter.c
drivers/isdn/hardware/eicon/dadapter.h
drivers/isdn/hardware/eicon/debug.c
drivers/isdn/hardware/eicon/debug_if.h
drivers/isdn/hardware/eicon/debuglib.c
drivers/isdn/hardware/eicon/debuglib.h
drivers/isdn/hardware/eicon/dfifo.h
drivers/isdn/hardware/eicon/di.c
drivers/isdn/hardware/eicon/di.h
drivers/isdn/hardware/eicon/di_dbg.h
drivers/isdn/hardware/eicon/di_defs.h
drivers/isdn/hardware/eicon/did_vers.h
drivers/isdn/hardware/eicon/diddfunc.c
drivers/isdn/hardware/eicon/diva.c
drivers/isdn/hardware/eicon/diva_didd.c
drivers/isdn/hardware/eicon/diva_dma.c
drivers/isdn/hardware/eicon/diva_dma.h
drivers/isdn/hardware/eicon/diva_pci.h
drivers/isdn/hardware/eicon/divacapi.h
drivers/isdn/hardware/eicon/divamnt.c
drivers/isdn/hardware/eicon/divasfunc.c
drivers/isdn/hardware/eicon/divasi.c
drivers/isdn/hardware/eicon/divasmain.c
drivers/isdn/hardware/eicon/divasproc.c
drivers/isdn/hardware/eicon/divasync.h
drivers/isdn/hardware/eicon/dqueue.c
drivers/isdn/hardware/eicon/dqueue.h
drivers/isdn/hardware/eicon/dsp_defs.h
drivers/isdn/hardware/eicon/dsp_tst.h
drivers/isdn/hardware/eicon/dspdids.h
drivers/isdn/hardware/eicon/dsrv4bri.h
drivers/isdn/hardware/eicon/dsrv_bri.h
drivers/isdn/hardware/eicon/dsrv_pri.h
drivers/isdn/hardware/eicon/entity.h
drivers/isdn/hardware/eicon/helpers.h
drivers/isdn/hardware/eicon/idifunc.c
drivers/isdn/hardware/eicon/io.c
drivers/isdn/hardware/eicon/io.h
drivers/isdn/hardware/eicon/istream.c
drivers/isdn/hardware/eicon/kst_ifc.h
drivers/isdn/hardware/eicon/maintidi.c
drivers/isdn/hardware/eicon/maintidi.h
drivers/isdn/hardware/eicon/man_defs.h
drivers/isdn/hardware/eicon/mdm_msg.h
drivers/isdn/hardware/eicon/message.c
drivers/isdn/hardware/eicon/mi_pc.h
drivers/isdn/hardware/eicon/mntfunc.c
drivers/isdn/hardware/eicon/os_4bri.c
drivers/isdn/hardware/eicon/os_4bri.h
drivers/isdn/hardware/eicon/os_bri.c
drivers/isdn/hardware/eicon/os_bri.h
drivers/isdn/hardware/eicon/os_capi.h
drivers/isdn/hardware/eicon/os_pri.c
drivers/isdn/hardware/eicon/os_pri.h
drivers/isdn/hardware/eicon/pc.h
drivers/isdn/hardware/eicon/pc_init.h
drivers/isdn/hardware/eicon/pc_maint.h
drivers/isdn/hardware/eicon/pkmaint.h
drivers/isdn/hardware/eicon/platform.h
drivers/isdn/hardware/eicon/pr_pc.h
drivers/isdn/hardware/eicon/s_4bri.c
drivers/isdn/hardware/eicon/s_bri.c
drivers/isdn/hardware/eicon/s_pri.c
drivers/isdn/hardware/eicon/sdp_hdr.h
drivers/isdn/hardware/eicon/um_idi.c
drivers/isdn/hardware/eicon/um_idi.h
drivers/isdn/hardware/eicon/xdi_adapter.h
drivers/isdn/hardware/eicon/xdi_msg.h
drivers/isdn/hardware/eicon/xdi_vers.h
drivers/isdn/hardware/mISDN/avmfritz.c
drivers/isdn/hardware/mISDN/hfc_multi.h
drivers/isdn/hardware/mISDN/hfc_multi_8xx.h
drivers/isdn/hardware/mISDN/hfc_pci.h
drivers/isdn/hardware/mISDN/hfcmulti.c
drivers/isdn/hardware/mISDN/hfcpci.c
drivers/isdn/hardware/mISDN/hfcsusb.c
drivers/isdn/hardware/mISDN/hfcsusb.h
drivers/isdn/hardware/mISDN/iohelper.h
drivers/isdn/hardware/mISDN/isar.h
drivers/isdn/hardware/mISDN/mISDNinfineon.c
drivers/isdn/hardware/mISDN/mISDNipac.c
drivers/isdn/hardware/mISDN/mISDNisar.c
drivers/isdn/hardware/mISDN/netjet.c
drivers/isdn/hardware/mISDN/netjet.h
drivers/isdn/hardware/mISDN/speedfax.c
drivers/isdn/hardware/mISDN/w6692.c
drivers/isdn/hisax/amd7930_fn.c
drivers/isdn/hisax/arcofi.c
drivers/isdn/hisax/arcofi.h
drivers/isdn/hisax/asuscom.c
drivers/isdn/hisax/avm_a1.c
drivers/isdn/hisax/avm_a1p.c
drivers/isdn/hisax/avm_pci.c
drivers/isdn/hisax/avma1_cs.c
drivers/isdn/hisax/bkm_a4t.c
drivers/isdn/hisax/bkm_a8.c
drivers/isdn/hisax/bkm_ax.h
drivers/isdn/hisax/callc.c
drivers/isdn/hisax/config.c
drivers/isdn/hisax/diva.c
drivers/isdn/hisax/elsa.c
drivers/isdn/hisax/elsa_cs.c
drivers/isdn/hisax/elsa_ser.c
drivers/isdn/hisax/enternow_pci.c
drivers/isdn/hisax/fsm.c
drivers/isdn/hisax/fsm.h
drivers/isdn/hisax/gazel.c
drivers/isdn/hisax/hfc4s8s_l1.c
drivers/isdn/hisax/hfc4s8s_l1.h
drivers/isdn/hisax/hfc_2bds0.c
drivers/isdn/hisax/hfc_2bds0.h
drivers/isdn/hisax/hfc_2bs0.c
drivers/isdn/hisax/hfc_2bs0.h
drivers/isdn/hisax/hfc_pci.c
drivers/isdn/hisax/hfc_pci.h
drivers/isdn/hisax/hfc_sx.c
drivers/isdn/hisax/hfc_sx.h
drivers/isdn/hisax/hfc_usb.c
drivers/isdn/hisax/hfc_usb.h
drivers/isdn/hisax/hfcscard.c
drivers/isdn/hisax/hisax.h
drivers/isdn/hisax/hisax_cfg.h
drivers/isdn/hisax/hisax_debug.h
drivers/isdn/hisax/hisax_fcpcipnp.c
drivers/isdn/hisax/hisax_fcpcipnp.h
drivers/isdn/hisax/hisax_if.h
drivers/isdn/hisax/hisax_isac.c
drivers/isdn/hisax/hscx.c
drivers/isdn/hisax/hscx.h
drivers/isdn/hisax/hscx_irq.c
drivers/isdn/hisax/icc.c
drivers/isdn/hisax/icc.h
drivers/isdn/hisax/ipac.h
drivers/isdn/hisax/ipacx.c
drivers/isdn/hisax/isac.c
drivers/isdn/hisax/isac.h
drivers/isdn/hisax/isar.c
drivers/isdn/hisax/isar.h
drivers/isdn/hisax/isdnl1.c
drivers/isdn/hisax/isdnl2.c
drivers/isdn/hisax/isdnl2.h
drivers/isdn/hisax/isdnl3.c
drivers/isdn/hisax/isdnl3.h
drivers/isdn/hisax/isurf.c
drivers/isdn/hisax/ix1_micro.c
drivers/isdn/hisax/jade.c
drivers/isdn/hisax/jade.h
drivers/isdn/hisax/jade_irq.c
drivers/isdn/hisax/l3_1tr6.c
drivers/isdn/hisax/l3dss1.c
drivers/isdn/hisax/l3dss1.h
drivers/isdn/hisax/l3ni1.c
drivers/isdn/hisax/l3ni1.h
drivers/isdn/hisax/lmgr.c
drivers/isdn/hisax/mic.c
drivers/isdn/hisax/netjet.c
drivers/isdn/hisax/netjet.h
drivers/isdn/hisax/niccy.c
drivers/isdn/hisax/nj_s.c
drivers/isdn/hisax/nj_u.c
drivers/isdn/hisax/q931.c
drivers/isdn/hisax/s0box.c
drivers/isdn/hisax/saphir.c
drivers/isdn/hisax/sedlbauer.c
drivers/isdn/hisax/sedlbauer_cs.c
drivers/isdn/hisax/sportster.c
drivers/isdn/hisax/st5481.h
drivers/isdn/hisax/st5481_b.c
drivers/isdn/hisax/st5481_d.c
drivers/isdn/hisax/st5481_init.c
drivers/isdn/hisax/st5481_usb.c
drivers/isdn/hisax/tei.c
drivers/isdn/hisax/teleint.c
drivers/isdn/hisax/teles0.c
drivers/isdn/hisax/teles3.c
drivers/isdn/hisax/teles_cs.c
drivers/isdn/hisax/telespci.c
drivers/isdn/hisax/w6692.c
drivers/isdn/hisax/w6692.h
drivers/isdn/hysdn/boardergo.c
drivers/isdn/hysdn/boardergo.h
drivers/isdn/hysdn/hycapi.c
drivers/isdn/hysdn/hysdn_boot.c
drivers/isdn/hysdn/hysdn_defs.h
drivers/isdn/hysdn/hysdn_init.c
drivers/isdn/hysdn/hysdn_net.c
drivers/isdn/hysdn/hysdn_pof.h
drivers/isdn/hysdn/hysdn_procconf.c
drivers/isdn/hysdn/hysdn_proclog.c
drivers/isdn/hysdn/hysdn_sched.c
drivers/isdn/hysdn/ince1pc.h
drivers/isdn/i4l/isdn_audio.c
drivers/isdn/i4l/isdn_bsdcomp.c
drivers/isdn/i4l/isdn_common.c
drivers/isdn/i4l/isdn_common.h
drivers/isdn/i4l/isdn_concap.c
drivers/isdn/i4l/isdn_concap.h
drivers/isdn/i4l/isdn_net.c
drivers/isdn/i4l/isdn_net.h
drivers/isdn/i4l/isdn_ppp.c
drivers/isdn/i4l/isdn_ppp.h
drivers/isdn/i4l/isdn_tty.c
drivers/isdn/i4l/isdn_tty.h
drivers/isdn/i4l/isdn_ttyfax.c
drivers/isdn/i4l/isdn_ttyfax.h
drivers/isdn/i4l/isdn_v110.c
drivers/isdn/i4l/isdn_v110.h
drivers/isdn/i4l/isdn_x25iface.c
drivers/isdn/i4l/isdn_x25iface.h
drivers/isdn/i4l/isdnhdlc.c
drivers/isdn/icn/icn.c
drivers/isdn/icn/icn.h
drivers/isdn/isdnloop/isdnloop.c
drivers/isdn/isdnloop/isdnloop.h
drivers/isdn/mISDN/clock.c
drivers/isdn/mISDN/core.c
drivers/isdn/mISDN/core.h
drivers/isdn/mISDN/dsp.h
drivers/isdn/mISDN/dsp_audio.c
drivers/isdn/mISDN/dsp_biquad.h
drivers/isdn/mISDN/dsp_blowfish.c
drivers/isdn/mISDN/dsp_cmx.c
drivers/isdn/mISDN/dsp_core.c
drivers/isdn/mISDN/dsp_dtmf.c
drivers/isdn/mISDN/dsp_ecdis.h
drivers/isdn/mISDN/dsp_hwec.c
drivers/isdn/mISDN/dsp_hwec.h
drivers/isdn/mISDN/dsp_pipeline.c
drivers/isdn/mISDN/dsp_tones.c
drivers/isdn/mISDN/fsm.c
drivers/isdn/mISDN/hwchannel.c
drivers/isdn/mISDN/l1oip.h
drivers/isdn/mISDN/l1oip_codec.c
drivers/isdn/mISDN/l1oip_core.c
drivers/isdn/mISDN/layer1.c
drivers/isdn/mISDN/layer1.h
drivers/isdn/mISDN/layer2.c
drivers/isdn/mISDN/layer2.h
drivers/isdn/mISDN/socket.c
drivers/isdn/mISDN/stack.c
drivers/isdn/mISDN/tei.c
drivers/isdn/mISDN/timerdev.c
drivers/isdn/pcbit/callbacks.c
drivers/isdn/pcbit/callbacks.h
drivers/isdn/pcbit/capi.c
drivers/isdn/pcbit/capi.h
drivers/isdn/pcbit/drv.c
drivers/isdn/pcbit/edss1.c
drivers/isdn/pcbit/edss1.h
drivers/isdn/pcbit/layer2.c
drivers/isdn/pcbit/layer2.h
drivers/isdn/pcbit/module.c
drivers/isdn/pcbit/pcbit.h
drivers/isdn/sc/card.h
drivers/isdn/sc/command.c
drivers/isdn/sc/event.c
drivers/isdn/sc/hardware.h
drivers/isdn/sc/init.c
drivers/isdn/sc/interrupt.c
drivers/isdn/sc/ioctl.c
drivers/isdn/sc/message.c
drivers/isdn/sc/message.h
drivers/isdn/sc/packet.c
drivers/isdn/sc/scioc.h
drivers/isdn/sc/shmem.c
drivers/isdn/sc/timer.c

index 88c9423..321d437 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Fritz Elfert
  * Copyright    by Fritz Elfert      <fritz@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 /* Struct for adding new cards */
 typedef struct act2000_cdef {
        int bus;
-        int port;
-        int irq;
-        char id[10];
+       int port;
+       int irq;
+       char id[10];
 } act2000_cdef;
 
 /* Struct for downloading firmware */
 typedef struct act2000_ddef {
-        int length;             /* Length of code */
-        char __user *buffer;    /* Ptr. to code   */
+       int length;             /* Length of code */
+       char __user *buffer;    /* Ptr. to code   */
 } act2000_ddef;
 
 typedef struct act2000_fwid {
-        char isdn[4];
-        char revlen[2];
-        char revision[504];
+       char isdn[4];
+       char revlen[2];
+       char revision[504];
 } act2000_fwid;
 
 #if defined(__KERNEL__) || defined(__DEBUGVAR__)
@@ -128,8 +128,8 @@ typedef struct act2000_chan {
 
 typedef struct msn_entry {
        char eaz;
-        char msn[16];
-        struct msn_entry * next;
+       char msn[16];
+       struct msn_entry *next;
 } msn_entry;
 
 typedef struct irq_data_isa {
@@ -183,17 +183,17 @@ typedef struct act2000_card {
 
 static inline void act2000_schedule_tx(act2000_card *card)
 {
-        schedule_work(&card->snd_tq);
+       schedule_work(&card->snd_tq);
 }
 
 static inline void act2000_schedule_rx(act2000_card *card)
 {
-        schedule_work(&card->rcv_tq);
+       schedule_work(&card->rcv_tq);
 }
 
 static inline void act2000_schedule_poll(act2000_card *card)
 {
-        schedule_work(&card->poll_tq);
+       schedule_work(&card->poll_tq);
 }
 
 extern char *act2000_find_eaz(act2000_card *, char);
index fea5b78..b5fad29 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Fritz Elfert
  * Copyright    by Fritz Elfert      <fritz@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 static int
 act2000_isa_reset(unsigned short portbase)
 {
-        unsigned char reg;
-        int i;
-        int found;
-        int serial = 0;
-
-        found = 0;
-        if ((reg = inb(portbase + ISA_COR)) != 0xff) {
-                outb(reg | ISA_COR_RESET, portbase + ISA_COR);
-                mdelay(10);
-                outb(reg, portbase + ISA_COR);
-                mdelay(10);
-
-                for (i = 0; i < 16; i++) {
-                        if (inb(portbase + ISA_ISR) & ISA_ISR_SERIAL)
-                                serial |= 0x10000;
-                        serial >>= 1;
-                }
-                if (serial == ISA_SER_ID)
-                        found++;
-        }
-        return found;
+       unsigned char reg;
+       int i;
+       int found;
+       int serial = 0;
+
+       found = 0;
+       if ((reg = inb(portbase + ISA_COR)) != 0xff) {
+               outb(reg | ISA_COR_RESET, portbase + ISA_COR);
+               mdelay(10);
+               outb(reg, portbase + ISA_COR);
+               mdelay(10);
+
+               for (i = 0; i < 16; i++) {
+                       if (inb(portbase + ISA_ISR) & ISA_ISR_SERIAL)
+                               serial |= 0x10000;
+                       serial >>= 1;
+               }
+               if (serial == ISA_SER_ID)
+                       found++;
+       }
+       return found;
 }
 
 int
 act2000_isa_detect(unsigned short portbase)
 {
-        int ret = 0;
+       int ret = 0;
 
        if (request_region(portbase, ACT2000_PORTLEN, "act2000isa")) {
-                ret = act2000_isa_reset(portbase);
+               ret = act2000_isa_reset(portbase);
                release_region(portbase, ISA_REGION);
        }
-        return ret;
+       return ret;
 }
 
 static irqreturn_t
 act2000_isa_interrupt(int dummy, void *dev_id)
 {
-        act2000_card *card = dev_id;
-        u_char istatus;
+       act2000_card *card = dev_id;
+       u_char istatus;
 
-        istatus = (inb(ISA_PORT_ISR) & 0x07);
-        if (istatus & ISA_ISR_OUT) {
-                /* RX fifo has data */
+       istatus = (inb(ISA_PORT_ISR) & 0x07);
+       if (istatus & ISA_ISR_OUT) {
+               /* RX fifo has data */
                istatus &= ISA_ISR_OUT_MASK;
                outb(0, ISA_PORT_SIS);
                act2000_isa_receive(card);
                outb(ISA_SIS_INT, ISA_PORT_SIS);
-        }
-        if (istatus & ISA_ISR_ERR) {
-                /* Error Interrupt */
+       }
+       if (istatus & ISA_ISR_ERR) {
+               /* Error Interrupt */
                istatus &= ISA_ISR_ERR_MASK;
-                printk(KERN_WARNING "act2000: errIRQ\n");
-        }
+               printk(KERN_WARNING "act2000: errIRQ\n");
+       }
        if (istatus)
                printk(KERN_DEBUG "act2000: ?IRQ %d %02x\n", card->irq, istatus);
        return IRQ_HANDLED;
 }
 
 static void
-act2000_isa_select_irq(act2000_card * card)
+act2000_isa_select_irq(act2000_card *card)
 {
        unsigned char reg;
 
        reg = (inb(ISA_PORT_COR) & ~ISA_COR_IRQOFF) | ISA_COR_PERR;
        switch (card->irq) {
-               case 3:
-                       reg = ISA_COR_IRQ03;
-                       break;
-               case 5:
-                       reg = ISA_COR_IRQ05;
-                       break;
-               case 7:
-                       reg = ISA_COR_IRQ07;
-                       break;
-               case 10:
-                       reg = ISA_COR_IRQ10;
-                       break;
-               case 11:
-                       reg = ISA_COR_IRQ11;
-                       break;
-               case 12:
-                       reg = ISA_COR_IRQ12;
-                       break;
-               case 15:
-                       reg = ISA_COR_IRQ15;
-                       break;
+       case 3:
+               reg = ISA_COR_IRQ03;
+               break;
+       case 5:
+               reg = ISA_COR_IRQ05;
+               break;
+       case 7:
+               reg = ISA_COR_IRQ07;
+               break;
+       case 10:
+               reg = ISA_COR_IRQ10;
+               break;
+       case 11:
+               reg = ISA_COR_IRQ11;
+               break;
+       case 12:
+               reg = ISA_COR_IRQ12;
+               break;
+       case 15:
+               reg = ISA_COR_IRQ15;
+               break;
        }
        outb(reg, ISA_PORT_COR);
 }
 
 static void
-act2000_isa_enable_irq(act2000_card * card)
+act2000_isa_enable_irq(act2000_card *card)
 {
        act2000_isa_select_irq(card);
        /* Enable READ irq */
@@ -129,102 +129,102 @@ act2000_isa_enable_irq(act2000_card * card)
  * If irq is -1, choose next free irq, else irq is given explicitly.
  */
 int
-act2000_isa_config_irq(act2000_card * card, short irq)
+act2000_isa_config_irq(act2000_card *card, short irq)
 {
        int old_irq;
 
-        if (card->flags & ACT2000_FLAGS_IVALID) {
-                free_irq(card->irq, card);
-        }
-        card->flags &= ~ACT2000_FLAGS_IVALID;
-        outb(ISA_COR_IRQOFF, ISA_PORT_COR);
-        if (!irq)
-                return 0;
+       if (card->flags & ACT2000_FLAGS_IVALID) {
+               free_irq(card->irq, card);
+       }
+       card->flags &= ~ACT2000_FLAGS_IVALID;
+       outb(ISA_COR_IRQOFF, ISA_PORT_COR);
+       if (!irq)
+               return 0;
 
        old_irq = card->irq;
        card->irq = irq;
        if (request_irq(irq, &act2000_isa_interrupt, 0, card->regname, card)) {
                card->irq = old_irq;
                card->flags |= ACT2000_FLAGS_IVALID;
-                printk(KERN_WARNING
-                       "act2000: Could not request irq %d\n",irq);
-                return -EBUSY;
-        } else {
+               printk(KERN_WARNING
+                      "act2000: Could not request irq %d\n", irq);
+               return -EBUSY;
+       } else {
                act2000_isa_select_irq(card);
-                /* Disable READ and WRITE irq */
-                outb(0, ISA_PORT_SIS);
-                outb(0, ISA_PORT_SOS);
-        }
-        return 0;
+               /* Disable READ and WRITE irq */
+               outb(0, ISA_PORT_SIS);
+               outb(0, ISA_PORT_SOS);
+       }
+       return 0;
 }
 
 int
-act2000_isa_config_port(act2000_card * card, unsigned short portbase)
+act2000_isa_config_port(act2000_card *card, unsigned short portbase)
 {
-        if (card->flags & ACT2000_FLAGS_PVALID) {
-                release_region(card->port, ISA_REGION);
-                card->flags &= ~ACT2000_FLAGS_PVALID;
-        }
+       if (card->flags & ACT2000_FLAGS_PVALID) {
+               release_region(card->port, ISA_REGION);
+               card->flags &= ~ACT2000_FLAGS_PVALID;
+       }
        if (request_region(portbase, ACT2000_PORTLEN, card->regname) == NULL)
                return -EBUSY;
        else {
-                card->port = portbase;
-                card->flags |= ACT2000_FLAGS_PVALID;
-                return 0;
-        }
+               card->port = portbase;
+               card->flags |= ACT2000_FLAGS_PVALID;
+               return 0;
+       }
 }
 
 /*
  * Release ressources, used by an adaptor.
  */
 void
-act2000_isa_release(act2000_card * card)
+act2000_isa_release(act2000_card *card)
 {
-        unsigned long flags;
+       unsigned long flags;
 
-        spin_lock_irqsave(&card->lock, flags);
-        if (card->flags & ACT2000_FLAGS_IVALID)
-                free_irq(card->irq, card);
+       spin_lock_irqsave(&card->lock, flags);
+       if (card->flags & ACT2000_FLAGS_IVALID)
+               free_irq(card->irq, card);
 
-        card->flags &= ~ACT2000_FLAGS_IVALID;
-        if (card->flags & ACT2000_FLAGS_PVALID)
-                release_region(card->port, ISA_REGION);
-        card->flags &= ~ACT2000_FLAGS_PVALID;
-        spin_unlock_irqrestore(&card->lock, flags);
+       card->flags &= ~ACT2000_FLAGS_IVALID;
+       if (card->flags & ACT2000_FLAGS_PVALID)
+               release_region(card->port, ISA_REGION);
+       card->flags &= ~ACT2000_FLAGS_PVALID;
+       spin_unlock_irqrestore(&card->lock, flags);
 }
 
 static int
-act2000_isa_writeb(act2000_card * card, u_char data)
+act2000_isa_writeb(act2000_card *card, u_char data)
 {
-        u_char timeout = 40;
-
-        while (timeout) {
-                if (inb(ISA_PORT_SOS) & ISA_SOS_READY) {
-                        outb(data, ISA_PORT_SDO);
-                        return 0;
-                } else {
-                        timeout--;
-                        udelay(10);
-                }
-        }
-        return 1;
+       u_char timeout = 40;
+
+       while (timeout) {
+               if (inb(ISA_PORT_SOS) & ISA_SOS_READY) {
+                       outb(data, ISA_PORT_SDO);
+                       return 0;
+               } else {
+                       timeout--;
+                       udelay(10);
+               }
+       }
+       return 1;
 }
 
 static int
-act2000_isa_readb(act2000_card * card, u_char * data)
+act2000_isa_readb(act2000_card *card, u_char *data)
 {
-        u_char timeout = 40;
-
-        while (timeout) {
-                if (inb(ISA_PORT_SIS) & ISA_SIS_READY) {
-                        *data = inb(ISA_PORT_SDI);
-                        return 0;
-                } else {
-                        timeout--;
-                        udelay(10);
-                }
-        }
-        return 1;
+       u_char timeout = 40;
+
+       while (timeout) {
+               if (inb(ISA_PORT_SIS) & ISA_SIS_READY) {
+                       *data = inb(ISA_PORT_SDI);
+                       return 0;
+               } else {
+                       timeout--;
+                       udelay(10);
+               }
+       }
+       return 1;
 }
 
 void
@@ -232,11 +232,11 @@ act2000_isa_receive(act2000_card *card)
 {
        u_char c;
 
-        if (test_and_set_bit(ACT2000_LOCK_RX, (void *) &card->ilock) != 0)
+       if (test_and_set_bit(ACT2000_LOCK_RX, (void *) &card->ilock) != 0)
                return;
        while (!act2000_isa_readb(card, &c)) {
                if (card->idat.isa.rcvidx < 8) {
-                        card->idat.isa.rcvhdr[card->idat.isa.rcvidx++] = c;
+                       card->idat.isa.rcvhdr[card->idat.isa.rcvidx++] = c;
                        if (card->idat.isa.rcvidx == 8) {
                                int valid = actcapi_chkhdr(card, (actcapi_msghdr *)&card->idat.isa.rcvhdr);
 
@@ -291,14 +291,14 @@ act2000_isa_receive(act2000_card *card)
 }
 
 void
-act2000_isa_send(act2000_card * card)
+act2000_isa_send(act2000_card *card)
 {
        unsigned long flags;
        struct sk_buff *skb;
        actcapi_msg *msg;
        int l;
 
-        if (test_and_set_bit(ACT2000_LOCK_TX, (void *) &card->ilock) != 0)
+       if (test_and_set_bit(ACT2000_LOCK_TX, (void *) &card->ilock) != 0)
                return;
        while (1) {
                spin_lock_irqsave(&card->lock, flags);
@@ -307,7 +307,7 @@ act2000_isa_send(act2000_card * card)
                                card->ack_msg = card->sbuf->data;
                                msg = (actcapi_msg *)card->sbuf->data;
                                if ((msg->hdr.cmd.cmd == 0x86) &&
-                                   (msg->hdr.cmd.subcmd == 0)   ) {
+                                   (msg->hdr.cmd.subcmd == 0)) {
                                        /* Save flags in message */
                                        card->need_b3ack = msg->msg.data_b3_req.flags;
                                        msg->msg.data_b3_req.flags = 0;
@@ -335,7 +335,7 @@ act2000_isa_send(act2000_card * card)
                }
                msg = (actcapi_msg *)card->ack_msg;
                if ((msg->hdr.cmd.cmd == 0x86) &&
-                   (msg->hdr.cmd.subcmd == 0)   ) {
+                   (msg->hdr.cmd.subcmd == 0)) {
                        /*
                         * If it's user data, reset data-ptr
                         * and put skb into ackq.
@@ -354,90 +354,90 @@ act2000_isa_send(act2000_card * card)
  * Get firmware ID, check for 'ISDN' signature.
  */
 static int
-act2000_isa_getid(act2000_card * card)
+act2000_isa_getid(act2000_card *card)
 {
 
-        act2000_fwid fid;
-        u_char *p = (u_char *) & fid;
-        int count = 0;
-
-        while (1) {
-                if (count > 510)
-                        return -EPROTO;
-                if (act2000_isa_readb(card, p++))
-                        break;
-                count++;
-        }
-        if (count <= 20) {
-                printk(KERN_WARNING "act2000: No Firmware-ID!\n");
-                return -ETIME;
-        }
-        *p = '\0';
-        fid.revlen[0] = '\0';
-        if (strcmp(fid.isdn, "ISDN")) {
-                printk(KERN_WARNING "act2000: Wrong Firmware-ID!\n");
-                return -EPROTO;
-        }
+       act2000_fwid fid;
+       u_char *p = (u_char *)&fid;
+       int count = 0;
+
+       while (1) {
+               if (count > 510)
+                       return -EPROTO;
+               if (act2000_isa_readb(card, p++))
+                       break;
+               count++;
+       }
+       if (count <= 20) {
+               printk(KERN_WARNING "act2000: No Firmware-ID!\n");
+               return -ETIME;
+       }
+       *p = '\0';
+       fid.revlen[0] = '\0';
+       if (strcmp(fid.isdn, "ISDN")) {
+               printk(KERN_WARNING "act2000: Wrong Firmware-ID!\n");
+               return -EPROTO;
+       }
        if ((p = strchr(fid.revision, '\n')))
                *p = '\0';
-        printk(KERN_INFO "act2000: Firmware-ID: %s\n", fid.revision);
+       printk(KERN_INFO "act2000: Firmware-ID: %s\n", fid.revision);
        if (card->flags & ACT2000_FLAGS_IVALID) {
                printk(KERN_DEBUG "Enabling Interrupts ...\n");
                act2000_isa_enable_irq(card);
        }
-        return 0;
+       return 0;
 }
 
 /*
  * Download microcode into card, check Firmware signature.
  */
 int
-act2000_isa_download(act2000_card * card, act2000_ddef __user * cb)
+act2000_isa_download(act2000_card *card, act2000_ddef __user *cb)
 {
-        unsigned int length;
-        int l;
-        int c;
-        long timeout;
-        u_char *b;
-        u_char __user *p;
-        u_char *buf;
-        act2000_ddef cblock;
-
-        if (!act2000_isa_reset(card->port))
-                return -ENXIO;
-        msleep_interruptible(500);
-        if (copy_from_user(&cblock, cb, sizeof(cblock)))
-               return -EFAULT;
-        length = cblock.length;
-        p = cblock.buffer;
-        if (!access_ok(VERIFY_READ, p, length))
-                return -EFAULT;
-        buf = kmalloc(1024, GFP_KERNEL);
-        if (!buf)
-                return -ENOMEM;
-        timeout = 0;
-        while (length) {
-                l = (length > 1024) ? 1024 : length;
-                c = 0;
-                b = buf;
-                if (copy_from_user(buf, p, l)) {
-                        kfree(buf);
-                        return -EFAULT;
-                }
-                while (c < l) {
-                        if (act2000_isa_writeb(card, *b++)) {
-                                printk(KERN_WARNING
-                                       "act2000: loader timed out"
-                                       " len=%d c=%d\n", length, c);
-                                kfree(buf);
-                                return -ETIME;
-                        }
-                        c++;
-                }
-                length -= l;
-                p += l;
-        }
-        kfree(buf);
-        msleep_interruptible(500);
-        return (act2000_isa_getid(card));
+       unsigned int length;
+       int l;
+       int c;
+       long timeout;
+       u_char *b;
+       u_char __user *p;
+       u_char *buf;
+       act2000_ddef cblock;
+
+       if (!act2000_isa_reset(card->port))
+               return -ENXIO;
+       msleep_interruptible(500);
+       if (copy_from_user(&cblock, cb, sizeof(cblock)))
+               return -EFAULT;
+       length = cblock.length;
+       p = cblock.buffer;
+       if (!access_ok(VERIFY_READ, p, length))
+               return -EFAULT;
+       buf = kmalloc(1024, GFP_KERNEL);
+       if (!buf)
+               return -ENOMEM;
+       timeout = 0;
+       while (length) {
+               l = (length > 1024) ? 1024 : length;
+               c = 0;
+               b = buf;
+               if (copy_from_user(buf, p, l)) {
+                       kfree(buf);
+                       return -EFAULT;
+               }
+               while (c < l) {
+                       if (act2000_isa_writeb(card, *b++)) {
+                               printk(KERN_WARNING
+                                      "act2000: loader timed out"
+                                      " len=%d c=%d\n", length, c);
+                               kfree(buf);
+                               return -ETIME;
+                       }
+                       c++;
+               }
+               length -= l;
+               p += l;
+       }
+       kfree(buf);
+       msleep_interruptible(500);
+       return (act2000_isa_getid(card));
 }
index ad86c5e..1a72898 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Fritz Elfert
  * Copyright    by Fritz Elfert      <fritz@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -18,9 +18,9 @@
 #define ISA_POLL_LOOP 40        /* Try to read-write before give up */
 
 typedef enum {
-        INT_NO_CHANGE = 0,      /* Do not change the Mask */
-        INT_ON = 1,             /* Set to Enable */
-        INT_OFF = 2,            /* Set to Disable */
+       INT_NO_CHANGE = 0,      /* Do not change the Mask */
+       INT_ON = 1,             /* Set to Enable */
+       INT_OFF = 2,            /* Set to Disable */
 } ISA_INT_T;
 
 /**************************************************************************/
@@ -114,22 +114,22 @@ typedef enum {
 
 
 /* Macros for accessing ports */
-#define ISA_PORT_COR (card->port+ISA_COR)
-#define ISA_PORT_ISR (card->port+ISA_ISR)
-#define ISA_PORT_EPR (card->port+ISA_EPR)
-#define ISA_PORT_EER (card->port+ISA_EER)
-#define ISA_PORT_SDI (card->port+ISA_SDI)
-#define ISA_PORT_SDO (card->port+ISA_SDO)
-#define ISA_PORT_SIS (card->port+ISA_SIS)
-#define ISA_PORT_SOS (card->port+ISA_SOS)
+#define ISA_PORT_COR (card->port + ISA_COR)
+#define ISA_PORT_ISR (card->port + ISA_ISR)
+#define ISA_PORT_EPR (card->port + ISA_EPR)
+#define ISA_PORT_EER (card->port + ISA_EER)
+#define ISA_PORT_SDI (card->port + ISA_SDI)
+#define ISA_PORT_SDO (card->port + ISA_SDO)
+#define ISA_PORT_SIS (card->port + ISA_SIS)
+#define ISA_PORT_SOS (card->port + ISA_SOS)
 
 /* Prototypes */
 
 extern int act2000_isa_detect(unsigned short portbase);
-extern int act2000_isa_config_irq(act2000_card * card, short irq);
-extern int act2000_isa_config_port(act2000_card * card, unsigned short portbase);
-extern int act2000_isa_download(act2000_card * card, act2000_ddef __user * cb);
-extern void act2000_isa_release(act2000_card * card);
+extern int act2000_isa_config_irq(act2000_card *card, short irq);
+extern int act2000_isa_config_port(act2000_card *card, unsigned short portbase);
+extern int act2000_isa_download(act2000_card *card, act2000_ddef __user *cb);
+extern void act2000_isa_release(act2000_card *card);
 extern void act2000_isa_receive(act2000_card *card);
 extern void act2000_isa_send(act2000_card *card);
 
index 1f0a949..3f66ca2 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Author       Fritz Elfert
  * Copyright    by Fritz Elfert      <fritz@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -64,14 +64,14 @@ static actcapi_msgdsc valid_msg[] = {
        {{ 0x86, 0x00}, "DATA_B3_REQ"},
        {{ 0xff, 0x00}, "MANUFACTURER_REQ"},
        /* Responses */
-       {{ 0x01, 0x03}, "RESET_B3_RESP"},       
-       {{ 0x02, 0x03}, "CONNECT_RESP"},        
-       {{ 0x03, 0x03}, "CONNECT_ACTIVE_RESP"}, 
-       {{ 0x04, 0x03}, "DISCONNECT_RESP"},     
-       {{ 0x07, 0x03}, "INFO_RESP"},   
-       {{ 0x08, 0x03}, "DATA_RESP"},   
-       {{ 0x82, 0x03}, "CONNECT_B3_RESP"},     
-       {{ 0x83, 0x03}, "CONNECT_B3_ACTIVE_RESP"},      
+       {{ 0x01, 0x03}, "RESET_B3_RESP"},
+       {{ 0x02, 0x03}, "CONNECT_RESP"},
+       {{ 0x03, 0x03}, "CONNECT_ACTIVE_RESP"},
+       {{ 0x04, 0x03}, "DISCONNECT_RESP"},
+       {{ 0x07, 0x03}, "INFO_RESP"},
+       {{ 0x08, 0x03}, "DATA_RESP"},
+       {{ 0x82, 0x03}, "CONNECT_B3_RESP"},
+       {{ 0x83, 0x03}, "CONNECT_B3_ACTIVE_RESP"},
        {{ 0x84, 0x03}, "DISCONNECT_B3_RESP"},
        {{ 0x86, 0x03}, "DATA_B3_RESP"},
        {{ 0xff, 0x03}, "MANUFACTURER_RESP"},
@@ -88,7 +88,7 @@ static actcapi_msgdsc valid_msg[] = {
  *   2 = Valid message, B-Channel-data
  */
 int
-actcapi_chkhdr(act2000_card * card, actcapi_msghdr *hdr)
+actcapi_chkhdr(act2000_card *card, actcapi_msghdr *hdr)
 {
        int i;
 
@@ -99,33 +99,33 @@ actcapi_chkhdr(act2000_card * card, actcapi_msghdr *hdr)
        for (i = 0; i < num_valid_imsg; i++)
                if ((hdr->cmd.cmd == valid_msg[i].cmd.cmd) &&
                    (hdr->cmd.subcmd == valid_msg[i].cmd.subcmd)) {
-                       return (i?1:2);
+                       return (i ? 1 : 2);
                }
        return 0;
 }
 
-#define ACTCAPI_MKHDR(l, c, s) { \
-       skb = alloc_skb(l + 8, GFP_ATOMIC); \
-       if (skb) { \
-               m = (actcapi_msg *)skb_put(skb, l + 8); \
-               m->hdr.len = l + 8; \
-               m->hdr.applicationID = 1; \
-               m->hdr.cmd.cmd = c; \
-               m->hdr.cmd.subcmd = s; \
-               m->hdr.msgnum = actcapi_nextsmsg(card); \
-       } else m = NULL;\
-}
+#define ACTCAPI_MKHDR(l, c, s) {                               \
+               skb = alloc_skb(l + 8, GFP_ATOMIC);             \
+               if (skb) {                                      \
+                       m = (actcapi_msg *)skb_put(skb, l + 8); \
+                       m->hdr.len = l + 8;                     \
+                       m->hdr.applicationID = 1;               \
+                       m->hdr.cmd.cmd = c;                     \
+                       m->hdr.cmd.subcmd = s;                  \
+                       m->hdr.msgnum = actcapi_nextsmsg(card); \
+               } else m = NULL;                                \
+       }
 
-#define ACTCAPI_CHKSKB if (!skb) { \
-       printk(KERN_WARNING "actcapi: alloc_skb failed\n"); \
-       return; \
-}
+#define ACTCAPI_CHKSKB if (!skb) {                                     \
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");     \
+               return;                                                 \
+       }
 
-#define ACTCAPI_QUEUE_TX { \
-       actcapi_debug_msg(skb, 1); \
-       skb_queue_tail(&card->sndq, skb); \
-       act2000_schedule_tx(card); \
-}
+#define ACTCAPI_QUEUE_TX {                             \
+               actcapi_debug_msg(skb, 1);              \
+               skb_queue_tail(&card->sndq, skb);       \
+               act2000_schedule_tx(card);              \
+       }
 
 int
 actcapi_listen_req(act2000_card *card)
@@ -138,16 +138,16 @@ actcapi_listen_req(act2000_card *card)
        for (i = 0; i < ACT2000_BCH; i++)
                eazmask |= card->bch[i].eazmask;
        ACTCAPI_MKHDR(9, 0x05, 0x00);
-        if (!skb) {
-                printk(KERN_WARNING "actcapi: alloc_skb failed\n");
-                return -ENOMEM;
-        }
+       if (!skb) {
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");
+               return -ENOMEM;
+       }
        m->msg.listen_req.controller = 0;
        m->msg.listen_req.infomask = 0x3f; /* All information */
        m->msg.listen_req.eazmask = eazmask;
-       m->msg.listen_req.simask = (eazmask)?0x86:0; /* All SI's  */
+       m->msg.listen_req.simask = (eazmask) ? 0x86 : 0; /* All SI's  */
        ACTCAPI_QUEUE_TX;
-        return 0;
+       return 0;
 }
 
 int
@@ -159,7 +159,7 @@ actcapi_connect_req(act2000_card *card, act2000_chan *chan, char *phone,
 
        ACTCAPI_MKHDR((11 + strlen(phone)), 0x02, 0x00);
        if (!skb) {
-                printk(KERN_WARNING "actcapi: alloc_skb failed\n");
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");
                chan->fsm_state = ACT2000_STATE_NULL;
                return -ENOMEM;
        }
@@ -168,7 +168,7 @@ actcapi_connect_req(act2000_card *card, act2000_chan *chan, char *phone,
        m->msg.connect_req.infomask = 0x3f;
        m->msg.connect_req.si1 = si1;
        m->msg.connect_req.si2 = si2;
-       m->msg.connect_req.eaz = eaz?eaz:'0';
+       m->msg.connect_req.eaz = eaz ? eaz : '0';
        m->msg.connect_req.addr.len = strlen(phone) + 1;
        m->msg.connect_req.addr.tnp = 0x81;
        memcpy(m->msg.connect_req.addr.num, phone, strlen(phone));
@@ -203,21 +203,21 @@ actcapi_manufacturer_req_net(act2000_card *card)
        struct sk_buff *skb;
 
        ACTCAPI_MKHDR(5, 0xff, 0x00);
-        if (!skb) {
-                printk(KERN_WARNING "actcapi: alloc_skb failed\n");
-                return -ENOMEM;
-        }
+       if (!skb) {
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");
+               return -ENOMEM;
+       }
        m->msg.manufacturer_req_net.manuf_msg = 0x11;
        m->msg.manufacturer_req_net.controller = 1;
-       m->msg.manufacturer_req_net.nettype = (card->ptype == ISDN_PTYPE_EURO)?1:0;
+       m->msg.manufacturer_req_net.nettype = (card->ptype == ISDN_PTYPE_EURO) ? 1 : 0;
        ACTCAPI_QUEUE_TX;
        printk(KERN_INFO "act2000 %s: D-channel protocol now %s\n",
-              card->interface.id, (card->ptype == ISDN_PTYPE_EURO)?"euro":"1tr6");
+              card->interface.id, (card->ptype == ISDN_PTYPE_EURO) ? "euro" : "1tr6");
        card->interface.features &=
                ~(ISDN_FEATURE_P_UNKNOWN | ISDN_FEATURE_P_EURO | ISDN_FEATURE_P_1TR6);
        card->interface.features |=
-               ((card->ptype == ISDN_PTYPE_EURO)?ISDN_FEATURE_P_EURO:ISDN_FEATURE_P_1TR6);
-        return 0;
+               ((card->ptype == ISDN_PTYPE_EURO) ? ISDN_FEATURE_P_EURO : ISDN_FEATURE_P_1TR6);
+       return 0;
 }
 
 /*
@@ -231,16 +231,16 @@ actcapi_manufacturer_req_v42(act2000_card *card, ulong arg)
        struct sk_buff *skb;
 
        ACTCAPI_MKHDR(8, 0xff, 0x00);
-        if (!skb) {
+       if (!skb) {
 
-                printk(KERN_WARNING "actcapi: alloc_skb failed\n");
-                return -ENOMEM;
-        }
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");
+               return -ENOMEM;
+       }
        m->msg.manufacturer_req_v42.manuf_msg = 0x10;
        m->msg.manufacturer_req_v42.controller = 0;
-       m->msg.manufacturer_req_v42.v42control = (arg?1:0);
+       m->msg.manufacturer_req_v42.v42control = (arg ? 1 : 0);
        ACTCAPI_QUEUE_TX;
-        return 0;
+       return 0;
 }
 #endif  /*  0  */
 
@@ -254,15 +254,15 @@ actcapi_manufacturer_req_errh(act2000_card *card)
        struct sk_buff *skb;
 
        ACTCAPI_MKHDR(4, 0xff, 0x00);
-        if (!skb) {
+       if (!skb) {
 
-                printk(KERN_WARNING "actcapi: alloc_skb failed\n");
-                return -ENOMEM;
-        }
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");
+               return -ENOMEM;
+       }
        m->msg.manufacturer_req_err.manuf_msg = 0x03;
        m->msg.manufacturer_req_err.controller = 0;
        ACTCAPI_QUEUE_TX;
-        return 0;
+       return 0;
 }
 
 /*
@@ -295,7 +295,7 @@ actcapi_manufacturer_req_msn(act2000_card *card)
                }
                p = p->next;
        }
-        return 0;
+       return 0;
 }
 
 void
@@ -311,24 +311,24 @@ actcapi_select_b2_protocol_req(act2000_card *card, act2000_chan *chan)
               sizeof(m->msg.select_b2_protocol_req.dlpd));
        m->msg.select_b2_protocol_req.dlpd.len = 6;
        switch (chan->l2prot) {
-               case ISDN_PROTO_L2_TRANS:
-                       m->msg.select_b2_protocol_req.protocol = 0x03;
-                       m->msg.select_b2_protocol_req.dlpd.dlen = 4000;
-                       break;
-               case ISDN_PROTO_L2_HDLC:
-                       m->msg.select_b2_protocol_req.protocol = 0x02;
-                       m->msg.select_b2_protocol_req.dlpd.dlen = 4000;
-                       break;
-               case ISDN_PROTO_L2_X75I:
-               case ISDN_PROTO_L2_X75UI:
-               case ISDN_PROTO_L2_X75BUI:
-                       m->msg.select_b2_protocol_req.protocol = 0x01;
-                       m->msg.select_b2_protocol_req.dlpd.dlen = 4000;
-                       m->msg.select_b2_protocol_req.dlpd.laa = 3;
-                       m->msg.select_b2_protocol_req.dlpd.lab = 1;
-                       m->msg.select_b2_protocol_req.dlpd.win = 7;
-                       m->msg.select_b2_protocol_req.dlpd.modulo = 8;
-                       break;
+       case ISDN_PROTO_L2_TRANS:
+               m->msg.select_b2_protocol_req.protocol = 0x03;
+               m->msg.select_b2_protocol_req.dlpd.dlen = 4000;
+               break;
+       case ISDN_PROTO_L2_HDLC:
+               m->msg.select_b2_protocol_req.protocol = 0x02;
+               m->msg.select_b2_protocol_req.dlpd.dlen = 4000;
+               break;
+       case ISDN_PROTO_L2_X75I:
+       case ISDN_PROTO_L2_X75UI:
+       case ISDN_PROTO_L2_X75BUI:
+               m->msg.select_b2_protocol_req.protocol = 0x01;
+               m->msg.select_b2_protocol_req.dlpd.dlen = 4000;
+               m->msg.select_b2_protocol_req.dlpd.laa = 3;
+               m->msg.select_b2_protocol_req.dlpd.lab = 1;
+               m->msg.select_b2_protocol_req.dlpd.win = 7;
+               m->msg.select_b2_protocol_req.dlpd.modulo = 8;
+               break;
        }
        ACTCAPI_QUEUE_TX;
 }
@@ -345,11 +345,11 @@ actcapi_select_b3_protocol_req(act2000_card *card, act2000_chan *chan)
        memset(&m->msg.select_b3_protocol_req.ncpd, 0,
               sizeof(m->msg.select_b3_protocol_req.ncpd));
        switch (chan->l3prot) {
-               case ISDN_PROTO_L3_TRANS:
-                       m->msg.select_b3_protocol_req.protocol = 0x04;
-                       m->msg.select_b3_protocol_req.ncpd.len = 13;
-                       m->msg.select_b3_protocol_req.ncpd.modulo = 8;
-                       break;
+       case ISDN_PROTO_L3_TRANS:
+               m->msg.select_b3_protocol_req.protocol = 0x04;
+               m->msg.select_b3_protocol_req.ncpd.len = 13;
+               m->msg.select_b3_protocol_req.ncpd.modulo = 8;
+               break;
        }
        ACTCAPI_QUEUE_TX;
 }
@@ -434,7 +434,7 @@ actcapi_connect_b3_resp(act2000_card *card, act2000_chan *chan, __u8 rejectcause
        actcapi_msg *m;
        struct sk_buff *skb;
 
-       ACTCAPI_MKHDR((rejectcause?3:17), 0x82, 0x03);
+       ACTCAPI_MKHDR((rejectcause ? 3 : 17), 0x82, 0x03);
        ACTCAPI_CHKSKB;
        m->msg.connect_b3_resp.ncci = chan->ncci;
        m->msg.connect_b3_resp.rejectcause = rejectcause;
@@ -563,10 +563,10 @@ actcapi_data_b3_ind(act2000_card *card, struct sk_buff *skb) {
        blocknr = msg->msg.data_b3_ind.blocknr;
        skb_pull(skb, 19);
        card->interface.rcvcallb_skb(card->myid, chan, skb);
-        if (!(skb = alloc_skb(11, GFP_ATOMIC))) {
-                printk(KERN_WARNING "actcapi: alloc_skb failed\n");
-                return 1;
-        }
+       if (!(skb = alloc_skb(11, GFP_ATOMIC))) {
+               printk(KERN_WARNING "actcapi: alloc_skb failed\n");
+               return 1;
+       }
        msg = (actcapi_msg *)skb_put(skb, 11);
        msg->hdr.len = 11;
        msg->hdr.applicationID = 1;
@@ -595,34 +595,34 @@ handle_ack(act2000_card *card, act2000_chan *chan, __u8 blocknr) {
        spin_lock_irqsave(&card->lock, flags);
        skb = skb_peek(&card->ackq);
        spin_unlock_irqrestore(&card->lock, flags);
-        if (!skb) {
+       if (!skb) {
                printk(KERN_WARNING "act2000: handle_ack nothing found!\n");
                return 0;
        }
-        tmp = skb;
-        while (1) {
-                m = (actcapi_msg *)tmp->data;
-                if ((((m->msg.data_b3_req.fakencci >> 8) & 0xff) == chan->ncci) &&
+       tmp = skb;
+       while (1) {
+               m = (actcapi_msg *)tmp->data;
+               if ((((m->msg.data_b3_req.fakencci >> 8) & 0xff) == chan->ncci) &&
                    (m->msg.data_b3_req.blocknr == blocknr)) {
                        /* found corresponding DATA_B3_REQ */
-                        skb_unlink(tmp, &card->ackq);
+                       skb_unlink(tmp, &card->ackq);
                        chan->queued -= m->msg.data_b3_req.datalen;
                        if (m->msg.data_b3_req.flags)
                                ret = m->msg.data_b3_req.datalen;
                        dev_kfree_skb(tmp);
                        if (chan->queued < 0)
                                chan->queued = 0;
-                        return ret;
-                }
-                spin_lock_irqsave(&card->lock, flags);
-                tmp = skb_peek((struct sk_buff_head *)tmp);
-                spin_unlock_irqrestore(&card->lock, flags);
-                if ((tmp == skb) || (tmp == NULL)) {
+                       return ret;
+               }
+               spin_lock_irqsave(&card->lock, flags);
+               tmp = skb_peek((struct sk_buff_head *)tmp);
+               spin_unlock_irqrestore(&card->lock, flags);
+               if ((tmp == skb) || (tmp == NULL)) {
                        /* reached end of queue */
                        printk(KERN_WARNING "act2000: handle_ack nothing found!\n");
-                        return 0;
+                       return 0;
                }
-        }
+       }
 }
 
 void
@@ -644,294 +644,294 @@ actcapi_dispatch(struct work_struct *work)
                msg = (actcapi_msg *)skb->data;
                ccmd = ((msg->hdr.cmd.cmd << 8) | msg->hdr.cmd.subcmd);
                switch (ccmd) {
-                       case 0x8602:
-                               /* DATA_B3_IND */
-                               if (actcapi_data_b3_ind(card, skb))
-                                       return;
-                               break;
-                       case 0x8601:
-                               /* DATA_B3_CONF */
-                               chan = find_ncci(card, msg->msg.data_b3_conf.ncci);
-                               if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_ACTIVE)) {
-                                       if (msg->msg.data_b3_conf.info != 0)
-                                               printk(KERN_WARNING "act2000: DATA_B3_CONF: %04x\n",
-                                                      msg->msg.data_b3_conf.info);
-                                       len = handle_ack(card, &card->bch[chan],
-                                                        msg->msg.data_b3_conf.blocknr);
-                                       if (len) {
+               case 0x8602:
+                       /* DATA_B3_IND */
+                       if (actcapi_data_b3_ind(card, skb))
+                               return;
+                       break;
+               case 0x8601:
+                       /* DATA_B3_CONF */
+                       chan = find_ncci(card, msg->msg.data_b3_conf.ncci);
+                       if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_ACTIVE)) {
+                               if (msg->msg.data_b3_conf.info != 0)
+                                       printk(KERN_WARNING "act2000: DATA_B3_CONF: %04x\n",
+                                              msg->msg.data_b3_conf.info);
+                               len = handle_ack(card, &card->bch[chan],
+                                                msg->msg.data_b3_conf.blocknr);
+                               if (len) {
+                                       cmd.driver = card->myid;
+                                       cmd.command = ISDN_STAT_BSENT;
+                                       cmd.arg = chan;
+                                       cmd.parm.length = len;
+                                       card->interface.statcallb(&cmd);
+                               }
+                       }
+                       break;
+               case 0x0201:
+                       /* CONNECT_CONF */
+                       chan = find_dialing(card, msg->hdr.msgnum);
+                       if (chan >= 0) {
+                               if (msg->msg.connect_conf.info) {
+                                       card->bch[chan].fsm_state = ACT2000_STATE_NULL;
+                                       cmd.driver = card->myid;
+                                       cmd.command = ISDN_STAT_DHUP;
+                                       cmd.arg = chan;
+                                       card->interface.statcallb(&cmd);
+                               } else {
+                                       card->bch[chan].fsm_state = ACT2000_STATE_OWAIT;
+                                       card->bch[chan].plci = msg->msg.connect_conf.plci;
+                               }
+                       }
+                       break;
+               case 0x0202:
+                       /* CONNECT_IND */
+                       chan = new_plci(card, msg->msg.connect_ind.plci);
+                       if (chan < 0) {
+                               ctmp = (act2000_chan *)tmp;
+                               ctmp->plci = msg->msg.connect_ind.plci;
+                               actcapi_connect_resp(card, ctmp, 0x11); /* All Card-Cannels busy */
+                       } else {
+                               card->bch[chan].fsm_state = ACT2000_STATE_ICALL;
+                               cmd.driver = card->myid;
+                               cmd.command = ISDN_STAT_ICALL;
+                               cmd.arg = chan;
+                               cmd.parm.setup.si1 = msg->msg.connect_ind.si1;
+                               cmd.parm.setup.si2 = msg->msg.connect_ind.si2;
+                               if (card->ptype == ISDN_PTYPE_EURO)
+                                       strcpy(cmd.parm.setup.eazmsn,
+                                              act2000_find_eaz(card, msg->msg.connect_ind.eaz));
+                               else {
+                                       cmd.parm.setup.eazmsn[0] = msg->msg.connect_ind.eaz;
+                                       cmd.parm.setup.eazmsn[1] = 0;
+                               }
+                               memset(cmd.parm.setup.phone, 0, sizeof(cmd.parm.setup.phone));
+                               memcpy(cmd.parm.setup.phone, msg->msg.connect_ind.addr.num,
+                                      msg->msg.connect_ind.addr.len - 1);
+                               cmd.parm.setup.plan = msg->msg.connect_ind.addr.tnp;
+                               cmd.parm.setup.screen = 0;
+                               if (card->interface.statcallb(&cmd) == 2)
+                                       actcapi_connect_resp(card, &card->bch[chan], 0x15); /* Reject Call */
+                       }
+                       break;
+               case 0x0302:
+                       /* CONNECT_ACTIVE_IND */
+                       chan = find_plci(card, msg->msg.connect_active_ind.plci);
+                       if (chan >= 0)
+                               switch (card->bch[chan].fsm_state) {
+                               case ACT2000_STATE_IWAIT:
+                                       actcapi_connect_active_resp(card, &card->bch[chan]);
+                                       break;
+                               case ACT2000_STATE_OWAIT:
+                                       actcapi_connect_active_resp(card, &card->bch[chan]);
+                                       actcapi_select_b2_protocol_req(card, &card->bch[chan]);
+                                       break;
+                               }
+                       break;
+               case 0x8202:
+                       /* CONNECT_B3_IND */
+                       chan = find_plci(card, msg->msg.connect_b3_ind.plci);
+                       if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_IBWAIT)) {
+                               card->bch[chan].ncci = msg->msg.connect_b3_ind.ncci;
+                               actcapi_connect_b3_resp(card, &card->bch[chan], 0);
+                       } else {
+                               ctmp = (act2000_chan *)tmp;
+                               ctmp->ncci = msg->msg.connect_b3_ind.ncci;
+                               actcapi_connect_b3_resp(card, ctmp, 0x11); /* All Card-Cannels busy */
+                       }
+                       break;
+               case 0x8302:
+                       /* CONNECT_B3_ACTIVE_IND */
+                       chan = find_ncci(card, msg->msg.connect_b3_active_ind.ncci);
+                       if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_BWAIT)) {
+                               actcapi_connect_b3_active_resp(card, &card->bch[chan]);
+                               cmd.driver = card->myid;
+                               cmd.command = ISDN_STAT_BCONN;
+                               cmd.arg = chan;
+                               card->interface.statcallb(&cmd);
+                       }
+                       break;
+               case 0x8402:
+                       /* DISCONNECT_B3_IND */
+                       chan = find_ncci(card, msg->msg.disconnect_b3_ind.ncci);
+                       if (chan >= 0) {
+                               ctmp = &card->bch[chan];
+                               actcapi_disconnect_b3_resp(card, ctmp);
+                               switch (ctmp->fsm_state) {
+                               case ACT2000_STATE_ACTIVE:
+                                       ctmp->fsm_state = ACT2000_STATE_DHWAIT2;
+                                       cmd.driver = card->myid;
+                                       cmd.command = ISDN_STAT_BHUP;
+                                       cmd.arg = chan;
+                                       card->interface.statcallb(&cmd);
+                                       break;
+                               case ACT2000_STATE_BHWAIT2:
+                                       actcapi_disconnect_req(card, ctmp);
+                                       ctmp->fsm_state = ACT2000_STATE_DHWAIT;
+                                       cmd.driver = card->myid;
+                                       cmd.command = ISDN_STAT_BHUP;
+                                       cmd.arg = chan;
+                                       card->interface.statcallb(&cmd);
+                                       break;
+                               }
+                       }
+                       break;
+               case 0x0402:
+                       /* DISCONNECT_IND */
+                       chan = find_plci(card, msg->msg.disconnect_ind.plci);
+                       if (chan >= 0) {
+                               ctmp = &card->bch[chan];
+                               actcapi_disconnect_resp(card, ctmp);
+                               ctmp->fsm_state = ACT2000_STATE_NULL;
+                               cmd.driver = card->myid;
+                               cmd.command = ISDN_STAT_DHUP;
+                               cmd.arg = chan;
+                               card->interface.statcallb(&cmd);
+                       } else {
+                               ctmp = (act2000_chan *)tmp;
+                               ctmp->plci = msg->msg.disconnect_ind.plci;
+                               actcapi_disconnect_resp(card, ctmp);
+                       }
+                       break;
+               case 0x4001:
+                       /* SELECT_B2_PROTOCOL_CONF */
+                       chan = find_plci(card, msg->msg.select_b2_protocol_conf.plci);
+                       if (chan >= 0)
+                               switch (card->bch[chan].fsm_state) {
+                               case ACT2000_STATE_ICALL:
+                               case ACT2000_STATE_OWAIT:
+                                       ctmp = &card->bch[chan];
+                                       if (msg->msg.select_b2_protocol_conf.info == 0)
+                                               actcapi_select_b3_protocol_req(card, ctmp);
+                                       else {
+                                               ctmp->fsm_state = ACT2000_STATE_NULL;
                                                cmd.driver = card->myid;
-                                               cmd.command = ISDN_STAT_BSENT;
+                                               cmd.command = ISDN_STAT_DHUP;
                                                cmd.arg = chan;
-                                               cmd.parm.length = len;
                                                card->interface.statcallb(&cmd);
                                        }
+                                       break;
                                }
-                               break;
-                       case 0x0201:
-                               /* CONNECT_CONF */
-                               chan = find_dialing(card, msg->hdr.msgnum);
-                               if (chan >= 0) {
-                                       if (msg->msg.connect_conf.info) {
-                                               card->bch[chan].fsm_state = ACT2000_STATE_NULL;
+                       break;
+               case 0x8001:
+                       /* SELECT_B3_PROTOCOL_CONF */
+                       chan = find_plci(card, msg->msg.select_b3_protocol_conf.plci);
+                       if (chan >= 0)
+                               switch (card->bch[chan].fsm_state) {
+                               case ACT2000_STATE_ICALL:
+                               case ACT2000_STATE_OWAIT:
+                                       ctmp = &card->bch[chan];
+                                       if (msg->msg.select_b3_protocol_conf.info == 0)
+                                               actcapi_listen_b3_req(card, ctmp);
+                                       else {
+                                               ctmp->fsm_state = ACT2000_STATE_NULL;
                                                cmd.driver = card->myid;
                                                cmd.command = ISDN_STAT_DHUP;
                                                cmd.arg = chan;
                                                card->interface.statcallb(&cmd);
-                                       } else {
-                                               card->bch[chan].fsm_state = ACT2000_STATE_OWAIT;
-                                               card->bch[chan].plci = msg->msg.connect_conf.plci;
                                        }
                                }
-                               break;
-                       case 0x0202:
-                               /* CONNECT_IND */
-                               chan = new_plci(card, msg->msg.connect_ind.plci);
-                               if (chan < 0) {
-                                       ctmp = (act2000_chan *)tmp;
-                                       ctmp->plci = msg->msg.connect_ind.plci;
-                                       actcapi_connect_resp(card, ctmp, 0x11); /* All Card-Cannels busy */
-                               } else {
-                                       card->bch[chan].fsm_state = ACT2000_STATE_ICALL;
-                                       cmd.driver = card->myid;
-                                       cmd.command = ISDN_STAT_ICALL;
-                                       cmd.arg = chan;
-                                       cmd.parm.setup.si1 = msg->msg.connect_ind.si1;
-                                       cmd.parm.setup.si2 = msg->msg.connect_ind.si2;
-                                       if (card->ptype == ISDN_PTYPE_EURO)
-                                               strcpy(cmd.parm.setup.eazmsn,
-                                                      act2000_find_eaz(card, msg->msg.connect_ind.eaz));
+                       break;
+               case 0x8101:
+                       /* LISTEN_B3_CONF */
+                       chan = find_plci(card, msg->msg.listen_b3_conf.plci);
+                       if (chan >= 0)
+                               switch (card->bch[chan].fsm_state) {
+                               case ACT2000_STATE_ICALL:
+                                       ctmp = &card->bch[chan];
+                                       if (msg->msg.listen_b3_conf.info == 0)
+                                               actcapi_connect_resp(card, ctmp, 0);
                                        else {
-                                               cmd.parm.setup.eazmsn[0] = msg->msg.connect_ind.eaz;
-                                               cmd.parm.setup.eazmsn[1] = 0;
-                                       }
-                                       memset(cmd.parm.setup.phone, 0, sizeof(cmd.parm.setup.phone));
-                                       memcpy(cmd.parm.setup.phone, msg->msg.connect_ind.addr.num,
-                                              msg->msg.connect_ind.addr.len - 1);
-                                       cmd.parm.setup.plan = msg->msg.connect_ind.addr.tnp;
-                                       cmd.parm.setup.screen = 0;
-                                       if (card->interface.statcallb(&cmd) == 2)
-                                               actcapi_connect_resp(card, &card->bch[chan], 0x15); /* Reject Call */
-                               }
-                               break;
-                       case 0x0302:
-                               /* CONNECT_ACTIVE_IND */
-                               chan = find_plci(card, msg->msg.connect_active_ind.plci);
-                               if (chan >= 0)
-                                       switch (card->bch[chan].fsm_state) {
-                                               case ACT2000_STATE_IWAIT:
-                                                       actcapi_connect_active_resp(card, &card->bch[chan]);
-                                                       break;
-                                               case ACT2000_STATE_OWAIT:
-                                                       actcapi_connect_active_resp(card, &card->bch[chan]);
-                                                       actcapi_select_b2_protocol_req(card, &card->bch[chan]);
-                                                       break;
+                                               ctmp->fsm_state = ACT2000_STATE_NULL;
+                                               cmd.driver = card->myid;
+                                               cmd.command = ISDN_STAT_DHUP;
+                                               cmd.arg = chan;
+                                               card->interface.statcallb(&cmd);
                                        }
-                               break;
-                       case 0x8202:
-                               /* CONNECT_B3_IND */
-                               chan = find_plci(card, msg->msg.connect_b3_ind.plci);
-                               if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_IBWAIT)) {
-                                       card->bch[chan].ncci = msg->msg.connect_b3_ind.ncci;
-                                       actcapi_connect_b3_resp(card, &card->bch[chan], 0);
-                               } else {
-                                       ctmp = (act2000_chan *)tmp;
-                                       ctmp->ncci = msg->msg.connect_b3_ind.ncci;
-                                       actcapi_connect_b3_resp(card, ctmp, 0x11); /* All Card-Cannels busy */
-                               }
-                               break;
-                       case 0x8302:
-                               /* CONNECT_B3_ACTIVE_IND */
-                               chan = find_ncci(card, msg->msg.connect_b3_active_ind.ncci);
-                               if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_BWAIT)) {
-                                       actcapi_connect_b3_active_resp(card, &card->bch[chan]);
-                                       cmd.driver = card->myid;
-                                       cmd.command = ISDN_STAT_BCONN;
-                                       cmd.arg = chan;
-                                       card->interface.statcallb(&cmd);
-                               }
-                               break;
-                       case 0x8402:
-                               /* DISCONNECT_B3_IND */
-                               chan = find_ncci(card, msg->msg.disconnect_b3_ind.ncci);
-                               if (chan >= 0) {
+                                       break;
+                               case ACT2000_STATE_OWAIT:
                                        ctmp = &card->bch[chan];
-                                       actcapi_disconnect_b3_resp(card, ctmp);
-                                       switch (ctmp->fsm_state) {
-                                               case ACT2000_STATE_ACTIVE:
-                                                       ctmp->fsm_state = ACT2000_STATE_DHWAIT2;
-                                                       cmd.driver = card->myid;
-                                                       cmd.command = ISDN_STAT_BHUP;
-                                                       cmd.arg = chan;
-                                                       card->interface.statcallb(&cmd);
-                                                       break;
-                                               case ACT2000_STATE_BHWAIT2:
-                                                       actcapi_disconnect_req(card, ctmp);
-                                                       ctmp->fsm_state = ACT2000_STATE_DHWAIT;
-                                                       cmd.driver = card->myid;
-                                                       cmd.command = ISDN_STAT_BHUP;
-                                                       cmd.arg = chan;
-                                                       card->interface.statcallb(&cmd);
-                                                       break;
+                                       if (msg->msg.listen_b3_conf.info == 0) {
+                                               actcapi_connect_b3_req(card, ctmp);
+                                               ctmp->fsm_state = ACT2000_STATE_OBWAIT;
+                                               cmd.driver = card->myid;
+                                               cmd.command = ISDN_STAT_DCONN;
+                                               cmd.arg = chan;
+                                               card->interface.statcallb(&cmd);
+                                       } else {
+                                               ctmp->fsm_state = ACT2000_STATE_NULL;
+                                               cmd.driver = card->myid;
+                                               cmd.command = ISDN_STAT_DHUP;
+                                               cmd.arg = chan;
+                                               card->interface.statcallb(&cmd);
                                        }
+                                       break;
                                }
-                               break;
-                       case 0x0402:
-                               /* DISCONNECT_IND */
-                               chan = find_plci(card, msg->msg.disconnect_ind.plci);
-                               if (chan >= 0) {
-                                       ctmp = &card->bch[chan];
-                                       actcapi_disconnect_resp(card, ctmp);
+                       break;
+               case 0x8201:
+                       /* CONNECT_B3_CONF */
+                       chan = find_plci(card, msg->msg.connect_b3_conf.plci);
+                       if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_OBWAIT)) {
+                               ctmp = &card->bch[chan];
+                               if (msg->msg.connect_b3_conf.info) {
                                        ctmp->fsm_state = ACT2000_STATE_NULL;
                                        cmd.driver = card->myid;
                                        cmd.command = ISDN_STAT_DHUP;
                                        cmd.arg = chan;
                                        card->interface.statcallb(&cmd);
                                } else {
-                                       ctmp = (act2000_chan *)tmp;
-                                       ctmp->plci = msg->msg.disconnect_ind.plci;
-                                       actcapi_disconnect_resp(card, ctmp);
+                                       ctmp->ncci = msg->msg.connect_b3_conf.ncci;
+                                       ctmp->fsm_state = ACT2000_STATE_BWAIT;
                                }
-                               break;
-                       case 0x4001:
-                               /* SELECT_B2_PROTOCOL_CONF */
-                               chan = find_plci(card, msg->msg.select_b2_protocol_conf.plci);
-                               if (chan >= 0)
-                                       switch (card->bch[chan].fsm_state) {
-                                               case ACT2000_STATE_ICALL:
-                                               case ACT2000_STATE_OWAIT:
-                                                       ctmp = &card->bch[chan];
-                                                       if (msg->msg.select_b2_protocol_conf.info == 0)
-                                                               actcapi_select_b3_protocol_req(card, ctmp);
-                                                       else {
-                                                               ctmp->fsm_state = ACT2000_STATE_NULL;
-                                                               cmd.driver = card->myid;
-                                                               cmd.command = ISDN_STAT_DHUP;
-                                                               cmd.arg = chan;
-                                                               card->interface.statcallb(&cmd);
-                                                       }
-                                                       break;
-                                       }
-                               break;
-                       case 0x8001:
-                               /* SELECT_B3_PROTOCOL_CONF */
-                               chan = find_plci(card, msg->msg.select_b3_protocol_conf.plci);
-                               if (chan >= 0)
-                                       switch (card->bch[chan].fsm_state) {
-                                               case ACT2000_STATE_ICALL:
-                                               case ACT2000_STATE_OWAIT:
-                                                       ctmp = &card->bch[chan];
-                                                       if (msg->msg.select_b3_protocol_conf.info == 0)
-                                                               actcapi_listen_b3_req(card, ctmp);
-                                                       else {
-                                                               ctmp->fsm_state = ACT2000_STATE_NULL;
-                                                               cmd.driver = card->myid;
-                                                               cmd.command = ISDN_STAT_DHUP;
-                                                               cmd.arg = chan;
-                                                               card->interface.statcallb(&cmd);
-                                                       }
-                                       }
-                               break;
-                       case 0x8101:
-                               /* LISTEN_B3_CONF */
-                               chan = find_plci(card, msg->msg.listen_b3_conf.plci);
-                               if (chan >= 0)
-                                       switch (card->bch[chan].fsm_state) {
-                                               case ACT2000_STATE_ICALL:
-                                                       ctmp = &card->bch[chan];
-                                                       if (msg->msg.listen_b3_conf.info == 0)
-                                                               actcapi_connect_resp(card, ctmp, 0);
-                                                       else {
-                                                               ctmp->fsm_state = ACT2000_STATE_NULL;
-                                                               cmd.driver = card->myid;
-                                                               cmd.command = ISDN_STAT_DHUP;
-                                                               cmd.arg = chan;
-                                                               card->interface.statcallb(&cmd);
-                                                       }
-                                                       break;
-                                               case ACT2000_STATE_OWAIT:
-                                                       ctmp = &card->bch[chan];
-                                                       if (msg->msg.listen_b3_conf.info == 0) {
-                                                               actcapi_connect_b3_req(card, ctmp);
-                                                               ctmp->fsm_state = ACT2000_STATE_OBWAIT;
-                                                               cmd.driver = card->myid;
-                                                               cmd.command = ISDN_STAT_DCONN;
-                                                               cmd.arg = chan;
-                                                               card->interface.statcallb(&cmd);
-                                                       } else {
-                                                               ctmp->fsm_state = ACT2000_STATE_NULL;
-                                                               cmd.driver = card->myid;
-                                                               cmd.command = ISDN_STAT_DHUP;
-                                                               cmd.arg = chan;
-                                                               card->interface.statcallb(&cmd);
-                                                       }
-                                                       break;
-                                       }
-                               break;
-                       case 0x8201:
-                               /* CONNECT_B3_CONF */
-                               chan = find_plci(card, msg->msg.connect_b3_conf.plci);
-                               if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_OBWAIT)) {
-                                       ctmp = &card->bch[chan];
-                                       if (msg->msg.connect_b3_conf.info) {
-                                               ctmp->fsm_state = ACT2000_STATE_NULL;
+                       }
+                       break;
+               case 0x8401:
+                       /* DISCONNECT_B3_CONF */
+                       chan = find_ncci(card, msg->msg.disconnect_b3_conf.ncci);
+                       if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_BHWAIT))
+                               card->bch[chan].fsm_state = ACT2000_STATE_BHWAIT2;
+                       break;
+               case 0x0702:
+                       /* INFO_IND */
+                       chan = find_plci(card, msg->msg.info_ind.plci);
+                       if (chan >= 0)
+                               /* TODO: Eval Charging info / cause */
+                               actcapi_info_resp(card, &card->bch[chan]);
+                       break;
+               case 0x0401:
+                       /* LISTEN_CONF */
+               case 0x0501:
+                       /* LISTEN_CONF */
+               case 0xff01:
+                       /* MANUFACTURER_CONF */
+                       break;
+               case 0xff02:
+                       /* MANUFACTURER_IND */
+                       if (msg->msg.manuf_msg == 3) {
+                               memset(tmp, 0, sizeof(tmp));
+                               strncpy(tmp,
+                                       &msg->msg.manufacturer_ind_err.errstring,
+                                       msg->hdr.len - 16);
+                               if (msg->msg.manufacturer_ind_err.errcode)
+                                       printk(KERN_WARNING "act2000: %s\n", tmp);
+                               else {
+                                       printk(KERN_DEBUG "act2000: %s\n", tmp);
+                                       if ((!strncmp(tmp, "INFO: Trace buffer con", 22)) ||
+                                           (!strncmp(tmp, "INFO: Compile Date/Tim", 22))) {
+                                               card->flags |= ACT2000_FLAGS_RUNNING;
+                                               cmd.command = ISDN_STAT_RUN;
                                                cmd.driver = card->myid;
-                                               cmd.command = ISDN_STAT_DHUP;
-                                               cmd.arg = chan;
+                                               cmd.arg = 0;
+                                               actcapi_manufacturer_req_net(card);
+                                               actcapi_manufacturer_req_msn(card);
+                                               actcapi_listen_req(card);
                                                card->interface.statcallb(&cmd);
-                                       } else {
-                                               ctmp->ncci = msg->msg.connect_b3_conf.ncci;
-                                               ctmp->fsm_state = ACT2000_STATE_BWAIT;
                                        }
                                }
-                               break;
-                       case 0x8401:
-                               /* DISCONNECT_B3_CONF */
-                               chan = find_ncci(card, msg->msg.disconnect_b3_conf.ncci);
-                               if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_BHWAIT))
-                                       card->bch[chan].fsm_state = ACT2000_STATE_BHWAIT2;
-                               break;
-                       case 0x0702:
-                               /* INFO_IND */
-                               chan = find_plci(card, msg->msg.info_ind.plci);
-                               if (chan >= 0)
-                                       /* TODO: Eval Charging info / cause */
-                                       actcapi_info_resp(card, &card->bch[chan]);
-                               break;
-                       case 0x0401:
-                               /* LISTEN_CONF */
-                       case 0x0501:
-                               /* LISTEN_CONF */
-                       case 0xff01:
-                               /* MANUFACTURER_CONF */
-                               break;
-                       case 0xff02:
-                               /* MANUFACTURER_IND */
-                               if (msg->msg.manuf_msg == 3) {
-                                       memset(tmp, 0, sizeof(tmp));
-                                       strncpy(tmp,
-                                               &msg->msg.manufacturer_ind_err.errstring,
-                                               msg->hdr.len - 16);
-                                       if (msg->msg.manufacturer_ind_err.errcode)
-                                               printk(KERN_WARNING "act2000: %s\n", tmp);
-                                       else {
-                                               printk(KERN_DEBUG "act2000: %s\n", tmp);
-                                               if ((!strncmp(tmp, "INFO: Trace buffer con", 22)) ||
-                                                   (!strncmp(tmp, "INFO: Compile Date/Tim", 22))) {
-                                                       card->flags |= ACT2000_FLAGS_RUNNING;
-                                                       cmd.command = ISDN_STAT_RUN;
-                                                       cmd.driver = card->myid;
-                                                       cmd.arg = 0;
-                                                       actcapi_manufacturer_req_net(card);
-                                                       actcapi_manufacturer_req_msn(card);
-                                                       actcapi_listen_req(card);
-                                                       card->interface.statcallb(&cmd);
-                                               }
-                                       }
-                               }
-                               break;
-                       default:
-                               printk(KERN_WARNING "act2000: UNHANDLED Message %04x\n", ccmd);
-                               break;
+                       }
+                       break;
+               default:
+                       printk(KERN_WARNING "act2000: UNHANDLED Message %04x\n", ccmd);
+                       break;
                }
                dev_kfree_skb(skb);
        }
@@ -1015,7 +1015,7 @@ actcapi_debug_msg(struct sk_buff *skb, int direction)
        char *descr;
        int i;
        char tmp[170];
-       
+
 #ifndef DEBUG_DATA_MSG
        if (msg->hdr.cmd.cmd == 0x86)
                return;
@@ -1030,151 +1030,151 @@ actcapi_debug_msg(struct sk_buff *skb, int direction)
                        descr = valid_msg[i].description;
                        break;
                }
-       printk(KERN_DEBUG "%s %s msg\n", direction?"Outgoing":"Incoming", descr);
+       printk(KERN_DEBUG "%s %s msg\n", direction ? "Outgoing" : "Incoming", descr);
        printk(KERN_DEBUG " ApplID = %d\n", msg->hdr.applicationID);
        printk(KERN_DEBUG " Len    = %d\n", msg->hdr.len);
        printk(KERN_DEBUG " MsgNum = 0x%04x\n", msg->hdr.msgnum);
        printk(KERN_DEBUG " Cmd    = 0x%02x\n", msg->hdr.cmd.cmd);
        printk(KERN_DEBUG " SubCmd = 0x%02x\n", msg->hdr.cmd.subcmd);
        switch (i) {
-               case 0:
-                       /* DATA B3 IND */
-                       printk(KERN_DEBUG " BLOCK = 0x%02x\n",
-                              msg->msg.data_b3_ind.blocknr);
-                       break;
-               case 2:
-                       /* CONNECT CONF */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.connect_conf.plci);
-                       printk(KERN_DEBUG " Info = 0x%04x\n",
-                              msg->msg.connect_conf.info);
-                       break;
+       case 0:
+               /* DATA B3 IND */
+               printk(KERN_DEBUG " BLOCK = 0x%02x\n",
+                      msg->msg.data_b3_ind.blocknr);
+               break;
+       case 2:
+               /* CONNECT CONF */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.connect_conf.plci);
+               printk(KERN_DEBUG " Info = 0x%04x\n",
+                      msg->msg.connect_conf.info);
+               break;
+       case 3:
+               /* CONNECT IND */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.connect_ind.plci);
+               printk(KERN_DEBUG " Contr = %d\n",
+                      msg->msg.connect_ind.controller);
+               printk(KERN_DEBUG " SI1   = %d\n",
+                      msg->msg.connect_ind.si1);
+               printk(KERN_DEBUG " SI2   = %d\n",
+                      msg->msg.connect_ind.si2);
+               printk(KERN_DEBUG " EAZ   = '%c'\n",
+                      msg->msg.connect_ind.eaz);
+               actcapi_debug_caddr(&msg->msg.connect_ind.addr);
+               break;
+       case 5:
+               /* CONNECT ACTIVE IND */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.connect_active_ind.plci);
+               actcapi_debug_caddr(&msg->msg.connect_active_ind.addr);
+               break;
+       case 8:
+               /* LISTEN CONF */
+               printk(KERN_DEBUG " Contr = %d\n",
+                      msg->msg.listen_conf.controller);
+               printk(KERN_DEBUG " Info = 0x%04x\n",
+                      msg->msg.listen_conf.info);
+               break;
+       case 11:
+               /* INFO IND */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.info_ind.plci);
+               printk(KERN_DEBUG " Imsk = 0x%04x\n",
+                      msg->msg.info_ind.nr.mask);
+               if (msg->hdr.len > 12) {
+                       int l = msg->hdr.len - 12;
+                       int j;
+                       char *p = tmp;
+                       for (j = 0; j < l; j++)
+                               p += sprintf(p, "%02x ", msg->msg.info_ind.el.display[j]);
+                       printk(KERN_DEBUG " D = '%s'\n", tmp);
+               }
+               break;
+       case 14:
+               /* SELECT B2 PROTOCOL CONF */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.select_b2_protocol_conf.plci);
+               printk(KERN_DEBUG " Info = 0x%04x\n",
+                      msg->msg.select_b2_protocol_conf.info);
+               break;
+       case 15:
+               /* SELECT B3 PROTOCOL CONF */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.select_b3_protocol_conf.plci);
+               printk(KERN_DEBUG " Info = 0x%04x\n",
+                      msg->msg.select_b3_protocol_conf.info);
+               break;
+       case 16:
+               /* LISTEN B3 CONF */
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.listen_b3_conf.plci);
+               printk(KERN_DEBUG " Info = 0x%04x\n",
+                      msg->msg.listen_b3_conf.info);
+               break;
+       case 18:
+               /* CONNECT B3 IND */
+               printk(KERN_DEBUG " NCCI = 0x%04x\n",
+                      msg->msg.connect_b3_ind.ncci);
+               printk(KERN_DEBUG " PLCI = 0x%04x\n",
+                      msg->msg.connect_b3_ind.plci);
+               actcapi_debug_ncpi(&msg->msg.connect_b3_ind.ncpi);
+               break;
+       case 19:
+               /* CONNECT B3 ACTIVE IND */
+               printk(KERN_DEBUG " NCCI = 0x%04x\n",
+                      msg->msg.connect_b3_active_ind.ncci);
+               actcapi_debug_ncpi(&msg->msg.connect_b3_active_ind.ncpi);
+               break;
+       case 26:
+               /* MANUFACTURER IND */
+               printk(KERN_DEBUG " Mmsg = 0x%02x\n",
+                      msg->msg.manufacturer_ind_err.manuf_msg);
+               switch (msg->msg.manufacturer_ind_err.manuf_msg) {
                case 3:
-                       /* CONNECT IND */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.connect_ind.plci);
                        printk(KERN_DEBUG " Contr = %d\n",
-                              msg->msg.connect_ind.controller);
-                       printk(KERN_DEBUG " SI1   = %d\n",
-                              msg->msg.connect_ind.si1);
-                       printk(KERN_DEBUG " SI2   = %d\n",
-                              msg->msg.connect_ind.si2);
-                       printk(KERN_DEBUG " EAZ   = '%c'\n",
-                              msg->msg.connect_ind.eaz);
-                       actcapi_debug_caddr(&msg->msg.connect_ind.addr);
-                       break;
-               case 5:
-                       /* CONNECT ACTIVE IND */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.connect_active_ind.plci);
-                       actcapi_debug_caddr(&msg->msg.connect_active_ind.addr);
-                       break;
-               case 8:
-                       /* LISTEN CONF */
-                       printk(KERN_DEBUG " Contr = %d\n",
-                              msg->msg.listen_conf.controller);
-                       printk(KERN_DEBUG " Info = 0x%04x\n",
-                              msg->msg.listen_conf.info);
-                       break;
-               case 11:
-                       /* INFO IND */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.info_ind.plci);
-                       printk(KERN_DEBUG " Imsk = 0x%04x\n",
-                              msg->msg.info_ind.nr.mask);
-                       if (msg->hdr.len > 12) {
-                               int l = msg->hdr.len - 12;
-                               int j;
-                               char *p = tmp;
-                               for (j = 0; j < l ; j++)
-                                       p += sprintf(p, "%02x ", msg->msg.info_ind.el.display[j]);
-                               printk(KERN_DEBUG " D = '%s'\n", tmp);
-                       }
-                       break;
-               case 14:
-                       /* SELECT B2 PROTOCOL CONF */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.select_b2_protocol_conf.plci);
-                       printk(KERN_DEBUG " Info = 0x%04x\n",
-                              msg->msg.select_b2_protocol_conf.info);
-                       break;
-               case 15:
-                       /* SELECT B3 PROTOCOL CONF */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.select_b3_protocol_conf.plci);
-                       printk(KERN_DEBUG " Info = 0x%04x\n",
-                              msg->msg.select_b3_protocol_conf.info);
-                       break;
-               case 16:
-                       /* LISTEN B3 CONF */
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.listen_b3_conf.plci);
-                       printk(KERN_DEBUG " Info = 0x%04x\n",
-                              msg->msg.listen_b3_conf.info);
-                       break;
-               case 18:
-                       /* CONNECT B3 IND */
-                       printk(KERN_DEBUG " NCCI = 0x%04x\n",
-                              msg->msg.connect_b3_ind.ncci);
-                       printk(KERN_DEBUG " PLCI = 0x%04x\n",
-                              msg->msg.connect_b3_ind.plci);
-                       actcapi_debug_ncpi(&msg->msg.connect_b3_ind.ncpi);
-                       break;
-               case 19:
-                       /* CONNECT B3 ACTIVE IND */
-                       printk(KERN_DEBUG " NCCI = 0x%04x\n",
-                              msg->msg.connect_b3_active_ind.ncci);
-                       actcapi_debug_ncpi(&msg->msg.connect_b3_active_ind.ncpi);
-                       break;
-               case 26:
-                       /* MANUFACTURER IND */
-                       printk(KERN_DEBUG " Mmsg = 0x%02x\n",
-                              msg->msg.manufacturer_ind_err.manuf_msg);
-                       switch (msg->msg.manufacturer_ind_err.manuf_msg) {
-                               case 3:
-                                       printk(KERN_DEBUG " Contr = %d\n",
-                                              msg->msg.manufacturer_ind_err.controller);
-                                       printk(KERN_DEBUG " Code = 0x%08x\n",
-                                              msg->msg.manufacturer_ind_err.errcode);
-                                       memset(tmp, 0, sizeof(tmp));
-                                       strncpy(tmp, &msg->msg.manufacturer_ind_err.errstring,
-                                               msg->hdr.len - 16);
-                                       printk(KERN_DEBUG " Emsg = '%s'\n", tmp);
-                                       break;
-                       }
-                       break;
-               case 30:
-                       /* LISTEN REQ */
-                       printk(KERN_DEBUG " Imsk = 0x%08x\n",
-                              msg->msg.listen_req.infomask);
-                       printk(KERN_DEBUG " Emsk = 0x%04x\n",
-                              msg->msg.listen_req.eazmask);
-                       printk(KERN_DEBUG " Smsk = 0x%04x\n",
-                              msg->msg.listen_req.simask);
-                       break;
-               case 35:
-                       /* SELECT_B2_PROTOCOL_REQ */
-                       printk(KERN_DEBUG " PLCI  = 0x%04x\n",
-                              msg->msg.select_b2_protocol_req.plci);
-                       printk(KERN_DEBUG " prot  = 0x%02x\n",
-                              msg->msg.select_b2_protocol_req.protocol);
-                       if (msg->hdr.len >= 11)
-                               printk(KERN_DEBUG "No dlpd\n");
-                       else
-                               actcapi_debug_dlpd(&msg->msg.select_b2_protocol_req.dlpd);
-                       break;
-               case 44:
-                       /* CONNECT RESP */
-                       printk(KERN_DEBUG " PLCI  = 0x%04x\n",
-                              msg->msg.connect_resp.plci);
-                       printk(KERN_DEBUG " CAUSE = 0x%02x\n",
-                              msg->msg.connect_resp.rejectcause);
-                       break;
-               case 45:
-                       /* CONNECT ACTIVE RESP */
-                       printk(KERN_DEBUG " PLCI  = 0x%04x\n",
-                              msg->msg.connect_active_resp.plci);
+                              msg->msg.manufacturer_ind_err.controller);
+                       printk(KERN_DEBUG " Code = 0x%08x\n",
+                              msg->msg.manufacturer_ind_err.errcode);
+                       memset(tmp, 0, sizeof(tmp));
+                       strncpy(tmp, &msg->msg.manufacturer_ind_err.errstring,
+                               msg->hdr.len - 16);
+                       printk(KERN_DEBUG " Emsg = '%s'\n", tmp);
                        break;
+               }
+               break;
+       case 30:
+               /* LISTEN REQ */
+               printk(KERN_DEBUG " Imsk = 0x%08x\n",
+                      msg->msg.listen_req.infomask);
+               printk(KERN_DEBUG " Emsk = 0x%04x\n",
+                      msg->msg.listen_req.eazmask);
+               printk(KERN_DEBUG " Smsk = 0x%04x\n",
+                      msg->msg.listen_req.simask);
+               break;
+       case 35:
+               /* SELECT_B2_PROTOCOL_REQ */
+               printk(KERN_DEBUG " PLCI  = 0x%04x\n",
+                      msg->msg.select_b2_protocol_req.plci);
+               printk(KERN_DEBUG " prot  = 0x%02x\n",
+                      msg->msg.select_b2_protocol_req.protocol);
+               if (msg->hdr.len >= 11)
+                       printk(KERN_DEBUG "No dlpd\n");
+               else
+                       actcapi_debug_dlpd(&msg->msg.select_b2_protocol_req.dlpd);
+               break;
+       case 44:
+               /* CONNECT RESP */
+               printk(KERN_DEBUG " PLCI  = 0x%04x\n",
+                      msg->msg.connect_resp.plci);
+               printk(KERN_DEBUG " CAUSE = 0x%02x\n",
+                      msg->msg.connect_resp.rejectcause);
+               break;
+       case 45:
+               /* CONNECT ACTIVE RESP */
+               printk(KERN_DEBUG " PLCI  = 0x%04x\n",
+                      msg->msg.connect_active_resp.plci);
+               break;
        }
 }
 #endif
index e55f6a9..01ccdec 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Fritz Elfert
  * Copyright    by Fritz Elfert      <fritz@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -46,10 +46,10 @@ typedef struct actcapi_addr {
 typedef  union actcapi_infonr {              /* info number                  */
        __u16 mask;                          /* info-mask field              */
        struct bmask {                       /* bit definitions              */
-               unsigned  codes : 3;         /* code set                     */
-               unsigned  rsvd  : 5;         /* reserved                     */
-               unsigned  svind : 1;         /* single, variable length ind. */
-               unsigned  wtype : 7;         /* W-element type               */
+               unsigned  codes:3;           /* code set                     */
+               unsigned  rsvd:5;            /* reserved                     */
+               unsigned  svind:1;           /* single, variable length ind. */
+               unsigned  wtype:7;           /* W-element type               */
        } bmask;
 } actcapi_infonr;
 
@@ -59,13 +59,13 @@ typedef union  actcapi_infoel {              /* info element                 */
        __u8 display[40];                    /* display contents             */
        __u8 uuinfo[40];                     /* User-user info field         */
        struct cause {                       /* Cause information            */
-               unsigned ext2  : 1;          /* extension                    */
-               unsigned cod   : 2;          /* coding standard              */
-               unsigned spare : 1;          /* spare                        */
-               unsigned loc   : 4;          /* location                     */
-               unsigned ext1  : 1;          /* extension                    */
-               unsigned cval  : 7;          /* Cause value                  */
-       } cause;                     
+               unsigned ext2:1;             /* extension                    */
+               unsigned cod:2;              /* coding standard              */
+               unsigned spare:1;            /* spare                        */
+               unsigned loc:4;              /* location                     */
+               unsigned ext1:1;             /* extension                    */
+               unsigned cval:7;             /* Cause value                  */
+       } cause;
        struct charge {                      /* Charging information         */
                __u8 toc;                    /* type of charging info        */
                __u8 unit[10];               /* charging units               */
@@ -111,14 +111,14 @@ typedef struct actcapi_ncpd {
  * Bit 5-7  = Controller
  * Bit 8-15 = NCCI
  */
-#define MAKE_NCCI(plci,contr,ncci) \
-        ((plci & 0x1f) | ((contr & 0x7) << 5) | ((ncci & 0xff) << 8))
+#define MAKE_NCCI(plci, contr, ncci)                                   \
+       ((plci & 0x1f) | ((contr & 0x7) << 5) | ((ncci & 0xff) << 8))
 
-#define EVAL_NCCI(fakencci,plci,contr,ncci) { \
-       plci  = fakencci & 0x1f; \
-       contr = (fakencci >> 5) & 0x7; \
-       ncci  = (fakencci >> 8) & 0xff; \
-}
+#define EVAL_NCCI(fakencci, plci, contr, ncci) {       \
+               plci  = fakencci & 0x1f;                \
+               contr = (fakencci >> 5) & 0x7;          \
+               ncci  = (fakencci >> 8) & 0xff;         \
+       }
 
 /*
  * Layout of PLCI field in a B3 DATA CAPI message is different from
@@ -128,13 +128,13 @@ typedef struct actcapi_ncpd {
  * Bit 5-7  = Controller
  * Bit 8-15 = reserved (must be 0)
  */
-#define MAKE_PLCI(plci,contr) \
-        ((plci & 0x1f) | ((contr & 0x7) << 5))
+#define MAKE_PLCI(plci, contr)                 \
+       ((plci & 0x1f) | ((contr & 0x7) << 5))
 
-#define EVAL_PLCI(fakeplci,plci,contr) { \
-       plci  = fakeplci & 0x1f; \
-       contr = (fakeplci >> 5) & 0x7; \
-}
+#define EVAL_PLCI(fakeplci, plci, contr) {     \
+               plci  = fakeplci & 0x1f;        \
+               contr = (fakeplci >> 5) & 0x7;  \
+       }
 
 typedef struct actcapi_msg {
        actcapi_msghdr hdr;
index 05ed72c..b4147c0 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Fritz Elfert
  * Copyright    by Fritz Elfert      <fritz@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -21,8 +21,8 @@
 
 static unsigned short act2000_isa_ports[] =
 {
-        0x0200, 0x0240, 0x0280, 0x02c0, 0x0300, 0x0340, 0x0380,
-        0xcfe0, 0xcfa0, 0xcf60, 0xcf20, 0xcee0, 0xcea0, 0xce60,
+       0x0200, 0x0240, 0x0280, 0x02c0, 0x0300, 0x0340, 0x0380,
+       0xcfe0, 0xcfa0, 0xcf60, 0xcf20, 0xcee0, 0xcea0, 0xce60,
 };
 
 static act2000_card *cards = (act2000_card *) NULL;
@@ -33,14 +33,14 @@ static int   act_port = -1;  /* -1 = Autoprobe  */
 static int   act_irq  = -1;
 static char *act_id   = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
 
-MODULE_DESCRIPTION(       "ISDN4Linux: Driver for IBM Active 2000 ISDN card");
-MODULE_AUTHOR(            "Fritz Elfert");
-MODULE_LICENSE(           "GPL");
+MODULE_DESCRIPTION("ISDN4Linux: Driver for IBM Active 2000 ISDN card");
+MODULE_AUTHOR("Fritz Elfert");
+MODULE_LICENSE("GPL");
 MODULE_PARM_DESC(act_bus, "BusType of first card, 1=ISA, 2=MCA, 3=PCMCIA, currently only ISA");
 MODULE_PARM_DESC(membase, "Base port address of first card");
 MODULE_PARM_DESC(act_irq, "IRQ of first card");
-MODULE_PARM_DESC(act_id,  "ID-String of first card");
-module_param(act_bus,  int, 0);
+MODULE_PARM_DESC(act_id, "ID-String of first card");
+module_param(act_bus, int, 0);
 module_param(act_port, int, 0);
 module_param(act_irq, int, 0);
 module_param(act_id, charp, 0);
@@ -51,7 +51,7 @@ static act2000_chan *
 find_channel(act2000_card *card, int channel)
 {
        if ((channel >= 0) && (channel < ACT2000_BCH))
-               return &(card->bch[channel]);
+               return &(card->bch[channel]);
        printk(KERN_WARNING "act2000: Invalid channel %d\n", channel);
        return NULL;
 }
@@ -84,7 +84,7 @@ act2000_clear_msn(act2000_card *card)
 static __u16
 act2000_find_msn(act2000_card *card, char *msn, int ia5)
 {
-        struct msn_entry *p = card->msn_list;
+       struct msn_entry *p = card->msn_list;
        __u8 eaz = '0';
 
        while (p) {
@@ -107,14 +107,14 @@ act2000_find_msn(act2000_card *card, char *msn, int ia5)
 char *
 act2000_find_eaz(act2000_card *card, char eaz)
 {
-        struct msn_entry *p = card->msn_list;
+       struct msn_entry *p = card->msn_list;
 
        while (p) {
                if (p->eaz == eaz)
-                       return(p->msn);
+                       return (p->msn);
                p = p->next;
        }
-       return("\0");
+       return ("\0");
 }
 
 /*
@@ -126,11 +126,11 @@ act2000_find_eaz(act2000_card *card, char eaz)
 static int
 act2000_set_msn(act2000_card *card, char *eazmsn)
 {
-        struct msn_entry *p = card->msn_list;
-        struct msn_entry *q = NULL;
+       struct msn_entry *p = card->msn_list;
+       struct msn_entry *q = NULL;
        unsigned long flags;
        int i;
-       
+
        if (!strlen(eazmsn))
                return 0;
        if (strlen(eazmsn) > 16)
@@ -138,7 +138,7 @@ act2000_set_msn(act2000_card *card, char *eazmsn)
        for (i = 0; i < strlen(eazmsn); i++)
                if (!isdigit(eazmsn[i]))
                        return -EINVAL;
-        if (strlen(eazmsn) == 1) {
+       if (strlen(eazmsn) == 1) {
                /* Delete a single MSN */
                while (p) {
                        if (p->eaz == eazmsn[0]) {
@@ -158,7 +158,7 @@ act2000_set_msn(act2000_card *card, char *eazmsn)
                        p = p->next;
                }
                return 0;
-        }
+       }
        /* Add a single MSN */
        while (p) {
                /* Found in list, replace MSN */
@@ -198,14 +198,14 @@ act2000_transmit(struct work_struct *work)
                container_of(work, struct act2000_card, snd_tq);
 
        switch (card->bus) {
-               case ACT2000_BUS_ISA:
-                       act2000_isa_send(card);
-                       break;
-               case ACT2000_BUS_PCMCIA:
-               case ACT2000_BUS_MCA:
-               default:
-                       printk(KERN_WARNING
-                              "act2000_transmit: Illegal bustype %d\n", card->bus);
+       case ACT2000_BUS_ISA:
+               act2000_isa_send(card);
+               break;
+       case ACT2000_BUS_PCMCIA:
+       case ACT2000_BUS_MCA:
+       default:
+               printk(KERN_WARNING
+                      "act2000_transmit: Illegal bustype %d\n", card->bus);
        }
 }
 
@@ -216,221 +216,221 @@ act2000_receive(struct work_struct *work)
                container_of(work, struct act2000_card, poll_tq);
 
        switch (card->bus) {
-               case ACT2000_BUS_ISA:
-                       act2000_isa_receive(card);
-                       break;
-               case ACT2000_BUS_PCMCIA:
-               case ACT2000_BUS_MCA:
-               default:
-                       printk(KERN_WARNING
-                              "act2000_receive: Illegal bustype %d\n", card->bus);
+       case ACT2000_BUS_ISA:
+               act2000_isa_receive(card);
+               break;
+       case ACT2000_BUS_PCMCIA:
+       case ACT2000_BUS_MCA:
+       default:
+               printk(KERN_WARNING
+                      "act2000_receive: Illegal bustype %d\n", card->bus);
        }
 }
 
 static void
 act2000_poll(unsigned long data)
 {
-       act2000_card * card = (act2000_card *)data;
+       act2000_card *card = (act2000_card *)data;
        unsigned long flags;
 
        act2000_receive(&card->poll_tq);
        spin_lock_irqsave(&card->lock, flags);
-       mod_timer(&card->ptimer, jiffies+3);
+       mod_timer(&card->ptimer, jiffies + 3);
        spin_unlock_irqrestore(&card->lock, flags);
 }
 
 static int
-act2000_command(act2000_card * card, isdn_ctrl * c)
+act2000_command(act2000_card *card, isdn_ctrl *c)
 {
-        ulong a;
-        act2000_chan *chan;
+       ulong a;
+       act2000_chan *chan;
        act2000_cdef cdef;
        isdn_ctrl cmd;
        char tmp[17];
        int ret;
        unsigned long flags;
        void __user *arg;
-        switch (c->command) {
-               case ISDN_CMD_IOCTL:
-                       memcpy(&a, c->parm.num, sizeof(ulong));
-                       arg = (void __user *)a;
-                       switch (c->arg) {
-                               case ACT2000_IOCTL_LOADBOOT:
-                                       switch (card->bus) {
-                                               case ACT2000_BUS_ISA:
-                                                       ret = act2000_isa_download(card,
-                                                                          arg);
-                                                       if (!ret) {
-                                                               card->flags |= ACT2000_FLAGS_LOADED;
-                                                               if (!(card->flags & ACT2000_FLAGS_IVALID)) {
-                                                                       card->ptimer.expires = jiffies + 3;
-                                                                       card->ptimer.function = act2000_poll;
-                                                                       card->ptimer.data = (unsigned long)card;
-                                                                       add_timer(&card->ptimer);
-                                                               }
-                                                               actcapi_manufacturer_req_errh(card);
-                                                       }
-                                                       break;
-                                               default:
-                                                       printk(KERN_WARNING
-                                                              "act2000: Illegal BUS type %d\n",
-                                                              card->bus);
-                                                       ret = -EIO;
+
+       switch (c->command) {
+       case ISDN_CMD_IOCTL:
+               memcpy(&a, c->parm.num, sizeof(ulong));
+               arg = (void __user *)a;
+               switch (c->arg) {
+               case ACT2000_IOCTL_LOADBOOT:
+                       switch (card->bus) {
+                       case ACT2000_BUS_ISA:
+                               ret = act2000_isa_download(card,
+                                                          arg);
+                               if (!ret) {
+                                       card->flags |= ACT2000_FLAGS_LOADED;
+                                       if (!(card->flags & ACT2000_FLAGS_IVALID)) {
+                                               card->ptimer.expires = jiffies + 3;
+                                               card->ptimer.function = act2000_poll;
+                                               card->ptimer.data = (unsigned long)card;
+                                               add_timer(&card->ptimer);
                                        }
-                                       return ret;
-                               case ACT2000_IOCTL_SETPROTO:
-                                       card->ptype = a?ISDN_PTYPE_EURO:ISDN_PTYPE_1TR6;
-                                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                                               return 0;
-                                       actcapi_manufacturer_req_net(card);
-                                       return 0;
-                               case ACT2000_IOCTL_SETMSN:
-                                       if (copy_from_user(tmp, arg,
-                                                          sizeof(tmp)))
-                                               return -EFAULT;
-                                       if ((ret = act2000_set_msn(card, tmp)))
-                                               return ret;
-                                       if (card->flags & ACT2000_FLAGS_RUNNING)
-                                               return(actcapi_manufacturer_req_msn(card));
-                                       return 0;
-                               case ACT2000_IOCTL_ADDCARD:
-                                       if (copy_from_user(&cdef, arg,
-                                                          sizeof(cdef)))
-                                               return -EFAULT;
-                                       if (act2000_addcard(cdef.bus, cdef.port, cdef.irq, cdef.id))
-                                               return -EIO;
-                                       return 0;
-                               case ACT2000_IOCTL_TEST:
-                                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                                               return -ENODEV;
-                                       return 0;
-                               default:
-                                       return -EINVAL;
-                       }
-                       break;
-               case ISDN_CMD_DIAL:
-                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
+                                       actcapi_manufacturer_req_errh(card);
+                               }
                                break;
-                       spin_lock_irqsave(&card->lock, flags);
-                       if (chan->fsm_state != ACT2000_STATE_NULL) {
-                               spin_unlock_irqrestore(&card->lock, flags);
-                               printk(KERN_WARNING "Dial on channel with state %d\n",
-                                       chan->fsm_state);
-                               return -EBUSY;
-                       }
-                       if (card->ptype == ISDN_PTYPE_EURO)
-                               tmp[0] = act2000_find_msn(card, c->parm.setup.eazmsn, 1);
-                       else
-                               tmp[0] = c->parm.setup.eazmsn[0];
-                       chan->fsm_state = ACT2000_STATE_OCALL;
-                       chan->callref = 0xffff;
-                       spin_unlock_irqrestore(&card->lock, flags);
-                       ret = actcapi_connect_req(card, chan, c->parm.setup.phone,
-                                                 tmp[0], c->parm.setup.si1,
-                                                 c->parm.setup.si2);
-                       if (ret) {
-                               cmd.driver = card->myid;
-                               cmd.command = ISDN_STAT_DHUP;
-                               cmd.arg &= 0x0f;
-                               card->interface.statcallb(&cmd);
+                       default:
+                               printk(KERN_WARNING
+                                      "act2000: Illegal BUS type %d\n",
+                                      card->bus);
+                               ret = -EIO;
                        }
                        return ret;
-               case ISDN_CMD_ACCEPTD:
-                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
-                               break;
-                       if (chan->fsm_state == ACT2000_STATE_ICALL)
-                               actcapi_select_b2_protocol_req(card, chan);
-                       return 0;
-               case ISDN_CMD_ACCEPTB:
-                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       return 0;
-               case ISDN_CMD_HANGUP:
+               case ACT2000_IOCTL_SETPROTO:
+                       card->ptype = a ? ISDN_PTYPE_EURO : ISDN_PTYPE_1TR6;
                        if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
-                               break;
-                       switch (chan->fsm_state) {
-                               case ACT2000_STATE_ICALL:
-                               case ACT2000_STATE_BSETUP:
-                                       actcapi_connect_resp(card, chan, 0x15);
-                                       break;
-                               case ACT2000_STATE_ACTIVE:
-                                       actcapi_disconnect_b3_req(card, chan);
-                                       break;
-                       }
+                               return 0;
+                       actcapi_manufacturer_req_net(card);
                        return 0;
-               case ISDN_CMD_SETEAZ:
-                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
-                               break;
-                       if (strlen(c->parm.num)) {
-                               if (card->ptype == ISDN_PTYPE_EURO) {
-                                       chan->eazmask = act2000_find_msn(card, c->parm.num, 0);
-                               }
-                               if (card->ptype == ISDN_PTYPE_1TR6) {
-                                       int i;
-                                       chan->eazmask = 0;
-                                       for (i = 0; i < strlen(c->parm.num); i++)
-                                               if (isdigit(c->parm.num[i]))
-                                                       chan->eazmask |= (1 << (c->parm.num[i] - '0'));
-                               }
-                       } else
-                               chan->eazmask = 0x3ff;
-                       actcapi_listen_req(card);
+               case ACT2000_IOCTL_SETMSN:
+                       if (copy_from_user(tmp, arg,
+                                          sizeof(tmp)))
+                               return -EFAULT;
+                       if ((ret = act2000_set_msn(card, tmp)))
+                               return ret;
+                       if (card->flags & ACT2000_FLAGS_RUNNING)
+                               return (actcapi_manufacturer_req_msn(card));
                        return 0;
-               case ISDN_CMD_CLREAZ:
-                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
-                               break;
-                       chan->eazmask = 0;
-                       actcapi_listen_req(card);
+               case ACT2000_IOCTL_ADDCARD:
+                       if (copy_from_user(&cdef, arg,
+                                          sizeof(cdef)))
+                               return -EFAULT;
+                       if (act2000_addcard(cdef.bus, cdef.port, cdef.irq, cdef.id))
+                               return -EIO;
                        return 0;
-               case ISDN_CMD_SETL2:
+               case ACT2000_IOCTL_TEST:
                        if (!(card->flags & ACT2000_FLAGS_RUNNING))
                                return -ENODEV;
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
-                               break;
-                       chan->l2prot = (c->arg >> 8);
                        return 0;
-               case ISDN_CMD_SETL3:
-                       if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if ((c->arg >> 8) != ISDN_PROTO_L3_TRANS) {
-                               printk(KERN_WARNING "L3 protocol unknown\n");
-                               return -1;
+               default:
+                       return -EINVAL;
+               }
+               break;
+       case ISDN_CMD_DIAL:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               spin_lock_irqsave(&card->lock, flags);
+               if (chan->fsm_state != ACT2000_STATE_NULL) {
+                       spin_unlock_irqrestore(&card->lock, flags);
+                       printk(KERN_WARNING "Dial on channel with state %d\n",
+                              chan->fsm_state);
+                       return -EBUSY;
+               }
+               if (card->ptype == ISDN_PTYPE_EURO)
+                       tmp[0] = act2000_find_msn(card, c->parm.setup.eazmsn, 1);
+               else
+                       tmp[0] = c->parm.setup.eazmsn[0];
+               chan->fsm_state = ACT2000_STATE_OCALL;
+               chan->callref = 0xffff;
+               spin_unlock_irqrestore(&card->lock, flags);
+               ret = actcapi_connect_req(card, chan, c->parm.setup.phone,
+                                         tmp[0], c->parm.setup.si1,
+                                         c->parm.setup.si2);
+               if (ret) {
+                       cmd.driver = card->myid;
+                       cmd.command = ISDN_STAT_DHUP;
+                       cmd.arg &= 0x0f;
+                       card->interface.statcallb(&cmd);
+               }
+               return ret;
+       case ISDN_CMD_ACCEPTD:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               if (chan->fsm_state == ACT2000_STATE_ICALL)
+                       actcapi_select_b2_protocol_req(card, chan);
+               return 0;
+       case ISDN_CMD_ACCEPTB:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               return 0;
+       case ISDN_CMD_HANGUP:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               switch (chan->fsm_state) {
+               case ACT2000_STATE_ICALL:
+               case ACT2000_STATE_BSETUP:
+                       actcapi_connect_resp(card, chan, 0x15);
+                       break;
+               case ACT2000_STATE_ACTIVE:
+                       actcapi_disconnect_b3_req(card, chan);
+                       break;
+               }
+               return 0;
+       case ISDN_CMD_SETEAZ:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               if (strlen(c->parm.num)) {
+                       if (card->ptype == ISDN_PTYPE_EURO) {
+                               chan->eazmask = act2000_find_msn(card, c->parm.num, 0);
                        }
-                       if (!(chan = find_channel(card, c->arg & 0x0f)))
-                               break;
-                       chan->l3prot = (c->arg >> 8);
-                       return 0;
-        }
-       
-        return -EINVAL;
+                       if (card->ptype == ISDN_PTYPE_1TR6) {
+                               int i;
+                               chan->eazmask = 0;
+                               for (i = 0; i < strlen(c->parm.num); i++)
+                                       if (isdigit(c->parm.num[i]))
+                                               chan->eazmask |= (1 << (c->parm.num[i] - '0'));
+                       }
+               } else
+                       chan->eazmask = 0x3ff;
+               actcapi_listen_req(card);
+               return 0;
+       case ISDN_CMD_CLREAZ:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               chan->eazmask = 0;
+               actcapi_listen_req(card);
+               return 0;
+       case ISDN_CMD_SETL2:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               chan->l2prot = (c->arg >> 8);
+               return 0;
+       case ISDN_CMD_SETL3:
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               if ((c->arg >> 8) != ISDN_PROTO_L3_TRANS) {
+                       printk(KERN_WARNING "L3 protocol unknown\n");
+                       return -1;
+               }
+               if (!(chan = find_channel(card, c->arg & 0x0f)))
+                       break;
+               chan->l3prot = (c->arg >> 8);
+               return 0;
+       }
+
+       return -EINVAL;
 }
 
 static int
 act2000_sendbuf(act2000_card *card, int channel, int ack, struct sk_buff *skb)
 {
-        struct sk_buff *xmit_skb;
-        int len;
-        act2000_chan *chan;
+       struct sk_buff *xmit_skb;
+       int len;
+       act2000_chan *chan;
        actcapi_msg *msg;
 
-        if (!(chan = find_channel(card, channel)))
+       if (!(chan = find_channel(card, channel)))
+               return -1;
+       if (chan->fsm_state != ACT2000_STATE_ACTIVE)
                return -1;
-        if (chan->fsm_state != ACT2000_STATE_ACTIVE)
-                return -1;
-        len = skb->len;
-        if ((chan->queued + len) >= ACT2000_MAX_QUEUED)
-                return 0;
+       len = skb->len;
+       if ((chan->queued + len) >= ACT2000_MAX_QUEUED)
+               return 0;
        if (!len)
                return 0;
        if (skb_headroom(skb) < 19) {
@@ -462,28 +462,28 @@ act2000_sendbuf(act2000_card *card, int channel, int ack, struct sk_buff *skb)
        msg->msg.data_b3_req.fakencci = MAKE_NCCI(chan->plci, 0, chan->ncci);
        msg->msg.data_b3_req.flags = ack; /* Will be set to 0 on actual sending */
        actcapi_debug_msg(xmit_skb, 1);
-        chan->queued += len;
+       chan->queued += len;
        skb_queue_tail(&card->sndq, xmit_skb);
        act2000_schedule_tx(card);
-        return len;
+       return len;
 }
 
 
 /* Read the Status-replies from the Interface */
 static int
-act2000_readstatus(u_char __user * buf, int len, act2000_card * card)
+act2000_readstatus(u_char __user *buf, int len, act2000_card *card)
 {
-        int count;
-        u_char __user *p;
+       int count;
+       u_char __user *p;
 
-        for (p = buf, count = 0; count < len; p++, count++) {
-                if (card->status_buf_read == card->status_buf_write)
-                        return count;
+       for (p = buf, count = 0; count < len; p++, count++) {
+               if (card->status_buf_read == card->status_buf_write)
+                       return count;
                put_user(*card->status_buf_read++, p);
-                if (card->status_buf_read > card->status_buf_end)
-                        card->status_buf_read = card->status_buf;
-        }
-        return count;
+               if (card->status_buf_read > card->status_buf_end)
+                       card->status_buf_read = card->status_buf;
+       }
+       return count;
 }
 
 /*
@@ -492,75 +492,75 @@ act2000_readstatus(u_char __user * buf, int len, act2000_card * card)
 static inline act2000_card *
 act2000_findcard(int driverid)
 {
-        act2000_card *p = cards;
-
-        while (p) {
-                if (p->myid == driverid)
-                        return p;
-                p = p->next;
-        }
-        return (act2000_card *) 0;
+       act2000_card *p = cards;
+
+       while (p) {
+               if (p->myid == driverid)
+                       return p;
+               p = p->next;
+       }
+       return (act2000_card *) 0;
 }
 
 /*
  * Wrapper functions for interface to linklevel
  */
 static int
-if_command(isdn_ctrl * c)
+if_command(isdn_ctrl *c)
 {
-        act2000_card *card = act2000_findcard(c->driver);
-
-        if (card)
-                return (act2000_command(card, c));
-        printk(KERN_ERR
-             "act2000: if_command %d called with invalid driverId %d!\n",
-               c->command, c->driver);
-        return -ENODEV;
+       act2000_card *card = act2000_findcard(c->driver);
+
+       if (card)
+               return (act2000_command(card, c));
+       printk(KERN_ERR
+              "act2000: if_command %d called with invalid driverId %d!\n",
+              c->command, c->driver);
+       return -ENODEV;
 }
 
 static int
 if_writecmd(const u_char __user *buf, int len, int id, int channel)
 {
-        act2000_card *card = act2000_findcard(id);
-
-        if (card) {
-                if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                        return -ENODEV;
-                return (len);
-        }
-        printk(KERN_ERR
-               "act2000: if_writecmd called with invalid driverId!\n");
-        return -ENODEV;
+       act2000_card *card = act2000_findcard(id);
+
+       if (card) {
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               return (len);
+       }
+       printk(KERN_ERR
+              "act2000: if_writecmd called with invalid driverId!\n");
+       return -ENODEV;
 }
 
 static int
-if_readstatus(u_char __user * buf, int len, int id, int channel)
+if_readstatus(u_char __user *buf, int len, int id, int channel)
 {
-        act2000_card *card = act2000_findcard(id);
-       
-        if (card) {
-                if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                        return -ENODEV;
-                return (act2000_readstatus(buf, len, card));
-        }
-        printk(KERN_ERR
-               "act2000: if_readstatus called with invalid driverId!\n");
-        return -ENODEV;
+       act2000_card *card = act2000_findcard(id);
+
+       if (card) {
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
+               return (act2000_readstatus(buf, len, card));
+       }
+       printk(KERN_ERR
+              "act2000: if_readstatus called with invalid driverId!\n");
+       return -ENODEV;
 }
 
 static int
 if_sendbuf(int id, int channel, int ack, struct sk_buff *skb)
 {
-        act2000_card *card = act2000_findcard(id);
-       
-        if (card) {
-                if (!(card->flags & ACT2000_FLAGS_RUNNING))
-                        return -ENODEV;
+       act2000_card *card = act2000_findcard(id);
+
+       if (card) {
+               if (!(card->flags & ACT2000_FLAGS_RUNNING))
+                       return -ENODEV;
                return (act2000_sendbuf(card, channel, ack, skb));
-        }
-        printk(KERN_ERR
-               "act2000: if_sendbuf called with invalid driverId!\n");
-        return -ENODEV;
+       }
+       printk(KERN_ERR
+              "act2000: if_sendbuf called with invalid driverId!\n");
+       return -ENODEV;
 }
 
 
@@ -572,14 +572,14 @@ static void
 act2000_alloccard(int bus, int port, int irq, char *id)
 {
        int i;
-        act2000_card *card;
-        if (!(card = kzalloc(sizeof(act2000_card), GFP_KERNEL))) {
-                printk(KERN_WARNING
+       act2000_card *card;
+       if (!(card = kzalloc(sizeof(act2000_card), GFP_KERNEL))) {
+               printk(KERN_WARNING
                       "act2000: (%s) Could not allocate card-struct.\n", id);
-                return;
-        }
-        spin_lock_init(&card->lock);
-        spin_lock_init(&card->mnlock);
+               return;
+       }
+       spin_lock_init(&card->lock);
+       spin_lock_init(&card->mnlock);
        skb_queue_head_init(&card->sndq);
        skb_queue_head_init(&card->rcvq);
        skb_queue_head_init(&card->ackq);
@@ -588,82 +588,82 @@ act2000_alloccard(int bus, int port, int irq, char *id)
        INIT_WORK(&card->poll_tq, act2000_receive);
        init_timer(&card->ptimer);
        card->interface.owner = THIS_MODULE;
-        card->interface.channels = ACT2000_BCH;
-        card->interface.maxbufsize = 4000;
-        card->interface.command = if_command;
-        card->interface.writebuf_skb = if_sendbuf;
-        card->interface.writecmd = if_writecmd;
-        card->interface.readstat = if_readstatus;
-        card->interface.features =
+       card->interface.channels = ACT2000_BCH;
+       card->interface.maxbufsize = 4000;
+       card->interface.command = if_command;
+       card->interface.writebuf_skb = if_sendbuf;
+       card->interface.writecmd = if_writecmd;
+       card->interface.readstat = if_readstatus;
+       card->interface.features =
                ISDN_FEATURE_L2_X75I |
                ISDN_FEATURE_L2_HDLC |
                ISDN_FEATURE_L3_TRANS |
                ISDN_FEATURE_P_UNKNOWN;
-        card->interface.hl_hdrlen = 20;
-        card->ptype = ISDN_PTYPE_EURO;
-        strlcpy(card->interface.id, id, sizeof(card->interface.id));
-        for (i=0; i<ACT2000_BCH; i++) {
-                card->bch[i].plci = 0x8000;
-                card->bch[i].ncci = 0x8000;
-                card->bch[i].l2prot = ISDN_PROTO_L2_X75I;
-                card->bch[i].l3prot = ISDN_PROTO_L3_TRANS;
-        }
-        card->myid = -1;
-        card->bus = bus;
-        card->port = port;
-        card->irq = irq;
-        card->next = cards;
-        cards = card;
+       card->interface.hl_hdrlen = 20;
+       card->ptype = ISDN_PTYPE_EURO;
+       strlcpy(card->interface.id, id, sizeof(card->interface.id));
+       for (i = 0; i < ACT2000_BCH; i++) {
+               card->bch[i].plci = 0x8000;
+               card->bch[i].ncci = 0x8000;
+               card->bch[i].l2prot = ISDN_PROTO_L2_X75I;
+               card->bch[i].l3prot = ISDN_PROTO_L3_TRANS;
+       }
+       card->myid = -1;
+       card->bus = bus;
+       card->port = port;
+       card->irq = irq;
+       card->next = cards;
+       cards = card;
 }
 
 /*
  * register card at linklevel
  */
 static int
-act2000_registercard(act2000_card * card)
+act2000_registercard(act2000_card *card)
 {
-        switch (card->bus) {
-               case ACT2000_BUS_ISA:
-                       break;
-               case ACT2000_BUS_MCA:
-               case ACT2000_BUS_PCMCIA:
-               default:
-                       printk(KERN_WARNING
-                              "act2000: Illegal BUS type %d\n",
-                              card->bus);
-                       return -1;
-        }
-        if (!register_isdn(&card->interface)) {
-                printk(KERN_WARNING
-                       "act2000: Unable to register %s\n",
-                       card->interface.id);
-                return -1;
-        }
-        card->myid = card->interface.channels;
-        sprintf(card->regname, "act2000-isdn (%s)", card->interface.id);
-        return 0;
+       switch (card->bus) {
+       case ACT2000_BUS_ISA:
+               break;
+       case ACT2000_BUS_MCA:
+       case ACT2000_BUS_PCMCIA:
+       default:
+               printk(KERN_WARNING
+                      "act2000: Illegal BUS type %d\n",
+                      card->bus);
+               return -1;
+       }
+       if (!register_isdn(&card->interface)) {
+               printk(KERN_WARNING
+                      "act2000: Unable to register %s\n",
+                      card->interface.id);
+               return -1;
+       }
+       card->myid = card->interface.channels;
+       sprintf(card->regname, "act2000-isdn (%s)", card->interface.id);
+       return 0;
 }
 
 static void
-unregister_card(act2000_card * card)
+unregister_card(act2000_card *card)
 {
-        isdn_ctrl cmd;
+       isdn_ctrl cmd;
 
-        cmd.command = ISDN_STAT_UNLOAD;
-        cmd.driver = card->myid;
-        card->interface.statcallb(&cmd);
-        switch (card->bus) {
-               case ACT2000_BUS_ISA:
-                       act2000_isa_release(card);
-                       break;
-               case ACT2000_BUS_MCA:
-               case ACT2000_BUS_PCMCIA:
-               default:
-                       printk(KERN_WARNING
-                              "act2000: Invalid BUS type %d\n",
-                              card->bus);
-                       break;
-        }
+       cmd.command = ISDN_STAT_UNLOAD;
+       cmd.driver = card->myid;
+       card->interface.statcallb(&cmd);
+       switch (card->bus) {
+       case ACT2000_BUS_ISA:
+               act2000_isa_release(card);
+               break;
+       case ACT2000_BUS_MCA:
+       case ACT2000_BUS_PCMCIA:
+       default:
+               printk(KERN_WARNING
+                      "act2000: Invalid BUS type %d\n",
+                      card->bus);
+               break;
+       }
 }
 
 static int
@@ -690,23 +690,23 @@ act2000_addcard(int bus, int port, int irq, char *id)
                        for (i = 0; i < ARRAY_SIZE(act2000_isa_ports); i++)
                                if (act2000_isa_detect(act2000_isa_ports[i])) {
                                        printk(KERN_INFO "act2000: Detected "
-                                               "ISA card at port 0x%x\n",
-                                               act2000_isa_ports[i]);
+                                              "ISA card at port 0x%x\n",
+                                              act2000_isa_ports[i]);
                                        act2000_alloccard(bus,
-                                               act2000_isa_ports[i], irq, id);
+                                                         act2000_isa_ports[i], irq, id);
                                }
                        break;
                case ACT2000_BUS_MCA:
                case ACT2000_BUS_PCMCIA:
                default:
                        printk(KERN_WARNING
-                               "act2000: addcard: Invalid BUS type %d\n", bus);
+                              "act2000: addcard: Invalid BUS type %d\n", bus);
                }
        }
        if (!cards)
                return 1;
-        p = cards;
-        while (p) {
+       p = cards;
+       while (p) {
                initialized = 0;
                if (!p->interface.statcallb) {
                        /* Not yet registered.
@@ -714,99 +714,99 @@ act2000_addcard(int bus, int port, int irq, char *id)
                         */
                        added++;
                        switch (p->bus) {
-                               case ACT2000_BUS_ISA:
-                                       if (act2000_isa_detect(p->port)) {
-                                               if (act2000_registercard(p))
-                                                       break;
-                                               if (act2000_isa_config_port(p, p->port)) {
-                                                       printk(KERN_WARNING
-                                                              "act2000: Could not request port 0x%04x\n",
-                                                              p->port);
-                                                       unregister_card(p);
-                                                       p->interface.statcallb = NULL;
-                                                       break;
-                                               }
-                                               if (act2000_isa_config_irq(p, p->irq)) {
-                                                       printk(KERN_INFO
-                                                              "act2000: No IRQ available, fallback to polling\n");
-                                                       /* Fall back to polled operation */
-                                                       p->irq = 0;
-                                               }
-                                               printk(KERN_INFO
-                                                      "act2000: ISA"
-                                                      "-type card at port "
-                                                      "0x%04x ",
+                       case ACT2000_BUS_ISA:
+                               if (act2000_isa_detect(p->port)) {
+                                       if (act2000_registercard(p))
+                                               break;
+                                       if (act2000_isa_config_port(p, p->port)) {
+                                               printk(KERN_WARNING
+                                                      "act2000: Could not request port 0x%04x\n",
                                                       p->port);
-                                               if (p->irq)
-                                                       printk("irq %d\n", p->irq);
-                                               else
-                                                       printk("polled\n");
-                                               initialized = 1;
+                                               unregister_card(p);
+                                               p->interface.statcallb = NULL;
+                                               break;
+                                       }
+                                       if (act2000_isa_config_irq(p, p->irq)) {
+                                               printk(KERN_INFO
+                                                      "act2000: No IRQ available, fallback to polling\n");
+                                               /* Fall back to polled operation */
+                                               p->irq = 0;
                                        }
-                                       break;
-                               case ACT2000_BUS_MCA:
-                               case ACT2000_BUS_PCMCIA:
-                               default:
-                                       printk(KERN_WARNING
-                                              "act2000: addcard: Invalid BUS type %d\n",
-                                              p->bus);
+                                       printk(KERN_INFO
+                                              "act2000: ISA"
+                                              "-type card at port "
+                                              "0x%04x ",
+                                              p->port);
+                                       if (p->irq)
+                                               printk("irq %d\n", p->irq);
+                                       else
+                                               printk("polled\n");
+                                       initialized = 1;
+                               }
+                               break;
+                       case ACT2000_BUS_MCA:
+                       case ACT2000_BUS_PCMCIA:
+                       default:
+                               printk(KERN_WARNING
+                                      "act2000: addcard: Invalid BUS type %d\n",
+                                      p->bus);
                        }
                } else
                        /* Card already initialized */
                        initialized = 1;
-                if (initialized) {
+               if (initialized) {
                        /* Init OK, next card ... */
-                        q = p;
-                        p = p->next;
-                } else {
-                        /* Init failed, remove card from list, free memory */
-                        printk(KERN_WARNING
-                               "act2000: Initialization of %s failed\n",
-                               p->interface.id);
-                        if (q) {
-                                q->next = p->next;
-                                kfree(p);
-                                p = q->next;
-                        } else {
-                                cards = p->next;
-                                kfree(p);
-                                p = cards;
-                        }
+                       q = p;
+                       p = p->next;
+               } else {
+                       /* Init failed, remove card from list, free memory */
+                       printk(KERN_WARNING
+                              "act2000: Initialization of %s failed\n",
+                              p->interface.id);
+                       if (q) {
+                               q->next = p->next;
+                               kfree(p);
+                               p = q->next;
+                       } else {
+                               cards = p->next;
+                               kfree(p);
+                               p = cards;
+                       }
                        failed++;
-                }
+               }
        }
-        return (added - failed);
+       return (added - failed);
 }
 
 #define DRIVERNAME "IBM Active 2000 ISDN driver"
 
 static int __init act2000_init(void)
 {
-        printk(KERN_INFO "%s\n", DRIVERNAME);
-        if (!cards)
+       printk(KERN_INFO "%s\n", DRIVERNAME);
+       if (!cards)
                act2000_addcard(act_bus, act_port, act_irq, act_id);
-        if (!cards)
-                printk(KERN_INFO "act2000: No cards defined yet\n");
-        return 0;
+       if (!cards)
+               printk(KERN_INFO "act2000: No cards defined yet\n");
+       return 0;
 }
 
 static void __exit act2000_exit(void)
 {
-        act2000_card *card = cards;
-        act2000_card *last;
-        while (card) {
-                unregister_card(card);
+       act2000_card *card = cards;
+       act2000_card *last;
+       while (card) {
+               unregister_card(card);
                del_timer(&card->ptimer);
-                card = card->next;
-        }
-        card = cards;
-        while (card) {
-                last = card;
-                card = card->next;
+               card = card->next;
+       }
+       card = cards;
+       while (card) {
+               last = card;
+               card = card->next;
                act2000_clear_msn(last);
-                kfree(last);
-        }
-        printk(KERN_INFO "%s unloaded\n", DRIVERNAME);
+               kfree(last);
+       }
+       printk(KERN_INFO "%s unloaded\n", DRIVERNAME);
 }
 
 module_init(act2000_init);
index e44933d..d33a70c 100644 (file)
@@ -164,7 +164,7 @@ static int capiminor_del_ack(struct capiminor *mp, u16 datahandle)
 
        spin_lock_bh(&mp->ackqlock);
        list_for_each_entry_safe(p, tmp, &mp->ackqueue, list) {
-               if (p->datahandle == datahandle) {
+               if (p->datahandle == datahandle) {
                        list_del(&p->list);
                        mp->nack--;
                        spin_unlock_bh(&mp->ackqlock);
@@ -199,8 +199,8 @@ static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci)
        unsigned int minor;
 
        mp = kzalloc(sizeof(*mp), GFP_KERNEL);
-       if (!mp) {
-               printk(KERN_ERR "capi: can't alloc capiminor\n");
+       if (!mp) {
+               printk(KERN_ERR "capi: can't alloc capiminor\n");
                return NULL;
        }
 
@@ -391,7 +391,7 @@ gen_data_b3_resp_for(struct capiminor *mp, struct sk_buff *skb)
        struct sk_buff *nskb;
        nskb = alloc_skb(CAPI_DATA_B3_RESP_LEN, GFP_KERNEL);
        if (nskb) {
-               u16 datahandle = CAPIMSG_U16(skb->data,CAPIMSG_BASELEN+4+4+2);
+               u16 datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4 + 4 + 2);
                unsigned char *s = skb_put(nskb, CAPI_DATA_B3_RESP_LEN);
                capimsg_setu16(s, 0, CAPI_DATA_B3_RESP_LEN);
                capimsg_setu16(s, 2, mp->ap->applid);
@@ -418,7 +418,7 @@ static int handle_recv_skb(struct capiminor *mp, struct sk_buff *skb)
                pr_debug("capi: currently no receiver\n");
                return -1;
        }
-       
+
        ld = tty_ldisc_ref(tty);
        if (!ld) {
                /* fatal error, do not requeue */
@@ -459,7 +459,7 @@ static int handle_recv_skb(struct capiminor *mp, struct sk_buff *skb)
                ld->ops->receive_buf(tty, skb->data, NULL, skb->len);
        } else {
                printk(KERN_ERR "capi: send DATA_B3_RESP failed=%x\n",
-                               errcode);
+                      errcode);
                kfree_skb(nskb);
 
                if (errcode == CAPI_SENDQUEUEFULL)
@@ -618,7 +618,7 @@ static void capi_recv_message(struct capi20_appl *ap, struct sk_buff *skb)
                goto unlock_out;
        }
        if (CAPIMSG_SUBCOMMAND(skb->data) == CAPI_IND) {
-               datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN+4+4+2);
+               datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4 + 4 + 2);
                pr_debug("capi_signal: DATA_B3_IND %u len=%d\n",
                         datahandle, skb->len-CAPIMSG_LEN(skb->data));
                skb_queue_tail(&mp->inqueue, skb);
@@ -627,10 +627,10 @@ static void capi_recv_message(struct capi20_appl *ap, struct sk_buff *skb)
 
        } else if (CAPIMSG_SUBCOMMAND(skb->data) == CAPI_CONF) {
 
-               datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN+4);
+               datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4);
                pr_debug("capi_signal: DATA_B3_CONF %u 0x%x\n",
                         datahandle,
-                        CAPIMSG_U16(skb->data, CAPIMSG_BASELEN+4+2));
+                        CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4 + 2));
                kfree_skb(skb);
                capiminor_del_ack(mp, datahandle);
                tty = tty_port_tty_get(&mp->port);
@@ -669,7 +669,7 @@ capi_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
                if (file->f_flags & O_NONBLOCK)
                        return -EAGAIN;
                err = wait_event_interruptible(cdev->recvwait,
-                               (skb = skb_dequeue(&cdev->recvqueue)));
+                                              (skb = skb_dequeue(&cdev->recvqueue)));
                if (err)
                        return err;
        }
@@ -736,7 +736,7 @@ capi_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos
 }
 
 static unsigned int
-capi_poll(struct file *file, poll_table * wait)
+capi_poll(struct file *file, poll_table *wait)
 {
        struct capidev *cdev = file->private_data;
        unsigned int mask = 0;
@@ -786,75 +786,75 @@ register_out:
                return retval;
 
        case CAPI_GET_VERSION:
-               {
-                       if (copy_from_user(&data.contr, argp,
-                                               sizeof(data.contr)))
-                               return -EFAULT;
-                       cdev->errcode = capi20_get_version(data.contr, &data.version);
-                       if (cdev->errcode)
-                               return -EIO;
-                       if (copy_to_user(argp, &data.version,
-                                        sizeof(data.version)))
-                               return -EFAULT;
-               }
-               return 0;
+       {
+               if (copy_from_user(&data.contr, argp,
+                                  sizeof(data.contr)))
+                       return -EFAULT;
+               cdev->errcode = capi20_get_version(data.contr, &data.version);
+               if (cdev->errcode)
+                       return -EIO;
+               if (copy_to_user(argp, &data.version,
+                                sizeof(data.version)))
+                       return -EFAULT;
+       }
+       return 0;
 
        case CAPI_GET_SERIAL:
-               {
-                       if (copy_from_user(&data.contr, argp,
-                                          sizeof(data.contr)))
-                               return -EFAULT;
-                       cdev->errcode = capi20_get_serial (data.contr, data.serial);
-                       if (cdev->errcode)
-                               return -EIO;
-                       if (copy_to_user(argp, data.serial,
-                                        sizeof(data.serial)))
-                               return -EFAULT;
-               }
-               return 0;
+       {
+               if (copy_from_user(&data.contr, argp,
+                                  sizeof(data.contr)))
+                       return -EFAULT;
+               cdev->errcode = capi20_get_serial(data.contr, data.serial);
+               if (cdev->errcode)
+                       return -EIO;
+               if (copy_to_user(argp, data.serial,
+                                sizeof(data.serial)))
+                       return -EFAULT;
+       }
+       return 0;
        case CAPI_GET_PROFILE:
-               {
-                       if (copy_from_user(&data.contr, argp,
-                                          sizeof(data.contr)))
-                               return -EFAULT;
+       {
+               if (copy_from_user(&data.contr, argp,
+                                  sizeof(data.contr)))
+                       return -EFAULT;
 
-                       if (data.contr == 0) {
-                               cdev->errcode = capi20_get_profile(data.contr, &data.profile);
-                               if (cdev->errcode)
-                                       return -EIO;
+               if (data.contr == 0) {
+                       cdev->errcode = capi20_get_profile(data.contr, &data.profile);
+                       if (cdev->errcode)
+                               return -EIO;
 
-                               retval = copy_to_user(argp,
-                                     &data.profile.ncontroller,
-                                      sizeof(data.profile.ncontroller));
+                       retval = copy_to_user(argp,
+                                             &data.profile.ncontroller,
+                                             sizeof(data.profile.ncontroller));
 
-                       } else {
-                               cdev->errcode = capi20_get_profile(data.contr, &data.profile);
-                               if (cdev->errcode)
-                                       return -EIO;
+               } else {
+                       cdev->errcode = capi20_get_profile(data.contr, &data.profile);
+                       if (cdev->errcode)
+                               return -EIO;
 
-                               retval = copy_to_user(argp, &data.profile,
-                                                  sizeof(data.profile));
-                       }
-                       if (retval)
-                               return -EFAULT;
+                       retval = copy_to_user(argp, &data.profile,
+                                             sizeof(data.profile));
                }
-               return 0;
+               if (retval)
+                       return -EFAULT;
+       }
+       return 0;
 
        case CAPI_GET_MANUFACTURER:
-               {
-                       if (copy_from_user(&data.contr, argp,
-                                          sizeof(data.contr)))
-                               return -EFAULT;
-                       cdev->errcode = capi20_get_manufacturer(data.contr, data.manufacturer);
-                       if (cdev->errcode)
-                               return -EIO;
+       {
+               if (copy_from_user(&data.contr, argp,
+                                  sizeof(data.contr)))
+                       return -EFAULT;
+               cdev->errcode = capi20_get_manufacturer(data.contr, data.manufacturer);
+               if (cdev->errcode)
+                       return -EIO;
 
-                       if (copy_to_user(argp, data.manufacturer,
-                                        sizeof(data.manufacturer)))
-                               return -EFAULT;
+               if (copy_to_user(argp, data.manufacturer,
+                                sizeof(data.manufacturer)))
+                       return -EFAULT;
 
-               }
-               return 0;
+       }
+       return 0;
        case CAPI_GET_ERRCODE:
                data.errcode = cdev->errcode;
                cdev->errcode = CAPI_NOERROR;
@@ -871,15 +871,15 @@ register_out:
                return -ENXIO;
 
        case CAPI_MANUFACTURER_CMD:
-               {
-                       struct capi_manufacturer_cmd mcmd;
-                       if (!capable(CAP_SYS_ADMIN))
-                               return -EPERM;
-                       if (copy_from_user(&mcmd, argp, sizeof(mcmd)))
-                               return -EFAULT;
-                       return capi20_manufacturer(mcmd.cmd, mcmd.data);
-               }
-               return 0;
+       {
+               struct capi_manufacturer_cmd mcmd;
+               if (!capable(CAP_SYS_ADMIN))
+                       return -EPERM;
+               if (copy_from_user(&mcmd, argp, sizeof(mcmd)))
+                       return -EFAULT;
+               return capi20_manufacturer(mcmd.cmd, mcmd.data);
+       }
+       return 0;
 
        case CAPI_SET_FLAGS:
        case CAPI_CLR_FLAGS: {
@@ -1070,7 +1070,7 @@ static int capinc_tty_write(struct tty_struct *tty,
                mp->outbytes += skb->len;
        }
 
-       skb = alloc_skb(CAPI_DATA_B3_REQ_LEN+count, GFP_ATOMIC);
+       skb = alloc_skb(CAPI_DATA_B3_REQ_LEN + count, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_ERR "capinc_tty_write: alloc_skb failed\n");
                spin_unlock_bh(&mp->outlock);
@@ -1111,7 +1111,7 @@ static int capinc_tty_put_char(struct tty_struct *tty, unsigned char ch)
                invoke_send = true;
        }
 
-       skb = alloc_skb(CAPI_DATA_B3_REQ_LEN+CAPI_MAX_BLKSIZE, GFP_ATOMIC);
+       skb = alloc_skb(CAPI_DATA_B3_REQ_LEN + CAPI_MAX_BLKSIZE, GFP_ATOMIC);
        if (skb) {
                skb_reserve(skb, CAPI_DATA_B3_REQ_LEN);
                *(skb_put(skb, 1)) = ch;
@@ -1175,12 +1175,12 @@ static int capinc_tty_chars_in_buffer(struct tty_struct *tty)
 }
 
 static int capinc_tty_ioctl(struct tty_struct *tty,
-                   unsigned int cmd, unsigned long arg)
+                           unsigned int cmd, unsigned long arg)
 {
        return -ENOIOCTLCMD;
 }
 
-static void capinc_tty_set_termios(struct tty_struct *tty, struct ktermios * old)
+static void capinc_tty_set_termios(struct tty_struct *tty, struct ktermios *old)
 {
        pr_debug("capinc_tty_set_termios\n");
 }
@@ -1344,18 +1344,18 @@ static inline void capinc_tty_exit(void) { }
  */
 static int capi20_proc_show(struct seq_file *m, void *v)
 {
-        struct capidev *cdev;
+       struct capidev *cdev;
        struct list_head *l;
 
        mutex_lock(&capidev_list_lock);
        list_for_each(l, &capidev_list) {
                cdev = list_entry(l, struct capidev, list);
                seq_printf(m, "0 %d %lu %lu %lu %lu\n",
-                       cdev->ap.applid,
-                       cdev->ap.nrecvctlpkt,
-                       cdev->ap.nrecvdatapkt,
-                       cdev->ap.nsentctlpkt,
-                       cdev->ap.nsentdatapkt);
+                          cdev->ap.applid,
+                          cdev->ap.nrecvctlpkt,
+                          cdev->ap.nrecvdatapkt,
+                          cdev->ap.nsentctlpkt,
+                          cdev->ap.nsentdatapkt);
        }
        mutex_unlock(&capidev_list_lock);
        return 0;
@@ -1450,9 +1450,9 @@ static int __init capi_init(void)
        proc_init();
 
 #ifdef CONFIG_ISDN_CAPI_MIDDLEWARE
-        compileinfo = " (middleware)";
+       compileinfo = " (middleware)";
 #else
-        compileinfo = " (no middleware)";
+       compileinfo = " (no middleware)";
 #endif
        printk(KERN_NOTICE "CAPI 2.0 started up with major %d%s\n",
               capi_major, compileinfo);
index 92607ed..6f5016b 100644 (file)
@@ -40,7 +40,7 @@ static int debugmode = 0;
 MODULE_DESCRIPTION("CAPI4Linux: Interface to ISDN4Linux");
 MODULE_AUTHOR("Carsten Paeth");
 MODULE_LICENSE("GPL");
-module_param(debugmode, uint, S_IRUGO|S_IWUSR);
+module_param(debugmode, uint, S_IRUGO | S_IWUSR);
 
 /* -------- type definitions ----------------------------------------- */
 
@@ -64,7 +64,7 @@ struct capidrv_contr {
        int state;
        u32 cipmask;
        u32 cipmask2;
-        struct timer_list listentimer;
+       struct timer_list listentimer;
 
        /*
         * ID of capi message sent
@@ -105,9 +105,9 @@ struct capidrv_contr {
                                /* */
                                u16 datahandle;
                                struct ncci_datahandle_queue {
-                                   struct ncci_datahandle_queue *next;
-                                   u16                         datahandle;
-                                   int                           len;
+                                       struct ncci_datahandle_queue *next;
+                                       u16                         datahandle;
+                                       int                           len;
                                } *ackqueue;
                        } *ncci_list;
                } *plcip;
@@ -142,7 +142,7 @@ static capidrv_data global;
 static DEFINE_SPINLOCK(global_lock);
 
 static void handle_dtrace_data(capidrv_contr *card,
-       int send, int level2, u8 *data, u16 len);
+                              int send, int level2, u8 *data, u16 len);
 
 /* -------- convert functions ---------------------------------------- */
 
@@ -158,11 +158,11 @@ static inline u32 b1prot(int l2, int l3)
                return 0;
        case ISDN_PROTO_L2_TRANS:
                return 1;
-        case ISDN_PROTO_L2_V11096:
-        case ISDN_PROTO_L2_V11019:
-        case ISDN_PROTO_L2_V11038:
+       case ISDN_PROTO_L2_V11096:
+       case ISDN_PROTO_L2_V11019:
+       case ISDN_PROTO_L2_V11038:
                return 2;
-        case ISDN_PROTO_L2_FAX:
+       case ISDN_PROTO_L2_FAX:
                return 4;
        case ISDN_PROTO_L2_MODEM:
                return 8;
@@ -179,12 +179,12 @@ static inline u32 b2prot(int l2, int l3)
                return 0;
        case ISDN_PROTO_L2_HDLC:
        case ISDN_PROTO_L2_TRANS:
-        case ISDN_PROTO_L2_V11096:
-        case ISDN_PROTO_L2_V11019:
-        case ISDN_PROTO_L2_V11038:
+       case ISDN_PROTO_L2_V11096:
+       case ISDN_PROTO_L2_V11019:
+       case ISDN_PROTO_L2_V11038:
        case ISDN_PROTO_L2_MODEM:
                return 1;
-        case ISDN_PROTO_L2_FAX:
+       case ISDN_PROTO_L2_FAX:
                return 4;
        }
 }
@@ -197,13 +197,13 @@ static inline u32 b3prot(int l2, int l3)
        case ISDN_PROTO_L2_X75BUI:
        case ISDN_PROTO_L2_HDLC:
        case ISDN_PROTO_L2_TRANS:
-        case ISDN_PROTO_L2_V11096:
-        case ISDN_PROTO_L2_V11019:
-        case ISDN_PROTO_L2_V11038:
+       case ISDN_PROTO_L2_V11096:
+       case ISDN_PROTO_L2_V11019:
+       case ISDN_PROTO_L2_V11038:
        case ISDN_PROTO_L2_MODEM:
        default:
                return 0;
-        case ISDN_PROTO_L2_FAX:
+       case ISDN_PROTO_L2_FAX:
                return 4;
        }
 }
@@ -231,38 +231,38 @@ static _cstruct b1config(int l2, int l3)
        case ISDN_PROTO_L2_TRANS:
        default:
                return NULL;
-        case ISDN_PROTO_L2_V11096:
-           return b1config_async_v110(9600);
-        case ISDN_PROTO_L2_V11019:
-           return b1config_async_v110(19200);
-        case ISDN_PROTO_L2_V11038:
-           return b1config_async_v110(38400);
+       case ISDN_PROTO_L2_V11096:
+               return b1config_async_v110(9600);
+       case ISDN_PROTO_L2_V11019:
+               return b1config_async_v110(19200);
+       case ISDN_PROTO_L2_V11038:
+               return b1config_async_v110(38400);
        }
 }
 
 static inline u16 si2cip(u8 si1, u8 si2)
 {
        static const u8 cip[17][5] =
-       {
-       /*  0  1  2  3  4  */
-               {0, 0, 0, 0, 0},        /*0 */
-               {16, 16, 4, 26, 16},    /*1 */
-               {17, 17, 17, 4, 4},     /*2 */
-               {2, 2, 2, 2, 2},        /*3 */
-               {18, 18, 18, 18, 18},   /*4 */
-               {2, 2, 2, 2, 2},        /*5 */
-               {0, 0, 0, 0, 0},        /*6 */
-               {2, 2, 2, 2, 2},        /*7 */
-               {2, 2, 2, 2, 2},        /*8 */
-               {21, 21, 21, 21, 21},   /*9 */
-               {19, 19, 19, 19, 19},   /*10 */
-               {0, 0, 0, 0, 0},        /*11 */
-               {0, 0, 0, 0, 0},        /*12 */
-               {0, 0, 0, 0, 0},        /*13 */
-               {0, 0, 0, 0, 0},        /*14 */
-               {22, 22, 22, 22, 22},   /*15 */
-               {27, 27, 27, 28, 27}    /*16 */
-       };
+               {
+                       /*  0  1  2  3  4  */
+                       {0, 0, 0, 0, 0},        /*0 */
+                       {16, 16, 4, 26, 16},    /*1 */
+                       {17, 17, 17, 4, 4},     /*2 */
+                       {2, 2, 2, 2, 2},        /*3 */
+                       {18, 18, 18, 18, 18},   /*4 */
+                       {2, 2, 2, 2, 2},        /*5 */
+                       {0, 0, 0, 0, 0},        /*6 */
+                       {2, 2, 2, 2, 2},        /*7 */
+                       {2, 2, 2, 2, 2},        /*8 */
+                       {21, 21, 21, 21, 21},   /*9 */
+                       {19, 19, 19, 19, 19},   /*10 */
+                       {0, 0, 0, 0, 0},        /*11 */
+                       {0, 0, 0, 0, 0},        /*12 */
+                       {0, 0, 0, 0, 0},        /*13 */
+                       {0, 0, 0, 0, 0},        /*14 */
+                       {22, 22, 22, 22, 22},   /*15 */
+                       {27, 27, 27, 28, 27}    /*16 */
+               };
        if (si1 > 16)
                si1 = 0;
        if (si2 > 4)
@@ -274,10 +274,10 @@ static inline u16 si2cip(u8 si1, u8 si2)
 static inline u8 cip2si1(u16 cipval)
 {
        static const u8 si[32] =
-       {7, 1, 7, 7, 1, 1, 7, 7,        /*0-7 */
-        7, 1, 0, 0, 0, 0, 0, 0,        /*8-15 */
-        1, 2, 4, 10, 9, 9, 15, 7,      /*16-23 */
-        7, 7, 1, 16, 16, 0, 0, 0};     /*24-31 */
+               {7, 1, 7, 7, 1, 1, 7, 7,        /*0-7 */
+                7, 1, 0, 0, 0, 0, 0, 0,        /*8-15 */
+                1, 2, 4, 10, 9, 9, 15, 7,      /*16-23 */
+                7, 7, 1, 16, 16, 0, 0, 0};     /*24-31 */
 
        if (cipval > 31)
                cipval = 0;     /* .... */
@@ -287,10 +287,10 @@ static inline u8 cip2si1(u16 cipval)
 static inline u8 cip2si2(u16 cipval)
 {
        static const u8 si[32] =
-       {0, 0, 0, 0, 2, 3, 0, 0,        /*0-7 */
-        0, 3, 0, 0, 0, 0, 0, 0,        /*8-15 */
-        1, 2, 0, 0, 9, 0, 0, 0,        /*16-23 */
-        0, 0, 3, 2, 3, 0, 0, 0};       /*24-31 */
+               {0, 0, 0, 0, 2, 3, 0, 0,        /*0-7 */
+                0, 3, 0, 0, 0, 0, 0, 0,        /*8-15 */
+                1, 2, 0, 0, 9, 0, 0, 0,        /*16-23 */
+                0, 0, 3, 2, 3, 0, 0, 0};       /*24-31 */
 
        if (cipval > 31)
                cipval = 0;     /* .... */
@@ -302,7 +302,7 @@ static inline u8 cip2si2(u16 cipval)
 
 static inline capidrv_contr *findcontrbydriverid(int driverid)
 {
-       unsigned long flags;
+       unsigned long flags;
        capidrv_contr *p;
 
        spin_lock_irqsave(&global_lock, flags);
@@ -329,7 +329,7 @@ static capidrv_contr *findcontrbynumber(u32 contr)
 
 /* -------- plci management ------------------------------------------ */
 
-static capidrv_plci *new_plci(capidrv_contr * card, int chan)
+static capidrv_plci *new_plci(capidrv_contr *card, int chan)
 {
        capidrv_plci *plcip;
 
@@ -349,7 +349,7 @@ static capidrv_plci *new_plci(capidrv_contr * card, int chan)
        return plcip;
 }
 
-static capidrv_plci *find_plci_by_plci(capidrv_contr * card, u32 plci)
+static capidrv_plci *find_plci_by_plci(capidrv_contr *card, u32 plci)
 {
        capidrv_plci *p;
        for (p = card->plci_list; p; p = p->next)
@@ -358,7 +358,7 @@ static capidrv_plci *find_plci_by_plci(capidrv_contr * card, u32 plci)
        return NULL;
 }
 
-static capidrv_plci *find_plci_by_msgid(capidrv_contr * card, u16 msgid)
+static capidrv_plci *find_plci_by_msgid(capidrv_contr *card, u16 msgid)
 {
        capidrv_plci *p;
        for (p = card->plci_list; p; p = p->next)
@@ -367,7 +367,7 @@ static capidrv_plci *find_plci_by_msgid(capidrv_contr * card, u16 msgid)
        return NULL;
 }
 
-static capidrv_plci *find_plci_by_ncci(capidrv_contr * card, u32 ncci)
+static capidrv_plci *find_plci_by_ncci(capidrv_contr *card, u32 ncci)
 {
        capidrv_plci *p;
        for (p = card->plci_list; p; p = p->next)
@@ -376,7 +376,7 @@ static capidrv_plci *find_plci_by_ncci(capidrv_contr * card, u32 ncci)
        return NULL;
 }
 
-static void free_plci(capidrv_contr * card, capidrv_plci * plcip)
+static void free_plci(capidrv_contr *card, capidrv_plci *plcip)
 {
        capidrv_plci **pp;
 
@@ -396,8 +396,8 @@ static void free_plci(capidrv_contr * card, capidrv_plci * plcip)
 
 /* -------- ncci management ------------------------------------------ */
 
-static inline capidrv_ncci *new_ncci(capidrv_contr * card,
-                                    capidrv_plci * plcip,
+static inline capidrv_ncci *new_ncci(capidrv_contr *card,
+                                    capidrv_plci *plcip,
                                     u32 ncci)
 {
        capidrv_ncci *nccip;
@@ -421,7 +421,7 @@ static inline capidrv_ncci *new_ncci(capidrv_contr * card,
        return nccip;
 }
 
-static inline capidrv_ncci *find_ncci(capidrv_contr * card, u32 ncci)
+static inline capidrv_ncci *find_ncci(capidrv_contr *card, u32 ncci)
 {
        capidrv_plci *plcip;
        capidrv_ncci *p;
@@ -435,7 +435,7 @@ static inline capidrv_ncci *find_ncci(capidrv_contr * card, u32 ncci)
        return NULL;
 }
 
-static inline capidrv_ncci *find_ncci_by_msgid(capidrv_contr * card,
+static inline capidrv_ncci *find_ncci_by_msgid(capidrv_contr *card,
                                               u32 ncci, u16 msgid)
 {
        capidrv_plci *plcip;
@@ -450,7 +450,7 @@ static inline capidrv_ncci *find_ncci_by_msgid(capidrv_contr * card,
        return NULL;
 }
 
-static void free_ncci(capidrv_contr * card, struct capidrv_ncci *nccip)
+static void free_ncci(capidrv_contr *card, struct capidrv_ncci *nccip)
 {
        struct capidrv_ncci **pp;
 
@@ -465,20 +465,20 @@ static void free_ncci(capidrv_contr * card, struct capidrv_ncci *nccip)
 }
 
 static int capidrv_add_ack(struct capidrv_ncci *nccip,
-                          u16 datahandle, int len)
+                          u16 datahandle, int len)
 {
        struct ncci_datahandle_queue *n, **pp;
 
        n = (struct ncci_datahandle_queue *)
                kmalloc(sizeof(struct ncci_datahandle_queue), GFP_ATOMIC);
        if (!n) {
-          printk(KERN_ERR "capidrv: kmalloc ncci_datahandle failed\n");
-          return -1;
+               printk(KERN_ERR "capidrv: kmalloc ncci_datahandle failed\n");
+               return -1;
        }
        n->next = NULL;
        n->datahandle = datahandle;
        n->len = len;
-       for (pp = &nccip->ackqueue; *pp; pp = &(*pp)->next) ;
+       for (pp = &nccip->ackqueue; *pp; pp = &(*pp)->next);
        *pp = n;
        return 0;
 }
@@ -489,11 +489,11 @@ static int capidrv_del_ack(struct capidrv_ncci *nccip, u16 datahandle)
        int len;
 
        for (pp = &nccip->ackqueue; *pp; pp = &(*pp)->next) {
-               if ((*pp)->datahandle == datahandle) {
+               if ((*pp)->datahandle == datahandle) {
                        p = *pp;
                        len = p->len;
                        *pp = (*pp)->next;
-                       kfree(p);
+                       kfree(p);
                        return len;
                }
        }
@@ -502,7 +502,7 @@ static int capidrv_del_ack(struct capidrv_ncci *nccip, u16 datahandle)
 
 /* -------- convert and send capi message ---------------------------- */
 
-static void send_message(capidrv_contr * card, _cmsg * cmsg)
+static void send_message(capidrv_contr *card, _cmsg *cmsg)
 {
        struct sk_buff *skb;
        size_t len;
@@ -529,18 +529,18 @@ struct listenstatechange {
 
 static struct listenstatechange listentable[] =
 {
-  {ST_LISTEN_NONE, ST_LISTEN_WAIT_CONF, EV_LISTEN_REQ},
-  {ST_LISTEN_ACTIVE, ST_LISTEN_ACTIVE_WAIT_CONF, EV_LISTEN_REQ},
-  {ST_LISTEN_WAIT_CONF, ST_LISTEN_NONE, EV_LISTEN_CONF_ERROR},
-  {ST_LISTEN_ACTIVE_WAIT_CONF, ST_LISTEN_ACTIVE, EV_LISTEN_CONF_ERROR},
-  {ST_LISTEN_WAIT_CONF, ST_LISTEN_NONE, EV_LISTEN_CONF_EMPTY},
-  {ST_LISTEN_ACTIVE_WAIT_CONF, ST_LISTEN_NONE, EV_LISTEN_CONF_EMPTY},
-  {ST_LISTEN_WAIT_CONF, ST_LISTEN_ACTIVE, EV_LISTEN_CONF_OK},
-  {ST_LISTEN_ACTIVE_WAIT_CONF, ST_LISTEN_ACTIVE, EV_LISTEN_CONF_OK},
-  {},
+       {ST_LISTEN_NONE, ST_LISTEN_WAIT_CONF, EV_LISTEN_REQ},
+       {ST_LISTEN_ACTIVE, ST_LISTEN_ACTIVE_WAIT_CONF, EV_LISTEN_REQ},
+       {ST_LISTEN_WAIT_CONF, ST_LISTEN_NONE, EV_LISTEN_CONF_ERROR},
+       {ST_LISTEN_ACTIVE_WAIT_CONF, ST_LISTEN_ACTIVE, EV_LISTEN_CONF_ERROR},
+       {ST_LISTEN_WAIT_CONF, ST_LISTEN_NONE, EV_LISTEN_CONF_EMPTY},
+       {ST_LISTEN_ACTIVE_WAIT_CONF, ST_LISTEN_NONE, EV_LISTEN_CONF_EMPTY},
+       {ST_LISTEN_WAIT_CONF, ST_LISTEN_ACTIVE, EV_LISTEN_CONF_OK},
+       {ST_LISTEN_ACTIVE_WAIT_CONF, ST_LISTEN_ACTIVE, EV_LISTEN_CONF_OK},
+       {},
 };
 
-static void listen_change_state(capidrv_contr * card, int event)
+static void listen_change_state(capidrv_contr *card, int event)
 {
        struct listenstatechange *p = listentable;
        while (p->event) {
@@ -560,7 +560,7 @@ static void listen_change_state(capidrv_contr * card, int event)
 
 /* ------------------------------------------------------------------ */
 
-static void p0(capidrv_contr * card, capidrv_plci * plci)
+static void p0(capidrv_contr *card, capidrv_plci *plci)
 {
        isdn_ctrl cmd;
 
@@ -578,71 +578,71 @@ struct plcistatechange {
        int actstate;
        int nextstate;
        int event;
-       void (*changefunc) (capidrv_contr * card, capidrv_plci * plci);
+       void (*changefunc)(capidrv_contr *card, capidrv_plci *plci);
 };
 
 static struct plcistatechange plcitable[] =
 {
-  /* P-0 */
-  {ST_PLCI_NONE, ST_PLCI_OUTGOING, EV_PLCI_CONNECT_REQ, NULL},
-  {ST_PLCI_NONE, ST_PLCI_ALLOCATED, EV_PLCI_FACILITY_IND_UP, NULL},
-  {ST_PLCI_NONE, ST_PLCI_INCOMING, EV_PLCI_CONNECT_IND, NULL},
-  {ST_PLCI_NONE, ST_PLCI_RESUMEING, EV_PLCI_RESUME_REQ, NULL},
-  /* P-0.1 */
-  {ST_PLCI_OUTGOING, ST_PLCI_NONE, EV_PLCI_CONNECT_CONF_ERROR, p0},
-  {ST_PLCI_OUTGOING, ST_PLCI_ALLOCATED, EV_PLCI_CONNECT_CONF_OK, NULL},
-  /* P-1 */
-  {ST_PLCI_ALLOCATED, ST_PLCI_ACTIVE, EV_PLCI_CONNECT_ACTIVE_IND, NULL},
-  {ST_PLCI_ALLOCATED, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
-  {ST_PLCI_ALLOCATED, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
-  {ST_PLCI_ALLOCATED, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
-  /* P-ACT */
-  {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
-  {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
-  {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
-  {ST_PLCI_ACTIVE, ST_PLCI_HELD, EV_PLCI_HOLD_IND, NULL},
-  {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTING, EV_PLCI_SUSPEND_IND, NULL},
-  /* P-2 */
-  {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_CONNECT_REJECT, NULL},
-  {ST_PLCI_INCOMING, ST_PLCI_FACILITY_IND, EV_PLCI_FACILITY_IND_UP, NULL},
-  {ST_PLCI_INCOMING, ST_PLCI_ACCEPTING, EV_PLCI_CONNECT_RESP, NULL},
-  {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
-  {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
-  {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
-  {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_CD_IND, NULL},
-  /* P-3 */
-  {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTING, EV_PLCI_CONNECT_REJECT, NULL},
-  {ST_PLCI_FACILITY_IND, ST_PLCI_ACCEPTING, EV_PLCI_CONNECT_ACTIVE_IND, NULL},
-  {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
-  {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
-  {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
-  /* P-4 */
-  {ST_PLCI_ACCEPTING, ST_PLCI_ACTIVE, EV_PLCI_CONNECT_ACTIVE_IND, NULL},
-  {ST_PLCI_ACCEPTING, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
-  {ST_PLCI_ACCEPTING, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
-  {ST_PLCI_ACCEPTING, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
-  /* P-5 */
-  {ST_PLCI_DISCONNECTING, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
-  /* P-6 */
-  {ST_PLCI_DISCONNECTED, ST_PLCI_NONE, EV_PLCI_DISCONNECT_RESP, p0},
-  /* P-0.Res */
-  {ST_PLCI_RESUMEING, ST_PLCI_NONE, EV_PLCI_RESUME_CONF_ERROR, p0},
-  {ST_PLCI_RESUMEING, ST_PLCI_RESUME, EV_PLCI_RESUME_CONF_OK, NULL},
-  /* P-RES */
-  {ST_PLCI_RESUME, ST_PLCI_ACTIVE, EV_PLCI_RESUME_IND, NULL},
-  /* P-HELD */
-  {ST_PLCI_HELD, ST_PLCI_ACTIVE, EV_PLCI_RETRIEVE_IND, NULL},
-  {},
+       /* P-0 */
+       {ST_PLCI_NONE, ST_PLCI_OUTGOING, EV_PLCI_CONNECT_REQ, NULL},
+       {ST_PLCI_NONE, ST_PLCI_ALLOCATED, EV_PLCI_FACILITY_IND_UP, NULL},
+       {ST_PLCI_NONE, ST_PLCI_INCOMING, EV_PLCI_CONNECT_IND, NULL},
+       {ST_PLCI_NONE, ST_PLCI_RESUMEING, EV_PLCI_RESUME_REQ, NULL},
+       /* P-0.1 */
+       {ST_PLCI_OUTGOING, ST_PLCI_NONE, EV_PLCI_CONNECT_CONF_ERROR, p0},
+       {ST_PLCI_OUTGOING, ST_PLCI_ALLOCATED, EV_PLCI_CONNECT_CONF_OK, NULL},
+       /* P-1 */
+       {ST_PLCI_ALLOCATED, ST_PLCI_ACTIVE, EV_PLCI_CONNECT_ACTIVE_IND, NULL},
+       {ST_PLCI_ALLOCATED, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
+       {ST_PLCI_ALLOCATED, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
+       {ST_PLCI_ALLOCATED, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
+       /* P-ACT */
+       {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
+       {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
+       {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
+       {ST_PLCI_ACTIVE, ST_PLCI_HELD, EV_PLCI_HOLD_IND, NULL},
+       {ST_PLCI_ACTIVE, ST_PLCI_DISCONNECTING, EV_PLCI_SUSPEND_IND, NULL},
+       /* P-2 */
+       {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_CONNECT_REJECT, NULL},
+       {ST_PLCI_INCOMING, ST_PLCI_FACILITY_IND, EV_PLCI_FACILITY_IND_UP, NULL},
+       {ST_PLCI_INCOMING, ST_PLCI_ACCEPTING, EV_PLCI_CONNECT_RESP, NULL},
+       {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
+       {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
+       {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
+       {ST_PLCI_INCOMING, ST_PLCI_DISCONNECTING, EV_PLCI_CD_IND, NULL},
+       /* P-3 */
+       {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTING, EV_PLCI_CONNECT_REJECT, NULL},
+       {ST_PLCI_FACILITY_IND, ST_PLCI_ACCEPTING, EV_PLCI_CONNECT_ACTIVE_IND, NULL},
+       {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
+       {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
+       {ST_PLCI_FACILITY_IND, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
+       /* P-4 */
+       {ST_PLCI_ACCEPTING, ST_PLCI_ACTIVE, EV_PLCI_CONNECT_ACTIVE_IND, NULL},
+       {ST_PLCI_ACCEPTING, ST_PLCI_DISCONNECTING, EV_PLCI_DISCONNECT_REQ, NULL},
+       {ST_PLCI_ACCEPTING, ST_PLCI_DISCONNECTING, EV_PLCI_FACILITY_IND_DOWN, NULL},
+       {ST_PLCI_ACCEPTING, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
+       /* P-5 */
+       {ST_PLCI_DISCONNECTING, ST_PLCI_DISCONNECTED, EV_PLCI_DISCONNECT_IND, NULL},
+       /* P-6 */
+       {ST_PLCI_DISCONNECTED, ST_PLCI_NONE, EV_PLCI_DISCONNECT_RESP, p0},
+       /* P-0.Res */
+       {ST_PLCI_RESUMEING, ST_PLCI_NONE, EV_PLCI_RESUME_CONF_ERROR, p0},
+       {ST_PLCI_RESUMEING, ST_PLCI_RESUME, EV_PLCI_RESUME_CONF_OK, NULL},
+       /* P-RES */
+       {ST_PLCI_RESUME, ST_PLCI_ACTIVE, EV_PLCI_RESUME_IND, NULL},
+       /* P-HELD */
+       {ST_PLCI_HELD, ST_PLCI_ACTIVE, EV_PLCI_RETRIEVE_IND, NULL},
+       {},
 };
 
-static void plci_change_state(capidrv_contr * card, capidrv_plci * plci, int event)
+static void plci_change_state(capidrv_contr *card, capidrv_plci *plci, int event)
 {
        struct plcistatechange *p = plcitable;
        while (p->event) {
                if (plci->state == p->actstate && p->event == event) {
                        if (debugmode)
                                printk(KERN_DEBUG "capidrv-%d: plci_change_state:0x%x %d -> %d\n",
-                                 card->contrnr, plci->plci, plci->state, p->nextstate);
+                                      card->contrnr, plci->plci, plci->state, p->nextstate);
                        plci->state = p->nextstate;
                        if (p->changefunc)
                                p->changefunc(card, plci);
@@ -658,7 +658,7 @@ static void plci_change_state(capidrv_contr * card, capidrv_plci * plci, int eve
 
 static _cmsg cmsg;
 
-static void n0(capidrv_contr * card, capidrv_ncci * ncci)
+static void n0(capidrv_contr *card, capidrv_ncci *ncci)
 {
        isdn_ctrl cmd;
 
@@ -670,7 +670,7 @@ static void n0(capidrv_contr * card, capidrv_ncci * ncci)
                                 NULL,  /* Keypadfacility */
                                 NULL,  /* Useruserdata */   /* $$$$ */
                                 NULL   /* Facilitydataarray */
-       );
+               );
        plci_change_state(card, ncci->plcip, EV_PLCI_DISCONNECT_REQ);
        send_message(card, &cmsg);
 
@@ -687,51 +687,51 @@ struct nccistatechange {
        int actstate;
        int nextstate;
        int event;
-       void (*changefunc) (capidrv_contr * card, capidrv_ncci * ncci);
+       void (*changefunc)(capidrv_contr *card, capidrv_ncci *ncci);
 };
 
 static struct nccistatechange nccitable[] =
 {
-  /* N-0 */
-  {ST_NCCI_NONE, ST_NCCI_OUTGOING, EV_NCCI_CONNECT_B3_REQ, NULL},
-  {ST_NCCI_NONE, ST_NCCI_INCOMING, EV_NCCI_CONNECT_B3_IND, NULL},
-  /* N-0.1 */
-  {ST_NCCI_OUTGOING, ST_NCCI_ALLOCATED, EV_NCCI_CONNECT_B3_CONF_OK, NULL},
-  {ST_NCCI_OUTGOING, ST_NCCI_NONE, EV_NCCI_CONNECT_B3_CONF_ERROR, n0},
-  /* N-1 */
-  {ST_NCCI_INCOMING, ST_NCCI_DISCONNECTING, EV_NCCI_CONNECT_B3_REJECT, NULL},
-  {ST_NCCI_INCOMING, ST_NCCI_ALLOCATED, EV_NCCI_CONNECT_B3_RESP, NULL},
-  {ST_NCCI_INCOMING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
-  {ST_NCCI_INCOMING, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
-  /* N-2 */
-  {ST_NCCI_ALLOCATED, ST_NCCI_ACTIVE, EV_NCCI_CONNECT_B3_ACTIVE_IND, NULL},
-  {ST_NCCI_ALLOCATED, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
-  {ST_NCCI_ALLOCATED, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
-  /* N-ACT */
-  {ST_NCCI_ACTIVE, ST_NCCI_ACTIVE, EV_NCCI_RESET_B3_IND, NULL},
-  {ST_NCCI_ACTIVE, ST_NCCI_RESETING, EV_NCCI_RESET_B3_REQ, NULL},
-  {ST_NCCI_ACTIVE, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
-  {ST_NCCI_ACTIVE, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
-  /* N-3 */
-  {ST_NCCI_RESETING, ST_NCCI_ACTIVE, EV_NCCI_RESET_B3_IND, NULL},
-  {ST_NCCI_RESETING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
-  {ST_NCCI_RESETING, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
-  /* N-4 */
-  {ST_NCCI_DISCONNECTING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
-  {ST_NCCI_DISCONNECTING, ST_NCCI_PREVIOUS, EV_NCCI_DISCONNECT_B3_CONF_ERROR,NULL},
-  /* N-5 */
-  {ST_NCCI_DISCONNECTED, ST_NCCI_NONE, EV_NCCI_DISCONNECT_B3_RESP, n0},
-  {},
+       /* N-0 */
+       {ST_NCCI_NONE, ST_NCCI_OUTGOING, EV_NCCI_CONNECT_B3_REQ, NULL},
+       {ST_NCCI_NONE, ST_NCCI_INCOMING, EV_NCCI_CONNECT_B3_IND, NULL},
+       /* N-0.1 */
+       {ST_NCCI_OUTGOING, ST_NCCI_ALLOCATED, EV_NCCI_CONNECT_B3_CONF_OK, NULL},
+       {ST_NCCI_OUTGOING, ST_NCCI_NONE, EV_NCCI_CONNECT_B3_CONF_ERROR, n0},
+       /* N-1 */
+       {ST_NCCI_INCOMING, ST_NCCI_DISCONNECTING, EV_NCCI_CONNECT_B3_REJECT, NULL},
+       {ST_NCCI_INCOMING, ST_NCCI_ALLOCATED, EV_NCCI_CONNECT_B3_RESP, NULL},
+       {ST_NCCI_INCOMING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
+       {ST_NCCI_INCOMING, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
+       /* N-2 */
+       {ST_NCCI_ALLOCATED, ST_NCCI_ACTIVE, EV_NCCI_CONNECT_B3_ACTIVE_IND, NULL},
+       {ST_NCCI_ALLOCATED, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
+       {ST_NCCI_ALLOCATED, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
+       /* N-ACT */
+       {ST_NCCI_ACTIVE, ST_NCCI_ACTIVE, EV_NCCI_RESET_B3_IND, NULL},
+       {ST_NCCI_ACTIVE, ST_NCCI_RESETING, EV_NCCI_RESET_B3_REQ, NULL},
+       {ST_NCCI_ACTIVE, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
+       {ST_NCCI_ACTIVE, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
+       /* N-3 */
+       {ST_NCCI_RESETING, ST_NCCI_ACTIVE, EV_NCCI_RESET_B3_IND, NULL},
+       {ST_NCCI_RESETING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
+       {ST_NCCI_RESETING, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
+       /* N-4 */
+       {ST_NCCI_DISCONNECTING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
+       {ST_NCCI_DISCONNECTING, ST_NCCI_PREVIOUS, EV_NCCI_DISCONNECT_B3_CONF_ERROR, NULL},
+       /* N-5 */
+       {ST_NCCI_DISCONNECTED, ST_NCCI_NONE, EV_NCCI_DISCONNECT_B3_RESP, n0},
+       {},
 };
 
-static void ncci_change_state(capidrv_contr * card, capidrv_ncci * ncci, int event)
+static void ncci_change_state(capidrv_contr *card, capidrv_ncci *ncci, int event)
 {
        struct nccistatechange *p = nccitable;
        while (p->event) {
                if (ncci->state == p->actstate && p->event == event) {
                        if (debugmode)
                                printk(KERN_DEBUG "capidrv-%d: ncci_change_state:0x%x %d -> %d\n",
-                                 card->contrnr, ncci->ncci, ncci->state, p->nextstate);
+                                      card->contrnr, ncci->ncci, ncci->state, p->nextstate);
                        if (p->nextstate == ST_NCCI_PREVIOUS) {
                                ncci->state = ncci->oldstate;
                                ncci->oldstate = p->actstate;
@@ -751,7 +751,7 @@ static void ncci_change_state(capidrv_contr * card, capidrv_ncci * ncci, int eve
 
 /* ------------------------------------------------------------------- */
 
-static inline int new_bchan(capidrv_contr * card)
+static inline int new_bchan(capidrv_contr *card)
 {
        int i;
        for (i = 0; i < card->nbchan; i++) {
@@ -765,7 +765,7 @@ static inline int new_bchan(capidrv_contr * card)
 
 /* ------------------------------------------------------------------- */
 
-static void handle_controller(_cmsg * cmsg)
+static void handle_controller(_cmsg *cmsg)
 {
        capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
 
@@ -791,54 +791,54 @@ static void handle_controller(_cmsg * cmsg)
                break;
 
        case CAPI_MANUFACTURER_IND:     /* Controller */
-               if (   cmsg->ManuID == 0x214D5641
+               if (cmsg->ManuID == 0x214D5641
                    && cmsg->Class == 0
                    && cmsg->Function == 1) {
-                  u8  *data = cmsg->ManuData+3;
-                  u16  len = cmsg->ManuData[0];
-                  u16 layer;
-                  int direction;
-                  if (len == 255) {
-                     len = (cmsg->ManuData[1] | (cmsg->ManuData[2] << 8));
-                     data += 2;
-                  }
-                  len -= 2;
-                  layer = ((*(data-1)) << 8) | *(data-2);
-                  if (layer & 0x300)
-                       direction = (layer & 0x200) ? 0 : 1;
-                  else direction = (layer & 0x800) ? 0 : 1;
-                  if (layer & 0x0C00) {
-                       if ((layer & 0xff) == 0x80) {
-                          handle_dtrace_data(card, direction, 1, data, len);
-                          break;
-                       }
-                  } else if ((layer & 0xff) < 0x80) {
-                     handle_dtrace_data(card, direction, 0, data, len);
-                     break;
-                  }
-                  printk(KERN_INFO "capidrv-%d: %s from controller 0x%x layer 0x%x, ignored\n",
-                        card->contrnr, 
-                       capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                       cmsg->adr.adrController, layer);
-                   break;
+                       u8  *data = cmsg->ManuData + 3;
+                       u16  len = cmsg->ManuData[0];
+                       u16 layer;
+                       int direction;
+                       if (len == 255) {
+                               len = (cmsg->ManuData[1] | (cmsg->ManuData[2] << 8));
+                               data += 2;
+                       }
+                       len -= 2;
+                       layer = ((*(data - 1)) << 8) | *(data - 2);
+                       if (layer & 0x300)
+                               direction = (layer & 0x200) ? 0 : 1;
+                       else direction = (layer & 0x800) ? 0 : 1;
+                       if (layer & 0x0C00) {
+                               if ((layer & 0xff) == 0x80) {
+                                       handle_dtrace_data(card, direction, 1, data, len);
+                                       break;
+                               }
+                       } else if ((layer & 0xff) < 0x80) {
+                               handle_dtrace_data(card, direction, 0, data, len);
+                               break;
+                       }
+                       printk(KERN_INFO "capidrv-%d: %s from controller 0x%x layer 0x%x, ignored\n",
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              cmsg->adr.adrController, layer);
+                       break;
                }
                goto ignored;
        case CAPI_MANUFACTURER_CONF:    /* Controller */
                if (cmsg->ManuID == 0x214D5641) {
-                  char *s = NULL;
-                  switch (cmsg->Class) {
-                     case 0: break;
-                     case 1: s = "unknown class"; break;
-                     case 2: s = "unknown function"; break;
-                     default: s = "unknown error"; break;
-                  }
-                  if (s)
-                  printk(KERN_INFO "capidrv-%d: %s from controller 0x%x function %d: %s\n",
-                       card->contrnr,
-                       capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                       cmsg->adr.adrController,
-                       cmsg->Function, s);
-                  break;
+                       char *s = NULL;
+                       switch (cmsg->Class) {
+                       case 0: break;
+                       case 1: s = "unknown class"; break;
+                       case 2: s = "unknown function"; break;
+                       default: s = "unknown error"; break;
+                       }
+                       if (s)
+                               printk(KERN_INFO "capidrv-%d: %s from controller 0x%x function %d: %s\n",
+                                      card->contrnr,
+                                      capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                                      cmsg->adr.adrController,
+                                      cmsg->Function, s);
+                       break;
                }
                goto ignored;
        case CAPI_FACILITY_IND: /* Controller/plci/ncci */
@@ -858,14 +858,14 @@ static void handle_controller(_cmsg * cmsg)
        }
        return;
 
-      ignored:
+ignored:
        printk(KERN_INFO "capidrv-%d: %s from controller 0x%x ignored\n",
               card->contrnr,
               capi_cmd2str(cmsg->Command, cmsg->Subcommand),
               cmsg->adr.adrController);
 }
 
-static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
+static void handle_incoming_call(capidrv_contr *card, _cmsg *cmsg)
 {
        capidrv_plci *plcip;
        capidrv_bchan *bchan;
@@ -890,27 +890,27 @@ static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
        cmd.arg = chan;
        memset(&cmd.parm.setup, 0, sizeof(cmd.parm.setup));
        strncpy(cmd.parm.setup.phone,
-               cmsg->CallingPartyNumber + 3,
+               cmsg->CallingPartyNumber + 3,
                cmsg->CallingPartyNumber[0] - 2);
        strncpy(cmd.parm.setup.eazmsn,
-               cmsg->CalledPartyNumber + 2,
+               cmsg->CalledPartyNumber + 2,
                cmsg->CalledPartyNumber[0] - 1);
        cmd.parm.setup.si1 = cip2si1(cmsg->CIPValue);
        cmd.parm.setup.si2 = cip2si2(cmsg->CIPValue);
        cmd.parm.setup.plan = cmsg->CallingPartyNumber[1];
        cmd.parm.setup.screen = cmsg->CallingPartyNumber[2];
 
-       printk(KERN_INFO "capidrv-%d: incoming call %s,%d,%d,%s\n", 
-                       card->contrnr,
-                       cmd.parm.setup.phone,
-                       cmd.parm.setup.si1,
-                       cmd.parm.setup.si2,
-                       cmd.parm.setup.eazmsn);
+       printk(KERN_INFO "capidrv-%d: incoming call %s,%d,%d,%s\n",
+              card->contrnr,
+              cmd.parm.setup.phone,
+              cmd.parm.setup.si1,
+              cmd.parm.setup.si2,
+              cmd.parm.setup.eazmsn);
 
        if (cmd.parm.setup.si1 == 1 && cmd.parm.setup.si2 != 0) {
-               printk(KERN_INFO "capidrv-%d: patching si2=%d to 0 for VBOX\n", 
-                       card->contrnr,
-                       cmd.parm.setup.si2);
+               printk(KERN_INFO "capidrv-%d: patching si2=%d to 0 for VBOX\n",
+                      card->contrnr,
+                      cmd.parm.setup.si2);
                cmd.parm.setup.si2 = 0;
        }
 
@@ -927,11 +927,11 @@ static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
                plci_change_state(card, plcip, EV_PLCI_CONNECT_REJECT);
                send_message(card, cmsg);
                printk(KERN_INFO "capidrv-%d: incoming call %s,%d,%d,%s ignored\n",
-                       card->contrnr,
-                       cmd.parm.setup.phone,
-                       cmd.parm.setup.si1,
-                       cmd.parm.setup.si2,
-                       cmd.parm.setup.eazmsn);
+                      card->contrnr,
+                      cmd.parm.setup.phone,
+                      cmd.parm.setup.si1,
+                      cmd.parm.setup.si2,
+                      cmd.parm.setup.eazmsn);
                break;
        case 1:
                /* At least one device matching this call (RING on ttyI)
@@ -945,11 +945,11 @@ static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
                 */
                if (plcip->state == ST_PLCI_INCOMING) {
                        printk(KERN_INFO "capidrv-%d: incoming call %s,%d,%d,%s tty alerting\n",
-                               card->contrnr,
-                               cmd.parm.setup.phone,
-                               cmd.parm.setup.si1,
-                               cmd.parm.setup.si2,
-                               cmd.parm.setup.eazmsn);
+                              card->contrnr,
+                              cmd.parm.setup.phone,
+                              cmd.parm.setup.si1,
+                              cmd.parm.setup.si2,
+                              cmd.parm.setup.eazmsn);
                        capi_fill_ALERT_REQ(cmsg,
                                            global.ap.applid,
                                            card->msgid++,
@@ -958,16 +958,16 @@ static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
                                            NULL,/* Keypadfacility */
                                            NULL,/* Useruserdata */
                                            NULL /* Facilitydataarray */
-                       );
+                               );
                        plcip->msgid = cmsg->Messagenumber;
                        send_message(card, cmsg);
                } else {
                        printk(KERN_INFO "capidrv-%d: incoming call %s,%d,%d,%s on netdev\n",
-                               card->contrnr,
-                               cmd.parm.setup.phone,
-                               cmd.parm.setup.si1,
-                               cmd.parm.setup.si2,
-                               cmd.parm.setup.eazmsn);
+                              card->contrnr,
+                              cmd.parm.setup.phone,
+                              cmd.parm.setup.si1,
+                              cmd.parm.setup.si2,
+                              cmd.parm.setup.eazmsn);
                }
                break;
 
@@ -990,7 +990,7 @@ static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
        return;
 }
 
-static void handle_plci(_cmsg * cmsg)
+static void handle_plci(_cmsg *cmsg)
 {
        capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
        capidrv_plci *plcip;
@@ -1008,8 +1008,8 @@ static void handle_plci(_cmsg * cmsg)
        case CAPI_DISCONNECT_IND:       /* plci */
                if (cmsg->Reason) {
                        printk(KERN_INFO "capidrv-%d: %s reason 0x%x (%s) for plci 0x%x\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
                               cmsg->Reason, capi_info2str(cmsg->Reason), cmsg->adr.adrPLCI);
                }
                if (!(plcip = find_plci_by_plci(card, cmsg->adr.adrPLCI))) {
@@ -1027,9 +1027,9 @@ static void handle_plci(_cmsg * cmsg)
        case CAPI_DISCONNECT_CONF:      /* plci */
                if (cmsg->Info) {
                        printk(KERN_INFO "capidrv-%d: %s info 0x%x (%s) for plci 0x%x\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                              cmsg->Info, capi_info2str(cmsg->Info), 
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              cmsg->Info, capi_info2str(cmsg->Info),
                               cmsg->adr.adrPLCI);
                }
                if (!(plcip = find_plci_by_plci(card, cmsg->adr.adrPLCI)))
@@ -1041,9 +1041,9 @@ static void handle_plci(_cmsg * cmsg)
        case CAPI_ALERT_CONF:   /* plci */
                if (cmsg->Info) {
                        printk(KERN_INFO "capidrv-%d: %s info 0x%x (%s) for plci 0x%x\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                              cmsg->Info, capi_info2str(cmsg->Info), 
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              cmsg->Info, capi_info2str(cmsg->Info),
                               cmsg->adr.adrPLCI);
                }
                break;
@@ -1055,9 +1055,9 @@ static void handle_plci(_cmsg * cmsg)
        case CAPI_CONNECT_CONF: /* plci */
                if (cmsg->Info) {
                        printk(KERN_INFO "capidrv-%d: %s info 0x%x (%s) for plci 0x%x\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                              cmsg->Info, capi_info2str(cmsg->Info), 
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              cmsg->Info, capi_info2str(cmsg->Info),
                               cmsg->adr.adrPLCI);
                }
                if (!(plcip = find_plci_by_msgid(card, cmsg->Messagenumber)))
@@ -1096,7 +1096,7 @@ static void handle_plci(_cmsg * cmsg)
                                                 card->msgid++,
                                                 plcip->plci,   /* adr */
                                                 NULL   /* NCPI */
-                       );
+                               );
                        nccip->msgid = cmsg->Messagenumber;
                        plci_change_state(card, plcip,
                                          EV_PLCI_CONNECT_ACTIVE_IND);
@@ -1122,8 +1122,8 @@ static void handle_plci(_cmsg * cmsg)
                                sprintf(cmd.parm.num, "%lu",
                                        (unsigned long)
                                        ((u32) cmsg->InfoElement[1]
-                                 | ((u32) (cmsg->InfoElement[2]) << 8)
-                                | ((u32) (cmsg->InfoElement[3]) << 16)
+                                        | ((u32) (cmsg->InfoElement[2]) << 8)
+                                        | ((u32) (cmsg->InfoElement[3]) << 16)
                                         | ((u32) (cmsg->InfoElement[4]) << 24)));
                                card->interface.statcallb(&cmd);
                                break;
@@ -1132,11 +1132,11 @@ static void handle_plci(_cmsg * cmsg)
                cdb = capi_cmsg2str(cmsg);
                if (cdb) {
                        printk(KERN_WARNING "capidrv-%d: %s\n",
-                               card->contrnr, cdb->buf);
+                              card->contrnr, cdb->buf);
                        cdebbuf_free(cdb);
                } else
                        printk(KERN_WARNING "capidrv-%d: CAPI_INFO_IND InfoNumber %x not handled\n",
-                               card->contrnr, cmsg->InfoNumber);
+                              card->contrnr, cmsg->InfoNumber);
 
                break;
 
@@ -1159,13 +1159,13 @@ static void handle_plci(_cmsg * cmsg)
                       cmsg->adr.adrPLCI);
        }
        return;
-      ignored:
+ignored:
        printk(KERN_INFO "capidrv-%d: %s for plci 0x%x ignored\n",
               card->contrnr,
               capi_cmd2str(cmsg->Command, cmsg->Subcommand),
               cmsg->adr.adrPLCI);
        return;
-      notfound:
+notfound:
        printk(KERN_ERR "capidrv-%d: %s: plci 0x%x not found\n",
               card->contrnr,
               capi_cmd2str(cmsg->Command, cmsg->Subcommand),
@@ -1173,7 +1173,7 @@ static void handle_plci(_cmsg * cmsg)
        return;
 }
 
-static void handle_ncci(_cmsg * cmsg)
+static void handle_ncci(_cmsg *cmsg)
 {
        capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
        capidrv_plci *plcip;
@@ -1222,7 +1222,7 @@ static void handle_ncci(_cmsg * cmsg)
                                                          nccip->ncci,  /* adr */
                                                          0,    /* Reject */
                                                          NULL  /* NCPI */
-                               );
+                                       );
                                ncci_change_state(card, nccip, EV_NCCI_CONNECT_B3_RESP);
                                send_message(card, cmsg);
                                break;
@@ -1230,8 +1230,8 @@ static void handle_ncci(_cmsg * cmsg)
                        printk(KERN_ERR "capidrv-%d: no mem for ncci, sorry\n",                                                 card->contrnr);
                } else {
                        printk(KERN_ERR "capidrv-%d: %s: plci for ncci 0x%x not found\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
                               cmsg->adr.adrNCCI);
                }
                capi_fill_CONNECT_B3_RESP(cmsg,
@@ -1240,7 +1240,7 @@ static void handle_ncci(_cmsg * cmsg)
                                          cmsg->adr.adrNCCI,
                                          2,    /* Reject */
                                          NULL  /* NCPI */
-               );
+                       );
                send_message(card, cmsg);
                break;
 
@@ -1254,9 +1254,9 @@ static void handle_ncci(_cmsg * cmsg)
                nccip->ncci = cmsg->adr.adrNCCI;
                if (cmsg->Info) {
                        printk(KERN_INFO "capidrv-%d: %s info 0x%x (%s) for ncci 0x%x\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                              cmsg->Info, capi_info2str(cmsg->Info), 
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              cmsg->Info, capi_info2str(cmsg->Info),
                               cmsg->adr.adrNCCI);
                }
 
@@ -1278,7 +1278,7 @@ static void handle_ncci(_cmsg * cmsg)
        case CAPI_DATA_B3_CONF: /* ncci */
                if (cmsg->Info) {
                        printk(KERN_WARNING "CAPI_DATA_B3_CONF: Info %x - %s\n",
-                               cmsg->Info, capi_info2str(cmsg->Info));
+                              cmsg->Info, capi_info2str(cmsg->Info));
                }
                if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI)))
                        goto notfound;
@@ -1286,11 +1286,11 @@ static void handle_ncci(_cmsg * cmsg)
                len = capidrv_del_ack(nccip, cmsg->DataHandle);
                if (len < 0)
                        break;
-               cmd.command = ISDN_STAT_BSENT;
-               cmd.driver = card->myid;
-               cmd.arg = nccip->chan;
+               cmd.command = ISDN_STAT_BSENT;
+               cmd.driver = card->myid;
+               cmd.arg = nccip->chan;
                cmd.parm.length = len;
-               card->interface.statcallb(&cmd);
+               card->interface.statcallb(&cmd);
                break;
 
        case CAPI_DISCONNECT_B3_IND:    /* ncci */
@@ -1309,9 +1309,9 @@ static void handle_ncci(_cmsg * cmsg)
                        goto notfound;
                if (cmsg->Info) {
                        printk(KERN_INFO "capidrv-%d: %s info 0x%x (%s) for ncci 0x%x\n",
-                          card->contrnr,
-                          capi_cmd2str(cmsg->Command, cmsg->Subcommand),
-                              cmsg->Info, capi_info2str(cmsg->Info), 
+                              card->contrnr,
+                              capi_cmd2str(cmsg->Command, cmsg->Subcommand),
+                              cmsg->Info, capi_info2str(cmsg->Info),
                               cmsg->adr.adrNCCI);
                        ncci_change_state(card, nccip, EV_NCCI_DISCONNECT_B3_CONF_ERROR);
                }
@@ -1340,13 +1340,13 @@ static void handle_ncci(_cmsg * cmsg)
                       cmsg->adr.adrNCCI);
        }
        return;
-      ignored:
+ignored:
        printk(KERN_INFO "capidrv-%d: %s for ncci 0x%x ignored\n",
               card->contrnr,
               capi_cmd2str(cmsg->Command, cmsg->Subcommand),
               cmsg->adr.adrNCCI);
        return;
-      notfound:
+notfound:
        printk(KERN_ERR "capidrv-%d: %s: ncci 0x%x not found\n",
               card->contrnr,
               capi_cmd2str(cmsg->Command, cmsg->Subcommand),
@@ -1354,7 +1354,7 @@ static void handle_ncci(_cmsg * cmsg)
 }
 
 
-static void handle_data(_cmsg * cmsg, struct sk_buff *skb)
+static void handle_data(_cmsg *cmsg, struct sk_buff *skb)
 {
        capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
        capidrv_ncci *nccip;
@@ -1390,12 +1390,12 @@ static void capidrv_recv_message(struct capi20_appl *ap, struct sk_buff *skb)
 
                if (cdb) {
                        printk(KERN_DEBUG "%s: applid=%d %s\n", __func__,
-                               ap->applid, cdb->buf);
+                              ap->applid, cdb->buf);
                        cdebbuf_free(cdb);
                } else
                        printk(KERN_DEBUG "%s: applid=%d %s not traced\n",
-                               __func__, ap->applid,
-                               capi_cmd2str(s_cmsg.Command, s_cmsg.Subcommand));
+                              __func__, ap->applid,
+                              capi_cmd2str(s_cmsg.Command, s_cmsg.Subcommand));
        }
        if (s_cmsg.Command == CAPI_DATA_B3
            && s_cmsg.Subcommand == CAPI_IND) {
@@ -1418,38 +1418,38 @@ static void capidrv_recv_message(struct capi20_appl *ap, struct sk_buff *skb)
 
 /* ------------------------------------------------------------------- */
 
-#define PUTBYTE_TO_STATUS(card, byte) \
-       do { \
-               *(card)->q931_write++ = (byte); \
-               if ((card)->q931_write > (card)->q931_end) \
-                       (card)->q931_write = (card)->q931_buf; \
+#define PUTBYTE_TO_STATUS(card, byte)                          \
+       do {                                                    \
+               *(card)->q931_write++ = (byte);                 \
+               if ((card)->q931_write > (card)->q931_end)      \
+                       (card)->q931_write = (card)->q931_buf;  \
        } while (0)
 
 static void handle_dtrace_data(capidrv_contr *card,
-                            int send, int level2, u8 *data, u16 len)
+                              int send, int level2, u8 *data, u16 len)
 {
-       u8 *p, *end;
-       isdn_ctrl cmd;
+       u8 *p, *end;
+       isdn_ctrl cmd;
 
-       if (!len) {
+       if (!len) {
                printk(KERN_DEBUG "capidrv-%d: avmb1_q931_data: len == %d\n",
-                               card->contrnr, len);
+                      card->contrnr, len);
                return;
        }
 
        if (level2) {
                PUTBYTE_TO_STATUS(card, 'D');
                PUTBYTE_TO_STATUS(card, '2');
-               PUTBYTE_TO_STATUS(card, send ? '>' : '<');
-               PUTBYTE_TO_STATUS(card, ':');
+               PUTBYTE_TO_STATUS(card, send ? '>' : '<');
+               PUTBYTE_TO_STATUS(card, ':');
        } else {
-               PUTBYTE_TO_STATUS(card, 'D');
-               PUTBYTE_TO_STATUS(card, '3');
-               PUTBYTE_TO_STATUS(card, send ? '>' : '<');
-               PUTBYTE_TO_STATUS(card, ':');
-       }
+               PUTBYTE_TO_STATUS(card, 'D');
+               PUTBYTE_TO_STATUS(card, '3');
+               PUTBYTE_TO_STATUS(card, send ? '>' : '<');
+               PUTBYTE_TO_STATUS(card, ':');
+       }
 
-       for (p = data, end = data+len; p < end; p++) {
+       for (p = data, end = data + len; p < end; p++) {
                PUTBYTE_TO_STATUS(card, ' ');
                PUTBYTE_TO_STATUS(card, hex_asc_hi(*p));
                PUTBYTE_TO_STATUS(card, hex_asc_lo(*p));
@@ -1458,7 +1458,7 @@ static void handle_dtrace_data(capidrv_contr *card,
 
        cmd.command = ISDN_STAT_STAVAIL;
        cmd.driver = card->myid;
-       cmd.arg = len*3+5;
+       cmd.arg = len * 3 + 5;
        card->interface.statcallb(&cmd);
 }
 
@@ -1466,17 +1466,17 @@ static void handle_dtrace_data(capidrv_contr *card,
 
 static _cmsg cmdcmsg;
 
-static int capidrv_ioctl(isdn_ctrl * c, capidrv_contr * card)
+static int capidrv_ioctl(isdn_ctrl *c, capidrv_contr *card)
 {
        switch (c->arg) {
        case 1:
                debugmode = (int)(*((unsigned int *)c->parm.num));
                printk(KERN_DEBUG "capidrv-%d: debugmode=%d\n",
-                               card->contrnr, debugmode);
+                      card->contrnr, debugmode);
                return 0;
        default:
                printk(KERN_DEBUG "capidrv-%d: capidrv_ioctl(%ld) called ??\n",
-                               card->contrnr, c->arg);
+                      card->contrnr, c->arg);
                return -EINVAL;
        }
        return -EINVAL;
@@ -1487,9 +1487,9 @@ static int capidrv_ioctl(isdn_ctrl * c, capidrv_contr * card)
  */
 
 struct internal_bchannelinfo {
-   unsigned short channelalloc;
-   unsigned short operation;
-   unsigned char  cmask[31];
+       unsigned short channelalloc;
+       unsigned short operation;
+       unsigned char  cmask[31];
 };
 
 static int decodeFVteln(char *teln, unsigned long *bmaskp, int *activep)
@@ -1540,10 +1540,10 @@ static int decodeFVteln(char *teln, unsigned long *bmaskp, int *activep)
                if (digit2 <= 0 || digit2 > 30) return -4;
                if (*s == 0 || *s == ',' || *s == ' ') {
                        if (digit1 > digit2)
-                               for (i = digit2; i <= digit1 ; i++)
+                               for (i = digit2; i <= digit1; i++)
                                        bmask |= (1 << i);
-                       else 
-                               for (i = digit1; i <= digit2 ; i++)
+                       else
+                               for (i = digit1; i <= digit2; i++)
                                        bmask |= (1 << i);
                        digit1 = digit2 = 0;
                        if (*s) s++;
@@ -1556,131 +1556,131 @@ static int decodeFVteln(char *teln, unsigned long *bmaskp, int *activep)
        return 0;
 }
 
-static int FVteln2capi20(char *teln, u8 AdditionalInfo[1+2+2+31])
+static int FVteln2capi20(char *teln, u8 AdditionalInfo[1 + 2 + 2 + 31])
 {
        unsigned long bmask;
        int active;
        int rc, i;
-   
+
        rc = decodeFVteln(teln, &bmask, &active);
        if (rc) return rc;
        /* Length */
-       AdditionalInfo[0] = 2+2+31;
-        /* Channel: 3 => use channel allocation */
-        AdditionalInfo[1] = 3; AdditionalInfo[2] = 0;
+       AdditionalInfo[0] = 2 + 2 + 31;
+       /* Channel: 3 => use channel allocation */
+       AdditionalInfo[1] = 3; AdditionalInfo[2] = 0;
        /* Operation: 0 => DTE mode, 1 => DCE mode */
-        if (active) {
-               AdditionalInfo[3] = 0; AdditionalInfo[4] = 0;
-       } else {
-               AdditionalInfo[3] = 1; AdditionalInfo[4] = 0;
+       if (active) {
+               AdditionalInfo[3] = 0; AdditionalInfo[4] = 0;
+       } else {
+               AdditionalInfo[3] = 1; AdditionalInfo[4] = 0;
        }
        /* Channel mask array */
        AdditionalInfo[5] = 0; /* no D-Channel */
-       for (i=1; i <= 30; i++)
-               AdditionalInfo[5+i] = (bmask & (1 << i)) ? 0xff : 0;
+       for (i = 1; i <= 30; i++)
+               AdditionalInfo[5 + i] = (bmask & (1 << i)) ? 0xff : 0;
        return 0;
 }
 
-static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
+static int capidrv_command(isdn_ctrl *c, capidrv_contr *card)
 {
        isdn_ctrl cmd;
        struct capidrv_bchan *bchan;
        struct capidrv_plci *plcip;
-       u8 AdditionalInfo[1+2+2+31];
-        int rc, isleasedline = 0;
+       u8 AdditionalInfo[1 + 2 + 2 + 31];
+       int rc, isleasedline = 0;
 
        if (c->command == ISDN_CMD_IOCTL)
                return capidrv_ioctl(c, card);
 
        switch (c->command) {
        case ISDN_CMD_DIAL:{
-                       u8 calling[ISDN_MSNLEN + 3];
-                       u8 called[ISDN_MSNLEN + 2];
+               u8 calling[ISDN_MSNLEN + 3];
+               u8 called[ISDN_MSNLEN + 2];
 
-                       if (debugmode)
-                               printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_DIAL(ch=%ld,\"%s,%d,%d,%s\")\n",
-                                       card->contrnr,
-                                       c->arg,
-                                       c->parm.setup.phone,
-                                       c->parm.setup.si1,
-                                       c->parm.setup.si2,
-                                       c->parm.setup.eazmsn);
-
-                       bchan = &card->bchans[c->arg % card->nbchan];
-
-                       if (bchan->plcip) {
-                               printk(KERN_ERR "capidrv-%d: dail ch=%ld,\"%s,%d,%d,%s\" in use (plci=0x%x)\n",
-                                       card->contrnr,
-                                       c->arg, 
-                                       c->parm.setup.phone,
-                                       c->parm.setup.si1,
-                                       c->parm.setup.si2,
-                                       c->parm.setup.eazmsn,
-                                       bchan->plcip->plci);
-                               return 0;
-                       }
-                       bchan->si1 = c->parm.setup.si1;
-                       bchan->si2 = c->parm.setup.si2;
-
-                       strncpy(bchan->num, c->parm.setup.phone, sizeof(bchan->num));
-                       strncpy(bchan->mynum, c->parm.setup.eazmsn, sizeof(bchan->mynum));
-                        rc = FVteln2capi20(bchan->num, AdditionalInfo);
-                       isleasedline = (rc == 0);
-                       if (rc < 0)
-                               printk(KERN_ERR "capidrv-%d: WARNING: invalid leased linedefinition \"%s\"\n", card->contrnr, bchan->num);
-
-                       if (isleasedline) {
-                               calling[0] = 0;
-                               called[0] = 0;
-                               if (debugmode)
-                                       printk(KERN_DEBUG "capidrv-%d: connecting leased line\n", card->contrnr);
-                       } else {
-                               calling[0] = strlen(bchan->mynum) + 2;
-                               calling[1] = 0;
-                               calling[2] = 0x80;
-                               strncpy(calling + 3, bchan->mynum, ISDN_MSNLEN);
-                               called[0] = strlen(bchan->num) + 1;
-                               called[1] = 0x80;
-                               strncpy(called + 2, bchan->num, ISDN_MSNLEN);
-                       }
+               if (debugmode)
+                       printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_DIAL(ch=%ld,\"%s,%d,%d,%s\")\n",
+                              card->contrnr,
+                              c->arg,
+                              c->parm.setup.phone,
+                              c->parm.setup.si1,
+                              c->parm.setup.si2,
+                              c->parm.setup.eazmsn);
 
-                       capi_fill_CONNECT_REQ(&cmdcmsg,
-                                             global.ap.applid,
-                                             card->msgid++,
-                                             card->contrnr,    /* adr */
-                                         si2cip(bchan->si1, bchan->si2),       /* cipvalue */
-                                             called,   /* CalledPartyNumber */
-                                             calling,  /* CallingPartyNumber */
-                                             NULL,     /* CalledPartySubaddress */
-                                             NULL,     /* CallingPartySubaddress */
-                                           b1prot(bchan->l2, bchan->l3),       /* B1protocol */
-                                           b2prot(bchan->l2, bchan->l3),       /* B2protocol */
-                                           b3prot(bchan->l2, bchan->l3),       /* B3protocol */
-                                           b1config(bchan->l2, bchan->l3),     /* B1configuration */
-                                             NULL,     /* B2configuration */
-                                             NULL,     /* B3configuration */
-                                             NULL,     /* BC */
-                                             NULL,     /* LLC */
-                                             NULL,     /* HLC */
-                                             /* BChannelinformation */
-                                             isleasedline ? AdditionalInfo : NULL,
-                                             NULL,     /* Keypadfacility */
-                                             NULL,     /* Useruserdata */
-                                             NULL      /* Facilitydataarray */
-                           );
-                       if ((plcip = new_plci(card, (c->arg % card->nbchan))) == NULL) {
-                               cmd.command = ISDN_STAT_DHUP;
-                               cmd.driver = card->myid;
-                               cmd.arg = (c->arg % card->nbchan);
-                               card->interface.statcallb(&cmd);
-                               return -1;
-                       }
-                       plcip->msgid = cmdcmsg.Messagenumber;
-                       plcip->leasedline = isleasedline;
-                       plci_change_state(card, plcip, EV_PLCI_CONNECT_REQ);
-                       send_message(card, &cmdcmsg);
+               bchan = &card->bchans[c->arg % card->nbchan];
+
+               if (bchan->plcip) {
+                       printk(KERN_ERR "capidrv-%d: dail ch=%ld,\"%s,%d,%d,%s\" in use (plci=0x%x)\n",
+                              card->contrnr,
+                              c->arg,
+                              c->parm.setup.phone,
+                              c->parm.setup.si1,
+                              c->parm.setup.si2,
+                              c->parm.setup.eazmsn,
+                              bchan->plcip->plci);
                        return 0;
                }
+               bchan->si1 = c->parm.setup.si1;
+               bchan->si2 = c->parm.setup.si2;
+
+               strncpy(bchan->num, c->parm.setup.phone, sizeof(bchan->num));
+               strncpy(bchan->mynum, c->parm.setup.eazmsn, sizeof(bchan->mynum));
+               rc = FVteln2capi20(bchan->num, AdditionalInfo);
+               isleasedline = (rc == 0);
+               if (rc < 0)
+                       printk(KERN_ERR "capidrv-%d: WARNING: invalid leased linedefinition \"%s\"\n", card->contrnr, bchan->num);
+
+               if (isleasedline) {
+                       calling[0] = 0;
+                       called[0] = 0;
+                       if (debugmode)
+                               printk(KERN_DEBUG "capidrv-%d: connecting leased line\n", card->contrnr);
+               } else {
+                       calling[0] = strlen(bchan->mynum) + 2;
+                       calling[1] = 0;
+                       calling[2] = 0x80;
+                       strncpy(calling + 3, bchan->mynum, ISDN_MSNLEN);
+                       called[0] = strlen(bchan->num) + 1;
+                       called[1] = 0x80;
+                       strncpy(called + 2, bchan->num, ISDN_MSNLEN);
+               }
+
+               capi_fill_CONNECT_REQ(&cmdcmsg,
+                                     global.ap.applid,
+                                     card->msgid++,
+                                     card->contrnr,    /* adr */
+                                     si2cip(bchan->si1, bchan->si2),   /* cipvalue */
+                                     called,   /* CalledPartyNumber */
+                                     calling,  /* CallingPartyNumber */
+                                     NULL,     /* CalledPartySubaddress */
+                                     NULL,     /* CallingPartySubaddress */
+                                     b1prot(bchan->l2, bchan->l3),     /* B1protocol */
+                                     b2prot(bchan->l2, bchan->l3),     /* B2protocol */
+                                     b3prot(bchan->l2, bchan->l3),     /* B3protocol */
+                                     b1config(bchan->l2, bchan->l3),   /* B1configuration */
+                                     NULL,     /* B2configuration */
+                                     NULL,     /* B3configuration */
+                                     NULL,     /* BC */
+                                     NULL,     /* LLC */
+                                     NULL,     /* HLC */
+                                     /* BChannelinformation */
+                                     isleasedline ? AdditionalInfo : NULL,
+                                     NULL,     /* Keypadfacility */
+                                     NULL,     /* Useruserdata */
+                                     NULL      /* Facilitydataarray */
+                       );
+               if ((plcip = new_plci(card, (c->arg % card->nbchan))) == NULL) {
+                       cmd.command = ISDN_STAT_DHUP;
+                       cmd.driver = card->myid;
+                       cmd.arg = (c->arg % card->nbchan);
+                       card->interface.statcallb(&cmd);
+                       return -1;
+               }
+               plcip->msgid = cmdcmsg.Messagenumber;
+               plcip->leasedline = isleasedline;
+               plci_change_state(card, plcip, EV_PLCI_CONNECT_REQ);
+               send_message(card, &cmdcmsg);
+               return 0;
+       }
 
        case ISDN_CMD_ACCEPTD:
 
@@ -1708,7 +1708,7 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
                                       NULL,    /* Keypadfacility */
                                       NULL,    /* Useruserdata */
                                       NULL     /* Facilitydataarray */
-               );
+                       );
                capi_cmsg2message(&cmdcmsg, cmdcmsg.buf);
                plci_change_state(card, bchan->plcip, EV_PLCI_CONNECT_RESP);
                send_message(card, &cmdcmsg);
@@ -1742,7 +1742,7 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
                                                    card->msgid++,
                                                    bchan->nccip->ncci,
                                                    NULL        /* NCPI */
-                       );
+                               );
                        ncci_change_state(card, bchan->nccip, EV_NCCI_DISCONNECT_B3_REQ);
                        send_message(card, &cmdcmsg);
                        return 0;
@@ -1761,12 +1761,12 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
                                capi_fill_DISCONNECT_REQ(&cmdcmsg,
                                                         global.ap.applid,
                                                         card->msgid++,
-                                                     bchan->plcip->plci,
+                                                        bchan->plcip->plci,
                                                         NULL,  /* BChannelinformation */
                                                         NULL,  /* Keypadfacility */
                                                         NULL,  /* Useruserdata */
                                                         NULL   /* Facilitydataarray */
-                               );
+                                       );
                                plci_change_state(card, bchan->plcip, EV_PLCI_DISCONNECT_REQ);
                                send_message(card, &cmdcmsg);
                                return 0;
@@ -1778,8 +1778,8 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
                        }
                }
                printk(KERN_ERR "capidrv-%d: chan %ld disconnect request on free channel\n",
-                                      card->contrnr,
-                                      c->arg);
+                      card->contrnr,
+                      c->arg);
                return -EINVAL;
 /* ready */
 
@@ -1813,20 +1813,20 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
        case ISDN_CMD_CLREAZ:
                if (debugmode)
                        printk(KERN_DEBUG "capidrv-%d: clearing EAZ on chan %ld\n",
-                                       card->contrnr, c->arg);
+                              card->contrnr, c->arg);
                bchan = &card->bchans[c->arg % card->nbchan];
                bchan->msn[0] = 0;
                return 0;
 
        default:
                printk(KERN_ERR "capidrv-%d: ISDN_CMD_%d, Huh?\n",
-                                       card->contrnr, c->command);
+                      card->contrnr, c->command);
                return -EINVAL;
        }
        return 0;
 }
 
-static int if_command(isdn_ctrl * c)
+static int if_command(isdn_ctrl *c)
 {
        capidrv_contr *card = findcontrbydriverid(c->driver);
 
@@ -1834,8 +1834,8 @@ static int if_command(isdn_ctrl * c)
                return capidrv_command(c, card);
 
        printk(KERN_ERR
-            "capidrv: if_command %d called with invalid driverId %d!\n",
-                                               c->command, c->driver);
+              "capidrv: if_command %d called with invalid driverId %d!\n",
+              c->command, c->driver);
        return -ENODEV;
 }
 
@@ -1859,7 +1859,7 @@ static int if_sendbuf(int id, int channel, int doack, struct sk_buff *skb)
        }
        if (debugmode > 4)
                printk(KERN_DEBUG "capidrv-%d: sendbuf len=%d skb=%p doack=%d\n",
-                                       card->contrnr, len, skb, doack);
+                      card->contrnr, len, skb, doack);
        bchan = &card->bchans[channel % card->nbchan];
        nccip = bchan->nccip;
        if (!nccip || nccip->state != ST_NCCI_ACTIVE) {
@@ -1891,10 +1891,10 @@ static int if_sendbuf(int id, int channel, int doack, struct sk_buff *skb)
                              skb->len,         /* DataLength */
                              datahandle,       /* DataHandle */
                              0 /* Flags */
-           );
+               );
 
        if (capidrv_add_ack(nccip, datahandle, doack ? (int)skb->len : -1) < 0)
-          return 0;
+               return 0;
 
        capi_cmsg2message(&sendcmsg, sendcmsg.buf);
        msglen = CAPIMSG_LEN(sendcmsg.buf);
@@ -1902,8 +1902,8 @@ static int if_sendbuf(int id, int channel, int doack, struct sk_buff *skb)
                struct sk_buff *nskb = skb_realloc_headroom(skb, msglen);
                if (!nskb) {
                        printk(KERN_ERR "capidrv-%d: if_sendbuf: no memory\n",
-                               card->contrnr);
-                       (void)capidrv_del_ack(nccip, datahandle);
+                              card->contrnr);
+                       (void)capidrv_del_ack(nccip, datahandle);
                        return 0;
                }
                printk(KERN_DEBUG "capidrv-%d: only %d bytes headroom, need %d\n",
@@ -1917,9 +1917,9 @@ static int if_sendbuf(int id, int channel, int doack, struct sk_buff *skb)
                }
                if (debugmode > 3)
                        printk(KERN_DEBUG "capidrv-%d: sendbuf putmsg ret(%x) - %s\n",
-                               card->contrnr, errcode, capi_info2str(errcode));
-               (void)capidrv_del_ack(nccip, datahandle);
-               dev_kfree_skb(nskb);
+                              card->contrnr, errcode, capi_info2str(errcode));
+               (void)capidrv_del_ack(nccip, datahandle);
+               dev_kfree_skb(nskb);
                return errcode == CAPI_SENDQUEUEFULL ? 0 : -1;
        } else {
                memcpy(skb_push(skb, msglen), sendcmsg.buf, msglen);
@@ -1930,9 +1930,9 @@ static int if_sendbuf(int id, int channel, int doack, struct sk_buff *skb)
                }
                if (debugmode > 3)
                        printk(KERN_DEBUG "capidrv-%d: sendbuf putmsg ret(%x) - %s\n",
-                               card->contrnr, errcode, capi_info2str(errcode));
+                              card->contrnr, errcode, capi_info2str(errcode));
                skb_pull(skb, msglen);
-               (void)capidrv_del_ack(nccip, datahandle);
+               (void)capidrv_del_ack(nccip, datahandle);
                return errcode == CAPI_SENDQUEUEFULL ? 0 : -1;
        }
 }
@@ -1949,11 +1949,11 @@ static int if_readstat(u8 __user *buf, int len, int id, int channel)
                return -ENODEV;
        }
 
-       for (p=buf, count=0; count < len; p++, count++) {
+       for (p = buf, count = 0; count < len; p++, count++) {
                if (put_user(*card->q931_read++, p))
                        return -EFAULT;
-               if (card->q931_read > card->q931_end)
-                       card->q931_read = card->q931_buf;
+               if (card->q931_read > card->q931_end)
+                       card->q931_read = card->q931_buf;
        }
        return count;
 
@@ -1961,35 +1961,35 @@ static int if_readstat(u8 __user *buf, int len, int id, int channel)
 
 static void enable_dchannel_trace(capidrv_contr *card)
 {
-        u8 manufacturer[CAPI_MANUFACTURER_LEN];
-        capi_version version;
+       u8 manufacturer[CAPI_MANUFACTURER_LEN];
+       capi_version version;
        u16 contr = card->contrnr;
        u16 errcode;
        u16 avmversion[3];
 
-        errcode = capi20_get_manufacturer(contr, manufacturer);
-        if (errcode != CAPI_NOERROR) {
-          printk(KERN_ERR "%s: can't get manufacturer (0x%x)\n",
-                       card->name, errcode);
-          return;
+       errcode = capi20_get_manufacturer(contr, manufacturer);
+       if (errcode != CAPI_NOERROR) {
+               printk(KERN_ERR "%s: can't get manufacturer (0x%x)\n",
+                      card->name, errcode);
+               return;
        }
        if (strstr(manufacturer, "AVM") == NULL) {
-          printk(KERN_ERR "%s: not from AVM, no d-channel trace possible (%s)\n",
-                       card->name, manufacturer);
-          return;
+               printk(KERN_ERR "%s: not from AVM, no d-channel trace possible (%s)\n",
+                      card->name, manufacturer);
+               return;
        }
-        errcode = capi20_get_version(contr, &version);
-        if (errcode != CAPI_NOERROR) {
-          printk(KERN_ERR "%s: can't get version (0x%x)\n",
-                       card->name, errcode);
-          return;
+       errcode = capi20_get_version(contr, &version);
+       if (errcode != CAPI_NOERROR) {
+               printk(KERN_ERR "%s: can't get version (0x%x)\n",
+                      card->name, errcode);
+               return;
        }
        avmversion[0] = (version.majormanuversion >> 4) & 0x0f;
        avmversion[1] = (version.majormanuversion << 4) & 0xf0;
        avmversion[1] |= (version.minormanuversion >> 4) & 0x0f;
        avmversion[2] |= version.minormanuversion & 0x0f;
 
-        if (avmversion[0] > 3 || (avmversion[0] == 3 && avmversion[1] > 5)) {
+       if (avmversion[0] > 3 || (avmversion[0] == 3 && avmversion[1] > 5)) {
                printk(KERN_INFO "%s: D2 trace enabled\n", card->name);
                capi_fill_MANUFACTURER_REQ(&cmdcmsg, global.ap.applid,
                                           card->msgid++,
@@ -2030,8 +2030,8 @@ static void listentimerfunc(unsigned long x)
        capidrv_contr *card = (capidrv_contr *)x;
        if (card->state != ST_LISTEN_NONE && card->state != ST_LISTEN_ACTIVE)
                printk(KERN_ERR "%s: controller dead ??\n", card->name);
-        send_listen(card);
-       mod_timer(&card->listentimer, jiffies + 60*HZ);
+       send_listen(card);
+       mod_timer(&card->listentimer, jiffies + 60 * HZ);
 }
 
 
@@ -2050,7 +2050,7 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
        }
        if (!(card = kzalloc(sizeof(capidrv_contr), GFP_ATOMIC))) {
                printk(KERN_WARNING
-                "capidrv: (%s) Could not allocate contr-struct.\n", id);
+                      "capidrv: (%s) Could not allocate contr-struct.\n", id);
                return -1;
        }
        card->owner = THIS_MODULE;
@@ -2061,7 +2061,7 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
        card->bchans = kmalloc(sizeof(capidrv_bchan) * card->nbchan, GFP_ATOMIC);
        if (!card->bchans) {
                printk(KERN_WARNING
-               "capidrv: (%s) Could not allocate bchan-structs.\n", id);
+                      "capidrv: (%s) Could not allocate bchan-structs.\n", id);
                module_put(card->owner);
                kfree(card);
                return -1;
@@ -2073,17 +2073,17 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
        card->interface.writecmd = NULL;
        card->interface.readstat = if_readstat;
        card->interface.features = ISDN_FEATURE_L2_HDLC |
-                                  ISDN_FEATURE_L2_TRANS |
-                                  ISDN_FEATURE_L3_TRANS |
-                                  ISDN_FEATURE_P_UNKNOWN |
-                                  ISDN_FEATURE_L2_X75I |
-                                  ISDN_FEATURE_L2_X75UI |
-                                  ISDN_FEATURE_L2_X75BUI;
-       if (profp->support1 & (1<<2))
+               ISDN_FEATURE_L2_TRANS |
+               ISDN_FEATURE_L3_TRANS |
+               ISDN_FEATURE_P_UNKNOWN |
+               ISDN_FEATURE_L2_X75I |
+               ISDN_FEATURE_L2_X75UI |
+               ISDN_FEATURE_L2_X75BUI;
+       if (profp->support1 & (1 << 2))
                card->interface.features |= ISDN_FEATURE_L2_V11096 |
-                                           ISDN_FEATURE_L2_V11019 |
-                                           ISDN_FEATURE_L2_V11038;
-       if (profp->support1 & (1<<8))
+                       ISDN_FEATURE_L2_V11019 |
+                       ISDN_FEATURE_L2_V11038;
+       if (profp->support1 & (1 << 8))
                card->interface.features |= ISDN_FEATURE_L2_MODEM;
        card->interface.hl_hdrlen = 22; /* len of DATA_B3_REQ */
        strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
@@ -2122,10 +2122,10 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
        card->listentimer.data = (unsigned long)card;
        card->listentimer.function = listentimerfunc;
        send_listen(card);
-       mod_timer(&card->listentimer, jiffies + 60*HZ);
+       mod_timer(&card->listentimer, jiffies + 60 * HZ);
 
        printk(KERN_INFO "%s: now up (%d B channels)\n",
-               card->name, card->nbchan);
+              card->name, card->nbchan);
 
        enable_dchannel_trace(card);
 
@@ -2158,7 +2158,7 @@ static int capidrv_delcontr(u16 contr)
 
        if (debugmode)
                printk(KERN_DEBUG "capidrv-%d: id=%d unloading\n",
-                                       card->contrnr, card->myid);
+                      card->contrnr, card->myid);
 
        cmd.command = ISDN_STAT_STOP;
        cmd.driver = card->myid;
@@ -2168,17 +2168,17 @@ static int capidrv_delcontr(u16 contr)
 
                cmd.command = ISDN_STAT_DISCH;
                cmd.driver = card->myid;
-               cmd.arg = card->nbchan-1;
-               cmd.parm.num[0] = 0;
+               cmd.arg = card->nbchan - 1;
+               cmd.parm.num[0] = 0;
                if (debugmode)
                        printk(KERN_DEBUG "capidrv-%d: id=%d disable chan=%ld\n",
-                                       card->contrnr, card->myid, cmd.arg);
+                              card->contrnr, card->myid, cmd.arg);
                card->interface.statcallb(&cmd);
 
-               if (card->bchans[card->nbchan-1].nccip)
-                       free_ncci(card, card->bchans[card->nbchan-1].nccip);
-               if (card->bchans[card->nbchan-1].plcip)
-                       free_plci(card, card->bchans[card->nbchan-1].plcip);
+               if (card->bchans[card->nbchan - 1].nccip)
+                       free_ncci(card, card->bchans[card->nbchan - 1].nccip);
+               if (card->bchans[card->nbchan - 1].plcip)
+                       free_plci(card, card->bchans[card->nbchan - 1].plcip);
                if (card->plci_list)
                        printk(KERN_ERR "capidrv: bug in free_plci()\n");
                card->nbchan--;
@@ -2188,7 +2188,7 @@ static int capidrv_delcontr(u16 contr)
 
        if (debugmode)
                printk(KERN_DEBUG "capidrv-%d: id=%d isdn unload\n",
-                                       card->contrnr, card->myid);
+                      card->contrnr, card->myid);
 
        cmd.command = ISDN_STAT_UNLOAD;
        cmd.driver = card->myid;
@@ -2196,7 +2196,7 @@ static int capidrv_delcontr(u16 contr)
 
        if (debugmode)
                printk(KERN_DEBUG "capidrv-%d: id=%d remove contr from list\n",
-                                       card->contrnr, card->myid);
+                      card->contrnr, card->myid);
 
        spin_lock_irqsave(&global_lock, flags);
        for (pp = &global.contr_list; *pp; pp = &(*pp)->next) {
@@ -2243,10 +2243,10 @@ lower_callback(struct notifier_block *nb, unsigned long val, void *v)
 static int capidrv_proc_show(struct seq_file *m, void *v)
 {
        seq_printf(m, "%lu %lu %lu %lu\n",
-                       global.ap.nrecvctlpkt,
-                       global.ap.nrecvdatapkt,
-                       global.ap.nsentctlpkt,
-                       global.ap.nsentdatapkt);
+                  global.ap.nrecvctlpkt,
+                  global.ap.nrecvdatapkt,
+                  global.ap.nsentctlpkt,
+                  global.ap.nsentdatapkt);
        return 0;
 }
 
index 1e698e1..4466b2e 100644 (file)
@@ -34,7 +34,7 @@
  * per plci state machine
  */
 #define ST_PLCI_NONE                   0       /* P-0 */
-#define ST_PLCI_OUTGOING               1       /* P-0.1 */
+#define ST_PLCI_OUTGOING               1       /* P-0.1 */
 #define ST_PLCI_ALLOCATED              2       /* P-1 */
 #define ST_PLCI_ACTIVE                 3       /* P-ACT */
 #define ST_PLCI_INCOMING               4       /* P-2 */
 #define ST_PLCI_HELD                   11      /* P-HELD */
 
 #define EV_PLCI_CONNECT_REQ            1       /* P-0 -> P-0.1
-                                                 */
+                                                */
 #define EV_PLCI_CONNECT_CONF_ERROR     2       /* P-0.1 -> P-0
-                                                 */
+                                                */
 #define EV_PLCI_CONNECT_CONF_OK                3       /* P-0.1 -> P-1
-                                                 */
+                                                */
 #define EV_PLCI_FACILITY_IND_UP                4       /* P-0 -> P-1
-                                                 */
+                                                */
 #define EV_PLCI_CONNECT_IND            5       /* P-0 -> P-2
-                                                 */
+                                                */
 #define EV_PLCI_CONNECT_ACTIVE_IND     6       /* P-1 -> P-ACT
-                                                 */
+                                                */
 #define EV_PLCI_CONNECT_REJECT         7       /* P-2 -> P-5
                                                   P-3 -> P-5
-                                                */
+                                               */
 #define EV_PLCI_DISCONNECT_REQ         8       /* P-1 -> P-5
                                                   P-2 -> P-5
                                                   P-3 -> P-5
@@ -68,7 +68,7 @@
                                                   P-ACT -> P-5
                                                   P-Res -> P-5 (*)
                                                   P-HELD -> P-5 (*)
-                                                  */
+                                               */
 #define EV_PLCI_DISCONNECT_IND         9       /* P-1 -> P-6
                                                   P-2 -> P-6
                                                   P-3 -> P-6
                                                   P-ACT -> P-6
                                                   P-Res -> P-6 (*)
                                                   P-HELD -> P-6 (*)
-                                                  */
+                                               */
 #define EV_PLCI_FACILITY_IND_DOWN      10      /* P-0.1 -> P-5
                                                   P-1 -> P-5
                                                   P-ACT -> P-5
                                                   P-2 -> P-5
                                                   P-3 -> P-5
                                                   P-4 -> P-5
-                                                  */
+                                               */
 #define EV_PLCI_DISCONNECT_RESP                11      /* P-6 -> P-0
-                                                   */
+                                                */
 #define EV_PLCI_CONNECT_RESP           12      /* P-6 -> P-0
-                                                   */
+                                                */
 
 #define EV_PLCI_RESUME_REQ             13      /* P-0 -> P-0.Res
-                                                 */
+                                                */
 #define EV_PLCI_RESUME_CONF_OK         14      /* P-0.Res -> P-Res
-                                                 */
+                                                */
 #define EV_PLCI_RESUME_CONF_ERROR      15      /* P-0.Res -> P-0
-                                                 */
+                                                */
 #define EV_PLCI_RESUME_IND             16      /* P-Res -> P-ACT
-                                                 */
+                                                */
 #define EV_PLCI_HOLD_IND               17      /* P-ACT -> P-HELD
-                                                 */
+                                                */
 #define EV_PLCI_RETRIEVE_IND           18      /* P-HELD -> P-ACT
-                                                 */
+                                                */
 #define EV_PLCI_SUSPEND_IND            19      /* P-ACT -> P-5
-                                                 */
+                                                */
 #define EV_PLCI_CD_IND                 20      /* P-2 -> P-5
-                                                 */
+                                                */
 
 /*
  * per ncci state machine
index 0b041df..33361f8 100644 (file)
@@ -4,9 +4,9 @@
 #include <linux/module.h>
 #include <linux/isdn/capilli.h>
 
-#define DBG(format, arg...) do { \
-printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
-} while (0)
+#define DBG(format, arg...) do {                                       \
+               printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
+       } while (0)
 
 struct capilib_msgidqueue {
        struct capilib_msgidqueue *next;
@@ -28,7 +28,7 @@ struct capilib_ncci {
 // ---------------------------------------------------------------------------
 // NCCI Handling
 
-static inline void mq_init(struct capilib_ncci * np)
+static inline void mq_init(struct capilib_ncci *np)
 {
        u_int i;
        np->msgidqueue = NULL;
@@ -42,7 +42,7 @@ static inline void mq_init(struct capilib_ncci * np)
        }
 }
 
-static inline int mq_enqueue(struct capilib_ncci * np, u16 msgid)
+static inline int mq_enqueue(struct capilib_ncci *np, u16 msgid)
 {
        struct capilib_msgidqueue *mq;
        if ((mq = np->msgidfree) == NULL)
@@ -59,7 +59,7 @@ static inline int mq_enqueue(struct capilib_ncci * np, u16 msgid)
        return 1;
 }
 
-static inline int mq_dequeue(struct capilib_ncci * np, u16 msgid)
+static inline int mq_dequeue(struct capilib_ncci *np, u16 msgid)
 {
        struct capilib_msgidqueue **pp;
        for (pp = &np->msgidqueue; *pp; pp = &(*pp)->next) {
@@ -165,7 +165,7 @@ u16 capilib_data_b3_req(struct list_head *head, u16 applid, u32 ncci, u16 msgid)
                        continue;
                if (np->ncci != ncci)
                        continue;
-               
+
                if (mq_enqueue(np, msgid) == 0)
                        return CAPI_SENDQUEUEFULL;
 
@@ -188,7 +188,7 @@ void capilib_data_b3_conf(struct list_head *head, u16 applid, u32 ncci, u16 msgi
                        continue;
                if (np->ncci != ncci)
                        continue;
-               
+
                if (mq_dequeue(np, msgid) == 0) {
                        printk(KERN_ERR "kcapi: msgid %hu ncci 0x%x not on queue\n",
                               msgid, ncci);
index 03c469e..d26f170 100644 (file)
 #ifndef CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON
 char *capi_info2str(u16 reason)
 {
-    return "..";
+       return "..";
 }
 #else
 char *capi_info2str(u16 reason)
 {
-    switch (reason) {
+       switch (reason) {
 
 /*-- informative values (corresponding message was processed) -----*/
        case 0x0001:
-          return "NCPI not supported by current protocol, NCPI ignored";
+               return "NCPI not supported by current protocol, NCPI ignored";
        case 0x0002:
-          return "Flags not supported by current protocol, flags ignored";
+               return "Flags not supported by current protocol, flags ignored";
        case 0x0003:
-          return "Alert already sent by another application";
+               return "Alert already sent by another application";
 
 /*-- error information concerning CAPI_REGISTER -----*/
        case 0x1001:
-          return "Too many applications";
+               return "Too many applications";
        case 0x1002:
-          return "Logical block size too small, must be at least 128 Bytes";
+               return "Logical block size too small, must be at least 128 Bytes";
        case 0x1003:
-          return "Buffer exceeds 64 kByte";
+               return "Buffer exceeds 64 kByte";
        case 0x1004:
-          return "Message buffer size too small, must be at least 1024 Bytes";
+               return "Message buffer size too small, must be at least 1024 Bytes";
        case 0x1005:
-          return "Max. number of logical connections not supported";
+               return "Max. number of logical connections not supported";
        case 0x1006:
-          return "Reserved";
+               return "Reserved";
        case 0x1007:
-          return "The message could not be accepted because of an internal busy condition";
+               return "The message could not be accepted because of an internal busy condition";
        case 0x1008:
-          return "OS resource error (no memory ?)";
+               return "OS resource error (no memory ?)";
        case 0x1009:
-          return "CAPI not installed";
+               return "CAPI not installed";
        case 0x100A:
-          return "Controller does not support external equipment";
+               return "Controller does not support external equipment";
        case 0x100B:
-          return "Controller does only support external equipment";
+               return "Controller does only support external equipment";
 
 /*-- error information concerning message exchange functions -----*/
        case 0x1101:
-          return "Illegal application number";
+               return "Illegal application number";
        case 0x1102:
-          return "Illegal command or subcommand or message length less than 12 bytes";
+               return "Illegal command or subcommand or message length less than 12 bytes";
        case 0x1103:
-          return "The message could not be accepted because of a queue full condition !! The error code does not imply that CAPI cannot receive messages directed to another controller, PLCI or NCCI";
+               return "The message could not be accepted because of a queue full condition !! The error code does not imply that CAPI cannot receive messages directed to another controller, PLCI or NCCI";
        case 0x1104:
-          return "Queue is empty";
+               return "Queue is empty";
        case 0x1105:
-          return "Queue overflow, a message was lost !! This indicates a configuration error. The only recovery from this error is to perform a CAPI_RELEASE";
+               return "Queue overflow, a message was lost !! This indicates a configuration error. The only recovery from this error is to perform a CAPI_RELEASE";
        case 0x1106:
-          return "Unknown notification parameter";
+               return "Unknown notification parameter";
        case 0x1107:
-          return "The Message could not be accepted because of an internal busy condition";
+               return "The Message could not be accepted because of an internal busy condition";
        case 0x1108:
-          return "OS Resource error (no memory ?)";
+               return "OS Resource error (no memory ?)";
        case 0x1109:
-          return "CAPI not installed";
+               return "CAPI not installed";
        case 0x110A:
-          return "Controller does not support external equipment";
+               return "Controller does not support external equipment";
        case 0x110B:
-          return "Controller does only support external equipment";
+               return "Controller does only support external equipment";
 
 /*-- error information concerning resource / coding problems -----*/
        case 0x2001:
-          return "Message not supported in current state";
+               return "Message not supported in current state";
        case 0x2002:
-          return "Illegal Controller / PLCI / NCCI";
+               return "Illegal Controller / PLCI / NCCI";
        case 0x2003:
-          return "Out of PLCI";
+               return "Out of PLCI";
        case 0x2004:
-          return "Out of NCCI";
+               return "Out of NCCI";
        case 0x2005:
-          return "Out of LISTEN";
+               return "Out of LISTEN";
        case 0x2006:
-          return "Out of FAX resources (protocol T.30)";
+               return "Out of FAX resources (protocol T.30)";
        case 0x2007:
-          return "Illegal message parameter coding";
+               return "Illegal message parameter coding";
 
 /*-- error information concerning requested services  -----*/
        case 0x3001:
-          return "B1 protocol not supported";
-       case 0x3002: 
-          return "B2 protocol not supported";
-       case 0x3003: 
-          return "B3 protocol not supported";
-       case 0x3004: 
-          return "B1 protocol parameter not supported";
-       case 0x3005: 
-          return "B2 protocol parameter not supported";
-       case 0x3006: 
-          return "B3 protocol parameter not supported";
-       case 0x3007: 
-          return "B protocol combination not supported";
-       case 0x3008: 
-          return "NCPI not supported";
-       case 0x3009: 
-          return "CIP Value unknown";
-       case 0x300A: 
-          return "Flags not supported (reserved bits)";
-       case 0x300B: 
-          return "Facility not supported";
-       case 0x300C: 
-          return "Data length not supported by current protocol";
-       case 0x300D: 
-          return "Reset procedure not supported by current protocol";
+               return "B1 protocol not supported";
+       case 0x3002:
+               return "B2 protocol not supported";
+       case 0x3003:
+               return "B3 protocol not supported";
+       case 0x3004:
+               return "B1 protocol parameter not supported";
+       case 0x3005:
+               return "B2 protocol parameter not supported";
+       case 0x3006:
+               return "B3 protocol parameter not supported";
+       case 0x3007:
+               return "B protocol combination not supported";
+       case 0x3008:
+               return "NCPI not supported";
+       case 0x3009:
+               return "CIP Value unknown";
+       case 0x300A:
+               return "Flags not supported (reserved bits)";
+       case 0x300B:
+               return "Facility not supported";
+       case 0x300C:
+               return "Data length not supported by current protocol";
+       case 0x300D:
+               return "Reset procedure not supported by current protocol";
 
 /*-- informations about the clearing of a physical connection -----*/
-       case 0x3301: 
-          return "Protocol error layer 1 (broken line or B-channel removed by signalling protocol)";
-       case 0x3302: 
-          return "Protocol error layer 2";
-       case 0x3303: 
-          return "Protocol error layer 3";
-       case 0x3304: 
-          return "Another application got that call";
+       case 0x3301:
+               return "Protocol error layer 1 (broken line or B-channel removed by signalling protocol)";
+       case 0x3302:
+               return "Protocol error layer 2";
+       case 0x3303:
+               return "Protocol error layer 3";
+       case 0x3304:
+               return "Another application got that call";
 /*-- T.30 specific reasons -----*/
-       case 0x3311: 
-          return "Connecting not successful (remote station is no FAX G3 machine)";
-       case 0x3312: 
-          return "Connecting not successful (training error)";
-       case 0x3313: 
-          return "Disconnected before transfer (remote station does not support transfer mode, e.g. resolution)";
-       case 0x3314: 
-          return "Disconnected during transfer (remote abort)";
-       case 0x3315: 
-          return "Disconnected during transfer (remote procedure error, e.g. unsuccessful repetition of T.30 commands)";
-       case 0x3316: 
-          return "Disconnected during transfer (local tx data underrun)";
-       case 0x3317: 
-          return "Disconnected during transfer (local rx data overflow)";
-       case 0x3318: 
-          return "Disconnected during transfer (local abort)";
-       case 0x3319: 
-          return "Illegal parameter coding (e.g. SFF coding error)";
+       case 0x3311:
+               return "Connecting not successful (remote station is no FAX G3 machine)";
+       case 0x3312:
+               return "Connecting not successful (training error)";
+       case 0x3313:
+               return "Disconnected before transfer (remote station does not support transfer mode, e.g. resolution)";
+       case 0x3314:
+               return "Disconnected during transfer (remote abort)";
+       case 0x3315:
+               return "Disconnected during transfer (remote procedure error, e.g. unsuccessful repetition of T.30 commands)";
+       case 0x3316:
+               return "Disconnected during transfer (local tx data underrun)";
+       case 0x3317:
+               return "Disconnected during transfer (local rx data overflow)";
+       case 0x3318:
+               return "Disconnected during transfer (local abort)";
+       case 0x3319:
+               return "Illegal parameter coding (e.g. SFF coding error)";
 
 /*-- disconnect causes from the network according to ETS 300 102-1/Q.931 -----*/
        case 0x3481: return "Unallocated (unassigned) number";
        case 0x3482: return "No route to specified transit network";
        case 0x3483: return "No route to destination";
        case 0x3486: return "Channel unacceptable";
-       case 0x3487: 
-          return "Call awarded and being delivered in an established channel";
+       case 0x3487:
+               return "Call awarded and being delivered in an established channel";
        case 0x3490: return "Normal call clearing";
        case 0x3491: return "User busy";
        case 0x3492: return "No user responding";
@@ -217,7 +217,7 @@ char *capi_info2str(u16 reason)
        case 0x34FF: return "Interworking, unspecified";
 
        default: return "No additional information";
-    }
+       }
 }
 #endif
 
@@ -235,169 +235,169 @@ typedef struct {
 
 static _cdef cdef[] =
 {
-    /*00 */ 
- {_CEND},
-    /*01 */ 
- {_CEND},
-    /*02 */ 
- {_CEND},
-    /*03 */ 
- {_CDWORD, offsetof(_cmsg, adr.adrController)},
-    /*04 */ 
- {_CMSTRUCT, offsetof(_cmsg, AdditionalInfo)},
-    /*05 */ 
- {_CSTRUCT, offsetof(_cmsg, B1configuration)},
-    /*06 */ 
- {_CWORD, offsetof(_cmsg, B1protocol)},
-    /*07 */ 
- {_CSTRUCT, offsetof(_cmsg, B2configuration)},
-    /*08 */ 
- {_CWORD, offsetof(_cmsg, B2protocol)},
-    /*09 */ 
- {_CSTRUCT, offsetof(_cmsg, B3configuration)},
-    /*0a */ 
- {_CWORD, offsetof(_cmsg, B3protocol)},
-    /*0b */ 
- {_CSTRUCT, offsetof(_cmsg, BC)},
-    /*0c */ 
- {_CSTRUCT, offsetof(_cmsg, BChannelinformation)},
-    /*0d */ 
- {_CMSTRUCT, offsetof(_cmsg, BProtocol)},
-    /*0e */ 
- {_CSTRUCT, offsetof(_cmsg, CalledPartyNumber)},
-    /*0f */ 
- {_CSTRUCT, offsetof(_cmsg, CalledPartySubaddress)},
-    /*10 */ 
- {_CSTRUCT, offsetof(_cmsg, CallingPartyNumber)},
-    /*11 */ 
- {_CSTRUCT, offsetof(_cmsg, CallingPartySubaddress)},
-    /*12 */ 
- {_CDWORD, offsetof(_cmsg, CIPmask)},
-    /*13 */ 
- {_CDWORD, offsetof(_cmsg, CIPmask2)},
-    /*14 */ 
- {_CWORD, offsetof(_cmsg, CIPValue)},
-    /*15 */ 
- {_CDWORD, offsetof(_cmsg, Class)},
-    /*16 */ 
- {_CSTRUCT, offsetof(_cmsg, ConnectedNumber)},
-    /*17 */ 
- {_CSTRUCT, offsetof(_cmsg, ConnectedSubaddress)},
-    /*18 */ 
- {_CDWORD, offsetof(_cmsg, Data)},
-    /*19 */ 
- {_CWORD, offsetof(_cmsg, DataHandle)},
-    /*1a */ 
- {_CWORD, offsetof(_cmsg, DataLength)},
-    /*1b */ 
- {_CSTRUCT, offsetof(_cmsg, FacilityConfirmationParameter)},
-    /*1c */ 
- {_CSTRUCT, offsetof(_cmsg, Facilitydataarray)},
-    /*1d */ 
- {_CSTRUCT, offsetof(_cmsg, FacilityIndicationParameter)},
-    /*1e */ 
- {_CSTRUCT, offsetof(_cmsg, FacilityRequestParameter)},
-    /*1f */ 
- {_CWORD, offsetof(_cmsg, FacilitySelector)},
-    /*20 */ 
- {_CWORD, offsetof(_cmsg, Flags)},
-    /*21 */ 
- {_CDWORD, offsetof(_cmsg, Function)},
-    /*22 */ 
- {_CSTRUCT, offsetof(_cmsg, HLC)},
-    /*23 */ 
- {_CWORD, offsetof(_cmsg, Info)},
-    /*24 */ 
- {_CSTRUCT, offsetof(_cmsg, InfoElement)},
-    /*25 */ 
- {_CDWORD, offsetof(_cmsg, InfoMask)},
-    /*26 */ 
- {_CWORD, offsetof(_cmsg, InfoNumber)},
-    /*27 */ 
- {_CSTRUCT, offsetof(_cmsg, Keypadfacility)},
-    /*28 */ 
- {_CSTRUCT, offsetof(_cmsg, LLC)},
-    /*29 */ 
- {_CSTRUCT, offsetof(_cmsg, ManuData)},
-    /*2a */ 
- {_CDWORD, offsetof(_cmsg, ManuID)},
-    /*2b */ 
- {_CSTRUCT, offsetof(_cmsg, NCPI)},
-    /*2c */ 
- {_CWORD, offsetof(_cmsg, Reason)},
-    /*2d */ 
- {_CWORD, offsetof(_cmsg, Reason_B3)},
-    /*2e */ 
- {_CWORD, offsetof(_cmsg, Reject)},
-    /*2f */ 
- {_CSTRUCT, offsetof(_cmsg, Useruserdata)}
+       /*00 */
      {_CEND},
+       /*01 */
      {_CEND},
+       /*02 */
      {_CEND},
+       /*03 */
      {_CDWORD, offsetof(_cmsg, adr.adrController)},
+       /*04 */
      {_CMSTRUCT, offsetof(_cmsg, AdditionalInfo)},
+       /*05 */
      {_CSTRUCT, offsetof(_cmsg, B1configuration)},
+       /*06 */
      {_CWORD, offsetof(_cmsg, B1protocol)},
+       /*07 */
      {_CSTRUCT, offsetof(_cmsg, B2configuration)},
+       /*08 */
      {_CWORD, offsetof(_cmsg, B2protocol)},
+       /*09 */
      {_CSTRUCT, offsetof(_cmsg, B3configuration)},
+       /*0a */
      {_CWORD, offsetof(_cmsg, B3protocol)},
+       /*0b */
      {_CSTRUCT, offsetof(_cmsg, BC)},
+       /*0c */
      {_CSTRUCT, offsetof(_cmsg, BChannelinformation)},
+       /*0d */
      {_CMSTRUCT, offsetof(_cmsg, BProtocol)},
+       /*0e */
      {_CSTRUCT, offsetof(_cmsg, CalledPartyNumber)},
+       /*0f */
      {_CSTRUCT, offsetof(_cmsg, CalledPartySubaddress)},
+       /*10 */
      {_CSTRUCT, offsetof(_cmsg, CallingPartyNumber)},
+       /*11 */
      {_CSTRUCT, offsetof(_cmsg, CallingPartySubaddress)},
+       /*12 */
      {_CDWORD, offsetof(_cmsg, CIPmask)},
+       /*13 */
      {_CDWORD, offsetof(_cmsg, CIPmask2)},
+       /*14 */
      {_CWORD, offsetof(_cmsg, CIPValue)},
+       /*15 */
      {_CDWORD, offsetof(_cmsg, Class)},
+       /*16 */
      {_CSTRUCT, offsetof(_cmsg, ConnectedNumber)},
+       /*17 */
      {_CSTRUCT, offsetof(_cmsg, ConnectedSubaddress)},
+       /*18 */
      {_CDWORD, offsetof(_cmsg, Data)},
+       /*19 */
      {_CWORD, offsetof(_cmsg, DataHandle)},
+       /*1a */
      {_CWORD, offsetof(_cmsg, DataLength)},
+       /*1b */
      {_CSTRUCT, offsetof(_cmsg, FacilityConfirmationParameter)},
+       /*1c */
      {_CSTRUCT, offsetof(_cmsg, Facilitydataarray)},
+       /*1d */
      {_CSTRUCT, offsetof(_cmsg, FacilityIndicationParameter)},
+       /*1e */
      {_CSTRUCT, offsetof(_cmsg, FacilityRequestParameter)},
+       /*1f */
      {_CWORD, offsetof(_cmsg, FacilitySelector)},
+       /*20 */
      {_CWORD, offsetof(_cmsg, Flags)},
+       /*21 */
      {_CDWORD, offsetof(_cmsg, Function)},
+       /*22 */
      {_CSTRUCT, offsetof(_cmsg, HLC)},
+       /*23 */
      {_CWORD, offsetof(_cmsg, Info)},
+       /*24 */
      {_CSTRUCT, offsetof(_cmsg, InfoElement)},
+       /*25 */
      {_CDWORD, offsetof(_cmsg, InfoMask)},
+       /*26 */
      {_CWORD, offsetof(_cmsg, InfoNumber)},
+       /*27 */
      {_CSTRUCT, offsetof(_cmsg, Keypadfacility)},
+       /*28 */
      {_CSTRUCT, offsetof(_cmsg, LLC)},
+       /*29 */
      {_CSTRUCT, offsetof(_cmsg, ManuData)},
+       /*2a */
      {_CDWORD, offsetof(_cmsg, ManuID)},
+       /*2b */
      {_CSTRUCT, offsetof(_cmsg, NCPI)},
+       /*2c */
      {_CWORD, offsetof(_cmsg, Reason)},
+       /*2d */
      {_CWORD, offsetof(_cmsg, Reason_B3)},
+       /*2e */
      {_CWORD, offsetof(_cmsg, Reject)},
+       /*2f */
      {_CSTRUCT, offsetof(_cmsg, Useruserdata)}
 };
 
 static unsigned char *cpars[] =
 {
-    /* ALERT_REQ */ [0x01] = "\x03\x04\x0c\x27\x2f\x1c\x01\x01",
-    /* CONNECT_REQ */ [0x02] = "\x03\x14\x0e\x10\x0f\x11\x0d\x06\x08\x0a\x05\x07\x09\x01\x0b\x28\x22\x04\x0c\x27\x2f\x1c\x01\x01",
-    /* DISCONNECT_REQ */ [0x04] = "\x03\x04\x0c\x27\x2f\x1c\x01\x01",
-    /* LISTEN_REQ */ [0x05] = "\x03\x25\x12\x13\x10\x11\x01",
-    /* INFO_REQ */ [0x08] = "\x03\x0e\x04\x0c\x27\x2f\x1c\x01\x01",
-    /* FACILITY_REQ */ [0x09] = "\x03\x1f\x1e\x01",
-    /* SELECT_B_PROTOCOL_REQ */ [0x0a] = "\x03\x0d\x06\x08\x0a\x05\x07\x09\x01\x01",
-    /* CONNECT_B3_REQ */ [0x0b] = "\x03\x2b\x01",
-    /* DISCONNECT_B3_REQ */ [0x0d] = "\x03\x2b\x01",
-    /* DATA_B3_REQ */ [0x0f] = "\x03\x18\x1a\x19\x20\x01",
-    /* RESET_B3_REQ */ [0x10] = "\x03\x2b\x01",
-    /* ALERT_CONF */ [0x13] = "\x03\x23\x01",
-    /* CONNECT_CONF */ [0x14] = "\x03\x23\x01",
-    /* DISCONNECT_CONF */ [0x16] = "\x03\x23\x01",
-    /* LISTEN_CONF */ [0x17] = "\x03\x23\x01",
-    /* MANUFACTURER_REQ */ [0x18] = "\x03\x2a\x15\x21\x29\x01",
-    /* INFO_CONF */ [0x1a] = "\x03\x23\x01",
-    /* FACILITY_CONF */ [0x1b] = "\x03\x23\x1f\x1b\x01",
-    /* SELECT_B_PROTOCOL_CONF */ [0x1c] = "\x03\x23\x01",
-    /* CONNECT_B3_CONF */ [0x1d] = "\x03\x23\x01",
-    /* DISCONNECT_B3_CONF */ [0x1f] = "\x03\x23\x01",
-    /* DATA_B3_CONF */ [0x21] = "\x03\x19\x23\x01",
-    /* RESET_B3_CONF */ [0x22] = "\x03\x23\x01",
-    /* CONNECT_IND */ [0x26] = "\x03\x14\x0e\x10\x0f\x11\x0b\x28\x22\x04\x0c\x27\x2f\x1c\x01\x01",
-    /* CONNECT_ACTIVE_IND */ [0x27] = "\x03\x16\x17\x28\x01",
-    /* DISCONNECT_IND */ [0x28] = "\x03\x2c\x01",
-    /* MANUFACTURER_CONF */ [0x2a] = "\x03\x2a\x15\x21\x29\x01",
-    /* INFO_IND */ [0x2c] = "\x03\x26\x24\x01",
-    /* FACILITY_IND */ [0x2d] = "\x03\x1f\x1d\x01",
-    /* CONNECT_B3_IND */ [0x2f] = "\x03\x2b\x01",
-    /* CONNECT_B3_ACTIVE_IND */ [0x30] = "\x03\x2b\x01",
-    /* DISCONNECT_B3_IND */ [0x31] = "\x03\x2d\x2b\x01",
-    /* DATA_B3_IND */ [0x33] = "\x03\x18\x1a\x19\x20\x01",
-    /* RESET_B3_IND */ [0x34] = "\x03\x2b\x01",
-    /* CONNECT_B3_T90_ACTIVE_IND */ [0x35] = "\x03\x2b\x01",
-    /* CONNECT_RESP */ [0x38] = "\x03\x2e\x0d\x06\x08\x0a\x05\x07\x09\x01\x16\x17\x28\x04\x0c\x27\x2f\x1c\x01\x01",
-    /* CONNECT_ACTIVE_RESP */ [0x39] = "\x03\x01",
-    /* DISCONNECT_RESP */ [0x3a] = "\x03\x01",
-    /* MANUFACTURER_IND */ [0x3c] = "\x03\x2a\x15\x21\x29\x01",
-    /* INFO_RESP */ [0x3e] = "\x03\x01",
-    /* FACILITY_RESP */ [0x3f] = "\x03\x1f\x01",
-    /* CONNECT_B3_RESP */ [0x41] = "\x03\x2e\x2b\x01",
-    /* CONNECT_B3_ACTIVE_RESP */ [0x42] = "\x03\x01",
-    /* DISCONNECT_B3_RESP */ [0x43] = "\x03\x01",
-    /* DATA_B3_RESP */ [0x45] = "\x03\x19\x01",
-    /* RESET_B3_RESP */ [0x46] = "\x03\x01",
-    /* CONNECT_B3_T90_ACTIVE_RESP */ [0x47] = "\x03\x01",
-    /* MANUFACTURER_RESP */ [0x4e] = "\x03\x2a\x15\x21\x29\x01",
+       /* ALERT_REQ */ [0x01] = "\x03\x04\x0c\x27\x2f\x1c\x01\x01",
+       /* CONNECT_REQ */ [0x02] = "\x03\x14\x0e\x10\x0f\x11\x0d\x06\x08\x0a\x05\x07\x09\x01\x0b\x28\x22\x04\x0c\x27\x2f\x1c\x01\x01",
+       /* DISCONNECT_REQ */ [0x04] = "\x03\x04\x0c\x27\x2f\x1c\x01\x01",
+       /* LISTEN_REQ */ [0x05] = "\x03\x25\x12\x13\x10\x11\x01",
+       /* INFO_REQ */ [0x08] = "\x03\x0e\x04\x0c\x27\x2f\x1c\x01\x01",
+       /* FACILITY_REQ */ [0x09] = "\x03\x1f\x1e\x01",
+       /* SELECT_B_PROTOCOL_REQ */ [0x0a] = "\x03\x0d\x06\x08\x0a\x05\x07\x09\x01\x01",
+       /* CONNECT_B3_REQ */ [0x0b] = "\x03\x2b\x01",
+       /* DISCONNECT_B3_REQ */ [0x0d] = "\x03\x2b\x01",
+       /* DATA_B3_REQ */ [0x0f] = "\x03\x18\x1a\x19\x20\x01",
+       /* RESET_B3_REQ */ [0x10] = "\x03\x2b\x01",
+       /* ALERT_CONF */ [0x13] = "\x03\x23\x01",
+       /* CONNECT_CONF */ [0x14] = "\x03\x23\x01",
+       /* DISCONNECT_CONF */ [0x16] = "\x03\x23\x01",
+       /* LISTEN_CONF */ [0x17] = "\x03\x23\x01",
+       /* MANUFACTURER_REQ */ [0x18] = "\x03\x2a\x15\x21\x29\x01",
+       /* INFO_CONF */ [0x1a] = "\x03\x23\x01",
+       /* FACILITY_CONF */ [0x1b] = "\x03\x23\x1f\x1b\x01",
+       /* SELECT_B_PROTOCOL_CONF */ [0x1c] = "\x03\x23\x01",
+       /* CONNECT_B3_CONF */ [0x1d] = "\x03\x23\x01",
+       /* DISCONNECT_B3_CONF */ [0x1f] = "\x03\x23\x01",
+       /* DATA_B3_CONF */ [0x21] = "\x03\x19\x23\x01",
+       /* RESET_B3_CONF */ [0x22] = "\x03\x23\x01",
+       /* CONNECT_IND */ [0x26] = "\x03\x14\x0e\x10\x0f\x11\x0b\x28\x22\x04\x0c\x27\x2f\x1c\x01\x01",
+       /* CONNECT_ACTIVE_IND */ [0x27] = "\x03\x16\x17\x28\x01",
+       /* DISCONNECT_IND */ [0x28] = "\x03\x2c\x01",
+       /* MANUFACTURER_CONF */ [0x2a] = "\x03\x2a\x15\x21\x29\x01",
+       /* INFO_IND */ [0x2c] = "\x03\x26\x24\x01",
+       /* FACILITY_IND */ [0x2d] = "\x03\x1f\x1d\x01",
+       /* CONNECT_B3_IND */ [0x2f] = "\x03\x2b\x01",
+       /* CONNECT_B3_ACTIVE_IND */ [0x30] = "\x03\x2b\x01",
+       /* DISCONNECT_B3_IND */ [0x31] = "\x03\x2d\x2b\x01",
+       /* DATA_B3_IND */ [0x33] = "\x03\x18\x1a\x19\x20\x01",
+       /* RESET_B3_IND */ [0x34] = "\x03\x2b\x01",
+       /* CONNECT_B3_T90_ACTIVE_IND */ [0x35] = "\x03\x2b\x01",
+       /* CONNECT_RESP */ [0x38] = "\x03\x2e\x0d\x06\x08\x0a\x05\x07\x09\x01\x16\x17\x28\x04\x0c\x27\x2f\x1c\x01\x01",
+       /* CONNECT_ACTIVE_RESP */ [0x39] = "\x03\x01",
+       /* DISCONNECT_RESP */ [0x3a] = "\x03\x01",
+       /* MANUFACTURER_IND */ [0x3c] = "\x03\x2a\x15\x21\x29\x01",
+       /* INFO_RESP */ [0x3e] = "\x03\x01",
+       /* FACILITY_RESP */ [0x3f] = "\x03\x1f\x01",
+       /* CONNECT_B3_RESP */ [0x41] = "\x03\x2e\x2b\x01",
+       /* CONNECT_B3_ACTIVE_RESP */ [0x42] = "\x03\x01",
+       /* DISCONNECT_B3_RESP */ [0x43] = "\x03\x01",
+       /* DATA_B3_RESP */ [0x45] = "\x03\x19\x01",
+       /* RESET_B3_RESP */ [0x46] = "\x03\x01",
+       /* CONNECT_B3_T90_ACTIVE_RESP */ [0x47] = "\x03\x01",
+       /* MANUFACTURER_RESP */ [0x4e] = "\x03\x2a\x15\x21\x29\x01",
 };
 
 /*-------------------------------------------------------*/
 
-#define byteTLcpy(x,y)        *(u8 *)(x)=*(u8 *)(y);
-#define wordTLcpy(x,y)        *(u16 *)(x)=*(u16 *)(y);
-#define dwordTLcpy(x,y)       memcpy(x,y,4);
-#define structTLcpy(x,y,l)    memcpy (x,y,l)
-#define structTLcpyovl(x,y,l) memmove (x,y,l)
+#define byteTLcpy(x, y)         *(u8 *)(x) = *(u8 *)(y);
+#define wordTLcpy(x, y)         *(u16 *)(x) = *(u16 *)(y);
+#define dwordTLcpy(x, y)        memcpy(x, y, 4);
+#define structTLcpy(x, y, l)    memcpy(x, y, l)
+#define structTLcpyovl(x, y, l) memmove(x, y, l)
 
-#define byteTRcpy(x,y)        *(u8 *)(y)=*(u8 *)(x);
-#define wordTRcpy(x,y)        *(u16 *)(y)=*(u16 *)(x);
-#define dwordTRcpy(x,y)       memcpy(y,x,4);
-#define structTRcpy(x,y,l)    memcpy (y,x,l)
-#define structTRcpyovl(x,y,l) memmove (y,x,l)
+#define byteTRcpy(x, y)         *(u8 *)(y) = *(u8 *)(x);
+#define wordTRcpy(x, y)         *(u16 *)(y) = *(u16 *)(x);
+#define dwordTRcpy(x, y)        memcpy(y, x, 4);
+#define structTRcpy(x, y, l)    memcpy(y, x, l)
+#define structTRcpyovl(x, y, l) memmove(y, x, l)
 
 /*-------------------------------------------------------*/
 static unsigned command_2_index(unsigned c, unsigned sc)
@@ -414,9 +414,9 @@ static unsigned command_2_index(unsigned c, unsigned sc)
 
 /*-------------------------------------------------------*/
 #define TYP (cdef[cmsg->par[cmsg->p]].typ)
-#define OFF (((u8 *)cmsg)+cdef[cmsg->par[cmsg->p]].off)
+#define OFF (((u8 *)cmsg) + cdef[cmsg->par[cmsg->p]].off)
 
-static void jumpcstruct(_cmsg * cmsg)
+static void jumpcstruct(_cmsg *cmsg)
 {
        unsigned layer;
        for (cmsg->p++, layer = 1; layer;) {
@@ -433,7 +433,7 @@ static void jumpcstruct(_cmsg * cmsg)
        }
 }
 /*-------------------------------------------------------*/
-static void pars_2_message(_cmsg * cmsg)
+static void pars_2_message(_cmsg *cmsg)
 {
 
        for (; TYP != _CEND; cmsg->p++) {
@@ -499,7 +499,7 @@ static void pars_2_message(_cmsg * cmsg)
  * Return value: 0 for success
  */
 
-unsigned capi_cmsg2message(_cmsg * cmsg, u8 * msg)
+unsigned capi_cmsg2message(_cmsg *cmsg, u8 *msg)
 {
        cmsg->m = msg;
        cmsg->l = 8;
@@ -518,7 +518,7 @@ unsigned capi_cmsg2message(_cmsg * cmsg, u8 * msg)
 }
 
 /*-------------------------------------------------------*/
-static void message_2_pars(_cmsg * cmsg)
+static void message_2_pars(_cmsg *cmsg)
 {
        for (; TYP != _CEND; cmsg->p++) {
 
@@ -569,7 +569,7 @@ static void message_2_pars(_cmsg * cmsg)
  * Return value: 0 for success
  */
 
-unsigned capi_message2cmsg(_cmsg * cmsg, u8 * msg)
+unsigned capi_message2cmsg(_cmsg *cmsg, u8 *msg)
 {
        memset(cmsg, 0, sizeof(_cmsg));
        cmsg->m = msg;
@@ -600,7 +600,7 @@ unsigned capi_message2cmsg(_cmsg * cmsg, u8 * msg)
  * Return value: 0 for success
  */
 
-unsigned capi_cmsg_header(_cmsg * cmsg, u16 _ApplId,
+unsigned capi_cmsg_header(_cmsg *cmsg, u16 _ApplId,
                          u8 _Command, u8 _Subcommand,
                          u16 _Messagenumber, u32 _Controller)
 {
@@ -689,54 +689,54 @@ char *capi_cmd2str(u8 cmd, u8 subcmd)
 
 static char *pnames[] =
 {
-    /*00 */ NULL,
-    /*01 */ NULL,
-    /*02 */ NULL,
-    /*03 */ "Controller/PLCI/NCCI",
-    /*04 */ "AdditionalInfo",
-    /*05 */ "B1configuration",
-    /*06 */ "B1protocol",
-    /*07 */ "B2configuration",
-    /*08 */ "B2protocol",
-    /*09 */ "B3configuration",
-    /*0a */ "B3protocol",
-    /*0b */ "BC",
-    /*0c */ "BChannelinformation",
-    /*0d */ "BProtocol",
-    /*0e */ "CalledPartyNumber",
-    /*0f */ "CalledPartySubaddress",
-    /*10 */ "CallingPartyNumber",
-    /*11 */ "CallingPartySubaddress",
-    /*12 */ "CIPmask",
-    /*13 */ "CIPmask2",
-    /*14 */ "CIPValue",
-    /*15 */ "Class",
-    /*16 */ "ConnectedNumber",
-    /*17 */ "ConnectedSubaddress",
-    /*18 */ "Data32",
-    /*19 */ "DataHandle",
-    /*1a */ "DataLength",
-    /*1b */ "FacilityConfirmationParameter",
-    /*1c */ "Facilitydataarray",
-    /*1d */ "FacilityIndicationParameter",
-    /*1e */ "FacilityRequestParameter",
-    /*1f */ "FacilitySelector",
-    /*20 */ "Flags",
-    /*21 */ "Function",
-    /*22 */ "HLC",
-    /*23 */ "Info",
-    /*24 */ "InfoElement",
-    /*25 */ "InfoMask",
-    /*26 */ "InfoNumber",
-    /*27 */ "Keypadfacility",
-    /*28 */ "LLC",
-    /*29 */ "ManuData",
-    /*2a */ "ManuID",
-    /*2b */ "NCPI",
-    /*2c */ "Reason",
-    /*2d */ "Reason_B3",
-    /*2e */ "Reject",
-    /*2f */ "Useruserdata"
+       /*00 */ NULL,
+       /*01 */ NULL,
+       /*02 */ NULL,
+       /*03 */ "Controller/PLCI/NCCI",
+       /*04 */ "AdditionalInfo",
+       /*05 */ "B1configuration",
+       /*06 */ "B1protocol",
+       /*07 */ "B2configuration",
+       /*08 */ "B2protocol",
+       /*09 */ "B3configuration",
+       /*0a */ "B3protocol",
+       /*0b */ "BC",
+       /*0c */ "BChannelinformation",
+       /*0d */ "BProtocol",
+       /*0e */ "CalledPartyNumber",
+       /*0f */ "CalledPartySubaddress",
+       /*10 */ "CallingPartyNumber",
+       /*11 */ "CallingPartySubaddress",
+       /*12 */ "CIPmask",
+       /*13 */ "CIPmask2",
+       /*14 */ "CIPValue",
+       /*15 */ "Class",
+       /*16 */ "ConnectedNumber",
+       /*17 */ "ConnectedSubaddress",
+       /*18 */ "Data32",
+       /*19 */ "DataHandle",
+       /*1a */ "DataLength",
+       /*1b */ "FacilityConfirmationParameter",
+       /*1c */ "Facilitydataarray",
+       /*1d */ "FacilityIndicationParameter",
+       /*1e */ "FacilityRequestParameter",
+       /*1f */ "FacilitySelector",
+       /*20 */ "Flags",
+       /*21 */ "Function",
+       /*22 */ "HLC",
+       /*23 */ "Info",
+       /*24 */ "InfoElement",
+       /*25 */ "InfoMask",
+       /*26 */ "InfoNumber",
+       /*27 */ "Keypadfacility",
+       /*28 */ "LLC",
+       /*29 */ "ManuData",
+       /*2a */ "ManuID",
+       /*2b */ "NCPI",
+       /*2c */ "Reason",
+       /*2d */ "Reason_B3",
+       /*2e */ "Reject",
+       /*2f */ "Useruserdata"
 };
 
 
@@ -744,10 +744,10 @@ static char *pnames[] =
 #include <stdarg.h>
 
 /*-------------------------------------------------------*/
-static _cdebbuf *bufprint(_cdebbuf *cdb, char *fmt,...)
+static _cdebbuf *bufprint(_cdebbuf *cdb, char *fmt, ...)
 {
        va_list f;
-       size_t n,r;
+       size_t n, r;
 
        if (!cdb)
                return NULL;
@@ -783,7 +783,7 @@ static _cdebbuf *bufprint(_cdebbuf *cdb, char *fmt,...)
        return cdb;
 }
 
-static _cdebbuf *printstructlen(_cdebbuf *cdb, u8 * m, unsigned len)
+static _cdebbuf *printstructlen(_cdebbuf *cdb, u8 *m, unsigned len)
 {
        unsigned hex = 0;
 
@@ -807,7 +807,7 @@ static _cdebbuf *printstructlen(_cdebbuf *cdb, u8 * m, unsigned len)
        return cdb;
 }
 
-static _cdebbuf *printstruct(_cdebbuf *cdb, u8 * m)
+static _cdebbuf *printstruct(_cdebbuf *cdb, u8 *m)
 {
        unsigned len;
 
@@ -940,7 +940,7 @@ void cdebbuf_free(_cdebbuf *cdb)
  * The returned buffer should be freed by a call to cdebbuf_free() after use.
  */
 
-_cdebbuf *capi_message2str(u8 * msg)
+_cdebbuf *capi_message2str(u8 *msg)
 {
        _cdebbuf *cdb;
        _cmsg   *cmsg;
@@ -964,10 +964,10 @@ _cdebbuf *capi_message2str(u8 * msg)
        cmsg->par = cpars[command_2_index(cmsg->Command, cmsg->Subcommand)];
 
        cdb = bufprint(cdb, "%-26s ID=%03d #0x%04x LEN=%04d\n",
-                mnames[command_2_index(cmsg->Command, cmsg->Subcommand)],
-                ((unsigned short *) msg)[1],
-                ((unsigned short *) msg)[3],
-                ((unsigned short *) msg)[0]);
+                      mnames[command_2_index(cmsg->Command, cmsg->Subcommand)],
+                      ((unsigned short *) msg)[1],
+                      ((unsigned short *) msg)[3],
+                      ((unsigned short *) msg)[0]);
 
        cdb = protocol_message_2_pars(cdb, cmsg, 1);
        if (unlikely(cmsg != g_cmsg))
@@ -986,7 +986,7 @@ _cdebbuf *capi_message2str(u8 * msg)
  * The returned buffer should be freed by a call to cdebbuf_free() after use.
  */
 
-_cdebbuf *capi_cmsg2str(_cmsg * cmsg)
+_cdebbuf *capi_cmsg2str(_cmsg *cmsg)
 {
        _cdebbuf *cdb;
 
@@ -998,17 +998,17 @@ _cdebbuf *capi_cmsg2str(_cmsg * cmsg)
        cmsg->l = 8;
        cmsg->p = 0;
        cdb = bufprint(cdb, "%s ID=%03d #0x%04x LEN=%04d\n",
-                mnames[command_2_index(cmsg->Command, cmsg->Subcommand)],
-                ((u16 *) cmsg->m)[1],
-                ((u16 *) cmsg->m)[3],
-                ((u16 *) cmsg->m)[0]);
+                      mnames[command_2_index(cmsg->Command, cmsg->Subcommand)],
+                      ((u16 *) cmsg->m)[1],
+                      ((u16 *) cmsg->m)[3],
+                      ((u16 *) cmsg->m)[0]);
        cdb = protocol_message_2_pars(cdb, cmsg, 1);
        return cdb;
 }
 
 int __init cdebug_init(void)
 {
-       g_cmsg= kmalloc(sizeof(_cmsg), GFP_KERNEL);
+       g_cmsg = kmalloc(sizeof(_cmsg), GFP_KERNEL);
        if (!g_cmsg)
                return -ENOMEM;
        g_debbuf = kmalloc(sizeof(_cdebbuf), GFP_KERNEL);
@@ -1041,12 +1041,12 @@ void __exit cdebug_exit(void)
 
 static _cdebbuf g_debbuf = {"CONFIG_CAPI_TRACE not enabled", NULL, 0, 0};
 
-_cdebbuf *capi_message2str(u8 * msg)
+_cdebbuf *capi_message2str(u8 *msg)
 {
        return &g_debbuf;
 }
 
-_cdebbuf *capi_cmsg2str(_cmsg * cmsg)
+_cdebbuf *capi_cmsg2str(_cmsg *cmsg)
 {
        return &g_debbuf;
 }
index 2b33b26..9b1b274 100644 (file)
@@ -1,10 +1,10 @@
 /* $Id: kcapi.c,v 1.1.2.8 2004/03/26 19:57:20 armin Exp $
- * 
+ *
  * Kernel CAPI 2.0 Module
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
  * Copyright 2002 by Kai Germaschewski <kai@germaschewski.name>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -55,7 +55,7 @@ struct capictr_event {
 
 /* ------------------------------------------------------------- */
 
-static struct capi_version driver_version = {2, 0, 1, 1<<4};
+static struct capi_version driver_version = {2, 0, 1, 1 << 4};
 static char driver_serial[CAPI_SERIAL_LEN] = "0004711";
 static char capi_manufakturer[64] = "AVM Berlin";
 
@@ -172,7 +172,7 @@ register_appl(struct capi_ctr *ctr, u16 applid, capi_register_params *rparam)
 static void release_appl(struct capi_ctr *ctr, u16 applid)
 {
        DBG("applid %#x", applid);
-       
+
        ctr->release_appl(ctr, applid);
        capi_ctr_put(ctr);
 }
@@ -186,7 +186,7 @@ static void notify_up(u32 contr)
        mutex_lock(&capi_controller_lock);
 
        if (showcapimsgs & 1)
-               printk(KERN_DEBUG "kcapi: notify up contr %d\n", contr);
+               printk(KERN_DEBUG "kcapi: notify up contr %d\n", contr);
 
        ctr = get_capi_ctr_by_nr(contr);
        if (ctr) {
@@ -352,16 +352,16 @@ void capi_ctr_handle_message(struct capi_ctr *ctr, u16 appl,
                cdb = capi_message2str(skb->data);
                if (cdb) {
                        printk(KERN_INFO "kcapi: controller [%03d] not active, got: %s",
-                               ctr->cnr, cdb->buf);
+                              ctr->cnr, cdb->buf);
                        cdebbuf_free(cdb);
                } else
                        printk(KERN_INFO "kcapi: controller [%03d] not active, cannot trace\n",
-                               ctr->cnr);
+                              ctr->cnr);
                goto error;
        }
 
        cmd = CAPIMSG_COMMAND(skb->data);
-        subcmd = CAPIMSG_SUBCOMMAND(skb->data);
+       subcmd = CAPIMSG_SUBCOMMAND(skb->data);
        if (cmd == CAPI_DATA_B3 && subcmd == CAPI_IND) {
                ctr->nrecvdatapkt++;
                if (ctr->traceflag > 2)
@@ -382,13 +382,13 @@ void capi_ctr_handle_message(struct capi_ctr *ctr, u16 appl,
                        cdb = capi_message2str(skb->data);
                        if (cdb) {
                                printk(KERN_DEBUG "kcapi: got [%03d] %s\n",
-                                       ctr->cnr, cdb->buf);
+                                      ctr->cnr, cdb->buf);
                                cdebbuf_free(cdb);
                        } else
                                printk(KERN_DEBUG "kcapi: got [%03d] id#%d %s len=%u, cannot trace\n",
-                                       ctr->cnr, CAPIMSG_APPID(skb->data),
-                                       capi_cmd2str(cmd, subcmd),
-                                       CAPIMSG_LEN(skb->data));
+                                      ctr->cnr, CAPIMSG_APPID(skb->data),
+                                      capi_cmd2str(cmd, subcmd),
+                                      CAPIMSG_LEN(skb->data));
                }
 
        }
@@ -400,12 +400,12 @@ void capi_ctr_handle_message(struct capi_ctr *ctr, u16 appl,
                cdb = capi_message2str(skb->data);
                if (cdb) {
                        printk(KERN_ERR "kcapi: handle_message: applid %d state released (%s)\n",
-                       CAPIMSG_APPID(skb->data), cdb->buf);
+                              CAPIMSG_APPID(skb->data), cdb->buf);
                        cdebbuf_free(cdb);
                } else
                        printk(KERN_ERR "kcapi: handle_message: applid %d state released (%s) cannot trace\n",
-                               CAPIMSG_APPID(skb->data),
-                               capi_cmd2str(cmd, subcmd));
+                              CAPIMSG_APPID(skb->data),
+                              capi_cmd2str(cmd, subcmd));
                goto error;
        }
        skb_queue_tail(&ap->recv_queue, skb);
@@ -519,7 +519,7 @@ int attach_capi_ctr(struct capi_ctr *ctr)
        if (i == CAPI_MAXCONTR) {
                mutex_unlock(&capi_controller_lock);
                printk(KERN_ERR "kcapi: out of controller slots\n");
-               return -EBUSY;
+               return -EBUSY;
        }
        capi_controller[i] = ctr;
 
@@ -541,7 +541,7 @@ int attach_capi_ctr(struct capi_ctr *ctr)
        mutex_unlock(&capi_controller_lock);
 
        printk(KERN_NOTICE "kcapi: controller [%03d]: %s attached\n",
-                       ctr->cnr, ctr->name);
+              ctr->cnr, ctr->name);
        return 0;
 }
 
@@ -772,7 +772,7 @@ u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb)
        u8 cmd, subcmd;
 
        DBG("applid %#x", ap->applid);
+
        if (ncontrollers == 0)
                return CAPI_REGNOTINSTALLED;
        if ((ap->applid == 0) || ap->release_in_progress)
@@ -794,9 +794,9 @@ u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb)
                return CAPI_SENDQUEUEFULL;
 
        cmd = CAPIMSG_COMMAND(skb->data);
-        subcmd = CAPIMSG_SUBCOMMAND(skb->data);
+       subcmd = CAPIMSG_SUBCOMMAND(skb->data);
 
-       if (cmd == CAPI_DATA_B3 && subcmd== CAPI_REQ) {
+       if (cmd == CAPI_DATA_B3 && subcmd == CAPI_REQ) {
                ctr->nsentdatapkt++;
                ap->nsentdatapkt++;
                if (ctr->traceflag > 2)
@@ -819,15 +819,15 @@ u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb)
                        _cdebbuf *cdb = capi_message2str(skb->data);
                        if (cdb) {
                                printk(KERN_DEBUG "kcapi: put [%03d] %s\n",
-                                       CAPIMSG_CONTROLLER(skb->data),
-                                       cdb->buf);
+                                      CAPIMSG_CONTROLLER(skb->data),
+                                      cdb->buf);
                                cdebbuf_free(cdb);
                        } else
                                printk(KERN_DEBUG "kcapi: put [%03d] id#%d %s len=%u cannot trace\n",
-                                       CAPIMSG_CONTROLLER(skb->data),
-                                       CAPIMSG_APPID(skb->data),
-                                       capi_cmd2str(cmd, subcmd),
-                                       CAPIMSG_LEN(skb->data));
+                                      CAPIMSG_CONTROLLER(skb->data),
+                                      CAPIMSG_APPID(skb->data),
+                                      capi_cmd2str(cmd, subcmd),
+                                      CAPIMSG_LEN(skb->data));
                }
        }
        return ctr->send_message(ctr, skb);
@@ -1028,14 +1028,14 @@ static int old_capi_manufacturer(unsigned int cmd, void __user *data)
        case AVMB1_ADDCARD:
        case AVMB1_ADDCARD_WITH_TYPE:
                if (cmd == AVMB1_ADDCARD) {
-                  if ((retval = copy_from_user(&cdef, data,
-                                           sizeof(avmb1_carddef))))
-                          return -EFAULT;
-                  cdef.cardtype = AVM_CARDTYPE_B1;
+                       if ((retval = copy_from_user(&cdef, data,
+                                                    sizeof(avmb1_carddef))))
+                               return -EFAULT;
+                       cdef.cardtype = AVM_CARDTYPE_B1;
                } else {
-                  if ((retval = copy_from_user(&cdef, data,
-                                           sizeof(avmb1_extcarddef))))
-                          return -EFAULT;
+                       if ((retval = copy_from_user(&cdef, data,
+                                                    sizeof(avmb1_extcarddef))))
+                               return -EFAULT;
                }
                cparams.port = cdef.port;
                cparams.irq = cdef.irq;
@@ -1043,24 +1043,24 @@ static int old_capi_manufacturer(unsigned int cmd, void __user *data)
 
                mutex_lock(&capi_drivers_lock);
 
-                switch (cdef.cardtype) {
-                       case AVM_CARDTYPE_B1:
-                               list_for_each(l, &capi_drivers) {
-                                       driver = list_entry(l, struct capi_driver, list);
-                                       if (strcmp(driver->name, "b1isa") == 0)
-                                               break;
-                               }
-                               break;
-                       case AVM_CARDTYPE_T1:
-                               list_for_each(l, &capi_drivers) {
-                                       driver = list_entry(l, struct capi_driver, list);
-                                       if (strcmp(driver->name, "t1isa") == 0)
-                                               break;
-                               }
-                               break;
-                       default:
-                               driver = NULL;
-                               break;
+               switch (cdef.cardtype) {
+               case AVM_CARDTYPE_B1:
+                       list_for_each(l, &capi_drivers) {
+                               driver = list_entry(l, struct capi_driver, list);
+                               if (strcmp(driver->name, "b1isa") == 0)
+                                       break;
+                       }
+                       break;
+               case AVM_CARDTYPE_T1:
+                       list_for_each(l, &capi_drivers) {
+                               driver = list_entry(l, struct capi_driver, list);
+                               if (strcmp(driver->name, "t1isa") == 0)
+                                       break;
+                       }
+                       break;
+               default:
+                       driver = NULL;
+                       break;
                }
                if (!driver) {
                        printk(KERN_ERR "kcapi: driver not loaded.\n");
@@ -1136,7 +1136,7 @@ static int old_capi_manufacturer(unsigned int cmd, void __user *data)
 
                retval = wait_on_ctr_state(ctr, CAPI_CTR_RUNNING);
 
-load_unlock_out:
+       load_unlock_out:
                mutex_unlock(&capi_controller_lock);
                return retval;
 
@@ -1167,7 +1167,7 @@ load_unlock_out:
 
                retval = wait_on_ctr_state(ctr, CAPI_CTR_DETECTED);
 
-reset_unlock_out:
+       reset_unlock_out:
                mutex_unlock(&capi_controller_lock);
                return retval;
        }
@@ -1235,7 +1235,7 @@ int capi20_manufacturer(unsigned int cmd, void __user *data)
                cparams.membase = cdef.membase;
                cparams.cardnr = cdef.cardnr;
                cparams.cardtype = 0;
-               cdef.driver[sizeof(cdef.driver)-1] = 0;
+               cdef.driver[sizeof(cdef.driver) - 1] = 0;
 
                mutex_lock(&capi_drivers_lock);
 
@@ -1246,7 +1246,7 @@ int capi20_manufacturer(unsigned int cmd, void __user *data)
                }
                if (driver == NULL) {
                        printk(KERN_ERR "kcapi: driver \"%s\" not loaded.\n",
-                                       cdef.driver);
+                              cdef.driver);
                        retval = -ESRCH;
                } else if (!driver->add_card) {
                        printk(KERN_ERR "kcapi: driver \"%s\" has no add card function.\n", cdef.driver);
@@ -1260,7 +1260,7 @@ int capi20_manufacturer(unsigned int cmd, void __user *data)
 
        default:
                printk(KERN_ERR "kcapi: manufacturer command %d unknown.\n",
-                                       cmd);
+                      cmd);
                break;
 
        }
@@ -1305,7 +1305,7 @@ static int __init kcapi_init(void)
 
 static void __exit kcapi_exit(void)
 {
-        kcapi_proc_exit();
+       kcapi_proc_exit();
 
        unregister_capictr_notifier(&capictr_nb);
        cdebug_exit();
index f4620b3..6d439f9 100644 (file)
@@ -1,9 +1,9 @@
 /*
  * Kernel CAPI 2.0 Module
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
  * Copyright 2002 by Kai Germaschewski <kai@germaschewski.name>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -16,9 +16,9 @@
 #include <linux/isdn/capilli.h>
 
 #ifdef KCAPI_DEBUG
-#define DBG(format, arg...) do { \
-printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
-} while (0)
+#define DBG(format, arg...) do {                                       \
+               printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
+       } while (0)
 #else
 #define DBG(format, arg...) /* */
 #endif
@@ -49,4 +49,3 @@ static inline void kcapi_proc_init(void) { };
 static inline void kcapi_proc_exit(void) { };
 
 #endif
-
index 8d51cd1..68db3c5 100644 (file)
@@ -1,9 +1,9 @@
 /*
  * Kernel CAPI 2.0 Module - /proc/capi handling
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
  * Copyright 2002 by Kai Germaschewski <kai@germaschewski.name>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -29,7 +29,7 @@ static char *state2str(unsigned short state)
 // /proc/capi
 // ===========================================================================
 
-// /proc/capi/controller: 
+// /proc/capi/controller:
 //      cnr driver cardstate name driverinfo
 // /proc/capi/contrstats:
 //      cnr nrecvctlpkt nrecvdatapkt nsentctlpkt nsentdatapkt
@@ -85,7 +85,7 @@ static int contrstats_show(struct seq_file *seq, void *v)
                return 0;
 
        seq_printf(seq, "%d %lu %lu %lu %lu\n",
-                  ctr->cnr, 
+                  ctr->cnr,
                   ctr->nrecvctlpkt,
                   ctr->nrecvdatapkt,
                   ctr->nsentctlpkt,
@@ -134,9 +134,9 @@ static const struct file_operations proc_contrstats_ops = {
        .release        = seq_release,
 };
 
-// /proc/capi/applications: 
+// /proc/capi/applications:
 //      applid l3cnt dblkcnt dblklen #ncci recvqueuelen
-// /proc/capi/applstats: 
+// /proc/capi/applstats:
 //      applid nrecvctlpkt nrecvdatapkt nsentctlpkt nsentdatapkt
 // ---------------------------------------------------------------------------
 
@@ -297,7 +297,7 @@ static const struct file_operations proc_driver_ops = {
 
 // ---------------------------------------------------------------------------
 
-void __init 
+void __init
 kcapi_proc_init(void)
 {
        proc_mkdir("capi",             NULL);
index 2f7c9fc..5374c25 100644 (file)
@@ -3,7 +3,7 @@
  * Module init for DSS1 diversion services for i4l.
  *
  * Copyright 1999       by Werner Cornelius (werner@isdn4linux.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -23,13 +23,13 @@ MODULE_LICENSE("GPL");
 /* structure containing interface to hl */
 /****************************************/
 isdn_divert_if divert_if =
-  { DIVERT_IF_MAGIC,  /* magic value */
-    DIVERT_CMD_REG,   /* register cmd */
-    ll_callback,      /* callback routine from ll */
-    NULL,             /* command still not specified */
-    NULL,             /* drv_to_name */
-    NULL,             /* name_to_drv */
-  };
+{ DIVERT_IF_MAGIC,  /* magic value */
+  DIVERT_CMD_REG,   /* register cmd */
+  ll_callback,      /* callback routine from ll */
+  NULL,             /* command still not specified */
+  NULL,             /* drv_to_name */
+  NULL,             /* name_to_drv */
+};
 
 /*************************/
 /* Module interface code */
@@ -38,17 +38,17 @@ isdn_divert_if divert_if =
 static int __init divert_init(void)
 { int i;
 
-  if (divert_dev_init())
-   { printk(KERN_WARNING "dss1_divert: cannot install device, not loaded\n");
-     return(-EIO);
-   }
-  if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR)
-   { divert_dev_deinit();
-     printk(KERN_WARNING "dss1_divert: error %d registering module, not loaded\n",i);
-     return(-EIO);
-   } 
-  printk(KERN_INFO "dss1_divert module successfully installed\n");
-  return(0);
+       if (divert_dev_init())
+       { printk(KERN_WARNING "dss1_divert: cannot install device, not loaded\n");
+               return (-EIO);
+       }
+       if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR)
+       { divert_dev_deinit();
+               printk(KERN_WARNING "dss1_divert: error %d registering module, not loaded\n", i);
+               return (-EIO);
+       }
+       printk(KERN_INFO "dss1_divert module successfully installed\n");
+       return (0);
 }
 
 /**********************/
@@ -56,27 +56,26 @@ static int __init divert_init(void)
 /**********************/
 static void __exit divert_exit(void)
 {
-  unsigned long flags;
-  int i;
+       unsigned long flags;
+       int i;
 
-  spin_lock_irqsave(&divert_lock, flags);
-  divert_if.cmd = DIVERT_CMD_REL; /* release */
-  if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR)
-   { printk(KERN_WARNING "dss1_divert: error %d releasing module\n",i);
-     spin_unlock_irqrestore(&divert_lock, flags);
-     return;
-   } 
-  if (divert_dev_deinit()) 
-   { printk(KERN_WARNING "dss1_divert: device busy, remove cancelled\n");
-     spin_unlock_irqrestore(&divert_lock, flags);
-     return;
-   }
-  spin_unlock_irqrestore(&divert_lock, flags);
-  deleterule(-1); /* delete all rules and free mem */
-  deleteprocs();
-  printk(KERN_INFO "dss1_divert module successfully removed \n");
+       spin_lock_irqsave(&divert_lock, flags);
+       divert_if.cmd = DIVERT_CMD_REL; /* release */
+       if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR)
+       { printk(KERN_WARNING "dss1_divert: error %d releasing module\n", i);
+               spin_unlock_irqrestore(&divert_lock, flags);
+               return;
+       }
+       if (divert_dev_deinit())
+       { printk(KERN_WARNING "dss1_divert: device busy, remove cancelled\n");
+               spin_unlock_irqrestore(&divert_lock, flags);
+               return;
+       }
+       spin_unlock_irqrestore(&divert_lock, flags);
+       deleterule(-1); /* delete all rules and free mem */
+       deleteprocs();
+       printk(KERN_INFO "dss1_divert module successfully removed \n");
 }
 
 module_init(divert_init);
 module_exit(divert_exit);
-
index 9021182..fb4f1ba 100644 (file)
@@ -50,10 +50,10 @@ put_info_buffer(char *cp)
        if (!*cp)
                return;
        if (!(ib = kmalloc(sizeof(struct divert_info) + strlen(cp), GFP_ATOMIC)))
-                return;        /* no memory */
+               return; /* no memory */
        strcpy(ib->info_start, cp);     /* set output string */
        ib->next = NULL;
-       spin_lock_irqsave( &divert_info_lock, flags );
+       spin_lock_irqsave(&divert_info_lock, flags);
        ib->usage_cnt = if_used;
        if (!divert_info_head)
                divert_info_head = ib;  /* new head */
@@ -71,7 +71,7 @@ put_info_buffer(char *cp)
                } else
                        break;
        }                       /* divert_info_head->next */
-       spin_unlock_irqrestore( &divert_info_lock, flags );
+       spin_unlock_irqrestore(&divert_info_lock, flags);
        wake_up_interruptible(&(rd_queue));
 }                              /* put_info_buffer */
 
@@ -81,7 +81,7 @@ put_info_buffer(char *cp)
 /* deflection device read routine */
 /**********************************/
 static ssize_t
-isdn_divert_read(struct file *file, char __user *buf, size_t count, loff_t * off)
+isdn_divert_read(struct file *file, char __user *buf, size_t count, loff_t *off)
 {
        struct divert_info *inf;
        int len;
@@ -109,7 +109,7 @@ isdn_divert_read(struct file *file, char __user *buf, size_t count, loff_t * off
 /* deflection device write routine */
 /**********************************/
 static ssize_t
-isdn_divert_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
+isdn_divert_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
 {
        return (-ENODEV);
 }                              /* isdn_divert_write */
@@ -119,7 +119,7 @@ isdn_divert_write(struct file *file, const char __user *buf, size_t count, loff_
 /* select routines for various kernels */
 /***************************************/
 static unsigned int
-isdn_divert_poll(struct file *file, poll_table * wait)
+isdn_divert_poll(struct file *file, poll_table *wait)
 {
        unsigned int mask = 0;
 
@@ -139,13 +139,13 @@ isdn_divert_open(struct inode *ino, struct file *filep)
 {
        unsigned long flags;
 
-       spin_lock_irqsave( &divert_info_lock, flags );
-       if_used++;
+       spin_lock_irqsave(&divert_info_lock, flags);
+       if_used++;
        if (divert_info_head)
                filep->private_data = &(divert_info_tail->next);
        else
                filep->private_data = &divert_info_head;
-       spin_unlock_irqrestore( &divert_info_lock, flags );
+       spin_unlock_irqrestore(&divert_info_lock, flags);
        /*  start_divert(); */
        return nonseekable_open(ino, filep);
 }                              /* isdn_divert_open */
@@ -159,7 +159,7 @@ isdn_divert_close(struct inode *ino, struct file *filep)
        struct divert_info *inf;
        unsigned long flags;
 
-       spin_lock_irqsave( &divert_info_lock, flags );
+       spin_lock_irqsave(&divert_info_lock, flags);
        if_used--;
        inf = *((struct divert_info **) filep->private_data);
        while (inf) {
@@ -172,7 +172,7 @@ isdn_divert_close(struct inode *ino, struct file *filep)
                        divert_info_head = divert_info_head->next;
                        kfree(inf);
                }
-       spin_unlock_irqrestore( &divert_info_lock, flags );
+       spin_unlock_irqrestore(&divert_info_lock, flags);
        return (0);
 }                              /* isdn_divert_close */
 
@@ -191,75 +191,75 @@ static int isdn_divert_ioctl_unlocked(struct file *file, uint cmd, ulong arg)
                return -EFAULT;
 
        switch (cmd) {
-               case IIOCGETVER:
-                       dioctl.drv_version = DIVERT_IIOC_VERSION;       /* set version */
-                       break;
-
-               case IIOCGETDRV:
-                       if ((dioctl.getid.drvid = divert_if.name_to_drv(dioctl.getid.drvnam)) < 0)
-                               return (-EINVAL);
-                       break;
-
-               case IIOCGETNAM:
-                       cp = divert_if.drv_to_name(dioctl.getid.drvid);
-                       if (!cp)
-                               return (-EINVAL);
-                       if (!*cp)
-                               return (-EINVAL);
-                       strcpy(dioctl.getid.drvnam, cp);
-                       break;
-
-               case IIOCGETRULE:
-                       if (!(rulep = getruleptr(dioctl.getsetrule.ruleidx)))
-                               return (-EINVAL);
-                       dioctl.getsetrule.rule = *rulep;        /* copy data */
-                       break;
-
-               case IIOCMODRULE:
-                       if (!(rulep = getruleptr(dioctl.getsetrule.ruleidx)))
-                               return (-EINVAL);
-            spin_lock_irqsave(&divert_lock, flags);
-                       *rulep = dioctl.getsetrule.rule;        /* copy data */
-                       spin_unlock_irqrestore(&divert_lock, flags);
-                       return (0);     /* no copy required */
-                       break;
+       case IIOCGETVER:
+               dioctl.drv_version = DIVERT_IIOC_VERSION;       /* set version */
+               break;
 
-               case IIOCINSRULE:
-                       return (insertrule(dioctl.getsetrule.ruleidx, &dioctl.getsetrule.rule));
-                       break;
+       case IIOCGETDRV:
+               if ((dioctl.getid.drvid = divert_if.name_to_drv(dioctl.getid.drvnam)) < 0)
+                       return (-EINVAL);
+               break;
 
-               case IIOCDELRULE:
-                       return (deleterule(dioctl.getsetrule.ruleidx));
-                       break;
+       case IIOCGETNAM:
+               cp = divert_if.drv_to_name(dioctl.getid.drvid);
+               if (!cp)
+                       return (-EINVAL);
+               if (!*cp)
+                       return (-EINVAL);
+               strcpy(dioctl.getid.drvnam, cp);
+               break;
 
-               case IIOCDODFACT:
-                       return (deflect_extern_action(dioctl.fwd_ctrl.subcmd,
-                                                 dioctl.fwd_ctrl.callid,
-                                                dioctl.fwd_ctrl.to_nr));
-
-               case IIOCDOCFACT:
-               case IIOCDOCFDIS:
-               case IIOCDOCFINT:
-                       if (!divert_if.drv_to_name(dioctl.cf_ctrl.drvid))
-                               return (-EINVAL);       /* invalid driver */
-                       if (strnlen(dioctl.cf_ctrl.msn, sizeof(dioctl.cf_ctrl.msn)) ==
-                                       sizeof(dioctl.cf_ctrl.msn))
-                               return -EINVAL;
-                       if (strnlen(dioctl.cf_ctrl.fwd_nr, sizeof(dioctl.cf_ctrl.fwd_nr)) ==
-                                       sizeof(dioctl.cf_ctrl.fwd_nr))
-                               return -EINVAL;
-                       if ((i = cf_command(dioctl.cf_ctrl.drvid,
-                                           (cmd == IIOCDOCFACT) ? 1 : (cmd == IIOCDOCFDIS) ? 0 : 2,
-                                           dioctl.cf_ctrl.cfproc,
-                                           dioctl.cf_ctrl.msn,
-                                           dioctl.cf_ctrl.service,
-                                           dioctl.cf_ctrl.fwd_nr,
-                                           &dioctl.cf_ctrl.procid)))
-                               return (i);
-                       break;
+       case IIOCGETRULE:
+               if (!(rulep = getruleptr(dioctl.getsetrule.ruleidx)))
+                       return (-EINVAL);
+               dioctl.getsetrule.rule = *rulep;        /* copy data */
+               break;
 
-               default:
+       case IIOCMODRULE:
+               if (!(rulep = getruleptr(dioctl.getsetrule.ruleidx)))
                        return (-EINVAL);
+               spin_lock_irqsave(&divert_lock, flags);
+               *rulep = dioctl.getsetrule.rule;        /* copy data */
+               spin_unlock_irqrestore(&divert_lock, flags);
+               return (0);     /* no copy required */
+               break;
+
+       case IIOCINSRULE:
+               return (insertrule(dioctl.getsetrule.ruleidx, &dioctl.getsetrule.rule));
+               break;
+
+       case IIOCDELRULE:
+               return (deleterule(dioctl.getsetrule.ruleidx));
+               break;
+
+       case IIOCDODFACT:
+               return (deflect_extern_action(dioctl.fwd_ctrl.subcmd,
+                                             dioctl.fwd_ctrl.callid,
+                                             dioctl.fwd_ctrl.to_nr));
+
+       case IIOCDOCFACT:
+       case IIOCDOCFDIS:
+       case IIOCDOCFINT:
+               if (!divert_if.drv_to_name(dioctl.cf_ctrl.drvid))
+                       return (-EINVAL);       /* invalid driver */
+               if (strnlen(dioctl.cf_ctrl.msn, sizeof(dioctl.cf_ctrl.msn)) ==
+                   sizeof(dioctl.cf_ctrl.msn))
+                       return -EINVAL;
+               if (strnlen(dioctl.cf_ctrl.fwd_nr, sizeof(dioctl.cf_ctrl.fwd_nr)) ==
+                   sizeof(dioctl.cf_ctrl.fwd_nr))
+                       return -EINVAL;
+               if ((i = cf_command(dioctl.cf_ctrl.drvid,
+                                   (cmd == IIOCDOCFACT) ? 1 : (cmd == IIOCDOCFDIS) ? 0 : 2,
+                                   dioctl.cf_ctrl.cfproc,
+                                   dioctl.cf_ctrl.msn,
+                                   dioctl.cf_ctrl.service,
+                                   dioctl.cf_ctrl.fwd_nr,
+                                   &dioctl.cf_ctrl.procid)))
+                       return (i);
+               break;
+
+       default:
+               return (-EINVAL);
        }                       /* switch cmd */
        return copy_to_user((void __user *)arg, &dioctl, sizeof(dioctl)) ? -EFAULT : 0;
 }                              /* isdn_divert_ioctl */
@@ -284,7 +284,7 @@ static const struct file_operations isdn_fops =
        .poll           = isdn_divert_poll,
        .unlocked_ioctl = isdn_divert_ioctl,
        .open           = isdn_divert_open,
-       .release        = isdn_divert_close,                                      
+       .release        = isdn_divert_close,
 };
 
 /****************************/
index 48e6d22..e61e55f 100644 (file)
@@ -3,7 +3,7 @@
  * DSS1 main diversion supplementary handling for i4l.
  *
  * Copyright 1999       by Werner Cornelius (werner@isdn4linux.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 /* structure keeping calling info */
 /**********************************/
 struct call_struc
-  { isdn_ctrl ics; /* delivered setup + driver parameters */
-    ulong divert_id; /* Id delivered to user */
-    unsigned char akt_state; /* actual state */
-    char deflect_dest[35]; /* deflection destination */   
-    struct timer_list timer; /* timer control structure */
-    char info[90]; /* device info output */ 
-    struct call_struc *next; /* pointer to next entry */
-    struct call_struc *prev;
-  };
+{ isdn_ctrl ics; /* delivered setup + driver parameters */
+       ulong divert_id; /* Id delivered to user */
+       unsigned char akt_state; /* actual state */
+       char deflect_dest[35]; /* deflection destination */
+       struct timer_list timer; /* timer control structure */
+       char info[90]; /* device info output */
+       struct call_struc *next; /* pointer to next entry */
+       struct call_struc *prev;
+};
 
 
 /********************************************/
 /* structure keeping deflection table entry */
 /********************************************/
 struct deflect_struc
-  { struct deflect_struc *next,*prev; 
-    divert_rule rule; /* used rule */
-  };
+{ struct deflect_struc *next, *prev;
+       divert_rule rule; /* used rule */
+};
 
 
 /*****************************************/
@@ -45,10 +45,10 @@ struct deflect_struc
 /*****************************************/
 /* diversion/deflection processes */
 static struct call_struc *divert_head = NULL; /* head of remembered entrys */
-static ulong next_id = 1; /* next info id */   
+static ulong next_id = 1; /* next info id */
 static struct deflect_struc *table_head = NULL;
-static struct deflect_struc *table_tail = NULL; 
-static unsigned char extern_wait_max = 4; /* maximum wait in s for external process */ 
+static struct deflect_struc *table_tail = NULL;
+static unsigned char extern_wait_max = 4; /* maximum wait in s for external process */
 
 DEFINE_SPINLOCK(divert_lock);
 
@@ -57,50 +57,50 @@ DEFINE_SPINLOCK(divert_lock);
 /***************************/
 static void deflect_timer_expire(ulong arg)
 {
-  unsigned long flags;
-  struct call_struc *cs = (struct call_struc *) arg;
-
-  spin_lock_irqsave(&divert_lock, flags);
-  del_timer(&cs->timer); /* delete active timer */
-  spin_unlock_irqrestore(&divert_lock, flags);
-
-  switch(cs->akt_state)
-   { case DEFLECT_PROCEED:
-       cs->ics.command = ISDN_CMD_HANGUP; /* cancel action */
-       divert_if.ll_cmd(&cs->ics);                       
-       spin_lock_irqsave(&divert_lock, flags);
-       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
-       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
-       add_timer(&cs->timer);
-       spin_unlock_irqrestore(&divert_lock, flags);
-       break;
-
-     case DEFLECT_ALERT:
-       cs->ics.command = ISDN_CMD_REDIR; /* protocol */
-       strlcpy(cs->ics.parm.setup.phone, cs->deflect_dest, sizeof(cs->ics.parm.setup.phone));
-       strcpy(cs->ics.parm.setup.eazmsn,"Testtext delayed");
-       divert_if.ll_cmd(&cs->ics);
-       spin_lock_irqsave(&divert_lock, flags);
-       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
-       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
-       add_timer(&cs->timer);
-       spin_unlock_irqrestore(&divert_lock, flags);
-       break;
-
-     case DEFLECT_AUTODEL:
-     default:
-       spin_lock_irqsave(&divert_lock, flags);
-       if (cs->prev) 
-         cs->prev->next = cs->next; /* forward link */
-        else
-         divert_head = cs->next;
-       if (cs->next)
-         cs->next->prev = cs->prev; /* back link */           
-       spin_unlock_irqrestore(&divert_lock, flags);
-       kfree(cs);
-       return;
-
-   } /* switch */
+       unsigned long flags;
+       struct call_struc *cs = (struct call_struc *) arg;
+
+       spin_lock_irqsave(&divert_lock, flags);
+       del_timer(&cs->timer); /* delete active timer */
+       spin_unlock_irqrestore(&divert_lock, flags);
+
+       switch (cs->akt_state)
+       { case DEFLECT_PROCEED:
+                       cs->ics.command = ISDN_CMD_HANGUP; /* cancel action */
+                       divert_if.ll_cmd(&cs->ics);
+                       spin_lock_irqsave(&divert_lock, flags);
+                       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
+                       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
+                       add_timer(&cs->timer);
+                       spin_unlock_irqrestore(&divert_lock, flags);
+                       break;
+
+       case DEFLECT_ALERT:
+               cs->ics.command = ISDN_CMD_REDIR; /* protocol */
+               strlcpy(cs->ics.parm.setup.phone, cs->deflect_dest, sizeof(cs->ics.parm.setup.phone));
+               strcpy(cs->ics.parm.setup.eazmsn, "Testtext delayed");
+               divert_if.ll_cmd(&cs->ics);
+               spin_lock_irqsave(&divert_lock, flags);
+               cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
+               cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
+               add_timer(&cs->timer);
+               spin_unlock_irqrestore(&divert_lock, flags);
+               break;
+
+       case DEFLECT_AUTODEL:
+       default:
+               spin_lock_irqsave(&divert_lock, flags);
+               if (cs->prev)
+                       cs->prev->next = cs->next; /* forward link */
+               else
+                       divert_head = cs->next;
+               if (cs->next)
+                       cs->next->prev = cs->prev; /* back link */
+               spin_unlock_irqrestore(&divert_lock, flags);
+               kfree(cs);
+               return;
+
+       } /* switch */
 } /* deflect_timer_func */
 
 
@@ -108,94 +108,94 @@ static void deflect_timer_expire(ulong arg)
 /* handle call forwarding de/activations */
 /* 0 = deact, 1 = act, 2 = interrogate   */
 /*****************************************/
-int cf_command(int drvid, int mode, 
-               u_char proc, char *msn, 
-               u_char service, char *fwd_nr, ulong *procid)
+int cf_command(int drvid, int mode,
+              u_char proc, char *msn,
+              u_char service, char *fwd_nr, ulong *procid)
 { unsigned long flags;
-  int retval,msnlen;
-  int fwd_len;
-  char *p,*ielenp,tmp[60];
-  struct call_struc *cs;
-
-  if (strchr(msn,'.')) return(-EINVAL); /* subaddress not allowed in msn */
-  if ((proc & 0x7F) > 2) return(-EINVAL);
-  proc &= 3;
-  p = tmp;
-  *p++ = 0x30; /* enumeration */
-  ielenp = p++; /* remember total length position */
-  *p++ = 0xa; /* proc tag */
-  *p++ = 1;   /* length */
-  *p++ = proc & 0x7F; /* procedure to de/activate/interrogate */
-  *p++ = 0xa; /* service tag */
-  *p++ = 1;   /* length */
-  *p++ = service; /* service to handle */
-
-  if (mode == 1) 
-   { if (!*fwd_nr) return(-EINVAL); /* destination missing */
-     if (strchr(fwd_nr,'.')) return(-EINVAL); /* subaddress not allowed */
-     fwd_len = strlen(fwd_nr);
-     *p++ = 0x30; /* number enumeration */
-     *p++ = fwd_len + 2; /* complete forward to len */ 
-     *p++ = 0x80; /* fwd to nr */
-     *p++ = fwd_len; /* length of number */
-     strcpy(p,fwd_nr); /* copy number */
-     p += fwd_len; /* pointer beyond fwd */
-   } /* activate */
-
-  msnlen = strlen(msn);
-  *p++ = 0x80; /* msn number */
-  if (msnlen > 1)
-   { *p++ = msnlen; /* length */
-     strcpy(p,msn);
-     p += msnlen;
-   }
-  else *p++ = 0;
-
-  *ielenp = p - ielenp - 1; /* set total IE length */ 
-
-  /* allocate mem for information struct */  
-  if (!(cs = kmalloc(sizeof(struct call_struc), GFP_ATOMIC)))
-             return(-ENOMEM); /* no memory */
-  init_timer(&cs->timer);
-  cs->info[0] = '\0';
-  cs->timer.function = deflect_timer_expire;
-  cs->timer.data = (ulong) cs; /* pointer to own structure */
-  cs->ics.driver = drvid;
-  cs->ics.command = ISDN_CMD_PROT_IO; /* protocol specific io */
-  cs->ics.arg = DSS1_CMD_INVOKE; /* invoke supplementary service */
-  cs->ics.parm.dss1_io.proc = (mode == 1) ? 7: (mode == 2) ? 11:8; /* operation */ 
-  cs->ics.parm.dss1_io.timeout = 4000; /* from ETS 300 207-1 */
-  cs->ics.parm.dss1_io.datalen = p - tmp; /* total len */
-  cs->ics.parm.dss1_io.data = tmp; /* start of buffer */
-  
-  spin_lock_irqsave(&divert_lock, flags);
-  cs->ics.parm.dss1_io.ll_id = next_id++; /* id for callback */
-  spin_unlock_irqrestore(&divert_lock, flags);
-  *procid = cs->ics.parm.dss1_io.ll_id;  
-
-  sprintf(cs->info,"%d 0x%lx %s%s 0 %s %02x %d%s%s\n",
-         (!mode ) ? DIVERT_DEACTIVATE : (mode == 1) ? DIVERT_ACTIVATE : DIVERT_REPORT,
-          cs->ics.parm.dss1_io.ll_id,
-          (mode != 2) ? "" : "0 ",
-          divert_if.drv_to_name(cs->ics.driver),
-          msn,
-          service & 0xFF,
-          proc,
-          (mode != 1) ? "" : " 0 ",
-          (mode != 1) ? "" : fwd_nr);
-  retval = divert_if.ll_cmd(&cs->ics); /* execute command */
-
-  if (!retval)
-   { cs->prev = NULL;
-     spin_lock_irqsave(&divert_lock, flags);
-     cs->next = divert_head;
-     divert_head = cs; 
-     spin_unlock_irqrestore(&divert_lock, flags);
-   }
-  else
-   kfree(cs);
-  return(retval); 
+       int retval, msnlen;
+       int fwd_len;
+       char *p, *ielenp, tmp[60];
+       struct call_struc *cs;
+
+       if (strchr(msn, '.')) return (-EINVAL); /* subaddress not allowed in msn */
+       if ((proc & 0x7F) > 2) return (-EINVAL);
+       proc &= 3;
+       p = tmp;
+       *p++ = 0x30; /* enumeration */
+       ielenp = p++; /* remember total length position */
+       *p++ = 0xa; /* proc tag */
+       *p++ = 1;   /* length */
+       *p++ = proc & 0x7F; /* procedure to de/activate/interrogate */
+       *p++ = 0xa; /* service tag */
+       *p++ = 1;   /* length */
+       *p++ = service; /* service to handle */
+
+       if (mode == 1)
+       { if (!*fwd_nr) return (-EINVAL); /* destination missing */
+               if (strchr(fwd_nr, '.')) return (-EINVAL); /* subaddress not allowed */
+               fwd_len = strlen(fwd_nr);
+               *p++ = 0x30; /* number enumeration */
+               *p++ = fwd_len + 2; /* complete forward to len */
+               *p++ = 0x80; /* fwd to nr */
+               *p++ = fwd_len; /* length of number */
+               strcpy(p, fwd_nr); /* copy number */
+               p += fwd_len; /* pointer beyond fwd */
+       } /* activate */
+
+       msnlen = strlen(msn);
+       *p++ = 0x80; /* msn number */
+       if (msnlen > 1)
+       { *p++ = msnlen; /* length */
+               strcpy(p, msn);
+               p += msnlen;
+       }
+       else *p++ = 0;
+
+       *ielenp = p - ielenp - 1; /* set total IE length */
+
+       /* allocate mem for information struct */
+       if (!(cs = kmalloc(sizeof(struct call_struc), GFP_ATOMIC)))
+               return (-ENOMEM); /* no memory */
+       init_timer(&cs->timer);
+       cs->info[0] = '\0';
+       cs->timer.function = deflect_timer_expire;
+       cs->timer.data = (ulong) cs; /* pointer to own structure */
+       cs->ics.driver = drvid;
+       cs->ics.command = ISDN_CMD_PROT_IO; /* protocol specific io */
+       cs->ics.arg = DSS1_CMD_INVOKE; /* invoke supplementary service */
+       cs->ics.parm.dss1_io.proc = (mode == 1) ? 7 : (mode == 2) ? 11 : 8; /* operation */
+       cs->ics.parm.dss1_io.timeout = 4000; /* from ETS 300 207-1 */
+       cs->ics.parm.dss1_io.datalen = p - tmp; /* total len */
+       cs->ics.parm.dss1_io.data = tmp; /* start of buffer */
+
+       spin_lock_irqsave(&divert_lock, flags);
+       cs->ics.parm.dss1_io.ll_id = next_id++; /* id for callback */
+       spin_unlock_irqrestore(&divert_lock, flags);
+       *procid = cs->ics.parm.dss1_io.ll_id;
+
+       sprintf(cs->info, "%d 0x%lx %s%s 0 %s %02x %d%s%s\n",
+               (!mode) ? DIVERT_DEACTIVATE : (mode == 1) ? DIVERT_ACTIVATE : DIVERT_REPORT,
+               cs->ics.parm.dss1_io.ll_id,
+               (mode != 2) ? "" : "0 ",
+               divert_if.drv_to_name(cs->ics.driver),
+               msn,
+               service & 0xFF,
+               proc,
+               (mode != 1) ? "" : " 0 ",
+               (mode != 1) ? "" : fwd_nr);
+
+       retval = divert_if.ll_cmd(&cs->ics); /* execute command */
+
+       if (!retval)
+       { cs->prev = NULL;
+               spin_lock_irqsave(&divert_lock, flags);
+               cs->next = divert_head;
+               divert_head = cs;
+               spin_unlock_irqrestore(&divert_lock, flags);
+       }
+       else
+               kfree(cs);
+       return (retval);
 } /* cf_command */
 
 
@@ -204,165 +204,165 @@ int cf_command(int drvid, int mode,
 /****************************************/
 int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
 { struct call_struc *cs;
-  isdn_ctrl ic;
-  unsigned long flags;
-  int i;
-
-  if ((cmd & 0x7F) > 2) return(-EINVAL); /* invalid command */
-  cs = divert_head; /* start of parameter list */
-  while (cs)
-   { if (cs->divert_id == callid) break; /* found */
-     cs = cs->next;  
-   } /* search entry */
-  if (!cs) return(-EINVAL); /* invalid callid */
-
-  ic.driver = cs->ics.driver;
-  ic.arg = cs->ics.arg;
-  i = -EINVAL;
-  if (cs->akt_state == DEFLECT_AUTODEL) return(i); /* no valid call */
-  switch (cmd & 0x7F)
-   { case 0: /* hangup */
-       del_timer(&cs->timer); 
-       ic.command = ISDN_CMD_HANGUP;
-       i = divert_if.ll_cmd(&ic);
-       spin_lock_irqsave(&divert_lock, flags);
-       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
-       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
-       add_timer(&cs->timer);
-       spin_unlock_irqrestore(&divert_lock, flags);
-     break;      
-
-     case 1: /* alert */
-       if (cs->akt_state == DEFLECT_ALERT) return(0);
-       cmd &= 0x7F; /* never wait */
-       del_timer(&cs->timer); 
-       ic.command = ISDN_CMD_ALERT;
-       if ((i = divert_if.ll_cmd(&ic)))
-       {
-          spin_lock_irqsave(&divert_lock, flags);
-          cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
-          cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
-          add_timer(&cs->timer);
-          spin_unlock_irqrestore(&divert_lock, flags);
-        }
-       else
-          cs->akt_state = DEFLECT_ALERT; 
-     break;      
-
-     case 2: /* redir */
-       del_timer(&cs->timer); 
-       strlcpy(cs->ics.parm.setup.phone, to_nr, sizeof(cs->ics.parm.setup.phone));
-       strcpy(cs->ics.parm.setup.eazmsn, "Testtext manual");
-       ic.command = ISDN_CMD_REDIR;
-       if ((i = divert_if.ll_cmd(&ic)))
-       {
-          spin_lock_irqsave(&divert_lock, flags);
-          cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
-          cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
-          add_timer(&cs->timer);
-          spin_unlock_irqrestore(&divert_lock, flags);
-        }
-       else
-          cs->akt_state = DEFLECT_ALERT; 
-     break;      
-
-   } /* switch */
-  return(i);
+       isdn_ctrl ic;
+       unsigned long flags;
+       int i;
+
+       if ((cmd & 0x7F) > 2) return (-EINVAL); /* invalid command */
+       cs = divert_head; /* start of parameter list */
+       while (cs)
+       { if (cs->divert_id == callid) break; /* found */
+               cs = cs->next;
+       } /* search entry */
+       if (!cs) return (-EINVAL); /* invalid callid */
+
+       ic.driver = cs->ics.driver;
+       ic.arg = cs->ics.arg;
+       i = -EINVAL;
+       if (cs->akt_state == DEFLECT_AUTODEL) return (i); /* no valid call */
+       switch (cmd & 0x7F)
+       { case 0: /* hangup */
+                       del_timer(&cs->timer);
+                       ic.command = ISDN_CMD_HANGUP;
+                       i = divert_if.ll_cmd(&ic);
+                       spin_lock_irqsave(&divert_lock, flags);
+                       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
+                       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
+                       add_timer(&cs->timer);
+                       spin_unlock_irqrestore(&divert_lock, flags);
+                       break;
+
+       case 1: /* alert */
+               if (cs->akt_state == DEFLECT_ALERT) return (0);
+               cmd &= 0x7F; /* never wait */
+               del_timer(&cs->timer);
+               ic.command = ISDN_CMD_ALERT;
+               if ((i = divert_if.ll_cmd(&ic)))
+               {
+                       spin_lock_irqsave(&divert_lock, flags);
+                       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
+                       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
+                       add_timer(&cs->timer);
+                       spin_unlock_irqrestore(&divert_lock, flags);
+               }
+               else
+                       cs->akt_state = DEFLECT_ALERT;
+               break;
+
+       case 2: /* redir */
+               del_timer(&cs->timer);
+               strlcpy(cs->ics.parm.setup.phone, to_nr, sizeof(cs->ics.parm.setup.phone));
+               strcpy(cs->ics.parm.setup.eazmsn, "Testtext manual");
+               ic.command = ISDN_CMD_REDIR;
+               if ((i = divert_if.ll_cmd(&ic)))
+               {
+                       spin_lock_irqsave(&divert_lock, flags);
+                       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
+                       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
+                       add_timer(&cs->timer);
+                       spin_unlock_irqrestore(&divert_lock, flags);
+               }
+               else
+                       cs->akt_state = DEFLECT_ALERT;
+               break;
+
+       } /* switch */
+       return (i);
 } /* deflect_extern_action */
 
 /********************************/
 /* insert a new rule before idx */
 /********************************/
 int insertrule(int idx, divert_rule *newrule)
-{ struct deflect_struc *ds,*ds1=NULL;
-  unsigned long flags;
-
-  if (!(ds = kmalloc(sizeof(struct deflect_struc),
-                                              GFP_KERNEL))) 
-    return(-ENOMEM); /* no memory */
-
-  ds->rule = *newrule; /* set rule */
-
-  spin_lock_irqsave(&divert_lock, flags);
-
-  if (idx >= 0)
-   { ds1 = table_head;
-     while ((ds1) && (idx > 0))
-      { idx--;
-        ds1 = ds1->next;
-      } 
-     if (!ds1) idx = -1; 
-   }
-
-  if (idx < 0)
-   { ds->prev = table_tail; /* previous entry */
-     ds->next = NULL; /* end of chain */
-     if (ds->prev) 
-       ds->prev->next = ds; /* last forward */
-      else
-        table_head = ds; /* is first entry */
-     table_tail = ds; /* end of queue */
-   }
-  else
-    { ds->next = ds1; /* next entry */
-      ds->prev = ds1->prev; /* prev entry */
-      ds1->prev = ds; /* backward chain old element */
-      if (!ds->prev)
-        table_head = ds; /* first element */
-   }
-
-  spin_unlock_irqrestore(&divert_lock, flags);
-  return(0);
+{ struct deflect_struc *ds, *ds1 = NULL;
+       unsigned long flags;
+
+       if (!(ds = kmalloc(sizeof(struct deflect_struc),
+                          GFP_KERNEL)))
+               return (-ENOMEM); /* no memory */
+
+       ds->rule = *newrule; /* set rule */
+
+       spin_lock_irqsave(&divert_lock, flags);
+
+       if (idx >= 0)
+       { ds1 = table_head;
+               while ((ds1) && (idx > 0))
+               { idx--;
+                       ds1 = ds1->next;
+               }
+               if (!ds1) idx = -1;
+       }
+
+       if (idx < 0)
+       { ds->prev = table_tail; /* previous entry */
+               ds->next = NULL; /* end of chain */
+               if (ds->prev)
+                       ds->prev->next = ds; /* last forward */
+               else
+                       table_head = ds; /* is first entry */
+               table_tail = ds; /* end of queue */
+       }
+       else
+       { ds->next = ds1; /* next entry */
+               ds->prev = ds1->prev; /* prev entry */
+               ds1->prev = ds; /* backward chain old element */
+               if (!ds->prev)
+                       table_head = ds; /* first element */
+       }
+
+       spin_unlock_irqrestore(&divert_lock, flags);
+       return (0);
 } /* insertrule */
 
 /***********************************/
 /* delete the rule at position idx */
 /***********************************/
 int deleterule(int idx)
-{ struct deflect_struc *ds,*ds1;
-  unsigned long flags;
-  
-  if (idx < 0) 
-   { spin_lock_irqsave(&divert_lock, flags);
-     ds = table_head;
-     table_head = NULL;
-     table_tail = NULL;
-     spin_unlock_irqrestore(&divert_lock, flags);
-     while (ds)
-      { ds1 = ds; 
-        ds = ds->next;
-        kfree(ds1);
-      } 
-     return(0); 
-   }
-
-  spin_lock_irqsave(&divert_lock, flags);
-  ds = table_head;
-
-  while ((ds) && (idx > 0))
-   { idx--; 
-     ds = ds->next;  
-   }
-
-  if (!ds) 
-   {
-     spin_unlock_irqrestore(&divert_lock, flags);
-     return(-EINVAL);
-   }  
-
-  if (ds->next) 
-    ds->next->prev = ds->prev; /* backward chain */
-   else
-     table_tail = ds->prev; /* end of chain */
-
-  if (ds->prev)
-    ds->prev->next = ds->next; /* forward chain */
-   else
-     table_head = ds->next; /* start of chain */      
-  
-  spin_unlock_irqrestore(&divert_lock, flags);
-  kfree(ds);
-  return(0);
+{ struct deflect_struc *ds, *ds1;
+       unsigned long flags;
+
+       if (idx < 0)
+       { spin_lock_irqsave(&divert_lock, flags);
+               ds = table_head;
+               table_head = NULL;
+               table_tail = NULL;
+               spin_unlock_irqrestore(&divert_lock, flags);
+               while (ds)
+               { ds1 = ds;
+                       ds = ds->next;
+                       kfree(ds1);
+               }
+               return (0);
+       }
+
+       spin_lock_irqsave(&divert_lock, flags);
+       ds = table_head;
+
+       while ((ds) && (idx > 0))
+       { idx--;
+               ds = ds->next;
+       }
+
+       if (!ds)
+       {
+               spin_unlock_irqrestore(&divert_lock, flags);
+               return (-EINVAL);
+       }
+
+       if (ds->next)
+               ds->next->prev = ds->prev; /* backward chain */
+       else
+               table_tail = ds->prev; /* end of chain */
+
+       if (ds->prev)
+               ds->prev->next = ds->next; /* forward chain */
+       else
+               table_head = ds->next; /* start of chain */
+
+       spin_unlock_irqrestore(&divert_lock, flags);
+       kfree(ds);
+       return (0);
 } /* deleterule */
 
 /*******************************************/
@@ -370,16 +370,16 @@ int deleterule(int idx)
 /*******************************************/
 divert_rule *getruleptr(int idx)
 { struct deflect_struc *ds = table_head;
-  
-  if (idx < 0) return(NULL);
-  while ((ds) && (idx >= 0))
-   { if (!(idx--)) 
-      { return(&ds->rule);
-        break;
-      }
-     ds = ds->next;  
-   }
-  return(NULL);
+
+       if (idx < 0) return (NULL);
+       while ((ds) && (idx >= 0))
+       { if (!(idx--))
+               { return (&ds->rule);
+                       break;
+               }
+               ds = ds->next;
+       }
+       return (NULL);
 } /* getruleptr */
 
 /*************************************************/
@@ -387,168 +387,168 @@ divert_rule *getruleptr(int idx)
 /*************************************************/
 static int isdn_divert_icall(isdn_ctrl *ic)
 { int retval = 0;
-  unsigned long flags;
-  struct call_struc *cs = NULL; 
-  struct deflect_struc *dv;
-  char *p,*p1;
-  u_char accept;
-
-  /* first check the internal deflection table */
-  for (dv = table_head; dv ; dv = dv->next )
-   { /* scan table */
-     if (((dv->rule.callopt == 1) && (ic->command == ISDN_STAT_ICALLW)) ||
-         ((dv->rule.callopt == 2) && (ic->command == ISDN_STAT_ICALL)))
-       continue; /* call option check */  
-     if (!(dv->rule.drvid & (1L << ic->driver))) 
-       continue; /* driver not matching */ 
-     if ((dv->rule.si1) && (dv->rule.si1 != ic->parm.setup.si1)) 
-       continue; /* si1 not matching */
-     if ((dv->rule.si2) && (dv->rule.si2 != ic->parm.setup.si2)) 
-       continue; /* si2 not matching */
-
-     p = dv->rule.my_msn;
-     p1 = ic->parm.setup.eazmsn;
-     accept = 0;
-     while (*p)
-      { /* complete compare */
-        if (*p == '-')
-         { accept = 1; /* call accepted */
-            break;
-          }
-        if (*p++ != *p1++) 
-          break; /* not accepted */
-        if ((!*p) && (!*p1))
-          accept = 1;
-      } /* complete compare */
-     if (!accept) continue; /* not accepted */
-     if ((strcmp(dv->rule.caller,"0")) || (ic->parm.setup.phone[0]))
-      { p = dv->rule.caller;
-        p1 = ic->parm.setup.phone;
-        accept = 0;
-        while (*p)
-        { /* complete compare */
-           if (*p == '-')
-           { accept = 1; /* call accepted */
-              break;
-            }
-           if (*p++ != *p1++) 
-             break; /* not accepted */
-           if ((!*p) && (!*p1))
-             accept = 1;
-         } /* complete compare */
-        if (!accept) continue; /* not accepted */
-      }  
-
-     switch (dv->rule.action)
-       { case DEFLECT_IGNORE:
-           return(0);
-           break;
-
-         case DEFLECT_ALERT:
-         case DEFLECT_PROCEED:
-         case DEFLECT_REPORT:
-         case DEFLECT_REJECT:
-           if (dv->rule.action == DEFLECT_PROCEED)
-           if ((!if_used) || ((!extern_wait_max) && (!dv->rule.waittime))) 
-              return(0); /* no external deflection needed */  
-           if (!(cs = kmalloc(sizeof(struct call_struc), GFP_ATOMIC)))
-             return(0); /* no memory */
-           init_timer(&cs->timer);
-           cs->info[0] = '\0';
-           cs->timer.function = deflect_timer_expire;
-           cs->timer.data = (ulong) cs; /* pointer to own structure */
-           
-           cs->ics = *ic; /* copy incoming data */
-           if (!cs->ics.parm.setup.phone[0]) strcpy(cs->ics.parm.setup.phone,"0");
-           if (!cs->ics.parm.setup.eazmsn[0]) strcpy(cs->ics.parm.setup.eazmsn,"0");
-          cs->ics.parm.setup.screen = dv->rule.screen;  
-           if (dv->rule.waittime) 
-             cs->timer.expires = jiffies + (HZ * dv->rule.waittime);
-           else
-            if (dv->rule.action == DEFLECT_PROCEED)
-              cs->timer.expires = jiffies + (HZ * extern_wait_max); 
-            else  
-              cs->timer.expires = 0;
-           cs->akt_state = dv->rule.action;                
-           spin_lock_irqsave(&divert_lock, flags);
-           cs->divert_id = next_id++; /* new sequence number */
-           spin_unlock_irqrestore(&divert_lock, flags);
-           cs->prev = NULL;
-           if (cs->akt_state == DEFLECT_ALERT)
-             { strcpy(cs->deflect_dest,dv->rule.to_nr);
-               if (!cs->timer.expires)
-                { strcpy(ic->parm.setup.eazmsn,"Testtext direct");
-                   ic->parm.setup.screen = dv->rule.screen;
-                   strlcpy(ic->parm.setup.phone, dv->rule.to_nr, sizeof(ic->parm.setup.phone));
-                   cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
-                   cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
-                   retval = 5; 
-                 }
-               else
-                 retval = 1; /* alerting */                 
-             }
-           else
-             { cs->deflect_dest[0] = '\0';
-              retval = 4; /* only proceed */
-             }  
-           sprintf(cs->info,"%d 0x%lx %s %s %s %s 0x%x 0x%x %d %d %s\n",
-                   cs->akt_state,
-                   cs->divert_id,
-                   divert_if.drv_to_name(cs->ics.driver),
-                   (ic->command == ISDN_STAT_ICALLW) ? "1":"0", 
-                   cs->ics.parm.setup.phone, 
-                   cs->ics.parm.setup.eazmsn,
-                   cs->ics.parm.setup.si1,
-                   cs->ics.parm.setup.si2,
-                   cs->ics.parm.setup.screen,
-                   dv->rule.waittime,
-                   cs->deflect_dest);
-           if ((dv->rule.action == DEFLECT_REPORT) ||
-               (dv->rule.action == DEFLECT_REJECT))
-           { put_info_buffer(cs->info);
-             kfree(cs); /* remove */
-              return((dv->rule.action == DEFLECT_REPORT) ? 0:2); /* nothing to do */ 
-            }              
-           break;
-  
-         default:
-           return(0); /* ignore call */
-           break;
-       } /* switch action */    
-     break; 
-   } /* scan_table */
-
-  if (cs) 
-   { cs->prev = NULL;
-     spin_lock_irqsave(&divert_lock, flags);
-     cs->next = divert_head;
-     divert_head = cs; 
-     if (cs->timer.expires) add_timer(&cs->timer);
-     spin_unlock_irqrestore(&divert_lock, flags);
-
-     put_info_buffer(cs->info); 
-     return(retval);
-   }
-  else
-     return(0);
+       unsigned long flags;
+       struct call_struc *cs = NULL;
+       struct deflect_struc *dv;
+       char *p, *p1;
+       u_char accept;
+
+       /* first check the internal deflection table */
+       for (dv = table_head; dv; dv = dv->next)
+       { /* scan table */
+               if (((dv->rule.callopt == 1) && (ic->command == ISDN_STAT_ICALLW)) ||
+                   ((dv->rule.callopt == 2) && (ic->command == ISDN_STAT_ICALL)))
+                       continue; /* call option check */
+               if (!(dv->rule.drvid & (1L << ic->driver)))
+                       continue; /* driver not matching */
+               if ((dv->rule.si1) && (dv->rule.si1 != ic->parm.setup.si1))
+                       continue; /* si1 not matching */
+               if ((dv->rule.si2) && (dv->rule.si2 != ic->parm.setup.si2))
+                       continue; /* si2 not matching */
+
+               p = dv->rule.my_msn;
+               p1 = ic->parm.setup.eazmsn;
+               accept = 0;
+               while (*p)
+               { /* complete compare */
+                       if (*p == '-')
+                       { accept = 1; /* call accepted */
+                               break;
+                       }
+                       if (*p++ != *p1++)
+                               break; /* not accepted */
+                       if ((!*p) && (!*p1))
+                               accept = 1;
+               } /* complete compare */
+               if (!accept) continue; /* not accepted */
+
+               if ((strcmp(dv->rule.caller, "0")) || (ic->parm.setup.phone[0]))
+               { p = dv->rule.caller;
+                       p1 = ic->parm.setup.phone;
+                       accept = 0;
+                       while (*p)
+                       { /* complete compare */
+                               if (*p == '-')
+                               { accept = 1; /* call accepted */
+                                       break;
+                               }
+                               if (*p++ != *p1++)
+                                       break; /* not accepted */
+                               if ((!*p) && (!*p1))
+                                       accept = 1;
+                       } /* complete compare */
+                       if (!accept) continue; /* not accepted */
+               }
+
+               switch (dv->rule.action)
+               { case DEFLECT_IGNORE:
+                               return (0);
+                               break;
+
+               case DEFLECT_ALERT:
+               case DEFLECT_PROCEED:
+               case DEFLECT_REPORT:
+               case DEFLECT_REJECT:
+                       if (dv->rule.action == DEFLECT_PROCEED)
+                               if ((!if_used) || ((!extern_wait_max) && (!dv->rule.waittime)))
+                                       return (0); /* no external deflection needed */
+                       if (!(cs = kmalloc(sizeof(struct call_struc), GFP_ATOMIC)))
+                               return (0); /* no memory */
+                       init_timer(&cs->timer);
+                       cs->info[0] = '\0';
+                       cs->timer.function = deflect_timer_expire;
+                       cs->timer.data = (ulong) cs; /* pointer to own structure */
+
+                       cs->ics = *ic; /* copy incoming data */
+                       if (!cs->ics.parm.setup.phone[0]) strcpy(cs->ics.parm.setup.phone, "0");
+                       if (!cs->ics.parm.setup.eazmsn[0]) strcpy(cs->ics.parm.setup.eazmsn, "0");
+                       cs->ics.parm.setup.screen = dv->rule.screen;
+                       if (dv->rule.waittime)
+                               cs->timer.expires = jiffies + (HZ * dv->rule.waittime);
+                       else
+                               if (dv->rule.action == DEFLECT_PROCEED)
+                                       cs->timer.expires = jiffies + (HZ * extern_wait_max);
+                               else
+                                       cs->timer.expires = 0;
+                       cs->akt_state = dv->rule.action;
+                       spin_lock_irqsave(&divert_lock, flags);
+                       cs->divert_id = next_id++; /* new sequence number */
+                       spin_unlock_irqrestore(&divert_lock, flags);
+                       cs->prev = NULL;
+                       if (cs->akt_state == DEFLECT_ALERT)
+                       { strcpy(cs->deflect_dest, dv->rule.to_nr);
+                               if (!cs->timer.expires)
+                               { strcpy(ic->parm.setup.eazmsn, "Testtext direct");
+                                       ic->parm.setup.screen = dv->rule.screen;
+                                       strlcpy(ic->parm.setup.phone, dv->rule.to_nr, sizeof(ic->parm.setup.phone));
+                                       cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
+                                       cs->timer.expires = jiffies + (HZ * AUTODEL_TIME);
+                                       retval = 5;
+                               }
+                               else
+                                       retval = 1; /* alerting */
+                       }
+                       else
+                       { cs->deflect_dest[0] = '\0';
+                               retval = 4; /* only proceed */
+                       }
+                       sprintf(cs->info, "%d 0x%lx %s %s %s %s 0x%x 0x%x %d %d %s\n",
+                               cs->akt_state,
+                               cs->divert_id,
+                               divert_if.drv_to_name(cs->ics.driver),
+                               (ic->command == ISDN_STAT_ICALLW) ? "1" : "0",
+                               cs->ics.parm.setup.phone,
+                               cs->ics.parm.setup.eazmsn,
+                               cs->ics.parm.setup.si1,
+                               cs->ics.parm.setup.si2,
+                               cs->ics.parm.setup.screen,
+                               dv->rule.waittime,
+                               cs->deflect_dest);
+                       if ((dv->rule.action == DEFLECT_REPORT) ||
+                           (dv->rule.action == DEFLECT_REJECT))
+                       { put_info_buffer(cs->info);
+                               kfree(cs); /* remove */
+                               return ((dv->rule.action == DEFLECT_REPORT) ? 0 : 2); /* nothing to do */
+                       }
+                       break;
+
+               default:
+                       return (0); /* ignore call */
+                       break;
+               } /* switch action */
+               break;
+       } /* scan_table */
+
+       if (cs)
+       { cs->prev = NULL;
+               spin_lock_irqsave(&divert_lock, flags);
+               cs->next = divert_head;
+               divert_head = cs;
+               if (cs->timer.expires) add_timer(&cs->timer);
+               spin_unlock_irqrestore(&divert_lock, flags);
+
+               put_info_buffer(cs->info);
+               return (retval);
+       }
+       else
+               return (0);
 } /* isdn_divert_icall */
 
 
 void deleteprocs(void)
-{ struct call_struc *cs, *cs1; 
-  unsigned long flags;
-
-  spin_lock_irqsave(&divert_lock, flags);
-  cs = divert_head;
-  divert_head = NULL;
-  while (cs)
-   { del_timer(&cs->timer);
-     cs1 = cs;
-     cs = cs->next;
-     kfree(cs1);
-   } 
-  spin_unlock_irqrestore(&divert_lock, flags);
+{ struct call_struc *cs, *cs1;
+       unsigned long flags;
+
+       spin_lock_irqsave(&divert_lock, flags);
+       cs = divert_head;
+       divert_head = NULL;
+       while (cs)
+       { del_timer(&cs->timer);
+               cs1 = cs;
+               cs = cs->next;
+               kfree(cs1);
+       }
+       spin_unlock_irqrestore(&divert_lock, flags);
 } /* deleteprocs */
 
 /****************************************************/
@@ -556,42 +556,42 @@ void deleteprocs(void)
 /****************************************************/
 static int put_address(char *st, u_char *p, int len)
 { u_char retval = 0;
-  u_char adr_typ = 0; /* network standard */
-
-  if (len < 2) return(retval);
-  if (*p == 0xA1)
-   { retval = *(++p) + 2; /* total length */
-     if (retval > len) return(0); /* too short */
-     len = retval - 2; /* remaining length */
-     if (len < 3) return(0);
-     if ((*(++p) != 0x0A) || (*(++p) != 1)) return(0);
-     adr_typ = *(++p);
-     len -= 3;
-     p++;
-     if (len < 2) return(0);
-     if (*p++ != 0x12) return(0);
-     if (*p > len) return(0); /* check number length */
-     len = *p++;
-   }   
-  else
-   if (*p == 0x80)
-    { retval = *(++p) + 2; /* total length */
-      if (retval > len) return(0);
-      len = retval - 2;
-      p++;
-    }
-   else  
-    return(0); /* invalid address information */
-
-  sprintf(st,"%d ",adr_typ);
-  st += strlen(st);
-  if (!len) 
-    *st++ = '-';
-  else
-   while (len--)
-     *st++ = *p++;
-  *st = '\0';
-  return(retval);
+       u_char adr_typ = 0; /* network standard */
+
+       if (len < 2) return (retval);
+       if (*p == 0xA1)
+       { retval = *(++p) + 2; /* total length */
+               if (retval > len) return (0); /* too short */
+               len = retval - 2; /* remaining length */
+               if (len < 3) return (0);
+               if ((*(++p) != 0x0A) || (*(++p) != 1)) return (0);
+               adr_typ = *(++p);
+               len -= 3;
+               p++;
+               if (len < 2) return (0);
+               if (*p++ != 0x12) return (0);
+               if (*p > len) return (0); /* check number length */
+               len = *p++;
+       }
+       else
+               if (*p == 0x80)
+               { retval = *(++p) + 2; /* total length */
+                       if (retval > len) return (0);
+                       len = retval - 2;
+                       p++;
+               }
+               else
+                       return (0); /* invalid address information */
+
+       sprintf(st, "%d ", adr_typ);
+       st += strlen(st);
+       if (!len)
+               *st++ = '-';
+       else
+               while (len--)
+                       *st++ = *p++;
+       *st = '\0';
+       return (retval);
 } /* put_address */
 
 /*************************************/
@@ -599,93 +599,93 @@ static int put_address(char *st, u_char *p, int len)
 /*************************************/
 static int interrogate_success(isdn_ctrl *ic, struct call_struc *cs)
 { char *src = ic->parm.dss1_io.data;
-  int restlen = ic->parm.dss1_io.datalen;
-  int cnt = 1;
-  u_char n,n1;
-  char st[90], *p, *stp;
-
-  if (restlen < 2) return(-100); /* frame too short */
-  if (*src++ != 0x30) return(-101);
-  if ((n = *src++) > 0x81) return(-102); /* invalid length field */
-  restlen -= 2; /* remaining bytes */
-  if (n == 0x80)
-   { if (restlen < 2) return(-103);
-     if ((*(src+restlen-1)) || (*(src+restlen-2))) return(-104);
-     restlen -= 2;
-   }
-  else
-   if ( n == 0x81)
-    { n = *src++;
-      restlen--;
-      if (n > restlen) return(-105);
-      restlen = n;
-    }
-   else
-    if (n > restlen) return(-106);
-     else 
-      restlen = n; /* standard format */   
-  if (restlen < 3) return(-107); /* no procedure */
-  if ((*src++ != 2) || (*src++ != 1) || (*src++ != 0x0B)) return(-108);
-  restlen -= 3; 
-  if (restlen < 2) return(-109); /* list missing */
-  if (*src == 0x31)
-   { src++; 
-     if ((n = *src++) > 0x81) return(-110); /* invalid length field */
-     restlen -= 2; /* remaining bytes */
-     if (n == 0x80)
-      { if (restlen < 2) return(-111);
-        if ((*(src+restlen-1)) || (*(src+restlen-2))) return(-112);
-        restlen -= 2;
-      }
-     else
-      if ( n == 0x81)
-       { n = *src++;
-         restlen--;
-         if (n > restlen) return(-113);
-         restlen = n;
-       }
-      else
-       if (n > restlen) return(-114);
-        else 
-         restlen = n; /* standard format */   
-   } /* result list header */ 
-
-  while (restlen >= 2)
-   { stp = st;
-     sprintf(stp,"%d 0x%lx %d %s ",DIVERT_REPORT, ic->parm.dss1_io.ll_id,
-                 cnt++,divert_if.drv_to_name(ic->driver));
-     stp += strlen(stp);
-     if (*src++ != 0x30) return(-115); /* invalid enum */
-     n = *src++;
-     restlen -= 2;
-     if (n > restlen) return(-116); /* enum length wrong */
-     restlen -= n;
-     p = src; /* one entry */
-     src += n;
-     if (!(n1 = put_address(stp,p,n & 0xFF))) continue;
-     stp += strlen(stp);
-     p += n1;
-     n -= n1;
-     if (n < 6) continue; /* no service and proc */
-     if ((*p++ != 0x0A) || (*p++ != 1)) continue;
-     sprintf(stp," 0x%02x ",(*p++) & 0xFF);
-     stp += strlen(stp);
-     if ((*p++ != 0x0A) || (*p++ != 1)) continue;
-     sprintf(stp,"%d ",(*p++) & 0xFF);
-     stp += strlen(stp);
-     n -= 6;
-     if (n > 2)
-      { if (*p++ != 0x30) continue;
-        if (*p > (n-2)) continue;
-        n = *p++;
-        if (!(n1 = put_address(stp,p,n & 0xFF))) continue;
-        stp += strlen(stp);
-      }
-     sprintf(stp,"\n");
-     put_info_buffer(st);
-   } /* while restlen */
-  if (restlen) return(-117);
-  return(0);   
+       int restlen = ic->parm.dss1_io.datalen;
+       int cnt = 1;
+       u_char n, n1;
+       char st[90], *p, *stp;
+
+       if (restlen < 2) return (-100); /* frame too short */
+       if (*src++ != 0x30) return (-101);
+       if ((n = *src++) > 0x81) return (-102); /* invalid length field */
+       restlen -= 2; /* remaining bytes */
+       if (n == 0x80)
+       { if (restlen < 2) return (-103);
+               if ((*(src + restlen - 1)) || (*(src + restlen - 2))) return (-104);
+               restlen -= 2;
+       }
+       else
+               if (n == 0x81)
+               { n = *src++;
+                       restlen--;
+                       if (n > restlen) return (-105);
+                       restlen = n;
+               }
+               else
+                       if (n > restlen) return (-106);
+                       else
+                               restlen = n; /* standard format */
+       if (restlen < 3) return (-107); /* no procedure */
+       if ((*src++ != 2) || (*src++ != 1) || (*src++ != 0x0B)) return (-108);
+       restlen -= 3;
+       if (restlen < 2) return (-109); /* list missing */
+       if (*src == 0x31)
+       { src++;
+               if ((n = *src++) > 0x81) return (-110); /* invalid length field */
+               restlen -= 2; /* remaining bytes */
+               if (n == 0x80)
+               { if (restlen < 2) return (-111);
+                       if ((*(src + restlen - 1)) || (*(src + restlen - 2))) return (-112);
+                       restlen -= 2;
+               }
+               else
+                       if (n == 0x81)
+                       { n = *src++;
+                               restlen--;
+                               if (n > restlen) return (-113);
+                               restlen = n;
+                       }
+                       else
+                               if (n > restlen) return (-114);
+                               else
+                                       restlen = n; /* standard format */
+       } /* result list header */
+
+       while (restlen >= 2)
+       { stp = st;
+               sprintf(stp, "%d 0x%lx %d %s ", DIVERT_REPORT, ic->parm.dss1_io.ll_id,
+                       cnt++, divert_if.drv_to_name(ic->driver));
+               stp += strlen(stp);
+               if (*src++ != 0x30) return (-115); /* invalid enum */
+               n = *src++;
+               restlen -= 2;
+               if (n > restlen) return (-116); /* enum length wrong */
+               restlen -= n;
+               p = src; /* one entry */
+               src += n;
+               if (!(n1 = put_address(stp, p, n & 0xFF))) continue;
+               stp += strlen(stp);
+               p += n1;
+               n -= n1;
+               if (n < 6) continue; /* no service and proc */
+               if ((*p++ != 0x0A) || (*p++ != 1)) continue;
+               sprintf(stp, " 0x%02x ", (*p++) & 0xFF);
+               stp += strlen(stp);
+               if ((*p++ != 0x0A) || (*p++ != 1)) continue;
+               sprintf(stp, "%d ", (*p++) & 0xFF);
+               stp += strlen(stp);
+               n -= 6;
+               if (n > 2)
+               { if (*p++ != 0x30) continue;
+                       if (*p > (n - 2)) continue;
+                       n = *p++;
+                       if (!(n1 = put_address(stp, p, n & 0xFF))) continue;
+                       stp += strlen(stp);
+               }
+               sprintf(stp, "\n");
+               put_info_buffer(st);
+       } /* while restlen */
+       if (restlen) return (-117);
+       return (0);
 } /* interrogate_success */
 
 /*********************************************/
@@ -693,90 +693,90 @@ static int interrogate_success(isdn_ctrl *ic, struct call_struc *cs)
 /*********************************************/
 static int prot_stat_callback(isdn_ctrl *ic)
 { struct call_struc *cs, *cs1;
-  int i;
-  unsigned long flags;
-
-  cs = divert_head; /* start of list */
-  cs1 = NULL;
-  while (cs)
-   { if (ic->driver == cs->ics.driver) 
-      { switch (cs->ics.arg)
-        { case DSS1_CMD_INVOKE:
-             if ((cs->ics.parm.dss1_io.ll_id == ic->parm.dss1_io.ll_id) &&
-                 (cs->ics.parm.dss1_io.hl_id == ic->parm.dss1_io.hl_id))
-             { switch (ic->arg)
-               {  case DSS1_STAT_INVOKE_ERR:
-                     sprintf(cs->info,"128 0x%lx 0x%x\n", 
-                             ic->parm.dss1_io.ll_id,
-                             ic->parm.dss1_io.timeout);
-                     put_info_buffer(cs->info);
-                   break;
-                   
-                   case DSS1_STAT_INVOKE_RES:
-                     switch (cs->ics.parm.dss1_io.proc)
-                     {  case  7:
-                         case  8:
-                            put_info_buffer(cs->info); 
-                           break;
-                       
-                         case  11:
-                           i = interrogate_success(ic,cs);
-                           if (i)
-                             sprintf(cs->info,"%d 0x%lx %d\n",DIVERT_REPORT, 
-                                     ic->parm.dss1_io.ll_id,i);
-                           put_info_buffer(cs->info); 
-                           break;
-                       
-                        default: 
-                           printk(KERN_WARNING "dss1_divert: unknown proc %d\n",cs->ics.parm.dss1_io.proc);
-                           break;
-                      } 
-
-
-                   break;
-                  default:
-                     printk(KERN_WARNING "dss1_divert unknown invoke answer %lx\n",ic->arg);
-                   break;  
-                 } 
-                cs1 = cs; /* remember structure */
-                cs = NULL; 
-                continue; /* abort search */
-              } /* id found */ 
-           break;
-   
-          case DSS1_CMD_INVOKE_ABORT:
-             printk(KERN_WARNING "dss1_divert unhandled invoke abort\n"); 
-           break;   
-         
-          default:
-             printk(KERN_WARNING "dss1_divert unknown cmd 0x%lx\n",cs->ics.arg); 
-           break; 
-         } /* switch ics.arg */ 
-        cs = cs->next; 
-      } /* driver ok */
-   }  
-   
-  if (!cs1) 
-   { printk(KERN_WARNING "dss1_divert unhandled process\n");
-     return(0);
-   }  
-
-  if (cs1->ics.driver == -1)
-   {
-     spin_lock_irqsave(&divert_lock, flags);
-     del_timer(&cs1->timer);
-     if (cs1->prev) 
-       cs1->prev->next = cs1->next; /* forward link */
-     else
-       divert_head = cs1->next;
-     if (cs1->next)
-       cs1->next->prev = cs1->prev; /* back link */           
-     spin_unlock_irqrestore(&divert_lock, flags);
-     kfree(cs1);
-   } 
-
-  return(0);
+       int i;
+       unsigned long flags;
+
+       cs = divert_head; /* start of list */
+       cs1 = NULL;
+       while (cs)
+       { if (ic->driver == cs->ics.driver)
+               { switch (cs->ics.arg)
+                       { case DSS1_CMD_INVOKE:
+                                       if ((cs->ics.parm.dss1_io.ll_id == ic->parm.dss1_io.ll_id) &&
+                                           (cs->ics.parm.dss1_io.hl_id == ic->parm.dss1_io.hl_id))
+                                       { switch (ic->arg)
+                                               {  case DSS1_STAT_INVOKE_ERR:
+                                                               sprintf(cs->info, "128 0x%lx 0x%x\n",
+                                                                       ic->parm.dss1_io.ll_id,
+                                                                       ic->parm.dss1_io.timeout);
+                                                               put_info_buffer(cs->info);
+                                                               break;
+
+                                               case DSS1_STAT_INVOKE_RES:
+                                                       switch (cs->ics.parm.dss1_io.proc)
+                                                       {  case  7:
+                                                       case  8:
+                                                               put_info_buffer(cs->info);
+                                                               break;
+
+                                                       case  11:
+                                                               i = interrogate_success(ic, cs);
+                                                               if (i)
+                                                                       sprintf(cs->info, "%d 0x%lx %d\n", DIVERT_REPORT,
+                                                                               ic->parm.dss1_io.ll_id, i);
+                                                               put_info_buffer(cs->info);
+                                                               break;
+
+                                                       default:
+                                                               printk(KERN_WARNING "dss1_divert: unknown proc %d\n", cs->ics.parm.dss1_io.proc);
+                                                               break;
+                                                       }
+
+
+                                                       break;
+
+                                               default:
+                                                       printk(KERN_WARNING "dss1_divert unknown invoke answer %lx\n", ic->arg);
+                                                       break;
+                                               }
+                                               cs1 = cs; /* remember structure */
+                                               cs = NULL;
+                                               continue; /* abort search */
+                                       } /* id found */
+                                       break;
+
+                       case DSS1_CMD_INVOKE_ABORT:
+                               printk(KERN_WARNING "dss1_divert unhandled invoke abort\n");
+                               break;
+
+                       default:
+                               printk(KERN_WARNING "dss1_divert unknown cmd 0x%lx\n", cs->ics.arg);
+                               break;
+                       } /* switch ics.arg */
+                       cs = cs->next;
+               } /* driver ok */
+       }
+
+       if (!cs1)
+       { printk(KERN_WARNING "dss1_divert unhandled process\n");
+               return (0);
+       }
+
+       if (cs1->ics.driver == -1)
+       {
+               spin_lock_irqsave(&divert_lock, flags);
+               del_timer(&cs1->timer);
+               if (cs1->prev)
+                       cs1->prev->next = cs1->next; /* forward link */
+               else
+                       divert_head = cs1->next;
+               if (cs1->next)
+                       cs1->next->prev = cs1->prev; /* back link */
+               spin_unlock_irqrestore(&divert_lock, flags);
+               kfree(cs1);
+       }
+
+       return (0);
 } /* prot_stat_callback */
 
 
@@ -785,79 +785,78 @@ static int prot_stat_callback(isdn_ctrl *ic)
 /***************************/
 static int isdn_divert_stat_callback(isdn_ctrl *ic)
 { struct call_struc *cs, *cs1;
-  unsigned long flags;
-  int retval;
-
-  retval = -1;
-  cs = divert_head; /* start of list */
-     while (cs)
-      { if ((ic->driver == cs->ics.driver) && (ic->arg == cs->ics.arg))
-         { switch (ic->command)
-           { case ISDN_STAT_DHUP:
-                sprintf(cs->info,"129 0x%lx\n",cs->divert_id);
-                del_timer(&cs->timer);
-                cs->ics.driver = -1;
-                break;
-
-             case ISDN_STAT_CAUSE:
-                sprintf(cs->info,"130 0x%lx %s\n",cs->divert_id,ic->parm.num);
-                break;
-
-             case ISDN_STAT_REDIR:
-                sprintf(cs->info,"131 0x%lx\n",cs->divert_id);
-                del_timer(&cs->timer);
-                cs->ics.driver = -1;
-                break; 
-
-             default:
-                sprintf(cs->info,"999 0x%lx 0x%x\n",cs->divert_id,(int)(ic->command));
-                break; 
-            }
-          put_info_buffer(cs->info);
-          retval = 0; 
-         }
-        cs1 = cs; 
-        cs = cs->next;
-        if (cs1->ics.driver == -1)
-          { 
-            spin_lock_irqsave(&divert_lock, flags);
-            if (cs1->prev) 
-              cs1->prev->next = cs1->next; /* forward link */
-            else
-              divert_head = cs1->next;
-            if (cs1->next)
-              cs1->next->prev = cs1->prev; /* back link */           
-            spin_unlock_irqrestore(&divert_lock, flags);
-            kfree(cs1);
-          } 
-      }  
-  return(retval); /* not found */
-} /* isdn_divert_stat_callback */ 
+       unsigned long flags;
+       int retval;
+
+       retval = -1;
+       cs = divert_head; /* start of list */
+       while (cs)
+       { if ((ic->driver == cs->ics.driver) && (ic->arg == cs->ics.arg))
+               { switch (ic->command)
+                       { case ISDN_STAT_DHUP:
+                                       sprintf(cs->info, "129 0x%lx\n", cs->divert_id);
+                                       del_timer(&cs->timer);
+                                       cs->ics.driver = -1;
+                                       break;
+
+                       case ISDN_STAT_CAUSE:
+                               sprintf(cs->info, "130 0x%lx %s\n", cs->divert_id, ic->parm.num);
+                               break;
+
+                       case ISDN_STAT_REDIR:
+                               sprintf(cs->info, "131 0x%lx\n", cs->divert_id);
+                               del_timer(&cs->timer);
+                               cs->ics.driver = -1;
+                               break;
+
+                       default:
+                               sprintf(cs->info, "999 0x%lx 0x%x\n", cs->divert_id, (int)(ic->command));
+                               break;
+                       }
+                       put_info_buffer(cs->info);
+                       retval = 0;
+               }
+               cs1 = cs;
+               cs = cs->next;
+               if (cs1->ics.driver == -1)
+               {
+                       spin_lock_irqsave(&divert_lock, flags);
+                       if (cs1->prev)
+                               cs1->prev->next = cs1->next; /* forward link */
+                       else
+                               divert_head = cs1->next;
+                       if (cs1->next)
+                               cs1->next->prev = cs1->prev; /* back link */
+                       spin_unlock_irqrestore(&divert_lock, flags);
+                       kfree(cs1);
+               }
+       }
+       return (retval); /* not found */
+} /* isdn_divert_stat_callback */
 
 
 /********************/
 /* callback from ll */
-/********************/ 
+/********************/
 int ll_callback(isdn_ctrl *ic)
 {
-  switch (ic->command)
-   { case ISDN_STAT_ICALL:
-     case ISDN_STAT_ICALLW:
-       return(isdn_divert_icall(ic));
-     break;
-
-     case ISDN_STAT_PROT:
-       if ((ic->arg & 0xFF) == ISDN_PTYPE_EURO)
-       { if (ic->arg != DSS1_STAT_INVOKE_BRD)
-            return(prot_stat_callback(ic));
-          else
-            return(0); /* DSS1 invoke broadcast */
-        }
-       else
-         return(-1); /* protocol not euro */    
-
-     default:
-       return(isdn_divert_stat_callback(ic));
-   }
+       switch (ic->command)
+       { case ISDN_STAT_ICALL:
+       case ISDN_STAT_ICALLW:
+               return (isdn_divert_icall(ic));
+               break;
+
+       case ISDN_STAT_PROT:
+               if ((ic->arg & 0xFF) == ISDN_PTYPE_EURO)
+               { if (ic->arg != DSS1_STAT_INVOKE_BRD)
+                               return (prot_stat_callback(ic));
+                       else
+                               return (0); /* DSS1 invoke broadcast */
+               }
+               else
+                       return (-1); /* protocol not euro */
+
+       default:
+               return (isdn_divert_stat_callback(ic));
+       }
 } /* ll_callback */
-
index 19439a6..42f2893 100644 (file)
@@ -3,7 +3,7 @@
  * Header for the diversion supplementary ioctl interface.
  *
  * Copyright 1998       by Werner Cornelius (werner@ikt.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 #define IIOCGETDRV   _IO('I', 2)  /* get driver number */
 #define IIOCGETNAM   _IO('I', 3)  /* get driver name */
 #define IIOCGETRULE  _IO('I', 4)  /* read one rule */
-#define IIOCMODRULE  _IO('I', 5)  /* modify/replace a rule */  
+#define IIOCMODRULE  _IO('I', 5)  /* modify/replace a rule */
 #define IIOCINSRULE  _IO('I', 6)  /* insert/append one rule */
 #define IIOCDELRULE  _IO('I', 7)  /* delete a rule */
 #define IIOCDODFACT  _IO('I', 8)  /* hangup/reject/alert/immediately deflect a call */
 #define IIOCDOCFACT  _IO('I', 9)  /* activate control forwarding in PBX */
-#define IIOCDOCFDIS  _IO('I',10)  /* deactivate control forwarding in PBX */
-#define IIOCDOCFINT  _IO('I',11)  /* interrogate control forwarding in PBX */
+#define IIOCDOCFDIS  _IO('I', 10)  /* deactivate control forwarding in PBX */
+#define IIOCDOCFINT  _IO('I', 11)  /* interrogate control forwarding in PBX */
 
 /*************************************/
 /* states reported through interface */
 #define DEFLECT_IGNORE    0  /* ignore incoming call */
 #define DEFLECT_REPORT    1  /* only report */
 #define DEFLECT_PROCEED   2  /* deflect when externally triggered */
-#define DEFLECT_ALERT     3  /* alert and deflect after delay */ 
+#define DEFLECT_ALERT     3  /* alert and deflect after delay */
 #define DEFLECT_REJECT    4  /* reject immediately */
 #define DIVERT_ACTIVATE   5  /* diversion activate */
 #define DIVERT_DEACTIVATE 6  /* diversion deactivate */
-#define DIVERT_REPORT     7  /* interrogation result */ 
-#define DEFLECT_AUTODEL 255  /* only for internal use */ 
+#define DIVERT_REPORT     7  /* interrogation result */
+#define DEFLECT_AUTODEL 255  /* only for internal use */
 
 #define DEFLECT_ALL_IDS   0xFFFFFFFF /* all drivers selected */
 
 typedef struct
- { ulong drvid;     /* driver ids, bit mapped */
-   char my_msn[35]; /* desired msn, subaddr allowed */
-   char caller[35]; /* caller id, partial string with * + subaddr allowed */
-   char to_nr[35];  /* deflected to number incl. subaddress */
-   u_char si1,si2;  /* service indicators, si1=bitmask, si1+2 0 = all */
-   u_char screen;   /* screening: 0 = no info, 1 = info, 2 = nfo with nr */
-   u_char callopt;  /* option for call handling: 
-                       0 = all calls
-                       1 = only non waiting calls
-                       2 = only waiting calls */
-   u_char action;   /* desired action: 
-                       0 = don't report call -> ignore
-                       1 = report call, do not allow/proceed for deflection
-                       2 = report call, send proceed, wait max waittime secs
-                       3 = report call, alert and deflect after waittime 
-                       4 = report call, reject immediately  
-                       actions 1-2 only take place if interface is opened 
-                   */
-   u_char waittime; /* maximum wait time for proceeding */ 
- } divert_rule;
+{ ulong drvid;     /* driver ids, bit mapped */
+       char my_msn[35]; /* desired msn, subaddr allowed */
+       char caller[35]; /* caller id, partial string with * + subaddr allowed */
+       char to_nr[35];  /* deflected to number incl. subaddress */
+       u_char si1, si2;  /* service indicators, si1=bitmask, si1+2 0 = all */
+       u_char screen;   /* screening: 0 = no info, 1 = info, 2 = nfo with nr */
+       u_char callopt;  /* option for call handling:
+                           0 = all calls
+                           1 = only non waiting calls
+                           2 = only waiting calls */
+       u_char action;   /* desired action:
+                           0 = don't report call -> ignore
+                           1 = report call, do not allow/proceed for deflection
+                           2 = report call, send proceed, wait max waittime secs
+                           3 = report call, alert and deflect after waittime
+                           4 = report call, reject immediately
+                           actions 1-2 only take place if interface is opened
+                        */
+       u_char waittime; /* maximum wait time for proceeding */
+} divert_rule;
 
 typedef union
- { int drv_version; /* return of driver version */
-   struct 
-   { int drvid;                /* id of driver */
-     char drvnam[30];  /* name of driver */
-   } getid;
-   struct
-   { int ruleidx;      /* index of rule */
-     divert_rule rule; /* rule parms */ 
-   } getsetrule;
-   struct
-   { u_char subcmd;  /* 0 = hangup/reject,
-                        1 = alert,
-                        2 = deflect */
-     ulong callid;   /* id of call delivered by ascii output */
-     char to_nr[35]; /* destination when deflect,
-                        else uus1 string (maxlen 31),
-                        data from rule used if empty */ 
-   } fwd_ctrl; 
-   struct
-   { int drvid;      /* id of driver */
-     u_char cfproc;  /* cfu = 0, cfb = 1, cfnr = 2 */
-     ulong procid;   /* process id returned when no error */ 
-     u_char service; /* basically coded service, 0 = all */
-     char msn[25];   /* desired msn, empty = all */
-     char fwd_nr[35];/* forwarded to number + subaddress */
-   } cf_ctrl;  
- } divert_ioctl;
+{ int drv_version; /* return of driver version */
+       struct
+       { int drvid;            /* id of driver */
+               char drvnam[30];        /* name of driver */
+       } getid;
+       struct
+       { int ruleidx;  /* index of rule */
+               divert_rule rule;       /* rule parms */
+       } getsetrule;
+       struct
+       { u_char subcmd;  /* 0 = hangup/reject,
+                            1 = alert,
+                            2 = deflect */
+               ulong callid;   /* id of call delivered by ascii output */
+               char to_nr[35]; /* destination when deflect,
+                                  else uus1 string (maxlen 31),
+                                  data from rule used if empty */
+       } fwd_ctrl;
+       struct
+       { int drvid;      /* id of driver */
+               u_char cfproc;  /* cfu = 0, cfb = 1, cfnr = 2 */
+               ulong procid;   /* process id returned when no error */
+               u_char service; /* basically coded service, 0 = all */
+               char msn[25];   /* desired msn, empty = all */
+               char fwd_nr[35];/* forwarded to number + subaddress */
+       } cf_ctrl;
+} divert_ioctl;
 
 #ifdef __KERNEL__
 
@@ -105,10 +105,10 @@ typedef union
 /* structure keeping ascii info for device output */
 /**************************************************/
 struct divert_info
-  { struct divert_info *next;
-    ulong usage_cnt; /* number of files still to work */   
-    char info_start[2]; /* info string start */ 
-  }; 
+{ struct divert_info *next;
+       ulong usage_cnt; /* number of files still to work */
+       char info_start[2]; /* info string start */
+};
 
 
 /**************/
index fddae72..c90dca5 100644 (file)
@@ -214,7 +214,7 @@ byte_stuff:
                                } else if (fcs != PPP_GOODFCS) {
                                        /* frame check error */
                                        dev_err(cs->dev,
-                               "Checksum failed, %u bytes corrupted!\n",
+                                               "Checksum failed, %u bytes corrupted!\n",
                                                skb->len);
                                        gigaset_isdn_rcv_err(bcs);
                                        dev_kfree_skb_any(skb);
@@ -543,7 +543,7 @@ static struct sk_buff *iraw_encode(struct sk_buff *skb)
        /* size of new buffer (worst case = every byte must be stuffed):
         * 2 * original size + room for link layer header
         */
-       iraw_skb = dev_alloc_skb(2*skb->len + skb->mac_len);
+       iraw_skb = dev_alloc_skb(2 * skb->len + skb->mac_len);
        if (!iraw_skb) {
                dev_kfree_skb_any(skb);
                return NULL;
index 3913f47..afa0802 100644 (file)
@@ -410,10 +410,10 @@ static void check_pending(struct bas_cardstate *ucs)
                if (!(ucs->basstate & BS_RESETTING))
                        ucs->pending = 0;
                break;
-       /*
-        * HD_READ_ATMESSAGE and HD_WRITE_ATMESSAGE are handled separately
-        * and should never end up here
-        */
+               /*
+                * HD_READ_ATMESSAGE and HD_WRITE_ATMESSAGE are handled separately
+                * and should never end up here
+                */
        default:
                dev_warn(&ucs->interface->dev,
                         "unknown pending request 0x%02x cleared\n",
@@ -491,7 +491,7 @@ static void read_ctrl_callback(struct urb *urb)
                numbytes = urb->actual_length;
                if (unlikely(numbytes != ucs->rcvbuf_size)) {
                        dev_warn(cs->dev,
-                              "control read: received %d chars, expected %d\n",
+                                "control read: received %d chars, expected %d\n",
                                 numbytes, ucs->rcvbuf_size);
                        if (numbytes > ucs->rcvbuf_size)
                                numbytes = ucs->rcvbuf_size;
@@ -710,7 +710,7 @@ static void read_int_callback(struct urb *urb)
        }
 
        l = (unsigned) ucs->int_in_buf[1] +
-           (((unsigned) ucs->int_in_buf[2]) << 8);
+               (((unsigned) ucs->int_in_buf[2]) << 8);
 
        gig_dbg(DEBUG_USBREQ, "<-------%d: 0x%02x (%u [0x%02x 0x%02x])",
                urb->actual_length, (int)ucs->int_in_buf[0], l,
@@ -770,14 +770,14 @@ static void read_int_callback(struct urb *urb)
        case HD_RECEIVEATDATA_ACK:      /* AT response ready to be received */
                if (!l) {
                        dev_warn(cs->dev,
-                               "HD_RECEIVEATDATA_ACK with length 0 ignored\n");
+                                "HD_RECEIVEATDATA_ACK with length 0 ignored\n");
                        break;
                }
                spin_lock_irqsave(&cs->lock, flags);
                if (ucs->basstate & BS_ATRDPEND) {
                        spin_unlock_irqrestore(&cs->lock, flags);
                        dev_warn(cs->dev,
-       "HD_RECEIVEATDATA_ACK(%d) during HD_READ_ATMESSAGE(%d) ignored\n",
+                                "HD_RECEIVEATDATA_ACK(%d) during HD_READ_ATMESSAGE(%d) ignored\n",
                                 l, ucs->rcvbuf_size);
                        break;
                }
@@ -878,7 +878,7 @@ static void read_iso_callback(struct urb *urb)
                        ubc->isoinlost += urb->iso_frame_desc[i].actual_length;
                        if (unlikely(urb->iso_frame_desc[i].status != 0 &&
                                     urb->iso_frame_desc[i].status !=
-                                                               -EINPROGRESS))
+                                    -EINPROGRESS))
                                ubc->loststatus = urb->iso_frame_desc[i].status;
                        urb->iso_frame_desc[i].status = 0;
                        urb->iso_frame_desc[i].actual_length = 0;
@@ -891,7 +891,7 @@ static void read_iso_callback(struct urb *urb)
                        rc = usb_submit_urb(urb, GFP_ATOMIC);
                        if (unlikely(rc != 0 && rc != -ENODEV)) {
                                dev_err(bcs->cs->dev,
-                                      "could not resubmit isoc read URB: %s\n",
+                                       "could not resubmit isoc read URB: %s\n",
                                        get_usb_rcmsg(rc));
                                dump_urb(DEBUG_ISO, "isoc read", urb);
                                error_hangup(bcs);
@@ -1017,17 +1017,17 @@ static int starturbs(struct bc_state *bcs)
        }
 
        /* keep one URB free, submit the others */
-       for (k = 0; k < BAS_OUTURBS-1; ++k) {
+       for (k = 0; k < BAS_OUTURBS - 1; ++k) {
                dump_urb(DEBUG_ISO, "Initial isoc write", urb);
                rc = usb_submit_urb(ubc->isoouturbs[k].urb, GFP_ATOMIC);
                if (rc != 0)
                        goto error;
        }
        dump_urb(DEBUG_ISO, "Initial isoc write (free)", urb);
-       ubc->isooutfree = &ubc->isoouturbs[BAS_OUTURBS-1];
+       ubc->isooutfree = &ubc->isoouturbs[BAS_OUTURBS - 1];
        ubc->isooutdone = ubc->isooutovfl = NULL;
        return 0;
- error:
+error:
        stopurbs(ubc);
        return rc;
 }
@@ -1229,7 +1229,7 @@ static void write_iso_tasklet(unsigned long data)
                                if (ifd->status ||
                                    ifd->actual_length != ifd->length) {
                                        dev_warn(cs->dev,
-                                           "isoc write: frame %d[%d/%d]: %s\n",
+                                                "isoc write: frame %d[%d/%d]: %s\n",
                                                 i, ifd->actual_length,
                                                 ifd->length,
                                                 get_usb_statmsg(ifd->status));
@@ -1316,7 +1316,7 @@ static void read_iso_tasklet(unsigned long data)
                ubc->isoindone = NULL;
                if (unlikely(ubc->loststatus != -EINPROGRESS)) {
                        dev_warn(cs->dev,
-               "isoc read overrun, URB dropped (status: %s, %d bytes)\n",
+                                "isoc read overrun, URB dropped (status: %s, %d bytes)\n",
                                 get_usb_statmsg(ubc->loststatus),
                                 ubc->isoinlost);
                        ubc->loststatus = -EINPROGRESS;
@@ -1965,7 +1965,7 @@ static int gigaset_write_cmd(struct cardstate *cs, struct cmdbuf_t *cb)
        int rc;
 
        gigaset_dbg_buffer(cs->mstate != MS_LOCKED ?
-                            DEBUG_TRANSCMD : DEBUG_LOCKCMD,
+                          DEBUG_TRANSCMD : DEBUG_LOCKCMD,
                           "CMD Transmit", cb->len, cb->buf);
 
        /* translate "+++" escape sequence sent as a single separate command
@@ -2453,13 +2453,13 @@ static int gigaset_suspend(struct usb_interface *intf, pm_message_t message)
 
        /* wait a bit for blocking conditions to go away */
        rc = wait_event_timeout(ucs->waitqueue,
-                       !(ucs->basstate &
-                         (BS_B1OPEN|BS_B2OPEN|BS_ATRDPEND|BS_ATWRPEND)),
-                       BAS_TIMEOUT*HZ/10);
+                               !(ucs->basstate &
+                                 (BS_B1OPEN | BS_B2OPEN | BS_ATRDPEND | BS_ATWRPEND)),
+                               BAS_TIMEOUT * HZ / 10);
        gig_dbg(DEBUG_SUSPEND, "wait_event_timeout() -> %d", rc);
 
        /* check for conditions preventing suspend */
-       if (ucs->basstate & (BS_B1OPEN|BS_B2OPEN|BS_ATRDPEND|BS_ATWRPEND)) {
+       if (ucs->basstate & (BS_B1OPEN | BS_B2OPEN | BS_ATRDPEND | BS_ATWRPEND)) {
                dev_warn(cs->dev, "cannot suspend:\n");
                if (ucs->basstate & BS_B1OPEN)
                        dev_warn(cs->dev, " B channel 1 open\n");
@@ -2482,7 +2482,7 @@ static int gigaset_suspend(struct usb_interface *intf, pm_message_t message)
                        return rc;
                }
                wait_event_timeout(ucs->waitqueue, !ucs->pending,
-                                  BAS_TIMEOUT*HZ/10);
+                                  BAS_TIMEOUT * HZ / 10);
                /* in case of timeout, proceed anyway */
        }
 
index 6d5ceee..343b5c8 100644 (file)
 #define CapiFacilitySpecificFunctionNotSupported       0x3011
 
 /* missing from capicmd.h */
-#define CAPI_CONNECT_IND_BASELEN       (CAPI_MSG_BASELEN+4+2+8*1)
-#define CAPI_CONNECT_ACTIVE_IND_BASELEN        (CAPI_MSG_BASELEN+4+3*1)
-#define CAPI_CONNECT_B3_IND_BASELEN    (CAPI_MSG_BASELEN+4+1)
-#define CAPI_CONNECT_B3_ACTIVE_IND_BASELEN     (CAPI_MSG_BASELEN+4+1)
-#define CAPI_DATA_B3_REQ_LEN64         (CAPI_MSG_BASELEN+4+4+2+2+2+8)
-#define CAPI_DATA_B3_CONF_LEN          (CAPI_MSG_BASELEN+4+2+2)
-#define CAPI_DISCONNECT_IND_LEN                (CAPI_MSG_BASELEN+4+2)
-#define CAPI_DISCONNECT_B3_IND_BASELEN (CAPI_MSG_BASELEN+4+2+1)
-#define CAPI_FACILITY_CONF_BASELEN     (CAPI_MSG_BASELEN+4+2+2+1)
+#define CAPI_CONNECT_IND_BASELEN       (CAPI_MSG_BASELEN + 4 + 2 + 8 * 1)
+#define CAPI_CONNECT_ACTIVE_IND_BASELEN        (CAPI_MSG_BASELEN + 4 + 3 * 1)
+#define CAPI_CONNECT_B3_IND_BASELEN    (CAPI_MSG_BASELEN + 4 + 1)
+#define CAPI_CONNECT_B3_ACTIVE_IND_BASELEN     (CAPI_MSG_BASELEN + 4 + 1)
+#define CAPI_DATA_B3_REQ_LEN64         (CAPI_MSG_BASELEN + 4 + 4 + 2 + 2 + 2 + 8)
+#define CAPI_DATA_B3_CONF_LEN          (CAPI_MSG_BASELEN + 4 + 2 + 2)
+#define CAPI_DISCONNECT_IND_LEN                (CAPI_MSG_BASELEN + 4 + 2)
+#define CAPI_DISCONNECT_B3_IND_BASELEN (CAPI_MSG_BASELEN + 4 + 2 + 1)
+#define CAPI_FACILITY_CONF_BASELEN     (CAPI_MSG_BASELEN + 4 + 2 + 2 + 1)
 /* most _CONF messages contain only Controller/PLCI/NCCI and Info parameters */
-#define CAPI_STDCONF_LEN               (CAPI_MSG_BASELEN+4+2)
+#define CAPI_STDCONF_LEN               (CAPI_MSG_BASELEN + 4 + 2)
 
 #define CAPI_FACILITY_HANDSET  0x0000
 #define CAPI_FACILITY_DTMF     0x0001
@@ -97,10 +97,10 @@ struct gigaset_capi_ctr {
        /* two _cmsg structures possibly used concurrently: */
        _cmsg hcmsg;    /* for message composition triggered from hardware */
        _cmsg acmsg;    /* for dissection of messages sent from application */
-       u8 bc_buf[MAX_BC_OCTETS+1];
-       u8 hlc_buf[MAX_HLC_OCTETS+1];
-       u8 cgpty_buf[MAX_NUMBER_DIGITS+3];
-       u8 cdpty_buf[MAX_NUMBER_DIGITS+2];
+       u8 bc_buf[MAX_BC_OCTETS + 1];
+       u8 hlc_buf[MAX_HLC_OCTETS + 1];
+       u8 cgpty_buf[MAX_NUMBER_DIGITS + 3];
+       u8 cdpty_buf[MAX_NUMBER_DIGITS + 2];
 };
 
 /* CIP Value table (from CAPI 2.0 standard, ch. 6.1) */
@@ -109,50 +109,50 @@ static struct {
        u8 *hlc;
 } cip2bchlc[] = {
        [1] = { "8090A3", NULL },
-               /* Speech (A-law) */
+       /* Speech (A-law) */
        [2] = { "8890", NULL },
-               /* Unrestricted digital information */
+       /* Unrestricted digital information */
        [3] = { "8990", NULL },
-               /* Restricted digital information */
+       /* Restricted digital information */
        [4] = { "9090A3", NULL },
-               /* 3,1 kHz audio (A-law) */
+       /* 3,1 kHz audio (A-law) */
        [5] = { "9190", NULL },
-               /* 7 kHz audio */
+       /* 7 kHz audio */
        [6] = { "9890", NULL },
-               /* Video */
+       /* Video */
        [7] = { "88C0C6E6", NULL },
-               /* Packet mode */
+       /* Packet mode */
        [8] = { "8890218F", NULL },
-               /* 56 kbit/s rate adaptation */
+       /* 56 kbit/s rate adaptation */
        [9] = { "9190A5", NULL },
-               /* Unrestricted digital information with tones/announcements */
+       /* Unrestricted digital information with tones/announcements */
        [16] = { "8090A3", "9181" },
-               /* Telephony */
+       /* Telephony */
        [17] = { "9090A3", "9184" },
-               /* Group 2/3 facsimile */
+       /* Group 2/3 facsimile */
        [18] = { "8890", "91A1" },
-               /* Group 4 facsimile Class 1 */
+       /* Group 4 facsimile Class 1 */
        [19] = { "8890", "91A4" },
-               /* Teletex service basic and mixed mode
-                  and Group 4 facsimile service Classes II and III */
+       /* Teletex service basic and mixed mode
+          and Group 4 facsimile service Classes II and III */
        [20] = { "8890", "91A8" },
-               /* Teletex service basic and processable mode */
+       /* Teletex service basic and processable mode */
        [21] = { "8890", "91B1" },
-               /* Teletex service basic mode */
+       /* Teletex service basic mode */
        [22] = { "8890", "91B2" },
-               /* International interworking for Videotex */
+       /* International interworking for Videotex */
        [23] = { "8890", "91B5" },
-               /* Telex */
+       /* Telex */
        [24] = { "8890", "91B8" },
-               /* Message Handling Systems in accordance with X.400 */
+       /* Message Handling Systems in accordance with X.400 */
        [25] = { "8890", "91C1" },
-               /* OSI application in accordance with X.200 */
+       /* OSI application in accordance with X.200 */
        [26] = { "9190A5", "9181" },
-               /* 7 kHz telephony */
+       /* 7 kHz telephony */
        [27] = { "9190A5", "916001" },
-               /* Video telephony, first connection */
+       /* Video telephony, first connection */
        [28] = { "8890", "916002" },
-               /* Video telephony, second connection */
+       /* Video telephony, second connection */
 };
 
 /*
@@ -164,7 +164,7 @@ static struct {
  * emit unsupported parameter warning
  */
 static inline void ignore_cstruct_param(struct cardstate *cs, _cstruct param,
-                                      char *msgname, char *paramname)
+                                       char *msgname, char *paramname)
 {
        if (param && *param)
                dev_warn(cs->dev, "%s: ignoring unsupported parameter: %s\n",
@@ -259,15 +259,15 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
                CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l,
                CAPIMSG_CONTROL(data));
        l -= 12;
-       dbgline = kmalloc(3*l, GFP_ATOMIC);
+       dbgline = kmalloc(3 * l, GFP_ATOMIC);
        if (!dbgline)
                return;
        for (i = 0; i < l; i++) {
-               dbgline[3*i] = hex_asc_hi(data[12+i]);
-               dbgline[3*i+1] = hex_asc_lo(data[12+i]);
-               dbgline[3*i+2] = ' ';
+               dbgline[3 * i] = hex_asc_hi(data[12 + i]);
+               dbgline[3 * i + 1] = hex_asc_lo(data[12 + i]);
+               dbgline[3 * i + 2] = ' ';
        }
-       dbgline[3*l-1] = '\0';
+       dbgline[3 * l - 1] = '\0';
        gig_dbg(level, "  %s", dbgline);
        kfree(dbgline);
        if (CAPIMSG_COMMAND(data) == CAPI_DATA_B3 &&
@@ -279,16 +279,16 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
                        return;
                if (l > 64)
                        l = 64; /* arbitrary limit */
-               dbgline = kmalloc(3*l, GFP_ATOMIC);
+               dbgline = kmalloc(3 * l, GFP_ATOMIC);
                if (!dbgline)
                        return;
                data += CAPIMSG_LEN(data);
                for (i = 0; i < l; i++) {
-                       dbgline[3*i] = hex_asc_hi(data[i]);
-                       dbgline[3*i+1] = hex_asc_lo(data[i]);
-                       dbgline[3*i+2] = ' ';
+                       dbgline[3 * i] = hex_asc_hi(data[i]);
+                       dbgline[3 * i + 1] = hex_asc_lo(data[i]);
+                       dbgline[3 * i + 2] = ' ';
                }
-               dbgline[3*l-1] = '\0';
+               dbgline[3 * l - 1] = '\0';
                gig_dbg(level, "  %s", dbgline);
                kfree(dbgline);
        }
@@ -301,7 +301,7 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
 
 static const char *format_ie(const char *ie)
 {
-       static char result[3*MAX_FMT_IE_LEN];
+       static char result[3 * MAX_FMT_IE_LEN];
        int len, count;
        char *pout = result;
 
@@ -310,7 +310,7 @@ static const char *format_ie(const char *ie)
 
        count = len = ie[0];
        if (count > MAX_FMT_IE_LEN)
-               count = MAX_FMT_IE_LEN-1;
+               count = MAX_FMT_IE_LEN - 1;
        while (count--) {
                *pout++ = hex_asc_hi(*++ie);
                *pout++ = hex_asc_lo(*ie);
@@ -403,8 +403,8 @@ void gigaset_skb_sent(struct bc_state *bcs, struct sk_buff *dskb)
                send_data_b3_conf(cs, &iif->ctr, ap->id, CAPIMSG_MSGID(req),
                                  bcs->channel + 1, CAPIMSG_HANDLE_REQ(req),
                                  (flags & ~CAPI_FLAGS_DELIVERY_CONFIRMATION) ?
-                                       CapiFlagsNotSupportedByProtocol :
-                                       CAPI_NOERROR);
+                                 CapiFlagsNotSupportedByProtocol :
+                                 CAPI_NOERROR);
 }
 EXPORT_SYMBOL_GPL(gigaset_skb_sent);
 
@@ -589,7 +589,7 @@ int gigaset_isdn_icall(struct at_state_t *at_state)
                }
                iif->cdpty_buf[0] = i + 1;
                iif->cdpty_buf[1] = 0x80; /* type / numbering plan unknown */
-               memcpy(iif->cdpty_buf+2, at_state->str_var[STR_ZCPN], i);
+               memcpy(iif->cdpty_buf + 2, at_state->str_var[STR_ZCPN], i);
                iif->hcmsg.CalledPartyNumber = iif->cdpty_buf;
                msgsize += iif->hcmsg.CalledPartyNumber[0];
        }
@@ -605,7 +605,7 @@ int gigaset_isdn_icall(struct at_state_t *at_state)
                iif->cgpty_buf[0] = i + 2;
                iif->cgpty_buf[1] = 0x00; /* type / numbering plan unknown */
                iif->cgpty_buf[2] = 0x80; /* pres. allowed, not screened */
-               memcpy(iif->cgpty_buf+3, at_state->str_var[STR_NMBR], i);
+               memcpy(iif->cgpty_buf + 3, at_state->str_var[STR_NMBR], i);
                iif->hcmsg.CallingPartyNumber = iif->cgpty_buf;
                msgsize += iif->hcmsg.CallingPartyNumber[0];
        }
@@ -977,7 +977,7 @@ void gigaset_isdn_stop(struct cardstate *cs)
  * register CAPI application
  */
 static void gigaset_register_appl(struct capi_ctr *ctr, u16 appl,
-                          capi_register_params *rp)
+                                 capi_register_params *rp)
 {
        struct gigaset_capi_ctr *iif
                = container_of(ctr, struct gigaset_capi_ctr, ctr);
@@ -1181,21 +1181,21 @@ static void do_facility_req(struct gigaset_capi_ctr *iif,
                        }
                        if (CAPIMSG_U32(pparam, 4) != 0) {
                                dev_notice(cs->dev,
-       "%s: unsupported supplementary service notification mask 0x%x\n",
-                                  "FACILITY_REQ", CAPIMSG_U32(pparam, 4));
+                                          "%s: unsupported supplementary service notification mask 0x%x\n",
+                                          "FACILITY_REQ", CAPIMSG_U32(pparam, 4));
                                info = CapiFacilitySpecificFunctionNotSupported;
                                confparam[3] = 2;       /* length */
                                capimsg_setu16(confparam, 4,
-                                       CapiSupplementaryServiceNotSupported);
+                                              CapiSupplementaryServiceNotSupported);
                        }
                        info = CapiSuccess;
                        confparam[3] = 2;       /* length */
                        capimsg_setu16(confparam, 4, CapiSuccess);
                        break;
-               /* ToDo: add supported services */
+                       /* ToDo: add supported services */
                default:
                        dev_notice(cs->dev,
-               "%s: unsupported supplementary service function 0x%04x\n",
+                                  "%s: unsupported supplementary service function 0x%04x\n",
                                   "FACILITY_REQ", function);
                        info = CapiFacilitySpecificFunctionNotSupported;
                        /* Supplementary Service specific parameter */
@@ -1318,7 +1318,7 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
        cmsg->adr.adrPLCI |= (bcs->channel + 1) << 8;
 
        /* build command table */
-       commands = kzalloc(AT_NUM*(sizeof *commands), GFP_KERNEL);
+       commands = kzalloc(AT_NUM * (sizeof *commands), GFP_KERNEL);
        if (!commands)
                goto oom;
 
@@ -1353,10 +1353,10 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
        commands[AT_TYPE] = kstrdup(s, GFP_KERNEL);
        if (!commands[AT_TYPE])
                goto oom;
-       commands[AT_DIAL] = kmalloc(l+3, GFP_KERNEL);
+       commands[AT_DIAL] = kmalloc(l + 3, GFP_KERNEL);
        if (!commands[AT_DIAL])
                goto oom;
-       snprintf(commands[AT_DIAL], l+3, "D%.*s\r", l, pp);
+       snprintf(commands[AT_DIAL], l + 3, "D%.*s\r", l, pp);
 
        /* encode parameter: Calling party number */
        pp = cmsg->CallingPartyNumber;
@@ -1406,10 +1406,10 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
 
                if (l) {
                        /* number */
-                       commands[AT_MSN] = kmalloc(l+8, GFP_KERNEL);
+                       commands[AT_MSN] = kmalloc(l + 8, GFP_KERNEL);
                        if (!commands[AT_MSN])
                                goto oom;
-                       snprintf(commands[AT_MSN], l+8, "^SMSN=%*s\r", l, pp);
+                       snprintf(commands[AT_MSN], l + 8, "^SMSN=%*s\r", l, pp);
                }
        }
 
@@ -1430,13 +1430,13 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
 
        /* determine lengths */
        if (cmsg->BC && cmsg->BC[0])            /* BC specified explicitly */
-               lbc = 2*cmsg->BC[0];
+               lbc = 2 * cmsg->BC[0];
        else if (cip2bchlc[cmsg->CIPValue].bc)  /* BC derived from CIP */
                lbc = strlen(cip2bchlc[cmsg->CIPValue].bc);
        else                                    /* no BC */
                lbc = 0;
        if (cmsg->HLC && cmsg->HLC[0])          /* HLC specified explicitly */
-               lhlc = 2*cmsg->HLC[0];
+               lhlc = 2 * cmsg->HLC[0];
        else if (cip2bchlc[cmsg->CIPValue].hlc) /* HLC derived from CIP */
                lhlc = strlen(cip2bchlc[cmsg->CIPValue].hlc);
        else                                    /* no HLC */
@@ -1481,7 +1481,7 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
        if (cmsg->BProtocol == CAPI_DEFAULT) {
                bcs->proto2 = L2_HDLC;
                dev_warn(cs->dev,
-                   "B2 Protocol X.75 SLP unsupported, using Transparent\n");
+                        "B2 Protocol X.75 SLP unsupported, using Transparent\n");
        } else {
                switch (cmsg->B1protocol) {
                case 0:
@@ -1492,24 +1492,24 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
                        break;
                default:
                        dev_warn(cs->dev,
-                           "B1 Protocol %u unsupported, using Transparent\n",
+                                "B1 Protocol %u unsupported, using Transparent\n",
                                 cmsg->B1protocol);
                        bcs->proto2 = L2_VOICE;
                }
                if (cmsg->B2protocol != 1)
                        dev_warn(cs->dev,
-                           "B2 Protocol %u unsupported, using Transparent\n",
+                                "B2 Protocol %u unsupported, using Transparent\n",
                                 cmsg->B2protocol);
                if (cmsg->B3protocol != 0)
                        dev_warn(cs->dev,
-                           "B3 Protocol %u unsupported, using Transparent\n",
+                                "B3 Protocol %u unsupported, using Transparent\n",
                                 cmsg->B3protocol);
                ignore_cstruct_param(cs, cmsg->B1configuration,
-                                       "CONNECT_REQ", "B1 Configuration");
+                                    "CONNECT_REQ", "B1 Configuration");
                ignore_cstruct_param(cs, cmsg->B2configuration,
-                                       "CONNECT_REQ", "B2 Configuration");
+                                    "CONNECT_REQ", "B2 Configuration");
                ignore_cstruct_param(cs, cmsg->B3configuration,
-                                       "CONNECT_REQ", "B3 Configuration");
+                                    "CONNECT_REQ", "B3 Configuration");
        }
        commands[AT_PROTO] = kmalloc(9, GFP_KERNEL);
        if (!commands[AT_PROTO])
@@ -1518,20 +1518,20 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
 
        /* ToDo: check/encode remaining parameters */
        ignore_cstruct_param(cs, cmsg->CalledPartySubaddress,
-                                       "CONNECT_REQ", "Called pty subaddr");
+                            "CONNECT_REQ", "Called pty subaddr");
        ignore_cstruct_param(cs, cmsg->CallingPartySubaddress,
-                                       "CONNECT_REQ", "Calling pty subaddr");
+                            "CONNECT_REQ", "Calling pty subaddr");
        ignore_cstruct_param(cs, cmsg->LLC,
-                                       "CONNECT_REQ", "LLC");
+                            "CONNECT_REQ", "LLC");
        if (cmsg->AdditionalInfo != CAPI_DEFAULT) {
                ignore_cstruct_param(cs, cmsg->BChannelinformation,
-                                       "CONNECT_REQ", "B Channel Information");
+                                    "CONNECT_REQ", "B Channel Information");
                ignore_cstruct_param(cs, cmsg->Keypadfacility,
-                                       "CONNECT_REQ", "Keypad Facility");
+                                    "CONNECT_REQ", "Keypad Facility");
                ignore_cstruct_param(cs, cmsg->Useruserdata,
-                                       "CONNECT_REQ", "User-User Data");
+                                    "CONNECT_REQ", "User-User Data");
                ignore_cstruct_param(cs, cmsg->Facilitydataarray,
-                                       "CONNECT_REQ", "Facility Data Array");
+                                    "CONNECT_REQ", "Facility Data Array");
        }
 
        /* encode parameter: B channel to use */
@@ -1602,7 +1602,7 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
                        if (oap != ap) {
                                spin_unlock_irqrestore(&bcs->aplock, flags);
                                send_disconnect_ind(bcs, oap,
-                                       CapiCallGivenToOtherApplication);
+                                                   CapiCallGivenToOtherApplication);
                                spin_lock_irqsave(&bcs->aplock, flags);
                        }
                }
@@ -1619,7 +1619,7 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
                if (cmsg->BProtocol == CAPI_DEFAULT) {
                        bcs->proto2 = L2_HDLC;
                        dev_warn(cs->dev,
-               "B2 Protocol X.75 SLP unsupported, using Transparent\n");
+                                "B2 Protocol X.75 SLP unsupported, using Transparent\n");
                } else {
                        switch (cmsg->B1protocol) {
                        case 0:
@@ -1630,46 +1630,46 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
                                break;
                        default:
                                dev_warn(cs->dev,
-                       "B1 Protocol %u unsupported, using Transparent\n",
+                                        "B1 Protocol %u unsupported, using Transparent\n",
                                         cmsg->B1protocol);
                                bcs->proto2 = L2_VOICE;
                        }
                        if (cmsg->B2protocol != 1)
                                dev_warn(cs->dev,
-                       "B2 Protocol %u unsupported, using Transparent\n",
+                                        "B2 Protocol %u unsupported, using Transparent\n",
                                         cmsg->B2protocol);
                        if (cmsg->B3protocol != 0)
                                dev_warn(cs->dev,
-                       "B3 Protocol %u unsupported, using Transparent\n",
+                                        "B3 Protocol %u unsupported, using Transparent\n",
                                         cmsg->B3protocol);
                        ignore_cstruct_param(cs, cmsg->B1configuration,
-                                       "CONNECT_RESP", "B1 Configuration");
+                                            "CONNECT_RESP", "B1 Configuration");
                        ignore_cstruct_param(cs, cmsg->B2configuration,
-                                       "CONNECT_RESP", "B2 Configuration");
+                                            "CONNECT_RESP", "B2 Configuration");
                        ignore_cstruct_param(cs, cmsg->B3configuration,
-                                       "CONNECT_RESP", "B3 Configuration");
+                                            "CONNECT_RESP", "B3 Configuration");
                }
 
                /* ToDo: check/encode remaining parameters */
                ignore_cstruct_param(cs, cmsg->ConnectedNumber,
-                                       "CONNECT_RESP", "Connected Number");
+                                    "CONNECT_RESP", "Connected Number");
                ignore_cstruct_param(cs, cmsg->ConnectedSubaddress,
-                                       "CONNECT_RESP", "Connected Subaddress");
+                                    "CONNECT_RESP", "Connected Subaddress");
                ignore_cstruct_param(cs, cmsg->LLC,
-                                       "CONNECT_RESP", "LLC");
+                                    "CONNECT_RESP", "LLC");
                if (cmsg->AdditionalInfo != CAPI_DEFAULT) {
                        ignore_cstruct_param(cs, cmsg->BChannelinformation,
-                                       "CONNECT_RESP", "BChannel Information");
+                                            "CONNECT_RESP", "BChannel Information");
                        ignore_cstruct_param(cs, cmsg->Keypadfacility,
-                                       "CONNECT_RESP", "Keypad Facility");
+                                            "CONNECT_RESP", "Keypad Facility");
                        ignore_cstruct_param(cs, cmsg->Useruserdata,
-                                       "CONNECT_RESP", "User-User Data");
+                                            "CONNECT_RESP", "User-User Data");
                        ignore_cstruct_param(cs, cmsg->Facilitydataarray,
-                                       "CONNECT_RESP", "Facility Data Array");
+                                            "CONNECT_RESP", "Facility Data Array");
                }
 
                /* Accept call */
-               if (!gigaset_add_event(cs, &cs->bcs[channel-1].at_state,
+               if (!gigaset_add_event(cs, &cs->bcs[channel - 1].at_state,
                                       EV_ACCEPT, NULL, 0, NULL))
                        return;
                gigaset_schedule_event(cs);
@@ -1712,7 +1712,7 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
                        if (oap != ap) {
                                spin_unlock_irqrestore(&bcs->aplock, flags);
                                send_disconnect_ind(bcs, oap,
-                                       CapiCallGivenToOtherApplication);
+                                                   CapiCallGivenToOtherApplication);
                                spin_lock_irqsave(&bcs->aplock, flags);
                        }
                }
@@ -1723,7 +1723,7 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
                /* reject call - will trigger DISCONNECT_IND for this app */
                dev_info(cs->dev, "%s: Reject=%x\n",
                         "CONNECT_RESP", cmsg->Reject);
-               if (!gigaset_add_event(cs, &cs->bcs[channel-1].at_state,
+               if (!gigaset_add_event(cs, &cs->bcs[channel - 1].at_state,
                                       EV_HUP, NULL, 0, NULL))
                        return;
                gigaset_schedule_event(cs);
@@ -1756,7 +1756,7 @@ static void do_connect_b3_req(struct gigaset_capi_ctr *iif,
                send_conf(iif, ap, skb, CapiIllContrPlciNcci);
                return;
        }
-       bcs = &cs->bcs[channel-1];
+       bcs = &cs->bcs[channel - 1];
 
        /* mark logical connection active */
        bcs->apconnstate = APCONN_ACTIVE;
@@ -1767,7 +1767,7 @@ static void do_connect_b3_req(struct gigaset_capi_ctr *iif,
        /* NCPI parameter: not applicable for B3 Transparent */
        ignore_cstruct_param(cs, cmsg->NCPI, "CONNECT_B3_REQ", "NCPI");
        send_conf(iif, ap, skb, (cmsg->NCPI && cmsg->NCPI[0]) ?
-                               CapiNcpiNotSupportedByProtocol : CapiSuccess);
+                 CapiNcpiNotSupportedByProtocol : CapiSuccess);
 }
 
 /*
@@ -1801,7 +1801,7 @@ static void do_connect_b3_resp(struct gigaset_capi_ctr *iif,
                dev_kfree_skb_any(skb);
                return;
        }
-       bcs = &cs->bcs[channel-1];
+       bcs = &cs->bcs[channel - 1];
 
        if (cmsg->Reject) {
                /* Reject: clear B3 connect received flag */
@@ -1905,7 +1905,7 @@ static void do_disconnect_req(struct gigaset_capi_ctr *iif,
                        return;
                }
                capi_cmsg2message(b3cmsg,
-                       __skb_put(b3skb, CAPI_DISCONNECT_B3_IND_BASELEN));
+                                 __skb_put(b3skb, CAPI_DISCONNECT_B3_IND_BASELEN));
                kfree(b3cmsg);
                capi_ctr_handle_message(&iif->ctr, ap->id, b3skb);
        }
@@ -1947,7 +1947,7 @@ static void do_disconnect_b3_req(struct gigaset_capi_ctr *iif,
                send_conf(iif, ap, skb, CapiIllContrPlciNcci);
                return;
        }
-       bcs = &cs->bcs[channel-1];
+       bcs = &cs->bcs[channel - 1];
 
        /* reject if logical connection not active */
        if (bcs->apconnstate < APCONN_ACTIVE) {
@@ -1965,9 +1965,9 @@ static void do_disconnect_b3_req(struct gigaset_capi_ctr *iif,
 
        /* NCPI parameter: not applicable for B3 Transparent */
        ignore_cstruct_param(cs, cmsg->NCPI,
-                               "DISCONNECT_B3_REQ", "NCPI");
+                            "DISCONNECT_B3_REQ", "NCPI");
        send_conf(iif, ap, skb, (cmsg->NCPI && cmsg->NCPI[0]) ?
-                               CapiNcpiNotSupportedByProtocol : CapiSuccess);
+                 CapiNcpiNotSupportedByProtocol : CapiSuccess);
 }
 
 /*
@@ -1997,7 +1997,7 @@ static void do_data_b3_req(struct gigaset_capi_ctr *iif,
                send_conf(iif, ap, skb, CapiIllContrPlciNcci);
                return;
        }
-       bcs = &cs->bcs[channel-1];
+       bcs = &cs->bcs[channel - 1];
        if (msglen != CAPI_DATA_B3_REQ_LEN && msglen != CAPI_DATA_B3_REQ_LEN64)
                dev_notice(cs->dev, "%s: unexpected length %d\n",
                           "DATA_B3_REQ", msglen);
@@ -2040,7 +2040,7 @@ static void do_data_b3_req(struct gigaset_capi_ctr *iif,
        if (!(flags & CAPI_FLAGS_DELIVERY_CONFIRMATION))
                send_data_b3_conf(cs, &iif->ctr, ap->id, msgid, channel, handle,
                                  flags ? CapiFlagsNotSupportedByProtocol
-                                       : CAPI_NOERROR);
+                                 : CAPI_NOERROR);
 }
 
 /*
@@ -2258,11 +2258,11 @@ static int gigaset_proc_show(struct seq_file *m, void *v)
 
        seq_printf(m, "%-16s %s\n", "name", ctr->name);
        seq_printf(m, "%-16s %s %s\n", "dev",
-                       dev_driver_string(cs->dev), dev_name(cs->dev));
+                  dev_driver_string(cs->dev), dev_name(cs->dev));
        seq_printf(m, "%-16s %d\n", "id", cs->myid);
        if (cs->gotfwver)
                seq_printf(m, "%-16s %d.%d.%d.%d\n", "firmware",
-                       cs->fwver[0], cs->fwver[1], cs->fwver[2], cs->fwver[3]);
+                          cs->fwver[0], cs->fwver[1], cs->fwver[2], cs->fwver[3]);
        seq_printf(m, "%-16s %d\n", "channels", cs->channels);
        seq_printf(m, "%-16s %s\n", "onechannel", cs->onechannel ? "yes" : "no");
 
@@ -2315,13 +2315,13 @@ static int gigaset_proc_show(struct seq_file *m, void *v)
 
        for (i = 0; i < cs->channels; i++) {
                seq_printf(m, "[%d]%-13s %d\n", i, "corrupted",
-                               cs->bcs[i].corrupted);
+                          cs->bcs[i].corrupted);
                seq_printf(m, "[%d]%-13s %d\n", i, "trans_down",
-                               cs->bcs[i].trans_down);
+                          cs->bcs[i].trans_down);
                seq_printf(m, "[%d]%-13s %d\n", i, "trans_up",
-                               cs->bcs[i].trans_up);
+                          cs->bcs[i].trans_up);
                seq_printf(m, "[%d]%-13s %d\n", i, "chstate",
-                               cs->bcs[i].chstate);
+                          cs->bcs[i].chstate);
                switch (cs->bcs[i].proto2) {
                case L2_BITSYNC:
                        s = "bitsync";
index db621db..e55aabf 100644 (file)
@@ -30,7 +30,7 @@
 /* Module parameters */
 int gigaset_debuglevel;
 EXPORT_SYMBOL_GPL(gigaset_debuglevel);
-module_param_named(debug, gigaset_debuglevel, int, S_IRUGO|S_IWUSR);
+module_param_named(debug, gigaset_debuglevel, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(debug, "debug level");
 
 /* driver state flags */
@@ -123,7 +123,7 @@ int gigaset_enterconfigmode(struct cardstate *cs)
                if (r < 0)
                        goto error;
        }
-       r = setflags(cs, TIOCM_RTS|TIOCM_DTR, 800);
+       r = setflags(cs, TIOCM_RTS | TIOCM_DTR, 800);
        if (r < 0)
                goto error;
 
@@ -131,8 +131,8 @@ int gigaset_enterconfigmode(struct cardstate *cs)
 
 error:
        dev_err(cs->dev, "error %d on setuartbits\n", -r);
-       cs->control_state = TIOCM_RTS|TIOCM_DTR;
-       cs->ops->set_modem_ctrl(cs, 0, TIOCM_RTS|TIOCM_DTR);
+       cs->control_state = TIOCM_RTS | TIOCM_DTR;
+       cs->ops->set_modem_ctrl(cs, 0, TIOCM_RTS | TIOCM_DTR);
 
        return -1;
 }
@@ -591,7 +591,7 @@ int gigaset_fill_inbuf(struct inbuf_t *inbuf, const unsigned char *src,
                if (head > tail)
                        n = head - 1 - tail;
                else if (head == 0)
-                       n = (RBUFSIZE-1) - tail;
+                       n = (RBUFSIZE - 1) - tail;
                else
                        n = RBUFSIZE - tail;
                if (!n) {
@@ -911,10 +911,10 @@ int gigaset_start(struct cardstate *cs)
        spin_unlock_irqrestore(&cs->lock, flags);
 
        if (cs->mstate != MS_LOCKED) {
-               cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR|TIOCM_RTS);
+               cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR | TIOCM_RTS);
                cs->ops->baud_rate(cs, B115200);
                cs->ops->set_line_ctrl(cs, CS8);
-               cs->control_state = TIOCM_DTR|TIOCM_RTS;
+               cs->control_state = TIOCM_DTR | TIOCM_RTS;
        }
 
        cs->waiting = 1;
index 6d12623..624a825 100644 (file)
@@ -153,104 +153,104 @@ struct reply_t gigaset_tab_nocid[] =
  * action, command */
 
 /* initialize device, set cid mode if possible */
-{RSP_INIT,      -1,  -1, SEQ_INIT,             100,  1, {ACT_TIMEOUT} },
+       {RSP_INIT,       -1,  -1, SEQ_INIT,             100,  1, {ACT_TIMEOUT} },
 
-{EV_TIMEOUT,   100, 100, -1,                   101,  3, {0},   "Z\r"},
-{RSP_OK,       101, 103, -1,                   120,  5, {ACT_GETSTRING},
-                                                               "+GMR\r"},
+       {EV_TIMEOUT,    100, 100, -1,                   101,  3, {0},   "Z\r"},
+       {RSP_OK,        101, 103, -1,                   120,  5, {ACT_GETSTRING},
+        "+GMR\r"},
 
-{EV_TIMEOUT,   101, 101, -1,                   102,  5, {0},   "Z\r"},
-{RSP_ERROR,    101, 101, -1,                   102,  5, {0},   "Z\r"},
+       {EV_TIMEOUT,    101, 101, -1,                   102,  5, {0},   "Z\r"},
+       {RSP_ERROR,     101, 101, -1,                   102,  5, {0},   "Z\r"},
 
-{EV_TIMEOUT,   102, 102, -1,                   108,  5, {ACT_SETDLE1},
-                                                               "^SDLE=0\r"},
-{RSP_OK,       108, 108, -1,                   104, -1},
-{RSP_ZDLE,     104, 104,  0,                   103,  5, {0},   "Z\r"},
-{EV_TIMEOUT,   104, 104, -1,                     0,  0, {ACT_FAILINIT} },
-{RSP_ERROR,    108, 108, -1,                     0,  0, {ACT_FAILINIT} },
+       {EV_TIMEOUT,    102, 102, -1,                   108,  5, {ACT_SETDLE1},
+        "^SDLE=0\r"},
+       {RSP_OK,        108, 108, -1,                   104, -1},
+       {RSP_ZDLE,      104, 104,  0,                   103,  5, {0},   "Z\r"},
+       {EV_TIMEOUT,    104, 104, -1,                     0,  0, {ACT_FAILINIT} },
+       {RSP_ERROR,     108, 108, -1,                     0,  0, {ACT_FAILINIT} },
 
-{EV_TIMEOUT,   108, 108, -1,                   105,  2, {ACT_SETDLE0,
-                                                         ACT_HUPMODEM,
-                                                         ACT_TIMEOUT} },
-{EV_TIMEOUT,   105, 105, -1,                   103,  5, {0},   "Z\r"},
+       {EV_TIMEOUT,    108, 108, -1,                   105,  2, {ACT_SETDLE0,
+                                                                 ACT_HUPMODEM,
+                                                                 ACT_TIMEOUT} },
+       {EV_TIMEOUT,    105, 105, -1,                   103,  5, {0},   "Z\r"},
 
-{RSP_ERROR,    102, 102, -1,                   107,  5, {0},   "^GETPRE\r"},
-{RSP_OK,       107, 107, -1,                     0,  0, {ACT_CONFIGMODE} },
-{RSP_ERROR,    107, 107, -1,                     0,  0, {ACT_FAILINIT} },
-{EV_TIMEOUT,   107, 107, -1,                     0,  0, {ACT_FAILINIT} },
+       {RSP_ERROR,     102, 102, -1,                   107,  5, {0},   "^GETPRE\r"},
+       {RSP_OK,        107, 107, -1,                     0,  0, {ACT_CONFIGMODE} },
+       {RSP_ERROR,     107, 107, -1,                     0,  0, {ACT_FAILINIT} },
+       {EV_TIMEOUT,    107, 107, -1,                     0,  0, {ACT_FAILINIT} },
 
-{RSP_ERROR,    103, 103, -1,                     0,  0, {ACT_FAILINIT} },
-{EV_TIMEOUT,   103, 103, -1,                     0,  0, {ACT_FAILINIT} },
+       {RSP_ERROR,     103, 103, -1,                     0,  0, {ACT_FAILINIT} },
+       {EV_TIMEOUT,    103, 103, -1,                     0,  0, {ACT_FAILINIT} },
 
-{RSP_STRING,   120, 120, -1,                   121, -1, {ACT_SETVER} },
+       {RSP_STRING,    120, 120, -1,                   121, -1, {ACT_SETVER} },
 
-{EV_TIMEOUT,   120, 121, -1,                     0,  0, {ACT_FAILVER,
-                                                         ACT_INIT} },
-{RSP_ERROR,    120, 121, -1,                     0,  0, {ACT_FAILVER,
-                                                         ACT_INIT} },
-{RSP_OK,       121, 121, -1,                     0,  0, {ACT_GOTVER,
-                                                         ACT_INIT} },
+       {EV_TIMEOUT,    120, 121, -1,                     0,  0, {ACT_FAILVER,
+                                                                 ACT_INIT} },
+       {RSP_ERROR,     120, 121, -1,                     0,  0, {ACT_FAILVER,
+                                                                 ACT_INIT} },
+       {RSP_OK,        121, 121, -1,                     0,  0, {ACT_GOTVER,
+                                                                 ACT_INIT} },
 
 /* leave dle mode */
-{RSP_INIT,       0,   0, SEQ_DLE0,             201,  5, {0},   "^SDLE=0\r"},
-{RSP_OK,       201, 201, -1,                   202, -1},
-{RSP_ZDLE,     202, 202,  0,                     0,  0, {ACT_DLE0} },
-{RSP_NODEV,    200, 249, -1,                     0,  0, {ACT_FAKEDLE0} },
-{RSP_ERROR,    200, 249, -1,                     0,  0, {ACT_FAILDLE0} },
-{EV_TIMEOUT,   200, 249, -1,                     0,  0, {ACT_FAILDLE0} },
+       {RSP_INIT,        0,   0, SEQ_DLE0,             201,  5, {0},   "^SDLE=0\r"},
+       {RSP_OK,        201, 201, -1,                   202, -1},
+       {RSP_ZDLE,      202, 202,  0,                     0,  0, {ACT_DLE0} },
+       {RSP_NODEV,     200, 249, -1,                     0,  0, {ACT_FAKEDLE0} },
+       {RSP_ERROR,     200, 249, -1,                     0,  0, {ACT_FAILDLE0} },
+       {EV_TIMEOUT,    200, 249, -1,                     0,  0, {ACT_FAILDLE0} },
 
 /* enter dle mode */
-{RSP_INIT,       0,   0, SEQ_DLE1,             251,  5, {0},   "^SDLE=1\r"},
-{RSP_OK,       251, 251, -1,                   252, -1},
-{RSP_ZDLE,     252, 252,  1,                     0,  0, {ACT_DLE1} },
-{RSP_ERROR,    250, 299, -1,                     0,  0, {ACT_FAILDLE1} },
-{EV_TIMEOUT,   250, 299, -1,                     0,  0, {ACT_FAILDLE1} },
+       {RSP_INIT,        0,   0, SEQ_DLE1,             251,  5, {0},   "^SDLE=1\r"},
+       {RSP_OK,        251, 251, -1,                   252, -1},
+       {RSP_ZDLE,      252, 252,  1,                     0,  0, {ACT_DLE1} },
+       {RSP_ERROR,     250, 299, -1,                     0,  0, {ACT_FAILDLE1} },
+       {EV_TIMEOUT,    250, 299, -1,                     0,  0, {ACT_FAILDLE1} },
 
 /* incoming call */
-{RSP_RING,      -1,  -1, -1,                    -1, -1, {ACT_RING} },
+       {RSP_RING,       -1,  -1, -1,                    -1, -1, {ACT_RING} },
 
 /* get cid */
-{RSP_INIT,       0,   0, SEQ_CID,              301,  5, {0},   "^SGCI?\r"},
-{RSP_OK,       301, 301, -1,                   302, -1},
-{RSP_ZGCI,     302, 302, -1,                     0,  0, {ACT_CID} },
-{RSP_ERROR,    301, 349, -1,                     0,  0, {ACT_FAILCID} },
-{EV_TIMEOUT,   301, 349, -1,                     0,  0, {ACT_FAILCID} },
+       {RSP_INIT,        0,   0, SEQ_CID,              301,  5, {0},   "^SGCI?\r"},
+       {RSP_OK,        301, 301, -1,                   302, -1},
+       {RSP_ZGCI,      302, 302, -1,                     0,  0, {ACT_CID} },
+       {RSP_ERROR,     301, 349, -1,                     0,  0, {ACT_FAILCID} },
+       {EV_TIMEOUT,    301, 349, -1,                     0,  0, {ACT_FAILCID} },
 
 /* enter cid mode */
-{RSP_INIT,       0,   0, SEQ_CIDMODE,          150,  5, {0},   "^SGCI=1\r"},
-{RSP_OK,       150, 150, -1,                     0,  0, {ACT_CMODESET} },
-{RSP_ERROR,    150, 150, -1,                     0,  0, {ACT_FAILCMODE} },
-{EV_TIMEOUT,   150, 150, -1,                     0,  0, {ACT_FAILCMODE} },
+       {RSP_INIT,        0,   0, SEQ_CIDMODE,          150,  5, {0},   "^SGCI=1\r"},
+       {RSP_OK,        150, 150, -1,                     0,  0, {ACT_CMODESET} },
+       {RSP_ERROR,     150, 150, -1,                     0,  0, {ACT_FAILCMODE} },
+       {EV_TIMEOUT,    150, 150, -1,                     0,  0, {ACT_FAILCMODE} },
 
 /* leave cid mode */
-{RSP_INIT,       0,   0, SEQ_UMMODE,           160,  5, {0},   "Z\r"},
-{RSP_OK,       160, 160, -1,                     0,  0, {ACT_UMODESET} },
-{RSP_ERROR,    160, 160, -1,                     0,  0, {ACT_FAILUMODE} },
-{EV_TIMEOUT,   160, 160, -1,                     0,  0, {ACT_FAILUMODE} },
+       {RSP_INIT,        0,   0, SEQ_UMMODE,           160,  5, {0},   "Z\r"},
+       {RSP_OK,        160, 160, -1,                     0,  0, {ACT_UMODESET} },
+       {RSP_ERROR,     160, 160, -1,                     0,  0, {ACT_FAILUMODE} },
+       {EV_TIMEOUT,    160, 160, -1,                     0,  0, {ACT_FAILUMODE} },
 
 /* abort getting cid */
-{RSP_INIT,       0,   0, SEQ_NOCID,              0,  0, {ACT_ABORTCID} },
+       {RSP_INIT,        0,   0, SEQ_NOCID,              0,  0, {ACT_ABORTCID} },
 
 /* reset */
-{RSP_INIT,       0,   0, SEQ_SHUTDOWN,         504,  5, {0},   "Z\r"},
-{RSP_OK,       504, 504, -1,                     0,  0, {ACT_SDOWN} },
-{RSP_ERROR,    501, 599, -1,                     0,  0, {ACT_FAILSDOWN} },
-{EV_TIMEOUT,   501, 599, -1,                     0,  0, {ACT_FAILSDOWN} },
-{RSP_NODEV,    501, 599, -1,                     0,  0, {ACT_FAKESDOWN} },
-
-{EV_PROC_CIDMODE, -1, -1, -1,                   -1, -1, {ACT_PROC_CIDMODE} },
-{EV_IF_LOCK,    -1,  -1, -1,                    -1, -1, {ACT_IF_LOCK} },
-{EV_IF_VER,     -1,  -1, -1,                    -1, -1, {ACT_IF_VER} },
-{EV_START,      -1,  -1, -1,                    -1, -1, {ACT_START} },
-{EV_STOP,       -1,  -1, -1,                    -1, -1, {ACT_STOP} },
-{EV_SHUTDOWN,   -1,  -1, -1,                    -1, -1, {ACT_SHUTDOWN} },
+       {RSP_INIT,        0,   0, SEQ_SHUTDOWN,         504,  5, {0},   "Z\r"},
+       {RSP_OK,        504, 504, -1,                     0,  0, {ACT_SDOWN} },
+       {RSP_ERROR,     501, 599, -1,                     0,  0, {ACT_FAILSDOWN} },
+       {EV_TIMEOUT,    501, 599, -1,                     0,  0, {ACT_FAILSDOWN} },
+       {RSP_NODEV,     501, 599, -1,                     0,  0, {ACT_FAKESDOWN} },
+
+       {EV_PROC_CIDMODE, -1, -1, -1,                    -1, -1, {ACT_PROC_CIDMODE} },
+       {EV_IF_LOCK,     -1,  -1, -1,                    -1, -1, {ACT_IF_LOCK} },
+       {EV_IF_VER,      -1,  -1, -1,                    -1, -1, {ACT_IF_VER} },
+       {EV_START,       -1,  -1, -1,                    -1, -1, {ACT_START} },
+       {EV_STOP,        -1,  -1, -1,                    -1, -1, {ACT_STOP} },
+       {EV_SHUTDOWN,    -1,  -1, -1,                    -1, -1, {ACT_SHUTDOWN} },
 
 /* misc. */
-{RSP_ERROR,     -1,  -1, -1,                    -1, -1, {ACT_ERROR} },
-{RSP_ZCAU,      -1,  -1, -1,                    -1, -1, {ACT_ZCAU} },
-{RSP_NONE,      -1,  -1, -1,                    -1, -1, {ACT_DEBUG} },
-{RSP_ANY,       -1,  -1, -1,                    -1, -1, {ACT_WARN} },
-{RSP_LAST}
+       {RSP_ERROR,      -1,  -1, -1,                    -1, -1, {ACT_ERROR} },
+       {RSP_ZCAU,       -1,  -1, -1,                    -1, -1, {ACT_ZCAU} },
+       {RSP_NONE,       -1,  -1, -1,                    -1, -1, {ACT_DEBUG} },
+       {RSP_ANY,        -1,  -1, -1,                    -1, -1, {ACT_WARN} },
+       {RSP_LAST}
 };
 
 /* 600: start dialing, 650: dial in progress, 800: connection is up, 700: ring,
@@ -261,91 +261,91 @@ struct reply_t gigaset_tab_cid[] =
  * action, command */
 
 /* dial */
-{EV_DIAL,       -1,  -1, -1,                    -1, -1, {ACT_DIAL} },
-{RSP_INIT,       0,   0, SEQ_DIAL,             601,  5, {ACT_CMD+AT_BC} },
-{RSP_OK,       601, 601, -1,                   603,  5, {ACT_CMD+AT_PROTO} },
-{RSP_OK,       603, 603, -1,                   604,  5, {ACT_CMD+AT_TYPE} },
-{RSP_OK,       604, 604, -1,                   605,  5, {ACT_CMD+AT_MSN} },
-{RSP_NULL,     605, 605, -1,                   606,  5, {ACT_CMD+AT_CLIP} },
-{RSP_OK,       605, 605, -1,                   606,  5, {ACT_CMD+AT_CLIP} },
-{RSP_NULL,     606, 606, -1,                   607,  5, {ACT_CMD+AT_ISO} },
-{RSP_OK,       606, 606, -1,                   607,  5, {ACT_CMD+AT_ISO} },
-{RSP_OK,       607, 607, -1,                   608,  5, {0},   "+VLS=17\r"},
-{RSP_OK,       608, 608, -1,                   609, -1},
-{RSP_ZSAU,     609, 609, ZSAU_PROCEEDING,      610,  5, {ACT_CMD+AT_DIAL} },
-{RSP_OK,       610, 610, -1,                   650,  0, {ACT_DIALING} },
-
-{RSP_ERROR,    601, 610, -1,                     0,  0, {ACT_ABORTDIAL} },
-{EV_TIMEOUT,   601, 610, -1,                     0,  0, {ACT_ABORTDIAL} },
+       {EV_DIAL,        -1,  -1, -1,                    -1, -1, {ACT_DIAL} },
+       {RSP_INIT,        0,   0, SEQ_DIAL,             601,  5, {ACT_CMD + AT_BC} },
+       {RSP_OK,        601, 601, -1,                   603,  5, {ACT_CMD + AT_PROTO} },
+       {RSP_OK,        603, 603, -1,                   604,  5, {ACT_CMD + AT_TYPE} },
+       {RSP_OK,        604, 604, -1,                   605,  5, {ACT_CMD + AT_MSN} },
+       {RSP_NULL,      605, 605, -1,                   606,  5, {ACT_CMD + AT_CLIP} },
+       {RSP_OK,        605, 605, -1,                   606,  5, {ACT_CMD + AT_CLIP} },
+       {RSP_NULL,      606, 606, -1,                   607,  5, {ACT_CMD + AT_ISO} },
+       {RSP_OK,        606, 606, -1,                   607,  5, {ACT_CMD + AT_ISO} },
+       {RSP_OK,        607, 607, -1,                   608,  5, {0},   "+VLS=17\r"},
+       {RSP_OK,        608, 608, -1,                   609, -1},
+       {RSP_ZSAU,      609, 609, ZSAU_PROCEEDING,      610,  5, {ACT_CMD + AT_DIAL} },
+       {RSP_OK,        610, 610, -1,                   650,  0, {ACT_DIALING} },
+
+       {RSP_ERROR,     601, 610, -1,                     0,  0, {ACT_ABORTDIAL} },
+       {EV_TIMEOUT,    601, 610, -1,                     0,  0, {ACT_ABORTDIAL} },
 
 /* optional dialing responses */
-{EV_BC_OPEN,   650, 650, -1,                   651, -1},
-{RSP_ZVLS,     609, 651, 17,                    -1, -1, {ACT_DEBUG} },
-{RSP_ZCTP,     610, 651, -1,                    -1, -1, {ACT_DEBUG} },
-{RSP_ZCPN,     610, 651, -1,                    -1, -1, {ACT_DEBUG} },
-{RSP_ZSAU,     650, 651, ZSAU_CALL_DELIVERED,   -1, -1, {ACT_DEBUG} },
+       {EV_BC_OPEN,    650, 650, -1,                   651, -1},
+       {RSP_ZVLS,      609, 651, 17,                    -1, -1, {ACT_DEBUG} },
+       {RSP_ZCTP,      610, 651, -1,                    -1, -1, {ACT_DEBUG} },
+       {RSP_ZCPN,      610, 651, -1,                    -1, -1, {ACT_DEBUG} },
+       {RSP_ZSAU,      650, 651, ZSAU_CALL_DELIVERED,   -1, -1, {ACT_DEBUG} },
 
 /* connect */
-{RSP_ZSAU,     650, 650, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT} },
-{RSP_ZSAU,     651, 651, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT,
-                                                         ACT_NOTIFY_BC_UP} },
-{RSP_ZSAU,     750, 750, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT} },
-{RSP_ZSAU,     751, 751, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT,
-                                                         ACT_NOTIFY_BC_UP} },
-{EV_BC_OPEN,   800, 800, -1,                   800, -1, {ACT_NOTIFY_BC_UP} },
+       {RSP_ZSAU,      650, 650, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT} },
+       {RSP_ZSAU,      651, 651, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT,
+                                                                 ACT_NOTIFY_BC_UP} },
+       {RSP_ZSAU,      750, 750, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT} },
+       {RSP_ZSAU,      751, 751, ZSAU_ACTIVE,          800, -1, {ACT_CONNECT,
+                                                                 ACT_NOTIFY_BC_UP} },
+       {EV_BC_OPEN,    800, 800, -1,                   800, -1, {ACT_NOTIFY_BC_UP} },
 
 /* remote hangup */
-{RSP_ZSAU,     650, 651, ZSAU_DISCONNECT_IND,    0,  0, {ACT_REMOTEREJECT} },
-{RSP_ZSAU,     750, 751, ZSAU_DISCONNECT_IND,    0,  0, {ACT_REMOTEHUP} },
-{RSP_ZSAU,     800, 800, ZSAU_DISCONNECT_IND,    0,  0, {ACT_REMOTEHUP} },
+       {RSP_ZSAU,      650, 651, ZSAU_DISCONNECT_IND,    0,  0, {ACT_REMOTEREJECT} },
+       {RSP_ZSAU,      750, 751, ZSAU_DISCONNECT_IND,    0,  0, {ACT_REMOTEHUP} },
+       {RSP_ZSAU,      800, 800, ZSAU_DISCONNECT_IND,    0,  0, {ACT_REMOTEHUP} },
 
 /* hangup */
-{EV_HUP,        -1,  -1, -1,                    -1, -1, {ACT_HUP} },
-{RSP_INIT,      -1,  -1, SEQ_HUP,              401,  5, {0},   "+VLS=0\r"},
-{RSP_OK,       401, 401, -1,                   402,  5},
-{RSP_ZVLS,     402, 402,  0,                   403,  5},
-{RSP_ZSAU,     403, 403, ZSAU_DISCONNECT_REQ,   -1, -1, {ACT_DEBUG} },
-{RSP_ZSAU,     403, 403, ZSAU_NULL,              0,  0, {ACT_DISCONNECT} },
-{RSP_NODEV,    401, 403, -1,                     0,  0, {ACT_FAKEHUP} },
-{RSP_ERROR,    401, 401, -1,                     0,  0, {ACT_ABORTHUP} },
-{EV_TIMEOUT,   401, 403, -1,                     0,  0, {ACT_ABORTHUP} },
-
-{EV_BC_CLOSED,   0,   0, -1,                     0, -1, {ACT_NOTIFY_BC_DOWN} },
+       {EV_HUP,         -1,  -1, -1,                    -1, -1, {ACT_HUP} },
+       {RSP_INIT,       -1,  -1, SEQ_HUP,              401,  5, {0},   "+VLS=0\r"},
+       {RSP_OK,        401, 401, -1,                   402,  5},
+       {RSP_ZVLS,      402, 402,  0,                   403,  5},
+       {RSP_ZSAU,      403, 403, ZSAU_DISCONNECT_REQ,   -1, -1, {ACT_DEBUG} },
+       {RSP_ZSAU,      403, 403, ZSAU_NULL,              0,  0, {ACT_DISCONNECT} },
+       {RSP_NODEV,     401, 403, -1,                     0,  0, {ACT_FAKEHUP} },
+       {RSP_ERROR,     401, 401, -1,                     0,  0, {ACT_ABORTHUP} },
+       {EV_TIMEOUT,    401, 403, -1,                     0,  0, {ACT_ABORTHUP} },
+
+       {EV_BC_CLOSED,    0,   0, -1,                     0, -1, {ACT_NOTIFY_BC_DOWN} },
 
 /* ring */
-{RSP_ZBC,      700, 700, -1,                    -1, -1, {0} },
-{RSP_ZHLC,     700, 700, -1,                    -1, -1, {0} },
-{RSP_NMBR,     700, 700, -1,                    -1, -1, {0} },
-{RSP_ZCPN,     700, 700, -1,                    -1, -1, {0} },
-{RSP_ZCTP,     700, 700, -1,                    -1, -1, {0} },
-{EV_TIMEOUT,   700, 700, -1,                   720, 720, {ACT_ICALL} },
-{EV_BC_CLOSED, 720, 720, -1,                     0, -1, {ACT_NOTIFY_BC_DOWN} },
+       {RSP_ZBC,       700, 700, -1,                    -1, -1, {0} },
+       {RSP_ZHLC,      700, 700, -1,                    -1, -1, {0} },
+       {RSP_NMBR,      700, 700, -1,                    -1, -1, {0} },
+       {RSP_ZCPN,      700, 700, -1,                    -1, -1, {0} },
+       {RSP_ZCTP,      700, 700, -1,                    -1, -1, {0} },
+       {EV_TIMEOUT,    700, 700, -1,                   720, 720, {ACT_ICALL} },
+       {EV_BC_CLOSED,  720, 720, -1,                     0, -1, {ACT_NOTIFY_BC_DOWN} },
 
 /*accept icall*/
-{EV_ACCEPT,     -1,  -1, -1,                    -1, -1, {ACT_ACCEPT} },
-{RSP_INIT,     720, 720, SEQ_ACCEPT,           721,  5, {ACT_CMD+AT_PROTO} },
-{RSP_OK,       721, 721, -1,                   722,  5, {ACT_CMD+AT_ISO} },
-{RSP_OK,       722, 722, -1,                   723,  5, {0},   "+VLS=17\r"},
-{RSP_OK,       723, 723, -1,                   724,  5, {0} },
-{RSP_ZVLS,     724, 724, 17,                   750, 50, {ACT_ACCEPTED} },
-{RSP_ERROR,    721, 729, -1,                     0,  0, {ACT_ABORTACCEPT} },
-{EV_TIMEOUT,   721, 729, -1,                     0,  0, {ACT_ABORTACCEPT} },
-{RSP_ZSAU,     700, 729, ZSAU_NULL,              0,  0, {ACT_ABORTACCEPT} },
-{RSP_ZSAU,     700, 729, ZSAU_ACTIVE,            0,  0, {ACT_ABORTACCEPT} },
-{RSP_ZSAU,     700, 729, ZSAU_DISCONNECT_IND,    0,  0, {ACT_ABORTACCEPT} },
-
-{EV_BC_OPEN,   750, 750, -1,                   751, -1},
-{EV_TIMEOUT,   750, 751, -1,                     0,  0, {ACT_CONNTIMEOUT} },
+       {EV_ACCEPT,      -1,  -1, -1,                    -1, -1, {ACT_ACCEPT} },
+       {RSP_INIT,      720, 720, SEQ_ACCEPT,           721,  5, {ACT_CMD + AT_PROTO} },
+       {RSP_OK,        721, 721, -1,                   722,  5, {ACT_CMD + AT_ISO} },
+       {RSP_OK,        722, 722, -1,                   723,  5, {0},   "+VLS=17\r"},
+       {RSP_OK,        723, 723, -1,                   724,  5, {0} },
+       {RSP_ZVLS,      724, 724, 17,                   750, 50, {ACT_ACCEPTED} },
+       {RSP_ERROR,     721, 729, -1,                     0,  0, {ACT_ABORTACCEPT} },
+       {EV_TIMEOUT,    721, 729, -1,                     0,  0, {ACT_ABORTACCEPT} },
+       {RSP_ZSAU,      700, 729, ZSAU_NULL,              0,  0, {ACT_ABORTACCEPT} },
+       {RSP_ZSAU,      700, 729, ZSAU_ACTIVE,            0,  0, {ACT_ABORTACCEPT} },
+       {RSP_ZSAU,      700, 729, ZSAU_DISCONNECT_IND,    0,  0, {ACT_ABORTACCEPT} },
+
+       {EV_BC_OPEN,    750, 750, -1,                   751, -1},
+       {EV_TIMEOUT,    750, 751, -1,                     0,  0, {ACT_CONNTIMEOUT} },
 
 /* B channel closed (general case) */
-{EV_BC_CLOSED,  -1,  -1, -1,                    -1, -1, {ACT_NOTIFY_BC_DOWN} },
+       {EV_BC_CLOSED,   -1,  -1, -1,                    -1, -1, {ACT_NOTIFY_BC_DOWN} },
 
 /* misc. */
-{RSP_ZCON,      -1,  -1, -1,                    -1, -1, {ACT_DEBUG} },
-{RSP_ZCAU,      -1,  -1, -1,                    -1, -1, {ACT_ZCAU} },
-{RSP_NONE,      -1,  -1, -1,                    -1, -1, {ACT_DEBUG} },
-{RSP_ANY,       -1,  -1, -1,                    -1, -1, {ACT_WARN} },
-{RSP_LAST}
+       {RSP_ZCON,       -1,  -1, -1,                    -1, -1, {ACT_DEBUG} },
+       {RSP_ZCAU,       -1,  -1, -1,                    -1, -1, {ACT_ZCAU} },
+       {RSP_NONE,       -1,  -1, -1,                    -1, -1, {ACT_DEBUG} },
+       {RSP_ANY,        -1,  -1, -1,                    -1, -1, {ACT_WARN} },
+       {RSP_LAST}
 };
 
 
@@ -453,7 +453,7 @@ void gigaset_handle_modem_response(struct cardstate *cs)
                        case '=':
                                if (params > MAX_REC_PARAMS) {
                                        dev_warn(cs->dev,
-                                          "too many parameters in response\n");
+                                                "too many parameters in response\n");
                                        /* need last parameter (might be CID) */
                                        params--;
                                }
@@ -461,7 +461,7 @@ void gigaset_handle_modem_response(struct cardstate *cs)
                        }
 
                rawstring = 0;
-               cid = params > 1 ? cid_of_response(argv[params-1]) : 0;
+               cid = params > 1 ? cid_of_response(argv[params - 1]) : 0;
                if (cid < 0) {
                        gigaset_add_event(cs, &cs->at_state, RSP_INVAL,
                                          NULL, 0, NULL);
@@ -550,7 +550,7 @@ void gigaset_handle_modem_response(struct cardstate *cs)
                        event->parameter = zr->code;
                        if (!zr->str)
                                dev_warn(cs->dev,
-                                       "%s: unknown parameter %s after ZSAU\n",
+                                        "%s: unknown parameter %s after ZSAU\n",
                                         __func__, argv[curarg]);
                        ++curarg;
                        break;
@@ -648,8 +648,8 @@ static void disconnect(struct at_state_t **at_state_p)
 static inline struct at_state_t *get_free_channel(struct cardstate *cs,
                                                  int cid)
 /* cids: >0: siemens-cid
-         0: without cid
-        -1: no cid assigned yet
+   0: without cid
+   -1: no cid assigned yet
 */
 {
        unsigned long flags;
@@ -722,12 +722,12 @@ static void send_command(struct cardstate *cs, const char *cmd, int cid,
        }
        if (cid > 0 && cid <= 65535)
                cb->len = snprintf(cb->buf, buflen,
-                                 dle ? "\020(AT%d%s\020)" : "AT%d%s",
-                                 cid, cmd);
+                                  dle ? "\020(AT%d%s\020)" : "AT%d%s",
+                                  cid, cmd);
        else
                cb->len = snprintf(cb->buf, buflen,
-                                 dle ? "\020(AT%s\020)" : "AT%s",
-                                 cmd);
+                                  dle ? "\020(AT%s\020)" : "AT%s",
+                                  cmd);
        cb->offset = 0;
        cb->next = NULL;
        cb->wake_tasklet = NULL;
@@ -790,7 +790,7 @@ static void bchannel_up(struct bc_state *bcs)
 }
 
 static void start_dial(struct at_state_t *at_state, void *data,
-                       unsigned seq_index)
+                      unsigned seq_index)
 {
        struct bc_state *bcs = at_state->bcs;
        struct cardstate *cs = at_state->cs;
@@ -937,10 +937,10 @@ static int reinit_and_retry(struct cardstate *cs, int channel)
 
        if (channel < 0)
                dev_warn(cs->dev,
-                   "Could not enter cid mode. Reinit device and try again.\n");
+                        "Could not enter cid mode. Reinit device and try again.\n");
        else {
                dev_warn(cs->dev,
-                   "Could not get a call id. Reinit device and try again.\n");
+                        "Could not get a call id. Reinit device and try again.\n");
                cs->bcs[channel].at_state.pending_commands |= PC_CID;
        }
        schedule_init(cs, MS_INIT);
@@ -1155,7 +1155,7 @@ static void do_action(int action, struct cardstate *cs,
                at_state2 = get_free_channel(cs, ev->parameter);
                if (!at_state2) {
                        dev_warn(cs->dev,
-                       "RING ignored: could not allocate channel structure\n");
+                                "RING ignored: could not allocate channel structure\n");
                        break;
                }
 
@@ -1372,7 +1372,7 @@ static void do_action(int action, struct cardstate *cs,
                         ev->parameter, at_state->ConState);
                break;
 
-       /* events from the LL */
+               /* events from the LL */
        case ACT_DIAL:
                start_dial(at_state, ev->ptr, ev->parameter);
                break;
@@ -1385,7 +1385,7 @@ static void do_action(int action, struct cardstate *cs,
                cs->commands_pending = 1;
                break;
 
-       /* hotplug events */
+               /* hotplug events */
        case ACT_STOP:
                do_stop(cs);
                break;
@@ -1393,7 +1393,7 @@ static void do_action(int action, struct cardstate *cs,
                do_start(cs);
                break;
 
-       /* events from the interface */
+               /* events from the interface */
        case ACT_IF_LOCK:
                cs->cmd_result = ev->parameter ? do_lock(cs) : do_unlock(cs);
                cs->waiting = 0;
@@ -1412,7 +1412,7 @@ static void do_action(int action, struct cardstate *cs,
                wake_up(&cs->waitqueue);
                break;
 
-       /* events from the proc file system */
+               /* events from the proc file system */
        case ACT_PROC_CIDMODE:
                spin_lock_irqsave(&cs->lock, flags);
                if (ev->parameter != cs->cidmode) {
@@ -1431,7 +1431,7 @@ static void do_action(int action, struct cardstate *cs,
                wake_up(&cs->waitqueue);
                break;
 
-       /* events from the hardware drivers */
+               /* events from the hardware drivers */
        case ACT_NOTIFY_BC_DOWN:
                bchannel_down(bcs);
                break;
@@ -1533,15 +1533,15 @@ static void process_event(struct cardstate *cs, struct event_t *ev)
                if (rcode == RSP_LAST) {
                        /* found nothing...*/
                        dev_warn(cs->dev, "%s: rcode=RSP_LAST: "
-                                       "resp_code %d in ConState %d!\n",
+                                "resp_code %d in ConState %d!\n",
                                 __func__, ev->type, at_state->ConState);
                        return;
                }
                if ((rcode == RSP_ANY || rcode == ev->type)
-                 && ((int) at_state->ConState >= rep->min_ConState)
-                 && (rep->max_ConState < 0
-                     || (int) at_state->ConState <= rep->max_ConState)
-                 && (rep->parameter < 0 || rep->parameter == ev->parameter))
+                   && ((int) at_state->ConState >= rep->min_ConState)
+                   && (rep->max_ConState < 0
+                       || (int) at_state->ConState <= rep->max_ConState)
+                   && (rep->parameter < 0 || rep->parameter == ev->parameter))
                        break;
        }
 
index 212efaf..8fad99e 100644 (file)
@@ -91,11 +91,11 @@ enum debuglevel {
 
 #ifdef CONFIG_GIGASET_DEBUG
 
-#define gig_dbg(level, format, arg...) \
-       do { \
+#define gig_dbg(level, format, arg...)                                 \
+       do {                                                            \
                if (unlikely(((enum debuglevel)gigaset_debuglevel) & (level))) \
                        printk(KERN_DEBUG KBUILD_MODNAME ": " format "\n", \
-                              ## arg); \
+                              ## arg);                                 \
        } while (0)
 #define DEBUG_DEFAULT (DEBUG_TRANSCMD | DEBUG_CMD | DEBUG_USBREQ)
 
@@ -164,7 +164,7 @@ void gigaset_dbg_buffer(enum debuglevel level, const unsigned char *msg,
 #define BAS_CORRFRAMES 4       /* flow control multiplicator */
 
 #define BAS_INBUFSIZE  (BAS_MAXFRAME * BAS_NUMFRAMES)
-                                       /* size of isoc in buf per URB */
+/* size of isoc in buf per URB */
 #define BAS_OUTBUFSIZE 4096            /* size of common isoc out buffer */
 #define BAS_OUTBUFPAD  BAS_MAXFRAME    /* size of pad area for isoc out buf */
 
@@ -473,17 +473,17 @@ struct cardstate {
        int commands_pending;           /* flag(s) in xxx.commands_pending have
                                           been set */
        struct tasklet_struct event_tasklet;
-                                       /* tasklet for serializing AT commands.
-                                        * Scheduled
-                                        *   -> for modem reponses (and
-                                        *      incoming data for M10x)
-                                        *   -> on timeout
-                                        *   -> after setting bits in
-                                        *      xxx.at_state.pending_command
-                                        *      (e.g. command from LL) */
+       /* tasklet for serializing AT commands.
+        * Scheduled
+        *   -> for modem reponses (and
+        *      incoming data for M10x)
+        *   -> on timeout
+        *   -> after setting bits in
+        *      xxx.at_state.pending_command
+        *      (e.g. command from LL) */
        struct tasklet_struct write_tasklet;
-                                       /* tasklet for serial output
-                                        * (not used in base driver) */
+       /* tasklet for serial output
+        * (not used in base driver) */
 
        /* event queue */
        struct event_t events[MAX_EVENTS];
@@ -491,7 +491,7 @@ struct cardstate {
        spinlock_t ev_lock;
 
        /* current modem response */
-       unsigned char respdata[MAX_RESP_SIZE+1];
+       unsigned char respdata[MAX_RESP_SIZE + 1];
        unsigned cbytes;
 
        /* private data of hardware drivers */
index 1793ba1..0f13eb1 100644 (file)
@@ -243,7 +243,7 @@ static int command_from_LL(isdn_ctrl *cntrl)
                dev_kfree_skb(bcs->rx_skb);
                gigaset_new_rx_skb(bcs);
 
-               commands = kzalloc(AT_NUM*(sizeof *commands), GFP_ATOMIC);
+               commands = kzalloc(AT_NUM * (sizeof *commands), GFP_ATOMIC);
                if (!commands) {
                        gigaset_free_channel(bcs);
                        dev_err(cs->dev, "ISDN_CMD_DIAL: out of memory\n");
@@ -261,7 +261,7 @@ static int command_from_LL(isdn_ctrl *cntrl)
                        if (!commands[AT_TYPE])
                                goto oom;
                        snprintf(commands[AT_DIAL], l,
-                                "D%s\r", cntrl->parm.setup.phone+2);
+                                "D%s\r", cntrl->parm.setup.phone + 2);
                } else {
                        commands[AT_TYPE] = kstrdup("^SCTP=1\r", GFP_ATOMIC);
                        if (!commands[AT_TYPE])
@@ -482,7 +482,7 @@ int gigaset_isdn_icall(struct at_state_t *at_state)
                response.parm.setup.si2 = 2;
        } else {
                dev_warn(cs->dev, "RING ignored - unsupported BC %s\n",
-                    at_state->str_var[STR_ZBC]);
+                        at_state->str_var[STR_ZBC]);
                return ICALL_IGNORE;
        }
        if (at_state->str_var[STR_NMBR]) {
@@ -518,7 +518,7 @@ int gigaset_isdn_icall(struct at_state_t *at_state)
                return ICALL_REJECT;
        case 3: /* incomplete */
                dev_warn(cs->dev,
-                      "LL requested unsupported feature: Incomplete Number\n");
+                        "LL requested unsupported feature: Incomplete Number\n");
                return ICALL_IGNORE;
        case 4: /* proceeding */
                /* Gigaset will send ALERTING anyway.
index ee0a549..da2486e 100644 (file)
@@ -33,10 +33,10 @@ static int if_lock(struct cardstate *cs, int *arg)
        }
 
        if (!cmd && cs->mstate == MS_LOCKED && cs->connected) {
-               cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR|TIOCM_RTS);
+               cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR | TIOCM_RTS);
                cs->ops->baud_rate(cs, B115200);
                cs->ops->set_line_ctrl(cs, CS8);
-               cs->control_state = TIOCM_DTR|TIOCM_RTS;
+               cs->control_state = TIOCM_DTR | TIOCM_RTS;
        }
 
        cs->waiting = 1;
@@ -252,17 +252,17 @@ static int if_ioctl(struct tty_struct *tty,
                        break;
                case GIGASET_BRKCHARS:
                        retval = copy_from_user(&buf,
-                                       (const unsigned char __user *) arg, 6)
+                                               (const unsigned char __user *) arg, 6)
                                ? -EFAULT : 0;
                        if (retval >= 0) {
                                gigaset_dbg_buffer(DEBUG_IF, "GIGASET_BRKCHARS",
-                                               6, (const unsigned char *) arg);
+                                                  6, (const unsigned char *) arg);
                                retval = cs->ops->brkchars(cs, buf);
                        }
                        break;
                case GIGASET_VERSION:
                        retval = copy_from_user(version,
-                                       (unsigned __user *) arg, sizeof version)
+                                               (unsigned __user *) arg, sizeof version)
                                ? -EFAULT : 0;
                        if (retval >= 0)
                                retval = if_version(cs, version);
@@ -299,7 +299,7 @@ static int if_tiocmget(struct tty_struct *tty)
        if (mutex_lock_interruptible(&cs->mutex))
                return -ERESTARTSYS;
 
-       retval = cs->control_state & (TIOCM_RTS|TIOCM_DTR);
+       retval = cs->control_state & (TIOCM_RTS | TIOCM_DTR);
 
        mutex_unlock(&cs->mutex);
 
@@ -329,7 +329,7 @@ static int if_tiocmset(struct tty_struct *tty,
                gig_dbg(DEBUG_IF, "not connected");
                retval = -ENODEV;
        } else {
-               mc = (cs->control_state | set) & ~clear & (TIOCM_RTS|TIOCM_DTR);
+               mc = (cs->control_state | set) & ~clear & (TIOCM_RTS | TIOCM_DTR);
                retval = cs->ops->set_modem_ctrl(cs, cs->control_state, mc);
                cs->control_state = mc;
        }
@@ -680,9 +680,9 @@ void gigaset_if_initdriver(struct gigaset_driver *drv, const char *procname,
                goto enomem;
 
        tty->magic =            TTY_DRIVER_MAGIC,
-       tty->type =             TTY_DRIVER_TYPE_SERIAL,
-       tty->subtype =          SERIAL_TYPE_NORMAL,
-       tty->flags =            TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
+               tty->type =             TTY_DRIVER_TYPE_SERIAL,
+               tty->subtype =          SERIAL_TYPE_NORMAL,
+               tty->flags =            TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
 
        tty->driver_name =      procname;
        tty->name =             devname;
index f39ccdf..a351c16 100644 (file)
@@ -250,94 +250,94 @@ static inline void dump_bytes(enum debuglevel level, const char *tag,
  */
 static const u16 stufftab[5 * 256] = {
 /* previous 1s = 0: */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x201f,
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x203e, 0x205f,
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x209f,
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x207c, 0x207d, 0x20be, 0x20df,
- 0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x048f,
- 0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x251f,
- 0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x04af,
- 0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x253e, 0x255f,
- 0x08c0, 0x08c1, 0x08c2, 0x08c3, 0x08c4, 0x08c5, 0x08c6, 0x08c7, 0x08c8, 0x08c9, 0x08ca, 0x08cb, 0x08cc, 0x08cd, 0x08ce, 0x08cf,
- 0x08d0, 0x08d1, 0x08d2, 0x08d3, 0x08d4, 0x08d5, 0x08d6, 0x08d7, 0x08d8, 0x08d9, 0x08da, 0x08db, 0x08dc, 0x08dd, 0x08de, 0x299f,
- 0x0ce0, 0x0ce1, 0x0ce2, 0x0ce3, 0x0ce4, 0x0ce5, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb, 0x0cec, 0x0ced, 0x0cee, 0x0cef,
- 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x10f7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x257c, 0x257d, 0x29be, 0x2ddf,
      0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
      0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x201f,
      0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
      0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x203e, 0x205f,
      0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
      0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x209f,
      0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
      0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x207c, 0x207d, 0x20be, 0x20df,
      0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x048f,
      0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x251f,
      0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x04af,
      0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x253e, 0x255f,
      0x08c0, 0x08c1, 0x08c2, 0x08c3, 0x08c4, 0x08c5, 0x08c6, 0x08c7, 0x08c8, 0x08c9, 0x08ca, 0x08cb, 0x08cc, 0x08cd, 0x08ce, 0x08cf,
      0x08d0, 0x08d1, 0x08d2, 0x08d3, 0x08d4, 0x08d5, 0x08d6, 0x08d7, 0x08d8, 0x08d9, 0x08da, 0x08db, 0x08dc, 0x08dd, 0x08de, 0x299f,
      0x0ce0, 0x0ce1, 0x0ce2, 0x0ce3, 0x0ce4, 0x0ce5, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb, 0x0cec, 0x0ced, 0x0cee, 0x0cef,
      0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x10f7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x257c, 0x257d, 0x29be, 0x2ddf,
 
 /* previous 1s = 1: */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x200f,
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x202f,
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x204f,
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x203e, 0x206f,
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x208f,
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x20af,
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x20cf,
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x207c, 0x207d, 0x20be, 0x20ef,
- 0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x250f,
- 0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x252f,
- 0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x254f,
- 0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x253e, 0x256f,
- 0x08c0, 0x08c1, 0x08c2, 0x08c3, 0x08c4, 0x08c5, 0x08c6, 0x08c7, 0x08c8, 0x08c9, 0x08ca, 0x08cb, 0x08cc, 0x08cd, 0x08ce, 0x298f,
- 0x08d0, 0x08d1, 0x08d2, 0x08d3, 0x08d4, 0x08d5, 0x08d6, 0x08d7, 0x08d8, 0x08d9, 0x08da, 0x08db, 0x08dc, 0x08dd, 0x08de, 0x29af,
- 0x0ce0, 0x0ce1, 0x0ce2, 0x0ce3, 0x0ce4, 0x0ce5, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb, 0x0cec, 0x0ced, 0x0cee, 0x2dcf,
- 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x10f7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x257c, 0x257d, 0x29be, 0x31ef,
      0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x200f,
      0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x202f,
      0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x204f,
      0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x203e, 0x206f,
      0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x208f,
      0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x20af,
      0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x20cf,
      0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x207c, 0x207d, 0x20be, 0x20ef,
      0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x250f,
      0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x252f,
      0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x254f,
      0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x253e, 0x256f,
      0x08c0, 0x08c1, 0x08c2, 0x08c3, 0x08c4, 0x08c5, 0x08c6, 0x08c7, 0x08c8, 0x08c9, 0x08ca, 0x08cb, 0x08cc, 0x08cd, 0x08ce, 0x298f,
      0x08d0, 0x08d1, 0x08d2, 0x08d3, 0x08d4, 0x08d5, 0x08d6, 0x08d7, 0x08d8, 0x08d9, 0x08da, 0x08db, 0x08dc, 0x08dd, 0x08de, 0x29af,
      0x0ce0, 0x0ce1, 0x0ce2, 0x0ce3, 0x0ce4, 0x0ce5, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb, 0x0cec, 0x0ced, 0x0cee, 0x2dcf,
      0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x10f7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x257c, 0x257d, 0x29be, 0x31ef,
 
 /* previous 1s = 2: */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x2007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x2017,
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x2027, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x2037,
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x2047, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x2057,
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x2067, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x203e, 0x2077,
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x2087, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x2097,
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x20a7, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x20b7,
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x20c7, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x20d7,
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x20e7, 0x0078, 0x0079, 0x007a, 0x007b, 0x207c, 0x207d, 0x20be, 0x20f7,
- 0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x2507, 0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x2517,
- 0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x2527, 0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x2537,
- 0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x2547, 0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x2557,
- 0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x2567, 0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x253e, 0x2577,
- 0x08c0, 0x08c1, 0x08c2, 0x08c3, 0x08c4, 0x08c5, 0x08c6, 0x2987, 0x08c8, 0x08c9, 0x08ca, 0x08cb, 0x08cc, 0x08cd, 0x08ce, 0x2997,
- 0x08d0, 0x08d1, 0x08d2, 0x08d3, 0x08d4, 0x08d5, 0x08d6, 0x29a7, 0x08d8, 0x08d9, 0x08da, 0x08db, 0x08dc, 0x08dd, 0x08de, 0x29b7,
- 0x0ce0, 0x0ce1, 0x0ce2, 0x0ce3, 0x0ce4, 0x0ce5, 0x0ce6, 0x2dc7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb, 0x0cec, 0x0ced, 0x0cee, 0x2dd7,
- 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x31e7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x257c, 0x257d, 0x29be, 0x41f7,
      0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x2007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x2017,
      0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x2027, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x2037,
      0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x2047, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x2057,
      0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x2067, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x203e, 0x2077,
      0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x2087, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x2097,
      0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x20a7, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x20b7,
      0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x20c7, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x20d7,
      0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x20e7, 0x0078, 0x0079, 0x007a, 0x007b, 0x207c, 0x207d, 0x20be, 0x20f7,
      0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x2507, 0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x2517,
      0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x2527, 0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x2537,
      0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x2547, 0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x2557,
      0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x2567, 0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x253e, 0x2577,
      0x08c0, 0x08c1, 0x08c2, 0x08c3, 0x08c4, 0x08c5, 0x08c6, 0x2987, 0x08c8, 0x08c9, 0x08ca, 0x08cb, 0x08cc, 0x08cd, 0x08ce, 0x2997,
      0x08d0, 0x08d1, 0x08d2, 0x08d3, 0x08d4, 0x08d5, 0x08d6, 0x29a7, 0x08d8, 0x08d9, 0x08da, 0x08db, 0x08dc, 0x08dd, 0x08de, 0x29b7,
      0x0ce0, 0x0ce1, 0x0ce2, 0x0ce3, 0x0ce4, 0x0ce5, 0x0ce6, 0x2dc7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb, 0x0cec, 0x0ced, 0x0cee, 0x2dd7,
      0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x31e7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x257c, 0x257d, 0x29be, 0x41f7,
 
 /* previous 1s = 3: */
- 0x0000, 0x0001, 0x0002, 0x2003, 0x0004, 0x0005, 0x0006, 0x200b, 0x0008, 0x0009, 0x000a, 0x2013, 0x000c, 0x000d, 0x000e, 0x201b,
- 0x0010, 0x0011, 0x0012, 0x2023, 0x0014, 0x0015, 0x0016, 0x202b, 0x0018, 0x0019, 0x001a, 0x2033, 0x001c, 0x001d, 0x001e, 0x203b,
- 0x0020, 0x0021, 0x0022, 0x2043, 0x0024, 0x0025, 0x0026, 0x204b, 0x0028, 0x0029, 0x002a, 0x2053, 0x002c, 0x002d, 0x002e, 0x205b,
- 0x0030, 0x0031, 0x0032, 0x2063, 0x0034, 0x0035, 0x0036, 0x206b, 0x0038, 0x0039, 0x003a, 0x2073, 0x003c, 0x003d, 0x203e, 0x207b,
- 0x0040, 0x0041, 0x0042, 0x2083, 0x0044, 0x0045, 0x0046, 0x208b, 0x0048, 0x0049, 0x004a, 0x2093, 0x004c, 0x004d, 0x004e, 0x209b,
- 0x0050, 0x0051, 0x0052, 0x20a3, 0x0054, 0x0055, 0x0056, 0x20ab, 0x0058, 0x0059, 0x005a, 0x20b3, 0x005c, 0x005d, 0x005e, 0x20bb,
- 0x0060, 0x0061, 0x0062, 0x20c3, 0x0064, 0x0065, 0x0066, 0x20cb, 0x0068, 0x0069, 0x006a, 0x20d3, 0x006c, 0x006d, 0x006e, 0x20db,
- 0x0070, 0x0071, 0x0072, 0x20e3, 0x0074, 0x0075, 0x0076, 0x20eb, 0x0078, 0x0079, 0x007a, 0x20f3, 0x207c, 0x207d, 0x20be, 0x40fb,
- 0x0480, 0x0481, 0x0482, 0x2503, 0x0484, 0x0485, 0x0486, 0x250b, 0x0488, 0x0489, 0x048a, 0x2513, 0x048c, 0x048d, 0x048e, 0x251b,
- 0x0490, 0x0491, 0x0492, 0x2523, 0x0494, 0x0495, 0x0496, 0x252b, 0x0498, 0x0499, 0x049a, 0x2533, 0x049c, 0x049d, 0x049e, 0x253b,
- 0x04a0, 0x04a1, 0x04a2, 0x2543, 0x04a4, 0x04a5, 0x04a6, 0x254b, 0x04a8, 0x04a9, 0x04aa, 0x2553, 0x04ac, 0x04ad, 0x04ae, 0x255b,
- 0x04b0, 0x04b1, 0x04b2, 0x2563, 0x04b4, 0x04b5, 0x04b6, 0x256b, 0x04b8, 0x04b9, 0x04ba, 0x2573, 0x04bc, 0x04bd, 0x253e, 0x257b,
- 0x08c0, 0x08c1, 0x08c2, 0x2983, 0x08c4, 0x08c5, 0x08c6, 0x298b, 0x08c8, 0x08c9, 0x08ca, 0x2993, 0x08cc, 0x08cd, 0x08ce, 0x299b,
- 0x08d0, 0x08d1, 0x08d2, 0x29a3, 0x08d4, 0x08d5, 0x08d6, 0x29ab, 0x08d8, 0x08d9, 0x08da, 0x29b3, 0x08dc, 0x08dd, 0x08de, 0x29bb,
- 0x0ce0, 0x0ce1, 0x0ce2, 0x2dc3, 0x0ce4, 0x0ce5, 0x0ce6, 0x2dcb, 0x0ce8, 0x0ce9, 0x0cea, 0x2dd3, 0x0cec, 0x0ced, 0x0cee, 0x2ddb,
- 0x10f0, 0x10f1, 0x10f2, 0x31e3, 0x10f4, 0x10f5, 0x10f6, 0x31eb, 0x20f8, 0x20f9, 0x20fa, 0x41f3, 0x257c, 0x257d, 0x29be, 0x46fb,
      0x0000, 0x0001, 0x0002, 0x2003, 0x0004, 0x0005, 0x0006, 0x200b, 0x0008, 0x0009, 0x000a, 0x2013, 0x000c, 0x000d, 0x000e, 0x201b,
      0x0010, 0x0011, 0x0012, 0x2023, 0x0014, 0x0015, 0x0016, 0x202b, 0x0018, 0x0019, 0x001a, 0x2033, 0x001c, 0x001d, 0x001e, 0x203b,
      0x0020, 0x0021, 0x0022, 0x2043, 0x0024, 0x0025, 0x0026, 0x204b, 0x0028, 0x0029, 0x002a, 0x2053, 0x002c, 0x002d, 0x002e, 0x205b,
      0x0030, 0x0031, 0x0032, 0x2063, 0x0034, 0x0035, 0x0036, 0x206b, 0x0038, 0x0039, 0x003a, 0x2073, 0x003c, 0x003d, 0x203e, 0x207b,
      0x0040, 0x0041, 0x0042, 0x2083, 0x0044, 0x0045, 0x0046, 0x208b, 0x0048, 0x0049, 0x004a, 0x2093, 0x004c, 0x004d, 0x004e, 0x209b,
      0x0050, 0x0051, 0x0052, 0x20a3, 0x0054, 0x0055, 0x0056, 0x20ab, 0x0058, 0x0059, 0x005a, 0x20b3, 0x005c, 0x005d, 0x005e, 0x20bb,
      0x0060, 0x0061, 0x0062, 0x20c3, 0x0064, 0x0065, 0x0066, 0x20cb, 0x0068, 0x0069, 0x006a, 0x20d3, 0x006c, 0x006d, 0x006e, 0x20db,
      0x0070, 0x0071, 0x0072, 0x20e3, 0x0074, 0x0075, 0x0076, 0x20eb, 0x0078, 0x0079, 0x007a, 0x20f3, 0x207c, 0x207d, 0x20be, 0x40fb,
      0x0480, 0x0481, 0x0482, 0x2503, 0x0484, 0x0485, 0x0486, 0x250b, 0x0488, 0x0489, 0x048a, 0x2513, 0x048c, 0x048d, 0x048e, 0x251b,
      0x0490, 0x0491, 0x0492, 0x2523, 0x0494, 0x0495, 0x0496, 0x252b, 0x0498, 0x0499, 0x049a, 0x2533, 0x049c, 0x049d, 0x049e, 0x253b,
      0x04a0, 0x04a1, 0x04a2, 0x2543, 0x04a4, 0x04a5, 0x04a6, 0x254b, 0x04a8, 0x04a9, 0x04aa, 0x2553, 0x04ac, 0x04ad, 0x04ae, 0x255b,
      0x04b0, 0x04b1, 0x04b2, 0x2563, 0x04b4, 0x04b5, 0x04b6, 0x256b, 0x04b8, 0x04b9, 0x04ba, 0x2573, 0x04bc, 0x04bd, 0x253e, 0x257b,
      0x08c0, 0x08c1, 0x08c2, 0x2983, 0x08c4, 0x08c5, 0x08c6, 0x298b, 0x08c8, 0x08c9, 0x08ca, 0x2993, 0x08cc, 0x08cd, 0x08ce, 0x299b,
      0x08d0, 0x08d1, 0x08d2, 0x29a3, 0x08d4, 0x08d5, 0x08d6, 0x29ab, 0x08d8, 0x08d9, 0x08da, 0x29b3, 0x08dc, 0x08dd, 0x08de, 0x29bb,
      0x0ce0, 0x0ce1, 0x0ce2, 0x2dc3, 0x0ce4, 0x0ce5, 0x0ce6, 0x2dcb, 0x0ce8, 0x0ce9, 0x0cea, 0x2dd3, 0x0cec, 0x0ced, 0x0cee, 0x2ddb,
      0x10f0, 0x10f1, 0x10f2, 0x31e3, 0x10f4, 0x10f5, 0x10f6, 0x31eb, 0x20f8, 0x20f9, 0x20fa, 0x41f3, 0x257c, 0x257d, 0x29be, 0x46fb,
 
 /* previous 1s = 4: */
- 0x0000, 0x2001, 0x0002, 0x2005, 0x0004, 0x2009, 0x0006, 0x200d, 0x0008, 0x2011, 0x000a, 0x2015, 0x000c, 0x2019, 0x000e, 0x201d,
- 0x0010, 0x2021, 0x0012, 0x2025, 0x0014, 0x2029, 0x0016, 0x202d, 0x0018, 0x2031, 0x001a, 0x2035, 0x001c, 0x2039, 0x001e, 0x203d,
- 0x0020, 0x2041, 0x0022, 0x2045, 0x0024, 0x2049, 0x0026, 0x204d, 0x0028, 0x2051, 0x002a, 0x2055, 0x002c, 0x2059, 0x002e, 0x205d,
- 0x0030, 0x2061, 0x0032, 0x2065, 0x0034, 0x2069, 0x0036, 0x206d, 0x0038, 0x2071, 0x003a, 0x2075, 0x003c, 0x2079, 0x203e, 0x407d,
- 0x0040, 0x2081, 0x0042, 0x2085, 0x0044, 0x2089, 0x0046, 0x208d, 0x0048, 0x2091, 0x004a, 0x2095, 0x004c, 0x2099, 0x004e, 0x209d,
- 0x0050, 0x20a1, 0x0052, 0x20a5, 0x0054, 0x20a9, 0x0056, 0x20ad, 0x0058, 0x20b1, 0x005a, 0x20b5, 0x005c, 0x20b9, 0x005e, 0x20bd,
- 0x0060, 0x20c1, 0x0062, 0x20c5, 0x0064, 0x20c9, 0x0066, 0x20cd, 0x0068, 0x20d1, 0x006a, 0x20d5, 0x006c, 0x20d9, 0x006e, 0x20dd,
- 0x0070, 0x20e1, 0x0072, 0x20e5, 0x0074, 0x20e9, 0x0076, 0x20ed, 0x0078, 0x20f1, 0x007a, 0x20f5, 0x207c, 0x40f9, 0x20be, 0x417d,
- 0x0480, 0x2501, 0x0482, 0x2505, 0x0484, 0x2509, 0x0486, 0x250d, 0x0488, 0x2511, 0x048a, 0x2515, 0x048c, 0x2519, 0x048e, 0x251d,
- 0x0490, 0x2521, 0x0492, 0x2525, 0x0494, 0x2529, 0x0496, 0x252d, 0x0498, 0x2531, 0x049a, 0x2535, 0x049c, 0x2539, 0x049e, 0x253d,
- 0x04a0, 0x2541, 0x04a2, 0x2545, 0x04a4, 0x2549, 0x04a6, 0x254d, 0x04a8, 0x2551, 0x04aa, 0x2555, 0x04ac, 0x2559, 0x04ae, 0x255d,
- 0x04b0, 0x2561, 0x04b2, 0x2565, 0x04b4, 0x2569, 0x04b6, 0x256d, 0x04b8, 0x2571, 0x04ba, 0x2575, 0x04bc, 0x2579, 0x253e, 0x467d,
- 0x08c0, 0x2981, 0x08c2, 0x2985, 0x08c4, 0x2989, 0x08c6, 0x298d, 0x08c8, 0x2991, 0x08ca, 0x2995, 0x08cc, 0x2999, 0x08ce, 0x299d,
- 0x08d0, 0x29a1, 0x08d2, 0x29a5, 0x08d4, 0x29a9, 0x08d6, 0x29ad, 0x08d8, 0x29b1, 0x08da, 0x29b5, 0x08dc, 0x29b9, 0x08de, 0x29bd,
- 0x0ce0, 0x2dc1, 0x0ce2, 0x2dc5, 0x0ce4, 0x2dc9, 0x0ce6, 0x2dcd, 0x0ce8, 0x2dd1, 0x0cea, 0x2dd5, 0x0cec, 0x2dd9, 0x0cee, 0x2ddd,
- 0x10f0, 0x31e1, 0x10f2, 0x31e5, 0x10f4, 0x31e9, 0x10f6, 0x31ed, 0x20f8, 0x41f1, 0x20fa, 0x41f5, 0x257c, 0x46f9, 0x29be, 0x4b7d
      0x0000, 0x2001, 0x0002, 0x2005, 0x0004, 0x2009, 0x0006, 0x200d, 0x0008, 0x2011, 0x000a, 0x2015, 0x000c, 0x2019, 0x000e, 0x201d,
      0x0010, 0x2021, 0x0012, 0x2025, 0x0014, 0x2029, 0x0016, 0x202d, 0x0018, 0x2031, 0x001a, 0x2035, 0x001c, 0x2039, 0x001e, 0x203d,
      0x0020, 0x2041, 0x0022, 0x2045, 0x0024, 0x2049, 0x0026, 0x204d, 0x0028, 0x2051, 0x002a, 0x2055, 0x002c, 0x2059, 0x002e, 0x205d,
      0x0030, 0x2061, 0x0032, 0x2065, 0x0034, 0x2069, 0x0036, 0x206d, 0x0038, 0x2071, 0x003a, 0x2075, 0x003c, 0x2079, 0x203e, 0x407d,
      0x0040, 0x2081, 0x0042, 0x2085, 0x0044, 0x2089, 0x0046, 0x208d, 0x0048, 0x2091, 0x004a, 0x2095, 0x004c, 0x2099, 0x004e, 0x209d,
      0x0050, 0x20a1, 0x0052, 0x20a5, 0x0054, 0x20a9, 0x0056, 0x20ad, 0x0058, 0x20b1, 0x005a, 0x20b5, 0x005c, 0x20b9, 0x005e, 0x20bd,
      0x0060, 0x20c1, 0x0062, 0x20c5, 0x0064, 0x20c9, 0x0066, 0x20cd, 0x0068, 0x20d1, 0x006a, 0x20d5, 0x006c, 0x20d9, 0x006e, 0x20dd,
      0x0070, 0x20e1, 0x0072, 0x20e5, 0x0074, 0x20e9, 0x0076, 0x20ed, 0x0078, 0x20f1, 0x007a, 0x20f5, 0x207c, 0x40f9, 0x20be, 0x417d,
      0x0480, 0x2501, 0x0482, 0x2505, 0x0484, 0x2509, 0x0486, 0x250d, 0x0488, 0x2511, 0x048a, 0x2515, 0x048c, 0x2519, 0x048e, 0x251d,
      0x0490, 0x2521, 0x0492, 0x2525, 0x0494, 0x2529, 0x0496, 0x252d, 0x0498, 0x2531, 0x049a, 0x2535, 0x049c, 0x2539, 0x049e, 0x253d,
      0x04a0, 0x2541, 0x04a2, 0x2545, 0x04a4, 0x2549, 0x04a6, 0x254d, 0x04a8, 0x2551, 0x04aa, 0x2555, 0x04ac, 0x2559, 0x04ae, 0x255d,
      0x04b0, 0x2561, 0x04b2, 0x2565, 0x04b4, 0x2569, 0x04b6, 0x256d, 0x04b8, 0x2571, 0x04ba, 0x2575, 0x04bc, 0x2579, 0x253e, 0x467d,
      0x08c0, 0x2981, 0x08c2, 0x2985, 0x08c4, 0x2989, 0x08c6, 0x298d, 0x08c8, 0x2991, 0x08ca, 0x2995, 0x08cc, 0x2999, 0x08ce, 0x299d,
      0x08d0, 0x29a1, 0x08d2, 0x29a5, 0x08d4, 0x29a9, 0x08d6, 0x29ad, 0x08d8, 0x29b1, 0x08da, 0x29b5, 0x08dc, 0x29b9, 0x08de, 0x29bd,
      0x0ce0, 0x2dc1, 0x0ce2, 0x2dc5, 0x0ce4, 0x2dc9, 0x0ce6, 0x2dcd, 0x0ce8, 0x2dd1, 0x0cea, 0x2dd5, 0x0cec, 0x2dd9, 0x0cee, 0x2ddd,
      0x10f0, 0x31e1, 0x10f2, 0x31e5, 0x10f4, 0x31e9, 0x10f6, 0x31ed, 0x20f8, 0x41f1, 0x20fa, 0x41f5, 0x257c, 0x46f9, 0x29be, 0x4b7d
 };
 
 /* hdlc_bitstuff_byte
@@ -598,22 +598,22 @@ static inline void hdlc_frag(struct bc_state *bcs, unsigned inbits)
  *        bit 7 set if there are 5 or more "interior" consecutive '1' bits
  */
 static const unsigned char bitcounts[256] = {
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x80, 0x06,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
-  0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x80, 0x81, 0x80, 0x07,
-  0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x14,
-  0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x15,
-  0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x14,
-  0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x90, 0x16,
-  0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x23, 0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x24,
-  0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x23, 0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x25,
-  0x30, 0x31, 0x30, 0x32, 0x30, 0x31, 0x30, 0x33, 0x30, 0x31, 0x30, 0x32, 0x30, 0x31, 0x30, 0x34,
-  0x40, 0x41, 0x40, 0x42, 0x40, 0x41, 0x40, 0x43, 0x50, 0x51, 0x50, 0x52, 0x60, 0x61, 0x70, 0x78
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x80, 0x06,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04,
+       0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x80, 0x81, 0x80, 0x07,
+       0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x14,
+       0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x15,
+       0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x14,
+       0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x10, 0x13, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0x90, 0x16,
+       0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x23, 0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x24,
+       0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x23, 0x20, 0x21, 0x20, 0x22, 0x20, 0x21, 0x20, 0x25,
+       0x30, 0x31, 0x30, 0x32, 0x30, 0x31, 0x30, 0x33, 0x30, 0x31, 0x30, 0x32, 0x30, 0x31, 0x30, 0x34,
+       0x40, 0x41, 0x40, 0x42, 0x40, 0x41, 0x40, 0x43, 0x50, 0x51, 0x50, 0x52, 0x60, 0x61, 0x70, 0x78
 };
 
 /* hdlc_unpack
index b943efb..e3f9d0f 100644 (file)
@@ -35,7 +35,7 @@ static ssize_t set_cidmode(struct device *dev, struct device_attribute *attr,
                if (!isspace(*end++))
                        return -EINVAL;
        if (value < 0 || value > 1)
-                       return -EINVAL;
+               return -EINVAL;
 
        if (mutex_lock_interruptible(&cs->mutex))
                return -ERESTARTSYS;
@@ -56,7 +56,7 @@ static ssize_t set_cidmode(struct device *dev, struct device_attribute *attr,
        return count;
 }
 
-static DEVICE_ATTR(cidmode, S_IRUGO|S_IWUSR, show_cidmode, set_cidmode);
+static DEVICE_ATTR(cidmode, S_IRUGO | S_IWUSR, show_cidmode, set_cidmode);
 
 /* free sysfs for device */
 void gigaset_free_dev_sysfs(struct cardstate *cs)
index 86a5c4f..6f3fd4c 100644 (file)
@@ -246,7 +246,7 @@ static int gigaset_write_cmd(struct cardstate *cs, struct cmdbuf_t *cb)
        unsigned long flags;
 
        gigaset_dbg_buffer(cs->mstate != MS_LOCKED ?
-                               DEBUG_TRANSCMD : DEBUG_LOCKCMD,
+                          DEBUG_TRANSCMD : DEBUG_LOCKCMD,
                           "CMD Transmit", cb->len, cb->buf);
 
        spin_lock_irqsave(&cs->cmdlock, flags);
@@ -773,8 +773,8 @@ static int __init ser_gigaset_init(void)
 
        /* allocate memory for our driver state and initialize it */
        driver = gigaset_initdriver(GIGASET_MINOR, GIGASET_MINORS,
-                                         GIGASET_MODULENAME, GIGASET_DEVNAME,
-                                         &ops, THIS_MODULE);
+                                   GIGASET_MODULENAME, GIGASET_DEVNAME,
+                                   &ops, THIS_MODULE);
        if (!driver)
                goto error;
 
index 5e3300d..049da67 100644 (file)
@@ -184,7 +184,7 @@ static int set_value(struct cardstate *cs, u8 req, u16 val)
                (unsigned)req, (unsigned)val);
        r = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x12, 0x41,
                            0xf /*?*/, 0, NULL, 0, 2000 /*?*/);
-                           /* no idea what this does */
+       /* no idea what this does */
        if (r < 0) {
                dev_err(&udev->dev, "error %d on request 0x12\n", -r);
                return r;
@@ -365,7 +365,7 @@ static void gigaset_read_int_callback(struct urb *urb)
                        src = cs->hw.usb->rcvbuf;
                        if (unlikely(*src))
                                dev_warn(cs->dev,
-                                   "%s: There was no leading 0, but 0x%02x!\n",
+                                        "%s: There was no leading 0, but 0x%02x!\n",
                                         __func__, (unsigned) *src);
                        ++src; /* skip leading 0x00 */
                        --numbytes;
@@ -465,7 +465,7 @@ static int send_cb(struct cardstate *cs, struct cmdbuf_t *cb)
 
                        usb_fill_bulk_urb(ucs->bulk_out_urb, ucs->udev,
                                          usb_sndbulkpipe(ucs->udev,
-                                            ucs->bulk_out_endpointAddr & 0x0f),
+                                                         ucs->bulk_out_endpointAddr & 0x0f),
                                          cb->buf + cb->offset, count,
                                          gigaset_write_bulk_callback, cs);
 
@@ -499,7 +499,7 @@ static int gigaset_write_cmd(struct cardstate *cs, struct cmdbuf_t *cb)
        unsigned long flags;
 
        gigaset_dbg_buffer(cs->mstate != MS_LOCKED ?
-                            DEBUG_TRANSCMD : DEBUG_LOCKCMD,
+                          DEBUG_TRANSCMD : DEBUG_LOCKCMD,
                           "CMD Transmit", cb->len, cb->buf);
 
        spin_lock_irqsave(&cs->cmdlock, flags);
index 61f516f..44b50cc 100644 (file)
@@ -44,12 +44,12 @@ static void avmcs_detach(struct pcmcia_device *p_dev);
 
 static int avmcs_probe(struct pcmcia_device *p_dev)
 {
-    /* General socket configuration */
-    p_dev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
-    p_dev->config_index = 1;
-    p_dev->config_regs = PRESENT_OPTION;
+       /* General socket configuration */
+       p_dev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
+       p_dev->config_index = 1;
+       p_dev->config_regs = PRESENT_OPTION;
 
-    return avmcs_config(p_dev);
+       return avmcs_config(p_dev);
 } /* avmcs_attach */
 
 
@@ -69,75 +69,75 @@ static int avmcs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
 
 static int avmcs_config(struct pcmcia_device *link)
 {
-    int i = -1;
-    char devname[128];
-    int cardtype;
-    int (*addcard)(unsigned int port, unsigned irq);
-
-    devname[0] = 0;
-    if (link->prod_id[1])
-           strlcpy(devname, link->prod_id[1], sizeof(devname));
-
-    /*
-     * find IO port
-     */
-    if (pcmcia_loop_config(link, avmcs_configcheck, NULL))
-           return -ENODEV;
-
-    do {
-       if (!link->irq) {
-           /* undo */
-           pcmcia_disable_device(link);
-           break;
-       }
+       int i = -1;
+       char devname[128];
+       int cardtype;
+       int (*addcard)(unsigned int port, unsigned irq);
+
+       devname[0] = 0;
+       if (link->prod_id[1])
+               strlcpy(devname, link->prod_id[1], sizeof(devname));
 
        /*
-         * configure the PCMCIA socket
-         */
-       i = pcmcia_enable_device(link);
+        * find IO port
+        */
+       if (pcmcia_loop_config(link, avmcs_configcheck, NULL))
+               return -ENODEV;
+
+       do {
+               if (!link->irq) {
+                       /* undo */
+                       pcmcia_disable_device(link);
+                       break;
+               }
+
+               /*
+                * configure the PCMCIA socket
+                */
+               i = pcmcia_enable_device(link);
+               if (i != 0) {
+                       pcmcia_disable_device(link);
+                       break;
+               }
+
+       } while (0);
+
+       if (devname[0]) {
+               char *s = strrchr(devname, ' ');
+               if (!s)
+                       s = devname;
+               else s++;
+               if (strcmp("M1", s) == 0) {
+                       cardtype = AVM_CARDTYPE_M1;
+               } else if (strcmp("M2", s) == 0) {
+                       cardtype = AVM_CARDTYPE_M2;
+               } else {
+                       cardtype = AVM_CARDTYPE_B1;
+               }
+       } else
+               cardtype = AVM_CARDTYPE_B1;
+
+       /* If any step failed, release any partially configured state */
        if (i != 0) {
-           pcmcia_disable_device(link);
-           break;
-       }
-
-    } while (0);
-
-    if (devname[0]) {
-       char *s = strrchr(devname, ' ');
-       if (!s)
-          s = devname;
-       else s++;
-        if (strcmp("M1", s) == 0) {
-           cardtype = AVM_CARDTYPE_M1;
-        } else if (strcmp("M2", s) == 0) {
-           cardtype = AVM_CARDTYPE_M2;
-       } else {
-           cardtype = AVM_CARDTYPE_B1;
+               avmcs_release(link);
+               return -ENODEV;
        }
-    } else
-        cardtype = AVM_CARDTYPE_B1;
-
-    /* If any step failed, release any partially configured state */
-    if (i != 0) {
-       avmcs_release(link);
-       return -ENODEV;
-    }
 
 
-    switch (cardtype) {
-        case AVM_CARDTYPE_M1: addcard = b1pcmcia_addcard_m1; break;
-        case AVM_CARDTYPE_M2: addcard = b1pcmcia_addcard_m2; break;
+       switch (cardtype) {
+       case AVM_CARDTYPE_M1: addcard = b1pcmcia_addcard_m1; break;
+       case AVM_CARDTYPE_M2: addcard = b1pcmcia_addcard_m2; break;
        default:
-        case AVM_CARDTYPE_B1: addcard = b1pcmcia_addcard_b1; break;
-    }
-    if ((i = (*addcard)(link->resource[0]->start, link->irq)) < 0) {
-           dev_err(&link->dev,
-                   "avm_cs: failed to add AVM-Controller at i/o %#x, irq %d\n",
-                   (unsigned int) link->resource[0]->start, link->irq);
-           avmcs_release(link);
-           return -ENODEV;
-    }
-    return 0;
+       case AVM_CARDTYPE_B1: addcard = b1pcmcia_addcard_b1; break;
+       }
+       if ((i = (*addcard)(link->resource[0]->start, link->irq)) < 0) {
+               dev_err(&link->dev,
+                       "avm_cs: failed to add AVM-Controller at i/o %#x, irq %d\n",
+                       (unsigned int) link->resource[0]->start, link->irq);
+               avmcs_release(link);
+               return -ENODEV;
+       }
+       return 0;
 
 } /* avmcs_config */
 
index a70e885..c95712d 100644 (file)
@@ -44,16 +44,16 @@ enum avmcardtype {
 };
 
 typedef struct avmcard_dmabuf {
-    long        size;
-    u8       *dmabuf;
-    dma_addr_t  dmaaddr;
+       long        size;
+       u8       *dmabuf;
+       dma_addr_t  dmaaddr;
 } avmcard_dmabuf;
 
 typedef struct avmcard_dmainfo {
        u32                recvlen;
-        avmcard_dmabuf       recvbuf;
+       avmcard_dmabuf       recvbuf;
 
-        avmcard_dmabuf       sendbuf;
+       avmcard_dmabuf       sendbuf;
        struct sk_buff_head  send_queue;
 
        struct pci_dev      *pcidev;
@@ -61,22 +61,22 @@ typedef struct avmcard_dmainfo {
 
 typedef        struct avmctrl_info {
        char cardname[32];
-       
+
        int versionlen;
        char versionbuf[1024];
        char *version[AVM_MAXVERSION];
-       
+
        char infobuf[128];      /* for function procinfo */
-       
+
        struct avmcard  *card;
        struct capi_ctr  capi_ctrl;
-       
+
        struct list_head ncci_head;
 } avmctrl_info;
 
 typedef struct avmcard {
        char name[32];
-  
+
        spinlock_t lock;
        unsigned int port;
        unsigned irq;
@@ -103,95 +103,95 @@ typedef struct avmcard {
 extern int b1_irq_table[16];
 
 /*
- * LLI Messages to the ISDN-ControllerISDN Controller 
+ * LLI Messages to the ISDN-ControllerISDN Controller
  */
 
 #define        SEND_POLL               0x72    /*
-                                          * after load <- RECEIVE_POLL 
+                                        * after load <- RECEIVE_POLL
                                         */
 #define SEND_INIT              0x11    /*
-                                          * first message <- RECEIVE_INIT
-                                          * int32 NumApplications  int32
-                                          * NumNCCIs int32 BoardNumber 
+                                        * first message <- RECEIVE_INIT
+                                        * int32 NumApplications  int32
+                                        * NumNCCIs int32 BoardNumber
                                         */
 #define SEND_REGISTER          0x12    /*
-                                          * register an application int32
-                                          * ApplIDId int32 NumMessages
-                                          * int32 NumB3Connections int32
-                                          * NumB3Blocks int32 B3Size
-                                          * 
-                                          * AnzB3Connection != 0 &&
-                                          * AnzB3Blocks >= 1 && B3Size >= 1 
+                                        * register an application int32
+                                        * ApplIDId int32 NumMessages
+                                        * int32 NumB3Connections int32
+                                        * NumB3Blocks int32 B3Size
+                                        *
+                                        * AnzB3Connection != 0 &&
+                                        * AnzB3Blocks >= 1 && B3Size >= 1
                                         */
 #define SEND_RELEASE           0x14    /*
-                                          * deregister an application int32 
-                                          * ApplID 
+                                        * deregister an application int32
+                                        * ApplID
                                         */
 #define SEND_MESSAGE           0x15    /*
-                                          * send capi-message int32 length
-                                          * capi-data ... 
+                                        * send capi-message int32 length
+                                        * capi-data ...
                                         */
 #define SEND_DATA_B3_REQ       0x13    /*
-                                          * send capi-data-message int32
-                                          * MsgLength capi-data ... int32
-                                          * B3Length data .... 
+                                        * send capi-data-message int32
+                                        * MsgLength capi-data ... int32
+                                        * B3Length data ....
                                         */
 
 #define SEND_CONFIG            0x21    /*
-                                         */
+                                        */
 
 #define SEND_POLLACK           0x73    /* T1 Watchdog */
 
 /*
- * LLI Messages from the ISDN-ControllerISDN Controller 
+ * LLI Messages from the ISDN-ControllerISDN Controller
  */
 
 #define RECEIVE_POLL           0x32    /*
-                                          * <- after SEND_POLL 
+                                        * <- after SEND_POLL
                                         */
 #define RECEIVE_INIT           0x27    /*
-                                          * <- after SEND_INIT int32 length
-                                          * byte total length b1struct board 
-                                          * driver revision b1struct card
-                                          * type b1struct reserved b1struct
-                                          * serial number b1struct driver
-                                          * capability b1struct d-channel
-                                          * protocol b1struct CAPI-2.0
-                                          * profile b1struct capi version 
+                                        * <- after SEND_INIT int32 length
+                                        * byte total length b1struct board
+                                        * driver revision b1struct card
+                                        * type b1struct reserved b1struct
+                                        * serial number b1struct driver
+                                        * capability b1struct d-channel
+                                        * protocol b1struct CAPI-2.0
+                                        * profile b1struct capi version
                                         */
 #define RECEIVE_MESSAGE                0x21    /*
-                                          * <- after SEND_MESSAGE int32
-                                          * AppllID int32 Length capi-data
-                                          * .... 
+                                        * <- after SEND_MESSAGE int32
+                                        * AppllID int32 Length capi-data
+                                        * ....
                                         */
 #define RECEIVE_DATA_B3_IND    0x22    /*
-                                          * received data int32 AppllID
-                                          * int32 Length capi-data ...
-                                          * int32 B3Length data ... 
+                                        * received data int32 AppllID
+                                        * int32 Length capi-data ...
+                                        * int32 B3Length data ...
                                         */
 #define RECEIVE_START          0x23    /*
-                                          * Handshake 
+                                        * Handshake
                                         */
 #define RECEIVE_STOP           0x24    /*
-                                          * Handshake 
+                                        * Handshake
                                         */
 #define RECEIVE_NEW_NCCI       0x25    /*
-                                          * int32 AppllID int32 NCCI int32
-                                          * WindowSize 
+                                        * int32 AppllID int32 NCCI int32
+                                        * WindowSize
                                         */
 #define RECEIVE_FREE_NCCI      0x26    /*
-                                          * int32 AppllID int32 NCCI 
+                                        * int32 AppllID int32 NCCI
                                         */
 #define RECEIVE_RELEASE                0x26    /*
-                                          * int32 AppllID int32 0xffffffff 
+                                        * int32 AppllID int32 0xffffffff
                                         */
 #define RECEIVE_TASK_READY     0x31    /*
-                                          * int32 tasknr
-                                          * int32 Length Taskname ...
+                                        * int32 tasknr
+                                        * int32 Length Taskname ...
                                         */
 #define RECEIVE_DEBUGMSG       0x71    /*
-                                          * int32 Length message
-                                          * 
+                                        * int32 Length message
+                                        *
                                         */
 #define RECEIVE_POLLDWORD      0x75    /* t1pci in dword mode */
 
@@ -264,7 +264,7 @@ static inline void b1_put_byte(unsigned int base, unsigned char val)
 static inline int b1_save_put_byte(unsigned int base, unsigned char val)
 {
        unsigned long stop = jiffies + 2 * HZ;
-       while (!b1_tx_empty(base) && time_before(jiffies,stop));
+       while (!b1_tx_empty(base) && time_before(jiffies, stop));
        if (!b1_tx_empty(base)) return -1;
        b1outp(base, B1_WRITE, val);
        return 0;
@@ -298,21 +298,21 @@ static inline void b1_put_slice(unsigned int base,
 }
 
 static void b1_wr_reg(unsigned int base,
-                      unsigned int reg,
+                     unsigned int reg,
                      unsigned int value)
 {
        b1_put_byte(base, WRITE_REGISTER);
-        b1_put_word(base, reg);
-        b1_put_word(base, value);
+       b1_put_word(base, reg);
+       b1_put_word(base, value);
 }
 
 static inline unsigned int b1_rd_reg(unsigned int base,
-                                     unsigned int reg)
+                                    unsigned int reg)
 {
        b1_put_byte(base, READ_REGISTER);
-        b1_put_word(base, reg);
-        return b1_get_word(base);
-       
+       b1_put_word(base, reg);
+       return b1_get_word(base);
+
 }
 
 static inline void b1_reset(unsigned int base)
@@ -338,13 +338,13 @@ static inline void b1_set_test_bit(unsigned int base,
                                   enum avmcardtype cardtype,
                                   int onoff)
 {
-    b1_wr_reg(base, B1_STAT0(cardtype), onoff ? 0x21 : 0x20);
+       b1_wr_reg(base, B1_STAT0(cardtype), onoff ? 0x21 : 0x20);
 }
 
 static inline int b1_get_test_bit(unsigned int base,
-                                  enum avmcardtype cardtype)
+                                 enum avmcardtype cardtype)
 {
-    return (b1_rd_reg(base, B1_STAT0(cardtype)) & 0x01) != 0;
+       return (b1_rd_reg(base, B1_STAT0(cardtype)) & 0x01) != 0;
 }
 
 /* ---------------------------------------------------------------- */
@@ -391,7 +391,7 @@ static inline void t1outp(unsigned int base,
 }
 
 static inline unsigned char t1inp(unsigned int base,
-                                 unsigned short offset)
+                                 unsigned short offset)
 {
        return inb(base + offset);
 }
@@ -415,42 +415,42 @@ static inline unsigned int t1_get_slice(unsigned int base,
 #endif
 
        len = i = b1_get_word(base);
-        if (t1_isfastlink(base)) {
+       if (t1_isfastlink(base)) {
                int status;
                while (i > 0) {
-                       status = t1_fifostatus(base) & (T1F_IREADY|T1F_IHALF);
+                       status = t1_fifostatus(base) & (T1F_IREADY | T1F_IHALF);
                        if (i >= FIFO_INPBSIZE) status |= T1F_IFULL;
 
                        switch (status) {
-                               case T1F_IREADY|T1F_IHALF|T1F_IFULL:
-                                       insb(base+B1_READ, dp, FIFO_INPBSIZE);
-                                       dp += FIFO_INPBSIZE;
-                                       i -= FIFO_INPBSIZE;
+                       case T1F_IREADY | T1F_IHALF | T1F_IFULL:
+                               insb(base + B1_READ, dp, FIFO_INPBSIZE);
+                               dp += FIFO_INPBSIZE;
+                               i -= FIFO_INPBSIZE;
 #ifdef FASTLINK_DEBUG
-                                       wcnt += FIFO_INPBSIZE;
+                               wcnt += FIFO_INPBSIZE;
 #endif
-                                       break;
-                               case T1F_IREADY|T1F_IHALF: 
-                                       insb(base+B1_READ,dp, i);
+                               break;
+                       case T1F_IREADY | T1F_IHALF:
+                               insb(base + B1_READ, dp, i);
 #ifdef FASTLINK_DEBUG
-                                       wcnt += i;
+                               wcnt += i;
 #endif
-                                       dp += i;
-                                       i = 0;
-                                       break;
-                               default:
-                                       *dp++ = b1_get_byte(base);
-                                       i--;
+                               dp += i;
+                               i = 0;
+                               break;
+                       default:
+                               *dp++ = b1_get_byte(base);
+                               i--;
 #ifdef FASTLINK_DEBUG
-                                       bcnt++;
+                               bcnt++;
 #endif
-                                       break;
+                               break;
                        }
-           }
+               }
 #ifdef FASTLINK_DEBUG
-           if (wcnt)
-           printk(KERN_DEBUG "b1lli(0x%x): get_slice l=%d w=%d b=%d\n",
-                               base, len, wcnt, bcnt);
+               if (wcnt)
+                       printk(KERN_DEBUG "b1lli(0x%x): get_slice l=%d w=%d b=%d\n",
+                              base, len, wcnt, bcnt);
 #endif
        } else {
                while (i-- > 0)
@@ -464,26 +464,26 @@ static inline void t1_put_slice(unsigned int base,
 {
        unsigned i = len;
        b1_put_word(base, i);
-        if (t1_isfastlink(base)) {
+       if (t1_isfastlink(base)) {
                int status;
                while (i > 0) {
-                       status = t1_fifostatus(base) & (T1F_OREADY|T1F_OHALF);
+                       status = t1_fifostatus(base) & (T1F_OREADY | T1F_OHALF);
                        if (i >= FIFO_OUTBSIZE) status |= T1F_OEMPTY;
                        switch (status) {
-                               case T1F_OREADY|T1F_OHALF|T1F_OEMPTY: 
-                                       outsb(base+B1_WRITE, dp, FIFO_OUTBSIZE);
-                                       dp += FIFO_OUTBSIZE;
-                                       i -= FIFO_OUTBSIZE;
-                                       break;
-                               case T1F_OREADY|T1F_OHALF: 
-                                       outsb(base+B1_WRITE, dp, i);
-                                       dp += i;
-                                       i = 0;
-                                       break;
-                               default:
-                                       b1_put_byte(base, *dp++);
-                                       i--;
-                                       break;
+                       case T1F_OREADY | T1F_OHALF | T1F_OEMPTY:
+                               outsb(base + B1_WRITE, dp, FIFO_OUTBSIZE);
+                               dp += FIFO_OUTBSIZE;
+                               i -= FIFO_OUTBSIZE;
+                               break;
+                       case T1F_OREADY | T1F_OHALF:
+                               outsb(base + B1_WRITE, dp, i);
+                               dp += i;
+                               i = 0;
+                               break;
+                       default:
+                               b1_put_byte(base, *dp++);
+                               i--;
+                               break;
                        }
                }
        } else {
@@ -494,18 +494,18 @@ static inline void t1_put_slice(unsigned int base,
 
 static inline void t1_disable_irq(unsigned int base)
 {
-      t1outp(base, T1_IRQMASTER, 0x00);
+       t1outp(base, T1_IRQMASTER, 0x00);
 }
 
 static inline void t1_reset(unsigned int base)
 {
-        /* reset T1 Controller */
-        b1_reset(base);
-        /* disable irq on HEMA */
-        t1outp(base, B1_INSTAT, 0x00);
-        t1outp(base, B1_OUTSTAT, 0x00);
-        t1outp(base, T1_IRQMASTER, 0x00);
-        /* reset HEMA board configuration */
+       /* reset T1 Controller */
+       b1_reset(base);
+       /* disable irq on HEMA */
+       t1outp(base, B1_INSTAT, 0x00);
+       t1outp(base, B1_OUTSTAT, 0x00);
+       t1outp(base, T1_IRQMASTER, 0x00);
+       /* reset HEMA board configuration */
        t1outp(base, T1_RESETBOARD, 0xf);
 }
 
@@ -513,29 +513,29 @@ static inline void b1_setinterrupt(unsigned int base, unsigned irq,
                                   enum avmcardtype cardtype)
 {
        switch (cardtype) {
-          case avm_t1isa:
-              t1outp(base, B1_INSTAT, 0x00);
-              t1outp(base, B1_INSTAT, 0x02);
-             t1outp(base, T1_IRQMASTER, 0x08);
-             break;
-          case avm_b1isa:
-             b1outp(base, B1_INSTAT, 0x00);
-             b1outp(base, B1_RESET, b1_irq_table[irq]);
-             b1outp(base, B1_INSTAT, 0x02);
-             break;
-          default:
-          case avm_m1:
-          case avm_m2:
-          case avm_b1pci:
-             b1outp(base, B1_INSTAT, 0x00);
-             b1outp(base, B1_RESET, 0xf0);
-             b1outp(base, B1_INSTAT, 0x02);
-             break;
-          case avm_c4:
-          case avm_t1pci:
-             b1outp(base, B1_RESET, 0xf0);
-             break;
-        }
+       case avm_t1isa:
+               t1outp(base, B1_INSTAT, 0x00);
+               t1outp(base, B1_INSTAT, 0x02);
+               t1outp(base, T1_IRQMASTER, 0x08);
+               break;
+       case avm_b1isa:
+               b1outp(base, B1_INSTAT, 0x00);
+               b1outp(base, B1_RESET, b1_irq_table[irq]);
+               b1outp(base, B1_INSTAT, 0x02);
+               break;
+       default:
+       case avm_m1:
+       case avm_m2:
+       case avm_b1pci:
+               b1outp(base, B1_INSTAT, 0x00);
+               b1outp(base, B1_RESET, 0xf0);
+               b1outp(base, B1_INSTAT, 0x02);
+               break;
+       case avm_c4:
+       case avm_t1pci:
+               b1outp(base, B1_RESET, 0xf0);
+               break;
+       }
 }
 
 /* b1.c */
@@ -543,14 +543,14 @@ avmcard *b1_alloc_card(int nr_controllers);
 void b1_free_card(avmcard *card);
 int b1_detect(unsigned int base, enum avmcardtype cardtype);
 void b1_getrevision(avmcard *card);
-int b1_load_t4file(avmcard *card, capiloaddatapart * t4file);
-int b1_load_config(avmcard *card, capiloaddatapart * config);
+int b1_load_t4file(avmcard *card, capiloaddatapart *t4file);
+int b1_load_config(avmcard *card, capiloaddatapart *config);
 int b1_loaded(avmcard *card);
 
 int b1_load_firmware(struct capi_ctr *ctrl, capiloaddata *data);
 void b1_reset_ctr(struct capi_ctr *ctrl);
 void b1_register_appl(struct capi_ctr *ctrl, u16 appl,
-                               capi_register_params *rp);
+                     capi_register_params *rp);
 void b1_release_appl(struct capi_ctr *ctrl, u16 appl);
 u16  b1_send_message(struct capi_ctr *ctrl, struct sk_buff *skb);
 void b1_parse_version(avmctrl_info *card);
@@ -572,8 +572,8 @@ int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data);
 void b1dma_reset_ctr(struct capi_ctr *ctrl);
 void b1dma_remove_ctr(struct capi_ctr *ctrl);
 void b1dma_register_appl(struct capi_ctr *ctrl,
-                               u16 appl,
-                               capi_register_params *rp);
+                        u16 appl,
+                        capi_register_params *rp);
 void b1dma_release_appl(struct capi_ctr *ctrl, u16 appl);
 u16  b1dma_send_message(struct capi_ctr *ctrl, struct sk_buff *skb);
 extern const struct file_operations b1dmactl_proc_fops;
index 2a57da5..821f7ac 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id: b1.c,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
- * 
+ *
  * Common module for AVM B1 cards.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
  *
  * This software may be used and distributed according to the terms
@@ -60,7 +60,7 @@ int b1_irq_table[16] =
  112,                          /* irq 15 */
 };
 
-/* ------------------------------------------------------------- */    
+/* ------------------------------------------------------------- */
 
 avmcard *b1_alloc_card(int nr_controllers)
 {
@@ -104,13 +104,13 @@ int b1_detect(unsigned int base, enum avmcardtype cardtype)
        int onoff, i;
 
        /*
-        * Statusregister 0000 00xx 
+        * Statusregister 0000 00xx
         */
        if ((inb(base + B1_INSTAT) & 0xfc)
            || (inb(base + B1_OUTSTAT) & 0xfc))
                return 1;
        /*
-        * Statusregister 0000 001x 
+        * Statusregister 0000 001x
         */
        b1outp(base, B1_INSTAT, 0x2);   /* enable irq */
        /* b1outp(base, B1_OUTSTAT, 0x2); */
@@ -118,38 +118,38 @@ int b1_detect(unsigned int base, enum avmcardtype cardtype)
            /* || (inb(base + B1_OUTSTAT) & 0xfe) != 0x2 */)
                return 2;
        /*
-        * Statusregister 0000 000x 
+        * Statusregister 0000 000x
         */
        b1outp(base, B1_INSTAT, 0x0);   /* disable irq */
        b1outp(base, B1_OUTSTAT, 0x0);
        if ((inb(base + B1_INSTAT) & 0xfe)
            || (inb(base + B1_OUTSTAT) & 0xfe))
                return 3;
-        
-       for (onoff = !0, i= 0; i < 10 ; i++) {
+
+       for (onoff = !0, i = 0; i < 10; i++) {
                b1_set_test_bit(base, cardtype, onoff);
                if (b1_get_test_bit(base, cardtype) != onoff)
-                  return 4;
+                       return 4;
                onoff = !onoff;
        }
 
        if (cardtype == avm_m1)
-          return 0;
+               return 0;
 
-        if ((b1_rd_reg(base, B1_STAT1(cardtype)) & 0x0f) != 0x01)
-          return 5;
+       if ((b1_rd_reg(base, B1_STAT1(cardtype)) & 0x0f) != 0x01)
+               return 5;
 
        return 0;
 }
 
 void b1_getrevision(avmcard *card)
 {
-    card->class = inb(card->port + B1_ANALYSE);
-    card->revision = inb(card->port + B1_REVISION);
+       card->class = inb(card->port + B1_ANALYSE);
+       card->revision = inb(card->port + B1_REVISION);
 }
 
 #define FWBUF_SIZE     256
-int b1_load_t4file(avmcard *card, capiloaddatapart * t4file)
+int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
 {
        unsigned char buf[FWBUF_SIZE];
        unsigned char *dp;
@@ -168,7 +168,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart * t4file)
                for (i = 0; i < FWBUF_SIZE; i++)
                        if (b1_save_put_byte(base, buf[i]) < 0) {
                                printk(KERN_ERR "%s: corrupted firmware file ?\n",
-                                               card->name);
+                                      card->name);
                                return -EIO;
                        }
                left -= FWBUF_SIZE;
@@ -184,14 +184,14 @@ int b1_load_t4file(avmcard *card, capiloaddatapart * t4file)
                for (i = 0; i < left; i++)
                        if (b1_save_put_byte(base, buf[i]) < 0) {
                                printk(KERN_ERR "%s: corrupted firmware file ?\n",
-                                               card->name);
+                                      card->name);
                                return -EIO;
                        }
        }
        return 0;
 }
 
-int b1_load_config(avmcard *card, capiloaddatapart * config)
+int b1_load_config(avmcard *card, capiloaddatapart *config)
 {
        unsigned char buf[FWBUF_SIZE];
        unsigned char *dp;
@@ -202,9 +202,9 @@ int b1_load_config(avmcard *card, capiloaddatapart * config)
        left = config->len;
        if (left) {
                b1_put_byte(base, SEND_CONFIG);
-               b1_put_word(base, 1);
+               b1_put_word(base, 1);
                b1_put_byte(base, SEND_CONFIG);
-               b1_put_word(base, left);
+               b1_put_word(base, left);
        }
        while (left > FWBUF_SIZE) {
                if (config->user) {
@@ -215,7 +215,7 @@ int b1_load_config(avmcard *card, capiloaddatapart * config)
                }
                for (i = 0; i < FWBUF_SIZE; ) {
                        b1_put_byte(base, SEND_CONFIG);
-                       for (j=0; j < 4; j++) {
+                       for (j = 0; j < 4; j++) {
                                b1_put_byte(base, buf[i++]);
                        }
                }
@@ -231,7 +231,7 @@ int b1_load_config(avmcard *card, capiloaddatapart * config)
                }
                for (i = 0; i < left; ) {
                        b1_put_byte(base, SEND_CONFIG);
-                       for (j=0; j < 4; j++) {
+                       for (j = 0; j < 4; j++) {
                                if (i < left)
                                        b1_put_byte(base, buf[i++]);
                                else
@@ -255,7 +255,7 @@ int b1_loaded(avmcard *card)
        }
        if (!b1_tx_empty(base)) {
                printk(KERN_ERR "%s: b1_loaded: tx err, corrupted t4 file ?\n",
-                               card->name);
+                      card->name);
                return 0;
        }
        b1_put_byte(base, SEND_POLL);
@@ -265,7 +265,7 @@ int b1_loaded(avmcard *card)
                                return 1;
                        }
                        printk(KERN_ERR "%s: b1_loaded: got 0x%x, firmware not running\n",
-                                       card->name, ans);
+                              card->name, ans);
                        return 0;
                }
        }
@@ -288,7 +288,7 @@ int b1_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        if ((retval = b1_load_t4file(card, &data->firmware))) {
                b1_reset(port);
                printk(KERN_ERR "%s: failed to load t4file!!\n",
-                                       card->name);
+                      card->name);
                return retval;
        }
 
@@ -298,7 +298,7 @@ int b1_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
                if ((retval = b1_load_config(card, &data->configuration))) {
                        b1_reset(port);
                        printk(KERN_ERR "%s: failed to load config!!\n",
-                                       card->name);
+                              card->name);
                        return retval;
                }
        }
@@ -312,7 +312,7 @@ int b1_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        b1_setinterrupt(port, card->irq, card->cardtype);
        b1_put_byte(port, SEND_INIT);
        b1_put_word(port, CAPI_MAXAPPL);
-       b1_put_word(port, AVM_NCCI_PER_CHANNEL*2);
+       b1_put_word(port, AVM_NCCI_PER_CHANNEL * 2);
        b1_put_word(port, ctrl->cnr - 1);
        spin_unlock_irqrestore(&card->lock, flags);
 
@@ -337,8 +337,8 @@ void b1_reset_ctr(struct capi_ctr *ctrl)
 }
 
 void b1_register_appl(struct capi_ctr *ctrl,
-                               u16 appl,
-                               capi_register_params *rp)
+                     u16 appl,
+                     capi_register_params *rp)
 {
        avmctrl_info *cinfo = (avmctrl_info *)(ctrl->driverdata);
        avmcard *card = cinfo->card;
@@ -353,7 +353,7 @@ void b1_register_appl(struct capi_ctr *ctrl,
        spin_lock_irqsave(&card->lock, flags);
        b1_put_byte(port, SEND_REGISTER);
        b1_put_word(port, appl);
-       b1_put_word(port, 1024 * (nconn+1));
+       b1_put_word(port, 1024 * (nconn + 1));
        b1_put_word(port, nconn);
        b1_put_word(port, rp->datablkcnt);
        b1_put_word(port, rp->datablklen);
@@ -430,7 +430,7 @@ void b1_parse_version(avmctrl_info *cinfo)
                cinfo->version[j] = &cinfo->versionbuf[i + 1];
 
        strlcpy(ctrl->serial, cinfo->version[VER_SERIAL], sizeof(ctrl->serial));
-       memcpy(&ctrl->profile, cinfo->version[VER_PROFILE],sizeof(capi_profile));
+       memcpy(&ctrl->profile, cinfo->version[VER_PROFILE], sizeof(capi_profile));
        strlcpy(ctrl->manu, "AVM GmbH", sizeof(ctrl->manu));
        dversion = cinfo->version[VER_DRIVER];
        ctrl->version.majorversion = 2;
@@ -439,49 +439,49 @@ void b1_parse_version(avmctrl_info *cinfo)
        ctrl->version.majormanuversion |= ((dversion[2] - '0') & 0xf);
        ctrl->version.minormanuversion = (dversion[3] - '0') << 4;
        ctrl->version.minormanuversion |=
-                       (dversion[5] - '0') * 10 + ((dversion[6] - '0') & 0xf);
+               (dversion[5] - '0') * 10 + ((dversion[6] - '0') & 0xf);
 
        profp = &ctrl->profile;
 
        flag = ((u8 *)(profp->manu))[1];
        switch (flag) {
        case 0: if (cinfo->version[VER_CARDTYPE])
-                  strcpy(cinfo->cardname, cinfo->version[VER_CARDTYPE]);
-               else strcpy(cinfo->cardname, "B1");
+                       strcpy(cinfo->cardname, cinfo->version[VER_CARDTYPE]);
+               else strcpy(cinfo->cardname, "B1");
                break;
-       case 3: strcpy(cinfo->cardname,"PCMCIA B"); break;
-       case 4: strcpy(cinfo->cardname,"PCMCIA M1"); break;
-       case 5: strcpy(cinfo->cardname,"PCMCIA M2"); break;
-       case 6: strcpy(cinfo->cardname,"B1 V3.0"); break;
-       case 7: strcpy(cinfo->cardname,"B1 PCI"); break;
+       case 3: strcpy(cinfo->cardname, "PCMCIA B"); break;
+       case 4: strcpy(cinfo->cardname, "PCMCIA M1"); break;
+       case 5: strcpy(cinfo->cardname, "PCMCIA M2"); break;
+       case 6: strcpy(cinfo->cardname, "B1 V3.0"); break;
+       case 7: strcpy(cinfo->cardname, "B1 PCI"); break;
        default: sprintf(cinfo->cardname, "AVM?%u", (unsigned int)flag); break;
-        }
-        printk(KERN_NOTICE "%s: card %d \"%s\" ready.\n",
-                               card->name, ctrl->cnr, cinfo->cardname);
+       }
+       printk(KERN_NOTICE "%s: card %d \"%s\" ready.\n",
+              card->name, ctrl->cnr, cinfo->cardname);
 
-        flag = ((u8 *)(profp->manu))[3];
-        if (flag)
+       flag = ((u8 *)(profp->manu))[3];
+       if (flag)
                printk(KERN_NOTICE "%s: card %d Protocol:%s%s%s%s%s%s%s\n",
-                       card->name,
-                       ctrl->cnr,
-                       (flag & 0x01) ? " DSS1" : "",
-                       (flag & 0x02) ? " CT1" : "",
-                       (flag & 0x04) ? " VN3" : "",
-                       (flag & 0x08) ? " NI1" : "",
-                       (flag & 0x10) ? " AUSTEL" : "",
-                       (flag & 0x20) ? " ESS" : "",
-                       (flag & 0x40) ? " 1TR6" : ""
+                      card->name,
+                      ctrl->cnr,
+                      (flag & 0x01) ? " DSS1" : "",
+                      (flag & 0x02) ? " CT1" : "",
+                      (flag & 0x04) ? " VN3" : "",
+                      (flag & 0x08) ? " NI1" : "",
+                      (flag & 0x10) ? " AUSTEL" : "",
+                      (flag & 0x20) ? " ESS" : "",
+                      (flag & 0x40) ? " 1TR6" : ""
                        );
 
-        flag = ((u8 *)(profp->manu))[5];
+       flag = ((u8 *)(profp->manu))[5];
        if (flag)
                printk(KERN_NOTICE "%s: card %d Linetype:%s%s%s%s\n",
-                       card->name,
-                       ctrl->cnr,
-                       (flag & 0x01) ? " point to point" : "",
-                       (flag & 0x02) ? " point to multipoint" : "",
-                       (flag & 0x08) ? " leased line without D-channel" : "",
-                       (flag & 0x04) ? " leased line with D-channel" : ""
+                      card->name,
+                      ctrl->cnr,
+                      (flag & 0x01) ? " point to point" : "",
+                      (flag & 0x02) ? " point to multipoint" : "",
+                      (flag & 0x08) ? " leased line without D-channel" : "",
+                      (flag & 0x04) ? " leased line with D-channel" : ""
                        );
 }
 
@@ -521,13 +521,13 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
                spin_unlock_irqrestore(&card->lock, flags);
 
                if (MsgLen < 30) { /* not CAPI 64Bit */
-                       memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
+                       memset(card->msgbuf + MsgLen, 0, 30-MsgLen);
                        MsgLen = 30;
                        CAPIMSG_SETLEN(card->msgbuf, 30);
                }
                if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
                        printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                              card->name);
                } else {
                        memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                        memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len);
@@ -541,7 +541,7 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
                MsgLen = b1_get_slice(card->port, card->msgbuf);
                if (!(skb = alloc_skb(MsgLen, GFP_ATOMIC))) {
                        printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                              card->name);
                        spin_unlock_irqrestore(&card->lock, flags);
                } else {
                        memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
@@ -573,7 +573,7 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
                break;
 
        case RECEIVE_START:
-               /* b1_put_byte(card->port, SEND_POLLACK); */
+               /* b1_put_byte(card->port, SEND_POLLACK); */
                spin_unlock_irqrestore(&card->lock, flags);
                capi_ctr_resume_output(ctrl);
                break;
@@ -600,24 +600,24 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
                MsgLen = b1_get_slice(card->port, card->msgbuf);
                spin_unlock_irqrestore(&card->lock, flags);
                card->msgbuf[MsgLen] = 0;
-               while (    MsgLen > 0
-                      && (   card->msgbuf[MsgLen-1] == '\n'
-                          || card->msgbuf[MsgLen-1] == '\r')) {
-                       card->msgbuf[MsgLen-1] = 0;
+               while (MsgLen > 0
+                      && (card->msgbuf[MsgLen - 1] == '\n'
+                          || card->msgbuf[MsgLen - 1] == '\r')) {
+                       card->msgbuf[MsgLen - 1] = 0;
                        MsgLen--;
                }
                printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
-                               card->name, ApplId, card->msgbuf);
+                      card->name, ApplId, card->msgbuf);
                break;
 
        case RECEIVE_DEBUGMSG:
                MsgLen = b1_get_slice(card->port, card->msgbuf);
                spin_unlock_irqrestore(&card->lock, flags);
                card->msgbuf[MsgLen] = 0;
-               while (    MsgLen > 0
-                      && (   card->msgbuf[MsgLen-1] == '\n'
-                          || card->msgbuf[MsgLen-1] == '\r')) {
-                       card->msgbuf[MsgLen-1] = 0;
+               while (MsgLen > 0
+                      && (card->msgbuf[MsgLen - 1] == '\n'
+                          || card->msgbuf[MsgLen - 1] == '\r')) {
+                       card->msgbuf[MsgLen - 1] = 0;
                        MsgLen--;
                }
                printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -630,7 +630,7 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
        default:
                spin_unlock_irqrestore(&card->lock, flags);
                printk(KERN_ERR "%s: b1_interrupt: 0x%x ???\n",
-                               card->name, b1cmd);
+                      card->name, b1cmd);
                return IRQ_HANDLED;
        }
        return IRQ_HANDLED;
@@ -671,29 +671,29 @@ static int b1ctl_proc_show(struct seq_file *m, void *v)
                seq_printf(m, "%-16s %s\n", "ver_serial", s);
 
        if (card->cardtype != avm_m1) {
-               flag = ((u8 *)(ctrl->profile.manu))[3];
-               if (flag)
+               flag = ((u8 *)(ctrl->profile.manu))[3];
+               if (flag)
                        seq_printf(m, "%-16s%s%s%s%s%s%s%s\n",
-                       "protocol",
-                       (flag & 0x01) ? " DSS1" : "",
-                       (flag & 0x02) ? " CT1" : "",
-                       (flag & 0x04) ? " VN3" : "",
-                       (flag & 0x08) ? " NI1" : "",
-                       (flag & 0x10) ? " AUSTEL" : "",
-                       (flag & 0x20) ? " ESS" : "",
-                       (flag & 0x40) ? " 1TR6" : ""
-                       );
+                                  "protocol",
+                                  (flag & 0x01) ? " DSS1" : "",
+                                  (flag & 0x02) ? " CT1" : "",
+                                  (flag & 0x04) ? " VN3" : "",
+                                  (flag & 0x08) ? " NI1" : "",
+                                  (flag & 0x10) ? " AUSTEL" : "",
+                                  (flag & 0x20) ? " ESS" : "",
+                                  (flag & 0x40) ? " 1TR6" : ""
+                               );
        }
        if (card->cardtype != avm_m1) {
-               flag = ((u8 *)(ctrl->profile.manu))[5];
+               flag = ((u8 *)(ctrl->profile.manu))[5];
                if (flag)
                        seq_printf(m, "%-16s%s%s%s%s\n",
-                       "linetype",
-                       (flag & 0x01) ? " point to point" : "",
-                       (flag & 0x02) ? " point to multipoint" : "",
-                       (flag & 0x08) ? " leased line without D-channel" : "",
-                       (flag & 0x04) ? " leased line with D-channel" : ""
-                       );
+                                  "linetype",
+                                  (flag & 0x01) ? " point to point" : "",
+                                  (flag & 0x02) ? " point to multipoint" : "",
+                                  (flag & 0x08) ? " leased line without D-channel" : "",
+                                  (flag & 0x04) ? " leased line with D-channel" : ""
+                               );
        }
        seq_printf(m, "%-16s %s\n", "cardname", cinfo->cardname);
 
@@ -750,12 +750,12 @@ avmcard_dma_alloc(char *name, struct pci_dev *pdev, long rsize, long ssize)
 
        return p;
 
- err_free_consistent:
+err_free_consistent:
        pci_free_consistent(p->pcidev, p->recvbuf.size,
                            p->recvbuf.dmabuf, p->recvbuf.dmaaddr);
- err_kfree:
+err_kfree:
        kfree(p);
- err:
+err:
        return NULL;
 }
 
@@ -800,7 +800,7 @@ static int __init b1_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index a0ed668..0896aa8 100644 (file)
@@ -1,9 +1,9 @@
 /* $Id: b1dma.c,v 1.1.2.3 2004/02/10 01:07:12 keil Exp $
- * 
+ *
  * Common module for AVM B1 cards that support dma with AMCC
- * 
+ *
  * Copyright 2000 by Carsten Paeth <calle@calle.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -110,11 +110,11 @@ static int b1dma_tolink(avmcard *card, void *buf, unsigned int len)
        unsigned long stop = jiffies + 1 * HZ;  /* maximum wait time 1 sec */
        unsigned char *s = (unsigned char *)buf;
        while (len--) {
-               while (   !b1dma_tx_empty(card->port)
+               while (!b1dma_tx_empty(card->port)
                       && time_before(jiffies, stop));
-               if (!b1dma_tx_empty(card->port)) 
+               if (!b1dma_tx_empty(card->port))
                        return -1;
-               t1outp(card->port, 0x01, *s++);
+               t1outp(card->port, 0x01, *s++);
        }
        return 0;
 }
@@ -124,11 +124,11 @@ static int b1dma_fromlink(avmcard *card, void *buf, unsigned int len)
        unsigned long stop = jiffies + 1 * HZ;  /* maximum wait time 1 sec */
        unsigned char *s = (unsigned char *)buf;
        while (len--) {
-               while (   !b1dma_rx_full(card->port)
+               while (!b1dma_rx_full(card->port)
                       && time_before(jiffies, stop));
-               if (!b1dma_rx_full(card->port)) 
+               if (!b1dma_rx_full(card->port))
                        return -1;
-               *s++ = t1inp(card->port, 0x00);
+               *s++ = t1inp(card->port, 0x00);
        }
        return 0;
 }
@@ -136,7 +136,7 @@ static int b1dma_fromlink(avmcard *card, void *buf, unsigned int len)
 static int WriteReg(avmcard *card, u32 reg, u8 val)
 {
        u8 cmd = 0x00;
-       if (   b1dma_tolink(card, &cmd, 1) == 0
+       if (b1dma_tolink(card, &cmd, 1) == 0
            && b1dma_tolink(card, &reg, 4) == 0) {
                u32 tmp = val;
                return b1dma_tolink(card, &tmp, 4);
@@ -147,7 +147,7 @@ static int WriteReg(avmcard *card, u32 reg, u8 val)
 static u8 ReadReg(avmcard *card, u32 reg)
 {
        u8 cmd = 0x01;
-       if (   b1dma_tolink(card, &cmd, 1) == 0
+       if (b1dma_tolink(card, &cmd, 1) == 0
            && b1dma_tolink(card, &reg, 4) == 0) {
                u32 tmp;
                if (b1dma_fromlink(card, &tmp, 4) == 0)
@@ -258,30 +258,30 @@ static int b1dma_detect(avmcard *card)
 
        b1dma_writel(card, 0xffffffff, AMCC_RXPTR);
        b1dma_writel(card, 0xffffffff, AMCC_TXPTR);
-       if (   b1dma_readl(card, AMCC_RXPTR) != 0xfffffffc
+       if (b1dma_readl(card, AMCC_RXPTR) != 0xfffffffc
            || b1dma_readl(card, AMCC_TXPTR) != 0xfffffffc)
                return 2;
 
        b1dma_writel(card, 0x0, AMCC_RXPTR);
        b1dma_writel(card, 0x0, AMCC_TXPTR);
-       if (   b1dma_readl(card, AMCC_RXPTR) != 0x0
+       if (b1dma_readl(card, AMCC_RXPTR) != 0x0
            || b1dma_readl(card, AMCC_TXPTR) != 0x0)
                return 3;
 
        t1outp(card->port, 0x10, 0x00);
        t1outp(card->port, 0x07, 0x00);
-       
+
        t1outp(card->port, 0x02, 0x02);
        t1outp(card->port, 0x03, 0x02);
 
-       if (   (t1inp(card->port, 0x02) & 0xFE) != 0x02
+       if ((t1inp(card->port, 0x02) & 0xFE) != 0x02
            || t1inp(card->port, 0x3) != 0x03)
                return 4;
 
        t1outp(card->port, 0x02, 0x00);
        t1outp(card->port, 0x03, 0x00);
 
-       if (   (t1inp(card->port, 0x02) & 0xFE) != 0x00
+       if ((t1inp(card->port, 0x02) & 0xFE) != 0x00
            || t1inp(card->port, 0x3) != 0x01)
                return 5;
 
@@ -294,28 +294,28 @@ int t1pci_detect(avmcard *card)
 
        if ((ret = b1dma_detect(card)) != 0)
                return ret;
-       
+
        /* Transputer test */
-       
-       if (   WriteReg(card, 0x80001000, 0x11) != 0
+
+       if (WriteReg(card, 0x80001000, 0x11) != 0
            || WriteReg(card, 0x80101000, 0x22) != 0
            || WriteReg(card, 0x80201000, 0x33) != 0
            || WriteReg(card, 0x80301000, 0x44) != 0)
                return 6;
 
-       if (   ReadReg(card, 0x80001000) != 0x11
+       if (ReadReg(card, 0x80001000) != 0x11
            || ReadReg(card, 0x80101000) != 0x22
            || ReadReg(card, 0x80201000) != 0x33
            || ReadReg(card, 0x80301000) != 0x44)
                return 7;
 
-       if (   WriteReg(card, 0x80001000, 0x55) != 0
+       if (WriteReg(card, 0x80001000, 0x55) != 0
            || WriteReg(card, 0x80101000, 0x66) != 0
            || WriteReg(card, 0x80201000, 0x77) != 0
            || WriteReg(card, 0x80301000, 0x88) != 0)
                return 8;
 
-       if (   ReadReg(card, 0x80001000) != 0x55
+       if (ReadReg(card, 0x80001000) != 0x55
            || ReadReg(card, 0x80101000) != 0x66
            || ReadReg(card, 0x80201000) != 0x77
            || ReadReg(card, 0x80301000) != 0x88)
@@ -330,20 +330,20 @@ int b1pciv4_detect(avmcard *card)
 
        if ((ret = b1dma_detect(card)) != 0)
                return ret;
-       
-       for (i=0; i < 5 ; i++) {
+
+       for (i = 0; i < 5; i++) {
                if (WriteReg(card, 0x80A00000, 0x21) != 0)
                        return 6;
                if ((ReadReg(card, 0x80A00000) & 0x01) != 0x01)
                        return 7;
        }
-       for (i=0; i < 5 ; i++) {
+       for (i = 0; i < 5; i++) {
                if (WriteReg(card, 0x80A00000, 0x20) != 0)
                        return 8;
                if ((ReadReg(card, 0x80A00000) & 0x01) != 0x00)
                        return 9;
        }
-       
+
        return 0;
 }
 
@@ -373,7 +373,7 @@ static void b1dma_dispatch_tx(avmcard *card)
        u16 len;
        u32 txlen;
        void *p;
-       
+
        skb = skb_dequeue(&dma->send_queue);
 
        len = CAPIMSG_LEN(skb->data);
@@ -398,13 +398,13 @@ static void b1dma_dispatch_tx(avmcard *card)
                printk(KERN_DEBUG "tx: put msg len=%d\n", txlen);
 #endif
        } else {
-               txlen = skb->len-2;
+               txlen = skb->len - 2;
 #ifdef AVM_B1DMA_POLLDEBUG
                if (skb->data[2] == SEND_POLLACK)
                        printk(KERN_INFO "%s: send ack\n", card->name);
 #endif
 #ifdef AVM_B1DMA_DEBUG
-               printk(KERN_DEBUG "tx: put 0x%x len=%d\n", 
+               printk(KERN_DEBUG "tx: put 0x%x len=%d\n",
                       skb->data[2], txlen);
 #endif
                skb_copy_from_linear_data_offset(skb, 2, dma->sendbuf.dmabuf,
@@ -430,7 +430,7 @@ static void queue_pollack(avmcard *card)
        skb = alloc_skb(3, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, lost poll ack\n",
-                                       card->name);
+                      card->name);
                return;
        }
        p = skb->data;
@@ -450,14 +450,14 @@ static void b1dma_handle_rx(avmcard *card)
        avmcard_dmainfo *dma = card->dma;
        struct capi_ctr *ctrl = &cinfo->capi_ctrl;
        struct sk_buff *skb;
-       void *p = dma->recvbuf.dmabuf+4;
+       void *p = dma->recvbuf.dmabuf + 4;
        u32 ApplId, MsgLen, DataB3Len, NCCI, WindowSize;
        u8 b1cmd =  _get_byte(&p);
 
 #ifdef AVM_B1DMA_DEBUG
        printk(KERN_DEBUG "rx: 0x%x %lu\n", b1cmd, (unsigned long)dma->recvlen);
 #endif
-       
+
        switch (b1cmd) {
        case RECEIVE_DATA_B3_IND:
 
@@ -466,13 +466,13 @@ static void b1dma_handle_rx(avmcard *card)
                DataB3Len = _get_slice(&p, card->databuf);
 
                if (MsgLen < 30) { /* not CAPI 64Bit */
-                       memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
+                       memset(card->msgbuf + MsgLen, 0, 30 - MsgLen);
                        MsgLen = 30;
                        CAPIMSG_SETLEN(card->msgbuf, 30);
                }
-               if (!(skb = alloc_skb(DataB3Len+MsgLen, GFP_ATOMIC))) {
+               if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
                        printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                              card->name);
                } else {
                        memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                        memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len);
@@ -486,14 +486,14 @@ static void b1dma_handle_rx(avmcard *card)
                MsgLen = _get_slice(&p, card->msgbuf);
                if (!(skb = alloc_skb(MsgLen, GFP_ATOMIC))) {
                        printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                              card->name);
                } else {
                        memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                        if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) {
                                spin_lock(&card->lock);
                                capilib_data_b3_conf(&cinfo->ncci_head, ApplId,
-                                       CAPIMSG_NCCI(skb->data),
-                                       CAPIMSG_MSGID(skb->data));
+                                                    CAPIMSG_NCCI(skb->data),
+                                                    CAPIMSG_MSGID(skb->data));
                                spin_unlock(&card->lock);
                        }
                        capi_ctr_handle_message(ctrl, ApplId, skb);
@@ -550,23 +550,23 @@ static void b1dma_handle_rx(avmcard *card)
                ApplId = (unsigned) _get_word(&p);
                MsgLen = _get_slice(&p, card->msgbuf);
                card->msgbuf[MsgLen] = 0;
-               while (    MsgLen > 0
-                      && (   card->msgbuf[MsgLen-1] == '\n'
-                          || card->msgbuf[MsgLen-1] == '\r')) {
-                       card->msgbuf[MsgLen-1] = 0;
+               while (MsgLen > 0
+                      && (card->msgbuf[MsgLen - 1] == '\n'
+                          || card->msgbuf[MsgLen - 1] == '\r')) {
+                       card->msgbuf[MsgLen - 1] = 0;
                        MsgLen--;
                }
                printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
-                               card->name, ApplId, card->msgbuf);
+                      card->name, ApplId, card->msgbuf);
                break;
 
        case RECEIVE_DEBUGMSG:
                MsgLen = _get_slice(&p, card->msgbuf);
                card->msgbuf[MsgLen] = 0;
-               while (    MsgLen > 0
-                      && (   card->msgbuf[MsgLen-1] == '\n'
-                          || card->msgbuf[MsgLen-1] == '\r')) {
-                       card->msgbuf[MsgLen-1] = 0;
+               while (MsgLen > 0
+                      && (card->msgbuf[MsgLen - 1] == '\n'
+                          || card->msgbuf[MsgLen - 1] == '\r')) {
+                       card->msgbuf[MsgLen - 1] = 0;
                        MsgLen--;
                }
                printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -574,7 +574,7 @@ static void b1dma_handle_rx(avmcard *card)
 
        default:
                printk(KERN_ERR "%s: b1dma_interrupt: 0x%x ???\n",
-                               card->name, b1cmd);
+                      card->name, b1cmd);
                return;
        }
 }
@@ -594,7 +594,7 @@ static void b1dma_handle_interrupt(avmcard *card)
                return;
        }
 
-        newcsr = card->csr | (status & ALL_INT);
+       newcsr = card->csr | (status & ALL_INT);
        if (status & TX_TC_INT) newcsr &= ~EN_TX_TC_INT;
        if (status & RX_TC_INT) newcsr &= ~EN_RX_TC_INT;
        b1dma_writel(card, newcsr, AMCC_INTCSR);
@@ -602,23 +602,23 @@ static void b1dma_handle_interrupt(avmcard *card)
        if ((status & RX_TC_INT) != 0) {
                struct avmcard_dmainfo *dma = card->dma;
                u32 rxlen;
-               if (card->dma->recvlen == 0) {
-                       rxlen = b1dma_readl(card, AMCC_RXLEN);
+               if (card->dma->recvlen == 0) {
+                       rxlen = b1dma_readl(card, AMCC_RXLEN);
                        if (rxlen == 0) {
                                dma->recvlen = *((u32 *)dma->recvbuf.dmabuf);
                                rxlen = (dma->recvlen + 3) & ~3;
-                               b1dma_writel(card, dma->recvbuf.dmaaddr+4, AMCC_RXPTR);
+                               b1dma_writel(card, dma->recvbuf.dmaaddr + 4, AMCC_RXPTR);
                                b1dma_writel(card, rxlen, AMCC_RXLEN);
 #ifdef AVM_B1DMA_DEBUG
                        } else {
                                printk(KERN_ERR "%s: rx not complete (%d).\n",
-                                       card->name, rxlen);
+                                      card->name, rxlen);
 #endif
                        }
                } else {
                        spin_unlock(&card->lock);
                        b1dma_handle_rx(card);
-                       dma->recvlen = 0;
+                       dma->recvlen = 0;
                        spin_lock(&card->lock);
                        b1dma_writel(card, dma->recvbuf.dmaaddr, AMCC_RXPTR);
                        b1dma_writel(card, 4, AMCC_RXLEN);
@@ -659,7 +659,7 @@ static int b1dma_loaded(avmcard *card)
        }
        if (!b1_tx_empty(base)) {
                printk(KERN_ERR "%s: b1dma_loaded: tx err, corrupted t4 file ?\n",
-                               card->name);
+                      card->name);
                return 0;
        }
        b1_put_byte(base, SEND_POLLACK);
@@ -686,7 +686,7 @@ static void b1dma_send_init(avmcard *card)
        skb = alloc_skb(15, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, lost register appl.\n",
-                                       card->name);
+                      card->name);
                return;
        }
        p = skb->data;
@@ -694,7 +694,7 @@ static void b1dma_send_init(avmcard *card)
        _put_byte(&p, 0);
        _put_byte(&p, SEND_INIT);
        _put_word(&p, CAPI_MAXAPPL);
-       _put_word(&p, AVM_NCCI_PER_CHANNEL*30);
+       _put_word(&p, AVM_NCCI_PER_CHANNEL * 30);
        _put_word(&p, card->cardnr - 1);
        skb_put(skb, (u8 *)p - (u8 *)skb->data);
 
@@ -712,7 +712,7 @@ int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        if ((retval = b1_load_t4file(card, &data->firmware))) {
                b1dma_reset(card);
                printk(KERN_ERR "%s: failed to load t4file!!\n",
-                                       card->name);
+                      card->name);
                return retval;
        }
 
@@ -720,7 +720,7 @@ int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
                if ((retval = b1_load_config(card, &data->configuration))) {
                        b1dma_reset(card);
                        printk(KERN_ERR "%s: failed to load config!!\n",
-                                       card->name);
+                              card->name);
                        return retval;
                }
        }
@@ -733,8 +733,8 @@ int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
 
        card->csr = AVM_FLAG;
        b1dma_writel(card, card->csr, AMCC_INTCSR);
-       b1dma_writel(card, EN_A2P_TRANSFERS|EN_P2A_TRANSFERS|A2P_HI_PRIORITY|
-                    P2A_HI_PRIORITY|RESET_A2P_FLAGS|RESET_P2A_FLAGS, 
+       b1dma_writel(card, EN_A2P_TRANSFERS | EN_P2A_TRANSFERS | A2P_HI_PRIORITY |
+                    P2A_HI_PRIORITY | RESET_A2P_FLAGS | RESET_P2A_FLAGS,
                     AMCC_MCSR);
        t1outp(card->port, 0x07, 0x30);
        t1outp(card->port, 0x10, 0xF0);
@@ -745,7 +745,7 @@ int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        card->csr |= EN_RX_TC_INT;
        b1dma_writel(card, card->csr, AMCC_INTCSR);
 
-        b1dma_send_init(card);
+       b1dma_send_init(card);
 
        return 0;
 }
@@ -757,7 +757,7 @@ void b1dma_reset_ctr(struct capi_ctr *ctrl)
        unsigned long flags;
 
        spin_lock_irqsave(&card->lock, flags);
-       b1dma_reset(card);
+       b1dma_reset(card);
 
        memset(cinfo->version, 0, sizeof(cinfo->version));
        capilib_release(&cinfo->ncci_head);
@@ -768,8 +768,8 @@ void b1dma_reset_ctr(struct capi_ctr *ctrl)
 /* ------------------------------------------------------------- */
 
 void b1dma_register_appl(struct capi_ctr *ctrl,
-                               u16 appl,
-                               capi_register_params *rp)
+                        u16 appl,
+                        capi_register_params *rp)
 {
        avmctrl_info *cinfo = (avmctrl_info *)(ctrl->driverdata);
        avmcard *card = cinfo->card;
@@ -785,7 +785,7 @@ void b1dma_register_appl(struct capi_ctr *ctrl,
        skb = alloc_skb(23, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, lost register appl.\n",
-                                       card->name);
+                      card->name);
                return;
        }
        p = skb->data;
@@ -793,7 +793,7 @@ void b1dma_register_appl(struct capi_ctr *ctrl,
        _put_byte(&p, 0);
        _put_byte(&p, SEND_REGISTER);
        _put_word(&p, appl);
-       _put_word(&p, 1024 * (nconn+1));
+       _put_word(&p, 1024 * (nconn + 1));
        _put_word(&p, nconn);
        _put_word(&p, rp->datablkcnt);
        _put_word(&p, rp->datablklen);
@@ -819,7 +819,7 @@ void b1dma_release_appl(struct capi_ctr *ctrl, u16 appl)
        skb = alloc_skb(7, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, lost release appl.\n",
-                                       card->name);
+                      card->name);
                return;
        }
        p = skb->data;
@@ -841,7 +841,7 @@ u16 b1dma_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
        avmcard *card = cinfo->card;
        u16 retval = CAPI_NOERROR;
 
-       if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_REQ) {
+       if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_REQ) {
                unsigned long flags;
                spin_lock_irqsave(&card->lock, flags);
                retval = capilib_data_b3_req(&cinfo->ncci_head,
@@ -850,7 +850,7 @@ u16 b1dma_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
                                             CAPIMSG_MSGID(skb->data));
                spin_unlock_irqrestore(&card->lock, flags);
        }
-       if (retval == CAPI_NOERROR) 
+       if (retval == CAPI_NOERROR)
                b1dma_queue_tx(card, skb);
 
        return retval;
@@ -893,29 +893,29 @@ static int b1dmactl_proc_show(struct seq_file *m, void *v)
                seq_printf(m, "%-16s %s\n", "ver_serial", s);
 
        if (card->cardtype != avm_m1) {
-               flag = ((u8 *)(ctrl->profile.manu))[3];
-               if (flag)
+               flag = ((u8 *)(ctrl->profile.manu))[3];
+               if (flag)
                        seq_printf(m, "%-16s%s%s%s%s%s%s%s\n",
-                       "protocol",
-                       (flag & 0x01) ? " DSS1" : "",
-                       (flag & 0x02) ? " CT1" : "",
-                       (flag & 0x04) ? " VN3" : "",
-                       (flag & 0x08) ? " NI1" : "",
-                       (flag & 0x10) ? " AUSTEL" : "",
-                       (flag & 0x20) ? " ESS" : "",
-                       (flag & 0x40) ? " 1TR6" : ""
-                       );
+                                  "protocol",
+                                  (flag & 0x01) ? " DSS1" : "",
+                                  (flag & 0x02) ? " CT1" : "",
+                                  (flag & 0x04) ? " VN3" : "",
+                                  (flag & 0x08) ? " NI1" : "",
+                                  (flag & 0x10) ? " AUSTEL" : "",
+                                  (flag & 0x20) ? " ESS" : "",
+                                  (flag & 0x40) ? " 1TR6" : ""
+                               );
        }
        if (card->cardtype != avm_m1) {
-               flag = ((u8 *)(ctrl->profile.manu))[5];
+               flag = ((u8 *)(ctrl->profile.manu))[5];
                if (flag)
                        seq_printf(m, "%-16s%s%s%s%s\n",
-                       "linetype",
-                       (flag & 0x01) ? " point to point" : "",
-                       (flag & 0x02) ? " point to multipoint" : "",
-                       (flag & 0x08) ? " leased line without D-channel" : "",
-                       (flag & 0x04) ? " leased line with D-channel" : ""
-                       );
+                                  "linetype",
+                                  (flag & 0x01) ? " point to point" : "",
+                                  (flag & 0x02) ? " point to multipoint" : "",
+                                  (flag & 0x08) ? " leased line without D-channel" : "",
+                                  (flag & 0x04) ? " leased line with D-channel" : ""
+                               );
        }
        seq_printf(m, "%-16s %s\n", "cardname", cinfo->cardname);
 
@@ -977,7 +977,7 @@ static int __init b1dma_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, sizeof(rev));
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index ff53905..31ef813 100644 (file)
@@ -1,9 +1,9 @@
 /* $Id: b1isa.c,v 1.1.2.3 2004/02/10 01:07:12 keil Exp $
- * 
+ *
  * Module for AVM B1 ISA-card.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -80,7 +80,7 @@ static int b1isa_probe(struct pci_dev *pdev)
        card->cardtype = avm_b1isa;
        sprintf(card->name, "b1isa-%x", card->port);
 
-       if (   card->port != 0x150 && card->port != 0x250
+       if (card->port != 0x150 && card->port != 0x250
            && card->port != 0x300 && card->port != 0x340) {
                printk(KERN_WARNING "b1isa: invalid port 0x%x.\n", card->port);
                retval = -EINVAL;
@@ -136,13 +136,13 @@ static int b1isa_probe(struct pci_dev *pdev)
        pci_set_drvdata(pdev, cinfo);
        return 0;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_release_region:
+err_release_region:
        release_region(card->port, AVMB1_PORTLEN);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 }
 
@@ -206,7 +206,7 @@ static int __init b1isa_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index c97e431..b305e6b 100644 (file)
@@ -1,9 +1,9 @@
 /* $Id: b1pci.c,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
- * 
+ *
  * Module for AVM B1 PCI-card.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -79,7 +79,7 @@ static int b1pci_probe(struct capicardparams *p, struct pci_dev *pdev)
        card->port = p->port;
        card->irq = p->irq;
        card->cardtype = avm_b1pci;
-       
+
        if (!request_region(card->port, AVMB1_PORTLEN, card->name)) {
                printk(KERN_WARNING "b1pci: ports 0x%03x-0x%03x in use.\n",
                       card->port, card->port + AVMB1_PORTLEN);
@@ -96,14 +96,14 @@ static int b1pci_probe(struct capicardparams *p, struct pci_dev *pdev)
        }
        b1_reset(card->port);
        b1_getrevision(card);
-       
+
        retval = request_irq(card->irq, b1_interrupt, IRQF_SHARED, card->name, card);
        if (retval) {
                printk(KERN_ERR "b1pci: unable to get IRQ %d.\n", card->irq);
                retval = -EBUSY;
                goto err_release_region;
        }
-       
+
        cinfo->capi_ctrl.driver_name   = "b1pci";
        cinfo->capi_ctrl.driverdata    = cinfo;
        cinfo->capi_ctrl.register_appl = b1_register_appl;
@@ -133,13 +133,13 @@ static int b1pci_probe(struct capicardparams *p, struct pci_dev *pdev)
        pci_set_drvdata(pdev, card);
        return 0;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_release_region:
+err_release_region:
        release_region(card->port, AVMB1_PORTLEN);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 }
 
@@ -193,7 +193,7 @@ static int b1pciv4_probe(struct capicardparams *p, struct pci_dev *pdev)
                goto err;
        }
 
-        card->dma = avmcard_dma_alloc("b1pci", pdev, 2048+128, 2048+128);
+       card->dma = avmcard_dma_alloc("b1pci", pdev, 2048 + 128, 2048 + 128);
        if (!card->dma) {
                printk(KERN_WARNING "b1pci: dma alloc.\n");
                retval = -ENOMEM;
@@ -267,17 +267,17 @@ static int b1pciv4_probe(struct capicardparams *p, struct pci_dev *pdev)
        pci_set_drvdata(pdev, card);
        return 0;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_unmap:
+err_unmap:
        iounmap(card->mbase);
- err_release_region:
+err_release_region:
        release_region(card->port, AVMB1_PORTLEN);
- err_free_dma:
+err_free_dma:
        avmcard_dma_free(card->dma);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 
 }
@@ -287,13 +287,13 @@ static void b1pciv4_remove(struct pci_dev *pdev)
        avmcard *card = pci_get_drvdata(pdev);
        avmctrl_info *cinfo = card->ctrlinfo;
 
-       b1dma_reset(card);
+       b1dma_reset(card);
 
        detach_capi_ctr(&cinfo->capi_ctrl);
        free_irq(card->irq, card);
        iounmap(card->mbase);
        release_region(card->port, AVMB1_PORTLEN);
-        avmcard_dma_free(card->dma);
+       avmcard_dma_free(card->dma);
        b1_free_card(card);
 }
 
@@ -326,7 +326,7 @@ static int __devinit b1pci_pci_probe(struct pci_dev *pdev,
                retval = b1pci_probe(&param, pdev);
 #endif
                if (retval != 0) {
-                       printk(KERN_ERR "b1pci: no AVM-B1 V4 at i/o %#x, irq %d, mem %#x detected\n",
+                       printk(KERN_ERR "b1pci: no AVM-B1 V4 at i/o %#x, irq %d, mem %#x detected\n",
                               param.port, param.irq, param.membase);
                }
        } else {
@@ -337,7 +337,7 @@ static int __devinit b1pci_pci_probe(struct pci_dev *pdev,
                       param.port, param.irq);
                retval = b1pci_probe(&param, pdev);
                if (retval != 0) {
-                       printk(KERN_ERR "b1pci: no AVM-B1 at i/o %#x, irq %d detected\n",
+                       printk(KERN_ERR "b1pci: no AVM-B1 at i/o %#x, irq %d detected\n",
                               param.port, param.irq);
                }
        }
@@ -385,7 +385,7 @@ static int __init b1pci_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index d6391e0..6b0d19d 100644 (file)
@@ -1,9 +1,9 @@
 /* $Id: b1pcmcia.c,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
- * 
+ *
  * Module for AVM B1/M1/M2 PCMCIA-card.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -74,9 +74,9 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq,
        cinfo = card->ctrlinfo;
 
        switch (cardtype) {
-               case avm_m1: sprintf(card->name, "m1-%x", port); break;
-               case avm_m2: sprintf(card->name, "m2-%x", port); break;
-               default: sprintf(card->name, "b1pcmcia-%x", port); break;
+       case avm_m1: sprintf(card->name, "m1-%x", port); break;
+       case avm_m2: sprintf(card->name, "m2-%x", port); break;
+       default: sprintf(card->name, "b1pcmcia-%x", port); break;
        }
        card->port = port;
        card->irq = irq;
@@ -117,9 +117,9 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq,
                goto err_free_irq;
        }
        switch (cardtype) {
-               case avm_m1: cardname = "M1"; break;
-               case avm_m2: cardname = "M2"; break;
-               default    : cardname = "B1 PCMCIA"; break;
+       case avm_m1: cardname = "M1"; break;
+       case avm_m2: cardname = "M2"; break;
+       default: cardname = "B1 PCMCIA"; break;
        }
 
        printk(KERN_INFO "b1pcmcia: AVM %s at i/o %#x, irq %d, revision %d\n",
@@ -128,11 +128,11 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq,
        list_add(&card->list, &cards);
        return cinfo->capi_ctrl.cnr;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 }
 
@@ -175,7 +175,7 @@ int b1pcmcia_delcard(unsigned int port, unsigned irq)
 {
        struct list_head *l;
        avmcard *card;
-       
+
        list_for_each(l, &cards) {
                card = list_entry(l, avmcard, list);
                if (card->port == port && card->irq == irq) {
@@ -204,7 +204,7 @@ static int __init b1pcmcia_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index 9743b24..98f1881 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id: c4.c,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
- * 
+ *
  * Module for AVM C4 & C2 card.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
  *
  * This software may be used and distributed according to the terms
@@ -129,8 +129,8 @@ static void c4_dispatch_tx(avmcard *card);
 
 /* ------------------------------------------------------------- */
 
-#define        RESET_TIMEOUT           (15*HZ) /* 15 sec */
-#define        PEEK_POKE_TIMEOUT       (HZ/10) /* 0.1 sec */
+#define        RESET_TIMEOUT           (15 * HZ)       /* 15 sec */
+#define        PEEK_POKE_TIMEOUT       (HZ / 10)       /* 0.1 sec */
 
 /* ------------------------------------------------------------- */
 
@@ -148,7 +148,7 @@ static inline int wait_for_doorbell(avmcard *card, unsigned long t)
        unsigned long stop;
 
        stop = jiffies + t;
-       while (c4inmeml(card->mbase+DOORBELL) != 0xffffffff) {
+       while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) {
                if (!time_before(jiffies, stop))
                        return -1;
                mb();
@@ -159,40 +159,40 @@ static inline int wait_for_doorbell(avmcard *card, unsigned long t)
 static int c4_poke(avmcard *card,  unsigned long off, unsigned long value)
 {
 
-       if (wait_for_doorbell(card, HZ/10) < 0)
+       if (wait_for_doorbell(card, HZ / 10) < 0)
                return -1;
-       
-       c4outmeml(card->mbase+MBOX_PEEK_POKE, off);
-       c4outmeml(card->mbase+DOORBELL, DBELL_ADDR);
 
-       if (wait_for_doorbell(card, HZ/10) < 0)
+       c4outmeml(card->mbase + MBOX_PEEK_POKE, off);
+       c4outmeml(card->mbase + DOORBELL, DBELL_ADDR);
+
+       if (wait_for_doorbell(card, HZ / 10) < 0)
                return -1;
 
-       c4outmeml(card->mbase+MBOX_PEEK_POKE, value);
-       c4outmeml(card->mbase+DOORBELL, DBELL_DATA | DBELL_ADDR);
+       c4outmeml(card->mbase + MBOX_PEEK_POKE, value);
+       c4outmeml(card->mbase + DOORBELL, DBELL_DATA | DBELL_ADDR);
 
        return 0;
 }
 
 static int c4_peek(avmcard *card,  unsigned long off, unsigned long *valuep)
 {
-       if (wait_for_doorbell(card, HZ/10) < 0)
+       if (wait_for_doorbell(card, HZ / 10) < 0)
                return -1;
 
-       c4outmeml(card->mbase+MBOX_PEEK_POKE, off);
-       c4outmeml(card->mbase+DOORBELL, DBELL_RNWR | DBELL_ADDR);
+       c4outmeml(card->mbase + MBOX_PEEK_POKE, off);
+       c4outmeml(card->mbase + DOORBELL, DBELL_RNWR | DBELL_ADDR);
 
-       if (wait_for_doorbell(card, HZ/10) < 0)
+       if (wait_for_doorbell(card, HZ / 10) < 0)
                return -1;
 
-       *valuep = c4inmeml(card->mbase+MBOX_PEEK_POKE);
+       *valuep = c4inmeml(card->mbase + MBOX_PEEK_POKE);
 
        return 0;
 }
 
 /* ------------------------------------------------------------- */
 
-static int c4_load_t4file(avmcard *card, capiloaddatapart * t4file)
+static int c4_load_t4file(avmcard *card, capiloaddatapart *t4file)
 {
        u32 val;
        unsigned char *dp;
@@ -202,7 +202,7 @@ static int c4_load_t4file(avmcard *card, capiloaddatapart * t4file)
        dp = t4file->data;
        left = t4file->len;
        while (left >= sizeof(u32)) {
-               if (t4file->user) {
+               if (t4file->user) {
                        if (copy_from_user(&val, dp, sizeof(val)))
                                return -EFAULT;
                } else {
@@ -210,7 +210,7 @@ static int c4_load_t4file(avmcard *card, capiloaddatapart * t4file)
                }
                if (c4_poke(card, loadoff, val)) {
                        printk(KERN_ERR "%s: corrupted firmware file ?\n",
-                                       card->name);
+                              card->name);
                        return -EIO;
                }
                left -= sizeof(u32);
@@ -227,7 +227,7 @@ static int c4_load_t4file(avmcard *card, capiloaddatapart * t4file)
                }
                if (c4_poke(card, loadoff, val)) {
                        printk(KERN_ERR "%s: corrupted firmware file ?\n",
-                                       card->name);
+                              card->name);
                        return -EIO;
                }
        }
@@ -297,13 +297,13 @@ static void c4_reset(avmcard *card)
 {
        unsigned long stop;
 
-       c4outmeml(card->mbase+DOORBELL, DBELL_RESET_ARM);
+       c4outmeml(card->mbase + DOORBELL, DBELL_RESET_ARM);
 
-       stop = jiffies + HZ*10;
-       while (c4inmeml(card->mbase+DOORBELL) != 0xffffffff) {
+       stop = jiffies + HZ * 10;
+       while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) {
                if (!time_before(jiffies, stop))
                        return;
-               c4outmeml(card->mbase+DOORBELL, DBELL_ADDR);
+               c4outmeml(card->mbase + DOORBELL, DBELL_ADDR);
                mb();
        }
 
@@ -317,89 +317,89 @@ static int c4_detect(avmcard *card)
 {
        unsigned long stop, dummy;
 
-       c4outmeml(card->mbase+PCI_OUT_INT_MASK, 0x0c);
-       if (c4inmeml(card->mbase+PCI_OUT_INT_MASK) != 0x0c)
+       c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x0c);
+       if (c4inmeml(card->mbase + PCI_OUT_INT_MASK) != 0x0c)
                return  1;
 
-       c4outmeml(card->mbase+DOORBELL, DBELL_RESET_ARM);
+       c4outmeml(card->mbase + DOORBELL, DBELL_RESET_ARM);
 
-       stop = jiffies + HZ*10;
-       while (c4inmeml(card->mbase+DOORBELL) != 0xffffffff) {
+       stop = jiffies + HZ * 10;
+       while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) {
                if (!time_before(jiffies, stop))
                        return 2;
-               c4outmeml(card->mbase+DOORBELL, DBELL_ADDR);
+               c4outmeml(card->mbase + DOORBELL, DBELL_ADDR);
                mb();
        }
 
        c4_poke(card, DC21285_ARMCSR_BASE + CHAN_1_CONTROL, 0);
        c4_poke(card, DC21285_ARMCSR_BASE + CHAN_2_CONTROL, 0);
 
-       c4outmeml(card->mbase+MAILBOX_0, 0x55aa55aa);
-       if (c4inmeml(card->mbase+MAILBOX_0) != 0x55aa55aa) return 3;
+       c4outmeml(card->mbase + MAILBOX_0, 0x55aa55aa);
+       if (c4inmeml(card->mbase + MAILBOX_0) != 0x55aa55aa) return 3;
 
-       c4outmeml(card->mbase+MAILBOX_0, 0xaa55aa55);
-       if (c4inmeml(card->mbase+MAILBOX_0) != 0xaa55aa55) return 4;
+       c4outmeml(card->mbase + MAILBOX_0, 0xaa55aa55);
+       if (c4inmeml(card->mbase + MAILBOX_0) != 0xaa55aa55) return 4;
 
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DBELL_SA_MASK, 0)) return 5;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DBELL_PCI_MASK, 0)) return 6;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+SA_CONTROL, SA_CTL_ALLRIGHT))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DBELL_SA_MASK, 0)) return 5;
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DBELL_PCI_MASK, 0)) return 6;
+       if (c4_poke(card, DC21285_ARMCSR_BASE + SA_CONTROL, SA_CTL_ALLRIGHT))
                return 7;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+XBUS_CYCLE, INIT_XBUS_CYCLE))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + XBUS_CYCLE, INIT_XBUS_CYCLE))
                return 8;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+XBUS_STROBE, INIT_XBUS_STROBE))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + XBUS_STROBE, INIT_XBUS_STROBE))
                return 8;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_TIMING, 0)) return 9;
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_TIMING, 0)) return 9;
 
-        mdelay(1);
+       mdelay(1);
 
        if (c4_peek(card, DC21285_DRAM_A0MR, &dummy)) return 10;
        if (c4_peek(card, DC21285_DRAM_A1MR, &dummy)) return 11;
        if (c4_peek(card, DC21285_DRAM_A2MR, &dummy)) return 12;
        if (c4_peek(card, DC21285_DRAM_A3MR, &dummy)) return 13;
 
-       if (c4_poke(card, DC21285_DRAM_A0MR+CAS_OFFSET, 0)) return 14;
-       if (c4_poke(card, DC21285_DRAM_A1MR+CAS_OFFSET, 0)) return 15;
-       if (c4_poke(card, DC21285_DRAM_A2MR+CAS_OFFSET, 0)) return 16;
-       if (c4_poke(card, DC21285_DRAM_A3MR+CAS_OFFSET, 0)) return 17;
+       if (c4_poke(card, DC21285_DRAM_A0MR + CAS_OFFSET, 0)) return 14;
+       if (c4_poke(card, DC21285_DRAM_A1MR + CAS_OFFSET, 0)) return 15;
+       if (c4_poke(card, DC21285_DRAM_A2MR + CAS_OFFSET, 0)) return 16;
+       if (c4_poke(card, DC21285_DRAM_A3MR + CAS_OFFSET, 0)) return 17;
 
-        mdelay(1);
+       mdelay(1);
 
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_TIMING, DRAM_TIMING_DEF))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_TIMING, DRAM_TIMING_DEF))
                return 18;
 
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_0,DRAM_AD_SZ_DEF0))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_0, DRAM_AD_SZ_DEF0))
                return 19;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_1,DRAM_AD_SZ_NULL))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_1, DRAM_AD_SZ_NULL))
                return 20;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_2,DRAM_AD_SZ_NULL))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_2, DRAM_AD_SZ_NULL))
                return 21;
-       if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_3,DRAM_AD_SZ_NULL))
+       if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_3, DRAM_AD_SZ_NULL))
                return 22;
 
        /* Transputer test */
-       
-       if (   c4_poke(card, 0x000000, 0x11111111)
+
+       if (c4_poke(card, 0x000000, 0x11111111)
            || c4_poke(card, 0x400000, 0x22222222)
-           || c4_poke(card, 0x800000, 0x33333333)
-           || c4_poke(card, 0xC00000, 0x44444444))
+              || c4_poke(card, 0x800000, 0x33333333)
+              || c4_poke(card, 0xC00000, 0x44444444))
                return 23;
 
-       if (   c4_peek(card, 0x000000, &dummy) || dummy != 0x11111111
+       if (c4_peek(card, 0x000000, &dummy) || dummy != 0x11111111
            || c4_peek(card, 0x400000, &dummy) || dummy != 0x22222222
-           || c4_peek(card, 0x800000, &dummy) || dummy != 0x33333333
-           || c4_peek(card, 0xC00000, &dummy) || dummy != 0x44444444)
+              || c4_peek(card, 0x800000, &dummy) || dummy != 0x33333333
+              || c4_peek(card, 0xC00000, &dummy) || dummy != 0x44444444)
                return 24;
 
-       if (   c4_poke(card, 0x000000, 0x55555555)
+       if (c4_poke(card, 0x000000, 0x55555555)
            || c4_poke(card, 0x400000, 0x66666666)
-           || c4_poke(card, 0x800000, 0x77777777)
-           || c4_poke(card, 0xC00000, 0x88888888))
+              || c4_poke(card, 0x800000, 0x77777777)
+              || c4_poke(card, 0xC00000, 0x88888888))
                return 25;
 
-       if (   c4_peek(card, 0x000000, &dummy) || dummy != 0x55555555
+       if (c4_peek(card, 0x000000, &dummy) || dummy != 0x55555555
            || c4_peek(card, 0x400000, &dummy) || dummy != 0x66666666
-           || c4_peek(card, 0x800000, &dummy) || dummy != 0x77777777
-           || c4_peek(card, 0xC00000, &dummy) || dummy != 0x88888888)
+              || c4_peek(card, 0x800000, &dummy) || dummy != 0x77777777
+              || c4_peek(card, 0xC00000, &dummy) || dummy != 0x88888888)
                return 26;
 
        return 0;
@@ -451,26 +451,26 @@ static void c4_dispatch_tx(avmcard *card)
                printk(KERN_DEBUG "%s: tx put msg len=%d\n", card->name, txlen);
 #endif
        } else {
-               txlen = skb->len-2;
+               txlen = skb->len - 2;
 #ifdef AVM_C4_POLLDEBUG
                if (skb->data[2] == SEND_POLLACK)
                        printk(KERN_INFO "%s: ack to c4\n", card->name);
 #endif
 #ifdef AVM_C4_DEBUG
                printk(KERN_DEBUG "%s: tx put 0x%x len=%d\n",
-                               card->name, skb->data[2], txlen);
+                      card->name, skb->data[2], txlen);
 #endif
                skb_copy_from_linear_data_offset(skb, 2, dma->sendbuf.dmabuf,
                                                 skb->len - 2);
        }
        txlen = (txlen + 3) & ~3;
 
-       c4outmeml(card->mbase+MBOX_DOWN_ADDR, dma->sendbuf.dmaaddr);
-       c4outmeml(card->mbase+MBOX_DOWN_LEN, txlen);
+       c4outmeml(card->mbase + MBOX_DOWN_ADDR, dma->sendbuf.dmaaddr);
+       c4outmeml(card->mbase + MBOX_DOWN_LEN, txlen);
 
        card->csr |= DBELL_DOWN_ARM;
 
-       c4outmeml(card->mbase+DOORBELL, DBELL_DOWN_ARM);
+       c4outmeml(card->mbase + DOORBELL, DBELL_DOWN_ARM);
 
        dev_kfree_skb_any(skb);
 }
@@ -485,7 +485,7 @@ static void queue_pollack(avmcard *card)
        skb = alloc_skb(3, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, lost poll ack\n",
-                                       card->name);
+                      card->name);
                return;
        }
        p = skb->data;
@@ -514,9 +514,9 @@ static void c4_handle_rx(avmcard *card)
 
 #ifdef AVM_C4_DEBUG
        printk(KERN_DEBUG "%s: rx 0x%x len=%lu\n", card->name,
-                               b1cmd, (unsigned long)dma->recvlen);
+              b1cmd, (unsigned long)dma->recvlen);
 #endif
-       
+
        switch (b1cmd) {
        case RECEIVE_DATA_B3_IND:
 
@@ -528,13 +528,13 @@ static void c4_handle_rx(avmcard *card)
                ctrl = &card->ctrlinfo[cidx].capi_ctrl;
 
                if (MsgLen < 30) { /* not CAPI 64Bit */
-                       memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
+                       memset(card->msgbuf + MsgLen, 0, 30 - MsgLen);
                        MsgLen = 30;
                        CAPIMSG_SETLEN(card->msgbuf, 30);
                }
-               if (!(skb = alloc_skb(DataB3Len+MsgLen, GFP_ATOMIC))) {
+               if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
                        printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                              card->name);
                } else {
                        memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                        memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len);
@@ -553,7 +553,7 @@ static void c4_handle_rx(avmcard *card)
 
                if (!(skb = alloc_skb(MsgLen, GFP_ATOMIC))) {
                        printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                              card->name);
                } else {
                        memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                        if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF)
@@ -570,7 +570,7 @@ static void c4_handle_rx(avmcard *card)
                ApplId = _get_word(&p);
                NCCI = _get_word(&p);
                WindowSize = _get_word(&p);
-               cidx = (NCCI&0x7f) - card->cardnr;
+               cidx = (NCCI & 0x7f) - card->cardnr;
                if (cidx >= card->nlogcontr) cidx = 0;
 
                capilib_new_ncci(&card->ctrlinfo[cidx].ncci_head, ApplId, NCCI, WindowSize);
@@ -583,7 +583,7 @@ static void c4_handle_rx(avmcard *card)
                NCCI = _get_word(&p);
 
                if (NCCI != 0xffffffff) {
-                       cidx = (NCCI&0x7f) - card->cardnr;
+                       cidx = (NCCI & 0x7f) - card->cardnr;
                        if (cidx >= card->nlogcontr) cidx = 0;
                        capilib_free_ncci(&card->ctrlinfo[cidx].ncci_head, ApplId, NCCI);
                }
@@ -595,14 +595,14 @@ static void c4_handle_rx(avmcard *card)
 #endif
                if (!suppress_pollack)
                        queue_pollack(card);
-               for (cidx=0; cidx < card->nr_controllers; cidx++) {
+               for (cidx = 0; cidx < card->nr_controllers; cidx++) {
                        ctrl = &card->ctrlinfo[cidx].capi_ctrl;
                        capi_ctr_resume_output(ctrl);
                }
                break;
 
        case RECEIVE_STOP:
-               for (cidx=0; cidx < card->nr_controllers; cidx++) {
+               for (cidx = 0; cidx < card->nr_controllers; cidx++) {
                        ctrl = &card->ctrlinfo[cidx].capi_ctrl;
                        capi_ctr_suspend_output(ctrl);
                }
@@ -610,14 +610,14 @@ static void c4_handle_rx(avmcard *card)
 
        case RECEIVE_INIT:
 
-               cidx = card->nlogcontr;
+               cidx = card->nlogcontr;
                if (cidx >= card->nr_controllers) {
                        printk(KERN_ERR "%s: card with %d controllers ??\n",
-                                       card->name, cidx+1);
+                              card->name, cidx + 1);
                        break;
                }
-               card->nlogcontr++;
-               cinfo = &card->ctrlinfo[cidx];
+               card->nlogcontr++;
+               cinfo = &card->ctrlinfo[cidx];
                ctrl = &cinfo->capi_ctrl;
                cinfo->versionlen = _get_slice(&p, cinfo->versionbuf);
                b1_parse_version(cinfo);
@@ -632,23 +632,23 @@ static void c4_handle_rx(avmcard *card)
                ApplId = (unsigned) _get_word(&p);
                MsgLen = _get_slice(&p, card->msgbuf);
                card->msgbuf[MsgLen] = 0;
-               while (    MsgLen > 0
-                      && (   card->msgbuf[MsgLen-1] == '\n'
-                          || card->msgbuf[MsgLen-1] == '\r')) {
-                       card->msgbuf[MsgLen-1] = 0;
+               while (MsgLen > 0
+                      && (card->msgbuf[MsgLen - 1] == '\n'
+                          || card->msgbuf[MsgLen - 1] == '\r')) {
+                       card->msgbuf[MsgLen - 1] = 0;
                        MsgLen--;
                }
                printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
-                               card->name, ApplId, card->msgbuf);
+                      card->name, ApplId, card->msgbuf);
                break;
 
        case RECEIVE_DEBUGMSG:
                MsgLen = _get_slice(&p, card->msgbuf);
                card->msgbuf[MsgLen] = 0;
-               while (    MsgLen > 0
-                      && (   card->msgbuf[MsgLen-1] == '\n'
-                          || card->msgbuf[MsgLen-1] == '\r')) {
-                       card->msgbuf[MsgLen-1] = 0;
+               while (MsgLen > 0
+                      && (card->msgbuf[MsgLen - 1] == '\n'
+                          || card->msgbuf[MsgLen - 1] == '\r')) {
+                       card->msgbuf[MsgLen - 1] = 0;
                        MsgLen--;
                }
                printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -656,7 +656,7 @@ static void c4_handle_rx(avmcard *card)
 
        default:
                printk(KERN_ERR "%s: c4_interrupt: 0x%x ???\n",
-                               card->name, b1cmd);
+                      card->name, b1cmd);
                return;
        }
 }
@@ -669,16 +669,16 @@ static irqreturn_t c4_handle_interrupt(avmcard *card)
        u32 status;
 
        spin_lock_irqsave(&card->lock, flags);
-       status = c4inmeml(card->mbase+DOORBELL);
+       status = c4inmeml(card->mbase + DOORBELL);
 
        if (status & DBELL_RESET_HOST) {
                u_int i;
-               c4outmeml(card->mbase+PCI_OUT_INT_MASK, 0x0c);
+               c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x0c);
                spin_unlock_irqrestore(&card->lock, flags);
                if (card->nlogcontr == 0)
                        return IRQ_HANDLED;
                printk(KERN_ERR "%s: unexpected reset\n", card->name);
-                for (i=0; i < card->nr_controllers; i++) {
+               for (i = 0; i < card->nr_controllers; i++) {
                        avmctrl_info *cinfo = &card->ctrlinfo[i];
                        memset(cinfo->version, 0, sizeof(cinfo->version));
                        spin_lock_irqsave(&card->lock, flags);
@@ -695,23 +695,23 @@ static irqreturn_t c4_handle_interrupt(avmcard *card)
                spin_unlock_irqrestore(&card->lock, flags);
                return IRQ_HANDLED;
        }
-       c4outmeml(card->mbase+DOORBELL, status);
+       c4outmeml(card->mbase + DOORBELL, status);
 
        if ((status & DBELL_UP_HOST) != 0) {
-               card->dma->recvlen = c4inmeml(card->mbase+MBOX_UP_LEN);
-               c4outmeml(card->mbase+MBOX_UP_LEN, 0);
+               card->dma->recvlen = c4inmeml(card->mbase + MBOX_UP_LEN);
+               c4outmeml(card->mbase + MBOX_UP_LEN, 0);
                c4_handle_rx(card);
                card->dma->recvlen = 0;
-               c4outmeml(card->mbase+MBOX_UP_LEN, card->dma->recvbuf.size);
-               c4outmeml(card->mbase+DOORBELL, DBELL_UP_ARM);
+               c4outmeml(card->mbase + MBOX_UP_LEN, card->dma->recvbuf.size);
+               c4outmeml(card->mbase + DOORBELL, DBELL_UP_ARM);
        }
 
        if ((status & DBELL_DOWN_HOST) != 0) {
                card->csr &= ~DBELL_DOWN_ARM;
-               c4_dispatch_tx(card);
+               c4_dispatch_tx(card);
        } else if (card->csr & DBELL_DOWN_HOST) {
-               if (c4inmeml(card->mbase+MBOX_DOWN_LEN) == 0) {
-                       card->csr &= ~DBELL_DOWN_ARM;
+               if (c4inmeml(card->mbase + MBOX_DOWN_LEN) == 0) {
+                       card->csr &= ~DBELL_DOWN_ARM;
                        c4_dispatch_tx(card);
                }
        }
@@ -737,7 +737,7 @@ static void c4_send_init(avmcard *card)
        skb = alloc_skb(15, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, lost register appl.\n",
-                                       card->name);
+                      card->name);
                return;
        }
        p = skb->data;
@@ -745,7 +745,7 @@ static void c4_send_init(avmcard *card)
        _put_byte(&p, 0);
        _put_byte(&p, SEND_INIT);
        _put_word(&p, CAPI_MAXAPPL);
-       _put_word(&p, AVM_NCCI_PER_CHANNEL*30);
+       _put_word(&p, AVM_NCCI_PER_CHANNEL * 30);
        _put_word(&p, card->cardnr - 1);
        skb_put(skb, (u8 *)p - (u8 *)skb->data);
 
@@ -761,10 +761,10 @@ static int queue_sendconfigword(avmcard *card, u32 val)
        unsigned long flags;
        void *p;
 
-       skb = alloc_skb(3+4, GFP_ATOMIC);
+       skb = alloc_skb(3 + 4, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, send config\n",
-                                       card->name);
+                      card->name);
                return -ENOMEM;
        }
        p = skb->data;
@@ -787,10 +787,10 @@ static int queue_sendconfig(avmcard *card, char cval[4])
        unsigned long flags;
        void *p;
 
-       skb = alloc_skb(3+4, GFP_ATOMIC);
+       skb = alloc_skb(3 + 4, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_CRIT "%s: no memory, send config\n",
-                                       card->name);
+                      card->name);
                return -ENOMEM;
        }
        p = skb->data;
@@ -804,20 +804,20 @@ static int queue_sendconfig(avmcard *card, char cval[4])
        skb_put(skb, (u8 *)p - (u8 *)skb->data);
 
        skb_queue_tail(&card->dma->send_queue, skb);
-       
+
        spin_lock_irqsave(&card->lock, flags);
        c4_dispatch_tx(card);
        spin_unlock_irqrestore(&card->lock, flags);
        return 0;
 }
 
-static int c4_send_config(avmcard *card, capiloaddatapart * config)
+static int c4_send_config(avmcard *card, capiloaddatapart *config)
 {
        u8 val[4];
        unsigned char *dp;
        u_int left;
        int retval;
-       
+
        if ((retval = queue_sendconfigword(card, 1)) != 0)
                return retval;
        if ((retval = queue_sendconfigword(card, config->len)) != 0)
@@ -826,7 +826,7 @@ static int c4_send_config(avmcard *card, capiloaddatapart * config)
        dp = config->data;
        left = config->len;
        while (left >= sizeof(u32)) {
-               if (config->user) {
+               if (config->user) {
                        if (copy_from_user(val, dp, sizeof(val)))
                                return -EFAULT;
                } else {
@@ -860,37 +860,37 @@ static int c4_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
 
        if ((retval = c4_load_t4file(card, &data->firmware))) {
                printk(KERN_ERR "%s: failed to load t4file!!\n",
-                                       card->name);
+                      card->name);
                c4_reset(card);
                return retval;
        }
 
        card->csr = 0;
-       c4outmeml(card->mbase+MBOX_UP_LEN, 0);
-       c4outmeml(card->mbase+MBOX_DOWN_LEN, 0);
-       c4outmeml(card->mbase+DOORBELL, DBELL_INIT);
+       c4outmeml(card->mbase + MBOX_UP_LEN, 0);
+       c4outmeml(card->mbase + MBOX_DOWN_LEN, 0);
+       c4outmeml(card->mbase + DOORBELL, DBELL_INIT);
        mdelay(1);
-       c4outmeml(card->mbase+DOORBELL,
-                       DBELL_UP_HOST | DBELL_DOWN_HOST | DBELL_RESET_HOST);
+       c4outmeml(card->mbase + DOORBELL,
+                 DBELL_UP_HOST | DBELL_DOWN_HOST | DBELL_RESET_HOST);
 
-       c4outmeml(card->mbase+PCI_OUT_INT_MASK, 0x08);
+       c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x08);
 
        card->dma->recvlen = 0;
-       c4outmeml(card->mbase+MBOX_UP_ADDR, card->dma->recvbuf.dmaaddr);
-       c4outmeml(card->mbase+MBOX_UP_LEN, card->dma->recvbuf.size);
-       c4outmeml(card->mbase+DOORBELL, DBELL_UP_ARM);
+       c4outmeml(card->mbase + MBOX_UP_ADDR, card->dma->recvbuf.dmaaddr);
+       c4outmeml(card->mbase + MBOX_UP_LEN, card->dma->recvbuf.size);
+       c4outmeml(card->mbase + DOORBELL, DBELL_UP_ARM);
 
        if (data->configuration.len > 0 && data->configuration.data) {
                retval = c4_send_config(card, &data->configuration);
                if (retval) {
                        printk(KERN_ERR "%s: failed to set config!!\n",
-                                       card->name);
+                              card->name);
                        c4_reset(card);
                        return retval;
                }
        }
 
-        c4_send_init(card);
+       c4_send_init(card);
 
        return 0;
 }
@@ -905,11 +905,11 @@ static void c4_reset_ctr(struct capi_ctr *ctrl)
 
        spin_lock_irqsave(&card->lock, flags);
 
-       c4_reset(card);
+       c4_reset(card);
 
        spin_unlock_irqrestore(&card->lock, flags);
 
-        for (i=0; i < card->nr_controllers; i++) {
+       for (i = 0; i < card->nr_controllers; i++) {
                cinfo = &card->ctrlinfo[i];
                memset(cinfo->version, 0, sizeof(cinfo->version));
                capi_ctr_down(&cinfo->capi_ctrl);
@@ -926,9 +926,9 @@ static void c4_remove(struct pci_dev *pdev)
        if (!card)
                return;
 
-       c4_reset(card);
+       c4_reset(card);
 
-        for (i=0; i < card->nr_controllers; i++) {
+       for (i = 0; i < card->nr_controllers; i++) {
                cinfo = &card->ctrlinfo[i];
                detach_capi_ctr(&cinfo->capi_ctrl);
        }
@@ -936,8 +936,8 @@ static void c4_remove(struct pci_dev *pdev)
        free_irq(card->irq, card);
        iounmap(card->mbase);
        release_region(card->port, AVMB1_PORTLEN);
-        avmcard_dma_free(card->dma);
-        pci_set_drvdata(pdev, NULL);
+       avmcard_dma_free(card->dma);
+       pci_set_drvdata(pdev, NULL);
        b1_free_card(card);
 }
 
@@ -945,8 +945,8 @@ static void c4_remove(struct pci_dev *pdev)
 
 
 static void c4_register_appl(struct capi_ctr *ctrl,
-                               u16 appl,
-                               capi_register_params *rp)
+                            u16 appl,
+                            capi_register_params *rp)
 {
        avmctrl_info *cinfo = (avmctrl_info *)(ctrl->driverdata);
        avmcard *card = cinfo->card;
@@ -965,7 +965,7 @@ static void c4_register_appl(struct capi_ctr *ctrl,
                skb = alloc_skb(23, GFP_ATOMIC);
                if (!skb) {
                        printk(KERN_CRIT "%s: no memory, lost register appl.\n",
-                                               card->name);
+                              card->name);
                        return;
                }
                p = skb->data;
@@ -973,14 +973,14 @@ static void c4_register_appl(struct capi_ctr *ctrl,
                _put_byte(&p, 0);
                _put_byte(&p, SEND_REGISTER);
                _put_word(&p, appl);
-               _put_word(&p, 1024 * (nconn+1));
+               _put_word(&p, 1024 * (nconn + 1));
                _put_word(&p, nconn);
                _put_word(&p, rp->datablkcnt);
                _put_word(&p, rp->datablklen);
                skb_put(skb, (u8 *)p - (u8 *)skb->data);
 
                skb_queue_tail(&card->dma->send_queue, skb);
-       
+
                spin_lock_irqsave(&card->lock, flags);
                c4_dispatch_tx(card);
                spin_unlock_irqrestore(&card->lock, flags);
@@ -1005,7 +1005,7 @@ static void c4_release_appl(struct capi_ctr *ctrl, u16 appl)
                skb = alloc_skb(7, GFP_ATOMIC);
                if (!skb) {
                        printk(KERN_CRIT "%s: no memory, lost release appl.\n",
-                                               card->name);
+                              card->name);
                        return;
                }
                p = skb->data;
@@ -1098,29 +1098,29 @@ static int c4_proc_show(struct seq_file *m, void *v)
                seq_printf(m, "%-16s %s\n", "ver_serial", s);
 
        if (card->cardtype != avm_m1) {
-               flag = ((u8 *)(ctrl->profile.manu))[3];
-               if (flag)
+               flag = ((u8 *)(ctrl->profile.manu))[3];
+               if (flag)
                        seq_printf(m, "%-16s%s%s%s%s%s%s%s\n",
-                       "protocol",
-                       (flag & 0x01) ? " DSS1" : "",
-                       (flag & 0x02) ? " CT1" : "",
-                       (flag & 0x04) ? " VN3" : "",
-                       (flag & 0x08) ? " NI1" : "",
-                       (flag & 0x10) ? " AUSTEL" : "",
-                       (flag & 0x20) ? " ESS" : "",
-                       (flag & 0x40) ? " 1TR6" : ""
-                       );
+                                  "protocol",
+                                  (flag & 0x01) ? " DSS1" : "",
+                                  (flag & 0x02) ? " CT1" : "",
+                                  (flag & 0x04) ? " VN3" : "",
+                                  (flag & 0x08) ? " NI1" : "",
+                                  (flag & 0x10) ? " AUSTEL" : "",
+                                  (flag & 0x20) ? " ESS" : "",
+                                  (flag & 0x40) ? " 1TR6" : ""
+                               );
        }
        if (card->cardtype != avm_m1) {
-               flag = ((u8 *)(ctrl->profile.manu))[5];
+               flag = ((u8 *)(ctrl->profile.manu))[5];
                if (flag)
                        seq_printf(m, "%-16s%s%s%s%s\n",
-                       "linetype",
-                       (flag & 0x01) ? " point to point" : "",
-                       (flag & 0x02) ? " point to multipoint" : "",
-                       (flag & 0x08) ? " leased line without D-channel" : "",
-                       (flag & 0x04) ? " leased line with D-channel" : ""
-                       );
+                                  "linetype",
+                                  (flag & 0x01) ? " point to point" : "",
+                                  (flag & 0x02) ? " point to multipoint" : "",
+                                  (flag & 0x08) ? " leased line without D-channel" : "",
+                                  (flag & 0x04) ? " leased line with D-channel" : ""
+                               );
        }
        seq_printf(m, "%-16s %s\n", "cardname", cinfo->cardname);
 
@@ -1156,7 +1156,7 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev,
                retval = -ENOMEM;
                goto err;
        }
-        card->dma = avmcard_dma_alloc("c4", dev, 2048+128, 2048+128);
+       card->dma = avmcard_dma_alloc("c4", dev, 2048 + 128, 2048 + 128);
        if (!card->dma) {
                printk(KERN_WARNING "c4: no memory.\n");
                retval = -ENOMEM;
@@ -1195,12 +1195,12 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev,
 
        retval = request_irq(card->irq, c4_interrupt, IRQF_SHARED, card->name, card);
        if (retval) {
-               printk(KERN_ERR "c4: unable to get IRQ %d.\n",card->irq);
+               printk(KERN_ERR "c4: unable to get IRQ %d.\n", card->irq);
                retval = -EBUSY;
                goto err_unmap;
        }
 
-       for (i=0; i < nr_controllers ; i++) {
+       for (i = 0; i < nr_controllers; i++) {
                cinfo = &card->ctrlinfo[i];
                cinfo->capi_ctrl.owner = THIS_MODULE;
                cinfo->capi_ctrl.driver_name   = "c4";
@@ -1233,17 +1233,17 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev,
        pci_set_drvdata(dev, card);
        return 0;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_unmap:
+err_unmap:
        iounmap(card->mbase);
- err_release_region:
+err_release_region:
        release_region(card->port, AVMB1_PORTLEN);
- err_free_dma:
+err_free_dma:
        avmcard_dma_free(card->dma);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 }
 
@@ -1265,10 +1265,10 @@ static int __devinit c4_probe(struct pci_dev *dev,
        param.port = pci_resource_start(dev, 1);
        param.irq = dev->irq;
        param.membase = pci_resource_start(dev, 0);
-       
+
        printk(KERN_INFO "c4: PCI BIOS reports AVM-C%d at i/o %#x, irq %d, mem %#x\n",
               nr, param.port, param.irq, param.membase);
-       
+
        retval = c4_add_card(&param, dev, nr);
        if (retval != 0) {
                printk(KERN_ERR "c4: no AVM-C%d at i/o %#x, irq %d detected, mem %#x\n",
@@ -1280,10 +1280,10 @@ static int __devinit c4_probe(struct pci_dev *dev,
 }
 
 static struct pci_driver c4_pci_driver = {
-       .name           = "c4",
-       .id_table       = c4_pci_tbl,
-       .probe          = c4_probe,
-       .remove         = c4_remove,
+       .name           = "c4",
+       .id_table       = c4_pci_tbl,
+       .probe          = c4_probe,
+       .remove         = c4_remove,
 };
 
 static struct capi_driver capi_driver_c2 = {
@@ -1305,7 +1305,7 @@ static int __init c4_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index 08216b1..72ef188 100644 (file)
@@ -1,9 +1,9 @@
 /* $Id: t1isa.c,v 1.1.2.3 2004/02/10 01:07:12 keil Exp $
- * 
+ *
  * Module for AVM T1 HEMA-card.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -67,7 +67,7 @@ static int t1_detectandinit(unsigned int base, unsigned irq, int cardnr)
        int i;
 
        reverse_cardnr =   ((cardnr & 0x01) << 3) | ((cardnr & 0x02) << 1)
-                        | ((cardnr & 0x04) >> 1) | ((cardnr & 0x08) >> 3);
+               | ((cardnr & 0x04) >> 1) | ((cardnr & 0x08) >> 3);
        cregs[0] = (HEMA_VERSION_ID << 4) | (reverse_cardnr & 0xf);
        cregs[1] = 0x00; /* fast & slow link connected to CON1 */
        cregs[2] = 0x05; /* fast link 20MBit, slow link 20 MBit */
@@ -86,50 +86,50 @@ static int t1_detectandinit(unsigned int base, unsigned irq, int cardnr)
        /* board reset */
        t1outp(base, T1_RESETBOARD, 0xf);
        mdelay(100);
-       dummy = t1inp(base, T1_FASTLINK+T1_OUTSTAT); /* first read */
+       dummy = t1inp(base, T1_FASTLINK + T1_OUTSTAT); /* first read */
 
        /* write config */
        dummy = (base >> 4) & 0xff;
-       for (i=1;i<=0xf;i++) t1outp(base, i, dummy);
+       for (i = 1; i <= 0xf; i++) t1outp(base, i, dummy);
        t1outp(base, HEMA_PAL_ID & 0xf, dummy);
        t1outp(base, HEMA_PAL_ID >> 4, cregs[0]);
-       for(i=1;i<7;i++) t1outp(base, 0, cregs[i]);
+       for (i = 1; i < 7; i++) t1outp(base, 0, cregs[i]);
        t1outp(base, ((base >> 4)) & 0x3, cregs[7]);
        /* restore_flags(flags); */
 
        mdelay(100);
-       t1outp(base, T1_FASTLINK+T1_RESETLINK, 0);
-       t1outp(base, T1_SLOWLINK+T1_RESETLINK, 0);
+       t1outp(base, T1_FASTLINK + T1_RESETLINK, 0);
+       t1outp(base, T1_SLOWLINK + T1_RESETLINK, 0);
        mdelay(10);
-       t1outp(base, T1_FASTLINK+T1_RESETLINK, 1);
-       t1outp(base, T1_SLOWLINK+T1_RESETLINK, 1);
+       t1outp(base, T1_FASTLINK + T1_RESETLINK, 1);
+       t1outp(base, T1_SLOWLINK + T1_RESETLINK, 1);
        mdelay(100);
-       t1outp(base, T1_FASTLINK+T1_RESETLINK, 0);
-       t1outp(base, T1_SLOWLINK+T1_RESETLINK, 0);
+       t1outp(base, T1_FASTLINK + T1_RESETLINK, 0);
+       t1outp(base, T1_SLOWLINK + T1_RESETLINK, 0);
        mdelay(10);
-       t1outp(base, T1_FASTLINK+T1_ANALYSE, 0);
+       t1outp(base, T1_FASTLINK + T1_ANALYSE, 0);
        mdelay(5);
-       t1outp(base, T1_SLOWLINK+T1_ANALYSE, 0);
+       t1outp(base, T1_SLOWLINK + T1_ANALYSE, 0);
 
-       if (t1inp(base, T1_FASTLINK+T1_OUTSTAT) != 0x1) /* tx empty */
+       if (t1inp(base, T1_FASTLINK + T1_OUTSTAT) != 0x1) /* tx empty */
                return 1;
-       if (t1inp(base, T1_FASTLINK+T1_INSTAT) != 0x0) /* rx empty */
+       if (t1inp(base, T1_FASTLINK + T1_INSTAT) != 0x0) /* rx empty */
                return 2;
-       if (t1inp(base, T1_FASTLINK+T1_IRQENABLE) != 0x0)
+       if (t1inp(base, T1_FASTLINK + T1_IRQENABLE) != 0x0)
                return 3;
-       if ((t1inp(base, T1_FASTLINK+T1_FIFOSTAT) & 0xf0) != 0x70)
+       if ((t1inp(base, T1_FASTLINK + T1_FIFOSTAT) & 0xf0) != 0x70)
                return 4;
-       if ((t1inp(base, T1_FASTLINK+T1_IRQMASTER) & 0x0e) != 0)
+       if ((t1inp(base, T1_FASTLINK + T1_IRQMASTER) & 0x0e) != 0)
                return 5;
-       if ((t1inp(base, T1_FASTLINK+T1_IDENT) & 0x7d) != 1)
+       if ((t1inp(base, T1_FASTLINK + T1_IDENT) & 0x7d) != 1)
                return 6;
-       if (t1inp(base, T1_SLOWLINK+T1_OUTSTAT) != 0x1) /* tx empty */
+       if (t1inp(base, T1_SLOWLINK + T1_OUTSTAT) != 0x1) /* tx empty */
                return 7;
-       if ((t1inp(base, T1_SLOWLINK+T1_IRQMASTER) & 0x0e) != 0)
+       if ((t1inp(base, T1_SLOWLINK + T1_IRQMASTER) & 0x0e) != 0)
                return 8;
-       if ((t1inp(base, T1_SLOWLINK+T1_IDENT) & 0x7d) != 0)
+       if ((t1inp(base, T1_SLOWLINK + T1_IDENT) & 0x7d) != 0)
                return 9;
-        return 0;
+       return 0;
 }
 
 static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
@@ -163,13 +163,13 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
                        spin_unlock_irqrestore(&card->lock, flags);
 
                        if (MsgLen < 30) { /* not CAPI 64Bit */
-                               memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
+                               memset(card->msgbuf + MsgLen, 0, 30 - MsgLen);
                                MsgLen = 30;
                                CAPIMSG_SETLEN(card->msgbuf, 30);
                        }
-                       if (!(skb = alloc_skb(DataB3Len+MsgLen, GFP_ATOMIC))) {
+                       if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
                                printk(KERN_ERR "%s: incoming packet dropped\n",
-                                       card->name);
+                                      card->name);
                        } else {
                                memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                                memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len);
@@ -184,7 +184,7 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
                        if (!(skb = alloc_skb(MsgLen, GFP_ATOMIC))) {
                                spin_unlock_irqrestore(&card->lock, flags);
                                printk(KERN_ERR "%s: incoming packet dropped\n",
-                                               card->name);
+                                      card->name);
                        } else {
                                memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen);
                                if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3)
@@ -242,24 +242,24 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
                        MsgLen = t1_get_slice(card->port, card->msgbuf);
                        spin_unlock_irqrestore(&card->lock, flags);
                        card->msgbuf[MsgLen] = 0;
-                       while (    MsgLen > 0
-                              && (   card->msgbuf[MsgLen-1] == '\n'
-                                  || card->msgbuf[MsgLen-1] == '\r')) {
-                               card->msgbuf[MsgLen-1] = 0;
+                       while (MsgLen > 0
+                              && (card->msgbuf[MsgLen - 1] == '\n'
+                                  || card->msgbuf[MsgLen - 1] == '\r')) {
+                               card->msgbuf[MsgLen - 1] = 0;
                                MsgLen--;
                        }
                        printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
-                                       card->name, ApplId, card->msgbuf);
+                              card->name, ApplId, card->msgbuf);
                        break;
 
                case RECEIVE_DEBUGMSG:
                        MsgLen = t1_get_slice(card->port, card->msgbuf);
                        spin_unlock_irqrestore(&card->lock, flags);
                        card->msgbuf[MsgLen] = 0;
-                       while (    MsgLen > 0
-                              && (   card->msgbuf[MsgLen-1] == '\n'
-                                  || card->msgbuf[MsgLen-1] == '\r')) {
-                               card->msgbuf[MsgLen-1] = 0;
+                       while (MsgLen > 0
+                              && (card->msgbuf[MsgLen - 1] == '\n'
+                                  || card->msgbuf[MsgLen - 1] == '\r')) {
+                               card->msgbuf[MsgLen - 1] = 0;
                                MsgLen--;
                        }
                        printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -273,7 +273,7 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
                default:
                        spin_unlock_irqrestore(&card->lock, flags);
                        printk(KERN_ERR "%s: b1_interrupt: 0x%x ???\n",
-                                       card->name, b1cmd);
+                              card->name, b1cmd);
                        return IRQ_NONE;
                }
        }
@@ -296,7 +296,7 @@ static int t1isa_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        if ((retval = b1_load_t4file(card, &data->firmware))) {
                b1_reset(port);
                printk(KERN_ERR "%s: failed to load t4file!!\n",
-                                       card->name);
+                      card->name);
                return retval;
        }
 
@@ -304,7 +304,7 @@ static int t1isa_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
                if ((retval = b1_load_config(card, &data->configuration))) {
                        b1_reset(port);
                        printk(KERN_ERR "%s: failed to load config!!\n",
-                                       card->name);
+                              card->name);
                        return retval;
                }
        }
@@ -318,7 +318,7 @@ static int t1isa_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        b1_setinterrupt(port, card->irq, card->cardtype);
        b1_put_byte(port, SEND_INIT);
        b1_put_word(port, CAPI_MAXAPPL);
-       b1_put_word(port, AVM_NCCI_PER_CHANNEL*30);
+       b1_put_word(port, AVM_NCCI_PER_CHANNEL * 30);
        b1_put_word(port, ctrl->cnr - 1);
        spin_unlock_irqrestore(&card->lock, flags);
 
@@ -347,7 +347,7 @@ static void t1isa_remove(struct pci_dev *pdev)
 {
        avmctrl_info *cinfo = pci_get_drvdata(pdev);
        avmcard *card;
-       
+
        if (!cinfo)
                return;
 
@@ -393,7 +393,7 @@ static int t1isa_probe(struct pci_dev *pdev, int cardnr)
                printk(KERN_WARNING "t1isa: invalid port 0x%x.\n", card->port);
                retval = -EINVAL;
                goto err_free;
-        }
+       }
        if (hema_irq_table[card->irq & 0xf] == 0) {
                printk(KERN_WARNING "t1isa: irq %d not valid.\n", card->irq);
                retval = -EINVAL;
@@ -412,7 +412,7 @@ static int t1isa_probe(struct pci_dev *pdev, int cardnr)
                goto err_release_region;
        }
 
-        if ((retval = t1_detectandinit(card->port, card->irq, card->cardnr)) != 0) {
+       if ((retval = t1_detectandinit(card->port, card->irq, card->cardnr)) != 0) {
                printk(KERN_INFO "t1isa: NO card at 0x%x (%d)\n",
                       card->port, retval);
                retval = -ENODEV;
@@ -445,13 +445,13 @@ static int t1isa_probe(struct pci_dev *pdev, int cardnr)
        pci_set_drvdata(pdev, cinfo);
        return 0;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_release_region:
+err_release_region:
        release_region(card->port, AVMB1_PORTLEN);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 }
 
@@ -555,7 +555,7 @@ static int __init t1isa_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index a79eb5a..cb9a304 100644 (file)
@@ -1,9 +1,9 @@
 /* $Id: t1pci.c,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
- * 
+ *
  * Module for AVM T1 PCI-card.
- * 
+ *
  * Copyright 1999 by Carsten Paeth <calle@calle.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -59,7 +59,7 @@ static int t1pci_add_card(struct capicardparams *p, struct pci_dev *pdev)
                goto err;
        }
 
-        card->dma = avmcard_dma_alloc("t1pci", pdev, 2048+128, 2048+128);
+       card->dma = avmcard_dma_alloc("t1pci", pdev, 2048 + 128, 2048 + 128);
        if (!card->dma) {
                printk(KERN_WARNING "t1pci: no memory.\n");
                retval = -ENOMEM;
@@ -136,17 +136,17 @@ static int t1pci_add_card(struct capicardparams *p, struct pci_dev *pdev)
        pci_set_drvdata(pdev, card);
        return 0;
 
- err_free_irq:
+err_free_irq:
        free_irq(card->irq, card);
- err_unmap:
+err_unmap:
        iounmap(card->mbase);
- err_release_region:
+err_release_region:
        release_region(card->port, AVMB1_PORTLEN);
- err_free_dma:
+err_free_dma:
        avmcard_dma_free(card->dma);
- err_free:
+err_free:
        b1_free_card(card);
- err:
+err:
        return retval;
 }
 
@@ -157,7 +157,7 @@ static void t1pci_remove(struct pci_dev *pdev)
        avmcard *card = pci_get_drvdata(pdev);
        avmctrl_info *cinfo = card->ctrlinfo;
 
-       b1dma_reset(card);
+       b1dma_reset(card);
 
        detach_capi_ctr(&cinfo->capi_ctrl);
        free_irq(card->irq, card);
@@ -217,10 +217,10 @@ static int __devinit t1pci_probe(struct pci_dev *dev,
 }
 
 static struct pci_driver t1pci_pci_driver = {
-       .name           = "t1pci",
-       .id_table       = t1pci_pci_tbl,
-       .probe          = t1pci_probe,
-       .remove         = t1pci_remove,
+       .name           = "t1pci",
+       .id_table       = t1pci_pci_tbl,
+       .probe          = t1pci_probe,
+       .remove         = t1pci_remove,
 };
 
 static struct capi_driver capi_driver_t1pci = {
@@ -237,7 +237,7 @@ static int __init t1pci_init(void)
        if ((p = strchr(revision, ':')) != NULL && p[1]) {
                strlcpy(rev, p + 2, 32);
                if ((p = strchr(rev, '$')) != NULL && p > rev)
-                  *(p-1) = 0;
+                       *(p - 1) = 0;
        } else
                strcpy(rev, "1.0");
 
index 27ecd61..391e417 100644 (file)
@@ -1,74 +1,74 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#ifndef _INC_CAPI20  
+#ifndef _INC_CAPI20
 #define _INC_CAPI20
-        /* operations on message queues                             */
-        /* the common device type for CAPI20 drivers */
+/* operations on message queues                             */
+/* the common device type for CAPI20 drivers */
 #define FILE_DEVICE_CAPI20 0x8001
-        /* DEVICE_CONTROL codes for user and kernel mode applications */
+/* DEVICE_CONTROL codes for user and kernel mode applications */
 #define CAPI20_CTL_REGISTER             0x0801
 #define CAPI20_CTL_RELEASE              0x0802
 #define CAPI20_CTL_GET_MANUFACTURER     0x0805
 #define CAPI20_CTL_GET_VERSION          0x0806
 #define CAPI20_CTL_GET_SERIAL           0x0807
 #define CAPI20_CTL_GET_PROFILE          0x0808
-        /* INTERNAL_DEVICE_CONTROL codes for kernel mode applicatios only */
+/* INTERNAL_DEVICE_CONTROL codes for kernel mode applicatios only */
 #define CAPI20_CTL_PUT_MESSAGE          0x0803
 #define CAPI20_CTL_GET_MESSAGE          0x0804
-        /* the wrapped codes as required by the system */
-#define CAPI_CTL_CODE(f,m)              CTL_CODE(FILE_DEVICE_CAPI20,f,m,FILE_ANY_ACCESS)
-#define IOCTL_CAPI_REGISTER             CAPI_CTL_CODE(CAPI20_CTL_REGISTER,METHOD_BUFFERED)
-#define IOCTL_CAPI_RELEASE              CAPI_CTL_CODE(CAPI20_CTL_RELEASE,METHOD_BUFFERED)
-#define IOCTL_CAPI_GET_MANUFACTURER     CAPI_CTL_CODE(CAPI20_CTL_GET_MANUFACTURER,METHOD_BUFFERED)
-#define IOCTL_CAPI_GET_VERSION          CAPI_CTL_CODE(CAPI20_CTL_GET_VERSION,METHOD_BUFFERED)
-#define IOCTL_CAPI_GET_SERIAL           CAPI_CTL_CODE(CAPI20_CTL_GET_SERIAL,METHOD_BUFFERED)
-#define IOCTL_CAPI_GET_PROFILE          CAPI_CTL_CODE(CAPI20_CTL_GET_PROFILE,METHOD_BUFFERED)
-#define IOCTL_CAPI_PUT_MESSAGE          CAPI_CTL_CODE(CAPI20_CTL_PUT_MESSAGE,METHOD_BUFFERED)
-#define IOCTL_CAPI_GET_MESSAGE          CAPI_CTL_CODE(CAPI20_CTL_GET_MESSAGE,METHOD_BUFFERED)
+/* the wrapped codes as required by the system */
+#define CAPI_CTL_CODE(f, m)             CTL_CODE(FILE_DEVICE_CAPI20, f, m, FILE_ANY_ACCESS)
+#define IOCTL_CAPI_REGISTER             CAPI_CTL_CODE(CAPI20_CTL_REGISTER, METHOD_BUFFERED)
+#define IOCTL_CAPI_RELEASE              CAPI_CTL_CODE(CAPI20_CTL_RELEASE, METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_MANUFACTURER     CAPI_CTL_CODE(CAPI20_CTL_GET_MANUFACTURER, METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_VERSION          CAPI_CTL_CODE(CAPI20_CTL_GET_VERSION, METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_SERIAL           CAPI_CTL_CODE(CAPI20_CTL_GET_SERIAL, METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_PROFILE          CAPI_CTL_CODE(CAPI20_CTL_GET_PROFILE, METHOD_BUFFERED)
+#define IOCTL_CAPI_PUT_MESSAGE          CAPI_CTL_CODE(CAPI20_CTL_PUT_MESSAGE, METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_MESSAGE          CAPI_CTL_CODE(CAPI20_CTL_GET_MESSAGE, METHOD_BUFFERED)
 struct divas_capi_register_params  {
-  word MessageBufferSize;
-  word maxLogicalConnection;
-  word maxBDataBlocks;
-  word maxBDataLen;
+       word MessageBufferSize;
+       word maxLogicalConnection;
+       word maxBDataBlocks;
+       word maxBDataLen;
 };
 struct divas_capi_version  {
-  word CapiMajor;
-  word CapiMinor;
-  word ManuMajor;
-  word ManuMinor;
+       word CapiMajor;
+       word CapiMinor;
+       word ManuMajor;
+       word ManuMinor;
 };
 typedef struct api_profile_s {
-  word          Number;
-  word          Channels;
-  dword         Global_Options;
-  dword         B1_Protocols;
-  dword         B2_Protocols;
-  dword         B3_Protocols;
+       word          Number;
+       word          Channels;
+       dword         Global_Options;
+       dword         B1_Protocols;
+       dword         B2_Protocols;
+       dword         B3_Protocols;
 } API_PROFILE;
-        /* ISDN Common API message types                            */
+/* ISDN Common API message types                            */
 #define _ALERT_R                        0x8001
 #define _CONNECT_R                      0x8002
 #define _CONNECT_I                      0x8202
@@ -93,9 +93,9 @@ typedef struct api_profile_s {
 #define _CONNECT_B3_T90_ACTIVE_I        0x8288
 #define _MANUFACTURER_R                 0x80ff
 #define _MANUFACTURER_I                 0x82ff
-        /* OR this to convert a REQUEST to a CONFIRM                */
+/* OR this to convert a REQUEST to a CONFIRM                */
 #define CONFIRM                 0x0100
-        /* OR this to convert a INDICATION to a RESPONSE            */
+/* OR this to convert a INDICATION to a RESPONSE            */
 #define RESPONSE                0x0100
 /*------------------------------------------------------------------*/
 /* diehl isdn private MANUFACTURER codes                            */
@@ -115,248 +115,248 @@ typedef struct api_profile_s {
 /*------------------------------------------------------------------*/
 /* parameter structures                                             */
 /*------------------------------------------------------------------*/
-        /* ALERT-REQUEST                                            */
+/* ALERT-REQUEST                                            */
 typedef struct {
-  byte structs[0];      /* Additional Info */
+       byte structs[0];      /* Additional Info */
 } _ALT_REQP;
-        /* ALERT-CONFIRM                                            */
+/* ALERT-CONFIRM                                            */
 typedef struct {
-  word Info;
+       word Info;
 } _ALT_CONP;
-        /* CONNECT-REQUEST                                          */
-typedef struct {
-  word CIP_Value;
-  byte structs[0];      /* Called party number,
-                           Called party subaddress,
-                           Calling party number,
-                           Calling party subaddress,
-                           B_protocol,
-                           BC,
-                           LLC,
-                           HLC,
-                           Additional Info */
+/* CONNECT-REQUEST                                          */
+typedef struct {
+       word CIP_Value;
+       byte structs[0];      /* Called party number,
+                                Called party subaddress,
+                                Calling party number,
+                                Calling party subaddress,
+                                B_protocol,
+                                BC,
+                                LLC,
+                                HLC,
+                                Additional Info */
 } _CON_REQP;
-        /* CONNECT-CONFIRM                                          */
+/* CONNECT-CONFIRM                                          */
 typedef struct {
-  word Info;
+       word Info;
 } _CON_CONP;
-        /* CONNECT-INDICATION                                       */
-typedef struct {
-  word CIP_Value;
-  byte structs[0];      /* Called party number,
-                           Called party subaddress,
-                           Calling party number,
-                           Calling party subaddress,
-                           BC,
-                           LLC,
-                           HLC,
-                           Additional Info */
+/* CONNECT-INDICATION                                       */
+typedef struct {
+       word CIP_Value;
+       byte structs[0];      /* Called party number,
+                                Called party subaddress,
+                                Calling party number,
+                                Calling party subaddress,
+                                BC,
+                                LLC,
+                                HLC,
+                                Additional Info */
 } _CON_INDP;
-        /* CONNECT-RESPONSE                                         */
+/* CONNECT-RESPONSE                                         */
 typedef struct {
-  word Accept;
-  byte structs[0];      /* B_protocol,
-                           Connected party number,
-                           Connected party subaddress,
-                           LLC */
+       word Accept;
+       byte structs[0];      /* B_protocol,
+                                Connected party number,
+                                Connected party subaddress,
+                                LLC */
 } _CON_RESP;
-        /* CONNECT-ACTIVE-INDICATION                                */
+/* CONNECT-ACTIVE-INDICATION                                */
 typedef struct {
-  byte structs[0];      /* Connected party number,
-                           Connected party subaddress,
-                           LLC */
+       byte structs[0];      /* Connected party number,
+                                Connected party subaddress,
+                                LLC */
 } _CON_A_INDP;
-        /* CONNECT-ACTIVE-RESPONSE                                  */
+/* CONNECT-ACTIVE-RESPONSE                                  */
 typedef struct {
-  byte structs[0];      /* empty */
+       byte structs[0];      /* empty */
 } _CON_A_RESP;
-        /* DISCONNECT-REQUEST                                       */
+/* DISCONNECT-REQUEST                                       */
 typedef struct {
-  byte structs[0];      /* Additional Info */
+       byte structs[0];      /* Additional Info */
 } _DIS_REQP;
-        /* DISCONNECT-CONFIRM                                       */
+/* DISCONNECT-CONFIRM                                       */
 typedef struct {
-  word Info;
+       word Info;
 } _DIS_CONP;
-        /* DISCONNECT-INDICATION                                    */
+/* DISCONNECT-INDICATION                                    */
 typedef struct {
-  word Info;
+       word Info;
 } _DIS_INDP;
-        /* DISCONNECT-RESPONSE                                      */
+/* DISCONNECT-RESPONSE                                      */
 typedef struct {
-  byte structs[0];      /* empty */
+       byte structs[0];      /* empty */
 } _DIS_RESP;
-        /* LISTEN-REQUEST                                           */
+/* LISTEN-REQUEST                                           */
 typedef struct {
-  dword Info_Mask;
-  dword CIP_Mask;
-  byte structs[0];      /* Calling party number,
-                           Calling party subaddress */
+       dword Info_Mask;
+       dword CIP_Mask;
+       byte structs[0];      /* Calling party number,
+                                Calling party subaddress */
 } _LIS_REQP;
-        /* LISTEN-CONFIRM                                           */
+/* LISTEN-CONFIRM                                           */
 typedef struct {
-  word Info;
+       word Info;
 } _LIS_CONP;
-        /* INFO-REQUEST                                             */
+/* INFO-REQUEST                                             */
 typedef struct {
-  byte structs[0];      /* Called party number,
-                           Additional Info */
+       byte structs[0];      /* Called party number,
+                                Additional Info */
 } _INF_REQP;
-        /* INFO-CONFIRM                                             */
+/* INFO-CONFIRM                                             */
 typedef struct {
-  word Info;
+       word Info;
 } _INF_CONP;
-        /* INFO-INDICATION                                          */
+/* INFO-INDICATION                                          */
 typedef struct {
-  word Number;
-  byte structs[0];      /* Info element */
+       word Number;
+       byte structs[0];      /* Info element */
 } _INF_INDP;
-        /* INFO-RESPONSE                                            */
+/* INFO-RESPONSE                                            */
 typedef struct {
-  byte structs[0];      /* empty */
+       byte structs[0];      /* empty */
 } _INF_RESP;
-        /* SELECT-B-REQUEST                                         */
+/* SELECT-B-REQUEST                                         */
 typedef struct {
-  byte structs[0];      /* B-protocol */
+       byte structs[0];      /* B-protocol */
 } _SEL_B_REQP;
-        /* SELECT-B-CONFIRM                                         */
+/* SELECT-B-CONFIRM                                         */
 typedef struct {
-  word Info;
+       word Info;
 } _SEL_B_CONP;
-        /* FACILITY-REQUEST */
+/* FACILITY-REQUEST */
 typedef struct {
-  word Selector;
-  byte structs[0];      /* Facility parameters */
+       word Selector;
+       byte structs[0];      /* Facility parameters */
 } _FAC_REQP;
-        /* FACILITY-CONFIRM STRUCT FOR SUPPLEMENT. SERVICES */
+/* FACILITY-CONFIRM STRUCT FOR SUPPLEMENT. SERVICES */
 typedef struct {
-  byte  struct_length;
-  word  function;
-  byte  length;
-  word  SupplementaryServiceInfo;
-  dword SupportedServices;
+       byte  struct_length;
+       word  function;
+       byte  length;
+       word  SupplementaryServiceInfo;
+       dword SupportedServices;
 } _FAC_CON_STRUCTS;
-        /* FACILITY-CONFIRM */
+/* FACILITY-CONFIRM */
 typedef struct {
-  word Info;
-  word Selector;
-  byte structs[0];      /* Facility parameters */
+       word Info;
+       word Selector;
+       byte structs[0];      /* Facility parameters */
 } _FAC_CONP;
-        /* FACILITY-INDICATION */
+/* FACILITY-INDICATION */
 typedef struct {
-  word Selector;
-  byte structs[0];      /* Facility parameters */
+       word Selector;
+       byte structs[0];      /* Facility parameters */
 } _FAC_INDP;
-        /* FACILITY-RESPONSE */
+/* FACILITY-RESPONSE */
 typedef struct {
-  word Selector;
-  byte structs[0];      /* Facility parameters */
+       word Selector;
+       byte structs[0];      /* Facility parameters */
 } _FAC_RESP;
-        /* CONNECT-B3-REQUEST                                       */
+/* CONNECT-B3-REQUEST                                       */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _CON_B3_REQP;
-        /* CONNECT-B3-CONFIRM                                       */
+/* CONNECT-B3-CONFIRM                                       */
 typedef struct {
-  word Info;
+       word Info;
 } _CON_B3_CONP;
-        /* CONNECT-B3-INDICATION                                    */
+/* CONNECT-B3-INDICATION                                    */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _CON_B3_INDP;
-        /* CONNECT-B3-RESPONSE                                      */
+/* CONNECT-B3-RESPONSE                                      */
 typedef struct {
-  word Accept;
-  byte structs[0];      /* NCPI */
+       word Accept;
+       byte structs[0];      /* NCPI */
 } _CON_B3_RESP;
-        /* CONNECT-B3-ACTIVE-INDICATION                             */
+/* CONNECT-B3-ACTIVE-INDICATION                             */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _CON_B3_A_INDP;
-        /* CONNECT-B3-ACTIVE-RESPONSE                               */
+/* CONNECT-B3-ACTIVE-RESPONSE                               */
 typedef struct {
-  byte structs[0];      /* empty */
+       byte structs[0];      /* empty */
 } _CON_B3_A_RESP;
-        /* DISCONNECT-B3-REQUEST                                    */
+/* DISCONNECT-B3-REQUEST                                    */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _DIS_B3_REQP;
-        /* DISCONNECT-B3-CONFIRM                                    */
+/* DISCONNECT-B3-CONFIRM                                    */
 typedef struct {
-  word Info;
+       word Info;
 } _DIS_B3_CONP;
-        /* DISCONNECT-B3-INDICATION                                 */
+/* DISCONNECT-B3-INDICATION                                 */
 typedef struct {
-  word Info;
-  byte structs[0];      /* NCPI */
+       word Info;
+       byte structs[0];      /* NCPI */
 } _DIS_B3_INDP;
-        /* DISCONNECT-B3-RESPONSE                                   */
+/* DISCONNECT-B3-RESPONSE                                   */
 typedef struct {
-  byte structs[0];      /* empty */
+       byte structs[0];      /* empty */
 } _DIS_B3_RESP;
-        /* DATA-B3-REQUEST                                          */
+/* DATA-B3-REQUEST                                          */
 typedef struct {
-  dword         Data;
-  word          Data_Length;
-  word          Number;
-  word          Flags;
+       dword         Data;
+       word          Data_Length;
+       word          Number;
+       word          Flags;
 } _DAT_B3_REQP;
-        /* DATA-B3-REQUEST 64 BIT Systems                           */
+/* DATA-B3-REQUEST 64 BIT Systems                           */
 typedef struct {
-  dword         Data;
-  word          Data_Length;
-  word          Number;
-  word          Flags;
-  void          *pData;
+       dword         Data;
+       word          Data_Length;
+       word          Number;
+       word          Flags;
+       void          *pData;
 } _DAT_B3_REQ64P;
-        /* DATA-B3-CONFIRM                                          */
+/* DATA-B3-CONFIRM                                          */
 typedef struct {
-  word          Number;
-  word          Info;
+       word          Number;
+       word          Info;
 } _DAT_B3_CONP;
-        /* DATA-B3-INDICATION                                       */
+/* DATA-B3-INDICATION                                       */
 typedef struct {
-  dword         Data;
-  word          Data_Length;
-  word          Number;
-  word          Flags;
+       dword         Data;
+       word          Data_Length;
+       word          Number;
+       word          Flags;
 } _DAT_B3_INDP;
-        /* DATA-B3-INDICATION  64 BIT Systems                       */
+/* DATA-B3-INDICATION  64 BIT Systems                       */
 typedef struct {
-  dword         Data;
-  word          Data_Length;
-  word          Number;
-  word          Flags;
-  void          *pData;
+       dword         Data;
+       word          Data_Length;
+       word          Number;
+       word          Flags;
+       void          *pData;
 } _DAT_B3_IND64P;
-        /* DATA-B3-RESPONSE                                         */
+/* DATA-B3-RESPONSE                                         */
 typedef struct {
-  word          Number;
+       word          Number;
 } _DAT_B3_RESP;
-        /* RESET-B3-REQUEST                                         */
+/* RESET-B3-REQUEST                                         */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _RES_B3_REQP;
-        /* RESET-B3-CONFIRM                                         */
+/* RESET-B3-CONFIRM                                         */
 typedef struct {
-  word Info;
+       word Info;
 } _RES_B3_CONP;
-        /* RESET-B3-INDICATION                                      */
+/* RESET-B3-INDICATION                                      */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _RES_B3_INDP;
-        /* RESET-B3-RESPONSE                                        */
+/* RESET-B3-RESPONSE                                        */
 typedef struct {
-  byte structs[0];      /* empty */
+       byte structs[0];      /* empty */
 } _RES_B3_RESP;
-        /* CONNECT-B3-T90-ACTIVE-INDICATION                         */
+/* CONNECT-B3-T90-ACTIVE-INDICATION                         */
 typedef struct {
-  byte structs[0];      /* NCPI */
+       byte structs[0];      /* NCPI */
 } _CON_B3_T90_A_INDP;
-        /* CONNECT-B3-T90-ACTIVE-RESPONSE                           */
+/* CONNECT-B3-T90-ACTIVE-RESPONSE                           */
 typedef struct {
-  word Reject;
-  byte structs[0];      /* NCPI */
+       word Reject;
+       byte structs[0];      /* NCPI */
 } _CON_B3_T90_A_RESP;
 /*------------------------------------------------------------------*/
 /* message structure                                                */
@@ -364,64 +364,64 @@ typedef struct {
 typedef struct _API_MSG CAPI_MSG;
 typedef struct _MSG_HEADER CAPI_MSG_HEADER;
 struct _API_MSG {
-  struct _MSG_HEADER {
-    word        length;
-    word        appl_id;
-    word        command;
-    word        number;
-    byte        controller;
-    byte        plci;
-    word        ncci;
-  } header;
-  union {
-    _ALT_REQP           alert_req;
-    _ALT_CONP           alert_con;
-    _CON_REQP           connect_req;
-    _CON_CONP           connect_con;
-    _CON_INDP           connect_ind;
-    _CON_RESP           connect_res;
-    _CON_A_INDP         connect_a_ind;
-    _CON_A_RESP         connect_a_res;
-    _DIS_REQP           disconnect_req;
-    _DIS_CONP           disconnect_con;
-    _DIS_INDP           disconnect_ind;
-    _DIS_RESP           disconnect_res;
-    _LIS_REQP           listen_req;
-    _LIS_CONP           listen_con;
-    _INF_REQP           info_req;
-    _INF_CONP           info_con;
-    _INF_INDP           info_ind;
-    _INF_RESP           info_res;
-    _SEL_B_REQP         select_b_req;
-    _SEL_B_CONP         select_b_con;
-    _FAC_REQP           facility_req;
-    _FAC_CONP           facility_con;
-    _FAC_INDP           facility_ind;
-    _FAC_RESP           facility_res;
-    _CON_B3_REQP        connect_b3_req;
-    _CON_B3_CONP        connect_b3_con;
-    _CON_B3_INDP        connect_b3_ind;
-    _CON_B3_RESP        connect_b3_res;
-    _CON_B3_A_INDP      connect_b3_a_ind;
-    _CON_B3_A_RESP      connect_b3_a_res;
-    _DIS_B3_REQP        disconnect_b3_req;
-    _DIS_B3_CONP        disconnect_b3_con;
-    _DIS_B3_INDP        disconnect_b3_ind;
-    _DIS_B3_RESP        disconnect_b3_res;
-    _DAT_B3_REQP        data_b3_req;
-    _DAT_B3_REQ64P      data_b3_req64;
-    _DAT_B3_CONP        data_b3_con;
-    _DAT_B3_INDP        data_b3_ind;
-    _DAT_B3_IND64P      data_b3_ind64;
-    _DAT_B3_RESP        data_b3_res;
-    _RES_B3_REQP        reset_b3_req;
-    _RES_B3_CONP        reset_b3_con;
-    _RES_B3_INDP        reset_b3_ind;
-    _RES_B3_RESP        reset_b3_res;
-    _CON_B3_T90_A_INDP  connect_b3_t90_a_ind;
-    _CON_B3_T90_A_RESP  connect_b3_t90_a_res;
-    byte                b[200];
-  } info;
+       struct _MSG_HEADER {
+               word        length;
+               word        appl_id;
+               word        command;
+               word        number;
+               byte        controller;
+               byte        plci;
+               word        ncci;
+       } header;
+       union {
+               _ALT_REQP           alert_req;
+               _ALT_CONP           alert_con;
+               _CON_REQP           connect_req;
+               _CON_CONP           connect_con;
+               _CON_INDP           connect_ind;
+               _CON_RESP           connect_res;
+               _CON_A_INDP         connect_a_ind;
+               _CON_A_RESP         connect_a_res;
+               _DIS_REQP           disconnect_req;
+               _DIS_CONP           disconnect_con;
+               _DIS_INDP           disconnect_ind;
+               _DIS_RESP           disconnect_res;
+               _LIS_REQP           listen_req;
+               _LIS_CONP           listen_con;
+               _INF_REQP           info_req;
+               _INF_CONP           info_con;
+               _INF_INDP           info_ind;
+               _INF_RESP           info_res;
+               _SEL_B_REQP         select_b_req;
+               _SEL_B_CONP         select_b_con;
+               _FAC_REQP           facility_req;
+               _FAC_CONP           facility_con;
+               _FAC_INDP           facility_ind;
+               _FAC_RESP           facility_res;
+               _CON_B3_REQP        connect_b3_req;
+               _CON_B3_CONP        connect_b3_con;
+               _CON_B3_INDP        connect_b3_ind;
+               _CON_B3_RESP        connect_b3_res;
+               _CON_B3_A_INDP      connect_b3_a_ind;
+               _CON_B3_A_RESP      connect_b3_a_res;
+               _DIS_B3_REQP        disconnect_b3_req;
+               _DIS_B3_CONP        disconnect_b3_con;
+               _DIS_B3_INDP        disconnect_b3_ind;
+               _DIS_B3_RESP        disconnect_b3_res;
+               _DAT_B3_REQP        data_b3_req;
+               _DAT_B3_REQ64P      data_b3_req64;
+               _DAT_B3_CONP        data_b3_con;
+               _DAT_B3_INDP        data_b3_ind;
+               _DAT_B3_IND64P      data_b3_ind64;
+               _DAT_B3_RESP        data_b3_res;
+               _RES_B3_REQP        reset_b3_req;
+               _RES_B3_CONP        reset_b3_con;
+               _RES_B3_INDP        reset_b3_ind;
+               _RES_B3_RESP        reset_b3_res;
+               _CON_B3_T90_A_INDP  connect_b3_t90_a_ind;
+               _CON_B3_T90_A_RESP  connect_b3_t90_a_res;
+               byte                b[200];
+       } info;
 };
 /*------------------------------------------------------------------*/
 /* non-fatal errors                                                 */
@@ -696,4 +696,4 @@ struct _API_MSG {
 /* function prototypes                                              */
 /*------------------------------------------------------------------*/
 /*------------------------------------------------------------------*/
-#endif /* _INC_CAPI20 */  
+#endif /* _INC_CAPI20 */
index f130724..e3f7784 100644 (file)
@@ -1,34 +1,34 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 
 #include "platform.h"
 
 
-  
-  
+
+
 
 
 
 
 static short capidtmf_expand_table_alaw[0x0100] =
 {
-   -5504,   5504,   -344,    344, -22016,  22016,  -1376,   1376,
-   -2752,   2752,    -88,     88, -11008,  11008,   -688,    688,
-   -7552,   7552,   -472,    472, -30208,  30208,  -1888,   1888,
-   -3776,   3776,   -216,    216, -15104,  15104,   -944,    944,
-   -4480,   4480,   -280,    280, -17920,  17920,  -1120,   1120,
-   -2240,   2240,    -24,     24,  -8960,   8960,   -560,    560,
-   -6528,   6528,   -408,    408, -26112,  26112,  -1632,   1632,
-   -3264,   3264,   -152,    152, -13056,  13056,   -816,    816,
-   -6016,   6016,   -376,    376, -24064,  24064,  -1504,   1504,
-   -3008,   3008,   -120,    120, -12032,  12032,   -752,    752,
-   -8064,   8064,   -504,    504, -32256,  32256,  -2016,   2016,
-   -4032,   4032,   -248,    248, -16128,  16128,  -1008,   1008,
-   -4992,   4992,   -312,    312, -19968,  19968,  -1248,   1248,
-   -2496,   2496,    -56,     56,  -9984,   9984,   -624,    624,
-   -7040,   7040,   -440,    440, -28160,  28160,  -1760,   1760,
-   -3520,   3520,   -184,    184, -14080,  14080,   -880,    880,
-   -5248,   5248,   -328,    328, -20992,  20992,  -1312,   1312,
-   -2624,   2624,    -72,     72, -10496,  10496,   -656,    656,
-   -7296,   7296,   -456,    456, -29184,  29184,  -1824,   1824,
-   -3648,   3648,   -200,    200, -14592,  14592,   -912,    912,
-   -4224,   4224,   -264,    264, -16896,  16896,  -1056,   1056,
-   -2112,   2112,     -8,      8,  -8448,   8448,   -528,    528,
-   -6272,   6272,   -392,    392, -25088,  25088,  -1568,   1568,
-   -3136,   3136,   -136,    136, -12544,  12544,   -784,    784,
-   -5760,   5760,   -360,    360, -23040,  23040,  -1440,   1440,
-   -2880,   2880,   -104,    104, -11520,  11520,   -720,    720,
-   -7808,   7808,   -488,    488, -31232,  31232,  -1952,   1952,
-   -3904,   3904,   -232,    232, -15616,  15616,   -976,    976,
-   -4736,   4736,   -296,    296, -18944,  18944,  -1184,   1184,
-   -2368,   2368,    -40,     40,  -9472,   9472,   -592,    592,
-   -6784,   6784,   -424,    424, -27136,  27136,  -1696,   1696,
-   -3392,   3392,   -168,    168, -13568,  13568,   -848,    848
+       -5504,   5504,   -344,    344, -22016,  22016,  -1376,   1376,
+       -2752,   2752,    -88,     88, -11008,  11008,   -688,    688,
+       -7552,   7552,   -472,    472, -30208,  30208,  -1888,   1888,
+       -3776,   3776,   -216,    216, -15104,  15104,   -944,    944,
+       -4480,   4480,   -280,    280, -17920,  17920,  -1120,   1120,
+       -2240,   2240,    -24,     24,  -8960,   8960,   -560,    560,
+       -6528,   6528,   -408,    408, -26112,  26112,  -1632,   1632,
+       -3264,   3264,   -152,    152, -13056,  13056,   -816,    816,
+       -6016,   6016,   -376,    376, -24064,  24064,  -1504,   1504,
+       -3008,   3008,   -120,    120, -12032,  12032,   -752,    752,
+       -8064,   8064,   -504,    504, -32256,  32256,  -2016,   2016,
+       -4032,   4032,   -248,    248, -16128,  16128,  -1008,   1008,
+       -4992,   4992,   -312,    312, -19968,  19968,  -1248,   1248,
+       -2496,   2496,    -56,     56,  -9984,   9984,   -624,    624,
+       -7040,   7040,   -440,    440, -28160,  28160,  -1760,   1760,
+       -3520,   3520,   -184,    184, -14080,  14080,   -880,    880,
+       -5248,   5248,   -328,    328, -20992,  20992,  -1312,   1312,
+       -2624,   2624,    -72,     72, -10496,  10496,   -656,    656,
+       -7296,   7296,   -456,    456, -29184,  29184,  -1824,   1824,
+       -3648,   3648,   -200,    200, -14592,  14592,   -912,    912,
+       -4224,   4224,   -264,    264, -16896,  16896,  -1056,   1056,
+       -2112,   2112,     -8,      8,  -8448,   8448,   -528,    528,
+       -6272,   6272,   -392,    392, -25088,  25088,  -1568,   1568,
+       -3136,   3136,   -136,    136, -12544,  12544,   -784,    784,
+       -5760,   5760,   -360,    360, -23040,  23040,  -1440,   1440,
+       -2880,   2880,   -104,    104, -11520,  11520,   -720,    720,
+       -7808,   7808,   -488,    488, -31232,  31232,  -1952,   1952,
+       -3904,   3904,   -232,    232, -15616,  15616,   -976,    976,
+       -4736,   4736,   -296,    296, -18944,  18944,  -1184,   1184,
+       -2368,   2368,    -40,     40,  -9472,   9472,   -592,    592,
+       -6784,   6784,   -424,    424, -27136,  27136,  -1696,   1696,
+       -3392,   3392,   -168,    168, -13568,  13568,   -848,    848
 };
 
 static short capidtmf_expand_table_ulaw[0x0100] =
 {
-  -32124,  32124,  -1884,   1884,  -7932,   7932,   -372,    372,
-  -15996,  15996,   -876,    876,  -3900,   3900,   -120,    120,
-  -23932,  23932,  -1372,   1372,  -5884,   5884,   -244,    244,
-  -11900,  11900,   -620,    620,  -2876,   2876,    -56,     56,
-  -28028,  28028,  -1628,   1628,  -6908,   6908,   -308,    308,
-  -13948,  13948,   -748,    748,  -3388,   3388,    -88,     88,
-  -19836,  19836,  -1116,   1116,  -4860,   4860,   -180,    180,
-   -9852,   9852,   -492,    492,  -2364,   2364,    -24,     24,
-  -30076,  30076,  -1756,   1756,  -7420,   7420,   -340,    340,
-  -14972,  14972,   -812,    812,  -3644,   3644,   -104,    104,
-  -21884,  21884,  -1244,   1244,  -5372,   5372,   -212,    212,
-  -10876,  10876,   -556,    556,  -2620,   2620,    -40,     40,
-  -25980,  25980,  -1500,   1500,  -6396,   6396,   -276,    276,
-  -12924,  12924,   -684,    684,  -3132,   3132,    -72,     72,
-  -17788,  17788,   -988,    988,  -4348,   4348,   -148,    148,
-   -8828,   8828,   -428,    428,  -2108,   2108,     -8,      8,
-  -31100,  31100,  -1820,   1820,  -7676,   7676,   -356,    356,
-  -15484,  15484,   -844,    844,  -3772,   3772,   -112,    112,
-  -22908,  22908,  -1308,   1308,  -5628,   5628,   -228,    228,
-  -11388,  11388,   -588,    588,  -2748,   2748,    -48,     48,
-  -27004,  27004,  -1564,   1564,  -6652,   6652,   -292,    292,
-  -13436,  13436,   -716,    716,  -3260,   3260,    -80,     80,
-  -18812,  18812,  -1052,   1052,  -4604,   4604,   -164,    164,
-   -9340,   9340,   -460,    460,  -2236,   2236,    -16,     16,
-  -29052,  29052,  -1692,   1692,  -7164,   7164,   -324,    324,
-  -14460,  14460,   -780,    780,  -3516,   3516,    -96,     96,
-  -20860,  20860,  -1180,   1180,  -5116,   5116,   -196,    196,
-  -10364,  10364,   -524,    524,  -2492,   2492,    -32,     32,
-  -24956,  24956,  -1436,   1436,  -6140,   6140,   -260,    260,
-  -12412,  12412,   -652,    652,  -3004,   3004,    -64,     64,
-  -16764,  16764,   -924,    924,  -4092,   4092,   -132,    132,
-   -8316,   8316,   -396,    396,  -1980,   1980,      0,      0
+       -32124,  32124,  -1884,   1884,  -7932,   7932,   -372,    372,
+       -15996,  15996,   -876,    876,  -3900,   3900,   -120,    120,
+       -23932,  23932,  -1372,   1372,  -5884,   5884,   -244,    244,
+       -11900,  11900,   -620,    620,  -2876,   2876,    -56,     56,
+       -28028,  28028,  -1628,   1628,  -6908,   6908,   -308,    308,
+       -13948,  13948,   -748,    748,  -3388,   3388,    -88,     88,
+       -19836,  19836,  -1116,   1116,  -4860,   4860,   -180,    180,
+       -9852,   9852,   -492,    492,  -2364,   2364,    -24,     24,
+       -30076,  30076,  -1756,   1756,  -7420,   7420,   -340,    340,
+       -14972,  14972,   -812,    812,  -3644,   3644,   -104,    104,
+       -21884,  21884,  -1244,   1244,  -5372,   5372,   -212,    212,
+       -10876,  10876,   -556,    556,  -2620,   2620,    -40,     40,
+       -25980,  25980,  -1500,   1500,  -6396,   6396,   -276,    276,
+       -12924,  12924,   -684,    684,  -3132,   3132,    -72,     72,
+       -17788,  17788,   -988,    988,  -4348,   4348,   -148,    148,
+       -8828,   8828,   -428,    428,  -2108,   2108,     -8,      8,
+       -31100,  31100,  -1820,   1820,  -7676,   7676,   -356,    356,
+       -15484,  15484,   -844,    844,  -3772,   3772,   -112,    112,
+       -22908,  22908,  -1308,   1308,  -5628,   5628,   -228,    228,
+       -11388,  11388,   -588,    588,  -2748,   2748,    -48,     48,
+       -27004,  27004,  -1564,   1564,  -6652,   6652,   -292,    292,
+       -13436,  13436,   -716,    716,  -3260,   3260,    -80,     80,
+       -18812,  18812,  -1052,   1052,  -4604,   4604,   -164,    164,
+       -9340,   9340,   -460,    460,  -2236,   2236,    -16,     16,
+       -29052,  29052,  -1692,   1692,  -7164,   7164,   -324,    324,
+       -14460,  14460,   -780,    780,  -3516,   3516,    -96,     96,
+       -20860,  20860,  -1180,   1180,  -5116,   5116,   -196,    196,
+       -10364,  10364,   -524,    524,  -2492,   2492,    -32,     32,
+       -24956,  24956,  -1436,   1436,  -6140,   6140,   -260,    260,
+       -12412,  12412,   -652,    652,  -3004,   3004,    -64,     64,
+       -16764,  16764,   -924,    924,  -4092,   4092,   -132,    132,
+       -8316,   8316,   -396,    396,  -1980,   1980,      0,      0
 };
 
 
@@ -126,52 +126,52 @@ static short capidtmf_expand_table_ulaw[0x0100] =
 
 static short capidtmf_recv_window_function[CAPIDTMF_RECV_ACCUMULATE_CYCLES] =
 {
-    -500L,   -999L,  -1499L,  -1998L,  -2496L,  -2994L,  -3491L,  -3988L,
-   -4483L,  -4978L,  -5471L,  -5963L,  -6454L,  -6943L,  -7431L,  -7917L,
-   -8401L,  -8883L,  -9363L,  -9840L, -10316L, -10789L, -11259L, -11727L,
-  -12193L, -12655L, -13115L, -13571L, -14024L, -14474L, -14921L, -15364L,
-  -15804L, -16240L, -16672L, -17100L, -17524L, -17944L, -18360L, -18772L,
-  -19180L, -19583L, -19981L, -20375L, -20764L, -21148L, -21527L, -21901L,
-  -22270L, -22634L, -22993L, -23346L, -23694L, -24037L, -24374L, -24705L,
-  -25030L, -25350L, -25664L, -25971L, -26273L, -26568L, -26858L, -27141L,
-  -27418L, -27688L, -27952L, -28210L, -28461L, -28705L, -28943L, -29174L,
-  -29398L, -29615L, -29826L, -30029L, -30226L, -30415L, -30598L, -30773L,
-  -30941L, -31102L, -31256L, -31402L, -31541L, -31673L, -31797L, -31914L,
-  -32024L, -32126L, -32221L, -32308L, -32388L, -32460L, -32524L, -32581L,
-  -32631L, -32673L, -32707L, -32734L, -32753L, -32764L, -32768L, -32764L,
-  -32753L, -32734L, -32707L, -32673L, -32631L, -32581L, -32524L, -32460L,
-  -32388L, -32308L, -32221L, -32126L, -32024L, -31914L, -31797L, -31673L,
-  -31541L, -31402L, -31256L, -31102L, -30941L, -30773L, -30598L, -30415L,
-  -30226L, -30029L, -29826L, -29615L, -29398L, -29174L, -28943L, -28705L,
-  -28461L, -28210L, -27952L, -27688L, -27418L, -27141L, -26858L, -26568L,
-  -26273L, -25971L, -25664L, -25350L, -25030L, -24705L, -24374L, -24037L,
-  -23694L, -23346L, -22993L, -22634L, -22270L, -21901L, -21527L, -21148L,
-  -20764L, -20375L, -19981L, -19583L, -19180L, -18772L, -18360L, -17944L,
-  -17524L, -17100L, -16672L, -16240L, -15804L, -15364L, -14921L, -14474L,
-  -14024L, -13571L, -13115L, -12655L, -12193L, -11727L, -11259L, -10789L,
-  -10316L,  -9840L,  -9363L,  -8883L,  -8401L,  -7917L,  -7431L,  -6943L,
-   -6454L,  -5963L,  -5471L,  -4978L,  -4483L,  -3988L,  -3491L,  -2994L,
-   -2496L,  -1998L,  -1499L,   -999L,   -500L, 
+       -500L,   -999L,  -1499L,  -1998L,  -2496L,  -2994L,  -3491L,  -3988L,
+       -4483L,  -4978L,  -5471L,  -5963L,  -6454L,  -6943L,  -7431L,  -7917L,
+       -8401L,  -8883L,  -9363L,  -9840L, -10316L, -10789L, -11259L, -11727L,
+       -12193L, -12655L, -13115L, -13571L, -14024L, -14474L, -14921L, -15364L,
+       -15804L, -16240L, -16672L, -17100L, -17524L, -17944L, -18360L, -18772L,
+       -19180L, -19583L, -19981L, -20375L, -20764L, -21148L, -21527L, -21901L,
+       -22270L, -22634L, -22993L, -23346L, -23694L, -24037L, -24374L, -24705L,
+       -25030L, -25350L, -25664L, -25971L, -26273L, -26568L, -26858L, -27141L,
+       -27418L, -27688L, -27952L, -28210L, -28461L, -28705L, -28943L, -29174L,
+       -29398L, -29615L, -29826L, -30029L, -30226L, -30415L, -30598L, -30773L,
+       -30941L, -31102L, -31256L, -31402L, -31541L, -31673L, -31797L, -31914L,
+       -32024L, -32126L, -32221L, -32308L, -32388L, -32460L, -32524L, -32581L,
+       -32631L, -32673L, -32707L, -32734L, -32753L, -32764L, -32768L, -32764L,
+       -32753L, -32734L, -32707L, -32673L, -32631L, -32581L, -32524L, -32460L,
+       -32388L, -32308L, -32221L, -32126L, -32024L, -31914L, -31797L, -31673L,
+       -31541L, -31402L, -31256L, -31102L, -30941L, -30773L, -30598L, -30415L,
+       -30226L, -30029L, -29826L, -29615L, -29398L, -29174L, -28943L, -28705L,
+       -28461L, -28210L, -27952L, -27688L, -27418L, -27141L, -26858L, -26568L,
+       -26273L, -25971L, -25664L, -25350L, -25030L, -24705L, -24374L, -24037L,
+       -23694L, -23346L, -22993L, -22634L, -22270L, -21901L, -21527L, -21148L,
+       -20764L, -20375L, -19981L, -19583L, -19180L, -18772L, -18360L, -17944L,
+       -17524L, -17100L, -16672L, -16240L, -15804L, -15364L, -14921L, -14474L,
+       -14024L, -13571L, -13115L, -12655L, -12193L, -11727L, -11259L, -10789L,
+       -10316L,  -9840L,  -9363L,  -8883L,  -8401L,  -7917L,  -7431L,  -6943L,
+       -6454L,  -5963L,  -5471L,  -4978L,  -4483L,  -3988L,  -3491L,  -2994L,
+       -2496L,  -1998L,  -1499L,   -999L,   -500L,
 };
 
 static byte capidtmf_leading_zeroes_table[0x100] =
 {
-  8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+       8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
+       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 };
 
 #define capidtmf_byte_leading_zeroes(b)  (capidtmf_leading_zeroes_table[(BYTE)(b)])
@@ -182,140 +182,140 @@ static byte capidtmf_leading_zeroes_table[0x100] =
 /*---------------------------------------------------------------------------*/
 
 
-static void capidtmf_goertzel_loop (long *buffer, long *coeffs, short *sample, long count)
+static void capidtmf_goertzel_loop(long *buffer, long *coeffs, short *sample, long count)
 {
-  int i, j;
-  long c, d, q0, q1, q2;
-
-  for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT - 1; i++)
-  {
-    q1 = buffer[i];
-    q2 = buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
-    d = coeffs[i] >> 1;
-    c = d << 1;
-    if (c >= 0)
-    {
-      for (j = 0; j < count; j++)
-      {
-        q0 = sample[j] - q2 + (c * (q1 >> 16)) + (((dword)(((dword) d) * ((dword)(q1 & 0xffff)))) >> 15);
-        q2 = q1;
-        q1 = q0;
-      }
-    }
-    else
-    {
-      c = -c;
-      d = -d;
-      for (j = 0; j < count; j++)
-      {
-        q0 = sample[j] - q2 - ((c * (q1 >> 16)) + (((dword)(((dword) d) * ((dword)(q1 & 0xffff)))) >> 15));
-        q2 = q1;
-        q1 = q0;
-      }
-    }
-    buffer[i] = q1;
-    buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] = q2;
-  }
-  q1 = buffer[i];
-  q2 = buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
-  c = (coeffs[i] >> 1) << 1;
-  if (c >= 0)
-  {
-    for (j = 0; j < count; j++)
-    {
-      q0 = sample[j] - q2 + (c * (q1 >> 16)) + (((dword)(((dword)(c >> 1)) * ((dword)(q1 & 0xffff)))) >> 15);
-      q2 = q1;
-      q1 = q0;
-      c -= CAPIDTMF_RECV_FUNDAMENTAL_DECREMENT;
-    }
-  }
-  else
-  {
-    c = -c;
-    for (j = 0; j < count; j++)
-    {
-      q0 = sample[j] - q2 - ((c * (q1 >> 16)) + (((dword)(((dword)(c >> 1)) * ((dword)(q1 & 0xffff)))) >> 15));
-      q2 = q1;
-      q1 = q0;
-      c += CAPIDTMF_RECV_FUNDAMENTAL_DECREMENT;
-    }
-  }
-  coeffs[i] = c;
-  buffer[i] = q1;
-  buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] = q2;
+       int i, j;
+       long c, d, q0, q1, q2;
+
+       for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT - 1; i++)
+       {
+               q1 = buffer[i];
+               q2 = buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
+               d = coeffs[i] >> 1;
+               c = d << 1;
+               if (c >= 0)
+               {
+                       for (j = 0; j < count; j++)
+                       {
+                               q0 = sample[j] - q2 + (c * (q1 >> 16)) + (((dword)(((dword) d) * ((dword)(q1 & 0xffff)))) >> 15);
+                               q2 = q1;
+                               q1 = q0;
+                       }
+               }
+               else
+               {
+                       c = -c;
+                       d = -d;
+                       for (j = 0; j < count; j++)
+                       {
+                               q0 = sample[j] - q2 - ((c * (q1 >> 16)) + (((dword)(((dword) d) * ((dword)(q1 & 0xffff)))) >> 15));
+                               q2 = q1;
+                               q1 = q0;
+                       }
+               }
+               buffer[i] = q1;
+               buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] = q2;
+       }
+       q1 = buffer[i];
+       q2 = buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
+       c = (coeffs[i] >> 1) << 1;
+       if (c >= 0)
+       {
+               for (j = 0; j < count; j++)
+               {
+                       q0 = sample[j] - q2 + (c * (q1 >> 16)) + (((dword)(((dword)(c >> 1)) * ((dword)(q1 & 0xffff)))) >> 15);
+                       q2 = q1;
+                       q1 = q0;
+                       c -= CAPIDTMF_RECV_FUNDAMENTAL_DECREMENT;
+               }
+       }
+       else
+       {
+               c = -c;
+               for (j = 0; j < count; j++)
+               {
+                       q0 = sample[j] - q2 - ((c * (q1 >> 16)) + (((dword)(((dword)(c >> 1)) * ((dword)(q1 & 0xffff)))) >> 15));
+                       q2 = q1;
+                       q1 = q0;
+                       c += CAPIDTMF_RECV_FUNDAMENTAL_DECREMENT;
+               }
+       }
+       coeffs[i] = c;
+       buffer[i] = q1;
+       buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] = q2;
 }
 
 
-static void capidtmf_goertzel_result (long *buffer, long *coeffs)
+static void capidtmf_goertzel_result(long *buffer, long *coeffs)
 {
-  int i;
-  long d, e, q1, q2, lo, mid, hi;
-  dword k;
-
-  for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
-  {
-    q1 = buffer[i];
-    q2 = buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
-    d = coeffs[i] >> 1;
-    if (d >= 0)
-      d = ((d << 1) * (-q1 >> 16)) + (((dword)(((dword) d) * ((dword)(-q1 & 0xffff)))) >> 15);
-    else
-      d = ((-d << 1) * (-q1 >> 16)) + (((dword)(((dword) -d) * ((dword)(-q1 & 0xffff)))) >> 15);
-    e = (q2 >= 0) ? q2 : -q2;
-    if (d >= 0)
-    {
-      k = ((dword)(d & 0xffff)) * ((dword)(e & 0xffff));
-      lo = k & 0xffff;
-      mid = k >> 16;
-      k = ((dword)(d >> 16)) * ((dword)(e & 0xffff));
-      mid += k & 0xffff;
-      hi = k >> 16;
-      k = ((dword)(d & 0xffff)) * ((dword)(e >> 16));
-      mid += k & 0xffff;
-      hi += k >> 16;
-      hi += ((dword)(d >> 16)) * ((dword)(e >> 16));
-    }
-    else
-    {
-      d = -d;
-      k = ((dword)(d & 0xffff)) * ((dword)(e & 0xffff));
-      lo = -((long)(k & 0xffff));
-      mid = -((long)(k >> 16));
-      k = ((dword)(d >> 16)) * ((dword)(e & 0xffff));
-      mid -= k & 0xffff;
-      hi = -((long)(k >> 16));
-      k = ((dword)(d & 0xffff)) * ((dword)(e >> 16));
-      mid -= k & 0xffff;
-      hi -= k >> 16;
-      hi -= ((dword)(d >> 16)) * ((dword)(e >> 16));
-    }
-    if (q2 < 0)
-    {
-      lo = -lo;
-      mid = -mid;
-      hi = -hi;
-    }
-    d = (q1 >= 0) ? q1 : -q1;
-    k = ((dword)(d & 0xffff)) * ((dword)(d & 0xffff));
-    lo += k & 0xffff;
-    mid += k >> 16;
-    k = ((dword)(d >> 16)) * ((dword)(d & 0xffff));
-    mid += (k & 0xffff) << 1;
-    hi += (k >> 16) << 1;
-    hi += ((dword)(d >> 16)) * ((dword)(d >> 16));
-    d = (q2 >= 0) ? q2 : -q2;
-    k = ((dword)(d & 0xffff)) * ((dword)(d & 0xffff));
-    lo += k & 0xffff;
-    mid += k >> 16;
-    k = ((dword)(d >> 16)) * ((dword)(d & 0xffff));
-    mid += (k & 0xffff) << 1;
-    hi += (k >> 16) << 1;
-    hi += ((dword)(d >> 16)) * ((dword)(d >> 16));
-    mid += lo >> 16;
-    hi += mid >> 16;
-    buffer[i] = (lo & 0xffff) | (mid << 16);
-    buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] = hi;
-  }
+       int i;
+       long d, e, q1, q2, lo, mid, hi;
+       dword k;
+
+       for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
+       {
+               q1 = buffer[i];
+               q2 = buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
+               d = coeffs[i] >> 1;
+               if (d >= 0)
+                       d = ((d << 1) * (-q1 >> 16)) + (((dword)(((dword) d) * ((dword)(-q1 & 0xffff)))) >> 15);
+               else
+                       d = ((-d << 1) * (-q1 >> 16)) + (((dword)(((dword) -d) * ((dword)(-q1 & 0xffff)))) >> 15);
+               e = (q2 >= 0) ? q2 : -q2;
+               if (d >= 0)
+               {
+                       k = ((dword)(d & 0xffff)) * ((dword)(e & 0xffff));
+                       lo = k & 0xffff;
+                       mid = k >> 16;
+                       k = ((dword)(d >> 16)) * ((dword)(e & 0xffff));
+                       mid += k & 0xffff;
+                       hi = k >> 16;
+                       k = ((dword)(d & 0xffff)) * ((dword)(e >> 16));
+                       mid += k & 0xffff;
+                       hi += k >> 16;
+                       hi += ((dword)(d >> 16)) * ((dword)(e >> 16));
+               }
+               else
+               {
+                       d = -d;
+                       k = ((dword)(d & 0xffff)) * ((dword)(e & 0xffff));
+                       lo = -((long)(k & 0xffff));
+                       mid = -((long)(k >> 16));
+                       k = ((dword)(d >> 16)) * ((dword)(e & 0xffff));
+                       mid -= k & 0xffff;
+                       hi = -((long)(k >> 16));
+                       k = ((dword)(d & 0xffff)) * ((dword)(e >> 16));
+                       mid -= k & 0xffff;
+                       hi -= k >> 16;
+                       hi -= ((dword)(d >> 16)) * ((dword)(e >> 16));
+               }
+               if (q2 < 0)
+               {
+                       lo = -lo;
+                       mid = -mid;
+                       hi = -hi;
+               }
+               d = (q1 >= 0) ? q1 : -q1;
+               k = ((dword)(d & 0xffff)) * ((dword)(d & 0xffff));
+               lo += k & 0xffff;
+               mid += k >> 16;
+               k = ((dword)(d >> 16)) * ((dword)(d & 0xffff));
+               mid += (k & 0xffff) << 1;
+               hi += (k >> 16) << 1;
+               hi += ((dword)(d >> 16)) * ((dword)(d >> 16));
+               d = (q2 >= 0) ? q2 : -q2;
+               k = ((dword)(d & 0xffff)) * ((dword)(d & 0xffff));
+               lo += k & 0xffff;
+               mid += k >> 16;
+               k = ((dword)(d >> 16)) * ((dword)(d & 0xffff));
+               mid += (k & 0xffff) << 1;
+               hi += (k >> 16) << 1;
+               hi += ((dword)(d >> 16)) * ((dword)(d >> 16));
+               mid += lo >> 16;
+               hi += mid >> 16;
+               buffer[i] = (lo & 0xffff) | (mid << 16);
+               buffer[i + CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] = hi;
+       }
 }
 
 
@@ -346,339 +346,339 @@ static void capidtmf_goertzel_result (long *buffer, long *coeffs)
 
 static long capidtmf_recv_goertzel_coef_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] =
 {
-  0xda97L * 2,  /* 697 Hz (Low group 697 Hz) */
-  0xd299L * 2,  /* 770 Hz (Low group 770 Hz) */
-  0xc8cbL * 2,  /* 852 Hz (Low group 852 Hz) */
-  0xbd36L * 2,  /* 941 Hz (Low group 941 Hz) */
-  0x9501L * 2,  /* 1209 Hz (High group 1209 Hz) */
-  0x7f89L * 2,  /* 1336 Hz (High group 1336 Hz) */
-  0x6639L * 2,  /* 1477 Hz (High group 1477 Hz) */
-  0x48c6L * 2,  /* 1633 Hz (High group 1633 Hz) */
-  0xe14cL * 2,  /* 630 Hz (Lower guard of low group 631 Hz) */
-  0xb2e0L * 2,  /* 1015 Hz (Upper guard of low group 1039 Hz) */
-  0xa1a0L * 2,  /* 1130 Hz (Lower guard of high group 1140 Hz) */
-  0x8a87L * 2,  /* 1272 Hz (Guard between 1209 Hz and 1336 Hz: 1271 Hz) */
-  0x7353L * 2,  /* 1405 Hz (2nd harmonics of 697 Hz and guard between 1336 Hz and 1477 Hz: 1405 Hz) */
-  0x583bL * 2,  /* 1552 Hz (2nd harmonics of 770 Hz and guard between 1477 Hz and 1633 Hz: 1553 Hz) */
-  0x37d8L * 2,  /* 1720 Hz (2nd harmonics of 852 Hz and upper guard of high group: 1715 Hz) */
-  0x0000L * 2   /* 100-630 Hz (fundamentals) */
+       0xda97L * 2,  /* 697 Hz (Low group 697 Hz) */
+       0xd299L * 2,  /* 770 Hz (Low group 770 Hz) */
+       0xc8cbL * 2,  /* 852 Hz (Low group 852 Hz) */
+       0xbd36L * 2,  /* 941 Hz (Low group 941 Hz) */
+       0x9501L * 2,  /* 1209 Hz (High group 1209 Hz) */
+       0x7f89L * 2,  /* 1336 Hz (High group 1336 Hz) */
+       0x6639L * 2,  /* 1477 Hz (High group 1477 Hz) */
+       0x48c6L * 2,  /* 1633 Hz (High group 1633 Hz) */
+       0xe14cL * 2,  /* 630 Hz (Lower guard of low group 631 Hz) */
+       0xb2e0L * 2,  /* 1015 Hz (Upper guard of low group 1039 Hz) */
+       0xa1a0L * 2,  /* 1130 Hz (Lower guard of high group 1140 Hz) */
+       0x8a87L * 2,  /* 1272 Hz (Guard between 1209 Hz and 1336 Hz: 1271 Hz) */
+       0x7353L * 2,  /* 1405 Hz (2nd harmonics of 697 Hz and guard between 1336 Hz and 1477 Hz: 1405 Hz) */
+       0x583bL * 2,  /* 1552 Hz (2nd harmonics of 770 Hz and guard between 1477 Hz and 1633 Hz: 1553 Hz) */
+       0x37d8L * 2,  /* 1720 Hz (2nd harmonics of 852 Hz and upper guard of high group: 1715 Hz) */
+       0x0000L * 2   /* 100-630 Hz (fundamentals) */
 };
 
 
 static word capidtmf_recv_guard_snr_low_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] =
 {
-  14,                                    /* Low group peak versus 697 Hz */
-  14,                                    /* Low group peak versus 770 Hz */
-  16,                                    /* Low group peak versus 852 Hz */
-  16,                                    /* Low group peak versus 941 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1209 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1336 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1477 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1633 Hz */
-  14,                                    /* Low group peak versus 635 Hz */
-  16,                                    /* Low group peak versus 1010 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1140 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1272 Hz */
-  DSPDTMF_RX_HARMONICS_SEL_DEFAULT - 8,  /* Low group peak versus 1405 Hz */
-  DSPDTMF_RX_HARMONICS_SEL_DEFAULT - 4,  /* Low group peak versus 1555 Hz */
-  DSPDTMF_RX_HARMONICS_SEL_DEFAULT - 4,  /* Low group peak versus 1715 Hz */
-  12                                     /* Low group peak versus 100-630 Hz */
+       14,                                    /* Low group peak versus 697 Hz */
+       14,                                    /* Low group peak versus 770 Hz */
+       16,                                    /* Low group peak versus 852 Hz */
+       16,                                    /* Low group peak versus 941 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1209 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1336 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1477 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1633 Hz */
+       14,                                    /* Low group peak versus 635 Hz */
+       16,                                    /* Low group peak versus 1010 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1140 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* Low group peak versus 1272 Hz */
+       DSPDTMF_RX_HARMONICS_SEL_DEFAULT - 8,  /* Low group peak versus 1405 Hz */
+       DSPDTMF_RX_HARMONICS_SEL_DEFAULT - 4,  /* Low group peak versus 1555 Hz */
+       DSPDTMF_RX_HARMONICS_SEL_DEFAULT - 4,  /* Low group peak versus 1715 Hz */
+       12                                     /* Low group peak versus 100-630 Hz */
 };
 
 
 static word capidtmf_recv_guard_snr_high_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT] =
 {
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 697 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 770 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 852 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 941 Hz */
-  20,                                    /* High group peak versus 1209 Hz */
-  20,                                    /* High group peak versus 1336 Hz */
-  20,                                    /* High group peak versus 1477 Hz */
-  20,                                    /* High group peak versus 1633 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 635 Hz */
-  CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 1010 Hz */
-  16,                                    /* High group peak versus 1140 Hz */
-  4,                                     /* High group peak versus 1272 Hz */
-  6,                                     /* High group peak versus 1405 Hz */
-  8,                                     /* High group peak versus 1555 Hz */
-  16,                                    /* High group peak versus 1715 Hz */
-  12                                     /* High group peak versus 100-630 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 697 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 770 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 852 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 941 Hz */
+       20,                                    /* High group peak versus 1209 Hz */
+       20,                                    /* High group peak versus 1336 Hz */
+       20,                                    /* High group peak versus 1477 Hz */
+       20,                                    /* High group peak versus 1633 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 635 Hz */
+       CAPIDTMF_RECV_GUARD_SNR_DONTCARE,      /* High group peak versus 1010 Hz */
+       16,                                    /* High group peak versus 1140 Hz */
+       4,                                     /* High group peak versus 1272 Hz */
+       6,                                     /* High group peak versus 1405 Hz */
+       8,                                     /* High group peak versus 1555 Hz */
+       16,                                    /* High group peak versus 1715 Hz */
+       12                                     /* High group peak versus 100-630 Hz */
 };
 
 
 /*---------------------------------------------------------------------------*/
 
-static void capidtmf_recv_init (t_capidtmf_state   *p_state)
+static void capidtmf_recv_init(t_capidtmf_state *p_state)
 {
-  p_state->recv.min_gap_duration = 1;
-  p_state->recv.min_digit_duration = 1;
-
-  p_state->recv.cycle_counter = 0;
-  p_state->recv.current_digit_on_time = 0;
-  p_state->recv.current_digit_off_time = 0;
-  p_state->recv.current_digit_value = CAPIDTMF_RECV_NO_DIGIT;
-
-  p_state->recv.digit_write_pos = 0;
-  p_state->recv.digit_read_pos = 0;
-  p_state->recv.indication_state = 0;
-  p_state->recv.indication_state_ack = 0;
-  p_state->recv.state = CAPIDTMF_RECV_STATE_IDLE;
+       p_state->recv.min_gap_duration = 1;
+       p_state->recv.min_digit_duration = 1;
+
+       p_state->recv.cycle_counter = 0;
+       p_state->recv.current_digit_on_time = 0;
+       p_state->recv.current_digit_off_time = 0;
+       p_state->recv.current_digit_value = CAPIDTMF_RECV_NO_DIGIT;
+
+       p_state->recv.digit_write_pos = 0;
+       p_state->recv.digit_read_pos = 0;
+       p_state->recv.indication_state = 0;
+       p_state->recv.indication_state_ack = 0;
+       p_state->recv.state = CAPIDTMF_RECV_STATE_IDLE;
 }
 
 
-void capidtmf_recv_enable (t_capidtmf_state   *p_state, word min_digit_duration, word min_gap_duration)
+void capidtmf_recv_enable(t_capidtmf_state *p_state, word min_digit_duration, word min_gap_duration)
 {
-  p_state->recv.indication_state_ack &= CAPIDTMF_RECV_INDICATION_DIGIT;
-  p_state->recv.min_digit_duration = (word)(((((dword) min_digit_duration) * 8) +
-    ((dword)(CAPIDTMF_RECV_TIME_GRANULARITY / 2))) / ((dword) CAPIDTMF_RECV_TIME_GRANULARITY));
-  if (p_state->recv.min_digit_duration <= 1)
-    p_state->recv.min_digit_duration = 1;
-  else
-    (p_state->recv.min_digit_duration)--;
-  p_state->recv.min_gap_duration =
-    (word)((((dword) min_gap_duration) * 8) / ((dword) CAPIDTMF_RECV_TIME_GRANULARITY));
-  if (p_state->recv.min_gap_duration <= 1)
-    p_state->recv.min_gap_duration = 1;
-  else
-    (p_state->recv.min_gap_duration)--;
-  p_state->recv.state |= CAPIDTMF_RECV_STATE_DTMF_ACTIVE;
+       p_state->recv.indication_state_ack &= CAPIDTMF_RECV_INDICATION_DIGIT;
+       p_state->recv.min_digit_duration = (word)(((((dword) min_digit_duration) * 8) +
+                                                  ((dword)(CAPIDTMF_RECV_TIME_GRANULARITY / 2))) / ((dword) CAPIDTMF_RECV_TIME_GRANULARITY));
+       if (p_state->recv.min_digit_duration <= 1)
+               p_state->recv.min_digit_duration = 1;
+       else
+               (p_state->recv.min_digit_duration)--;
+       p_state->recv.min_gap_duration =
+               (word)((((dword) min_gap_duration) * 8) / ((dword) CAPIDTMF_RECV_TIME_GRANULARITY));
+       if (p_state->recv.min_gap_duration <= 1)
+               p_state->recv.min_gap_duration = 1;
+       else
+               (p_state->recv.min_gap_duration)--;
+       p_state->recv.state |= CAPIDTMF_RECV_STATE_DTMF_ACTIVE;
 }
 
 
-void capidtmf_recv_disable (t_capidtmf_state   *p_state)
+void capidtmf_recv_disable(t_capidtmf_state *p_state)
 {
-  p_state->recv.state &= ~CAPIDTMF_RECV_STATE_DTMF_ACTIVE;
-  if (p_state->recv.state == CAPIDTMF_RECV_STATE_IDLE)
-    capidtmf_recv_init (p_state);
-  else
-  {
-    p_state->recv.cycle_counter = 0;
-    p_state->recv.current_digit_on_time = 0;
-    p_state->recv.current_digit_off_time = 0;
-    p_state->recv.current_digit_value = CAPIDTMF_RECV_NO_DIGIT;
-  }
+       p_state->recv.state &= ~CAPIDTMF_RECV_STATE_DTMF_ACTIVE;
+       if (p_state->recv.state == CAPIDTMF_RECV_STATE_IDLE)
+               capidtmf_recv_init(p_state);
+       else
+       {
+               p_state->recv.cycle_counter = 0;
+               p_state->recv.current_digit_on_time = 0;
+               p_state->recv.current_digit_off_time = 0;
+               p_state->recv.current_digit_value = CAPIDTMF_RECV_NO_DIGIT;
+       }
 }
 
 
-word capidtmf_recv_indication (t_capidtmf_state   *p_state, byte *buffer)
+word capidtmf_recv_indication(t_capidtmf_state *p_state, byte *buffer)
 {
-  word i, j, k, flags;
-
-  flags = p_state->recv.indication_state ^ p_state->recv.indication_state_ack;
-  p_state->recv.indication_state_ack ^= flags & CAPIDTMF_RECV_INDICATION_DIGIT;
-  if (p_state->recv.digit_write_pos != p_state->recv.digit_read_pos)
-  {
-    i = 0;
-    k = p_state->recv.digit_write_pos;
-    j = p_state->recv.digit_read_pos;
-    do
-    {
-      buffer[i++] = p_state->recv.digit_buffer[j];
-      j = (j == CAPIDTMF_RECV_DIGIT_BUFFER_SIZE - 1) ? 0 : j + 1;
-    } while (j != k);
-    p_state->recv.digit_read_pos = k;
-    return (i);
-  }
-  p_state->recv.indication_state_ack ^= flags;
-  return (0);
+       word i, j, k, flags;
+
+       flags = p_state->recv.indication_state ^ p_state->recv.indication_state_ack;
+       p_state->recv.indication_state_ack ^= flags & CAPIDTMF_RECV_INDICATION_DIGIT;
+       if (p_state->recv.digit_write_pos != p_state->recv.digit_read_pos)
+       {
+               i = 0;
+               k = p_state->recv.digit_write_pos;
+               j = p_state->recv.digit_read_pos;
+               do
+               {
+                       buffer[i++] = p_state->recv.digit_buffer[j];
+                       j = (j == CAPIDTMF_RECV_DIGIT_BUFFER_SIZE - 1) ? 0 : j + 1;
+               } while (j != k);
+               p_state->recv.digit_read_pos = k;
+               return (i);
+       }
+       p_state->recv.indication_state_ack ^= flags;
+       return (0);
 }
 
 
 #define CAPIDTMF_RECV_WINDOWED_SAMPLES  32
 
-void capidtmf_recv_block (t_capidtmf_state   *p_state, byte   *buffer, word length)
+void capidtmf_recv_block(t_capidtmf_state *p_state, byte *buffer, word length)
 {
-  byte result_digit;
-  word sample_number, cycle_counter, n, i;
-  word low_peak, high_peak;
-  dword lo, hi;
-  byte   *p;
-  short *q;
-  byte goertzel_result_buffer[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
-    short windowed_sample_buffer[CAPIDTMF_RECV_WINDOWED_SAMPLES];
-
-
-  if (p_state->recv.state & CAPIDTMF_RECV_STATE_DTMF_ACTIVE)
-  {
-    cycle_counter = p_state->recv.cycle_counter;
-    sample_number = 0;
-    while (sample_number < length)
-    {
-      if (cycle_counter < CAPIDTMF_RECV_ACCUMULATE_CYCLES)
-      {
-        if (cycle_counter == 0)
-        {
-          for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
-          {
-            p_state->recv.goertzel_buffer[0][i] = 0;
-            p_state->recv.goertzel_buffer[1][i] = 0;
-          }
-        }
-        n = CAPIDTMF_RECV_ACCUMULATE_CYCLES - cycle_counter;
-        if (n > length - sample_number)
-          n = length - sample_number;
-        if (n > CAPIDTMF_RECV_WINDOWED_SAMPLES)
-          n = CAPIDTMF_RECV_WINDOWED_SAMPLES;
-        p = buffer + sample_number;
-        q = capidtmf_recv_window_function + cycle_counter;
-        if (p_state->ulaw)
-        {
-          for (i = 0; i < n; i++)
-          {
-            windowed_sample_buffer[i] =
-              (short)((capidtmf_expand_table_ulaw[p[i]] * ((long)(q[i]))) >> 15);
-         }
-        }
-        else
-        {
-          for (i = 0; i < n; i++)
-          {
-            windowed_sample_buffer[i] =
-              (short)((capidtmf_expand_table_alaw[p[i]] * ((long)(q[i]))) >> 15);
-         }
-        }
-        capidtmf_recv_goertzel_coef_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT - 1] = CAPIDTMF_RECV_FUNDAMENTAL_OFFSET;
-        capidtmf_goertzel_loop (p_state->recv.goertzel_buffer[0],
-          capidtmf_recv_goertzel_coef_table, windowed_sample_buffer, n);
-        cycle_counter += n;
-        sample_number += n;
-      }
-      else
-      {
-        capidtmf_goertzel_result (p_state->recv.goertzel_buffer[0],
-          capidtmf_recv_goertzel_coef_table);
-        for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
-        {
-          lo = (dword)(p_state->recv.goertzel_buffer[0][i]);
-          hi = (dword)(p_state->recv.goertzel_buffer[1][i]);
-          if (hi != 0)
-          {
-            n = capidtmf_dword_leading_zeroes (hi);
-            hi = (hi << n) | (lo >> (32 - n));
-          }
-          else
-          {
-            n = capidtmf_dword_leading_zeroes (lo);
-            hi = lo << n;
-           n += 32;
-          }
-          n = 195 - 3 * n;
-          if (hi >= 0xcb300000L)
-            n += 2;
-          else if (hi >= 0xa1450000L)
-            n++;
-         goertzel_result_buffer[i] = (byte) n;
-        }
-        low_peak = DSPDTMF_RX_SENSITIVITY_LOW_DEFAULT;
-        result_digit = CAPIDTMF_RECV_NO_DIGIT;
-        for (i = 0; i < CAPIDTMF_LOW_GROUP_FREQUENCIES; i++)
-        {
-          if (goertzel_result_buffer[i] > low_peak)
-         {
-           low_peak = goertzel_result_buffer[i];
-           result_digit = (byte) i;
-         }
-        }
-        high_peak = DSPDTMF_RX_SENSITIVITY_HIGH_DEFAULT;
-        n = CAPIDTMF_RECV_NO_DIGIT;
-        for (i = CAPIDTMF_LOW_GROUP_FREQUENCIES; i < CAPIDTMF_RECV_BASE_FREQUENCY_COUNT; i++)
-        {
-          if (goertzel_result_buffer[i] > high_peak)
-         {
-           high_peak = goertzel_result_buffer[i];
-           n = (i - CAPIDTMF_LOW_GROUP_FREQUENCIES) << 2;
-         }
-        }
-        result_digit |= (byte) n;
-        if (low_peak + DSPDTMF_RX_HIGH_EXCEEDING_LOW_DEFAULT < high_peak)
-          result_digit = CAPIDTMF_RECV_NO_DIGIT;
-        if (high_peak + DSPDTMF_RX_LOW_EXCEEDING_HIGH_DEFAULT < low_peak)
-          result_digit = CAPIDTMF_RECV_NO_DIGIT;
-        n = 0;
-        for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
-        {
-          if ((((short)(low_peak - goertzel_result_buffer[i] - capidtmf_recv_guard_snr_low_table[i])) < 0)
-           || (((short)(high_peak - goertzel_result_buffer[i] - capidtmf_recv_guard_snr_high_table[i])) < 0))
-         {
-           n++;
-         }
-        }
-        if (n != 2)
-          result_digit = CAPIDTMF_RECV_NO_DIGIT;
-
-        if (result_digit == CAPIDTMF_RECV_NO_DIGIT)
-        {
-          if (p_state->recv.current_digit_on_time != 0)
-          {
-            if (++(p_state->recv.current_digit_off_time) >= p_state->recv.min_gap_duration)
-            {
-              p_state->recv.current_digit_on_time = 0;
-              p_state->recv.current_digit_off_time = 0;
-            }
-          }
-          else
-          {
-            if (p_state->recv.current_digit_off_time != 0)
-              (p_state->recv.current_digit_off_time)--;
-          }
-        }
-        else
-        {
-          if ((p_state->recv.current_digit_on_time == 0)
-           && (p_state->recv.current_digit_off_time != 0))
-          {
-            (p_state->recv.current_digit_off_time)--;
-          }
-          else
-          {
-            n = p_state->recv.current_digit_off_time;
-            if ((p_state->recv.current_digit_on_time != 0)
-             && (result_digit != p_state->recv.current_digit_value))
-            {
-              p_state->recv.current_digit_on_time = 0;
-              n = 0;
-            }
-            p_state->recv.current_digit_value = result_digit;
-            p_state->recv.current_digit_off_time = 0;
-            if (p_state->recv.current_digit_on_time != 0xffff)
-            {
-              p_state->recv.current_digit_on_time += n + 1;
-              if (p_state->recv.current_digit_on_time >= p_state->recv.min_digit_duration)
-              {
-                p_state->recv.current_digit_on_time = 0xffff;
-                i = (p_state->recv.digit_write_pos == CAPIDTMF_RECV_DIGIT_BUFFER_SIZE - 1) ?
-                  0 : p_state->recv.digit_write_pos + 1;
-                if (i == p_state->recv.digit_read_pos)
-                {
-                  trace (dprintf ("%s,%d: Receive digit overrun",
-                    (char   *)(FILE_), __LINE__));
-                }
-                else
-                {
-                  p_state->recv.digit_buffer[p_state->recv.digit_write_pos] = result_digit;
-                  p_state->recv.digit_write_pos = i;
-                  p_state->recv.indication_state =
-                    (p_state->recv.indication_state & ~CAPIDTMF_RECV_INDICATION_DIGIT) |
-                    (~p_state->recv.indication_state_ack & CAPIDTMF_RECV_INDICATION_DIGIT);
-                }
-              }
-            }
-          }
-        }
-        cycle_counter = 0;
-        sample_number++;
-      }
-    }
-    p_state->recv.cycle_counter = cycle_counter;
-  }
+       byte result_digit;
+       word sample_number, cycle_counter, n, i;
+       word low_peak, high_peak;
+       dword lo, hi;
+       byte   *p;
+       short *q;
+       byte goertzel_result_buffer[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
+       short windowed_sample_buffer[CAPIDTMF_RECV_WINDOWED_SAMPLES];
+
+
+       if (p_state->recv.state & CAPIDTMF_RECV_STATE_DTMF_ACTIVE)
+       {
+               cycle_counter = p_state->recv.cycle_counter;
+               sample_number = 0;
+               while (sample_number < length)
+               {
+                       if (cycle_counter < CAPIDTMF_RECV_ACCUMULATE_CYCLES)
+                       {
+                               if (cycle_counter == 0)
+                               {
+                                       for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
+                                       {
+                                               p_state->recv.goertzel_buffer[0][i] = 0;
+                                               p_state->recv.goertzel_buffer[1][i] = 0;
+                                       }
+                               }
+                               n = CAPIDTMF_RECV_ACCUMULATE_CYCLES - cycle_counter;
+                               if (n > length - sample_number)
+                                       n = length - sample_number;
+                               if (n > CAPIDTMF_RECV_WINDOWED_SAMPLES)
+                                       n = CAPIDTMF_RECV_WINDOWED_SAMPLES;
+                               p = buffer + sample_number;
+                               q = capidtmf_recv_window_function + cycle_counter;
+                               if (p_state->ulaw)
+                               {
+                                       for (i = 0; i < n; i++)
+                                       {
+                                               windowed_sample_buffer[i] =
+                                                       (short)((capidtmf_expand_table_ulaw[p[i]] * ((long)(q[i]))) >> 15);
+                                       }
+                               }
+                               else
+                               {
+                                       for (i = 0; i < n; i++)
+                                       {
+                                               windowed_sample_buffer[i] =
+                                                       (short)((capidtmf_expand_table_alaw[p[i]] * ((long)(q[i]))) >> 15);
+                                       }
+                               }
+                               capidtmf_recv_goertzel_coef_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT - 1] = CAPIDTMF_RECV_FUNDAMENTAL_OFFSET;
+                               capidtmf_goertzel_loop(p_state->recv.goertzel_buffer[0],
+                                                      capidtmf_recv_goertzel_coef_table, windowed_sample_buffer, n);
+                               cycle_counter += n;
+                               sample_number += n;
+                       }
+                       else
+                       {
+                               capidtmf_goertzel_result(p_state->recv.goertzel_buffer[0],
+                                                        capidtmf_recv_goertzel_coef_table);
+                               for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
+                               {
+                                       lo = (dword)(p_state->recv.goertzel_buffer[0][i]);
+                                       hi = (dword)(p_state->recv.goertzel_buffer[1][i]);
+                                       if (hi != 0)
+                                       {
+                                               n = capidtmf_dword_leading_zeroes(hi);
+                                               hi = (hi << n) | (lo >> (32 - n));
+                                       }
+                                       else
+                                       {
+                                               n = capidtmf_dword_leading_zeroes(lo);
+                                               hi = lo << n;
+                                               n += 32;
+                                       }
+                                       n = 195 - 3 * n;
+                                       if (hi >= 0xcb300000L)
+                                               n += 2;
+                                       else if (hi >= 0xa1450000L)
+                                               n++;
+                                       goertzel_result_buffer[i] = (byte) n;
+                               }
+                               low_peak = DSPDTMF_RX_SENSITIVITY_LOW_DEFAULT;
+                               result_digit = CAPIDTMF_RECV_NO_DIGIT;
+                               for (i = 0; i < CAPIDTMF_LOW_GROUP_FREQUENCIES; i++)
+                               {
+                                       if (goertzel_result_buffer[i] > low_peak)
+                                       {
+                                               low_peak = goertzel_result_buffer[i];
+                                               result_digit = (byte) i;
+                                       }
+                               }
+                               high_peak = DSPDTMF_RX_SENSITIVITY_HIGH_DEFAULT;
+                               n = CAPIDTMF_RECV_NO_DIGIT;
+                               for (i = CAPIDTMF_LOW_GROUP_FREQUENCIES; i < CAPIDTMF_RECV_BASE_FREQUENCY_COUNT; i++)
+                               {
+                                       if (goertzel_result_buffer[i] > high_peak)
+                                       {
+                                               high_peak = goertzel_result_buffer[i];
+                                               n = (i - CAPIDTMF_LOW_GROUP_FREQUENCIES) << 2;
+                                       }
+                               }
+                               result_digit |= (byte) n;
+                               if (low_peak + DSPDTMF_RX_HIGH_EXCEEDING_LOW_DEFAULT < high_peak)
+                                       result_digit = CAPIDTMF_RECV_NO_DIGIT;
+                               if (high_peak + DSPDTMF_RX_LOW_EXCEEDING_HIGH_DEFAULT < low_peak)
+                                       result_digit = CAPIDTMF_RECV_NO_DIGIT;
+                               n = 0;
+                               for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
+                               {
+                                       if ((((short)(low_peak - goertzel_result_buffer[i] - capidtmf_recv_guard_snr_low_table[i])) < 0)
+                                           || (((short)(high_peak - goertzel_result_buffer[i] - capidtmf_recv_guard_snr_high_table[i])) < 0))
+                                       {
+                                               n++;
+                                       }
+                               }
+                               if (n != 2)
+                                       result_digit = CAPIDTMF_RECV_NO_DIGIT;
+
+                               if (result_digit == CAPIDTMF_RECV_NO_DIGIT)
+                               {
+                                       if (p_state->recv.current_digit_on_time != 0)
+                                       {
+                                               if (++(p_state->recv.current_digit_off_time) >= p_state->recv.min_gap_duration)
+                                               {
+                                                       p_state->recv.current_digit_on_time = 0;
+                                                       p_state->recv.current_digit_off_time = 0;
+                                               }
+                                       }
+                                       else
+                                       {
+                                               if (p_state->recv.current_digit_off_time != 0)
+                                                       (p_state->recv.current_digit_off_time)--;
+                                       }
+                               }
+                               else
+                               {
+                                       if ((p_state->recv.current_digit_on_time == 0)
+                                           && (p_state->recv.current_digit_off_time != 0))
+                                       {
+                                               (p_state->recv.current_digit_off_time)--;
+                                       }
+                                       else
+                                       {
+                                               n = p_state->recv.current_digit_off_time;
+                                               if ((p_state->recv.current_digit_on_time != 0)
+                                                   && (result_digit != p_state->recv.current_digit_value))
+                                               {
+                                                       p_state->recv.current_digit_on_time = 0;
+                                                       n = 0;
+                                               }
+                                               p_state->recv.current_digit_value = result_digit;
+                                               p_state->recv.current_digit_off_time = 0;
+                                               if (p_state->recv.current_digit_on_time != 0xffff)
+                                               {
+                                                       p_state->recv.current_digit_on_time += n + 1;
+                                                       if (p_state->recv.current_digit_on_time >= p_state->recv.min_digit_duration)
+                                                       {
+                                                               p_state->recv.current_digit_on_time = 0xffff;
+                                                               i = (p_state->recv.digit_write_pos == CAPIDTMF_RECV_DIGIT_BUFFER_SIZE - 1) ?
+                                                                       0 : p_state->recv.digit_write_pos + 1;
+                                                               if (i == p_state->recv.digit_read_pos)
+                                                               {
+                                                                       trace(dprintf("%s,%d: Receive digit overrun",
+                                                                                     (char *)(FILE_), __LINE__));
+                                                               }
+                                                               else
+                                                               {
+                                                                       p_state->recv.digit_buffer[p_state->recv.digit_write_pos] = result_digit;
+                                                                       p_state->recv.digit_write_pos = i;
+                                                                       p_state->recv.indication_state =
+                                                                               (p_state->recv.indication_state & ~CAPIDTMF_RECV_INDICATION_DIGIT) |
+                                                                               (~p_state->recv.indication_state_ack & CAPIDTMF_RECV_INDICATION_DIGIT);
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               cycle_counter = 0;
+                               sample_number++;
+                       }
+               }
+               p_state->recv.cycle_counter = cycle_counter;
+       }
 }
 
 
-void capidtmf_init (t_capidtmf_state   *p_state, byte ulaw)
+void capidtmf_init(t_capidtmf_state *p_state, byte ulaw)
 {
-  p_state->ulaw = ulaw;
-  capidtmf_recv_init (p_state);
+       p_state->ulaw = ulaw;
+       capidtmf_recv_init(p_state);
 }
 
 
index 242048f..0a9cf59 100644 (file)
@@ -1,29 +1,29 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#ifndef CAPIDTMF_H_  
+#ifndef CAPIDTMF_H_
 #define CAPIDTMF_H_
 /*---------------------------------------------------------------------------*/
 /*---------------------------------------------------------------------------*/
 #define CAPIDTMF_RECV_STATE_DTMF_ACTIVE      0x01
 typedef struct tag_capidtmf_recv_state
 {
-  byte digit_buffer[CAPIDTMF_RECV_DIGIT_BUFFER_SIZE];
-  word digit_write_pos;
-  word digit_read_pos;
-  word indication_state;
-  word indication_state_ack;
-  long goertzel_buffer[2][CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
-  word min_gap_duration;
-  word min_digit_duration;
-  word cycle_counter;
-  word current_digit_on_time;
-  word current_digit_off_time;
-  byte current_digit_value;
-  byte state;
+       byte digit_buffer[CAPIDTMF_RECV_DIGIT_BUFFER_SIZE];
+       word digit_write_pos;
+       word digit_read_pos;
+       word indication_state;
+       word indication_state_ack;
+       long goertzel_buffer[2][CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
+       word min_gap_duration;
+       word min_digit_duration;
+       word cycle_counter;
+       word current_digit_on_time;
+       word current_digit_off_time;
+       byte current_digit_value;
+       byte state;
 } t_capidtmf_recv_state;
 typedef struct tag_capidtmf_state
 {
-  byte ulaw;
-  t_capidtmf_recv_state recv;
+       byte ulaw;
+       t_capidtmf_recv_state recv;
 } t_capidtmf_state;
-word capidtmf_recv_indication (t_capidtmf_state   *p_state, byte *buffer);
-void capidtmf_recv_block (t_capidtmf_state   *p_state, byte   *buffer, word length);
-void capidtmf_init (t_capidtmf_state   *p_state, byte ulaw);
-void capidtmf_recv_enable (t_capidtmf_state   *p_state, word min_digit_duration, word min_gap_duration);
-void capidtmf_recv_disable (t_capidtmf_state   *p_state);
-#define capidtmf_indication(p_state,buffer)  (((p_state)->recv.indication_state != (p_state)->recv.indication_state_ack) ?    capidtmf_recv_indication (p_state, buffer) : 0)
-#define capidtmf_recv_process_block(p_state,buffer,length)  { if ((p_state)->recv.state != CAPIDTMF_RECV_STATE_IDLE) capidtmf_recv_block (p_state, buffer, length); }
+word capidtmf_recv_indication(t_capidtmf_state *p_state, byte *buffer);
+void capidtmf_recv_block(t_capidtmf_state *p_state, byte *buffer, word length);
+void capidtmf_init(t_capidtmf_state *p_state, byte ulaw);
+void capidtmf_recv_enable(t_capidtmf_state *p_state, word min_digit_duration, word min_gap_duration);
+void capidtmf_recv_disable(t_capidtmf_state *p_state);
+#define capidtmf_indication(p_state, buffer)  (((p_state)->recv.indication_state != (p_state)->recv.indication_state_ack) ? capidtmf_recv_indication(p_state, buffer) : 0)
+#define capidtmf_recv_process_block(p_state, buffer, length)  { if ((p_state)->recv.state != CAPIDTMF_RECV_STATE_IDLE) capidtmf_recv_block(p_state, buffer, length); }
 /*---------------------------------------------------------------------------*/
 /*---------------------------------------------------------------------------*/
-#endif  
+#endif
index 4d425c6..a576f32 100644 (file)
@@ -2,10 +2,10 @@
  *
  * ISDN interface module for Eicon active cards DIVA.
  * CAPI Interface common functions
- * 
- * Copyright 2000-2003 by Armin Schindler (mac@melware.de) 
+ *
+ * Copyright 2000-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2000-2003 Cytronics & Melware (info@melware.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -43,7 +43,7 @@ static diva_os_spin_lock_t api_lock;
 static LIST_HEAD(cards);
 
 static dword notify_handle;
-static void DIRequest(ENTITY * e);
+static void DIRequest(ENTITY *e);
 static DESCRIPTOR MAdapter;
 static DESCRIPTOR DAdapter;
 static byte ControllerMap[MAX_DESCRIPTORS + 1];
@@ -160,7 +160,7 @@ static int find_free_id(void)
                        break;
                num++;
        }
-       return(num + 1);
+       return (num + 1);
 }
 
 /*
@@ -176,23 +176,23 @@ static diva_card *find_card_by_ctrl(word controller)
                if (ControllerMap[card->Id] == controller) {
                        if (card->remove_in_progress)
                                card = NULL;
-                       return(card);
+                       return (card);
                }
        }
        return (diva_card *) 0;
 }
 
 /*
- * Buffer RX/TX 
+ * Buffer RX/TX
  */
-void *TransmitBufferSet(APPL * appl, dword ref)
+void *TransmitBufferSet(APPL *appl, dword ref)
 {
        appl->xbuffer_used[ref] = true;
        DBG_PRV1(("%d:xbuf_used(%d)", appl->Id, ref + 1))
-           return (void *)(long)ref;
+               return (void *)(long)ref;
 }
 
-void *TransmitBufferGet(APPL * appl, void *p)
+void *TransmitBufferGet(APPL *appl, void *p)
 {
        if (appl->xbuffer_internal[(dword)(long)p])
                return appl->xbuffer_internal[(dword)(long)p];
@@ -200,13 +200,13 @@ void *TransmitBufferGet(APPL * appl, void *p)
        return appl->xbuffer_ptr[(dword)(long)p];
 }
 
-void TransmitBufferFree(APPL * appl, void *p)
+void TransmitBufferFree(APPL *appl, void *p)
 {
        appl->xbuffer_used[(dword)(long)p] = false;
        DBG_PRV1(("%d:xbuf_free(%d)", appl->Id, ((dword)(long)p) + 1))
-}
+               }
 
-void *ReceiveBufferGet(APPL * appl, int Num)
+void *ReceiveBufferGet(APPL *appl, int Num)
 {
        return &appl->ReceiveBuffer[Num * appl->MaxDataLength];
 }
@@ -217,12 +217,12 @@ void *ReceiveBufferGet(APPL * appl, int Num)
 void api_remove_complete(void)
 {
        DBG_PRV1(("api_remove_complete"))
-}
+               }
 
 /*
  * main function called by message.c
  */
-void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
+void sendf(APPL *appl, word command, dword Id, word Number, byte *format, ...)
 {
        word i, j;
        word length = 12, dlength = 0;
@@ -240,14 +240,14 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
        DBG_PRV1(("sendf(a=%d,cmd=%x,format=%s)",
                  appl->Id, command, (byte *) format))
 
-       PUT_WORD(&msg.header.appl_id, appl->Id);
+               PUT_WORD(&msg.header.appl_id, appl->Id);
        PUT_WORD(&msg.header.command, command);
        if ((byte) (command >> 8) == 0x82)
                Number = appl->Number++;
        PUT_WORD(&msg.header.number, Number);
 
        PUT_DWORD(&msg.header.controller, Id);
-       write = (byte *) & msg;
+       write = (byte *)&msg;
        write += 12;
 
        va_start(ap, format);
@@ -287,16 +287,16 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
 
        if (command == _DATA_B3_I)
                dlength = GET_WORD(
-                             ((byte *) & msg.info.data_b3_ind.Data_Length));
+                       ((byte *)&msg.info.data_b3_ind.Data_Length));
 
        if (!(dmb = diva_os_alloc_message_buffer(length + dlength,
-                                         (void **) &write))) {
+                                                (void **) &write))) {
                DBG_ERR(("sendf: alloc_message_buffer failed, incoming msg dropped."))
-               return;
+                       return;
        }
 
        /* copy msg header to sk_buff */
-       memcpy(write, (byte *) & msg, length);
+       memcpy(write, (byte *)&msg, length);
 
        /* if DATA_B3_IND, copy data too */
        if (command == _DATA_B3_I) {
@@ -318,10 +318,10 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
                        if (myDriverDebugHandle.dbgMask & DL_BLK) {
                                xlog("\x00\x02", &msg, 0x81, length);
                                for (i = 0; i < dlength; i += 256) {
-                                 DBG_BLK((((char *)(long)GET_DWORD(&msg.info.data_b3_ind.Data)) + i,
-                                       ((dlength - i) < 256) ? (dlength - i) : 256))
-                                 if (!(myDriverDebugHandle.dbgMask & DL_PRV0))
-                                         break; /* not more if not explicitly requested */
+                                       DBG_BLK((((char *)(long)GET_DWORD(&msg.info.data_b3_ind.Data)) + i,
+                                                ((dlength - i) < 256) ? (dlength - i) : 256))
+                                               if (!(myDriverDebugHandle.dbgMask & DL_PRV0))
+                                                       break; /* not more if not explicitly requested */
                                }
                        }
                        break;
@@ -333,7 +333,7 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
        if (!(card = find_card_by_ctrl(write[8] & 0x7f))) {
                DBG_ERR(("sendf - controller %d not found, incoming msg dropped",
                         write[8] & 0x7f))
-               diva_os_free_message_buffer(dmb);
+                       diva_os_free_message_buffer(dmb);
                return;
        }
        /* send capi msg to capi layer */
@@ -388,7 +388,7 @@ static void clean_adapter(int id, struct list_head *free_mem_q)
  * remove a card, but ensures consistent state of LI tables
  * in the time adapter is removed
  */
-static void divacapi_remove_card(DESCRIPTOR * d)
+static void divacapi_remove_card(DESCRIPTOR *d)
 {
        diva_card *card = NULL;
        diva_os_spin_lock_magic_t old_irql;
@@ -427,14 +427,14 @@ static void divacapi_remove_card(DESCRIPTOR * d)
 
                clean_adapter(card->Id - 1, &free_mem_q);
                DBG_TRC(("DelAdapterMap (%d) -> (%d)",
-                               ControllerMap[card->Id], card->Id))
-                               ControllerMap[card->Id] = 0;
+                        ControllerMap[card->Id], card->Id))
+                       ControllerMap[card->Id] = 0;
                DBG_TRC(("adapter remove, max_adapter=%d",
-                               max_adapter));
+                        max_adapter));
                diva_os_leave_spin_lock(&api_lock, &old_irql, "remove card");
-               
+
                /* After releasing the lock, we can free the memory */
-               diva_os_free (0, card);
+               diva_os_free(0, card);
        }
 
        /* free queued memory areas */
@@ -469,13 +469,13 @@ rescan:
 /*
  * sync_callback
  */
-static void sync_callback(ENTITY * e)
+static void sync_callback(ENTITY *e)
 {
        diva_os_spin_lock_magic_t old_irql;
 
        DBG_TRC(("cb:Id=%x,Rc=%x,Ind=%x", e->Id, e->Rc, e->Ind))
 
-       diva_os_enter_spin_lock(&api_lock, &old_irql, "sync_callback");
+               diva_os_enter_spin_lock(&api_lock, &old_irql, "sync_callback");
        callback(e);
        diva_os_leave_spin_lock(&api_lock, &old_irql, "sync_callback");
 }
@@ -483,7 +483,7 @@ static void sync_callback(ENTITY * e)
 /*
  * add a new card
  */
-static int diva_add_card(DESCRIPTOR * d)
+static int diva_add_card(DESCRIPTOR *d)
 {
        int k = 0, i = 0;
        diva_os_spin_lock_magic_t old_irql;
@@ -492,19 +492,19 @@ static int diva_add_card(DESCRIPTOR * d)
        DIVA_CAPI_ADAPTER *a = NULL;
        IDI_SYNC_REQ sync_req;
        char serial[16];
-       voidmem_to_free;
+       void *mem_to_free;
        LI_CONFIG *new_li_config_table;
        int j;
 
        if (!(card = (diva_card *) diva_os_malloc(0, sizeof(diva_card)))) {
                DBG_ERR(("diva_add_card: failed to allocate card struct."))
-                   return (0);
+                       return (0);
        }
        memset((char *) card, 0x00, sizeof(diva_card));
        memcpy(&card->d, d, sizeof(DESCRIPTOR));
        sync_req.GetName.Req = 0;
        sync_req.GetName.Rc = IDI_SYNC_REQ_GET_NAME;
-       card->d.request((ENTITY *) & sync_req);
+       card->d.request((ENTITY *)&sync_req);
        strlcpy(card->name, sync_req.GetName.name, sizeof(card->name));
        ctrl = &card->capi_ctrl;
        strcpy(ctrl->name, card->name);
@@ -517,14 +517,14 @@ static int diva_add_card(DESCRIPTOR * d)
 
        if (attach_capi_ctr(ctrl)) {
                DBG_ERR(("diva_add_card: failed to attach controller."))
-                   diva_os_free(0, card);
+                       diva_os_free(0, card);
                return (0);
        }
-       
+
        diva_os_enter_spin_lock(&api_lock, &old_irql, "find id");
        card->Id = find_free_id();
        diva_os_leave_spin_lock(&api_lock, &old_irql, "find id");
-       
+
        strlcpy(ctrl->manu, M_COMPANY, sizeof(ctrl->manu));
        ctrl->version.majorversion = 2;
        ctrl->version.minorversion = 0;
@@ -533,7 +533,7 @@ static int diva_add_card(DESCRIPTOR * d)
        sync_req.GetSerial.Req = 0;
        sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
        sync_req.GetSerial.serial = 0;
-       card->d.request((ENTITY *) & sync_req);
+       card->d.request((ENTITY *)&sync_req);
        if ((i = ((sync_req.GetSerial.serial & 0xff000000) >> 24))) {
                sprintf(serial, "%ld-%d",
                        sync_req.GetSerial.serial & 0x00ffffff, i + 1);
@@ -550,15 +550,15 @@ static int diva_add_card(DESCRIPTOR * d)
 
        DBG_TRC(("AddAdapterMap (%d) -> (%d)", ctrl->cnr, card->Id))
 
-           sync_req.xdi_capi_prms.Req = 0;
+               sync_req.xdi_capi_prms.Req = 0;
        sync_req.xdi_capi_prms.Rc = IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS;
        sync_req.xdi_capi_prms.info.structure_length =
-           sizeof(diva_xdi_get_capi_parameters_t);
-       card->d.request((ENTITY *) & sync_req);
+               sizeof(diva_xdi_get_capi_parameters_t);
+       card->d.request((ENTITY *)&sync_req);
        a->flag_dynamic_l1_down =
-           sync_req.xdi_capi_prms.info.flag_dynamic_l1_down;
+               sync_req.xdi_capi_prms.info.flag_dynamic_l1_down;
        a->group_optimization_enabled =
-           sync_req.xdi_capi_prms.info.group_optimization_enabled;
+               sync_req.xdi_capi_prms.info.group_optimization_enabled;
        a->request = DIRequest; /* card->d.request; */
        a->max_plci = card->d.channels + 30;
        a->max_listen = (card->d.channels > 2) ? 8 : 2;
@@ -566,7 +566,7 @@ static int diva_add_card(DESCRIPTOR * d)
            (a->plci =
             (PLCI *) diva_os_malloc(0, sizeof(PLCI) * a->max_plci))) {
                DBG_ERR(("diva_add_card: failed alloc plci struct."))
-                   memset(a, 0, sizeof(DIVA_CAPI_ADAPTER));
+                       memset(a, 0, sizeof(DIVA_CAPI_ADAPTER));
                return (0);
        }
        memset(a->plci, 0, sizeof(PLCI) * a->max_plci);
@@ -625,13 +625,13 @@ static int diva_add_card(DESCRIPTOR * d)
                (LI_CONFIG *) diva_os_malloc(0, ((k * sizeof(LI_CONFIG) + 3) & ~3) + (2 * k) * ((k + 3) & ~3));
        if (new_li_config_table == NULL) {
                DBG_ERR(("diva_add_card: failed alloc li_config table."))
-               memset(a, 0, sizeof(DIVA_CAPI_ADAPTER));
+                       memset(a, 0, sizeof(DIVA_CAPI_ADAPTER));
                return (0);
        }
 
        /* Prevent access to line interconnect table in process update */
        diva_os_enter_spin_lock(&api_lock, &old_irql, "add card");
-       
+
        j = 0;
        for (i = 0; i < k; i++) {
                if ((i >= a->li_base) && (i < a->li_base + a->li_channels))
@@ -659,11 +659,11 @@ static int diva_add_card(DESCRIPTOR * d)
                        memset(&new_li_config_table[i].coef_table[a->li_base], 0, a->li_channels);
                        if (a->li_base + a->li_channels < k) {
                                memcpy(&new_li_config_table[i].flag_table[a->li_base +
-                                      a->li_channels],
+                                                                         a->li_channels],
                                       &li_config_table[j].flag_table[a->li_base],
                                       k - (a->li_base + a->li_channels));
                                memcpy(&new_li_config_table[i].coef_table[a->li_base +
-                                      a->li_channels],
+                                                                         a->li_channels],
                                       &li_config_table[j].coef_table[a->li_base],
                                       k - (a->li_base + a->li_channels));
                        }
@@ -689,7 +689,7 @@ static int diva_add_card(DESCRIPTOR * d)
        diva_os_leave_spin_lock(&api_lock, &old_irql, "add card");
 
        if (mem_to_free) {
-               diva_os_free (0, mem_to_free);
+               diva_os_free(0, mem_to_free);
        }
 
        i = 0;
@@ -722,7 +722,7 @@ static int diva_add_card(DESCRIPTOR * d)
  *  register appl
  */
 static void diva_register_appl(struct capi_ctr *ctrl, __u16 appl,
-                              capi_register_params * rp)
+                              capi_register_params *rp)
 {
        APPL *this;
        word bnum, xnum;
@@ -737,38 +737,38 @@ static void diva_register_appl(struct capi_ctr *ctrl, __u16 appl,
 
        if (diva_os_in_irq()) {
                DBG_ERR(("CAPI_REGISTER - in irq context !"))
-               return;
+                       return;
        }
 
        DBG_TRC(("application register Id=%d", appl))
 
-       if (appl > MAX_APPL) {
-               DBG_ERR(("CAPI_REGISTER - appl.Id exceeds MAX_APPL"))
-               return;
-       }
+               if (appl > MAX_APPL) {
+                       DBG_ERR(("CAPI_REGISTER - appl.Id exceeds MAX_APPL"))
+                               return;
+               }
 
        if (nconn <= 0)
                nconn = ctrl->profile.nbchannel * -nconn;
 
-        if (nconn == 0)
+       if (nconn == 0)
                nconn = ctrl->profile.nbchannel;
 
        DBG_LOG(("CAPI_REGISTER - Id = %d", appl))
-       DBG_LOG(("  MaxLogicalConnections = %d(%d)", nconn, rp->level3cnt))
-       DBG_LOG(("  MaxBDataBuffers       = %d", rp->datablkcnt))
-       DBG_LOG(("  MaxBDataLength        = %d", rp->datablklen))
-
-       if (nconn < 1 ||
-           nconn > 255 ||
-           rp->datablklen < 80 ||
-           rp->datablklen > 2150 || rp->datablkcnt > 255) {
-               DBG_ERR(("CAPI_REGISTER - invalid parameters"))
-               return;
-       }
+               DBG_LOG(("  MaxLogicalConnections = %d(%d)", nconn, rp->level3cnt))
+               DBG_LOG(("  MaxBDataBuffers       = %d", rp->datablkcnt))
+               DBG_LOG(("  MaxBDataLength        = %d", rp->datablklen))
+
+               if (nconn < 1 ||
+                   nconn > 255 ||
+                   rp->datablklen < 80 ||
+                   rp->datablklen > 2150 || rp->datablkcnt > 255) {
+                       DBG_ERR(("CAPI_REGISTER - invalid parameters"))
+                               return;
+               }
 
        if (application[appl - 1].Id == appl) {
                DBG_LOG(("CAPI_REGISTER - appl already registered"))
-               return; /* appl already registered */
+                       return; /* appl already registered */
        }
 
        /* alloc memory */
@@ -785,10 +785,10 @@ static void diva_register_appl(struct capi_ctr *ctrl, __u16 appl,
        mem_len += xnum * rp->datablklen;       /* xbuffer_ptr[xnum] */
 
        DBG_LOG(("  Allocated Memory      = %d", mem_len))
-       if (!(p = diva_os_malloc(0, mem_len))) {
-               DBG_ERR(("CAPI_REGISTER - memory allocation failed"))
-               return;
-       }
+               if (!(p = diva_os_malloc(0, mem_len))) {
+                       DBG_ERR(("CAPI_REGISTER - memory allocation failed"))
+                               return;
+               }
        memset(p, 0, mem_len);
 
        DataNCCI = (void *)p;
@@ -853,10 +853,10 @@ static void diva_release_appl(struct capi_ctr *ctrl, __u16 appl)
 
        DBG_TRC(("application %d(%d) cleanup", this->Id, appl))
 
-       if (diva_os_in_irq()) {
-               DBG_ERR(("CAPI_RELEASE - in irq context !"))
-               return;
-       }
+               if (diva_os_in_irq()) {
+                       DBG_ERR(("CAPI_RELEASE - in irq context !"))
+                               return;
+               }
 
        diva_os_enter_spin_lock(&api_lock, &old_irql, "release_appl");
        if (this->Id) {
@@ -876,7 +876,7 @@ static void diva_release_appl(struct capi_ctr *ctrl, __u16 appl)
  *  send message
  */
 static u16 diva_send_message(struct capi_ctr *ctrl,
-                            diva_os_message_buffer_s * dmb)
+                            diva_os_message_buffer_s *dmb)
 {
        int i = 0;
        word ret = 0;
@@ -891,14 +891,14 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
 
        if (diva_os_in_irq()) {
                DBG_ERR(("CAPI_SEND_MSG - in irq context !"))
-               return CAPI_REGOSRESOURCEERR;
+                       return CAPI_REGOSRESOURCEERR;
        }
        DBG_PRV1(("Write - appl = %d, cmd = 0x%x", this->Id, command))
 
-       if (card->remove_in_progress) {
-               DBG_ERR(("CAPI_SEND_MSG - remove in progress!"))
-               return CAPI_REGOSRESOURCEERR;
-       }
+               if (card->remove_in_progress) {
+                       DBG_ERR(("CAPI_SEND_MSG - remove in progress!"))
+                               return CAPI_REGOSRESOURCEERR;
+               }
 
        diva_os_enter_spin_lock(&api_lock, &old_irql, "send message");
 
@@ -909,7 +909,7 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
 
        /* patch controller number */
        msg->header.controller = ControllerMap[card->Id]
-           | (msg->header.controller & 0x80);  /* preserve external controller bit */
+               | (msg->header.controller & 0x80);      /* preserve external controller bit */
 
        switch (command) {
        default:
@@ -937,15 +937,15 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
                    || GET_WORD(&msg->info.data_b3_req.Data_Length) >
                    (length - clength)) {
                        DBG_ERR(("Write - invalid message size"))
-                       retval = CAPI_ILLCMDORSUBCMDORMSGTOSMALL;
+                               retval = CAPI_ILLCMDORSUBCMDORMSGTOSMALL;
                        goto write_end;
                }
 
                for (i = 0; i < (MAX_DATA_B3 * this->MaxNCCI)
-                    && this->xbuffer_used[i]; i++);
+                            && this->xbuffer_used[i]; i++);
                if (i == (MAX_DATA_B3 * this->MaxNCCI)) {
                        DBG_ERR(("Write - too many data pending"))
-                       retval = CAPI_SENDQUEUEFULL;
+                               retval = CAPI_SENDQUEUEFULL;
                        goto write_end;
                }
                msg->info.data_b3_req.Data = i;
@@ -959,13 +959,13 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
                    && (myDriverDebugHandle.dbgMask & DL_XLOG)) {
                        int j;
                        for (j = 0; j <
-                            GET_WORD(&msg->info.data_b3_req.Data_Length);
+                                    GET_WORD(&msg->info.data_b3_req.Data_Length);
                             j += 256) {
                                DBG_BLK((((char *) this->xbuffer_ptr[i]) + j,
-                                       ((GET_WORD(&msg->info.data_b3_req.Data_Length) - j) <
+                                        ((GET_WORD(&msg->info.data_b3_req.Data_Length) - j) <
                                          256) ? (GET_WORD(&msg->info.data_b3_req.Data_Length) - j) : 256))
-                               if (!(myDriverDebugHandle.dbgMask & DL_PRV0))
-                                       break;  /* not more if not explicitly requested */
+                                       if (!(myDriverDebugHandle.dbgMask & DL_PRV0))
+                                               break;  /* not more if not explicitly requested */
                        }
                }
 #endif
@@ -984,19 +984,19 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
                break;
        case _BAD_MSG:
                DBG_ERR(("Write - bad message"))
-               retval = CAPI_ILLCMDORSUBCMDORMSGTOSMALL;
+                       retval = CAPI_ILLCMDORSUBCMDORMSGTOSMALL;
                break;
        case _QUEUE_FULL:
                DBG_ERR(("Write - queue full"))
-               retval = CAPI_SENDQUEUEFULL;
+                       retval = CAPI_SENDQUEUEFULL;
                break;
        default:
                DBG_ERR(("Write - api_put returned unknown error"))
-               retval = CAPI_UNKNOWNNOTPAR;
+                       retval = CAPI_UNKNOWNNOTPAR;
                break;
        }
 
-      write_end:
+write_end:
        diva_os_leave_spin_lock(&api_lock, &old_irql, "send message");
        if (retval == CAPI_NOERROR)
                diva_os_free_message_buffer(dmb);
@@ -1007,7 +1007,7 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
 /*
  * cards request function
  */
-static void DIRequest(ENTITY * e)
+static void DIRequest(ENTITY *e)
 {
        DIVA_CAPI_ADAPTER *a = &(adapter[(byte) e->user[0]]);
        diva_card *os_card = (diva_card *) a->os_card;
@@ -1022,7 +1022,7 @@ static void DIRequest(ENTITY * e)
 /*
  * callback function from didd
  */
-static void didd_callback(void *context, DESCRIPTOR * adapter, int removal)
+static void didd_callback(void *context, DESCRIPTOR *adapter, int removal)
 {
        if (adapter->type == IDI_DADAPTER) {
                DBG_ERR(("Notification about IDI_DADAPTER change ! Oops."));
@@ -1071,17 +1071,17 @@ static int divacapi_connect_didd(void)
                        memcpy(&DAdapter, &DIDD_Table[x], sizeof(DAdapter));
                        req.didd_notify.e.Req = 0;
                        req.didd_notify.e.Rc =
-                           IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
+                               IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
                        req.didd_notify.info.callback = (void *)didd_callback;
                        req.didd_notify.info.context = NULL;
-                       DAdapter.request((ENTITY *) & req);
+                       DAdapter.request((ENTITY *)&req);
                        if (req.didd_notify.e.Rc != 0xff) {
                                stop_dbg();
                                return (0);
                        }
                        notify_handle = req.didd_notify.info.handle;
                }
-                       else if ((DIDD_Table[x].type > 0) && (DIDD_Table[x].type < 16)) {       /* IDI Adapter found */
+               else if ((DIDD_Table[x].type > 0) && (DIDD_Table[x].type < 16)) {       /* IDI Adapter found */
                        diva_add_card(&DIDD_Table[x]);
                }
        }
@@ -1105,12 +1105,12 @@ static void divacapi_disconnect_didd(void)
        req.didd_notify.e.Req = 0;
        req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
        req.didd_notify.info.handle = notify_handle;
-       DAdapter.request((ENTITY *) & req);
+       DAdapter.request((ENTITY *)&req);
 }
 
 /*
  * we do not provide date/time here,
- * the application should do this. 
+ * the application should do this.
  */
 int fax_head_line_time(char *buffer)
 {
@@ -1124,19 +1124,19 @@ static int DIVA_INIT_FUNCTION init_main_structs(void)
 {
        if (!(mapped_msg = (CAPI_MSG *) diva_os_malloc(0, MAX_MSG_SIZE))) {
                DBG_ERR(("init: failed alloc mapped_msg."))
-                   return 0;
+                       return 0;
        }
 
        if (!(adapter = diva_os_malloc(0, sizeof(DIVA_CAPI_ADAPTER) * MAX_DESCRIPTORS))) {
                DBG_ERR(("init: failed alloc adapter struct."))
-               diva_os_free(0, mapped_msg);
+                       diva_os_free(0, mapped_msg);
                return 0;
        }
        memset(adapter, 0, sizeof(DIVA_CAPI_ADAPTER) * MAX_DESCRIPTORS);
 
        if (!(application = diva_os_malloc(0, sizeof(APPL) * MAX_APPL))) {
                DBG_ERR(("init: failed alloc application struct."))
-               diva_os_free(0, mapped_msg);
+                       diva_os_free(0, mapped_msg);
                diva_os_free(0, adapter);
                return 0;
        }
@@ -1176,7 +1176,7 @@ static void do_api_remove_start(void)
 
        if (ret)
                DBG_ERR(("could not remove signaling ID's"))
-}
+                       }
 
 /*
  * init
@@ -1190,13 +1190,13 @@ int DIVA_INIT_FUNCTION init_capifunc(void)
 
        if (!init_main_structs()) {
                DBG_ERR(("init: failed to init main structs."))
-               diva_os_destroy_spin_lock(&api_lock, "capifunc");
+                       diva_os_destroy_spin_lock(&api_lock, "capifunc");
                return (0);
        }
 
        if (!divacapi_connect_didd()) {
                DBG_ERR(("init: failed to connect to DIDD."))
-               do_api_remove_start();
+                       do_api_remove_start();
                divacapi_remove_cards();
                remove_main_structs();
                diva_os_destroy_spin_lock(&api_lock, "capifunc");
index bd256f2..e96c45b 100644 (file)
@@ -2,8 +2,8 @@
  *
  * ISDN interface module for Eicon active cards DIVA.
  * CAPI Interface common functions
- * 
- * Copyright 2000-2003 by Armin Schindler (mac@melware.de) 
+ *
+ * Copyright 2000-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2000-2003 Cytronics & Melware (info@melware.de)
  *
  * This software may be used and distributed according to the terms
index 97a2096..eabe0fa 100644 (file)
@@ -2,10 +2,10 @@
  *
  * ISDN interface module for Eicon active cards DIVA.
  * CAPI Interface
- * 
- * Copyright 2000-2003 by Armin Schindler (mac@melware.de) 
+ *
+ * Copyright 2000-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2000-2003 Cytronics & Melware (info@melware.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  */
@@ -28,7 +28,7 @@
 
 static char *main_revision = "$Revision: 1.24 $";
 static char *DRIVERNAME =
-    "Eicon DIVA - CAPI Interface driver (http://www.melware.net)";
+       "Eicon DIVA - CAPI Interface driver (http://www.melware.net)";
 static char *DRIVERLNAME = "divacapi";
 
 MODULE_DESCRIPTION("CAPI driver for Eicon DIVA cards");
@@ -69,7 +69,7 @@ diva_os_message_buffer_s *diva_os_alloc_message_buffer(unsigned long size,
 /*
  * free a message buffer
  */
-void diva_os_free_message_buffer(diva_os_message_buffer_s * dmb)
+void diva_os_free_message_buffer(diva_os_message_buffer_s *dmb)
 {
        kfree_skb(dmb);
 }
index 18a5c42..8b20e22 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef _CARDTYPE_H_
@@ -94,7 +94,7 @@
  */
 #define CARD_UNKNOWN                      0
 #define CARD_NONE                         0
-  /* DIVA cards */
+/* DIVA cards */
 #define CARDTYPE_DIVA_MCA                 0
 #define CARDTYPE_DIVA_ISA                 1
 #define CARDTYPE_DIVA_PCM                 2
 #define CARDTYPE_DIVAPRO_PCM              4
 #define CARDTYPE_DIVAPICO_ISA             5
 #define CARDTYPE_DIVAPICO_PCM             6
-  /* DIVA 2.0 cards */
+/* DIVA 2.0 cards */
 #define CARDTYPE_DIVAPRO20_PCI            7
 #define CARDTYPE_DIVA20_PCI               8
-  /* S cards */
+/* S cards */
 #define CARDTYPE_QUADRO_ISA               9
 #define CARDTYPE_S_ISA                    10
 #define CARDTYPE_S_MCA                    11
 #define CARDTYPE_SCOM_MCA                 17
 #define CARDTYPE_PR_ISA                   18
 #define CARDTYPE_PR_MCA                   19
-  /* Diva Server cards (formerly called Maestra, later Amadeo) */
+/* Diva Server cards (formerly called Maestra, later Amadeo) */
 #define CARDTYPE_MAESTRA_ISA              20
 #define CARDTYPE_MAESTRA_PCI              21
-  /* Diva Server cards to be developed (Quadro, Primary rate) */
+/* Diva Server cards to be developed (Quadro, Primary rate) */
 #define CARDTYPE_DIVASRV_Q_8M_PCI         22
 #define CARDTYPE_DIVASRV_P_30M_PCI        23
 #define CARDTYPE_DIVASRV_P_2M_PCI         24
 #define CARDTYPE_DIVASRV_P_9M_PCI         25
-  /* DIVA 2.0 cards */
+/* DIVA 2.0 cards */
 #define CARDTYPE_DIVA20_ISA               26
 #define CARDTYPE_DIVA20U_ISA              27
 #define CARDTYPE_DIVA20U_PCI              28
 #define CARDTYPE_DIVAPRO20_ISA            29
 #define CARDTYPE_DIVAPRO20U_ISA           30
 #define CARDTYPE_DIVAPRO20U_PCI           31
-  /* DIVA combi cards (piccola ISDN + rockwell V.34 modem) */
+/* DIVA combi cards (piccola ISDN + rockwell V.34 modem) */
 #define CARDTYPE_DIVAMOBILE_PCM           32
 #define CARDTYPE_TDKGLOBALPRO_PCM         33
-  /* DIVA Pro PC OEM card for 'New Media Corporation' */
+/* DIVA Pro PC OEM card for 'New Media Corporation' */
 #define CARDTYPE_NMC_DIVAPRO_PCM          34
-  /* DIVA Pro 2.0 OEM cards for 'British Telecom' */
+/* DIVA Pro 2.0 OEM cards for 'British Telecom' */
 #define CARDTYPE_BT_EXLANE_PCI            35
 #define CARDTYPE_BT_EXLANE_ISA            36
-  /* DIVA low cost cards, 1st name DIVA 3.0, 2nd DIVA 2.01, 3rd ??? */
+/* DIVA low cost cards, 1st name DIVA 3.0, 2nd DIVA 2.01, 3rd ??? */
 #define CARDTYPE_DIVALOW_ISA              37
 #define CARDTYPE_DIVALOWU_ISA             38
 #define CARDTYPE_DIVALOW_PCI              39
 #define CARDTYPE_DIVALOWU_PCI             40
-  /* DIVA combi cards (piccola ISDN + rockwell V.90 modem) */
+/* DIVA combi cards (piccola ISDN + rockwell V.90 modem) */
 #define CARDTYPE_DIVAMOBILE_V90_PCM       41
 #define CARDTYPE_TDKGLOBPRO_V90_PCM       42
 #define CARDTYPE_DIVASRV_P_23M_PCI        43
 #define CARDTYPE_DIVALOW_USB              44
-  /* DIVA Audio (CT) family */
+/* DIVA Audio (CT) family */
 #define CARDTYPE_DIVA_CT_ST               45
 #define CARDTYPE_DIVA_CT_U                46
 #define CARDTYPE_DIVA_CTLITE_ST           47
 #define CARDTYPE_DIVA_CTLITE_U            48
-  /* DIVA ISDN plus V.90 series */
+/* DIVA ISDN plus V.90 series */
 #define CARDTYPE_DIVAISDN_V90_PCM         49
 #define CARDTYPE_DIVAISDN_V90_PCI         50
 #define CARDTYPE_DIVAISDN_TA              51
-  /* DIVA Server Voice cards */
+/* DIVA Server Voice cards */
 #define CARDTYPE_DIVASRV_VOICE_Q_8M_PCI   52
-  /* DIVA Server V2 cards */
+/* DIVA Server V2 cards */
 #define CARDTYPE_DIVASRV_Q_8M_V2_PCI      53
 #define CARDTYPE_DIVASRV_P_30M_V2_PCI     54
-  /* DIVA Server Voice V2 cards */
+/* DIVA Server Voice V2 cards */
 #define CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI 55
 #define CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI 56
-    /* Diva LAN */
+/* Diva LAN */
 #define CARDTYPE_DIVAISDN_LAN             57
 #define CARDTYPE_DIVA_202_PCI_ST          58
 #define CARDTYPE_DIVA_202_PCI_U           59
 #define CARDTYPE_DIVA_V2_PCM              67
 /* Re-badged Diva Pro PC Card */
 #define CARDTYPE_DIVA_PC_CARD             68
-  /* next free card type identifier */
+/* next free card type identifier */
 #define CARDTYPE_MAX                      69
 /*
  * The card families
  */
 typedef struct CARD_PROPERTIES
 {   char     *Name;  /* official marketing name     */
- unsigned short PnPId;  /* plug and play ID (for non PCMIA cards) */
- unsigned short Version; /* major and minor version no of the card */
- unsigned char DescType; /* card type to set in the IDI descriptor */
- unsigned char  Family;  /* basic family of the card     */
- unsigned short  Features; /* features bits to set in the IDI desc. */
- unsigned char Card;  /* basic card type       */
- unsigned char IType;  /* internal type of S cards (read from ram) */
- unsigned char  Bus;  /* bus type this card is designed for  */
- unsigned char  Chip;  /* chipset used on card      */
- unsigned char Adapters; /* number of adapters on card    */
- unsigned char Channels; /* # of channels per adapter    */
- unsigned short E_info;  /* # of ram entity info structs per adapter */
- unsigned short SizeIo;  /* size of IO window per adapter   */
- unsigned short SizeMem; /* size of memory window per adapter  */
      unsigned short PnPId;  /* plug and play ID (for non PCMIA cards) */
      unsigned short Version; /* major and minor version no of the card */
      unsigned char DescType; /* card type to set in the IDI descriptor */
      unsigned char  Family;  /* basic family of the card     */
      unsigned short  Features; /* features bits to set in the IDI desc. */
      unsigned char Card;  /* basic card type       */
      unsigned char IType;  /* internal type of S cards (read from ram) */
      unsigned char  Bus;  /* bus type this card is designed for  */
      unsigned char  Chip;  /* chipset used on card      */
      unsigned char Adapters; /* number of adapters on card    */
      unsigned char Channels; /* # of channels per adapter    */
      unsigned short E_info;  /* # of ram entity info structs per adapter */
      unsigned short SizeIo;  /* size of IO window per adapter   */
      unsigned short SizeMem; /* size of memory window per adapter  */
 } CARD_PROPERTIES;
 typedef struct CARD_RESOURCE
-{ unsigned char Int [10];
- unsigned short IoFirst;
- unsigned short IoStep;
- unsigned short IoCnt;
- unsigned long MemFirst;
- unsigned long MemStep;
- unsigned short MemCnt;
+{ unsigned char Int[10];
      unsigned short IoFirst;
      unsigned short IoStep;
      unsigned short IoCnt;
      unsigned long MemFirst;
      unsigned long MemStep;
      unsigned short MemCnt;
 } CARD_RESOURCE;
 /* test if the card of type 't' is a plug & play card */
-#define IS_PNP(t) \
-( \
( \
-  CardProperties[t].Bus != BUS_ISA \
-  && \
-  CardProperties[t].Bus != BUS_MCA \
) \
|| \
( \
-  CardProperties[t].Family != FAMILY_S \
-  && \
-  CardProperties[t].Card != CARD_DIVA \
) \
-)
+#define IS_PNP(t)                                              \
+       (                                                       \
              (                                               \
+                       CardProperties[t].Bus != BUS_ISA        \
+                       &&                                      \
+                       CardProperties[t].Bus != BUS_MCA        \
                      )                                       \
              ||                                              \
              (                                               \
+                       CardProperties[t].Family != FAMILY_S    \
+                       &&                                      \
+                       CardProperties[t].Card != CARD_DIVA     \
                      )                                       \
+               )
 /* extract IDI Descriptor info for card type 't' (p == DescType/Features) */
-#define IDI_PROP(t,p) (CardProperties[t].p)
+#define IDI_PROP(t, p) (CardProperties[t].p)
 #if CARDTYPE_H_WANT_DATA
 #if CARDTYPE_H_WANT_IDI_DATA
 /* include "di_defs.h" for IDI adapter type and feature flag definitions */
@@ -328,502 +328,502 @@ typedef struct CARD_RESOURCE
 #define DI_SOFT_V110  0
 #endif
 /*--- CardProperties [Index=CARDTYPE_....] ---------------------------------*/
-CARD_PROPERTIES CardProperties [ ] =
+CARD_PROPERTIES CardProperties[] =
 {
-{ /*  0  */
- "Diva MCA",       0x6336,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
- CARD_DIVA,   CARD_I_NONE, BUS_MCA, CHIP_DSP,
- 1, 2,  0,   8,      0
-},
-{ /*  1  */
- "Diva ISA",       0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
- CARD_DIVA,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
- 1, 2,  0,   8,      0
-},
-{ /*  2  */
- "Diva/PCM",       0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
- CARD_DIVA,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
- 1, 2,  0,   8,      0
-},
-{ /*  3  */
- "Diva PRO ISA",      0x0031,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
- 1, 2,  0,   8,      0
-},
-{ /*  4  */
- "Diva PRO PC-Card",     0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
- 1, 2,   0,   8,      0
-},
-{ /*  5  */
- "Diva PICCOLA ISA",     0x0051,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
- 1, 2,   0,   8,      0
-},
-{ /*  6  */
- "Diva PICCOLA PCM",     0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
- 1, 2,   0,   8,      0
-},
-{ /*  7  */
- "Diva PRO 2.0 S/T PCI",    0xe001,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
- CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 2,   0,   8,      0
-},
-{ /*  8  */
- "Diva 2.0 S/T PCI",     0xe002,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCI, CHIP_HSCX,
- 1, 2,   0,   8,      0
-},
-{ /*  9  */
- "QUADRO ISA",      0x0000,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
- CARD_QUAD,   CARD_I_QUAD, BUS_ISA, CHIP_NONE,
- 4, 2,   16,  0,  0x800
-},
-{ /* 10  */
- "S ISA",       0x0000,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
- CARD_S,    CARD_I_S,  BUS_ISA, CHIP_NONE,
- 1, 1,   16,  0,  0x800
-},
-{ /* 11  */
- "S MCA",       0x6a93,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
- CARD_S,    CARD_I_S,  BUS_MCA, CHIP_NONE,
- 1, 1,   16,  16,  0x400
-},
-{ /* 12 */
- "SX ISA",       0x0000,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
- CARD_SX,   CARD_I_SX,  BUS_ISA, CHIP_NONE,
- 1, 2,  16,  0,  0x800
-},
-{ /* 13 */
- "SX MCA",       0x6a93,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
- CARD_SX,   CARD_I_SX,  BUS_MCA, CHIP_NONE,
- 1, 2,  16,  16,  0x400
-},
-{ /* 14 */
- "SXN ISA",       0x0000,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
- CARD_SXN,   CARD_I_SCOM, BUS_ISA, CHIP_NONE,
- 1, 2,   16,  0,   0x800
-},
-{ /* 15 */
- "SXN MCA",       0x6a93,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
- CARD_SXN,   CARD_I_SCOM, BUS_MCA, CHIP_NONE,
- 1, 2,  16,  16,  0x400
-},
-{ /* 16 */
- "SCOM ISA",       0x0000,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
- CARD_SCOM,   CARD_I_SCOM, BUS_ISA, CHIP_NONE,
- 1, 2,   16,  0,   0x800
-},
-{ /* 17 */
- "SCOM MCA",       0x6a93,  0x0100,
- IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
- CARD_SCOM,   CARD_I_SCOM, BUS_MCA, CHIP_NONE,
- 1, 2,  16,  16,  0x400
-},
-{ /* 18 */
- "S2M ISA",       0x0000,  0x0100,
- IDI_ADAPTER_PR,  FAMILY_S,  DI_NULL,
- CARD_PR,   CARD_I_PR,  BUS_ISA, CHIP_NONE,
- 1, 30,  256, 0,   0x4000
-},
-{ /* 19 */
- "S2M MCA",       0x6abb,  0x0100,
- IDI_ADAPTER_PR,  FAMILY_S,  DI_NULL,
- CARD_PR,   CARD_I_PR,  BUS_MCA, CHIP_NONE,
- 1, 30,  256, 16,  0x4000
-},
-{ /* 20 */
- "Diva Server BRI-2M ISA",   0x0041,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAE,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
- 1, 2,   16,  8,  0
-},
-{ /* 21 */
- "Diva Server BRI-2M PCI",   0xE010,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAE,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 2,   16,  8,   0
-},
-{ /* 22 */
- "Diva Server 4BRI-8M PCI",   0xE012,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 4, 2,   16,  8,   0
-},
-{ /* 23 */
- "Diva Server PRI-30M PCI",   0xE014,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 30,  256,  8,   0
-},
-{ /* 24 */
- "Diva Server PRI-2M PCI",   0xe014,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 30,  256,  8,   0
-},
-{ /* 25 */
- "Diva Server PRI-9M PCI",   0x0000,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 30,     256,  8,   0
-},
-{ /* 26 */
- "Diva 2.0 S/T ISA",     0x0071,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
- 1, 2,  0,   8,   0
-},
-{ /* 27 */
- "Diva 2.0 U ISA",     0x0091,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
- 1, 2,   0,   8,   0
-},
-{ /* 28 */
- "Diva 2.0 U PCI",     0xe004,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCI, CHIP_HSCX,
- 1, 2,   0,   8,   0
-},
-{ /* 29 */
- "Diva PRO 2.0 S/T ISA",    0x0061,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
- CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
- 1, 2,  0,   8,   0
-},
-{ /* 30 */
- "Diva PRO 2.0 U ISA",    0x0081,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
- CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
- 1, 2,  0,   8,   0
-},
-{ /* 31 */
- "Diva PRO 2.0 U PCI",    0xe003,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
- CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 2,   0,   8,   0
-},
-{ /* 32 */
- "Diva MOBILE",      0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
- 1, 2,  0,   8,   0
-},
-{ /* 33 */
- "TDK DFI3600",      0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
- 1, 2,  0,   8,   0
-},
-{ /* 34 (OEM version of 4 - "Diva PRO PC-Card") */
- "New Media ISDN",     0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
- 1, 2,   0,   8,   0
-},
-{ /* 35 (OEM version of 7 - "Diva PRO 2.0 S/T PCI") */
- "BT ExLane PCI",     0xe101,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
- CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 2,   0,   8,   0
-},
-{ /* 36 (OEM version of 29 - "Diva PRO 2.0 S/T ISA") */
- "BT ExLane ISA",     0x1061,  0x0200,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
- CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
- 1, 2,   0,   8,   0
-},
-{ /* 37 */
- "Diva 2.01 S/T ISA",    0x00A1,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_ISA, CHIP_IPAC,
- 1, 2,   0,   8,      0
-},
-{ /* 38 */
- "Diva 2.01 U ISA",     0x00B1,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_ISA, CHIP_IPAC,
- 1, 2,   0,   8,      0
-},
-{ /* 39 */
- "Diva 2.01 S/T PCI",    0xe005,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
- 1, 2,   0,   8,   0
-},
-{ /* 40        no ID yet */
- "Diva 2.01 U PCI",     0x0000,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
- 1, 2,   0,   8,   0
-},
-{ /* 41 */
- "Diva MOBILE V.90",     0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
- 1, 2,  0,   8,   0
-},
-{ /* 42 */
- "TDK DFI3600 V.90",     0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
- 1, 2,  0,   8,   0
-},
-{ /* 43 */
- "Diva Server PRI-23M PCI",   0xe014,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 30,  256,  8,   0
-},
-{ /* 44 */
- "Diva 2.01 S/T USB",    0x1000,     0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_USB, CHIP_IPAC,
- 1,  2,  0,  8,   0
-},
-{ /* 45 */
- "Diva CT S/T PCI",    0xe006,  0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1,  2,  0,  0,   0
-},
-{ /* 46 */
- "Diva CT U PCI",     0xe007,  0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1,  2,  0,  0,   0
-},
-{ /* 47 */
- "Diva CT Lite S/T PCI",   0xe008,  0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1,  2,  0,  0,   0
-},
-{ /* 48 */
- "Diva CT Lite U PCI",   0xe009,  0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1,  2,  0,  0,   0
-},
-{ /* 49 */
- "Diva ISDN+V.90 PC Card", 0x8D8C, 0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_DIVALOW, CARD_I_NONE, BUS_PCM, CHIP_IPAC,
- 1, 2,  0,   8,   0
-},
-{ /* 50 */
- "Diva ISDN+V.90 PCI",    0xe00A,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120  | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
- 1, 2,   0,   8,   0
-},
-{ /* 51 (DivaTA)      no ID */
- "Diva TA",       0x0000,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVATA,  CARD_I_NONE, BUS_COM, CHIP_EXTERN,
- 1, 1,   0,   8,   0
-},
-{ /* 52 (Diva Server 4BRI-8M PCI adapter enabled for Voice) */
- "Diva Server Voice 4BRI-8M PCI", 0xE016,  0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
- CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 4, 2,   16,  8,   0
-},
-{ /* 53 (Diva Server 4BRI 2.0 adapter) */
- "Diva Server 4BRI-8M 2.0 PCI",  0xE013,  0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 4, 2,   16,  8,   0
-},
-{ /* 54 (Diva Server PRI 2.0 adapter) */
- "Diva Server PRI 2.0 PCI",   0xE015,  0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 30,  256,  8,   0
-},
-{ /* 55 (Diva Server 4BRI-8M 2.0 PCI adapter enabled for Voice) */
- "Diva Server Voice 4BRI-8M 2.0 PCI", 0xE017,  0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
- CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 4, 2,   16,  8,   0
-},
-{ /* 56 (Diva Server PRI 2.0 PCI adapter enabled for Voice) */
- "Diva Server Voice PRI 2.0 PCI",  0xE019,  0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
- CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 30,  256,  8,   0
-},
-{
- /* 57 (DivaLan )      no ID */
- "Diva LAN",       0x0000,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALAN,  CARD_I_NONE, BUS_LAN, CHIP_EXTERN,
- 1, 1,   0,   8,   0
-},
-{ /* 58 */
- "Diva 2.02 PCI S/T",    0xE00B,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES | DI_SOFT_V110,
- CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPACX,
- 1, 2,   0,   8,   0
-},
-{ /* 59 */
- "Diva 2.02 PCI U",     0xE00C,  0x0300,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPACX,
- 1, 2,   0,   8,   0
-},
-{ /* 60 */
- "Diva Server BRI-2M 2.0 PCI",     0xE018,  0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_MAE2,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 2,   16,  8,   0
-},
-{ /* 61  (the previous name was Diva Server BRI-2F 2.0 PCI) */
- "Diva Server 2FX",                      0xE01A,     0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_SOFT_V110,
- CARD_MAE2,          CARD_I_NONE,    BUS_PCI,    CHIP_IPACX,
- 1,  2,      16,     8,   0
-},
-{ /* 62 */
- " Diva ISDN USB 2.0",    0x1003,     0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_DIVALOW,  CARD_I_NONE, BUS_USB, CHIP_IPACX,
- 1, 2,  0,  8,   0
-},
-{ /* 63 (Diva Server BRI-2M 2.0 PCI adapter enabled for Voice) */
- "Diva Server Voice BRI-2M 2.0 PCI", 0xE01B,  0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
- CARD_MAE2,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1, 2,   16,  8,   0
-},
-{ /* 64 */
- "Diva Pro 3.0 PCI",    0xe00d,  0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
- CARD_PRO,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1,  2,  0,  0,   0
-},
-{ /* 65 */
- "Diva ISDN + CT 2.0",    0xE00E,  0x0300,
IDI_ADAPTER_DIVA   ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
- CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
- 1,  2,  0,  0,   0
-},
-{ /* 66 */
- "Diva Mobile V.90 PC Card",  0x8331,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_IPACX,
- 1, 2,  0,   8,   0
-},
-{ /* 67 */
- "Diva ISDN PC Card",  0x8311,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_IPACX,
- 1, 2,  0,   8,   0
-},
-{ /* 68 */
- "Diva ISDN PC Card",  0x0000,  0x0100,
- IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
- CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
- 1, 2,   0,   8,      0
-},
-} ;
+       { /*  0  */
              "Diva MCA",       0x6336,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
              CARD_DIVA,   CARD_I_NONE, BUS_MCA, CHIP_DSP,
              1, 2,  0,   8,      0
+       },
+       { /*  1  */
              "Diva ISA",       0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
              CARD_DIVA,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
              1, 2,  0,   8,      0
+       },
+       { /*  2  */
              "Diva/PCM",       0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
              CARD_DIVA,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
              1, 2,  0,   8,      0
+       },
+       { /*  3  */
              "Diva PRO ISA",      0x0031,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
              1, 2,  0,   8,      0
+       },
+       { /*  4  */
              "Diva PRO PC-Card",     0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
              1, 2,   0,   8,      0
+       },
+       { /*  5  */
              "Diva PICCOLA ISA",     0x0051,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
              1, 2,   0,   8,      0
+       },
+       { /*  6  */
              "Diva PICCOLA PCM",     0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
              1, 2,   0,   8,      0
+       },
+       { /*  7  */
              "Diva PRO 2.0 S/T PCI",    0xe001,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
              CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 2,   0,   8,      0
+       },
+       { /*  8  */
              "Diva 2.0 S/T PCI",     0xe002,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCI, CHIP_HSCX,
              1, 2,   0,   8,      0
+       },
+       { /*  9  */
              "QUADRO ISA",      0x0000,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
              CARD_QUAD,   CARD_I_QUAD, BUS_ISA, CHIP_NONE,
              4, 2,   16,  0,  0x800
+       },
+       { /* 10  */
              "S ISA",       0x0000,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
              CARD_S,    CARD_I_S,  BUS_ISA, CHIP_NONE,
              1, 1,   16,  0,  0x800
+       },
+       { /* 11  */
              "S MCA",       0x6a93,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
              CARD_S,    CARD_I_S,  BUS_MCA, CHIP_NONE,
              1, 1,   16,  16,  0x400
+       },
+       { /* 12 */
              "SX ISA",       0x0000,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
              CARD_SX,   CARD_I_SX,  BUS_ISA, CHIP_NONE,
              1, 2,  16,  0,  0x800
+       },
+       { /* 13 */
              "SX MCA",       0x6a93,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
              CARD_SX,   CARD_I_SX,  BUS_MCA, CHIP_NONE,
              1, 2,  16,  16,  0x400
+       },
+       { /* 14 */
              "SXN ISA",       0x0000,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
              CARD_SXN,   CARD_I_SCOM, BUS_ISA, CHIP_NONE,
              1, 2,   16,  0,   0x800
+       },
+       { /* 15 */
              "SXN MCA",       0x6a93,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
              CARD_SXN,   CARD_I_SCOM, BUS_MCA, CHIP_NONE,
              1, 2,  16,  16,  0x400
+       },
+       { /* 16 */
              "SCOM ISA",       0x0000,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
              CARD_SCOM,   CARD_I_SCOM, BUS_ISA, CHIP_NONE,
              1, 2,   16,  0,   0x800
+       },
+       { /* 17 */
              "SCOM MCA",       0x6a93,  0x0100,
              IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
              CARD_SCOM,   CARD_I_SCOM, BUS_MCA, CHIP_NONE,
              1, 2,  16,  16,  0x400
+       },
+       { /* 18 */
              "S2M ISA",       0x0000,  0x0100,
              IDI_ADAPTER_PR,  FAMILY_S,  DI_NULL,
              CARD_PR,   CARD_I_PR,  BUS_ISA, CHIP_NONE,
              1, 30,  256, 0,   0x4000
+       },
+       { /* 19 */
              "S2M MCA",       0x6abb,  0x0100,
              IDI_ADAPTER_PR,  FAMILY_S,  DI_NULL,
              CARD_PR,   CARD_I_PR,  BUS_MCA, CHIP_NONE,
              1, 30,  256, 16,  0x4000
+       },
+       { /* 20 */
              "Diva Server BRI-2M ISA",   0x0041,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAE,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
              1, 2,   16,  8,  0
+       },
+       { /* 21 */
              "Diva Server BRI-2M PCI",   0xE010,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAE,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 2,   16,  8,   0
+       },
+       { /* 22 */
              "Diva Server 4BRI-8M PCI",   0xE012,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              4, 2,   16,  8,   0
+       },
+       { /* 23 */
              "Diva Server PRI-30M PCI",   0xE014,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 30,  256,  8,   0
+       },
+       { /* 24 */
              "Diva Server PRI-2M PCI",   0xe014,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 30,  256,  8,   0
+       },
+       { /* 25 */
              "Diva Server PRI-9M PCI",   0x0000,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 30,     256,  8,   0
+       },
+       { /* 26 */
              "Diva 2.0 S/T ISA",     0x0071,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
              1, 2,  0,   8,   0
+       },
+       { /* 27 */
              "Diva 2.0 U ISA",     0x0091,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
              1, 2,   0,   8,   0
+       },
+       { /* 28 */
              "Diva 2.0 U PCI",     0xe004,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCI, CHIP_HSCX,
              1, 2,   0,   8,   0
+       },
+       { /* 29 */
              "Diva PRO 2.0 S/T ISA",    0x0061,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
              CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
              1, 2,  0,   8,   0
+       },
+       { /* 30 */
              "Diva PRO 2.0 U ISA",    0x0081,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
              CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
              1, 2,  0,   8,   0
+       },
+       { /* 31 */
              "Diva PRO 2.0 U PCI",    0xe003,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
              CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 2,   0,   8,   0
+       },
+       { /* 32 */
              "Diva MOBILE",      0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
              1, 2,  0,   8,   0
+       },
+       { /* 33 */
              "TDK DFI3600",      0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
              1, 2,  0,   8,   0
+       },
+       { /* 34 (OEM version of 4 - "Diva PRO PC-Card") */
              "New Media ISDN",     0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
              1, 2,   0,   8,   0
+       },
+       { /* 35 (OEM version of 7 - "Diva PRO 2.0 S/T PCI") */
              "BT ExLane PCI",     0xe101,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
              CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 2,   0,   8,   0
+       },
+       { /* 36 (OEM version of 29 - "Diva PRO 2.0 S/T ISA") */
              "BT ExLane ISA",     0x1061,  0x0200,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
              CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
              1, 2,   0,   8,   0
+       },
+       { /* 37 */
              "Diva 2.01 S/T ISA",    0x00A1,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_ISA, CHIP_IPAC,
              1, 2,   0,   8,      0
+       },
+       { /* 38 */
              "Diva 2.01 U ISA",     0x00B1,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_ISA, CHIP_IPAC,
              1, 2,   0,   8,      0
+       },
+       { /* 39 */
              "Diva 2.01 S/T PCI",    0xe005,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
              1, 2,   0,   8,   0
+       },
+       { /* 40        no ID yet */
              "Diva 2.01 U PCI",     0x0000,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
              1, 2,   0,   8,   0
+       },
+       { /* 41 */
              "Diva MOBILE V.90",     0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
              1, 2,  0,   8,   0
+       },
+       { /* 42 */
              "TDK DFI3600 V.90",     0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
              1, 2,  0,   8,   0
+       },
+       { /* 43 */
              "Diva Server PRI-23M PCI",   0xe014,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 30,  256,  8,   0
+       },
+       { /* 44 */
              "Diva 2.01 S/T USB",    0x1000,     0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_USB, CHIP_IPAC,
              1,  2,  0,  8,   0
+       },
+       { /* 45 */
              "Diva CT S/T PCI",    0xe006,  0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1,  2,  0,  0,   0
+       },
+       { /* 46 */
              "Diva CT U PCI",     0xe007,  0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1,  2,  0,  0,   0
+       },
+       { /* 47 */
              "Diva CT Lite S/T PCI",   0xe008,  0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1,  2,  0,  0,   0
+       },
+       { /* 48 */
              "Diva CT Lite U PCI",   0xe009,  0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1,  2,  0,  0,   0
+       },
+       { /* 49 */
              "Diva ISDN+V.90 PC Card", 0x8D8C, 0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_DIVALOW, CARD_I_NONE, BUS_PCM, CHIP_IPAC,
              1, 2,  0,   8,   0
+       },
+       { /* 50 */
              "Diva ISDN+V.90 PCI",    0xe00A,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120  | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
              1, 2,   0,   8,   0
+       },
+       { /* 51 (DivaTA)      no ID */
              "Diva TA",       0x0000,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVATA,  CARD_I_NONE, BUS_COM, CHIP_EXTERN,
              1, 1,   0,   8,   0
+       },
+       { /* 52 (Diva Server 4BRI-8M PCI adapter enabled for Voice) */
              "Diva Server Voice 4BRI-8M PCI", 0xE016,  0x0100,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
              CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              4, 2,   16,  8,   0
+       },
+       { /* 53 (Diva Server 4BRI 2.0 adapter) */
              "Diva Server 4BRI-8M 2.0 PCI",  0xE013,  0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              4, 2,   16,  8,   0
+       },
+       { /* 54 (Diva Server PRI 2.0 adapter) */
              "Diva Server PRI 2.0 PCI",   0xE015,  0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 30,  256,  8,   0
+       },
+       { /* 55 (Diva Server 4BRI-8M 2.0 PCI adapter enabled for Voice) */
              "Diva Server Voice 4BRI-8M 2.0 PCI", 0xE017,  0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
              CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              4, 2,   16,  8,   0
+       },
+       { /* 56 (Diva Server PRI 2.0 PCI adapter enabled for Voice) */
              "Diva Server Voice PRI 2.0 PCI",  0xE019,  0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
              CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 30,  256,  8,   0
+       },
+       {
              /* 57 (DivaLan )      no ID */
              "Diva LAN",       0x0000,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALAN,  CARD_I_NONE, BUS_LAN, CHIP_EXTERN,
              1, 1,   0,   8,   0
+       },
+       { /* 58 */
              "Diva 2.02 PCI S/T",    0xE00B,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES | DI_SOFT_V110,
              CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPACX,
              1, 2,   0,   8,   0
+       },
+       { /* 59 */
              "Diva 2.02 PCI U",     0xE00C,  0x0300,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPACX,
              1, 2,   0,   8,   0
+       },
+       { /* 60 */
              "Diva Server BRI-2M 2.0 PCI",     0xE018,  0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_MAE2,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 2,   16,  8,   0
+       },
+       { /* 61  (the previous name was Diva Server BRI-2F 2.0 PCI) */
              "Diva Server 2FX",                      0xE01A,     0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_SOFT_V110,
              CARD_MAE2,          CARD_I_NONE,    BUS_PCI,    CHIP_IPACX,
              1,  2,      16,     8,   0
+       },
+       { /* 62 */
              " Diva ISDN USB 2.0",    0x1003,     0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_DIVALOW,  CARD_I_NONE, BUS_USB, CHIP_IPACX,
              1, 2,  0,  8,   0
+       },
+       { /* 63 (Diva Server BRI-2M 2.0 PCI adapter enabled for Voice) */
              "Diva Server Voice BRI-2M 2.0 PCI", 0xE01B,  0x0200,
              IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
              CARD_MAE2,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1, 2,   16,  8,   0
+       },
+       { /* 64 */
              "Diva Pro 3.0 PCI",    0xe00d,  0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
              CARD_PRO,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1,  2,  0,  0,   0
+       },
+       { /* 65 */
              "Diva ISDN + CT 2.0",    0xE00E,  0x0300,
              IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
              CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
              1,  2,  0,  0,   0
+       },
+       { /* 66 */
              "Diva Mobile V.90 PC Card",  0x8331,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_IPACX,
              1, 2,  0,   8,   0
+       },
+       { /* 67 */
              "Diva ISDN PC Card",  0x8311,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_IPACX,
              1, 2,  0,   8,   0
+       },
+       { /* 68 */
              "Diva ISDN PC Card",  0x0000,  0x0100,
              IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
              CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
              1, 2,   0,   8,      0
+       },
+};
 #if CARDTYPE_H_WANT_RESOURCE_DATA
 /*--- CardResource [Index=CARDTYPE_....]   ---------------------------(GEI)-*/
-CARD_RESOURCE CardResource [ ] =  {
+CARD_RESOURCE CardResource[] = {
 /*   Interrupts     IO-Address   Mem-Address */
-/* 0*/ {  3,4,9,0,0,0,0,0,0,0,   0x200,0x20,16,   0x0,0x0,0   }, // DIVA MCA
-/* 1*/ {  3,4,9,10,11,12,0,0,0,0,  0x200,0x20,16,   0x0,0x0,0   }, // DIVA ISA
-/* 2*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PCMCIA
-/* 3*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO ISA
-/* 4*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO PCMCIA
-/* 5*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA PICCOLA ISA
-/* 6*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA PICCOLA PCMCIA
-/* 7*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO 2.0 PCI
-/* 8*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.0 PCI
-/* 9*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x2000,64 }, // QUADRO ISA
-/*10*/ {  3,4,9,10,11,12,0,0,0,0,  0x0,0x0,0,   0xc0000,0x2000,16 }, // S ISA
-/*11*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // S MCA
-/*12*/ {  3,4,9,10,11,12,0,0,0,0,  0x0,0x0,0,   0xc0000,0x2000,16 }, // SX ISA
-/*13*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SX MCA
-/*14*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x0800,256 }, // SXN ISA
-/*15*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SXN MCA
-/*16*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x0800,256 }, // SCOM ISA
-/*17*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SCOM MCA
-/*18*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0xc0000,0x4000,16 }, // S2M ISA
-/*19*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x4000,16 }, // S2M MCA
-/*20*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA ISA
-/*21*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA PCI
-/*22*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA QUADRO ISA
-/*23*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA QUADRO PCI
-/*24*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA PRIMARY ISA
-/*25*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA PRIMARY PCI
-/*26*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.0 ISA
-/*27*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.0 /U ISA
-/*28*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.0 /U PCI
-/*29*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO 2.0 ISA
-/*30*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO 2.0 /U ISA
-/*31*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO 2.0 /U PCI
-/*32*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA MOBILE
-/*33*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // TDK DFI3600 (same as DIVA MOBILE [32])
-/*34*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // New Media ISDN (same as DIVA PRO PCMCIA [4])
-/*35*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // BT ExLane PCI (same as DIVA PRO 2.0 PCI [7])
-/*36*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // BT ExLane ISA (same as DIVA PRO 2.0 ISA [29])
-/*37*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.01 S/T ISA
-/*38*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.01 U ISA
-/*39*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.01 S/T PCI
-/*40*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.01 U PCI
-/*41*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA MOBILE V.90
-/*42*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // TDK DFI3600 V.90 (same as DIVA MOBILE V.90 [39])
-/*43*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // DIVA Server PRI-23M PCI
-/*44*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA 2.01 S/T USB
-/*45*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT S/T PCI
-/*46*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT U PCI
-/*47*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT Lite S/T PCI
-/*48*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT Lite U PCI
-/*49*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA ISDN+V.90 PC Card
-/*50*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA ISDN+V.90 PCI
-/*51*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA TA
-/*52*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
-/*53*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
-/*54*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA VOICE PRIMARY PCI
-/*55*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
-/*56*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA VOICE PRIMARY PCI
-/*57*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA LAN
-/*58*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.02 S/T PCI
-/*59*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.02 U PCI
-/*60*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server BRI-2M 2.0 PCI
-/*61*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server BRI-2F PCI
-/*62*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA 2.01 S/T USB
-/*63*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server Voice BRI-2M 2.0 PCI
-/*64*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 3.0 PCI
-/*65*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT S/T PCI V2.0
-/*66*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA Mobile V.90 PC Card
-/*67*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA ISDN PC Card
-/*68*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA ISDN PC Card
+       /* 0*/ {  3,4,9,0,0,0,0,0,0,0,   0x200,0x20,16,   0x0,0x0,0   }, // DIVA MCA
+       /* 1*/ {  3,4,9,10,11,12,0,0,0,0,  0x200,0x20,16,   0x0,0x0,0   }, // DIVA ISA
+       /* 2*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PCMCIA
+       /* 3*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO ISA
+       /* 4*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO PCMCIA
+       /* 5*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA PICCOLA ISA
+       /* 6*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA PICCOLA PCMCIA
+       /* 7*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO 2.0 PCI
+       /* 8*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.0 PCI
+       /* 9*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x2000,64 }, // QUADRO ISA
+       /*10*/ {  3,4,9,10,11,12,0,0,0,0,  0x0,0x0,0,   0xc0000,0x2000,16 }, // S ISA
+       /*11*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // S MCA
+       /*12*/ {  3,4,9,10,11,12,0,0,0,0,  0x0,0x0,0,   0xc0000,0x2000,16 }, // SX ISA
+       /*13*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SX MCA
+       /*14*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x0800,256 }, // SXN ISA
+       /*15*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SXN MCA
+       /*16*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x0800,256 }, // SCOM ISA
+       /*17*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SCOM MCA
+       /*18*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0xc0000,0x4000,16 }, // S2M ISA
+       /*19*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x4000,16 }, // S2M MCA
+       /*20*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA ISA
+       /*21*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA PCI
+       /*22*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA QUADRO ISA
+       /*23*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA QUADRO PCI
+       /*24*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA PRIMARY ISA
+       /*25*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA PRIMARY PCI
+       /*26*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.0 ISA
+       /*27*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.0 /U ISA
+       /*28*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.0 /U PCI
+       /*29*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO 2.0 ISA
+       /*30*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO 2.0 /U ISA
+       /*31*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO 2.0 /U PCI
+       /*32*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA MOBILE
+       /*33*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // TDK DFI3600 (same as DIVA MOBILE [32])
+       /*34*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // New Media ISDN (same as DIVA PRO PCMCIA [4])
+       /*35*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // BT ExLane PCI (same as DIVA PRO 2.0 PCI [7])
+       /*36*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // BT ExLane ISA (same as DIVA PRO 2.0 ISA [29])
+       /*37*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.01 S/T ISA
+       /*38*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.01 U ISA
+       /*39*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.01 S/T PCI
+       /*40*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.01 U PCI
+       /*41*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA MOBILE V.90
+       /*42*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // TDK DFI3600 V.90 (same as DIVA MOBILE V.90 [39])
+       /*43*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // DIVA Server PRI-23M PCI
+       /*44*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA 2.01 S/T USB
+       /*45*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT S/T PCI
+       /*46*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT U PCI
+       /*47*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT Lite S/T PCI
+       /*48*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT Lite U PCI
+       /*49*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA ISDN+V.90 PC Card
+       /*50*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA ISDN+V.90 PCI
+       /*51*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA TA
+       /*52*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
+       /*53*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
+       /*54*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA VOICE PRIMARY PCI
+       /*55*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
+       /*56*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA VOICE PRIMARY PCI
+       /*57*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA LAN
+       /*58*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.02 S/T PCI
+       /*59*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.02 U PCI
+       /*60*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server BRI-2M 2.0 PCI
+       /*61*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server BRI-2F PCI
+       /*62*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA 2.01 S/T USB
+       /*63*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server Voice BRI-2M 2.0 PCI
+       /*64*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 3.0 PCI
+       /*65*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT S/T PCI V2.0
+       /*66*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA Mobile V.90 PC Card
+       /*67*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA ISDN PC Card
+       /*68*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA ISDN PC Card
 };
 #endif /*CARDTYPE_H_WANT_RESOURCE_DATA*/
 #else /*!CARDTYPE_H_WANT_DATA*/
-extern CARD_PROPERTIES  CardProperties [] ;
-extern CARD_RESOURCE  CardResource [] ;
+extern CARD_PROPERTIES  CardProperties[];
+extern CARD_RESOURCE  CardResource[];
 #endif /*CARDTYPE_H_WANT_DATA*/
 /*
  * all existing download files
@@ -902,197 +902,197 @@ extern CARD_RESOURCE  CardResource [] ;
 #define CARD_D_NEW_DSP_COMBIFILE 63
 typedef struct CARD_FILES_DATA
 {
char *    Name;
- unsigned char  Type;
      char *Name;
      unsigned char  Type;
 }
-CARD_FILES_DATA;
+       CARD_FILES_DATA;
 typedef struct CARD_FILES
 {
- unsigned char  Boot;
unsigned char  Dsp  [CARD_DSP_CNT];
- unsigned char  DspTelindus;
unsigned char  Prot [CARD_PROT_CNT];
      unsigned char  Boot;
      unsigned char  Dsp[CARD_DSP_CNT];
      unsigned char  DspTelindus;
      unsigned char  Prot[CARD_PROT_CNT];
 }
-CARD_FILES;
+       CARD_FILES;
 #if CARDTYPE_H_WANT_DATA
 #if CARDTYPE_H_WANT_FILE_DATA
-CARD_FILES_DATA CardFData [] =  {
+CARD_FILES_DATA CardFData[] = {
 // Filename   Filetype
- 0,     CARD_FT_UNKNOWN,
- "didnload.bin",  CARD_FT_B,
- "diprload.bin",  CARD_FT_B,
- "didiva.bin",  CARD_FT_D,
- "didivapp.bin",  CARD_FT_D,
- "dihscx.bin",  CARD_FT_D,
- "div110.bin",  CARD_FT_D,
- "dimodem.bin",  CARD_FT_D,
- "difax.bin",  CARD_FT_D,
- "di_etsi.bin",  CARD_FT_S,
- "di_1tr6.bin",  CARD_FT_S,
- "di_belg.bin",  CARD_FT_S,
- "di_franc.bin",  CARD_FT_S,
- "di_atel.bin",  CARD_FT_S,
- "di_ni.bin",  CARD_FT_S,
- "di_5ess.bin",  CARD_FT_S,
- "di_japan.bin",  CARD_FT_S,
- "di_etsi.sx",  CARD_FT_S,
- "di_1tr6.sx",  CARD_FT_S,
- "di_belg.sx",  CARD_FT_S,
- "di_franc.sx",  CARD_FT_S,
- "di_atel.sx",  CARD_FT_S,
- "di_ni.sx",   CARD_FT_S,
- "di_5ess.sx",  CARD_FT_S,
- "di_japan.sx",  CARD_FT_S,
- "di_etsi.sy",  CARD_FT_S,
- "di_1tr6.sy",  CARD_FT_S,
- "di_belg.sy",  CARD_FT_S,
- "di_franc.sy",  CARD_FT_S,
- "di_atel.sy",  CARD_FT_S,
- "di_ni.sy",   CARD_FT_S,
- "di_5ess.sy",  CARD_FT_S,
- "di_japan.sy",  CARD_FT_S,
- "di_etsi.sq",  CARD_FT_S,
- "di_1tr6.sq",  CARD_FT_S,
- "di_belg.sq",  CARD_FT_S,
- "di_franc.sq",  CARD_FT_S,
- "di_atel.sq",  CARD_FT_S,
- "di_ni.sq",   CARD_FT_S,
- "di_5ess.sq",  CARD_FT_S,
- "di_japan.sq",  CARD_FT_S,
- "di_etsi.p",  CARD_FT_S,
- "di_1tr6.p",  CARD_FT_S,
- "di_belg.p",  CARD_FT_S,
- "di_franc.p",  CARD_FT_S,
- "di_atel.p",  CARD_FT_S,
- "di_ni.p",   CARD_FT_S,
- "di_5ess.p",  CARD_FT_S,
- "di_japan.p",  CARD_FT_S,
- "di_etsi.sm",  CARD_FT_M,
- "di_1tr6.sm",  CARD_FT_M,
- "di_belg.sm",  CARD_FT_M,
- "di_franc.sm",  CARD_FT_M,
- "di_atel.sm",  CARD_FT_M,
- "di_ni.sm",   CARD_FT_M,
- "di_5ess.sm",  CARD_FT_M,
- "di_japan.sm",  CARD_FT_M,
- "di_swed.bin",  CARD_FT_S,
- "di_swed.sx",  CARD_FT_S,
- "di_swed.sy",  CARD_FT_S,
- "di_swed.sq",  CARD_FT_S,
- "di_swed.p",  CARD_FT_S,
- "di_swed.sm",  CARD_FT_M,
-    "didspdld.bin",     CARD_FT_NEW_DSP_COMBIFILE
      0,     CARD_FT_UNKNOWN,
      "didnload.bin",  CARD_FT_B,
      "diprload.bin",  CARD_FT_B,
      "didiva.bin",  CARD_FT_D,
      "didivapp.bin",  CARD_FT_D,
      "dihscx.bin",  CARD_FT_D,
      "div110.bin",  CARD_FT_D,
      "dimodem.bin",  CARD_FT_D,
      "difax.bin",  CARD_FT_D,
      "di_etsi.bin",  CARD_FT_S,
      "di_1tr6.bin",  CARD_FT_S,
      "di_belg.bin",  CARD_FT_S,
      "di_franc.bin",  CARD_FT_S,
      "di_atel.bin",  CARD_FT_S,
      "di_ni.bin",  CARD_FT_S,
      "di_5ess.bin",  CARD_FT_S,
      "di_japan.bin",  CARD_FT_S,
      "di_etsi.sx",  CARD_FT_S,
      "di_1tr6.sx",  CARD_FT_S,
      "di_belg.sx",  CARD_FT_S,
      "di_franc.sx",  CARD_FT_S,
      "di_atel.sx",  CARD_FT_S,
      "di_ni.sx",   CARD_FT_S,
      "di_5ess.sx",  CARD_FT_S,
      "di_japan.sx",  CARD_FT_S,
      "di_etsi.sy",  CARD_FT_S,
      "di_1tr6.sy",  CARD_FT_S,
      "di_belg.sy",  CARD_FT_S,
      "di_franc.sy",  CARD_FT_S,
      "di_atel.sy",  CARD_FT_S,
      "di_ni.sy",   CARD_FT_S,
      "di_5ess.sy",  CARD_FT_S,
      "di_japan.sy",  CARD_FT_S,
      "di_etsi.sq",  CARD_FT_S,
      "di_1tr6.sq",  CARD_FT_S,
      "di_belg.sq",  CARD_FT_S,
      "di_franc.sq",  CARD_FT_S,
      "di_atel.sq",  CARD_FT_S,
      "di_ni.sq",   CARD_FT_S,
      "di_5ess.sq",  CARD_FT_S,
      "di_japan.sq",  CARD_FT_S,
      "di_etsi.p",  CARD_FT_S,
      "di_1tr6.p",  CARD_FT_S,
      "di_belg.p",  CARD_FT_S,
      "di_franc.p",  CARD_FT_S,
      "di_atel.p",  CARD_FT_S,
      "di_ni.p",   CARD_FT_S,
      "di_5ess.p",  CARD_FT_S,
      "di_japan.p",  CARD_FT_S,
      "di_etsi.sm",  CARD_FT_M,
      "di_1tr6.sm",  CARD_FT_M,
      "di_belg.sm",  CARD_FT_M,
      "di_franc.sm",  CARD_FT_M,
      "di_atel.sm",  CARD_FT_M,
      "di_ni.sm",   CARD_FT_M,
      "di_5ess.sm",  CARD_FT_M,
      "di_japan.sm",  CARD_FT_M,
      "di_swed.bin",  CARD_FT_S,
      "di_swed.sx",  CARD_FT_S,
      "di_swed.sy",  CARD_FT_S,
      "di_swed.sq",  CARD_FT_S,
      "di_swed.p",  CARD_FT_S,
      "di_swed.sm",  CARD_FT_M,
+       "didspdld.bin",     CARD_FT_NEW_DSP_COMBIFILE
 };
-CARD_FILES CardFiles [] =
+CARD_FILES CardFiles[] =
 {
- { /* CARD_UNKNOWN */
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE
- },
- { /* CARD_DIVA */
-  CARD_FILE_NONE,
-  CARD_D_K1, CARD_D_H, CARD_D_V, CARD_FILE_NONE, CARD_D_F,
-  CARD_D_NEW_DSP_COMBIFILE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE
- },
- { /* CARD_PRO  */
-  CARD_FILE_NONE,
-  CARD_D_K2, CARD_D_H, CARD_D_V, CARD_D_M, CARD_D_F,
-  CARD_D_NEW_DSP_COMBIFILE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE
- },
- { /* CARD_PICO */
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE
- },
- { /* CARD_S    */
-  CARD_B_S,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_P_S_E, CARD_P_S_1, CARD_P_S_B, CARD_P_S_F,
-  CARD_P_S_A, CARD_P_S_N, CARD_P_S_5, CARD_P_S_J,
-  CARD_P_S_S
- },
- { /* CARD_SX   */
-  CARD_B_S,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_P_SX_E, CARD_P_SX_1, CARD_P_SX_B, CARD_P_SX_F,
-  CARD_P_SX_A, CARD_P_SX_N, CARD_P_SX_5, CARD_P_SX_J,
-  CARD_P_SX_S
- },
- { /* CARD_SXN  */
-  CARD_B_S,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_P_SY_E, CARD_P_SY_1, CARD_P_SY_B, CARD_P_SY_F,
-  CARD_P_SY_A, CARD_P_SY_N, CARD_P_SY_5, CARD_P_SY_J,
-  CARD_P_SY_S
- },
- { /* CARD_SCOM */
-  CARD_B_S,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_P_SY_E, CARD_P_SY_1, CARD_P_SY_B, CARD_P_SY_F,
-  CARD_P_SY_A, CARD_P_SY_N, CARD_P_SY_5, CARD_P_SY_J,
-  CARD_P_SY_S
- },
- { /* CARD_QUAD */
-  CARD_B_S,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_P_SQ_E, CARD_P_SQ_1, CARD_P_SQ_B, CARD_P_SQ_F,
-  CARD_P_SQ_A, CARD_P_SQ_N, CARD_P_SQ_5, CARD_P_SQ_J,
-  CARD_P_SQ_S
- },
- { /* CARD_PR   */
-  CARD_B_P,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_P_P_E, CARD_P_P_1, CARD_P_P_B, CARD_P_P_F,
-  CARD_P_P_A, CARD_P_P_N, CARD_P_P_5, CARD_P_P_J,
-  CARD_P_P_S
- },
- { /* CARD_MAE  */
-  CARD_FILE_NONE,
-  CARD_D_K2, CARD_D_H, CARD_D_V, CARD_D_M, CARD_D_F,
-  CARD_D_NEW_DSP_COMBIFILE,
-  CARD_P_M_E, CARD_P_M_1, CARD_P_M_B, CARD_P_M_F,
-  CARD_P_M_A, CARD_P_M_N, CARD_P_M_5, CARD_P_M_J,
-  CARD_P_M_S
- },
- { /* CARD_MAEQ */  /* currently not supported */
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE
- },
- { /* CARD_MAEP */  /* currently not supported */
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
-  CARD_FILE_NONE
- }
      { /* CARD_UNKNOWN */
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE
      },
      { /* CARD_DIVA */
+               CARD_FILE_NONE,
+               CARD_D_K1, CARD_D_H, CARD_D_V, CARD_FILE_NONE, CARD_D_F,
+               CARD_D_NEW_DSP_COMBIFILE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE
      },
      { /* CARD_PRO  */
+               CARD_FILE_NONE,
+               CARD_D_K2, CARD_D_H, CARD_D_V, CARD_D_M, CARD_D_F,
+               CARD_D_NEW_DSP_COMBIFILE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE
      },
      { /* CARD_PICO */
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE
      },
      { /* CARD_S    */
+               CARD_B_S,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_P_S_E, CARD_P_S_1, CARD_P_S_B, CARD_P_S_F,
+               CARD_P_S_A, CARD_P_S_N, CARD_P_S_5, CARD_P_S_J,
+               CARD_P_S_S
      },
      { /* CARD_SX   */
+               CARD_B_S,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_P_SX_E, CARD_P_SX_1, CARD_P_SX_B, CARD_P_SX_F,
+               CARD_P_SX_A, CARD_P_SX_N, CARD_P_SX_5, CARD_P_SX_J,
+               CARD_P_SX_S
      },
      { /* CARD_SXN  */
+               CARD_B_S,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_P_SY_E, CARD_P_SY_1, CARD_P_SY_B, CARD_P_SY_F,
+               CARD_P_SY_A, CARD_P_SY_N, CARD_P_SY_5, CARD_P_SY_J,
+               CARD_P_SY_S
      },
      { /* CARD_SCOM */
+               CARD_B_S,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_P_SY_E, CARD_P_SY_1, CARD_P_SY_B, CARD_P_SY_F,
+               CARD_P_SY_A, CARD_P_SY_N, CARD_P_SY_5, CARD_P_SY_J,
+               CARD_P_SY_S
      },
      { /* CARD_QUAD */
+               CARD_B_S,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_P_SQ_E, CARD_P_SQ_1, CARD_P_SQ_B, CARD_P_SQ_F,
+               CARD_P_SQ_A, CARD_P_SQ_N, CARD_P_SQ_5, CARD_P_SQ_J,
+               CARD_P_SQ_S
      },
      { /* CARD_PR   */
+               CARD_B_P,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_P_P_E, CARD_P_P_1, CARD_P_P_B, CARD_P_P_F,
+               CARD_P_P_A, CARD_P_P_N, CARD_P_P_5, CARD_P_P_J,
+               CARD_P_P_S
      },
      { /* CARD_MAE  */
+               CARD_FILE_NONE,
+               CARD_D_K2, CARD_D_H, CARD_D_V, CARD_D_M, CARD_D_F,
+               CARD_D_NEW_DSP_COMBIFILE,
+               CARD_P_M_E, CARD_P_M_1, CARD_P_M_B, CARD_P_M_F,
+               CARD_P_M_A, CARD_P_M_N, CARD_P_M_5, CARD_P_M_J,
+               CARD_P_M_S
      },
      { /* CARD_MAEQ */  /* currently not supported */
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE
      },
      { /* CARD_MAEP */  /* currently not supported */
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
+               CARD_FILE_NONE
      }
 };
 #endif /*CARDTYPE_H_WANT_FILE_DATA*/
 #else /*!CARDTYPE_H_WANT_DATA*/
-extern CARD_FILES_DATA  CardFData [] ;
-extern CARD_FILES   CardFiles [] ;
+extern CARD_FILES_DATA  CardFData[];
+extern CARD_FILES   CardFiles[];
 #endif /*CARDTYPE_H_WANT_DATA*/
 #endif /* _CARDTYPE_H_ */
index cb5ada3..c97230c 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-static char diva_capi_common_code_build[] = "102-28";  
+static char diva_capi_common_code_build[] = "102-28";
index 8949789..5142099 100644 (file)
@@ -1,26 +1,25 @@
-
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 #include "divasync.h"
 #include "dadapter.h"
 /* --------------------------------------------------------------------------
-  Adapter array change notification framework
+   Adapter array change notification framework
    -------------------------------------------------------------------------- */
 typedef struct _didd_adapter_change_notification {
- didd_adapter_change_callback_t callback;
void IDI_CALL_ENTITY_T *    context;
-} didd_adapter_change_notification_t, \
- * IDI_CALL_ENTITY_T pdidd_adapter_change_notification_t;
      didd_adapter_change_callback_t callback;
      void IDI_CALL_ENTITY_T *context;
+} didd_adapter_change_notification_t,                          \
      * IDI_CALL_ENTITY_T pdidd_adapter_change_notification_t;
 #define DIVA_DIDD_MAX_NOTIFICATIONS 256
-static didd_adapter_change_notification_t\
-              NotificationTable[DIVA_DIDD_MAX_NOTIFICATIONS];
+static didd_adapter_change_notification_t      \
+NotificationTable[DIVA_DIDD_MAX_NOTIFICATIONS];
 /* --------------------------------------------------------------------------
-  Array to held adapter information
+   Array to held adapter information
    -------------------------------------------------------------------------- */
 static DESCRIPTOR  HandleTable[NEW_MAX_DESCRIPTORS];
 static dword Adapters = 0; /* Number of adapters */
 /* --------------------------------------------------------------------------
-  Shadow IDI_DIMAINT
-  and 'shadow' debug stuff
+   Shadow IDI_DIMAINT
+   and 'shadow' debug stuff
    -------------------------------------------------------------------------- */
-static void no_printf (unsigned char * format, ...)
+static void no_printf(unsigned char *format, ...)
 {
 #ifdef EBUG
        va_list ap;
-       va_start (ap, format);
+       va_start(ap, format);
        debug((format, ap));
-       va_end (ap);
+       va_end(ap);
 #endif
 }
 
 /* -------------------------------------------------------------------------
-  Portable debug Library
-  ------------------------------------------------------------------------- */
+   Portable debug Library
+   ------------------------------------------------------------------------- */
 #include "debuglib.c"
-  
+
 static DESCRIPTOR  MAdapter =  {IDI_DIMAINT, /* Adapter Type */
-                0x00,     /* Channels */
-                0x0000,    /* Features */
-                (IDI_CALL)no_printf};
+                               0x00,     /* Channels */
+                               0x0000,    /* Features */
+                               (IDI_CALL)no_printf};
 /* --------------------------------------------------------------------------
-  DAdapter. Only IDI clients with buffer, that is huge enough to
-  get all descriptors will receive information about DAdapter
-  { byte type, byte channels, word features, IDI_CALL request }
+   DAdapter. Only IDI clients with buffer, that is huge enough to
+   get all descriptors will receive information about DAdapter
+   { byte type, byte channels, word features, IDI_CALL request }
    -------------------------------------------------------------------------- */
-static void IDI_CALL_LINK_T diva_dadapter_request (ENTITY IDI_CALL_ENTITY_T *);
+static void IDI_CALL_LINK_T diva_dadapter_request(ENTITY IDI_CALL_ENTITY_T *);
 static DESCRIPTOR  DAdapter =  {IDI_DADAPTER, /* Adapter Type */
-                0x00,     /* Channels */
-                0x0000,    /* Features */
-                diva_dadapter_request };
+                               0x00,     /* Channels */
+                               0x0000,    /* Features */
+                               diva_dadapter_request };
 /* --------------------------------------------------------------------------
-  LOCALS
+   LOCALS
    -------------------------------------------------------------------------- */
-static dword diva_register_adapter_callback (\
-                   didd_adapter_change_callback_t callback,
-                   void IDI_CALL_ENTITY_T* context);
-static void diva_remove_adapter_callback (dword handle);
-static void diva_notify_adapter_change (DESCRIPTOR* d, int removal);
+static dword diva_register_adapter_callback(\
+       didd_adapter_change_callback_t callback,
+       void IDI_CALL_ENTITY_T *context);
+static void diva_remove_adapter_callback(dword handle);
+static void diva_notify_adapter_change(DESCRIPTOR *d, int removal);
 static diva_os_spin_lock_t didd_spin;
 /* --------------------------------------------------------------------------
-  Should be called as first step, after driver init
-  -------------------------------------------------------------------------- */
-void diva_didd_load_time_init (void) {
memset (&HandleTable[0], 0x00, sizeof(HandleTable));
memset (&NotificationTable[0], 0x00, sizeof(NotificationTable));
diva_os_initialize_spin_lock (&didd_spin, "didd");
+   Should be called as first step, after driver init
+   -------------------------------------------------------------------------- */
+void diva_didd_load_time_init(void) {
      memset(&HandleTable[0], 0x00, sizeof(HandleTable));
      memset(&NotificationTable[0], 0x00, sizeof(NotificationTable));
      diva_os_initialize_spin_lock(&didd_spin, "didd");
 }
 /* --------------------------------------------------------------------------
-  Should be called as last step, if driver does unload
-  -------------------------------------------------------------------------- */
-void diva_didd_load_time_finit (void) {
diva_os_destroy_spin_lock (&didd_spin, "didd");
+   Should be called as last step, if driver does unload
+   -------------------------------------------------------------------------- */
+void diva_didd_load_time_finit(void) {
      diva_os_destroy_spin_lock(&didd_spin, "didd");
 }
 /* --------------------------------------------------------------------------
-  Called in order to register new adapter in adapter array
-  return adapter handle (> 0) on success
-  return -1 adapter array overflow
-  -------------------------------------------------------------------------- */
-static int diva_didd_add_descriptor (DESCRIPTOR* d) {
- diva_os_spin_lock_magic_t      irql;
- int i;
- if (d->type == IDI_DIMAINT) {
-  if (d->request) {
-   MAdapter.request = d->request;
-   dprintf = (DIVA_DI_PRINTF)d->request;
-   diva_notify_adapter_change (&MAdapter, 0); /* Inserted */
-   DBG_TRC (("DIMAINT registered, dprintf=%08x", d->request))
-  } else {
-   DBG_TRC (("DIMAINT removed"))
-   diva_notify_adapter_change (&MAdapter, 1); /* About to remove */
-   MAdapter.request = (IDI_CALL)no_printf;
-   dprintf = no_printf;
-  }
-  return (NEW_MAX_DESCRIPTORS);
- }
- for (i = 0; i < NEW_MAX_DESCRIPTORS; i++) {
-  diva_os_enter_spin_lock (&didd_spin, &irql, "didd_add");
-  if (HandleTable[i].type == 0) {
-   memcpy (&HandleTable[i], d, sizeof(*d));
-   Adapters++;
-   diva_os_leave_spin_lock (&didd_spin, &irql, "didd_add");
-   diva_notify_adapter_change (d, 0); /* we have new adapter */
-   DBG_TRC (("Add adapter[%d], request=%08x", (i+1), d->request))
-   return (i+1);
-  }
-  diva_os_leave_spin_lock (&didd_spin, &irql, "didd_add");
- }
DBG_ERR (("Can't add adapter, out of resources"))
- return (-1);
+   Called in order to register new adapter in adapter array
+   return adapter handle (> 0) on success
+   return -1 adapter array overflow
+   -------------------------------------------------------------------------- */
+static int diva_didd_add_descriptor(DESCRIPTOR *d) {
      diva_os_spin_lock_magic_t      irql;
      int i;
      if (d->type == IDI_DIMAINT) {
+               if (d->request) {
+                       MAdapter.request = d->request;
+                       dprintf = (DIVA_DI_PRINTF)d->request;
+                       diva_notify_adapter_change(&MAdapter, 0); /* Inserted */
+                       DBG_TRC(("DIMAINT registered, dprintf=%08x", d->request))
+                               } else {
+                       DBG_TRC(("DIMAINT removed"))
+                               diva_notify_adapter_change(&MAdapter, 1); /* About to remove */
+                       MAdapter.request = (IDI_CALL)no_printf;
+                       dprintf = no_printf;
+               }
+               return (NEW_MAX_DESCRIPTORS);
      }
      for (i = 0; i < NEW_MAX_DESCRIPTORS; i++) {
+               diva_os_enter_spin_lock(&didd_spin, &irql, "didd_add");
+               if (HandleTable[i].type == 0) {
+                       memcpy(&HandleTable[i], d, sizeof(*d));
+                       Adapters++;
+                       diva_os_leave_spin_lock(&didd_spin, &irql, "didd_add");
+                       diva_notify_adapter_change(d, 0); /* we have new adapter */
+                       DBG_TRC(("Add adapter[%d], request=%08x", (i + 1), d->request))
+                               return (i + 1);
+               }
+               diva_os_leave_spin_lock(&didd_spin, &irql, "didd_add");
      }
      DBG_ERR(("Can't add adapter, out of resources"))
              return (-1);
 }
 /* --------------------------------------------------------------------------
-  Called in order to remove one registered adapter from array
-  return adapter handle (> 0) on success
-  return 0 on success
-  -------------------------------------------------------------------------- */
-static int diva_didd_remove_descriptor (IDI_CALL request) {
- diva_os_spin_lock_magic_t      irql;
- int i;
- if (request == MAdapter.request) {
-  DBG_TRC(("DIMAINT removed"))
-  dprintf = no_printf;
-  diva_notify_adapter_change (&MAdapter, 1); /* About to remove */
-  MAdapter.request = (IDI_CALL)no_printf;
-  return (0);
- }
- for (i = 0; (Adapters && (i < NEW_MAX_DESCRIPTORS)); i++) {
-  if (HandleTable[i].request == request) {
-   diva_notify_adapter_change (&HandleTable[i], 1); /* About to remove */
-   diva_os_enter_spin_lock (&didd_spin, &irql, "didd_rm");
-   memset (&HandleTable[i], 0x00, sizeof(HandleTable[0]));
-   Adapters--;
-   diva_os_leave_spin_lock (&didd_spin, &irql, "didd_rm");
-   DBG_TRC (("Remove adapter[%d], request=%08x", (i+1), request))
-   return (0);
-  }
- }
DBG_ERR (("Invalid request=%08x, can't remove adapter", request))
- return (-1);
+   Called in order to remove one registered adapter from array
+   return adapter handle (> 0) on success
+   return 0 on success
+   -------------------------------------------------------------------------- */
+static int diva_didd_remove_descriptor(IDI_CALL request) {
      diva_os_spin_lock_magic_t      irql;
      int i;
      if (request == MAdapter.request) {
+               DBG_TRC(("DIMAINT removed"))
+                       dprintf = no_printf;
+               diva_notify_adapter_change(&MAdapter, 1); /* About to remove */
+               MAdapter.request = (IDI_CALL)no_printf;
+               return (0);
      }
      for (i = 0; (Adapters && (i < NEW_MAX_DESCRIPTORS)); i++) {
+               if (HandleTable[i].request == request) {
+                       diva_notify_adapter_change(&HandleTable[i], 1); /* About to remove */
+                       diva_os_enter_spin_lock(&didd_spin, &irql, "didd_rm");
+                       memset(&HandleTable[i], 0x00, sizeof(HandleTable[0]));
+                       Adapters--;
+                       diva_os_leave_spin_lock(&didd_spin, &irql, "didd_rm");
+                       DBG_TRC(("Remove adapter[%d], request=%08x", (i + 1), request))
+                               return (0);
+               }
      }
      DBG_ERR(("Invalid request=%08x, can't remove adapter", request))
              return (-1);
 }
 /* --------------------------------------------------------------------------
-  Read adapter array
-  return 1 if not enough space to save all available adapters
+   Read adapter array
+   return 1 if not enough space to save all available adapters
    -------------------------------------------------------------------------- */
-static int diva_didd_read_adapter_array (DESCRIPTOR* buffer, int length) {
- diva_os_spin_lock_magic_t      irql;
- int src, dst;
memset (buffer, 0x00, length);
- length /= sizeof(DESCRIPTOR);
DBG_TRC (("DIDD_Read, space = %d, Adapters = %d", length, Adapters+2))
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_read");
- for (src = 0, dst = 0;
-    (Adapters && (src < NEW_MAX_DESCRIPTORS) && (dst < length));
-    src++) {
-  if (HandleTable[src].type) {
-   memcpy (&buffer[dst], &HandleTable[src], sizeof(DESCRIPTOR));
-   dst++;
-  }
- }
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_read");
- if (dst < length) {
-  memcpy (&buffer[dst], &MAdapter, sizeof(DESCRIPTOR));
-  dst++;
- } else {
-  DBG_ERR (("Can't write DIMAINT. Array too small"))
- }
- if (dst < length) {
-  memcpy (&buffer[dst], &DAdapter, sizeof(DESCRIPTOR));
-  dst++;
- } else {
-  DBG_ERR (("Can't write DADAPTER. Array too small"))
- }
DBG_TRC (("Read %d adapters", dst))
- return (dst == length);
+static int diva_didd_read_adapter_array(DESCRIPTOR *buffer, int length) {
      diva_os_spin_lock_magic_t      irql;
      int src, dst;
      memset(buffer, 0x00, length);
      length /= sizeof(DESCRIPTOR);
      DBG_TRC(("DIDD_Read, space = %d, Adapters = %d", length, Adapters + 2))
+
              diva_os_enter_spin_lock(&didd_spin, &irql, "didd_read");
      for (src = 0, dst = 0;
+            (Adapters && (src < NEW_MAX_DESCRIPTORS) && (dst < length));
+            src++) {
+               if (HandleTable[src].type) {
+                       memcpy(&buffer[dst], &HandleTable[src], sizeof(DESCRIPTOR));
+                       dst++;
+               }
      }
      diva_os_leave_spin_lock(&didd_spin, &irql, "didd_read");
      if (dst < length) {
+               memcpy(&buffer[dst], &MAdapter, sizeof(DESCRIPTOR));
+               dst++;
      } else {
+               DBG_ERR(("Can't write DIMAINT. Array too small"))
                      }
      if (dst < length) {
+               memcpy(&buffer[dst], &DAdapter, sizeof(DESCRIPTOR));
+               dst++;
      } else {
+               DBG_ERR(("Can't write DADAPTER. Array too small"))
                      }
      DBG_TRC(("Read %d adapters", dst))
              return (dst == length);
 }
 /* --------------------------------------------------------------------------
-  DAdapter request function.
-  This function does process only synchronous requests, and is used
-  for reception/registration of new interfaces
+   DAdapter request function.
+   This function does process only synchronous requests, and is used
+   for reception/registration of new interfaces
    -------------------------------------------------------------------------- */
-static void IDI_CALL_LINK_T diva_dadapter_request (\
-                      ENTITY IDI_CALL_ENTITY_T *e) {
IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e ;
- if (e->Req) { /* We do not process it, also return error */
-  e->Rc = OUT_OF_RESOURCES;
-  DBG_ERR (("Can't process async request, Req=%02x", e->Req))
-  return;
- }
- /*
-  So, we process sync request
-  */
- switch (e->Rc) {
-  case IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY: {
-   diva_didd_adapter_notify_t* pinfo = &syncReq->didd_notify.info;
-   pinfo->handle = diva_register_adapter_callback (\
-             (didd_adapter_change_callback_t)pinfo->callback,
-             (void IDI_CALL_ENTITY_T *)pinfo->context);
-   e->Rc = 0xff;
-  } break;
-  case IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY: {
-   diva_didd_adapter_notify_t* pinfo = &syncReq->didd_notify.info;
-   diva_remove_adapter_callback (pinfo->handle);
-   e->Rc = 0xff;
-  } break;
-  case IDI_SYNC_REQ_DIDD_ADD_ADAPTER: {
-   diva_didd_add_adapter_t* pinfo = &syncReq->didd_add_adapter.info;
-   if (diva_didd_add_descriptor ((DESCRIPTOR*)pinfo->descriptor) < 0) {
-    e->Rc = OUT_OF_RESOURCES;
-   } else {
-    e->Rc = 0xff;
-   }
-  } break;
-  case IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER: {
-   diva_didd_remove_adapter_t* pinfo = &syncReq->didd_remove_adapter.info;
-   if (diva_didd_remove_descriptor ((IDI_CALL)pinfo->p_request) < 0) {
-    e->Rc = OUT_OF_RESOURCES;
-   } else {
-    e->Rc = 0xff;
-   }
-  } break;
-  case IDI_SYNC_REQ_DIDD_READ_ADAPTER_ARRAY: {
-   diva_didd_read_adapter_array_t* pinfo =\
-                &syncReq->didd_read_adapter_array.info;
-   if (diva_didd_read_adapter_array ((DESCRIPTOR*)pinfo->buffer,
-                  (int)pinfo->length)) {
-    e->Rc = OUT_OF_RESOURCES;
-   } else {
-    e->Rc = 0xff;
-   }
-  } break;
-  default:
-   DBG_ERR (("Can't process sync request, Req=%02x", e->Rc))
-   e->Rc = OUT_OF_RESOURCES;
- }
+static void IDI_CALL_LINK_T diva_dadapter_request(     \
+       ENTITY IDI_CALL_ENTITY_T *e) {
      IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e;
      if (e->Req) { /* We do not process it, also return error */
+               e->Rc = OUT_OF_RESOURCES;
+               DBG_ERR(("Can't process async request, Req=%02x", e->Req))
+                       return;
      }
      /*
+         So, we process sync request
+       */
      switch (e->Rc) {
+       case IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY: {
+               diva_didd_adapter_notify_t *pinfo = &syncReq->didd_notify.info;
+               pinfo->handle = diva_register_adapter_callback(         \
+                       (didd_adapter_change_callback_t)pinfo->callback,
+                       (void IDI_CALL_ENTITY_T *)pinfo->context);
+               e->Rc = 0xff;
+       } break;
+       case IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY: {
+               diva_didd_adapter_notify_t *pinfo = &syncReq->didd_notify.info;
+               diva_remove_adapter_callback(pinfo->handle);
+               e->Rc = 0xff;
+       } break;
+       case IDI_SYNC_REQ_DIDD_ADD_ADAPTER: {
+               diva_didd_add_adapter_t *pinfo = &syncReq->didd_add_adapter.info;
+               if (diva_didd_add_descriptor((DESCRIPTOR *)pinfo->descriptor) < 0) {
+                       e->Rc = OUT_OF_RESOURCES;
+               } else {
+                       e->Rc = 0xff;
+               }
+       } break;
+       case IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER: {
+               diva_didd_remove_adapter_t *pinfo = &syncReq->didd_remove_adapter.info;
+               if (diva_didd_remove_descriptor((IDI_CALL)pinfo->p_request) < 0) {
+                       e->Rc = OUT_OF_RESOURCES;
+               } else {
+                       e->Rc = 0xff;
+               }
+       } break;
+       case IDI_SYNC_REQ_DIDD_READ_ADAPTER_ARRAY: {
+               diva_didd_read_adapter_array_t *pinfo =\
+                       &syncReq->didd_read_adapter_array.info;
+               if (diva_didd_read_adapter_array((DESCRIPTOR *)pinfo->buffer,
+                                                 (int)pinfo->length)) {
+                       e->Rc = OUT_OF_RESOURCES;
+               } else {
+                       e->Rc = 0xff;
+               }
+       } break;
+       default:
+               DBG_ERR(("Can't process sync request, Req=%02x", e->Rc))
+                       e->Rc = OUT_OF_RESOURCES;
      }
 }
 /* --------------------------------------------------------------------------
-  IDI client does register his notification function
-  -------------------------------------------------------------------------- */
-static dword diva_register_adapter_callback (\
-                   didd_adapter_change_callback_t callback,
-                   void IDI_CALL_ENTITY_T* context) {
- diva_os_spin_lock_magic_t irql;
- dword i;
- for (i = 0; i < DIVA_DIDD_MAX_NOTIFICATIONS; i++) {
-  diva_os_enter_spin_lock (&didd_spin, &irql, "didd_nfy_add");
-  if (!NotificationTable[i].callback) {
-   NotificationTable[i].callback = callback;
-   NotificationTable[i].context = context;
-   diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy_add");
-   DBG_TRC(("Register adapter notification[%d]=%08x", i+1, callback))
-   return (i+1);
-  }
-  diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy_add");
- }
DBG_ERR (("Can't register adapter notification, overflow"))
- return (0);
+   IDI client does register his notification function
+   -------------------------------------------------------------------------- */
+static dword diva_register_adapter_callback(           \
+       didd_adapter_change_callback_t callback,
+       void IDI_CALL_ENTITY_T *context) {
      diva_os_spin_lock_magic_t irql;
      dword i;
+
      for (i = 0; i < DIVA_DIDD_MAX_NOTIFICATIONS; i++) {
+               diva_os_enter_spin_lock(&didd_spin, &irql, "didd_nfy_add");
+               if (!NotificationTable[i].callback) {
+                       NotificationTable[i].callback = callback;
+                       NotificationTable[i].context = context;
+                       diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy_add");
+                       DBG_TRC(("Register adapter notification[%d]=%08x", i + 1, callback))
+                               return (i + 1);
+               }
+               diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy_add");
      }
      DBG_ERR(("Can't register adapter notification, overflow"))
              return (0);
 }
 /* --------------------------------------------------------------------------
-  IDI client does register his notification function
-  -------------------------------------------------------------------------- */
-static void diva_remove_adapter_callback (dword handle) {
- diva_os_spin_lock_magic_t irql;
- if (handle && ((--handle) < DIVA_DIDD_MAX_NOTIFICATIONS)) {
-  diva_os_enter_spin_lock (&didd_spin, &irql, "didd_nfy_rm");
-  NotificationTable[handle].callback = NULL;
-  NotificationTable[handle].context  = NULL;
-  diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy_rm");
-  DBG_TRC(("Remove adapter notification[%d]", (int)(handle+1)))
-  return;
- }
- DBG_ERR(("Can't remove adapter notification, handle=%d", handle))
-}
+   IDI client does register his notification function
+   -------------------------------------------------------------------------- */
+static void diva_remove_adapter_callback(dword handle) {
      diva_os_spin_lock_magic_t irql;
      if (handle && ((--handle) < DIVA_DIDD_MAX_NOTIFICATIONS)) {
+               diva_os_enter_spin_lock(&didd_spin, &irql, "didd_nfy_rm");
+               NotificationTable[handle].callback = NULL;
+               NotificationTable[handle].context  = NULL;
+               diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy_rm");
+               DBG_TRC(("Remove adapter notification[%d]", (int)(handle + 1)))
+                       return;
      }
      DBG_ERR(("Can't remove adapter notification, handle=%d", handle))
+               }
 /* --------------------------------------------------------------------------
-  Notify all client about adapter array change
-  Does suppose following behavior in the client side:
-  Step 1: Redister Notification
-  Step 2: Read Adapter Array
-  -------------------------------------------------------------------------- */
-static void diva_notify_adapter_change (DESCRIPTOR* d, int removal) {
- int i, do_notify;
- didd_adapter_change_notification_t nfy;
- diva_os_spin_lock_magic_t irql;
- for (i = 0; i < DIVA_DIDD_MAX_NOTIFICATIONS; i++) {
-  do_notify = 0;
-  diva_os_enter_spin_lock (&didd_spin, &irql, "didd_nfy");
-  if (NotificationTable[i].callback) {
-   memcpy (&nfy, &NotificationTable[i], sizeof(nfy));
-   do_notify = 1;
-  }
-  diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy");
-  if (do_notify) {
-   (*(nfy.callback))(nfy.context, d, removal);
-  }
- }
+   Notify all client about adapter array change
+   Does suppose following behavior in the client side:
+   Step 1: Redister Notification
+   Step 2: Read Adapter Array
+   -------------------------------------------------------------------------- */
+static void diva_notify_adapter_change(DESCRIPTOR *d, int removal) {
      int i, do_notify;
      didd_adapter_change_notification_t nfy;
      diva_os_spin_lock_magic_t irql;
      for (i = 0; i < DIVA_DIDD_MAX_NOTIFICATIONS; i++) {
+               do_notify = 0;
+               diva_os_enter_spin_lock(&didd_spin, &irql, "didd_nfy");
+               if (NotificationTable[i].callback) {
+                       memcpy(&nfy, &NotificationTable[i], sizeof(nfy));
+                       do_notify = 1;
+               }
+               diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy");
+               if (do_notify) {
+                       (*(nfy.callback))(nfy.context, d, removal);
+               }
      }
 }
 /* --------------------------------------------------------------------------
-  For all systems, that are linked by Kernel Mode Linker this is ONLY one
-  function thet should be exported by this device driver
-  IDI clients should look for IDI_DADAPTER, and use request function
-  of this adapter (sync request) in order to receive appropriate services:
-  - add new adapter
-  - remove existing adapter
-  - add adapter array notification
-  - remove adapter array notification
-  (read adapter is redundant in this case)
-  INPUT:
+   For all systems, that are linked by Kernel Mode Linker this is ONLY one
+   function thet should be exported by this device driver
+   IDI clients should look for IDI_DADAPTER, and use request function
+   of this adapter (sync request) in order to receive appropriate services:
+   - add new adapter
+   - remove existing adapter
+   - add adapter array notification
+   - remove adapter array notification
+   (read adapter is redundant in this case)
+   INPUT:
    buffer - pointer to buffer that will receive adapter array
    length  - length (in bytes) of space in buffer
-  OUTPUT:
+   OUTPUT:
    Adapter array will be written to memory described by 'buffer'
    If the last adapter seen in the returned adapter array is
    IDI_DADAPTER or if last adapter in array does have type '0', then
    it was enougth space in buffer to accommodate all available
    adapter descriptors
-  *NOTE 1 (debug interface):
+   *NOTE 1 (debug interface):
    The IDI adapter of type 'IDI_DIMAINT' does register as 'request'
    famous 'dprintf' function (of type DI_PRINTF, please look
    include/debuglib.c and include/debuglib.h) for details.
    So dprintf is not exported from module debug module directly,
    instead of this IDI_DIMAINT is registered.
    Module load order will receive in this case:
-    1. DIDD (this file)
-    2. DIMAINT does load and register 'IDI_DIMAINT', at this step
-      DIDD should be able to get 'dprintf', save it, and
-      register with DIDD by means of 'dprintf' function.
-    3. any other driver is loaded and is able to access adapter array
-      and debug interface
+   1. DIDD (this file)
+   2. DIMAINT does load and register 'IDI_DIMAINT', at this step
+   DIDD should be able to get 'dprintf', save it, and
+   register with DIDD by means of 'dprintf' function.
+   3. any other driver is loaded and is able to access adapter array
+   and debug interface
    This approach does allow to load/unload debug interface on demand,
    and save memory, it it is necessary.
-  -------------------------------------------------------------------------- */
-void IDI_CALL_LINK_T DIVA_DIDD_Read (void IDI_CALL_ENTITY_T * buffer,
-                   int length) {
diva_didd_read_adapter_array (buffer, length);
+   -------------------------------------------------------------------------- */
+void IDI_CALL_LINK_T DIVA_DIDD_Read(void IDI_CALL_ENTITY_T *buffer,
+                                   int length) {
      diva_didd_read_adapter_array(buffer, length);
 }
-
index 3575ac9..5540f46 100644 (file)
@@ -1,33 +1,33 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_DIDD_DADAPTER_INC__
 #define __DIVA_DIDD_DADAPTER_INC__
-void diva_didd_load_time_init (void);
-void diva_didd_load_time_finit (void);
+
+void diva_didd_load_time_init(void);
+void diva_didd_load_time_finit(void);
 
 #define NEW_MAX_DESCRIPTORS     64
 
index 7a9894c..b5226af 100644 (file)
@@ -9,67 +9,67 @@
 
 /*
   LOCALS
-  */
+*/
 #define DBG_MAGIC (0x47114711L)
 
-static void DI_register (void *arg);
-static void DI_deregister (pDbgHandle hDbg);
-static void DI_format (int do_lock, word id, int type, char *format, va_list argument_list);
-static void DI_format_locked   (word id, int type, char *format, va_list argument_list);
-static void DI_format_old (word id, char *format, va_list ap) { }
-static void DiProcessEventLog (unsigned short id, unsigned long msgID, va_list ap) { }
-static void single_p (byte * P, word * PLength, byte Id);
-static void diva_maint_xdi_cb (ENTITY* e);
-static word SuperTraceCreateReadReq (byte* P, const char* path);
-static int diva_mnt_cmp_nmbr (const char* nmbr);
-static void diva_free_dma_descriptor (IDI_CALL request, int nr);
-static int diva_get_dma_descriptor (IDI_CALL request, dword *dma_magic);
-void diva_mnt_internal_dprintf (dword drv_id, dword type, char* p, ...);
-
-static dword MaxDumpSize = 256 ;
-static dword MaxXlogSize = 2 + 128 ;
-static char  TraceFilter[DIVA_MAX_SELECTIVE_FILTER_LENGTH+1];
+static void DI_register(void *arg);
+static void DI_deregister(pDbgHandle hDbg);
+static void DI_format(int do_lock, word id, int type, char *format, va_list argument_list);
+static void DI_format_locked(word id, int type, char *format, va_list argument_list);
+static void DI_format_old(word id, char *format, va_list ap) { }
+static void DiProcessEventLog(unsigned short id, unsigned long msgID, va_list ap) { }
+static void single_p(byte *P, word *PLength, byte Id);
+static void diva_maint_xdi_cb(ENTITY *e);
+static word SuperTraceCreateReadReq(byte *P, const char *path);
+static int diva_mnt_cmp_nmbr(const char *nmbr);
+static void diva_free_dma_descriptor(IDI_CALL request, int nr);
+static int diva_get_dma_descriptor(IDI_CALL request, dword *dma_magic);
+void diva_mnt_internal_dprintf(dword drv_id, dword type, char *p, ...);
+
+static dword MaxDumpSize = 256;
+static dword MaxXlogSize = 2 + 128;
+static char  TraceFilter[DIVA_MAX_SELECTIVE_FILTER_LENGTH + 1];
 static int TraceFilterIdent   = -1;
 static int TraceFilterChannel = -1;
 
 typedef struct _diva_maint_client {
-  dword       sec;
-  dword       usec;
-  pDbgHandle  hDbg;
-  char        drvName[128];
-  dword       dbgMask;
-  dword       last_dbgMask;
-  IDI_CALL    request;
-  _DbgHandle_ Dbg;
-  int         logical;
-  int         channels;
-  diva_strace_library_interface_t* pIdiLib;
-  BUFFERS     XData;
-  char        xbuffer[2048+512];
-  byte*       pmem;
-  int         request_pending;
-  int         dma_handle;
+       dword       sec;
+       dword       usec;
+       pDbgHandle  hDbg;
+       char        drvName[128];
+       dword       dbgMask;
+       dword       last_dbgMask;
+       IDI_CALL    request;
+       _DbgHandle_ Dbg;
+       int         logical;
+       int         channels;
+       diva_strace_library_interface_t *pIdiLib;
+       BUFFERS     XData;
+       char        xbuffer[2048 + 512];
+       byte        *pmem;
+       int         request_pending;
+       int         dma_handle;
 } diva_maint_client_t;
 static diva_maint_client_t clients[MAX_DESCRIPTORS];
 
-static void diva_change_management_debug_mask (diva_maint_client_t* pC, dword old_mask);
+static void diva_change_management_debug_mask(diva_maint_client_t *pC, dword old_mask);
 
-static void diva_maint_error (void* user_context,
-                              diva_strace_library_interface_t* hLib,
-                              int Adapter,
-                              int error,
-                              const char* file,
-                              int line);
-static void diva_maint_state_change_notify (void* user_context,
-                                            diva_strace_library_interface_t* hLib,
-                                            int Adapter,
-                                            diva_trace_line_state_t* channel,
-                                            int notify_subject);
-static void diva_maint_trace_notify (void* user_context,
-                                     diva_strace_library_interface_t* hLib,
-                                     int Adapter,
-                                     void* xlog_buffer,
-                                     int length);
+static void diva_maint_error(void *user_context,
+                            diva_strace_library_interface_t *hLib,
+                            int Adapter,
+                            int error,
+                            const char *file,
+                            int line);
+static void diva_maint_state_change_notify(void *user_context,
+                                          diva_strace_library_interface_t *hLib,
+                                          int Adapter,
+                                          diva_trace_line_state_t *channel,
+                                          int notify_subject);
+static void diva_maint_trace_notify(void *user_context,
+                                   diva_strace_library_interface_t *hLib,
+                                   int Adapter,
+                                   void *xlog_buffer,
+                                   int length);
 
 
 
@@ -79,36 +79,36 @@ typedef struct MSG_QUEUE {
        byte    *High;          /* Base + Size (constant)               */
        byte    *Head;          /* first message in queue (if any)      */
        byte    *Tail;          /* first free position                  */
-       byte    *Wrap;          /* current wraparound position          */
+       byte    *Wrap;          /* current wraparound position          */
        dword   Count;          /* current no of bytes in queue         */
 } MSG_QUEUE;
 
 typedef struct MSG_HEAD {
        volatile dword  Size;           /* size of data following MSG_HEAD      */
-#define        MSG_INCOMPLETE  0x8000  /* ored to Size until queueCompleteMsg  */
+#define        MSG_INCOMPLETE  0x8000  /* ored to Size until queueCompleteMsg  */
 } MSG_HEAD;
 
-#define queueCompleteMsg(p) do{ ((MSG_HEAD *)p - 1)->Size &= ~MSG_INCOMPLETE; }while(0)
+#define queueCompleteMsg(p) do { ((MSG_HEAD *)p - 1)->Size &= ~MSG_INCOMPLETE; } while (0)
 #define queueCount(q)  ((q)->Count)
-#define MSG_NEED(size) \
-       ( (sizeof(MSG_HEAD) + size + sizeof(dword) - 1) & ~(sizeof(dword) - 1) )
+#define MSG_NEED(size)                                                 \
+       ((sizeof(MSG_HEAD) + size + sizeof(dword) - 1) & ~(sizeof(dword) - 1))
 
-static void queueInit (MSG_QUEUE *Q, byte *Buffer, dword sizeBuffer) {
+static void queueInit(MSG_QUEUE *Q, byte *Buffer, dword sizeBuffer) {
        Q->Size = sizeBuffer;
        Q->Base = Q->Head = Q->Tail = Buffer;
        Q->High = Buffer + sizeBuffer;
        Q->Wrap = NULL;
-       Q->Count= 0;
+       Q->Count = 0;
 }
 
-static byte *queueAllocMsg (MSG_QUEUE *Q, word size) {
+static byte *queueAllocMsg(MSG_QUEUE *Q, word size) {
        /* Allocate 'size' bytes at tail of queue which will be filled later
-   * directly with callers own message header info and/or message.
-   * An 'alloced' message is marked incomplete by oring the 'Size' field
-   * with MSG_INCOMPLETE.
-   * This must be reset via queueCompleteMsg() after the message is filled.
-   * As long as a message is marked incomplete queuePeekMsg() will return
-   * a 'queue empty' condition when it reaches such a message.  */
+        * directly with callers own message header info and/or message.
+        * An 'alloced' message is marked incomplete by oring the 'Size' field
+        * with MSG_INCOMPLETE.
+        * This must be reset via queueCompleteMsg() after the message is filled.
+        * As long as a message is marked incomplete queuePeekMsg() will return
+        * a 'queue empty' condition when it reaches such a message.  */
 
        MSG_HEAD *Msg;
        word need = MSG_NEED(size);
@@ -119,7 +119,7 @@ static byte *queueAllocMsg (MSG_QUEUE *Q, word size) {
                }
                goto alloc; /* empty */
        }
-       
+
        if (Q->Tail > Q->Head) {
                if (Q->Tail + need <= Q->High) goto alloc; /* append */
                if (Q->Base + need > Q->Head) {
@@ -145,10 +145,10 @@ alloc:
 
 
 
-       return ((byte*)(Msg + 1));
+       return ((byte *)(Msg + 1));
 }
 
-static void queueFreeMsg (MSG_QUEUE *Q) {
+static void queueFreeMsg(MSG_QUEUE *Q) {
 /* Free the message at head of queue */
 
        word size = ((MSG_HEAD *)Q->Head)->Size & ~MSG_INCOMPLETE;
@@ -166,10 +166,10 @@ static void queueFreeMsg (MSG_QUEUE *Q) {
        }
 }
 
-static byte *queuePeekMsg (MSG_QUEUE *Q, word *size) {
+static byte *queuePeekMsg(MSG_QUEUE *Q, word *size) {
        /* Show the first valid message in queue BUT DON'T free the message.
-   * After looking on the message contents it can be freed queueFreeMsg()
-   * or simply remain in message queue.  */
+        * After looking on the message contents it can be freed queueFreeMsg()
+        * or simply remain in message queue.  */
 
        MSG_HEAD *Msg = (MSG_HEAD *)Q->Head;
 
@@ -184,9 +184,9 @@ static byte *queuePeekMsg (MSG_QUEUE *Q, word *size) {
 
 /*
   Message queue header
-  */
-static MSG_QUEUE*          dbg_queue;
-static byte*               dbg_base;
+*/
+static MSG_QUEUE *dbg_queue;
+static byte *dbg_base;
 static int                 external_dbg_queue;
 static diva_os_spin_lock_t dbg_q_lock;
 static diva_os_spin_lock_t dbg_adapter_lock;
@@ -196,1147 +196,1147 @@ static dword               start_sec;
 static dword               start_usec;
 
 /*
-       INTERFACE:
-    Initialize run time queue structures.
-    base:    base of the message queue
-    length:  length of the message queue
-    do_init: perfor queue reset
-
-    return:  zero on success, -1 on error
-  */
-int diva_maint_init (byte* base, unsigned long length, int do_init) {
-  if (dbg_queue || (!base) || (length < (4096*4))) {
-    return (-1);
-  }
+  INTERFACE:
+  Initialize run time queue structures.
+  base:    base of the message queue
+  length:  length of the message queue
+  do_init: perfor queue reset
+
+  return:  zero on success, -1 on error
+*/
+int diva_maint_init(byte *base, unsigned long length, int do_init) {
+       if (dbg_queue || (!base) || (length < (4096 * 4))) {
+               return (-1);
+       }
 
-  TraceFilter[0]     =  0;
-  TraceFilterIdent   = -1;
-  TraceFilterChannel = -1;
+       TraceFilter[0]     =  0;
+       TraceFilterIdent   = -1;
+       TraceFilterChannel = -1;
 
-  dbg_base = base;
+       dbg_base = base;
 
-  diva_os_get_time (&start_sec, &start_usec);
+       diva_os_get_time(&start_sec, &start_usec);
 
-  *(dword*)base  = (dword)DBG_MAGIC; /* Store Magic */
-  base   += sizeof(dword);
-  length -= sizeof(dword);
+       *(dword *)base  = (dword)DBG_MAGIC; /* Store Magic */
+       base   += sizeof(dword);
+       length -= sizeof(dword);
 
-  *(dword*)base = 2048; /* Extension Field Length */
-  base   += sizeof(dword);
-  length -= sizeof(dword);
+       *(dword *)base = 2048; /* Extension Field Length */
+       base   += sizeof(dword);
+       length -= sizeof(dword);
 
-  strcpy (base, "KERNEL MODE BUFFER\n");
-  base   += 2048;
-  length -= 2048;
+       strcpy(base, "KERNEL MODE BUFFER\n");
+       base   += 2048;
+       length -= 2048;
 
-  *(dword*)base = 0; /* Terminate extension */
-  base   += sizeof(dword);
-  length -= sizeof(dword);
+       *(dword *)base = 0; /* Terminate extension */
+       base   += sizeof(dword);
+       length -= sizeof(dword);
 
-  *(void**)base  =  (void*)(base+sizeof(void*)); /* Store Base  */
-  base   += sizeof(void*);
-  length -= sizeof(void*);
+       *(void **)base  =  (void *)(base + sizeof(void *)); /* Store Base  */
+       base   += sizeof(void *);
+       length -= sizeof(void *);
 
-  dbg_queue = (MSG_QUEUE*)base;
-  queueInit (dbg_queue, base + sizeof(MSG_QUEUE), length - sizeof(MSG_QUEUE) - 512);
-  external_dbg_queue = 0;
+       dbg_queue = (MSG_QUEUE *)base;
+       queueInit(dbg_queue, base + sizeof(MSG_QUEUE), length - sizeof(MSG_QUEUE) - 512);
+       external_dbg_queue = 0;
 
-  if (!do_init) {
-    external_dbg_queue = 1; /* memory was located on the external device */
-  }
+       if (!do_init) {
+               external_dbg_queue = 1; /* memory was located on the external device */
+       }
 
 
-       if (diva_os_initialize_spin_lock (&dbg_q_lock, "dbg_init")) {
-    dbg_queue = NULL;
-    dbg_base = NULL;
-    external_dbg_queue = 0;
+       if (diva_os_initialize_spin_lock(&dbg_q_lock, "dbg_init")) {
+               dbg_queue = NULL;
+               dbg_base = NULL;
+               external_dbg_queue = 0;
                return (-1);
-  }
+       }
 
-       if (diva_os_initialize_spin_lock (&dbg_adapter_lock, "dbg_init")) {
-    diva_os_destroy_spin_lock(&dbg_q_lock, "dbg_init");
-    dbg_queue = NULL;
-    dbg_base = NULL;
-    external_dbg_queue = 0;
+       if (diva_os_initialize_spin_lock(&dbg_adapter_lock, "dbg_init")) {
+               diva_os_destroy_spin_lock(&dbg_q_lock, "dbg_init");
+               dbg_queue = NULL;
+               dbg_base = NULL;
+               external_dbg_queue = 0;
                return (-1);
-  }
+       }
 
-  return (0);
+       return (0);
 }
 
 /*
   INTERFACE:
-    Finit at unload time
-    return address of internal queue or zero if queue
-    was external
-  */
-void* diva_maint_finit (void) {
-  void* ret = (void*)dbg_base;
-  int i;
-
-  dbg_queue = NULL;
-  dbg_base  = NULL;
-
-  if (ret) {
-    diva_os_destroy_spin_lock(&dbg_q_lock, "dbg_finit");
-    diva_os_destroy_spin_lock(&dbg_adapter_lock, "dbg_finit");
-  }
-
-  if (external_dbg_queue) {
-    ret = NULL;
-  }
-  external_dbg_queue = 0;
-
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    if (clients[i].pmem) {
-      diva_os_free (0, clients[i].pmem);
-    }
-  }
-
-  return (ret);
+  Finit at unload time
+  return address of internal queue or zero if queue
+  was external
+*/
+void *diva_maint_finit(void) {
+       void *ret = (void *)dbg_base;
+       int i;
+
+       dbg_queue = NULL;
+       dbg_base  = NULL;
+
+       if (ret) {
+               diva_os_destroy_spin_lock(&dbg_q_lock, "dbg_finit");
+               diva_os_destroy_spin_lock(&dbg_adapter_lock, "dbg_finit");
+       }
+
+       if (external_dbg_queue) {
+               ret = NULL;
+       }
+       external_dbg_queue = 0;
+
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               if (clients[i].pmem) {
+                       diva_os_free(0, clients[i].pmem);
+               }
+       }
+
+       return (ret);
 }
 
 /*
   INTERFACE:
-    Return amount of messages in debug queue
-  */
-dword diva_dbg_q_length (void) {
+  Return amount of messages in debug queue
+*/
+dword diva_dbg_q_length(void) {
        return (dbg_queue ? queueCount(dbg_queue)       : 0);
 }
 
 /*
   INTERFACE:
-    Lock message queue and return the pointer to the first
-    entry.
-  */
-diva_dbg_entry_head_t* diva_maint_get_message (word* size,
-                                               diva_os_spin_lock_magic_t* old_irql) {
-  diva_dbg_entry_head_t*     pmsg = NULL;
-
-  diva_os_enter_spin_lock (&dbg_q_lock, old_irql, "read");
-  if (dbg_q_busy) {
-    diva_os_leave_spin_lock (&dbg_q_lock, old_irql, "read_busy");
-    return NULL;
-  }
-  dbg_q_busy = 1;
-
-  if (!(pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, size))) {
-    dbg_q_busy = 0;
-    diva_os_leave_spin_lock (&dbg_q_lock, old_irql, "read_empty");
-  }
-
-  return (pmsg);
+  Lock message queue and return the pointer to the first
+  entry.
+*/
+diva_dbg_entry_head_t *diva_maint_get_message(word *size,
+                                             diva_os_spin_lock_magic_t *old_irql) {
+       diva_dbg_entry_head_t *pmsg = NULL;
+
+       diva_os_enter_spin_lock(&dbg_q_lock, old_irql, "read");
+       if (dbg_q_busy) {
+               diva_os_leave_spin_lock(&dbg_q_lock, old_irql, "read_busy");
+               return NULL;
+       }
+       dbg_q_busy = 1;
+
+       if (!(pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, size))) {
+               dbg_q_busy = 0;
+               diva_os_leave_spin_lock(&dbg_q_lock, old_irql, "read_empty");
+       }
+
+       return (pmsg);
 }
 
 /*
   INTERFACE:
-    acknowledge last message and unlock queue
-  */
-void diva_maint_ack_message (int do_release,
-                             diva_os_spin_lock_magic_t* old_irql) {
+  acknowledge last message and unlock queue
+*/
+void diva_maint_ack_message(int do_release,
+                           diva_os_spin_lock_magic_t *old_irql) {
        if (!dbg_q_busy) {
                return;
        }
        if (do_release) {
-               queueFreeMsg (dbg_queue);
+               queueFreeMsg(dbg_queue);
        }
        dbg_q_busy = 0;
-  diva_os_leave_spin_lock (&dbg_q_lock, old_irql, "read_ack");
+       diva_os_leave_spin_lock(&dbg_q_lock, old_irql, "read_ack");
 }
 
 
 /*
   INTERFACE:
-    PRT COMP function used to register
-    with MAINT adapter or log in compatibility
-    mode in case older driver version is connected too
-  */
-void diva_maint_prtComp (char *format, ...) {
-  void    *hDbg;
-  va_list ap;
-
-  if (!format)
-    return;
-
-  va_start(ap, format);
-
-  /*
-    register to new log driver functions
-   */
-  if ((format[0] == 0) && ((unsigned char)format[1] == 255)) {
-    hDbg = va_arg(ap, void *); /* ptr to DbgHandle */
-    DI_register (hDbg);
-  }
-
-  va_end (ap);
+  PRT COMP function used to register
+  with MAINT adapter or log in compatibility
+  mode in case older driver version is connected too
+*/
+void diva_maint_prtComp(char *format, ...) {
+       void    *hDbg;
+       va_list ap;
+
+       if (!format)
+               return;
+
+       va_start(ap, format);
+
+       /*
+         register to new log driver functions
+       */
+       if ((format[0] == 0) && ((unsigned char)format[1] == 255)) {
+               hDbg = va_arg(ap, void *); /* ptr to DbgHandle */
+               DI_register(hDbg);
+       }
+
+       va_end(ap);
 }
 
-static void DI_register (void *arg) {
-  diva_os_spin_lock_magic_t old_irql;
-  dword sec, usec;
-  pDbgHandle   hDbg ;
-  int id, free_id = -1, best_id = 0;
-  
-  diva_os_get_time (&sec, &usec);
-
-       hDbg = (pDbgHandle)arg ;
-  /*
-    Check for bad args, specially for the old obsolete debug handle
-    */
-  if ((hDbg == NULL) ||
-      ((hDbg->id == 0) && (((_OldDbgHandle_ *)hDbg)->id == -1)) ||
-      (hDbg->Registered != 0)) {
-               return ;
-  }
-
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "register");
-
-  for (id = 1; id < ARRAY_SIZE(clients); id++) {
-    if (clients[id].hDbg == hDbg) {
-      /*
-        driver already registered
-        */
-      diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "register");
-      return;
-    }
-    if (clients[id].hDbg) { /* slot is busy */
-      continue;
-    }
-    free_id = id;
-    if (!strcmp (clients[id].drvName, hDbg->drvName)) {
-      /*
-        This driver was already registered with this name
-        and slot is still free - reuse it
-        */
-      best_id = 1;
-      break;
-    }
-    if (!clients[id].hDbg) { /* slot is busy */
-      break;
-    }
-  }
-
-  if (free_id != -1) {
-    diva_dbg_entry_head_t* pmsg = NULL;
-    int len;
-    char tmp[256];
-    word size;
-
-    /*
-      Register new driver with id == free_id
-      */
-    clients[free_id].hDbg = hDbg;
-    clients[free_id].sec  = sec;
-    clients[free_id].usec = usec;
-    strcpy (clients[free_id].drvName, hDbg->drvName);
-
-    clients[free_id].dbgMask = hDbg->dbgMask;
-    if (best_id) {
-      hDbg->dbgMask |= clients[free_id].last_dbgMask;
-    } else {
-      clients[free_id].last_dbgMask = 0;
-    }
-
-    hDbg->Registered = DBG_HANDLE_REG_NEW ;
-    hDbg->id         = (byte)free_id;
-    hDbg->dbg_end    = DI_deregister;
-    hDbg->dbg_prt    = DI_format_locked;
-    hDbg->dbg_ev     = DiProcessEventLog;
-    hDbg->dbg_irq    = DI_format_locked;
-    if (hDbg->Version > 0) {
-      hDbg->dbg_old  = DI_format_old;
-    }
-    hDbg->next       = (pDbgHandle)DBG_MAGIC;
-
-    /*
-      Log driver register, MAINT driver ID is '0'
-      */
-    len = sprintf (tmp, "DIMAINT - drv # %d = '%s' registered",
-                   free_id, hDbg->drvName);
-
-    while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                        (word)(len+1+sizeof(*pmsg))))) {
-      if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-        queueFreeMsg (dbg_queue);
-      } else {
-        break;
-      }
-    }
-
-    if (pmsg) {
-      pmsg->sequence    = dbg_sequence++;
-      pmsg->time_sec    = sec;
-      pmsg->time_usec   = usec;
-      pmsg->facility    = MSG_TYPE_STRING;
-      pmsg->dli         = DLI_REG;
-      pmsg->drv_id      = 0; /* id 0 - DIMAINT */
-      pmsg->di_cpu      = 0;
-      pmsg->data_length = len+1;
-
-      memcpy (&pmsg[1], tmp, len+1);
-                 queueCompleteMsg (pmsg);
-      diva_maint_wakeup_read();
-    }
-  }
-
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "register");
+static void DI_register(void *arg) {
+       diva_os_spin_lock_magic_t old_irql;
+       dword sec, usec;
+       pDbgHandle      hDbg;
+       int id, free_id = -1, best_id = 0;
+
+       diva_os_get_time(&sec, &usec);
+
+       hDbg = (pDbgHandle)arg;
+       /*
+         Check for bad args, specially for the old obsolete debug handle
+       */
+       if ((hDbg == NULL) ||
+           ((hDbg->id == 0) && (((_OldDbgHandle_ *)hDbg)->id == -1)) ||
+           (hDbg->Registered != 0)) {
+               return;
+       }
+
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "register");
+
+       for (id = 1; id < ARRAY_SIZE(clients); id++) {
+               if (clients[id].hDbg == hDbg) {
+                       /*
+                         driver already registered
+                       */
+                       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "register");
+                       return;
+               }
+               if (clients[id].hDbg) { /* slot is busy */
+                       continue;
+               }
+               free_id = id;
+               if (!strcmp(clients[id].drvName, hDbg->drvName)) {
+                       /*
+                         This driver was already registered with this name
+                         and slot is still free - reuse it
+                       */
+                       best_id = 1;
+                       break;
+               }
+               if (!clients[id].hDbg) { /* slot is busy */
+                       break;
+               }
+       }
+
+       if (free_id != -1) {
+               diva_dbg_entry_head_t *pmsg = NULL;
+               int len;
+               char tmp[256];
+               word size;
+
+               /*
+                 Register new driver with id == free_id
+               */
+               clients[free_id].hDbg = hDbg;
+               clients[free_id].sec  = sec;
+               clients[free_id].usec = usec;
+               strcpy(clients[free_id].drvName, hDbg->drvName);
+
+               clients[free_id].dbgMask = hDbg->dbgMask;
+               if (best_id) {
+                       hDbg->dbgMask |= clients[free_id].last_dbgMask;
+               } else {
+                       clients[free_id].last_dbgMask = 0;
+               }
+
+               hDbg->Registered = DBG_HANDLE_REG_NEW;
+               hDbg->id         = (byte)free_id;
+               hDbg->dbg_end    = DI_deregister;
+               hDbg->dbg_prt    = DI_format_locked;
+               hDbg->dbg_ev     = DiProcessEventLog;
+               hDbg->dbg_irq    = DI_format_locked;
+               if (hDbg->Version > 0) {
+                       hDbg->dbg_old  = DI_format_old;
+               }
+               hDbg->next       = (pDbgHandle)DBG_MAGIC;
+
+               /*
+                 Log driver register, MAINT driver ID is '0'
+               */
+               len = sprintf(tmp, "DIMAINT - drv # %d = '%s' registered",
+                             free_id, hDbg->drvName);
+
+               while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                                      (word)(len + 1 + sizeof(*pmsg))))) {
+                       if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                               queueFreeMsg(dbg_queue);
+                       } else {
+                               break;
+                       }
+               }
+
+               if (pmsg) {
+                       pmsg->sequence    = dbg_sequence++;
+                       pmsg->time_sec    = sec;
+                       pmsg->time_usec   = usec;
+                       pmsg->facility    = MSG_TYPE_STRING;
+                       pmsg->dli         = DLI_REG;
+                       pmsg->drv_id      = 0; /* id 0 - DIMAINT */
+                       pmsg->di_cpu      = 0;
+                       pmsg->data_length = len + 1;
+
+                       memcpy(&pmsg[1], tmp, len + 1);
+                       queueCompleteMsg(pmsg);
+                       diva_maint_wakeup_read();
+               }
+       }
+
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "register");
 }
 
-static void DI_deregister (pDbgHandle hDbg) {
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
-  dword sec, usec;
-  int i;
-  word size;
-  byte* pmem = NULL;
-
-  diva_os_get_time (&sec, &usec);
-
-  diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "read");
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "read");
-
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    if (clients[i].hDbg == hDbg) {
-      diva_dbg_entry_head_t* pmsg;
-      char tmp[256];
-      int len;
-
-      clients[i].hDbg = NULL;
-
-      hDbg->id       = -1;
-      hDbg->dbgMask  = 0;
-      hDbg->dbg_end  = NULL;
-      hDbg->dbg_prt  = NULL;
-      hDbg->dbg_irq  = NULL;
-      if (hDbg->Version > 0)
-        hDbg->dbg_old = NULL;
-      hDbg->Registered = 0;
-      hDbg->next     = NULL;
-
-      if (clients[i].pIdiLib) {
-        (*(clients[i].pIdiLib->DivaSTraceLibraryFinit))(clients[i].pIdiLib->hLib);
-        clients[i].pIdiLib = NULL;
-
-        pmem = clients[i].pmem;
-        clients[i].pmem = NULL;
-      }
-
-      /*
-        Log driver register, MAINT driver ID is '0'
-        */
-      len = sprintf (tmp, "DIMAINT - drv # %d = '%s' de-registered",
-                     i, hDbg->drvName);
-
-      while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                        (word)(len+1+sizeof(*pmsg))))) {
-        if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-          queueFreeMsg (dbg_queue);
-        } else {
-          break;
-        }
-      }
-
-      if (pmsg) {
-        pmsg->sequence    = dbg_sequence++;
-        pmsg->time_sec    = sec;
-        pmsg->time_usec   = usec;
-        pmsg->facility    = MSG_TYPE_STRING;
-        pmsg->dli         = DLI_REG;
-        pmsg->drv_id      = 0; /* id 0 - DIMAINT */
-        pmsg->di_cpu      = 0;
-        pmsg->data_length = len+1;
-
-        memcpy (&pmsg[1], tmp, len+1);
-                 queueCompleteMsg (pmsg);
-        diva_maint_wakeup_read();
-      }
-
-      break;
-    }
-  }
-
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "read_ack");
-  diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "read_ack");
-
-  if (pmem) {
-    diva_os_free (0, pmem);
-  }
+static void DI_deregister(pDbgHandle hDbg) {
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
+       dword sec, usec;
+       int i;
+       word size;
+       byte *pmem = NULL;
+
+       diva_os_get_time(&sec, &usec);
+
+       diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "read");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "read");
+
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               if (clients[i].hDbg == hDbg) {
+                       diva_dbg_entry_head_t *pmsg;
+                       char tmp[256];
+                       int len;
+
+                       clients[i].hDbg = NULL;
+
+                       hDbg->id       = -1;
+                       hDbg->dbgMask  = 0;
+                       hDbg->dbg_end  = NULL;
+                       hDbg->dbg_prt  = NULL;
+                       hDbg->dbg_irq  = NULL;
+                       if (hDbg->Version > 0)
+                               hDbg->dbg_old = NULL;
+                       hDbg->Registered = 0;
+                       hDbg->next     = NULL;
+
+                       if (clients[i].pIdiLib) {
+                               (*(clients[i].pIdiLib->DivaSTraceLibraryFinit))(clients[i].pIdiLib->hLib);
+                               clients[i].pIdiLib = NULL;
+
+                               pmem = clients[i].pmem;
+                               clients[i].pmem = NULL;
+                       }
+
+                       /*
+                         Log driver register, MAINT driver ID is '0'
+                       */
+                       len = sprintf(tmp, "DIMAINT - drv # %d = '%s' de-registered",
+                                     i, hDbg->drvName);
+
+                       while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                                             (word)(len + 1 + sizeof(*pmsg))))) {
+                               if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                                       queueFreeMsg(dbg_queue);
+                               } else {
+                                       break;
+                               }
+                       }
+
+                       if (pmsg) {
+                               pmsg->sequence    = dbg_sequence++;
+                               pmsg->time_sec    = sec;
+                               pmsg->time_usec   = usec;
+                               pmsg->facility    = MSG_TYPE_STRING;
+                               pmsg->dli         = DLI_REG;
+                               pmsg->drv_id      = 0; /* id 0 - DIMAINT */
+                               pmsg->di_cpu      = 0;
+                               pmsg->data_length = len + 1;
+
+                               memcpy(&pmsg[1], tmp, len + 1);
+                               queueCompleteMsg(pmsg);
+                               diva_maint_wakeup_read();
+                       }
+
+                       break;
+               }
+       }
+
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "read_ack");
+       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "read_ack");
+
+       if (pmem) {
+               diva_os_free(0, pmem);
+       }
 }
 
-static void DI_format_locked (unsigned short id,
-                       int type,
-                       char *format,
-                       va_list argument_list) {
-  DI_format (1, id, type, format, argument_list);
+static void DI_format_locked(unsigned short id,
+                            int type,
+                            char *format,
+                            va_list argument_list) {
+       DI_format(1, id, type, format, argument_list);
 }
 
-static void DI_format (int do_lock,
-                       unsigned short id,
-                       int type,
-                       char *format,
-                       va_list ap) {
-  diva_os_spin_lock_magic_t old_irql;
-  dword sec, usec;
-  diva_dbg_entry_head_t* pmsg = NULL;
-  dword length;
-  word size;
-  static char fmtBuf[MSG_FRAME_MAX_SIZE+sizeof(*pmsg)+1];
-  char          *data;
-  unsigned short code;
-
-  if (diva_os_in_irq()) {
-    dbg_sequence++;
-    return;
-  }
+static void DI_format(int do_lock,
+                     unsigned short id,
+                     int type,
+                     char *format,
+                     va_list ap) {
+       diva_os_spin_lock_magic_t old_irql;
+       dword sec, usec;
+       diva_dbg_entry_head_t *pmsg = NULL;
+       dword length;
+       word size;
+       static char fmtBuf[MSG_FRAME_MAX_SIZE + sizeof(*pmsg) + 1];
+       char          *data;
+       unsigned short code;
+
+       if (diva_os_in_irq()) {
+               dbg_sequence++;
+               return;
+       }
 
        if ((!format) ||
-                       ((TraceFilter[0] != 0) && ((TraceFilterIdent < 0) || (TraceFilterChannel < 0)))) {
+           ((TraceFilter[0] != 0) && ((TraceFilterIdent < 0) || (TraceFilterChannel < 0)))) {
                return;
        }
 
 
-  
-  diva_os_get_time (&sec, &usec);
-
-  if (do_lock) {
-    diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "format");
-  }
-
-  switch (type) {
-  case DLI_MXLOG :
-  case DLI_BLK :
-  case DLI_SEND:
-  case DLI_RECV:
-    if (!(length = va_arg(ap, unsigned long))) {
-      break;
-    }
-    if (length > MaxDumpSize) {
-      length = MaxDumpSize;
-    }
-    while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                (word)length+sizeof(*pmsg)))) {
-      if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-        queueFreeMsg (dbg_queue);
-      } else {
-        break;
-      }
-    }
-    if (pmsg) {
-      memcpy (&pmsg[1], format, length);
-      pmsg->sequence    = dbg_sequence++;
-      pmsg->time_sec    = sec;
-      pmsg->time_usec   = usec;
-      pmsg->facility    = MSG_TYPE_BINARY ;
-      pmsg->dli         = type; /* DLI_XXX */
-      pmsg->drv_id      = id;   /* driver MAINT id */
-      pmsg->di_cpu      = 0;
-      pmsg->data_length = length;
-      queueCompleteMsg (pmsg);
-    }
+
+       diva_os_get_time(&sec, &usec);
+
+       if (do_lock) {
+               diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "format");
+       }
+
+       switch (type) {
+       case DLI_MXLOG:
+       case DLI_BLK:
+       case DLI_SEND:
+       case DLI_RECV:
+               if (!(length = va_arg(ap, unsigned long))) {
+                       break;
+               }
+               if (length > MaxDumpSize) {
+                       length = MaxDumpSize;
+               }
+               while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                                      (word)length + sizeof(*pmsg)))) {
+                       if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                               queueFreeMsg(dbg_queue);
+                       } else {
+                               break;
+                       }
+               }
+               if (pmsg) {
+                       memcpy(&pmsg[1], format, length);
+                       pmsg->sequence    = dbg_sequence++;
+                       pmsg->time_sec    = sec;
+                       pmsg->time_usec   = usec;
+                       pmsg->facility    = MSG_TYPE_BINARY;
+                       pmsg->dli         = type; /* DLI_XXX */
+                       pmsg->drv_id      = id;   /* driver MAINT id */
+                       pmsg->di_cpu      = 0;
+                       pmsg->data_length = length;
+                       queueCompleteMsg(pmsg);
+               }
                break;
 
-  case DLI_XLOG: {
-    byte* p;
-    data    = va_arg(ap, char*);
-    code    = (unsigned short)va_arg(ap, unsigned int);
-    length     = (unsigned long) va_arg(ap, unsigned int);
-
-    if (length > MaxXlogSize)
-      length = MaxXlogSize;
-
-    while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                  (word)length+sizeof(*pmsg)+2))) {
-      if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-        queueFreeMsg (dbg_queue);
-      } else {
-        break;
-      }
-    }
-    if (pmsg) {
-      p = (byte*)&pmsg[1];
-      p[0] = (char)(code) ;
-      p[1] = (char)(code >> 8) ;
-      if (data && length) {
-        memcpy (&p[2], &data[0], length) ;
-      }
-      length += 2 ;
-
-      pmsg->sequence    = dbg_sequence++;
-      pmsg->time_sec    = sec;
-      pmsg->time_usec   = usec;
-      pmsg->facility    = MSG_TYPE_BINARY ;
-      pmsg->dli         = type; /* DLI_XXX */
-      pmsg->drv_id      = id;   /* driver MAINT id */
-      pmsg->di_cpu      = 0;
-      pmsg->data_length = length;
-      queueCompleteMsg (pmsg);
-    }
-  } break;
-
-  case DLI_LOG :
-  case DLI_FTL :
-  case DLI_ERR :
-  case DLI_TRC :
-  case DLI_REG :
-  case DLI_MEM :
-  case DLI_SPL :
-  case DLI_IRP :
-  case DLI_TIM :
-  case DLI_TAPI:
-  case DLI_NDIS:
-  case DLI_CONN:
-  case DLI_STAT:
-  case DLI_PRV0:
-  case DLI_PRV1:
-  case DLI_PRV2:
-  case DLI_PRV3:
-    if ((length = (unsigned long)vsprintf (&fmtBuf[0], format, ap)) > 0) {
-      length += (sizeof(*pmsg)+1);
-
-      while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                                          (word)length))) {
-        if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-          queueFreeMsg (dbg_queue);
-        } else {
-          break;
-        }
-      }
-
-      pmsg->sequence    = dbg_sequence++;
-      pmsg->time_sec    = sec;
-      pmsg->time_usec   = usec;
-      pmsg->facility    = MSG_TYPE_STRING;
-      pmsg->dli         = type; /* DLI_XXX */
-      pmsg->drv_id      = id;   /* driver MAINT id */
-      pmsg->di_cpu      = 0;
-      pmsg->data_length = length - sizeof(*pmsg);
-
-      memcpy (&pmsg[1], fmtBuf, pmsg->data_length);
-                 queueCompleteMsg (pmsg);
-    }
-    break;
-
-  } /* switch type */
-
-
-  if (queueCount(dbg_queue)) {
-    diva_maint_wakeup_read();
-  }
-
-  if (do_lock) {
-    diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "format");
-  }
+       case DLI_XLOG: {
+               byte *p;
+               data    = va_arg(ap, char *);
+               code    = (unsigned short)va_arg(ap, unsigned int);
+               length  = (unsigned long)va_arg(ap, unsigned int);
+
+               if (length > MaxXlogSize)
+                       length = MaxXlogSize;
+
+               while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                                     (word)length + sizeof(*pmsg) + 2))) {
+                       if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                               queueFreeMsg(dbg_queue);
+                       } else {
+                               break;
+                       }
+               }
+               if (pmsg) {
+                       p = (byte *)&pmsg[1];
+                       p[0] = (char)(code);
+                       p[1] = (char)(code >> 8);
+                       if (data && length) {
+                               memcpy(&p[2], &data[0], length);
+                       }
+                       length += 2;
+
+                       pmsg->sequence    = dbg_sequence++;
+                       pmsg->time_sec    = sec;
+                       pmsg->time_usec   = usec;
+                       pmsg->facility    = MSG_TYPE_BINARY;
+                       pmsg->dli         = type; /* DLI_XXX */
+                       pmsg->drv_id      = id;   /* driver MAINT id */
+                       pmsg->di_cpu      = 0;
+                       pmsg->data_length = length;
+                       queueCompleteMsg(pmsg);
+               }
+       } break;
+
+       case DLI_LOG:
+       case DLI_FTL:
+       case DLI_ERR:
+       case DLI_TRC:
+       case DLI_REG:
+       case DLI_MEM:
+       case DLI_SPL:
+       case DLI_IRP:
+       case DLI_TIM:
+       case DLI_TAPI:
+       case DLI_NDIS:
+       case DLI_CONN:
+       case DLI_STAT:
+       case DLI_PRV0:
+       case DLI_PRV1:
+       case DLI_PRV2:
+       case DLI_PRV3:
+               if ((length = (unsigned long)vsprintf(&fmtBuf[0], format, ap)) > 0) {
+                       length += (sizeof(*pmsg) + 1);
+
+                       while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                                              (word)length))) {
+                               if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                                       queueFreeMsg(dbg_queue);
+                               } else {
+                                       break;
+                               }
+                       }
+
+                       pmsg->sequence    = dbg_sequence++;
+                       pmsg->time_sec    = sec;
+                       pmsg->time_usec   = usec;
+                       pmsg->facility    = MSG_TYPE_STRING;
+                       pmsg->dli         = type; /* DLI_XXX */
+                       pmsg->drv_id      = id;   /* driver MAINT id */
+                       pmsg->di_cpu      = 0;
+                       pmsg->data_length = length - sizeof(*pmsg);
+
+                       memcpy(&pmsg[1], fmtBuf, pmsg->data_length);
+                       queueCompleteMsg(pmsg);
+               }
+               break;
+
+       } /* switch type */
+
+
+       if (queueCount(dbg_queue)) {
+               diva_maint_wakeup_read();
+       }
+
+       if (do_lock) {
+               diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "format");
+       }
 }
 
 /*
   Write driver ID and driver revision to callers buffer
-  */
-int diva_get_driver_info (dword id, byte* data, int data_length) {
-  diva_os_spin_lock_magic_t old_irql;
-  byte* p = data;
-  int to_copy;
-
-  if (!data || !id || (data_length < 17) ||
-      (id >= ARRAY_SIZE(clients))) {
-    return (-1);
-  }
-
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "driver info");
-
-  if (clients[id].hDbg) {
-    *p++ = 1;
-    *p++ = (byte)clients[id].sec; /* save seconds */
-    *p++ = (byte)(clients[id].sec >>  8);
-    *p++ = (byte)(clients[id].sec >> 16);
-    *p++ = (byte)(clients[id].sec >> 24);
-
-    *p++ = (byte)(clients[id].usec/1000); /* save mseconds */
-    *p++ = (byte)((clients[id].usec/1000) >>  8);
-    *p++ = (byte)((clients[id].usec/1000) >> 16);
-    *p++ = (byte)((clients[id].usec/1000) >> 24);
-
-    data_length -= 9;
-
-    if ((to_copy = min(strlen(clients[id].drvName), (size_t)(data_length-1)))) {
-      memcpy (p, clients[id].drvName, to_copy);
-      p += to_copy;
-      data_length -= to_copy;
-      if ((data_length >= 4) && clients[id].hDbg->drvTag[0]) {
-        *p++ = '(';
-        data_length -= 1;
-        if ((to_copy = min(strlen(clients[id].hDbg->drvTag), (size_t)(data_length-2)))) {
-          memcpy (p, clients[id].hDbg->drvTag, to_copy);
-          p += to_copy;
-          data_length -= to_copy;
-          if (data_length >= 2) {
-            *p++ = ')';
-            data_length--;
-          }
-        }
-      }
-    }
-  }
-  *p++ = 0;
-
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "driver info");
-
-  return (p - data);
-}
+*/
+int diva_get_driver_info(dword id, byte *data, int data_length) {
+       diva_os_spin_lock_magic_t old_irql;
+       byte *p = data;
+       int to_copy;
+
+       if (!data || !id || (data_length < 17) ||
+           (id >= ARRAY_SIZE(clients))) {
+               return (-1);
+       }
 
-int diva_get_driver_dbg_mask (dword id, byte* data) {
-  diva_os_spin_lock_magic_t old_irql;
-  int ret = -1;
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "driver info");
+
+       if (clients[id].hDbg) {
+               *p++ = 1;
+               *p++ = (byte)clients[id].sec; /* save seconds */
+               *p++ = (byte)(clients[id].sec >>  8);
+               *p++ = (byte)(clients[id].sec >> 16);
+               *p++ = (byte)(clients[id].sec >> 24);
+
+               *p++ = (byte)(clients[id].usec / 1000); /* save mseconds */
+               *p++ = (byte)((clients[id].usec / 1000) >>  8);
+               *p++ = (byte)((clients[id].usec / 1000) >> 16);
+               *p++ = (byte)((clients[id].usec / 1000) >> 24);
+
+               data_length -= 9;
+
+               if ((to_copy = min(strlen(clients[id].drvName), (size_t)(data_length - 1)))) {
+                       memcpy(p, clients[id].drvName, to_copy);
+                       p += to_copy;
+                       data_length -= to_copy;
+                       if ((data_length >= 4) && clients[id].hDbg->drvTag[0]) {
+                               *p++ = '(';
+                               data_length -= 1;
+                               if ((to_copy = min(strlen(clients[id].hDbg->drvTag), (size_t)(data_length - 2)))) {
+                                       memcpy(p, clients[id].hDbg->drvTag, to_copy);
+                                       p += to_copy;
+                                       data_length -= to_copy;
+                                       if (data_length >= 2) {
+                                               *p++ = ')';
+                                               data_length--;
+                                       }
+                               }
+                       }
+               }
+       }
+       *p++ = 0;
 
-  if (!data || !id || (id >= ARRAY_SIZE(clients))) {
-    return (-1);
-  }
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "driver info");
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "driver info");
 
-  if (clients[id].hDbg) {
-    ret = 4;
-    *data++= (byte)(clients[id].hDbg->dbgMask);
-    *data++= (byte)(clients[id].hDbg->dbgMask >>  8);
-    *data++= (byte)(clients[id].hDbg->dbgMask >> 16);
-    *data++= (byte)(clients[id].hDbg->dbgMask >> 24);
-  }
+       return (p - data);
+}
+
+int diva_get_driver_dbg_mask(dword id, byte *data) {
+       diva_os_spin_lock_magic_t old_irql;
+       int ret = -1;
+
+       if (!data || !id || (id >= ARRAY_SIZE(clients))) {
+               return (-1);
+       }
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "driver info");
+
+       if (clients[id].hDbg) {
+               ret = 4;
+               *data++ = (byte)(clients[id].hDbg->dbgMask);
+               *data++ = (byte)(clients[id].hDbg->dbgMask >>  8);
+               *data++ = (byte)(clients[id].hDbg->dbgMask >> 16);
+               *data++ = (byte)(clients[id].hDbg->dbgMask >> 24);
+       }
 
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "driver info");
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "driver info");
 
-  return (ret);
+       return (ret);
 }
 
-int diva_set_driver_dbg_mask (dword id, dword mask) {
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
-  int ret = -1;
-  
+int diva_set_driver_dbg_mask(dword id, dword mask) {
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
+       int ret = -1;
 
-  if (!id || (id >= ARRAY_SIZE(clients))) {
-    return (-1);
-  }
 
-  diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "dbg mask");
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "dbg mask");
+       if (!id || (id >= ARRAY_SIZE(clients))) {
+               return (-1);
+       }
 
-  if (clients[id].hDbg) {
-    dword old_mask = clients[id].hDbg->dbgMask;
-    mask &= 0x7fffffff;
-    clients[id].hDbg->dbgMask = mask;
-    clients[id].last_dbgMask = (clients[id].hDbg->dbgMask | clients[id].dbgMask);
-    ret = 4;
-    diva_change_management_debug_mask (&clients[id], old_mask);
-  }
+       diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "dbg mask");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "dbg mask");
 
+       if (clients[id].hDbg) {
+               dword old_mask = clients[id].hDbg->dbgMask;
+               mask &= 0x7fffffff;
+               clients[id].hDbg->dbgMask = mask;
+               clients[id].last_dbgMask = (clients[id].hDbg->dbgMask | clients[id].dbgMask);
+               ret = 4;
+               diva_change_management_debug_mask(&clients[id], old_mask);
+       }
 
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "dbg mask");
 
-  if (clients[id].request_pending) {
-    clients[id].request_pending = 0;
-    (*(clients[id].request))((ENTITY*)(*(clients[id].pIdiLib->DivaSTraceGetHandle))(clients[id].pIdiLib->hLib));
-  }
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "dbg mask");
 
-  diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "dbg mask");
+       if (clients[id].request_pending) {
+               clients[id].request_pending = 0;
+               (*(clients[id].request))((ENTITY *)(*(clients[id].pIdiLib->DivaSTraceGetHandle))(clients[id].pIdiLib->hLib));
+       }
+
+       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "dbg mask");
 
-  return (ret);
+       return (ret);
 }
 
-static int diva_get_idi_adapter_info (IDI_CALL request, dword* serial, dword* logical) {
-  IDI_SYNC_REQ sync_req;
+static int diva_get_idi_adapter_info(IDI_CALL request, dword *serial, dword *logical) {
+       IDI_SYNC_REQ sync_req;
 
-  sync_req.xdi_logical_adapter_number.Req = 0;
-  sync_req.xdi_logical_adapter_number.Rc = IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER;
-  (*request)((ENTITY *)&sync_req);
-  *logical = sync_req.xdi_logical_adapter_number.info.logical_adapter_number;
+       sync_req.xdi_logical_adapter_number.Req = 0;
+       sync_req.xdi_logical_adapter_number.Rc = IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER;
+       (*request)((ENTITY *)&sync_req);
+       *logical = sync_req.xdi_logical_adapter_number.info.logical_adapter_number;
 
-  sync_req.GetSerial.Req = 0;
-  sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
-  sync_req.GetSerial.serial = 0;
-  (*request)((ENTITY *)&sync_req);
+       sync_req.GetSerial.Req = 0;
+       sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
+       sync_req.GetSerial.serial = 0;
+       (*request)((ENTITY *)&sync_req);
        *serial = sync_req.GetSerial.serial;
 
-  return (0);
+       return (0);
 }
 
 /*
   Register XDI adapter as MAINT compatible driver
-  */
-void diva_mnt_add_xdi_adapter (const DESCRIPTOR* d) {
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
-  dword sec, usec, logical, serial, org_mask;
-  int id, free_id = -1;
-  char tmp[128];
-  diva_dbg_entry_head_t* pmsg = NULL;
-  int len;
-  word size;
-  byte* pmem;
-
-  diva_os_get_time (&sec, &usec);
-  diva_get_idi_adapter_info (d->request, &serial, &logical);
-  if (serial & 0xff000000) {
-    sprintf (tmp, "ADAPTER:%d SN:%u-%d",
-             (int)logical,
-             serial & 0x00ffffff,
-             (byte)(((serial & 0xff000000) >> 24) + 1));
-  } else {
-    sprintf (tmp, "ADAPTER:%d SN:%u", (int)logical, serial);
-  }
-
-  if (!(pmem = diva_os_malloc (0, DivaSTraceGetMemotyRequirement (d->channels)))) {
-    return;
-  }
-  memset (pmem, 0x00, DivaSTraceGetMemotyRequirement (d->channels));
-
-  diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "register");
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "register");
-
-  for (id = 1; id < ARRAY_SIZE(clients); id++) {
-    if (clients[id].hDbg && (clients[id].request == d->request)) {
-      diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "register");
-      diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "register");
-      diva_os_free(0, pmem);
-      return;
-    }
-    if (clients[id].hDbg) { /* slot is busy */
-      continue;
-    }
-    if (free_id < 0) {
-      free_id = id;
-    }
-    if (!strcmp (clients[id].drvName, tmp)) {
-      /*
-        This driver was already registered with this name
-        and slot is still free - reuse it
-        */
-      free_id = id;
-      break;
-    }
-  }
-
-  if (free_id < 0) {
-    diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "register");
-    diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "register");
-    diva_os_free (0, pmem);
-    return;
-  }
-
-  id = free_id;
-  clients[id].request  = d->request;
-  clients[id].request_pending = 0;
-  clients[id].hDbg     = &clients[id].Dbg;
-  clients[id].sec      = sec;
-  clients[id].usec     = usec;
-  strcpy (clients[id].drvName,     tmp);
-  strcpy (clients[id].Dbg.drvName, tmp);
-  clients[id].Dbg.drvTag[0] = 0;
-  clients[id].logical  = (int)logical;
-  clients[id].channels = (int)d->channels;
-  clients[id].dma_handle = -1;
-
-  clients[id].Dbg.dbgMask    = 0;
-  clients[id].dbgMask        = clients[id].Dbg.dbgMask;
-  if (id) {
-    clients[id].Dbg.dbgMask |= clients[free_id].last_dbgMask;
-  } else {
-    clients[id].last_dbgMask = 0;
-  }
-  clients[id].Dbg.Registered = DBG_HANDLE_REG_NEW;
-  clients[id].Dbg.id         = (byte)id;
-  clients[id].Dbg.dbg_end    = DI_deregister;
-  clients[id].Dbg.dbg_prt    = DI_format_locked;
-  clients[id].Dbg.dbg_ev     = DiProcessEventLog;
-  clients[id].Dbg.dbg_irq    = DI_format_locked;
-  clients[id].Dbg.next       = (pDbgHandle)DBG_MAGIC;
-
-  {
-    diva_trace_library_user_interface_t diva_maint_user_ifc = { &clients[id],
-                                                                                                                                                                                        diva_maint_state_change_notify,
-                                                                                                                                                                                        diva_maint_trace_notify,
-                                                                                                                                                                                        diva_maint_error };
-
-    /*
-      Attach to adapter management interface
-      */
-    if ((clients[id].pIdiLib =
-               DivaSTraceLibraryCreateInstance ((int)logical, &diva_maint_user_ifc, pmem))) {
-      if (((*(clients[id].pIdiLib->DivaSTraceLibraryStart))(clients[id].pIdiLib->hLib))) {
-        diva_mnt_internal_dprintf (0, DLI_ERR, "Adapter(%d) Start failed", (int)logical);
-        (*(clients[id].pIdiLib->DivaSTraceLibraryFinit))(clients[id].pIdiLib->hLib);
-        clients[id].pIdiLib = NULL;
-      }
-    } else {
-      diva_mnt_internal_dprintf (0, DLI_ERR, "A(%d) management init failed", (int)logical);
-    }
-  }
-
-  if (!clients[id].pIdiLib) {
-    clients[id].request = NULL;
-    clients[id].request_pending = 0;
-    clients[id].hDbg    = NULL;
-    diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "register");
-    diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "register");
-    diva_os_free (0, pmem);
-    return;
-  }
-
-  /*
-    Log driver register, MAINT driver ID is '0'
-    */
-  len = sprintf (tmp, "DIMAINT - drv # %d = '%s' registered",
-                 id, clients[id].Dbg.drvName);
-
-  while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                      (word)(len+1+sizeof(*pmsg))))) {
-    if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-      queueFreeMsg (dbg_queue);
-    } else {
-      break;
-    }
-  }
-
-  if (pmsg) {
-    pmsg->sequence    = dbg_sequence++;
-    pmsg->time_sec    = sec;
-    pmsg->time_usec   = usec;
-    pmsg->facility    = MSG_TYPE_STRING;
-    pmsg->dli         = DLI_REG;
-    pmsg->drv_id      = 0; /* id 0 - DIMAINT */
-    pmsg->di_cpu      = 0;
-    pmsg->data_length = len+1;
-
-    memcpy (&pmsg[1], tmp, len+1);
-    queueCompleteMsg (pmsg);
-    diva_maint_wakeup_read();
-  }
-
-  org_mask = clients[id].Dbg.dbgMask;
-  clients[id].Dbg.dbgMask = 0;
-
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "register");
-
-  if (clients[id].request_pending) {
-    clients[id].request_pending = 0;
-    (*(clients[id].request))((ENTITY*)(*(clients[id].pIdiLib->DivaSTraceGetHandle))(clients[id].pIdiLib->hLib));
-  }
-
-  diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "register");
-
-       diva_set_driver_dbg_mask (id, org_mask);
+*/
+void diva_mnt_add_xdi_adapter(const DESCRIPTOR *d) {
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
+       dword sec, usec, logical, serial, org_mask;
+       int id, free_id = -1;
+       char tmp[128];
+       diva_dbg_entry_head_t *pmsg = NULL;
+       int len;
+       word size;
+       byte *pmem;
+
+       diva_os_get_time(&sec, &usec);
+       diva_get_idi_adapter_info(d->request, &serial, &logical);
+       if (serial & 0xff000000) {
+               sprintf(tmp, "ADAPTER:%d SN:%u-%d",
+                       (int)logical,
+                       serial & 0x00ffffff,
+                       (byte)(((serial & 0xff000000) >> 24) + 1));
+       } else {
+               sprintf(tmp, "ADAPTER:%d SN:%u", (int)logical, serial);
+       }
+
+       if (!(pmem = diva_os_malloc(0, DivaSTraceGetMemotyRequirement(d->channels)))) {
+               return;
+       }
+       memset(pmem, 0x00, DivaSTraceGetMemotyRequirement(d->channels));
+
+       diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "register");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "register");
+
+       for (id = 1; id < ARRAY_SIZE(clients); id++) {
+               if (clients[id].hDbg && (clients[id].request == d->request)) {
+                       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "register");
+                       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "register");
+                       diva_os_free(0, pmem);
+                       return;
+               }
+               if (clients[id].hDbg) { /* slot is busy */
+                       continue;
+               }
+               if (free_id < 0) {
+                       free_id = id;
+               }
+               if (!strcmp(clients[id].drvName, tmp)) {
+                       /*
+                         This driver was already registered with this name
+                         and slot is still free - reuse it
+                       */
+                       free_id = id;
+                       break;
+               }
+       }
+
+       if (free_id < 0) {
+               diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "register");
+               diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "register");
+               diva_os_free(0, pmem);
+               return;
+       }
+
+       id = free_id;
+       clients[id].request  = d->request;
+       clients[id].request_pending = 0;
+       clients[id].hDbg     = &clients[id].Dbg;
+       clients[id].sec      = sec;
+       clients[id].usec     = usec;
+       strcpy(clients[id].drvName,     tmp);
+       strcpy(clients[id].Dbg.drvName, tmp);
+       clients[id].Dbg.drvTag[0] = 0;
+       clients[id].logical  = (int)logical;
+       clients[id].channels = (int)d->channels;
+       clients[id].dma_handle = -1;
+
+       clients[id].Dbg.dbgMask    = 0;
+       clients[id].dbgMask        = clients[id].Dbg.dbgMask;
+       if (id) {
+               clients[id].Dbg.dbgMask |= clients[free_id].last_dbgMask;
+       } else {
+               clients[id].last_dbgMask = 0;
+       }
+       clients[id].Dbg.Registered = DBG_HANDLE_REG_NEW;
+       clients[id].Dbg.id         = (byte)id;
+       clients[id].Dbg.dbg_end    = DI_deregister;
+       clients[id].Dbg.dbg_prt    = DI_format_locked;
+       clients[id].Dbg.dbg_ev     = DiProcessEventLog;
+       clients[id].Dbg.dbg_irq    = DI_format_locked;
+       clients[id].Dbg.next       = (pDbgHandle)DBG_MAGIC;
+
+       {
+               diva_trace_library_user_interface_t diva_maint_user_ifc = { &clients[id],
+                                                                           diva_maint_state_change_notify,
+                                                                           diva_maint_trace_notify,
+                                                                           diva_maint_error };
+
+               /*
+                 Attach to adapter management interface
+               */
+               if ((clients[id].pIdiLib =
+                    DivaSTraceLibraryCreateInstance((int)logical, &diva_maint_user_ifc, pmem))) {
+                       if (((*(clients[id].pIdiLib->DivaSTraceLibraryStart))(clients[id].pIdiLib->hLib))) {
+                               diva_mnt_internal_dprintf(0, DLI_ERR, "Adapter(%d) Start failed", (int)logical);
+                               (*(clients[id].pIdiLib->DivaSTraceLibraryFinit))(clients[id].pIdiLib->hLib);
+                               clients[id].pIdiLib = NULL;
+                       }
+               } else {
+                       diva_mnt_internal_dprintf(0, DLI_ERR, "A(%d) management init failed", (int)logical);
+               }
+       }
+
+       if (!clients[id].pIdiLib) {
+               clients[id].request = NULL;
+               clients[id].request_pending = 0;
+               clients[id].hDbg    = NULL;
+               diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "register");
+               diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "register");
+               diva_os_free(0, pmem);
+               return;
+       }
+
+       /*
+         Log driver register, MAINT driver ID is '0'
+       */
+       len = sprintf(tmp, "DIMAINT - drv # %d = '%s' registered",
+                     id, clients[id].Dbg.drvName);
+
+       while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                              (word)(len + 1 + sizeof(*pmsg))))) {
+               if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                       queueFreeMsg(dbg_queue);
+               } else {
+                       break;
+               }
+       }
+
+       if (pmsg) {
+               pmsg->sequence    = dbg_sequence++;
+               pmsg->time_sec    = sec;
+               pmsg->time_usec   = usec;
+               pmsg->facility    = MSG_TYPE_STRING;
+               pmsg->dli         = DLI_REG;
+               pmsg->drv_id      = 0; /* id 0 - DIMAINT */
+               pmsg->di_cpu      = 0;
+               pmsg->data_length = len + 1;
+
+               memcpy(&pmsg[1], tmp, len + 1);
+               queueCompleteMsg(pmsg);
+               diva_maint_wakeup_read();
+       }
+
+       org_mask = clients[id].Dbg.dbgMask;
+       clients[id].Dbg.dbgMask = 0;
+
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "register");
+
+       if (clients[id].request_pending) {
+               clients[id].request_pending = 0;
+               (*(clients[id].request))((ENTITY *)(*(clients[id].pIdiLib->DivaSTraceGetHandle))(clients[id].pIdiLib->hLib));
+       }
+
+       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "register");
+
+       diva_set_driver_dbg_mask(id, org_mask);
 }
 
 /*
   De-Register XDI adapter
-  */
-void diva_mnt_remove_xdi_adapter (const DESCRIPTOR* d) {
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
-  dword sec, usec;
-  int i;
-  word size;
-  byte* pmem = NULL;
-
-  diva_os_get_time (&sec, &usec);
-
-  diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "read");
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "read");
-
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    if (clients[i].hDbg && (clients[i].request == d->request)) {
-      diva_dbg_entry_head_t* pmsg;
-      char tmp[256];
-      int len;
-
-      if (clients[i].pIdiLib) {
-        (*(clients[i].pIdiLib->DivaSTraceLibraryFinit))(clients[i].pIdiLib->hLib);
-        clients[i].pIdiLib = NULL;
-
-        pmem = clients[i].pmem;
-        clients[i].pmem = NULL;
-      }
-
-      clients[i].hDbg    = NULL;
-      clients[i].request_pending = 0;
-      if (clients[i].dma_handle >= 0) {
-        /*
-          Free DMA handle
-          */
-        diva_free_dma_descriptor (clients[i].request, clients[i].dma_handle);
-        clients[i].dma_handle = -1;
-      }
-      clients[i].request = NULL;
-
-      /*
-        Log driver register, MAINT driver ID is '0'
-        */
-      len = sprintf (tmp, "DIMAINT - drv # %d = '%s' de-registered",
-                     i, clients[i].Dbg.drvName);
-
-      memset (&clients[i].Dbg, 0x00, sizeof(clients[i].Dbg));
-
-      while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                                        (word)(len+1+sizeof(*pmsg))))) {
-        if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-          queueFreeMsg (dbg_queue);
-        } else {
-          break;
-        }
-      }
-
-      if (pmsg) {
-        pmsg->sequence    = dbg_sequence++;
-        pmsg->time_sec    = sec;
-        pmsg->time_usec   = usec;
-        pmsg->facility    = MSG_TYPE_STRING;
-        pmsg->dli         = DLI_REG;
-        pmsg->drv_id      = 0; /* id 0 - DIMAINT */
-        pmsg->di_cpu      = 0;
-        pmsg->data_length = len+1;
-
-        memcpy (&pmsg[1], tmp, len+1);
-                 queueCompleteMsg (pmsg);
-        diva_maint_wakeup_read();
-      }
-
-      break;
-    }
-  }
-
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "read_ack");
-  diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "read_ack");
-
-  if (pmem) {
-    diva_os_free (0, pmem);
-  }
+*/
+void diva_mnt_remove_xdi_adapter(const DESCRIPTOR *d) {
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
+       dword sec, usec;
+       int i;
+       word size;
+       byte *pmem = NULL;
+
+       diva_os_get_time(&sec, &usec);
+
+       diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "read");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "read");
+
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               if (clients[i].hDbg && (clients[i].request == d->request)) {
+                       diva_dbg_entry_head_t *pmsg;
+                       char tmp[256];
+                       int len;
+
+                       if (clients[i].pIdiLib) {
+                               (*(clients[i].pIdiLib->DivaSTraceLibraryFinit))(clients[i].pIdiLib->hLib);
+                               clients[i].pIdiLib = NULL;
+
+                               pmem = clients[i].pmem;
+                               clients[i].pmem = NULL;
+                       }
+
+                       clients[i].hDbg    = NULL;
+                       clients[i].request_pending = 0;
+                       if (clients[i].dma_handle >= 0) {
+                               /*
+                                 Free DMA handle
+                               */
+                               diva_free_dma_descriptor(clients[i].request, clients[i].dma_handle);
+                               clients[i].dma_handle = -1;
+                       }
+                       clients[i].request = NULL;
+
+                       /*
+                         Log driver register, MAINT driver ID is '0'
+                       */
+                       len = sprintf(tmp, "DIMAINT - drv # %d = '%s' de-registered",
+                                     i, clients[i].Dbg.drvName);
+
+                       memset(&clients[i].Dbg, 0x00, sizeof(clients[i].Dbg));
+
+                       while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                                              (word)(len + 1 + sizeof(*pmsg))))) {
+                               if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                                       queueFreeMsg(dbg_queue);
+                               } else {
+                                       break;
+                               }
+                       }
+
+                       if (pmsg) {
+                               pmsg->sequence    = dbg_sequence++;
+                               pmsg->time_sec    = sec;
+                               pmsg->time_usec   = usec;
+                               pmsg->facility    = MSG_TYPE_STRING;
+                               pmsg->dli         = DLI_REG;
+                               pmsg->drv_id      = 0; /* id 0 - DIMAINT */
+                               pmsg->di_cpu      = 0;
+                               pmsg->data_length = len + 1;
+
+                               memcpy(&pmsg[1], tmp, len + 1);
+                               queueCompleteMsg(pmsg);
+                               diva_maint_wakeup_read();
+                       }
+
+                       break;
+               }
+       }
+
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "read_ack");
+       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "read_ack");
+
+       if (pmem) {
+               diva_os_free(0, pmem);
+       }
 }
 
 /* ----------------------------------------------------------------
-     Low level interface for management interface client
+   Low level interface for management interface client
    ---------------------------------------------------------------- */
 /*
   Return handle to client structure
-  */
-void* SuperTraceOpenAdapter   (int AdapterNumber) {
-  int i;
+*/
+void *SuperTraceOpenAdapter(int AdapterNumber) {
+       int i;
 
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    if (clients[i].hDbg && clients[i].request && (clients[i].logical == AdapterNumber)) {
-      return (&clients[i]);
-    }
-  }
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               if (clients[i].hDbg && clients[i].request && (clients[i].logical == AdapterNumber)) {
+                       return (&clients[i]);
+               }
+       }
 
-  return NULL;
+       return NULL;
 }
 
-int SuperTraceCloseAdapter  (void* AdapterHandle) {
-  return (0);
+int SuperTraceCloseAdapter(void *AdapterHandle) {
+       return (0);
 }
 
-int SuperTraceReadRequest (void* AdapterHandle, const char* name, byte* data) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)AdapterHandle;
+int SuperTraceReadRequest(void *AdapterHandle, const char *name, byte *data) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)AdapterHandle;
 
-  if (pC && pC->pIdiLib && pC->request) {
-    ENTITY* e = (ENTITY*)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
-    byte* xdata = (byte*)&pC->xbuffer[0];
-    char tmp = 0;
-    word length;
+       if (pC && pC->pIdiLib && pC->request) {
+               ENTITY *e = (ENTITY *)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
+               byte *xdata = (byte *)&pC->xbuffer[0];
+               char tmp = 0;
+               word length;
 
-    if (!strcmp(name, "\\")) { /* Read ROOT */
-      name = &tmp;
-    }
-    length = SuperTraceCreateReadReq (xdata, name);
-    single_p (xdata, &length, 0); /* End Of Message */
+               if (!strcmp(name, "\\")) { /* Read ROOT */
+                       name = &tmp;
+               }
+               length = SuperTraceCreateReadReq(xdata, name);
+               single_p(xdata, &length, 0); /* End Of Message */
 
-    e->Req        = MAN_READ;
-    e->ReqCh      = 0;
-    e->X->PLength = length;
-    e->X->P                      = (byte*)xdata;
+               e->Req        = MAN_READ;
+               e->ReqCh      = 0;
+               e->X->PLength = length;
+               e->X->P = (byte *)xdata;
 
-    pC->request_pending = 1;
+               pC->request_pending = 1;
 
-    return (0);
-  }
+               return (0);
+       }
 
-  return (-1);
+       return (-1);
 }
 
-int SuperTraceGetNumberOfChannels (void* AdapterHandle) {
-  if (AdapterHandle) {
-    diva_maint_client_t* pC = (diva_maint_client_t*)AdapterHandle;
+int SuperTraceGetNumberOfChannels(void *AdapterHandle) {
+       if (AdapterHandle) {
+               diva_maint_client_t *pC = (diva_maint_client_t *)AdapterHandle;
 
-    return (pC->channels);
-  }
+               return (pC->channels);
+       }
 
-  return (0);
+       return (0);
 }
 
-int SuperTraceASSIGN (void* AdapterHandle, byte* data) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)AdapterHandle;
-
-  if (pC && pC->pIdiLib && pC->request) {
-    ENTITY* e = (ENTITY*)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
-    IDI_SYNC_REQ* preq;
-    char buffer[((sizeof(preq->xdi_extended_features)+4) > sizeof(ENTITY)) ? (sizeof(preq->xdi_extended_features)+4) : sizeof(ENTITY)];
-    char features[4];
-    word assign_data_length = 1;
-
-    features[0] = 0;
-    pC->xbuffer[0] = 0;
-    preq = (IDI_SYNC_REQ*)&buffer[0];
-    preq->xdi_extended_features.Req = 0;
-    preq->xdi_extended_features.Rc  = IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES;
-    preq->xdi_extended_features.info.buffer_length_in_bytes = sizeof(features);
-    preq->xdi_extended_features.info.features = &features[0];
-
-    (*(pC->request))((ENTITY*)preq);
-
-    if ((features[0] & DIVA_XDI_EXTENDED_FEATURES_VALID) &&
-        (features[0] & DIVA_XDI_EXTENDED_FEATURE_MANAGEMENT_DMA)) {
-      dword uninitialized_var(rx_dma_magic);
-      if ((pC->dma_handle = diva_get_dma_descriptor (pC->request, &rx_dma_magic)) >= 0) {
-        pC->xbuffer[0] = LLI;
-        pC->xbuffer[1] = 8;
-        pC->xbuffer[2] = 0x40;
-        pC->xbuffer[3] = (byte)pC->dma_handle;
-        pC->xbuffer[4] = (byte)rx_dma_magic;
-        pC->xbuffer[5] = (byte)(rx_dma_magic >>  8);
-        pC->xbuffer[6] = (byte)(rx_dma_magic >> 16);
-        pC->xbuffer[7] = (byte)(rx_dma_magic >> 24);
-       pC->xbuffer[8] = (byte)(DIVA_MAX_MANAGEMENT_TRANSFER_SIZE & 0xFF);
-        pC->xbuffer[9] = (byte)(DIVA_MAX_MANAGEMENT_TRANSFER_SIZE >> 8);
-        pC->xbuffer[10] = 0;
-
-        assign_data_length = 11;
-      }
-    } else {
-      pC->dma_handle = -1;
-    }
-
-    e->Id          = MAN_ID;
-    e->callback    = diva_maint_xdi_cb;
-    e->XNum        = 1;
-    e->X           = &pC->XData;
-    e->Req         = ASSIGN;
-    e->ReqCh       = 0;
-    e->X->PLength  = assign_data_length;
-    e->X->P        = (byte*)&pC->xbuffer[0];
-
-    pC->request_pending = 1;
-
-    return (0);
-  }
-
-  return (-1);
+int SuperTraceASSIGN(void *AdapterHandle, byte *data) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)AdapterHandle;
+
+       if (pC && pC->pIdiLib && pC->request) {
+               ENTITY *e = (ENTITY *)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
+               IDI_SYNC_REQ *preq;
+               char buffer[((sizeof(preq->xdi_extended_features) + 4) > sizeof(ENTITY)) ? (sizeof(preq->xdi_extended_features) + 4) : sizeof(ENTITY)];
+               char features[4];
+               word assign_data_length = 1;
+
+               features[0] = 0;
+               pC->xbuffer[0] = 0;
+               preq = (IDI_SYNC_REQ *)&buffer[0];
+               preq->xdi_extended_features.Req = 0;
+               preq->xdi_extended_features.Rc  = IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES;
+               preq->xdi_extended_features.info.buffer_length_in_bytes = sizeof(features);
+               preq->xdi_extended_features.info.features = &features[0];
+
+               (*(pC->request))((ENTITY *)preq);
+
+               if ((features[0] & DIVA_XDI_EXTENDED_FEATURES_VALID) &&
+                   (features[0] & DIVA_XDI_EXTENDED_FEATURE_MANAGEMENT_DMA)) {
+                       dword uninitialized_var(rx_dma_magic);
+                       if ((pC->dma_handle = diva_get_dma_descriptor(pC->request, &rx_dma_magic)) >= 0) {
+                               pC->xbuffer[0] = LLI;
+                               pC->xbuffer[1] = 8;
+                               pC->xbuffer[2] = 0x40;
+                               pC->xbuffer[3] = (byte)pC->dma_handle;
+                               pC->xbuffer[4] = (byte)rx_dma_magic;
+                               pC->xbuffer[5] = (byte)(rx_dma_magic >>  8);
+                               pC->xbuffer[6] = (byte)(rx_dma_magic >> 16);
+                               pC->xbuffer[7] = (byte)(rx_dma_magic >> 24);
+                               pC->xbuffer[8] = (byte)(DIVA_MAX_MANAGEMENT_TRANSFER_SIZE & 0xFF);
+                               pC->xbuffer[9] = (byte)(DIVA_MAX_MANAGEMENT_TRANSFER_SIZE >> 8);
+                               pC->xbuffer[10] = 0;
+
+                               assign_data_length = 11;
+                       }
+               } else {
+                       pC->dma_handle = -1;
+               }
+
+               e->Id          = MAN_ID;
+               e->callback    = diva_maint_xdi_cb;
+               e->XNum        = 1;
+               e->X           = &pC->XData;
+               e->Req         = ASSIGN;
+               e->ReqCh       = 0;
+               e->X->PLength  = assign_data_length;
+               e->X->P        = (byte *)&pC->xbuffer[0];
+
+               pC->request_pending = 1;
+
+               return (0);
+       }
+
+       return (-1);
 }
 
-int SuperTraceREMOVE (void* AdapterHandle) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)AdapterHandle;
+int SuperTraceREMOVE(void *AdapterHandle) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)AdapterHandle;
 
-  if (pC && pC->pIdiLib && pC->request) {
-    ENTITY* e = (ENTITY*)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
+       if (pC && pC->pIdiLib && pC->request) {
+               ENTITY *e = (ENTITY *)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
 
-    e->XNum        = 1;
-    e->X           = &pC->XData;
-    e->Req         = REMOVE;
-    e->ReqCh       = 0;
-    e->X->PLength  = 1;
-    e->X->P        = (byte*)&pC->xbuffer[0];
-    pC->xbuffer[0] = 0;
+               e->XNum        = 1;
+               e->X           = &pC->XData;
+               e->Req         = REMOVE;
+               e->ReqCh       = 0;
+               e->X->PLength  = 1;
+               e->X->P        = (byte *)&pC->xbuffer[0];
+               pC->xbuffer[0] = 0;
 
-    pC->request_pending = 1;
+               pC->request_pending = 1;
 
-    return (0);
-  }
+               return (0);
+       }
 
-  return (-1);
+       return (-1);
 }
 
-int SuperTraceTraceOnRequest(void* hAdapter, const char* name, byte* data) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)hAdapter;
+int SuperTraceTraceOnRequest(void *hAdapter, const char *name, byte *data) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)hAdapter;
 
-  if (pC && pC->pIdiLib && pC->request) {
-    ENTITY* e = (ENTITY*)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
-    byte* xdata = (byte*)&pC->xbuffer[0];
-    char tmp = 0;
-    word length;
+       if (pC && pC->pIdiLib && pC->request) {
+               ENTITY *e = (ENTITY *)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
+               byte *xdata = (byte *)&pC->xbuffer[0];
+               char tmp = 0;
+               word length;
 
-    if (!strcmp(name, "\\")) { /* Read ROOT */
-      name = &tmp;
-    }
-    length = SuperTraceCreateReadReq (xdata, name);
-    single_p (xdata, &length, 0); /* End Of Message */
-    e->Req          = MAN_EVENT_ON;
-    e->ReqCh        = 0;
-    e->X->PLength   = length;
-    e->X->P                        = (byte*)xdata;
+               if (!strcmp(name, "\\")) { /* Read ROOT */
+                       name = &tmp;
+               }
+               length = SuperTraceCreateReadReq(xdata, name);
+               single_p(xdata, &length, 0); /* End Of Message */
+               e->Req          = MAN_EVENT_ON;
+               e->ReqCh        = 0;
+               e->X->PLength   = length;
+               e->X->P = (byte *)xdata;
 
-    pC->request_pending = 1;
+               pC->request_pending = 1;
 
-    return (0);
-  }
+               return (0);
+       }
 
-  return (-1);
+       return (-1);
 }
 
-int SuperTraceWriteVar (void* AdapterHandle,
-                        byte* data,
-                        const char* name,
-                        void* var,
-                        byte type,
-                        byte var_length) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)AdapterHandle;
-
-  if (pC && pC->pIdiLib && pC->request) {
-    ENTITY* e = (ENTITY*)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
-    diva_man_var_header_t* pVar = (diva_man_var_header_t*)&pC->xbuffer[0];
-    word length = SuperTraceCreateReadReq ((byte*)pVar, name);
-
-    memcpy (&pC->xbuffer[length], var, var_length);
-    length += var_length;
-    pVar->length += var_length;
-    pVar->value_length = var_length;
-    pVar->type = type;
-    single_p ((byte*)pVar, &length, 0); /* End Of Message */
-
-    e->Req          = MAN_WRITE;
-    e->ReqCh                     = 0;
-    e->X->PLength   = length;
-    e->X->P                        = (byte*)pVar;
-
-    pC->request_pending = 1;
-
-    return (0);
-  }
-
-  return (-1);
+int SuperTraceWriteVar(void *AdapterHandle,
+                      byte *data,
+                      const char *name,
+                      void *var,
+                      byte type,
+                      byte var_length) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)AdapterHandle;
+
+       if (pC && pC->pIdiLib && pC->request) {
+               ENTITY *e = (ENTITY *)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
+               diva_man_var_header_t *pVar = (diva_man_var_header_t *)&pC->xbuffer[0];
+               word length = SuperTraceCreateReadReq((byte *)pVar, name);
+
+               memcpy(&pC->xbuffer[length], var, var_length);
+               length += var_length;
+               pVar->length += var_length;
+               pVar->value_length = var_length;
+               pVar->type = type;
+               single_p((byte *)pVar, &length, 0); /* End Of Message */
+
+               e->Req = MAN_WRITE;
+               e->ReqCh = 0;
+               e->X->PLength   = length;
+               e->X->P = (byte *)pVar;
+
+               pC->request_pending = 1;
+
+               return (0);
+       }
+
+       return (-1);
 }
 
-int SuperTraceExecuteRequest (void* AdapterHandle,
-                              const char* name,
-                              byte* data) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)AdapterHandle;
+int SuperTraceExecuteRequest(void *AdapterHandle,
+                            const char *name,
+                            byte *data) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)AdapterHandle;
 
-  if (pC && pC->pIdiLib && pC->request) {
-    ENTITY* e = (ENTITY*)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
-    byte* xdata = (byte*)&pC->xbuffer[0];
-    word length;
+       if (pC && pC->pIdiLib && pC->request) {
+               ENTITY *e = (ENTITY *)(*(pC->pIdiLib->DivaSTraceGetHandle))(pC->pIdiLib->hLib);
+               byte *xdata = (byte *)&pC->xbuffer[0];
+               word length;
 
-    length = SuperTraceCreateReadReq (xdata, name);
-    single_p (xdata, &length, 0); /* End Of Message */
+               length = SuperTraceCreateReadReq(xdata, name);
+               single_p(xdata, &length, 0); /* End Of Message */
 
-    e->Req          = MAN_EXECUTE;
-    e->ReqCh                     = 0;
-    e->X->PLength   = length;
-    e->X->P                        = (byte*)xdata;
+               e->Req = MAN_EXECUTE;
+               e->ReqCh = 0;
+               e->X->PLength = length;
+               e->X->P = (byte *)xdata;
 
-    pC->request_pending = 1;
+               pC->request_pending = 1;
 
-    return (0);
-  }
+               return (0);
+       }
 
-  return (-1);
+       return (-1);
 }
 
-static word SuperTraceCreateReadReq (byte* P, const char* path) {
+static word SuperTraceCreateReadReq(byte *P, const char *path) {
        byte var_length;
-       byteplen;
+       byte *plen;
 
-       var_length = (byte)strlen (path);
+       var_length = (byte)strlen(path);
 
        *P++ = ESC;
        plen = P++;
@@ -1346,708 +1346,708 @@ static word SuperTraceCreateReadReq (byte* P, const char* path) {
        *P++ = 0x00; /* Status */
        *P++ = 0x00; /* Variable Length */
        *P++ = var_length;
-       memcpy (P, path, var_length);
+       memcpy(P, path, var_length);
        P += var_length;
        *plen = var_length + 0x06;
 
        return ((word)(var_length + 0x08));
 }
 
-static void single_p (byte * P, word * PLength, byte Id) {
-  P[(*PLength)++] = Id;
+static void single_p(byte *P, word *PLength, byte Id) {
+       P[(*PLength)++] = Id;
 }
 
-static void diva_maint_xdi_cb (ENTITY* e) {
-  diva_strace_context_t* pLib = DIVAS_CONTAINING_RECORD(e,diva_strace_context_t,e);
-  diva_maint_client_t* pC;
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
+static void diva_maint_xdi_cb(ENTITY *e) {
+       diva_strace_context_t *pLib = DIVAS_CONTAINING_RECORD(e, diva_strace_context_t, e);
+       diva_maint_client_t *pC;
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
 
 
-  diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "xdi_cb");
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "xdi_cb");
+       diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "xdi_cb");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "xdi_cb");
 
-  pC = (diva_maint_client_t*)pLib->hAdapter;
+       pC = (diva_maint_client_t *)pLib->hAdapter;
 
-  if ((e->complete == 255) || (pC->dma_handle < 0)) {
-    if ((*(pLib->instance.DivaSTraceMessageInput))(&pLib->instance)) {
-      diva_mnt_internal_dprintf (0, DLI_ERR, "Trace internal library error");
-    }
-  } else {
-    /*
-      Process combined management interface indication
-      */
-    if ((*(pLib->instance.DivaSTraceMessageInput))(&pLib->instance)) {
-      diva_mnt_internal_dprintf (0, DLI_ERR, "Trace internal library error (DMA mode)");
-    }
-  }
+       if ((e->complete == 255) || (pC->dma_handle < 0)) {
+               if ((*(pLib->instance.DivaSTraceMessageInput))(&pLib->instance)) {
+                       diva_mnt_internal_dprintf(0, DLI_ERR, "Trace internal library error");
+               }
+       } else {
+               /*
+                 Process combined management interface indication
+               */
+               if ((*(pLib->instance.DivaSTraceMessageInput))(&pLib->instance)) {
+                       diva_mnt_internal_dprintf(0, DLI_ERR, "Trace internal library error (DMA mode)");
+               }
+       }
 
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "xdi_cb");
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "xdi_cb");
 
 
        if (pC->request_pending) {
-    pC->request_pending = 0;
-    (*(pC->request))(e);
+               pC->request_pending = 0;
+               (*(pC->request))(e);
        }
 
-  diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "xdi_cb");
+       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "xdi_cb");
 }
 
 
-static void diva_maint_error (void* user_context,
-                              diva_strace_library_interface_t* hLib,
-                              int Adapter,
-                              int error,
-                              const char* file,
-                              int line) {
-       diva_mnt_internal_dprintf (0, DLI_ERR,
-                             "Trace library error(%d) A(%d) %s %d", error, Adapter, file, line);
+static void diva_maint_error(void *user_context,
+                            diva_strace_library_interface_t *hLib,
+                            int Adapter,
+                            int error,
+                            const char *file,
+                            int line) {
+       diva_mnt_internal_dprintf(0, DLI_ERR,
+                                 "Trace library error(%d) A(%d) %s %d", error, Adapter, file, line);
 }
 
-static void print_ie (diva_trace_ie_t* ie, char* buffer, int length) {
+static void print_ie(diva_trace_ie_t *ie, char *buffer, int length) {
        int i;
 
-  buffer[0] = 0;
-
-  if (length > 32) {
-    for (i = 0; ((i < ie->length) && (length > 3)); i++) {
-      sprintf (buffer, "%02x", ie->data[i]);
-      buffer += 2;
-      length -= 2;
-      if (i < (ie->length-1)) {
-        strcpy (buffer, " ");
-        buffer++;
-        length--;
-      }
-    }
-  }
+       buffer[0] = 0;
+
+       if (length > 32) {
+               for (i = 0; ((i < ie->length) && (length > 3)); i++) {
+                       sprintf(buffer, "%02x", ie->data[i]);
+                       buffer += 2;
+                       length -= 2;
+                       if (i < (ie->length - 1)) {
+                               strcpy(buffer, " ");
+                               buffer++;
+                               length--;
+                       }
+               }
+       }
 }
 
-static void diva_maint_state_change_notify (void* user_context,
-                                            diva_strace_library_interface_t* hLib,
-                                            int Adapter,
-                                            diva_trace_line_state_t* channel,
-                                            int notify_subject) {
-  diva_maint_client_t*      pC    = (diva_maint_client_t*)user_context;
-  diva_trace_fax_state_t*   fax   = &channel->fax;
-  diva_trace_modem_state_t* modem = &channel->modem;
-  char tmp[256];
-
-  if (!pC->hDbg) {
-    return;
-  }
-
-  switch (notify_subject) {
-    case DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE: {
-      int view = (TraceFilter[0] == 0);
-      /*
-        Process selective Trace
-        */
-      if (channel->Line[0] == 'I' && channel->Line[1] == 'd' &&
-          channel->Line[2] == 'l' && channel->Line[3] == 'e') {
-        if ((TraceFilterIdent == pC->hDbg->id) && (TraceFilterChannel == (int)channel->ChannelNumber)) {
-          (*(hLib->DivaSTraceSetBChannel))(hLib, (int)channel->ChannelNumber, 0);
-          (*(hLib->DivaSTraceSetAudioTap))(hLib, (int)channel->ChannelNumber, 0);
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG, "Selective Trace OFF for Ch=%d",
-                                     (int)channel->ChannelNumber);
-          TraceFilterIdent   = -1;
-          TraceFilterChannel = -1;
-          view = 1;
-        }
-      } else if (TraceFilter[0] && (TraceFilterIdent < 0) && !(diva_mnt_cmp_nmbr (&channel->RemoteAddress[0]) &&
-                                                               diva_mnt_cmp_nmbr (&channel->LocalAddress[0]))) {
-
-        if ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_BCHANNEL) != 0) { /* Activate B-channel trace */
-          (*(hLib->DivaSTraceSetBChannel))(hLib, (int)channel->ChannelNumber, 1);
-        }
-        if ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_AUDIO) != 0) { /* Activate AudioTap Trace */
-          (*(hLib->DivaSTraceSetAudioTap))(hLib, (int)channel->ChannelNumber, 1);
-        }
-
-        TraceFilterIdent   = pC->hDbg->id;
-        TraceFilterChannel = (int)channel->ChannelNumber;
-
-        if (TraceFilterIdent >= 0) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG, "Selective Trace ON for Ch=%d",
-                                     (int)channel->ChannelNumber);
-          view = 1;
-        }
-      }
-      if (view && (pC->hDbg->dbgMask & DIVA_MGT_DBG_LINE_EVENTS)) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Ch     = %d",
-                                                                     (int)channel->ChannelNumber);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Status = <%s>", &channel->Line[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Layer1 = <%s>", &channel->Framing[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Layer2 = <%s>", &channel->Layer2[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Layer3 = <%s>", &channel->Layer3[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L RAddr  = <%s>",
-                                                                     &channel->RemoteAddress[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L RSAddr = <%s>",
-                                                                     &channel->RemoteSubAddress[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L LAddr  = <%s>",
-                                                                     &channel->LocalAddress[0]);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L LSAddr = <%s>",
-                                                                     &channel->LocalSubAddress[0]);
-        print_ie(&channel->call_BC, tmp, sizeof(tmp));
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L BC     = <%s>", tmp);
-        print_ie(&channel->call_HLC, tmp, sizeof(tmp));
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L HLC    = <%s>", tmp);
-        print_ie(&channel->call_LLC, tmp, sizeof(tmp));
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L LLC    = <%s>", tmp);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L CR     = 0x%x", channel->CallReference);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Disc   = 0x%x",
-                                                                    channel->LastDisconnecCause);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT, "L Owner  = <%s>", &channel->UserID[0]);
-      }
-
-               } break;
-
-    case DIVA_SUPER_TRACE_NOTIFY_MODEM_CHANGE:
-      if (pC->hDbg->dbgMask & DIVA_MGT_DBG_MDM_PROGRESS) {
-                               {
-                                       int ch = TraceFilterChannel;
-                                       int id = TraceFilterIdent;
-
-                                       if ((id >= 0) && (ch >= 0) && (id < ARRAY_SIZE(clients)) &&
-                                               (clients[id].Dbg.id == (byte)id) && (clients[id].pIdiLib == hLib)) {
-                                               if (ch != (int)modem->ChannelNumber) {
-                                                       break;
-                                               }
-                                       } else if (TraceFilter[0] != 0) {
+static void diva_maint_state_change_notify(void *user_context,
+                                          diva_strace_library_interface_t *hLib,
+                                          int Adapter,
+                                          diva_trace_line_state_t *channel,
+                                          int notify_subject) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)user_context;
+       diva_trace_fax_state_t *fax = &channel->fax;
+       diva_trace_modem_state_t *modem = &channel->modem;
+       char tmp[256];
+
+       if (!pC->hDbg) {
+               return;
+       }
+
+       switch (notify_subject) {
+       case DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE: {
+               int view = (TraceFilter[0] == 0);
+               /*
+                 Process selective Trace
+               */
+               if (channel->Line[0] == 'I' && channel->Line[1] == 'd' &&
+                   channel->Line[2] == 'l' && channel->Line[3] == 'e') {
+                       if ((TraceFilterIdent == pC->hDbg->id) && (TraceFilterChannel == (int)channel->ChannelNumber)) {
+                               (*(hLib->DivaSTraceSetBChannel))(hLib, (int)channel->ChannelNumber, 0);
+                               (*(hLib->DivaSTraceSetAudioTap))(hLib, (int)channel->ChannelNumber, 0);
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG, "Selective Trace OFF for Ch=%d",
+                                                         (int)channel->ChannelNumber);
+                               TraceFilterIdent   = -1;
+                               TraceFilterChannel = -1;
+                               view = 1;
+                       }
+               } else if (TraceFilter[0] && (TraceFilterIdent < 0) && !(diva_mnt_cmp_nmbr(&channel->RemoteAddress[0]) &&
+                                                                        diva_mnt_cmp_nmbr(&channel->LocalAddress[0]))) {
+
+                       if ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_BCHANNEL) != 0) { /* Activate B-channel trace */
+                               (*(hLib->DivaSTraceSetBChannel))(hLib, (int)channel->ChannelNumber, 1);
+                       }
+                       if ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_AUDIO) != 0) { /* Activate AudioTap Trace */
+                               (*(hLib->DivaSTraceSetAudioTap))(hLib, (int)channel->ChannelNumber, 1);
+                       }
+
+                       TraceFilterIdent   = pC->hDbg->id;
+                       TraceFilterChannel = (int)channel->ChannelNumber;
+
+                       if (TraceFilterIdent >= 0) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG, "Selective Trace ON for Ch=%d",
+                                                         (int)channel->ChannelNumber);
+                               view = 1;
+                       }
+               }
+               if (view && (pC->hDbg->dbgMask & DIVA_MGT_DBG_LINE_EVENTS)) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Ch     = %d",
+                                                 (int)channel->ChannelNumber);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Status = <%s>", &channel->Line[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Layer1 = <%s>", &channel->Framing[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Layer2 = <%s>", &channel->Layer2[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Layer3 = <%s>", &channel->Layer3[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L RAddr  = <%s>",
+                                                 &channel->RemoteAddress[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L RSAddr = <%s>",
+                                                 &channel->RemoteSubAddress[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L LAddr  = <%s>",
+                                                 &channel->LocalAddress[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L LSAddr = <%s>",
+                                                 &channel->LocalSubAddress[0]);
+                       print_ie(&channel->call_BC, tmp, sizeof(tmp));
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L BC     = <%s>", tmp);
+                       print_ie(&channel->call_HLC, tmp, sizeof(tmp));
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L HLC    = <%s>", tmp);
+                       print_ie(&channel->call_LLC, tmp, sizeof(tmp));
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L LLC    = <%s>", tmp);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L CR     = 0x%x", channel->CallReference);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Disc   = 0x%x",
+                                                 channel->LastDisconnecCause);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "L Owner  = <%s>", &channel->UserID[0]);
+               }
+
+       } break;
+
+       case DIVA_SUPER_TRACE_NOTIFY_MODEM_CHANGE:
+               if (pC->hDbg->dbgMask & DIVA_MGT_DBG_MDM_PROGRESS) {
+                       {
+                               int ch = TraceFilterChannel;
+                               int id = TraceFilterIdent;
+
+                               if ((id >= 0) && (ch >= 0) && (id < ARRAY_SIZE(clients)) &&
+                                   (clients[id].Dbg.id == (byte)id) && (clients[id].pIdiLib == hLib)) {
+                                       if (ch != (int)modem->ChannelNumber) {
                                                break;
                                        }
+                               } else if (TraceFilter[0] != 0) {
+                                       break;
                                }
+                       }
+
+
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Ch    = %lu",
+                                                 (int)modem->ChannelNumber);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Event = %lu", modem->Event);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Norm  = %lu", modem->Norm);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Opts. = 0x%08x", modem->Options);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Tx    = %lu Bps", modem->TxSpeed);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Rx    = %lu Bps", modem->RxSpeed);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM RT    = %lu mSec",
+                                                 modem->RoundtripMsec);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Sr    = %lu", modem->SymbolRate);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Rxl   = %d dBm", modem->RxLeveldBm);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM El    = %d dBm", modem->EchoLeveldBm);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM SNR   = %lu dB", modem->SNRdb);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM MAE   = %lu", modem->MAE);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM LRet  = %lu",
+                                                 modem->LocalRetrains);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM RRet  = %lu",
+                                                 modem->RemoteRetrains);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM LRes  = %lu", modem->LocalResyncs);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM RRes  = %lu",
+                                                 modem->RemoteResyncs);
+                       if (modem->Event == 3) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Disc  =  %lu", modem->DiscReason);
+                       }
+               }
+               if ((modem->Event == 3) && (pC->hDbg->dbgMask & DIVA_MGT_DBG_MDM_STATISTICS)) {
+                       (*(pC->pIdiLib->DivaSTraceGetModemStatistics))(pC->pIdiLib);
+               }
+               break;
 
+       case DIVA_SUPER_TRACE_NOTIFY_FAX_CHANGE:
+               if (pC->hDbg->dbgMask & DIVA_MGT_DBG_FAX_PROGRESS) {
+                       {
+                               int ch = TraceFilterChannel;
+                               int id = TraceFilterIdent;
 
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Ch    = %lu",
-                                                                     (int)modem->ChannelNumber);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Event = %lu",     modem->Event);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Norm  = %lu",     modem->Norm);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Opts. = 0x%08x",  modem->Options);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Tx    = %lu Bps", modem->TxSpeed);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Rx    = %lu Bps", modem->RxSpeed);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM RT    = %lu mSec",
-                                                                     modem->RoundtripMsec);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Sr    = %lu",     modem->SymbolRate);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM Rxl   = %d dBm",  modem->RxLeveldBm);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM El    = %d dBm",  modem->EchoLeveldBm);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM SNR   = %lu dB",  modem->SNRdb);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM MAE   = %lu",     modem->MAE);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM LRet  = %lu",
-                                                                     modem->LocalRetrains);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM RRet  = %lu",
-                                                                     modem->RemoteRetrains);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM LRes  = %lu",     modem->LocalResyncs);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "MDM RRes  = %lu",
-                                                                     modem->RemoteResyncs);
-        if (modem->Event == 3) {
-          diva_mnt_internal_dprintf(pC->hDbg->id,DLI_STAT,"MDM Disc  =  %lu",    modem->DiscReason);
-        }
-      }
-      if ((modem->Event == 3) && (pC->hDbg->dbgMask & DIVA_MGT_DBG_MDM_STATISTICS)) {
-        (*(pC->pIdiLib->DivaSTraceGetModemStatistics))(pC->pIdiLib);
-      }
-      break;
-
-    case DIVA_SUPER_TRACE_NOTIFY_FAX_CHANGE:
-      if (pC->hDbg->dbgMask & DIVA_MGT_DBG_FAX_PROGRESS) {
-                               {
-                                       int ch = TraceFilterChannel;
-                                       int id = TraceFilterIdent;
-
-                                       if ((id >= 0) && (ch >= 0) && (id < ARRAY_SIZE(clients)) &&
-                                               (clients[id].Dbg.id == (byte)id) && (clients[id].pIdiLib == hLib)) {
-                                               if (ch != (int)fax->ChannelNumber) {
-                                                       break;
-                                               }
-                                       } else if (TraceFilter[0] != 0) {
+                               if ((id >= 0) && (ch >= 0) && (id < ARRAY_SIZE(clients)) &&
+                                   (clients[id].Dbg.id == (byte)id) && (clients[id].pIdiLib == hLib)) {
+                                       if (ch != (int)fax->ChannelNumber) {
                                                break;
                                        }
+                               } else if (TraceFilter[0] != 0) {
+                                       break;
                                }
+                       }
+
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Ch    = %lu", (int)fax->ChannelNumber);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Event = %lu",     fax->Event);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Pages = %lu",     fax->Page_Counter);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Feat. = 0x%08x",  fax->Features);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX ID    = <%s>",    &fax->Station_ID[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Saddr = <%s>",    &fax->Subaddress[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Pwd   = <%s>",    &fax->Password[0]);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Speed = %lu",     fax->Speed);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Res.  = 0x%08x",  fax->Resolution);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Width = %lu",     fax->Paper_Width);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Length= %lu",     fax->Paper_Length);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX SLT   = %lu",     fax->Scanline_Time);
+                       if (fax->Event == 3) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Disc  = %lu",     fax->Disc_Reason);
+                       }
+               }
+               if ((fax->Event == 3) && (pC->hDbg->dbgMask & DIVA_MGT_DBG_FAX_STATISTICS)) {
+                       (*(pC->pIdiLib->DivaSTraceGetFaxStatistics))(pC->pIdiLib);
+               }
+               break;
+
+       case DIVA_SUPER_TRACE_INTERFACE_CHANGE:
+               if (pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_EVENTS) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT,
+                                                 "Layer 1 -> [%s]", channel->pInterface->Layer1);
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT,
+                                                 "Layer 2 -> [%s]", channel->pInterface->Layer2);
+               }
+               break;
+
+       case DIVA_SUPER_TRACE_NOTIFY_STAT_CHANGE:
+               if (pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_STATISTICS) {
+                       /*
+                         Incoming Statistics
+                       */
+                       if (channel->pInterfaceStat->inc.Calls) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Calls                     =%lu", channel->pInterfaceStat->inc.Calls);
+                       }
+                       if (channel->pInterfaceStat->inc.Connected) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Connected                 =%lu", channel->pInterfaceStat->inc.Connected);
+                       }
+                       if (channel->pInterfaceStat->inc.User_Busy) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Busy                      =%lu", channel->pInterfaceStat->inc.User_Busy);
+                       }
+                       if (channel->pInterfaceStat->inc.Call_Rejected) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Rejected                  =%lu", channel->pInterfaceStat->inc.Call_Rejected);
+                       }
+                       if (channel->pInterfaceStat->inc.Wrong_Number) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Wrong Nr                  =%lu", channel->pInterfaceStat->inc.Wrong_Number);
+                       }
+                       if (channel->pInterfaceStat->inc.Incompatible_Dst) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Incomp. Dest              =%lu", channel->pInterfaceStat->inc.Incompatible_Dst);
+                       }
+                       if (channel->pInterfaceStat->inc.Out_of_Order) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Out of Order              =%lu", channel->pInterfaceStat->inc.Out_of_Order);
+                       }
+                       if (channel->pInterfaceStat->inc.Ignored) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Inc Ignored                   =%lu", channel->pInterfaceStat->inc.Ignored);
+                       }
+
+                       /*
+                         Outgoing Statistics
+                       */
+                       if (channel->pInterfaceStat->outg.Calls) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg Calls                    =%lu", channel->pInterfaceStat->outg.Calls);
+                       }
+                       if (channel->pInterfaceStat->outg.Connected) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg Connected                =%lu", channel->pInterfaceStat->outg.Connected);
+                       }
+                       if (channel->pInterfaceStat->outg.User_Busy) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg Busy                     =%lu", channel->pInterfaceStat->outg.User_Busy);
+                       }
+                       if (channel->pInterfaceStat->outg.No_Answer) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg No Answer                =%lu", channel->pInterfaceStat->outg.No_Answer);
+                       }
+                       if (channel->pInterfaceStat->outg.Wrong_Number) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg Wrong Nr                 =%lu", channel->pInterfaceStat->outg.Wrong_Number);
+                       }
+                       if (channel->pInterfaceStat->outg.Call_Rejected) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg Rejected                 =%lu", channel->pInterfaceStat->outg.Call_Rejected);
+                       }
+                       if (channel->pInterfaceStat->outg.Other_Failures) {
+                               diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                         "Outg Other Failures           =%lu", channel->pInterfaceStat->outg.Other_Failures);
+                       }
+               }
+               break;
+
+       case DIVA_SUPER_TRACE_NOTIFY_MDM_STAT_CHANGE:
+               if (channel->pInterfaceStat->mdm.Disc_Normal) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Normal        = %lu", channel->pInterfaceStat->mdm.Disc_Normal);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Unspecified) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Unsp.         = %lu", channel->pInterfaceStat->mdm.Disc_Unspecified);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Busy_Tone) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Busy Tone     = %lu", channel->pInterfaceStat->mdm.Disc_Busy_Tone);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Congestion) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Congestion    = %lu", channel->pInterfaceStat->mdm.Disc_Congestion);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Carr_Wait) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Carrier Wait  = %lu", channel->pInterfaceStat->mdm.Disc_Carr_Wait);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Trn_Timeout) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Trn. T.o.     = %lu", channel->pInterfaceStat->mdm.Disc_Trn_Timeout);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Incompat) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Incompatible  = %lu", channel->pInterfaceStat->mdm.Disc_Incompat);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_Frame_Rej) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc Frame Reject  = %lu", channel->pInterfaceStat->mdm.Disc_Frame_Rej);
+               }
+               if (channel->pInterfaceStat->mdm.Disc_V42bis) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "MDM Disc V.42bis       = %lu", channel->pInterfaceStat->mdm.Disc_V42bis);
+               }
+               break;
 
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Ch    = %lu",(int)fax->ChannelNumber);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Event = %lu",     fax->Event);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Pages = %lu",     fax->Page_Counter);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Feat. = 0x%08x",  fax->Features);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX ID    = <%s>",    &fax->Station_ID[0]);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Saddr = <%s>",    &fax->Subaddress[0]);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Pwd   = <%s>",    &fax->Password[0]);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Speed = %lu",     fax->Speed);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Res.  = 0x%08x",  fax->Resolution);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Width = %lu",     fax->Paper_Width);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Length= %lu",     fax->Paper_Length);
-        diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX SLT   = %lu",     fax->Scanline_Time);
-        if (fax->Event == 3) {
-          diva_mnt_internal_dprintf(pC->hDbg->id, DLI_STAT, "FAX Disc  = %lu",     fax->Disc_Reason);
-        }
-      }
-      if ((fax->Event == 3) && (pC->hDbg->dbgMask & DIVA_MGT_DBG_FAX_STATISTICS)) {
-        (*(pC->pIdiLib->DivaSTraceGetFaxStatistics))(pC->pIdiLib);
-      }
-      break;
-
-    case DIVA_SUPER_TRACE_INTERFACE_CHANGE:
-      if (pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_EVENTS) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT,
-                                 "Layer 1 -> [%s]", channel->pInterface->Layer1);
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_STAT,
-                                 "Layer 2 -> [%s]", channel->pInterface->Layer2);
-      }
-      break;
-
-    case DIVA_SUPER_TRACE_NOTIFY_STAT_CHANGE:
-      if (pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_STATISTICS) {
-        /*
-          Incoming Statistics
-          */
-        if (channel->pInterfaceStat->inc.Calls) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Calls                     =%lu", channel->pInterfaceStat->inc.Calls);
-        }
-        if (channel->pInterfaceStat->inc.Connected) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Connected                 =%lu", channel->pInterfaceStat->inc.Connected);
-        }
-        if (channel->pInterfaceStat->inc.User_Busy) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Busy                      =%lu", channel->pInterfaceStat->inc.User_Busy);
-        }
-        if (channel->pInterfaceStat->inc.Call_Rejected) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Rejected                  =%lu", channel->pInterfaceStat->inc.Call_Rejected);
-        }
-        if (channel->pInterfaceStat->inc.Wrong_Number) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Wrong Nr                  =%lu", channel->pInterfaceStat->inc.Wrong_Number);
-        }
-        if (channel->pInterfaceStat->inc.Incompatible_Dst) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Incomp. Dest              =%lu", channel->pInterfaceStat->inc.Incompatible_Dst);
-        }
-        if (channel->pInterfaceStat->inc.Out_of_Order) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Out of Order              =%lu", channel->pInterfaceStat->inc.Out_of_Order);
-        }
-        if (channel->pInterfaceStat->inc.Ignored) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Inc Ignored                   =%lu", channel->pInterfaceStat->inc.Ignored);
-        }
-        
-        /*
-          Outgoing Statistics
-          */
-        if (channel->pInterfaceStat->outg.Calls) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg Calls                    =%lu", channel->pInterfaceStat->outg.Calls);
-        }
-        if (channel->pInterfaceStat->outg.Connected) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg Connected                =%lu", channel->pInterfaceStat->outg.Connected);
-        }
-        if (channel->pInterfaceStat->outg.User_Busy) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg Busy                     =%lu", channel->pInterfaceStat->outg.User_Busy);
-        }
-        if (channel->pInterfaceStat->outg.No_Answer) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg No Answer                =%lu", channel->pInterfaceStat->outg.No_Answer);
-        }
-        if (channel->pInterfaceStat->outg.Wrong_Number) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg Wrong Nr                 =%lu", channel->pInterfaceStat->outg.Wrong_Number);
-        }
-        if (channel->pInterfaceStat->outg.Call_Rejected) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg Rejected                 =%lu", channel->pInterfaceStat->outg.Call_Rejected);
-        }
-        if (channel->pInterfaceStat->outg.Other_Failures) {
-          diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-          "Outg Other Failures           =%lu", channel->pInterfaceStat->outg.Other_Failures);
-        }
-      }
-      break;
-
-    case DIVA_SUPER_TRACE_NOTIFY_MDM_STAT_CHANGE:
-      if (channel->pInterfaceStat->mdm.Disc_Normal) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Normal        = %lu", channel->pInterfaceStat->mdm.Disc_Normal);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Unspecified) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Unsp.         = %lu", channel->pInterfaceStat->mdm.Disc_Unspecified);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Busy_Tone) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Busy Tone     = %lu", channel->pInterfaceStat->mdm.Disc_Busy_Tone);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Congestion) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Congestion    = %lu", channel->pInterfaceStat->mdm.Disc_Congestion);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Carr_Wait) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Carrier Wait  = %lu", channel->pInterfaceStat->mdm.Disc_Carr_Wait);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Trn_Timeout) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Trn. T.o.     = %lu", channel->pInterfaceStat->mdm.Disc_Trn_Timeout);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Incompat) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Incompatible  = %lu", channel->pInterfaceStat->mdm.Disc_Incompat);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_Frame_Rej) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc Frame Reject  = %lu", channel->pInterfaceStat->mdm.Disc_Frame_Rej);
-      }
-      if (channel->pInterfaceStat->mdm.Disc_V42bis) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "MDM Disc V.42bis       = %lu", channel->pInterfaceStat->mdm.Disc_V42bis);
-      }
-      break;
-
-    case DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE:
-      if (channel->pInterfaceStat->fax.Disc_Normal) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Normal        = %lu", channel->pInterfaceStat->fax.Disc_Normal);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Not_Ident) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Not Ident.    = %lu", channel->pInterfaceStat->fax.Disc_Not_Ident);
-      }
-      if (channel->pInterfaceStat->fax.Disc_No_Response) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc No Response   = %lu", channel->pInterfaceStat->fax.Disc_No_Response);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Retries) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Max Retries   = %lu", channel->pInterfaceStat->fax.Disc_Retries);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Unexp_Msg) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Unexp. Msg.        = %lu", channel->pInterfaceStat->fax.Disc_Unexp_Msg);
-      }
-      if (channel->pInterfaceStat->fax.Disc_No_Polling) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc No Polling    = %lu", channel->pInterfaceStat->fax.Disc_No_Polling);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Training) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Training      = %lu", channel->pInterfaceStat->fax.Disc_Training);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Unexpected) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Unexpected    = %lu", channel->pInterfaceStat->fax.Disc_Unexpected);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Application) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Application   = %lu", channel->pInterfaceStat->fax.Disc_Application);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Incompat) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Incompatible  = %lu", channel->pInterfaceStat->fax.Disc_Incompat);
-      }
-      if (channel->pInterfaceStat->fax.Disc_No_Command) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc No Command    = %lu", channel->pInterfaceStat->fax.Disc_No_Command);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Long_Msg) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Long Msg.     = %lu", channel->pInterfaceStat->fax.Disc_Long_Msg);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Supervisor) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Supervisor    = %lu", channel->pInterfaceStat->fax.Disc_Supervisor);
-      }
-      if (channel->pInterfaceStat->fax.Disc_SUB_SEP_PWD) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc SUP SEP PWD   = %lu", channel->pInterfaceStat->fax.Disc_SUB_SEP_PWD);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Invalid_Msg) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Invalid Msg.  = %lu", channel->pInterfaceStat->fax.Disc_Invalid_Msg);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Page_Coding) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Page Coding   = %lu", channel->pInterfaceStat->fax.Disc_Page_Coding);
-      }
-      if (channel->pInterfaceStat->fax.Disc_App_Timeout) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Appl. T.o.    = %lu", channel->pInterfaceStat->fax.Disc_App_Timeout);
-      }
-      if (channel->pInterfaceStat->fax.Disc_Unspecified) {
-        diva_mnt_internal_dprintf (pC->hDbg->id, DLI_LOG,
-        "FAX Disc Unspec.       = %lu", channel->pInterfaceStat->fax.Disc_Unspecified);
-      }
-      break;
-  }
+       case DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE:
+               if (channel->pInterfaceStat->fax.Disc_Normal) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Normal        = %lu", channel->pInterfaceStat->fax.Disc_Normal);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Not_Ident) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Not Ident.    = %lu", channel->pInterfaceStat->fax.Disc_Not_Ident);
+               }
+               if (channel->pInterfaceStat->fax.Disc_No_Response) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc No Response   = %lu", channel->pInterfaceStat->fax.Disc_No_Response);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Retries) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Max Retries   = %lu", channel->pInterfaceStat->fax.Disc_Retries);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Unexp_Msg) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Unexp. Msg.        = %lu", channel->pInterfaceStat->fax.Disc_Unexp_Msg);
+               }
+               if (channel->pInterfaceStat->fax.Disc_No_Polling) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc No Polling    = %lu", channel->pInterfaceStat->fax.Disc_No_Polling);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Training) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Training      = %lu", channel->pInterfaceStat->fax.Disc_Training);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Unexpected) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Unexpected    = %lu", channel->pInterfaceStat->fax.Disc_Unexpected);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Application) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Application   = %lu", channel->pInterfaceStat->fax.Disc_Application);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Incompat) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Incompatible  = %lu", channel->pInterfaceStat->fax.Disc_Incompat);
+               }
+               if (channel->pInterfaceStat->fax.Disc_No_Command) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc No Command    = %lu", channel->pInterfaceStat->fax.Disc_No_Command);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Long_Msg) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Long Msg.     = %lu", channel->pInterfaceStat->fax.Disc_Long_Msg);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Supervisor) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Supervisor    = %lu", channel->pInterfaceStat->fax.Disc_Supervisor);
+               }
+               if (channel->pInterfaceStat->fax.Disc_SUB_SEP_PWD) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc SUP SEP PWD   = %lu", channel->pInterfaceStat->fax.Disc_SUB_SEP_PWD);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Invalid_Msg) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Invalid Msg.  = %lu", channel->pInterfaceStat->fax.Disc_Invalid_Msg);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Page_Coding) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Page Coding   = %lu", channel->pInterfaceStat->fax.Disc_Page_Coding);
+               }
+               if (channel->pInterfaceStat->fax.Disc_App_Timeout) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Appl. T.o.    = %lu", channel->pInterfaceStat->fax.Disc_App_Timeout);
+               }
+               if (channel->pInterfaceStat->fax.Disc_Unspecified) {
+                       diva_mnt_internal_dprintf(pC->hDbg->id, DLI_LOG,
+                                                 "FAX Disc Unspec.       = %lu", channel->pInterfaceStat->fax.Disc_Unspecified);
+               }
+               break;
+       }
 }
 
 /*
   Receive trace information from the Management Interface and store it in the
   internal trace buffer with MSG_TYPE_MLOG as is, without any filtering.
   Event Filtering and formatting is done in  Management Interface self.
-  */
-static void diva_maint_trace_notify (void* user_context,
-                                     diva_strace_library_interface_t* hLib,
-                                     int Adapter,
-                                     void* xlog_buffer,
-                                     int length) {
-  diva_maint_client_t* pC = (diva_maint_client_t*)user_context;
-  diva_dbg_entry_head_t* pmsg;
-  word size;
-  dword sec, usec;
-  int ch = TraceFilterChannel;
-  int id = TraceFilterIdent;
-
-  /*
-    Selective trace
-    */
-  if ((id >= 0) && (ch >= 0) && (id < ARRAY_SIZE(clients)) &&
-      (clients[id].Dbg.id == (byte)id) && (clients[id].pIdiLib == hLib)) {
-    const char* p = NULL;
-    int ch_value = -1;
-    MI_XLOG_HDR *TrcData = (MI_XLOG_HDR *)xlog_buffer;
-
-    if (Adapter != clients[id].logical) {
-      return; /* Ignore all trace messages from other adapters */
-    }
-
-    if (TrcData->code == 24) {
-      p = (char*)&TrcData->code;
-      p += 2;
-    }
-
-    /*
-      All L1 messages start as [dsp,ch], so we can filter this information
-      and filter out all messages that use different channel
-      */
-    if (p && p[0] == '[') {
-      if (p[2] == ',') {
-        p += 3;
-        ch_value = *p - '0';
-      } else if (p[3] == ',') {
-        p += 4;
-        ch_value = *p - '0';
-      }
-      if (ch_value >= 0) {
-        if (p[2] == ']') {
-          ch_value = ch_value * 10 + p[1] - '0';
-        }
-        if (ch_value != ch) {
-          return; /* Ignore other channels */
-        }
-      }
-    }
+*/
+static void diva_maint_trace_notify(void *user_context,
+                                   diva_strace_library_interface_t *hLib,
+                                   int Adapter,
+                                   void *xlog_buffer,
+                                   int length) {
+       diva_maint_client_t *pC = (diva_maint_client_t *)user_context;
+       diva_dbg_entry_head_t *pmsg;
+       word size;
+       dword sec, usec;
+       int ch = TraceFilterChannel;
+       int id = TraceFilterIdent;
+
+       /*
+         Selective trace
+       */
+       if ((id >= 0) && (ch >= 0) && (id < ARRAY_SIZE(clients)) &&
+           (clients[id].Dbg.id == (byte)id) && (clients[id].pIdiLib == hLib)) {
+               const char *p = NULL;
+               int ch_value = -1;
+               MI_XLOG_HDR *TrcData = (MI_XLOG_HDR *)xlog_buffer;
+
+               if (Adapter != clients[id].logical) {
+                       return; /* Ignore all trace messages from other adapters */
+               }
+
+               if (TrcData->code == 24) {
+                       p = (char *)&TrcData->code;
+                       p += 2;
+               }
+
+               /*
+                 All L1 messages start as [dsp,ch], so we can filter this information
+                 and filter out all messages that use different channel
+               */
+               if (p && p[0] == '[') {
+                       if (p[2] == ',') {
+                               p += 3;
+                               ch_value = *p - '0';
+                       } else if (p[3] == ',') {
+                               p += 4;
+                               ch_value = *p - '0';
+                       }
+                       if (ch_value >= 0) {
+                               if (p[2] == ']') {
+                                       ch_value = ch_value * 10 + p[1] - '0';
+                               }
+                               if (ch_value != ch) {
+                                       return; /* Ignore other channels */
+                               }
+                       }
+               }
 
        } else if (TraceFilter[0] != 0) {
-    return; /* Ignore trace if trace filter is activated, but idle */
-  }
-
-  diva_os_get_time (&sec, &usec);
-
-  while (!(pmsg = (diva_dbg_entry_head_t*)queueAllocMsg (dbg_queue,
-                              (word)length+sizeof(*pmsg)))) {
-    if ((pmsg = (diva_dbg_entry_head_t*)queuePeekMsg (dbg_queue, &size))) {
-      queueFreeMsg (dbg_queue);
-    } else {
-      break;
-    }
-  }
-  if (pmsg) {
-    memcpy (&pmsg[1], xlog_buffer, length);
-    pmsg->sequence    = dbg_sequence++;
-    pmsg->time_sec    = sec;
-    pmsg->time_usec   = usec;
-    pmsg->facility    = MSG_TYPE_MLOG;
-    pmsg->dli         = pC->logical;
-    pmsg->drv_id      = pC->hDbg->id;
-    pmsg->di_cpu      = 0;
-    pmsg->data_length = length;
-    queueCompleteMsg (pmsg);
-    if (queueCount(dbg_queue)) {
-      diva_maint_wakeup_read();
-    }
-  }
+               return; /* Ignore trace if trace filter is activated, but idle */
+       }
+
+       diva_os_get_time(&sec, &usec);
+
+       while (!(pmsg = (diva_dbg_entry_head_t *)queueAllocMsg(dbg_queue,
+                                                              (word)length + sizeof(*pmsg)))) {
+               if ((pmsg = (diva_dbg_entry_head_t *)queuePeekMsg(dbg_queue, &size))) {
+                       queueFreeMsg(dbg_queue);
+               } else {
+                       break;
+               }
+       }
+       if (pmsg) {
+               memcpy(&pmsg[1], xlog_buffer, length);
+               pmsg->sequence    = dbg_sequence++;
+               pmsg->time_sec    = sec;
+               pmsg->time_usec   = usec;
+               pmsg->facility    = MSG_TYPE_MLOG;
+               pmsg->dli         = pC->logical;
+               pmsg->drv_id      = pC->hDbg->id;
+               pmsg->di_cpu      = 0;
+               pmsg->data_length = length;
+               queueCompleteMsg(pmsg);
+               if (queueCount(dbg_queue)) {
+                       diva_maint_wakeup_read();
+               }
+       }
 }
 
 
 /*
   Convert MAINT trace mask to management interface trace mask/work/facility and
   issue command to management interface
-  */
-static void diva_change_management_debug_mask (diva_maint_client_t* pC, dword old_mask) {
-  if (pC->request && pC->hDbg && pC->pIdiLib) {
-    dword changed = pC->hDbg->dbgMask ^ old_mask;
-
-    if (changed & DIVA_MGT_DBG_TRACE) {
-      (*(pC->pIdiLib->DivaSTraceSetInfo))(pC->pIdiLib,
-                                          (pC->hDbg->dbgMask & DIVA_MGT_DBG_TRACE) != 0);
-    }
-    if (changed & DIVA_MGT_DBG_DCHAN) {
-      (*(pC->pIdiLib->DivaSTraceSetDChannel))(pC->pIdiLib,
-                                              (pC->hDbg->dbgMask & DIVA_MGT_DBG_DCHAN) != 0);
-    }
-    if (!TraceFilter[0]) {
-      if (changed & DIVA_MGT_DBG_IFC_BCHANNEL) {
-        int i, state = ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_BCHANNEL) != 0);
-
-        for (i = 0; i < pC->channels; i++) {
-          (*(pC->pIdiLib->DivaSTraceSetBChannel))(pC->pIdiLib, i+1, state);
-        }
-      }
-      if (changed & DIVA_MGT_DBG_IFC_AUDIO) {
-        int i, state = ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_AUDIO) != 0);
-
-        for (i = 0; i < pC->channels; i++) {
-          (*(pC->pIdiLib->DivaSTraceSetAudioTap))(pC->pIdiLib, i+1, state);
-        }
-      }
-    }
-  }
+*/
+static void diva_change_management_debug_mask(diva_maint_client_t *pC, dword old_mask) {
+       if (pC->request && pC->hDbg && pC->pIdiLib) {
+               dword changed = pC->hDbg->dbgMask ^ old_mask;
+
+               if (changed & DIVA_MGT_DBG_TRACE) {
+                       (*(pC->pIdiLib->DivaSTraceSetInfo))(pC->pIdiLib,
+                                                           (pC->hDbg->dbgMask & DIVA_MGT_DBG_TRACE) != 0);
+               }
+               if (changed & DIVA_MGT_DBG_DCHAN) {
+                       (*(pC->pIdiLib->DivaSTraceSetDChannel))(pC->pIdiLib,
+                                                               (pC->hDbg->dbgMask & DIVA_MGT_DBG_DCHAN) != 0);
+               }
+               if (!TraceFilter[0]) {
+                       if (changed & DIVA_MGT_DBG_IFC_BCHANNEL) {
+                               int i, state = ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_BCHANNEL) != 0);
+
+                               for (i = 0; i < pC->channels; i++) {
+                                       (*(pC->pIdiLib->DivaSTraceSetBChannel))(pC->pIdiLib, i + 1, state);
+                               }
+                       }
+                       if (changed & DIVA_MGT_DBG_IFC_AUDIO) {
+                               int i, state = ((pC->hDbg->dbgMask & DIVA_MGT_DBG_IFC_AUDIO) != 0);
+
+                               for (i = 0; i < pC->channels; i++) {
+                                       (*(pC->pIdiLib->DivaSTraceSetAudioTap))(pC->pIdiLib, i + 1, state);
+                               }
+                       }
+               }
+       }
 }
 
 
-void diva_mnt_internal_dprintf (dword drv_id, dword type, char* fmt, ...) {
-  va_list ap;
+void diva_mnt_internal_dprintf(dword drv_id, dword type, char *fmt, ...) {
+       va_list ap;
 
        va_start(ap, fmt);
-  DI_format (0, (word)drv_id, (int)type, fmt, ap);
+       DI_format(0, (word)drv_id, (int)type, fmt, ap);
        va_end(ap);
 }
 
 /*
   Shutdown all adapters before driver removal
-  */
-int diva_mnt_shutdown_xdi_adapters (void) {
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
-  int i, fret = 0;
-  byte * pmem;
-
-
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    pmem = NULL;
-
-    diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "unload");
-    diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "unload");
-
-    if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request) {
-      if ((*(clients[i].pIdiLib->DivaSTraceLibraryStop))(clients[i].pIdiLib) == 1) {
-        /*
-          Adapter removal complete
-          */
-        if (clients[i].pIdiLib) {
-          (*(clients[i].pIdiLib->DivaSTraceLibraryFinit))(clients[i].pIdiLib->hLib);
-          clients[i].pIdiLib = NULL;
-
-          pmem = clients[i].pmem;
-          clients[i].pmem = NULL;
-        }
-        clients[i].hDbg    = NULL;
-        clients[i].request_pending = 0;
-
-        if (clients[i].dma_handle >= 0) {
-          /*
-            Free DMA handle
-            */
-          diva_free_dma_descriptor (clients[i].request, clients[i].dma_handle);
-          clients[i].dma_handle = -1;
+*/
+int diva_mnt_shutdown_xdi_adapters(void) {
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
+       int i, fret = 0;
+       byte *pmem;
+
+
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               pmem = NULL;
+
+               diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "unload");
+               diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "unload");
+
+               if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request) {
+                       if ((*(clients[i].pIdiLib->DivaSTraceLibraryStop))(clients[i].pIdiLib) == 1) {
+                               /*
+                                 Adapter removal complete
+                               */
+                               if (clients[i].pIdiLib) {
+                                       (*(clients[i].pIdiLib->DivaSTraceLibraryFinit))(clients[i].pIdiLib->hLib);
+                                       clients[i].pIdiLib = NULL;
+
+                                       pmem = clients[i].pmem;
+                                       clients[i].pmem = NULL;
                                }
-        clients[i].request = NULL;
-      } else {
-        fret = -1;
-      }
-    }
-
-    diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "unload");
-    if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request && clients[i].request_pending) {
-      clients[i].request_pending = 0;
-      (*(clients[i].request))((ENTITY*)(*(clients[i].pIdiLib->DivaSTraceGetHandle))(clients[i].pIdiLib->hLib));
-      if (clients[i].dma_handle >= 0) {
-        diva_free_dma_descriptor (clients[i].request, clients[i].dma_handle);
-        clients[i].dma_handle = -1;
-      }
-    }
-    diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "unload");
-
-    if (pmem) {
-      diva_os_free (0, pmem);
-    }
-  }
-
-  return (fret);
+                               clients[i].hDbg    = NULL;
+                               clients[i].request_pending = 0;
+
+                               if (clients[i].dma_handle >= 0) {
+                                       /*
+                                         Free DMA handle
+                                       */
+                                       diva_free_dma_descriptor(clients[i].request, clients[i].dma_handle);
+                                       clients[i].dma_handle = -1;
+                               }
+                               clients[i].request = NULL;
+                       } else {
+                               fret = -1;
+                       }
+               }
+
+               diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "unload");
+               if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request && clients[i].request_pending) {
+                       clients[i].request_pending = 0;
+                       (*(clients[i].request))((ENTITY *)(*(clients[i].pIdiLib->DivaSTraceGetHandle))(clients[i].pIdiLib->hLib));
+                       if (clients[i].dma_handle >= 0) {
+                               diva_free_dma_descriptor(clients[i].request, clients[i].dma_handle);
+                               clients[i].dma_handle = -1;
+                       }
+               }
+               diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "unload");
+
+               if (pmem) {
+                       diva_os_free(0, pmem);
+               }
+       }
+
+       return (fret);
 }
 
 /*
   Set/Read the trace filter used for selective tracing.
   Affects B- and Audio Tap trace mask at run time
-  */
-int diva_set_trace_filter (int filter_length, const char* filter) {
-  diva_os_spin_lock_magic_t old_irql, old_irql1;
-  int i, ch, on, client_b_on, client_atap_on;
-
-  diva_os_enter_spin_lock (&dbg_adapter_lock, &old_irql1, "dbg mask");
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "write_filter");
-
-  if (filter_length <= DIVA_MAX_SELECTIVE_FILTER_LENGTH) {
-    memcpy (&TraceFilter[0], filter, filter_length);
-    if (TraceFilter[filter_length]) {
-      TraceFilter[filter_length] = 0;
-    }
-    if (TraceFilter[0] == '*') {
-      TraceFilter[0] = 0;
-    }
-  } else {
-    filter_length = -1;
-  }
-
-  TraceFilterIdent   = -1;
-  TraceFilterChannel = -1;
-
-  on = (TraceFilter[0] == 0);
-
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request) {
-      client_b_on    = on && ((clients[i].hDbg->dbgMask & DIVA_MGT_DBG_IFC_BCHANNEL) != 0);
-      client_atap_on = on && ((clients[i].hDbg->dbgMask & DIVA_MGT_DBG_IFC_AUDIO)    != 0);
-      for (ch = 0; ch < clients[i].channels; ch++) {
-        (*(clients[i].pIdiLib->DivaSTraceSetBChannel))(clients[i].pIdiLib->hLib, ch+1, client_b_on);
-        (*(clients[i].pIdiLib->DivaSTraceSetAudioTap))(clients[i].pIdiLib->hLib, ch+1, client_atap_on);
-      }
-    }
-  }
-
-  for (i = 1; i < ARRAY_SIZE(clients); i++) {
-    if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request && clients[i].request_pending) {
-      diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "write_filter");
-      clients[i].request_pending = 0;
-      (*(clients[i].request))((ENTITY*)(*(clients[i].pIdiLib->DivaSTraceGetHandle))(clients[i].pIdiLib->hLib));
-      diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "write_filter");
-    }
-  }
-
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "write_filter");
-  diva_os_leave_spin_lock (&dbg_adapter_lock, &old_irql1, "dbg mask");
-
-  return (filter_length);
+*/
+int diva_set_trace_filter(int filter_length, const char *filter) {
+       diva_os_spin_lock_magic_t old_irql, old_irql1;
+       int i, ch, on, client_b_on, client_atap_on;
+
+       diva_os_enter_spin_lock(&dbg_adapter_lock, &old_irql1, "dbg mask");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "write_filter");
+
+       if (filter_length <= DIVA_MAX_SELECTIVE_FILTER_LENGTH) {
+               memcpy(&TraceFilter[0], filter, filter_length);
+               if (TraceFilter[filter_length]) {
+                       TraceFilter[filter_length] = 0;
+               }
+               if (TraceFilter[0] == '*') {
+                       TraceFilter[0] = 0;
+               }
+       } else {
+               filter_length = -1;
+       }
+
+       TraceFilterIdent   = -1;
+       TraceFilterChannel = -1;
+
+       on = (TraceFilter[0] == 0);
+
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request) {
+                       client_b_on    = on && ((clients[i].hDbg->dbgMask & DIVA_MGT_DBG_IFC_BCHANNEL) != 0);
+                       client_atap_on = on && ((clients[i].hDbg->dbgMask & DIVA_MGT_DBG_IFC_AUDIO)    != 0);
+                       for (ch = 0; ch < clients[i].channels; ch++) {
+                               (*(clients[i].pIdiLib->DivaSTraceSetBChannel))(clients[i].pIdiLib->hLib, ch + 1, client_b_on);
+                               (*(clients[i].pIdiLib->DivaSTraceSetAudioTap))(clients[i].pIdiLib->hLib, ch + 1, client_atap_on);
+                       }
+               }
+       }
+
+       for (i = 1; i < ARRAY_SIZE(clients); i++) {
+               if (clients[i].hDbg && clients[i].pIdiLib && clients[i].request && clients[i].request_pending) {
+                       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "write_filter");
+                       clients[i].request_pending = 0;
+                       (*(clients[i].request))((ENTITY *)(*(clients[i].pIdiLib->DivaSTraceGetHandle))(clients[i].pIdiLib->hLib));
+                       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "write_filter");
+               }
+       }
+
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "write_filter");
+       diva_os_leave_spin_lock(&dbg_adapter_lock, &old_irql1, "dbg mask");
+
+       return (filter_length);
 }
 
-int diva_get_trace_filter (int max_length, char* filter) {
-  diva_os_spin_lock_magic_t old_irql;
-  int len;
+int diva_get_trace_filter(int max_length, char *filter) {
+       diva_os_spin_lock_magic_t old_irql;
+       int len;
 
-  diva_os_enter_spin_lock (&dbg_q_lock, &old_irql, "read_filter");
-  len = strlen (&TraceFilter[0]) + 1;
-  if (max_length >= len) {
-    memcpy (filter, &TraceFilter[0], len);
-  }
-  diva_os_leave_spin_lock (&dbg_q_lock, &old_irql, "read_filter");
+       diva_os_enter_spin_lock(&dbg_q_lock, &old_irql, "read_filter");
+       len = strlen(&TraceFilter[0]) + 1;
+       if (max_length >= len) {
+               memcpy(filter, &TraceFilter[0], len);
+       }
+       diva_os_leave_spin_lock(&dbg_q_lock, &old_irql, "read_filter");
 
-  return (len);
+       return (len);
 }
 
-static int diva_dbg_cmp_key (const char* ref, const char* key) {
+static int diva_dbg_cmp_key(const char *ref, const char *key) {
        while (*key && (*ref++ == *key++));
-  return (!*key && !*ref);
+       return (!*key && !*ref);
 }
 
 /*
@@ -2055,78 +2055,77 @@ static int diva_dbg_cmp_key (const char* ref, const char* key) {
   all following characters are interpreted as command.
   Followings commands are available:
   - single, trace single call at time, independent from CPN/CiPN
-  */
-static int diva_mnt_cmp_nmbr (const char* nmbr) {
-  const char* ref = &TraceFilter[0];
-  int ref_len = strlen(&TraceFilter[0]), nmbr_len = strlen(nmbr);
-
-  if (ref[0] == 'C') {
-    if (diva_dbg_cmp_key (&ref[1], "single")) {
-      return (0);
-    }
-    return (-1);
-  }
-
-  if (!ref_len || (ref_len > nmbr_len)) {
-    return (-1);
-  }
-
-  nmbr = nmbr + nmbr_len - 1;
-  ref  = ref  + ref_len  - 1;
-
-  while (ref_len--) {
-    if (*nmbr-- != *ref--) {
-      return (-1);
-    }
-  }
-
-  return (0);
+*/
+static int diva_mnt_cmp_nmbr(const char *nmbr) {
+       const char *ref = &TraceFilter[0];
+       int ref_len = strlen(&TraceFilter[0]), nmbr_len = strlen(nmbr);
+
+       if (ref[0] == 'C') {
+               if (diva_dbg_cmp_key(&ref[1], "single")) {
+                       return (0);
+               }
+               return (-1);
+       }
+
+       if (!ref_len || (ref_len > nmbr_len)) {
+               return (-1);
+       }
+
+       nmbr = nmbr + nmbr_len - 1;
+       ref  = ref  + ref_len  - 1;
+
+       while (ref_len--) {
+               if (*nmbr-- != *ref--) {
+                       return (-1);
+               }
+       }
+
+       return (0);
 }
 
-static int diva_get_dma_descriptor (IDI_CALL request, dword *dma_magic) {
-  ENTITY e;
-  IDI_SYNC_REQ* pReq = (IDI_SYNC_REQ*)&e;
+static int diva_get_dma_descriptor(IDI_CALL request, dword *dma_magic) {
+       ENTITY e;
+       IDI_SYNC_REQ *pReq = (IDI_SYNC_REQ *)&e;
 
-  if (!request) {
-    return (-1);
-  }
+       if (!request) {
+               return (-1);
+       }
 
-  pReq->xdi_dma_descriptor_operation.Req = 0;
-  pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
+       pReq->xdi_dma_descriptor_operation.Req = 0;
+       pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
 
-  pReq->xdi_dma_descriptor_operation.info.operation =     IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_number  = -1;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
+       pReq->xdi_dma_descriptor_operation.info.operation =     IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_number  = -1;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
 
-  (*request)((ENTITY*)pReq);
+       (*request)((ENTITY *)pReq);
 
-  if (!pReq->xdi_dma_descriptor_operation.info.operation &&
-      (pReq->xdi_dma_descriptor_operation.info.descriptor_number >= 0) &&
-      pReq->xdi_dma_descriptor_operation.info.descriptor_magic) {
-    *dma_magic = pReq->xdi_dma_descriptor_operation.info.descriptor_magic;
-    return (pReq->xdi_dma_descriptor_operation.info.descriptor_number);
-  } else {
-    return (-1);
-  }
+       if (!pReq->xdi_dma_descriptor_operation.info.operation &&
+           (pReq->xdi_dma_descriptor_operation.info.descriptor_number >= 0) &&
+           pReq->xdi_dma_descriptor_operation.info.descriptor_magic) {
+               *dma_magic = pReq->xdi_dma_descriptor_operation.info.descriptor_magic;
+               return (pReq->xdi_dma_descriptor_operation.info.descriptor_number);
+       } else {
+               return (-1);
+       }
 }
 
-static void diva_free_dma_descriptor (IDI_CALL request, int nr) {
-  ENTITY e;
-  IDI_SYNC_REQ* pReq = (IDI_SYNC_REQ*)&e;
+static void diva_free_dma_descriptor(IDI_CALL request, int nr) {
+       ENTITY e;
+       IDI_SYNC_REQ *pReq = (IDI_SYNC_REQ *)&e;
 
-  if (!request || (nr < 0)) {
-    return;
-  }
+       if (!request || (nr < 0)) {
+               return;
+       }
 
-  pReq->xdi_dma_descriptor_operation.Req = 0;
-  pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
+       pReq->xdi_dma_descriptor_operation.Req = 0;
+       pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
 
-  pReq->xdi_dma_descriptor_operation.info.operation = IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_number  = nr;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
+       pReq->xdi_dma_descriptor_operation.info.operation = IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_number  = nr;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
 
-  (*request)((ENTITY*)pReq);
+       (*request)((ENTITY *)pReq);
 }
-
index 4db739d..fc5953a 100644 (file)
@@ -1,23 +1,23 @@
 /*
  *
 Copyright (c) Eicon Technology Corporation, 2000.
+ Copyright (c) Eicon Technology Corporation, 2000.
  *
 This source file is supplied for the use with Eicon
 Technology Corporation's range of DIVA Server Adapters.
+ This source file is supplied for the use with Eicon
+ Technology Corporation's range of DIVA Server Adapters.
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_DEBUG_IF_H__
 #define MSG_FRAME_MAX_SIZE 2150
 
 typedef struct _diva_dbg_entry_head {
-  dword sequence;
-  dword time_sec;
-  dword time_usec;
-  dword facility;
-  dword dli;
-  dword drv_id;
-  dword di_cpu;
-  dword data_length;
+       dword sequence;
+       dword time_sec;
+       dword time_usec;
+       dword facility;
+       dword dli;
+       dword drv_id;
+       dword di_cpu;
+       dword data_length;
 } diva_dbg_entry_head_t;
 
-int diva_maint_init (byte* base, unsigned long length, int do_init);
-void* diva_maint_finit (void);
-dword diva_dbg_q_length (void);
-diva_dbg_entry_head_t* diva_maint_get_message (word* size,
-                                               diva_os_spin_lock_magic_t* old_irql);
-void diva_maint_ack_message (int do_release,
-                             diva_os_spin_lock_magic_t* old_irql);
-void diva_maint_prtComp (char *format, ...);
-void diva_maint_wakeup_read (void);
-int diva_get_driver_info (dword id, byte* data, int data_length);
-int diva_get_driver_dbg_mask (dword id, byte* data);
-int diva_set_driver_dbg_mask (dword id, dword mask);
-void diva_mnt_remove_xdi_adapter (const DESCRIPTOR* d);
-void diva_mnt_add_xdi_adapter    (const DESCRIPTOR* d);
-int diva_mnt_shutdown_xdi_adapters (void);
+int diva_maint_init(byte *base, unsigned long length, int do_init);
+void *diva_maint_finit(void);
+dword diva_dbg_q_length(void);
+diva_dbg_entry_head_t *diva_maint_get_message(word *size,
+                                             diva_os_spin_lock_magic_t *old_irql);
+void diva_maint_ack_message(int do_release,
+                           diva_os_spin_lock_magic_t *old_irql);
+void diva_maint_prtComp(char *format, ...);
+void diva_maint_wakeup_read(void);
+int diva_get_driver_info(dword id, byte *data, int data_length);
+int diva_get_driver_dbg_mask(dword id, byte *data);
+int diva_set_driver_dbg_mask(dword id, dword mask);
+void diva_mnt_remove_xdi_adapter(const DESCRIPTOR *d);
+void diva_mnt_add_xdi_adapter(const DESCRIPTOR *d);
+int diva_mnt_shutdown_xdi_adapters(void);
 
 #define DIVA_MAX_SELECTIVE_FILTER_LENGTH 127
-int diva_set_trace_filter (int filter_length, const char* filter);
-int diva_get_trace_filter (int max_length,    char*       filter);
+int diva_set_trace_filter(int filter_length, const char *filter);
+int diva_get_trace_filter(int max_length, char *filter);
 
 
 #define DITRACE_CMD_GET_DRIVER_INFO   1
@@ -72,7 +72,7 @@ int diva_get_trace_filter (int max_length,    char*       filter);
 
 /*
   Trace lavels for debug via management interface
-  */
+*/
 #define DIVA_MGT_DBG_TRACE          0x00000001 /* All trace messages from the card */
 #define DIVA_MGT_DBG_DCHAN          0x00000002 /* All D-channel relater trace messages */
 #define DIVA_MGT_DBG_MDM_PROGRESS   0x00000004 /* Modem progress events */
@@ -86,5 +86,3 @@ int diva_get_trace_filter (int max_length,    char*       filter);
 #define DIVA_MGT_DBG_IFC_AUDIO      0x00000400 /* Audio Tap trace for all channels */
 
 # endif /* DEBUG_IF___H */
-
-
index e39c5c1..d5b1092 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 
 #ifdef DIVA_NO_DEBUGLIB
 static DIVA_DI_PRINTF dprintf;
 #else /* DIVA_NO_DEBUGLIB */
+
 _DbgHandle_ myDriverDebugHandle = { 0 /*!Registered*/, DBG_HANDLE_VERSION };
 DIVA_DI_PRINTF dprintf = no_printf;
 /*****************************************************************************/
-#define DBG_FUNC(name) \
-void  \
-myDbgPrint_##name (char *format, ...) \
-{ va_list ap ; \
if ( myDriverDebugHandle.dbg_prt ) \
{ va_start (ap, format) ; \
-  (myDriverDebugHandle.dbg_prt) \
-   (myDriverDebugHandle.id, DLI_##name, format, ap) ; \
-  va_end (ap) ; \
-} }
+#define DBG_FUNC(name)                                                 \
+       void                                                            \
+       myDbgPrint_##name(char *format, ...)                            \
+       { va_list ap;                                                   \
              if (myDriverDebugHandle.dbg_prt)                        \
              { va_start(ap, format);                         \
+                       (myDriverDebugHandle.dbg_prt)                   \
+                               (myDriverDebugHandle.id, DLI_##name, format, ap); \
+                       va_end(ap);                                     \
+               } }
 DBG_FUNC(LOG)
 DBG_FUNC(FTL)
 DBG_FUNC(ERR)
 DBG_FUNC(TRC)
 DBG_FUNC(MXLOG)
 DBG_FUNC(FTL_MXLOG)
-void 
-myDbgPrint_EVL (long msgID, ...)
-{ va_list ap ;
if ( myDriverDebugHandle.dbg_ev )
{ va_start (ap, msgID) ;
-  (myDriverDebugHandle.dbg_ev)
-   (myDriverDebugHandle.id, (unsigned long)msgID, ap) ;
-  va_end (ap) ;
-} }
+void
+myDbgPrint_EVL(long msgID, ...)
+{ va_list ap;
      if (myDriverDebugHandle.dbg_ev)
      { va_start(ap, msgID);
+               (myDriverDebugHandle.dbg_ev)
+                       (myDriverDebugHandle.id, (unsigned long)msgID, ap);
+               va_end(ap);
+       } }
 DBG_FUNC(REG)
 DBG_FUNC(MEM)
 DBG_FUNC(SPL)
@@ -76,81 +76,81 @@ DBG_FUNC(PRV2)
 DBG_FUNC(PRV3)
 /*****************************************************************************/
 int
-DbgRegister (char *drvName, char *drvTag, unsigned long dbgMask)
+DbgRegister(char *drvName, char *drvTag, unsigned long dbgMask)
 {
- int len;
      int len;
 /*
  * deregister (if already registered) and zero out myDriverDebugHandle
  */
DbgDeregister () ;
      DbgDeregister();
 /*
  * initialize the debug handle
  */
myDriverDebugHandle.Version = DBG_HANDLE_VERSION ;
myDriverDebugHandle.id  = -1 ;
myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG) ;
len = strlen (drvName) ;
memcpy (myDriverDebugHandle.drvName, drvName,
-         (len < sizeof(myDriverDebugHandle.drvName)) ?
-    len : sizeof(myDriverDebugHandle.drvName) - 1) ;
len = strlen (drvTag) ;
memcpy (myDriverDebugHandle.drvTag, drvTag,
-         (len < sizeof(myDriverDebugHandle.drvTag)) ?
-    len : sizeof(myDriverDebugHandle.drvTag) - 1) ;
      myDriverDebugHandle.Version = DBG_HANDLE_VERSION;
      myDriverDebugHandle.id  = -1;
      myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG);
      len = strlen(drvName);
      memcpy(myDriverDebugHandle.drvName, drvName,
+              (len < sizeof(myDriverDebugHandle.drvName)) ?
+              len : sizeof(myDriverDebugHandle.drvName) - 1);
      len = strlen(drvTag);
      memcpy(myDriverDebugHandle.drvTag, drvTag,
+              (len < sizeof(myDriverDebugHandle.drvTag)) ?
+              len : sizeof(myDriverDebugHandle.drvTag) - 1);
 /*
  * Try to register debugging via old (and only) interface
  */
dprintf("\000\377", &myDriverDebugHandle) ;
if ( myDriverDebugHandle.dbg_prt )
- {
-  return (1) ;
- }
      dprintf("\000\377", &myDriverDebugHandle);
      if (myDriverDebugHandle.dbg_prt)
      {
+               return (1);
      }
 /*
  * Check if we registered with an old maint driver (see debuglib.h)
  */
if ( myDriverDebugHandle.dbg_end != NULL
-   /* location of 'dbg_prt' in _OldDbgHandle_ struct */
-   && (myDriverDebugHandle.regTime.LowPart ||
-       myDriverDebugHandle.regTime.HighPart  ) )
-   /* same location as in _OldDbgHandle_ struct */
- {
-  dprintf("%s: Cannot log to old maint driver !", drvName) ;
-  myDriverDebugHandle.dbg_end =
-  ((_OldDbgHandle_ *)&myDriverDebugHandle)->dbg_end ;
-  DbgDeregister () ;
- }
return (0) ;
      if (myDriverDebugHandle.dbg_end != NULL
+            /* location of 'dbg_prt' in _OldDbgHandle_ struct */
+            && (myDriverDebugHandle.regTime.LowPart ||
+                myDriverDebugHandle.regTime.HighPart))
+               /* same location as in _OldDbgHandle_ struct */
      {
+               dprintf("%s: Cannot log to old maint driver !", drvName);
+               myDriverDebugHandle.dbg_end =
+                       ((_OldDbgHandle_ *)&myDriverDebugHandle)->dbg_end;
+               DbgDeregister();
      }
      return (0);
 }
 /*****************************************************************************/
 void
-DbgSetLevel (unsigned long dbgMask)
+DbgSetLevel(unsigned long dbgMask)
 {
myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG) ;
      myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG);
 }
 /*****************************************************************************/
 void
-DbgDeregister (void)
+DbgDeregister(void)
 {
if ( myDriverDebugHandle.dbg_end )
- {
-  (myDriverDebugHandle.dbg_end)(&myDriverDebugHandle) ;
- }
memset (&myDriverDebugHandle, 0, sizeof(myDriverDebugHandle)) ;
      if (myDriverDebugHandle.dbg_end)
      {
+               (myDriverDebugHandle.dbg_end)(&myDriverDebugHandle);
      }
      memset(&myDriverDebugHandle, 0, sizeof(myDriverDebugHandle));
 }
-void  xdi_dbg_xlog (char* x, ...) {
- va_list ap;
va_start (ap, x);
- if (myDriverDebugHandle.dbg_end &&
-   (myDriverDebugHandle.dbg_irq || myDriverDebugHandle.dbg_old) &&
-   (myDriverDebugHandle.dbgMask & DL_STAT)) {
-  if (myDriverDebugHandle.dbg_irq) {
-   (*(myDriverDebugHandle.dbg_irq))(myDriverDebugHandle.id,
-       (x[0] != 0) ? DLI_TRC : DLI_XLOG, x, ap);
-  } else {
-   (*(myDriverDebugHandle.dbg_old))(myDriverDebugHandle.id, x, ap);
-  }
- }
- va_end(ap);
+void xdi_dbg_xlog(char *x, ...) {
      va_list ap;
      va_start(ap, x);
      if (myDriverDebugHandle.dbg_end &&
+           (myDriverDebugHandle.dbg_irq || myDriverDebugHandle.dbg_old) &&
+           (myDriverDebugHandle.dbgMask & DL_STAT)) {
+               if (myDriverDebugHandle.dbg_irq) {
+                       (*(myDriverDebugHandle.dbg_irq))(myDriverDebugHandle.id,
+                                                        (x[0] != 0) ? DLI_TRC : DLI_XLOG, x, ap);
+               } else {
+                       (*(myDriverDebugHandle.dbg_old))(myDriverDebugHandle.id, x, ap);
+               }
      }
      va_end(ap);
 }
 /*****************************************************************************/
 #endif /* DIVA_NO_DEBUGLIB */
index 02eed6b..6dcbf6a 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #if !defined(__DEBUGLIB_H__)
 #define DL_TO_KERNEL    0x40000000
 
 #ifdef DIVA_NO_DEBUGLIB
-#define myDbgPrint_LOG(x...) do { } while(0);
-#define myDbgPrint_FTL(x...) do { } while(0);
-#define myDbgPrint_ERR(x...) do { } while(0);
-#define myDbgPrint_TRC(x...) do { } while(0);
-#define myDbgPrint_MXLOG(x...) do { } while(0);
-#define myDbgPrint_EVL(x...) do { } while(0);
-#define myDbgPrint_REG(x...) do { } while(0);
-#define myDbgPrint_MEM(x...) do { } while(0);
-#define myDbgPrint_SPL(x...) do { } while(0);
-#define myDbgPrint_IRP(x...) do { } while(0);
-#define myDbgPrint_TIM(x...) do { } while(0);
-#define myDbgPrint_BLK(x...) do { } while(0);
-#define myDbgPrint_TAPI(x...) do { } while(0);
-#define myDbgPrint_NDIS(x...) do { } while(0);
-#define myDbgPrint_CONN(x...) do { } while(0);
-#define myDbgPrint_STAT(x...) do { } while(0);
-#define myDbgPrint_SEND(x...) do { } while(0);
-#define myDbgPrint_RECV(x...) do { } while(0);
-#define myDbgPrint_PRV0(x...) do { } while(0);
-#define myDbgPrint_PRV1(x...) do { } while(0);
-#define myDbgPrint_PRV2(x...) do { } while(0);
-#define myDbgPrint_PRV3(x...) do { } while(0);
-#define DBG_TEST(func,args) do { } while(0);
-#define DBG_EVL_ID(args) do { } while(0);
+#define myDbgPrint_LOG(x...) do { } while (0);
+#define myDbgPrint_FTL(x...) do { } while (0);
+#define myDbgPrint_ERR(x...) do { } while (0);
+#define myDbgPrint_TRC(x...) do { } while (0);
+#define myDbgPrint_MXLOG(x...) do { } while (0);
+#define myDbgPrint_EVL(x...) do { } while (0);
+#define myDbgPrint_REG(x...) do { } while (0);
+#define myDbgPrint_MEM(x...) do { } while (0);
+#define myDbgPrint_SPL(x...) do { } while (0);
+#define myDbgPrint_IRP(x...) do { } while (0);
+#define myDbgPrint_TIM(x...) do { } while (0);
+#define myDbgPrint_BLK(x...) do { } while (0);
+#define myDbgPrint_TAPI(x...) do { } while (0);
+#define myDbgPrint_NDIS(x...) do { } while (0);
+#define myDbgPrint_CONN(x...) do { } while (0);
+#define myDbgPrint_STAT(x...) do { } while (0);
+#define myDbgPrint_SEND(x...) do { } while (0);
+#define myDbgPrint_RECV(x...) do { } while (0);
+#define myDbgPrint_PRV0(x...) do { } while (0);
+#define myDbgPrint_PRV1(x...) do { } while (0);
+#define myDbgPrint_PRV2(x...) do { } while (0);
+#define myDbgPrint_PRV3(x...) do { } while (0);
+#define DBG_TEST(func, args) do { } while (0);
+#define DBG_EVL_ID(args) do { } while (0);
 
 #else /* DIVA_NO_DEBUGLIB */
 /*
  * define low level macros for formatted & raw debugging
  */
-#define DBG_DECL(func) extern void  myDbgPrint_##func (char *, ...) ;
+#define DBG_DECL(func) extern void  myDbgPrint_##func(char *, ...);
 DBG_DECL(LOG)
 DBG_DECL(FTL)
 DBG_DECL(ERR)
 DBG_DECL(TRC)
 DBG_DECL(MXLOG)
 DBG_DECL(FTL_MXLOG)
-extern void  myDbgPrint_EVL (long, ...) ;
+extern void  myDbgPrint_EVL(long, ...);
 DBG_DECL(REG)
 DBG_DECL(MEM)
 DBG_DECL(SPL)
@@ -156,34 +156,34 @@ DBG_DECL(PRV0)
 DBG_DECL(PRV1)
 DBG_DECL(PRV2)
 DBG_DECL(PRV3)
-#ifdef  _KERNEL_DBG_PRINT_
+#ifdef _KERNEL_DBG_PRINT_
 /*
  * tracing to maint and kernel if selected in the trace mask.
  */
-#define DBG_TEST(func,args) \
-{ if ( (myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func ) \
{ \
-        if ( (myDriverDebugHandle.dbgMask) & DL_TO_KERNEL ) \
-            {DbgPrint args; DbgPrint ("\r\n");} \
-        myDbgPrint_##func args ; \
-} }
+#define DBG_TEST(func, args)                                           \
+       { if ((myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func) \
              {                                                       \
+                       if ((myDriverDebugHandle.dbgMask) & DL_TO_KERNEL) \
+                       { DbgPrint args; DbgPrint("\r\n"); }            \
+                       myDbgPrint_##func args;                 \
+               } }
 #else
 /*
  * Standard tracing to maint driver.
  */
-#define DBG_TEST(func,args) \
-{ if ( (myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func ) \
{ myDbgPrint_##func args ; \
-} }
+#define DBG_TEST(func, args)                                           \
+       { if ((myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func) \
              { myDbgPrint_##func args;                               \
+               } }
 #endif
 /*
  * For event level debug use a separate define, the parameter are
  * different and cause compiler errors on some systems.
  */
-#define DBG_EVL_ID(args) \
-{ if ( (myDriverDebugHandle.dbgMask) & (unsigned long)DL_EVL ) \
{ myDbgPrint_EVL args ; \
-} }
+#define DBG_EVL_ID(args)                                               \
+       { if ((myDriverDebugHandle.dbgMask) & (unsigned long)DL_EVL)    \
              { myDbgPrint_EVL args;                                  \
+               } }
 
 #endif /* DIVA_NO_DEBUGLIB */
 
@@ -214,109 +214,109 @@ DBG_DECL(PRV3)
  * prototypes for debug register/deregister functions in "debuglib.c"
  */
 #ifdef DIVA_NO_DEBUGLIB
-#define DbgRegister(name,tag, mask) do { } while(0)
-#define DbgDeregister() do { } while(0)
-#define DbgSetLevel(mask) do { } while(0)
+#define DbgRegister(name, tag, mask) do { } while (0)
+#define DbgDeregister() do { } while (0)
+#define DbgSetLevel(mask) do { } while (0)
 #else
 extern DIVA_DI_PRINTF dprintf;
-extern int  DbgRegister (char *drvName, char *drvTag, unsigned long dbgMask) ;
-extern void DbgDeregister (void) ;
-extern void DbgSetLevel (unsigned long dbgMask) ;
+extern int  DbgRegister(char *drvName, char *drvTag, unsigned long dbgMask);
+extern void DbgDeregister(void);
+extern void DbgSetLevel(unsigned long dbgMask);
 #endif
 /*
  * driver internal structure for debug handling;
  * in client drivers this structure is maintained in "debuglib.c",
  * in the debug driver "debug.c" maintains a chain of such structs.
  */
-typedef struct _DbgHandle_ *pDbgHandle ;
-typedef void ( * DbgEnd) (pDbgHandle) ;
-typedef void ( * DbgLog) (unsigned short, int, char *, va_list) ;
-typedef void ( * DbgOld) (unsigned short, char *, va_list) ;
-typedef void ( * DbgEv)  (unsigned short, unsigned long, va_list) ;
-typedef void ( * DbgIrq) (unsigned short, int, char *, va_list) ;
+typedef struct _DbgHandle_ *pDbgHandle;
+typedef void (*DbgEnd)(pDbgHandle);
+typedef void (*DbgLog)(unsigned short, int, char *, va_list);
+typedef void (*DbgOld)(unsigned short, char *, va_list);
+typedef void (*DbgEv)(unsigned short, unsigned long, va_list);
+typedef void (*DbgIrq)(unsigned short, int, char *, va_list);
 typedef struct _DbgHandle_
-{ char    Registered ; /* driver successfully registered */
+{ char    Registered; /* driver successfully registered */
 #define DBG_HANDLE_REG_NEW 0x01  /* this (new) structure    */
 #define DBG_HANDLE_REG_OLD 0x7f  /* old structure (see below)  */
- char    Version;  /* version of this structure  */
      char    Version;  /* version of this structure  */
 #define DBG_HANDLE_VERSION 1   /* contains dbg_old function now */
 #define DBG_HANDLE_VER_EXT  2           /* pReserved points to extended info*/
short               id ;   /* internal id of registered driver */
-  struct _DbgHandle_ *next ;   /* ptr to next registered driver    */
- struct /*LARGE_INTEGER*/ {
-  unsigned long LowPart;
-  long          HighPart;
}     regTime ;  /* timestamp for registration       */
void               *pIrp ;   /* ptr to pending i/o request       */
unsigned long       dbgMask ;  /* current debug mask               */
char                drvName[128] ; /* ASCII name of registered driver  */
char                drvTag[64] ; /* revision string     */
DbgEnd              dbg_end ;  /* function for debug closing       */
DbgLog              dbg_prt ;  /* function for debug appending     */
DbgOld              dbg_old ;  /* function for old debug appending */
DbgEv       dbg_ev ;  /* function for Windows NT Eventlog */
DbgIrq    dbg_irq ;  /* function for irql checked debug  */
void      *pReserved3 ;
-} _DbgHandle_ ;
-extern _DbgHandle_ myDriverDebugHandle ;
      short               id;   /* internal id of registered driver */
+       struct _DbgHandle_ *next;   /* ptr to next registered driver    */
      struct /*LARGE_INTEGER*/ {
+               unsigned long LowPart;
+               long          HighPart;
      }     regTime;  /* timestamp for registration       */
      void               *pIrp;   /* ptr to pending i/o request       */
      unsigned long       dbgMask;  /* current debug mask               */
      char                drvName[128]; /* ASCII name of registered driver  */
      char                drvTag[64]; /* revision string     */
      DbgEnd              dbg_end;  /* function for debug closing       */
      DbgLog              dbg_prt;  /* function for debug appending     */
      DbgOld              dbg_old;  /* function for old debug appending */
      DbgEv       dbg_ev;  /* function for Windows NT Eventlog */
      DbgIrq    dbg_irq;  /* function for irql checked debug  */
      void      *pReserved3;
+} _DbgHandle_;
+extern _DbgHandle_ myDriverDebugHandle;
 typedef struct _OldDbgHandle_
-{ struct _OldDbgHandle_ *next ;
void                *pIrp ;
long    regTime[2] ;
unsigned long       dbgMask ;
short               id ;
char                drvName[78] ;
DbgEnd              dbg_end ;
DbgLog              dbg_prt ;
-} _OldDbgHandle_ ;
+{ struct _OldDbgHandle_ *next;
      void                *pIrp;
      long    regTime[2];
      unsigned long       dbgMask;
      short               id;
      char                drvName[78];
      DbgEnd              dbg_end;
      DbgLog              dbg_prt;
+} _OldDbgHandle_;
 /* the differences in DbgHandles
    old:    tmp:     new:
- 0 long next  char Registered  char Registered
-       char filler   char Version
-       short id    short id
- 4 long pIrp  long    regTime.lo  long next
- 8 long    regTime.lo long    regTime.hi  long    regTime.lo
- 12 long    regTime.hi long next   long regTime.hi
- 16 long dbgMask  long pIrp   long pIrp
- 20 short id   long dbgMask   long dbgMask
- 22 char    drvName[78] ..
- 24 ..     char drvName[16]  char drvName[16]
- 40 ..     char drvTag[64]  char drvTag[64]
- 100 void *dbg_end ..      ..
- 104 void *dbg_prt void *dbg_end  void *dbg_end
- 108 ..     void *dbg_prt  void *dbg_prt
- 112 ..     ..      void *dbg_old
- 116 ..     ..      void *dbg_ev
- 120 ..     ..      void *dbg_irq
- 124 ..     ..      void *pReserved3
- ( new->id == 0 && *((short *)&new->dbgMask) == -1 ) identifies "old",
- new->Registered and new->Version overlay old->next,
- new->next overlays old->pIrp, new->regTime matches old->regTime and
- thus these fields can be maintained in new struct whithout trouble;
- id, dbgMask, drvName, dbg_end and dbg_prt need special handling !
  0 long next  char Registered  char Registered
+   char filler   char Version
+   short id    short id
  4 long pIrp  long    regTime.lo  long next
  8 long    regTime.lo long    regTime.hi  long    regTime.lo
  12 long    regTime.hi long next   long regTime.hi
  16 long dbgMask  long pIrp   long pIrp
  20 short id   long dbgMask   long dbgMask
  22 char    drvName[78] ..
  24 ..     char drvName[16]  char drvName[16]
  40 ..     char drvTag[64]  char drvTag[64]
  100 void *dbg_end ..      ..
  104 void *dbg_prt void *dbg_end  void *dbg_end
  108 ..     void *dbg_prt  void *dbg_prt
  112 ..     ..      void *dbg_old
  116 ..     ..      void *dbg_ev
  120 ..     ..      void *dbg_irq
  124 ..     ..      void *pReserved3
  ( new->id == 0 && *((short *)&new->dbgMask) == -1 ) identifies "old",
  new->Registered and new->Version overlay old->next,
  new->next overlays old->pIrp, new->regTime matches old->regTime and
  thus these fields can be maintained in new struct whithout trouble;
  id, dbgMask, drvName, dbg_end and dbg_prt need special handling !
 */
 #define DBG_EXT_TYPE_CARD_TRACE     0x00000001
 typedef struct
 {
-    unsigned long       ExtendedType;
-    union
-    {
-        /* DBG_EXT_TYPE_CARD_TRACE */
-        struct
-        {
-            void ( * MaskChangedNotify) (void *pContext);
-            unsigned long   ModuleTxtMask;
-            unsigned long   DebugLevel;
-            unsigned long   B_ChannelMask;
-            unsigned long   LogBufferSize;
-        } CardTrace;
-    }Data;     
+       unsigned long ExtendedType;
+       union
+       {
+               /* DBG_EXT_TYPE_CARD_TRACE */
+               struct
+               {
+                       void (*MaskChangedNotify)(void *pContext);
+                       unsigned long ModuleTxtMask;
+                       unsigned long DebugLevel;
+                       unsigned long B_ChannelMask;
+                       unsigned long LogBufferSize;
+               } CardTrace;
+       } Data;
 } _DbgExtendedInfo_;
 #ifndef DIVA_NO_DEBUGLIB
 /* -------------------------------------------------------------
-    Function used for xlog-style debug
+   Function used for xlog-style debug
    ------------------------------------------------------------- */
 #define XDI_USE_XLOG 1
-void  xdi_dbg_xlog (char* x, ...);
+void xdi_dbg_xlog(char *x, ...);
 #endif /* DIVA_NO_DEBUGLIB */
 #endif /* __DEBUGLIB_H__ */
index 9a109c7..6a1d333 100644 (file)
@@ -1,54 +1,54 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_IDI_DFIFO_INC__
 #define __DIVA_IDI_DFIFO_INC__
 #define DIVA_DFIFO_CACHE_SZ   64 /* Used to isolate pipe from
-                    rest of the world
-                   should be divisible by 4
-                   */
-#define DIVA_DFIFO_RAW_SZ    (2512*8)
+                                   rest of the world
+                                   should be divisible by 4
+                                */
+#define DIVA_DFIFO_RAW_SZ    (2512 * 8)
 #define DIVA_DFIFO_DATA_SZ   68
 #define DIVA_DFIFO_HDR_SZ    4
-#define DIVA_DFIFO_SEGMENT_SZ  (DIVA_DFIFO_DATA_SZ+DIVA_DFIFO_HDR_SZ)
-#define DIVA_DFIFO_SEGMENTS   ((DIVA_DFIFO_RAW_SZ)/(DIVA_DFIFO_SEGMENT_SZ)+1)
-#define DIVA_DFIFO_MEM_SZ (\
-        (DIVA_DFIFO_SEGMENT_SZ)*(DIVA_DFIFO_SEGMENTS)+\
-        (DIVA_DFIFO_CACHE_SZ)*2\
-             )
+#define DIVA_DFIFO_SEGMENT_SZ  (DIVA_DFIFO_DATA_SZ + DIVA_DFIFO_HDR_SZ)
+#define DIVA_DFIFO_SEGMENTS   ((DIVA_DFIFO_RAW_SZ) / (DIVA_DFIFO_SEGMENT_SZ) + 1)
+#define DIVA_DFIFO_MEM_SZ (                                            \
+               (DIVA_DFIFO_SEGMENT_SZ) * (DIVA_DFIFO_SEGMENTS) +       \
+               (DIVA_DFIFO_CACHE_SZ) * 2                               \
+               )
 #define DIVA_DFIFO_STEP DIVA_DFIFO_SEGMENT_SZ
 /* -------------------------------------------------------------------------
-  Block header layout is:
+   Block header layout is:
    byte[0] -> flags
    byte[1] -> length of data in block
    byte[2] -> reserved
    byte[4] -> reserved
-  ------------------------------------------------------------------------- */
+   ------------------------------------------------------------------------- */
 #define DIVA_DFIFO_WRAP   0x80 /* This is the last block in fifo   */
 #define DIVA_DFIFO_READY  0x40 /* This block is ready for processing */
 #define DIVA_DFIFO_LAST   0x20 /* This block is last in message      */
 #define DIVA_DFIFO_AUTO   0x10 /* Don't look for 'ready', don't ack */
-int diva_dfifo_create (void* start, int length);
+int diva_dfifo_create(void *start, int length);
 #endif
index cb14ae3..cd3fba1 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
@@ -29,9 +29,9 @@
 #include "di_defs.h"
 #include "di.h"
 #if !defined USE_EXTENDED_DEBUGS
-  #include "dimaint.h"
+#include "dimaint.h"
 #else
-  #define dprintf
+#define dprintf
 #endif
 #include "io.h"
 #include "dfifo.h"
 /*------------------------------------------------------------------*/
 /* local function prototypes                                        */
 /*------------------------------------------------------------------*/
-void pr_out(ADAPTER * a);
-byte pr_dpc(ADAPTER * a);
-static byte pr_ready(ADAPTER * a);
+void pr_out(ADAPTER *a);
+byte pr_dpc(ADAPTER *a);
+static byte pr_ready(ADAPTER *a);
 static byte isdn_rc(ADAPTER *, byte, byte, byte, word, dword, dword);
 static byte isdn_ind(ADAPTER *, byte, byte, byte, PBUFFER *, byte, word);
 /* -----------------------------------------------------------------
-    Functions used for the extended XDI Debug
-    macros
-    global convergence counter (used by all adapters)
-    Look by the implementation part of the functions
-    about the parameters.
-    If you change the dubugging parameters, then you should update
-    the aididbg.doc in the IDI doc's.
+   Functions used for the extended XDI Debug
+   macros
+   global convergence counter (used by all adapters)
+   Look by the implementation part of the functions
+   about the parameters.
+   If you change the dubugging parameters, then you should update
+   the aididbg.doc in the IDI doc's.
    ----------------------------------------------------------------- */
 #if defined(XDI_USE_XLOG)
 #define XDI_A_NR(_x_) ((byte)(((ISDN_ADAPTER *)(_x_->io))->ANum))
-static void xdi_xlog (byte *msg, word code, int length);
+static void xdi_xlog(byte *msg, word code, int length);
 static byte xdi_xlog_sec = 0;
 #else
 #define XDI_A_NR(_x_) ((byte)0)
 #endif
-static void xdi_xlog_rc_event (byte Adapter,
-                               byte Id, byte Ch, byte Rc, byte cb, byte type);
-static void xdi_xlog_request (byte Adapter, byte Id,
-                              byte Ch, byte Req, byte type);
-static void xdi_xlog_ind (byte Adapter,
-                          byte Id,
-                          byte Ch,
-                          byte Ind,
-                          byte rnr_valid,
-                          byte rnr,
-                          byte type);
+static void xdi_xlog_rc_event(byte Adapter,
+                             byte Id, byte Ch, byte Rc, byte cb, byte type);
+static void xdi_xlog_request(byte Adapter, byte Id,
+                            byte Ch, byte Req, byte type);
+static void xdi_xlog_ind(byte Adapter,
+                        byte Id,
+                        byte Ch,
+                        byte Ind,
+                        byte rnr_valid,
+                        byte rnr,
+                        byte type);
 /*------------------------------------------------------------------*/
 /* output function                                                  */
 /*------------------------------------------------------------------*/
-void pr_out(ADAPTER * a)
+void pr_out(ADAPTER *a)
 {
-  byte e_no;
-  ENTITY  * this = NULL;
-  BUFFERS  *X;
-  word length;
-  word i;
-  word clength;
-  REQ * ReqOut;
-  byte more;
-  byte ReadyCount;
-  byte ReqCount;
-  byte Id;
-  dtrc(dprintf("pr_out"));
-        /* while a request is pending ...                           */
-  e_no = look_req(a);
-  if(!e_no)
-  {
-    dtrc(dprintf("no_req"));
-    return;
-  }
-  ReadyCount = pr_ready(a);
-  if(!ReadyCount)
-  {
-    dtrc(dprintf("not_ready"));
-    return;
-  }
-  ReqCount = 0;
-  while(e_no && ReadyCount) {
-    next_req(a);
-    this = entity_ptr(a, e_no);
+       byte e_no;
+       ENTITY *this = NULL;
+       BUFFERS *X;
+       word length;
+       word i;
+       word clength;
+       REQ *ReqOut;
+       byte more;
+       byte ReadyCount;
+       byte ReqCount;
+       byte Id;
+       dtrc(dprintf("pr_out"));
+       /* while a request is pending ...                           */
+       e_no = look_req(a);
+       if (!e_no)
+       {
+               dtrc(dprintf("no_req"));
+               return;
+       }
+       ReadyCount = pr_ready(a);
+       if (!ReadyCount)
+       {
+               dtrc(dprintf("not_ready"));
+               return;
+       }
+       ReqCount = 0;
+       while (e_no && ReadyCount) {
+               next_req(a);
+               this = entity_ptr(a, e_no);
 #ifdef USE_EXTENDED_DEBUGS
-    if ( !this )
-    {
-      DBG_FTL(("XDI: [%02x] !A%d ==> NULL entity ptr - try to ignore",
-               xdi_xlog_sec++, (int)((ISDN_ADAPTER *)a->io)->ANum))
-      e_no = look_req(a) ;
-      ReadyCount-- ;
-      continue ;
-    }
-    {
-      DBG_TRC((">A%d Id=0x%x Req=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, this->Id, this->Req))
-    }
+               if (!this)
+               {
+                       DBG_FTL(("XDI: [%02x] !A%d ==> NULL entity ptr - try to ignore",
+                                xdi_xlog_sec++, (int)((ISDN_ADAPTER *)a->io)->ANum))
+                               e_no = look_req(a);
+                       ReadyCount--;
+                       continue;
+               }
+               {
+                       DBG_TRC((">A%d Id=0x%x Req=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, this->Id, this->Req))
+                               }
 #else
-    dbug(dprintf("out:Req=%x,Id=%x,Ch=%x",this->Req,this->Id,this->ReqCh));
+               dbug(dprintf("out:Req=%x,Id=%x,Ch=%x", this->Req, this->Id, this->ReqCh));
 #endif
-        /* get address of next available request buffer             */
-    ReqOut = (REQ *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextReq)];
+               /* get address of next available request buffer             */
+               ReqOut = (REQ *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextReq)];
 #if defined(DIVA_ISTREAM)
-    if (!(a->tx_stream[this->Id]   &&
-        this->Req == N_DATA)) {
+               if (!(a->tx_stream[this->Id]   &&
+                     this->Req == N_DATA)) {
 #endif
-        /* now copy the data from the current data buffer into the  */
-        /* adapters request buffer                                  */
-    length = 0;
-    i = this->XCurrent;
-    X = PTR_X(a,this);
-    while(i<this->XNum && length<270) {
-      clength = min((word)(270-length),(word)(X[i].PLength-this->XOffset));
-      a->ram_out_buffer(a,
-                        &ReqOut->XBuffer.P[length],
-                        PTR_P(a,this,&X[i].P[this->XOffset]),
-                        clength);
-      length +=clength;
-      this->XOffset +=clength;
-      if(this->XOffset==X[i].PLength) {
-        this->XCurrent = (byte)++i;
-        this->XOffset = 0;
-      }
-    }
+                       /* now copy the data from the current data buffer into the  */
+                       /* adapters request buffer                                  */
+                       length = 0;
+                       i = this->XCurrent;
+                       X = PTR_X(a, this);
+                       while (i < this->XNum && length < 270) {
+                               clength = min((word)(270 - length), (word)(X[i].PLength-this->XOffset));
+                               a->ram_out_buffer(a,
+                                                 &ReqOut->XBuffer.P[length],
+                                                 PTR_P(a, this, &X[i].P[this->XOffset]),
+                                                 clength);
+                               length += clength;
+                               this->XOffset += clength;
+                               if (this->XOffset == X[i].PLength) {
+                                       this->XCurrent = (byte)++i;
+                                       this->XOffset = 0;
+                               }
+                       }
 #if defined(DIVA_ISTREAM)
-   } else { /* Use CMA extension in order to transfer data to the card */
-      i = this->XCurrent;
-      X = PTR_X(a,this);
-      while (i < this->XNum) {
-        diva_istream_write (a,
-                            this->Id,
-                            PTR_P(a,this,&X[i].P[0]),
-                            X[i].PLength,
-                            ((i+1) == this->XNum),
-                            0, 0);
-        this->XCurrent = (byte)++i;
-      }
-      length = 0;
-   }
+               } else { /* Use CMA extension in order to transfer data to the card */
+                       i = this->XCurrent;
+                       X = PTR_X(a, this);
+                       while (i < this->XNum) {
+                               diva_istream_write(a,
+                                                  this->Id,
+                                                  PTR_P(a, this, &X[i].P[0]),
+                                                  X[i].PLength,
+                                                  ((i + 1) == this->XNum),
+                                                  0, 0);
+                               this->XCurrent = (byte)++i;
+                       }
+                       length = 0;
+               }
 #endif
-    a->ram_outw(a, &ReqOut->XBuffer.length, length);
-    a->ram_out(a, &ReqOut->ReqId, this->Id);
-    a->ram_out(a, &ReqOut->ReqCh, this->ReqCh);
-        /* if it's a specific request (no ASSIGN) ...                */
-    if(this->Id &0x1f) {
-        /* if buffers are left in the list of data buffers do       */
-        /* do chaining (LL_MDATA, N_MDATA)                          */
-      this->More++;
-      if(i<this->XNum && this->MInd) {
-        xdi_xlog_request (XDI_A_NR(a), this->Id, this->ReqCh, this->MInd,
-                          a->IdTypeTable[this->No]);
-        a->ram_out(a, &ReqOut->Req, this->MInd);
-        more = true;
-      }
-      else {
-        xdi_xlog_request (XDI_A_NR(a), this->Id, this->ReqCh, this->Req,
-                          a->IdTypeTable[this->No]);
-        this->More |=XMOREF;
-        a->ram_out(a, &ReqOut->Req, this->Req);
-        more = false;
-        if (a->FlowControlIdTable[this->ReqCh] == this->Id)
-          a->FlowControlSkipTable[this->ReqCh] = true;
-        /*
-           Note that remove request was sent to the card
-           */
-        if (this->Req == REMOVE) {
-          a->misc_flags_table[e_no] |= DIVA_MISC_FLAGS_REMOVE_PENDING;
-        }
-      }
-        /* if we did chaining, this entity is put back into the     */
-        /* request queue                                            */
-      if(more) {
-        req_queue(a,this->No);
-      }
-    }
-        /* else it's a ASSIGN                                       */
-    else {
-        /* save the request code used for buffer chaining           */
-      this->MInd = 0;
-      if (this->Id==BLLC_ID) this->MInd = LL_MDATA;
-      if (this->Id==NL_ID   ||
-          this->Id==TASK_ID ||
-          this->Id==MAN_ID
-        ) this->MInd = N_MDATA;
-        /* send the ASSIGN                                          */
-      a->IdTypeTable[this->No] = this->Id;
-      xdi_xlog_request (XDI_A_NR(a),this->Id,this->ReqCh,this->Req, this->Id);
-      this->More |=XMOREF;
-      a->ram_out(a, &ReqOut->Req, this->Req);
-        /* save the reference of the ASSIGN                         */
-      assign_queue(a, this->No, a->ram_inw(a, &ReqOut->Reference));
-    }
-    a->ram_outw(a, &PR_RAM->NextReq, a->ram_inw(a, &ReqOut->next));
-    ReadyCount--;
-    ReqCount++;
-    e_no = look_req(a);
-  }
-        /* send the filled request buffers to the ISDN adapter      */
-  a->ram_out(a, &PR_RAM->ReqInput,
-             (byte)(a->ram_in(a, &PR_RAM->ReqInput) + ReqCount));
-        /* if it is a 'unreturncoded' UREMOVE request, remove the  */
-        /* Id from our table after sending the request             */
-  if(this && (this->Req==UREMOVE) && this->Id) {
-    Id = this->Id;
-    e_no = a->IdTable[Id];
-    free_entity(a, e_no);
-    for (i = 0; i < 256; i++)
-    {
-      if (a->FlowControlIdTable[i] == Id)
-        a->FlowControlIdTable[i] = 0;
-    }
-    a->IdTable[Id] = 0;
-    this->Id = 0;
-  }
+               a->ram_outw(a, &ReqOut->XBuffer.length, length);
+               a->ram_out(a, &ReqOut->ReqId, this->Id);
+               a->ram_out(a, &ReqOut->ReqCh, this->ReqCh);
+               /* if it's a specific request (no ASSIGN) ...                */
+               if (this->Id & 0x1f) {
+                       /* if buffers are left in the list of data buffers do       */
+                       /* do chaining (LL_MDATA, N_MDATA)                          */
+                       this->More++;
+                       if (i < this->XNum && this->MInd) {
+                               xdi_xlog_request(XDI_A_NR(a), this->Id, this->ReqCh, this->MInd,
+                                                a->IdTypeTable[this->No]);
+                               a->ram_out(a, &ReqOut->Req, this->MInd);
+                               more = true;
+                       }
+                       else {
+                               xdi_xlog_request(XDI_A_NR(a), this->Id, this->ReqCh, this->Req,
+                                                a->IdTypeTable[this->No]);
+                               this->More |= XMOREF;
+                               a->ram_out(a, &ReqOut->Req, this->Req);
+                               more = false;
+                               if (a->FlowControlIdTable[this->ReqCh] == this->Id)
+                                       a->FlowControlSkipTable[this->ReqCh] = true;
+                               /*
+                                 Note that remove request was sent to the card
+                               */
+                               if (this->Req == REMOVE) {
+                                       a->misc_flags_table[e_no] |= DIVA_MISC_FLAGS_REMOVE_PENDING;
+                               }
+                       }
+                       /* if we did chaining, this entity is put back into the     */
+                       /* request queue                                            */
+                       if (more) {
+                               req_queue(a, this->No);
+                       }
+               }
+               /* else it's a ASSIGN                                       */
+               else {
+                       /* save the request code used for buffer chaining           */
+                       this->MInd = 0;
+                       if (this->Id == BLLC_ID) this->MInd = LL_MDATA;
+                       if (this->Id == NL_ID ||
+                           this->Id == TASK_ID ||
+                           this->Id == MAN_ID
+                               ) this->MInd = N_MDATA;
+                       /* send the ASSIGN                                          */
+                       a->IdTypeTable[this->No] = this->Id;
+                       xdi_xlog_request(XDI_A_NR(a), this->Id, this->ReqCh, this->Req, this->Id);
+                       this->More |= XMOREF;
+                       a->ram_out(a, &ReqOut->Req, this->Req);
+                       /* save the reference of the ASSIGN                         */
+                       assign_queue(a, this->No, a->ram_inw(a, &ReqOut->Reference));
+               }
+               a->ram_outw(a, &PR_RAM->NextReq, a->ram_inw(a, &ReqOut->next));
+               ReadyCount--;
+               ReqCount++;
+               e_no = look_req(a);
+       }
+       /* send the filled request buffers to the ISDN adapter      */
+       a->ram_out(a, &PR_RAM->ReqInput,
+                  (byte)(a->ram_in(a, &PR_RAM->ReqInput) + ReqCount));
+       /* if it is a 'unreturncoded' UREMOVE request, remove the  */
+       /* Id from our table after sending the request             */
+       if (this && (this->Req == UREMOVE) && this->Id) {
+               Id = this->Id;
+               e_no = a->IdTable[Id];
+               free_entity(a, e_no);
+               for (i = 0; i < 256; i++)
+               {
+                       if (a->FlowControlIdTable[i] == Id)
+                               a->FlowControlIdTable[i] = 0;
+               }
+               a->IdTable[Id] = 0;
+               this->Id = 0;
+       }
 }
-static byte pr_ready(ADAPTER * a)
+static byte pr_ready(ADAPTER *a)
 {
-  byte ReadyCount;
-  ReadyCount = (byte)(a->ram_in(a, &PR_RAM->ReqOutput) -
-                      a->ram_in(a, &PR_RAM->ReqInput));
-  if(!ReadyCount) {
-    if(!a->ReadyInt) {
-      a->ram_inc(a, &PR_RAM->ReadyInt);
-      a->ReadyInt++;
-    }
-  }
-  return ReadyCount;
+       byte ReadyCount;
+       ReadyCount = (byte)(a->ram_in(a, &PR_RAM->ReqOutput) -
+                           a->ram_in(a, &PR_RAM->ReqInput));
+       if (!ReadyCount) {
+               if (!a->ReadyInt) {
+                       a->ram_inc(a, &PR_RAM->ReadyInt);
+                       a->ReadyInt++;
+               }
+       }
+       return ReadyCount;
 }
 /*------------------------------------------------------------------*/
 /* isdn interrupt handler                                           */
 /*------------------------------------------------------------------*/
-byte pr_dpc(ADAPTER * a)
+byte pr_dpc(ADAPTER *a)
 {
-  byte Count;
-  RC * RcIn;
-  IND * IndIn;
-  byte c;
-  byte RNRId;
-  byte Rc;
-  byte Ind;
-        /* if return codes are available ...                        */
-  if((Count = a->ram_in(a, &PR_RAM->RcOutput)) != 0) {
-    dtrc(dprintf("#Rc=%x",Count));
-        /* get the buffer address of the first return code          */
-    RcIn = (RC *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextRc)];
-        /* for all return codes do ...                              */
-    while(Count--) {
-      if((Rc=a->ram_in(a, &RcIn->Rc)) != 0) {
-        dword tmp[2];
-        /*
-          Get extended information, associated with return code
-          */
-        a->ram_in_buffer(a,
-                         &RcIn->Reserved2[0],
-                         (byte*)&tmp[0],
-                         8);
-        /* call return code handler, if it is not our return code   */
-        /* the handler returns 2                                    */
-        /* for all return codes we process, we clear the Rc field   */
-        isdn_rc(a,
-                Rc,
-                a->ram_in(a, &RcIn->RcId),
-                a->ram_in(a, &RcIn->RcCh),
-                a->ram_inw(a, &RcIn->Reference),
-                tmp[0],  /* type of extended information */
-                tmp[1]); /* extended information        */
-        a->ram_out(a, &RcIn->Rc, 0);
-      }
-        /* get buffer address of next return code                   */
-      RcIn = (RC *)&PR_RAM->B[a->ram_inw(a, &RcIn->next)];
-    }
-        /* clear all return codes (no chaining!)                    */
-    a->ram_out(a, &PR_RAM->RcOutput ,0);
-        /* call output function                                     */
-    pr_out(a);
-  }
-        /* clear RNR flag                                           */
-  RNRId = 0;
-        /* if indications are available ...                         */
-  if((Count = a->ram_in(a, &PR_RAM->IndOutput)) != 0) {
-    dtrc(dprintf("#Ind=%x",Count));
-        /* get the buffer address of the first indication           */
-    IndIn = (IND *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextInd)];
-        /* for all indications do ...                               */
-    while(Count--) {
-        /* if the application marks an indication as RNR, all       */
-        /* indications from the same Id delivered in this interrupt */
-        /* are marked RNR                                           */
-      if(RNRId && RNRId==a->ram_in(a, &IndIn->IndId)) {
-        a->ram_out(a, &IndIn->Ind, 0);
-        a->ram_out(a, &IndIn->RNR, true);
-      }
-      else {
-        Ind = a->ram_in(a, &IndIn->Ind);
-        if(Ind) {
-          RNRId = 0;
-        /* call indication handler, a return value of 2 means chain */
-        /* a return value of 1 means RNR                            */
-        /* for all indications we process, we clear the Ind field   */
-          c = isdn_ind(a,
-                       Ind,
-                       a->ram_in(a, &IndIn->IndId),
-                       a->ram_in(a, &IndIn->IndCh),
-                       &IndIn->RBuffer,
-                       a->ram_in(a, &IndIn->MInd),
-                       a->ram_inw(a, &IndIn->MLength));
-          if(c==1) {
-            dtrc(dprintf("RNR"));
-            a->ram_out(a, &IndIn->Ind, 0);
-            RNRId = a->ram_in(a, &IndIn->IndId);
-            a->ram_out(a, &IndIn->RNR, true);
-          }
-        }
-      }
-        /* get buffer address of next indication                    */
-      IndIn = (IND *)&PR_RAM->B[a->ram_inw(a, &IndIn->next)];
-    }
-    a->ram_out(a, &PR_RAM->IndOutput, 0);
-  }
-  return false;
+       byte Count;
+       RC *RcIn;
+       IND *IndIn;
+       byte c;
+       byte RNRId;
+       byte Rc;
+       byte Ind;
+       /* if return codes are available ...                        */
+       if ((Count = a->ram_in(a, &PR_RAM->RcOutput)) != 0) {
+               dtrc(dprintf("#Rc=%x", Count));
+               /* get the buffer address of the first return code          */
+               RcIn = (RC *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextRc)];
+               /* for all return codes do ...                              */
+               while (Count--) {
+                       if ((Rc = a->ram_in(a, &RcIn->Rc)) != 0) {
+                               dword tmp[2];
+                               /*
+                                 Get extended information, associated with return code
+                               */
+                               a->ram_in_buffer(a,
+                                                &RcIn->Reserved2[0],
+                                                (byte *)&tmp[0],
+                                                8);
+                               /* call return code handler, if it is not our return code   */
+                               /* the handler returns 2                                    */
+                               /* for all return codes we process, we clear the Rc field   */
+                               isdn_rc(a,
+                                       Rc,
+                                       a->ram_in(a, &RcIn->RcId),
+                                       a->ram_in(a, &RcIn->RcCh),
+                                       a->ram_inw(a, &RcIn->Reference),
+                                       tmp[0],  /* type of extended information */
+                                       tmp[1]); /* extended information        */
+                               a->ram_out(a, &RcIn->Rc, 0);
+                       }
+                       /* get buffer address of next return code                   */
+                       RcIn = (RC *)&PR_RAM->B[a->ram_inw(a, &RcIn->next)];
+               }
+               /* clear all return codes (no chaining!)                    */
+               a->ram_out(a, &PR_RAM->RcOutput, 0);
+               /* call output function                                     */
+               pr_out(a);
+       }
+       /* clear RNR flag                                           */
+       RNRId = 0;
+       /* if indications are available ...                         */
+       if ((Count = a->ram_in(a, &PR_RAM->IndOutput)) != 0) {
+               dtrc(dprintf("#Ind=%x", Count));
+               /* get the buffer address of the first indication           */
+               IndIn = (IND *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextInd)];
+               /* for all indications do ...                               */
+               while (Count--) {
+                       /* if the application marks an indication as RNR, all       */
+                       /* indications from the same Id delivered in this interrupt */
+                       /* are marked RNR                                           */
+                       if (RNRId && RNRId == a->ram_in(a, &IndIn->IndId)) {
+                               a->ram_out(a, &IndIn->Ind, 0);
+                               a->ram_out(a, &IndIn->RNR, true);
+                       }
+                       else {
+                               Ind = a->ram_in(a, &IndIn->Ind);
+                               if (Ind) {
+                                       RNRId = 0;
+                                       /* call indication handler, a return value of 2 means chain */
+                                       /* a return value of 1 means RNR                            */
+                                       /* for all indications we process, we clear the Ind field   */
+                                       c = isdn_ind(a,
+                                                    Ind,
+                                                    a->ram_in(a, &IndIn->IndId),
+                                                    a->ram_in(a, &IndIn->IndCh),
+                                                    &IndIn->RBuffer,
+                                                    a->ram_in(a, &IndIn->MInd),
+                                                    a->ram_inw(a, &IndIn->MLength));
+                                       if (c == 1) {
+                                               dtrc(dprintf("RNR"));
+                                               a->ram_out(a, &IndIn->Ind, 0);
+                                               RNRId = a->ram_in(a, &IndIn->IndId);
+                                               a->ram_out(a, &IndIn->RNR, true);
+                                       }
+                               }
+                       }
+                       /* get buffer address of next indication                    */
+                       IndIn = (IND *)&PR_RAM->B[a->ram_inw(a, &IndIn->next)];
+               }
+               a->ram_out(a, &PR_RAM->IndOutput, 0);
+       }
+       return false;
 }
-byte scom_test_int(ADAPTER * a)
+byte scom_test_int(ADAPTER *a)
 {
-  return a->ram_in(a,(void *)0x3fe);
+       return a->ram_in(a, (void *)0x3fe);
 }
-void scom_clear_int(ADAPTER * a)
+void scom_clear_int(ADAPTER *a)
 {
-  a->ram_out(a,(void *)0x3fe,0);
+       a->ram_out(a, (void *)0x3fe, 0);
 }
 /*------------------------------------------------------------------*/
 /* return code handler                                              */
@@ -361,196 +361,196 @@ static byte isdn_rc(ADAPTER *a,
                    dword extended_info_type,
                    dword extended_info)
 {
-  ENTITY  * this;
-  byte e_no;
-  word i;
-  int cancel_rc;
+       ENTITY *this;
+       byte e_no;
+       word i;
+       int cancel_rc;
 #ifdef USE_EXTENDED_DEBUGS
-  {
-    DBG_TRC(("<A%d Id=0x%x Rc=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, Id, Rc))
-  }
+       {
+               DBG_TRC(("<A%d Id=0x%x Rc=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, Id, Rc))
+                       }
 #else
-  dbug(dprintf("isdn_rc(Rc=%x,Id=%x,Ch=%x)",Rc,Id,Ch));
+       dbug(dprintf("isdn_rc(Rc=%x,Id=%x,Ch=%x)", Rc, Id, Ch));
 #endif
-        /* check for ready interrupt                                */
-  if(Rc==READY_INT) {
-    xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 0, 0);
-    if(a->ReadyInt) {
-      a->ReadyInt--;
-      return 0;
-    }
-    return 2;
-  }
-        /* if we know this Id ...                                   */
-  e_no = a->IdTable[Id];
-  if(e_no) {
-    this = entity_ptr(a,e_no);
-    xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 0, a->IdTypeTable[this->No]);
-    this->RcCh = Ch;
-        /* if it is a return code to a REMOVE request, remove the   */
-        /* Id from our table                                        */
-    if ((a->misc_flags_table[e_no] & DIVA_MISC_FLAGS_REMOVE_PENDING) &&
-        (Rc==OK)) {
-      if (a->IdTypeTable[e_no] == NL_ID) {
-        if (a->RcExtensionSupported &&
-            (extended_info_type != DIVA_RC_TYPE_REMOVE_COMPLETE)) {
-        dtrc(dprintf("XDI: N-REMOVE, A(%02x) Id:%02x, ignore RC=OK",
-                        XDI_A_NR(a),Id));
-          return (0);
-        }
-        if (extended_info_type == DIVA_RC_TYPE_REMOVE_COMPLETE)
-          a->RcExtensionSupported = true;
-      }
-      a->misc_flags_table[e_no] &= ~DIVA_MISC_FLAGS_REMOVE_PENDING;
-      a->misc_flags_table[e_no] &= ~DIVA_MISC_FLAGS_NO_RC_CANCELLING;
-      free_entity(a, e_no);
-      for (i = 0; i < 256; i++)
-      {
-        if (a->FlowControlIdTable[i] == Id)
-          a->FlowControlIdTable[i] = 0;
-      }
-      a->IdTable[Id] = 0;
-      this->Id = 0;
-      /* ---------------------------------------------------------------
-        If we send N_DISC or N_DISK_ACK after we have received OK_FC
-        then the card will respond with OK_FC and later with RC==OK.
-        If we send N_REMOVE in this state we will receive only RC==OK
-        This will create the state in that the XDI is waiting for the
-        additional RC and does not delivery the RC to the client. This
-        code corrects the counter of outstanding RC's in this case.
-      --------------------------------------------------------------- */
-      if ((this->More & XMOREC) > 1) {
-        this->More &= ~XMOREC;
-        this->More |= 1;
-        dtrc(dprintf("XDI: correct MORE on REMOVE A(%02x) Id:%02x",
-                     XDI_A_NR(a),Id));
-      }
-    }
-    if (Rc==OK_FC) {
-      a->FlowControlIdTable[Ch] = Id;
-      a->FlowControlSkipTable[Ch] = false;
-      this->Rc = Rc;
-      this->More &= ~(XBUSY | XMOREC);
-      this->complete=0xff;
-      xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
-      CALLBACK(a, this);
-      return 0;
-    }
-    /*
-      New protocol code sends return codes that comes from release
-      of flow control condition marked with DIVA_RC_TYPE_OK_FC extended
-      information element type.
-      If like return code arrives then application is able to process
-      all return codes self and XDI should not cances return codes.
-      This return code does not decrement XMOREC partial return code
-      counter due to fact that it was no request for this return code,
-      also XMOREC was not incremented.
-      */
-    if (extended_info_type == DIVA_RC_TYPE_OK_FC) {
-      a->misc_flags_table[e_no] |= DIVA_MISC_FLAGS_NO_RC_CANCELLING;
-      this->Rc = Rc;
-      this->complete=0xff;
-      xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
-      DBG_TRC(("XDI OK_FC A(%02x) Id:%02x Ch:%02x Rc:%02x",
-      XDI_A_NR(a), Id, Ch, Rc))
-      CALLBACK(a, this);
-      return 0;
-    }
-    cancel_rc = !(a->misc_flags_table[e_no] & DIVA_MISC_FLAGS_NO_RC_CANCELLING);
-    if (cancel_rc && (a->FlowControlIdTable[Ch] == Id))
-    {
-      a->FlowControlIdTable[Ch] = 0;
-      if ((Rc != OK) || !a->FlowControlSkipTable[Ch])
-      {
-        this->Rc = Rc;
-        if (Ch == this->ReqCh)
-        {
-          this->More &=~(XBUSY | XMOREC);
-          this->complete=0xff;
-        }
-        xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
-        CALLBACK(a, this);
-      }
-      return 0;
-    }
-    if (this->More &XMOREC)
-      this->More--;
-        /* call the application callback function                   */
-    if (((!cancel_rc) || (this->More & XMOREF)) && !(this->More & XMOREC)) {
-      this->Rc = Rc;
-      this->More &=~XBUSY;
-      this->complete=0xff;
-      xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
-      CALLBACK(a, this);
-    }
-    return 0;
-  }
-        /* if it's an ASSIGN return code check if it's a return     */
-        /* code to an ASSIGN request from us                        */
-  if((Rc &0xf0)==ASSIGN_RC) {
-    e_no = get_assign(a, Ref);
-    if(e_no) {
-      this = entity_ptr(a,e_no);
-      this->Id = Id;
-      xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 2, a->IdTypeTable[this->No]);
-        /* call the application callback function                   */
-      this->Rc = Rc;
-      this->More &=~XBUSY;
-      this->complete=0xff;
+       /* check for ready interrupt                                */
+       if (Rc == READY_INT) {
+               xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 0, 0);
+               if (a->ReadyInt) {
+                       a->ReadyInt--;
+                       return 0;
+               }
+               return 2;
+       }
+       /* if we know this Id ...                                   */
+       e_no = a->IdTable[Id];
+       if (e_no) {
+               this = entity_ptr(a, e_no);
+               xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 0, a->IdTypeTable[this->No]);
+               this->RcCh = Ch;
+               /* if it is a return code to a REMOVE request, remove the   */
+               /* Id from our table                                        */
+               if ((a->misc_flags_table[e_no] & DIVA_MISC_FLAGS_REMOVE_PENDING) &&
+                   (Rc == OK)) {
+                       if (a->IdTypeTable[e_no] == NL_ID) {
+                               if (a->RcExtensionSupported &&
+                                   (extended_info_type != DIVA_RC_TYPE_REMOVE_COMPLETE)) {
+                                       dtrc(dprintf("XDI: N-REMOVE, A(%02x) Id:%02x, ignore RC=OK",
+                                                    XDI_A_NR(a), Id));
+                                       return (0);
+                               }
+                               if (extended_info_type == DIVA_RC_TYPE_REMOVE_COMPLETE)
+                                       a->RcExtensionSupported = true;
+                       }
+                       a->misc_flags_table[e_no] &= ~DIVA_MISC_FLAGS_REMOVE_PENDING;
+                       a->misc_flags_table[e_no] &= ~DIVA_MISC_FLAGS_NO_RC_CANCELLING;
+                       free_entity(a, e_no);
+                       for (i = 0; i < 256; i++)
+                       {
+                               if (a->FlowControlIdTable[i] == Id)
+                                       a->FlowControlIdTable[i] = 0;
+                       }
+                       a->IdTable[Id] = 0;
+                       this->Id = 0;
+                       /* ---------------------------------------------------------------
+                          If we send N_DISC or N_DISK_ACK after we have received OK_FC
+                          then the card will respond with OK_FC and later with RC==OK.
+                          If we send N_REMOVE in this state we will receive only RC==OK
+                          This will create the state in that the XDI is waiting for the
+                          additional RC and does not delivery the RC to the client. This
+                          code corrects the counter of outstanding RC's in this case.
+                          --------------------------------------------------------------- */
+                       if ((this->More & XMOREC) > 1) {
+                               this->More &= ~XMOREC;
+                               this->More |= 1;
+                               dtrc(dprintf("XDI: correct MORE on REMOVE A(%02x) Id:%02x",
+                                            XDI_A_NR(a), Id));
+                       }
+               }
+               if (Rc == OK_FC) {
+                       a->FlowControlIdTable[Ch] = Id;
+                       a->FlowControlSkipTable[Ch] = false;
+                       this->Rc = Rc;
+                       this->More &= ~(XBUSY | XMOREC);
+                       this->complete = 0xff;
+                       xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
+                       CALLBACK(a, this);
+                       return 0;
+               }
+               /*
+                 New protocol code sends return codes that comes from release
+                 of flow control condition marked with DIVA_RC_TYPE_OK_FC extended
+                 information element type.
+                 If like return code arrives then application is able to process
+                 all return codes self and XDI should not cances return codes.
+                 This return code does not decrement XMOREC partial return code
+                 counter due to fact that it was no request for this return code,
+                 also XMOREC was not incremented.
+               */
+               if (extended_info_type == DIVA_RC_TYPE_OK_FC) {
+                       a->misc_flags_table[e_no] |= DIVA_MISC_FLAGS_NO_RC_CANCELLING;
+                       this->Rc = Rc;
+                       this->complete = 0xff;
+                       xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
+                       DBG_TRC(("XDI OK_FC A(%02x) Id:%02x Ch:%02x Rc:%02x",
+                                XDI_A_NR(a), Id, Ch, Rc))
+                               CALLBACK(a, this);
+                       return 0;
+               }
+               cancel_rc = !(a->misc_flags_table[e_no] & DIVA_MISC_FLAGS_NO_RC_CANCELLING);
+               if (cancel_rc && (a->FlowControlIdTable[Ch] == Id))
+               {
+                       a->FlowControlIdTable[Ch] = 0;
+                       if ((Rc != OK) || !a->FlowControlSkipTable[Ch])
+                       {
+                               this->Rc = Rc;
+                               if (Ch == this->ReqCh)
+                               {
+                                       this->More &= ~(XBUSY | XMOREC);
+                                       this->complete = 0xff;
+                               }
+                               xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
+                               CALLBACK(a, this);
+                       }
+                       return 0;
+               }
+               if (this->More & XMOREC)
+                       this->More--;
+               /* call the application callback function                   */
+               if (((!cancel_rc) || (this->More & XMOREF)) && !(this->More & XMOREC)) {
+                       this->Rc = Rc;
+                       this->More &= ~XBUSY;
+                       this->complete = 0xff;
+                       xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
+                       CALLBACK(a, this);
+               }
+               return 0;
+       }
+       /* if it's an ASSIGN return code check if it's a return     */
+       /* code to an ASSIGN request from us                        */
+       if ((Rc & 0xf0) == ASSIGN_RC) {
+               e_no = get_assign(a, Ref);
+               if (e_no) {
+                       this = entity_ptr(a, e_no);
+                       this->Id = Id;
+                       xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 2, a->IdTypeTable[this->No]);
+                       /* call the application callback function                   */
+                       this->Rc = Rc;
+                       this->More &= ~XBUSY;
+                       this->complete = 0xff;
 #if defined(DIVA_ISTREAM) /* { */
-      if ((Rc == ASSIGN_OK) && a->ram_offset &&
-          (a->IdTypeTable[this->No] == NL_ID) &&
-          ((extended_info_type == DIVA_RC_TYPE_RX_DMA) ||
-          (extended_info_type == DIVA_RC_TYPE_CMA_PTR)) &&
-          extended_info) {
-        dword offset = (*(a->ram_offset)) (a);
-        dword tmp[2];
-        extended_info -= offset;
+                       if ((Rc == ASSIGN_OK) && a->ram_offset &&
+                           (a->IdTypeTable[this->No] == NL_ID) &&
+                           ((extended_info_type == DIVA_RC_TYPE_RX_DMA) ||
+                            (extended_info_type == DIVA_RC_TYPE_CMA_PTR)) &&
+                           extended_info) {
+                               dword offset = (*(a->ram_offset)) (a);
+                               dword tmp[2];
+                               extended_info -= offset;
 #ifdef PLATFORM_GT_32BIT
-        a->ram_in_dw(a, (void*)ULongToPtr(extended_info), (dword*)&tmp[0], 2);
+                               a->ram_in_dw(a, (void *)ULongToPtr(extended_info), (dword *)&tmp[0], 2);
 #else
-        a->ram_in_dw(a, (void*)extended_info, (dword*)&tmp[0], 2);
+                               a->ram_in_dw(a, (void *)extended_info, (dword *)&tmp[0], 2);
 #endif
-        a->tx_stream[Id]  = tmp[0];
-        a->rx_stream[Id]  = tmp[1];
-        if (extended_info_type == DIVA_RC_TYPE_RX_DMA) {
-          DBG_TRC(("Id=0x%x RxDMA=%08x:%08x",
-                    Id, a->tx_stream[Id], a->rx_stream[Id]))
-          a->misc_flags_table[this->No] |= DIVA_MISC_FLAGS_RX_DMA;
-        } else {
-          DBG_TRC(("Id=0x%x CMA=%08x:%08x",
-                    Id, a->tx_stream[Id], a->rx_stream[Id]))
-          a->misc_flags_table[this->No] &= ~DIVA_MISC_FLAGS_RX_DMA;
-          a->rx_pos[Id]     = 0;
-          a->rx_stream[Id] -= offset;
-        }
-        a->tx_pos[Id]     = 0;
-        a->tx_stream[Id] -= offset;
-      } else {
-        a->tx_stream[Id] = 0;
-        a->rx_stream[Id] = 0;
-        a->misc_flags_table[this->No] &= ~DIVA_MISC_FLAGS_RX_DMA;
-      }
+                               a->tx_stream[Id]  = tmp[0];
+                               a->rx_stream[Id]  = tmp[1];
+                               if (extended_info_type == DIVA_RC_TYPE_RX_DMA) {
+                                       DBG_TRC(("Id=0x%x RxDMA=%08x:%08x",
+                                                Id, a->tx_stream[Id], a->rx_stream[Id]))
+                                               a->misc_flags_table[this->No] |= DIVA_MISC_FLAGS_RX_DMA;
+                               } else {
+                                       DBG_TRC(("Id=0x%x CMA=%08x:%08x",
+                                                Id, a->tx_stream[Id], a->rx_stream[Id]))
+                                               a->misc_flags_table[this->No] &= ~DIVA_MISC_FLAGS_RX_DMA;
+                                       a->rx_pos[Id]     = 0;
+                                       a->rx_stream[Id] -= offset;
+                               }
+                               a->tx_pos[Id]     = 0;
+                               a->tx_stream[Id] -= offset;
+                       } else {
+                               a->tx_stream[Id] = 0;
+                               a->rx_stream[Id] = 0;
+                               a->misc_flags_table[this->No] &= ~DIVA_MISC_FLAGS_RX_DMA;
+                       }
 #endif /* } */
-      CALLBACK(a, this);
-      if(Rc==ASSIGN_OK) {
-        a->IdTable[Id] = e_no;
-      }
-      else
-      {
-        free_entity(a, e_no);
-        for (i = 0; i < 256; i++)
-        {
-          if (a->FlowControlIdTable[i] == Id)
-            a->FlowControlIdTable[i] = 0;
-        }
-        a->IdTable[Id] = 0;
-        this->Id = 0;
-      }
-      return 1;
-    }
-  }
-  return 2;
+                       CALLBACK(a, this);
+                       if (Rc == ASSIGN_OK) {
+                               a->IdTable[Id] = e_no;
+                       }
+                       else
+                       {
+                               free_entity(a, e_no);
+                               for (i = 0; i < 256; i++)
+                               {
+                                       if (a->FlowControlIdTable[i] == Id)
+                                               a->FlowControlIdTable[i] = 0;
+                               }
+                               a->IdTable[Id] = 0;
+                               this->Id = 0;
+                       }
+                       return 1;
+               }
+       }
+       return 2;
 }
 /*------------------------------------------------------------------*/
 /* indication handler                                               */
@@ -563,273 +563,273 @@ static byte isdn_ind(ADAPTER *a,
                     byte MInd,
                     word MLength)
 {
-  ENTITY  * this;
-  word clength;
-  word offset;
-  BUFFERS  *R;
-  byte* cma = NULL;
+       ENTITY *this;
+       word clength;
+       word offset;
+       BUFFERS *R;
+       byte *cma = NULL;
 #ifdef USE_EXTENDED_DEBUGS
-  {
-    DBG_TRC(("<A%d Id=0x%x Ind=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, Id, Ind))
-  }
+       {
+               DBG_TRC(("<A%d Id=0x%x Ind=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, Id, Ind))
+                       }
 #else
-  dbug(dprintf("isdn_ind(Ind=%x,Id=%x,Ch=%x)",Ind,Id,Ch));
+       dbug(dprintf("isdn_ind(Ind=%x,Id=%x,Ch=%x)", Ind, Id, Ch));
 #endif
-  if(a->IdTable[Id]) {
-    this = entity_ptr(a,a->IdTable[Id]);
-    this->IndCh = Ch;
-    xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
-                  0/* rnr_valid */, 0 /* rnr */, a->IdTypeTable[this->No]);
-        /* if the Receive More flag is not yet set, this is the     */
-        /* first buffer of the packet                               */
-    if(this->RCurrent==0xff) {
-        /* check for receive buffer chaining                        */
-      if(Ind==this->MInd) {
-        this->complete = 0;
-        this->Ind = MInd;
-      }
-      else {
-        this->complete = 1;
-        this->Ind = Ind;
-      }
-        /* call the application callback function for the receive   */
-        /* look ahead                                               */
-      this->RLength = MLength;
+       if (a->IdTable[Id]) {
+               this = entity_ptr(a, a->IdTable[Id]);
+               this->IndCh = Ch;
+               xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
+                            0/* rnr_valid */, 0 /* rnr */, a->IdTypeTable[this->No]);
+               /* if the Receive More flag is not yet set, this is the     */
+               /* first buffer of the packet                               */
+               if (this->RCurrent == 0xff) {
+                       /* check for receive buffer chaining                        */
+                       if (Ind == this->MInd) {
+                               this->complete = 0;
+                               this->Ind = MInd;
+                       }
+                       else {
+                               this->complete = 1;
+                               this->Ind = Ind;
+                       }
+                       /* call the application callback function for the receive   */
+                       /* look ahead                                               */
+                       this->RLength = MLength;
 #if defined(DIVA_ISTREAM)
-      if ((a->rx_stream[this->Id] ||
-           (a->misc_flags_table[this->No] & DIVA_MISC_FLAGS_RX_DMA)) &&
-          ((Ind == N_DATA) ||
-           (a->protocol_capabilities & PROTCAP_CMA_ALLPR))) {
-        PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io ;
-        if (a->misc_flags_table[this->No] & DIVA_MISC_FLAGS_RX_DMA) {
+                       if ((a->rx_stream[this->Id] ||
+                            (a->misc_flags_table[this->No] & DIVA_MISC_FLAGS_RX_DMA)) &&
+                           ((Ind == N_DATA) ||
+                            (a->protocol_capabilities & PROTCAP_CMA_ALLPR))) {
+                               PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io;
+                               if (a->misc_flags_table[this->No] & DIVA_MISC_FLAGS_RX_DMA) {
 #if defined(DIVA_IDI_RX_DMA)
-          dword d;
-          diva_get_dma_map_entry (\
-                   (struct _diva_dma_map_entry*)IoAdapter->dma_map,
-                   (int)a->rx_stream[this->Id], (void**)&cma, &d);
+                                       dword d;
+                                       diva_get_dma_map_entry(\
+                                               (struct _diva_dma_map_entry *)IoAdapter->dma_map,
+                                               (int)a->rx_stream[this->Id], (void **)&cma, &d);
 #else
-          cma = &a->stream_buffer[0];
-          cma[0] = cma[1] = cma[2] = cma[3] = 0;
+                                       cma = &a->stream_buffer[0];
+                                       cma[0] = cma[1] = cma[2] = cma[3] = 0;
 #endif
-          this->RLength = MLength = (word)*(dword*)cma;
-          cma += 4;
-        } else {
-        int final = 0;
-        cma = &a->stream_buffer[0];
-        this->RLength = MLength = (word)diva_istream_read (a,
-                                                     Id,
-                                                     cma,
-                                                     sizeof(a->stream_buffer),
-                                                     &final, NULL, NULL);
-        }
-        IoAdapter->RBuffer.length = min(MLength, (word)270);
-        if (IoAdapter->RBuffer.length != MLength) {
-          this->complete = 0;
-        } else {
-          this->complete = 1;
-        }
-        memcpy (IoAdapter->RBuffer.P, cma, IoAdapter->RBuffer.length) ;
-        this->RBuffer = (DBUFFER *)&IoAdapter->RBuffer ;
-      }
+                                       this->RLength = MLength = (word)*(dword *)cma;
+                                       cma += 4;
+                               } else {
+                                       int final = 0;
+                                       cma = &a->stream_buffer[0];
+                                       this->RLength = MLength = (word)diva_istream_read(a,
+                                                                                         Id,
+                                                                                         cma,
+                                                                                         sizeof(a->stream_buffer),
+                                                                                         &final, NULL, NULL);
+                               }
+                               IoAdapter->RBuffer.length = min(MLength, (word)270);
+                               if (IoAdapter->RBuffer.length != MLength) {
+                                       this->complete = 0;
+                               } else {
+                                       this->complete = 1;
+                               }
+                               memcpy(IoAdapter->RBuffer.P, cma, IoAdapter->RBuffer.length);
+                               this->RBuffer = (DBUFFER *)&IoAdapter->RBuffer;
+                       }
 #endif
-      if (!cma) {
-        a->ram_look_ahead(a, RBuffer, this);
-      }
-      this->RNum = 0;
-      CALLBACK(a, this);
-        /* map entity ptr, selector could be re-mapped by call to   */
-        /* IDI from within callback                                 */
-      this = entity_ptr(a,a->IdTable[Id]);
-      xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
-          1/* rnr_valid */, this->RNR/* rnr */, a->IdTypeTable[this->No]);
-        /* check for RNR                                            */
-      if(this->RNR==1) {
-        this->RNR = 0;
-        return 1;
-      }
-        /* if no buffers are provided by the application, the       */
-        /* application want to copy the data itself including       */
-        /* N_MDATA/LL_MDATA chaining                                */
-      if(!this->RNR && !this->RNum) {
-        xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
-            2/* rnr_valid */, 0/* rnr */, a->IdTypeTable[this->No]);
-        return 0;
-      }
-        /* if there is no RNR, set the More flag                    */
-      this->RCurrent = 0;
-      this->ROffset = 0;
-    }
-    if(this->RNR==2) {
-      if(Ind!=this->MInd) {
-        this->RCurrent = 0xff;
-        this->RNR = 0;
-      }
-      return 0;
-    }
-        /* if we have received buffers from the application, copy   */
-        /* the data into these buffers                              */
-    offset = 0;
-    R = PTR_R(a,this);
-    do {
-      if(this->ROffset==R[this->RCurrent].PLength) {
-        this->ROffset = 0;
-        this->RCurrent++;
-      }
-      if (cma) {
-        clength = min(MLength, (word)(R[this->RCurrent].PLength-this->ROffset));
-      } else {
-        clength = min(a->ram_inw(a, &RBuffer->length)-offset,
-                      R[this->RCurrent].PLength-this->ROffset);
-      }
-      if(R[this->RCurrent].P) {
-        if (cma) {
-          memcpy (PTR_P(a,this,&R[this->RCurrent].P[this->ROffset]),
-                  &cma[offset],
-                  clength);
-        } else {
-          a->ram_in_buffer(a,
-                           &RBuffer->P[offset],
-                           PTR_P(a,this,&R[this->RCurrent].P[this->ROffset]),
-                           clength);
-        }
-      }
-      offset +=clength;
-      this->ROffset +=clength;
-      if (cma) {
-        if (offset >= MLength) {
-          break;
-        }
-        continue;
-      }
-    } while(offset<(a->ram_inw(a, &RBuffer->length)));
-        /* if it's the last buffer of the packet, call the          */
-        /* application callback function for the receive complete   */
-        /* call                                                     */
-    if(Ind!=this->MInd) {
-      R[this->RCurrent].PLength = this->ROffset;
-      if(this->ROffset) this->RCurrent++;
-      this->RNum = this->RCurrent;
-      this->RCurrent = 0xff;
-      this->Ind = Ind;
-      this->complete = 2;
-      xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
-          3/* rnr_valid */, 0/* rnr */, a->IdTypeTable[this->No]);
-      CALLBACK(a, this);
-    }
-    return 0;
-  }
-  return 2;
+                       if (!cma) {
+                               a->ram_look_ahead(a, RBuffer, this);
+                       }
+                       this->RNum = 0;
+                       CALLBACK(a, this);
+                       /* map entity ptr, selector could be re-mapped by call to   */
+                       /* IDI from within callback                                 */
+                       this = entity_ptr(a, a->IdTable[Id]);
+                       xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
+                                    1/* rnr_valid */, this->RNR/* rnr */, a->IdTypeTable[this->No]);
+                       /* check for RNR                                            */
+                       if (this->RNR == 1) {
+                               this->RNR = 0;
+                               return 1;
+                       }
+                       /* if no buffers are provided by the application, the       */
+                       /* application want to copy the data itself including       */
+                       /* N_MDATA/LL_MDATA chaining                                */
+                       if (!this->RNR && !this->RNum) {
+                               xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
+                                            2/* rnr_valid */, 0/* rnr */, a->IdTypeTable[this->No]);
+                               return 0;
+                       }
+                       /* if there is no RNR, set the More flag                    */
+                       this->RCurrent = 0;
+                       this->ROffset = 0;
+               }
+               if (this->RNR == 2) {
+                       if (Ind != this->MInd) {
+                               this->RCurrent = 0xff;
+                               this->RNR = 0;
+                       }
+                       return 0;
+               }
+               /* if we have received buffers from the application, copy   */
+               /* the data into these buffers                              */
+               offset = 0;
+               R = PTR_R(a, this);
+               do {
+                       if (this->ROffset == R[this->RCurrent].PLength) {
+                               this->ROffset = 0;
+                               this->RCurrent++;
+                       }
+                       if (cma) {
+                               clength = min(MLength, (word)(R[this->RCurrent].PLength-this->ROffset));
+                       } else {
+                               clength = min(a->ram_inw(a, &RBuffer->length)-offset,
+                                             R[this->RCurrent].PLength-this->ROffset);
+                       }
+                       if (R[this->RCurrent].P) {
+                               if (cma) {
+                                       memcpy(PTR_P(a, this, &R[this->RCurrent].P[this->ROffset]),
+                                              &cma[offset],
+                                              clength);
+                               } else {
+                                       a->ram_in_buffer(a,
+                                                        &RBuffer->P[offset],
+                                                        PTR_P(a, this, &R[this->RCurrent].P[this->ROffset]),
+                                                        clength);
+                               }
+                       }
+                       offset += clength;
+                       this->ROffset += clength;
+                       if (cma) {
+                               if (offset >= MLength) {
+                                       break;
+                               }
+                               continue;
+                       }
+               } while (offset < (a->ram_inw(a, &RBuffer->length)));
+               /* if it's the last buffer of the packet, call the          */
+               /* application callback function for the receive complete   */
+               /* call                                                     */
+               if (Ind != this->MInd) {
+                       R[this->RCurrent].PLength = this->ROffset;
+                       if (this->ROffset) this->RCurrent++;
+                       this->RNum = this->RCurrent;
+                       this->RCurrent = 0xff;
+                       this->Ind = Ind;
+                       this->complete = 2;
+                       xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
+                                    3/* rnr_valid */, 0/* rnr */, a->IdTypeTable[this->No]);
+                       CALLBACK(a, this);
+               }
+               return 0;
+       }
+       return 2;
 }
 #if defined(XDI_USE_XLOG)
 /* -----------------------------------------------------------
    This function works in the same way as xlog on the
    active board
    ----------------------------------------------------------- */
-static void xdi_xlog (byte *msg, word code, int length) {
-  xdi_dbg_xlog ("\x00\x02", msg, code, length);
+static void xdi_xlog(byte *msg, word code, int length) {
+       xdi_dbg_xlog("\x00\x02", msg, code, length);
 }
 #endif
 /* -----------------------------------------------------------
-    This function writes the information about the Return Code
-    processing in the trace buffer. Trace ID is 221.
-    INPUT:
-        Adapter - system unicue adapter number (0 ... 255)
-        Id      - Id of the entity that had sent this return code
-        Ch      - Channel of the entity that had sent this return code
-        Rc      - return code value
-        cb:       (0...2)
-                  switch (cb) {
-                   case 0: printf ("DELIVERY"); break;
-                   case 1: printf ("CALLBACK"); break;
-                   case 2: printf ("ASSIGN"); break;
-                  }
-                  DELIVERY - have entered isdn_rc with this RC
-                  CALLBACK - about to make callback to the application
-                             for this RC
-                  ASSIGN   - about to make callback for RC that is result
-                             of ASSIGN request. It is no DELIVERY message
-                             before of this message
-        type   - the Id that was sent by the ASSIGN of this entity.
-                 This should be global Id like NL_ID, DSIG_ID, MAN_ID.
-                 An unknown Id will cause "?-" in the front of the request.
-                 In this case the log.c is to be extended.
+   This function writes the information about the Return Code
+   processing in the trace buffer. Trace ID is 221.
+   INPUT:
+   Adapter - system unicue adapter number (0 ... 255)
+   Id      - Id of the entity that had sent this return code
+   Ch      - Channel of the entity that had sent this return code
+   Rc      - return code value
+   cb:       (0...2)
+   switch (cb) {
+   case 0: printf ("DELIVERY"); break;
+   case 1: printf ("CALLBACK"); break;
+   case 2: printf ("ASSIGN"); break;
+   }
+   DELIVERY - have entered isdn_rc with this RC
+   CALLBACK - about to make callback to the application
+   for this RC
+   ASSIGN   - about to make callback for RC that is result
+   of ASSIGN request. It is no DELIVERY message
+   before of this message
+   type   - the Id that was sent by the ASSIGN of this entity.
+   This should be global Id like NL_ID, DSIG_ID, MAN_ID.
+   An unknown Id will cause "?-" in the front of the request.
+   In this case the log.c is to be extended.
    ----------------------------------------------------------- */
-static void xdi_xlog_rc_event (byte Adapter,
-                               byte Id, byte Ch, byte Rc, byte cb, byte type) {
+static void xdi_xlog_rc_event(byte Adapter,
+                             byte Id, byte Ch, byte Rc, byte cb, byte type) {
 #if defined(XDI_USE_XLOG)
-  word LogInfo[4];
-  PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
-  PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
-  PUT_WORD(&LogInfo[2], ((word)Rc | (word)(type << 8)));
-  PUT_WORD(&LogInfo[3], cb);
-  xdi_xlog ((byte*)&LogInfo[0], 221, sizeof(LogInfo));
+       word LogInfo[4];
+       PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
+       PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
+       PUT_WORD(&LogInfo[2], ((word)Rc | (word)(type << 8)));
+       PUT_WORD(&LogInfo[3], cb);
+       xdi_xlog((byte *)&LogInfo[0], 221, sizeof(LogInfo));
 #endif
 }
 /* ------------------------------------------------------------------------
-    This function writes the information about the request processing
-    in the trace buffer. Trace ID is 220.
-    INPUT:
-        Adapter - system unicue adapter number (0 ... 255)
-        Id      - Id of the entity that had sent this request
-        Ch      - Channel of the entity that had sent this request
-        Req     - Code of the request
-        type    - the Id that was sent by the ASSIGN of this entity.
-                  This should be global Id like NL_ID, DSIG_ID, MAN_ID.
-                  An unknown Id will cause "?-" in the front of the request.
-                  In this case the log.c is to be extended.
+   This function writes the information about the request processing
+   in the trace buffer. Trace ID is 220.
+   INPUT:
+   Adapter - system unicue adapter number (0 ... 255)
+   Id      - Id of the entity that had sent this request
+   Ch      - Channel of the entity that had sent this request
+   Req     - Code of the request
+   type    - the Id that was sent by the ASSIGN of this entity.
+   This should be global Id like NL_ID, DSIG_ID, MAN_ID.
+   An unknown Id will cause "?-" in the front of the request.
+   In this case the log.c is to be extended.
    ------------------------------------------------------------------------ */
-static void xdi_xlog_request (byte Adapter, byte Id,
-                              byte Ch, byte Req, byte type) {
+static void xdi_xlog_request(byte Adapter, byte Id,
+                            byte Ch, byte Req, byte type) {
 #if defined(XDI_USE_XLOG)
-  word LogInfo[3];
-  PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
-  PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
-  PUT_WORD(&LogInfo[2], ((word)Req | (word)(type << 8)));
-  xdi_xlog ((byte*)&LogInfo[0], 220, sizeof(LogInfo));
+       word LogInfo[3];
+       PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
+       PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
+       PUT_WORD(&LogInfo[2], ((word)Req | (word)(type << 8)));
+       xdi_xlog((byte *)&LogInfo[0], 220, sizeof(LogInfo));
 #endif
 }
 /* ------------------------------------------------------------------------
-    This function writes the information about the indication processing
-    in the trace buffer. Trace ID is 222.
-    INPUT:
-        Adapter - system unicue adapter number (0 ... 255)
-        Id      - Id of the entity that had sent this indication
-        Ch      - Channel of the entity that had sent this indication
-        Ind     - Code of the indication
-        rnr_valid: (0 .. 3) supported
-          switch (rnr_valid) {
-            case 0: printf ("DELIVERY"); break;
-            case 1: printf ("RNR=%d", rnr);
-            case 2: printf ("RNum=0");
-            case 3: printf ("COMPLETE");
-          }
-          DELIVERY - indication entered isdn_rc function
-          RNR=...  - application had returned RNR=... after the
-                     look ahead callback
-          RNum=0   - application had not returned any buffer to copy
-                     this indication and will copy it self
-          COMPLETE - XDI had copied the data to the buffers provided
-                     bu the application and is about to issue the
-                     final callback
-        rnr:  Look case 1 of the rnr_valid
-        type: the Id that was sent by the ASSIGN of this entity. This should
-              be global Id like NL_ID, DSIG_ID, MAN_ID. An unknown Id will
-              cause "?-" in the front of the request. In this case the
-              log.c is to be extended.
+   This function writes the information about the indication processing
+   in the trace buffer. Trace ID is 222.
+   INPUT:
+   Adapter - system unicue adapter number (0 ... 255)
+   Id      - Id of the entity that had sent this indication
+   Ch      - Channel of the entity that had sent this indication
+   Ind     - Code of the indication
+   rnr_valid: (0 .. 3) supported
+   switch (rnr_valid) {
+   case 0: printf ("DELIVERY"); break;
+   case 1: printf ("RNR=%d", rnr);
+   case 2: printf ("RNum=0");
+   case 3: printf ("COMPLETE");
+   }
+   DELIVERY - indication entered isdn_rc function
+   RNR=...  - application had returned RNR=... after the
+   look ahead callback
+   RNum=0   - application had not returned any buffer to copy
+   this indication and will copy it self
+   COMPLETE - XDI had copied the data to the buffers provided
+   bu the application and is about to issue the
+   final callback
+   rnr:  Look case 1 of the rnr_valid
+   type: the Id that was sent by the ASSIGN of this entity. This should
+   be global Id like NL_ID, DSIG_ID, MAN_ID. An unknown Id will
+   cause "?-" in the front of the request. In this case the
+   log.c is to be extended.
    ------------------------------------------------------------------------ */
-static void xdi_xlog_ind (byte Adapter,
-                          byte Id,
-                          byte Ch,
-                          byte Ind,
-                          byte rnr_valid,
-                          byte rnr,
-                          byte type) {
+static void xdi_xlog_ind(byte Adapter,
+                        byte Id,
+                        byte Ch,
+                        byte Ind,
+                        byte rnr_valid,
+                        byte rnr,
+                        byte type) {
 #if defined(XDI_USE_XLOG)
-  word LogInfo[4];
-  PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
-  PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
-  PUT_WORD(&LogInfo[2], ((word)Ind | (word)(type << 8)));
-  PUT_WORD(&LogInfo[3], ((word)rnr | (word)(rnr_valid << 8)));
-  xdi_xlog ((byte*)&LogInfo[0], 222, sizeof(LogInfo));
+       word LogInfo[4];
+       PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
+       PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
+       PUT_WORD(&LogInfo[2], ((word)Ind | (word)(type << 8)));
+       PUT_WORD(&LogInfo[3], ((word)rnr | (word)(rnr_valid << 8)));
+       xdi_xlog((byte *)&LogInfo[0], 222, sizeof(LogInfo));
 #endif
 }
index dcf37b1..ff26c65 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 /*
 #define DIVA_MISC_FLAGS_REMOVE_PENDING    0x01
 #define DIVA_MISC_FLAGS_NO_RC_CANCELLING  0x02
 #define DIVA_MISC_FLAGS_RX_DMA            0x04
-        /* structure for all information we have to keep on a per   */
-        /* adapater basis                                           */
+/* structure for all information we have to keep on a per   */
+/* adapater basis                                           */
 typedef struct adapter_s ADAPTER;
 struct adapter_s {
-  void * io;
-  byte IdTable[256];
-  byte IdTypeTable[256];
-  byte FlowControlIdTable[256];
-  byte FlowControlSkipTable[256];
-  byte ReadyInt;
-  byte RcExtensionSupported;
-  byte misc_flags_table[256];
-  dword protocol_capabilities;
-  byte ( * ram_in)(ADAPTER * a, void * adr);
-  word ( * ram_inw)(ADAPTER * a, void * adr);
-  void (* ram_in_buffer)(ADAPTER * a, void * adr, void  * P, word length);
-  void (* ram_look_ahead)(ADAPTER * a, PBUFFER * RBuffer, ENTITY  * e);
-  void ( * ram_out)(ADAPTER * a, void * adr, byte data);
-  void ( * ram_outw)(ADAPTER * a, void * adr, word data);
-  void (* ram_out_buffer)(ADAPTER * a, void * adr, void  * P, word length);
-  void ( * ram_inc)(ADAPTER * a, void * adr);
+       void *io;
+       byte IdTable[256];
+       byte IdTypeTable[256];
+       byte FlowControlIdTable[256];
+       byte FlowControlSkipTable[256];
+       byte ReadyInt;
+       byte RcExtensionSupported;
+       byte misc_flags_table[256];
+       dword protocol_capabilities;
+       byte (*ram_in)(ADAPTER *a, void *adr);
+       word (*ram_inw)(ADAPTER *a, void *adr);
+       void (*ram_in_buffer)(ADAPTER *a, void *adr, void *P, word length);
+       void (*ram_look_ahead)(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
+       void (*ram_out)(ADAPTER *a, void *adr, byte data);
+       void (*ram_outw)(ADAPTER *a, void *adr, word data);
+       void (*ram_out_buffer)(ADAPTER *a, void *adr, void *P, word length);
+       void (*ram_inc)(ADAPTER *a, void *adr);
 #if defined(DIVA_ISTREAM)
-  dword rx_stream[256];
-  dword tx_stream[256];
-  word tx_pos[256];
-  word rx_pos[256];
-  byte stream_buffer[2512];
-  dword ( * ram_offset)(ADAPTER * a);
-  void ( * ram_out_dw) (ADAPTER *a,
-                                    void *addr,
-                                    const dword* data,
-                                    int dwords);
-  void ( * ram_in_dw) (ADAPTER *a,
-                                   void *addr,
-                                   dword* data,
-                                   int dwords);
-  void ( * istream_wakeup)(ADAPTER* a);
+       dword rx_stream[256];
+       dword tx_stream[256];
+       word tx_pos[256];
+       word rx_pos[256];
+       byte stream_buffer[2512];
+       dword (*ram_offset)(ADAPTER *a);
+       void (*ram_out_dw)(ADAPTER *a,
+                          void *addr,
+                          const dword *data,
+                          int dwords);
+       void (*ram_in_dw)(ADAPTER *a,
+                         void *addr,
+                         dword *data,
+                         int dwords);
+       void (*istream_wakeup)(ADAPTER *a);
 #else
-  byte stream_buffer[4];
+       byte stream_buffer[4];
 #endif
 };
 /*------------------------------------------------------------------*/
 /* public functions of IDI common code                              */
 /*------------------------------------------------------------------*/
-void pr_out(ADAPTER * a);
-byte pr_dpc(ADAPTER * a);
-byte scom_test_int(ADAPTER * a);
-void scom_clear_int(ADAPTER * a);
+void pr_out(ADAPTER *a);
+byte pr_dpc(ADAPTER *a);
+byte scom_test_int(ADAPTER *a);
+void scom_clear_int(ADAPTER *a);
 /*------------------------------------------------------------------*/
 /* OS specific functions used by IDI common code                    */
 /*------------------------------------------------------------------*/
-void free_entity(ADAPTER * a, byte e_no);
-void assign_queue(ADAPTER * a, byte e_no, word ref);
-byte get_assign(ADAPTER * a, word ref);
-void req_queue(ADAPTER * a, byte e_no);
-byte look_req(ADAPTER * a);
-void next_req(ADAPTER * a);
-ENTITY  * entity_ptr(ADAPTER * a, byte e_no);
+void free_entity(ADAPTER *a, byte e_no);
+void assign_queue(ADAPTER *a, byte e_no, word ref);
+byte get_assign(ADAPTER *a, word ref);
+void req_queue(ADAPTER *a, byte e_no);
+byte look_req(ADAPTER *a);
+void next_req(ADAPTER *a);
+ENTITY *entity_ptr(ADAPTER *a, byte e_no);
 #if defined(DIVA_ISTREAM)
 struct _diva_xdi_stream_interface;
-void diva_xdi_provide_istream_info (ADAPTER* a,
-                                    struct _diva_xdi_stream_interface* pI);
-void pr_stream (ADAPTER * a);
-int diva_istream_write (void* context,
-                        int Id,
-                        void* data,
-                        int length,
-                        int final,
-                        byte usr1,
-                        byte usr2);
-int diva_istream_read (void* context,
-                        int Id,
-                        void* data,
-                        int max_length,
-                        int* final,
-                        byte* usr1,
-                        byte* usr2);
+void diva_xdi_provide_istream_info(ADAPTER *a,
+                                  struct _diva_xdi_stream_interface *pI);
+void pr_stream(ADAPTER *a);
+int diva_istream_write(void *context,
+                      int Id,
+                      void *data,
+                      int length,
+                      int final,
+                      byte usr1,
+                      byte usr2);
+int diva_istream_read(void *context,
+                     int Id,
+                     void *data,
+                     int max_length,
+                     int *final,
+                     byte *usr1,
+                     byte *usr2);
 #if defined(DIVA_IDI_RX_DMA)
 #include "diva_dma.h"
 #endif
index d576ff3..1380b60 100644 (file)
@@ -1,34 +1,34 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_DI_DBG_INC__
 #define __DIVA_DI_DBG_INC__
-#if !defined (dtrc)
+#if !defined(dtrc)
 #define dtrc(a)
 #endif
-#if !defined (dbug)
+#if !defined(dbug)
 #define dbug(a)
 #endif
 #if !defined USE_EXTENDED_DEBUGS
index 4c2f612..a5094d2 100644 (file)
@@ -1,31 +1,31 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#ifndef _DI_DEFS_  
+#ifndef _DI_DEFS_
 #define _DI_DEFS_
-        /* typedefs for our data structures                         */
+/* typedefs for our data structures                         */
 typedef struct get_name_s GET_NAME;
 /*  The entity_s structure is used to pass all
     parameters between application and IDI   */
@@ -38,72 +38,72 @@ typedef struct get_para_s GET_PARA;
 #define IDI_CALL_ENTITY_T
 /* typedef void ( * IDI_CALL)(ENTITY *); */
 /* --------------------------------------------------------
-    IDI_CALL
+   IDI_CALL
    -------------------------------------------------------- */
-typedef void (IDI_CALL_LINK_T * IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *);
+typedef void (IDI_CALL_LINK_T *IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *);
 typedef struct {
-  word length;          /* length of data/parameter field           */
-  byte P[270];          /* data/parameter field                     */
+       word length;          /* length of data/parameter field           */
+       byte P[270];          /* data/parameter field                     */
 } DBUFFER;
 struct get_name_s {
-  word command;         /* command = 0x0100 */
-  byte name[BOARD_NAME_LENGTH];
+       word command;         /* command = 0x0100 */
+       byte name[BOARD_NAME_LENGTH];
 };
 struct postcall_s {
-  word      command;                           /* command = 0x0300 */
-  word      dummy;                             /* not used */
-  void      (  * callback)(void   *);      /* call back */
-  void    *context;                          /* context pointer */
+       word      command;                           /* command = 0x0300 */
+       word      dummy;                             /* not used */
+       void      (*callback)(void *);      /* call back */
+       void      *context;                          /* context pointer */
 };
 #define REQ_PARA            0x0600   /* request command line parameters */
 #define REQ_PARA_LEN             1   /* number of data bytes */
 #define L1_STARTUP_DOWN_POS      0   /* '-y' command line parameter in......*/
 #define L1_STARTUP_DOWN_MSK   0x01   /* first byte position (index 0) with value 0x01 */
 struct get_para_s {
-  word  command;            /* command = 0x0600 */
-  byte  len;                /* max length of para field in bytes */
-  byte  para[REQ_PARA_LEN]; /* parameter field */
+       word  command;            /* command = 0x0600 */
+       byte  len;                /* max length of para field in bytes */
+       byte  para[REQ_PARA_LEN]; /* parameter field */
 };
 struct buffers_s {
-  word PLength;
-  byte   * P;
+       word PLength;
+       byte *P;
 };
 struct entity_s {
-  byte                  Req;            /* pending request          */
-  byte                  Rc;             /* return code received     */
-  byte                  Ind;            /* indication received      */
-  byte                  ReqCh;          /* channel of current Req   */
-  byte                  RcCh;           /* channel of current Rc    */
-  byte                  IndCh;          /* channel of current Ind   */
-  byte                  Id;             /* ID used by this entity   */
-  byte                  GlobalId;       /* reserved field           */
-  byte                  XNum;           /* number of X-buffers      */
-  byte                  RNum;           /* number of R-buffers      */
-  BUFFERS                 * X;        /* pointer to X-buffer list */
-  BUFFERS                 * R;        /* pointer to R-buffer list */
-  word                  RLength;        /* length of current R-data */
-  DBUFFER   *         RBuffer;        /* buffer of current R-data */
-  byte                  RNR;            /* receive not ready flag   */
-  byte                  complete;       /* receive complete status  */
-  IDI_CALL              callback;
-  word                  user[2];
-        /* fields used by the driver internally                     */
-  byte                  No;             /* entity number            */
-  byte                  reserved2;      /* reserved field           */
-  byte                  More;           /* R/X More flags           */
-  byte                  MInd;           /* MDATA coding for this ID */
-  byte                  XCurrent;       /* current transmit buffer  */
-  byte                  RCurrent;       /* current receive buffer   */
-  word                  XOffset;        /* offset in x-buffer       */
-  word                  ROffset;        /* offset in r-buffer       */
+       byte                  Req;            /* pending request          */
+       byte                  Rc;             /* return code received     */
+       byte                  Ind;            /* indication received      */
+       byte                  ReqCh;          /* channel of current Req   */
+       byte                  RcCh;           /* channel of current Rc    */
+       byte                  IndCh;          /* channel of current Ind   */
+       byte                  Id;             /* ID used by this entity   */
+       byte                  GlobalId;       /* reserved field           */
+       byte                  XNum;           /* number of X-buffers      */
+       byte                  RNum;           /* number of R-buffers      */
+       BUFFERS               *X;             /* pointer to X-buffer list */
+       BUFFERS               *R;             /* pointer to R-buffer list */
+       word                  RLength;        /* length of current R-data */
+       DBUFFER               *RBuffer;       /* buffer of current R-data */
+       byte                  RNR;            /* receive not ready flag   */
+       byte                  complete;       /* receive complete status  */
+       IDI_CALL              callback;
+       word                  user[2];
+       /* fields used by the driver internally                     */
+       byte                  No;             /* entity number            */
+       byte                  reserved2;      /* reserved field           */
+       byte                  More;           /* R/X More flags           */
+       byte                  MInd;           /* MDATA coding for this ID */
+       byte                  XCurrent;       /* current transmit buffer  */
+       byte                  RCurrent;       /* current receive buffer   */
+       word                  XOffset;        /* offset in x-buffer       */
+       word                  ROffset;        /* offset in r-buffer       */
 };
 typedef struct {
-  byte                  type;
-  byte                  channels;
-  word                  features;
-  IDI_CALL              request;
+       byte                  type;
+       byte                  channels;
+       word                  features;
+       IDI_CALL              request;
 } DESCRIPTOR;
-        /* descriptor type field coding */
+/* descriptor type field coding */
 #define IDI_ADAPTER_S           1
 #define IDI_ADAPTER_PR          2
 #define IDI_ADAPTER_DIVA        3
@@ -113,7 +113,7 @@ typedef struct {
 #define IDI_DADAPTER            0xfd
 #define IDI_DIDDPNP             0xfe
 #define IDI_DIMAINT             0xff
-        /* Hardware IDs ISA PNP */
+/* Hardware IDs ISA PNP */
 #define HW_ID_DIVA_PRO     3    /* same as IDI_ADAPTER_DIVA    */
 #define HW_ID_MAESTRA      4    /* same as IDI_ADAPTER_MAESTRA */
 #define HW_ID_PICCOLA      5
@@ -123,7 +123,7 @@ typedef struct {
 #define HW_ID_DIVA20_U     9
 #define HW_ID_DIVA30       10
 #define HW_ID_DIVA30_U     11
-        /* Hardware IDs PCI */
+/* Hardware IDs PCI */
 #define HW_ID_EICON_PCI              0x1133
 #define HW_ID_SIEMENS_PCI            0x8001 /* unused SubVendor ID for Siemens Cornet-N cards */
 #define HW_ID_PROTTYPE_CORNETN       0x0014 /* SubDevice ID for Siemens Cornet-N cards */
@@ -153,16 +153,16 @@ typedef struct {
 #define HW_ID_DSRV_VOICE_P30M_V2_PCI 0xe019
 #define HW_ID_DSRV_B2F_PCI           0xe01a
 #define HW_ID_DSRV_VOICE_B2M_V2_PCI  0xe01b
-        /* Hardware IDs USB */
+/* Hardware IDs USB */
 #define EICON_USB_VENDOR_ID          0x071D
 #define HW_ID_DIVA_USB_REV1          0x1000
 #define HW_ID_DIVA_USB_REV2          0x1003
 #define HW_ID_TELEDAT_SURF_USB_REV2  0x1004
 #define HW_ID_TELEDAT_SURF_USB_REV1  0x2000
 /* --------------------------------------------------------------------------
-  Adapter array change notification framework
-  -------------------------------------------------------------------------- */
-typedef void (IDI_CALL_LINK_T* didd_adapter_change_callback_t)(     void IDI_CALL_ENTITY_T * context, DESCRIPTOR* adapter, int removal);
+   Adapter array change notification framework
+   -------------------------------------------------------------------------- */
+typedef void (IDI_CALL_LINK_T *didd_adapter_change_callback_t)(void IDI_CALL_ENTITY_T *context, DESCRIPTOR *adapter, int removal);
 /* -------------------------------------------------------------------------- */
 #define DI_VOICE          0x0 /* obsolete define */
 #define DI_FAX3           0x1
@@ -177,5 +177,5 @@ typedef void (IDI_CALL_LINK_T* didd_adapter_change_callback_t)(     void IDI_CAL
 #define DI_EXTD_FAX       0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */
 #define DI_AT_PARSER      0x0400 /* Build-in AT Parser in the L2 */
 #define DI_VOICE_OVER_IP  0x0800 /* Voice over IP support */
-typedef void (IDI_CALL_LINK_T* _IDI_CALL)(void*, ENTITY*);  
-#endif  
+typedef void (IDI_CALL_LINK_T *_IDI_CALL)(void *, ENTITY *);
+#endif
index 538c590..fa8db82 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-static char diva_didd_common_code_build[] = "102-51";  
+static char diva_didd_common_code_build[] = "102-51";
index 3029234..c4c8220 100644 (file)
@@ -1,12 +1,12 @@
 /* $Id: diddfunc.c,v 1.14.6.2 2004/08/28 20:03:53 armin Exp $
  *
  * DIDD Interface module for Eicon active cards.
- * 
- * Functions are in dadapter.c 
- * 
- * Copyright 2002-2003 by Armin Schindler (mac@melware.de) 
+ *
+ * Functions are in dadapter.c
+ *
+ * Copyright 2002-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2002-2003 Cytronics & Melware (info@melware.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  */
@@ -28,12 +28,12 @@ static DESCRIPTOR _DAdapter;
 /*
  * didd callback function
  */
-static void *didd_callback(void *context, DESCRIPTOR * adapter,
+static void *didd_callback(void *context, DESCRIPTOR *adapter,
                           int removal)
 {
        if (adapter->type == IDI_DADAPTER) {
                DBG_ERR(("Notification about IDI_DADAPTER change ! Oops."))
-               return (NULL);
+                       return (NULL);
        } else if (adapter->type == IDI_DIMAINT) {
                if (removal) {
                        DbgDeregister();
@@ -62,10 +62,10 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
                        memcpy(&_DAdapter, &DIDD_Table[x], sizeof(_DAdapter));
                        req.didd_notify.e.Req = 0;
                        req.didd_notify.e.Rc =
-                           IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
+                               IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
                        req.didd_notify.info.callback = (void *)didd_callback;
                        req.didd_notify.info.context = NULL;
-                       _DAdapter.request((ENTITY *) & req);
+                       _DAdapter.request((ENTITY *)&req);
                        if (req.didd_notify.e.Rc != 0xff)
                                return (0);
                        notify_handle = req.didd_notify.info.handle;
@@ -86,7 +86,7 @@ static void DIVA_EXIT_FUNCTION disconnect_didd(void)
        req.didd_notify.e.Req = 0;
        req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
        req.didd_notify.info.handle = notify_handle;
-       _DAdapter.request((ENTITY *) & req);
+       _DAdapter.request((ENTITY *)&req);
 }
 
 /*
@@ -98,7 +98,7 @@ int DIVA_INIT_FUNCTION diddfunc_init(void)
 
        if (!connect_didd()) {
                DBG_ERR(("init: failed to connect to DIDD."))
-               diva_didd_load_time_finit();
+                       diva_didd_load_time_finit();
                return (0);
        }
        return (1);
index 1403a54..d91dd58 100644 (file)
 
 PISDN_ADAPTER IoAdapters[MAX_ADAPTER];
 extern IDI_CALL Requests[MAX_ADAPTER];
-extern int create_adapter_proc(diva_os_xdi_adapter_t * a);
-extern void remove_adapter_proc(diva_os_xdi_adapter_t * a);
+extern int create_adapter_proc(diva_os_xdi_adapter_t *a);
+extern void remove_adapter_proc(diva_os_xdi_adapter_t *a);
 
-#define DivaIdiReqFunc(N) \
-static void DivaIdiRequest##N(ENTITY *e) \
-{ if ( IoAdapters[N] ) (* IoAdapters[N]->DIRequest)(IoAdapters[N], e) ; }
+#define DivaIdiReqFunc(N)                                              \
+       static void DivaIdiRequest##N(ENTITY *e)                        \
+       { if (IoAdapters[N]) (*IoAdapters[N]->DIRequest)(IoAdapters[N], e); }
 
 /*
 **  Create own 32 Adapters
@@ -91,44 +91,44 @@ typedef struct _diva_supported_cards_info {
 static diva_supported_cards_info_t divas_supported_cards[] = {
 #ifdef CONFIG_ISDN_DIVAS_PRIPCI
        /*
-          PRI Cards
-        */
+         PRI Cards
+       */
        {CARDTYPE_DIVASRV_P_30M_PCI, diva_pri_init_card},
        /*
-          PRI Rev.2 Cards
-        */
+         PRI Rev.2 Cards
+       */
        {CARDTYPE_DIVASRV_P_30M_V2_PCI, diva_pri_init_card},
        /*
-          PRI Rev.2 VoIP Cards
-        */
+         PRI Rev.2 VoIP Cards
+       */
        {CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI, diva_pri_init_card},
 #endif
 #ifdef CONFIG_ISDN_DIVAS_BRIPCI
        /*
-          4BRI Rev 1 Cards
-        */
+         4BRI Rev 1 Cards
+       */
        {CARDTYPE_DIVASRV_Q_8M_PCI, diva_4bri_init_card},
        {CARDTYPE_DIVASRV_VOICE_Q_8M_PCI, diva_4bri_init_card},
        /*
-          4BRI Rev 2 Cards
-        */
+         4BRI Rev 2 Cards
+       */
        {CARDTYPE_DIVASRV_Q_8M_V2_PCI, diva_4bri_init_card},
        {CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI, diva_4bri_init_card},
        /*
-          4BRI Based BRI Rev 2 Cards
-        */
+         4BRI Based BRI Rev 2 Cards
+       */
        {CARDTYPE_DIVASRV_B_2M_V2_PCI, diva_4bri_init_card},
        {CARDTYPE_DIVASRV_B_2F_PCI, diva_4bri_init_card},
        {CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI, diva_4bri_init_card},
        /*
-          BRI
-        */
+         BRI
+       */
        {CARDTYPE_MAESTRA_PCI, diva_bri_init_card},
 #endif
 
        /*
-          EOL
-        */
+         EOL
+       */
        {-1}
 };
 
@@ -150,18 +150,18 @@ static int diva_find_free_adapters(int base, int nr)
        return (0);
 }
 
-static diva_os_xdi_adapter_t *diva_q_get_next(struct list_head * what)
+static diva_os_xdi_adapter_t *diva_q_get_next(struct list_head *what)
 {
        diva_os_xdi_adapter_t *a = NULL;
 
        if (what && (what->next != &adapter_queue))
                a = list_entry(what->next, diva_os_xdi_adapter_t, link);
 
-       return(a);
+       return (a);
 }
 
 /* --------------------------------------------------------------------------
-    Add card to the card list
+   Add card to the card list
    -------------------------------------------------------------------------- */
 void *diva_driver_add_card(void *pdev, unsigned long CardOrdinal)
 {
@@ -203,7 +203,7 @@ void *diva_driver_add_card(void *pdev, unsigned long CardOrdinal)
                                                 [CardOrdinal].Name,
                                                 pdiva->controller))
 
-                                       diva_os_enter_spin_lock(&adapter_lock, &old_irql, "add card");
+                                               diva_os_enter_spin_lock(&adapter_lock, &old_irql, "add card");
                                        pa = pdiva;
                                        for (j = 1; j < nr; j++) {      /* slave adapters, if any */
                                                pa = diva_q_get_next(&pa->link);
@@ -214,11 +214,11 @@ void *diva_driver_add_card(void *pdev, unsigned long CardOrdinal)
                                                        diva_os_leave_spin_lock(&adapter_lock, &old_irql, "add card");
                                                        DBG_LOG(("add slave adapter (%d)",
                                                                 pa->controller))
-                                                       create_adapter_proc(pa);        /* add adapter to proc file system */
+                                                               create_adapter_proc(pa);        /* add adapter to proc file system */
                                                        diva_os_enter_spin_lock(&adapter_lock, &old_irql, "add card");
                                                } else {
                                                        DBG_ERR(("slave adapter problem"))
-                                                       break;
+                                                               break;
                                                }
                                        }
 
@@ -230,10 +230,10 @@ void *diva_driver_add_card(void *pdev, unsigned long CardOrdinal)
                        diva_os_leave_spin_lock(&adapter_lock, &old_irql, "add card");
 
                        /*
-                          Not able to add adapter - remove it and return error
-                        */
+                         Not able to add adapter - remove it and return error
+                       */
                        DBG_ERR(("can not alloc request array"))
-                       diva_driver_remove_card(pdiva);
+                               diva_driver_remove_card(pdiva);
 
                        return NULL;
                }
@@ -243,7 +243,7 @@ void *diva_driver_add_card(void *pdev, unsigned long CardOrdinal)
 }
 
 /* --------------------------------------------------------------------------
-    Called on driver load, MAIN, main, DriverEntry
+   Called on driver load, MAIN, main, DriverEntry
    -------------------------------------------------------------------------- */
 int divasa_xdi_driver_entry(void)
 {
@@ -255,7 +255,7 @@ int divasa_xdi_driver_entry(void)
 }
 
 /* --------------------------------------------------------------------------
-    Remove adapter from list
+   Remove adapter from list
    -------------------------------------------------------------------------- */
 static diva_os_xdi_adapter_t *get_and_remove_from_queue(void)
 {
@@ -274,7 +274,7 @@ static diva_os_xdi_adapter_t *get_and_remove_from_queue(void)
 }
 
 /* --------------------------------------------------------------------------
-    Remove card from the card list
+   Remove card from the card list
    -------------------------------------------------------------------------- */
 void diva_driver_remove_card(void *pdiva)
 {
@@ -318,7 +318,7 @@ void diva_driver_remove_card(void *pdiva)
 }
 
 /* --------------------------------------------------------------------------
-    Create diva PCI adapter and init internal adapter structures
+   Create diva PCI adapter and init internal adapter structures
    -------------------------------------------------------------------------- */
 static void *divas_create_pci_card(int handle, void *pci_dev_handle)
 {
@@ -328,10 +328,10 @@ static void *divas_create_pci_card(int handle, void *pci_dev_handle)
 
        DBG_LOG(("found %d-%s", pI->CardOrdinal, CardProperties[pI->CardOrdinal].Name))
 
-       if (!(a = (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a)))) {
-               DBG_ERR(("A: can't alloc adapter"));
-               return NULL;
-       }
+               if (!(a = (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a)))) {
+                       DBG_ERR(("A: can't alloc adapter"));
+                       return NULL;
+               }
 
        memset(a, 0x00, sizeof(*a));
 
@@ -344,9 +344,9 @@ static void *divas_create_pci_card(int handle, void *pci_dev_handle)
        a->resources.pci.hdev = pci_dev_handle;
 
        /*
-          Add master adapter first, so slave adapters will receive higher
-          numbers as master adapter
-        */
+         Add master adapter first, so slave adapters will receive higher
+         numbers as master adapter
+       */
        diva_os_enter_spin_lock(&adapter_lock, &old_irql, "found_pci_card");
        list_add_tail(&a->link, &adapter_queue);
        diva_os_leave_spin_lock(&adapter_lock, &old_irql, "found_pci_card");
@@ -364,7 +364,7 @@ static void *divas_create_pci_card(int handle, void *pci_dev_handle)
 }
 
 /* --------------------------------------------------------------------------
-    Called on driver unload FINIT, finit, Unload
+   Called on driver unload FINIT, finit, Unload
    -------------------------------------------------------------------------- */
 void divasa_xdi_driver_unload(void)
 {
@@ -398,11 +398,11 @@ void *diva_xdi_open_adapter(void *os_handle, const void __user *src,
        if (length < sizeof(diva_xdi_um_cfg_cmd_t)) {
                DBG_ERR(("A: A(?) open, msg too small (%d < %d)",
                         length, sizeof(diva_xdi_um_cfg_cmd_t)))
-               return NULL;
+                       return NULL;
        }
        if ((*cp_fn) (os_handle, &msg, src, sizeof(msg)) <= 0) {
                DBG_ERR(("A: A(?) open, write error"))
-               return NULL;
+                       return NULL;
        }
        diva_os_enter_spin_lock(&adapter_lock, &old_irql, "open_adapter");
        list_for_each(tmp, &adapter_queue) {
@@ -415,7 +415,7 @@ void *diva_xdi_open_adapter(void *os_handle, const void __user *src,
 
        if (!a) {
                DBG_ERR(("A: A(%d) open, adapter not found", msg.adapter))
-       }
+                       }
 
        return (a);
 }
@@ -443,19 +443,19 @@ diva_xdi_write(void *adapter, void *os_handle, const void __user *src,
 
        if (a->xdi_mbox.status & DIVA_XDI_MBOX_BUSY) {
                DBG_ERR(("A: A(%d) write, mbox busy", a->controller))
-               return (-1);
+                       return (-1);
        }
 
        if (length < sizeof(diva_xdi_um_cfg_cmd_t)) {
                DBG_ERR(("A: A(%d) write, message too small (%d < %d)",
                         a->controller, length,
                         sizeof(diva_xdi_um_cfg_cmd_t)))
-               return (-3);
+                       return (-3);
        }
 
        if (!(data = diva_os_malloc(0, length))) {
                DBG_ERR(("A: A(%d) write, ENOMEM", a->controller))
-               return (-2);
+                       return (-2);
        }
 
        length = (*cp_fn) (os_handle, data, src, length);
@@ -467,7 +467,7 @@ diva_xdi_write(void *adapter, void *os_handle, const void __user *src,
        } else {
                DBG_ERR(("A: A(%d) write error (%d)", a->controller,
                         length))
-       }
+                       }
 
        diva_os_free(0, data);
 
@@ -486,23 +486,23 @@ diva_xdi_read(void *adapter, void *os_handle, void __user *dst,
 
        if (!(a->xdi_mbox.status & DIVA_XDI_MBOX_BUSY)) {
                DBG_ERR(("A: A(%d) rx mbox empty", a->controller))
-               return (-1);
+                       return (-1);
        }
        if (!a->xdi_mbox.data) {
                a->xdi_mbox.status &= ~DIVA_XDI_MBOX_BUSY;
                DBG_ERR(("A: A(%d) rx ENOMEM", a->controller))
-               return (-2);
+                       return (-2);
        }
 
        if (max_length < a->xdi_mbox.data_length) {
                DBG_ERR(("A: A(%d) rx buffer too short(%d < %d)",
                         a->controller, max_length,
                         a->xdi_mbox.data_length))
-               return (-3);
+                       return (-3);
        }
 
        ret = (*cp_fn) (os_handle, dst, a->xdi_mbox.data,
-                     a->xdi_mbox.data_length);
+                       a->xdi_mbox.data_length);
        if (ret > 0) {
                diva_os_free(0, a->xdi_mbox.data);
                a->xdi_mbox.data = NULL;
@@ -577,33 +577,33 @@ void diva_xdi_display_adapter_features(int card)
        features = IoAdapters[card]->Properties.Features;
 
        DBG_LOG(("FEATURES FOR ADAPTER: %d", card + 1))
-       DBG_LOG((" DI_FAX3          :  %s",
-                    (features & DI_FAX3) ? "Y" : "N"))
-       DBG_LOG((" DI_MODEM         :  %s",
-                    (features & DI_MODEM) ? "Y" : "N"))
-       DBG_LOG((" DI_POST          :  %s",
-                    (features & DI_POST) ? "Y" : "N"))
-       DBG_LOG((" DI_V110          :  %s",
-                    (features & DI_V110) ? "Y" : "N"))
-       DBG_LOG((" DI_V120          :  %s",
-                    (features & DI_V120) ? "Y" : "N"))
-       DBG_LOG((" DI_POTS          :  %s",
-                    (features & DI_POTS) ? "Y" : "N"))
-       DBG_LOG((" DI_CODEC         :  %s",
-                    (features & DI_CODEC) ? "Y" : "N"))
-       DBG_LOG((" DI_MANAGE        :  %s",
-                    (features & DI_MANAGE) ? "Y" : "N"))
-       DBG_LOG((" DI_V_42          :  %s",
-                    (features & DI_V_42) ? "Y" : "N"))
-       DBG_LOG((" DI_EXTD_FAX      :  %s",
-                    (features & DI_EXTD_FAX) ? "Y" : "N"))
-       DBG_LOG((" DI_AT_PARSER     :  %s",
-                    (features & DI_AT_PARSER) ? "Y" : "N"))
-       DBG_LOG((" DI_VOICE_OVER_IP :  %s",
-                    (features & DI_VOICE_OVER_IP) ? "Y" : "N"))
-}
+               DBG_LOG((" DI_FAX3          :  %s",
+                        (features & DI_FAX3) ? "Y" : "N"))
+               DBG_LOG((" DI_MODEM         :  %s",
+                        (features & DI_MODEM) ? "Y" : "N"))
+               DBG_LOG((" DI_POST          :  %s",
+                        (features & DI_POST) ? "Y" : "N"))
+               DBG_LOG((" DI_V110          :  %s",
+                        (features & DI_V110) ? "Y" : "N"))
+               DBG_LOG((" DI_V120          :  %s",
+                        (features & DI_V120) ? "Y" : "N"))
+               DBG_LOG((" DI_POTS          :  %s",
+                        (features & DI_POTS) ? "Y" : "N"))
+               DBG_LOG((" DI_CODEC         :  %s",
+                        (features & DI_CODEC) ? "Y" : "N"))
+               DBG_LOG((" DI_MANAGE        :  %s",
+                        (features & DI_MANAGE) ? "Y" : "N"))
+               DBG_LOG((" DI_V_42          :  %s",
+                        (features & DI_V_42) ? "Y" : "N"))
+               DBG_LOG((" DI_EXTD_FAX      :  %s",
+                        (features & DI_EXTD_FAX) ? "Y" : "N"))
+               DBG_LOG((" DI_AT_PARSER     :  %s",
+                        (features & DI_AT_PARSER) ? "Y" : "N"))
+               DBG_LOG((" DI_VOICE_OVER_IP :  %s",
+                        (features & DI_VOICE_OVER_IP) ? "Y" : "N"))
+               }
 
-void diva_add_slave_adapter(diva_os_xdi_adapter_t * a)
+void diva_add_slave_adapter(diva_os_xdi_adapter_t *a)
 {
        diva_os_spin_lock_magic_t old_irql;
 
@@ -612,7 +612,7 @@ void diva_add_slave_adapter(diva_os_xdi_adapter_t * a)
        diva_os_leave_spin_lock(&adapter_lock, &old_irql, "add_slave");
 }
 
-int diva_card_read_xlog(diva_os_xdi_adapter_t * a)
+int diva_card_read_xlog(diva_os_xdi_adapter_t *a)
 {
        diva_get_xlog_t *req;
        byte *data;
index 5d06a74..d1d3de0 100644 (file)
@@ -1,12 +1,12 @@
 /* $Id: diva_didd.c,v 1.13.6.4 2005/02/11 19:40:25 armin Exp $
  *
  * DIDD Interface module for Eicon active cards.
- * 
- * Functions are in dadapter.c 
- * 
- * Copyright 2002-2003 by Armin Schindler (mac@melware.de) 
+ *
+ * Functions are in dadapter.c
+ *
+ * Copyright 2002-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2002-2003 Cytronics & Melware (info@melware.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  */
@@ -27,7 +27,7 @@
 static char *main_revision = "$Revision: 1.13.6.4 $";
 
 static char *DRIVERNAME =
-    "Eicon DIVA - DIDD table (http://www.melware.net)";
+       "Eicon DIVA - DIDD table (http://www.melware.net)";
 static char *DRIVERLNAME = "divadidd";
 char *DRIVERRELEASE_DIDD = "2.0";
 
@@ -72,7 +72,7 @@ static int divadidd_proc_show(struct seq_file *m, void *v)
        seq_printf(m, "name     : %s\n", DRIVERLNAME);
        seq_printf(m, "release  : %s\n", DRIVERRELEASE_DIDD);
        seq_printf(m, "build    : %s(%s)\n",
-                      diva_didd_common_code_build, DIVA_BUILD);
+                  diva_didd_common_code_build, DIVA_BUILD);
        seq_printf(m, "revision : %s\n", getrev(tmprev));
 
        return 0;
@@ -137,7 +137,7 @@ static int DIVA_INIT_FUNCTION divadidd_init(void)
                goto out;
        }
 
-      out:
+out:
        return (ret);
 }
 
index f53a740..217b6aa 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 /*
   Every entry has length of PAGE_SIZE
   and represents one single physical page
-  */
+*/
 struct _diva_dma_map_entry {
-  int   busy;
-  dword phys_bus_addr;  /* 32bit address as seen by the card */
-  void* local_ram_addr; /* local address as seen by the host */
-  void* addr_handle;    /* handle uset to free allocated memory */
+       int busy;
+       dword phys_bus_addr;  /* 32bit address as seen by the card */
+       void *local_ram_addr; /* local address as seen by the host */
+       void *addr_handle;    /* handle uset to free allocated memory */
 };
 /*
   Create local mapping structure and init it to default state
-  */
-struct _diva_dma_map_entry* diva_alloc_dma_map (void* os_context, int nentries) {
-  diva_dma_map_entry_t* pmap = diva_os_malloc(0, sizeof(*pmap)*(nentries+1));
-  if (pmap)
-         memset (pmap, 0, sizeof(*pmap)*(nentries+1));
-  return pmap;
+*/
+struct _diva_dma_map_entry *diva_alloc_dma_map(void *os_context, int nentries) {
+       diva_dma_map_entry_t *pmap = diva_os_malloc(0, sizeof(*pmap) * (nentries + 1));
+       if (pmap)
+               memset(pmap, 0, sizeof(*pmap) * (nentries + 1));
+       return pmap;
 }
 /*
   Free local map (context should be freed before) if any
-  */
-void diva_free_dma_mapping (struct _diva_dma_map_entry* pmap) {
-  if (pmap) {
-    diva_os_free (0, pmap);
-  }
+*/
+void diva_free_dma_mapping(struct _diva_dma_map_entry *pmap) {
+       if (pmap) {
+               diva_os_free(0, pmap);
+       }
 }
 /*
   Set information saved on the map entry
-  */
-void diva_init_dma_map_entry (struct _diva_dma_map_entry* pmap,
-                              int nr, void* virt, dword phys,
-                              void* addr_handle) {
-  pmap[nr].phys_bus_addr  = phys;
-  pmap[nr].local_ram_addr = virt;
-  pmap[nr].addr_handle    = addr_handle;
+*/
+void diva_init_dma_map_entry(struct _diva_dma_map_entry *pmap,
+                            int nr, void *virt, dword phys,
+                            void *addr_handle) {
+       pmap[nr].phys_bus_addr  = phys;
+       pmap[nr].local_ram_addr = virt;
+       pmap[nr].addr_handle    = addr_handle;
 }
 /*
   Allocate one single entry in the map
-  */
-int diva_alloc_dma_map_entry (struct _diva_dma_map_entry* pmap) {
-  int i;
-  for (i = 0; (pmap && pmap[i].local_ram_addr); i++) {
-    if (!pmap[i].busy) {
-      pmap[i].busy = 1;
-      return (i);
-    }
-  }
-  return (-1);
+*/
+int diva_alloc_dma_map_entry(struct _diva_dma_map_entry *pmap) {
+       int i;
+       for (i = 0; (pmap && pmap[i].local_ram_addr); i++) {
+               if (!pmap[i].busy) {
+                       pmap[i].busy = 1;
+                       return (i);
+               }
+       }
+       return (-1);
 }
 /*
   Free one single entry in the map
-  */
-void diva_free_dma_map_entry (struct _diva_dma_map_entry* pmap, int nr) {
-  pmap[nr].busy = 0;
+*/
+void diva_free_dma_map_entry(struct _diva_dma_map_entry *pmap, int nr) {
+       pmap[nr].busy = 0;
 }
 /*
   Get information saved on the map entry
-  */
-void diva_get_dma_map_entry (struct _diva_dma_map_entry* pmap, int nr,
-                             void** pvirt, dword* pphys) {
-  *pphys = pmap[nr].phys_bus_addr;
-  *pvirt = pmap[nr].local_ram_addr;
+*/
+void diva_get_dma_map_entry(struct _diva_dma_map_entry *pmap, int nr,
+                           void **pvirt, dword *pphys) {
+       *pphys = pmap[nr].phys_bus_addr;
+       *pvirt = pmap[nr].local_ram_addr;
 }
-void* diva_get_entry_handle (struct _diva_dma_map_entry* pmap, int nr) {
-  return (pmap[nr].addr_handle);
+void *diva_get_entry_handle(struct _diva_dma_map_entry *pmap, int nr) {
+       return (pmap[nr].addr_handle);
 }
index dff8072..d32c91b 100644 (file)
@@ -1,48 +1,48 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_DMA_MAPPING_IFC_H__
 #define __DIVA_DMA_MAPPING_IFC_H__
 typedef struct _diva_dma_map_entry  diva_dma_map_entry_t;
-struct _diva_dma_map_entry* diva_alloc_dma_map (void* os_context, int nentries);
-void diva_init_dma_map_entry (struct _diva_dma_map_entry* pmap,
-                              int nr, void* virt, dword phys,
-                              void* addr_handle);
-int diva_alloc_dma_map_entry (struct _diva_dma_map_entry* pmap);
-void diva_free_dma_map_entry (struct _diva_dma_map_entry* pmap, int entry);
-void diva_get_dma_map_entry (struct _diva_dma_map_entry* pmap, int nr,
-                             void** pvirt, dword* pphys);
-void diva_free_dma_mapping (struct _diva_dma_map_entry* pmap);
+struct _diva_dma_map_entry *diva_alloc_dma_map(void *os_context, int nentries);
+void diva_init_dma_map_entry(struct _diva_dma_map_entry *pmap,
+                            int nr, void *virt, dword phys,
+                            void *addr_handle);
+int diva_alloc_dma_map_entry(struct _diva_dma_map_entry *pmap);
+void diva_free_dma_map_entry(struct _diva_dma_map_entry *pmap, int entry);
+void diva_get_dma_map_entry(struct _diva_dma_map_entry *pmap, int nr,
+                           void **pvirt, dword *pphys);
+void diva_free_dma_mapping(struct _diva_dma_map_entry *pmap);
 /*
   Functionality to be implemented by OS wrapper
   and running in process context
-  */
-void diva_init_dma_map (void* hdev,
-                        struct _diva_dma_map_entry** ppmap,
-                        int nentries);
-void diva_free_dma_map (void* hdev,
-                        struct _diva_dma_map_entry* pmap);
-void* diva_get_entry_handle (struct _diva_dma_map_entry* pmap, int nr);
+*/
+void diva_init_dma_map(void *hdev,
+                      struct _diva_dma_map_entry **ppmap,
+                      int nentries);
+void diva_free_dma_map(void *hdev,
+                      struct _diva_dma_map_entry *pmap);
+void *diva_get_entry_handle(struct _diva_dma_map_entry *pmap, int nr);
 #endif
index cc0d510..bb4b562 100644 (file)
@@ -4,9 +4,9 @@
 #define __DIVA_PCI_INTERFACE_H__
 
 void __iomem *divasa_remap_pci_bar(diva_os_xdi_adapter_t *a,
-                          int id,
-                          unsigned long bar,
-                          unsigned long area_length);
+                                  int id,
+                                  unsigned long bar,
+                                  unsigned long area_length);
 void divasa_unmap_pci_bar(void __iomem *bar);
 unsigned long divasa_get_pci_irq(unsigned char bus,
                                 unsigned char func, void *pci_dev_handle);
index e330da0..3942efb 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 
@@ -29,8 +29,8 @@
 
 
 
-  
-  
+
+
 
 
 
@@ -82,7 +82,7 @@
 #define CODEC_PERMANENT    0x02
 #define ADV_VOICE          0x03
 #define MAX_CIP_TYPES      5  /* kind of CIP types for group optimization */
-#define C_IND_MASK_DWORDS  ((MAX_APPL+32) >> 5)
+#define C_IND_MASK_DWORDS  ((MAX_APPL + 32) >> 5)
 
 
 #define FAX_CONNECT_INFO_BUFFER_SIZE  256
@@ -116,289 +116,289 @@ typedef struct msn_config_max_s MSN_CONFIG_MAX;
 typedef struct msn_ld_s MSN_LD;
 
 struct manufacturer_profile_s {
-  dword private_options;
-  dword rtp_primary_payloads;
-  dword rtp_additional_payloads;
+       dword private_options;
+       dword rtp_primary_payloads;
+       dword rtp_additional_payloads;
 };
 
 struct fax_ncpi_s {
-  word options;
-  word format;
+       word options;
+       word format;
 };
 
 struct msn_config_s {
-  byte msn[MAX_CPN_MASK_SIZE];
+       byte msn[MAX_CPN_MASK_SIZE];
 };
 
 struct msn_config_max_s {
-  MSN_CONFIG    msn_conf[MAX_MSN_CONFIG];
+       MSN_CONFIG    msn_conf[MAX_MSN_CONFIG];
 };
 
 struct msn_ld_s {
-  dword low;
-  dword high;
+       dword low;
+       dword high;
 };
 
 struct api_parse_s {
-  word          length;
-  byte   *    info;
+       word          length;
+       byte *info;
 };
 
 struct api_save_s {
-  API_PARSE     parms[MAX_MSG_PARMS+1];
-  byte          info[MAX_MSG_SIZE];
+       API_PARSE     parms[MAX_MSG_PARMS + 1];
+       byte          info[MAX_MSG_SIZE];
 };
 
 struct _DATA_B3_DESC {
-  word          Handle;
-  word          Number;
-  word          Flags;
-  word          Length;
-  void   *    P;
+       word          Handle;
+       word          Number;
+       word          Flags;
+       word          Length;
+       void *P;
 };
 
 struct _DATA_ACK_DESC {
-  word          Handle;
-  word          Number;
+       word          Handle;
+       word          Number;
 };
 
-typedef void (* t_std_internal_command)(dword Id, PLCI   *plci, byte Rc);
+typedef void (*t_std_internal_command)(dword Id, PLCI *plci, byte Rc);
 
 /************************************************************************/
 /* Don't forget to adapt dos.asm after changing the _APPL structure!!!! */
 struct _APPL {
-  word          Id;
-  word          NullCREnable;
-  word          CDEnable;
-  dword         S_Handle;
+       word          Id;
+       word          NullCREnable;
+       word          CDEnable;
+       dword         S_Handle;
 
 
 
 
 
 
-  LIST_ENTRY    s_function;
-  dword         s_context;
-  word          s_count;
-  APPL *        s_next;
-  byte *        xbuffer_used;
-  void **       xbuffer_internal;
-  void **       xbuffer_ptr;
+       LIST_ENTRY    s_function;
+       dword         s_context;
+       word          s_count;
+       APPL *s_next;
+       byte *xbuffer_used;
+       void **xbuffer_internal;
+       void **xbuffer_ptr;
 
 
 
 
 
 
-  byte   *    queue;
-  word          queue_size;
-  word          queue_free;
-  word          queue_read;
-  word          queue_write;
-  word          queue_signal;
-  byte          msg_lost;
-  byte          appl_flags;
-  word          Number;
+       byte *queue;
+       word          queue_size;
+       word          queue_free;
+       word          queue_read;
+       word          queue_write;
+       word          queue_signal;
+       byte          msg_lost;
+       byte          appl_flags;
+       word          Number;
 
-  word          MaxBuffer;
-  byte          MaxNCCI;
-  byte          MaxNCCIData;
-  word          MaxDataLength;
-  word          NCCIDataFlowCtrlTimer;
-  byte   *    ReceiveBuffer;
-  word   *    DataNCCI;
-  word   *    DataFlags;
+       word          MaxBuffer;
+       byte          MaxNCCI;
+       byte          MaxNCCIData;
+       word          MaxDataLength;
+       word          NCCIDataFlowCtrlTimer;
+       byte *ReceiveBuffer;
+       word *DataNCCI;
+       word *DataFlags;
 };
 
 
 struct _PLCI {
-  ENTITY        Sig;
-  ENTITY        NL;
-  word          RNum;
-  word          RFlags;
-  BUFFERS       RData[2];
-  BUFFERS       XData[1];
-  BUFFERS       NData[2];
-
-  DIVA_CAPI_ADAPTER   *adapter;
-  APPL      *appl;
-  PLCI      *relatedPTYPLCI;
-  byte          Id;
-  byte          State;
-  byte          sig_req;
-  byte          nl_req;
-  byte          SuppState;
-  byte          channels;
-  byte          tel;
-  byte          B1_resource;
-  byte          B2_prot;
-  byte          B3_prot;
-
-  word          command;
-  word          m_command;
-  word          internal_command;
-  word          number;
-  word          req_in_start;
-  word          req_in;
-  word          req_out;
-  word          msg_in_write_pos;
-  word          msg_in_read_pos;
-  word          msg_in_wrap_pos;
-
-  void   *    data_sent_ptr;
-  byte          data_sent;
-  byte          send_disc;
-  byte          sig_global_req;
-  byte          sig_remove_id;
-  byte          nl_global_req;
-  byte          nl_remove_id;
-  byte          b_channel;
-  byte          adv_nl;
-  byte          manufacturer;
-  byte          call_dir;
-  byte          hook_state;
-  byte          spoofed_msg;
-  byte          ptyState;
-  byte          cr_enquiry;
-  word          hangup_flow_ctrl_timer;
-
-  word          ncci_ring_list;
-  byte          inc_dis_ncci_table[MAX_CHANNELS_PER_PLCI];
-  t_std_internal_command internal_command_queue[MAX_INTERNAL_COMMAND_LEVELS];
-  dword         c_ind_mask_table[C_IND_MASK_DWORDS];
-  dword         group_optimization_mask_table[C_IND_MASK_DWORDS];
-  byte          RBuffer[200];
-  dword         msg_in_queue[MSG_IN_QUEUE_SIZE/sizeof(dword)];
-  API_SAVE      saved_msg;
-  API_SAVE      B_protocol;
-  byte          fax_connect_info_length;
-  byte          fax_connect_info_buffer[FAX_CONNECT_INFO_BUFFER_SIZE];
-  byte          fax_edata_ack_length;
-  word          nsf_control_bits;
-  byte          ncpi_state;
-  byte          ncpi_buffer[NCPI_BUFFER_SIZE];
-
-  byte          internal_req_buffer[INTERNAL_REQ_BUFFER_SIZE];
-  byte          internal_ind_buffer[INTERNAL_IND_BUFFER_SIZE + 3];
-  dword         requested_options_conn;
-  dword         requested_options;
-  word          B1_facilities;
-  API_SAVE   *adjust_b_parms_msg;
-  word          adjust_b_facilities;
-  word          adjust_b_command;
-  word          adjust_b_ncci;
-  word          adjust_b_mode;
-  word          adjust_b_state;
-  byte          adjust_b_restore;
-
-  byte          dtmf_rec_active;
-  word          dtmf_rec_pulse_ms;
-  word          dtmf_rec_pause_ms;
-  byte          dtmf_send_requests;
-  word          dtmf_send_pulse_ms;
-  word          dtmf_send_pause_ms;
-  word          dtmf_cmd;
-  word          dtmf_msg_number_queue[8];
-  byte          dtmf_parameter_length;
-  byte          dtmf_parameter_buffer[DTMF_PARAMETER_BUFFER_SIZE];
-
-
-  t_capidtmf_state capidtmf_state;
-
-
-  byte          li_bchannel_id;    /* BRI: 1..2, PRI: 1..32 */
-  byte          li_channel_bits;
-  byte          li_notify_update;
-  word          li_cmd;
-  word          li_write_command;
-  word          li_write_channel;
-  word          li_plci_b_write_pos;
-  word          li_plci_b_read_pos;
-  word          li_plci_b_req_pos;
-  dword         li_plci_b_queue[LI_PLCI_B_QUEUE_ENTRIES];
-
-
-  word          ec_cmd;
-  word          ec_idi_options;
-  word          ec_tail_length;
-
-
-  byte          tone_last_indication_code;
-
-  byte          vswitchstate;
-  byte          vsprot;
-  byte          vsprotdialect;
-  byte          notifiedcall; /* Flag if it is a spoofed call */
-
-  int           rx_dma_descriptor;
-  dword         rx_dma_magic;
+       ENTITY        Sig;
+       ENTITY        NL;
+       word          RNum;
+       word          RFlags;
+       BUFFERS       RData[2];
+       BUFFERS       XData[1];
+       BUFFERS       NData[2];
+
+       DIVA_CAPI_ADAPTER   *adapter;
+       APPL      *appl;
+       PLCI      *relatedPTYPLCI;
+       byte          Id;
+       byte          State;
+       byte          sig_req;
+       byte          nl_req;
+       byte          SuppState;
+       byte          channels;
+       byte          tel;
+       byte          B1_resource;
+       byte          B2_prot;
+       byte          B3_prot;
+
+       word          command;
+       word          m_command;
+       word          internal_command;
+       word          number;
+       word          req_in_start;
+       word          req_in;
+       word          req_out;
+       word          msg_in_write_pos;
+       word          msg_in_read_pos;
+       word          msg_in_wrap_pos;
+
+       void *data_sent_ptr;
+       byte          data_sent;
+       byte          send_disc;
+       byte          sig_global_req;
+       byte          sig_remove_id;
+       byte          nl_global_req;
+       byte          nl_remove_id;
+       byte          b_channel;
+       byte          adv_nl;
+       byte          manufacturer;
+       byte          call_dir;
+       byte          hook_state;
+       byte          spoofed_msg;
+       byte          ptyState;
+       byte          cr_enquiry;
+       word          hangup_flow_ctrl_timer;
+
+       word          ncci_ring_list;
+       byte          inc_dis_ncci_table[MAX_CHANNELS_PER_PLCI];
+       t_std_internal_command internal_command_queue[MAX_INTERNAL_COMMAND_LEVELS];
+       dword         c_ind_mask_table[C_IND_MASK_DWORDS];
+       dword         group_optimization_mask_table[C_IND_MASK_DWORDS];
+       byte          RBuffer[200];
+       dword         msg_in_queue[MSG_IN_QUEUE_SIZE/sizeof(dword)];
+       API_SAVE      saved_msg;
+       API_SAVE      B_protocol;
+       byte          fax_connect_info_length;
+       byte          fax_connect_info_buffer[FAX_CONNECT_INFO_BUFFER_SIZE];
+       byte          fax_edata_ack_length;
+       word          nsf_control_bits;
+       byte          ncpi_state;
+       byte          ncpi_buffer[NCPI_BUFFER_SIZE];
+
+       byte          internal_req_buffer[INTERNAL_REQ_BUFFER_SIZE];
+       byte          internal_ind_buffer[INTERNAL_IND_BUFFER_SIZE + 3];
+       dword         requested_options_conn;
+       dword         requested_options;
+       word          B1_facilities;
+       API_SAVE   *adjust_b_parms_msg;
+       word          adjust_b_facilities;
+       word          adjust_b_command;
+       word          adjust_b_ncci;
+       word          adjust_b_mode;
+       word          adjust_b_state;
+       byte          adjust_b_restore;
+
+       byte          dtmf_rec_active;
+       word          dtmf_rec_pulse_ms;
+       word          dtmf_rec_pause_ms;
+       byte          dtmf_send_requests;
+       word          dtmf_send_pulse_ms;
+       word          dtmf_send_pause_ms;
+       word          dtmf_cmd;
+       word          dtmf_msg_number_queue[8];
+       byte          dtmf_parameter_length;
+       byte          dtmf_parameter_buffer[DTMF_PARAMETER_BUFFER_SIZE];
+
+
+       t_capidtmf_state capidtmf_state;
+
+
+       byte          li_bchannel_id;    /* BRI: 1..2, PRI: 1..32 */
+       byte          li_channel_bits;
+       byte          li_notify_update;
+       word          li_cmd;
+       word          li_write_command;
+       word          li_write_channel;
+       word          li_plci_b_write_pos;
+       word          li_plci_b_read_pos;
+       word          li_plci_b_req_pos;
+       dword         li_plci_b_queue[LI_PLCI_B_QUEUE_ENTRIES];
+
+
+       word          ec_cmd;
+       word          ec_idi_options;
+       word          ec_tail_length;
+
+
+       byte          tone_last_indication_code;
+
+       byte          vswitchstate;
+       byte          vsprot;
+       byte          vsprotdialect;
+       byte          notifiedcall; /* Flag if it is a spoofed call */
+
+       int           rx_dma_descriptor;
+       dword         rx_dma_magic;
 };
 
 
 struct _NCCI {
-  byte          data_out;
-  byte          data_pending;
-  byte          data_ack_out;
-  byte          data_ack_pending;
-  DATA_B3_DESC  DBuffer[MAX_DATA_B3];
-  DATA_ACK_DESC DataAck[MAX_DATA_ACK];
+       byte          data_out;
+       byte          data_pending;
+       byte          data_ack_out;
+       byte          data_ack_pending;
+       DATA_B3_DESC  DBuffer[MAX_DATA_B3];
+       DATA_ACK_DESC DataAck[MAX_DATA_ACK];
 };
 
 
 struct _DIVA_CAPI_ADAPTER {
-  IDI_CALL      request;
-  byte          Id;
-  byte          max_plci;
-  byte          max_listen;
-  byte          listen_active;
-  PLCI      *plci;
-  byte          ch_ncci[MAX_NL_CHANNEL+1];
-  byte          ncci_ch[MAX_NCCI+1];
-  byte          ncci_plci[MAX_NCCI+1];
-  byte          ncci_state[MAX_NCCI+1];
-  byte          ncci_next[MAX_NCCI+1];
-  NCCI          ncci[MAX_NCCI+1];
-
-  byte          ch_flow_control[MAX_NL_CHANNEL+1];  /* Used by XON protocol */
-  byte          ch_flow_control_pending;
-  byte          ch_flow_plci[MAX_NL_CHANNEL+1];
-  int           last_flow_control_ch;
-
-  dword         Info_Mask[MAX_APPL];
-  dword         CIP_Mask[MAX_APPL];
-
-  dword         Notification_Mask[MAX_APPL];
-  PLCI      *codec_listen[MAX_APPL];
-  dword         requested_options_table[MAX_APPL];
-  API_PROFILE   profile;
-  MANUFACTURER_PROFILE man_profile;
-  dword         manufacturer_features;
-
-  byte          AdvCodecFLAG;
-  PLCI      *AdvCodecPLCI;
-  PLCI      *AdvSignalPLCI;
-  APPL      *AdvSignalAppl;
-  byte          TelOAD[23];
-  byte          TelOSA[23];
-  byte          scom_appl_disable;
-  PLCI      *automatic_lawPLCI;
-  byte          automatic_law;
-  byte          u_law;
-
-  byte          adv_voice_coef_length;
-  byte          adv_voice_coef_buffer[ADV_VOICE_COEF_BUFFER_SIZE];
-
-  byte          li_pri;
-  byte          li_channels;
-  word          li_base;
-
-  byte adapter_disabled;
-  byte group_optimization_enabled; /* use application groups if enabled */
-  dword sdram_bar;
-  byte flag_dynamic_l1_down; /* for hunt groups:down layer 1 if no appl present*/
-  byte FlowControlIdTable[256];
-  byte FlowControlSkipTable[256];
-  void* os_card; /* pointer to associated OS dependent adapter structure */
+       IDI_CALL      request;
+       byte          Id;
+       byte          max_plci;
+       byte          max_listen;
+       byte          listen_active;
+       PLCI      *plci;
+       byte          ch_ncci[MAX_NL_CHANNEL + 1];
+       byte          ncci_ch[MAX_NCCI + 1];
+       byte          ncci_plci[MAX_NCCI + 1];
+       byte          ncci_state[MAX_NCCI + 1];
+       byte          ncci_next[MAX_NCCI + 1];
+       NCCI          ncci[MAX_NCCI + 1];
+
+       byte          ch_flow_control[MAX_NL_CHANNEL + 1];  /* Used by XON protocol */
+       byte          ch_flow_control_pending;
+       byte          ch_flow_plci[MAX_NL_CHANNEL + 1];
+       int           last_flow_control_ch;
+
+       dword         Info_Mask[MAX_APPL];
+       dword         CIP_Mask[MAX_APPL];
+
+       dword         Notification_Mask[MAX_APPL];
+       PLCI      *codec_listen[MAX_APPL];
+       dword         requested_options_table[MAX_APPL];
+       API_PROFILE   profile;
+       MANUFACTURER_PROFILE man_profile;
+       dword         manufacturer_features;
+
+       byte          AdvCodecFLAG;
+       PLCI      *AdvCodecPLCI;
+       PLCI      *AdvSignalPLCI;
+       APPL      *AdvSignalAppl;
+       byte          TelOAD[23];
+       byte          TelOSA[23];
+       byte          scom_appl_disable;
+       PLCI      *automatic_lawPLCI;
+       byte          automatic_law;
+       byte          u_law;
+
+       byte          adv_voice_coef_length;
+       byte          adv_voice_coef_buffer[ADV_VOICE_COEF_BUFFER_SIZE];
+
+       byte          li_pri;
+       byte          li_channels;
+       word          li_base;
+
+       byte adapter_disabled;
+       byte group_optimization_enabled; /* use application groups if enabled */
+       dword sdram_bar;
+       byte flag_dynamic_l1_down; /* for hunt groups:down layer 1 if no appl present*/
+       byte FlowControlIdTable[256];
+       byte FlowControlSkipTable[256];
+       void *os_card; /* pointer to associated OS dependent adapter structure */
 };
 
 
@@ -451,23 +451,23 @@ struct _DIVA_CAPI_ADAPTER {
 
 typedef struct t30_info_s T30_INFO;
 struct t30_info_s {
-  byte          code;
-  byte          rate_div_2400;
-  byte          resolution;
-  byte          data_format;
-  byte          pages_low;
-  byte          pages_high;
-  byte          operating_mode;
-  byte          control_bits_low;
-  byte          control_bits_high;
-  byte          feature_bits_low;
-  byte          feature_bits_high;
-  byte          recording_properties;
-  byte          universal_6;
-  byte          universal_7;
-  byte          station_id_len;
-  byte          head_line_len;
-  byte          station_id[T30_MAX_STATION_ID_LENGTH];
+       byte          code;
+       byte          rate_div_2400;
+       byte          resolution;
+       byte          data_format;
+       byte          pages_low;
+       byte          pages_high;
+       byte          operating_mode;
+       byte          control_bits_low;
+       byte          control_bits_high;
+       byte          feature_bits_low;
+       byte          feature_bits_high;
+       byte          recording_properties;
+       byte          universal_6;
+       byte          universal_7;
+       byte          station_id_len;
+       byte          head_line_len;
+       byte          station_id[T30_MAX_STATION_ID_LENGTH];
 /* byte          head_line[];      */
 /* byte          sub_sep_length;   */
 /* byte          sub_sep_field[];  */
@@ -528,13 +528,13 @@ struct t30_info_s {
 #define T30_OPERATING_MODE_CAPI_NEG     4
 #define T30_OPERATING_MODE_COUNT        5
 
-        /* EDATA transmit messages */
+/* EDATA transmit messages */
 #define EDATA_T30_DIS         0x01
 #define EDATA_T30_FTT         0x02
 #define EDATA_T30_MCF         0x03
 #define EDATA_T30_PARAMETERS  0x04
 
-        /* EDATA receive messages */
+/* EDATA receive messages */
 #define EDATA_T30_DCS         0x81
 #define EDATA_T30_TRAIN_OK    0x82
 #define EDATA_T30_EOP         0x83
@@ -639,11 +639,11 @@ struct t30_info_s {
 
 typedef struct async_s ASYNC_FORMAT;
 struct async_s {
-  unsigned pe:    1;
-  unsigned parity:2;
-  unsigned spare: 2;
-  unsigned stp:   1;
-  unsigned ch_len:2;   /* 3th octett in CAI */
+       unsigned pe:1;
+       unsigned parity:2;
+       unsigned spare:2;
+       unsigned stp:1;
+       unsigned ch_len:2;   /* 3th octett in CAI */
 };
 
 
@@ -686,14 +686,14 @@ struct async_s {
 /*------------------------------------------------------------------*/
 /* Capi IE + Msg types                                              */
 /*------------------------------------------------------------------*/
-#define ESC_CAUSE        0x800|CAU          /* Escape cause element */
-#define ESC_MSGTYPE      0x800|MSGTYPEIE    /* Escape message type  */
-#define ESC_CHI          0x800|CHI          /* Escape channel id    */
-#define ESC_LAW          0x800|BC           /* Escape law info      */
-#define ESC_CR           0x800|CRIE         /* Escape CallReference */
-#define ESC_PROFILE      0x800|PROFILEIE    /* Escape profile       */
-#define ESC_SSEXT        0x800|SSEXTIE      /* Escape Supplem. Serv.*/
-#define ESC_VSWITCH      0x800|VSWITCHIE    /* Escape VSwitch       */
+#define ESC_CAUSE        0x800 | CAU        /* Escape cause element */
+#define ESC_MSGTYPE      0x800 | MSGTYPEIE  /* Escape message type  */
+#define ESC_CHI          0x800 | CHI        /* Escape channel id    */
+#define ESC_LAW          0x800 | BC         /* Escape law info      */
+#define ESC_CR           0x800 | CRIE       /* Escape CallReference */
+#define ESC_PROFILE      0x800 | PROFILEIE  /* Escape profile       */
+#define ESC_SSEXT        0x800 | SSEXTIE    /* Escape Supplem. Serv.*/
+#define ESC_VSWITCH      0x800 | VSWITCHIE  /* Escape VSwitch       */
 #define CST              0x14               /* Call State i.e.      */
 #define PI               0x1E               /* Progress Indicator   */
 #define NI               0x27               /* Notification Ind     */
@@ -903,25 +903,25 @@ struct async_s {
 typedef struct li_config_s LI_CONFIG;
 
 struct xconnect_card_address_s {
-  dword low;
-  dword high;
+       dword low;
+       dword high;
 };
 
 struct xconnect_transfer_address_s {
-  struct xconnect_card_address_s card_address;
-  dword offset;
+       struct xconnect_card_address_s card_address;
+       dword offset;
 };
 
 struct li_config_s {
-  DIVA_CAPI_ADAPTER   *adapter;
-  PLCI   *plci;
-  struct xconnect_transfer_address_s send_b;
-  struct xconnect_transfer_address_s send_pc;
-  byte   *flag_table;  /* dword aligned and sized */
-  byte   *coef_table;  /* dword aligned and sized */
-  byte channel;
-  byte curchnl;
-  byte chflags;
+       DIVA_CAPI_ADAPTER   *adapter;
+       PLCI   *plci;
+       struct xconnect_transfer_address_s send_b;
+       struct xconnect_transfer_address_s send_pc;
+       byte   *flag_table;  /* dword aligned and sized */
+       byte   *coef_table;  /* dword aligned and sized */
+       byte channel;
+       byte curchnl;
+       byte chflags;
 };
 
 extern LI_CONFIG   *li_config_table;
@@ -1110,33 +1110,33 @@ extern word li_total_channels;
 #define B1_PIAFS                29
 #define B2_PIAFS                29
 
-#define PRIVATE_PIAFS           29 
+#define PRIVATE_PIAFS           29
 
 /*
   B2 configuration for PIAFS:
-+---------------------+------+-----------------------------------------+
-| PIAFS Protocol      | byte | Bit 1 - Protocol Speed                  |
-| Speed configuration |      |         0 - 32K                         |
-|                     |      |         1 - 64K (default)               |
-|                     |      | Bit 2 - Variable Protocol Speed         |
-|                     |      |         0 - Speed is fix                |
-|                     |      |         1 - Speed is variable (default) |
-+---------------------+------+-----------------------------------------+
-| Direction           | word | Enable compression/decompression for    |
-|                     |      | 0: All direction                        |
-|                     |      | 1: disable outgoing data                |
-|                     |      | 2: disable incomming data               |
-|                     |      | 3: disable both direction (default)     |
-+---------------------+------+-----------------------------------------+
-| Number of code      | word | Parameter P1 of V.42bis in accordance   |
-| words               |      | with V.42bis                            |
-+---------------------+------+-----------------------------------------+
-| Maximum String      | word | Parameter P2 of V.42bis in accordance   |
-| Length              |      | with V.42bis                            |
-+---------------------+------+-----------------------------------------+
-| control (UDATA)     | byte | enable PIAFS control communication      |
-| abilities           |      |                                         |
-+---------------------+------+-----------------------------------------+
+  +---------------------+------+-----------------------------------------+
+  | PIAFS Protocol      | byte | Bit 1 - Protocol Speed                  |
+  | Speed configuration |      |         0 - 32K                         |
+  |                     |      |         1 - 64K (default)               |
+  |                     |      | Bit 2 - Variable Protocol Speed         |
+  |                     |      |         0 - Speed is fix                |
+  |                     |      |         1 - Speed is variable (default) |
+  +---------------------+------+-----------------------------------------+
+  | Direction           | word | Enable compression/decompression for    |
+  |                     |      | 0: All direction                        |
+  |                     |      | 1: disable outgoing data                |
+  |                     |      | 2: disable incomming data               |
+  |                     |      | 3: disable both direction (default)     |
+  +---------------------+------+-----------------------------------------+
+  | Number of code      | word | Parameter P1 of V.42bis in accordance   |
+  | words               |      | with V.42bis                            |
+  +---------------------+------+-----------------------------------------+
+  | Maximum String      | word | Parameter P2 of V.42bis in accordance   |
+  | Length              |      | with V.42bis                            |
+  +---------------------+------+-----------------------------------------+
+  | control (UDATA)     | byte | enable PIAFS control communication      |
+  | abilities           |      |                                         |
+  +---------------------+------+-----------------------------------------+
 */
 #define PIAFS_UDATA_ABILITIES  0x80
 
index f1d464f..ffa0c31 100644 (file)
@@ -38,7 +38,7 @@ static unsigned long diva_dbg_mem = 0;
 module_param(diva_dbg_mem, ulong, 0);
 
 static char *DRIVERNAME =
-    "Eicon DIVA - MAINT module (http://www.melware.net)";
+       "Eicon DIVA - MAINT module (http://www.melware.net)";
 static char *DRIVERLNAME = "diva_mnt";
 static char *DEVNAME = "DivasMAINT";
 char *DRIVERRELEASE_MNT = "2.0";
@@ -86,7 +86,7 @@ int diva_os_copy_from_user(void *os_handle, void *dst, const void __user *src,
 /*
  * get time
  */
-void diva_os_get_time(dword * sec, dword * usec)
+void diva_os_get_time(dword *sec, dword *usec)
 {
        struct timeval tv;
 
@@ -115,7 +115,7 @@ void diva_os_get_time(dword * sec, dword * usec)
 /*
  * device node operations
  */
-static unsigned int maint_poll(struct file *file, poll_table * wait)
+static unsigned int maint_poll(struct file *file, poll_table *wait)
 {
        unsigned int mask = 0;
 
@@ -153,18 +153,18 @@ static int maint_close(struct inode *ino, struct file *filep)
 
        /* clear 'used' flag */
        clear_bit(0, &opened);
-       
+
        return (0);
 }
 
 static ssize_t divas_maint_write(struct file *file, const char __user *buf,
-                                size_t count, loff_t * ppos)
+                                size_t count, loff_t *ppos)
 {
        return (maint_read_write((char __user *) buf, (int) count));
 }
 
 static ssize_t divas_maint_read(struct file *file, char __user *buf,
-                               size_t count, loff_t * ppos)
+                               size_t count, loff_t *ppos)
 {
        return (maint_read_write(buf, (int) count));
 }
@@ -238,7 +238,7 @@ static int DIVA_INIT_FUNCTION maint_init(void)
               DRIVERLNAME, buffer, (buffer_length / 1024),
               (diva_dbg_mem == 0) ? "internal" : "external", major);
 
-      out:
+out:
        return (ret);
 }
 
@@ -255,4 +255,3 @@ static void DIVA_EXIT_FUNCTION maint_exit(void)
 
 module_init(maint_init);
 module_exit(maint_exit);
-
index 0bbee78..60aaf95 100644 (file)
@@ -34,7 +34,7 @@ static DESCRIPTOR DAdapter;
 static DESCRIPTOR MAdapter;
 
 /* --------------------------------------------------------------------------
-    MAINT driver connector section
+   MAINT driver connector section
    -------------------------------------------------------------------------- */
 static void no_printf(unsigned char *x, ...)
 {
@@ -74,17 +74,17 @@ void diva_xdi_didd_register_adapter(int card)
                d.features = IoAdapters[card - 1]->Properties.Features;
                DBG_TRC(("DIDD register A(%d) channels=%d", card,
                         d.channels))
-                   /* workaround for different Name in structure */
-                   strlcpy(IoAdapters[card - 1]->Name,
-                           IoAdapters[card - 1]->Properties.Name,
-                           sizeof(IoAdapters[card - 1]->Name));
+                       /* workaround for different Name in structure */
+                       strlcpy(IoAdapters[card - 1]->Name,
+                               IoAdapters[card - 1]->Properties.Name,
+                               sizeof(IoAdapters[card - 1]->Name));
                req.didd_remove_adapter.e.Req = 0;
                req.didd_add_adapter.e.Rc = IDI_SYNC_REQ_DIDD_ADD_ADAPTER;
                req.didd_add_adapter.info.descriptor = (void *) &d;
-               DAdapter.request((ENTITY *) & req);
+               DAdapter.request((ENTITY *)&req);
                if (req.didd_add_adapter.e.Rc != 0xff) {
                        DBG_ERR(("DIDD register A(%d) failed !", card))
-               }
+                               }
                IoAdapters[card - 1]->os_trap_nfy_Fnc = NULL;
        }
 }
@@ -99,11 +99,11 @@ void diva_xdi_didd_remove_adapter(int card)
 
        IoAdapters[card - 1]->os_trap_nfy_Fnc = NULL;
        DBG_TRC(("DIDD de-register A(%d)", card))
-       req.didd_remove_adapter.e.Req = 0;
+               req.didd_remove_adapter.e.Req = 0;
        req.didd_remove_adapter.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER;
        req.didd_remove_adapter.info.p_request =
-           (IDI_CALL) Requests[card - 1];
-       DAdapter.request((ENTITY *) & req);
+               (IDI_CALL) Requests[card - 1];
+       DAdapter.request((ENTITY *)&req);
        memset(&(a->IdTable), 0x00, 256);
 }
 
@@ -115,7 +115,7 @@ static void start_dbg(void)
        DbgRegister("DIVAS", DRIVERRELEASE_DIVAS, (debugmask) ? debugmask : DBG_DEFAULT);
        DBG_LOG(("DIVA ISDNXDI BUILD (%s[%s])",
                 DIVA_BUILD, diva_xdi_common_code_build))
-}
+               }
 
 /*
  * stop debug
@@ -130,7 +130,7 @@ static void stop_dbg(void)
 /*
  * didd callback function
  */
-static void *didd_callback(void *context, DESCRIPTOR * adapter,
+static void *didd_callback(void *context, DESCRIPTOR *adapter,
                           int removal)
 {
        if (adapter->type == IDI_DADAPTER) {
@@ -168,10 +168,10 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
                        memcpy(&DAdapter, &DIDD_Table[x], sizeof(DAdapter));
                        req.didd_notify.e.Req = 0;
                        req.didd_notify.e.Rc =
-                           IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
+                               IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
                        req.didd_notify.info.callback = (void *)didd_callback;
                        req.didd_notify.info.context = NULL;
-                       DAdapter.request((ENTITY *) & req);
+                       DAdapter.request((ENTITY *)&req);
                        if (req.didd_notify.e.Rc != 0xff) {
                                stop_dbg();
                                return (0);
@@ -203,7 +203,7 @@ static void disconnect_didd(void)
        req.didd_notify.e.Req = 0;
        req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
        req.didd_notify.info.handle = notify_handle;
-       DAdapter.request((ENTITY *) & req);
+       DAdapter.request((ENTITY *)&req);
 }
 
 /*
@@ -214,10 +214,10 @@ int DIVA_INIT_FUNCTION divasfunc_init(int dbgmask)
        char *version;
 
        debugmask = dbgmask;
-       
+
        if (!connect_didd()) {
                DBG_ERR(("divasfunc: failed to connect to DIDD."))
-               return (0);
+                       return (0);
        }
 
        version = diva_xdi_common_code_build;
index 42d3b83..a5c8f90 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id: divasi.c,v 1.25.6.2 2005/01/31 12:22:20 armin Exp $
  *
  * Driver for Eicon DIVA Server ISDN cards.
- * User Mode IDI Interface 
+ * User Mode IDI Interface
  *
  * Copyright 2000-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2000-2003 Cytronics & Melware (info@melware.de)
@@ -71,10 +71,10 @@ static char *getrev(const char *revision)
  *  LOCALS
  */
 static ssize_t um_idi_read(struct file *file, char __user *buf, size_t count,
-                          loff_t * offset);
+                          loff_t *offset);
 static ssize_t um_idi_write(struct file *file, const char __user *buf,
-                           size_t count, loff_t * offset);
-static unsigned int um_idi_poll(struct file *file, poll_table * wait);
+                           size_t count, loff_t *offset);
+static unsigned int um_idi_poll(struct file *file, poll_table *wait);
 static int um_idi_open(struct inode *inode, struct file *file);
 static int um_idi_release(struct inode *inode, struct file *file);
 static int remove_entity(void *entity);
@@ -194,7 +194,7 @@ static int DIVA_INIT_FUNCTION divasi_init(void)
        }
        printk(KERN_INFO "%s: started with major %d\n", DRIVERLNAME, major);
 
-      out:
+out:
        return (ret);
 }
 
@@ -228,7 +228,7 @@ divas_um_idi_copy_to_user(void *os_handle, void *dst, const void *src,
 }
 
 static ssize_t
-um_idi_read(struct file *file, char __user *buf, size_t count, loff_t * offset)
+um_idi_read(struct file *file, char __user *buf, size_t count, loff_t *offset)
 {
        diva_um_idi_os_context_t *p_os;
        int ret = -EINVAL;
@@ -292,7 +292,7 @@ static int um_idi_open_adapter(struct file *file, int adapter_nr)
 {
        diva_um_idi_os_context_t *p_os;
        void *e =
-           divas_um_idi_create_entity((dword) adapter_nr, (void *) file);
+               divas_um_idi_create_entity((dword) adapter_nr, (void *) file);
 
        if (!(file->private_data = e)) {
                return (0);
@@ -310,7 +310,7 @@ static int um_idi_open_adapter(struct file *file, int adapter_nr)
 
 static ssize_t
 um_idi_write(struct file *file, const char __user *buf, size_t count,
-            loff_t * offset)
+            loff_t *offset)
 {
        diva_um_idi_os_context_t *p_os;
        int ret = -EINVAL;
@@ -331,8 +331,8 @@ um_idi_write(struct file *file, const char __user *buf, size_t count,
        }
 
        if (!(p_os =
-            (diva_um_idi_os_context_t *) diva_um_id_get_os_context(file->
-                                                                   private_data)))
+             (diva_um_idi_os_context_t *) diva_um_id_get_os_context(file->
+                                                                    private_data)))
        {
                return (-ENODEV);
        }
@@ -367,7 +367,7 @@ um_idi_write(struct file *file, const char __user *buf, size_t count,
        return (ret);
 }
 
-static unsigned int um_idi_poll(struct file *file, poll_table * wait)
+static unsigned int um_idi_poll(struct file *file, poll_table *wait)
 {
        diva_um_idi_os_context_t *p_os;
 
@@ -417,7 +417,7 @@ static int um_idi_release(struct inode *inode, struct file *file)
        }
 
        if (!(p_os =
-               (diva_um_idi_os_context_t *) diva_um_id_get_os_context(file->private_data))) {
+             (diva_um_idi_os_context_t *) diva_um_id_get_os_context(file->private_data))) {
                ret = -ENODEV;
                goto out;
        }
@@ -434,7 +434,7 @@ static int um_idi_release(struct inode *inode, struct file *file)
                goto out;
        }
 
-      out:
+out:
        return (ret);
 }
 
@@ -446,14 +446,14 @@ int diva_os_get_context_size(void)
 void diva_os_wakeup_read(void *os_context)
 {
        diva_um_idi_os_context_t *p_os =
-           (diva_um_idi_os_context_t *) os_context;
+               (diva_um_idi_os_context_t *) os_context;
        wake_up_interruptible(&p_os->read_wait);
 }
 
 void diva_os_wakeup_close(void *os_context)
 {
        diva_um_idi_os_context_t *p_os =
-           (diva_um_idi_os_context_t *) os_context;
+               (diva_um_idi_os_context_t *) os_context;
        wake_up_interruptible(&p_os->close_wait);
 }
 
@@ -466,7 +466,7 @@ void diva_um_timer_function(unsigned long data)
        wake_up_interruptible(&p_os->read_wait);
        wake_up_interruptible(&p_os->close_wait);
        DBG_ERR(("entity removal watchdog"))
-}
+               }
 
 /*
 **  If application exits without entity removal this function will remove
@@ -481,30 +481,30 @@ static int remove_entity(void *entity)
 
        if (!entity) {
                DBG_FTL(("Zero entity on remove"))
-               return (0);
+                       return (0);
        }
 
        if (!(p_os =
-            (diva_um_idi_os_context_t *)
-            diva_um_id_get_os_context(entity))) {
+             (diva_um_idi_os_context_t *)
+             diva_um_id_get_os_context(entity))) {
                DBG_FTL(("Zero entity os context on remove"))
-               return (0);
+                       return (0);
        }
 
        if (!divas_um_idi_entity_assigned(entity) || p_os->aborted) {
                /*
-                  Entity is not assigned, also can be removed
-                */
+                 Entity is not assigned, also can be removed
+               */
                return (0);
        }
 
        DBG_TRC(("E(%08x) check remove", entity))
 
-       /*
-          If adapter not answers on remove request inside of
-          10 Sec, then adapter is dead
-        */
-       diva_um_idi_start_wdog(entity);
+               /*
+                 If adapter not answers on remove request inside of
+                 10 Sec, then adapter is dead
+               */
+               diva_um_idi_start_wdog(entity);
 
        {
                DECLARE_WAITQUEUE(wait, curtask);
@@ -542,7 +542,7 @@ static int remove_entity(void *entity)
        DBG_TRC(("E(%08x) remove complete, aborted:%d", entity,
                 p_os->aborted))
 
-       diva_um_idi_stop_wdog(entity);
+               diva_um_idi_stop_wdog(entity);
 
        p_os->aborted = 0;
 
index f332b60..7eaab06 100644 (file)
@@ -50,7 +50,7 @@ module_param(dbgmask, int, 0);
 MODULE_PARM_DESC(dbgmask, "initial debug mask");
 
 static char *DRIVERNAME =
-    "Eicon DIVA Server driver (http://www.melware.net)";
+       "Eicon DIVA Server driver (http://www.melware.net)";
 static char *DRIVERLNAME = "divas";
 static char *DEVNAME = "Divas";
 char *DRIVERRELEASE_DIVAS = "2.0";
@@ -68,7 +68,7 @@ typedef struct _diva_os_thread_dpc {
 } diva_os_thread_dpc_t;
 
 /* --------------------------------------------------------------------------
-    PCI driver interface section
+   PCI driver interface section
    -------------------------------------------------------------------------- */
 /*
   vendor, device       Vendor and device ID to match (or PCI_ANY_ID)
@@ -77,7 +77,7 @@ typedef struct _diva_os_thread_dpc {
   class,               Device class to match. The class_mask tells which bits
   class_mask   of the class are honored during the comparison.
   driver_data  Data private to the driver.
-  */
+*/
 
 #if !defined(PCI_DEVICE_ID_EICON_MAESTRAP_2)
 #define PCI_DEVICE_ID_EICON_MAESTRAP_2       0xE015
@@ -109,41 +109,41 @@ typedef struct _diva_os_thread_dpc {
 
 /*
   This table should be sorted by PCI device ID
-  */
+*/
 static struct pci_device_id divas_pci_tbl[] = {
        /* Diva Server BRI-2M PCI 0xE010 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRA),
-               CARDTYPE_MAESTRA_PCI },
+         CARDTYPE_MAESTRA_PCI },
        /* Diva Server 4BRI-8M PCI 0xE012 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAQ),
-               CARDTYPE_DIVASRV_Q_8M_PCI },
+         CARDTYPE_DIVASRV_Q_8M_PCI },
        /* Diva Server 4BRI-8M 2.0 PCI 0xE013 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAQ_U),
-               CARDTYPE_DIVASRV_Q_8M_V2_PCI },
+         CARDTYPE_DIVASRV_Q_8M_V2_PCI },
        /* Diva Server PRI-30M PCI 0xE014 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAP),
-               CARDTYPE_DIVASRV_P_30M_PCI },
+         CARDTYPE_DIVASRV_P_30M_PCI },
        /* Diva Server PRI 2.0 adapter 0xE015 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAP_2),
-               CARDTYPE_DIVASRV_P_30M_V2_PCI },
+         CARDTYPE_DIVASRV_P_30M_V2_PCI },
        /* Diva Server Voice 4BRI-8M PCI 0xE016 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_4BRI_VOIP),
-               CARDTYPE_DIVASRV_VOICE_Q_8M_PCI },
+         CARDTYPE_DIVASRV_VOICE_Q_8M_PCI },
        /* Diva Server Voice 4BRI-8M 2.0 PCI 0xE017 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_4BRI_2_VOIP),
-               CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI },
+         CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI },
        /* Diva Server BRI-2M 2.0 PCI 0xE018 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_BRI2M_2),
-               CARDTYPE_DIVASRV_B_2M_V2_PCI },
+         CARDTYPE_DIVASRV_B_2M_V2_PCI },
        /* Diva Server Voice PRI 2.0 PCI 0xE019 */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAP_2_VOIP),
-               CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI },
+         CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI },
        /* Diva Server 2FX 0xE01A */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_2F),
-               CARDTYPE_DIVASRV_B_2F_PCI },
+         CARDTYPE_DIVASRV_B_2F_PCI },
        /* Diva Server Voice BRI-2M 2.0 PCI 0xE01B */
        { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_BRI2M_2_VOIP),
-               CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI },
+         CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI },
        { 0, }                  /* 0 terminated list. */
 };
 MODULE_DEVICE_TABLE(pci, divas_pci_tbl);
@@ -197,7 +197,7 @@ void divas_get_version(char *p)
 }
 
 /* --------------------------------------------------------------------------
-    PCI Bus services  
+   PCI Bus services
    -------------------------------------------------------------------------- */
 byte diva_os_get_pci_bus(void *pci_dev_handle)
 {
@@ -332,10 +332,10 @@ void PCIread(byte bus, byte func, int offset, void *data, int length,
   Init map with DMA pages. It is not problem if some allocations fail -
   the channels that will not get one DMA page will use standard PIO
   interface
-  */
+*/
 static void *diva_pci_alloc_consistent(struct pci_dev *hwdev,
                                       size_t size,
-                                      dma_addr_t * dma_handle,
+                                      dma_addr_t *dma_handle,
                                       void **addr_handle)
 {
        void *addr = pci_alloc_consistent(hwdev, size, dma_handle);
@@ -350,7 +350,7 @@ void diva_init_dma_map(void *hdev,
 {
        struct pci_dev *pdev = (struct pci_dev *) hdev;
        struct _diva_dma_map_entry *pmap =
-           diva_alloc_dma_map(hdev, nentries);
+               diva_alloc_dma_map(hdev, nentries);
 
        if (pmap) {
                int i;
@@ -381,7 +381,7 @@ void diva_init_dma_map(void *hdev,
 /*
   Free all contained in the map entries and memory used by the map
   Should be always called after adapter removal from DIDD array
-  */
+*/
 void diva_free_dma_map(void *hdev, struct _diva_dma_map_entry *pmap)
 {
        struct pci_dev *pdev = (struct pci_dev *) hdev;
@@ -403,14 +403,14 @@ void diva_free_dma_map(void *hdev, struct _diva_dma_map_entry *pmap)
                DBG_TRC(("dma map free [%d]=(%08lx:%08x:%08lx)", i,
                         (unsigned long) cpu_addr, (dword) dma_handle,
                         (unsigned long) addr_handle))
-       }
+                       }
 
        diva_free_dma_mapping(pmap);
 }
 
 
 /*********************************************************
- ** I/O port utilities  
+ ** I/O port utilities
  *********************************************************/
 
 int
@@ -420,7 +420,7 @@ diva_os_register_io_port(void *adapter, int on, unsigned long port,
        if (on) {
                if (!request_region(port, length, name)) {
                        DBG_ERR(("A: I/O: can't register port=%08x", port))
-                       return (-1);
+                               return (-1);
                }
        } else {
                release_region(port, length);
@@ -443,7 +443,7 @@ void divasa_unmap_pci_bar(void __iomem *bar)
 }
 
 /*********************************************************
- ** I/O port access 
+ ** I/O port access
  *********************************************************/
 byte __inline__ inpp(void __iomem *addr)
 {
@@ -476,7 +476,7 @@ void __inline__ outpp(void __iomem *addr, word p)
 }
 
 /* --------------------------------------------------------------------------
-    IRQ request / remove  
+   IRQ request / remove
    -------------------------------------------------------------------------- */
 int diva_os_register_irq(void *context, byte irq, const char *name)
 {
@@ -491,7 +491,7 @@ void diva_os_remove_irq(void *context, byte irq)
 }
 
 /* --------------------------------------------------------------------------
-    DPC framework implementation
+   DPC framework implementation
    -------------------------------------------------------------------------- */
 static void diva_os_dpc_proc(unsigned long context)
 {
@@ -501,7 +501,7 @@ static void diva_os_dpc_proc(unsigned long context)
        (*(pisr->callback)) (pisr, pisr->callback_context);
 }
 
-int diva_os_initialize_soft_isr(diva_os_soft_isr_t * psoft_isr,
+int diva_os_initialize_soft_isr(diva_os_soft_isr_t *psoft_isr,
                                diva_os_soft_isr_callback_t callback,
                                void *callback_context)
 {
@@ -520,11 +520,11 @@ int diva_os_initialize_soft_isr(diva_os_soft_isr_t * psoft_isr,
        return (0);
 }
 
-int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
+int diva_os_schedule_soft_isr(diva_os_soft_isr_t *psoft_isr)
 {
        if (psoft_isr && psoft_isr->object) {
                diva_os_thread_dpc_t *pdpc =
-                   (diva_os_thread_dpc_t *) psoft_isr->object;
+                       (diva_os_thread_dpc_t *) psoft_isr->object;
 
                tasklet_schedule(&pdpc->divas_task);
        }
@@ -532,16 +532,16 @@ int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
        return (1);
 }
 
-int diva_os_cancel_soft_isr(diva_os_soft_isr_t * psoft_isr)
+int diva_os_cancel_soft_isr(diva_os_soft_isr_t *psoft_isr)
 {
        return (0);
 }
 
-void diva_os_remove_soft_isr(diva_os_soft_isr_t * psoft_isr)
+void diva_os_remove_soft_isr(diva_os_soft_isr_t *psoft_isr)
 {
        if (psoft_isr && psoft_isr->object) {
                diva_os_thread_dpc_t *pdpc =
-                   (diva_os_thread_dpc_t *) psoft_isr->object;
+                       (diva_os_thread_dpc_t *) psoft_isr->object;
                void *mem;
 
                tasklet_kill(&pdpc->divas_task);
@@ -589,7 +589,7 @@ static int divas_release(struct inode *inode, struct file *file)
 }
 
 static ssize_t divas_write(struct file *file, const char __user *buf,
-                          size_t count, loff_t * ppos)
+                          size_t count, loff_t *ppos)
 {
        int ret = -EINVAL;
 
@@ -620,7 +620,7 @@ static ssize_t divas_write(struct file *file, const char __user *buf,
 }
 
 static ssize_t divas_read(struct file *file, char __user *buf,
-                         size_t count, loff_t * ppos)
+                         size_t count, loff_t *ppos)
 {
        int ret = -EINVAL;
 
@@ -650,7 +650,7 @@ static ssize_t divas_read(struct file *file, char __user *buf,
        return (ret);
 }
 
-static unsigned int divas_poll(struct file *file, poll_table * wait)
+static unsigned int divas_poll(struct file *file, poll_table *wait)
 {
        if (!file->private_data) {
                return (POLLERR);
@@ -686,7 +686,7 @@ static int DIVA_INIT_FUNCTION divas_register_chrdev(void)
 }
 
 /* --------------------------------------------------------------------------
-    PCI driver section
+   PCI driver section
    -------------------------------------------------------------------------- */
 static int __devinit divas_init_one(struct pci_dev *pdev,
                                    const struct pci_device_id *ent)
@@ -698,9 +698,9 @@ static int __devinit divas_init_one(struct pci_dev *pdev,
        DBG_TRC(("%s bus: %08x fn: %08x insertion.\n",
                 CardProperties[ent->driver_data].Name,
                 pdev->bus->number, pdev->devfn))
-       printk(KERN_INFO "%s: %s bus: %08x fn: %08x insertion.\n",
-               DRIVERLNAME, CardProperties[ent->driver_data].Name,
-               pdev->bus->number, pdev->devfn);
+               printk(KERN_INFO "%s: %s bus: %08x fn: %08x insertion.\n",
+                      DRIVERLNAME, CardProperties[ent->driver_data].Name,
+                      pdev->bus->number, pdev->devfn);
 
        if (pci_enable_device(pdev)) {
                DBG_TRC(("%s: %s bus: %08x fn: %08x device init failed.\n",
@@ -708,12 +708,12 @@ static int __devinit divas_init_one(struct pci_dev *pdev,
                         CardProperties[ent->driver_data].Name,
                         pdev->bus->number,
                         pdev->devfn))
-               printk(KERN_ERR
-                       "%s: %s bus: %08x fn: %08x device init failed.\n",
-                       DRIVERLNAME,
-                       CardProperties[ent->driver_data].
-                       Name, pdev->bus->number,
-                       pdev->devfn);
+                       printk(KERN_ERR
+                              "%s: %s bus: %08x fn: %08x device init failed.\n",
+                              DRIVERLNAME,
+                              CardProperties[ent->driver_data].
+                              Name, pdev->bus->number,
+                              pdev->devfn);
                return (-EIO);
        }
 
@@ -723,9 +723,9 @@ static int __devinit divas_init_one(struct pci_dev *pdev,
        if (!pci_latency) {
                DBG_TRC(("%s: bus: %08x fn: %08x fix latency.\n",
                         DRIVERLNAME, pdev->bus->number, pdev->devfn))
-               printk(KERN_INFO
-                       "%s: bus: %08x fn: %08x fix latency.\n",
-                        DRIVERLNAME, pdev->bus->number, pdev->devfn);
+                       printk(KERN_INFO
+                              "%s: bus: %08x fn: %08x fix latency.\n",
+                              DRIVERLNAME, pdev->bus->number, pdev->devfn);
                pci_write_config_byte(pdev, PCI_LATENCY_TIMER, new_latency);
        }
 
@@ -735,12 +735,12 @@ static int __devinit divas_init_one(struct pci_dev *pdev,
                         CardProperties[ent->driver_data].Name,
                         pdev->bus->number,
                         pdev->devfn))
-               printk(KERN_ERR
-                       "%s: %s bus: %08x fn: %08x card init failed.\n",
-                       DRIVERLNAME,
-                       CardProperties[ent->driver_data].
-                       Name, pdev->bus->number,
-                       pdev->devfn);
+                       printk(KERN_ERR
+                              "%s: %s bus: %08x fn: %08x card init failed.\n",
+                              DRIVERLNAME,
+                              CardProperties[ent->driver_data].
+                              Name, pdev->bus->number,
+                              pdev->devfn);
                return (-EIO);
        }
 
@@ -755,8 +755,8 @@ static void __devexit divas_remove_one(struct pci_dev *pdev)
 
        DBG_TRC(("bus: %08x fn: %08x removal.\n",
                 pdev->bus->number, pdev->devfn))
-       printk(KERN_INFO "%s: bus: %08x fn: %08x removal.\n",
-               DRIVERLNAME, pdev->bus->number, pdev->devfn);
+               printk(KERN_INFO "%s: bus: %08x fn: %08x removal.\n",
+                      DRIVERLNAME, pdev->bus->number, pdev->devfn);
 
        if (pdiva) {
                diva_driver_remove_card(pdiva);
@@ -765,7 +765,7 @@ static void __devexit divas_remove_one(struct pci_dev *pdev)
 }
 
 /* --------------------------------------------------------------------------
-    Driver Load / Startup  
+   Driver Load / Startup
    -------------------------------------------------------------------------- */
 static int DIVA_INIT_FUNCTION divas_init(void)
 {
@@ -824,12 +824,12 @@ static int DIVA_INIT_FUNCTION divas_init(void)
        }
        printk(KERN_INFO "%s: started with major %d\n", DRIVERLNAME, major);
 
-      out:
+out:
        return (ret);
 }
 
 /* --------------------------------------------------------------------------
-    Driver Unload
+   Driver Unload
    -------------------------------------------------------------------------- */
 static void DIVA_EXIT_FUNCTION divas_exit(void)
 {
index 46d44a9..af4fd3d 100644 (file)
@@ -55,7 +55,7 @@ extern struct proc_dir_entry *proc_net_eicon;
 static struct proc_dir_entry *divas_proc_entry = NULL;
 
 static ssize_t
-divas_read(struct file *file, char __user *buf, size_t count, loff_t * off)
+divas_read(struct file *file, char __user *buf, size_t count, loff_t *off)
 {
        int len = 0;
        int cadapter;
@@ -94,12 +94,12 @@ divas_read(struct file *file, char __user *buf, size_t count, loff_t * off)
 }
 
 static ssize_t
-divas_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
+divas_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
 {
        return (-ENODEV);
 }
 
-static unsigned int divas_poll(struct file *file, poll_table * wait)
+static unsigned int divas_poll(struct file *file, poll_table *wait)
 {
        return (POLLERR);
 }
@@ -127,7 +127,7 @@ static const struct file_operations divas_fops = {
 int create_divas_proc(void)
 {
        divas_proc_entry = proc_create(divas_proc_name, S_IFREG | S_IRUGO,
-                                       proc_net_eicon, &divas_fops);
+                                      proc_net_eicon, &divas_fops);
        if (!divas_proc_entry)
                return (0);
 
@@ -155,11 +155,11 @@ static ssize_t grp_opt_proc_write(struct file *file, const char __user *buffer,
                switch (c) {
                case '0':
                        IoAdapter->capi_cfg.cfg_1 &=
-                           ~DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON;
+                               ~DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON;
                        break;
                case '1':
                        IoAdapter->capi_cfg.cfg_1 |=
-                           DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON;
+                               DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON;
                        break;
                default:
                        return (-EINVAL);
@@ -182,11 +182,11 @@ static ssize_t d_l1_down_proc_write(struct file *file, const char __user *buffer
                switch (c) {
                case '0':
                        IoAdapter->capi_cfg.cfg_1 &=
-                           ~DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON;
+                               ~DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON;
                        break;
                case '1':
                        IoAdapter->capi_cfg.cfg_1 |=
-                           DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON;
+                               DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON;
                        break;
                default:
                        return (-EINVAL);
@@ -202,9 +202,9 @@ static int d_l1_down_proc_show(struct seq_file *m, void *v)
        PISDN_ADAPTER IoAdapter = IoAdapters[a->controller - 1];
 
        seq_printf(m, "%s\n",
-                      (IoAdapter->capi_cfg.
-                       cfg_1 & DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON) ? "1" :
-                      "0");
+                  (IoAdapter->capi_cfg.
+                   cfg_1 & DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON) ? "1" :
+                  "0");
        return 0;
 }
 
@@ -228,9 +228,9 @@ static int grp_opt_proc_show(struct seq_file *m, void *v)
        PISDN_ADAPTER IoAdapter = IoAdapters[a->controller - 1];
 
        seq_printf(m, "%s\n",
-                      (IoAdapter->capi_cfg.
-                       cfg_1 & DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON)
-                      ? "1" : "0");
+                  (IoAdapter->capi_cfg.
+                   cfg_1 & DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON)
+                  ? "1" : "0");
        return 0;
 }
 
@@ -281,7 +281,7 @@ static int info_proc_show(struct seq_file *m, void *v)
        seq_printf(m, "DSP state   : %08x\n", a->dsp_mask);
        seq_printf(m, "Channels    : %02d\n", IoAdapter->Properties.Channels);
        seq_printf(m, "E. max/used : %03d/%03d\n",
-                      IoAdapter->e_max, IoAdapter->e_count);
+                  IoAdapter->e_max, IoAdapter->e_count);
        diva_get_vserial_number(IoAdapter, tmpser);
        seq_printf(m, "Serial      : %s\n", tmpser);
        seq_printf(m, "IRQ         : %d\n", IoAdapter->irq_info.irq_nr);
@@ -289,8 +289,8 @@ static int info_proc_show(struct seq_file *m, void *v)
        seq_printf(m, "CardOrdinal : %d\n", a->CardOrdinal);
        seq_printf(m, "Controller  : %d\n", a->controller);
        seq_printf(m, "Bus-Type    : %s\n",
-                      (a->Bus ==
-                       DIVAS_XDI_ADAPTER_BUS_ISA) ? "ISA" : "PCI");
+                  (a->Bus ==
+                   DIVAS_XDI_ADAPTER_BUS_ISA) ? "ISA" : "PCI");
        seq_printf(m, "Port-Name   : %s\n", a->port_name);
        if (a->Bus == DIVAS_XDI_ADAPTER_BUS_PCI) {
                seq_printf(m, "PCI-bus     : %d\n", a->resources.pci.bus);
@@ -298,15 +298,15 @@ static int info_proc_show(struct seq_file *m, void *v)
                for (i = 0; i < 8; i++) {
                        if (a->resources.pci.bar[i]) {
                                seq_printf(m,
-                                           "Mem / I/O %d : 0x%x / mapped : 0x%lx",
-                                           i, a->resources.pci.bar[i],
-                                           (unsigned long) a->resources.
-                                           pci.addr[i]);
+                                          "Mem / I/O %d : 0x%x / mapped : 0x%lx",
+                                          i, a->resources.pci.bar[i],
+                                          (unsigned long) a->resources.
+                                          pci.addr[i]);
                                if (a->resources.pci.length[i]) {
                                        seq_printf(m,
-                                                   " / length : %d",
-                                                   a->resources.pci.
-                                                   length[i]);
+                                                  " / length : %d",
+                                                  a->resources.pci.
+                                                  length[i]);
                                }
                                seq_putc(m, '\n');
                        }
@@ -314,7 +314,7 @@ static int info_proc_show(struct seq_file *m, void *v)
        }
        if ((!a->xdi_adapter.port) &&
            ((!a->xdi_adapter.ram) ||
-           (!a->xdi_adapter.reset)
+            (!a->xdi_adapter.reset)
             || (!a->xdi_adapter.cfg))) {
                if (!IoAdapter->irq_info.irq_nr) {
                        p = "slave";
@@ -352,9 +352,9 @@ static const struct file_operations info_proc_fops = {
 */
 
 /* --------------------------------------------------------------------------
-    Create adapter directory and files in proc file system
+   Create adapter directory and files in proc file system
    -------------------------------------------------------------------------- */
-int create_adapter_proc(diva_os_xdi_adapter_t * a)
+int create_adapter_proc(diva_os_xdi_adapter_t *a)
 {
        struct proc_dir_entry *de, *pe;
        char tmp[16];
@@ -385,9 +385,9 @@ int create_adapter_proc(diva_os_xdi_adapter_t * a)
 }
 
 /* --------------------------------------------------------------------------
-    Remove adapter directory and files in proc file system
+   Remove adapter directory and files in proc file system
    -------------------------------------------------------------------------- */
-void remove_adapter_proc(diva_os_xdi_adapter_t * a)
+void remove_adapter_proc(diva_os_xdi_adapter_t *a)
 {
        char tmp[16];
 
index 85784a7..dd6b53a 100644 (file)
@@ -1,29 +1,29 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#ifndef __DIVA_SYNC__H  
+#ifndef __DIVA_SYNC__H
 #define __DIVA_SYNC__H
 #define IDI_SYNC_REQ_REMOVE             0x00
 #define IDI_SYNC_REQ_GET_NAME           0x01
 /******************************************************************************/
 #define IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES  0x92
 /*
-   To receive XDI features:
-   1. set 'buffer_length_in_bytes' to length of you buffer
-   2. set 'features' to pointer to your buffer
-   3. issue synchronous request to XDI
-   4. Check that feature 'DIVA_XDI_EXTENDED_FEATURES_VALID' is present
-      after call. This feature does indicate that your request
-      was processed and XDI does support this synchronous request
-   5. if on return bit 31 (0x80000000) in 'buffer_length_in_bytes' is
-      set then provided buffer was too small, and bits 30-0 does
-      contain necessary length of buffer.
-      in this case only features that do find place in the buffer
-      are indicated to caller
+  To receive XDI features:
+  1. set 'buffer_length_in_bytes' to length of you buffer
+  2. set 'features' to pointer to your buffer
+  3. issue synchronous request to XDI
+  4. Check that feature 'DIVA_XDI_EXTENDED_FEATURES_VALID' is present
+  after call. This feature does indicate that your request
+  was processed and XDI does support this synchronous request
+  5. if on return bit 31 (0x80000000) in 'buffer_length_in_bytes' is
+  set then provided buffer was too small, and bits 30-0 does
+  contain necessary length of buffer.
+  in this case only features that do find place in the buffer
+  are indicated to caller
 */
 typedef struct _diva_xdi_get_extended_xdi_features {
-  dword buffer_length_in_bytes;
-  byte  *features;
+       dword buffer_length_in_bytes;
+       byte  *features;
 } diva_xdi_get_extended_xdi_features_t;
 /*
-   features[0]
-  */
+  features[0]
+*/
 #define DIVA_XDI_EXTENDED_FEATURES_VALID          0x01
 #define DIVA_XDI_EXTENDED_FEATURE_CMA             0x02
 #define DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR       0x04
@@ -91,17 +91,17 @@ typedef struct _diva_xdi_get_extended_xdi_features {
 /******************************************************************************/
 #define IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR   0x93
 typedef struct _diva_xdi_get_adapter_sdram_bar {
- dword bar;
      dword bar;
 } diva_xdi_get_adapter_sdram_bar_t;
 /******************************************************************************/
 #define IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS   0x94
 /*
   CAPI Parameters will be written in the caller's buffer
-  */
+*/
 typedef struct _diva_xdi_get_capi_parameters {
-  dword structure_length;
-  byte flag_dynamic_l1_down;
-  byte group_optimization_enabled;
+       dword structure_length;
+       byte flag_dynamic_l1_down;
+       byte group_optimization_enabled;
 } diva_xdi_get_capi_parameters_t;
 /******************************************************************************/
 #define IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER   0x95
@@ -111,11 +111,11 @@ typedef struct _diva_xdi_get_capi_parameters {
   in case of one adapter that supports multiple interfaces
   'controller' is zero for Master adapter (and adapter that supports
   only one interface)
-  */
+*/
 typedef struct _diva_xdi_get_logical_adapter_number {
-  dword logical_adapter_number;
-  dword controller;
-  dword total_controllers;
+       dword logical_adapter_number;
+       dword controller;
+       dword total_controllers;
 } diva_xdi_get_logical_adapter_number_s_t;
 /******************************************************************************/
 #define IDI_SYNC_REQ_UP1DM_OPERATION   0x96
@@ -124,10 +124,10 @@ typedef struct _diva_xdi_get_logical_adapter_number {
 #define IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC     0x01
 #define IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE      0x02
 typedef struct _diva_xdi_dma_descriptor_operation {
-  int   operation;
-  int   descriptor_number;
-  void* descriptor_address;
-  dword descriptor_magic;
+       int operation;
+       int descriptor_number;
+       void *descriptor_address;
+       dword descriptor_magic;
 } diva_xdi_dma_descriptor_operation_t;
 /******************************************************************************/
 #define IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY   0x01
@@ -137,22 +137,22 @@ typedef struct _diva_xdi_dma_descriptor_operation {
 #define IDI_SYNC_REQ_DIDD_READ_ADAPTER_ARRAY        0x05
 #define IDI_SYNC_REQ_DIDD_GET_CFG_LIB_IFC           0x10
 typedef struct _diva_didd_adapter_notify {
- dword handle; /* Notification handle */
void   * callback;
void   * context;
      dword handle; /* Notification handle */
      void *callback;
      void *context;
 } diva_didd_adapter_notify_t;
 typedef struct _diva_didd_add_adapter {
void   * descriptor;
      void *descriptor;
 } diva_didd_add_adapter_t;
 typedef struct _diva_didd_remove_adapter {
- IDI_CALL p_request;
      IDI_CALL p_request;
 } diva_didd_remove_adapter_t;
 typedef struct _diva_didd_read_adapter_array {
void   * buffer;
- dword length;
      void *buffer;
      dword length;
 } diva_didd_read_adapter_array_t;
 typedef struct _diva_didd_get_cfg_lib_ifc {
void* ifc;
      void *ifc;
 } diva_didd_get_cfg_lib_ifc_t;
 /******************************************************************************/
 #define IDI_SYNC_REQ_XDI_GET_STREAM    0x91
@@ -163,31 +163,31 @@ typedef struct _diva_didd_get_cfg_lib_ifc {
 #define DIVA_ISTREAM_COMPLETE_READ     1
 #define DIVA_ISTREAM_COMPLETE_WRITE    2
 typedef struct _diva_xdi_stream_interface {
-  unsigned char  Id;                 /* filled by XDI client */
- unsigned char provided_service;    /* filled by XDI        */
- unsigned char requested_service;   /* filled by XDI Client */
void* xdi_context;    /* filled by XDI     */
void* client_context;   /* filled by XDI client */
int (*write)(void* context,
-               int Id,
-               void* data,
-               int length,
-               int final,
-               byte usr1,
-               byte usr2);
int (*read)(void* context,
-              int Id,
-              void* data,
-              int max_length,
-              int* final,
-              byte* usr1,
-              byte* usr2);
int (*complete)(void* client_context,
-         int Id,
-          int what,
-         void* data,
-         int length,
-         int* final);
+       unsigned char  Id;                 /* filled by XDI client */
      unsigned char provided_service;    /* filled by XDI        */
      unsigned char requested_service;   /* filled by XDI Client */
      void *xdi_context;    /* filled by XDI */
      void *client_context;   /* filled by XDI client */
      int (*write)(void *context,
+                    int Id,
+                    void *data,
+                    int length,
+                    int final,
+                    byte usr1,
+                    byte usr2);
      int (*read)(void *context,
+                   int Id,
+                   void *data,
+                   int max_length,
+                   int *final,
+                   byte *usr1,
+                   byte *usr2);
      int (*complete)(void *client_context,
+                       int Id,
+                       int what,
+                       void *data,
+                       int length,
+                       int *final);
 } diva_xdi_stream_interface_t;
 /******************************************************************************/
 /*
@@ -196,37 +196,37 @@ typedef struct _diva_xdi_stream_interface {
 typedef struct
 { unsigned char LineState;         /* Modem line state (STATUS_R) */
 #define SERIAL_GSM_CELL 0x01   /* GSM or CELL cable attached  */
- unsigned char CardState;          /* PCMCIA card state (0 = down) */
- unsigned char IsdnState;          /* ISDN layer 1 state (0 = down)*/
- unsigned char HookState;          /* current logical hook state */
      unsigned char CardState;          /* PCMCIA card state (0 = down) */
      unsigned char IsdnState;          /* ISDN layer 1 state (0 = down)*/
      unsigned char HookState;          /* current logical hook state */
 #define SERIAL_ON_HOOK 0x02   /* set in DIVA CTRL_R register */
 } SERIAL_STATE;
-typedef int (  * SERIAL_INT_CB) (void *Context) ;
-typedef int (  * SERIAL_DPC_CB) (void *Context) ;
-typedef unsigned char (  * SERIAL_I_SYNC) (void *Context) ;
+typedef int (*SERIAL_INT_CB)(void *Context);
+typedef int (*SERIAL_DPC_CB)(void *Context);
+typedef unsigned char (*SERIAL_I_SYNC)(void *Context);
 typedef struct
 { /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
- unsigned char Req;             /* request (must be always 0) */
- unsigned char Rc;              /* return code (is the request) */
- unsigned char Function;           /* private function code  */
      unsigned char Req;             /* request (must be always 0) */
      unsigned char Rc;              /* return code (is the request) */
      unsigned char Function;           /* private function code  */
 #define SERIAL_HOOK_ATTACH 0x81
 #define SERIAL_HOOK_STATUS 0x82
 #define SERIAL_HOOK_I_SYNC 0x83
 #define SERIAL_HOOK_NOECHO 0x84
 #define SERIAL_HOOK_RING 0x85
 #define SERIAL_HOOK_DETACH 0x8f
- unsigned char Flags;           /* function refinements   */
- /* parameters passed by the ATTACH request      */
- SERIAL_INT_CB InterruptHandler; /* called on each interrupt  */
- SERIAL_DPC_CB DeferredHandler; /* called on hook state changes */
- void   *HandlerContext; /* context for both handlers */
- /* return values for both the ATTACH and the STATUS request   */
- unsigned long IoBase;    /* IO port assigned to UART  */
- SERIAL_STATE State;
- /* parameters and return values for the I_SYNC function    */
- SERIAL_I_SYNC SyncFunction;  /* to be called synchronized */
- void   *SyncContext;  /* context for this function */
- unsigned char SyncResult;   /* return value of function  */
      unsigned char Flags;           /* function refinements   */
      /* parameters passed by the ATTACH request      */
      SERIAL_INT_CB InterruptHandler; /* called on each interrupt  */
      SERIAL_DPC_CB DeferredHandler; /* called on hook state changes */
      void   *HandlerContext; /* context for both handlers */
      /* return values for both the ATTACH and the STATUS request   */
      unsigned long IoBase;    /* IO port assigned to UART  */
      SERIAL_STATE State;
      /* parameters and return values for the I_SYNC function    */
      SERIAL_I_SYNC SyncFunction;  /* to be called synchronized */
      void   *SyncContext;  /* context for this function */
      unsigned char SyncResult;   /* return value of function  */
 } SERIAL_HOOK;
 /*
  * IDI_SYNC_REQ_XCHANGE_STATUS - exchange the status between IDI and WMP
@@ -234,22 +234,22 @@ typedef struct
  */
 typedef struct
 { /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
- unsigned char Req;             /* request (must be always 0) */
- unsigned char Rc;              /* return code (is the request) */
      unsigned char Req;             /* request (must be always 0) */
      unsigned char Rc;              /* return code (is the request) */
 #define DRIVER_STATUS_BOOT  0xA1
 #define DRIVER_STATUS_INIT_DEV 0xA2
 #define DRIVER_STATUS_RUNNING 0xA3
 #define DRIVER_STATUS_SHUTDOWN 0xAF
 #define DRIVER_STATUS_TRAPPED 0xAE
- unsigned char wmpStatus;          /* exported by WMP              */
- unsigned char idiStatus;   /* exported by IDI              */
unsigned long wizProto ;   /* from WMP registry to IDI     */
- /* the cardtype value is defined by cardtype.h */
unsigned long cardType ;   /* from IDI registry to WMP     */
unsigned long nt2 ;    /* from IDI registry to WMP     */
unsigned long permanent ;   /* from IDI registry to WMP     */
unsigned long stableL2 ;   /* from IDI registry to WMP     */
unsigned long tei ;    /* from IDI registry to WMP     */
      unsigned char wmpStatus;          /* exported by WMP              */
      unsigned char idiStatus;   /* exported by IDI              */
      unsigned long wizProto;   /* from WMP registry to IDI     */
      /* the cardtype value is defined by cardtype.h */
      unsigned long cardType;   /* from IDI registry to WMP     */
      unsigned long nt2;    /* from IDI registry to WMP     */
      unsigned long permanent;   /* from IDI registry to WMP     */
      unsigned long stableL2;   /* from IDI registry to WMP     */
      unsigned long tei;    /* from IDI registry to WMP     */
 #define CRC4_MASK   0x00000003
 #define L1_TRISTATE_MASK 0x00000004
 #define WATCHDOG_MASK  0x00000008
@@ -271,36 +271,36 @@ typedef struct
 #define SET_STABLEL2  0x20000000
 #define SET_TEI    0x40000000
 #define SET_NUMBERLEN  0x80000000
unsigned long Flag ;  /* |31-Type-16|15-Mask-0| */
unsigned long NumberLen ; /* reconfiguration: union is empty */
- union {
-  struct {    /* possible reconfiguration, but ... ; SET_BOARD */
-   unsigned long SerialNumber ;
-   char     *pCardname ; /* di_defs.h: BOARD_NAME_LENGTH */
-  } board ;
-  struct {      /* reset: need resources */
-   void * pRawResources ;
-   void * pXlatResources ;
-  } res ;
-  struct { /* reconfiguration: wizProto == PROTTYPE_RBSCAS */
      unsigned long Flag;  /* |31-Type-16|15-Mask-0| */
      unsigned long NumberLen; /* reconfiguration: union is empty */
      union {
+               struct {    /* possible reconfiguration, but ... ; SET_BOARD */
+                       unsigned long SerialNumber;
+                       char     *pCardname; /* di_defs.h: BOARD_NAME_LENGTH */
+               } board;
+               struct {      /* reset: need resources */
+                       void *pRawResources;
+                       void *pXlatResources;
+               } res;
+               struct { /* reconfiguration: wizProto == PROTTYPE_RBSCAS */
 #define GLARE_RESOLVE_MASK 0x00000001
 #define DID_MASK   0x00000002
 #define BEARER_CAP_MASK  0x0000000c
 #define SET_GLARE_RESOLVE 0x00010000
 #define SET_DID    0x00020000
 #define SET_BEARER_CAP  0x000c0000
-   unsigned long Flag ;  /* |31-Type-16|15-VALUE-0| */
-   unsigned short DigitTimeout ;
-   unsigned short AnswerDelay ;
-  } rbs ;
-  struct { /* reconfiguration: wizProto == PROTTYPE_QSIG */
+                       unsigned long Flag;  /* |31-Type-16|15-VALUE-0| */
+                       unsigned short DigitTimeout;
+                       unsigned short AnswerDelay;
+               } rbs;
+               struct { /* reconfiguration: wizProto == PROTTYPE_QSIG */
 #define CALL_REF_LENGTH1_MASK 0x00000001
 #define BRI_CHANNEL_ID_MASK  0x00000002
 #define SET_CALL_REF_LENGTH  0x00010000
 #define SET_BRI_CHANNEL_ID  0x00020000
-   unsigned long Flag ;  /* |31-Type-16|15-VALUE-0| */
-  } qsig ;
-  struct { /* reconfiguration: NumberLen != 0 */
+                       unsigned long Flag;  /* |31-Type-16|15-VALUE-0| */
+               } qsig;
+               struct { /* reconfiguration: NumberLen != 0 */
 #define SET_SPID1   0x00010000
 #define SET_NUMBER1   0x00020000
 #define SET_SUBADDRESS1  0x00040000
@@ -308,50 +308,50 @@ typedef struct
 #define SET_NUMBER2   0x00200000
 #define SET_SUBADDRESS2  0x00400000
 #define MASK_SET   0xffff0000
-   unsigned long Flag ;   /* |31-Type-16|15-Channel-0| */
-   unsigned char *pBuffer ; /* number value */
-  } isdnNo ;
- }
-parms
-;
-} isdnProps ;
+                       unsigned long Flag;   /* |31-Type-16|15-Channel-0| */
+                       unsigned char *pBuffer; /* number value */
+               } isdnNo;
      }
+               parms
+               ;
+} isdnProps;
 /*
  * IDI_SYNC_REQ_PORTDRV_HOOK - signal plug/unplug (Award Cardware only)
  */
-typedef void (  * PORTDRV_HOOK_CB) (void *Context, int Plug) ;
+typedef void (*PORTDRV_HOOK_CB)(void *Context, int Plug);
 typedef struct
 { /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
- unsigned char Req;             /* request (must be always 0) */
- unsigned char Rc;              /* return code (is the request) */
- unsigned char Function;           /* private function code  */
- unsigned char Flags;           /* function refinements   */
- PORTDRV_HOOK_CB Callback;   /* to be called on plug/unplug */
- void   *Context;   /* context for callback   */
- unsigned long Info;    /* more info if needed   */
-} PORTDRV_HOOK ;
      unsigned char Req;             /* request (must be always 0) */
      unsigned char Rc;              /* return code (is the request) */
      unsigned char Function;           /* private function code  */
      unsigned char Flags;           /* function refinements   */
      PORTDRV_HOOK_CB Callback;   /* to be called on plug/unplug */
      void   *Context;   /* context for callback   */
      unsigned long Info;    /* more info if needed   */
+} PORTDRV_HOOK;
 /*  Codes for the 'Rc' element in structure below. */
 #define SLI_INSTALL     (0xA1)
 #define SLI_UNINSTALL   (0xA2)
-typedef int ( * SLIENTRYPOINT)(void* p3SignalAPI, void* pContext);
+typedef int (*SLIENTRYPOINT)(void *p3SignalAPI, void *pContext);
 typedef struct
 {   /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
-    unsigned char   Req;                /* request (must be always 0)   */
-    unsigned char   Rc;                 /* return code (is the request) */
-    unsigned char   Function;           /* private function code        */
-    unsigned char   Flags;              /* function refinements         */
-    SLIENTRYPOINT   Callback;           /* to be called on plug/unplug  */
-    void            *Context;           /* context for callback         */
-    unsigned long   Info;               /* more info if needed          */
-} SLIENTRYPOINT_REQ ;
+       unsigned char   Req;                /* request (must be always 0)   */
+       unsigned char   Rc;                 /* return code (is the request) */
+       unsigned char   Function;           /* private function code        */
+       unsigned char   Flags;              /* function refinements         */
+       SLIENTRYPOINT   Callback;           /* to be called on plug/unplug  */
+       void            *Context;           /* context for callback         */
+       unsigned long   Info;               /* more info if needed          */
+} SLIENTRYPOINT_REQ;
 /******************************************************************************/
 /*
  *  Definitions for DIVA USB
  */
-typedef int  (  * USB_SEND_REQ) (unsigned char PipeIndex, unsigned char Type,void *Data, int sizeData);
-typedef int  (  * USB_START_DEV) (void *Adapter, void *Ipac) ;
+typedef int (*USB_SEND_REQ)(unsigned char PipeIndex, unsigned char Type, void *Data, int sizeData);
+typedef int (*USB_START_DEV)(void *Adapter, void *Ipac);
 /* called from WDM */
-typedef void (  * USB_RECV_NOTIFY) (void *Ipac, void *msg) ;
-typedef void (  * USB_XMIT_NOTIFY) (void *Ipac, unsigned char PipeIndex) ;
+typedef void (*USB_RECV_NOTIFY)(void *Ipac, void *msg);
+typedef void (*USB_XMIT_NOTIFY)(void *Ipac, unsigned char PipeIndex);
 /******************************************************************************/
 /*
  * Parameter description for synchronous requests.
@@ -361,129 +361,129 @@ typedef void (  * USB_XMIT_NOTIFY) (void *Ipac, unsigned char PipeIndex) ;
  */
 typedef union
 { ENTITY Entity;
- struct
- { /* 'Req' and 'Rc' are at the same place as in the ENTITY struct */
-  unsigned char   Req; /* request (must be always 0) */
-  unsigned char   Rc;  /* return code (is the request) */
- }   Request;
- struct
- { unsigned char   Req; /* request (must be always 0) */
-  unsigned char   Rc;  /* return code (0x01)   */
-  unsigned char   name[BOARD_NAME_LENGTH];
- }   GetName;
- struct
- { unsigned char   Req; /* request (must be always 0) */
-  unsigned char   Rc;  /* return code (0x02)   */
-  unsigned long   serial; /* serial number    */
- }   GetSerial;
- struct
- { unsigned char   Req; /* request (must be always 0) */
-  unsigned char   Rc;  /* return code (0x02)   */
-  unsigned long   lineIdx;/* line, 0 if card has only one */
- }   GetLineIdx;
- struct
- { unsigned char  Req;     /* request (must be always 0) */
-  unsigned char  Rc;      /* return code (0x02)   */
-  unsigned long  cardtype;/* card type        */
- }   GetCardType;
- struct
- { unsigned short command;/* command = 0x0300 */
-  unsigned short dummy; /* not used */
-  IDI_CALL       callback;/* routine to call back */
-  ENTITY      *contxt; /* ptr to entity to use */
- }   PostCall;
- struct
- { unsigned char  Req;  /* request (must be always 0) */
-  unsigned char  Rc;   /* return code (0x04)   */
-  unsigned char  pcm[1]; /* buffer (a pc_maint struct) */
- }   GetXlog;
- struct
- { unsigned char  Req;  /* request (must be always 0) */
-  unsigned char  Rc;   /* return code (0x05)   */
-  unsigned short features;/* feature defines see below */
- }   GetFeatures;
- SERIAL_HOOK  SerialHook;
      struct
      { /* 'Req' and 'Rc' are at the same place as in the ENTITY struct */
+               unsigned char   Req; /* request (must be always 0) */
+               unsigned char   Rc;  /* return code (is the request) */
      }   Request;
      struct
      { unsigned char   Req; /* request (must be always 0) */
+               unsigned char   Rc;  /* return code (0x01)   */
+               unsigned char   name[BOARD_NAME_LENGTH];
      }   GetName;
      struct
      { unsigned char   Req; /* request (must be always 0) */
+               unsigned char   Rc;  /* return code (0x02)   */
+               unsigned long   serial; /* serial number    */
      }   GetSerial;
      struct
      { unsigned char   Req; /* request (must be always 0) */
+               unsigned char   Rc;  /* return code (0x02)   */
+               unsigned long   lineIdx;/* line, 0 if card has only one */
      }   GetLineIdx;
      struct
      { unsigned char  Req;     /* request (must be always 0) */
+               unsigned char  Rc;      /* return code (0x02)   */
+               unsigned long  cardtype;/* card type        */
      }   GetCardType;
      struct
      { unsigned short command;/* command = 0x0300 */
+               unsigned short dummy; /* not used */
+               IDI_CALL       callback;/* routine to call back */
+               ENTITY      *contxt; /* ptr to entity to use */
      }   PostCall;
      struct
      { unsigned char  Req;  /* request (must be always 0) */
+               unsigned char  Rc;   /* return code (0x04)   */
+               unsigned char  pcm[1]; /* buffer (a pc_maint struct) */
      }   GetXlog;
      struct
      { unsigned char  Req;  /* request (must be always 0) */
+               unsigned char  Rc;   /* return code (0x05)   */
+               unsigned short features;/* feature defines see below */
      }   GetFeatures;
      SERIAL_HOOK  SerialHook;
 /* Added for DIVA USB */
- struct
- { unsigned char   Req;
-  unsigned char   Rc;
-  USB_SEND_REQ    UsbSendRequest; /* function in Diva Usb WDM driver in usb_os.c, */
-                                        /* called from usb_drv.c to send a message to our device */
-                                        /* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0) ; */
-  USB_RECV_NOTIFY usb_recv;       /* called from usb_os.c to pass a received message and ptr to IPAC */
-                                        /* on to usb_drv.c by a call to usb_recv(). */
-  USB_XMIT_NOTIFY usb_xmit;       /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
-                                        /* to usb_drv.c by a call to usb_xmit(). */
-  USB_START_DEV   UsbStartDevice; /* Start the USB Device, in usb_os.c */
-  IDI_CALL        callback;       /* routine to call back */
-  ENTITY          *contxt;     /* ptr to entity to use */
-  void            ** ipac_ptr;    /* pointer to struct IPAC in VxD */
- } Usb_Msg_old;
      struct
      { unsigned char   Req;
+               unsigned char   Rc;
+               USB_SEND_REQ    UsbSendRequest; /* function in Diva Usb WDM driver in usb_os.c, */
+               /* called from usb_drv.c to send a message to our device */
+               /* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0); */
+               USB_RECV_NOTIFY usb_recv;       /* called from usb_os.c to pass a received message and ptr to IPAC */
+               /* on to usb_drv.c by a call to usb_recv(). */
+               USB_XMIT_NOTIFY usb_xmit;       /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
+               /* to usb_drv.c by a call to usb_xmit(). */
+               USB_START_DEV   UsbStartDevice; /* Start the USB Device, in usb_os.c */
+               IDI_CALL        callback;       /* routine to call back */
+               ENTITY          *contxt;     /* ptr to entity to use */
+               void **ipac_ptr;    /* pointer to struct IPAC in VxD */
      } Usb_Msg_old;
 /* message used by WDM and VXD to pass pointers of function and IPAC* */
- struct
- { unsigned char Req;
-  unsigned char Rc;
-        USB_SEND_REQ    pUsbSendRequest;/* function in Diva Usb WDM driver in usb_os.c, */
-                                        /* called from usb_drv.c to send a message to our device */
-                                        /* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0) ; */
-        USB_RECV_NOTIFY p_usb_recv;     /* called from usb_os.c to pass a received message and ptr to IPAC */
-                                        /* on to usb_drv.c by a call to usb_recv(). */
-        USB_XMIT_NOTIFY p_usb_xmit;     /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
-                                        /* to usb_drv.c by a call to usb_xmit().*/
-  void            *ipac_ptr;      /* &Diva.ipac pointer to struct IPAC in VxD */
- } Usb_Msg;
- PORTDRV_HOOK PortdrvHook;
-    SLIENTRYPOINT_REQ   sliEntryPointReq;
-  struct {
-    unsigned char Req;
-    unsigned char Rc;
-    diva_xdi_stream_interface_t info;
-  } xdi_stream_info;
-  struct {
-    unsigned char Req;
-    unsigned char Rc;
-    diva_xdi_get_extended_xdi_features_t info;
-  } xdi_extended_features;
- struct {
-    unsigned char Req;
-    unsigned char Rc;
-  diva_xdi_get_adapter_sdram_bar_t info;
- } xdi_sdram_bar;
-  struct {
-    unsigned char Req;
-    unsigned char Rc;
-    diva_xdi_get_capi_parameters_t info;
-  } xdi_capi_prms;
- struct {
-  ENTITY           e;
-  diva_didd_adapter_notify_t info;
- } didd_notify;
- struct {
-  ENTITY           e;
-  diva_didd_add_adapter_t   info;
- } didd_add_adapter;
- struct {
-  ENTITY           e;
-  diva_didd_remove_adapter_t info;
- } didd_remove_adapter;
- struct {
-  ENTITY             e;
-  diva_didd_read_adapter_array_t info;
- } didd_read_adapter_array;
- struct {
-  ENTITY             e;
-  diva_didd_get_cfg_lib_ifc_t     info;
- } didd_get_cfg_lib_ifc;
-  struct {
-    unsigned char Req;
-    unsigned char Rc;
-    diva_xdi_get_logical_adapter_number_s_t info;
-  } xdi_logical_adapter_number;
-  struct {
-    unsigned char Req;
-    unsigned char Rc;
-    diva_xdi_dma_descriptor_operation_t info;
-  } xdi_dma_descriptor_operation;
      struct
      { unsigned char Req;
+               unsigned char Rc;
+               USB_SEND_REQ    pUsbSendRequest;/* function in Diva Usb WDM driver in usb_os.c, */
+               /* called from usb_drv.c to send a message to our device */
+               /* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0); */
+               USB_RECV_NOTIFY p_usb_recv;     /* called from usb_os.c to pass a received message and ptr to IPAC */
+               /* on to usb_drv.c by a call to usb_recv(). */
+               USB_XMIT_NOTIFY p_usb_xmit;     /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
+               /* to usb_drv.c by a call to usb_xmit().*/
+               void            *ipac_ptr;      /* &Diva.ipac pointer to struct IPAC in VxD */
      } Usb_Msg;
      PORTDRV_HOOK PortdrvHook;
+       SLIENTRYPOINT_REQ   sliEntryPointReq;
+       struct {
+               unsigned char Req;
+               unsigned char Rc;
+               diva_xdi_stream_interface_t info;
+       } xdi_stream_info;
+       struct {
+               unsigned char Req;
+               unsigned char Rc;
+               diva_xdi_get_extended_xdi_features_t info;
+       } xdi_extended_features;
      struct {
+               unsigned char Req;
+               unsigned char Rc;
+               diva_xdi_get_adapter_sdram_bar_t info;
      } xdi_sdram_bar;
+       struct {
+               unsigned char Req;
+               unsigned char Rc;
+               diva_xdi_get_capi_parameters_t info;
+       } xdi_capi_prms;
      struct {
+               ENTITY           e;
+               diva_didd_adapter_notify_t info;
      } didd_notify;
      struct {
+               ENTITY           e;
+               diva_didd_add_adapter_t   info;
      } didd_add_adapter;
      struct {
+               ENTITY           e;
+               diva_didd_remove_adapter_t info;
      } didd_remove_adapter;
      struct {
+               ENTITY             e;
+               diva_didd_read_adapter_array_t info;
      } didd_read_adapter_array;
      struct {
+               ENTITY             e;
+               diva_didd_get_cfg_lib_ifc_t     info;
      } didd_get_cfg_lib_ifc;
+       struct {
+               unsigned char Req;
+               unsigned char Rc;
+               diva_xdi_get_logical_adapter_number_s_t info;
+       } xdi_logical_adapter_number;
+       struct {
+               unsigned char Req;
+               unsigned char Rc;
+               diva_xdi_dma_descriptor_operation_t info;
+       } xdi_dma_descriptor_operation;
 } IDI_SYNC_REQ;
 /******************************************************************************/
-#endif /* __DIVA_SYNC__H */  
+#endif /* __DIVA_SYNC__H */
index 9822582..7958a25 100644 (file)
@@ -14,7 +14,7 @@
 #include "dqueue.h"
 
 int
-diva_data_q_init(diva_um_idi_data_queue_t * q,
+diva_data_q_init(diva_um_idi_data_queue_t *q,
                 int max_length, int max_segments)
 {
        int i;
@@ -38,7 +38,7 @@ diva_data_q_init(diva_um_idi_data_queue_t * q,
        return (0);
 }
 
-int diva_data_q_finit(diva_um_idi_data_queue_t * q)
+int diva_data_q_finit(diva_um_idi_data_queue_t *q)
 {
        int i;
 
@@ -54,12 +54,12 @@ int diva_data_q_finit(diva_um_idi_data_queue_t * q)
        return (0);
 }
 
-int diva_data_q_get_max_length(const diva_um_idi_data_queue_t * q)
+int diva_data_q_get_max_length(const diva_um_idi_data_queue_t *q)
 {
        return (q->max_length);
 }
 
-void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t * q)
+void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t *q)
 {
        if ((!q->segment_pending) && (q->count < q->segments)) {
                q->segment_pending = 1;
@@ -70,7 +70,7 @@ void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t * q)
 }
 
 void
-diva_data_q_ack_segment4write(diva_um_idi_data_queue_t * q, int length)
+diva_data_q_ack_segment4write(diva_um_idi_data_queue_t *q, int length)
 {
        if (q->segment_pending) {
                q->length[q->write] = length;
@@ -92,12 +92,12 @@ const void *diva_data_q_get_segment4read(const diva_um_idi_data_queue_t *
        return NULL;
 }
 
-int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t * q)
+int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t *q)
 {
        return (q->length[q->read]);
 }
 
-void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t * q)
+void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t *q)
 {
        if (q->count) {
                q->length[q->read] = 0;
index 72d21c9..6992c45 100644 (file)
@@ -16,16 +16,16 @@ typedef struct _diva_um_idi_data_queue {
        int length[DIVA_UM_IDI_MAX_MSGS];
 } diva_um_idi_data_queue_t;
 
-int diva_data_q_init(diva_um_idi_data_queue_t * q,
+int diva_data_q_init(diva_um_idi_data_queue_t *q,
                     int max_length, int max_segments);
-int diva_data_q_finit(diva_um_idi_data_queue_t * q);
-int diva_data_q_get_max_length(const diva_um_idi_data_queue_t * q);
-void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t * q);
-void diva_data_q_ack_segment4write(diva_um_idi_data_queue_t * q,
+int diva_data_q_finit(diva_um_idi_data_queue_t *q);
+int diva_data_q_get_max_length(const diva_um_idi_data_queue_t *q);
+void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t *q);
+void diva_data_q_ack_segment4write(diva_um_idi_data_queue_t *q,
                                   int length);
 const void *diva_data_q_get_segment4read(const diva_um_idi_data_queue_t *
                                         q);
-int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t * q);
-void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t * q);
+int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t *q);
+void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t *q);
 
 #endif
index fec1e38..94828c8 100644 (file)
@@ -1,33 +1,33 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#ifndef DSP_DEFS_H_  
+#ifndef DSP_DEFS_H_
 #define DSP_DEFS_H_
 #include "dspdids.h"
 /*---------------------------------------------------------------------------*/
-#define dsp_download_reserve_space(fp,length)
+#define dsp_download_reserve_space(fp, length)
 /*****************************************************************************/
 /*
  * OS file access abstraction layer
  * I/O functions returns -1 on error, 0 on EOF
  */
 struct _OsFileHandle_;
-typedef long (  * OsFileIo)  (struct _OsFileHandle_    *handle,
-                                void                     *buffer,
-                                long                       size) ;
-typedef long (  * OsFileSeek)(struct _OsFileHandle_    *handle,
-                                long                       position,
-                                int                        mode) ;
-typedef long (  * OsCardLoad)(struct _OsFileHandle_    *handle,
-                                long                       length,
-                                void                         *   *addr) ;
+typedef long (*OsFileIo)(struct _OsFileHandle_ *handle,
+                        void *buffer,
+                        long size);
+typedef long (*OsFileSeek)(struct _OsFileHandle_ *handle,
+                          long position,
+                          int mode);
+typedef long (*OsCardLoad)(struct _OsFileHandle_    *handle,
+                          long length,
+                          void **addr);
 typedef struct _OsFileHandle_
-{ void       *sysFileDesc ;
unsigned long sysFileSize ;
OsFileIo      sysFileRead ;
OsFileSeek    sysFileSeek ;
void       *sysLoadDesc ;
OsCardLoad    sysCardLoad ;
-} OsFileHandle ;
-extern OsFileHandle *OsOpenFile (char *path_name) ;
-extern void          OsCloseFile (OsFileHandle *fp) ;
+{ void       *sysFileDesc;
      unsigned long sysFileSize;
      OsFileIo      sysFileRead;
      OsFileSeek    sysFileSeek;
      void       *sysLoadDesc;
      OsCardLoad    sysCardLoad;
+} OsFileHandle;
+extern OsFileHandle *OsOpenFile(char *path_name);
+extern void          OsCloseFile(OsFileHandle *fp);
 /*****************************************************************************/
 #define DSP_TELINDUS_FILE "dspdload.bin"
 /* special DSP file for BRI cards for Qsig and CornetN because of missing memory */
@@ -93,109 +93,109 @@ extern void          OsCloseFile (OsFileHandle *fp) ;
 #define DSP_FILE_FORMAT_VERSION_BCD         0x0100
 typedef struct tag_dsp_combifile_header
 {
-  char                  format_identification[DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE];
-  word                  format_version_bcd;
-  word                  header_size;
-  word                  combifile_description_size;
-  word                  directory_entries;
-  word                  directory_size;
-  word                  download_count;
-  word                  usage_mask_size;
+       char                  format_identification[DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE];
+       word                  format_version_bcd;
+       word                  header_size;
+       word                  combifile_description_size;
+       word                  directory_entries;
+       word                  directory_size;
+       word                  download_count;
+       word                  usage_mask_size;
 } t_dsp_combifile_header;
 typedef struct tag_dsp_combifile_directory_entry
 {
-  word                  card_type_number;
-  word                  file_set_number;
+       word                  card_type_number;
+       word                  file_set_number;
 } t_dsp_combifile_directory_entry;
 typedef struct tag_dsp_file_header
 {
-  char                  format_identification[DSP_FILE_FORMAT_IDENTIFICATION_SIZE];
-  word                  format_version_bcd;
-  word                  download_id;
-  word                  download_flags;
-  word                  required_processing_power;
-  word                  interface_channel_count;
-  word                  header_size;
-  word                  download_description_size;
-  word                  memory_block_table_size;
-  word                  memory_block_count;
-  word                  segment_table_size;
-  word                  segment_count;
-  word                  symbol_table_size;
-  word                  symbol_count;
-  word                  total_data_size_dm;
-  word                  data_block_count_dm;
-  word                  total_data_size_pm;
-  word                  data_block_count_pm;
+       char                  format_identification[DSP_FILE_FORMAT_IDENTIFICATION_SIZE];
+       word                  format_version_bcd;
+       word                  download_id;
+       word                  download_flags;
+       word                  required_processing_power;
+       word                  interface_channel_count;
+       word                  header_size;
+       word                  download_description_size;
+       word                  memory_block_table_size;
+       word                  memory_block_count;
+       word                  segment_table_size;
+       word                  segment_count;
+       word                  symbol_table_size;
+       word                  symbol_count;
+       word                  total_data_size_dm;
+       word                  data_block_count_dm;
+       word                  total_data_size_pm;
+       word                  data_block_count_pm;
 } t_dsp_file_header;
 typedef struct tag_dsp_memory_block_desc
 {
-  word                  alias_memory_block;
-  word                  memory_type;
-  word                  address;
-  word                  size;             /* DSP words */
+       word                  alias_memory_block;
+       word                  memory_type;
+       word                  address;
+       word                  size;             /* DSP words */
 } t_dsp_memory_block_desc;
 typedef struct tag_dsp_segment_desc
 {
-  word                  memory_block;
-  word                  attributes;
-  word                  base;
-  word                  size;
-  word                  alignment;        /* ==0 -> no other legal start address than base */
+       word                  memory_block;
+       word                  attributes;
+       word                  base;
+       word                  size;
+       word                  alignment;        /* ==0 -> no other legal start address than base */
 } t_dsp_segment_desc;
 typedef struct tag_dsp_symbol_desc
 {
-  word                  symbol_id;
-  word                  segment;
-  word                  offset;
-  word                  size;             /* DSP words */
+       word                  symbol_id;
+       word                  segment;
+       word                  offset;
+       word                  size;             /* DSP words */
 } t_dsp_symbol_desc;
 typedef struct tag_dsp_data_block_header
 {
-  word                  attributes;
-  word                  segment;
-  word                  offset;
-  word                  size;             /* DSP words */
+       word                  attributes;
+       word                  segment;
+       word                  offset;
+       word                  size;             /* DSP words */
 } t_dsp_data_block_header;
 typedef struct tag_dsp_download_desc
 {
-  word                  download_id;
-  word                  download_flags;
-  word                  required_processing_power;
-  word                  interface_channel_count;
-  word                  excess_header_size;
-  word                  memory_block_count;
-  word                  segment_count;
-  word                  symbol_count;
-  word                  data_block_count_dm;
-  word                  data_block_count_pm;
-  byte   *            p_excess_header_data;
-  char   *            p_download_description;
-  t_dsp_memory_block_desc   *p_memory_block_table;
-  t_dsp_segment_desc   *p_segment_table;
-  t_dsp_symbol_desc   *p_symbol_table;
-  word   *            p_data_blocks_dm;
-  word   *            p_data_blocks_pm;
+       word                  download_id;
+       word                  download_flags;
+       word                  required_processing_power;
+       word                  interface_channel_count;
+       word                  excess_header_size;
+       word                  memory_block_count;
+       word                  segment_count;
+       word                  symbol_count;
+       word                  data_block_count_dm;
+       word                  data_block_count_pm;
+       byte *p_excess_header_data;
+       char *p_download_description;
+       t_dsp_memory_block_desc *p_memory_block_table;
+       t_dsp_segment_desc *p_segment_table;
+       t_dsp_symbol_desc *p_symbol_table;
+       word *p_data_blocks_dm;
+       word *p_data_blocks_pm;
 } t_dsp_desc;
 typedef struct tag_dsp_portable_download_desc /* be sure to keep native alignment for MAESTRA's */
 {
-  word                  download_id;
-  word                  download_flags;
-  word                  required_processing_power;
-  word                  interface_channel_count;
-  word                  excess_header_size;
-  word                  memory_block_count;
-  word                  segment_count;
-  word                  symbol_count;
-  word                  data_block_count_dm;
-  word                  data_block_count_pm;
-  dword                 p_excess_header_data;
-  dword                 p_download_description;
-  dword                 p_memory_block_table;
-  dword                 p_segment_table;
-  dword                 p_symbol_table;
-  dword                 p_data_blocks_dm;
-  dword                 p_data_blocks_pm;
+       word                  download_id;
+       word                  download_flags;
+       word                  required_processing_power;
+       word                  interface_channel_count;
+       word                  excess_header_size;
+       word                  memory_block_count;
+       word                  segment_count;
+       word                  symbol_count;
+       word                  data_block_count_dm;
+       word                  data_block_count_pm;
+       dword                 p_excess_header_data;
+       dword                 p_download_description;
+       dword                 p_memory_block_table;
+       dword                 p_segment_table;
+       dword                 p_symbol_table;
+       dword                 p_data_blocks_dm;
+       dword                 p_data_blocks_pm;
 } t_dsp_portable_desc;
 #define DSP_DOWNLOAD_INDEX_KERNEL               0
 #define DSP30TX_DOWNLOAD_INDEX_KERNEL           1
@@ -204,7 +204,7 @@ typedef struct tag_dsp_portable_download_desc /* be sure to keep native alignmen
 #define DSP_DOWNLOAD_MAX_SEGMENTS         16
 #define DSP_UDATA_REQUEST_RECONFIGURE     0
 /*
-parameters:
+  parameters:
   <word> reconfigure delay (in 8kHz samples)
   <word> reconfigure code
   <byte> reconfigure hdlc preamble flags
@@ -229,11 +229,11 @@ parameters:
 #define DSP_RECONFIGURE_V17_12000         11
 #define DSP_RECONFIGURE_V17_14400         12
 /*
-data indications if transparent framer
+  data indications if transparent framer
   <byte> data 0
   <byte> data 1
   ...
-data indications if HDLC framer
+  data indications if HDLC framer
   <byte> data 0
   <byte> data 1
   ...
@@ -243,17 +243,17 @@ data indications if HDLC framer
 */
 #define DSP_UDATA_INDICATION_SYNC         0
 /*
-returns:
+  returns:
   <word> time of sync (sampled from counter at 8kHz)
 */
 #define DSP_UDATA_INDICATION_DCD_OFF      1
 /*
-returns:
+  returns:
   <word> time of DCD off (sampled from counter at 8kHz)
 */
 #define DSP_UDATA_INDICATION_DCD_ON       2
 /*
-returns:
+  returns:
   <word> time of DCD on (sampled from counter at 8kHz)
   <byte> connected norm
   <word> connected options
@@ -261,12 +261,12 @@ returns:
 */
 #define DSP_UDATA_INDICATION_CTS_OFF      3
 /*
-returns:
+  returns:
   <word> time of CTS off (sampled from counter at 8kHz)
 */
 #define DSP_UDATA_INDICATION_CTS_ON       4
 /*
-returns:
+  returns:
   <word> time of CTS on (sampled from counter at 8kHz)
   <byte> connected norm
   <word> connected options
@@ -292,10 +292,10 @@ returns:
 #define DSP_CONNECTED_NORM_V17              17
 #define DSP_CONNECTED_OPTION_TRELLIS        0x0001
 /*---------------------------------------------------------------------------*/
-extern char *dsp_read_file (OsFileHandle          *fp,
-                            word                     card_type_number,
-                            word                  *p_dsp_download_count,
-                            t_dsp_desc            *p_dsp_download_table,
-                            t_dsp_portable_desc   *p_dsp_portable_download_table) ;
+extern char *dsp_read_file(OsFileHandle *fp,
+                          word card_type_number,
+                          word *p_dsp_download_count,
+                          t_dsp_desc *p_dsp_download_table,
+                          t_dsp_portable_desc *p_dsp_portable_download_table);
 /*---------------------------------------------------------------------------*/
-#endif /* DSP_DEFS_H_ */  
+#endif /* DSP_DEFS_H_ */
index a6021e5..fe36f13 100644 (file)
@@ -4,8 +4,8 @@
 #define __DIVA_PRI_HOST_TEST_DSPS_H__
 
 /*
-   DSP registers on maestra pri
-   */
+  DSP registers on maestra pri
+*/
 #define DSP1_PORT       (0x00)
 #define DSP2_PORT       (0x8)
 #define DSP3_PORT       (0x800)
@@ -39,9 +39,9 @@
 #define DSP_ADR_OFFS    0x80
 
 /*------------------------------------------------------------------
-               Dsp related definitions
+  Dsp related definitions
   ------------------------------------------------------------------ */
 #define DSP_SIGNATURE_PROBE_WORD 0x5a5a
-#define dsp_make_address_ex(pm,address) ((word)((pm) ? (address) : (address) + 0x4000))
+#define dsp_make_address_ex(pm, address) ((word)((pm) ? (address) : (address) + 0x4000))
 
 #endif
index ebe131a..957b33c 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef DSPDIDS_H_
index 732d22d..f353fb6 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_XDI_DSRV_4_BRI_INC__
@@ -35,6 +35,6 @@
 #define PLX9054_SOFT_RESET 0x4000
 #define PLX9054_RELOAD_EEPROM 0x2000
 #define DIVA_4BRI_REVISION(__x__) (((__x__)->cardType == CARDTYPE_DIVASRV_Q_8M_V2_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_B_2M_V2_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_B_2F_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI))
-void diva_os_set_qBri_functions (PISDN_ADAPTER IoAdapter);
-void diva_os_set_qBri2_functions (PISDN_ADAPTER IoAdapter);
+void diva_os_set_qBri_functions(PISDN_ADAPTER IoAdapter);
+void diva_os_set_qBri2_functions(PISDN_ADAPTER IoAdapter);
 #endif
index f38ebbe..8a67dbc 100644 (file)
@@ -1,37 +1,37 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_XDI_DSRV_BRI_INC__
 #define __DIVA_XDI_DSRV_BRI_INC__
 /*
- Functions exported from os dependent part of
- BRI card configuration and used in
- OS independed part
- */
 Functions exported from os dependent part of
 BRI card configuration and used in
 OS independed part
+*/
 /*
- Prepare OS dependent part of BRI functions
- */
-void diva_os_prepare_maestra_functions (PISDN_ADAPTER IoAdapter);
 Prepare OS dependent part of BRI functions
+*/
+void diva_os_prepare_maestra_functions(PISDN_ADAPTER IoAdapter);
 #endif
index 8611826..fd1a9ff 100644 (file)
@@ -1,38 +1,38 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_XDI_DSRV_PRI_INC__
 #define __DIVA_XDI_DSRV_PRI_INC__
 /*
- Functions exported from os dependent part of
- PRI card configuration and used in
- OS independed part
- */
 Functions exported from os dependent part of
 PRI card configuration and used in
 OS independed part
+*/
 /*
- Prepare OS dependent part of PRI/PRI Rev.2 functions
- */
-void diva_os_prepare_pri_functions (PISDN_ADAPTER IoAdapter);
-void diva_os_prepare_pri2_functions (PISDN_ADAPTER IoAdapter);
 Prepare OS dependent part of PRI/PRI Rev.2 functions
+*/
+void diva_os_prepare_pri_functions(PISDN_ADAPTER IoAdapter);
+void diva_os_prepare_pri2_functions(PISDN_ADAPTER IoAdapter);
 #endif
index 16252cf..fdb8341 100644 (file)
 
 typedef struct _divas_um_idi_entity {
        struct list_head          link;
-       diva_um_idi_adapter_t*    adapter; /* Back to adapter */
-       ENTITY                    e;
-       void*                     os_ref;
-       dword                     status;
-       void*                     os_context;
-       int                       rc_count;
+       diva_um_idi_adapter_t *adapter; /* Back to adapter */
+       ENTITY e;
+       void *os_ref;
+       dword status;
+       void *os_context;
+       int rc_count;
        diva_um_idi_data_queue_t  data; /* definad by user 1 ... MAX */
        diva_um_idi_data_queue_t  rc;   /* two entries */
        BUFFERS                   XData;
        BUFFERS                   RData;
-       byte                      buffer[2048+512];
+       byte                      buffer[2048 + 512];
 } divas_um_idi_entity_t;
 
 
index b212311..c9156b0 100644 (file)
@@ -1,51 +1,51 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_XDI_CARD_CONFIG_HELPERS_INC__
 #define __DIVA_XDI_CARD_CONFIG_HELPERS_INC__
-dword diva_get_protocol_file_features  (byte* File,
-                      int offset,
-                      char *IdStringBuffer,
-                      dword IdBufferSize);
-void diva_configure_protocol (PISDN_ADAPTER IoAdapter);
+dword diva_get_protocol_file_features(byte *File,
+                                     int offset,
+                                     char *IdStringBuffer,
+                                     dword IdBufferSize);
+void diva_configure_protocol(PISDN_ADAPTER IoAdapter);
 /*
- Low level file access system abstraction
- */
 Low level file access system abstraction
+*/
 /* -------------------------------------------------------------------------
-  Access to single file
-  Return pointer to the image of the requested file,
-  write image length to 'FileLength'
-  ------------------------------------------------------------------------- */
-void *xdiLoadFile (char *FileName, dword *FileLength, unsigned long MaxLoadSize) ;
+   Access to single file
+   Return pointer to the image of the requested file,
+   write image length to 'FileLength'
+   ------------------------------------------------------------------------- */
+void *xdiLoadFile(char *FileName, dword *FileLength, unsigned long MaxLoadSize);
 /* -------------------------------------------------------------------------
-  Dependent on the protocol settings does read return pointer
-  to the image of appropriate protocol file
-  ------------------------------------------------------------------------- */
-void *xdiLoadArchive (PISDN_ADAPTER IoAdapter, dword *FileLength, unsigned long MaxLoadSize) ;
+   Dependent on the protocol settings does read return pointer
+   to the image of appropriate protocol file
+   ------------------------------------------------------------------------- */
+void *xdiLoadArchive(PISDN_ADAPTER IoAdapter, dword *FileLength, unsigned long MaxLoadSize);
 /* --------------------------------------------------------------------------
-  Free all system resources accessed by xdiLoadFile and xdiLoadArchive
-  -------------------------------------------------------------------------- */
-void xdiFreeFile (void* handle);
+   Free all system resources accessed by xdiLoadFile and xdiLoadArchive
+   -------------------------------------------------------------------------- */
+void xdiFreeFile(void *handle);
 #endif
index db87d51..d153e3c 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id: idifunc.c,v 1.14.4.4 2004/08/28 20:03:53 armin Exp $
  *
  * Driver for Eicon DIVA Server ISDN cards.
- * User Mode IDI Interface 
+ * User Mode IDI Interface
  *
  * Copyright 2000-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2000-2003 Cytronics & Melware (info@melware.de)
@@ -58,7 +58,7 @@ static diva_os_spin_lock_t ll_lock;
 /*
  * find card in list
  */
-static udiva_card *find_card_in_list(DESCRIPTOR * d)
+static udiva_card *find_card_in_list(DESCRIPTOR *d)
 {
        udiva_card *card;
        struct list_head *tmp;
@@ -80,7 +80,7 @@ static udiva_card *find_card_in_list(DESCRIPTOR * d)
 /*
  * new card
  */
-static void um_new_card(DESCRIPTOR * d)
+static void um_new_card(DESCRIPTOR *d)
 {
        int adapter_nr = 0;
        udiva_card *card = NULL;
@@ -94,10 +94,10 @@ static void um_new_card(DESCRIPTOR * d)
        memcpy(&card->d, d, sizeof(DESCRIPTOR));
        sync_req.xdi_logical_adapter_number.Req = 0;
        sync_req.xdi_logical_adapter_number.Rc =
-           IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER;
-       card->d.request((ENTITY *) & sync_req);
+               IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER;
+       card->d.request((ENTITY *)&sync_req);
        adapter_nr =
-           sync_req.xdi_logical_adapter_number.info.logical_adapter_number;
+               sync_req.xdi_logical_adapter_number.info.logical_adapter_number;
        card->Id = adapter_nr;
        if (!(diva_user_mode_idi_create_adapter(d, adapter_nr))) {
                diva_os_enter_spin_lock(&ll_lock, &old_irql, "add card");
@@ -113,7 +113,7 @@ static void um_new_card(DESCRIPTOR * d)
 /*
  * remove card
  */
-static void um_remove_card(DESCRIPTOR * d)
+static void um_remove_card(DESCRIPTOR *d)
 {
        diva_os_spin_lock_magic_t old_irql;
        udiva_card *card = NULL;
@@ -154,7 +154,7 @@ rescan:
 /*
  * DIDD notify callback
  */
-static void *didd_callback(void *context, DESCRIPTOR * adapter,
+static void *didd_callback(void *context, DESCRIPTOR *adapter,
                           int removal)
 {
        if (adapter->type == IDI_DADAPTER) {
@@ -196,10 +196,10 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
                        memcpy(&DAdapter, &DIDD_Table[x], sizeof(DAdapter));
                        req.didd_notify.e.Req = 0;
                        req.didd_notify.e.Rc =
-                           IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
+                               IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
                        req.didd_notify.info.callback = (void *)didd_callback;
                        req.didd_notify.info.context = NULL;
-                       DAdapter.request((ENTITY *) & req);
+                       DAdapter.request((ENTITY *)&req);
                        if (req.didd_notify.e.Rc != 0xff) {
                                stop_dbg();
                                return (0);
@@ -234,7 +234,7 @@ static void DIVA_EXIT_FUNCTION disconnect_didd(void)
        req.didd_notify.e.Req = 0;
        req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
        req.didd_notify.info.handle = notify_handle;
-       DAdapter.request((ENTITY *) & req);
+       DAdapter.request((ENTITY *)&req);
 }
 
 /*
index 6fd9b00..8851ce5 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 #include "di.h"
 #include "mi_pc.h"
 #include "io.h"
-extern ADAPTER * adapter[MAX_ADAPTER];
+extern ADAPTER *adapter[MAX_ADAPTER];
 extern PISDN_ADAPTER IoAdapters[MAX_ADAPTER];
-void request (PISDN_ADAPTER, ENTITY *);
-static void pcm_req (PISDN_ADAPTER, ENTITY *);
+void request(PISDN_ADAPTER, ENTITY *);
+static void pcm_req(PISDN_ADAPTER, ENTITY *);
 /* --------------------------------------------------------------------------
-  local functions
-  -------------------------------------------------------------------------- */
-#define ReqFunc(N) \
-static void Request##N(ENTITY *e) \
-{ if ( IoAdapters[N] ) (* IoAdapters[N]->DIRequest)(IoAdapters[N], e) ; }
+   local functions
+   -------------------------------------------------------------------------- */
+#define ReqFunc(N)                                                     \
+       static void Request##N(ENTITY *e)                               \
+       { if (IoAdapters[N]) (*IoAdapters[N]->DIRequest)(IoAdapters[N], e); }
 ReqFunc(0)
 ReqFunc(1)
 ReqFunc(2)
@@ -61,792 +61,792 @@ ReqFunc(14)
 ReqFunc(15)
 IDI_CALL Requests[MAX_ADAPTER] =
 { &Request0, &Request1, &Request2, &Request3,
- &Request4, &Request5, &Request6, &Request7,
- &Request8, &Request9, &Request10, &Request11,
- &Request12, &Request13, &Request14, &Request15
 &Request4, &Request5, &Request6, &Request7,
 &Request8, &Request9, &Request10, &Request11,
 &Request12, &Request13, &Request14, &Request15
 };
 /*****************************************************************************/
 /*
   This array should indicate all new services, that this version of XDI
   is able to provide to his clients
-  */
-static byte extended_xdi_features[DIVA_XDI_EXTENDED_FEATURES_MAX_SZ+1] = {
- (DIVA_XDI_EXTENDED_FEATURES_VALID       |
-  DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR    |
-  DIVA_XDI_EXTENDED_FEATURE_CAPI_PRMS    |
+*/
+static byte extended_xdi_features[DIVA_XDI_EXTENDED_FEATURES_MAX_SZ + 1] = {
      (DIVA_XDI_EXTENDED_FEATURES_VALID       |
+        DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR    |
+        DIVA_XDI_EXTENDED_FEATURE_CAPI_PRMS    |
 #if defined(DIVA_IDI_RX_DMA)
-  DIVA_XDI_EXTENDED_FEATURE_CMA          |
-  DIVA_XDI_EXTENDED_FEATURE_RX_DMA       |
-  DIVA_XDI_EXTENDED_FEATURE_MANAGEMENT_DMA |
+        DIVA_XDI_EXTENDED_FEATURE_CMA          |
+        DIVA_XDI_EXTENDED_FEATURE_RX_DMA       |
+        DIVA_XDI_EXTENDED_FEATURE_MANAGEMENT_DMA |
 #endif
-  DIVA_XDI_EXTENDED_FEATURE_NO_CANCEL_RC),
- 0
+        DIVA_XDI_EXTENDED_FEATURE_NO_CANCEL_RC),
      0
 };
 /*****************************************************************************/
 void
-dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc)
-{
dword   logLen ;
word *Xlog   = xlogDesc->buf ;
word  logCnt = xlogDesc->cnt ;
word  logOut = xlogDesc->out / sizeof(*Xlog) ;
- DBG_FTL(("%s: ************* XLOG recovery (%d) *************",
-          &IoAdapter->Name[0], (int)logCnt))
- DBG_FTL(("Microcode: %s", &IoAdapter->ProtocolIdString[0]))
for ( ; logCnt > 0 ; --logCnt )
- {
-  if ( !GET_WORD(&Xlog[logOut]) )
-  {
-   if ( --logCnt == 0 )
-    break ;
-   logOut = 0 ;
-  }
-  if ( GET_WORD(&Xlog[logOut]) <= (logOut * sizeof(*Xlog)) )
-  {
-   if ( logCnt > 2 )
-   {
-    DBG_FTL(("Possibly corrupted XLOG: %d entries left",
-             (int)logCnt))
-   }
-   break ;
-  }
-  logLen = (dword)(GET_WORD(&Xlog[logOut]) - (logOut * sizeof(*Xlog))) ;
-  DBG_FTL_MXLOG(( (char *)&Xlog[logOut + 1], (dword)(logLen - 2) ))
-  logOut = (GET_WORD(&Xlog[logOut]) + 1) / sizeof(*Xlog) ;
- }
- DBG_FTL(("%s: ***************** end of XLOG *****************",
-          &IoAdapter->Name[0]))
-}
+dump_xlog_buffer(PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc)
+{
      dword   logLen;
      word *Xlog   = xlogDesc->buf;
      word  logCnt = xlogDesc->cnt;
      word  logOut = xlogDesc->out / sizeof(*Xlog);
      DBG_FTL(("%s: ************* XLOG recovery (%d) *************",
+                &IoAdapter->Name[0], (int)logCnt))
              DBG_FTL(("Microcode: %s", &IoAdapter->ProtocolIdString[0]))
              for (; logCnt > 0; --logCnt)
              {
+                       if (!GET_WORD(&Xlog[logOut]))
+                       {
+                               if (--logCnt == 0)
+                                       break;
+                               logOut = 0;
+                       }
+                       if (GET_WORD(&Xlog[logOut]) <= (logOut * sizeof(*Xlog)))
+                       {
+                               if (logCnt > 2)
+                               {
+                                       DBG_FTL(("Possibly corrupted XLOG: %d entries left",
+                                                (int)logCnt))
+                                               }
+                               break;
+                       }
+                       logLen = (dword)(GET_WORD(&Xlog[logOut]) - (logOut * sizeof(*Xlog)));
+                       DBG_FTL_MXLOG(((char *)&Xlog[logOut + 1], (dword)(logLen - 2)))
+                               logOut = (GET_WORD(&Xlog[logOut]) + 1) / sizeof(*Xlog);
              }
      DBG_FTL(("%s: ***************** end of XLOG *****************",
+                &IoAdapter->Name[0]))
+               }
 /*****************************************************************************/
 #if defined(XDI_USE_XLOG)
 static char *(ExceptionCauseTable[]) =
 {
- "Interrupt",
- "TLB mod /IBOUND",
- "TLB load /DBOUND",
- "TLB store",
- "Address error load",
- "Address error store",
- "Instruction load bus error",
- "Data load/store bus error",
- "Syscall",
- "Breakpoint",
- "Reverd instruction",
- "Coprocessor unusable",
- "Overflow",
- "TRAP",
- "VCEI",
- "Floating Point Exception",
- "CP2",
- "Reserved 17",
- "Reserved 18",
- "Reserved 19",
- "Reserved 20",
- "Reserved 21",
- "Reserved 22",
- "WATCH",
- "Reserved 24",
- "Reserved 25",
- "Reserved 26",
- "Reserved 27",
- "Reserved 28",
- "Reserved 29",
- "Reserved 30",
- "VCED"
-} ;
      "Interrupt",
      "TLB mod /IBOUND",
      "TLB load /DBOUND",
      "TLB store",
      "Address error load",
      "Address error store",
      "Instruction load bus error",
      "Data load/store bus error",
      "Syscall",
      "Breakpoint",
      "Reverd instruction",
      "Coprocessor unusable",
      "Overflow",
      "TRAP",
      "VCEI",
      "Floating Point Exception",
      "CP2",
      "Reserved 17",
      "Reserved 18",
      "Reserved 19",
      "Reserved 20",
      "Reserved 21",
      "Reserved 22",
      "WATCH",
      "Reserved 24",
      "Reserved 25",
      "Reserved 26",
      "Reserved 27",
      "Reserved 28",
      "Reserved 29",
      "Reserved 30",
      "VCED"
+};
 #endif
 void
-dump_trap_frame (PISDN_ADAPTER IoAdapter, byte __iomem *exceptionFrame)
-{
MP_XCPTC __iomem *xcept = (MP_XCPTC __iomem *)exceptionFrame ;
- dword    __iomem *regs;
regs  = &xcept->regs[0] ;
- DBG_FTL(("%s: ***************** CPU TRAPPED *****************",
-          &IoAdapter->Name[0]))
- DBG_FTL(("Microcode: %s", &IoAdapter->ProtocolIdString[0]))
- DBG_FTL(("Cause: %s",
-          ExceptionCauseTable[(READ_DWORD(&xcept->cr) & 0x0000007c) >> 2]))
- DBG_FTL(("sr    0x%08x cr    0x%08x epc   0x%08x vaddr 0x%08x",
-          READ_DWORD(&xcept->sr), READ_DWORD(&xcept->cr),
-                                       READ_DWORD(&xcept->epc), READ_DWORD(&xcept->vaddr)))
- DBG_FTL(("zero  0x%08x at    0x%08x v0    0x%08x v1    0x%08x",
-          READ_DWORD(&regs[ 0]), READ_DWORD(&regs[ 1]),
-                                       READ_DWORD(&regs[ 2]), READ_DWORD(&regs[ 3])))
- DBG_FTL(("a0    0x%08x a1    0x%08x a2    0x%08x a3    0x%08x",
-          READ_DWORD(&regs[ 4]), READ_DWORD(&regs[ 5]),
-                                       READ_DWORD(&regs[ 6]), READ_DWORD(&regs[ 7])))
- DBG_FTL(("t0    0x%08x t1    0x%08x t2    0x%08x t3    0x%08x",
-          READ_DWORD(&regs[ 8]), READ_DWORD(&regs[ 9]),
-                                       READ_DWORD(&regs[10]), READ_DWORD(&regs[11])))
- DBG_FTL(("t4    0x%08x t5    0x%08x t6    0x%08x t7    0x%08x",
-          READ_DWORD(&regs[12]), READ_DWORD(&regs[13]),
-                                       READ_DWORD(&regs[14]), READ_DWORD(&regs[15])))
- DBG_FTL(("s0    0x%08x s1    0x%08x s2    0x%08x s3    0x%08x",
-          READ_DWORD(&regs[16]), READ_DWORD(&regs[17]),
-                                       READ_DWORD(&regs[18]), READ_DWORD(&regs[19])))
- DBG_FTL(("s4    0x%08x s5    0x%08x s6    0x%08x s7    0x%08x",
-          READ_DWORD(&regs[20]), READ_DWORD(&regs[21]),
-                                       READ_DWORD(&regs[22]), READ_DWORD(&regs[23])))
- DBG_FTL(("t8    0x%08x t9    0x%08x k0    0x%08x k1    0x%08x",
-          READ_DWORD(&regs[24]), READ_DWORD(&regs[25]),
-                                       READ_DWORD(&regs[26]), READ_DWORD(&regs[27])))
- DBG_FTL(("gp    0x%08x sp    0x%08x s8    0x%08x ra    0x%08x",
-          READ_DWORD(&regs[28]), READ_DWORD(&regs[29]),
-                                       READ_DWORD(&regs[30]), READ_DWORD(&regs[31])))
- DBG_FTL(("md    0x%08x|%08x         resvd 0x%08x class 0x%08x",
-          READ_DWORD(&xcept->mdhi), READ_DWORD(&xcept->mdlo),
-                                       READ_DWORD(&xcept->reseverd), READ_DWORD(&xcept->xclass)))
-}
+dump_trap_frame(PISDN_ADAPTER IoAdapter, byte __iomem *exceptionFrame)
+{
      MP_XCPTC __iomem *xcept = (MP_XCPTC __iomem *)exceptionFrame;
      dword    __iomem *regs;
      regs  = &xcept->regs[0];
      DBG_FTL(("%s: ***************** CPU TRAPPED *****************",
+                &IoAdapter->Name[0]))
              DBG_FTL(("Microcode: %s", &IoAdapter->ProtocolIdString[0]))
              DBG_FTL(("Cause: %s",
+                        ExceptionCauseTable[(READ_DWORD(&xcept->cr) & 0x0000007c) >> 2]))
              DBG_FTL(("sr    0x%08x cr    0x%08x epc   0x%08x vaddr 0x%08x",
+                        READ_DWORD(&xcept->sr), READ_DWORD(&xcept->cr),
+                        READ_DWORD(&xcept->epc), READ_DWORD(&xcept->vaddr)))
              DBG_FTL(("zero  0x%08x at    0x%08x v0    0x%08x v1    0x%08x",
+                        READ_DWORD(&regs[0]), READ_DWORD(&regs[1]),
+                        READ_DWORD(&regs[2]), READ_DWORD(&regs[3])))
              DBG_FTL(("a0    0x%08x a1    0x%08x a2    0x%08x a3    0x%08x",
+                        READ_DWORD(&regs[4]), READ_DWORD(&regs[5]),
+                        READ_DWORD(&regs[6]), READ_DWORD(&regs[7])))
              DBG_FTL(("t0    0x%08x t1    0x%08x t2    0x%08x t3    0x%08x",
+                        READ_DWORD(&regs[8]), READ_DWORD(&regs[9]),
+                        READ_DWORD(&regs[10]), READ_DWORD(&regs[11])))
              DBG_FTL(("t4    0x%08x t5    0x%08x t6    0x%08x t7    0x%08x",
+                        READ_DWORD(&regs[12]), READ_DWORD(&regs[13]),
+                        READ_DWORD(&regs[14]), READ_DWORD(&regs[15])))
              DBG_FTL(("s0    0x%08x s1    0x%08x s2    0x%08x s3    0x%08x",
+                        READ_DWORD(&regs[16]), READ_DWORD(&regs[17]),
+                        READ_DWORD(&regs[18]), READ_DWORD(&regs[19])))
              DBG_FTL(("s4    0x%08x s5    0x%08x s6    0x%08x s7    0x%08x",
+                        READ_DWORD(&regs[20]), READ_DWORD(&regs[21]),
+                        READ_DWORD(&regs[22]), READ_DWORD(&regs[23])))
              DBG_FTL(("t8    0x%08x t9    0x%08x k0    0x%08x k1    0x%08x",
+                        READ_DWORD(&regs[24]), READ_DWORD(&regs[25]),
+                        READ_DWORD(&regs[26]), READ_DWORD(&regs[27])))
              DBG_FTL(("gp    0x%08x sp    0x%08x s8    0x%08x ra    0x%08x",
+                        READ_DWORD(&regs[28]), READ_DWORD(&regs[29]),
+                        READ_DWORD(&regs[30]), READ_DWORD(&regs[31])))
              DBG_FTL(("md    0x%08x|%08x         resvd 0x%08x class 0x%08x",
+                        READ_DWORD(&xcept->mdhi), READ_DWORD(&xcept->mdlo),
+                        READ_DWORD(&xcept->reseverd), READ_DWORD(&xcept->xclass)))
+               }
 /* --------------------------------------------------------------------------
-  Real XDI Request function
-  -------------------------------------------------------------------------- */
-void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
+   Real XDI Request function
+   -------------------------------------------------------------------------- */
+void request(PISDN_ADAPTER IoAdapter, ENTITY *e)
 {
- byte i;
- diva_os_spin_lock_magic_t irql;
      byte i;
      diva_os_spin_lock_magic_t irql;
 /*
  * if the Req field in the entity structure is 0,
  * we treat this request as a special function call
  */
if ( !e->Req )
- {
-  IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e ;
-  switch (e->Rc)
-  {
      if (!e->Req)
      {
+               IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e;
+               switch (e->Rc)
+               {
 #if defined(DIVA_IDI_RX_DMA)
-    case IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION: {
-      diva_xdi_dma_descriptor_operation_t* pI = \
-                                   &syncReq->xdi_dma_descriptor_operation.info;
-      if (!IoAdapter->dma_map) {
-        pI->operation         = -1;
-        pI->descriptor_number = -1;
-        return;
-      }
-      diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "dma_op");
-      if (pI->operation == IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC) {
-        pI->descriptor_number = diva_alloc_dma_map_entry (\
-                               (struct _diva_dma_map_entry*)IoAdapter->dma_map);
-        if (pI->descriptor_number >= 0) {
-          dword dma_magic;
-          void* local_addr;
-          diva_get_dma_map_entry (\
-                               (struct _diva_dma_map_entry*)IoAdapter->dma_map,
-                               pI->descriptor_number,
-                               &local_addr, &dma_magic);
-          pI->descriptor_address  = local_addr;
-          pI->descriptor_magic    = dma_magic;
-          pI->operation           = 0;
-        } else {
-          pI->operation           = -1;
-        }
-      } else if ((pI->operation == IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE) &&
-                 (pI->descriptor_number >= 0)) {
-        diva_free_dma_map_entry((struct _diva_dma_map_entry*)IoAdapter->dma_map,
-                                pI->descriptor_number);
-        pI->descriptor_number = -1;
-        pI->operation         = 0;
-      } else {
-        pI->descriptor_number = -1;
-        pI->operation         = -1;
-      }
-      diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "dma_op");
-    } return;
+               case IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION: {
+                       diva_xdi_dma_descriptor_operation_t *pI = \
+                               &syncReq->xdi_dma_descriptor_operation.info;
+                       if (!IoAdapter->dma_map) {
+                               pI->operation         = -1;
+                               pI->descriptor_number = -1;
+                               return;
+                       }
+                       diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "dma_op");
+                       if (pI->operation == IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC) {
+                               pI->descriptor_number = diva_alloc_dma_map_entry(\
+                                       (struct _diva_dma_map_entry *)IoAdapter->dma_map);
+                               if (pI->descriptor_number >= 0) {
+                                       dword dma_magic;
+                                       void *local_addr;
+                                       diva_get_dma_map_entry(\
+                                               (struct _diva_dma_map_entry *)IoAdapter->dma_map,
+                                               pI->descriptor_number,
+                                               &local_addr, &dma_magic);
+                                       pI->descriptor_address  = local_addr;
+                                       pI->descriptor_magic    = dma_magic;
+                                       pI->operation           = 0;
+                               } else {
+                                       pI->operation           = -1;
+                               }
+                       } else if ((pI->operation == IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE) &&
+                                  (pI->descriptor_number >= 0)) {
+                               diva_free_dma_map_entry((struct _diva_dma_map_entry *)IoAdapter->dma_map,
+                                                       pI->descriptor_number);
+                               pI->descriptor_number = -1;
+                               pI->operation         = 0;
+                       } else {
+                               pI->descriptor_number = -1;
+                               pI->operation         = -1;
+                       }
+                       diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "dma_op");
+               } return;
 #endif
-    case IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER: {
-      diva_xdi_get_logical_adapter_number_s_t *pI = \
-                                     &syncReq->xdi_logical_adapter_number.info;
-      pI->logical_adapter_number = IoAdapter->ANum;
-      pI->controller = IoAdapter->ControllerNumber;
-      pI->total_controllers = IoAdapter->Properties.Adapters;
-    } return;
-    case IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS: {
-       diva_xdi_get_capi_parameters_t prms, *pI = &syncReq->xdi_capi_prms.info;
-       memset (&prms, 0x00, sizeof(prms));
-       prms.structure_length = min_t(size_t, sizeof(prms), pI->structure_length);
-       memset (pI, 0x00, pI->structure_length);
-       prms.flag_dynamic_l1_down    = (IoAdapter->capi_cfg.cfg_1 & \
-         DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON) ? 1 : 0;
-       prms.group_optimization_enabled = (IoAdapter->capi_cfg.cfg_1 & \
-         DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON) ? 1 : 0;
-       memcpy (pI, &prms, prms.structure_length);
-      } return;
-    case IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR:
-      syncReq->xdi_sdram_bar.info.bar = IoAdapter->sdram_bar;
-      return;
-    case IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES: {
-      dword i;
-      diva_xdi_get_extended_xdi_features_t* pI =\
-                                 &syncReq->xdi_extended_features.info;
-      pI->buffer_length_in_bytes &= ~0x80000000;
-      if (pI->buffer_length_in_bytes && pI->features) {
-        memset (pI->features, 0x00, pI->buffer_length_in_bytes);
-      }
-      for (i = 0; ((pI->features) && (i < pI->buffer_length_in_bytes) &&
-                   (i < DIVA_XDI_EXTENDED_FEATURES_MAX_SZ)); i++) {
-        pI->features[i] = extended_xdi_features[i];
-      }
-      if ((pI->buffer_length_in_bytes < DIVA_XDI_EXTENDED_FEATURES_MAX_SZ) ||
-          (!pI->features)) {
-        pI->buffer_length_in_bytes =\
-                           (0x80000000 | DIVA_XDI_EXTENDED_FEATURES_MAX_SZ);
-      }
-     } return;
-    case IDI_SYNC_REQ_XDI_GET_STREAM:
-      if (IoAdapter) {
-        diva_xdi_provide_istream_info (&IoAdapter->a,
-                                       &syncReq->xdi_stream_info.info);
-      } else {
-        syncReq->xdi_stream_info.info.provided_service = 0;
-      }
-      return;
-  case IDI_SYNC_REQ_GET_NAME:
-   if ( IoAdapter )
-   {
-    strcpy (&syncReq->GetName.name[0], IoAdapter->Name) ;
-    DBG_TRC(("xdi: Adapter %d / Name '%s'",
-             IoAdapter->ANum, IoAdapter->Name))
-    return ;
-   }
-   syncReq->GetName.name[0] = '\0' ;
-   break ;
-  case IDI_SYNC_REQ_GET_SERIAL:
-   if ( IoAdapter )
-   {
-    syncReq->GetSerial.serial = IoAdapter->serialNo ;
-    DBG_TRC(("xdi: Adapter %d / SerialNo %ld",
-             IoAdapter->ANum, IoAdapter->serialNo))
-    return ;
-   }
-   syncReq->GetSerial.serial = 0 ;
-   break ;
-  case IDI_SYNC_REQ_GET_CARDTYPE:
-   if ( IoAdapter )
-   {
-    syncReq->GetCardType.cardtype = IoAdapter->cardType ;
-    DBG_TRC(("xdi: Adapter %d / CardType %ld",
-             IoAdapter->ANum, IoAdapter->cardType))
-    return ;
-   }
-   syncReq->GetCardType.cardtype = 0 ;
-   break ;
-  case IDI_SYNC_REQ_GET_XLOG:
-   if ( IoAdapter )
-   {
-    pcm_req (IoAdapter, e) ;
-    return ;
-   }
-   e->Ind = 0 ;
-   break ;
-  case IDI_SYNC_REQ_GET_DBG_XLOG:
-   if ( IoAdapter )
-   {
-    pcm_req (IoAdapter, e) ;
-    return ;
-   }
-   e->Ind = 0 ;
-   break ;
-  case IDI_SYNC_REQ_GET_FEATURES:
-   if ( IoAdapter )
-   {
-    syncReq->GetFeatures.features =
-      (unsigned short)IoAdapter->features ;
-    return ;
-   }
-   syncReq->GetFeatures.features = 0 ;
-   break ;
-        case IDI_SYNC_REQ_PORTDRV_HOOK:
-            if ( IoAdapter )
-            {
-                DBG_TRC(("Xdi:IDI_SYNC_REQ_PORTDRV_HOOK - ignored"))
-                return ;
-            }
-            break;
-  }
-  if ( IoAdapter )
-  {
-   return ;
-  }
- }
- DBG_TRC(("xdi: Id 0x%x / Req 0x%x / Rc 0x%x", e->Id, e->Req, e->Rc))
if ( !IoAdapter )
- {
-  DBG_FTL(("xdi: uninitialized Adapter used - ignore request"))
-  return ;
- }
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
+               case IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER: {
+                       diva_xdi_get_logical_adapter_number_s_t *pI = \
+                               &syncReq->xdi_logical_adapter_number.info;
+                       pI->logical_adapter_number = IoAdapter->ANum;
+                       pI->controller = IoAdapter->ControllerNumber;
+                       pI->total_controllers = IoAdapter->Properties.Adapters;
+               } return;
+               case IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS: {
+                       diva_xdi_get_capi_parameters_t prms, *pI = &syncReq->xdi_capi_prms.info;
+                       memset(&prms, 0x00, sizeof(prms));
+                       prms.structure_length = min_t(size_t, sizeof(prms), pI->structure_length);
+                       memset(pI, 0x00, pI->structure_length);
+                       prms.flag_dynamic_l1_down    = (IoAdapter->capi_cfg.cfg_1 & \
+                                                       DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON) ? 1 : 0;
+                       prms.group_optimization_enabled = (IoAdapter->capi_cfg.cfg_1 & \
+                                                          DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON) ? 1 : 0;
+                       memcpy(pI, &prms, prms.structure_length);
+               } return;
+               case IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR:
+                       syncReq->xdi_sdram_bar.info.bar = IoAdapter->sdram_bar;
+                       return;
+               case IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES: {
+                       dword i;
+                       diva_xdi_get_extended_xdi_features_t *pI =\
+                               &syncReq->xdi_extended_features.info;
+                       pI->buffer_length_in_bytes &= ~0x80000000;
+                       if (pI->buffer_length_in_bytes && pI->features) {
+                               memset(pI->features, 0x00, pI->buffer_length_in_bytes);
+                       }
+                       for (i = 0; ((pI->features) && (i < pI->buffer_length_in_bytes) &&
+                                    (i < DIVA_XDI_EXTENDED_FEATURES_MAX_SZ)); i++) {
+                               pI->features[i] = extended_xdi_features[i];
+                       }
+                       if ((pI->buffer_length_in_bytes < DIVA_XDI_EXTENDED_FEATURES_MAX_SZ) ||
+                           (!pI->features)) {
+                               pI->buffer_length_in_bytes =\
+                                       (0x80000000 | DIVA_XDI_EXTENDED_FEATURES_MAX_SZ);
+                       }
+               } return;
+               case IDI_SYNC_REQ_XDI_GET_STREAM:
+                       if (IoAdapter) {
+                               diva_xdi_provide_istream_info(&IoAdapter->a,
+                                                             &syncReq->xdi_stream_info.info);
+                       } else {
+                               syncReq->xdi_stream_info.info.provided_service = 0;
+                       }
+                       return;
+               case IDI_SYNC_REQ_GET_NAME:
+                       if (IoAdapter)
+                       {
+                               strcpy(&syncReq->GetName.name[0], IoAdapter->Name);
+                               DBG_TRC(("xdi: Adapter %d / Name '%s'",
+                                        IoAdapter->ANum, IoAdapter->Name))
+                                       return;
+                       }
+                       syncReq->GetName.name[0] = '\0';
+                       break;
+               case IDI_SYNC_REQ_GET_SERIAL:
+                       if (IoAdapter)
+                       {
+                               syncReq->GetSerial.serial = IoAdapter->serialNo;
+                               DBG_TRC(("xdi: Adapter %d / SerialNo %ld",
+                                        IoAdapter->ANum, IoAdapter->serialNo))
+                                       return;
+                       }
+                       syncReq->GetSerial.serial = 0;
+                       break;
+               case IDI_SYNC_REQ_GET_CARDTYPE:
+                       if (IoAdapter)
+                       {
+                               syncReq->GetCardType.cardtype = IoAdapter->cardType;
+                               DBG_TRC(("xdi: Adapter %d / CardType %ld",
+                                        IoAdapter->ANum, IoAdapter->cardType))
+                                       return;
+                       }
+                       syncReq->GetCardType.cardtype = 0;
+                       break;
+               case IDI_SYNC_REQ_GET_XLOG:
+                       if (IoAdapter)
+                       {
+                               pcm_req(IoAdapter, e);
+                               return;
+                       }
+                       e->Ind = 0;
+                       break;
+               case IDI_SYNC_REQ_GET_DBG_XLOG:
+                       if (IoAdapter)
+                       {
+                               pcm_req(IoAdapter, e);
+                               return;
+                       }
+                       e->Ind = 0;
+                       break;
+               case IDI_SYNC_REQ_GET_FEATURES:
+                       if (IoAdapter)
+                       {
+                               syncReq->GetFeatures.features =
+                                       (unsigned short)IoAdapter->features;
+                               return;
+                       }
+                       syncReq->GetFeatures.features = 0;
+                       break;
+               case IDI_SYNC_REQ_PORTDRV_HOOK:
+                       if (IoAdapter)
+                       {
+                               DBG_TRC(("Xdi:IDI_SYNC_REQ_PORTDRV_HOOK - ignored"))
+                                       return;
+                       }
+                       break;
+               }
+               if (IoAdapter)
+               {
+                       return;
+               }
      }
      DBG_TRC(("xdi: Id 0x%x / Req 0x%x / Rc 0x%x", e->Id, e->Req, e->Rc))
              if (!IoAdapter)
              {
+                       DBG_FTL(("xdi: uninitialized Adapter used - ignore request"))
+                               return;
              }
      diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
 /*
  * assign an entity
  */
if ( !(e->Id &0x1f) )
- {
-  if ( IoAdapter->e_count >= IoAdapter->e_max )
-  {
-   DBG_FTL(("xdi: all Ids in use (max=%d) --> Req ignored",
-            IoAdapter->e_max))
-   diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
-   return ;
-  }
      if (!(e->Id & 0x1f))
      {
+               if (IoAdapter->e_count >= IoAdapter->e_max)
+               {
+                       DBG_FTL(("xdi: all Ids in use (max=%d) --> Req ignored",
+                                IoAdapter->e_max))
+                               diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
+                       return;
+               }
 /*
  * find a new free id
  */
-  for ( i = 1 ; IoAdapter->e_tbl[i].e ; ++i ) ;
-  IoAdapter->e_tbl[i].e = e ;
-  IoAdapter->e_count++ ;
-  e->No = (byte)i ;
-  e->More = 0 ;
-  e->RCurrent = 0xff ;
- }
- else
- {
-  i = e->No ;
- }
+               for (i = 1; IoAdapter->e_tbl[i].e; ++i);
+               IoAdapter->e_tbl[i].e = e;
+               IoAdapter->e_count++;
+               e->No = (byte)i;
+               e->More = 0;
+               e->RCurrent = 0xff;
      }
      else
      {
+               i = e->No;
      }
 /*
  * if the entity is still busy, ignore the request call
  */
if ( e->More & XBUSY )
- {
-  DBG_FTL(("xdi: Id 0x%x busy --> Req 0x%x ignored", e->Id, e->Req))
-  if ( !IoAdapter->trapped && IoAdapter->trapFnc )
-  {
-   IoAdapter->trapFnc (IoAdapter) ;
-      /*
-        Firs trap, also notify user if supported
-       */
-      if (IoAdapter->trapped && IoAdapter->os_trap_nfy_Fnc) {
-        (*(IoAdapter->os_trap_nfy_Fnc))(IoAdapter, IoAdapter->ANum);
-      }
-  }
-  diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
-  return ;
- }
      if (e->More & XBUSY)
      {
+               DBG_FTL(("xdi: Id 0x%x busy --> Req 0x%x ignored", e->Id, e->Req))
+                       if (!IoAdapter->trapped && IoAdapter->trapFnc)
+                       {
+                               IoAdapter->trapFnc(IoAdapter);
+                               /*
+                                 Firs trap, also notify user if supported
+                               */
+                               if (IoAdapter->trapped && IoAdapter->os_trap_nfy_Fnc) {
+                                       (*(IoAdapter->os_trap_nfy_Fnc))(IoAdapter, IoAdapter->ANum);
+                               }
+                       }
+               diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
+               return;
      }
 /*
  * initialize transmit status variables
  */
e->More |= XBUSY ;
e->More &= ~XMOREF ;
e->XCurrent = 0 ;
e->XOffset = 0 ;
      e->More |= XBUSY;
      e->More &= ~XMOREF;
      e->XCurrent = 0;
      e->XOffset = 0;
 /*
  * queue this entity in the adapter request queue
  */
IoAdapter->e_tbl[i].next = 0 ;
if ( IoAdapter->head )
- {
-  IoAdapter->e_tbl[IoAdapter->tail].next = i ;
-  IoAdapter->tail = i ;
- }
- else
- {
-  IoAdapter->head = i ;
-  IoAdapter->tail = i ;
- }
      IoAdapter->e_tbl[i].next = 0;
      if (IoAdapter->head)
      {
+               IoAdapter->e_tbl[IoAdapter->tail].next = i;
+               IoAdapter->tail = i;
      }
      else
      {
+               IoAdapter->head = i;
+               IoAdapter->tail = i;
      }
 /*
  * queue the DPC to process the request
  */
diva_os_schedule_soft_isr (&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
      diva_os_schedule_soft_isr(&IoAdapter->req_soft_isr);
      diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
 }
 /* ---------------------------------------------------------------------
-  Main DPC routine
+   Main DPC routine
    --------------------------------------------------------------------- */
-void DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr, void* Context) {
PISDN_ADAPTER IoAdapter  = (PISDN_ADAPTER)Context ;
ADAPTER* a        = &IoAdapter->a ;
diva_os_atomic_t* pin_dpc = &IoAdapter->in_dpc;
if (diva_os_atomic_increment (pin_dpc) == 1) {
-  do {
-   if ( IoAdapter->tst_irq (a) )
-   {
-    if ( !IoAdapter->Unavailable )
-     IoAdapter->dpc (a) ;
-    IoAdapter->clr_irq (a) ;
-   }
-   IoAdapter->out (a) ;
-  } while (diva_os_atomic_decrement (pin_dpc) > 0);
-  /* ----------------------------------------------------------------
-    Look for XLOG request (cards with indirect addressing)
-    ---------------------------------------------------------------- */
-  if (IoAdapter->pcm_pending) {
-   struct pc_maint *pcm;
-   diva_os_spin_lock_magic_t OldIrql ;
-   diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
-                &OldIrql,
-                "data_dpc");
-   pcm = (struct pc_maint *)IoAdapter->pcm_data;
-   switch (IoAdapter->pcm_pending) {
-    case 1: /* ask card for XLOG */
-     a->ram_out (a, &IoAdapter->pcm->rc, 0) ;
-     a->ram_out (a, &IoAdapter->pcm->req, pcm->req) ;
-     IoAdapter->pcm_pending = 2;
-     break;
-    case 2: /* Try to get XLOG from the card */
-     if ((int)(a->ram_in (a, &IoAdapter->pcm->rc))) {
-      a->ram_in_buffer (a, IoAdapter->pcm, pcm, sizeof(*pcm)) ;
-      IoAdapter->pcm_pending = 3;
-     }
-     break;
-    case 3: /* let XDI recovery XLOG */
-     break;
-   }
-   diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
-                &OldIrql,
-                "data_dpc");
-  }
-  /* ---------------------------------------------------------------- */
- }
+void DIDpcRoutine(struct _diva_os_soft_isr *psoft_isr, void *Context) {
      PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)Context;
      ADAPTER *a = &IoAdapter->a;
      diva_os_atomic_t *pin_dpc = &IoAdapter->in_dpc;
      if (diva_os_atomic_increment(pin_dpc) == 1) {
+               do {
+                       if (IoAdapter->tst_irq(a))
+                       {
+                               if (!IoAdapter->Unavailable)
+                                       IoAdapter->dpc(a);
+                               IoAdapter->clr_irq(a);
+                       }
+                       IoAdapter->out(a);
+               } while (diva_os_atomic_decrement(pin_dpc) > 0);
+               /* ----------------------------------------------------------------
+                  Look for XLOG request (cards with indirect addressing)
+                  ---------------------------------------------------------------- */
+               if (IoAdapter->pcm_pending) {
+                       struct pc_maint *pcm;
+                       diva_os_spin_lock_magic_t OldIrql;
+                       diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
+                                               &OldIrql,
+                                               "data_dpc");
+                       pcm = (struct pc_maint *)IoAdapter->pcm_data;
+                       switch (IoAdapter->pcm_pending) {
+                       case 1: /* ask card for XLOG */
+                               a->ram_out(a, &IoAdapter->pcm->rc, 0);
+                               a->ram_out(a, &IoAdapter->pcm->req, pcm->req);
+                               IoAdapter->pcm_pending = 2;
+                               break;
+                       case 2: /* Try to get XLOG from the card */
+                               if ((int)(a->ram_in(a, &IoAdapter->pcm->rc))) {
+                                       a->ram_in_buffer(a, IoAdapter->pcm, pcm, sizeof(*pcm));
+                                       IoAdapter->pcm_pending = 3;
+                               }
+                               break;
+                       case 3: /* let XDI recovery XLOG */
+                               break;
+                       }
+                       diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
+                                               &OldIrql,
+                                               "data_dpc");
+               }
+               /* ---------------------------------------------------------------- */
      }
 }
 /* --------------------------------------------------------------------------
-  XLOG interface
-  -------------------------------------------------------------------------- */
+   XLOG interface
+   -------------------------------------------------------------------------- */
 static void
-pcm_req (PISDN_ADAPTER IoAdapter, ENTITY *e)
+pcm_req(PISDN_ADAPTER IoAdapter, ENTITY *e)
 {
diva_os_spin_lock_magic_t OldIrql ;
int              i, rc ;
ADAPTER         *a = &IoAdapter->a ;
struct pc_maint *pcm = (struct pc_maint *)&e->Ind ;
      diva_os_spin_lock_magic_t OldIrql;
      int              i, rc;
      ADAPTER         *a = &IoAdapter->a;
      struct pc_maint *pcm = (struct pc_maint *)&e->Ind;
 /*
  * special handling of I/O based card interface
  * the memory access isn't an atomic operation !
  */
if ( IoAdapter->Properties.Card == CARD_MAE )
- {
-  diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
-               &OldIrql,
-               "data_pcm_1");
-  IoAdapter->pcm_data = (void *)pcm;
-  IoAdapter->pcm_pending = 1;
-  diva_os_schedule_soft_isr (&IoAdapter->req_soft_isr);
-  diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
-               &OldIrql,
-               "data_pcm_1");
-  for ( rc = 0, i = (IoAdapter->trapped ? 3000 : 250) ; !rc && (i > 0) ; --i )
-  {
-   diva_os_sleep (1) ;
-   if (IoAdapter->pcm_pending == 3) {
-    diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
-                 &OldIrql,
-                 "data_pcm_3");
-    IoAdapter->pcm_pending = 0;
-    IoAdapter->pcm_data    = NULL ;
-    diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
-                 &OldIrql,
-                 "data_pcm_3");
-    return ;
-   }
-   diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
-                &OldIrql,
-                "data_pcm_2");
-   diva_os_schedule_soft_isr (&IoAdapter->req_soft_isr);
-   diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
-                &OldIrql,
-                "data_pcm_2");
-  }
-  diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
-               &OldIrql,
-               "data_pcm_4");
-  IoAdapter->pcm_pending = 0;
-  IoAdapter->pcm_data    = NULL ;
-  diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
-               &OldIrql,
-               "data_pcm_4");
-  goto Trapped ;
- }
      if (IoAdapter->Properties.Card == CARD_MAE)
      {
+               diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
+                                       &OldIrql,
+                                       "data_pcm_1");
+               IoAdapter->pcm_data = (void *)pcm;
+               IoAdapter->pcm_pending = 1;
+               diva_os_schedule_soft_isr(&IoAdapter->req_soft_isr);
+               diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
+                                       &OldIrql,
+                                       "data_pcm_1");
+               for (rc = 0, i = (IoAdapter->trapped ? 3000 : 250); !rc && (i > 0); --i)
+               {
+                       diva_os_sleep(1);
+                       if (IoAdapter->pcm_pending == 3) {
+                               diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
+                                                       &OldIrql,
+                                                       "data_pcm_3");
+                               IoAdapter->pcm_pending = 0;
+                               IoAdapter->pcm_data    = NULL;
+                               diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
+                                                       &OldIrql,
+                                                       "data_pcm_3");
+                               return;
+                       }
+                       diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
+                                               &OldIrql,
+                                               "data_pcm_2");
+                       diva_os_schedule_soft_isr(&IoAdapter->req_soft_isr);
+                       diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
+                                               &OldIrql,
+                                               "data_pcm_2");
+               }
+               diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
+                                       &OldIrql,
+                                       "data_pcm_4");
+               IoAdapter->pcm_pending = 0;
+               IoAdapter->pcm_data    = NULL;
+               diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
+                                       &OldIrql,
+                                       "data_pcm_4");
+               goto Trapped;
      }
 /*
  * memory based shared ram is accessible from different
  * processors without disturbing concurrent processes.
  */
a->ram_out (a, &IoAdapter->pcm->rc, 0) ;
a->ram_out (a, &IoAdapter->pcm->req, pcm->req) ;
for ( i = (IoAdapter->trapped ? 3000 : 250) ; --i > 0 ; )
- {
-  diva_os_sleep (1) ;
-  rc = (int)(a->ram_in (a, &IoAdapter->pcm->rc)) ;
-  if ( rc )
-  {
-   a->ram_in_buffer (a, IoAdapter->pcm, pcm, sizeof(*pcm)) ;
-   return ;
-  }
- }
      a->ram_out(a, &IoAdapter->pcm->rc, 0);
      a->ram_out(a, &IoAdapter->pcm->req, pcm->req);
      for (i = (IoAdapter->trapped ? 3000 : 250); --i > 0;)
      {
+               diva_os_sleep(1);
+               rc = (int)(a->ram_in(a, &IoAdapter->pcm->rc));
+               if (rc)
+               {
+                       a->ram_in_buffer(a, IoAdapter->pcm, pcm, sizeof(*pcm));
+                       return;
+               }
      }
 Trapped:
if ( IoAdapter->trapFnc )
- {
-    int trapped = IoAdapter->trapped;
-  IoAdapter->trapFnc (IoAdapter) ;
-    /*
-      Firs trap, also notify user if supported
-     */
-    if (!trapped && IoAdapter->trapped && IoAdapter->os_trap_nfy_Fnc) {
-      (*(IoAdapter->os_trap_nfy_Fnc))(IoAdapter, IoAdapter->ANum);
-    }
- }
      if (IoAdapter->trapFnc)
      {
+               int trapped = IoAdapter->trapped;
+               IoAdapter->trapFnc(IoAdapter);
+               /*
+                 Firs trap, also notify user if supported
+               */
+               if (!trapped && IoAdapter->trapped && IoAdapter->os_trap_nfy_Fnc) {
+                       (*(IoAdapter->os_trap_nfy_Fnc))(IoAdapter, IoAdapter->ANum);
+               }
      }
 }
 /*------------------------------------------------------------------*/
 /* ram access functions for memory mapped cards                     */
 /*------------------------------------------------------------------*/
-byte mem_in (ADAPTER *a, void *addr)
+byte mem_in(ADAPTER *a, void *addr)
 {
- byte val;
- volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- val = READ_BYTE(Base + (unsigned long)addr);
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
- return (val);
      byte val;
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      val = READ_BYTE(Base + (unsigned long)addr);
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      return (val);
 }
-word mem_inw (ADAPTER *a, void *addr)
+word mem_inw(ADAPTER *a, void *addr)
 {
- word val;
- volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- val = READ_WORD((Base + (unsigned long)addr));
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
- return (val);
      word val;
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      val = READ_WORD((Base + (unsigned long)addr));
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      return (val);
 }
-void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords)
+void mem_in_dw(ADAPTER *a, void *addr, dword *data, int dwords)
 {
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- while (dwords--) {
-  *data++ = READ_DWORD((Base + (unsigned long)addr));
-  addr+=4;
- }
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      while (dwords--) {
+               *data++ = READ_DWORD((Base + (unsigned long)addr));
+               addr += 4;
      }
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
-void mem_in_buffer (ADAPTER *a, void *addr, void *buffer, word length)
+void mem_in_buffer(ADAPTER *a, void *addr, void *buffer, word length)
 {
- volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- memcpy_fromio(buffer, (Base + (unsigned long)addr), length);
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      memcpy_fromio(buffer, (Base + (unsigned long)addr), length);
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
-void mem_look_ahead (ADAPTER *a, PBUFFER *RBuffer, ENTITY *e)
+void mem_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e)
 {
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io ;
IoAdapter->RBuffer.length = mem_inw (a, &RBuffer->length) ;
mem_in_buffer (a, RBuffer->P, IoAdapter->RBuffer.P,
-                IoAdapter->RBuffer.length) ;
e->RBuffer = (DBUFFER *)&IoAdapter->RBuffer ;
      PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io;
      IoAdapter->RBuffer.length = mem_inw(a, &RBuffer->length);
      mem_in_buffer(a, RBuffer->P, IoAdapter->RBuffer.P,
+                     IoAdapter->RBuffer.length);
      e->RBuffer = (DBUFFER *)&IoAdapter->RBuffer;
 }
-void mem_out (ADAPTER *a, void *addr, byte data)
+void mem_out(ADAPTER *a, void *addr, byte data)
 {
- volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- WRITE_BYTE(Base + (unsigned long)addr, data);
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      WRITE_BYTE(Base + (unsigned long)addr, data);
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
-void mem_outw (ADAPTER *a, void *addr, word data)
+void mem_outw(ADAPTER *a, void *addr, word data)
 {
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- WRITE_WORD((Base + (unsigned long)addr), data);
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      WRITE_WORD((Base + (unsigned long)addr), data);
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
-void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords)
+void mem_out_dw(ADAPTER *a, void *addr, const dword *data, int dwords)
 {
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- while (dwords--) {
-       WRITE_DWORD((Base + (unsigned long)addr), *data);
-       addr+=4;
-       data++;
- }
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      while (dwords--) {
+               WRITE_DWORD((Base + (unsigned long)addr), *data);
+               addr += 4;
+               data++;
      }
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
-void mem_out_buffer (ADAPTER *a, void *addr, void *buffer, word length)
+void mem_out_buffer(ADAPTER *a, void *addr, void *buffer, word length)
 {
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
memcpy_toio((Base + (unsigned long)addr), buffer, length) ;
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      memcpy_toio((Base + (unsigned long)addr), buffer, length);
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
-void mem_inc (ADAPTER *a, void *addr)
+void mem_inc(ADAPTER *a, void *addr)
 {
- volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
- byte  x = READ_BYTE(Base + (unsigned long)addr);
- WRITE_BYTE(Base + (unsigned long)addr, x + 1);
- DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
      volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
      byte  x = READ_BYTE(Base + (unsigned long)addr);
      WRITE_BYTE(Base + (unsigned long)addr, x + 1);
      DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
 }
 /*------------------------------------------------------------------*/
 /* ram access functions for io-mapped cards                         */
 /*------------------------------------------------------------------*/
-byte io_in(ADAPTER * a, void * adr)
-{
-  byte val;
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  outppw(Port + 4, (word)(unsigned long)adr);
-  val = inpp(Port);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-  return(val);
-}
-word io_inw(ADAPTER * a, void * adr)
-{
-  word val;
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  outppw(Port + 4, (word)(unsigned long)adr);
-  val = inppw(Port);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-  return(val);
-}
-void io_in_buffer(ADAPTER * a, void * adr, void * buffer, word len)
-{
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  byte* P = (byte*)buffer;
-  if ((long)adr & 1) {
-    outppw(Port+4, (word)(unsigned long)adr);
-    *P = inpp(Port);
-    P++;
-    adr = ((byte *) adr) + 1;
-    len--;
-    if (!len) {
+byte io_in(ADAPTER *a, void *adr)
+{
+       byte val;
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       outppw(Port + 4, (word)(unsigned long)adr);
+       val = inpp(Port);
+       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+       return (val);
+}
+word io_inw(ADAPTER *a, void *adr)
+{
+       word val;
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       outppw(Port + 4, (word)(unsigned long)adr);
+       val = inppw(Port);
+       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+       return (val);
+}
+void io_in_buffer(ADAPTER *a, void *adr, void *buffer, word len)
+{
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       byte *P = (byte *)buffer;
+       if ((long)adr & 1) {
+               outppw(Port + 4, (word)(unsigned long)adr);
+               *P = inpp(Port);
+               P++;
+               adr = ((byte *) adr) + 1;
+               len--;
+               if (!len) {
+                       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+                       return;
+               }
+       }
+       outppw(Port + 4, (word)(unsigned long)adr);
+       inppw_buffer(Port, P, len + 1);
+       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+}
+void io_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e)
+{
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       outppw(Port + 4, (word)(unsigned long)RBuffer);
+       ((PISDN_ADAPTER)a->io)->RBuffer.length = inppw(Port);
+       inppw_buffer(Port, ((PISDN_ADAPTER)a->io)->RBuffer.P, ((PISDN_ADAPTER)a->io)->RBuffer.length + 1);
+       e->RBuffer = (DBUFFER *) &(((PISDN_ADAPTER)a->io)->RBuffer);
        DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-       return;
-    }
-  }
-  outppw(Port+4, (word)(unsigned long)adr);
-  inppw_buffer (Port, P, len+1);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-}
-void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e)
-{
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  outppw(Port+4, (word)(unsigned long)RBuffer);
-  ((PISDN_ADAPTER)a->io)->RBuffer.length = inppw(Port);
-  inppw_buffer (Port, ((PISDN_ADAPTER)a->io)->RBuffer.P, ((PISDN_ADAPTER)a->io)->RBuffer.length + 1);
-  e->RBuffer = (DBUFFER *) &(((PISDN_ADAPTER)a->io)->RBuffer);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-}
-void io_out(ADAPTER * a, void * adr, byte data)
-{
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  outppw(Port+4, (word)(unsigned long)adr);
-  outpp(Port, data);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-}
-void io_outw(ADAPTER * a, void * adr, word data)
-{
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  outppw(Port+4, (word)(unsigned long)adr);
-  outppw(Port, data);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-}
-void io_out_buffer(ADAPTER * a, void * adr, void * buffer, word len)
-{
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  byte* P = (byte*)buffer;
-  if ((long)adr & 1) {
-    outppw(Port+4, (word)(unsigned long)adr);
-    outpp(Port, *P);
-    P++;
-    adr = ((byte *) adr) + 1;
-    len--;
-    if (!len) {
+}
+void io_out(ADAPTER *a, void *adr, byte data)
+{
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       outppw(Port + 4, (word)(unsigned long)adr);
+       outpp(Port, data);
+       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+}
+void io_outw(ADAPTER *a, void *adr, word data)
+{
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       outppw(Port + 4, (word)(unsigned long)adr);
+       outppw(Port, data);
+       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+}
+void io_out_buffer(ADAPTER *a, void *adr, void *buffer, word len)
+{
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       byte *P = (byte *)buffer;
+       if ((long)adr & 1) {
+               outppw(Port + 4, (word)(unsigned long)adr);
+               outpp(Port, *P);
+               P++;
+               adr = ((byte *) adr) + 1;
+               len--;
+               if (!len) {
+                       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+                       return;
+               }
+       }
+       outppw(Port + 4, (word)(unsigned long)adr);
+       outppw_buffer(Port, P, len + 1);
+       DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
+}
+void io_inc(ADAPTER *a, void *adr)
+{
+       byte x;
+       byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
+       outppw(Port + 4, (word)(unsigned long)adr);
+       x = inpp(Port);
+       outppw(Port + 4, (word)(unsigned long)adr);
+       outpp(Port, x + 1);
        DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-       return;
-    }
-  }
-  outppw(Port+4, (word)(unsigned long)adr);
-  outppw_buffer (Port, P, len+1);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
-}
-void io_inc(ADAPTER * a, void * adr)
-{
-  byte x;
-  byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
-  outppw(Port+4, (word)(unsigned long)adr);
-  x = inpp(Port);
-  outppw(Port+4, (word)(unsigned long)adr);
-  outpp(Port, x+1);
-  DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
 }
 /*------------------------------------------------------------------*/
 /* OS specific functions related to queuing of entities             */
 /*------------------------------------------------------------------*/
-void free_entity(ADAPTER * a, byte e_no)
-{
-  PISDN_ADAPTER IoAdapter;
- diva_os_spin_lock_magic_t irql;
-  IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_free");
-  IoAdapter->e_tbl[e_no].e = NULL;
-  IoAdapter->e_count--;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_free");
-}
-void assign_queue(ADAPTER * a, byte e_no, word ref)
-{
-  PISDN_ADAPTER IoAdapter;
- diva_os_spin_lock_magic_t irql;
-  IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_assign");
-  IoAdapter->e_tbl[e_no].assign_ref = ref;
-  IoAdapter->e_tbl[e_no].next = (byte)IoAdapter->assign;
-  IoAdapter->assign = e_no;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_assign");
-}
-byte get_assign(ADAPTER * a, word ref)
-{
-  PISDN_ADAPTER IoAdapter;
- diva_os_spin_lock_magic_t irql;
-  byte e_no;
-  IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
-              &irql,
-              "data_assign_get");
-  for(e_no = (byte)IoAdapter->assign;
-      e_no && IoAdapter->e_tbl[e_no].assign_ref!=ref;
-      e_no = IoAdapter->e_tbl[e_no].next);
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
-              &irql,
-              "data_assign_get");
-  return e_no;
-}
-void req_queue(ADAPTER * a, byte e_no)
-{
-  PISDN_ADAPTER IoAdapter;
- diva_os_spin_lock_magic_t irql;
-  IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_q");
-  IoAdapter->e_tbl[e_no].next = 0;
-  if(IoAdapter->head) {
-    IoAdapter->e_tbl[IoAdapter->tail].next = e_no;
-    IoAdapter->tail = e_no;
-  }
-  else {
-    IoAdapter->head = e_no;
-    IoAdapter->tail = e_no;
-  }
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_q");
-}
-byte look_req(ADAPTER * a)
-{
-  PISDN_ADAPTER IoAdapter;
-  IoAdapter = (PISDN_ADAPTER) a->io;
-  return ((byte)IoAdapter->head) ;
-}
-void next_req(ADAPTER * a)
-{
-  PISDN_ADAPTER IoAdapter;
- diva_os_spin_lock_magic_t irql;
-  IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_next");
-  IoAdapter->head = IoAdapter->e_tbl[IoAdapter->head].next;
-  if(!IoAdapter->head) IoAdapter->tail = 0;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_next");
+void free_entity(ADAPTER *a, byte e_no)
+{
+       PISDN_ADAPTER IoAdapter;
      diva_os_spin_lock_magic_t irql;
+       IoAdapter = (PISDN_ADAPTER) a->io;
      diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_free");
+       IoAdapter->e_tbl[e_no].e = NULL;
+       IoAdapter->e_count--;
      diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_free");
+}
+void assign_queue(ADAPTER *a, byte e_no, word ref)
+{
+       PISDN_ADAPTER IoAdapter;
      diva_os_spin_lock_magic_t irql;
+       IoAdapter = (PISDN_ADAPTER) a->io;
      diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_assign");
+       IoAdapter->e_tbl[e_no].assign_ref = ref;
+       IoAdapter->e_tbl[e_no].next = (byte)IoAdapter->assign;
+       IoAdapter->assign = e_no;
      diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_assign");
+}
+byte get_assign(ADAPTER *a, word ref)
+{
+       PISDN_ADAPTER IoAdapter;
      diva_os_spin_lock_magic_t irql;
+       byte e_no;
+       IoAdapter = (PISDN_ADAPTER) a->io;
      diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
+                               &irql,
+                               "data_assign_get");
+       for (e_no = (byte)IoAdapter->assign;
+           e_no && IoAdapter->e_tbl[e_no].assign_ref != ref;
+           e_no = IoAdapter->e_tbl[e_no].next);
      diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
+                               &irql,
+                               "data_assign_get");
+       return e_no;
+}
+void req_queue(ADAPTER *a, byte e_no)
+{
+       PISDN_ADAPTER IoAdapter;
      diva_os_spin_lock_magic_t irql;
+       IoAdapter = (PISDN_ADAPTER) a->io;
      diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_q");
+       IoAdapter->e_tbl[e_no].next = 0;
+       if (IoAdapter->head) {
+               IoAdapter->e_tbl[IoAdapter->tail].next = e_no;
+               IoAdapter->tail = e_no;
+       }
+       else {
+               IoAdapter->head = e_no;
+               IoAdapter->tail = e_no;
+       }
      diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_q");
+}
+byte look_req(ADAPTER *a)
+{
+       PISDN_ADAPTER IoAdapter;
+       IoAdapter = (PISDN_ADAPTER) a->io;
+       return ((byte)IoAdapter->head);
+}
+void next_req(ADAPTER *a)
+{
+       PISDN_ADAPTER IoAdapter;
      diva_os_spin_lock_magic_t irql;
+       IoAdapter = (PISDN_ADAPTER) a->io;
      diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_next");
+       IoAdapter->head = IoAdapter->e_tbl[IoAdapter->head].next;
+       if (!IoAdapter->head) IoAdapter->tail = 0;
      diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_next");
 }
 /*------------------------------------------------------------------*/
 /* memory map functions                                             */
 /*------------------------------------------------------------------*/
-ENTITY * entity_ptr(ADAPTER * a, byte e_no)
+ENTITY *entity_ptr(ADAPTER *a, byte e_no)
 {
-  PISDN_ADAPTER IoAdapter;
-  IoAdapter = (PISDN_ADAPTER) a->io;
-  return (IoAdapter->e_tbl[e_no].e);
+       PISDN_ADAPTER IoAdapter;
+       IoAdapter = (PISDN_ADAPTER)a->io;
+       return (IoAdapter->e_tbl[e_no].e);
 }
-void * PTR_X(ADAPTER * a, ENTITY * e)
+void *PTR_X(ADAPTER *a, ENTITY *e)
 {
-  return ((void *) e->X);
+       return ((void *) e->X);
 }
-void * PTR_R(ADAPTER * a, ENTITY * e)
+void *PTR_R(ADAPTER *a, ENTITY *e)
 {
-  return ((void *) e->R);
+       return ((void *) e->R);
 }
-void * PTR_P(ADAPTER * a, ENTITY * e, void * P)
+void *PTR_P(ADAPTER *a, ENTITY *e, void *P)
 {
-  return P;
+       return P;
 }
-void CALLBACK(ADAPTER * a, ENTITY * e)
+void CALLBACK(ADAPTER *a, ENTITY *e)
 {
if ( e && e->callback )
-  e->callback (e) ;
      if (e && e->callback)
+               e->callback(e);
 }
index a6f1755..01deced 100644 (file)
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_XDI_COMMON_IO_H_INC__ /* { */
 #define __DIVA_XDI_COMMON_IO_H_INC__
 /*
- maximum = 16 adapters
- */
 maximum = 16 adapters
+*/
 #define DI_MAX_LINKS    MAX_ADAPTER
 #define ISDN_MAX_NUM_LEN 60
 /* --------------------------------------------------------------------------
-  structure for quadro card management (obsolete for
-  systems that do provide per card load event)
-  -------------------------------------------------------------------------- */
+   structure for quadro card management (obsolete for
+   systems that do provide per card load event)
+   -------------------------------------------------------------------------- */
 typedef struct {
dword         Num ;
DEVICE_NAME   DeviceName[4] ;
PISDN_ADAPTER QuadroAdapter[4] ;
-} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY ;
      dword         Num;
      DEVICE_NAME   DeviceName[4];
      PISDN_ADAPTER QuadroAdapter[4];
+} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY;
 /* --------------------------------------------------------------------------
-  Special OS memory support structures
-  -------------------------------------------------------------------------- */
+   Special OS memory support structures
+   -------------------------------------------------------------------------- */
 #define MAX_MAPPED_ENTRIES 8
 typedef struct {
void  * Address;
- dword    Length;
-} ADAPTER_MEMORY ;
      void *Address;
      dword    Length;
+} ADAPTER_MEMORY;
 /* --------------------------------------------------------------------------
-  Configuration of XDI clients carried by XDI
-  -------------------------------------------------------------------------- */
+   Configuration of XDI clients carried by XDI
+   -------------------------------------------------------------------------- */
 #define DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON      0x01
 #define DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON 0x02
 typedef struct _diva_xdi_capi_cfg {
-  byte cfg_1;
+       byte cfg_1;
 } diva_xdi_capi_cfg_t;
 /* --------------------------------------------------------------------------
-  Main data structure kept per adapter
-  -------------------------------------------------------------------------- */
+   Main data structure kept per adapter
+   -------------------------------------------------------------------------- */
 struct _ISDN_ADAPTER {
void             (* DIRequest)(PISDN_ADAPTER, ENTITY *) ;
int                 State ; /* from NT4 1.srv, a good idea, but  a poor achievement */
int                 Initialized ;
int         RegisteredWithDidd ;
int                 Unavailable ;  /* callback function possible? */
int         ResourcesClaimed ;
int         PnpBiosConfigUsed ;
dword        Logging ;
dword        features ;
char        ProtocolIdString[80] ;
- /*
-  remember mapped memory areas
- */
ADAPTER_MEMORY     MappedMemory[MAX_MAPPED_ENTRIES] ;
CARD_PROPERTIES     Properties ;
dword               cardType ;
dword               protocol_id ;       /* configured protocol identifier */
char                protocol_name[8] ;  /* readable name of protocol */
dword               BusType ;
dword               BusNumber ;
dword               slotNumber ;
dword               slotId ;
dword               ControllerNumber ;  /* for QUADRO cards only */
PISDN_ADAPTER       MultiMaster ;       /* for 4-BRI card only - use MultiMaster or QuadroList */
PADAPTER_LIST_ENTRY QuadroList ;        /* for QUADRO card  only */
PDEVICE_OBJECT      DeviceObject ;
dword               DeviceId ;
- diva_os_adapter_irq_info_t irq_info;
dword volatile      IrqCount ;
int                 trapped ;
dword               DspCodeBaseAddr ;
dword               MaxDspCodeSize ;
dword               downloadAddr ;
dword               DspCodeBaseAddrTable[4] ; /* add. for MultiMaster */
dword               MaxDspCodeSizeTable[4] ; /* add. for MultiMaster */
dword               downloadAddrTable[4] ; /* add. for MultiMaster */
dword               MemoryBase ;
dword               MemorySize ;
byte                __iomem *Address ;
byte                __iomem *Config ;
byte                __iomem *Control ;
byte                __iomem *reset ;
byte                __iomem *port ;
byte                __iomem *ram ;
byte                __iomem *cfg ;
byte                __iomem *prom ;
byte                __iomem *ctlReg ;
struct pc_maint  *pcm ;
- diva_os_dependent_devica_name_t os_name;
byte                Name[32] ;
dword               serialNo ;
dword               ANum ;
dword               ArchiveType ; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */
char               *ProtocolSuffix ; /* internal protocolfile table */
char                Archive[32] ;
char                Protocol[32] ;
char                AddDownload[32] ; /* Dsp- or other additional download files */
char                Oad1[ISDN_MAX_NUM_LEN] ;
char                Osa1[ISDN_MAX_NUM_LEN] ;
char                Oad2[ISDN_MAX_NUM_LEN] ;
char                Osa2[ISDN_MAX_NUM_LEN] ;
char                Spid1[ISDN_MAX_NUM_LEN] ;
char                Spid2[ISDN_MAX_NUM_LEN] ;
-  byte                nosig ;
-  byte                BriLayer2LinkCount ; /* amount of TEI's that adapter will support in P2MP mode */
dword               Channels ;
dword               tei ;
dword               nt2 ;
dword               TerminalCount ;
dword               WatchDog ;
dword               Permanent ;
dword               BChMask ; /* B channel mask for unchannelized modes */
dword               StableL2 ;
dword               DidLen ;
dword               NoOrderCheck ;
dword               ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */
dword               SigFlags ;
dword               LowChannel ;
dword               NoHscx30 ;
dword               ProtVersion ;
dword               crc4 ;
dword               L1TristateOrQsig ; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/
dword               InitialDspInfo ;
dword               ModemGuardTone ;
dword               ModemMinSpeed ;
dword               ModemMaxSpeed ;
dword               ModemOptions ;
dword               ModemOptions2 ;
dword               ModemNegotiationMode ;
dword               ModemModulationsMask ;
dword               ModemTransmitLevel ;
dword               FaxOptions ;
dword               FaxMaxSpeed ;
dword               Part68LevelLimiter ;
dword               UsEktsNumCallApp ;
byte                UsEktsFeatAddConf ;
byte                UsEktsFeatRemoveConf ;
byte                UsEktsFeatCallTransfer ;
byte                UsEktsFeatMsgWaiting ;
byte                QsigDialect;
byte                ForceVoiceMailAlert;
byte                DisableAutoSpid;
byte                ModemCarrierWaitTimeSec;
byte                ModemCarrierLossWaitTimeTenthSec;
byte                PiafsLinkTurnaroundInFrames;
byte                DiscAfterProgress;
byte                AniDniLimiter[3];
byte                TxAttenuation;  /* PRI/E1 only: attenuate TX signal */
word                QsigFeatures;
dword               GenerateRingtone ;
dword               SupplementaryServicesFeatures;
dword               R2Dialect;
dword               R2CasOptions;
dword               FaxV34Options;
dword               DisabledDspMask;
dword               AdapterTestMask;
dword               DspImageLength;
word                AlertToIn20mSecTicks;
word                ModemEyeSetup;
byte                R2CtryLength;
byte                CCBSRelTimer;
byte               *PcCfgBufferFile;/* flexible parameter via file */
byte               *PcCfgBuffer ; /* flexible parameter via multistring */
- diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */
diva_os_board_trace_t board_trace ; /* traces from the board */
- diva_os_spin_lock_t isr_spin_lock;
- diva_os_spin_lock_t data_spin_lock;
- diva_os_soft_isr_t req_soft_isr;
- diva_os_soft_isr_t isr_soft_isr;
- diva_os_atomic_t  in_dpc;
PBUFFER             RBuffer;        /* Copy of receive lookahead buffer */
word                e_max;
word                e_count;
E_INFO             *e_tbl;
word                assign;         /* list of pending ASSIGNs  */
word                head;           /* head of request queue    */
word                tail;           /* tail of request queue    */
ADAPTER             a ;             /* not a separate structure */
void        (* out)(ADAPTER * a) ;
byte        (* dpc)(ADAPTER * a) ;
byte        (* tst_irq)(ADAPTER * a) ;
void        (* clr_irq)(ADAPTER * a) ;
int         (* load)(PISDN_ADAPTER) ;
int         (* mapmem)(PISDN_ADAPTER) ;
int         (* chkIrq)(PISDN_ADAPTER) ;
void        (* disIrq)(PISDN_ADAPTER) ;
void        (* start)(PISDN_ADAPTER) ;
void        (* stop)(PISDN_ADAPTER) ;
void        (* rstFnc)(PISDN_ADAPTER) ;
void        (* trapFnc)(PISDN_ADAPTER) ;
dword            (* DetectDsps)(PISDN_ADAPTER) ;
void        (* os_trap_nfy_Fnc)(PISDN_ADAPTER, dword) ;
- diva_os_isr_callback_t diva_isr_handler;
dword               sdram_bar;  /* must be 32 bit */
dword               fpga_features;
volatile int        pcm_pending;
volatile void *     pcm_data;
- diva_xdi_capi_cfg_t capi_cfg;
dword               tasks;
void               *dma_map;
int             (*DivaAdapterTestProc)(PISDN_ADAPTER);
void               *AdapterTestMemoryStart;
dword               AdapterTestMemoryLength;
const byte* cfg_lib_memory_init;
dword       cfg_lib_memory_init_length;
      void (*DIRequest)(PISDN_ADAPTER, ENTITY *);
      int State; /* from NT4 1.srv, a good idea, but  a poor achievement */
      int Initialized;
      int RegisteredWithDidd;
      int Unavailable;  /* callback function possible? */
      int ResourcesClaimed;
      int PnpBiosConfigUsed;
      dword Logging;
      dword features;
      char ProtocolIdString[80];
      /*
+         remember mapped memory areas
      */
      ADAPTER_MEMORY MappedMemory[MAX_MAPPED_ENTRIES];
      CARD_PROPERTIES Properties;
      dword cardType;
      dword protocol_id;       /* configured protocol identifier */
      char protocol_name[8];  /* readable name of protocol */
      dword BusType;
      dword BusNumber;
      dword slotNumber;
      dword slotId;
      dword ControllerNumber;  /* for QUADRO cards only */
      PISDN_ADAPTER MultiMaster;       /* for 4-BRI card only - use MultiMaster or QuadroList */
      PADAPTER_LIST_ENTRY QuadroList;        /* for QUADRO card  only */
      PDEVICE_OBJECT DeviceObject;
      dword DeviceId;
      diva_os_adapter_irq_info_t irq_info;
      dword volatile IrqCount;
      int trapped;
      dword DspCodeBaseAddr;
      dword MaxDspCodeSize;
      dword downloadAddr;
      dword DspCodeBaseAddrTable[4]; /* add. for MultiMaster */
      dword MaxDspCodeSizeTable[4]; /* add. for MultiMaster */
      dword downloadAddrTable[4]; /* add. for MultiMaster */
      dword MemoryBase;
      dword MemorySize;
      byte __iomem *Address;
      byte __iomem *Config;
      byte __iomem *Control;
      byte __iomem *reset;
      byte __iomem *port;
      byte __iomem *ram;
      byte __iomem *cfg;
      byte __iomem *prom;
      byte __iomem *ctlReg;
      struct pc_maint  *pcm;
      diva_os_dependent_devica_name_t os_name;
      byte Name[32];
      dword serialNo;
      dword ANum;
      dword ArchiveType; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */
      char *ProtocolSuffix; /* internal protocolfile table */
      char Archive[32];
      char Protocol[32];
      char AddDownload[32]; /* Dsp- or other additional download files */
      char Oad1[ISDN_MAX_NUM_LEN];
      char Osa1[ISDN_MAX_NUM_LEN];
      char Oad2[ISDN_MAX_NUM_LEN];
      char Osa2[ISDN_MAX_NUM_LEN];
      char Spid1[ISDN_MAX_NUM_LEN];
      char Spid2[ISDN_MAX_NUM_LEN];
+       byte nosig;
+       byte BriLayer2LinkCount; /* amount of TEI's that adapter will support in P2MP mode */
      dword Channels;
      dword tei;
      dword nt2;
      dword TerminalCount;
      dword WatchDog;
      dword Permanent;
      dword BChMask; /* B channel mask for unchannelized modes */
      dword StableL2;
      dword DidLen;
      dword NoOrderCheck;
      dword ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */
      dword SigFlags;
      dword LowChannel;
      dword NoHscx30;
      dword ProtVersion;
      dword crc4;
      dword L1TristateOrQsig; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/
      dword InitialDspInfo;
      dword ModemGuardTone;
      dword ModemMinSpeed;
      dword ModemMaxSpeed;
      dword ModemOptions;
      dword ModemOptions2;
      dword ModemNegotiationMode;
      dword ModemModulationsMask;
      dword ModemTransmitLevel;
      dword FaxOptions;
      dword FaxMaxSpeed;
      dword Part68LevelLimiter;
      dword UsEktsNumCallApp;
      byte UsEktsFeatAddConf;
      byte UsEktsFeatRemoveConf;
      byte UsEktsFeatCallTransfer;
      byte UsEktsFeatMsgWaiting;
      byte QsigDialect;
      byte ForceVoiceMailAlert;
      byte DisableAutoSpid;
      byte ModemCarrierWaitTimeSec;
      byte ModemCarrierLossWaitTimeTenthSec;
      byte PiafsLinkTurnaroundInFrames;
      byte DiscAfterProgress;
      byte AniDniLimiter[3];
      byte TxAttenuation;  /* PRI/E1 only: attenuate TX signal */
      word QsigFeatures;
      dword GenerateRingtone;
      dword SupplementaryServicesFeatures;
      dword R2Dialect;
      dword R2CasOptions;
      dword FaxV34Options;
      dword DisabledDspMask;
      dword AdapterTestMask;
      dword DspImageLength;
      word AlertToIn20mSecTicks;
      word ModemEyeSetup;
      byte R2CtryLength;
      byte CCBSRelTimer;
      byte *PcCfgBufferFile;/* flexible parameter via file */
      byte *PcCfgBuffer; /* flexible parameter via multistring */
      diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */
      diva_os_board_trace_t board_trace; /* traces from the board */
      diva_os_spin_lock_t isr_spin_lock;
      diva_os_spin_lock_t data_spin_lock;
      diva_os_soft_isr_t req_soft_isr;
      diva_os_soft_isr_t isr_soft_isr;
      diva_os_atomic_t  in_dpc;
      PBUFFER RBuffer;        /* Copy of receive lookahead buffer */
      word e_max;
      word e_count;
      E_INFO *e_tbl;
      word assign;         /* list of pending ASSIGNs  */
      word head;           /* head of request queue    */
      word tail;           /* tail of request queue    */
      ADAPTER a;             /* not a separate structure */
      void (*out)(ADAPTER *a);
      byte (*dpc)(ADAPTER *a);
      byte (*tst_irq)(ADAPTER *a);
      void (*clr_irq)(ADAPTER *a);
      int (*load)(PISDN_ADAPTER);
      int (*mapmem)(PISDN_ADAPTER);
      int (*chkIrq)(PISDN_ADAPTER);
      void (*disIrq)(PISDN_ADAPTER);
      void (*start)(PISDN_ADAPTER);
      void (*stop)(PISDN_ADAPTER);
      void (*rstFnc)(PISDN_ADAPTER);
      void (*trapFnc)(PISDN_ADAPTER);
      dword (*DetectDsps)(PISDN_ADAPTER);
      void (*os_trap_nfy_Fnc)(PISDN_ADAPTER, dword);
      diva_os_isr_callback_t diva_isr_handler;
      dword sdram_bar;  /* must be 32 bit */
      dword fpga_features;
      volatile int pcm_pending;
      volatile void *pcm_data;
      diva_xdi_capi_cfg_t capi_cfg;
      dword tasks;
      void *dma_map;
      int (*DivaAdapterTestProc)(PISDN_ADAPTER);
      void *AdapterTestMemoryStart;
      dword AdapterTestMemoryLength;
      const byte *cfg_lib_memory_init;
      dword cfg_lib_memory_init_length;
 };
 /* ---------------------------------------------------------------------
-  Entity table
+   Entity table
    --------------------------------------------------------------------- */
 struct e_info_s {
-  ENTITY *      e;
-  byte          next;                   /* chaining index           */
-  word          assign_ref;             /* assign reference         */
+       ENTITY *e;
+       byte          next;                   /* chaining index           */
+       word          assign_ref;             /* assign reference         */
 };
 /* ---------------------------------------------------------------------
-  S-cards shared ram structure for loading
+   S-cards shared ram structure for loading
    --------------------------------------------------------------------- */
 struct s_load {
- byte ctrl;
- byte card;
- byte msize;
- byte fill0;
- word ebit;
- word elocl;
- word eloch;
- byte reserved[20];
- word signature;
- byte fill[224];
- byte b[256];
      byte ctrl;
      byte card;
      byte msize;
      byte fill0;
      word ebit;
      word elocl;
      word eloch;
      byte reserved[20];
      word signature;
      byte fill[224];
      byte b[256];
 };
 #define PR_RAM  ((struct pr_ram *)0)
 #define RAM ((struct dual *)0)
 /* ---------------------------------------------------------------------
-  platform specific conversions
+   platform specific conversions
    --------------------------------------------------------------------- */
-extern void * PTR_P(ADAPTER * a, ENTITY * e, void * P);
-extern void * PTR_X(ADAPTER * a, ENTITY * e);
-extern void * PTR_R(ADAPTER * a, ENTITY * e);
-extern void CALLBACK(ADAPTER * a, ENTITY * e);
-extern void set_ram(void * * adr_ptr);
+extern void *PTR_P(ADAPTER *a, ENTITY *e, void *P);
+extern void *PTR_X(ADAPTER *a, ENTITY *e);
+extern void *PTR_R(ADAPTER *a, ENTITY *e);
+extern void CALLBACK(ADAPTER *a, ENTITY *e);
+extern void set_ram(void **adr_ptr);
 /* ---------------------------------------------------------------------
-  ram access functions for io mapped cards
+   ram access functions for io mapped cards
    --------------------------------------------------------------------- */
-byte io_in(ADAPTER * a, void * adr);
-word io_inw(ADAPTER * a, void * adr);
-void io_in_buffer(ADAPTER * a, void * adr, void * P, word length);
-void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
-void io_out(ADAPTER * a, void * adr, byte data);
-void io_outw(ADAPTER * a, void * adr, word data);
-void io_out_buffer(ADAPTER * a, void * adr, void * P, word length);
-void io_inc(ADAPTER * a, void * adr);
-void bri_in_buffer (PISDN_ADAPTER IoAdapter, dword Pos,
-                    void *Buf, dword Len);
-int bri_out_buffer (PISDN_ADAPTER IoAdapter, dword Pos,
-                    void *Buf, dword Len, int Verify);
+byte io_in(ADAPTER *a, void *adr);
+word io_inw(ADAPTER *a, void *adr);
+void io_in_buffer(ADAPTER *a, void *adr, void *P, word length);
+void io_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
+void io_out(ADAPTER *a, void *adr, byte data);
+void io_outw(ADAPTER *a, void *adr, word data);
+void io_out_buffer(ADAPTER *a, void *adr, void *P, word length);
+void io_inc(ADAPTER *a, void *adr);
+void bri_in_buffer(PISDN_ADAPTER IoAdapter, dword Pos,
+                  void *Buf, dword Len);
+int bri_out_buffer(PISDN_ADAPTER IoAdapter, dword Pos,
+                  void *Buf, dword Len, int Verify);
 /* ---------------------------------------------------------------------
-  ram access functions for memory mapped cards
+   ram access functions for memory mapped cards
    --------------------------------------------------------------------- */
-byte mem_in(ADAPTER * a, void * adr);
-word mem_inw(ADAPTER * a, void * adr);
-void mem_in_buffer(ADAPTER * a, void * adr, void * P, word length);
-void mem_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
-void mem_out(ADAPTER * a, void * adr, byte data);
-void mem_outw(ADAPTER * a, void * adr, word data);
-void mem_out_buffer(ADAPTER * a, void * adr, void * P, word length);
-void mem_inc(ADAPTER * a, void * adr);
-void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords);
-void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords);
+byte mem_in(ADAPTER *a, void *adr);
+word mem_inw(ADAPTER *a, void *adr);
+void mem_in_buffer(ADAPTER *a, void *adr, void *P, word length);
+void mem_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
+void mem_out(ADAPTER *a, void *adr, byte data);
+void mem_outw(ADAPTER *a, void *adr, word data);
+void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length);
+void mem_inc(ADAPTER *a, void *adr);
+void mem_in_dw(ADAPTER *a, void *addr, dword *data, int dwords);
+void mem_out_dw(ADAPTER *a, void *addr, const dword *data, int dwords);
 /* ---------------------------------------------------------------------
-  functions exported by io.c
+   functions exported by io.c
    --------------------------------------------------------------------- */
-extern IDI_CALL Requests[MAX_ADAPTER] ;
-extern void     DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr,
-               void* context);
-extern void     request (PISDN_ADAPTER, ENTITY *) ;
+extern IDI_CALL Requests[MAX_ADAPTER];
+extern void     DIDpcRoutine(struct _diva_os_soft_isr *psoft_isr,
+                            void *context);
+extern void     request(PISDN_ADAPTER, ENTITY *);
 /* ---------------------------------------------------------------------
-  trapFn helpers, used to recover debug trace from dead card
+   trapFn helpers, used to recover debug trace from dead card
    --------------------------------------------------------------------- */
 typedef struct {
word *buf ;
word  cnt ;
word  out ;
-} Xdesc ;
-extern void     dump_trap_frame  (PISDN_ADAPTER IoAdapter, byte __iomem *exception) ;
-extern void     dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc) ;
      word *buf;
      word  cnt;
      word  out;
+} Xdesc;
+extern void dump_trap_frame(PISDN_ADAPTER IoAdapter, byte __iomem *exception);
+extern void dump_xlog_buffer(PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc);
 /* --------------------------------------------------------------------- */
 #endif  /* } __DIVA_XDI_COMMON_IO_H_INC__ */
index 7bd5baa..045bda5 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 #include "divasync.h"
 #include "di.h"
 #if !defined USE_EXTENDED_DEBUGS
-  #include "dimaint.h"
+#include "dimaint.h"
 #else
-  #define dprintf
+#define dprintf
 #endif
 #include "dfifo.h"
-int diva_istream_write (void* context,
-             int   Id,
-              void* data,
-             int length,
-             int final,
-            byte usr1,
-            byte usr2);
-int diva_istream_read (void* context,
-            int Id,
-            void* data,
-            int max_length,
-            int* final,
-            byte* usr1,
-            byte* usr2);
+int diva_istream_write(void *context,
+                      int   Id,
+                      void *data,
+                      int length,
+                      int final,
+                      byte usr1,
+                      byte usr2);
+int diva_istream_read(void *context,
+                     int Id,
+                     void *data,
+                     int max_length,
+                     int *final,
+                     byte *usr1,
+                     byte *usr2);
 /* -------------------------------------------------------------------
-  Does provide iStream interface to the client
+   Does provide iStream interface to the client
    ------------------------------------------------------------------- */
-void diva_xdi_provide_istream_info (ADAPTER* a,
-                  diva_xdi_stream_interface_t* pi) {
-  pi->provided_service = 0;
+void diva_xdi_provide_istream_info(ADAPTER *a,
+                                  diva_xdi_stream_interface_t *pi) {
+       pi->provided_service = 0;
 }
 /* ------------------------------------------------------------------
-  Does write the data from caller's buffer to the card's
-  stream interface.
-  If synchronous service was requested, then function
-  does return amount of data written to stream.
-  'final' does indicate that piece of data to be written is
-  final part of frame (necessary only by structured datatransfer)
-  return  0 if zero lengh packet was written
-  return -1 if stream is full
-  ------------------------------------------------------------------ */
-int diva_istream_write (void* context,
-                int   Id,
-                  void* data,
-                 int length,
-                 int final,
-                byte usr1,
-                byte usr2) {
ADAPTER* a = (ADAPTER*)context;
- int written = 0, to_write = -1;
- char tmp[4];
byte* data_ptr = (byte*)data;
- for (;;) {
-  a->ram_in_dw (a,
+   Does write the data from caller's buffer to the card's
+   stream interface.
+   If synchronous service was requested, then function
+   does return amount of data written to stream.
+   'final' does indicate that piece of data to be written is
+   final part of frame (necessary only by structured datatransfer)
+   return  0 if zero lengh packet was written
+   return -1 if stream is full
+   ------------------------------------------------------------------ */
+int diva_istream_write(void *context,
+                      int Id,
+                      void *data,
+                      int length,
+                      int final,
+                      byte usr1,
+                      byte usr2) {
      ADAPTER *a = (ADAPTER *)context;
      int written = 0, to_write = -1;
      char tmp[4];
      byte *data_ptr = (byte *)data;
      for (;;) {
+               a->ram_in_dw(a,
 #ifdef PLATFORM_GT_32BIT
-         ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]),
+                             ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]),
 #else
-         (void*)(a->tx_stream[Id] + a->tx_pos[Id]),
+                             (void *)(a->tx_stream[Id] + a->tx_pos[Id]),
 #endif
-                  (dword*)&tmp[0],
-         1);
-  if (tmp[0] & DIVA_DFIFO_READY) { /* No free blocks more */
-   if (to_write < 0)
-    return (-1); /* was not able to write       */
-   break;     /* only part of message was written */
-  }
-  to_write = min(length, DIVA_DFIFO_DATA_SZ);
-  if (to_write) {
-   a->ram_out_buffer (a,
+                             (dword *)&tmp[0],
+                             1);
+               if (tmp[0] & DIVA_DFIFO_READY) { /* No free blocks more */
+                       if (to_write < 0)
+                               return (-1); /* was not able to write       */
+                       break;     /* only part of message was written */
+               }
+               to_write = min(length, DIVA_DFIFO_DATA_SZ);
+               if (to_write) {
+                       a->ram_out_buffer(a,
 #ifdef PLATFORM_GT_32BIT
-            ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]+4),
+                                          ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id] + 4),
 #else
-              (void*)(a->tx_stream[Id] + a->tx_pos[Id] + 4),
+                                          (void *)(a->tx_stream[Id] + a->tx_pos[Id] + 4),
 #endif
-                         data_ptr,
-             (word)to_write);
-   length  -= to_write;
-   written  += to_write;
-   data_ptr += to_write;
-  }
-  tmp[1] = (char)to_write;
-  tmp[0] = (tmp[0] & DIVA_DFIFO_WRAP) |
-       DIVA_DFIFO_READY |
-       ((!length && final) ? DIVA_DFIFO_LAST : 0);
-  if (tmp[0] & DIVA_DFIFO_LAST) {
-   tmp[2] = usr1;
-   tmp[3] = usr2;
-  }
-    a->ram_out_dw (a,
+                                          data_ptr,
+                                          (word)to_write);
+                       length  -= to_write;
+                       written  += to_write;
+                       data_ptr += to_write;
+               }
+               tmp[1] = (char)to_write;
+               tmp[0] = (tmp[0] & DIVA_DFIFO_WRAP) |
+                       DIVA_DFIFO_READY |
+                       ((!length && final) ? DIVA_DFIFO_LAST : 0);
+               if (tmp[0] & DIVA_DFIFO_LAST) {
+                       tmp[2] = usr1;
+                       tmp[3] = usr2;
+               }
+               a->ram_out_dw(a,
 #ifdef PLATFORM_GT_32BIT
-         ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]),
+                              ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]),
 #else
-           (void*)(a->tx_stream[Id] + a->tx_pos[Id]),
+                              (void *)(a->tx_stream[Id] + a->tx_pos[Id]),
 #endif
-                   (dword*)&tmp[0],
-          1);
-  if (tmp[0] & DIVA_DFIFO_WRAP) {
-   a->tx_pos[Id]  = 0;
-  } else {
-   a->tx_pos[Id] += DIVA_DFIFO_STEP;
-  }
-  if (!length) {
-   break;
-  }
- }
- return (written);
+                              (dword *)&tmp[0],
+                              1);
+               if (tmp[0] & DIVA_DFIFO_WRAP) {
+                       a->tx_pos[Id]  = 0;
+               } else {
+                       a->tx_pos[Id] += DIVA_DFIFO_STEP;
+               }
+               if (!length) {
+                       break;
+               }
      }
      return (written);
 }
 /* -------------------------------------------------------------------
-  In case of SYNCRONOUS service:
-  Does write data from stream in caller's buffer.
-  Does return amount of data written to buffer
-  Final flag is set on return if last part of structured frame
-  was received
-  return 0  if zero packet was received
-  return -1 if stream is empty
-    return -2 if read buffer does not profide sufficient space
-              to accommodate entire segment
-  max_length should be at least 68 bytes
-  ------------------------------------------------------------------- */
-int diva_istream_read (void* context,
-                int Id,
-                void* data,
-                int max_length,
-                int* final,
-               byte* usr1,
-               byte* usr2) {
ADAPTER* a = (ADAPTER*)context;
- int read = 0, to_read = -1;
- char tmp[4];
byte* data_ptr = (byte*)data;
- *final = 0;
- for (;;) {
-  a->ram_in_dw (a,
+   In case of SYNCRONOUS service:
+   Does write data from stream in caller's buffer.
+   Does return amount of data written to buffer
+   Final flag is set on return if last part of structured frame
+   was received
+   return 0  if zero packet was received
+   return -1 if stream is empty
+   return -2 if read buffer does not profide sufficient space
+   to accommodate entire segment
+   max_length should be at least 68 bytes
+   ------------------------------------------------------------------- */
+int diva_istream_read(void *context,
+                     int Id,
+                     void *data,
+                     int max_length,
+                     int *final,
+                     byte *usr1,
+                     byte *usr2) {
      ADAPTER *a = (ADAPTER *)context;
      int read = 0, to_read = -1;
      char tmp[4];
      byte *data_ptr = (byte *)data;
      *final = 0;
      for (;;) {
+               a->ram_in_dw(a,
 #ifdef PLATFORM_GT_32BIT
-         ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id]),
+                             ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id]),
 #else
-         (void*)(a->rx_stream[Id] + a->rx_pos[Id]),
+                             (void *)(a->rx_stream[Id] + a->rx_pos[Id]),
 #endif
-                  (dword*)&tmp[0],
-         1);
-  if (tmp[1] > max_length) {
-   if (to_read < 0)
-    return (-2); /* was not able to read */
-   break;
-    }
-  if (!(tmp[0] & DIVA_DFIFO_READY)) {
-   if (to_read < 0)
-    return (-1); /* was not able to read */
-   break;
-  }
-  to_read = min(max_length, (int)tmp[1]);
-  if (to_read) {
-   a->ram_in_buffer(a,
+                             (dword *)&tmp[0],
+                             1);
+               if (tmp[1] > max_length) {
+                       if (to_read < 0)
+                               return (-2); /* was not able to read */
+                       break;
+               }
+               if (!(tmp[0] & DIVA_DFIFO_READY)) {
+                       if (to_read < 0)
+                               return (-1); /* was not able to read */
+                       break;
+               }
+               to_read = min(max_length, (int)tmp[1]);
+               if (to_read) {
+                       a->ram_in_buffer(a,
 #ifdef PLATFORM_GT_32BIT
-           ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id] + 4),
+                                        ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id] + 4),
 #else
-            (void*)(a->rx_stream[Id] + a->rx_pos[Id] + 4),
+                                        (void *)(a->rx_stream[Id] + a->rx_pos[Id] + 4),
 #endif
-                       data_ptr,
-            (word)to_read);
-   max_length -= to_read;
-   read     += to_read;
-   data_ptr  += to_read;
-  }
-  if (tmp[0] & DIVA_DFIFO_LAST) {
-   *final = 1;
-  }
-  tmp[0] &= DIVA_DFIFO_WRAP;
-    a->ram_out_dw(a,
+                                        data_ptr,
+                                        (word)to_read);
+                       max_length -= to_read;
+                       read     += to_read;
+                       data_ptr  += to_read;
+               }
+               if (tmp[0] & DIVA_DFIFO_LAST) {
+                       *final = 1;
+               }
+               tmp[0] &= DIVA_DFIFO_WRAP;
+               a->ram_out_dw(a,
 #ifdef PLATFORM_GT_32BIT
-         ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id]),
+                             ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id]),
 #else
-         (void*)(a->rx_stream[Id] + a->rx_pos[Id]),
+                             (void *)(a->rx_stream[Id] + a->rx_pos[Id]),
 #endif
-         (dword*)&tmp[0],
-         1);
-  if (tmp[0] & DIVA_DFIFO_WRAP) {
-   a->rx_pos[Id]  = 0;
-  } else {
-   a->rx_pos[Id] += DIVA_DFIFO_STEP;
-  }
-  if (*final) {
-   if (usr1)
-    *usr1 = tmp[2];
-   if (usr2)
-    *usr2 = tmp[3];
-   break;
-  }
- }
- return (read);
+                             (dword *)&tmp[0],
+                             1);
+               if (tmp[0] & DIVA_DFIFO_WRAP) {
+                       a->rx_pos[Id]  = 0;
+               } else {
+                       a->rx_pos[Id] += DIVA_DFIFO_STEP;
+               }
+               if (*final) {
+                       if (usr1)
+                               *usr1 = tmp[2];
+                       if (usr2)
+                               *usr2 = tmp[3];
+                       break;
+               }
      }
      return (read);
 }
 /* ---------------------------------------------------------------------
-  Does check if one of streams had caused interrupt and does
-  wake up corresponding application
+   Does check if one of streams had caused interrupt and does
+   wake up corresponding application
    --------------------------------------------------------------------- */
-void pr_stream (ADAPTER * a) {
+void pr_stream(ADAPTER *a) {
 }
 #endif /* } */
index 203189a..894fdfd 100644 (file)
@@ -1,25 +1,25 @@
 /*
  *
 Copyright (c) Eicon Networks, 2000.
+ Copyright (c) Eicon Networks, 2000.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    1.9
+ Eicon File Revision :    1.9
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_EICON_TRACE_API__
@@ -35,9 +35,9 @@ typedef struct _diva_trace_ie {
 } diva_trace_ie_t;
 
 /*
-       Structure used to represent "State\\BX\\Modem" directory
-       to user.
-       */
+  Structure used to represent "State\\BX\\Modem" directory
+  to user.
+*/
 typedef struct _diva_trace_modem_state {
        dword   ChannelNumber;
 
@@ -70,8 +70,8 @@ typedef struct _diva_trace_modem_state {
 } diva_trace_modem_state_t;
 
 /*
-       Representation of "State\\BX\\FAX" directory
-       */
+  Representation of "State\\BX\\FAX" directory
+*/
 typedef struct _diva_trace_fax_state {
        dword   ChannelNumber;
        dword Event;
@@ -90,9 +90,9 @@ typedef struct _diva_trace_fax_state {
 } diva_trace_fax_state_t;
 
 /*
-       Structure used to represent Interface State in the abstract
-       and interface/D-channel protocol independent form.
-       */
+  Structure used to represent Interface State in the abstract
+  and interface/D-channel protocol independent form.
+*/
 typedef struct _diva_trace_interface_state {
        char Layer1[DIVA_TRACE_LINE_TYPE_LEN];
        char Layer2[DIVA_TRACE_LINE_TYPE_LEN];
@@ -164,18 +164,18 @@ typedef struct _diva_prot_statistics {
 typedef struct _diva_ifc_statistics {
        diva_incoming_call_statistics_t inc;
        diva_outgoing_call_statistics_t outg;
-       diva_modem_call_statistics_t            mdm;
-       diva_fax_call_statistics_t                      fax;
-       diva_prot_statistics_t                                  b1;
-       diva_prot_statistics_t                                  b2;
-       diva_prot_statistics_t                                  d1;
-       diva_prot_statistics_t                                  d2;
+       diva_modem_call_statistics_t mdm;
+       diva_fax_call_statistics_t fax;
+       diva_prot_statistics_t b1;
+       diva_prot_statistics_t b2;
+       diva_prot_statistics_t d1;
+       diva_prot_statistics_t d2;
 } diva_ifc_statistics_t;
 
 /*
-       Structure used to represent "State\\BX" directory
-       to user.
-       */
+  Structure used to represent "State\\BX" directory
+  to user.
+*/
 typedef struct _diva_trace_line_state {
        dword   ChannelNumber;
 
@@ -192,9 +192,9 @@ typedef struct _diva_trace_line_state {
        char LocalAddress[DIVA_TRACE_LINE_TYPE_LEN];
        char LocalSubAddress[DIVA_TRACE_LINE_TYPE_LEN];
 
-       diva_trace_ie_t call_BC;
-       diva_trace_ie_t call_HLC;
-       diva_trace_ie_t call_LLC;
+       diva_trace_ie_t call_BC;
+       diva_trace_ie_t call_HLC;
+       diva_trace_ie_t call_LLC;
 
        dword Charges;
 
@@ -205,11 +205,11 @@ typedef struct _diva_trace_line_state {
        char UserID[DIVA_TRACE_LINE_TYPE_LEN];
 
        diva_trace_modem_state_t modem;
-       diva_trace_fax_state_t   fax;
+       diva_trace_fax_state_t fax;
 
-       diva_trace_interface_state_tpInterface;
+       diva_trace_interface_state_t *pInterface;
 
-       diva_ifc_statistics_t*                          pInterfaceStat;
+       diva_ifc_statistics_t *pInterfaceStat;
 
 } diva_trace_line_state_t;
 
@@ -222,115 +222,114 @@ typedef struct _diva_trace_line_state {
 #define DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE         ('F')
 
 struct _diva_strace_library_interface;
-typedef void (*diva_trace_channel_state_change_proc_t)(voiduser_context,
-                                                       struct _diva_strace_library_interface* hLib,
-                                                       int Adapter,
-                                                       diva_trace_line_state_t* channel, int notify_subject);
-typedef void (*diva_trace_channel_trace_proc_t)(voiduser_context,
-                                                       struct _diva_strace_library_interface* hLib,
-                                                       int Adapter, void* xlog_buffer, int length);
-typedef void (*diva_trace_error_proc_t)(voiduser_context,
-                                                       struct _diva_strace_library_interface* hLib,
-                                                       int Adapter,
-                                                       int error, const char* file, int line);
+typedef void (*diva_trace_channel_state_change_proc_t)(void *user_context,
+                                                      struct _diva_strace_library_interface *hLib,
+                                                      int Adapter,
+                                                      diva_trace_line_state_t *channel, int notify_subject);
+typedef void (*diva_trace_channel_trace_proc_t)(void *user_context,
+                                               struct _diva_strace_library_interface *hLib,
+                                               int Adapter, void *xlog_buffer, int length);
+typedef void (*diva_trace_error_proc_t)(void *user_context,
+                                       struct _diva_strace_library_interface *hLib,
+                                       int Adapter,
+                                       int error, const char *file, int line);
 
 /*
-       This structure creates interface from user to library
-       */
+  This structure creates interface from user to library
+*/
 typedef struct _diva_trace_library_user_interface {
-       void*                                                                                                                                           user_context;
-       diva_trace_channel_state_change_proc_t  notify_proc;
-       diva_trace_channel_trace_proc_t                                 trace_proc;
-       diva_trace_error_proc_t                                                                 error_notify_proc;
+       void *user_context;
+       diva_trace_channel_state_change_proc_t notify_proc;
+       diva_trace_channel_trace_proc_t trace_proc;
+       diva_trace_error_proc_t error_notify_proc;
 } diva_trace_library_user_interface_t;
 
 /*
-       Interface from Library to User
-       */
-typedef int   (*DivaSTraceLibraryStart_proc_t)(void* hLib);
-typedef int   (*DivaSTraceLibraryFinit_proc_t)(void* hLib);
-typedef int   (*DivaSTraceMessageInput_proc_t)(void* hLib);
-typedef void*  (*DivaSTraceGetHandle_proc_t)(void* hLib);
+  Interface from Library to User
+*/
+typedef int (*DivaSTraceLibraryStart_proc_t)(void *hLib);
+typedef int (*DivaSTraceLibraryFinit_proc_t)(void *hLib);
+typedef int (*DivaSTraceMessageInput_proc_t)(void *hLib);
+typedef void* (*DivaSTraceGetHandle_proc_t)(void *hLib);
 
 /*
-       Turn Audio Tap trace on/off
-       Channel should be in the range 1 ... Number of Channels
-       */
-typedef int (*DivaSTraceSetAudioTap_proc_t)(voidhLib, int Channel, int on);
+  Turn Audio Tap trace on/off
+  Channel should be in the range 1 ... Number of Channels
+*/
+typedef int (*DivaSTraceSetAudioTap_proc_t)(void *hLib, int Channel, int on);
 
 /*
-       Turn B-channel trace on/off
-       Channel should be in the range 1 ... Number of Channels
-       */
-typedef int (*DivaSTraceSetBChannel_proc_t)(voidhLib, int Channel, int on);
+  Turn B-channel trace on/off
+  Channel should be in the range 1 ... Number of Channels
+*/
+typedef int (*DivaSTraceSetBChannel_proc_t)(void *hLib, int Channel, int on);
 
 /*
-       Turn    D-channel (Layer1/Layer2/Layer3) trace on/off
-               Layer1 - All D-channel frames received/sent over the interface
-                                                inclusive Layer 2 headers, Layer 2 frames and TEI management frames
-               Layer2 - Events from LAPD protocol instance with SAPI of signalling protocol
-               Layer3 - All D-channel frames addressed to assigned to the card TEI and
-                                                SAPI of signalling protocol, and signalling protocol events.
-       */
-typedef int (*DivaSTraceSetDChannel_proc_t)(voidhLib, int on);
+  Turn D-channel (Layer1/Layer2/Layer3) trace on/off
+  Layer1 - All D-channel frames received/sent over the interface
+  inclusive Layer 2 headers, Layer 2 frames and TEI management frames
+  Layer2 - Events from LAPD protocol instance with SAPI of signalling protocol
+  Layer3 - All D-channel frames addressed to assigned to the card TEI and
+  SAPI of signalling protocol, and signalling protocol events.
+*/
+typedef int (*DivaSTraceSetDChannel_proc_t)(void *hLib, int on);
 
 /*
-       Get overall card statistics
-       */
-typedef int (*DivaSTraceGetOutgoingCallStatistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetIncomingCallStatistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetModemStatistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetFaxStatistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetBLayer1Statistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetBLayer2Statistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetDLayer1Statistics_proc_t)(voidhLib);
-typedef int (*DivaSTraceGetDLayer2Statistics_proc_t)(voidhLib);
+  Get overall card statistics
+*/
+typedef int (*DivaSTraceGetOutgoingCallStatistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetIncomingCallStatistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetModemStatistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetFaxStatistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetBLayer1Statistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetBLayer2Statistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetDLayer1Statistics_proc_t)(void *hLib);
+typedef int (*DivaSTraceGetDLayer2Statistics_proc_t)(void *hLib);
 
 /*
-       Call control
-       */
-typedef int (*DivaSTraceClearCall_proc_t)(voidhLib, int Channel);
+  Call control
+*/
+typedef int (*DivaSTraceClearCall_proc_t)(void *hLib, int Channel);
 
 typedef struct _diva_strace_library_interface {
-       voidhLib;
-  DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStart;
-  DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStop;
+       void *hLib;
+       DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStart;
+       DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStop;
        DivaSTraceLibraryFinit_proc_t DivaSTraceLibraryFinit;
        DivaSTraceMessageInput_proc_t DivaSTraceMessageInput;
-       DivaSTraceGetHandle_proc_t    DivaSTraceGetHandle;
-       DivaSTraceSetAudioTap_proc_t  DivaSTraceSetAudioTap;
-       DivaSTraceSetBChannel_proc_t  DivaSTraceSetBChannel;
-       DivaSTraceSetDChannel_proc_t  DivaSTraceSetDChannel;
-       DivaSTraceSetDChannel_proc_t  DivaSTraceSetInfo;
+       DivaSTraceGetHandle_proc_t DivaSTraceGetHandle;
+       DivaSTraceSetAudioTap_proc_t DivaSTraceSetAudioTap;
+       DivaSTraceSetBChannel_proc_t DivaSTraceSetBChannel;
+       DivaSTraceSetDChannel_proc_t DivaSTraceSetDChannel;
+       DivaSTraceSetDChannel_proc_t DivaSTraceSetInfo;
        DivaSTraceGetOutgoingCallStatistics_proc_t \
-                                                                                                                               DivaSTraceGetOutgoingCallStatistics;
+       DivaSTraceGetOutgoingCallStatistics;
        DivaSTraceGetIncomingCallStatistics_proc_t \
-                                                                                                                               DivaSTraceGetIncomingCallStatistics;
+       DivaSTraceGetIncomingCallStatistics;
        DivaSTraceGetModemStatistics_proc_t \
-                                                                                                                               DivaSTraceGetModemStatistics;
+       DivaSTraceGetModemStatistics;
        DivaSTraceGetFaxStatistics_proc_t \
-                                                                                                                               DivaSTraceGetFaxStatistics;
+       DivaSTraceGetFaxStatistics;
        DivaSTraceGetBLayer1Statistics_proc_t \
-                                                                                                                               DivaSTraceGetBLayer1Statistics;
+       DivaSTraceGetBLayer1Statistics;
        DivaSTraceGetBLayer2Statistics_proc_t \
-                                                                                                                               DivaSTraceGetBLayer2Statistics;
+       DivaSTraceGetBLayer2Statistics;
        DivaSTraceGetDLayer1Statistics_proc_t \
-                                                                                                                               DivaSTraceGetDLayer1Statistics;
+       DivaSTraceGetDLayer1Statistics;
        DivaSTraceGetDLayer2Statistics_proc_t \
-                                                                                                                               DivaSTraceGetDLayer2Statistics;
-       DivaSTraceClearCall_proc_t    DivaSTraceClearCall;
+       DivaSTraceGetDLayer2Statistics;
+       DivaSTraceClearCall_proc_t DivaSTraceClearCall;
 } diva_strace_library_interface_t;
 
 /*
-       Create and return Library interface
-       */
-diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter,
-                                                                                                       const diva_trace_library_user_interface_t* user_proc,
-                          byte* pmem);
-dword DivaSTraceGetMemotyRequirement (int channels);
+  Create and return Library interface
+*/
+diva_strace_library_interface_t *DivaSTraceLibraryCreateInstance(int Adapter,
+                                                                const diva_trace_library_user_interface_t *user_proc,
+                                                                byte *pmem);
+dword DivaSTraceGetMemotyRequirement(int channels);
 
 #define DIVA_MAX_ADAPTERS  64
 #define DIVA_MAX_LINES     32
 
 #endif
-
index 534978b..2ee789f 100644 (file)
@@ -1,25 +1,25 @@
 /*
  *
 Copyright (c) Eicon Networks, 2000.
+ Copyright (c) Eicon Networks, 2000.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    1.9
+ Eicon File Revision :    1.9
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
@@ -30,7 +30,7 @@
 #include "man_defs.h"
 
 
-extern void diva_mnt_internal_dprintf (dword drv_id, dword type, char* p, ...);
+extern void diva_mnt_internal_dprintf(dword drv_id, dword type, char *p, ...);
 
 #define MODEM_PARSE_ENTRIES  16 /* amount of variables of interest */
 #define FAX_PARSE_ENTRIES    12 /* amount of variables of interest */
@@ -38,77 +38,77 @@ extern void diva_mnt_internal_dprintf (dword drv_id, dword type, char* p, ...);
 #define STAT_PARSE_ENTRIES   70 /* amount of variables of interest */
 
 /*
-       LOCAL FUNCTIONS
-       */
-static int DivaSTraceLibraryStart (void* hLib);
-static int DivaSTraceLibraryStop  (void* hLib);
-static int SuperTraceLibraryFinit (void* hLib);
-static void*   SuperTraceGetHandle (void* hLib);
-static int SuperTraceMessageInput (void* hLib);
-static int SuperTraceSetAudioTap  (void* hLib, int Channel, int on);
-static int SuperTraceSetBChannel  (void* hLib, int Channel, int on);
-static int SuperTraceSetDChannel  (void* hLib, int on);
-static int SuperTraceSetInfo      (void* hLib, int on);
-static int SuperTraceClearCall (void* hLib, int Channel);
-static int SuperTraceGetOutgoingCallStatistics (void* hLib);
-static int SuperTraceGetIncomingCallStatistics (void* hLib);
-static int SuperTraceGetModemStatistics (void* hLib);
-static int SuperTraceGetFaxStatistics (void* hLib);
-static int SuperTraceGetBLayer1Statistics (void* hLib);
-static int SuperTraceGetBLayer2Statistics (void* hLib);
-static int SuperTraceGetDLayer1Statistics (void* hLib);
-static int SuperTraceGetDLayer2Statistics (void* hLib);
+  LOCAL FUNCTIONS
+*/
+static int DivaSTraceLibraryStart(void *hLib);
+static int DivaSTraceLibraryStop(void *hLib);
+static int SuperTraceLibraryFinit(void *hLib);
+static void *SuperTraceGetHandle(void *hLib);
+static int SuperTraceMessageInput(void *hLib);
+static int SuperTraceSetAudioTap(void *hLib, int Channel, int on);
+static int SuperTraceSetBChannel(void *hLib, int Channel, int on);
+static int SuperTraceSetDChannel(void *hLib, int on);
+static int SuperTraceSetInfo(void *hLib, int on);
+static int SuperTraceClearCall(void *hLib, int Channel);
+static int SuperTraceGetOutgoingCallStatistics(void *hLib);
+static int SuperTraceGetIncomingCallStatistics(void *hLib);
+static int SuperTraceGetModemStatistics(void *hLib);
+static int SuperTraceGetFaxStatistics(void *hLib);
+static int SuperTraceGetBLayer1Statistics(void *hLib);
+static int SuperTraceGetBLayer2Statistics(void *hLib);
+static int SuperTraceGetDLayer1Statistics(void *hLib);
+static int SuperTraceGetDLayer2Statistics(void *hLib);
 
 /*
-       LOCAL FUNCTIONS
-       */
-static int ScheduleNextTraceRequest (diva_strace_context_t* pLib);
-static int process_idi_event (diva_strace_context_t* pLib,
-                                                                                                                       diva_man_var_header_t* pVar);
-static int process_idi_info  (diva_strace_context_t* pLib,
-                                                                                                                       diva_man_var_header_t* pVar);
-static int diva_modem_event (diva_strace_context_t* pLib, int Channel);
-static int diva_fax_event   (diva_strace_context_t* pLib, int Channel);
-static int diva_line_event (diva_strace_context_t* pLib, int Channel);
-static int diva_modem_info (diva_strace_context_t* pLib,
-                                                                                                               int Channel,
-                                                                                                               diva_man_var_header_t* pVar);
-static int diva_fax_info   (diva_strace_context_t* pLib,
-                                                                                                               int Channel,
-                                                                                                               diva_man_var_header_t* pVar);
-static int diva_line_info  (diva_strace_context_t* pLib,
-                                                                                                               int Channel,
-                                                                                                               diva_man_var_header_t* pVar);
-static int diva_ifc_statistics (diva_strace_context_t* pLib,
-                                                                                                                               diva_man_var_header_t* pVar);
-static diva_man_var_header_t* get_next_var (diva_man_var_header_t* pVar);
-static diva_man_var_header_t* find_var (diva_man_var_header_t* pVar,
-                                                                                                                                                               const char* name);
-static int diva_strace_read_int  (diva_man_var_header_t* pVar, int* var);
-static int diva_strace_read_uint (diva_man_var_header_t* pVar, dword* var);
-static int diva_strace_read_asz  (diva_man_var_header_t* pVar, char* var);
-static int diva_strace_read_asc  (diva_man_var_header_t* pVar, char* var);
-static int  diva_strace_read_ie  (diva_man_var_header_t* pVar,
-                                                                                                                                       diva_trace_ie_t* var);
-static void diva_create_parse_table (diva_strace_context_t* pLib);
-static void diva_trace_error (diva_strace_context_t* pLib,
-                                                                                                                       int error, const char* file, int line);
-static void diva_trace_notify_user (diva_strace_context_t* pLib,
-                                                                                                                int Channel,
-                                                                                                                int notify_subject);
-static int diva_trace_read_variable (diva_man_var_header_t* pVar,
-                                                                                                                                                void* variable);
+  LOCAL FUNCTIONS
+*/
+static int ScheduleNextTraceRequest(diva_strace_context_t *pLib);
+static int process_idi_event(diva_strace_context_t *pLib,
+                            diva_man_var_header_t *pVar);
+static int process_idi_info(diva_strace_context_t *pLib,
+                           diva_man_var_header_t *pVar);
+static int diva_modem_event(diva_strace_context_t *pLib, int Channel);
+static int diva_fax_event(diva_strace_context_t *pLib, int Channel);
+static int diva_line_event(diva_strace_context_t *pLib, int Channel);
+static int diva_modem_info(diva_strace_context_t *pLib,
+                          int Channel,
+                          diva_man_var_header_t *pVar);
+static int diva_fax_info(diva_strace_context_t *pLib,
+                        int Channel,
+                        diva_man_var_header_t *pVar);
+static int diva_line_info(diva_strace_context_t *pLib,
+                         int Channel,
+                         diva_man_var_header_t *pVar);
+static int diva_ifc_statistics(diva_strace_context_t *pLib,
+                              diva_man_var_header_t *pVar);
+static diva_man_var_header_t *get_next_var(diva_man_var_header_t *pVar);
+static diva_man_var_header_t *find_var(diva_man_var_header_t *pVar,
+                                      const char *name);
+static int diva_strace_read_int(diva_man_var_header_t *pVar, int *var);
+static int diva_strace_read_uint(diva_man_var_header_t *pVar, dword *var);
+static int diva_strace_read_asz(diva_man_var_header_t *pVar, char *var);
+static int diva_strace_read_asc(diva_man_var_header_t *pVar, char *var);
+static int diva_strace_read_ie(diva_man_var_header_t *pVar,
+                              diva_trace_ie_t *var);
+static void diva_create_parse_table(diva_strace_context_t *pLib);
+static void diva_trace_error(diva_strace_context_t *pLib,
+                            int error, const char *file, int line);
+static void diva_trace_notify_user(diva_strace_context_t *pLib,
+                                  int Channel,
+                                  int notify_subject);
+static int diva_trace_read_variable(diva_man_var_header_t *pVar,
+                                   void *variable);
 
 /*
-       Initialize the library and return context
-       of the created trace object that will represent
-       the IDI adapter.
-       Return 0 on error.
-       */
-diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter,
-                                                                                       const diva_trace_library_user_interface_t* user_proc,
-                      byte* pmem) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)pmem;
+  Initialize the library and return context
+  of the created trace object that will represent
+  the IDI adapter.
+  Return 0 on error.
+*/
+diva_strace_library_interface_t *DivaSTraceLibraryCreateInstance(int Adapter,
+                                                                const diva_trace_library_user_interface_t *user_proc,
+                                                                byte *pmem) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)pmem;
        int i;
 
        if (!pLib) {
@@ -121,11 +121,11 @@ diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter,
        pLib->Adapter  = Adapter;
 
        /*
-               Set up Library Interface
-               */
+         Set up Library Interface
+       */
        pLib->instance.hLib                                = pLib;
-  pLib->instance.DivaSTraceLibraryStart              = DivaSTraceLibraryStart;
-  pLib->instance.DivaSTraceLibraryStop               = DivaSTraceLibraryStop;
+       pLib->instance.DivaSTraceLibraryStart              = DivaSTraceLibraryStart;
+       pLib->instance.DivaSTraceLibraryStop               = DivaSTraceLibraryStop;
        pLib->instance.DivaSTraceLibraryFinit              = SuperTraceLibraryFinit;
        pLib->instance.DivaSTraceMessageInput              = SuperTraceMessageInput;
        pLib->instance.DivaSTraceGetHandle                 = SuperTraceGetHandle;
@@ -134,21 +134,21 @@ diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter,
        pLib->instance.DivaSTraceSetDChannel               = SuperTraceSetDChannel;
        pLib->instance.DivaSTraceSetInfo                   = SuperTraceSetInfo;
        pLib->instance.DivaSTraceGetOutgoingCallStatistics = \
-                                                                                                                                                       SuperTraceGetOutgoingCallStatistics;
+               SuperTraceGetOutgoingCallStatistics;
        pLib->instance.DivaSTraceGetIncomingCallStatistics = \
-                                                                                                                                                       SuperTraceGetIncomingCallStatistics;
+               SuperTraceGetIncomingCallStatistics;
        pLib->instance.DivaSTraceGetModemStatistics        = \
-                                                                                                                                                       SuperTraceGetModemStatistics;
+               SuperTraceGetModemStatistics;
        pLib->instance.DivaSTraceGetFaxStatistics          = \
-                                                                                                                                                       SuperTraceGetFaxStatistics;
+               SuperTraceGetFaxStatistics;
        pLib->instance.DivaSTraceGetBLayer1Statistics      = \
-                                                                                                                                                       SuperTraceGetBLayer1Statistics;
+               SuperTraceGetBLayer1Statistics;
        pLib->instance.DivaSTraceGetBLayer2Statistics      = \
-                                                                                                                                                       SuperTraceGetBLayer2Statistics;
+               SuperTraceGetBLayer2Statistics;
        pLib->instance.DivaSTraceGetDLayer1Statistics      = \
-                                                                                                                                                       SuperTraceGetDLayer1Statistics;
+               SuperTraceGetDLayer1Statistics;
        pLib->instance.DivaSTraceGetDLayer2Statistics      = \
-                                                                                                                                                       SuperTraceGetDLayer2Statistics;
+               SuperTraceGetDLayer2Statistics;
        pLib->instance.DivaSTraceClearCall                 = SuperTraceClearCall;
 
 
@@ -159,272 +159,272 @@ diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter,
                pLib->user_proc_table.error_notify_proc = user_proc->error_notify_proc;
        }
 
-       if (!(pLib->hAdapter = SuperTraceOpenAdapter (Adapter))) {
-    diva_mnt_internal_dprintf (0, DLI_ERR, "Can not open XDI adapter");
+       if (!(pLib->hAdapter = SuperTraceOpenAdapter(Adapter))) {
+               diva_mnt_internal_dprintf(0, DLI_ERR, "Can not open XDI adapter");
                return NULL;
        }
-       pLib->Channels = SuperTraceGetNumberOfChannels (pLib->hAdapter);
+       pLib->Channels = SuperTraceGetNumberOfChannels(pLib->hAdapter);
 
        /*
-               Calculate amount of parte table entites necessary to translate
-               information from all events of onterest
-               */
+         Calculate amount of parte table entites necessary to translate
+         information from all events of onterest
+       */
        pLib->parse_entries = (MODEM_PARSE_ENTRIES + FAX_PARSE_ENTRIES + \
-                                                                                                STAT_PARSE_ENTRIES + \
-                                                                                                LINE_PARSE_ENTRIES + 1) * pLib->Channels;
-       pLib->parse_table = (diva_strace_path2action_t*)pmem;
+                              STAT_PARSE_ENTRIES + \
+                              LINE_PARSE_ENTRIES + 1) * pLib->Channels;
+       pLib->parse_table = (diva_strace_path2action_t *)pmem;
 
        for (i = 0; i < 30; i++) {
                pLib->lines[i].pInterface     = &pLib->Interface;
                pLib->lines[i].pInterfaceStat = &pLib->InterfaceStat;
        }
 
-  pLib->e.R = &pLib->RData;
+       pLib->e.R = &pLib->RData;
 
        pLib->req_busy = 1;
        pLib->rc_ok    = ASSIGN_OK;
 
-       diva_create_parse_table (pLib);
+       diva_create_parse_table(pLib);
 
-       return ((diva_strace_library_interface_t*)pLib);
+       return ((diva_strace_library_interface_t *)pLib);
 }
 
-static int DivaSTraceLibraryStart (void* hLib) {
-  diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int DivaSTraceLibraryStart(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
-  return (SuperTraceASSIGN (pLib->hAdapter, pLib->buffer));
+       return (SuperTraceASSIGN(pLib->hAdapter, pLib->buffer));
 }
 
 /*
   Return (-1) on error
   Return (0) if was initiated or pending
   Return (1) if removal is complete
-  */
-static int DivaSTraceLibraryStop  (void* hLib) {
-  diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+*/
+static int DivaSTraceLibraryStop(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
-  if (!pLib->e.Id) { /* Was never started/assigned */
-    return (1);
-  }
+       if (!pLib->e.Id) { /* Was never started/assigned */
+               return (1);
+       }
 
-  switch (pLib->removal_state) {
-    case 0:
-      pLib->removal_state = 1;
-      ScheduleNextTraceRequest(pLib);
-      break;
+       switch (pLib->removal_state) {
+       case 0:
+               pLib->removal_state = 1;
+               ScheduleNextTraceRequest(pLib);
+               break;
 
-    case 3:
-      return (1);
-  }
+       case 3:
+               return (1);
+       }
 
-  return (0);
+       return (0);
 }
 
-static int SuperTraceLibraryFinit (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceLibraryFinit(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        if (pLib) {
                if (pLib->hAdapter) {
-                       SuperTraceCloseAdapter  (pLib->hAdapter);
+                       SuperTraceCloseAdapter(pLib->hAdapter);
                }
                return (0);
        }
        return (-1);
 }
 
-static void*   SuperTraceGetHandle (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static void *SuperTraceGetHandle(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
-  return (&pLib->e);
+       return (&pLib->e);
 }
 
 /*
-       After library handle object is gone in signaled state
-       this function should be called and will pick up incoming
-       IDI messages (return codes and indications).
-       */
-static int SuperTraceMessageInput (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+  After library handle object is gone in signaled state
+  this function should be called and will pick up incoming
+  IDI messages (return codes and indications).
+*/
+static int SuperTraceMessageInput(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        int ret = 0;
-  byte Rc, Ind;
+       byte Rc, Ind;
 
-  if (pLib->e.complete == 255) {
-    /*
-      Process return code
-      */
-    pLib->req_busy = 0;
-    Rc             = pLib->e.Rc;
-    pLib->e.Rc     = 0;
+       if (pLib->e.complete == 255) {
+               /*
+                 Process return code
+               */
+               pLib->req_busy = 0;
+               Rc             = pLib->e.Rc;
+               pLib->e.Rc     = 0;
 
-    if (pLib->removal_state == 2) {
-      pLib->removal_state = 3;
-      return (0);
-    }
+               if (pLib->removal_state == 2) {
+                       pLib->removal_state = 3;
+                       return (0);
+               }
 
                if (Rc != pLib->rc_ok) {
-      int ignore = 0;
-      /*
-        Auto-detect amount of events/channels and features
-        */
-      if (pLib->general_b_ch_event == 1) {
-        pLib->general_b_ch_event = 2;
-        ignore = 1;
-      } else if (pLib->general_fax_event == 1) {
-        pLib->general_fax_event = 2;
-        ignore = 1;
-      } else if (pLib->general_mdm_event == 1) {
-        pLib->general_mdm_event = 2;
-        ignore = 1;
-      } else if ((pLib->ChannelsTraceActive < pLib->Channels) && pLib->ChannelsTraceActive) {
-        pLib->ChannelsTraceActive = pLib->Channels;
-        ignore = 1;
-      } else if (pLib->ModemTraceActive < pLib->Channels) {
-        pLib->ModemTraceActive = pLib->Channels;
-        ignore = 1;
-      } else if (pLib->FaxTraceActive < pLib->Channels) {
-        pLib->FaxTraceActive = pLib->Channels;
-        ignore = 1;
-      } else if (pLib->audio_trace_init == 2) {
-        ignore = 1;
-        pLib->audio_trace_init = 1;
-      } else if (pLib->eye_pattern_pending) {
+                       int ignore = 0;
+                       /*
+                         Auto-detect amount of events/channels and features
+                       */
+                       if (pLib->general_b_ch_event == 1) {
+                               pLib->general_b_ch_event = 2;
+                               ignore = 1;
+                       } else if (pLib->general_fax_event == 1) {
+                               pLib->general_fax_event = 2;
+                               ignore = 1;
+                       } else if (pLib->general_mdm_event == 1) {
+                               pLib->general_mdm_event = 2;
+                               ignore = 1;
+                       } else if ((pLib->ChannelsTraceActive < pLib->Channels) && pLib->ChannelsTraceActive) {
+                               pLib->ChannelsTraceActive = pLib->Channels;
+                               ignore = 1;
+                       } else if (pLib->ModemTraceActive < pLib->Channels) {
+                               pLib->ModemTraceActive = pLib->Channels;
+                               ignore = 1;
+                       } else if (pLib->FaxTraceActive < pLib->Channels) {
+                               pLib->FaxTraceActive = pLib->Channels;
+                               ignore = 1;
+                       } else if (pLib->audio_trace_init == 2) {
+                               ignore = 1;
+                               pLib->audio_trace_init = 1;
+                       } else if (pLib->eye_pattern_pending) {
                                pLib->eye_pattern_pending =  0;
                                ignore = 1;
                        } else if (pLib->audio_tap_pending) {
                                pLib->audio_tap_pending = 0;
                                ignore = 1;
-      }
-
-      if (!ignore) {
-        return (-1); /* request failed */
-      }
-    } else {
-      if (pLib->general_b_ch_event == 1) {
-        pLib->ChannelsTraceActive = pLib->Channels;
-        pLib->general_b_ch_event = 2;
-      } else if (pLib->general_fax_event == 1) {
-        pLib->general_fax_event = 2;
-        pLib->FaxTraceActive = pLib->Channels;
-      } else if (pLib->general_mdm_event == 1) {
-        pLib->general_mdm_event = 2;
-        pLib->ModemTraceActive = pLib->Channels;
-      }
-    }
-    if (pLib->audio_trace_init == 2) {
-      pLib->audio_trace_init = 1;
-    }
-    pLib->rc_ok = 0xff; /* default OK after assign was done */
-    if ((ret = ScheduleNextTraceRequest(pLib))) {
-      return (-1);
-    }
-  } else {
-    /*
-      Process indication
-      Always 'RNR' indication if return code is pending
-      */
-    Ind         = pLib->e.Ind;
-    pLib->e.Ind = 0;
-    if (pLib->removal_state) {
-      pLib->e.RNum     = 0;
-      pLib->e.RNR      = 2;
-    } else if (pLib->req_busy) {
-      pLib->e.RNum     = 0;
-      pLib->e.RNR      = 1;
-    } else {
-      if (pLib->e.complete != 0x02) {
-        /*
-          Look-ahead call, set up buffers
-          */
-        pLib->e.RNum       = 1;
-        pLib->e.R->P       = (byte*)&pLib->buffer[0];
-        pLib->e.R->PLength = (word)(sizeof(pLib->buffer) - 1);
-
-      } else {
-        /*
-          Indication reception complete, process it now
-          */
-        byte* p = (byte*)&pLib->buffer[0];
-        pLib->buffer[pLib->e.R->PLength] = 0; /* terminate I.E. with zero */
-
-        switch (Ind) {
-          case MAN_COMBI_IND: {
-            int total_length    = pLib->e.R->PLength;
-            word  this_ind_length;
-
-            while (total_length > 3 && *p) {
-              Ind = *p++;
-              this_ind_length = (word)p[0] | ((word)p[1] << 8);
-              p += 2;
-
-              switch (Ind) {
-                case MAN_INFO_IND:
-                  if (process_idi_info (pLib, (diva_man_var_header_t*)p)) {
-                    return (-1);
-                  }
-                  break;
-                                       case MAN_EVENT_IND:
-                  if (process_idi_event (pLib, (diva_man_var_header_t*)p)) {
-                    return (-1);
-                  }
-                  break;
-                case MAN_TRACE_IND:
-                  if (pLib->trace_on == 1) {
-                    /*
-                      Ignore first trace event that is result of
-                      EVENT_ON operation
-                    */
-                    pLib->trace_on++;
-                  } else {
-                    /*
-                      Delivery XLOG buffer to application
-                      */
-                    if (pLib->user_proc_table.trace_proc) {
-                      (*(pLib->user_proc_table.trace_proc))(pLib->user_proc_table.user_context,
-                                                            &pLib->instance, pLib->Adapter,
-                                                            p, this_ind_length);
-                    }
-                  }
-                  break;
-                default:
-                  diva_mnt_internal_dprintf (0, DLI_ERR, "Unknown IDI Ind (DMA mode): %02x", Ind);
-              }
-              p += (this_ind_length+1);
-              total_length -= (4 + this_ind_length);
-            }
-          } break;
-          case MAN_INFO_IND:
-            if (process_idi_info (pLib, (diva_man_var_header_t*)p)) {
-              return (-1);
-            }
-            break;
-                                       case MAN_EVENT_IND:
-            if (process_idi_event (pLib, (diva_man_var_header_t*)p)) {
-              return (-1);
-            }
-            break;
-          case MAN_TRACE_IND:
-            if (pLib->trace_on == 1) {
-              /*
-                Ignore first trace event that is result of
-                EVENT_ON operation
-              */
-              pLib->trace_on++;
-            } else {
-              /*
-                Delivery XLOG buffer to application
-                */
-              if (pLib->user_proc_table.trace_proc) {
-                (*(pLib->user_proc_table.trace_proc))(pLib->user_proc_table.user_context,
-                                                      &pLib->instance, pLib->Adapter,
-                                                      p, pLib->e.R->PLength);
-              }
-            }
-            break;
-          default:
-            diva_mnt_internal_dprintf (0, DLI_ERR, "Unknown IDI Ind: %02x", Ind);
-        }
-      }
-    }
-  }
+                       }
+
+                       if (!ignore) {
+                               return (-1); /* request failed */
+                       }
+               } else {
+                       if (pLib->general_b_ch_event == 1) {
+                               pLib->ChannelsTraceActive = pLib->Channels;
+                               pLib->general_b_ch_event = 2;
+                       } else if (pLib->general_fax_event == 1) {
+                               pLib->general_fax_event = 2;
+                               pLib->FaxTraceActive = pLib->Channels;
+                       } else if (pLib->general_mdm_event == 1) {
+                               pLib->general_mdm_event = 2;
+                               pLib->ModemTraceActive = pLib->Channels;
+                       }
+               }
+               if (pLib->audio_trace_init == 2) {
+                       pLib->audio_trace_init = 1;
+               }
+               pLib->rc_ok = 0xff; /* default OK after assign was done */
+               if ((ret = ScheduleNextTraceRequest(pLib))) {
+                       return (-1);
+               }
+       } else {
+               /*
+                 Process indication
+                 Always 'RNR' indication if return code is pending
+               */
+               Ind         = pLib->e.Ind;
+               pLib->e.Ind = 0;
+               if (pLib->removal_state) {
+                       pLib->e.RNum    = 0;
+                       pLib->e.RNR     = 2;
+               } else if (pLib->req_busy) {
+                       pLib->e.RNum    = 0;
+                       pLib->e.RNR     = 1;
+               } else {
+                       if (pLib->e.complete != 0x02) {
+                               /*
+                                 Look-ahead call, set up buffers
+                               */
+                               pLib->e.RNum       = 1;
+                               pLib->e.R->P       = (byte *)&pLib->buffer[0];
+                               pLib->e.R->PLength = (word)(sizeof(pLib->buffer) - 1);
+
+                       } else {
+                               /*
+                                 Indication reception complete, process it now
+                               */
+                               byte *p = (byte *)&pLib->buffer[0];
+                               pLib->buffer[pLib->e.R->PLength] = 0; /* terminate I.E. with zero */
+
+                               switch (Ind) {
+                               case MAN_COMBI_IND: {
+                                       int total_length    = pLib->e.R->PLength;
+                                       word  this_ind_length;
+
+                                       while (total_length > 3 && *p) {
+                                               Ind = *p++;
+                                               this_ind_length = (word)p[0] | ((word)p[1] << 8);
+                                               p += 2;
+
+                                               switch (Ind) {
+                                               case MAN_INFO_IND:
+                                                       if (process_idi_info(pLib, (diva_man_var_header_t *)p)) {
+                                                               return (-1);
+                                                       }
+                                                       break;
+                                               case MAN_EVENT_IND:
+                                                       if (process_idi_event(pLib, (diva_man_var_header_t *)p)) {
+                                                               return (-1);
+                                                       }
+                                                       break;
+                                               case MAN_TRACE_IND:
+                                                       if (pLib->trace_on == 1) {
+                                                               /*
+                                                                 Ignore first trace event that is result of
+                                                                 EVENT_ON operation
+                                                               */
+                                                               pLib->trace_on++;
+                                                       } else {
+                                                               /*
+                                                                 Delivery XLOG buffer to application
+                                                               */
+                                                               if (pLib->user_proc_table.trace_proc) {
+                                                                       (*(pLib->user_proc_table.trace_proc))(pLib->user_proc_table.user_context,
+                                                                                                             &pLib->instance, pLib->Adapter,
+                                                                                                             p, this_ind_length);
+                                                               }
+                                                       }
+                                                       break;
+                                               default:
+                                                       diva_mnt_internal_dprintf(0, DLI_ERR, "Unknown IDI Ind (DMA mode): %02x", Ind);
+                                               }
+                                               p += (this_ind_length + 1);
+                                               total_length -= (4 + this_ind_length);
+                                       }
+                               } break;
+                               case MAN_INFO_IND:
+                                       if (process_idi_info(pLib, (diva_man_var_header_t *)p)) {
+                                               return (-1);
+                                       }
+                                       break;
+                               case MAN_EVENT_IND:
+                                       if (process_idi_event(pLib, (diva_man_var_header_t *)p)) {
+                                               return (-1);
+                                       }
+                                       break;
+                               case MAN_TRACE_IND:
+                                       if (pLib->trace_on == 1) {
+                                               /*
+                                                 Ignore first trace event that is result of
+                                                 EVENT_ON operation
+                                               */
+                                               pLib->trace_on++;
+                                       } else {
+                                               /*
+                                                 Delivery XLOG buffer to application
+                                               */
+                                               if (pLib->user_proc_table.trace_proc) {
+                                                       (*(pLib->user_proc_table.trace_proc))(pLib->user_proc_table.user_context,
+                                                                                             &pLib->instance, pLib->Adapter,
+                                                                                             p, pLib->e.R->PLength);
+                                               }
+                                       }
+                                       break;
+                               default:
+                                       diva_mnt_internal_dprintf(0, DLI_ERR, "Unknown IDI Ind: %02x", Ind);
+                               }
+                       }
+               }
+       }
 
        if ((ret = ScheduleNextTraceRequest(pLib))) {
                return (-1);
@@ -434,9 +434,9 @@ static int SuperTraceMessageInput (void* hLib) {
 }
 
 /*
-       Internal state machine responsible for scheduling of requests
-       */
-static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
+  Internal state machine responsible for scheduling of requests
+*/
+static int ScheduleNextTraceRequest(diva_strace_context_t *pLib) {
        char name[64];
        int ret = 0;
        int i;
@@ -445,50 +445,50 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
                return (0);
        }
 
-  if (pLib->removal_state == 1) {
-               if (SuperTraceREMOVE (pLib->hAdapter)) {
-      pLib->removal_state = 3;
-    } else {
-      pLib->req_busy = 1;
-      pLib->removal_state = 2;
-    }
-    return (0);
-  }
+       if (pLib->removal_state == 1) {
+               if (SuperTraceREMOVE(pLib->hAdapter)) {
+                       pLib->removal_state = 3;
+               } else {
+                       pLib->req_busy = 1;
+                       pLib->removal_state = 2;
+               }
+               return (0);
+       }
 
-  if (pLib->removal_state) {
-    return (0);
-  }
+       if (pLib->removal_state) {
+               return (0);
+       }
 
-  if (!pLib->general_b_ch_event) {
+       if (!pLib->general_b_ch_event) {
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, "State\\B Event", pLib->buffer))) {
-      return (-1);
-    }
-    pLib->general_b_ch_event = 1;
+                       return (-1);
+               }
+               pLib->general_b_ch_event = 1;
                pLib->req_busy = 1;
                return (0);
-  }
+       }
 
-  if (!pLib->general_fax_event) {
+       if (!pLib->general_fax_event) {
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, "State\\FAX Event", pLib->buffer))) {
-      return (-1);
-    }
-    pLib->general_fax_event = 1;
+                       return (-1);
+               }
+               pLib->general_fax_event = 1;
                pLib->req_busy = 1;
                return (0);
-  }
+       }
 
-  if (!pLib->general_mdm_event) {
+       if (!pLib->general_mdm_event) {
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, "State\\Modem Event", pLib->buffer))) {
-      return (-1);
-    }
-    pLib->general_mdm_event = 1;
+                       return (-1);
+               }
+               pLib->general_mdm_event = 1;
                pLib->req_busy = 1;
                return (0);
-  }
+       }
 
        if (pLib->ChannelsTraceActive < pLib->Channels) {
                pLib->ChannelsTraceActive++;
-               sprintf (name, "State\\B%d\\Line", pLib->ChannelsTraceActive);
+               sprintf(name, "State\\B%d\\Line", pLib->ChannelsTraceActive);
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->ChannelsTraceActive--;
                        return (-1);
@@ -499,7 +499,7 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (pLib->ModemTraceActive < pLib->Channels) {
                pLib->ModemTraceActive++;
-               sprintf (name, "State\\B%d\\Modem\\Event", pLib->ModemTraceActive);
+               sprintf(name, "State\\B%d\\Modem\\Event", pLib->ModemTraceActive);
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->ModemTraceActive--;
                        return (-1);
@@ -510,7 +510,7 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (pLib->FaxTraceActive < pLib->Channels) {
                pLib->FaxTraceActive++;
-               sprintf (name, "State\\B%d\\FAX\\Event", pLib->FaxTraceActive);
+               sprintf(name, "State\\B%d\\FAX\\Event", pLib->FaxTraceActive);
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->FaxTraceActive--;
                        return (-1);
@@ -521,12 +521,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (!pLib->trace_mask_init) {
                word tmp = 0x0000;
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\Event Enable",
-                                                                                                               &tmp,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(tmp))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\Event Enable",
+                                      &tmp,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(tmp))) {
                        return (-1);
                }
                pLib->trace_mask_init = 1;
@@ -536,12 +536,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (!pLib->audio_trace_init) {
                dword tmp = 0x00000000;
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\AudioCh# Enable",
-                                                                                                               &tmp,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(tmp))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\AudioCh# Enable",
+                                      &tmp,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(tmp))) {
                        return (-1);
                }
                pLib->audio_trace_init = 2;
@@ -551,12 +551,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (!pLib->bchannel_init) {
                dword tmp = 0x00000000;
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\B-Ch# Enable",
-                                                                                                               &tmp,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(tmp))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\B-Ch# Enable",
+                                      &tmp,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(tmp))) {
                        return (-1);
                }
                pLib->bchannel_init = 1;
@@ -566,12 +566,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (!pLib->trace_length_init) {
                word tmp = 30;
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\Max Log Length",
-                                                                                                               &tmp,
-                                                                                                               0x82, /* MI_UINT */
-                                                                                                               sizeof(tmp))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\Max Log Length",
+                                      &tmp,
+                                      0x82, /* MI_UINT */
+                                       sizeof(tmp))) {
                        return (-1);
                }
                pLib->trace_length_init = 1;
@@ -580,9 +580,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (!pLib->trace_on) {
-               if (SuperTraceTraceOnRequest (pLib->hAdapter,
-                                                                                                                                       "Trace\\Log Buffer",
-                                                                                                                                       pLib->buffer)) {
+               if (SuperTraceTraceOnRequest(pLib->hAdapter,
+                                            "Trace\\Log Buffer",
+                                            pLib->buffer)) {
                        return (-1);
                }
                pLib->trace_on = 1;
@@ -591,12 +591,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->trace_event_mask != pLib->current_trace_event_mask) {
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\Event Enable",
-                                                                                                               &pLib->trace_event_mask,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(pLib->trace_event_mask))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\Event Enable",
+                                      &pLib->trace_event_mask,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(pLib->trace_event_mask))) {
                        return (-1);
                }
                pLib->current_trace_event_mask = pLib->trace_event_mask;
@@ -605,12 +605,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if ((pLib->audio_tap_pending >= 0) && (pLib->audio_tap_mask != pLib->current_audio_tap_mask)) {
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\AudioCh# Enable",
-                                                                                                               &pLib->audio_tap_mask,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(pLib->audio_tap_mask))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\AudioCh# Enable",
+                                      &pLib->audio_tap_mask,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(pLib->audio_tap_mask))) {
                        return (-1);
                }
                pLib->current_audio_tap_mask = pLib->audio_tap_mask;
@@ -620,12 +620,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if ((pLib->eye_pattern_pending >= 0) && (pLib->audio_tap_mask != pLib->current_eye_pattern_mask)) {
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\EyeCh# Enable",
-                                                                                                               &pLib->audio_tap_mask,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(pLib->audio_tap_mask))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\EyeCh# Enable",
+                                      &pLib->audio_tap_mask,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(pLib->audio_tap_mask))) {
                        return (-1);
                }
                pLib->current_eye_pattern_mask = pLib->audio_tap_mask;
@@ -635,12 +635,12 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->bchannel_trace_mask != pLib->current_bchannel_trace_mask) {
-               if (SuperTraceWriteVar (pLib->hAdapter,
-                                                                                                               pLib->buffer,
-                                                                                                               "Trace\\B-Ch# Enable",
-                                                                                                               &pLib->bchannel_trace_mask,
-                                                                                                               0x87, /* MI_BITFLD */
-                                                                                                               sizeof(pLib->bchannel_trace_mask))) {
+               if (SuperTraceWriteVar(pLib->hAdapter,
+                                      pLib->buffer,
+                                      "Trace\\B-Ch# Enable",
+                                      &pLib->bchannel_trace_mask,
+                                      0x87, /* MI_BITFLD */
+                                       sizeof(pLib->bchannel_trace_mask))) {
                        return (-1);
                }
                pLib->current_bchannel_trace_mask = pLib->bchannel_trace_mask;
@@ -649,9 +649,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (!pLib->trace_events_down) {
-               if (SuperTraceTraceOnRequest (pLib->hAdapter,
-                                                                                                                                       "Events Down",
-                                                                                                                                       pLib->buffer)) {
+               if (SuperTraceTraceOnRequest(pLib->hAdapter,
+                                            "Events Down",
+                                            pLib->buffer)) {
                        return (-1);
                }
                pLib->trace_events_down = 1;
@@ -660,9 +660,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (!pLib->l1_trace) {
-               if (SuperTraceTraceOnRequest (pLib->hAdapter,
-                                                                                                                                       "State\\Layer1",
-                                                                                                                                       pLib->buffer)) {
+               if (SuperTraceTraceOnRequest(pLib->hAdapter,
+                                            "State\\Layer1",
+                                            pLib->buffer)) {
                        return (-1);
                }
                pLib->l1_trace = 1;
@@ -671,9 +671,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (!pLib->l2_trace) {
-               if (SuperTraceTraceOnRequest (pLib->hAdapter,
-                                                                                                                                       "State\\Layer2 No1",
-                                                                                                                                       pLib->buffer)) {
+               if (SuperTraceTraceOnRequest(pLib->hAdapter,
+                                            "State\\Layer2 No1",
+                                            pLib->buffer)) {
                        return (-1);
                }
                pLib->l2_trace = 1;
@@ -683,8 +683,8 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        for (i = 0; i < 30; i++) {
                if (pLib->pending_line_status & (1L << i)) {
-                       sprintf (name, "State\\B%d", i+1);
-                       if (SuperTraceReadRequest (pLib->hAdapter, name, pLib->buffer)) {
+                       sprintf(name, "State\\B%d", i + 1);
+                       if (SuperTraceReadRequest(pLib->hAdapter, name, pLib->buffer)) {
                                return (-1);
                        }
                        pLib->pending_line_status &= ~(1L << i);
@@ -692,8 +692,8 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
                        return (0);
                }
                if (pLib->pending_modem_status & (1L << i)) {
-                       sprintf (name, "State\\B%d\\Modem", i+1);
-                       if (SuperTraceReadRequest (pLib->hAdapter, name, pLib->buffer)) {
+                       sprintf(name, "State\\B%d\\Modem", i + 1);
+                       if (SuperTraceReadRequest(pLib->hAdapter, name, pLib->buffer)) {
                                return (-1);
                        }
                        pLib->pending_modem_status &= ~(1L << i);
@@ -701,8 +701,8 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
                        return (0);
                }
                if (pLib->pending_fax_status & (1L << i)) {
-                       sprintf (name, "State\\B%d\\FAX", i+1);
-                       if (SuperTraceReadRequest (pLib->hAdapter, name, pLib->buffer)) {
+                       sprintf(name, "State\\B%d\\FAX", i + 1);
+                       if (SuperTraceReadRequest(pLib->hAdapter, name, pLib->buffer)) {
                                return (-1);
                        }
                        pLib->pending_fax_status &= ~(1L << i);
@@ -710,8 +710,8 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
                        return (0);
                }
                if (pLib->clear_call_command & (1L << i)) {
-                       sprintf (name, "State\\B%d\\Clear Call", i+1);
-                       if (SuperTraceExecuteRequest (pLib->hAdapter, name, pLib->buffer)) {
+                       sprintf(name, "State\\B%d\\Clear Call", i + 1);
+                       if (SuperTraceExecuteRequest(pLib->hAdapter, name, pLib->buffer)) {
                                return (-1);
                        }
                        pLib->clear_call_command &= ~(1L << i);
@@ -721,9 +721,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->outgoing_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\Outgoing Calls",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\Outgoing Calls",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->outgoing_ifc_stats = 0;
@@ -732,9 +732,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->incoming_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\Incoming Calls",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\Incoming Calls",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->incoming_ifc_stats = 0;
@@ -743,9 +743,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->modem_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\Modem",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\Modem",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->modem_ifc_stats = 0;
@@ -754,9 +754,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->fax_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\FAX",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\FAX",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->fax_ifc_stats = 0;
@@ -765,9 +765,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->b1_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\B-Layer1",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\B-Layer1",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->b1_ifc_stats = 0;
@@ -776,9 +776,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->b2_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\B-Layer2",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\B-Layer2",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->b2_ifc_stats = 0;
@@ -787,9 +787,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->d1_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\D-Layer1",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\D-Layer1",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->d1_ifc_stats = 0;
@@ -798,9 +798,9 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
 
        if (pLib->d2_ifc_stats) {
-               if (SuperTraceReadRequest (pLib->hAdapter,
-                                                                                                                        "Statistics\\D-Layer2",
-                                                                                                                        pLib->buffer)) {
+               if (SuperTraceReadRequest(pLib->hAdapter,
+                                         "Statistics\\D-Layer2",
+                                         pLib->buffer)) {
                        return (-1);
                }
                pLib->d2_ifc_stats = 0;
@@ -810,7 +810,7 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
 
        if (!pLib->IncomingCallsCallsActive) {
                pLib->IncomingCallsCallsActive = 1;
-               sprintf (name, "%s", "Statistics\\Incoming Calls\\Calls");
+               sprintf(name, "%s", "Statistics\\Incoming Calls\\Calls");
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->IncomingCallsCallsActive = 0;
                        return (-1);
@@ -820,7 +820,7 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
        if (!pLib->IncomingCallsConnectedActive) {
                pLib->IncomingCallsConnectedActive = 1;
-               sprintf (name, "%s", "Statistics\\Incoming Calls\\Connected");
+               sprintf(name, "%s", "Statistics\\Incoming Calls\\Connected");
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->IncomingCallsConnectedActive = 0;
                        return (-1);
@@ -830,7 +830,7 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
        if (!pLib->OutgoingCallsCallsActive) {
                pLib->OutgoingCallsCallsActive = 1;
-               sprintf (name, "%s", "Statistics\\Outgoing Calls\\Calls");
+               sprintf(name, "%s", "Statistics\\Outgoing Calls\\Calls");
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->OutgoingCallsCallsActive = 0;
                        return (-1);
@@ -840,7 +840,7 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        }
        if (!pLib->OutgoingCallsConnectedActive) {
                pLib->OutgoingCallsConnectedActive = 1;
-               sprintf (name, "%s", "Statistics\\Outgoing Calls\\Connected");
+               sprintf(name, "%s", "Statistics\\Outgoing Calls\\Connected");
                if ((ret = SuperTraceTraceOnRequest(pLib->hAdapter, name, pLib->buffer))) {
                        pLib->OutgoingCallsConnectedActive = 0;
                        return (-1);
@@ -852,241 +852,241 @@ static int ScheduleNextTraceRequest (diva_strace_context_t* pLib) {
        return (0);
 }
 
-static int process_idi_event (diva_strace_context_t* pLib,
-                               diva_man_var_header_t* pVar) {
-       const char* path = (char*)&pVar->path_length+1;
+static int process_idi_event(diva_strace_context_t *pLib,
+                            diva_man_var_header_t *pVar) {
+       const char *path = (char *)&pVar->path_length + 1;
        char name[64];
        int i;
 
        if (!strncmp("State\\B Event", path, pVar->path_length)) {
-    dword ch_id;
-    if (!diva_trace_read_variable (pVar, &ch_id)) {
-      if (!pLib->line_init_event && !pLib->pending_line_status) {
-        for (i = 1; i <= pLib->Channels; i++) {
-          diva_line_event(pLib, i);
-        }
-        return (0);
-      } else if (ch_id && ch_id <= pLib->Channels) {
-        return (diva_line_event(pLib, (int)ch_id));
-      }
-      return (0);
-    }
-    return (-1);
-  }
+               dword ch_id;
+               if (!diva_trace_read_variable(pVar, &ch_id)) {
+                       if (!pLib->line_init_event && !pLib->pending_line_status) {
+                               for (i = 1; i <= pLib->Channels; i++) {
+                                       diva_line_event(pLib, i);
+                               }
+                               return (0);
+                       } else if (ch_id && ch_id <= pLib->Channels) {
+                               return (diva_line_event(pLib, (int)ch_id));
+                       }
+                       return (0);
+               }
+               return (-1);
+       }
 
        if (!strncmp("State\\FAX Event", path, pVar->path_length)) {
-    dword ch_id;
-    if (!diva_trace_read_variable (pVar, &ch_id)) {
-      if (!pLib->pending_fax_status && !pLib->fax_init_event) {
-        for (i = 1; i <= pLib->Channels; i++) {
-          diva_fax_event(pLib, i);
-        }
-        return (0);
-      } else if (ch_id && ch_id <= pLib->Channels) {
-        return (diva_fax_event(pLib, (int)ch_id));
-      }
-      return (0);
-    }
-    return (-1);
-  }
+               dword ch_id;
+               if (!diva_trace_read_variable(pVar, &ch_id)) {
+                       if (!pLib->pending_fax_status && !pLib->fax_init_event) {
+                               for (i = 1; i <= pLib->Channels; i++) {
+                                       diva_fax_event(pLib, i);
+                               }
+                               return (0);
+                       } else if (ch_id && ch_id <= pLib->Channels) {
+                               return (diva_fax_event(pLib, (int)ch_id));
+                       }
+                       return (0);
+               }
+               return (-1);
+       }
 
        if (!strncmp("State\\Modem Event", path, pVar->path_length)) {
-    dword ch_id;
-    if (!diva_trace_read_variable (pVar, &ch_id)) {
-      if (!pLib->pending_modem_status && !pLib->modem_init_event) {
-        for (i = 1; i <= pLib->Channels; i++) {
-          diva_modem_event(pLib, i);
-        }
-        return (0);
-      } else if (ch_id && ch_id <= pLib->Channels) {
-        return (diva_modem_event(pLib, (int)ch_id));
-      }
-      return (0);
-    }
-    return (-1);
-  }
+               dword ch_id;
+               if (!diva_trace_read_variable(pVar, &ch_id)) {
+                       if (!pLib->pending_modem_status && !pLib->modem_init_event) {
+                               for (i = 1; i <= pLib->Channels; i++) {
+                                       diva_modem_event(pLib, i);
+                               }
+                               return (0);
+                       } else if (ch_id && ch_id <= pLib->Channels) {
+                               return (diva_modem_event(pLib, (int)ch_id));
+                       }
+                       return (0);
+               }
+               return (-1);
+       }
 
        /*
-               First look for Line Event
-               */
+         First look for Line Event
+       */
        for (i = 1; i <= pLib->Channels; i++) {
-               sprintf (name, "State\\B%d\\Line", i);
-               if (find_var (pVar, name)) {
+               sprintf(name, "State\\B%d\\Line", i);
+               if (find_var(pVar, name)) {
                        return (diva_line_event(pLib, i));
                }
        }
 
        /*
-               Look for Moden Progress Event
-               */
+         Look for Moden Progress Event
+       */
        for (i = 1; i <= pLib->Channels; i++) {
-               sprintf (name, "State\\B%d\\Modem\\Event", i);
-               if (find_var (pVar, name)) {
-                       return (diva_modem_event (pLib, i));
+               sprintf(name, "State\\B%d\\Modem\\Event", i);
+               if (find_var(pVar, name)) {
+                       return (diva_modem_event(pLib, i));
                }
        }
 
        /*
-               Look for Fax Event
-               */
+         Look for Fax Event
+       */
        for (i = 1; i <= pLib->Channels; i++) {
-               sprintf (name, "State\\B%d\\FAX\\Event", i);
-               if (find_var (pVar, name)) {
-                       return (diva_fax_event (pLib, i));
+               sprintf(name, "State\\B%d\\FAX\\Event", i);
+               if (find_var(pVar, name)) {
+                       return (diva_fax_event(pLib, i));
                }
        }
 
        /*
-               Notification about loss of events
-               */
+         Notification about loss of events
+       */
        if (!strncmp("Events Down", path, pVar->path_length)) {
                if (pLib->trace_events_down == 1) {
                        pLib->trace_events_down = 2;
                } else {
-                       diva_trace_error (pLib, 1, "Events Down", 0);
+                       diva_trace_error(pLib, 1, "Events Down", 0);
                }
                return (0);
        }
 
        if (!strncmp("State\\Layer1", path, pVar->path_length)) {
-               diva_strace_read_asz  (pVar, &pLib->lines[0].pInterface->Layer1[0]);
+               diva_strace_read_asz(pVar, &pLib->lines[0].pInterface->Layer1[0]);
                if (pLib->l1_trace == 1) {
                        pLib->l1_trace = 2;
                } else {
-                       diva_trace_notify_user (pLib, 0, DIVA_SUPER_TRACE_INTERFACE_CHANGE);
+                       diva_trace_notify_user(pLib, 0, DIVA_SUPER_TRACE_INTERFACE_CHANGE);
                }
                return (0);
        }
        if (!strncmp("State\\Layer2 No1", path, pVar->path_length)) {
-               chartmp = &pLib->lines[0].pInterface->Layer2[0];
+               char *tmp = &pLib->lines[0].pInterface->Layer2[0];
                dword l2_state;
                if (diva_strace_read_uint(pVar, &l2_state))
                        return -1;
 
                switch (l2_state) {
-                       case 0:
-                               strcpy (tmp, "Idle");
-                               break;
-                       case 1:
-                               strcpy (tmp, "Layer2 UP");
-                               break;
-                       case 2:
-                               strcpy (tmp, "Layer2 Disconnecting");
-                               break;
-                       case 3:
-                               strcpy (tmp, "Layer2 Connecting");
-                               break;
-                       case 4:
-                               strcpy (tmp, "SPID Initializing");
-                               break;
-                       case 5:
-                               strcpy (tmp, "SPID Initialised");
-                               break;
-                       case 6:
-                               strcpy (tmp, "Layer2 Connecting");
-                               break;
-
-                       case  7:
-                               strcpy (tmp, "Auto SPID Stopped");
-                               break;
-
-                       case  8:
-                               strcpy (tmp, "Auto SPID Idle");
-                               break;
-
-                       case  9:
-                               strcpy (tmp, "Auto SPID Requested");
-                               break;
-
-                       case  10:
-                               strcpy (tmp, "Auto SPID Delivery");
-                               break;
-
-                       case 11:
-                               strcpy (tmp, "Auto SPID Complete");
-                               break;
-
-                       default:
-                               sprintf (tmp, "U:%d", (int)l2_state);
+               case 0:
+                       strcpy(tmp, "Idle");
+                       break;
+               case 1:
+                       strcpy(tmp, "Layer2 UP");
+                       break;
+               case 2:
+                       strcpy(tmp, "Layer2 Disconnecting");
+                       break;
+               case 3:
+                       strcpy(tmp, "Layer2 Connecting");
+                       break;
+               case 4:
+                       strcpy(tmp, "SPID Initializing");
+                       break;
+               case 5:
+                       strcpy(tmp, "SPID Initialised");
+                       break;
+               case 6:
+                       strcpy(tmp, "Layer2 Connecting");
+                       break;
+
+               case  7:
+                       strcpy(tmp, "Auto SPID Stopped");
+                       break;
+
+               case  8:
+                       strcpy(tmp, "Auto SPID Idle");
+                       break;
+
+               case  9:
+                       strcpy(tmp, "Auto SPID Requested");
+                       break;
+
+               case  10:
+                       strcpy(tmp, "Auto SPID Delivery");
+                       break;
+
+               case 11:
+                       strcpy(tmp, "Auto SPID Complete");
+                       break;
+
+               default:
+                       sprintf(tmp, "U:%d", (int)l2_state);
                }
                if (pLib->l2_trace == 1) {
                        pLib->l2_trace = 2;
                } else {
-                       diva_trace_notify_user (pLib, 0, DIVA_SUPER_TRACE_INTERFACE_CHANGE);
+                       diva_trace_notify_user(pLib, 0, DIVA_SUPER_TRACE_INTERFACE_CHANGE);
                }
                return (0);
        }
 
        if (!strncmp("Statistics\\Incoming Calls\\Calls", path, pVar->path_length) ||
-                       !strncmp("Statistics\\Incoming Calls\\Connected", path, pVar->path_length)) {
-               return (SuperTraceGetIncomingCallStatistics (pLib));
+           !strncmp("Statistics\\Incoming Calls\\Connected", path, pVar->path_length)) {
+               return (SuperTraceGetIncomingCallStatistics(pLib));
        }
 
        if (!strncmp("Statistics\\Outgoing Calls\\Calls", path, pVar->path_length) ||
-                       !strncmp("Statistics\\Outgoing Calls\\Connected", path, pVar->path_length)) {
-               return (SuperTraceGetOutgoingCallStatistics (pLib));
+           !strncmp("Statistics\\Outgoing Calls\\Connected", path, pVar->path_length)) {
+               return (SuperTraceGetOutgoingCallStatistics(pLib));
        }
 
        return (-1);
 }
 
-static int diva_line_event (diva_strace_context_t* pLib, int Channel) {
-       pLib->pending_line_status |= (1L << (Channel-1));
+static int diva_line_event(diva_strace_context_t *pLib, int Channel) {
+       pLib->pending_line_status |= (1L << (Channel - 1));
        return (0);
 }
 
-static int diva_modem_event (diva_strace_context_t* pLib, int Channel) {
-       pLib->pending_modem_status |= (1L << (Channel-1));
+static int diva_modem_event(diva_strace_context_t *pLib, int Channel) {
+       pLib->pending_modem_status |= (1L << (Channel - 1));
        return (0);
 }
 
-static int diva_fax_event (diva_strace_context_t* pLib, int Channel) {
-       pLib->pending_fax_status |= (1L << (Channel-1));
+static int diva_fax_event(diva_strace_context_t *pLib, int Channel) {
+       pLib->pending_fax_status |= (1L << (Channel - 1));
        return (0);
 }
 
 /*
-       Process INFO indications that arrive from the card
-       Uses path of first I.E. to detect the source of the
-       infication
-       */
-static int process_idi_info  (diva_strace_context_t* pLib,
-                                                                                                                       diva_man_var_header_t* pVar) {
-       const char* path = (char*)&pVar->path_length+1;
+  Process INFO indications that arrive from the card
+  Uses path of first I.E. to detect the source of the
+  infication
+*/
+static int process_idi_info(diva_strace_context_t *pLib,
+                           diva_man_var_header_t *pVar) {
+       const char *path = (char *)&pVar->path_length + 1;
        char name[64];
        int i, len;
 
        /*
-               First look for Modem Status Info
-               */
+         First look for Modem Status Info
+       */
        for (i = pLib->Channels; i > 0; i--) {
-               len = sprintf (name, "State\\B%d\\Modem", i);
+               len = sprintf(name, "State\\B%d\\Modem", i);
                if (!strncmp(name, path, len)) {
-                       return (diva_modem_info (pLib, i, pVar));
+                       return (diva_modem_info(pLib, i, pVar));
                }
        }
 
        /*
-               Look for Fax Status Info
-               */
+         Look for Fax Status Info
+       */
        for (i = pLib->Channels; i > 0; i--) {
-               len = sprintf (name, "State\\B%d\\FAX", i);
+               len = sprintf(name, "State\\B%d\\FAX", i);
                if (!strncmp(name, path, len)) {
-                       return (diva_fax_info (pLib, i, pVar));
+                       return (diva_fax_info(pLib, i, pVar));
                }
        }
 
        /*
-               Look for Line Status Info
-               */
+         Look for Line Status Info
+       */
        for (i = pLib->Channels; i > 0; i--) {
-               len = sprintf (name, "State\\B%d", i);
+               len = sprintf(name, "State\\B%d", i);
                if (!strncmp(name, path, len)) {
-                       return (diva_line_info (pLib, i, pVar));
+                       return (diva_line_info(pLib, i, pVar));
                }
        }
 
-       if (!diva_ifc_statistics (pLib, pVar)) {
+       if (!diva_ifc_statistics(pLib, pVar)) {
                return (0);
        }
 
@@ -1094,38 +1094,38 @@ static int process_idi_info  (diva_strace_context_t* pLib,
 }
 
 /*
-       MODEM INSTANCE STATE UPDATE
-
-       Update Modem Status Information and issue notification to user,
-       that will inform about change in the state of modem instance, that is
-       associuated with this channel
-       */
-static int diva_modem_info (diva_strace_context_t* pLib,
-                                                                                                               int Channel,
-                                                                                                               diva_man_var_header_t* pVar) {
-       diva_man_var_header_tcur;
+  MODEM INSTANCE STATE UPDATE
+
+  Update Modem Status Information and issue notification to user,
+  that will inform about change in the state of modem instance, that is
+  associuated with this channel
+*/
+static int diva_modem_info(diva_strace_context_t *pLib,
+                          int Channel,
+                          diva_man_var_header_t *pVar) {
+       diva_man_var_header_t *cur;
        int i, nr = Channel - 1;
 
        for (i  = pLib->modem_parse_entry_first[nr];
-                        i <= pLib->modem_parse_entry_last[nr]; i++) {
-               if ((cur = find_var (pVar, pLib->parse_table[i].path))) {
-                       if (diva_trace_read_variable (cur, pLib->parse_table[i].variable)) {
-                               diva_trace_error (pLib, -3 , __FILE__, __LINE__);
+            i <= pLib->modem_parse_entry_last[nr]; i++) {
+               if ((cur = find_var(pVar, pLib->parse_table[i].path))) {
+                       if (diva_trace_read_variable(cur, pLib->parse_table[i].variable)) {
+                               diva_trace_error(pLib, -3, __FILE__, __LINE__);
                                return (-1);
                        }
                } else {
-                       diva_trace_error (pLib, -2 , __FILE__, __LINE__);
+                       diva_trace_error(pLib, -2, __FILE__, __LINE__);
                        return (-1);
                }
        }
 
        /*
-               We do not use first event to notify user - this is the event that is
-               generated as result of EVENT ON operation and is used only to initialize
-               internal variables of application
-               */
+         We do not use first event to notify user - this is the event that is
+         generated as result of EVENT ON operation and is used only to initialize
+         internal variables of application
+       */
        if (pLib->modem_init_event & (1L << nr)) {
-               diva_trace_notify_user (pLib, nr, DIVA_SUPER_TRACE_NOTIFY_MODEM_CHANGE);
+               diva_trace_notify_user(pLib, nr, DIVA_SUPER_TRACE_NOTIFY_MODEM_CHANGE);
        } else {
                pLib->modem_init_event |= (1L << nr);
        }
@@ -1133,32 +1133,32 @@ static int diva_modem_info (diva_strace_context_t* pLib,
        return (0);
 }
 
-static int diva_fax_info (diva_strace_context_t* pLib,
-                                                                                                       int Channel,
-                                                                                                       diva_man_var_header_t* pVar) {
-       diva_man_var_header_tcur;
+static int diva_fax_info(diva_strace_context_t *pLib,
+                        int Channel,
+                        diva_man_var_header_t *pVar) {
+       diva_man_var_header_t *cur;
        int i, nr = Channel - 1;
 
        for (i  = pLib->fax_parse_entry_first[nr];
-                        i <= pLib->fax_parse_entry_last[nr]; i++) {
-               if ((cur = find_var (pVar, pLib->parse_table[i].path))) {
-                       if (diva_trace_read_variable (cur, pLib->parse_table[i].variable)) {
-                               diva_trace_error (pLib, -3 , __FILE__, __LINE__);
+            i <= pLib->fax_parse_entry_last[nr]; i++) {
+               if ((cur = find_var(pVar, pLib->parse_table[i].path))) {
+                       if (diva_trace_read_variable(cur, pLib->parse_table[i].variable)) {
+                               diva_trace_error(pLib, -3, __FILE__, __LINE__);
                                return (-1);
                        }
                } else {
-                       diva_trace_error (pLib, -2 , __FILE__, __LINE__);
+                       diva_trace_error(pLib, -2, __FILE__, __LINE__);
                        return (-1);
                }
        }
 
        /*
-               We do not use first event to notify user - this is the event that is
-               generated as result of EVENT ON operation and is used only to initialize
-               internal variables of application
-               */
+         We do not use first event to notify user - this is the event that is
+         generated as result of EVENT ON operation and is used only to initialize
+         internal variables of application
+       */
        if (pLib->fax_init_event & (1L << nr)) {
-               diva_trace_notify_user (pLib, nr, DIVA_SUPER_TRACE_NOTIFY_FAX_CHANGE);
+               diva_trace_notify_user(pLib, nr, DIVA_SUPER_TRACE_NOTIFY_FAX_CHANGE);
        } else {
                pLib->fax_init_event |= (1L << nr);
        }
@@ -1167,43 +1167,43 @@ static int diva_fax_info (diva_strace_context_t* pLib,
 }
 
 /*
-       LINE STATE UPDATE
-       Update Line Status Information and issue notification to user,
-       that will inform about change in the line state.
-       */
-static int diva_line_info  (diva_strace_context_t* pLib,
-                                                                                                               int Channel,
-                                                                                                               diva_man_var_header_t* pVar) {
-       diva_man_var_header_tcur;
+  LINE STATE UPDATE
+  Update Line Status Information and issue notification to user,
+  that will inform about change in the line state.
+*/
+static int diva_line_info(diva_strace_context_t *pLib,
+                         int Channel,
+                         diva_man_var_header_t *pVar) {
+       diva_man_var_header_t *cur;
        int i, nr = Channel - 1;
 
-       for (i  = pLib->line_parse_entry_first[nr];
-                        i <= pLib->line_parse_entry_last[nr]; i++) {
-               if ((cur = find_var (pVar, pLib->parse_table[i].path))) {
-                       if (diva_trace_read_variable (cur, pLib->parse_table[i].variable)) {
-                               diva_trace_error (pLib, -3 , __FILE__, __LINE__);
+       for (i = pLib->line_parse_entry_first[nr];
+            i <= pLib->line_parse_entry_last[nr]; i++) {
+               if ((cur = find_var(pVar, pLib->parse_table[i].path))) {
+                       if (diva_trace_read_variable(cur, pLib->parse_table[i].variable)) {
+                               diva_trace_error(pLib, -3, __FILE__, __LINE__);
                                return (-1);
                        }
                } else {
-                       diva_trace_error (pLib, -2 , __FILE__, __LINE__);
+                       diva_trace_error(pLib, -2 , __FILE__, __LINE__);
                        return (-1);
                }
        }
 
        /*
-               We do not use first event to notify user - this is the event that is
-               generated as result of EVENT ON operation and is used only to initialize
-               internal variables of application
+         We do not use first event to notify user - this is the event that is
+         generated as result of EVENT ON operation and is used only to initialize
+         internal variables of application
 
-               Exception is is if the line is "online". In this case we have to notify
-               user about this confition.
-               */
+         Exception is is if the line is "online". In this case we have to notify
+         user about this confition.
+       */
        if (pLib->line_init_event & (1L << nr)) {
-               diva_trace_notify_user (pLib, nr, DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE);
+               diva_trace_notify_user(pLib, nr, DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE);
        } else {
                pLib->line_init_event |= (1L << nr);
-               if (strcmp (&pLib->lines[nr].Line[0], "Idle")) {
-                       diva_trace_notify_user (pLib, nr, DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE);
+               if (strcmp(&pLib->lines[nr].Line[0], "Idle")) {
+                       diva_trace_notify_user(pLib, nr, DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE);
                }
        }
 
@@ -1211,49 +1211,49 @@ static int diva_line_info  (diva_strace_context_t* pLib,
 }
 
 /*
-       Move position to next vatianle in the chain
-       */
-static diva_man_var_header_t* get_next_var (diva_man_var_header_t* pVar) {
-       byte* msg   = (byte*)pVar;
-       bytestart;
+  Move position to next vatianle in the chain
+*/
+static diva_man_var_header_t *get_next_var(diva_man_var_header_t *pVar) {
+       byte *msg = (byte *)pVar;
+       byte *start;
        int msg_length;
 
        if (*msg != ESC) return NULL;
 
        start = msg + 2;
-       msg_length = *(msg+1);
-       msg = (start+msg_length);
+       msg_length = *(msg + 1);
+       msg = (start + msg_length);
 
        if (*msg != ESC) return NULL;
 
-       return ((diva_man_var_header_t*)msg);
+       return ((diva_man_var_header_t *)msg);
 }
 
 /*
-       Move position to variable with given name
-       */
-static diva_man_var_header_t* find_var (diva_man_var_header_t* pVar,
-                                                                                                                                                               const char* name) {
-       const charpath;
+  Move position to variable with given name
+*/
+static diva_man_var_header_t *find_var(diva_man_var_header_t *pVar,
+                                      const char *name) {
+       const char *path;
 
        do {
-               path = (char*)&pVar->path_length+1;
+               path = (char *)&pVar->path_length + 1;
 
-               if (!strncmp (name, path, pVar->path_length)) {
+               if (!strncmp(name, path, pVar->path_length)) {
                        break;
                }
-       } while ((pVar = get_next_var (pVar)));
+       } while ((pVar = get_next_var(pVar)));
 
        return (pVar);
 }
 
-static void diva_create_line_parse_table  (diva_strace_context_t* pLib,
-                                                                                                                                                                        int Channel) {
-       diva_trace_line_state_tpLine = &pLib->lines[Channel];
-       int nr = Channel+1;
+static void diva_create_line_parse_table(diva_strace_context_t *pLib,
+                                        int Channel) {
+       diva_trace_line_state_t *pLine = &pLib->lines[Channel];
+       int nr = Channel + 1;
 
        if ((pLib->cur_parse_entry + LINE_PARSE_ENTRIES) >= pLib->parse_entries) {
-               diva_trace_error (pLib, -1, __FILE__, __LINE__);
+               diva_trace_error(pLib, -1, __FILE__, __LINE__);
                return;
        }
 
@@ -1261,674 +1261,674 @@ static void diva_create_line_parse_table  (diva_strace_context_t* pLib,
 
        pLib->line_parse_entry_first[Channel] = pLib->cur_parse_entry;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Framing", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Framing", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->Framing[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Line", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Line", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->Line[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Layer2", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Layer2", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->Layer2[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Layer3", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Layer3", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->Layer3[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Remote Address", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Remote Address", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                                                                               &pLine->RemoteAddress[0];
+               &pLine->RemoteAddress[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Remote SubAddr", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Remote SubAddr", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                                                                               &pLine->RemoteSubAddress[0];
+               &pLine->RemoteSubAddress[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Local Address", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Local Address", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                                                                               &pLine->LocalAddress[0];
+               &pLine->LocalAddress[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Local SubAddr", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Local SubAddr", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                                                                               &pLine->LocalSubAddress[0];
+               &pLine->LocalSubAddress[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\BC", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\BC", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->call_BC;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\HLC", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\HLC", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->call_HLC;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\LLC", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\LLC", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->call_LLC;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Charges", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Charges", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->Charges;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Call Reference", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Call Reference", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->CallReference;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Last Disc Cause", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Last Disc Cause", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                                                                                               &pLine->LastDisconnecCause;
+               &pLine->LastDisconnecCause;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\User ID", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\User ID", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pLine->UserID[0];
 
        pLib->line_parse_entry_last[Channel] = pLib->cur_parse_entry - 1;
 }
 
-static void diva_create_fax_parse_table (diva_strace_context_t* pLib,
-                                                                                                                                                                int Channel) {
-       diva_trace_fax_state_tpFax = &pLib->lines[Channel].fax;
-       int nr = Channel+1;
+static void diva_create_fax_parse_table(diva_strace_context_t *pLib,
+                                       int Channel) {
+       diva_trace_fax_state_t *pFax = &pLib->lines[Channel].fax;
+       int nr = Channel + 1;
 
        if ((pLib->cur_parse_entry + FAX_PARSE_ENTRIES) >= pLib->parse_entries) {
-               diva_trace_error (pLib, -1, __FILE__, __LINE__);
+               diva_trace_error(pLib, -1, __FILE__, __LINE__);
                return;
        }
        pFax->ChannelNumber = nr;
 
        pLib->fax_parse_entry_first[Channel] = pLib->cur_parse_entry;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Event", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Event", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Event;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Page Counter", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Page Counter", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Page_Counter;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Features", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Features", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Features;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Station ID", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Station ID", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Station_ID[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Subaddress", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Subaddress", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Subaddress[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Password", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Password", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Password[0];
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Speed", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Speed", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Speed;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Resolution", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Resolution", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Resolution;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Paper Width", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Paper Width", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Paper_Width;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Paper Length", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Paper Length", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Paper_Length;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Scanline Time", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Scanline Time", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Scanline_Time;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\FAX\\Disc Reason", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\FAX\\Disc Reason", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pFax->Disc_Reason;
 
        pLib->fax_parse_entry_last[Channel] = pLib->cur_parse_entry - 1;
 }
 
-static void diva_create_modem_parse_table (diva_strace_context_t* pLib,
-                                                                                                                                                                        int Channel) {
-       diva_trace_modem_state_tpModem = &pLib->lines[Channel].modem;
-       int nr = Channel+1;
+static void diva_create_modem_parse_table(diva_strace_context_t *pLib,
+                                         int Channel) {
+       diva_trace_modem_state_t *pModem = &pLib->lines[Channel].modem;
+       int nr = Channel + 1;
 
        if ((pLib->cur_parse_entry + MODEM_PARSE_ENTRIES) >= pLib->parse_entries) {
-               diva_trace_error (pLib, -1, __FILE__, __LINE__);
+               diva_trace_error(pLib, -1, __FILE__, __LINE__);
                return;
        }
        pModem->ChannelNumber = nr;
 
        pLib->modem_parse_entry_first[Channel] = pLib->cur_parse_entry;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Event", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Event", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->Event;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Norm", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Norm", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->Norm;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Options", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Options", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->Options;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\TX Speed", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\TX Speed", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->TxSpeed;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\RX Speed", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\RX Speed", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->RxSpeed;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Roundtrip ms", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Roundtrip ms", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->RoundtripMsec;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Symbol Rate", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Symbol Rate", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->SymbolRate;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\RX Level dBm", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\RX Level dBm", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->RxLeveldBm;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Echo Level dBm", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Echo Level dBm", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->EchoLeveldBm;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\SNR dB", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\SNR dB", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->SNRdb;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\MAE", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\MAE", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->MAE;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Local Retrains", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Local Retrains", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->LocalRetrains;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Remote Retrains", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Remote Retrains", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->RemoteRetrains;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Local Resyncs", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Local Resyncs", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->LocalResyncs;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Remote Resyncs", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Remote Resyncs", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->RemoteResyncs;
 
-       sprintf (pLib->parse_table[pLib->cur_parse_entry].path,
-                                        "State\\B%d\\Modem\\Disc Reason", nr);
+       sprintf(pLib->parse_table[pLib->cur_parse_entry].path,
+               "State\\B%d\\Modem\\Disc Reason", nr);
        pLib->parse_table[pLib->cur_parse_entry++].variable = &pModem->DiscReason;
 
        pLib->modem_parse_entry_last[Channel] = pLib->cur_parse_entry - 1;
 }
 
-static void diva_create_parse_table (diva_strace_context_t* pLib) {
+static void diva_create_parse_table(diva_strace_context_t *pLib) {
        int i;
 
        for (i = 0; i < pLib->Channels; i++) {
-               diva_create_line_parse_table  (pLib, i);
-               diva_create_modem_parse_table (pLib, i);
-               diva_create_fax_parse_table   (pLib, i);
+               diva_create_line_parse_table(pLib, i);
+               diva_create_modem_parse_table(pLib, i);
+               diva_create_fax_parse_table(pLib, i);
        }
 
        pLib->statistic_parse_first = pLib->cur_parse_entry;
 
        /*
-               Outgoing Calls
-               */
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\Calls");
+         Outgoing Calls
+       */
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\Calls");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.Calls;
+               &pLib->InterfaceStat.outg.Calls;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\Connected");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\Connected");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.Connected;
+               &pLib->InterfaceStat.outg.Connected;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\User Busy");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\User Busy");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.User_Busy;
+               &pLib->InterfaceStat.outg.User_Busy;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\No Answer");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\No Answer");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.No_Answer;
+               &pLib->InterfaceStat.outg.No_Answer;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\Wrong Number");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\Wrong Number");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.Wrong_Number;
+               &pLib->InterfaceStat.outg.Wrong_Number;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\Call Rejected");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\Call Rejected");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.Call_Rejected;
+               &pLib->InterfaceStat.outg.Call_Rejected;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Outgoing Calls\\Other Failures");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Outgoing Calls\\Other Failures");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.outg.Other_Failures;
+               &pLib->InterfaceStat.outg.Other_Failures;
 
        /*
-               Incoming Calls
-               */
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Calls");
+         Incoming Calls
+       */
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Calls");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Calls;
+               &pLib->InterfaceStat.inc.Calls;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Connected");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Connected");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Connected;
+               &pLib->InterfaceStat.inc.Connected;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\User Busy");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\User Busy");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.User_Busy;
+               &pLib->InterfaceStat.inc.User_Busy;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Call Rejected");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Call Rejected");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Call_Rejected;
+               &pLib->InterfaceStat.inc.Call_Rejected;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Wrong Number");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Wrong Number");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Wrong_Number;
+               &pLib->InterfaceStat.inc.Wrong_Number;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Incompatible Dst");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Incompatible Dst");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Incompatible_Dst;
+               &pLib->InterfaceStat.inc.Incompatible_Dst;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Out of Order");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Out of Order");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Out_of_Order;
+               &pLib->InterfaceStat.inc.Out_of_Order;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Incoming Calls\\Ignored");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Incoming Calls\\Ignored");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.inc.Ignored;
+               &pLib->InterfaceStat.inc.Ignored;
 
        /*
-               Modem Statistics
-               */
+         Modem Statistics
+       */
        pLib->mdm_statistic_parse_first = pLib->cur_parse_entry;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Normal");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Normal");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Normal;
+               &pLib->InterfaceStat.mdm.Disc_Normal;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Unspecified");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Unspecified");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Unspecified;
+               &pLib->InterfaceStat.mdm.Disc_Unspecified;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Busy Tone");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Busy Tone");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Busy_Tone;
+               &pLib->InterfaceStat.mdm.Disc_Busy_Tone;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Congestion");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Congestion");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Congestion;
+               &pLib->InterfaceStat.mdm.Disc_Congestion;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Carr. Wait");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Carr. Wait");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Carr_Wait;
+               &pLib->InterfaceStat.mdm.Disc_Carr_Wait;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Trn Timeout");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Trn Timeout");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Trn_Timeout;
+               &pLib->InterfaceStat.mdm.Disc_Trn_Timeout;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Incompat.");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Incompat.");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Incompat;
+               &pLib->InterfaceStat.mdm.Disc_Incompat;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc Frame Rej.");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc Frame Rej.");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_Frame_Rej;
+               &pLib->InterfaceStat.mdm.Disc_Frame_Rej;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\Modem\\Disc V42bis");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\Modem\\Disc V42bis");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.mdm.Disc_V42bis;
+               &pLib->InterfaceStat.mdm.Disc_V42bis;
 
        pLib->mdm_statistic_parse_last  = pLib->cur_parse_entry - 1;
 
        /*
-               Fax Statistics
-               */
+         Fax Statistics
+       */
        pLib->fax_statistic_parse_first = pLib->cur_parse_entry;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Normal");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Normal");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Normal;
+               &pLib->InterfaceStat.fax.Disc_Normal;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Not Ident.");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Not Ident.");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Not_Ident;
+               &pLib->InterfaceStat.fax.Disc_Not_Ident;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc No Response");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc No Response");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_No_Response;
+               &pLib->InterfaceStat.fax.Disc_No_Response;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Retries");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Retries");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Retries;
+               &pLib->InterfaceStat.fax.Disc_Retries;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Unexp. Msg.");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Unexp. Msg.");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Unexp_Msg;
+               &pLib->InterfaceStat.fax.Disc_Unexp_Msg;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc No Polling.");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc No Polling.");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_No_Polling;
+               &pLib->InterfaceStat.fax.Disc_No_Polling;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Training");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Training");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Training;
+               &pLib->InterfaceStat.fax.Disc_Training;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Unexpected");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Unexpected");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Unexpected;
+               &pLib->InterfaceStat.fax.Disc_Unexpected;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Application");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Application");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Application;
+               &pLib->InterfaceStat.fax.Disc_Application;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Incompat.");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Incompat.");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Incompat;
+               &pLib->InterfaceStat.fax.Disc_Incompat;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc No Command");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc No Command");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_No_Command;
+               &pLib->InterfaceStat.fax.Disc_No_Command;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Long Msg");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Long Msg");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Long_Msg;
+               &pLib->InterfaceStat.fax.Disc_Long_Msg;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Supervisor");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Supervisor");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Supervisor;
+               &pLib->InterfaceStat.fax.Disc_Supervisor;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc SUB SEP PWD");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc SUB SEP PWD");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_SUB_SEP_PWD;
+               &pLib->InterfaceStat.fax.Disc_SUB_SEP_PWD;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Invalid Msg");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Invalid Msg");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Invalid_Msg;
+               &pLib->InterfaceStat.fax.Disc_Invalid_Msg;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Page Coding");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Page Coding");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Page_Coding;
+               &pLib->InterfaceStat.fax.Disc_Page_Coding;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc App Timeout");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc App Timeout");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_App_Timeout;
+               &pLib->InterfaceStat.fax.Disc_App_Timeout;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\FAX\\Disc Unspecified");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\FAX\\Disc Unspecified");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.fax.Disc_Unspecified;
+               &pLib->InterfaceStat.fax.Disc_Unspecified;
 
        pLib->fax_statistic_parse_last  = pLib->cur_parse_entry - 1;
 
        /*
-               B-Layer1"
-               */
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer1\\X-Frames");
+         B-Layer1"
+       */
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer1\\X-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b1.X_Frames;
+               &pLib->InterfaceStat.b1.X_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer1\\X-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer1\\X-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b1.X_Bytes;
+               &pLib->InterfaceStat.b1.X_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer1\\X-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer1\\X-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b1.X_Errors;
+               &pLib->InterfaceStat.b1.X_Errors;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer1\\R-Frames");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer1\\R-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b1.R_Frames;
+               &pLib->InterfaceStat.b1.R_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer1\\R-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer1\\R-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b1.R_Bytes;
+               &pLib->InterfaceStat.b1.R_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer1\\R-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer1\\R-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b1.R_Errors;
+               &pLib->InterfaceStat.b1.R_Errors;
 
        /*
-               B-Layer2
-               */
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer2\\X-Frames");
+         B-Layer2
+       */
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer2\\X-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b2.X_Frames;
+               &pLib->InterfaceStat.b2.X_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer2\\X-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer2\\X-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b2.X_Bytes;
+               &pLib->InterfaceStat.b2.X_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer2\\X-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer2\\X-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b2.X_Errors;
+               &pLib->InterfaceStat.b2.X_Errors;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer2\\R-Frames");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer2\\R-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b2.R_Frames;
+               &pLib->InterfaceStat.b2.R_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer2\\R-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer2\\R-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b2.R_Bytes;
+               &pLib->InterfaceStat.b2.R_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\B-Layer2\\R-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\B-Layer2\\R-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.b2.R_Errors;
+               &pLib->InterfaceStat.b2.R_Errors;
 
        /*
-               D-Layer1
-               */
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer1\\X-Frames");
+         D-Layer1
+       */
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer1\\X-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d1.X_Frames;
+               &pLib->InterfaceStat.d1.X_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer1\\X-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer1\\X-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d1.X_Bytes;
+               &pLib->InterfaceStat.d1.X_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer1\\X-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer1\\X-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d1.X_Errors;
+               &pLib->InterfaceStat.d1.X_Errors;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer1\\R-Frames");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer1\\R-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d1.R_Frames;
+               &pLib->InterfaceStat.d1.R_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer1\\R-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer1\\R-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d1.R_Bytes;
+               &pLib->InterfaceStat.d1.R_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer1\\R-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer1\\R-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d1.R_Errors;
+               &pLib->InterfaceStat.d1.R_Errors;
 
        /*
-               D-Layer2
-               */
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer2\\X-Frames");
+         D-Layer2
+       */
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer2\\X-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d2.X_Frames;
+               &pLib->InterfaceStat.d2.X_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer2\\X-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer2\\X-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d2.X_Bytes;
+               &pLib->InterfaceStat.d2.X_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer2\\X-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer2\\X-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d2.X_Errors;
+               &pLib->InterfaceStat.d2.X_Errors;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer2\\R-Frames");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer2\\R-Frames");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d2.R_Frames;
+               &pLib->InterfaceStat.d2.R_Frames;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer2\\R-Bytes");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer2\\R-Bytes");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d2.R_Bytes;
+               &pLib->InterfaceStat.d2.R_Bytes;
 
-       strcpy (pLib->parse_table[pLib->cur_parse_entry].path,
-                                       "Statistics\\D-Layer2\\R-Errors");
+       strcpy(pLib->parse_table[pLib->cur_parse_entry].path,
+              "Statistics\\D-Layer2\\R-Errors");
        pLib->parse_table[pLib->cur_parse_entry++].variable = \
-                                                                                                                                               &pLib->InterfaceStat.d2.R_Errors;
+               &pLib->InterfaceStat.d2.R_Errors;
 
 
        pLib->statistic_parse_last  = pLib->cur_parse_entry - 1;
 }
 
-static void diva_trace_error (diva_strace_context_t* pLib,
-                                                                                                                       int error, const char* file, int line) {
+static void diva_trace_error(diva_strace_context_t *pLib,
+                            int error, const char *file, int line) {
        if (pLib->user_proc_table.error_notify_proc) {
                (*(pLib->user_proc_table.error_notify_proc))(\
-                                                                                                                                                                               pLib->user_proc_table.user_context,
-                                                                                                                                                                               &pLib->instance, pLib->Adapter,
-                                                                                                                                                                               error, file, line);
+                       pLib->user_proc_table.user_context,
+                       &pLib->instance, pLib->Adapter,
+                       error, file, line);
        }
 }
 
 /*
-       Delivery notification to user
-       */
-static void diva_trace_notify_user (diva_strace_context_t* pLib,
-                                                                                                                int Channel,
-                                                                                                                int notify_subject) {
+  Delivery notification to user
+*/
+static void diva_trace_notify_user(diva_strace_context_t *pLib,
+                                  int Channel,
+                                  int notify_subject) {
        if (pLib->user_proc_table.notify_proc) {
                (*(pLib->user_proc_table.notify_proc))(pLib->user_proc_table.user_context,
-                                                                                                                                                                        &pLib->instance,
-                                                                                                                                                                        pLib->Adapter,
-                                                                                                                                                                        &pLib->lines[Channel],
-                                                                                                                                                                        notify_subject);
+                                                      &pLib->instance,
+                                                      pLib->Adapter,
+                                                      &pLib->lines[Channel],
+                                                      notify_subject);
        }
 }
 
 /*
-       Read variable value to they destination based on the variable type
-       */
-static int diva_trace_read_variable (diva_man_var_header_t* pVar,
-                                                                                                                                                void* variable) {
+  Read variable value to they destination based on the variable type
+*/
+static int diva_trace_read_variable(diva_man_var_header_t *pVar,
+                                   void *variable) {
        switch (pVar->type) {
-               case 0x03: /* MI_ASCIIZ - syting                               */
-                       return (diva_strace_read_asz  (pVar, (char*)variable));
-               case 0x04: /* MI_ASCII  - string                               */
-                       return (diva_strace_read_asc  (pVar, (char*)variable));
-               case 0x05: /* MI_NUMBER - counted sequence of bytes            */
-                       return (diva_strace_read_ie  (pVar, (diva_trace_ie_t*)variable));
-               case 0x81: /* MI_INT    - signed integer                       */
-                       return (diva_strace_read_int (pVar, (int*)variable));
-               case 0x82: /* MI_UINT   - unsigned integer                     */
-                       return (diva_strace_read_uint (pVar, (dword*)variable));
-               case 0x83: /* MI_HINT   - unsigned integer, hex representetion */
-                       return (diva_strace_read_uint (pVar, (dword*)variable));
-               case 0x87: /* MI_BITFLD - unsigned integer, bit representation */
-                       return (diva_strace_read_uint (pVar, (dword*)variable));
+       case 0x03: /* MI_ASCIIZ - syting                               */
+               return (diva_strace_read_asz(pVar, (char *)variable));
+       case 0x04: /* MI_ASCII  - string                               */
+               return (diva_strace_read_asc(pVar, (char *)variable));
+       case 0x05: /* MI_NUMBER - counted sequence of bytes            */
+               return (diva_strace_read_ie(pVar, (diva_trace_ie_t *)variable));
+       case 0x81: /* MI_INT    - signed integer                       */
+               return (diva_strace_read_int(pVar, (int *)variable));
+       case 0x82: /* MI_UINT   - unsigned integer                     */
+               return (diva_strace_read_uint(pVar, (dword *)variable));
+       case 0x83: /* MI_HINT   - unsigned integer, hex representetion */
+               return (diva_strace_read_uint(pVar, (dword *)variable));
+       case 0x87: /* MI_BITFLD - unsigned integer, bit representation */
+               return (diva_strace_read_uint(pVar, (dword *)variable));
        }
 
        /*
-               This type of variable is not handled, indicate error
-               Or one problem in management interface, or in application recodeing
-               table, or this application should handle it.
-               */
+         This type of variable is not handled, indicate error
+         Or one problem in management interface, or in application recodeing
+         table, or this application should handle it.
+       */
        return (-1);
 }
 
 /*
-       Read signed integer to destination
-       */
-static int diva_strace_read_int  (diva_man_var_header_t* pVar, int* var) {
-       byte* ptr = (char*)&pVar->path_length;
+  Read signed integer to destination
+*/
+static int diva_strace_read_int(diva_man_var_header_t *pVar, int *var) {
+       byte *ptr = (char *)&pVar->path_length;
        int value;
 
        ptr += (pVar->path_length + 1);
 
        switch (pVar->value_length) {
-               case 1:
-                       value = *(char*)ptr;
-                       break;
+       case 1:
+               value = *(char *)ptr;
+               break;
 
-               case 2:
-                       value = (short)GET_WORD(ptr);
-                       break;
+       case 2:
+               value = (short)GET_WORD(ptr);
+               break;
 
-               case 4:
-                       value = (int)GET_DWORD(ptr);
-                       break;
+       case 4:
+               value = (int)GET_DWORD(ptr);
+               break;
 
-               default:
-                       return (-1);
+       default:
+               return (-1);
        }
 
        *var = value;
@@ -1936,32 +1936,32 @@ static int diva_strace_read_int  (diva_man_var_header_t* pVar, int* var) {
        return (0);
 }
 
-static int diva_strace_read_uint (diva_man_var_header_t* pVar, dword* var) {
-       byte* ptr = (char*)&pVar->path_length;
+static int diva_strace_read_uint(diva_man_var_header_t *pVar, dword *var) {
+       byte *ptr = (char *)&pVar->path_length;
        dword value;
 
        ptr += (pVar->path_length + 1);
 
        switch (pVar->value_length) {
-               case 1:
-                       value = (byte)(*ptr);
-                       break;
+       case 1:
+               value = (byte)(*ptr);
+               break;
 
-               case 2:
-                       value = (word)GET_WORD(ptr);
-                       break;
+       case 2:
+               value = (word)GET_WORD(ptr);
+               break;
 
-               case 3:
-                       value  = (dword)GET_DWORD(ptr);
-                       value &= 0x00ffffff;
-                       break;
+       case 3:
+               value  = (dword)GET_DWORD(ptr);
+               value &= 0x00ffffff;
+               break;
 
-               case 4:
-                       value = (dword)GET_DWORD(ptr);
-                       break;
+       case 4:
+               value = (dword)GET_DWORD(ptr);
+               break;
 
-               default:
-                       return (-1);
+       default:
+               return (-1);
        }
 
        *var = value;
@@ -1970,54 +1970,54 @@ static int diva_strace_read_uint (diva_man_var_header_t* pVar, dword* var) {
 }
 
 /*
-       Read zero terminated ASCII string
-       */
-static int diva_strace_read_asz  (diva_man_var_header_t* pVar, char* var) {
-       char* ptr = (char*)&pVar->path_length;
+  Read zero terminated ASCII string
+*/
+static int diva_strace_read_asz(diva_man_var_header_t *pVar, char *var) {
+       char *ptr = (char *)&pVar->path_length;
        int length;
 
        ptr += (pVar->path_length + 1);
 
        if (!(length = pVar->value_length)) {
-               length = strlen (ptr);
+               length = strlen(ptr);
        }
-       memcpy (var, ptr, length);
+       memcpy(var, ptr, length);
        var[length] = 0;
 
        return (0);
 }
 
 /*
-       Read counted (with leading length byte) ASCII string
-       */
-static int diva_strace_read_asc  (diva_man_var_header_t* pVar, char* var) {
-       char* ptr = (char*)&pVar->path_length;
+  Read counted (with leading length byte) ASCII string
+*/
+static int diva_strace_read_asc(diva_man_var_header_t *pVar, char *var) {
+       char *ptr = (char *)&pVar->path_length;
 
        ptr += (pVar->path_length + 1);
-       memcpy (var, ptr+1, *ptr);
+       memcpy(var, ptr + 1, *ptr);
        var[(int)*ptr] = 0;
 
        return (0);
 }
 
 /*
-               Read one information element - i.e. one string of byte values with
-               one length byte in front
-       */
-static int  diva_strace_read_ie  (diva_man_var_header_t* pVar,
-                                                                                                                                       diva_trace_ie_t* var) {
-       char* ptr = (char*)&pVar->path_length;
+  Read one information element - i.e. one string of byte values with
+  one length byte in front
+*/
+static int diva_strace_read_ie(diva_man_var_header_t *pVar,
+                              diva_trace_ie_t *var) {
+       char *ptr = (char *)&pVar->path_length;
 
        ptr += (pVar->path_length + 1);
 
        var->length = *ptr;
-       memcpy (&var->data[0], ptr+1, *ptr);
+       memcpy(&var->data[0], ptr + 1, *ptr);
 
        return (0);
 }
 
-static int SuperTraceSetAudioTap  (void* hLib, int Channel, int on) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceSetAudioTap(void *hLib, int Channel, int on) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
        if ((Channel < 1) || (Channel > pLib->Channels)) {
                return (-1);
@@ -2030,21 +2030,21 @@ static int SuperTraceSetAudioTap  (void* hLib, int Channel, int on) {
                pLib->audio_tap_mask &= ~(1L << Channel);
        }
 
-  /*
-    EYE patterns have TM_M_DATA set as additional
-    condition
-    */
-  if (pLib->audio_tap_mask) {
-    pLib->trace_event_mask |= TM_M_DATA;
-  } else {
-    pLib->trace_event_mask &= ~TM_M_DATA;
-  }
+       /*
+         EYE patterns have TM_M_DATA set as additional
+         condition
+       */
+       if (pLib->audio_tap_mask) {
+               pLib->trace_event_mask |= TM_M_DATA;
+       } else {
+               pLib->trace_event_mask &= ~TM_M_DATA;
+       }
 
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceSetBChannel  (void* hLib, int Channel, int on) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceSetBChannel(void *hLib, int Channel, int on) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
        if ((Channel < 1) || (Channel > pLib->Channels)) {
                return (-1);
@@ -2057,11 +2057,11 @@ static int SuperTraceSetBChannel  (void* hLib, int Channel, int on) {
                pLib->bchannel_trace_mask &= ~(1L << Channel);
        }
 
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceSetDChannel  (void* hLib, int on) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceSetDChannel(void *hLib, int on) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
        if (on) {
                pLib->trace_event_mask |= (TM_D_CHAN | TM_C_COMM | TM_DL_ERR | TM_LAYER1);
@@ -2069,11 +2069,11 @@ static int SuperTraceSetDChannel  (void* hLib, int on) {
                pLib->trace_event_mask &= ~(TM_D_CHAN | TM_C_COMM | TM_DL_ERR | TM_LAYER1);
        }
 
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceSetInfo (void* hLib, int on) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceSetInfo(void *hLib, int on) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
        if (on) {
                pLib->trace_event_mask |= TM_STRING;
@@ -2081,11 +2081,11 @@ static int SuperTraceSetInfo (void* hLib, int on) {
                pLib->trace_event_mask &= ~TM_STRING;
        }
 
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceClearCall (void* hLib, int Channel) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceClearCall(void *hLib, int Channel) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
 
        if ((Channel < 1) || (Channel > pLib->Channels)) {
                return (-1);
@@ -2094,102 +2094,101 @@ static int SuperTraceClearCall (void* hLib, int Channel) {
 
        pLib->clear_call_command |= (1L << Channel);
 
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
 /*
-       Parse and update cumulative statistice
-       */
-static int diva_ifc_statistics (diva_strace_context_t* pLib,
-                                                                                                                               diva_man_var_header_t* pVar) {
-       diva_man_var_header_tcur;
+  Parse and update cumulative statistice
+*/
+static int diva_ifc_statistics(diva_strace_context_t *pLib,
+                              diva_man_var_header_t *pVar) {
+       diva_man_var_header_t *cur;
        int i, one_updated = 0, mdm_updated = 0, fax_updated = 0;
 
        for (i  = pLib->statistic_parse_first; i <= pLib->statistic_parse_last; i++) {
-               if ((cur = find_var (pVar, pLib->parse_table[i].path))) {
-                       if (diva_trace_read_variable (cur, pLib->parse_table[i].variable)) {
-                               diva_trace_error (pLib, -3 , __FILE__, __LINE__);
+               if ((cur = find_var(pVar, pLib->parse_table[i].path))) {
+                       if (diva_trace_read_variable(cur, pLib->parse_table[i].variable)) {
+                               diva_trace_error(pLib, -3 , __FILE__, __LINE__);
                                return (-1);
                        }
                        one_updated = 1;
-      if ((i >= pLib->mdm_statistic_parse_first) && (i <= pLib->mdm_statistic_parse_last)) {
-        mdm_updated = 1;
-      }
-      if ((i >= pLib->fax_statistic_parse_first) && (i <= pLib->fax_statistic_parse_last)) {
-        fax_updated = 1;
-      }
+                       if ((i >= pLib->mdm_statistic_parse_first) && (i <= pLib->mdm_statistic_parse_last)) {
+                               mdm_updated = 1;
+                       }
+                       if ((i >= pLib->fax_statistic_parse_first) && (i <= pLib->fax_statistic_parse_last)) {
+                               fax_updated = 1;
+                       }
                }
        }
 
        /*
-               We do not use first event to notify user - this is the event that is
-               generated as result of EVENT ON operation and is used only to initialize
-               internal variables of application
-               */
-  if (mdm_updated) {
-               diva_trace_notify_user (pLib, 0, DIVA_SUPER_TRACE_NOTIFY_MDM_STAT_CHANGE);
-  } else if (fax_updated) {
-               diva_trace_notify_user (pLib, 0, DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE);
-  } else if (one_updated) {
-               diva_trace_notify_user (pLib, 0, DIVA_SUPER_TRACE_NOTIFY_STAT_CHANGE);
+         We do not use first event to notify user - this is the event that is
+         generated as result of EVENT ON operation and is used only to initialize
+         internal variables of application
+       */
+       if (mdm_updated) {
+               diva_trace_notify_user(pLib, 0, DIVA_SUPER_TRACE_NOTIFY_MDM_STAT_CHANGE);
+       } else if (fax_updated) {
+               diva_trace_notify_user(pLib, 0, DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE);
+       } else if (one_updated) {
+               diva_trace_notify_user(pLib, 0, DIVA_SUPER_TRACE_NOTIFY_STAT_CHANGE);
        }
 
        return (one_updated ? 0 : -1);
 }
 
-static int SuperTraceGetOutgoingCallStatistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetOutgoingCallStatistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->outgoing_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetIncomingCallStatistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetIncomingCallStatistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->incoming_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetModemStatistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetModemStatistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->modem_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetFaxStatistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetFaxStatistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->fax_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetBLayer1Statistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetBLayer1Statistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->b1_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetBLayer2Statistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetBLayer2Statistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->b2_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetDLayer1Statistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetDLayer1Statistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->d1_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-static int SuperTraceGetDLayer2Statistics (void* hLib) {
-       diva_strace_context_t* pLib = (diva_strace_context_t*)hLib;
+static int SuperTraceGetDLayer2Statistics(void *hLib) {
+       diva_strace_context_t *pLib = (diva_strace_context_t *)hLib;
        pLib->d2_ifc_stats = 1;
-       return (ScheduleNextTraceRequest (pLib));
+       return (ScheduleNextTraceRequest(pLib));
 }
 
-dword DivaSTraceGetMemotyRequirement (int channels) {
-  dword parse_entries = (MODEM_PARSE_ENTRIES + FAX_PARSE_ENTRIES + \
-                                                                                                STAT_PARSE_ENTRIES + \
-                                                                                                LINE_PARSE_ENTRIES + 1) * channels;
-  return (sizeof(diva_strace_context_t) + \
-          (parse_entries * sizeof(diva_strace_path2action_t)));
+dword DivaSTraceGetMemotyRequirement(int channels) {
+       dword parse_entries = (MODEM_PARSE_ENTRIES + FAX_PARSE_ENTRIES + \
+                              STAT_PARSE_ENTRIES + \
+                              LINE_PARSE_ENTRIES + 1) * channels;
+       return (sizeof(diva_strace_context_t) + \
+               (parse_entries * sizeof(diva_strace_path2action_t)));
 }
-
index 4f06294..2b46147 100644 (file)
@@ -1,52 +1,52 @@
 /*
  *
 Copyright (c) Eicon Networks, 2000.
+ Copyright (c) Eicon Networks, 2000.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    1.9
+ Eicon File Revision :    1.9
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_EICON_TRACE_IDI_IFC_H__
 #define __DIVA_EICON_TRACE_IDI_IFC_H__
 
-void* SuperTraceOpenAdapter   (int AdapterNumber);
-int   SuperTraceCloseAdapter  (void* AdapterHandle);
-int   SuperTraceWrite         (void* AdapterHandle,
-                               const void* data, int length);
-int   SuperTraceReadRequest   (void* AdapterHandle,const char* name,byte* data);
-int   SuperTraceGetNumberOfChannels (void* AdapterHandle);
-int   SuperTraceASSIGN        (void* AdapterHandle, byte* data);
-int   SuperTraceREMOVE        (void* AdapterHandle);
-int   SuperTraceTraceOnRequest(void* hAdapter, const char* name, byte* data);
-int   SuperTraceWriteVar (void* AdapterHandle,
-                                                                                               byte* data,
-                                                                                               const char* name,
-                                                                                               void* var,
-                                                                                               byte type,
-                                                                                               byte var_length);
-int   SuperTraceExecuteRequest (void* AdapterHandle,
-                                                                                                                               const char* name,
-                                                                                                                               byte* data);
+void *SuperTraceOpenAdapter(int AdapterNumber);
+int SuperTraceCloseAdapter(void *AdapterHandle);
+int SuperTraceWrite(void *AdapterHandle,
+                   const void *data, int length);
+int SuperTraceReadRequest(void *AdapterHandle, const char *name, byte *data);
+int SuperTraceGetNumberOfChannels(void *AdapterHandle);
+int SuperTraceASSIGN(void *AdapterHandle, byte *data);
+int SuperTraceREMOVE(void *AdapterHandle);
+int SuperTraceTraceOnRequest(void *hAdapter, const char *name, byte *data);
+int SuperTraceWriteVar(void *AdapterHandle,
+                      byte *data,
+                      const char *name,
+                      void *var,
+                      byte type,
+                      byte var_length);
+int SuperTraceExecuteRequest(void *AdapterHandle,
+                            const char *name,
+                            byte *data);
 
 typedef struct _diva_strace_path2action {
-       char               path[64]; /* Full path to variable            */
-       void*                                                    variable; /* Variable that will receive value */
+       char path[64]; /* Full path to variable            */
+       void *variable; /* Variable that will receive value */
 } diva_strace_path2action_t;
 
 #define DIVA_MAX_MANAGEMENT_TRANSFER_SIZE 4096
@@ -54,27 +54,27 @@ typedef struct _diva_strace_path2action {
 typedef struct _diva_strace_context {
        diva_strace_library_interface_t instance;
 
-       int   Adapter;
-       voidhAdapter;
+       int Adapter;
+       void *hAdapter;
 
        int Channels;
-       int     req_busy;
+       int req_busy;
 
-  ENTITY   e;
-  IDI_CALL request;
-  BUFFERS  XData;
-  BUFFERS  RData;
+       ENTITY e;
+       IDI_CALL request;
+       BUFFERS XData;
+       BUFFERS RData;
        byte buffer[DIVA_MAX_MANAGEMENT_TRANSFER_SIZE + 1];
-  int removal_state;
-  int general_b_ch_event;
-  int general_fax_event;
-  int general_mdm_event;
+       int removal_state;
+       int general_b_ch_event;
+       int general_fax_event;
+       int general_mdm_event;
 
-       byte    rc_ok;
+       byte rc_ok;
 
        /*
-               Initialization request state machine
-               */
+         Initialization request state machine
+       */
        int ChannelsTraceActive;
        int ModemTraceActive;
        int FaxTraceActive;
@@ -93,8 +93,8 @@ typedef struct _diva_strace_context {
        int l2_trace;
 
        /*
-               Trace\Event Enable
-               */
+         Trace\Event Enable
+       */
        word trace_event_mask;
        word current_trace_event_mask;
 
@@ -112,7 +112,7 @@ typedef struct _diva_strace_context {
 
        int     parse_entries;
        int     cur_parse_entry;
-       diva_strace_path2action_tparse_table;
+       diva_strace_path2action_t *parse_table;
 
        diva_trace_library_user_interface_t user_proc_table;
 
@@ -169,4 +169,3 @@ typedef struct _diva_man_var_header {
 } diva_man_var_header_t;
 
 #endif
-
index cb4ef4c..249c471 100644 (file)
@@ -1,25 +1,25 @@
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    1.9
+ Eicon File Revision :    1.9
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 /* Definitions for use with the Management Information Element      */
 typedef struct mi_xlog_hdr_s MI_XLOG_HDR;
 struct mi_xlog_hdr_s
 {
-  unsigned long  time;   /* Timestamp in msec units                 */
-  unsigned short size;   /* Size of data that follows               */
-  unsigned short code;   /* code of trace event                     */
+       unsigned long  time;   /* Timestamp in msec units                 */
+       unsigned short size;   /* Size of data that follows               */
+       unsigned short code;   /* code of trace event                     */
 };                       /* unspecified data follows this header    */
 
 /*------------------------------------------------------------------*/
index 7a737e1..0e6b2e0 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __EICON_MDM_MSG_H__
 #define DSP_UDATA_INDICATION_CTS_OFF  0x03
 #define DSP_UDATA_INDICATION_CTS_ON  0x04
 /* =====================================================================
-DCD_OFF Message:
-  <word> time of DCD off (sampled from counter at 8kHz)
-DCD_ON Message:
-  <word> time of DCD on (sampled from counter at 8kHz)
-  <byte> connected norm
-  <word> connected options
-  <dword> connected speed (bit/s, max of tx and rx speed)
-  <word> roundtrip delay (ms)
-  <dword> connected speed tx (bit/s)
-  <dword> connected speed rx (bit/s)
-  Size of this message == 19 bytes, but we will receive only 11
-  ===================================================================== */
+   DCD_OFF Message:
+   <word> time of DCD off (sampled from counter at 8kHz)
+   DCD_ON Message:
+   <word> time of DCD on (sampled from counter at 8kHz)
+   <byte> connected norm
+   <word> connected options
+   <dword> connected speed (bit/s, max of tx and rx speed)
+   <word> roundtrip delay (ms)
+   <dword> connected speed tx (bit/s)
+   <dword> connected speed rx (bit/s)
+   Size of this message == 19 bytes, but we will receive only 11
+   ===================================================================== */
 #define DSP_CONNECTED_NORM_UNSPECIFIED      0
 #define DSP_CONNECTED_NORM_V21              1
 #define DSP_CONNECTED_NORM_V23              2
@@ -129,14 +129,14 @@ DCD_ON Message:
 #define DSP_CONNECTED_OPTION_MASK_COMPRESSION    0x0320
 #define DSP_UDATA_INDICATION_DISCONNECT         5
 /*
-returns:
+  returns:
   <byte> cause
 */
 /* ==========================================================
-    DLC: B2 modem configuration
+   DLC: B2 modem configuration
    ========================================================== */
 /*
-Fields in assign DLC information element for modem protocol V.42/MNP:
+  Fields in assign DLC information element for modem protocol V.42/MNP:
   <byte> length of information element
   <word> information field length
   <byte> address A       (not used, default 3)
@@ -172,10 +172,10 @@ Fields in assign DLC information element for modem protocol V.42/MNP:
 #define DLC_MODEMPROT_APPL_EARLY_CONNECT     0x01
 #define DLC_MODEMPROT_APPL_PASS_INDICATIONS  0x02
 /* ==========================================================
-    CAI parameters used for the modem L1 configuration
+   CAI parameters used for the modem L1 configuration
    ========================================================== */
 /*
-Fields in assign CAI information element:
+  Fields in assign CAI information element:
   <byte> length of information element
   <byte> info field and B-channel hardware
   <byte> rate adaptation bit rate
@@ -311,21 +311,21 @@ Fields in assign CAI information element:
 #define DSP_CAI_MODEM_SPEAKER_VOLUME_MAX   0x0c
 #define DSP_CAI_MODEM_SPEAKER_VOLUME_MASK  0x0c
 /* ==========================================================
-    DCD/CTS State
+   DCD/CTS State
    ========================================================== */
 #define MDM_WANT_CONNECT_B3_ACTIVE_I  0x01
 #define MDM_NCPI_VALID                0x02
 #define MDM_NCPI_CTS_ON_RECEIVED      0x04
 #define MDM_NCPI_DCD_ON_RECEIVED      0x08
 /* ==========================================================
-    CAPI NCPI Constants
+   CAPI NCPI Constants
    ========================================================== */
 #define MDM_NCPI_ECM_V42              0x0001
 #define MDM_NCPI_ECM_MNP              0x0002
 #define MDM_NCPI_TRANSPARENT          0x0004
 #define MDM_NCPI_COMPRESSED           0x0010
 /* ==========================================================
-    CAPI B2 Config Constants
+   CAPI B2 Config Constants
    ========================================================== */
 #define MDM_B2_DISABLE_V42bis         0x0001
 #define MDM_B2_DISABLE_MNP            0x0002
@@ -333,7 +333,7 @@ Fields in assign CAI information element:
 #define MDM_B2_DISABLE_V42            0x0008
 #define MDM_B2_DISABLE_COMP           0x0010
 /* ==========================================================
-    CAPI B1 Config Constants
+   CAPI B1 Config Constants
    ========================================================== */
 #define MDM_CAPI_DISABLE_RETRAIN      0x0001
 #define MDM_CAPI_DISABLE_RING_TONE    0x0002
index a339598..a82e542 100644 (file)
@@ -1,25 +1,25 @@
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 
@@ -64,178 +64,178 @@ static dword diva_xdi_extended_features = 0;
 /*
   CAPI can request to process all return codes self only if:
   protocol code supports this && xdi supports this
- */
-#define DIVA_CAPI_SUPPORTS_NO_CANCEL(__a__)   (((__a__)->manufacturer_features&MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)&&    ((__a__)->manufacturer_features & MANUFACTURER_FEATURE_OK_FC_LABEL) &&     (diva_xdi_extended_features   & DIVA_CAPI_XDI_PROVIDES_NO_CANCEL))
+*/
+#define DIVA_CAPI_SUPPORTS_NO_CANCEL(__a__)   (((__a__)->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL) && ((__a__)->manufacturer_features & MANUFACTURER_FEATURE_OK_FC_LABEL) && (diva_xdi_extended_features & DIVA_CAPI_XDI_PROVIDES_NO_CANCEL))
 
 /*------------------------------------------------------------------*/
 /* local function prototypes                                        */
 /*------------------------------------------------------------------*/
 
-static void group_optimization(DIVA_CAPI_ADAPTER   * a, PLCI   * plci);
-static void set_group_ind_mask (PLCI   *plci);
-static void clear_group_ind_mask_bit (PLCI   *plci, word b);
-static byte test_group_ind_mask_bit (PLCI   *plci, word b);
-void AutomaticLaw(DIVA_CAPI_ADAPTER   *);
+static void group_optimization(DIVA_CAPI_ADAPTER *a, PLCI *plci);
+static void set_group_ind_mask(PLCI *plci);
+static void clear_group_ind_mask_bit(PLCI *plci, word b);
+static byte test_group_ind_mask_bit(PLCI *plci, word b);
+void AutomaticLaw(DIVA_CAPI_ADAPTER *);
 word CapiRelease(word);
 word CapiRegister(word);
-word api_put(APPL   *, CAPI_MSG   *);
-static word api_parse(byte   *, word, byte *, API_PARSE *);
-static void api_save_msg(API_PARSE   *in, byte *format, API_SAVE   *out);
-static void api_load_msg(API_SAVE   *in, API_PARSE   *out);
+word api_put(APPL *, CAPI_MSG *);
+static word api_parse(byte *, word, byte *, API_PARSE *);
+static void api_save_msg(API_PARSE *in, byte *format, API_SAVE *out);
+static void api_load_msg(API_SAVE *in, API_PARSE *out);
 
 word api_remove_start(void);
 void api_remove_complete(void);
 
-static void plci_remove(PLCI   *);
-static void diva_get_extended_adapter_features (DIVA_CAPI_ADAPTER  * a);
-static void diva_ask_for_xdi_sdram_bar (DIVA_CAPI_ADAPTER  *, IDI_SYNC_REQ  *);
-
-void   callback(ENTITY   *);
-
-static void control_rc(PLCI   *, byte, byte, byte, byte, byte);
-static void data_rc(PLCI   *, byte);
-static void data_ack(PLCI   *, byte);
-static void sig_ind(PLCI   *);
-static void SendInfo(PLCI   *, dword, byte   * *, byte);
-static void SendSetupInfo(APPL   *, PLCI   *, dword, byte   * *, byte);
-static void SendSSExtInd(APPL   *, PLCI   * plci, dword Id, byte   * * parms);
-
-static void VSwitchReqInd(PLCI   *plci, dword Id, byte   **parms);
-
-static void nl_ind(PLCI   *);
-
-static byte connect_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte connect_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte connect_a_res(dword,word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte disconnect_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte disconnect_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte listen_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte info_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte info_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte alert_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte facility_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte facility_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte connect_b3_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte connect_b3_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte connect_b3_a_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte disconnect_b3_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte disconnect_b3_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte data_b3_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte data_b3_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte reset_b3_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte reset_b3_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte connect_b3_t90_a_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte select_b_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte manufacturer_req(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-static byte manufacturer_res(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
-
-static word get_plci(DIVA_CAPI_ADAPTER   *);
-static void add_p(PLCI   *, byte, byte   *);
-static void add_s(PLCI   * plci, byte code, API_PARSE * p);
-static void add_ss(PLCI   * plci, byte code, API_PARSE * p);
-static void add_ie(PLCI   * plci, byte code, byte   * p, word p_length);
-static void add_d(PLCI   *, word, byte   *);
-static void add_ai(PLCI   *, API_PARSE *);
-static word add_b1(PLCI   *, API_PARSE *, word, word);
-static word add_b23(PLCI   *, API_PARSE *);
-static word add_modem_b23 (PLCI  * plci, API_PARSE* bp_parms);
-static void sig_req(PLCI   *, byte, byte);
-static void nl_req_ncci(PLCI   *, byte, byte);
-static void send_req(PLCI   *);
-static void send_data(PLCI   *);
-static word plci_remove_check(PLCI   *);
-static void listen_check(DIVA_CAPI_ADAPTER   *);
-static byte AddInfo(byte   **, byte   **, byte   *, byte *);
+static void plci_remove(PLCI *);
+static void diva_get_extended_adapter_features(DIVA_CAPI_ADAPTER *a);
+static void diva_ask_for_xdi_sdram_bar(DIVA_CAPI_ADAPTER *, IDI_SYNC_REQ *);
+
+void callback(ENTITY *);
+
+static void control_rc(PLCI *, byte, byte, byte, byte, byte);
+static void data_rc(PLCI *, byte);
+static void data_ack(PLCI *, byte);
+static void sig_ind(PLCI *);
+static void SendInfo(PLCI *, dword, byte **, byte);
+static void SendSetupInfo(APPL *, PLCI *, dword, byte **, byte);
+static void SendSSExtInd(APPL *, PLCI *plci, dword Id, byte **parms);
+
+static void VSwitchReqInd(PLCI *plci, dword Id, byte **parms);
+
+static void nl_ind(PLCI *);
+
+static byte connect_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte connect_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte connect_a_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte disconnect_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte disconnect_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte listen_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte info_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte info_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte alert_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte facility_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte facility_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte connect_b3_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte connect_b3_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte connect_b3_a_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte disconnect_b3_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte disconnect_b3_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte data_b3_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte data_b3_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte reset_b3_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte reset_b3_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte connect_b3_t90_a_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte select_b_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte manufacturer_req(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+static byte manufacturer_res(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
+
+static word get_plci(DIVA_CAPI_ADAPTER *);
+static void add_p(PLCI *, byte, byte *);
+static void add_s(PLCI *plci, byte code, API_PARSE *p);
+static void add_ss(PLCI *plci, byte code, API_PARSE *p);
+static void add_ie(PLCI *plci, byte code, byte *p, word p_length);
+static void add_d(PLCI *, word, byte *);
+static void add_ai(PLCI *, API_PARSE *);
+static word add_b1(PLCI *, API_PARSE *, word, word);
+static word add_b23(PLCI *, API_PARSE *);
+static word add_modem_b23(PLCI *plci, API_PARSE *bp_parms);
+static void sig_req(PLCI *, byte, byte);
+static void nl_req_ncci(PLCI *, byte, byte);
+static void send_req(PLCI *);
+static void send_data(PLCI *);
+static word plci_remove_check(PLCI *);
+static void listen_check(DIVA_CAPI_ADAPTER *);
+static byte AddInfo(byte **, byte **, byte *, byte *);
 static byte getChannel(API_PARSE *);
-static void IndParse(PLCI   *, word *, byte   **, byte);
-static byte ie_compare(byte   *, byte *);
-static word find_cip(DIVA_CAPI_ADAPTER   *, byte   *, byte   *);
-static word CPN_filter_ok(byte   *cpn,DIVA_CAPI_ADAPTER   *,word);
+static void IndParse(PLCI *, word *, byte **, byte);
+static byte ie_compare(byte *, byte *);
+static word find_cip(DIVA_CAPI_ADAPTER *, byte *, byte *);
+static word CPN_filter_ok(byte *cpn, DIVA_CAPI_ADAPTER *, word);
 
 /*
   XON protocol helpers
-  */
-static void channel_flow_control_remove (PLCI   * plci);
-static void channel_x_off (PLCI   * plci, byte ch, byte flag);
-static void channel_x_on (PLCI   * plci, byte ch);
-static void channel_request_xon (PLCI   * plci, byte ch);
-static void channel_xmit_xon (PLCI   * plci);
-static int channel_can_xon (PLCI   * plci, byte ch);
-static void channel_xmit_extended_xon (PLCI   * plci);
-
-static byte SendMultiIE(PLCI   * plci, dword Id, byte   * * parms, byte ie_type, dword info_mask, byte setupParse);
-static word AdvCodecSupport(DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, byte);
-static void CodecIdCheck(DIVA_CAPI_ADAPTER   *, PLCI   *);
-static void SetVoiceChannel(PLCI   *, byte   *, DIVA_CAPI_ADAPTER   * );
-static void VoiceChannelOff(PLCI   *plci);
-static void adv_voice_write_coefs (PLCI   *plci, word write_command);
-static void adv_voice_clear_config (PLCI   *plci);
-
-static word get_b1_facilities (PLCI   * plci, byte b1_resource);
-static byte add_b1_facilities (PLCI   * plci, byte b1_resource, word b1_facilities);
-static void adjust_b1_facilities (PLCI   *plci, byte new_b1_resource, word new_b1_facilities);
-static word adjust_b_process (dword Id, PLCI   *plci, byte Rc);
-static void adjust_b1_resource (dword Id, PLCI   *plci, API_SAVE   *bp_msg, word b1_facilities, word internal_command);
-static void adjust_b_restore (dword Id, PLCI   *plci, byte Rc);
-static void reset_b3_command (dword Id, PLCI   *plci, byte Rc);
-static void select_b_command (dword Id, PLCI   *plci, byte Rc);
-static void fax_connect_ack_command (dword Id, PLCI   *plci, byte Rc);
-static void fax_edata_ack_command (dword Id, PLCI   *plci, byte Rc);
-static void fax_connect_info_command (dword Id, PLCI   *plci, byte Rc);
-static void fax_adjust_b23_command (dword Id, PLCI   *plci, byte Rc);
-static void fax_disconnect_command (dword Id, PLCI   *plci, byte Rc);
-static void hold_save_command (dword Id, PLCI   *plci, byte Rc);
-static void retrieve_restore_command (dword Id, PLCI   *plci, byte Rc);
-static void init_b1_config (PLCI   *plci);
-static void clear_b1_config (PLCI   *plci);
-
-static void dtmf_command (dword Id, PLCI   *plci, byte Rc);
-static byte dtmf_request (dword Id, word Number, DIVA_CAPI_ADAPTER   *a, PLCI   *plci, APPL   *appl, API_PARSE *msg);
-static void dtmf_confirmation (dword Id, PLCI   *plci);
-static void dtmf_indication (dword Id, PLCI   *plci, byte   *msg, word length);
-static void dtmf_parameter_write (PLCI   *plci);
-
-
-static void mixer_set_bchannel_id_esc (PLCI   *plci, byte bchannel_id);
-static void mixer_set_bchannel_id (PLCI   *plci, byte   *chi);
-static void mixer_clear_config (PLCI   *plci);
-static void mixer_notify_update (PLCI   *plci, byte others);
-static void mixer_command (dword Id, PLCI   *plci, byte Rc);
-static byte mixer_request (dword Id, word Number, DIVA_CAPI_ADAPTER   *a, PLCI   *plci, APPL   *appl, API_PARSE *msg);
-static void mixer_indication_coefs_set (dword Id, PLCI   *plci);
-static void mixer_indication_xconnect_from (dword Id, PLCI   *plci, byte   *msg, word length);
-static void mixer_indication_xconnect_to (dword Id, PLCI   *plci, byte   *msg, word length);
-static void mixer_remove (PLCI   *plci);
-
-
-static void ec_command (dword Id, PLCI   *plci, byte Rc);
-static byte ec_request (dword Id, word Number, DIVA_CAPI_ADAPTER   *a, PLCI   *plci, APPL   *appl, API_PARSE *msg);
-static void ec_indication (dword Id, PLCI   *plci, byte   *msg, word length);
-
-
-static void rtp_connect_b3_req_command (dword Id, PLCI   *plci, byte Rc);
-static void rtp_connect_b3_res_command (dword Id, PLCI   *plci, byte Rc);
-
-
-static int  diva_get_dma_descriptor  (PLCI   *plci, dword   *dma_magic);
-static void diva_free_dma_descriptor (PLCI   *plci, int nr);
+*/
+static void channel_flow_control_remove(PLCI *plci);
+static void channel_x_off(PLCI *plci, byte ch, byte flag);
+static void channel_x_on(PLCI *plci, byte ch);
+static void channel_request_xon(PLCI *plci, byte ch);
+static void channel_xmit_xon(PLCI *plci);
+static int channel_can_xon(PLCI *plci, byte ch);
+static void channel_xmit_extended_xon(PLCI *plci);
+
+static byte SendMultiIE(PLCI *plci, dword Id, byte **parms, byte ie_type, dword info_mask, byte setupParse);
+static word AdvCodecSupport(DIVA_CAPI_ADAPTER *, PLCI *, APPL *, byte);
+static void CodecIdCheck(DIVA_CAPI_ADAPTER *, PLCI *);
+static void SetVoiceChannel(PLCI *, byte *, DIVA_CAPI_ADAPTER *);
+static void VoiceChannelOff(PLCI *plci);
+static void adv_voice_write_coefs(PLCI *plci, word write_command);
+static void adv_voice_clear_config(PLCI *plci);
+
+static word get_b1_facilities(PLCI *plci, byte b1_resource);
+static byte add_b1_facilities(PLCI *plci, byte b1_resource, word b1_facilities);
+static void adjust_b1_facilities(PLCI *plci, byte new_b1_resource, word new_b1_facilities);
+static word adjust_b_process(dword Id, PLCI *plci, byte Rc);
+static void adjust_b1_resource(dword Id, PLCI *plci, API_SAVE *bp_msg, word b1_facilities, word internal_command);
+static void adjust_b_restore(dword Id, PLCI *plci, byte Rc);
+static void reset_b3_command(dword Id, PLCI *plci, byte Rc);
+static void select_b_command(dword Id, PLCI *plci, byte Rc);
+static void fax_connect_ack_command(dword Id, PLCI *plci, byte Rc);
+static void fax_edata_ack_command(dword Id, PLCI *plci, byte Rc);
+static void fax_connect_info_command(dword Id, PLCI *plci, byte Rc);
+static void fax_adjust_b23_command(dword Id, PLCI *plci, byte Rc);
+static void fax_disconnect_command(dword Id, PLCI *plci, byte Rc);
+static void hold_save_command(dword Id, PLCI *plci, byte Rc);
+static void retrieve_restore_command(dword Id, PLCI *plci, byte Rc);
+static void init_b1_config(PLCI *plci);
+static void clear_b1_config(PLCI *plci);
+
+static void dtmf_command(dword Id, PLCI *plci, byte Rc);
+static byte dtmf_request(dword Id, word Number, DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL *appl, API_PARSE *msg);
+static void dtmf_confirmation(dword Id, PLCI *plci);
+static void dtmf_indication(dword Id, PLCI *plci, byte *msg, word length);
+static void dtmf_parameter_write(PLCI *plci);
+
+
+static void mixer_set_bchannel_id_esc(PLCI *plci, byte bchannel_id);
+static void mixer_set_bchannel_id(PLCI *plci, byte *chi);
+static void mixer_clear_config(PLCI *plci);
+static void mixer_notify_update(PLCI *plci, byte others);
+static void mixer_command(dword Id, PLCI *plci, byte Rc);
+static byte mixer_request(dword Id, word Number, DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL *appl, API_PARSE *msg);
+static void mixer_indication_coefs_set(dword Id, PLCI *plci);
+static void mixer_indication_xconnect_from(dword Id, PLCI *plci, byte *msg, word length);
+static void mixer_indication_xconnect_to(dword Id, PLCI *plci, byte *msg, word length);
+static void mixer_remove(PLCI *plci);
+
+
+static void ec_command(dword Id, PLCI *plci, byte Rc);
+static byte ec_request(dword Id, word Number, DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL *appl, API_PARSE *msg);
+static void ec_indication(dword Id, PLCI *plci, byte *msg, word length);
+
+
+static void rtp_connect_b3_req_command(dword Id, PLCI *plci, byte Rc);
+static void rtp_connect_b3_res_command(dword Id, PLCI *plci, byte Rc);
+
+
+static int diva_get_dma_descriptor(PLCI *plci, dword *dma_magic);
+static void diva_free_dma_descriptor(PLCI *plci, int nr);
 
 /*------------------------------------------------------------------*/
 /* external function prototypes                                     */
 /*------------------------------------------------------------------*/
 
-extern byte MapController (byte);
-extern byte UnMapController (byte);
-#define MapId(Id) (((Id) & 0xffffff00L) | MapController ((byte)(Id)))
-#define UnMapId(Id) (((Id) & 0xffffff00L) | UnMapController ((byte)(Id)))
+extern byte MapController(byte);
+extern byte UnMapController(byte);
+#define MapId(Id)(((Id) & 0xffffff00L) | MapController((byte)(Id)))
+#define UnMapId(Id)(((Id) & 0xffffff00L) | UnMapController((byte)(Id)))
 
-void   sendf(APPL   *, word, dword, word, byte *, ...);
-void   * TransmitBufferSet(APPL   * appl, dword ref);
-void   * TransmitBufferGet(APPL   * appl, void   * p);
-void TransmitBufferFree(APPL   * appl, void   * p);
-void   * ReceiveBufferGet(APPL   * appl, int Num);
+void sendf(APPL *, word, dword, word, byte *, ...);
+void *TransmitBufferSet(APPL *appl, dword ref);
+void *TransmitBufferGet(APPL *appl, void *p);
+void TransmitBufferFree(APPL *appl, void *p);
+void *ReceiveBufferGet(APPL *appl, int Num);
 
-int fax_head_line_time (char *buffer);
+int fax_head_line_time(char *buffer);
 
 
 /*------------------------------------------------------------------*/
@@ -243,8 +243,8 @@ int fax_head_line_time (char *buffer);
 /*------------------------------------------------------------------*/
 extern byte max_adapter;
 extern byte max_appl;
-extern DIVA_CAPI_ADAPTER   * adapter;
-extern APPL   * application;
+extern DIVA_CAPI_ADAPTER *adapter;
+extern APPL *application;
 
 
 
@@ -257,102 +257,102 @@ static PLCI dummy_plci;
 
 
 static struct _ftable {
-  word command;
-  byte * format;
-  byte (* function)(dword, word, DIVA_CAPI_ADAPTER   *, PLCI   *, APPL   *, API_PARSE *);
+       word command;
+       byte *format;
+       byte (*function)(dword, word, DIVA_CAPI_ADAPTER *, PLCI *, APPL *, API_PARSE *);
 } ftable[] = {
-  {_DATA_B3_R,                          "dwww",         data_b3_req},
-  {_DATA_B3_I|RESPONSE,                 "w",            data_b3_res},
-  {_INFO_R,                             "ss",           info_req},
-  {_INFO_I|RESPONSE,                    "",             info_res},
-  {_CONNECT_R,                          "wsssssssss",   connect_req},
-  {_CONNECT_I|RESPONSE,                 "wsssss",       connect_res},
-  {_CONNECT_ACTIVE_I|RESPONSE,          "",             connect_a_res},
-  {_DISCONNECT_R,                       "s",            disconnect_req},
-  {_DISCONNECT_I|RESPONSE,              "",             disconnect_res},
-  {_LISTEN_R,                           "dddss",        listen_req},
-  {_ALERT_R,                            "s",            alert_req},
-  {_FACILITY_R,                         "ws",           facility_req},
-  {_FACILITY_I|RESPONSE,                "ws",           facility_res},
-  {_CONNECT_B3_R,                       "s",            connect_b3_req},
-  {_CONNECT_B3_I|RESPONSE,              "ws",           connect_b3_res},
-  {_CONNECT_B3_ACTIVE_I|RESPONSE,       "",             connect_b3_a_res},
-  {_DISCONNECT_B3_R,                    "s",            disconnect_b3_req},
-  {_DISCONNECT_B3_I|RESPONSE,           "",             disconnect_b3_res},
-  {_RESET_B3_R,                         "s",            reset_b3_req},
-  {_RESET_B3_I|RESPONSE,                "",             reset_b3_res},
-  {_CONNECT_B3_T90_ACTIVE_I|RESPONSE,   "ws",           connect_b3_t90_a_res},
-  {_CONNECT_B3_T90_ACTIVE_I|RESPONSE,   "",             connect_b3_t90_a_res},
-  {_SELECT_B_REQ,                       "s",            select_b_req},
-  {_MANUFACTURER_R,                     "dws",          manufacturer_req},
-  {_MANUFACTURER_I|RESPONSE,            "dws",          manufacturer_res},
-  {_MANUFACTURER_I|RESPONSE,            "",             manufacturer_res}
+       {_DATA_B3_R,                          "dwww",         data_b3_req},
+       {_DATA_B3_I | RESPONSE,               "w",            data_b3_res},
+       {_INFO_R,                             "ss",           info_req},
+       {_INFO_I | RESPONSE,                  "",             info_res},
+       {_CONNECT_R,                          "wsssssssss",   connect_req},
+       {_CONNECT_I | RESPONSE,               "wsssss",       connect_res},
+       {_CONNECT_ACTIVE_I | RESPONSE,        "",             connect_a_res},
+       {_DISCONNECT_R,                       "s",            disconnect_req},
+       {_DISCONNECT_I | RESPONSE,            "",             disconnect_res},
+       {_LISTEN_R,                           "dddss",        listen_req},
+       {_ALERT_R,                            "s",            alert_req},
+       {_FACILITY_R,                         "ws",           facility_req},
+       {_FACILITY_I | RESPONSE,              "ws",           facility_res},
+       {_CONNECT_B3_R,                       "s",            connect_b3_req},
+       {_CONNECT_B3_I | RESPONSE,            "ws",           connect_b3_res},
+       {_CONNECT_B3_ACTIVE_I | RESPONSE,     "",             connect_b3_a_res},
+       {_DISCONNECT_B3_R,                    "s",            disconnect_b3_req},
+       {_DISCONNECT_B3_I | RESPONSE,         "",             disconnect_b3_res},
+       {_RESET_B3_R,                         "s",            reset_b3_req},
+       {_RESET_B3_I | RESPONSE,              "",             reset_b3_res},
+       {_CONNECT_B3_T90_ACTIVE_I | RESPONSE, "ws",           connect_b3_t90_a_res},
+       {_CONNECT_B3_T90_ACTIVE_I | RESPONSE, "",             connect_b3_t90_a_res},
+       {_SELECT_B_REQ,                       "s",            select_b_req},
+       {_MANUFACTURER_R,                     "dws",          manufacturer_req},
+       {_MANUFACTURER_I | RESPONSE,          "dws",          manufacturer_res},
+       {_MANUFACTURER_I | RESPONSE,          "",             manufacturer_res}
 };
 
-static byte * cip_bc[29][2] = {
-  { "",                     ""                     }, /* 0 */
-  { "\x03\x80\x90\xa3",     "\x03\x80\x90\xa2"     }, /* 1 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 2 */
-  { "\x02\x89\x90",         "\x02\x89\x90"         }, /* 3 */
-  { "\x03\x90\x90\xa3",     "\x03\x90\x90\xa2"     }, /* 4 */
-  { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 5 */
-  { "\x02\x98\x90",         "\x02\x98\x90"         }, /* 6 */
-  { "\x04\x88\xc0\xc6\xe6", "\x04\x88\xc0\xc6\xe6" }, /* 7 */
-  { "\x04\x88\x90\x21\x8f", "\x04\x88\x90\x21\x8f" }, /* 8 */
-  { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 9 */
-  { "",                     ""                     }, /* 10 */
-  { "",                     ""                     }, /* 11 */
-  { "",                     ""                     }, /* 12 */
-  { "",                     ""                     }, /* 13 */
-  { "",                     ""                     }, /* 14 */
-  { "",                     ""                     }, /* 15 */
-
-  { "\x03\x80\x90\xa3",     "\x03\x80\x90\xa2"     }, /* 16 */
-  { "\x03\x90\x90\xa3",     "\x03\x90\x90\xa2"     }, /* 17 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 18 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 19 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 20 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 21 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 22 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 23 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 24 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 25 */
-  { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 26 */
-  { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 27 */
-  { "\x02\x88\x90",         "\x02\x88\x90"         }  /* 28 */
+static byte *cip_bc[29][2] = {
+       { "",                     ""                     }, /* 0 */
+       { "\x03\x80\x90\xa3",     "\x03\x80\x90\xa2"     }, /* 1 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 2 */
+       { "\x02\x89\x90",         "\x02\x89\x90"         }, /* 3 */
+       { "\x03\x90\x90\xa3",     "\x03\x90\x90\xa2"     }, /* 4 */
+       { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 5 */
+       { "\x02\x98\x90",         "\x02\x98\x90"         }, /* 6 */
+       { "\x04\x88\xc0\xc6\xe6", "\x04\x88\xc0\xc6\xe6" }, /* 7 */
+       { "\x04\x88\x90\x21\x8f", "\x04\x88\x90\x21\x8f" }, /* 8 */
+       { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 9 */
+       { "",                     ""                     }, /* 10 */
+       { "",                     ""                     }, /* 11 */
+       { "",                     ""                     }, /* 12 */
+       { "",                     ""                     }, /* 13 */
+       { "",                     ""                     }, /* 14 */
+       { "",                     ""                     }, /* 15 */
+
+       { "\x03\x80\x90\xa3",     "\x03\x80\x90\xa2"     }, /* 16 */
+       { "\x03\x90\x90\xa3",     "\x03\x90\x90\xa2"     }, /* 17 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 18 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 19 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 20 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 21 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 22 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 23 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 24 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }, /* 25 */
+       { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 26 */
+       { "\x03\x91\x90\xa5",     "\x03\x91\x90\xa5"     }, /* 27 */
+       { "\x02\x88\x90",         "\x02\x88\x90"         }  /* 28 */
 };
 
-static byte * cip_hlc[29] = {
-  "",                           /* 0 */
-  "",                           /* 1 */
-  "",                           /* 2 */
-  "",                           /* 3 */
-  "",                           /* 4 */
-  "",                           /* 5 */
-  "",                           /* 6 */
-  "",                           /* 7 */
-  "",                           /* 8 */
-  "",                           /* 9 */
-  "",                           /* 10 */
-  "",                           /* 11 */
-  "",                           /* 12 */
-  "",                           /* 13 */
-  "",                           /* 14 */
-  "",                           /* 15 */
-
-  "\x02\x91\x81",               /* 16 */
-  "\x02\x91\x84",               /* 17 */
-  "\x02\x91\xa1",               /* 18 */
-  "\x02\x91\xa4",               /* 19 */
-  "\x02\x91\xa8",               /* 20 */
-  "\x02\x91\xb1",               /* 21 */
-  "\x02\x91\xb2",               /* 22 */
-  "\x02\x91\xb5",               /* 23 */
-  "\x02\x91\xb8",               /* 24 */
-  "\x02\x91\xc1",               /* 25 */
-  "\x02\x91\x81",               /* 26 */
-  "\x03\x91\xe0\x01",           /* 27 */
-  "\x03\x91\xe0\x02"            /* 28 */
+static byte *cip_hlc[29] = {
+       "",                           /* 0 */
+       "",                           /* 1 */
+       "",                           /* 2 */
+       "",                           /* 3 */
+       "",                           /* 4 */
+       "",                           /* 5 */
+       "",                           /* 6 */
+       "",                           /* 7 */
+       "",                           /* 8 */
+       "",                           /* 9 */
+       "",                           /* 10 */
+       "",                           /* 11 */
+       "",                           /* 12 */
+       "",                           /* 13 */
+       "",                           /* 14 */
+       "",                           /* 15 */
+
+       "\x02\x91\x81",               /* 16 */
+       "\x02\x91\x84",               /* 17 */
+       "\x02\x91\xa1",               /* 18 */
+       "\x02\x91\xa4",               /* 19 */
+       "\x02\x91\xa8",               /* 20 */
+       "\x02\x91\xb1",               /* 21 */
+       "\x02\x91\xb2",               /* 22 */
+       "\x02\x91\xb5",               /* 23 */
+       "\x02\x91\xb8",               /* 24 */
+       "\x02\x91\xc1",               /* 25 */
+       "\x02\x91\x81",               /* 26 */
+       "\x03\x91\xe0\x01",           /* 27 */
+       "\x03\x91\xe0\x02"            /* 28 */
 };
 
 /*------------------------------------------------------------------*/
@@ -367,14 +367,14 @@ static byte * cip_hlc[29] = {
 static byte v120_default_header[] =
 {
 
-  0x83                          /*  Ext, BR , res, res, C2 , C1 , B  , F   */
+       0x83                          /*  Ext, BR , res, res, C2 , C1 , B  , F   */
 
 };
 
 static byte v120_break_header[] =
 {
 
-  0xc3 | V120_HEADER_BREAK_BIT  /*  Ext, BR , res, res, C2 , C1 , B  , F   */
+       0xc3 | V120_HEADER_BREAK_BIT  /*  Ext, BR , res, res, C2 , C1 , B  , F   */
 
 };
 
@@ -383,206 +383,206 @@ static byte v120_break_header[] =
 /* API_PUT function                                                 */
 /*------------------------------------------------------------------*/
 
-word api_put(APPL   * appl, CAPI_MSG   * msg)
-{
-  word i, j, k, l, n;
-  word ret;
-  byte c;
-  byte controller;
-  DIVA_CAPI_ADAPTER   * a;
-  PLCI   * plci;
-  NCCI   * ncci_ptr;
-  word ncci;
-  CAPI_MSG   *m;
-    API_PARSE msg_parms[MAX_MSG_PARMS+1];
-
-  if (msg->header.length < sizeof (msg->header) ||
-      msg->header.length > MAX_MSG_SIZE) {
-    dbug(1,dprintf("bad len"));
-    return _BAD_MSG;
-  }
-
-  controller = (byte)((msg->header.controller &0x7f)-1);
-
-  /* controller starts with 0 up to (max_adapter - 1) */
-  if ( controller >= max_adapter )
-  {
-    dbug(1,dprintf("invalid ctrl"));
-    return _BAD_MSG;
-  }
-  
-  a = &adapter[controller];
-  plci = NULL;
-  if ((msg->header.plci != 0) && (msg->header.plci <= a->max_plci) && !a->adapter_disabled)
-  {
-    dbug(1,dprintf("plci=%x",msg->header.plci));
-    plci = &a->plci[msg->header.plci-1];
-    ncci = GET_WORD(&msg->header.ncci);
-    if (plci->Id
-     && (plci->appl
-      || (plci->State == INC_CON_PENDING)
-      || (plci->State == INC_CON_ALERT)
-      || (msg->header.command == (_DISCONNECT_I|RESPONSE)))
-     && ((ncci == 0)
-      || (msg->header.command == (_DISCONNECT_B3_I|RESPONSE))
-      || ((ncci < MAX_NCCI+1) && (a->ncci_plci[ncci] == plci->Id))))
-    {
-      i = plci->msg_in_read_pos;
-      j = plci->msg_in_write_pos;
-      if (j >= i)
-      {
-        if (j + msg->header.length + MSG_IN_OVERHEAD <= MSG_IN_QUEUE_SIZE)
-          i += MSG_IN_QUEUE_SIZE - j;
-        else
-          j = 0;
-      }
-      else
-      {
-
-        n = (((CAPI_MSG   *)(plci->msg_in_queue))->header.length + MSG_IN_OVERHEAD + 3) & 0xfffc;
-
-        if (i > MSG_IN_QUEUE_SIZE - n)
-          i = MSG_IN_QUEUE_SIZE - n + 1;
-        i -= j;
-      }
-
-      if (i <= ((msg->header.length + MSG_IN_OVERHEAD + 3) & 0xfffc))
-
-      {
-        dbug(0,dprintf("Q-FULL1(msg) - len=%d write=%d read=%d wrap=%d free=%d",
-          msg->header.length, plci->msg_in_write_pos,
-          plci->msg_in_read_pos, plci->msg_in_wrap_pos, i));
-
-        return _QUEUE_FULL;
-      }
-      c = false;
-      if ((((byte   *) msg) < ((byte   *)(plci->msg_in_queue)))
-       || (((byte   *) msg) >= ((byte   *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
-      {
-        if (plci->msg_in_write_pos != plci->msg_in_read_pos)
-          c = true;
-      }
-      if (msg->header.command == _DATA_B3_R)
-      {
-        if (msg->header.length < 20)
-        {
-          dbug(1,dprintf("DATA_B3 REQ wrong length %d", msg->header.length));
-          return _BAD_MSG;
-        }
-        ncci_ptr = &(a->ncci[ncci]);
-        n = ncci_ptr->data_pending;
-        l = ncci_ptr->data_ack_pending;
-        k = plci->msg_in_read_pos;
-        while (k != plci->msg_in_write_pos)
-        {
-          if (k == plci->msg_in_wrap_pos)
-            k = 0;
-          if ((((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[k]))->header.command == _DATA_B3_R)
-           && (((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[k]))->header.ncci == ncci))
-          {
-            n++;
-            if (((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[k]))->info.data_b3_req.Flags & 0x0004)
-              l++;
-          }
-
-          k += (((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[k]))->header.length +
-            MSG_IN_OVERHEAD + 3) & 0xfffc;
-
-        }
-        if ((n >= MAX_DATA_B3) || (l >= MAX_DATA_ACK))
-        {
-          dbug(0,dprintf("Q-FULL2(data) - pending=%d/%d ack_pending=%d/%d",
-                          ncci_ptr->data_pending, n, ncci_ptr->data_ack_pending, l));
-
-          return _QUEUE_FULL;
-        }
-        if (plci->req_in || plci->internal_command)
-        {
-          if ((((byte   *) msg) >= ((byte   *)(plci->msg_in_queue)))
-           && (((byte   *) msg) < ((byte   *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
-          {
-            dbug(0,dprintf("Q-FULL3(requeue)"));
-
-            return _QUEUE_FULL;
-          }
-          c = true;
-        }
-      }
-      else
-      {
-        if (plci->req_in || plci->internal_command)
-          c = true;
-        else
-        {
-          plci->command = msg->header.command;
-          plci->number = msg->header.number;
-        }
-      }
-      if (c)
-      {
-        dbug(1,dprintf("enqueue msg(0x%04x,0x%x,0x%x) - len=%d write=%d read=%d wrap=%d free=%d",
-          msg->header.command, plci->req_in, plci->internal_command,
-          msg->header.length, plci->msg_in_write_pos,
-          plci->msg_in_read_pos, plci->msg_in_wrap_pos, i));
-        if (j == 0)
-          plci->msg_in_wrap_pos = plci->msg_in_write_pos;
-        m = (CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[j]);
-        for (i = 0; i < msg->header.length; i++)
-          ((byte   *)(plci->msg_in_queue))[j++] = ((byte   *) msg)[i];
-        if (m->header.command == _DATA_B3_R)
-        {
-
-          m->info.data_b3_req.Data = (dword)(long)(TransmitBufferSet (appl, m->info.data_b3_req.Data));
-
-        }
-
-        j = (j + 3) & 0xfffc;
-
-        *((APPL   *   *)(&((byte   *)(plci->msg_in_queue))[j])) = appl;
-        plci->msg_in_write_pos = j + MSG_IN_OVERHEAD;
-        return 0;
-      }
-    }
-    else
-    {
-      plci = NULL;
-    }
-  }
-  dbug(1,dprintf("com=%x",msg->header.command));
-
-  for(j=0;j<MAX_MSG_PARMS+1;j++) msg_parms[j].length = 0;
-  for(i=0, ret = _BAD_MSG; i < ARRAY_SIZE(ftable); i++) {
-
-    if(ftable[i].command==msg->header.command) {
-      /* break loop if the message is correct, otherwise continue scan  */
-      /* (for example: CONNECT_B3_T90_ACT_RES has two specifications)   */
-      if(!api_parse(msg->info.b,(word)(msg->header.length-12),ftable[i].format,msg_parms)) {
-        ret = 0;
-        break;
-      }
-      for(j=0;j<MAX_MSG_PARMS+1;j++) msg_parms[j].length = 0;
-    }
-  }
-  if(ret) {
-    dbug(1,dprintf("BAD_MSG"));
-    if(plci) plci->command = 0;
-    return ret;
-  }
-
-
-  c = ftable[i].function(GET_DWORD(&msg->header.controller),
-                         msg->header.number,
-                         a,
-                         plci,
-                         appl,
-                         msg_parms);
-
-  channel_xmit_extended_xon (plci);
-
-  if(c==1) send_req(plci);
-  if(c==2 && plci) plci->req_in = plci->req_in_start = plci->req_out = 0;
-  if(plci && !plci->req_in) plci->command = 0;
-  return 0;
+word api_put(APPL *appl, CAPI_MSG *msg)
+{
+       word i, j, k, l, n;
+       word ret;
+       byte c;
+       byte controller;
+       DIVA_CAPI_ADAPTER *a;
+       PLCI *plci;
+       NCCI *ncci_ptr;
+       word ncci;
+       CAPI_MSG *m;
+       API_PARSE msg_parms[MAX_MSG_PARMS + 1];
+
+       if (msg->header.length < sizeof(msg->header) ||
+           msg->header.length > MAX_MSG_SIZE) {
+               dbug(1, dprintf("bad len"));
+               return _BAD_MSG;
+       }
+
+       controller = (byte)((msg->header.controller & 0x7f) - 1);
+
+       /* controller starts with 0 up to (max_adapter - 1) */
+       if (controller >= max_adapter)
+       {
+               dbug(1, dprintf("invalid ctrl"));
+               return _BAD_MSG;
+       }
+
+       a = &adapter[controller];
+       plci = NULL;
+       if ((msg->header.plci != 0) && (msg->header.plci <= a->max_plci) && !a->adapter_disabled)
+       {
+               dbug(1, dprintf("plci=%x", msg->header.plci));
+               plci = &a->plci[msg->header.plci - 1];
+               ncci = GET_WORD(&msg->header.ncci);
+               if (plci->Id
+                   && (plci->appl
+                       || (plci->State == INC_CON_PENDING)
+                       || (plci->State == INC_CON_ALERT)
+                       || (msg->header.command == (_DISCONNECT_I | RESPONSE)))
+                   && ((ncci == 0)
+                       || (msg->header.command == (_DISCONNECT_B3_I | RESPONSE))
+                       || ((ncci < MAX_NCCI + 1) && (a->ncci_plci[ncci] == plci->Id))))
+               {
+                       i = plci->msg_in_read_pos;
+                       j = plci->msg_in_write_pos;
+                       if (j >= i)
+                       {
+                               if (j + msg->header.length + MSG_IN_OVERHEAD <= MSG_IN_QUEUE_SIZE)
+                                       i += MSG_IN_QUEUE_SIZE - j;
+                               else
+                                       j = 0;
+                       }
+                       else
+                       {
+
+                               n = (((CAPI_MSG *)(plci->msg_in_queue))->header.length + MSG_IN_OVERHEAD + 3) & 0xfffc;
+
+                               if (i > MSG_IN_QUEUE_SIZE - n)
+                                       i = MSG_IN_QUEUE_SIZE - n + 1;
+                               i -= j;
+                       }
+
+                       if (i <= ((msg->header.length + MSG_IN_OVERHEAD + 3) & 0xfffc))
+
+                       {
+                               dbug(0, dprintf("Q-FULL1(msg) - len=%d write=%d read=%d wrap=%d free=%d",
+                                               msg->header.length, plci->msg_in_write_pos,
+                                               plci->msg_in_read_pos, plci->msg_in_wrap_pos, i));
+
+                               return _QUEUE_FULL;
+                       }
+                       c = false;
+                       if ((((byte *) msg) < ((byte *)(plci->msg_in_queue)))
+                           || (((byte *) msg) >= ((byte *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
+                       {
+                               if (plci->msg_in_write_pos != plci->msg_in_read_pos)
+                                       c = true;
+                       }
+                       if (msg->header.command == _DATA_B3_R)
+                       {
+                               if (msg->header.length < 20)
+                               {
+                                       dbug(1, dprintf("DATA_B3 REQ wrong length %d", msg->header.length));
+                                       return _BAD_MSG;
+                               }
+                               ncci_ptr = &(a->ncci[ncci]);
+                               n = ncci_ptr->data_pending;
+                               l = ncci_ptr->data_ack_pending;
+                               k = plci->msg_in_read_pos;
+                               while (k != plci->msg_in_write_pos)
+                               {
+                                       if (k == plci->msg_in_wrap_pos)
+                                               k = 0;
+                                       if ((((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[k]))->header.command == _DATA_B3_R)
+                                           && (((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[k]))->header.ncci == ncci))
+                                       {
+                                               n++;
+                                               if (((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[k]))->info.data_b3_req.Flags & 0x0004)
+                                                       l++;
+                                       }
+
+                                       k += (((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[k]))->header.length +
+                                             MSG_IN_OVERHEAD + 3) & 0xfffc;
+
+                               }
+                               if ((n >= MAX_DATA_B3) || (l >= MAX_DATA_ACK))
+                               {
+                                       dbug(0, dprintf("Q-FULL2(data) - pending=%d/%d ack_pending=%d/%d",
+                                                       ncci_ptr->data_pending, n, ncci_ptr->data_ack_pending, l));
+
+                                       return _QUEUE_FULL;
+                               }
+                               if (plci->req_in || plci->internal_command)
+                               {
+                                       if ((((byte *) msg) >= ((byte *)(plci->msg_in_queue)))
+                                           && (((byte *) msg) < ((byte *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
+                                       {
+                                               dbug(0, dprintf("Q-FULL3(requeue)"));
+
+                                               return _QUEUE_FULL;
+                                       }
+                                       c = true;
+                               }
+                       }
+                       else
+                       {
+                               if (plci->req_in || plci->internal_command)
+                                       c = true;
+                               else
+                               {
+                                       plci->command = msg->header.command;
+                                       plci->number = msg->header.number;
+                               }
+                       }
+                       if (c)
+                       {
+                               dbug(1, dprintf("enqueue msg(0x%04x,0x%x,0x%x) - len=%d write=%d read=%d wrap=%d free=%d",
+                                               msg->header.command, plci->req_in, plci->internal_command,
+                                               msg->header.length, plci->msg_in_write_pos,
+                                               plci->msg_in_read_pos, plci->msg_in_wrap_pos, i));
+                               if (j == 0)
+                                       plci->msg_in_wrap_pos = plci->msg_in_write_pos;
+                               m = (CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[j]);
+                               for (i = 0; i < msg->header.length; i++)
+                                       ((byte *)(plci->msg_in_queue))[j++] = ((byte *) msg)[i];
+                               if (m->header.command == _DATA_B3_R)
+                               {
+
+                                       m->info.data_b3_req.Data = (dword)(long)(TransmitBufferSet(appl, m->info.data_b3_req.Data));
+
+                               }
+
+                               j = (j + 3) & 0xfffc;
+
+                               *((APPL **)(&((byte *)(plci->msg_in_queue))[j])) = appl;
+                               plci->msg_in_write_pos = j + MSG_IN_OVERHEAD;
+                               return 0;
+                       }
+               }
+               else
+               {
+                       plci = NULL;
+               }
+       }
+       dbug(1, dprintf("com=%x", msg->header.command));
+
+       for (j = 0; j < MAX_MSG_PARMS + 1; j++) msg_parms[j].length = 0;
+       for (i = 0, ret = _BAD_MSG; i < ARRAY_SIZE(ftable); i++) {
+
+               if (ftable[i].command == msg->header.command) {
+                       /* break loop if the message is correct, otherwise continue scan  */
+                       /* (for example: CONNECT_B3_T90_ACT_RES has two specifications)   */
+                       if (!api_parse(msg->info.b, (word)(msg->header.length - 12), ftable[i].format, msg_parms)) {
+                               ret = 0;
+                               break;
+                       }
+                       for (j = 0; j < MAX_MSG_PARMS + 1; j++) msg_parms[j].length = 0;
+               }
+       }
+       if (ret) {
+               dbug(1, dprintf("BAD_MSG"));
+               if (plci) plci->command = 0;
+               return ret;
+       }
+
+
+       c = ftable[i].function(GET_DWORD(&msg->header.controller),
+                              msg->header.number,
+                              a,
+                              plci,
+                              appl,
+                              msg_parms);
+
+       channel_xmit_extended_xon(plci);
+
+       if (c == 1) send_req(plci);
+       if (c == 2 && plci) plci->req_in = plci->req_in_start = plci->req_out = 0;
+       if (plci && !plci->req_in) plci->command = 0;
+       return 0;
 }
 
 
@@ -592,85 +592,85 @@ word api_put(APPL   * appl, CAPI_MSG   * msg)
 
 static word api_parse(byte *msg, word length, byte *format, API_PARSE *parms)
 {
-  word i;
-  word p;
-
-  for(i=0,p=0; format[i]; i++) {
-    if(parms)
-    {
-      parms[i].info = &msg[p];
-    }
-    switch(format[i]) {
-    case 'b':
-      p +=1;
-      break;
-    case 'w':
-      p +=2;
-      break;
-    case 'd':
-      p +=4;
-      break;
-    case 's':
-      if(msg[p]==0xff) {
-        parms[i].info +=2;
-        parms[i].length = msg[p+1] + (msg[p+2]<<8);
-        p +=(parms[i].length +3);
-      }
-      else {
-        parms[i].length = msg[p];
-        p +=(parms[i].length +1);
-      }
-      break;
-    }
-
-    if(p>length) return true;
-  }
-  if(parms) parms[i].info = NULL;
-  return false;
+       word i;
+       word p;
+
+       for (i = 0, p = 0; format[i]; i++) {
+               if (parms)
+               {
+                       parms[i].info = &msg[p];
+               }
+               switch (format[i]) {
+               case 'b':
+                       p += 1;
+                       break;
+               case 'w':
+                       p += 2;
+                       break;
+               case 'd':
+                       p += 4;
+                       break;
+               case 's':
+                       if (msg[p] == 0xff) {
+                               parms[i].info += 2;
+                               parms[i].length = msg[p + 1] + (msg[p + 2] << 8);
+                               p += (parms[i].length + 3);
+                       }
+                       else {
+                               parms[i].length = msg[p];
+                               p += (parms[i].length + 1);
+                       }
+                       break;
+               }
+
+               if (p > length) return true;
+       }
+       if (parms) parms[i].info = NULL;
+       return false;
 }
 
 static void api_save_msg(API_PARSE *in, byte *format, API_SAVE *out)
 {
-  word i, j, n = 0;
-  byte   *p;
-
-  p = out->info;
-  for (i = 0; format[i] != '\0'; i++)
-  {
-    out->parms[i].info = p;
-    out->parms[i].length = in[i].length;
-    switch (format[i])
-    {
-    case 'b':
-      n = 1;
-      break;
-    case 'w':
-      n = 2;
-      break;
-    case 'd':
-      n = 4;
-      break;
-    case 's':
-      n = in[i].length + 1;
-      break;
-    }
-    for (j = 0; j < n; j++)
-      *(p++) = in[i].info[j];
-  }
-  out->parms[i].info = NULL;
-  out->parms[i].length = 0;
+       word i, j, n = 0;
+       byte *p;
+
+       p = out->info;
+       for (i = 0; format[i] != '\0'; i++)
+       {
+               out->parms[i].info = p;
+               out->parms[i].length = in[i].length;
+               switch (format[i])
+               {
+               case 'b':
+                       n = 1;
+                       break;
+               case 'w':
+                       n = 2;
+                       break;
+               case 'd':
+                       n = 4;
+                       break;
+               case 's':
+                       n = in[i].length + 1;
+                       break;
+               }
+               for (j = 0; j < n; j++)
+                       *(p++) = in[i].info[j];
+       }
+       out->parms[i].info = NULL;
+       out->parms[i].length = 0;
 }
 
 static void api_load_msg(API_SAVE *in, API_PARSE *out)
 {
-  word i;
+       word i;
 
-  i = 0;
-  do
-  {
-    out[i].info = in->parms[i].info;
-    out[i].length = in->parms[i].length;
-  } while (in->parms[i++].info);
+       i = 0;
+       do
+       {
+               out[i].info = in->parms[i].info;
+               out[i].length = in->parms[i].length;
+       } while (in->parms[i++].info);
 }
 
 
@@ -680,31 +680,31 @@ static void api_load_msg(API_SAVE *in, API_PARSE *out)
 
 word api_remove_start(void)
 {
-  word i;
-  word j;
-
-  if(!remove_started) {
-    remove_started = true;
-    for(i=0;i<max_adapter;i++) {
-      if(adapter[i].request) {
-        for(j=0;j<adapter[i].max_plci;j++) {
-          if(adapter[i].plci[j].Sig.Id) plci_remove(&adapter[i].plci[j]);
-        }
-      }
-    }
-    return 1;
-  }
-  else {
-    for(i=0;i<max_adapter;i++) {
-      if(adapter[i].request) {
-        for(j=0;j<adapter[i].max_plci;j++) {
-          if(adapter[i].plci[j].Sig.Id) return 1;
-        }
-      }
-    }
-  }
-  api_remove_complete();
-  return 0;
+       word i;
+       word j;
+
+       if (!remove_started) {
+               remove_started = true;
+               for (i = 0; i < max_adapter; i++) {
+                       if (adapter[i].request) {
+                               for (j = 0; j < adapter[i].max_plci; j++) {
+                                       if (adapter[i].plci[j].Sig.Id) plci_remove(&adapter[i].plci[j]);
+                               }
+                       }
+               }
+               return 1;
+       }
+       else {
+               for (i = 0; i < max_adapter; i++) {
+                       if (adapter[i].request) {
+                               for (j = 0; j < adapter[i].max_plci; j++) {
+                                       if (adapter[i].plci[j].Sig.Id) return 1;
+                               }
+                       }
+               }
+       }
+       api_remove_complete();
+       return 0;
 }
 
 
@@ -712,60 +712,60 @@ word api_remove_start(void)
 /* internal command queue                                           */
 /*------------------------------------------------------------------*/
 
-static void init_internal_command_queue (PLCI   *plci)
+static void init_internal_command_queue(PLCI *plci)
 {
-  word i;
+       word i;
 
-  dbug (1, dprintf ("%s,%d: init_internal_command_queue",
-    (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("%s,%d: init_internal_command_queue",
+                       (char *)(FILE_), __LINE__));
 
-  plci->internal_command = 0;
-  for (i = 0; i < MAX_INTERNAL_COMMAND_LEVELS; i++)
-    plci->internal_command_queue[i] = NULL;
+       plci->internal_command = 0;
+       for (i = 0; i < MAX_INTERNAL_COMMAND_LEVELS; i++)
+               plci->internal_command_queue[i] = NULL;
 }
 
 
-static void start_internal_command (dword Id, PLCI   *plci, t_std_internal_command command_function)
+static void start_internal_command(dword Id, PLCI *plci, t_std_internal_command command_function)
 {
-  word i;
+       word i;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: start_internal_command",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: start_internal_command",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
 
-  if (plci->internal_command == 0)
-  {
-    plci->internal_command_queue[0] = command_function;
-    (* command_function)(Id, plci, OK);
-  }
-  else
-  {
-    i = 1;
-    while (plci->internal_command_queue[i] != NULL)
-      i++;
-    plci->internal_command_queue[i] = command_function;
-  }
+       if (plci->internal_command == 0)
+       {
+               plci->internal_command_queue[0] = command_function;
+               (*command_function)(Id, plci, OK);
+       }
+       else
+       {
+               i = 1;
+               while (plci->internal_command_queue[i] != NULL)
+                       i++;
+               plci->internal_command_queue[i] = command_function;
+       }
 }
 
 
-static void next_internal_command (dword Id, PLCI   *plci)
+static void next_internal_command(dword Id, PLCI *plci)
 {
-  word i;
+       word i;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: next_internal_command",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: next_internal_command",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
 
-  plci->internal_command = 0;
-  plci->internal_command_queue[0] = NULL;
-  while (plci->internal_command_queue[1] != NULL)
-  {
-    for (i = 0; i < MAX_INTERNAL_COMMAND_LEVELS - 1; i++)
-      plci->internal_command_queue[i] = plci->internal_command_queue[i+1];
-    plci->internal_command_queue[MAX_INTERNAL_COMMAND_LEVELS - 1] = NULL;
-    (*(plci->internal_command_queue[0]))(Id, plci, OK);
-    if (plci->internal_command != 0)
-      return;
-    plci->internal_command_queue[0] = NULL;
-  }
+       plci->internal_command = 0;
+       plci->internal_command_queue[0] = NULL;
+       while (plci->internal_command_queue[1] != NULL)
+       {
+               for (i = 0; i < MAX_INTERNAL_COMMAND_LEVELS - 1; i++)
+                       plci->internal_command_queue[i] = plci->internal_command_queue[i + 1];
+               plci->internal_command_queue[MAX_INTERNAL_COMMAND_LEVELS - 1] = NULL;
+               (*(plci->internal_command_queue[0]))(Id, plci, OK);
+               if (plci->internal_command != 0)
+                       return;
+               plci->internal_command_queue[0] = NULL;
+       }
 }
 
 
@@ -775,238 +775,238 @@ static void next_internal_command (dword Id, PLCI   *plci)
 
 static dword ncci_mapping_bug = 0;
 
-static word get_ncci (PLCI   *plci, byte ch, word force_ncci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word ncci, i, j, k;
-
-  a = plci->adapter;
-  if (!ch || a->ch_ncci[ch])
-  {
-    ncci_mapping_bug++;
-    dbug(1,dprintf("NCCI mapping exists %ld %02x %02x %02x-%02x",
-      ncci_mapping_bug, ch, force_ncci, a->ncci_ch[a->ch_ncci[ch]], a->ch_ncci[ch]));
-    ncci = ch;
-  }
-  else
-  {
-    if (force_ncci)
-      ncci = force_ncci;
-    else
-    {
-      if ((ch < MAX_NCCI+1) && !a->ncci_ch[ch])
-        ncci = ch;
-      else
-      {
-        ncci = 1;
-        while ((ncci < MAX_NCCI+1) && a->ncci_ch[ncci])
-          ncci++;
-        if (ncci == MAX_NCCI+1)
-        {
-          ncci_mapping_bug++;
-          i = 1;
-          do
-          {
-            j = 1;
-            while ((j < MAX_NCCI+1) && (a->ncci_ch[j] != i))
-              j++;
-            k = j;
-            if (j < MAX_NCCI+1)
-            {
-              do
-              {
-                j++;
-              } while ((j < MAX_NCCI+1) && (a->ncci_ch[j] != i));
-            }
-          } while ((i < MAX_NL_CHANNEL+1) && (j < MAX_NCCI+1));
-          if (i < MAX_NL_CHANNEL+1)
-          {
-            dbug(1,dprintf("NCCI mapping overflow %ld %02x %02x %02x-%02x-%02x",
-              ncci_mapping_bug, ch, force_ncci, i, k, j));
-          }
-          else
-          {
-            dbug(1,dprintf("NCCI mapping overflow %ld %02x %02x",
-              ncci_mapping_bug, ch, force_ncci));
-          }
-          ncci = ch;
-        }
-      }
-      a->ncci_plci[ncci] = plci->Id;
-      a->ncci_state[ncci] = IDLE;
-      if (!plci->ncci_ring_list)
-        plci->ncci_ring_list = ncci;
-      else
-        a->ncci_next[ncci] = a->ncci_next[plci->ncci_ring_list];
-      a->ncci_next[plci->ncci_ring_list] = (byte) ncci;
-    }
-    a->ncci_ch[ncci] = ch;
-    a->ch_ncci[ch] = (byte) ncci;
-    dbug(1,dprintf("NCCI mapping established %ld %02x %02x %02x-%02x",
-      ncci_mapping_bug, ch, force_ncci, ch, ncci));
-  }
-  return (ncci);
-}
-
-
-static void ncci_free_receive_buffers (PLCI   *plci, word ncci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  APPL   *appl;
-  word i, ncci_code;
-  dword Id;
-
-  a = plci->adapter;
-  Id = (((dword) ncci) << 16) | (((word)(plci->Id)) << 8) | a->Id;
-  if (ncci)
-  {
-    if (a->ncci_plci[ncci] == plci->Id)
-    {
-      if (!plci->appl)
-      {
-        ncci_mapping_bug++;
-        dbug(1,dprintf("NCCI mapping appl expected %ld %08lx",
-          ncci_mapping_bug, Id));
-      }
-      else
-      {
-        appl = plci->appl;
-        ncci_code = ncci | (((word) a->Id) << 8);
-        for (i = 0; i < appl->MaxBuffer; i++)
-        {
-          if ((appl->DataNCCI[i] == ncci_code)
-           && (((byte)(appl->DataFlags[i] >> 8)) == plci->Id))
-          {
-            appl->DataNCCI[i] = 0;
-          }
-        }
-      }
-    }
-  }
-  else
-  {
-    for (ncci = 1; ncci < MAX_NCCI+1; ncci++)
-    {
-      if (a->ncci_plci[ncci] == plci->Id)
-      {
-        if (!plci->appl)
-        {
-          ncci_mapping_bug++;
-          dbug(1,dprintf("NCCI mapping no appl %ld %08lx",
-            ncci_mapping_bug, Id));
-        }
-        else
-        {
-          appl = plci->appl;
-          ncci_code = ncci | (((word) a->Id) << 8);
-          for (i = 0; i < appl->MaxBuffer; i++)
-          {
-            if ((appl->DataNCCI[i] == ncci_code)
-             && (((byte)(appl->DataFlags[i] >> 8)) == plci->Id))
-            {
-              appl->DataNCCI[i] = 0;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-
-static void cleanup_ncci_data (PLCI   *plci, word ncci)
-{
-  NCCI   *ncci_ptr;
-
-  if (ncci && (plci->adapter->ncci_plci[ncci] == plci->Id))
-  {
-    ncci_ptr = &(plci->adapter->ncci[ncci]);
-    if (plci->appl)
-    {
-      while (ncci_ptr->data_pending != 0)
-      {
-        if (!plci->data_sent || (ncci_ptr->DBuffer[ncci_ptr->data_out].P != plci->data_sent_ptr))
-          TransmitBufferFree (plci->appl, ncci_ptr->DBuffer[ncci_ptr->data_out].P);
-        (ncci_ptr->data_out)++;
-        if (ncci_ptr->data_out == MAX_DATA_B3)
-          ncci_ptr->data_out = 0;
-        (ncci_ptr->data_pending)--;
-      }
-    }
-    ncci_ptr->data_out = 0;
-    ncci_ptr->data_pending = 0;
-    ncci_ptr->data_ack_out = 0;
-    ncci_ptr->data_ack_pending = 0;
-  }
-}
-
-
-static void ncci_remove (PLCI   *plci, word ncci, byte preserve_ncci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  dword Id;
-  word i;
-
-  a = plci->adapter;
-  Id = (((dword) ncci) << 16) | (((word)(plci->Id)) << 8) | a->Id;
-  if (!preserve_ncci)
-    ncci_free_receive_buffers (plci, ncci);
-  if (ncci)
-  {
-    if (a->ncci_plci[ncci] != plci->Id)
-    {
-      ncci_mapping_bug++;
-      dbug(1,dprintf("NCCI mapping doesn't exist %ld %08lx %02x",
-        ncci_mapping_bug, Id, preserve_ncci));
-    }
-    else
-    {
-      cleanup_ncci_data (plci, ncci);
-      dbug(1,dprintf("NCCI mapping released %ld %08lx %02x %02x-%02x",
-        ncci_mapping_bug, Id, preserve_ncci, a->ncci_ch[ncci], ncci));
-      a->ch_ncci[a->ncci_ch[ncci]] = 0;
-      if (!preserve_ncci)
-      {
-        a->ncci_ch[ncci] = 0;
-        a->ncci_plci[ncci] = 0;
-        a->ncci_state[ncci] = IDLE;
-        i = plci->ncci_ring_list;
-        while ((i != 0) && (a->ncci_next[i] != plci->ncci_ring_list) && (a->ncci_next[i] != ncci))
-          i = a->ncci_next[i];
-        if ((i != 0) && (a->ncci_next[i] == ncci))
-        {
-          if (i == ncci)
-            plci->ncci_ring_list = 0;
-          else if (plci->ncci_ring_list == ncci)
-            plci->ncci_ring_list = i;
-          a->ncci_next[i] = a->ncci_next[ncci];
-        }
-        a->ncci_next[ncci] = 0;
-      }
-    }
-  }
-  else
-  {
-    for (ncci = 1; ncci < MAX_NCCI+1; ncci++)
-    {
-      if (a->ncci_plci[ncci] == plci->Id)
-      {
-        cleanup_ncci_data (plci, ncci);
-        dbug(1,dprintf("NCCI mapping released %ld %08lx %02x %02x-%02x",
-          ncci_mapping_bug, Id, preserve_ncci, a->ncci_ch[ncci], ncci));
-        a->ch_ncci[a->ncci_ch[ncci]] = 0;
-        if (!preserve_ncci)
-        {
-          a->ncci_ch[ncci] = 0;
-          a->ncci_plci[ncci] = 0;
-          a->ncci_state[ncci] = IDLE;
-          a->ncci_next[ncci] = 0;
-        }
-      }
-    }
-    if (!preserve_ncci)
-      plci->ncci_ring_list = 0;
-  }
+static word get_ncci(PLCI *plci, byte ch, word force_ncci)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word ncci, i, j, k;
+
+       a = plci->adapter;
+       if (!ch || a->ch_ncci[ch])
+       {
+               ncci_mapping_bug++;
+               dbug(1, dprintf("NCCI mapping exists %ld %02x %02x %02x-%02x",
+                               ncci_mapping_bug, ch, force_ncci, a->ncci_ch[a->ch_ncci[ch]], a->ch_ncci[ch]));
+               ncci = ch;
+       }
+       else
+       {
+               if (force_ncci)
+                       ncci = force_ncci;
+               else
+               {
+                       if ((ch < MAX_NCCI + 1) && !a->ncci_ch[ch])
+                               ncci = ch;
+                       else
+                       {
+                               ncci = 1;
+                               while ((ncci < MAX_NCCI + 1) && a->ncci_ch[ncci])
+                                       ncci++;
+                               if (ncci == MAX_NCCI + 1)
+                               {
+                                       ncci_mapping_bug++;
+                                       i = 1;
+                                       do
+                                       {
+                                               j = 1;
+                                               while ((j < MAX_NCCI + 1) && (a->ncci_ch[j] != i))
+                                                       j++;
+                                               k = j;
+                                               if (j < MAX_NCCI + 1)
+                                               {
+                                                       do
+                                                       {
+                                                               j++;
+                                                       } while ((j < MAX_NCCI + 1) && (a->ncci_ch[j] != i));
+                                               }
+                                       } while ((i < MAX_NL_CHANNEL + 1) && (j < MAX_NCCI + 1));
+                                       if (i < MAX_NL_CHANNEL + 1)
+                                       {
+                                               dbug(1, dprintf("NCCI mapping overflow %ld %02x %02x %02x-%02x-%02x",
+                                                               ncci_mapping_bug, ch, force_ncci, i, k, j));
+                                       }
+                                       else
+                                       {
+                                               dbug(1, dprintf("NCCI mapping overflow %ld %02x %02x",
+                                                               ncci_mapping_bug, ch, force_ncci));
+                                       }
+                                       ncci = ch;
+                               }
+                       }
+                       a->ncci_plci[ncci] = plci->Id;
+                       a->ncci_state[ncci] = IDLE;
+                       if (!plci->ncci_ring_list)
+                               plci->ncci_ring_list = ncci;
+                       else
+                               a->ncci_next[ncci] = a->ncci_next[plci->ncci_ring_list];
+                       a->ncci_next[plci->ncci_ring_list] = (byte) ncci;
+               }
+               a->ncci_ch[ncci] = ch;
+               a->ch_ncci[ch] = (byte) ncci;
+               dbug(1, dprintf("NCCI mapping established %ld %02x %02x %02x-%02x",
+                               ncci_mapping_bug, ch, force_ncci, ch, ncci));
+       }
+       return (ncci);
+}
+
+
+static void ncci_free_receive_buffers(PLCI *plci, word ncci)
+{
+       DIVA_CAPI_ADAPTER *a;
+       APPL *appl;
+       word i, ncci_code;
+       dword Id;
+
+       a = plci->adapter;
+       Id = (((dword) ncci) << 16) | (((word)(plci->Id)) << 8) | a->Id;
+       if (ncci)
+       {
+               if (a->ncci_plci[ncci] == plci->Id)
+               {
+                       if (!plci->appl)
+                       {
+                               ncci_mapping_bug++;
+                               dbug(1, dprintf("NCCI mapping appl expected %ld %08lx",
+                                               ncci_mapping_bug, Id));
+                       }
+                       else
+                       {
+                               appl = plci->appl;
+                               ncci_code = ncci | (((word) a->Id) << 8);
+                               for (i = 0; i < appl->MaxBuffer; i++)
+                               {
+                                       if ((appl->DataNCCI[i] == ncci_code)
+                                           && (((byte)(appl->DataFlags[i] >> 8)) == plci->Id))
+                                       {
+                                               appl->DataNCCI[i] = 0;
+                                       }
+                               }
+                       }
+               }
+       }
+       else
+       {
+               for (ncci = 1; ncci < MAX_NCCI + 1; ncci++)
+               {
+                       if (a->ncci_plci[ncci] == plci->Id)
+                       {
+                               if (!plci->appl)
+                               {
+                                       ncci_mapping_bug++;
+                                       dbug(1, dprintf("NCCI mapping no appl %ld %08lx",
+                                                       ncci_mapping_bug, Id));
+                               }
+                               else
+                               {
+                                       appl = plci->appl;
+                                       ncci_code = ncci | (((word) a->Id) << 8);
+                                       for (i = 0; i < appl->MaxBuffer; i++)
+                                       {
+                                               if ((appl->DataNCCI[i] == ncci_code)
+                                                   && (((byte)(appl->DataFlags[i] >> 8)) == plci->Id))
+                                               {
+                                                       appl->DataNCCI[i] = 0;
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+
+static void cleanup_ncci_data(PLCI *plci, word ncci)
+{
+       NCCI *ncci_ptr;
+
+       if (ncci && (plci->adapter->ncci_plci[ncci] == plci->Id))
+       {
+               ncci_ptr = &(plci->adapter->ncci[ncci]);
+               if (plci->appl)
+               {
+                       while (ncci_ptr->data_pending != 0)
+                       {
+                               if (!plci->data_sent || (ncci_ptr->DBuffer[ncci_ptr->data_out].P != plci->data_sent_ptr))
+                                       TransmitBufferFree(plci->appl, ncci_ptr->DBuffer[ncci_ptr->data_out].P);
+                               (ncci_ptr->data_out)++;
+                               if (ncci_ptr->data_out == MAX_DATA_B3)
+                                       ncci_ptr->data_out = 0;
+                               (ncci_ptr->data_pending)--;
+                       }
+               }
+               ncci_ptr->data_out = 0;
+               ncci_ptr->data_pending = 0;
+               ncci_ptr->data_ack_out = 0;
+               ncci_ptr->data_ack_pending = 0;
+       }
+}
+
+
+static void ncci_remove(PLCI *plci, word ncci, byte preserve_ncci)
+{
+       DIVA_CAPI_ADAPTER *a;
+       dword Id;
+       word i;
+
+       a = plci->adapter;
+       Id = (((dword) ncci) << 16) | (((word)(plci->Id)) << 8) | a->Id;
+       if (!preserve_ncci)
+               ncci_free_receive_buffers(plci, ncci);
+       if (ncci)
+       {
+               if (a->ncci_plci[ncci] != plci->Id)
+               {
+                       ncci_mapping_bug++;
+                       dbug(1, dprintf("NCCI mapping doesn't exist %ld %08lx %02x",
+                                       ncci_mapping_bug, Id, preserve_ncci));
+               }
+               else
+               {
+                       cleanup_ncci_data(plci, ncci);
+                       dbug(1, dprintf("NCCI mapping released %ld %08lx %02x %02x-%02x",
+                                       ncci_mapping_bug, Id, preserve_ncci, a->ncci_ch[ncci], ncci));
+                       a->ch_ncci[a->ncci_ch[ncci]] = 0;
+                       if (!preserve_ncci)
+                       {
+                               a->ncci_ch[ncci] = 0;
+                               a->ncci_plci[ncci] = 0;
+                               a->ncci_state[ncci] = IDLE;
+                               i = plci->ncci_ring_list;
+                               while ((i != 0) && (a->ncci_next[i] != plci->ncci_ring_list) && (a->ncci_next[i] != ncci))
+                                       i = a->ncci_next[i];
+                               if ((i != 0) && (a->ncci_next[i] == ncci))
+                               {
+                                       if (i == ncci)
+                                               plci->ncci_ring_list = 0;
+                                       else if (plci->ncci_ring_list == ncci)
+                                               plci->ncci_ring_list = i;
+                                       a->ncci_next[i] = a->ncci_next[ncci];
+                               }
+                               a->ncci_next[ncci] = 0;
+                       }
+               }
+       }
+       else
+       {
+               for (ncci = 1; ncci < MAX_NCCI + 1; ncci++)
+               {
+                       if (a->ncci_plci[ncci] == plci->Id)
+                       {
+                               cleanup_ncci_data(plci, ncci);
+                               dbug(1, dprintf("NCCI mapping released %ld %08lx %02x %02x-%02x",
+                                               ncci_mapping_bug, Id, preserve_ncci, a->ncci_ch[ncci], ncci));
+                               a->ch_ncci[a->ncci_ch[ncci]] = 0;
+                               if (!preserve_ncci)
+                               {
+                                       a->ncci_ch[ncci] = 0;
+                                       a->ncci_plci[ncci] = 0;
+                                       a->ncci_state[ncci] = IDLE;
+                                       a->ncci_next[ncci] = 0;
+                               }
+                       }
+               }
+               if (!preserve_ncci)
+                       plci->ncci_ring_list = 0;
+       }
 }
 
 
@@ -1014,170 +1014,170 @@ static void ncci_remove (PLCI   *plci, word ncci, byte preserve_ncci)
 /* PLCI remove function                                             */
 /*------------------------------------------------------------------*/
 
-static void plci_free_msg_in_queue (PLCI   *plci)
-{
-  word i;
-
-  if (plci->appl)
-  {
-    i = plci->msg_in_read_pos;
-    while (i != plci->msg_in_write_pos)
-    {
-      if (i == plci->msg_in_wrap_pos)
-        i = 0;
-      if (((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[i]))->header.command == _DATA_B3_R)
-      {
-
-        TransmitBufferFree (plci->appl,
-          (byte *)(long)(((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[i]))->info.data_b3_req.Data));
-
-      }
-
-      i += (((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[i]))->header.length +
-        MSG_IN_OVERHEAD + 3) & 0xfffc;
-
-    }
-  }
-  plci->msg_in_write_pos = MSG_IN_QUEUE_SIZE;
-  plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
-  plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
-}
-
-
-static void plci_remove(PLCI   * plci)
-{
-
-  if(!plci) {
-    dbug(1,dprintf("plci_remove(no plci)"));
-    return;
-  }
-  init_internal_command_queue (plci);
-  dbug(1,dprintf("plci_remove(%x,tel=%x)",plci->Id,plci->tel));
-  if(plci_remove_check(plci))
-  {
-    return;
-  }
-  if (plci->Sig.Id == 0xff)
-  {
-    dbug(1,dprintf("D-channel X.25 plci->NL.Id:%0x", plci->NL.Id));
-    if (plci->NL.Id && !plci->nl_remove_id)
-    {
-      nl_req_ncci(plci,REMOVE,0);
-      send_req(plci);
-    }
-  }
-  else
-  {
-    if (!plci->sig_remove_id
-     && (plci->Sig.Id
-      || (plci->req_in!=plci->req_out)
-      || (plci->nl_req || plci->sig_req)))
-    {
-      sig_req(plci,HANGUP,0);
-      send_req(plci);
-    }
-  }
-  ncci_remove (plci, 0, false);
-  plci_free_msg_in_queue (plci);
-
-  plci->channels = 0;
-  plci->appl = NULL;
-  if ((plci->State == INC_CON_PENDING) || (plci->State == INC_CON_ALERT))
-    plci->State = OUTG_DIS_PENDING;
+static void plci_free_msg_in_queue(PLCI *plci)
+{
+       word i;
+
+       if (plci->appl)
+       {
+               i = plci->msg_in_read_pos;
+               while (i != plci->msg_in_write_pos)
+               {
+                       if (i == plci->msg_in_wrap_pos)
+                               i = 0;
+                       if (((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[i]))->header.command == _DATA_B3_R)
+                       {
+
+                               TransmitBufferFree(plci->appl,
+                                                  (byte *)(long)(((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[i]))->info.data_b3_req.Data));
+
+                       }
+
+                       i += (((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[i]))->header.length +
+                             MSG_IN_OVERHEAD + 3) & 0xfffc;
+
+               }
+       }
+       plci->msg_in_write_pos = MSG_IN_QUEUE_SIZE;
+       plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
+       plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
+}
+
+
+static void plci_remove(PLCI *plci)
+{
+
+       if (!plci) {
+               dbug(1, dprintf("plci_remove(no plci)"));
+               return;
+       }
+       init_internal_command_queue(plci);
+       dbug(1, dprintf("plci_remove(%x,tel=%x)", plci->Id, plci->tel));
+       if (plci_remove_check(plci))
+       {
+               return;
+       }
+       if (plci->Sig.Id == 0xff)
+       {
+               dbug(1, dprintf("D-channel X.25 plci->NL.Id:%0x", plci->NL.Id));
+               if (plci->NL.Id && !plci->nl_remove_id)
+               {
+                       nl_req_ncci(plci, REMOVE, 0);
+                       send_req(plci);
+               }
+       }
+       else
+       {
+               if (!plci->sig_remove_id
+                   && (plci->Sig.Id
+                       || (plci->req_in != plci->req_out)
+                       || (plci->nl_req || plci->sig_req)))
+               {
+                       sig_req(plci, HANGUP, 0);
+                       send_req(plci);
+               }
+       }
+       ncci_remove(plci, 0, false);
+       plci_free_msg_in_queue(plci);
+
+       plci->channels = 0;
+       plci->appl = NULL;
+       if ((plci->State == INC_CON_PENDING) || (plci->State == INC_CON_ALERT))
+               plci->State = OUTG_DIS_PENDING;
 }
 
 /*------------------------------------------------------------------*/
 /* Application Group function helpers                               */
 /*------------------------------------------------------------------*/
 
-static void set_group_ind_mask (PLCI   *plci)
+static void set_group_ind_mask(PLCI *plci)
 {
-  word i;
+       word i;
 
-  for (i = 0; i < C_IND_MASK_DWORDS; i++)
-    plci->group_optimization_mask_table[i] = 0xffffffffL;
+       for (i = 0; i < C_IND_MASK_DWORDS; i++)
+               plci->group_optimization_mask_table[i] = 0xffffffffL;
 }
 
-static void clear_group_ind_mask_bit (PLCI   *plci, word b)
+static void clear_group_ind_mask_bit(PLCI *plci, word b)
 {
-  plci->group_optimization_mask_table[b >> 5] &= ~(1L << (b & 0x1f));
+       plci->group_optimization_mask_table[b >> 5] &= ~(1L << (b & 0x1f));
 }
 
-static byte test_group_ind_mask_bit (PLCI   *plci, word b)
+static byte test_group_ind_mask_bit(PLCI *plci, word b)
 {
-  return ((plci->group_optimization_mask_table[b >> 5] & (1L << (b & 0x1f))) != 0);
+       return ((plci->group_optimization_mask_table[b >> 5] & (1L << (b & 0x1f))) != 0);
 }
 
 /*------------------------------------------------------------------*/
 /* c_ind_mask operations for arbitrary MAX_APPL                     */
 /*------------------------------------------------------------------*/
 
-static void clear_c_ind_mask (PLCI   *plci)
+static void clear_c_ind_mask(PLCI *plci)
 {
-  word i;
+       word i;
 
-  for (i = 0; i < C_IND_MASK_DWORDS; i++)
-    plci->c_ind_mask_table[i] = 0;
+       for (i = 0; i < C_IND_MASK_DWORDS; i++)
+               plci->c_ind_mask_table[i] = 0;
 }
 
-static byte c_ind_mask_empty (PLCI   *plci)
+static byte c_ind_mask_empty(PLCI *plci)
 {
-  word i;
+       word i;
 
-  i = 0;
-  while ((i < C_IND_MASK_DWORDS) && (plci->c_ind_mask_table[i] == 0))
-    i++;
-  return (i == C_IND_MASK_DWORDS);
+       i = 0;
+       while ((i < C_IND_MASK_DWORDS) && (plci->c_ind_mask_table[i] == 0))
+               i++;
+       return (i == C_IND_MASK_DWORDS);
 }
 
-static void set_c_ind_mask_bit (PLCI   *plci, word b)
+static void set_c_ind_mask_bit(PLCI *plci, word b)
 {
-  plci->c_ind_mask_table[b >> 5] |= (1L << (b & 0x1f));
+       plci->c_ind_mask_table[b >> 5] |= (1L << (b & 0x1f));
 }
 
-static void clear_c_ind_mask_bit (PLCI   *plci, word b)
+static void clear_c_ind_mask_bit(PLCI *plci, word b)
 {
-  plci->c_ind_mask_table[b >> 5] &= ~(1L << (b & 0x1f));
+       plci->c_ind_mask_table[b >> 5] &= ~(1L << (b & 0x1f));
 }
 
-static byte test_c_ind_mask_bit (PLCI   *plci, word b)
+static byte test_c_ind_mask_bit(PLCI *plci, word b)
 {
-  return ((plci->c_ind_mask_table[b >> 5] & (1L << (b & 0x1f))) != 0);
+       return ((plci->c_ind_mask_table[b >> 5] & (1L << (b & 0x1f))) != 0);
 }
 
-static void dump_c_ind_mask (PLCI   *plci)
+static void dump_c_ind_mask(PLCI *plci)
 {
-static char hex_digit_table[0x10] =
-  {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
-  word i, j, k;
-  dword d;
-    char *p;
-    char buf[40];
+       static char hex_digit_table[0x10] =
+               {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+       word i, j, k;
+       dword d;
+       char *p;
+       char buf[40];
 
-  for (i = 0; i < C_IND_MASK_DWORDS; i += 4)
-  {
-    p = buf + 36;
-    *p = '\0';
-    for (j = 0; j < 4; j++)
-    {
-      if (i+j < C_IND_MASK_DWORDS)
-      {
-        d = plci->c_ind_mask_table[i+j];
-        for (k = 0; k < 8; k++)
-        {
-          *(--p) = hex_digit_table[d & 0xf];
-          d >>= 4;
-        }
-      }
-      else if (i != 0)
-      {
-        for (k = 0; k < 8; k++)
-          *(--p) = ' ';
-      }
-      *(--p) = ' ';
-    }
-    dbug(1,dprintf ("c_ind_mask =%s", (char   *) p));
-  }
+       for (i = 0; i < C_IND_MASK_DWORDS; i += 4)
+       {
+               p = buf + 36;
+               *p = '\0';
+               for (j = 0; j < 4; j++)
+               {
+                       if (i + j < C_IND_MASK_DWORDS)
+                       {
+                               d = plci->c_ind_mask_table[i + j];
+                               for (k = 0; k < 8; k++)
+                               {
+                                       *(--p) = hex_digit_table[d & 0xf];
+                                       d >>= 4;
+                               }
+                       }
+                       else if (i != 0)
+                       {
+                               for (k = 0; k < 8; k++)
+                                       *(--p) = ' ';
+                       }
+                       *(--p) = ' ';
+               }
+               dbug(1, dprintf("c_ind_mask =%s", (char *) p));
+       }
 }
 
 
@@ -1195,6204 +1195,6204 @@ static char hex_digit_table[0x10] =
 static byte connect_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                        PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word ch;
-  word i;
-  word Info;
-  byte LinkLayer;
-  API_PARSE * ai;
-  API_PARSE * bp;
-    API_PARSE ai_parms[5];
-  word channel = 0;
-  dword ch_mask;
-  byte m;
-  static byte esc_chi[35] = {0x02,0x18,0x01};
-  static byte lli[2] = {0x01,0x00};
-  byte noCh = 0;
-  word dir = 0;
-  byte   *p_chi = "";
-
-  for(i=0;i<5;i++) ai_parms[i].length = 0;
-
-  dbug(1,dprintf("connect_req(%d)",parms->length));
-  Info = _WRONG_IDENTIFIER;
-  if(a)
-  {
-    if(a->adapter_disabled)
-    {
-      dbug(1,dprintf("adapter disabled"));
-      Id = ((word)1<<8)|a->Id;
-      sendf(appl,_CONNECT_R|CONFIRM,Id,Number,"w",0);
-      sendf(appl, _DISCONNECT_I, Id, 0, "w", _L1_ERROR);
-      return false;
-    }
-    Info = _OUT_OF_PLCI;
-    if((i=get_plci(a)))
-    {
-      Info = 0;
-      plci = &a->plci[i-1];
-      plci->appl = appl;
-      plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
-      /* check 'external controller' bit for codec support */
-      if(Id & EXT_CONTROLLER)
-      {
-        if(AdvCodecSupport(a, plci, appl, 0) )
-        {
-          plci->Id = 0;
-          sendf(appl, _CONNECT_R|CONFIRM, Id, Number, "w", _WRONG_IDENTIFIER);
-          return 2;
-        }
-      }
-      ai = &parms[9];
-      bp = &parms[5];
-      ch = 0;
-      if(bp->length)LinkLayer = bp->info[3];
-      else LinkLayer = 0;
-      if(ai->length)
-      {
-        ch=0xffff;
-        if(!api_parse(&ai->info[1],(word)ai->length,"ssss",ai_parms))
-        {
-          ch = 0;
-          if(ai_parms[0].length)
-          {
-            ch = GET_WORD(ai_parms[0].info+1);
-            if(ch>4) ch=0; /* safety -> ignore ChannelID */
-            if(ch==4) /* explizit CHI in message */
-            {
-              /* check length of B-CH struct */
-              if((ai_parms[0].info)[3]>=1)
-              {
-                if((ai_parms[0].info)[4]==CHI)
-                {
-                  p_chi = &((ai_parms[0].info)[5]);
-                }
-                else
-                {
-                  p_chi = &((ai_parms[0].info)[3]);
-                }
-                if(p_chi[0]>35) /* check length of channel ID */
-                {
-                  Info = _WRONG_MESSAGE_FORMAT;    
-                }
-              }
-              else Info = _WRONG_MESSAGE_FORMAT;    
-            }
-
-            if(ch==3 && ai_parms[0].length>=7 && ai_parms[0].length<=36)
-            {
-              dir = GET_WORD(ai_parms[0].info+3);
-              ch_mask = 0;
-              m = 0x3f;
-              for(i=0; i+5<=ai_parms[0].length; i++)
-              {
-                if(ai_parms[0].info[i+5]!=0)
-                {
-                  if((ai_parms[0].info[i+5] | m) != 0xff)
-                    Info = _WRONG_MESSAGE_FORMAT;
-                  else
-                  {
-                    if (ch_mask == 0)
-                      channel = i;
-                    ch_mask |= 1L << i;
-                  }
-                }
-                m = 0;
-              }
-              if (ch_mask == 0)
-                Info = _WRONG_MESSAGE_FORMAT;
-              if (!Info)
-              {
-                if ((ai_parms[0].length == 36) || (ch_mask != ((dword)(1L << channel))))
-                {
-                  esc_chi[0] = (byte)(ai_parms[0].length - 2);
-                  for(i=0; i+5<=ai_parms[0].length; i++)
-                    esc_chi[i+3] = ai_parms[0].info[i+5];
-                }
-                else
-                  esc_chi[0] = 2;
-                esc_chi[2] = (byte)channel;
-                plci->b_channel = (byte)channel; /* not correct for ETSI ch 17..31 */
-                add_p(plci,LLI,lli);
-                add_p(plci,ESC,esc_chi);
-                plci->State = LOCAL_CONNECT;
-                if(!dir) plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;     /* dir 0=DTE, 1=DCE */
-              }
-            }
-          }
-        }
-        else  Info = _WRONG_MESSAGE_FORMAT;
-      }
-
-      dbug(1,dprintf("ch=%x,dir=%x,p_ch=%d",ch,dir,channel));
-      plci->command = _CONNECT_R;
-      plci->number = Number;
-      /* x.31 or D-ch free SAPI in LinkLayer? */
-      if(ch==1 && LinkLayer!=3 && LinkLayer!=12) noCh = true;
-      if((ch==0 || ch==2 || noCh || ch==3 || ch==4) && !Info)
-      {
-        /* B-channel used for B3 connections (ch==0), or no B channel    */
-        /* is used (ch==2) or perm. connection (3) is used  do a CALL    */
-        if(noCh) Info = add_b1(plci,&parms[5],2,0);    /* no resource    */
-        else     Info = add_b1(plci,&parms[5],ch,0); 
-        add_s(plci,OAD,&parms[2]);
-        add_s(plci,OSA,&parms[4]);
-        add_s(plci,BC,&parms[6]);
-        add_s(plci,LLC,&parms[7]);
-        add_s(plci,HLC,&parms[8]);
-        if (a->Info_Mask[appl->Id-1] & 0x200)
-        {
-          /* early B3 connect (CIP mask bit 9) no release after a disc */
-          add_p(plci,LLI,"\x01\x01");
-        }
-        if(GET_WORD(parms[0].info)<29) {
-          add_p(plci,BC,cip_bc[GET_WORD(parms[0].info)][a->u_law]);
-          add_p(plci,HLC,cip_hlc[GET_WORD(parms[0].info)]);
-        }
-        add_p(plci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-        sig_req(plci,ASSIGN,DSIG_ID);
-      }
-      else if(ch==1) {
-
-        /* D-Channel used for B3 connections */
-        plci->Sig.Id = 0xff;
-        Info = 0;
-      }
-
-      if(!Info && ch!=2 && !noCh ) {
-        Info = add_b23(plci,&parms[5]);
-        if(!Info) {
-          if(!(plci->tel && !plci->adv_nl))nl_req_ncci(plci,ASSIGN,0);
-        }
-      }
-
-      if(!Info)
-      {
-        if(ch==0 || ch==2 || ch==3 || noCh || ch==4)
-        {
-          if(plci->spoofed_msg==SPOOFING_REQUIRED)
-          {
-            api_save_msg(parms, "wsssssssss", &plci->saved_msg);
-            plci->spoofed_msg = CALL_REQ;
-            plci->internal_command = BLOCK_PLCI;
-            plci->command = 0;
-            dbug(1,dprintf("Spoof"));
-            send_req(plci);
-            return false;
-          }
-          if(ch==4)add_p(plci,CHI,p_chi);
-          add_s(plci,CPN,&parms[1]);
-          add_s(plci,DSA,&parms[3]);
-          if(noCh) add_p(plci,ESC,"\x02\x18\xfd");  /* D-channel, no B-L3 */
-          add_ai(plci,&parms[9]);
-          if(!dir)sig_req(plci,CALL_REQ,0);
-          else
-          {
-            plci->command = PERM_LIST_REQ;
-            plci->appl = appl;
-            sig_req(plci,LISTEN_REQ,0);
-            send_req(plci);
-            return false;
-          }
-        }
-        send_req(plci);
-        return false;
-      }
-      plci->Id = 0;
-    }
-  }
-  sendf(appl,
-        _CONNECT_R|CONFIRM,
-        Id,
-        Number,
-        "w",Info);
-  return 2;
+       word ch;
+       word i;
+       word Info;
+       byte LinkLayer;
+       API_PARSE *ai;
+       API_PARSE *bp;
+       API_PARSE ai_parms[5];
+       word channel = 0;
+       dword ch_mask;
+       byte m;
+       static byte esc_chi[35] = {0x02, 0x18, 0x01};
+       static byte lli[2] = {0x01, 0x00};
+       byte noCh = 0;
+       word dir = 0;
+       byte *p_chi = "";
+
+       for (i = 0; i < 5; i++) ai_parms[i].length = 0;
+
+       dbug(1, dprintf("connect_req(%d)", parms->length));
+       Info = _WRONG_IDENTIFIER;
+       if (a)
+       {
+               if (a->adapter_disabled)
+               {
+                       dbug(1, dprintf("adapter disabled"));
+                       Id = ((word)1 << 8) | a->Id;
+                       sendf(appl, _CONNECT_R | CONFIRM, Id, Number, "w", 0);
+                       sendf(appl, _DISCONNECT_I, Id, 0, "w", _L1_ERROR);
+                       return false;
+               }
+               Info = _OUT_OF_PLCI;
+               if ((i = get_plci(a)))
+               {
+                       Info = 0;
+                       plci = &a->plci[i - 1];
+                       plci->appl = appl;
+                       plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
+                       /* check 'external controller' bit for codec support */
+                       if (Id & EXT_CONTROLLER)
+                       {
+                               if (AdvCodecSupport(a, plci, appl, 0))
+                               {
+                                       plci->Id = 0;
+                                       sendf(appl, _CONNECT_R | CONFIRM, Id, Number, "w", _WRONG_IDENTIFIER);
+                                       return 2;
+                               }
+                       }
+                       ai = &parms[9];
+                       bp = &parms[5];
+                       ch = 0;
+                       if (bp->length)LinkLayer = bp->info[3];
+                       else LinkLayer = 0;
+                       if (ai->length)
+                       {
+                               ch = 0xffff;
+                               if (!api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms))
+                               {
+                                       ch = 0;
+                                       if (ai_parms[0].length)
+                                       {
+                                               ch = GET_WORD(ai_parms[0].info + 1);
+                                               if (ch > 4) ch = 0; /* safety -> ignore ChannelID */
+                                               if (ch == 4) /* explizit CHI in message */
+                                               {
+                                                       /* check length of B-CH struct */
+                                                       if ((ai_parms[0].info)[3] >= 1)
+                                                       {
+                                                               if ((ai_parms[0].info)[4] == CHI)
+                                                               {
+                                                                       p_chi = &((ai_parms[0].info)[5]);
+                                                               }
+                                                               else
+                                                               {
+                                                                       p_chi = &((ai_parms[0].info)[3]);
+                                                               }
+                                                               if (p_chi[0] > 35) /* check length of channel ID */
+                                                               {
+                                                                       Info = _WRONG_MESSAGE_FORMAT;
+                                                               }
+                                                       }
+                                                       else Info = _WRONG_MESSAGE_FORMAT;
+                                               }
+
+                                               if (ch == 3 && ai_parms[0].length >= 7 && ai_parms[0].length <= 36)
+                                               {
+                                                       dir = GET_WORD(ai_parms[0].info + 3);
+                                                       ch_mask = 0;
+                                                       m = 0x3f;
+                                                       for (i = 0; i + 5 <= ai_parms[0].length; i++)
+                                                       {
+                                                               if (ai_parms[0].info[i + 5] != 0)
+                                                               {
+                                                                       if ((ai_parms[0].info[i + 5] | m) != 0xff)
+                                                                               Info = _WRONG_MESSAGE_FORMAT;
+                                                                       else
+                                                                       {
+                                                                               if (ch_mask == 0)
+                                                                                       channel = i;
+                                                                               ch_mask |= 1L << i;
+                                                                       }
+                                                               }
+                                                               m = 0;
+                                                       }
+                                                       if (ch_mask == 0)
+                                                               Info = _WRONG_MESSAGE_FORMAT;
+                                                       if (!Info)
+                                                       {
+                                                               if ((ai_parms[0].length == 36) || (ch_mask != ((dword)(1L << channel))))
+                                                               {
+                                                                       esc_chi[0] = (byte)(ai_parms[0].length - 2);
+                                                                       for (i = 0; i + 5 <= ai_parms[0].length; i++)
+                                                                               esc_chi[i + 3] = ai_parms[0].info[i + 5];
+                                                               }
+                                                               else
+                                                                       esc_chi[0] = 2;
+                                                               esc_chi[2] = (byte)channel;
+                                                               plci->b_channel = (byte)channel; /* not correct for ETSI ch 17..31 */
+                                                               add_p(plci, LLI, lli);
+                                                               add_p(plci, ESC, esc_chi);
+                                                               plci->State = LOCAL_CONNECT;
+                                                               if (!dir) plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;     /* dir 0=DTE, 1=DCE */
+                                                       }
+                                               }
+                                       }
+                               }
+                               else  Info = _WRONG_MESSAGE_FORMAT;
+                       }
+
+                       dbug(1, dprintf("ch=%x,dir=%x,p_ch=%d", ch, dir, channel));
+                       plci->command = _CONNECT_R;
+                       plci->number = Number;
+                       /* x.31 or D-ch free SAPI in LinkLayer? */
+                       if (ch == 1 && LinkLayer != 3 && LinkLayer != 12) noCh = true;
+                       if ((ch == 0 || ch == 2 || noCh || ch == 3 || ch == 4) && !Info)
+                       {
+                               /* B-channel used for B3 connections (ch==0), or no B channel    */
+                               /* is used (ch==2) or perm. connection (3) is used  do a CALL    */
+                               if (noCh) Info = add_b1(plci, &parms[5], 2, 0);    /* no resource    */
+                               else     Info = add_b1(plci, &parms[5], ch, 0);
+                               add_s(plci, OAD, &parms[2]);
+                               add_s(plci, OSA, &parms[4]);
+                               add_s(plci, BC, &parms[6]);
+                               add_s(plci, LLC, &parms[7]);
+                               add_s(plci, HLC, &parms[8]);
+                               if (a->Info_Mask[appl->Id - 1] & 0x200)
+                               {
+                                       /* early B3 connect (CIP mask bit 9) no release after a disc */
+                                       add_p(plci, LLI, "\x01\x01");
+                               }
+                               if (GET_WORD(parms[0].info) < 29) {
+                                       add_p(plci, BC, cip_bc[GET_WORD(parms[0].info)][a->u_law]);
+                                       add_p(plci, HLC, cip_hlc[GET_WORD(parms[0].info)]);
+                               }
+                               add_p(plci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                               sig_req(plci, ASSIGN, DSIG_ID);
+                       }
+                       else if (ch == 1) {
+
+                               /* D-Channel used for B3 connections */
+                               plci->Sig.Id = 0xff;
+                               Info = 0;
+                       }
+
+                       if (!Info && ch != 2 && !noCh) {
+                               Info = add_b23(plci, &parms[5]);
+                               if (!Info) {
+                                       if (!(plci->tel && !plci->adv_nl))nl_req_ncci(plci, ASSIGN, 0);
+                               }
+                       }
+
+                       if (!Info)
+                       {
+                               if (ch == 0 || ch == 2 || ch == 3 || noCh || ch == 4)
+                               {
+                                       if (plci->spoofed_msg == SPOOFING_REQUIRED)
+                                       {
+                                               api_save_msg(parms, "wsssssssss", &plci->saved_msg);
+                                               plci->spoofed_msg = CALL_REQ;
+                                               plci->internal_command = BLOCK_PLCI;
+                                               plci->command = 0;
+                                               dbug(1, dprintf("Spoof"));
+                                               send_req(plci);
+                                               return false;
+                                       }
+                                       if (ch == 4)add_p(plci, CHI, p_chi);
+                                       add_s(plci, CPN, &parms[1]);
+                                       add_s(plci, DSA, &parms[3]);
+                                       if (noCh) add_p(plci, ESC, "\x02\x18\xfd");  /* D-channel, no B-L3 */
+                                       add_ai(plci, &parms[9]);
+                                       if (!dir)sig_req(plci, CALL_REQ, 0);
+                                       else
+                                       {
+                                               plci->command = PERM_LIST_REQ;
+                                               plci->appl = appl;
+                                               sig_req(plci, LISTEN_REQ, 0);
+                                               send_req(plci);
+                                               return false;
+                                       }
+                               }
+                               send_req(plci);
+                               return false;
+                       }
+                       plci->Id = 0;
+               }
+       }
+       sendf(appl,
+             _CONNECT_R | CONFIRM,
+             Id,
+             Number,
+             "w", Info);
+       return 2;
 }
 
 static byte connect_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                        PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word i, Info;
-  word Reject;
-  static byte cau_t[] = {0,0,0x90,0x91,0xac,0x9d,0x86,0xd8,0x9b};
-  static byte esc_t[] = {0x03,0x08,0x00,0x00};
-  API_PARSE * ai;
-    API_PARSE ai_parms[5];
-  word ch=0;
-
-  if(!plci) {
-    dbug(1,dprintf("connect_res(no plci)"));
-    return 0;  /* no plci, no send */
-  }
-
-  dbug(1,dprintf("connect_res(State=0x%x)",plci->State));
-  for(i=0;i<5;i++) ai_parms[i].length = 0;
-  ai = &parms[5];
-  dbug(1,dprintf("ai->length=%d",ai->length));
-
-  if(ai->length)
-  {
-    if(!api_parse(&ai->info[1],(word)ai->length,"ssss",ai_parms))
-    {
-      dbug(1,dprintf("ai_parms[0].length=%d/0x%x",ai_parms[0].length,GET_WORD(ai_parms[0].info+1)));
-      ch = 0;
-      if(ai_parms[0].length)
-      {
-        ch = GET_WORD(ai_parms[0].info+1);
-        dbug(1,dprintf("BCH-I=0x%x",ch));
-      }
-    }
-  }
-
-  if(plci->State==INC_CON_CONNECTED_ALERT)
-  {
-    dbug(1,dprintf("Connected Alert Call_Res"));
-    if (a->Info_Mask[appl->Id-1] & 0x200)
-    {
-    /* early B3 connect (CIP mask bit 9) no release after a disc */
-      add_p(plci,LLI,"\x01\x01");
-    }
-    add_s(plci, CONN_NR, &parms[2]);
-    add_s(plci, LLC, &parms[4]);
-    add_ai(plci, &parms[5]);
-    plci->State = INC_CON_ACCEPT;
-    sig_req(plci, CALL_RES,0);
-    return 1;
-  }
-  else if(plci->State==INC_CON_PENDING || plci->State==INC_CON_ALERT) {
-    clear_c_ind_mask_bit (plci, (word)(appl->Id-1));
-    dump_c_ind_mask (plci);
-    Reject = GET_WORD(parms[0].info);
-    dbug(1,dprintf("Reject=0x%x",Reject));
-    if(Reject) 
-    {
-      if(c_ind_mask_empty (plci)) 
-      {
-        if((Reject&0xff00)==0x3400) 
-        {
-          esc_t[2] = ((byte)(Reject&0x00ff)) | 0x80;
-          add_p(plci,ESC,esc_t);
-          add_ai(plci, &parms[5]);
-          sig_req(plci,REJECT,0);
-        }      
-        else if(Reject==1 || Reject>9) 
-        {
-          add_ai(plci, &parms[5]);
-          sig_req(plci,HANGUP,0);
-        }
-        else 
-        {
-          esc_t[2] = cau_t[(Reject&0x000f)];
-          add_p(plci,ESC,esc_t);
-          add_ai(plci, &parms[5]);
-          sig_req(plci,REJECT,0);
-        }
-        plci->appl = appl;
-      }
-      else 
-      {
-        sendf(appl, _DISCONNECT_I, Id, 0, "w", _OTHER_APPL_CONNECTED);
-      }
-    }
-    else {
-      plci->appl = appl;
-      if(Id & EXT_CONTROLLER){
-        if(AdvCodecSupport(a, plci, appl, 0)){
-          dbug(1,dprintf("connect_res(error from AdvCodecSupport)"));
-          sig_req(plci,HANGUP,0);
-          return 1;
-        }
-        if(plci->tel == ADV_VOICE && a->AdvCodecPLCI)
-        {
-          Info = add_b23(plci, &parms[1]);
-          if (Info)
-          {
-            dbug(1,dprintf("connect_res(error from add_b23)"));
-            sig_req(plci,HANGUP,0);
-            return 1;
-          }
-          if(plci->adv_nl)
-          {
-            nl_req_ncci(plci, ASSIGN, 0);
-          }
-        }
-      }
-      else
-      {
-        plci->tel = 0;
-        if(ch!=2)
-        {
-          Info = add_b23(plci, &parms[1]);
-          if (Info)
-          {
-            dbug(1,dprintf("connect_res(error from add_b23 2)"));
-            sig_req(plci,HANGUP,0);
-            return 1;
-          }
-        }
-        nl_req_ncci(plci, ASSIGN, 0);
-      }
-
-      if(plci->spoofed_msg==SPOOFING_REQUIRED)
-      {
-        api_save_msg(parms, "wsssss", &plci->saved_msg);
-        plci->spoofed_msg = CALL_RES;
-        plci->internal_command = BLOCK_PLCI;
-        plci->command = 0;
-        dbug(1,dprintf("Spoof"));
-      }
-      else
-      {
-        add_b1 (plci, &parms[1], ch, plci->B1_facilities);
-        if (a->Info_Mask[appl->Id-1] & 0x200)
-        {
-          /* early B3 connect (CIP mask bit 9) no release after a disc */
-          add_p(plci,LLI,"\x01\x01");
-        }
-        add_s(plci, CONN_NR, &parms[2]);
-        add_s(plci, LLC, &parms[4]);
-        add_ai(plci, &parms[5]);
-        plci->State = INC_CON_ACCEPT;
-        sig_req(plci, CALL_RES,0);
-      }
-
-      for(i=0; i<max_appl; i++) {
-        if(test_c_ind_mask_bit (plci, i)) {
-          sendf(&application[i], _DISCONNECT_I, Id, 0, "w", _OTHER_APPL_CONNECTED);
-        }
-      }
-    }
-  }
-  return 1;
+       word i, Info;
+       word Reject;
+       static byte cau_t[] = {0, 0, 0x90, 0x91, 0xac, 0x9d, 0x86, 0xd8, 0x9b};
+       static byte esc_t[] = {0x03, 0x08, 0x00, 0x00};
+       API_PARSE *ai;
+       API_PARSE ai_parms[5];
+       word ch = 0;
+
+       if (!plci) {
+               dbug(1, dprintf("connect_res(no plci)"));
+               return 0;  /* no plci, no send */
+       }
+
+       dbug(1, dprintf("connect_res(State=0x%x)", plci->State));
+       for (i = 0; i < 5; i++) ai_parms[i].length = 0;
+       ai = &parms[5];
+       dbug(1, dprintf("ai->length=%d", ai->length));
+
+       if (ai->length)
+       {
+               if (!api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms))
+               {
+                       dbug(1, dprintf("ai_parms[0].length=%d/0x%x", ai_parms[0].length, GET_WORD(ai_parms[0].info + 1)));
+                       ch = 0;
+                       if (ai_parms[0].length)
+                       {
+                               ch = GET_WORD(ai_parms[0].info + 1);
+                               dbug(1, dprintf("BCH-I=0x%x", ch));
+                       }
+               }
+       }
+
+       if (plci->State == INC_CON_CONNECTED_ALERT)
+       {
+               dbug(1, dprintf("Connected Alert Call_Res"));
+               if (a->Info_Mask[appl->Id - 1] & 0x200)
+               {
+                       /* early B3 connect (CIP mask bit 9) no release after a disc */
+                       add_p(plci, LLI, "\x01\x01");
+               }
+               add_s(plci, CONN_NR, &parms[2]);
+               add_s(plci, LLC, &parms[4]);
+               add_ai(plci, &parms[5]);
+               plci->State = INC_CON_ACCEPT;
+               sig_req(plci, CALL_RES, 0);
+               return 1;
+       }
+       else if (plci->State == INC_CON_PENDING || plci->State == INC_CON_ALERT) {
+               clear_c_ind_mask_bit(plci, (word)(appl->Id - 1));
+               dump_c_ind_mask(plci);
+               Reject = GET_WORD(parms[0].info);
+               dbug(1, dprintf("Reject=0x%x", Reject));
+               if (Reject)
+               {
+                       if (c_ind_mask_empty(plci))
+                       {
+                               if ((Reject & 0xff00) == 0x3400)
+                               {
+                                       esc_t[2] = ((byte)(Reject & 0x00ff)) | 0x80;
+                                       add_p(plci, ESC, esc_t);
+                                       add_ai(plci, &parms[5]);
+                                       sig_req(plci, REJECT, 0);
+                               }
+                               else if (Reject == 1 || Reject > 9)
+                               {
+                                       add_ai(plci, &parms[5]);
+                                       sig_req(plci, HANGUP, 0);
+                               }
+                               else
+                               {
+                                       esc_t[2] = cau_t[(Reject&0x000f)];
+                                       add_p(plci, ESC, esc_t);
+                                       add_ai(plci, &parms[5]);
+                                       sig_req(plci, REJECT, 0);
+                               }
+                               plci->appl = appl;
+                       }
+                       else
+                       {
+                               sendf(appl, _DISCONNECT_I, Id, 0, "w", _OTHER_APPL_CONNECTED);
+                       }
+               }
+               else {
+                       plci->appl = appl;
+                       if (Id & EXT_CONTROLLER) {
+                               if (AdvCodecSupport(a, plci, appl, 0)) {
+                                       dbug(1, dprintf("connect_res(error from AdvCodecSupport)"));
+                                       sig_req(plci, HANGUP, 0);
+                                       return 1;
+                               }
+                               if (plci->tel == ADV_VOICE && a->AdvCodecPLCI)
+                               {
+                                       Info = add_b23(plci, &parms[1]);
+                                       if (Info)
+                                       {
+                                               dbug(1, dprintf("connect_res(error from add_b23)"));
+                                               sig_req(plci, HANGUP, 0);
+                                               return 1;
+                                       }
+                                       if (plci->adv_nl)
+                                       {
+                                               nl_req_ncci(plci, ASSIGN, 0);
+                                       }
+                               }
+                       }
+                       else
+                       {
+                               plci->tel = 0;
+                               if (ch != 2)
+                               {
+                                       Info = add_b23(plci, &parms[1]);
+                                       if (Info)
+                                       {
+                                               dbug(1, dprintf("connect_res(error from add_b23 2)"));
+                                               sig_req(plci, HANGUP, 0);
+                                               return 1;
+                                       }
+                               }
+                               nl_req_ncci(plci, ASSIGN, 0);
+                       }
+
+                       if (plci->spoofed_msg == SPOOFING_REQUIRED)
+                       {
+                               api_save_msg(parms, "wsssss", &plci->saved_msg);
+                               plci->spoofed_msg = CALL_RES;
+                               plci->internal_command = BLOCK_PLCI;
+                               plci->command = 0;
+                               dbug(1, dprintf("Spoof"));
+                       }
+                       else
+                       {
+                               add_b1(plci, &parms[1], ch, plci->B1_facilities);
+                               if (a->Info_Mask[appl->Id - 1] & 0x200)
+                               {
+                                       /* early B3 connect (CIP mask bit 9) no release after a disc */
+                                       add_p(plci, LLI, "\x01\x01");
+                               }
+                               add_s(plci, CONN_NR, &parms[2]);
+                               add_s(plci, LLC, &parms[4]);
+                               add_ai(plci, &parms[5]);
+                               plci->State = INC_CON_ACCEPT;
+                               sig_req(plci, CALL_RES, 0);
+                       }
+
+                       for (i = 0; i < max_appl; i++) {
+                               if (test_c_ind_mask_bit(plci, i)) {
+                                       sendf(&application[i], _DISCONNECT_I, Id, 0, "w", _OTHER_APPL_CONNECTED);
+                               }
+                       }
+               }
+       }
+       return 1;
 }
 
 static byte connect_a_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                          PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  dbug(1,dprintf("connect_a_res"));
-  return false;
+       dbug(1, dprintf("connect_a_res"));
+       return false;
 }
 
 static byte disconnect_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                           PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  word Info;
-  word i;
-
-  dbug(1,dprintf("disconnect_req"));
-
-  Info = _WRONG_IDENTIFIER;
-
-  if(plci)
-  {
-    if(plci->State==INC_CON_PENDING || plci->State==INC_CON_ALERT)
-    {
-      clear_c_ind_mask_bit (plci, (word)(appl->Id-1));
-      plci->appl = appl;
-      for(i=0; i<max_appl; i++)
-      {
-        if(test_c_ind_mask_bit (plci, i))
-          sendf(&application[i], _DISCONNECT_I, Id, 0, "w", 0);
-      }
-      plci->State = OUTG_DIS_PENDING;
-    }
-    if(plci->Sig.Id && plci->appl)
-    {
-      Info = 0;
-        if(plci->Sig.Id!=0xff)
-        {
-          if(plci->State!=INC_DIS_PENDING)
-          {
-            add_ai(plci, &msg[0]);
-            sig_req(plci,HANGUP,0);
-            plci->State = OUTG_DIS_PENDING;
-            return 1;
-          }
-        }
-        else
-        {
-          if (plci->NL.Id && !plci->nl_remove_id)
-          {
-            mixer_remove (plci);
-            nl_req_ncci(plci,REMOVE,0);
-          sendf(appl,_DISCONNECT_R|CONFIRM,Id,Number,"w",0);
-          sendf(appl, _DISCONNECT_I, Id, 0, "w", 0);
-          plci->State = INC_DIS_PENDING;
-          }
-          return 1;
-        }
-      }
-    }
-
-  if(!appl)  return false;
-  sendf(appl, _DISCONNECT_R|CONFIRM, Id, Number, "w",Info);
-  return false;
+       word Info;
+       word i;
+
+       dbug(1, dprintf("disconnect_req"));
+
+       Info = _WRONG_IDENTIFIER;
+
+       if (plci)
+       {
+               if (plci->State == INC_CON_PENDING || plci->State == INC_CON_ALERT)
+               {
+                       clear_c_ind_mask_bit(plci, (word)(appl->Id - 1));
+                       plci->appl = appl;
+                       for (i = 0; i < max_appl; i++)
+                       {
+                               if (test_c_ind_mask_bit(plci, i))
+                                       sendf(&application[i], _DISCONNECT_I, Id, 0, "w", 0);
+                       }
+                       plci->State = OUTG_DIS_PENDING;
+               }
+               if (plci->Sig.Id && plci->appl)
+               {
+                       Info = 0;
+                       if (plci->Sig.Id != 0xff)
+                       {
+                               if (plci->State != INC_DIS_PENDING)
+                               {
+                                       add_ai(plci, &msg[0]);
+                                       sig_req(plci, HANGUP, 0);
+                                       plci->State = OUTG_DIS_PENDING;
+                                       return 1;
+                               }
+                       }
+                       else
+                       {
+                               if (plci->NL.Id && !plci->nl_remove_id)
+                               {
+                                       mixer_remove(plci);
+                                       nl_req_ncci(plci, REMOVE, 0);
+                                       sendf(appl, _DISCONNECT_R | CONFIRM, Id, Number, "w", 0);
+                                       sendf(appl, _DISCONNECT_I, Id, 0, "w", 0);
+                                       plci->State = INC_DIS_PENDING;
+                               }
+                               return 1;
+                       }
+               }
+       }
+
+       if (!appl)  return false;
+       sendf(appl, _DISCONNECT_R | CONFIRM, Id, Number, "w", Info);
+       return false;
 }
 
 static byte disconnect_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                           PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  dbug(1,dprintf("disconnect_res"));
-  if(plci)
-  {
-        /* clear ind mask bit, just in case of collsion of          */
-        /* DISCONNECT_IND and CONNECT_RES                           */
-    clear_c_ind_mask_bit (plci, (word)(appl->Id-1));
-    ncci_free_receive_buffers (plci, 0);
-    if(plci_remove_check(plci))
-    {
-      return 0;
-    }
-    if(plci->State==INC_DIS_PENDING
-    || plci->State==SUSPENDING) {
-      if(c_ind_mask_empty (plci)) {
-        if(plci->State!=SUSPENDING)plci->State = IDLE;
-        dbug(1,dprintf("chs=%d",plci->channels));
-        if(!plci->channels) {
-          plci_remove(plci);
-        }
-      }
-    }
-  }
-  return 0;
+       dbug(1, dprintf("disconnect_res"));
+       if (plci)
+       {
+               /* clear ind mask bit, just in case of collsion of          */
+               /* DISCONNECT_IND and CONNECT_RES                           */
+               clear_c_ind_mask_bit(plci, (word)(appl->Id - 1));
+               ncci_free_receive_buffers(plci, 0);
+               if (plci_remove_check(plci))
+               {
+                       return 0;
+               }
+               if (plci->State == INC_DIS_PENDING
+                   || plci->State == SUSPENDING) {
+                       if (c_ind_mask_empty(plci)) {
+                               if (plci->State != SUSPENDING) plci->State = IDLE;
+                               dbug(1, dprintf("chs=%d", plci->channels));
+                               if (!plci->channels) {
+                                       plci_remove(plci);
+                               }
+                       }
+               }
+       }
+       return 0;
 }
 
 static byte listen_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                       PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word Info;
-  byte i;
-
-  dbug(1,dprintf("listen_req(Appl=0x%x)",appl->Id));
-
-  Info = _WRONG_IDENTIFIER;
-  if(a) {
-    Info = 0;
-    a->Info_Mask[appl->Id-1] = GET_DWORD(parms[0].info);
-    a->CIP_Mask[appl->Id-1] = GET_DWORD(parms[1].info);
-    dbug(1,dprintf("CIP_MASK=0x%lx",GET_DWORD(parms[1].info)));
-    if (a->Info_Mask[appl->Id-1] & 0x200){ /* early B3 connect provides */
-      a->Info_Mask[appl->Id-1] |=  0x10;   /* call progression infos    */
-    }
-
-    /* check if external controller listen and switch listen on or off*/
-    if(Id&EXT_CONTROLLER && GET_DWORD(parms[1].info)){
-      if(a->profile.Global_Options & ON_BOARD_CODEC) {
-        dummy_plci.State = IDLE;
-        a->codec_listen[appl->Id-1] = &dummy_plci;
-        a->TelOAD[0] = (byte)(parms[3].length);
-        for(i=1;parms[3].length>=i && i<22;i++) {
-          a->TelOAD[i] = parms[3].info[i];
-        }
-        a->TelOAD[i] = 0;
-        a->TelOSA[0] = (byte)(parms[4].length);
-        for(i=1;parms[4].length>=i && i<22;i++) {
-          a->TelOSA[i] = parms[4].info[i];
-        }
-        a->TelOSA[i] = 0;
-      }
-      else Info = 0x2002; /* wrong controller, codec not supported */
-    }
-    else{               /* clear listen */
-      a->codec_listen[appl->Id-1] = (PLCI   *)0;
-    }
-  }
-  sendf(appl,
-        _LISTEN_R|CONFIRM,
-        Id,
-        Number,
-        "w",Info);
-
-  if (a) listen_check(a);
-  return false;
+       word Info;
+       byte i;
+
+       dbug(1, dprintf("listen_req(Appl=0x%x)", appl->Id));
+
+       Info = _WRONG_IDENTIFIER;
+       if (a) {
+               Info = 0;
+               a->Info_Mask[appl->Id - 1] = GET_DWORD(parms[0].info);
+               a->CIP_Mask[appl->Id - 1] = GET_DWORD(parms[1].info);
+               dbug(1, dprintf("CIP_MASK=0x%lx", GET_DWORD(parms[1].info)));
+               if (a->Info_Mask[appl->Id - 1] & 0x200) { /* early B3 connect provides */
+                       a->Info_Mask[appl->Id - 1] |=  0x10;   /* call progression infos    */
+               }
+
+               /* check if external controller listen and switch listen on or off*/
+               if (Id&EXT_CONTROLLER && GET_DWORD(parms[1].info)) {
+                       if (a->profile.Global_Options & ON_BOARD_CODEC) {
+                               dummy_plci.State = IDLE;
+                               a->codec_listen[appl->Id - 1] = &dummy_plci;
+                               a->TelOAD[0] = (byte)(parms[3].length);
+                               for (i = 1; parms[3].length >= i && i < 22; i++) {
+                                       a->TelOAD[i] = parms[3].info[i];
+                               }
+                               a->TelOAD[i] = 0;
+                               a->TelOSA[0] = (byte)(parms[4].length);
+                               for (i = 1; parms[4].length >= i && i < 22; i++) {
+                                       a->TelOSA[i] = parms[4].info[i];
+                               }
+                               a->TelOSA[i] = 0;
+                       }
+                       else Info = 0x2002; /* wrong controller, codec not supported */
+               }
+               else{               /* clear listen */
+                       a->codec_listen[appl->Id - 1] = (PLCI *)0;
+               }
+       }
+       sendf(appl,
+             _LISTEN_R | CONFIRM,
+             Id,
+             Number,
+             "w", Info);
+
+       if (a) listen_check(a);
+       return false;
 }
 
 static byte info_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                     PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  word i;
-  API_PARSE * ai;
-  PLCI   * rc_plci = NULL;
-    API_PARSE ai_parms[5];
-  word Info = 0;
-
-  dbug(1,dprintf("info_req"));
-  for(i=0;i<5;i++) ai_parms[i].length = 0;
-
-  ai = &msg[1];
-
-  if(ai->length)
-  {
-    if(api_parse(&ai->info[1],(word)ai->length,"ssss",ai_parms))
-    {
-      dbug(1,dprintf("AddInfo wrong"));
-      Info = _WRONG_MESSAGE_FORMAT;
-    }
-  }
-  if(!a) Info = _WRONG_STATE;
-
-  if(!Info && plci)
-  {                /* no fac, with CPN, or KEY */
-    rc_plci = plci;
-    if(!ai_parms[3].length && plci->State && (msg[0].length || ai_parms[1].length) )
-    {
-      /* overlap sending option */
-      dbug(1,dprintf("OvlSnd"));
-      add_s(plci,CPN,&msg[0]);
-      add_s(plci,KEY,&ai_parms[1]);
-      sig_req(plci,INFO_REQ,0);
-      send_req(plci);
-      return false;
-    }
-
-    if(plci->State && ai_parms[2].length)
-    {
-      /* User_Info option */
-      dbug(1,dprintf("UUI"));
-      add_s(plci,UUI,&ai_parms[2]);
-      sig_req(plci,USER_DATA,0);
-    }
-    else if(plci->State && ai_parms[3].length)
-    {
-      /* Facility option */
-      dbug(1,dprintf("FAC"));
-      add_s(plci,CPN,&msg[0]);
-      add_ai(plci, &msg[1]);
-      sig_req(plci,FACILITY_REQ,0);
-    }
-    else
-    {
-      Info = _WRONG_STATE;
-    }
-  }
-  else if((ai_parms[1].length || ai_parms[2].length || ai_parms[3].length) && !Info)
-  {
-    /* NCR_Facility option -> send UUI and Keypad too */
-    dbug(1,dprintf("NCR_FAC"));
-    if((i=get_plci(a)))
-    {
-      rc_plci = &a->plci[i-1];
-      appl->NullCREnable  = true;
-      rc_plci->internal_command = C_NCR_FAC_REQ;
-      rc_plci->appl = appl;
-      add_p(rc_plci,CAI,"\x01\x80");
-      add_p(rc_plci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-      sig_req(rc_plci,ASSIGN,DSIG_ID);
-      send_req(rc_plci);
-    }
-    else
-    {
-      Info = _OUT_OF_PLCI;
-    }
-
-    if(!Info)
-    {
-      add_s(rc_plci,CPN,&msg[0]);
-      add_ai(rc_plci, &msg[1]);
-      sig_req(rc_plci,NCR_FACILITY,0);
-      send_req(rc_plci);
-      return false;
-     /* for application controlled supplementary services    */
-    }
-  }
-
-  if (!rc_plci)
-  {
-    Info = _WRONG_MESSAGE_FORMAT;
-  }
-
-  if(!Info)
-  {
-    send_req(rc_plci);
-  }
-  else
-  {  /* appl is not assigned to a PLCI or error condition */
-    dbug(1,dprintf("localInfoCon"));
-    sendf(appl,
-          _INFO_R|CONFIRM,
-          Id,
-          Number,
-          "w",Info);
-  }
-  return false;
+       word i;
+       API_PARSE *ai;
+       PLCI *rc_plci = NULL;
+       API_PARSE ai_parms[5];
+       word Info = 0;
+
+       dbug(1, dprintf("info_req"));
+       for (i = 0; i < 5; i++) ai_parms[i].length = 0;
+
+       ai = &msg[1];
+
+       if (ai->length)
+       {
+               if (api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms))
+               {
+                       dbug(1, dprintf("AddInfo wrong"));
+                       Info = _WRONG_MESSAGE_FORMAT;
+               }
+       }
+       if (!a) Info = _WRONG_STATE;
+
+       if (!Info && plci)
+       {                /* no fac, with CPN, or KEY */
+               rc_plci = plci;
+               if (!ai_parms[3].length && plci->State && (msg[0].length || ai_parms[1].length))
+               {
+                       /* overlap sending option */
+                       dbug(1, dprintf("OvlSnd"));
+                       add_s(plci, CPN, &msg[0]);
+                       add_s(plci, KEY, &ai_parms[1]);
+                       sig_req(plci, INFO_REQ, 0);
+                       send_req(plci);
+                       return false;
+               }
+
+               if (plci->State && ai_parms[2].length)
+               {
+                       /* User_Info option */
+                       dbug(1, dprintf("UUI"));
+                       add_s(plci, UUI, &ai_parms[2]);
+                       sig_req(plci, USER_DATA, 0);
+               }
+               else if (plci->State && ai_parms[3].length)
+               {
+                       /* Facility option */
+                       dbug(1, dprintf("FAC"));
+                       add_s(plci, CPN, &msg[0]);
+                       add_ai(plci, &msg[1]);
+                       sig_req(plci, FACILITY_REQ, 0);
+               }
+               else
+               {
+                       Info = _WRONG_STATE;
+               }
+       }
+       else if ((ai_parms[1].length || ai_parms[2].length || ai_parms[3].length) && !Info)
+       {
+               /* NCR_Facility option -> send UUI and Keypad too */
+               dbug(1, dprintf("NCR_FAC"));
+               if ((i = get_plci(a)))
+               {
+                       rc_plci = &a->plci[i - 1];
+                       appl->NullCREnable = true;
+                       rc_plci->internal_command = C_NCR_FAC_REQ;
+                       rc_plci->appl = appl;
+                       add_p(rc_plci, CAI, "\x01\x80");
+                       add_p(rc_plci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                       sig_req(rc_plci, ASSIGN, DSIG_ID);
+                       send_req(rc_plci);
+               }
+               else
+               {
+                       Info = _OUT_OF_PLCI;
+               }
+
+               if (!Info)
+               {
+                       add_s(rc_plci, CPN, &msg[0]);
+                       add_ai(rc_plci, &msg[1]);
+                       sig_req(rc_plci, NCR_FACILITY, 0);
+                       send_req(rc_plci);
+                       return false;
+                       /* for application controlled supplementary services    */
+               }
+       }
+
+       if (!rc_plci)
+       {
+               Info = _WRONG_MESSAGE_FORMAT;
+       }
+
+       if (!Info)
+       {
+               send_req(rc_plci);
+       }
+       else
+       {  /* appl is not assigned to a PLCI or error condition */
+               dbug(1, dprintf("localInfoCon"));
+               sendf(appl,
+                     _INFO_R | CONFIRM,
+                     Id,
+                     Number,
+                     "w", Info);
+       }
+       return false;
 }
 
 static byte info_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                     PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  dbug(1,dprintf("info_res"));
-  return false;
+       dbug(1, dprintf("info_res"));
+       return false;
 }
 
 static byte alert_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                      PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  word Info;
-  byte ret;
-
-  dbug(1,dprintf("alert_req"));
-
-  Info = _WRONG_IDENTIFIER;
-  ret = false;
-  if(plci) {
-    Info = _ALERT_IGNORED;
-    if(plci->State!=INC_CON_ALERT) {
-      Info = _WRONG_STATE;
-      if(plci->State==INC_CON_PENDING) {
-        Info = 0;
-        plci->State=INC_CON_ALERT;
-        add_ai(plci, &msg[0]);
-        sig_req(plci,CALL_ALERT,0);
-        ret = 1;
-      }
-    }
-  }
-  sendf(appl,
-        _ALERT_R|CONFIRM,
-        Id,
-        Number,
-        "w",Info);
-  return ret;
+       word Info;
+       byte ret;
+
+       dbug(1, dprintf("alert_req"));
+
+       Info = _WRONG_IDENTIFIER;
+       ret = false;
+       if (plci) {
+               Info = _ALERT_IGNORED;
+               if (plci->State != INC_CON_ALERT) {
+                       Info = _WRONG_STATE;
+                       if (plci->State == INC_CON_PENDING) {
+                               Info = 0;
+                               plci->State = INC_CON_ALERT;
+                               add_ai(plci, &msg[0]);
+                               sig_req(plci, CALL_ALERT, 0);
+                               ret = 1;
+                       }
+               }
+       }
+       sendf(appl,
+             _ALERT_R | CONFIRM,
+             Id,
+             Number,
+             "w", Info);
+       return ret;
 }
 
 static byte facility_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                         PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  word Info = 0;
-  word i    = 0;
-
-  word selector;
-  word SSreq;
-  long relatedPLCIvalue;
-  DIVA_CAPI_ADAPTER   * relatedadapter;
-  byte * SSparms  = "";
-    byte RCparms[]  = "\x05\x00\x00\x02\x00\x00";
-    byte SSstruct[] = "\x09\x00\x00\x06\x00\x00\x00\x00\x00\x00";
-  API_PARSE * parms;
-    API_PARSE ss_parms[11];
-  PLCI   *rplci;
-    byte cai[15];
-  dword d;
-    API_PARSE dummy;
-
-  dbug(1,dprintf("facility_req"));
-  for(i=0;i<9;i++) ss_parms[i].length = 0;
-
-  parms = &msg[1];
-
-  if(!a)
-  {
-    dbug(1,dprintf("wrong Ctrl"));
-    Info = _WRONG_IDENTIFIER;
-  }
-
-  selector = GET_WORD(msg[0].info);
-
-  if(!Info)
-  {
-    switch(selector)
-    {
-      case SELECTOR_HANDSET:
-        Info = AdvCodecSupport(a, plci, appl, HOOK_SUPPORT);
-        break;
-
-      case SELECTOR_SU_SERV:
-        if(!msg[1].length)
-        {
-          Info = _WRONG_MESSAGE_FORMAT;
-          break;
-        }
-        SSreq = GET_WORD(&(msg[1].info[1]));
-        PUT_WORD(&RCparms[1],SSreq);
-        SSparms = RCparms;
-        switch(SSreq)
-        {
-          case S_GET_SUPPORTED_SERVICES:
-            if((i=get_plci(a)))
-            {
-              rplci = &a->plci[i-1];
-              rplci->appl = appl;
-              add_p(rplci,CAI,"\x01\x80");
-              add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-              sig_req(rplci,ASSIGN,DSIG_ID);
-              send_req(rplci);
-            }
-            else
-            {
-              PUT_DWORD(&SSstruct[6], MASK_TERMINAL_PORTABILITY);
-              SSparms = (byte *)SSstruct;
-              break;
-            }
-            rplci->internal_command = GETSERV_REQ_PEND;
-            rplci->number = Number;
-            rplci->appl = appl;
-            sig_req(rplci,S_SUPPORTED,0);
-            send_req(rplci);
-            return false;
-            break;
-
-          case S_LISTEN:
-            if(parms->length==7)
-            {
-              if(api_parse(&parms->info[1],(word)parms->length,"wbd",ss_parms))
-              {
-                dbug(1,dprintf("format wrong"));
-                Info = _WRONG_MESSAGE_FORMAT;
-                break;
-              }
-            }
-            else
-            {
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            a->Notification_Mask[appl->Id-1] = GET_DWORD(ss_parms[2].info);
-            if(a->Notification_Mask[appl->Id-1] & SMASK_MWI) /* MWI active? */
-            {
-              if((i=get_plci(a)))
-              {
-                rplci = &a->plci[i-1];
-                rplci->appl = appl;
-                add_p(rplci,CAI,"\x01\x80");
-                add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-                sig_req(rplci,ASSIGN,DSIG_ID);
-                send_req(rplci);
-              }
-              else
-              {
-                break;
-              }
-              rplci->internal_command = GET_MWI_STATE;
-              rplci->number = Number;
-              sig_req(rplci,MWI_POLL,0);
-              send_req(rplci);
-            }
-            break;
-
-          case S_HOLD:
-            api_parse(&parms->info[1],(word)parms->length,"ws",ss_parms);
-            if(plci && plci->State && plci->SuppState==IDLE)
-            {
-              plci->SuppState = HOLD_REQUEST;
-              plci->command = C_HOLD_REQ;
-              add_s(plci,CAI,&ss_parms[1]);
-              sig_req(plci,CALL_HOLD,0);
-              send_req(plci);
-              return false;
-            }
-            else Info = 0x3010;                    /* wrong state           */
-            break;
-          case S_RETRIEVE:
-            if(plci && plci->State && plci->SuppState==CALL_HELD)
-            {
-              if(Id & EXT_CONTROLLER)
-              {
-                if(AdvCodecSupport(a, plci, appl, 0))
-                {
-                  Info = 0x3010;                    /* wrong state           */
-                  break;
-                }
-              }
-              else plci->tel = 0;
-
-              plci->SuppState = RETRIEVE_REQUEST;
-              plci->command = C_RETRIEVE_REQ;
-              if(plci->spoofed_msg==SPOOFING_REQUIRED)
-              {
-                plci->spoofed_msg = CALL_RETRIEVE;
-                plci->internal_command = BLOCK_PLCI;
-                plci->command = 0;
-                dbug(1,dprintf("Spoof"));
-                return false;
-              }
-              else
-              {
-                sig_req(plci,CALL_RETRIEVE,0);
-                send_req(plci);
-                return false;
-              }
-            }
-            else Info = 0x3010;                    /* wrong state           */
-            break;
-          case S_SUSPEND:
-            if(parms->length)
-            {
-              if(api_parse(&parms->info[1],(word)parms->length,"wbs",ss_parms))
-              {
-                dbug(1,dprintf("format wrong"));
-                Info = _WRONG_MESSAGE_FORMAT;
-                break;
-              }
-            }
-            if(plci && plci->State)
-            {
-              add_s(plci,CAI,&ss_parms[2]);
-              plci->command = SUSPEND_REQ;
-              sig_req(plci,SUSPEND,0);
-              plci->State = SUSPENDING;
-              send_req(plci);
-            }
-            else Info = 0x3010;                    /* wrong state           */
-            break;
-
-          case S_RESUME:
-            if(!(i=get_plci(a)) )
-            {
-              Info = _OUT_OF_PLCI;
-              break;
-            }
-            rplci = &a->plci[i-1];
-            rplci->appl = appl;
-            rplci->number = Number;
-            rplci->tel = 0;
-            rplci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
-            /* check 'external controller' bit for codec support */
-            if(Id & EXT_CONTROLLER)
-            {
-              if(AdvCodecSupport(a, rplci, appl, 0) )
-              {
-                rplci->Id = 0;
-                Info = 0x300A;
-                break;
-              }
-            }
-            if(parms->length)
-            {
-              if(api_parse(&parms->info[1],(word)parms->length,"wbs",ss_parms))
-              {
-                dbug(1,dprintf("format wrong"));
-                rplci->Id = 0;
-                Info = _WRONG_MESSAGE_FORMAT;
-                break;
-              }
-            }
-            dummy.length = 0;
-            dummy.info = "\x00";
-            add_b1(rplci, &dummy, 0, 0);
-            if (a->Info_Mask[appl->Id-1] & 0x200)
-            {
-              /* early B3 connect (CIP mask bit 9) no release after a disc */
-              add_p(rplci,LLI,"\x01\x01");
-            }
-            add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-            sig_req(rplci,ASSIGN,DSIG_ID);
-            send_req(rplci);
-            add_s(rplci,CAI,&ss_parms[2]);
-            rplci->command = RESUME_REQ;
-            sig_req(rplci,RESUME,0);
-            rplci->State = RESUMING;
-            send_req(rplci);
-            break;
-
-          case S_CONF_BEGIN: /* Request */
-          case S_CONF_DROP:
-          case S_CONF_ISOLATE:
-          case S_CONF_REATTACH:
-            if(api_parse(&parms->info[1],(word)parms->length,"wbd",ss_parms))
-            {
-              dbug(1,dprintf("format wrong"));
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            if(plci && plci->State && ((plci->SuppState==IDLE)||(plci->SuppState==CALL_HELD)))
-            {
-              d = GET_DWORD(ss_parms[2].info);     
-              if(d>=0x80)
-              {
-                dbug(1,dprintf("format wrong"));
-                Info = _WRONG_MESSAGE_FORMAT;
-                break;
-              }
-              plci->ptyState = (byte)SSreq;
-              plci->command = 0;
-              cai[0] = 2;
-              switch(SSreq)
-              {
-              case S_CONF_BEGIN:
-                  cai[1] = CONF_BEGIN;
-                  plci->internal_command = CONF_BEGIN_REQ_PEND;
-                  break;
-              case S_CONF_DROP:
-                  cai[1] = CONF_DROP;
-                  plci->internal_command = CONF_DROP_REQ_PEND;
-                  break;
-              case S_CONF_ISOLATE:
-                  cai[1] = CONF_ISOLATE;
-                  plci->internal_command = CONF_ISOLATE_REQ_PEND;
-                  break;
-              case S_CONF_REATTACH:
-                  cai[1] = CONF_REATTACH;
-                  plci->internal_command = CONF_REATTACH_REQ_PEND;
-                  break;
-              }
-              cai[2] = (byte)d; /* Conference Size resp. PartyId */
-              add_p(plci,CAI,cai);
-              sig_req(plci,S_SERVICE,0);
-              send_req(plci);
-              return false;
-            }
-            else Info = 0x3010;                    /* wrong state           */
-            break;
-
-          case S_ECT:
-          case S_3PTY_BEGIN:
-          case S_3PTY_END:
-          case S_CONF_ADD:
-            if(parms->length==7)
-            {
-              if(api_parse(&parms->info[1],(word)parms->length,"wbd",ss_parms))
-              {
-                dbug(1,dprintf("format wrong"));
-                Info = _WRONG_MESSAGE_FORMAT;
-                break;
-              }
-            }
-            else if(parms->length==8) /* workaround for the T-View-S */
-            {
-              if(api_parse(&parms->info[1],(word)parms->length,"wbdb",ss_parms))
-              {
-                dbug(1,dprintf("format wrong"));
-                Info = _WRONG_MESSAGE_FORMAT;
-                break;
-              }
-            }
-            else
-            {
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            if(!msg[1].length)
-            {
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            if (!plci)
-            {
-              Info = _WRONG_IDENTIFIER;
-              break;
-            }
-            relatedPLCIvalue = GET_DWORD(ss_parms[2].info);
-            relatedPLCIvalue &= 0x0000FFFF;
-            dbug(1,dprintf("PTY/ECT/addCONF,relPLCI=%lx",relatedPLCIvalue));
-            /* controller starts with 0 up to (max_adapter - 1) */
-            if (((relatedPLCIvalue & 0x7f) == 0)
-             || (MapController ((byte)(relatedPLCIvalue & 0x7f)) == 0)
-             || (MapController ((byte)(relatedPLCIvalue & 0x7f)) > max_adapter))
-            {
-              if(SSreq==S_3PTY_END)
-              {
-                dbug(1, dprintf("wrong Controller use 2nd PLCI=PLCI"));
-                rplci = plci;
-              }
-              else
-              {
-                Info = 0x3010;                    /* wrong state           */
-                break;
-              }
-            }
-            else
-            {  
-              relatedadapter = &adapter[MapController ((byte)(relatedPLCIvalue & 0x7f))-1];
-              relatedPLCIvalue >>=8;
-              /* find PLCI PTR*/
-              for(i=0,rplci=NULL;i<relatedadapter->max_plci;i++)
-              {
-                if(relatedadapter->plci[i].Id == (byte)relatedPLCIvalue)
-                {
-                  rplci = &relatedadapter->plci[i];
-                }
-              }
-              if(!rplci || !relatedPLCIvalue)
-              {
-                if(SSreq==S_3PTY_END)
-                {
-                  dbug(1, dprintf("use 2nd PLCI=PLCI"));
-                  rplci = plci;
-                }
-                else
-                {
-                  Info = 0x3010;                    /* wrong state           */
-                  break;
-                }
-              }
-            }
+       word Info = 0;
+       word i    = 0;
+
+       word selector;
+       word SSreq;
+       long relatedPLCIvalue;
+       DIVA_CAPI_ADAPTER *relatedadapter;
+       byte *SSparms  = "";
+       byte RCparms[]  = "\x05\x00\x00\x02\x00\x00";
+       byte SSstruct[] = "\x09\x00\x00\x06\x00\x00\x00\x00\x00\x00";
+       API_PARSE *parms;
+       API_PARSE ss_parms[11];
+       PLCI *rplci;
+       byte cai[15];
+       dword d;
+       API_PARSE dummy;
+
+       dbug(1, dprintf("facility_req"));
+       for (i = 0; i < 9; i++) ss_parms[i].length = 0;
+
+       parms = &msg[1];
+
+       if (!a)
+       {
+               dbug(1, dprintf("wrong Ctrl"));
+               Info = _WRONG_IDENTIFIER;
+       }
+
+       selector = GET_WORD(msg[0].info);
+
+       if (!Info)
+       {
+               switch (selector)
+               {
+               case SELECTOR_HANDSET:
+                       Info = AdvCodecSupport(a, plci, appl, HOOK_SUPPORT);
+                       break;
+
+               case SELECTOR_SU_SERV:
+                       if (!msg[1].length)
+                       {
+                               Info = _WRONG_MESSAGE_FORMAT;
+                               break;
+                       }
+                       SSreq = GET_WORD(&(msg[1].info[1]));
+                       PUT_WORD(&RCparms[1], SSreq);
+                       SSparms = RCparms;
+                       switch (SSreq)
+                       {
+                       case S_GET_SUPPORTED_SERVICES:
+                               if ((i = get_plci(a)))
+                               {
+                                       rplci = &a->plci[i - 1];
+                                       rplci->appl = appl;
+                                       add_p(rplci, CAI, "\x01\x80");
+                                       add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                       sig_req(rplci, ASSIGN, DSIG_ID);
+                                       send_req(rplci);
+                               }
+                               else
+                               {
+                                       PUT_DWORD(&SSstruct[6], MASK_TERMINAL_PORTABILITY);
+                                       SSparms = (byte *)SSstruct;
+                                       break;
+                               }
+                               rplci->internal_command = GETSERV_REQ_PEND;
+                               rplci->number = Number;
+                               rplci->appl = appl;
+                               sig_req(rplci, S_SUPPORTED, 0);
+                               send_req(rplci);
+                               return false;
+                               break;
+
+                       case S_LISTEN:
+                               if (parms->length == 7)
+                               {
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbd", ss_parms))
+                                       {
+                                               dbug(1, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                               }
+                               else
+                               {
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               a->Notification_Mask[appl->Id - 1] = GET_DWORD(ss_parms[2].info);
+                               if (a->Notification_Mask[appl->Id - 1] & SMASK_MWI) /* MWI active? */
+                               {
+                                       if ((i = get_plci(a)))
+                                       {
+                                               rplci = &a->plci[i - 1];
+                                               rplci->appl = appl;
+                                               add_p(rplci, CAI, "\x01\x80");
+                                               add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               sig_req(rplci, ASSIGN, DSIG_ID);
+                                               send_req(rplci);
+                                       }
+                                       else
+                                       {
+                                               break;
+                                       }
+                                       rplci->internal_command = GET_MWI_STATE;
+                                       rplci->number = Number;
+                                       sig_req(rplci, MWI_POLL, 0);
+                                       send_req(rplci);
+                               }
+                               break;
+
+                       case S_HOLD:
+                               api_parse(&parms->info[1], (word)parms->length, "ws", ss_parms);
+                               if (plci && plci->State && plci->SuppState == IDLE)
+                               {
+                                       plci->SuppState = HOLD_REQUEST;
+                                       plci->command = C_HOLD_REQ;
+                                       add_s(plci, CAI, &ss_parms[1]);
+                                       sig_req(plci, CALL_HOLD, 0);
+                                       send_req(plci);
+                                       return false;
+                               }
+                               else Info = 0x3010;                    /* wrong state           */
+                               break;
+                       case S_RETRIEVE:
+                               if (plci && plci->State && plci->SuppState == CALL_HELD)
+                               {
+                                       if (Id & EXT_CONTROLLER)
+                                       {
+                                               if (AdvCodecSupport(a, plci, appl, 0))
+                                               {
+                                                       Info = 0x3010;                    /* wrong state           */
+                                                       break;
+                                               }
+                                       }
+                                       else plci->tel = 0;
+
+                                       plci->SuppState = RETRIEVE_REQUEST;
+                                       plci->command = C_RETRIEVE_REQ;
+                                       if (plci->spoofed_msg == SPOOFING_REQUIRED)
+                                       {
+                                               plci->spoofed_msg = CALL_RETRIEVE;
+                                               plci->internal_command = BLOCK_PLCI;
+                                               plci->command = 0;
+                                               dbug(1, dprintf("Spoof"));
+                                               return false;
+                                       }
+                                       else
+                                       {
+                                               sig_req(plci, CALL_RETRIEVE, 0);
+                                               send_req(plci);
+                                               return false;
+                                       }
+                               }
+                               else Info = 0x3010;                    /* wrong state           */
+                               break;
+                       case S_SUSPEND:
+                               if (parms->length)
+                               {
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbs", ss_parms))
+                                       {
+                                               dbug(1, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                               }
+                               if (plci && plci->State)
+                               {
+                                       add_s(plci, CAI, &ss_parms[2]);
+                                       plci->command = SUSPEND_REQ;
+                                       sig_req(plci, SUSPEND, 0);
+                                       plci->State = SUSPENDING;
+                                       send_req(plci);
+                               }
+                               else Info = 0x3010;                    /* wrong state           */
+                               break;
+
+                       case S_RESUME:
+                               if (!(i = get_plci(a)))
+                               {
+                                       Info = _OUT_OF_PLCI;
+                                       break;
+                               }
+                               rplci = &a->plci[i - 1];
+                               rplci->appl = appl;
+                               rplci->number = Number;
+                               rplci->tel = 0;
+                               rplci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
+                               /* check 'external controller' bit for codec support */
+                               if (Id & EXT_CONTROLLER)
+                               {
+                                       if (AdvCodecSupport(a, rplci, appl, 0))
+                                       {
+                                               rplci->Id = 0;
+                                               Info = 0x300A;
+                                               break;
+                                       }
+                               }
+                               if (parms->length)
+                               {
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbs", ss_parms))
+                                       {
+                                               dbug(1, dprintf("format wrong"));
+                                               rplci->Id = 0;
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                               }
+                               dummy.length = 0;
+                               dummy.info = "\x00";
+                               add_b1(rplci, &dummy, 0, 0);
+                               if (a->Info_Mask[appl->Id - 1] & 0x200)
+                               {
+                                       /* early B3 connect (CIP mask bit 9) no release after a disc */
+                                       add_p(rplci, LLI, "\x01\x01");
+                               }
+                               add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                               sig_req(rplci, ASSIGN, DSIG_ID);
+                               send_req(rplci);
+                               add_s(rplci, CAI, &ss_parms[2]);
+                               rplci->command = RESUME_REQ;
+                               sig_req(rplci, RESUME, 0);
+                               rplci->State = RESUMING;
+                               send_req(rplci);
+                               break;
+
+                       case S_CONF_BEGIN: /* Request */
+                       case S_CONF_DROP:
+                       case S_CONF_ISOLATE:
+                       case S_CONF_REATTACH:
+                               if (api_parse(&parms->info[1], (word)parms->length, "wbd", ss_parms))
+                               {
+                                       dbug(1, dprintf("format wrong"));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (plci && plci->State && ((plci->SuppState == IDLE) || (plci->SuppState == CALL_HELD)))
+                               {
+                                       d = GET_DWORD(ss_parms[2].info);
+                                       if (d >= 0x80)
+                                       {
+                                               dbug(1, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                                       plci->ptyState = (byte)SSreq;
+                                       plci->command = 0;
+                                       cai[0] = 2;
+                                       switch (SSreq)
+                                       {
+                                       case S_CONF_BEGIN:
+                                               cai[1] = CONF_BEGIN;
+                                               plci->internal_command = CONF_BEGIN_REQ_PEND;
+                                               break;
+                                       case S_CONF_DROP:
+                                               cai[1] = CONF_DROP;
+                                               plci->internal_command = CONF_DROP_REQ_PEND;
+                                               break;
+                                       case S_CONF_ISOLATE:
+                                               cai[1] = CONF_ISOLATE;
+                                               plci->internal_command = CONF_ISOLATE_REQ_PEND;
+                                               break;
+                                       case S_CONF_REATTACH:
+                                               cai[1] = CONF_REATTACH;
+                                               plci->internal_command = CONF_REATTACH_REQ_PEND;
+                                               break;
+                                       }
+                                       cai[2] = (byte)d; /* Conference Size resp. PartyId */
+                                       add_p(plci, CAI, cai);
+                                       sig_req(plci, S_SERVICE, 0);
+                                       send_req(plci);
+                                       return false;
+                               }
+                               else Info = 0x3010;                    /* wrong state           */
+                               break;
+
+                       case S_ECT:
+                       case S_3PTY_BEGIN:
+                       case S_3PTY_END:
+                       case S_CONF_ADD:
+                               if (parms->length == 7)
+                               {
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbd", ss_parms))
+                                       {
+                                               dbug(1, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                               }
+                               else if (parms->length == 8) /* workaround for the T-View-S */
+                               {
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbdb", ss_parms))
+                                       {
+                                               dbug(1, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                               }
+                               else
+                               {
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (!msg[1].length)
+                               {
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (!plci)
+                               {
+                                       Info = _WRONG_IDENTIFIER;
+                                       break;
+                               }
+                               relatedPLCIvalue = GET_DWORD(ss_parms[2].info);
+                               relatedPLCIvalue &= 0x0000FFFF;
+                               dbug(1, dprintf("PTY/ECT/addCONF,relPLCI=%lx", relatedPLCIvalue));
+                               /* controller starts with 0 up to (max_adapter - 1) */
+                               if (((relatedPLCIvalue & 0x7f) == 0)
+                                   || (MapController((byte)(relatedPLCIvalue & 0x7f)) == 0)
+                                   || (MapController((byte)(relatedPLCIvalue & 0x7f)) > max_adapter))
+                               {
+                                       if (SSreq == S_3PTY_END)
+                                       {
+                                               dbug(1, dprintf("wrong Controller use 2nd PLCI=PLCI"));
+                                               rplci = plci;
+                                       }
+                                       else
+                                       {
+                                               Info = 0x3010;                    /* wrong state           */
+                                               break;
+                                       }
+                               }
+                               else
+                               {
+                                       relatedadapter = &adapter[MapController((byte)(relatedPLCIvalue & 0x7f)) - 1];
+                                       relatedPLCIvalue >>= 8;
+                                       /* find PLCI PTR*/
+                                       for (i = 0, rplci = NULL; i < relatedadapter->max_plci; i++)
+                                       {
+                                               if (relatedadapter->plci[i].Id == (byte)relatedPLCIvalue)
+                                               {
+                                                       rplci = &relatedadapter->plci[i];
+                                               }
+                                       }
+                                       if (!rplci || !relatedPLCIvalue)
+                                       {
+                                               if (SSreq == S_3PTY_END)
+                                               {
+                                                       dbug(1, dprintf("use 2nd PLCI=PLCI"));
+                                                       rplci = plci;
+                                               }
+                                               else
+                                               {
+                                                       Info = 0x3010;                    /* wrong state           */
+                                                       break;
+                                               }
+                                       }
+                               }
 /*
-            dbug(1,dprintf("rplci:%x",rplci));
-            dbug(1,dprintf("plci:%x",plci));
-            dbug(1,dprintf("rplci->ptyState:%x",rplci->ptyState));
-            dbug(1,dprintf("plci->ptyState:%x",plci->ptyState));
-            dbug(1,dprintf("SSreq:%x",SSreq));
-            dbug(1,dprintf("rplci->internal_command:%x",rplci->internal_command));
-            dbug(1,dprintf("rplci->appl:%x",rplci->appl));
-            dbug(1,dprintf("rplci->Id:%x",rplci->Id));
+  dbug(1, dprintf("rplci:%x", rplci));
+  dbug(1, dprintf("plci:%x", plci));
+  dbug(1, dprintf("rplci->ptyState:%x", rplci->ptyState));
+  dbug(1, dprintf("plci->ptyState:%x", plci->ptyState));
+  dbug(1, dprintf("SSreq:%x", SSreq));
+  dbug(1, dprintf("rplci->internal_command:%x", rplci->internal_command));
+  dbug(1, dprintf("rplci->appl:%x", rplci->appl));
+  dbug(1, dprintf("rplci->Id:%x", rplci->Id));
 */
-            /* send PTY/ECT req, cannot check all states because of US stuff */
-            if( !rplci->internal_command && rplci->appl )
-            {
-              plci->command = 0;
-              rplci->relatedPTYPLCI = plci;
-              plci->relatedPTYPLCI = rplci;
-              rplci->ptyState = (byte)SSreq;
-              if(SSreq==S_ECT)
-              {
-                rplci->internal_command = ECT_REQ_PEND;
-                cai[1] = ECT_EXECUTE;
-
-                rplci->vswitchstate=0;
-                rplci->vsprot=0;
-                rplci->vsprotdialect=0;
-                plci->vswitchstate=0;
-                plci->vsprot=0;
-                plci->vsprotdialect=0;
-
-              }
-              else if(SSreq==S_CONF_ADD)
-              {
-                rplci->internal_command = CONF_ADD_REQ_PEND;
-                cai[1] = CONF_ADD;
-              }
-              else
-              {
-                rplci->internal_command = PTY_REQ_PEND;
-                cai[1] = (byte)(SSreq-3);
-              }
-              rplci->number = Number;
-              if(plci!=rplci) /* explicit invocation */
-              {
-                cai[0] = 2;
-                cai[2] = plci->Sig.Id;
-                dbug(1,dprintf("explicit invocation"));
-              }
-              else
-              {
-                dbug(1,dprintf("implicit invocation"));
-                cai[0] = 1;
-              }
-              add_p(rplci,CAI,cai);
-              sig_req(rplci,S_SERVICE,0);
-              send_req(rplci);
-              return false;
-            }
-            else
-            {
-              dbug(0,dprintf("Wrong line"));
-              Info = 0x3010;                    /* wrong state           */
-              break;
-            }
-            break;
-
-          case S_CALL_DEFLECTION:
-            if(api_parse(&parms->info[1],(word)parms->length,"wbwss",ss_parms))
-            {
-              dbug(1,dprintf("format wrong"));
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            if (!plci)
-            {
-              Info = _WRONG_IDENTIFIER;
-              break;
-            }
-            /* reuse unused screening indicator */
-            ss_parms[3].info[3] = (byte)GET_WORD(&(ss_parms[2].info[0]));
-            plci->command = 0;
-            plci->internal_command = CD_REQ_PEND;
-            appl->CDEnable = true;
-            cai[0] = 1;
-            cai[1] = CALL_DEFLECTION;
-            add_p(plci,CAI,cai);
-            add_p(plci,CPN,ss_parms[3].info);
-            sig_req(plci,S_SERVICE,0);
-            send_req(plci);
-            return false;
-            break;
-
-          case S_CALL_FORWARDING_START:
-            if(api_parse(&parms->info[1],(word)parms->length,"wbdwwsss",ss_parms))
-            {
-              dbug(1,dprintf("format wrong"));
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-
-            if((i=get_plci(a)))
-            {
-              rplci = &a->plci[i-1];
-              rplci->appl = appl;
-              add_p(rplci,CAI,"\x01\x80");
-              add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-              sig_req(rplci,ASSIGN,DSIG_ID);
-              send_req(rplci);
-            }
-            else
-            {
-              Info = _OUT_OF_PLCI;
-              break;
-            }
-
-            /* reuse unused screening indicator */
-            rplci->internal_command = CF_START_PEND;
-            rplci->appl = appl;
-            rplci->number = Number;
-            appl->S_Handle = GET_DWORD(&(ss_parms[2].info[0]));
-            cai[0] = 2;
-            cai[1] = 0x70|(byte)GET_WORD(&(ss_parms[3].info[0])); /* Function */
-            cai[2] = (byte)GET_WORD(&(ss_parms[4].info[0])); /* Basic Service */
-            add_p(rplci,CAI,cai);
-            add_p(rplci,OAD,ss_parms[5].info);
-            add_p(rplci,CPN,ss_parms[6].info);
-            sig_req(rplci,S_SERVICE,0);
-            send_req(rplci);
-            return false;
-            break;
-
-          case S_INTERROGATE_DIVERSION:
-          case S_INTERROGATE_NUMBERS:
-          case S_CALL_FORWARDING_STOP:
-          case S_CCBS_REQUEST:
-          case S_CCBS_DEACTIVATE:
-          case S_CCBS_INTERROGATE:
-            switch(SSreq)
-            {
-            case S_INTERROGATE_NUMBERS:
-                if(api_parse(&parms->info[1],(word)parms->length,"wbd",ss_parms))
-                {
-                  dbug(0,dprintf("format wrong"));
-                  Info = _WRONG_MESSAGE_FORMAT;
-                }
-                break;
-            case S_CCBS_REQUEST:
-            case S_CCBS_DEACTIVATE:
-                if(api_parse(&parms->info[1],(word)parms->length,"wbdw",ss_parms))
-                {
-                  dbug(0,dprintf("format wrong"));
-                  Info = _WRONG_MESSAGE_FORMAT;
-                }
-                break;
-            case S_CCBS_INTERROGATE:
-                if(api_parse(&parms->info[1],(word)parms->length,"wbdws",ss_parms))
-                {
-                  dbug(0,dprintf("format wrong"));
-                  Info = _WRONG_MESSAGE_FORMAT;
-                }
-                break;
-            default:
-            if(api_parse(&parms->info[1],(word)parms->length,"wbdwws",ss_parms))
-            {
-              dbug(0,dprintf("format wrong"));
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-                break;
-            }
-
-            if(Info) break;
-            if((i=get_plci(a)))
-            {
-              rplci = &a->plci[i-1];
-              switch(SSreq)
-              {
-                case S_INTERROGATE_DIVERSION: /* use cai with S_SERVICE below */
-                  cai[1] = 0x60|(byte)GET_WORD(&(ss_parms[3].info[0])); /* Function */
-                  rplci->internal_command = INTERR_DIVERSION_REQ_PEND; /* move to rplci if assigned */
-                  break;
-                case S_INTERROGATE_NUMBERS: /* use cai with S_SERVICE below */
-                  cai[1] = DIVERSION_INTERROGATE_NUM; /* Function */
-                  rplci->internal_command = INTERR_NUMBERS_REQ_PEND; /* move to rplci if assigned */
-                  break;
-                case S_CALL_FORWARDING_STOP:
-                  rplci->internal_command = CF_STOP_PEND;
-                  cai[1] = 0x80|(byte)GET_WORD(&(ss_parms[3].info[0])); /* Function */
-                  break;
-                case S_CCBS_REQUEST:
-                  cai[1] = CCBS_REQUEST;
-                  rplci->internal_command = CCBS_REQUEST_REQ_PEND;
-                  break;
-                case S_CCBS_DEACTIVATE:
-                  cai[1] = CCBS_DEACTIVATE;
-                  rplci->internal_command = CCBS_DEACTIVATE_REQ_PEND;
-                  break;
-                case S_CCBS_INTERROGATE:
-                  cai[1] = CCBS_INTERROGATE;
-                  rplci->internal_command = CCBS_INTERROGATE_REQ_PEND;
-                  break;
-                default:
-                  cai[1] = 0;
-                break;
-              }
-              rplci->appl = appl;
-              rplci->number = Number;
-              add_p(rplci,CAI,"\x01\x80");
-              add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-              sig_req(rplci,ASSIGN,DSIG_ID);
-              send_req(rplci);
-            }
-            else
-            {
-              Info = _OUT_OF_PLCI;
-              break;
-            }
-
-            appl->S_Handle = GET_DWORD(&(ss_parms[2].info[0]));
-            switch(SSreq)
-            {
-            case S_INTERROGATE_NUMBERS:
-                cai[0] = 1;
-                add_p(rplci,CAI,cai);
-                break;
-            case S_CCBS_REQUEST:
-            case S_CCBS_DEACTIVATE:
-                cai[0] = 3;
-                PUT_WORD(&cai[2],GET_WORD(&(ss_parms[3].info[0])));
-                add_p(rplci,CAI,cai);
-                break;
-            case S_CCBS_INTERROGATE:
-                cai[0] = 3;
-                PUT_WORD(&cai[2],GET_WORD(&(ss_parms[3].info[0])));
-                add_p(rplci,CAI,cai);
-                add_p(rplci,OAD,ss_parms[4].info);
-                break;
-            default:
-            cai[0] = 2;
-            cai[2] = (byte)GET_WORD(&(ss_parms[4].info[0])); /* Basic Service */
-            add_p(rplci,CAI,cai);
-            add_p(rplci,OAD,ss_parms[5].info);
-                break;
-            }
-                        
-            sig_req(rplci,S_SERVICE,0);
-            send_req(rplci);
-            return false;
-            break;
-
-          case S_MWI_ACTIVATE:
-            if(api_parse(&parms->info[1],(word)parms->length,"wbwdwwwssss",ss_parms))
-            {
-              dbug(1,dprintf("format wrong"));
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            if(!plci)
-            {                               
-              if((i=get_plci(a)))
-              {
-                rplci = &a->plci[i-1];
-                rplci->appl = appl;
-                rplci->cr_enquiry=true;
-                add_p(rplci,CAI,"\x01\x80");
-                add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-                sig_req(rplci,ASSIGN,DSIG_ID);
-                send_req(rplci);
-              }
-              else
-              {
-                Info = _OUT_OF_PLCI;
-                break;
-              }
-            }
-            else
-            {
-              rplci = plci;
-              rplci->cr_enquiry=false;
-            }
-
-            rplci->command = 0;
-            rplci->internal_command = MWI_ACTIVATE_REQ_PEND;
-            rplci->appl = appl;
-            rplci->number = Number;
-
-            cai[0] = 13;
-            cai[1] = ACTIVATION_MWI; /* Function */
-            PUT_WORD(&cai[2],GET_WORD(&(ss_parms[2].info[0]))); /* Basic Service */
-            PUT_DWORD(&cai[4],GET_DWORD(&(ss_parms[3].info[0]))); /* Number of Messages */
-            PUT_WORD(&cai[8],GET_WORD(&(ss_parms[4].info[0]))); /* Message Status */
-            PUT_WORD(&cai[10],GET_WORD(&(ss_parms[5].info[0]))); /* Message Reference */
-            PUT_WORD(&cai[12],GET_WORD(&(ss_parms[6].info[0]))); /* Invocation Mode */
-            add_p(rplci,CAI,cai);
-            add_p(rplci,CPN,ss_parms[7].info); /* Receiving User Number */
-            add_p(rplci,OAD,ss_parms[8].info); /* Controlling User Number */
-            add_p(rplci,OSA,ss_parms[9].info); /* Controlling User Provided Number */
-            add_p(rplci,UID,ss_parms[10].info); /* Time */
-            sig_req(rplci,S_SERVICE,0);
-            send_req(rplci);
-            return false;
-
-          case S_MWI_DEACTIVATE:
-            if(api_parse(&parms->info[1],(word)parms->length,"wbwwss",ss_parms))
-            {
-              dbug(1,dprintf("format wrong"));
-              Info = _WRONG_MESSAGE_FORMAT;
-              break;
-            }
-            if(!plci)
-            {                               
-              if((i=get_plci(a)))
-              {
-                rplci = &a->plci[i-1];
-                rplci->appl = appl;
-                rplci->cr_enquiry=true;
-                add_p(rplci,CAI,"\x01\x80");
-                add_p(rplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-                sig_req(rplci,ASSIGN,DSIG_ID);
-                send_req(rplci);
-              }
-              else
-              {
-                Info = _OUT_OF_PLCI;
-                break;
-              }
-            }
-            else
-            {
-              rplci = plci;
-              rplci->cr_enquiry=false;
-            }
-
-            rplci->command = 0;
-            rplci->internal_command = MWI_DEACTIVATE_REQ_PEND;
-            rplci->appl = appl;
-            rplci->number = Number;
-
-            cai[0] = 5;
-            cai[1] = DEACTIVATION_MWI; /* Function */
-            PUT_WORD(&cai[2],GET_WORD(&(ss_parms[2].info[0]))); /* Basic Service */
-            PUT_WORD(&cai[4],GET_WORD(&(ss_parms[3].info[0]))); /* Invocation Mode */
-            add_p(rplci,CAI,cai);
-            add_p(rplci,CPN,ss_parms[4].info); /* Receiving User Number */
-            add_p(rplci,OAD,ss_parms[5].info); /* Controlling User Number */
-            sig_req(rplci,S_SERVICE,0);
-            send_req(rplci);
-            return false;
-
-          default:
-            Info = 0x300E;  /* not supported */
-            break;
-        }
-        break; /* case SELECTOR_SU_SERV: end */
-
-
-      case SELECTOR_DTMF:
-        return (dtmf_request (Id, Number, a, plci, appl, msg));
-
-
-
-      case SELECTOR_LINE_INTERCONNECT:
-        return (mixer_request (Id, Number, a, plci, appl, msg));
-
-
-
-      case PRIV_SELECTOR_ECHO_CANCELLER:
-        appl->appl_flags |= APPL_FLAG_PRIV_EC_SPEC;
-        return (ec_request (Id, Number, a, plci, appl, msg));
-
-      case SELECTOR_ECHO_CANCELLER:
-        appl->appl_flags &= ~APPL_FLAG_PRIV_EC_SPEC;
-        return (ec_request (Id, Number, a, plci, appl, msg));
-
-
-      case SELECTOR_V42BIS:
-      default:
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-    } /* end of switch(selector) */
-  }
-
-  dbug(1,dprintf("SendFacRc"));
-  sendf(appl,
-        _FACILITY_R|CONFIRM,
-        Id,
-        Number,
-        "wws",Info,selector,SSparms);
-  return false;
+                               /* send PTY/ECT req, cannot check all states because of US stuff */
+                               if (!rplci->internal_command && rplci->appl)
+                               {
+                                       plci->command = 0;
+                                       rplci->relatedPTYPLCI = plci;
+                                       plci->relatedPTYPLCI = rplci;
+                                       rplci->ptyState = (byte)SSreq;
+                                       if (SSreq == S_ECT)
+                                       {
+                                               rplci->internal_command = ECT_REQ_PEND;
+                                               cai[1] = ECT_EXECUTE;
+
+                                               rplci->vswitchstate = 0;
+                                               rplci->vsprot = 0;
+                                               rplci->vsprotdialect = 0;
+                                               plci->vswitchstate = 0;
+                                               plci->vsprot = 0;
+                                               plci->vsprotdialect = 0;
+
+                                       }
+                                       else if (SSreq == S_CONF_ADD)
+                                       {
+                                               rplci->internal_command = CONF_ADD_REQ_PEND;
+                                               cai[1] = CONF_ADD;
+                                       }
+                                       else
+                                       {
+                                               rplci->internal_command = PTY_REQ_PEND;
+                                               cai[1] = (byte)(SSreq - 3);
+                                       }
+                                       rplci->number = Number;
+                                       if (plci != rplci) /* explicit invocation */
+                                       {
+                                               cai[0] = 2;
+                                               cai[2] = plci->Sig.Id;
+                                               dbug(1, dprintf("explicit invocation"));
+                                       }
+                                       else
+                                       {
+                                               dbug(1, dprintf("implicit invocation"));
+                                               cai[0] = 1;
+                                       }
+                                       add_p(rplci, CAI, cai);
+                                       sig_req(rplci, S_SERVICE, 0);
+                                       send_req(rplci);
+                                       return false;
+                               }
+                               else
+                               {
+                                       dbug(0, dprintf("Wrong line"));
+                                       Info = 0x3010;                    /* wrong state           */
+                                       break;
+                               }
+                               break;
+
+                       case S_CALL_DEFLECTION:
+                               if (api_parse(&parms->info[1], (word)parms->length, "wbwss", ss_parms))
+                               {
+                                       dbug(1, dprintf("format wrong"));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (!plci)
+                               {
+                                       Info = _WRONG_IDENTIFIER;
+                                       break;
+                               }
+                               /* reuse unused screening indicator */
+                               ss_parms[3].info[3] = (byte)GET_WORD(&(ss_parms[2].info[0]));
+                               plci->command = 0;
+                               plci->internal_command = CD_REQ_PEND;
+                               appl->CDEnable = true;
+                               cai[0] = 1;
+                               cai[1] = CALL_DEFLECTION;
+                               add_p(plci, CAI, cai);
+                               add_p(plci, CPN, ss_parms[3].info);
+                               sig_req(plci, S_SERVICE, 0);
+                               send_req(plci);
+                               return false;
+                               break;
+
+                       case S_CALL_FORWARDING_START:
+                               if (api_parse(&parms->info[1], (word)parms->length, "wbdwwsss", ss_parms))
+                               {
+                                       dbug(1, dprintf("format wrong"));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+
+                               if ((i = get_plci(a)))
+                               {
+                                       rplci = &a->plci[i - 1];
+                                       rplci->appl = appl;
+                                       add_p(rplci, CAI, "\x01\x80");
+                                       add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                       sig_req(rplci, ASSIGN, DSIG_ID);
+                                       send_req(rplci);
+                               }
+                               else
+                               {
+                                       Info = _OUT_OF_PLCI;
+                                       break;
+                               }
+
+                               /* reuse unused screening indicator */
+                               rplci->internal_command = CF_START_PEND;
+                               rplci->appl = appl;
+                               rplci->number = Number;
+                               appl->S_Handle = GET_DWORD(&(ss_parms[2].info[0]));
+                               cai[0] = 2;
+                               cai[1] = 0x70 | (byte)GET_WORD(&(ss_parms[3].info[0])); /* Function */
+                               cai[2] = (byte)GET_WORD(&(ss_parms[4].info[0])); /* Basic Service */
+                               add_p(rplci, CAI, cai);
+                               add_p(rplci, OAD, ss_parms[5].info);
+                               add_p(rplci, CPN, ss_parms[6].info);
+                               sig_req(rplci, S_SERVICE, 0);
+                               send_req(rplci);
+                               return false;
+                               break;
+
+                       case S_INTERROGATE_DIVERSION:
+                       case S_INTERROGATE_NUMBERS:
+                       case S_CALL_FORWARDING_STOP:
+                       case S_CCBS_REQUEST:
+                       case S_CCBS_DEACTIVATE:
+                       case S_CCBS_INTERROGATE:
+                               switch (SSreq)
+                               {
+                               case S_INTERROGATE_NUMBERS:
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbd", ss_parms))
+                                       {
+                                               dbug(0, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                       }
+                                       break;
+                               case S_CCBS_REQUEST:
+                               case S_CCBS_DEACTIVATE:
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbdw", ss_parms))
+                                       {
+                                               dbug(0, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                       }
+                                       break;
+                               case S_CCBS_INTERROGATE:
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbdws", ss_parms))
+                                       {
+                                               dbug(0, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                       }
+                                       break;
+                               default:
+                                       if (api_parse(&parms->info[1], (word)parms->length, "wbdwws", ss_parms))
+                                       {
+                                               dbug(0, dprintf("format wrong"));
+                                               Info = _WRONG_MESSAGE_FORMAT;
+                                               break;
+                                       }
+                                       break;
+                               }
+
+                               if (Info) break;
+                               if ((i = get_plci(a)))
+                               {
+                                       rplci = &a->plci[i - 1];
+                                       switch (SSreq)
+                                       {
+                                       case S_INTERROGATE_DIVERSION: /* use cai with S_SERVICE below */
+                                               cai[1] = 0x60 | (byte)GET_WORD(&(ss_parms[3].info[0])); /* Function */
+                                               rplci->internal_command = INTERR_DIVERSION_REQ_PEND; /* move to rplci if assigned */
+                                               break;
+                                       case S_INTERROGATE_NUMBERS: /* use cai with S_SERVICE below */
+                                               cai[1] = DIVERSION_INTERROGATE_NUM; /* Function */
+                                               rplci->internal_command = INTERR_NUMBERS_REQ_PEND; /* move to rplci if assigned */
+                                               break;
+                                       case S_CALL_FORWARDING_STOP:
+                                               rplci->internal_command = CF_STOP_PEND;
+                                               cai[1] = 0x80 | (byte)GET_WORD(&(ss_parms[3].info[0])); /* Function */
+                                               break;
+                                       case S_CCBS_REQUEST:
+                                               cai[1] = CCBS_REQUEST;
+                                               rplci->internal_command = CCBS_REQUEST_REQ_PEND;
+                                               break;
+                                       case S_CCBS_DEACTIVATE:
+                                               cai[1] = CCBS_DEACTIVATE;
+                                               rplci->internal_command = CCBS_DEACTIVATE_REQ_PEND;
+                                               break;
+                                       case S_CCBS_INTERROGATE:
+                                               cai[1] = CCBS_INTERROGATE;
+                                               rplci->internal_command = CCBS_INTERROGATE_REQ_PEND;
+                                               break;
+                                       default:
+                                               cai[1] = 0;
+                                               break;
+                                       }
+                                       rplci->appl = appl;
+                                       rplci->number = Number;
+                                       add_p(rplci, CAI, "\x01\x80");
+                                       add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                       sig_req(rplci, ASSIGN, DSIG_ID);
+                                       send_req(rplci);
+                               }
+                               else
+                               {
+                                       Info = _OUT_OF_PLCI;
+                                       break;
+                               }
+
+                               appl->S_Handle = GET_DWORD(&(ss_parms[2].info[0]));
+                               switch (SSreq)
+                               {
+                               case S_INTERROGATE_NUMBERS:
+                                       cai[0] = 1;
+                                       add_p(rplci, CAI, cai);
+                                       break;
+                               case S_CCBS_REQUEST:
+                               case S_CCBS_DEACTIVATE:
+                                       cai[0] = 3;
+                                       PUT_WORD(&cai[2], GET_WORD(&(ss_parms[3].info[0])));
+                                       add_p(rplci, CAI, cai);
+                                       break;
+                               case S_CCBS_INTERROGATE:
+                                       cai[0] = 3;
+                                       PUT_WORD(&cai[2], GET_WORD(&(ss_parms[3].info[0])));
+                                       add_p(rplci, CAI, cai);
+                                       add_p(rplci, OAD, ss_parms[4].info);
+                                       break;
+                               default:
+                                       cai[0] = 2;
+                                       cai[2] = (byte)GET_WORD(&(ss_parms[4].info[0])); /* Basic Service */
+                                       add_p(rplci, CAI, cai);
+                                       add_p(rplci, OAD, ss_parms[5].info);
+                                       break;
+                               }
+
+                               sig_req(rplci, S_SERVICE, 0);
+                               send_req(rplci);
+                               return false;
+                               break;
+
+                       case S_MWI_ACTIVATE:
+                               if (api_parse(&parms->info[1], (word)parms->length, "wbwdwwwssss", ss_parms))
+                               {
+                                       dbug(1, dprintf("format wrong"));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (!plci)
+                               {
+                                       if ((i = get_plci(a)))
+                                       {
+                                               rplci = &a->plci[i - 1];
+                                               rplci->appl = appl;
+                                               rplci->cr_enquiry = true;
+                                               add_p(rplci, CAI, "\x01\x80");
+                                               add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               sig_req(rplci, ASSIGN, DSIG_ID);
+                                               send_req(rplci);
+                                       }
+                                       else
+                                       {
+                                               Info = _OUT_OF_PLCI;
+                                               break;
+                                       }
+                               }
+                               else
+                               {
+                                       rplci = plci;
+                                       rplci->cr_enquiry = false;
+                               }
+
+                               rplci->command = 0;
+                               rplci->internal_command = MWI_ACTIVATE_REQ_PEND;
+                               rplci->appl = appl;
+                               rplci->number = Number;
+
+                               cai[0] = 13;
+                               cai[1] = ACTIVATION_MWI; /* Function */
+                               PUT_WORD(&cai[2], GET_WORD(&(ss_parms[2].info[0]))); /* Basic Service */
+                               PUT_DWORD(&cai[4], GET_DWORD(&(ss_parms[3].info[0]))); /* Number of Messages */
+                               PUT_WORD(&cai[8], GET_WORD(&(ss_parms[4].info[0]))); /* Message Status */
+                               PUT_WORD(&cai[10], GET_WORD(&(ss_parms[5].info[0]))); /* Message Reference */
+                               PUT_WORD(&cai[12], GET_WORD(&(ss_parms[6].info[0]))); /* Invocation Mode */
+                               add_p(rplci, CAI, cai);
+                               add_p(rplci, CPN, ss_parms[7].info); /* Receiving User Number */
+                               add_p(rplci, OAD, ss_parms[8].info); /* Controlling User Number */
+                               add_p(rplci, OSA, ss_parms[9].info); /* Controlling User Provided Number */
+                               add_p(rplci, UID, ss_parms[10].info); /* Time */
+                               sig_req(rplci, S_SERVICE, 0);
+                               send_req(rplci);
+                               return false;
+
+                       case S_MWI_DEACTIVATE:
+                               if (api_parse(&parms->info[1], (word)parms->length, "wbwwss", ss_parms))
+                               {
+                                       dbug(1, dprintf("format wrong"));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (!plci)
+                               {
+                                       if ((i = get_plci(a)))
+                                       {
+                                               rplci = &a->plci[i - 1];
+                                               rplci->appl = appl;
+                                               rplci->cr_enquiry = true;
+                                               add_p(rplci, CAI, "\x01\x80");
+                                               add_p(rplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               sig_req(rplci, ASSIGN, DSIG_ID);
+                                               send_req(rplci);
+                                       }
+                                       else
+                                       {
+                                               Info = _OUT_OF_PLCI;
+                                               break;
+                                       }
+                               }
+                               else
+                               {
+                                       rplci = plci;
+                                       rplci->cr_enquiry = false;
+                               }
+
+                               rplci->command = 0;
+                               rplci->internal_command = MWI_DEACTIVATE_REQ_PEND;
+                               rplci->appl = appl;
+                               rplci->number = Number;
+
+                               cai[0] = 5;
+                               cai[1] = DEACTIVATION_MWI; /* Function */
+                               PUT_WORD(&cai[2], GET_WORD(&(ss_parms[2].info[0]))); /* Basic Service */
+                               PUT_WORD(&cai[4], GET_WORD(&(ss_parms[3].info[0]))); /* Invocation Mode */
+                               add_p(rplci, CAI, cai);
+                               add_p(rplci, CPN, ss_parms[4].info); /* Receiving User Number */
+                               add_p(rplci, OAD, ss_parms[5].info); /* Controlling User Number */
+                               sig_req(rplci, S_SERVICE, 0);
+                               send_req(rplci);
+                               return false;
+
+                       default:
+                               Info = 0x300E;  /* not supported */
+                               break;
+                       }
+                       break; /* case SELECTOR_SU_SERV: end */
+
+
+               case SELECTOR_DTMF:
+                       return (dtmf_request(Id, Number, a, plci, appl, msg));
+
+
+
+               case SELECTOR_LINE_INTERCONNECT:
+                       return (mixer_request(Id, Number, a, plci, appl, msg));
+
+
+
+               case PRIV_SELECTOR_ECHO_CANCELLER:
+                       appl->appl_flags |= APPL_FLAG_PRIV_EC_SPEC;
+                       return (ec_request(Id, Number, a, plci, appl, msg));
+
+               case SELECTOR_ECHO_CANCELLER:
+                       appl->appl_flags &= ~APPL_FLAG_PRIV_EC_SPEC;
+                       return (ec_request(Id, Number, a, plci, appl, msg));
+
+
+               case SELECTOR_V42BIS:
+               default:
+                       Info = _FACILITY_NOT_SUPPORTED;
+                       break;
+               } /* end of switch (selector) */
+       }
+
+       dbug(1, dprintf("SendFacRc"));
+       sendf(appl,
+             _FACILITY_R | CONFIRM,
+             Id,
+             Number,
+             "wws", Info, selector, SSparms);
+       return false;
 }
 
 static byte facility_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                         PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  dbug(1,dprintf("facility_res"));
-  return false;
+       dbug(1, dprintf("facility_res"));
+       return false;
 }
 
 static byte connect_b3_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                           PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word Info = 0;
-  byte req;
-  byte len;
-  word w;
-  word fax_control_bits, fax_feature_bits, fax_info_change;
-  API_PARSE * ncpi;
-    byte pvc[2];
-
-    API_PARSE fax_parms[9];
-  word i;
-
-
-  dbug(1,dprintf("connect_b3_req"));
-  if(plci)
-  {
-    if ((plci->State == IDLE) || (plci->State == OUTG_DIS_PENDING)
-     || (plci->State == INC_DIS_PENDING) || (plci->SuppState != IDLE))
-    {
-      Info = _WRONG_STATE;
-    }
-    else
-    {
-      /* local reply if assign unsuccessful
-         or B3 protocol allows only one layer 3 connection
-           and already connected
-             or B2 protocol not any LAPD
-               and connect_b3_req contradicts originate/answer direction */
-      if (!plci->NL.Id
-       || (((plci->B3_prot != B3_T90NL) && (plci->B3_prot != B3_ISO8208) && (plci->B3_prot != B3_X25_DCE))
-        && ((plci->channels != 0)
-         || (((plci->B2_prot != B2_SDLC) && (plci->B2_prot != B2_LAPD) && (plci->B2_prot != B2_LAPD_FREE_SAPI_SEL))
-          && ((plci->call_dir & CALL_DIR_ANSWER) && !(plci->call_dir & CALL_DIR_FORCE_OUTG_NL))))))
-      {
-        dbug(1,dprintf("B3 already connected=%d or no NL.Id=0x%x, dir=%d sstate=0x%x",
-                       plci->channels,plci->NL.Id,plci->call_dir,plci->SuppState));
-        Info = _WRONG_STATE;
-        sendf(appl,                                                        
-              _CONNECT_B3_R|CONFIRM,
-              Id,
-              Number,
-              "w",Info);
-        return false;
-      }
-      plci->requested_options_conn = 0;
-
-      req = N_CONNECT;
-      ncpi = &parms[0];
-      if(plci->B3_prot==2 || plci->B3_prot==3)
-      {
-        if(ncpi->length>2)
-        {
-          /* check for PVC */
-          if(ncpi->info[2] || ncpi->info[3])
-          {
-            pvc[0] = ncpi->info[3];
-            pvc[1] = ncpi->info[2];
-            add_d(plci,2,pvc);
-            req = N_RESET;
-          }
-          else
-          {
-            if(ncpi->info[1] &1) req = N_CONNECT | N_D_BIT;
-            add_d(plci,(word)(ncpi->length-3),&ncpi->info[4]);
-          }
-        }
-      }
-      else if(plci->B3_prot==5)
-      {
-        if (plci->NL.Id && !plci->nl_remove_id)
-        {
-          fax_control_bits = GET_WORD(&((T30_INFO   *)plci->fax_connect_info_buffer)->control_bits_low);
-          fax_feature_bits = GET_WORD(&((T30_INFO   *)plci->fax_connect_info_buffer)->feature_bits_low);
-          if (!(fax_control_bits & T30_CONTROL_BIT_MORE_DOCUMENTS)
-           || (fax_feature_bits & T30_FEATURE_BIT_MORE_DOCUMENTS))
-          {
-            len = offsetof(T30_INFO, universal_6);
-            fax_info_change = false;
-            if (ncpi->length >= 4)
-            {
-              w = GET_WORD(&ncpi->info[3]);
-              if ((w & 0x0001) != ((word)(((T30_INFO   *)(plci->fax_connect_info_buffer))->resolution & 0x0001)))
-              {
-                ((T30_INFO   *)(plci->fax_connect_info_buffer))->resolution =
-                  (byte)((((T30_INFO   *)(plci->fax_connect_info_buffer))->resolution & ~T30_RESOLUTION_R8_0770_OR_200) |
-                  ((w & 0x0001) ? T30_RESOLUTION_R8_0770_OR_200 : 0));
-                fax_info_change = true;
-              }
-              fax_control_bits &= ~(T30_CONTROL_BIT_REQUEST_POLLING | T30_CONTROL_BIT_MORE_DOCUMENTS);
-              if (w & 0x0002)  /* Fax-polling request */
-                fax_control_bits |= T30_CONTROL_BIT_REQUEST_POLLING;
-              if ((w & 0x0004) /* Request to send / poll another document */
-               && (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_MORE_DOCUMENTS))
-              {
-                fax_control_bits |= T30_CONTROL_BIT_MORE_DOCUMENTS;
-              }
-              if (ncpi->length >= 6)
-              {
-                w = GET_WORD(&ncpi->info[5]);
-                if (((byte) w) != ((T30_INFO   *)(plci->fax_connect_info_buffer))->data_format)
-                {
-                  ((T30_INFO   *)(plci->fax_connect_info_buffer))->data_format = (byte) w;
-                  fax_info_change = true;
-                }
-
-                if ((a->man_profile.private_options & (1L << PRIVATE_FAX_SUB_SEP_PWD))
-                 && (GET_WORD(&ncpi->info[5]) & 0x8000)) /* Private SEP/SUB/PWD enable */
-                {
-                  plci->requested_options_conn |= (1L << PRIVATE_FAX_SUB_SEP_PWD);
-                }
-                if ((a->man_profile.private_options & (1L << PRIVATE_FAX_NONSTANDARD))
-                 && (GET_WORD(&ncpi->info[5]) & 0x4000)) /* Private non-standard facilities enable */
-                {
-                  plci->requested_options_conn |= (1L << PRIVATE_FAX_NONSTANDARD);
-                }
-                fax_control_bits &= ~(T30_CONTROL_BIT_ACCEPT_SUBADDRESS | T30_CONTROL_BIT_ACCEPT_SEL_POLLING |
-                  T30_CONTROL_BIT_ACCEPT_PASSWORD);
-                if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[appl->Id-1])
-                  & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
-                {
-                  if (api_parse (&ncpi->info[1], ncpi->length, "wwwwsss", fax_parms))
-                    Info = _WRONG_MESSAGE_FORMAT;
-                  else
-                  {
-                    if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[appl->Id-1])
-                      & (1L << PRIVATE_FAX_SUB_SEP_PWD))
-      {
-                    fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SUBADDRESS | T30_CONTROL_BIT_ACCEPT_PASSWORD;
-                    if (fax_control_bits & T30_CONTROL_BIT_ACCEPT_POLLING)
-                      fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SEL_POLLING;
-      }
-                    w = fax_parms[4].length;
-                    if (w > 20)
-                      w = 20;
-                    ((T30_INFO   *)(plci->fax_connect_info_buffer))->station_id_len = (byte) w;
-                    for (i = 0; i < w; i++)
-                      ((T30_INFO   *)(plci->fax_connect_info_buffer))->station_id[i] = fax_parms[4].info[1+i];
-                    ((T30_INFO   *)(plci->fax_connect_info_buffer))->head_line_len = 0;
-                    len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
-                    w = fax_parms[5].length;
-                    if (w > 20)
-                      w = 20;
-                    plci->fax_connect_info_buffer[len++] = (byte) w;
-                    for (i = 0; i < w; i++)
-                      plci->fax_connect_info_buffer[len++] = fax_parms[5].info[1+i];
-                    w = fax_parms[6].length;
-                    if (w > 20)
-                      w = 20;
-                    plci->fax_connect_info_buffer[len++] = (byte) w;
-                    for (i = 0; i < w; i++)
-                      plci->fax_connect_info_buffer[len++] = fax_parms[6].info[1+i];
-                    if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[appl->Id-1])
-                      & (1L << PRIVATE_FAX_NONSTANDARD))
-      {
-                      if (api_parse (&ncpi->info[1], ncpi->length, "wwwwssss", fax_parms))
-        {
-                        dbug(1,dprintf("non-standard facilities info missing or wrong format"));
-                        plci->fax_connect_info_buffer[len++] = 0;
-        }
-                      else
-                      {
-          if ((fax_parms[7].length >= 3) && (fax_parms[7].info[1] >= 2))
-            plci->nsf_control_bits = GET_WORD(&fax_parms[7].info[2]);
-   plci->fax_connect_info_buffer[len++] = (byte)(fax_parms[7].length);
-          for (i = 0; i < fax_parms[7].length; i++)
-     plci->fax_connect_info_buffer[len++] = fax_parms[7].info[1+i];
-                      }
-                    }
-                  }
-                }
-                else
-                {
-                  len = offsetof(T30_INFO, universal_6);
-                }
-                fax_info_change = true;
-
-              }
-              if (fax_control_bits != GET_WORD(&((T30_INFO   *)plci->fax_connect_info_buffer)->control_bits_low))
-              {
-                PUT_WORD (&((T30_INFO   *)plci->fax_connect_info_buffer)->control_bits_low, fax_control_bits);
-                fax_info_change = true;
-              }
-            }
-            if (Info == GOOD)
-            {
-              plci->fax_connect_info_length = len;
-              if (fax_info_change)
-              {
-                if (fax_feature_bits & T30_FEATURE_BIT_MORE_DOCUMENTS)
-                {
-                  start_internal_command (Id, plci, fax_connect_info_command);
-                  return false;
-                }
-                else
-                {
-                  start_internal_command (Id, plci, fax_adjust_b23_command);
-                  return false;
-                }
-              }
-            }
-          }
-          else  Info = _WRONG_STATE;
-        }
-        else  Info = _WRONG_STATE;
-      }
-
-      else if (plci->B3_prot == B3_RTP)
-      {
-        plci->internal_req_buffer[0] = ncpi->length + 1;
-        plci->internal_req_buffer[1] = UDATA_REQUEST_RTP_RECONFIGURE;
-        for (w = 0; w < ncpi->length; w++)
-          plci->internal_req_buffer[2+w] = ncpi->info[1+w];
-        start_internal_command (Id, plci, rtp_connect_b3_req_command);
-        return false;
-      }
-
-      if(!Info)
-      {
-        nl_req_ncci(plci,req,0);
-        return 1;
-      }
-    }
-  }
-  else Info = _WRONG_IDENTIFIER;
-
-  sendf(appl,
-        _CONNECT_B3_R|CONFIRM,
-        Id,
-        Number,
-        "w",Info);
-  return false;
+       word Info = 0;
+       byte req;
+       byte len;
+       word w;
+       word fax_control_bits, fax_feature_bits, fax_info_change;
+       API_PARSE *ncpi;
+       byte pvc[2];
+
+       API_PARSE fax_parms[9];
+       word i;
+
+
+       dbug(1, dprintf("connect_b3_req"));
+       if (plci)
+       {
+               if ((plci->State == IDLE) || (plci->State == OUTG_DIS_PENDING)
+                   || (plci->State == INC_DIS_PENDING) || (plci->SuppState != IDLE))
+               {
+                       Info = _WRONG_STATE;
+               }
+               else
+               {
+                       /* local reply if assign unsuccessful
+                          or B3 protocol allows only one layer 3 connection
+                          and already connected
+                          or B2 protocol not any LAPD
+                          and connect_b3_req contradicts originate/answer direction */
+                       if (!plci->NL.Id
+                           || (((plci->B3_prot != B3_T90NL) && (plci->B3_prot != B3_ISO8208) && (plci->B3_prot != B3_X25_DCE))
+                               && ((plci->channels != 0)
+                                   || (((plci->B2_prot != B2_SDLC) && (plci->B2_prot != B2_LAPD) && (plci->B2_prot != B2_LAPD_FREE_SAPI_SEL))
+                                       && ((plci->call_dir & CALL_DIR_ANSWER) && !(plci->call_dir & CALL_DIR_FORCE_OUTG_NL))))))
+                       {
+                               dbug(1, dprintf("B3 already connected=%d or no NL.Id=0x%x, dir=%d sstate=0x%x",
+                                               plci->channels, plci->NL.Id, plci->call_dir, plci->SuppState));
+                               Info = _WRONG_STATE;
+                               sendf(appl,
+                                     _CONNECT_B3_R | CONFIRM,
+                                     Id,
+                                     Number,
+                                     "w", Info);
+                               return false;
+                       }
+                       plci->requested_options_conn = 0;
+
+                       req = N_CONNECT;
+                       ncpi = &parms[0];
+                       if (plci->B3_prot == 2 || plci->B3_prot == 3)
+                       {
+                               if (ncpi->length > 2)
+                               {
+                                       /* check for PVC */
+                                       if (ncpi->info[2] || ncpi->info[3])
+                                       {
+                                               pvc[0] = ncpi->info[3];
+                                               pvc[1] = ncpi->info[2];
+                                               add_d(plci, 2, pvc);
+                                               req = N_RESET;
+                                       }
+                                       else
+                                       {
+                                               if (ncpi->info[1] & 1) req = N_CONNECT | N_D_BIT;
+                                               add_d(plci, (word)(ncpi->length - 3), &ncpi->info[4]);
+                                       }
+                               }
+                       }
+                       else if (plci->B3_prot == 5)
+                       {
+                               if (plci->NL.Id && !plci->nl_remove_id)
+                               {
+                                       fax_control_bits = GET_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->control_bits_low);
+                                       fax_feature_bits = GET_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->feature_bits_low);
+                                       if (!(fax_control_bits & T30_CONTROL_BIT_MORE_DOCUMENTS)
+                                           || (fax_feature_bits & T30_FEATURE_BIT_MORE_DOCUMENTS))
+                                       {
+                                               len = offsetof(T30_INFO, universal_6);
+                                               fax_info_change = false;
+                                               if (ncpi->length >= 4)
+                                               {
+                                                       w = GET_WORD(&ncpi->info[3]);
+                                                       if ((w & 0x0001) != ((word)(((T30_INFO *)(plci->fax_connect_info_buffer))->resolution & 0x0001)))
+                                                       {
+                                                               ((T30_INFO *)(plci->fax_connect_info_buffer))->resolution =
+                                                                       (byte)((((T30_INFO *)(plci->fax_connect_info_buffer))->resolution & ~T30_RESOLUTION_R8_0770_OR_200) |
+                                                                              ((w & 0x0001) ? T30_RESOLUTION_R8_0770_OR_200 : 0));
+                                                               fax_info_change = true;
+                                                       }
+                                                       fax_control_bits &= ~(T30_CONTROL_BIT_REQUEST_POLLING | T30_CONTROL_BIT_MORE_DOCUMENTS);
+                                                       if (w & 0x0002)  /* Fax-polling request */
+                                                               fax_control_bits |= T30_CONTROL_BIT_REQUEST_POLLING;
+                                                       if ((w & 0x0004) /* Request to send / poll another document */
+                                                           && (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_MORE_DOCUMENTS))
+                                                       {
+                                                               fax_control_bits |= T30_CONTROL_BIT_MORE_DOCUMENTS;
+                                                       }
+                                                       if (ncpi->length >= 6)
+                                                       {
+                                                               w = GET_WORD(&ncpi->info[5]);
+                                                               if (((byte) w) != ((T30_INFO *)(plci->fax_connect_info_buffer))->data_format)
+                                                               {
+                                                                       ((T30_INFO *)(plci->fax_connect_info_buffer))->data_format = (byte) w;
+                                                                       fax_info_change = true;
+                                                               }
+
+                                                               if ((a->man_profile.private_options & (1L << PRIVATE_FAX_SUB_SEP_PWD))
+                                                                   && (GET_WORD(&ncpi->info[5]) & 0x8000)) /* Private SEP/SUB/PWD enable */
+                                                               {
+                                                                       plci->requested_options_conn |= (1L << PRIVATE_FAX_SUB_SEP_PWD);
+                                                               }
+                                                               if ((a->man_profile.private_options & (1L << PRIVATE_FAX_NONSTANDARD))
+                                                                   && (GET_WORD(&ncpi->info[5]) & 0x4000)) /* Private non-standard facilities enable */
+                                                               {
+                                                                       plci->requested_options_conn |= (1L << PRIVATE_FAX_NONSTANDARD);
+                                                               }
+                                                               fax_control_bits &= ~(T30_CONTROL_BIT_ACCEPT_SUBADDRESS | T30_CONTROL_BIT_ACCEPT_SEL_POLLING |
+                                                                                     T30_CONTROL_BIT_ACCEPT_PASSWORD);
+                                                               if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[appl->Id - 1])
+                                                                   & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
+                                                               {
+                                                                       if (api_parse(&ncpi->info[1], ncpi->length, "wwwwsss", fax_parms))
+                                                                               Info = _WRONG_MESSAGE_FORMAT;
+                                                                       else
+                                                                       {
+                                                                               if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[appl->Id - 1])
+                                                                                   & (1L << PRIVATE_FAX_SUB_SEP_PWD))
+                                                                               {
+                                                                                       fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SUBADDRESS | T30_CONTROL_BIT_ACCEPT_PASSWORD;
+                                                                                       if (fax_control_bits & T30_CONTROL_BIT_ACCEPT_POLLING)
+                                                                                               fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SEL_POLLING;
+                                                                               }
+                                                                               w = fax_parms[4].length;
+                                                                               if (w > 20)
+                                                                                       w = 20;
+                                                                               ((T30_INFO *)(plci->fax_connect_info_buffer))->station_id_len = (byte) w;
+                                                                               for (i = 0; i < w; i++)
+                                                                                       ((T30_INFO *)(plci->fax_connect_info_buffer))->station_id[i] = fax_parms[4].info[1 + i];
+                                                                               ((T30_INFO *)(plci->fax_connect_info_buffer))->head_line_len = 0;
+                                                                               len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
+                                                                               w = fax_parms[5].length;
+                                                                               if (w > 20)
+                                                                                       w = 20;
+                                                                               plci->fax_connect_info_buffer[len++] = (byte) w;
+                                                                               for (i = 0; i < w; i++)
+                                                                                       plci->fax_connect_info_buffer[len++] = fax_parms[5].info[1 + i];
+                                                                               w = fax_parms[6].length;
+                                                                               if (w > 20)
+                                                                                       w = 20;
+                                                                               plci->fax_connect_info_buffer[len++] = (byte) w;
+                                                                               for (i = 0; i < w; i++)
+                                                                                       plci->fax_connect_info_buffer[len++] = fax_parms[6].info[1 + i];
+                                                                               if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[appl->Id - 1])
+                                                                                   & (1L << PRIVATE_FAX_NONSTANDARD))
+                                                                               {
+                                                                                       if (api_parse(&ncpi->info[1], ncpi->length, "wwwwssss", fax_parms))
+                                                                                       {
+                                                                                               dbug(1, dprintf("non-standard facilities info missing or wrong format"));
+                                                                                               plci->fax_connect_info_buffer[len++] = 0;
+                                                                                       }
+                                                                                       else
+                                                                                       {
+                                                                                               if ((fax_parms[7].length >= 3) && (fax_parms[7].info[1] >= 2))
+                                                                                                       plci->nsf_control_bits = GET_WORD(&fax_parms[7].info[2]);
+                                                                                               plci->fax_connect_info_buffer[len++] = (byte)(fax_parms[7].length);
+                                                                                               for (i = 0; i < fax_parms[7].length; i++)
+                                                                                                       plci->fax_connect_info_buffer[len++] = fax_parms[7].info[1 + i];
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                               else
+                                                               {
+                                                                       len = offsetof(T30_INFO, universal_6);
+                                                               }
+                                                               fax_info_change = true;
+
+                                                       }
+                                                       if (fax_control_bits != GET_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->control_bits_low))
+                                                       {
+                                                               PUT_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->control_bits_low, fax_control_bits);
+                                                               fax_info_change = true;
+                                                       }
+                                               }
+                                               if (Info == GOOD)
+                                               {
+                                                       plci->fax_connect_info_length = len;
+                                                       if (fax_info_change)
+                                                       {
+                                                               if (fax_feature_bits & T30_FEATURE_BIT_MORE_DOCUMENTS)
+                                                               {
+                                                                       start_internal_command(Id, plci, fax_connect_info_command);
+                                                                       return false;
+                                                               }
+                                                               else
+                                                               {
+                                                                       start_internal_command(Id, plci, fax_adjust_b23_command);
+                                                                       return false;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                                       else  Info = _WRONG_STATE;
+                               }
+                               else  Info = _WRONG_STATE;
+                       }
+
+                       else if (plci->B3_prot == B3_RTP)
+                       {
+                               plci->internal_req_buffer[0] = ncpi->length + 1;
+                               plci->internal_req_buffer[1] = UDATA_REQUEST_RTP_RECONFIGURE;
+                               for (w = 0; w < ncpi->length; w++)
+                                       plci->internal_req_buffer[2 + w] = ncpi->info[1 + w];
+                               start_internal_command(Id, plci, rtp_connect_b3_req_command);
+                               return false;
+                       }
+
+                       if (!Info)
+                       {
+                               nl_req_ncci(plci, req, 0);
+                               return 1;
+                       }
+               }
+       }
+       else Info = _WRONG_IDENTIFIER;
+
+       sendf(appl,
+             _CONNECT_B3_R | CONFIRM,
+             Id,
+             Number,
+             "w", Info);
+       return false;
 }
 
 static byte connect_b3_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                           PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word ncci;
-  API_PARSE * ncpi;
-  byte req;
-
-  word w;
-
-
-    API_PARSE fax_parms[9];
-  word i;
-  byte len;
-
-
-  dbug(1,dprintf("connect_b3_res"));
-
-  ncci = (word)(Id>>16);
-  if(plci && ncci) {
-    if(a->ncci_state[ncci]==INC_CON_PENDING) {
-      if (GET_WORD (&parms[0].info[0]) != 0)
-      {
-        a->ncci_state[ncci] = OUTG_REJ_PENDING;
-        channel_request_xon (plci, a->ncci_ch[ncci]);
-        channel_xmit_xon (plci);
-        cleanup_ncci_data (plci, ncci);
-        nl_req_ncci(plci,N_DISC,(byte)ncci);
-        return 1;
-      }
-      a->ncci_state[ncci] = INC_ACT_PENDING;
-
-      req = N_CONNECT_ACK;
-      ncpi = &parms[1];
-      if ((plci->B3_prot == 4) || (plci->B3_prot == 5) || (plci->B3_prot == 7))
-      {
-
-        if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[plci->appl->Id-1])
-          & (1L << PRIVATE_FAX_NONSTANDARD))
- {
-   if (((plci->B3_prot == 4) || (plci->B3_prot == 5))
-    && (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_ENABLE_NSF)
-    && (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_NEGOTIATE_RESP))
-   {
-            len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
-            if (plci->fax_connect_info_length < len)
-            {
-              ((T30_INFO *)(plci->fax_connect_info_buffer))->station_id_len = 0;
-              ((T30_INFO *)(plci->fax_connect_info_buffer))->head_line_len = 0;
-            }
-            if (api_parse (&ncpi->info[1], ncpi->length, "wwwwssss", fax_parms))
-            {
-              dbug(1,dprintf("non-standard facilities info missing or wrong format"));
-            }
-            else
-            {
-              if (plci->fax_connect_info_length <= len)
-                plci->fax_connect_info_buffer[len] = 0;
-              len += 1 + plci->fax_connect_info_buffer[len];
-              if (plci->fax_connect_info_length <= len)
-                plci->fax_connect_info_buffer[len] = 0;
-              len += 1 + plci->fax_connect_info_buffer[len];
-              if ((fax_parms[7].length >= 3) && (fax_parms[7].info[1] >= 2))
-                plci->nsf_control_bits = GET_WORD(&fax_parms[7].info[2]);
-              plci->fax_connect_info_buffer[len++] = (byte)(fax_parms[7].length);
-              for (i = 0; i < fax_parms[7].length; i++)
-                plci->fax_connect_info_buffer[len++] = fax_parms[7].info[1+i];
-            }
-            plci->fax_connect_info_length = len;
-            ((T30_INFO *)(plci->fax_connect_info_buffer))->code = 0;
-            start_internal_command (Id, plci, fax_connect_ack_command);
-     return false;
-          }
-        }
-
-        nl_req_ncci(plci,req,(byte)ncci);
-        if ((plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-         && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-        {
-          if (plci->B3_prot == 4)
-            sendf(appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-          else
-            sendf(appl,_CONNECT_B3_ACTIVE_I,Id,0,"S",plci->ncpi_buffer);
-          plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-        }
-      }
-
-      else if (plci->B3_prot == B3_RTP)
-      {
-        plci->internal_req_buffer[0] = ncpi->length + 1;
-        plci->internal_req_buffer[1] = UDATA_REQUEST_RTP_RECONFIGURE;
-        for (w = 0; w < ncpi->length; w++)
-          plci->internal_req_buffer[2+w] = ncpi->info[1+w];
-        start_internal_command (Id, plci, rtp_connect_b3_res_command);
-        return false;
-      }
-
-      else
-      {
-        if(ncpi->length>2) {
-          if(ncpi->info[1] &1) req = N_CONNECT_ACK | N_D_BIT;
-          add_d(plci,(word)(ncpi->length-3),&ncpi->info[4]);
-        }
-        nl_req_ncci(plci,req,(byte)ncci);
-        sendf(appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-        if (plci->adjust_b_restore)
-        {
-          plci->adjust_b_restore = false;
-          start_internal_command (Id, plci, adjust_b_restore);
-        }
-      }
-      return 1;
-    }
-  }
-  return false;
+       word ncci;
+       API_PARSE *ncpi;
+       byte req;
+
+       word w;
+
+
+       API_PARSE fax_parms[9];
+       word i;
+       byte len;
+
+
+       dbug(1, dprintf("connect_b3_res"));
+
+       ncci = (word)(Id >> 16);
+       if (plci && ncci) {
+               if (a->ncci_state[ncci] == INC_CON_PENDING) {
+                       if (GET_WORD(&parms[0].info[0]) != 0)
+                       {
+                               a->ncci_state[ncci] = OUTG_REJ_PENDING;
+                               channel_request_xon(plci, a->ncci_ch[ncci]);
+                               channel_xmit_xon(plci);
+                               cleanup_ncci_data(plci, ncci);
+                               nl_req_ncci(plci, N_DISC, (byte)ncci);
+                               return 1;
+                       }
+                       a->ncci_state[ncci] = INC_ACT_PENDING;
+
+                       req = N_CONNECT_ACK;
+                       ncpi = &parms[1];
+                       if ((plci->B3_prot == 4) || (plci->B3_prot == 5) || (plci->B3_prot == 7))
+                       {
+
+                               if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[plci->appl->Id - 1])
+                                   & (1L << PRIVATE_FAX_NONSTANDARD))
                              {
+                                       if (((plci->B3_prot == 4) || (plci->B3_prot == 5))
+                                           && (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_ENABLE_NSF)
+                                           && (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_NEGOTIATE_RESP))
+                                       {
+                                               len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
+                                               if (plci->fax_connect_info_length < len)
+                                               {
+                                                       ((T30_INFO *)(plci->fax_connect_info_buffer))->station_id_len = 0;
+                                                       ((T30_INFO *)(plci->fax_connect_info_buffer))->head_line_len = 0;
+                                               }
+                                               if (api_parse(&ncpi->info[1], ncpi->length, "wwwwssss", fax_parms))
+                                               {
+                                                       dbug(1, dprintf("non-standard facilities info missing or wrong format"));
+                                               }
+                                               else
+                                               {
+                                                       if (plci->fax_connect_info_length <= len)
+                                                               plci->fax_connect_info_buffer[len] = 0;
+                                                       len += 1 + plci->fax_connect_info_buffer[len];
+                                                       if (plci->fax_connect_info_length <= len)
+                                                               plci->fax_connect_info_buffer[len] = 0;
+                                                       len += 1 + plci->fax_connect_info_buffer[len];
+                                                       if ((fax_parms[7].length >= 3) && (fax_parms[7].info[1] >= 2))
+                                                               plci->nsf_control_bits = GET_WORD(&fax_parms[7].info[2]);
+                                                       plci->fax_connect_info_buffer[len++] = (byte)(fax_parms[7].length);
+                                                       for (i = 0; i < fax_parms[7].length; i++)
+                                                               plci->fax_connect_info_buffer[len++] = fax_parms[7].info[1 + i];
+                                               }
+                                               plci->fax_connect_info_length = len;
+                                               ((T30_INFO *)(plci->fax_connect_info_buffer))->code = 0;
+                                               start_internal_command(Id, plci, fax_connect_ack_command);
+                                               return false;
+                                       }
+                               }
+
+                               nl_req_ncci(plci, req, (byte)ncci);
+                               if ((plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                                   && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+                               {
+                                       if (plci->B3_prot == 4)
+                                               sendf(appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+                                       else
+                                               sendf(appl, _CONNECT_B3_ACTIVE_I, Id, 0, "S", plci->ncpi_buffer);
+                                       plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+                               }
+                       }
+
+                       else if (plci->B3_prot == B3_RTP)
+                       {
+                               plci->internal_req_buffer[0] = ncpi->length + 1;
+                               plci->internal_req_buffer[1] = UDATA_REQUEST_RTP_RECONFIGURE;
+                               for (w = 0; w < ncpi->length; w++)
+                                       plci->internal_req_buffer[2 + w] = ncpi->info[1+w];
+                               start_internal_command(Id, plci, rtp_connect_b3_res_command);
+                               return false;
+                       }
+
+                       else
+                       {
+                               if (ncpi->length > 2) {
+                                       if (ncpi->info[1] & 1) req = N_CONNECT_ACK | N_D_BIT;
+                                       add_d(plci, (word)(ncpi->length - 3), &ncpi->info[4]);
+                               }
+                               nl_req_ncci(plci, req, (byte)ncci);
+                               sendf(appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+                               if (plci->adjust_b_restore)
+                               {
+                                       plci->adjust_b_restore = false;
+                                       start_internal_command(Id, plci, adjust_b_restore);
+                               }
+                       }
+                       return 1;
+               }
+       }
+       return false;
 }
 
 static byte connect_b3_a_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                             PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word ncci;
+       word ncci;
 
-  ncci = (word)(Id>>16);
-  dbug(1,dprintf("connect_b3_a_res(ncci=0x%x)",ncci));
+       ncci = (word)(Id >> 16);
+       dbug(1, dprintf("connect_b3_a_res(ncci=0x%x)", ncci));
 
-  if (plci && ncci && (plci->State != IDLE) && (plci->State != INC_DIS_PENDING)
-   && (plci->State != OUTG_DIS_PENDING))
-  {
-    if(a->ncci_state[ncci]==INC_ACT_PENDING) {
-      a->ncci_state[ncci] = CONNECTED;
-      if(plci->State!=INC_CON_CONNECTED_ALERT) plci->State = CONNECTED;
-      channel_request_xon (plci, a->ncci_ch[ncci]);
-      channel_xmit_xon (plci);
-    }
-  }
-  return false;
+       if (plci && ncci && (plci->State != IDLE) && (plci->State != INC_DIS_PENDING)
+           && (plci->State != OUTG_DIS_PENDING))
+       {
+               if (a->ncci_state[ncci] == INC_ACT_PENDING) {
+                       a->ncci_state[ncci] = CONNECTED;
+                       if (plci->State != INC_CON_CONNECTED_ALERT) plci->State = CONNECTED;
+                       channel_request_xon(plci, a->ncci_ch[ncci]);
+                       channel_xmit_xon(plci);
+               }
+       }
+       return false;
 }
 
 static byte disconnect_b3_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                              PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word Info;
-  word ncci;
-  API_PARSE * ncpi;
-
-  dbug(1,dprintf("disconnect_b3_req"));
-
-  Info = _WRONG_IDENTIFIER;
-  ncci = (word)(Id>>16);
-  if (plci && ncci)
-  {
-    Info = _WRONG_STATE;
-    if ((a->ncci_state[ncci] == CONNECTED)
-     || (a->ncci_state[ncci] == OUTG_CON_PENDING)
-     || (a->ncci_state[ncci] == INC_CON_PENDING)
-     || (a->ncci_state[ncci] == INC_ACT_PENDING))
-    {
-      a->ncci_state[ncci] = OUTG_DIS_PENDING;
-      channel_request_xon (plci, a->ncci_ch[ncci]);
-      channel_xmit_xon (plci);
-
-      if (a->ncci[ncci].data_pending
-       && ((plci->B3_prot == B3_TRANSPARENT)
-        || (plci->B3_prot == B3_T30)
-        || (plci->B3_prot == B3_T30_WITH_EXTENSIONS)))
-      {
-        plci->send_disc = (byte)ncci;
-        plci->command = 0;
-        return false;
-      }
-      else
-      {
-        cleanup_ncci_data (plci, ncci);
-
-        if(plci->B3_prot==2 || plci->B3_prot==3)
-        {
-          ncpi = &parms[0];
-          if(ncpi->length>3)
-          {
-            add_d(plci, (word)(ncpi->length - 3) ,(byte   *)&(ncpi->info[4]));
-          }
-        }
-        nl_req_ncci(plci,N_DISC,(byte)ncci);
-      }
-      return 1;
-    }
-  }
-  sendf(appl,
-        _DISCONNECT_B3_R|CONFIRM,
-        Id,
-        Number,
-        "w",Info);
-  return false;
+       word Info;
+       word ncci;
+       API_PARSE *ncpi;
+
+       dbug(1, dprintf("disconnect_b3_req"));
+
+       Info = _WRONG_IDENTIFIER;
+       ncci = (word)(Id >> 16);
+       if (plci && ncci)
+       {
+               Info = _WRONG_STATE;
+               if ((a->ncci_state[ncci] == CONNECTED)
+                   || (a->ncci_state[ncci] == OUTG_CON_PENDING)
+                   || (a->ncci_state[ncci] == INC_CON_PENDING)
+                   || (a->ncci_state[ncci] == INC_ACT_PENDING))
+               {
+                       a->ncci_state[ncci] = OUTG_DIS_PENDING;
+                       channel_request_xon(plci, a->ncci_ch[ncci]);
+                       channel_xmit_xon(plci);
+
+                       if (a->ncci[ncci].data_pending
+                           && ((plci->B3_prot == B3_TRANSPARENT)
+                               || (plci->B3_prot == B3_T30)
+                               || (plci->B3_prot == B3_T30_WITH_EXTENSIONS)))
+                       {
+                               plci->send_disc = (byte)ncci;
+                               plci->command = 0;
+                               return false;
+                       }
+                       else
+                       {
+                               cleanup_ncci_data(plci, ncci);
+
+                               if (plci->B3_prot == 2 || plci->B3_prot == 3)
+                               {
+                                       ncpi = &parms[0];
+                                       if (ncpi->length > 3)
+                                       {
+                                               add_d(plci, (word)(ncpi->length - 3), (byte *)&(ncpi->info[4]));
+                                       }
+                               }
+                               nl_req_ncci(plci, N_DISC, (byte)ncci);
+                       }
+                       return 1;
+               }
+       }
+       sendf(appl,
+             _DISCONNECT_B3_R | CONFIRM,
+             Id,
+             Number,
+             "w", Info);
+       return false;
 }
 
 static byte disconnect_b3_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                              PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word ncci;
-  word i;
-
-  ncci = (word)(Id>>16);
-  dbug(1,dprintf("disconnect_b3_res(ncci=0x%x",ncci));
-  if(plci && ncci) {
-    plci->requested_options_conn = 0;
-    plci->fax_connect_info_length = 0;
-    plci->ncpi_state = 0x00;
-    if (((plci->B3_prot != B3_T90NL) && (plci->B3_prot != B3_ISO8208) && (plci->B3_prot != B3_X25_DCE))
-      && ((plci->B2_prot != B2_LAPD) && (plci->B2_prot != B2_LAPD_FREE_SAPI_SEL)))
-    {
-      plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;
-    }
-    for(i=0; i<MAX_CHANNELS_PER_PLCI && plci->inc_dis_ncci_table[i]!=(byte)ncci; i++);
-    if(i<MAX_CHANNELS_PER_PLCI) {
-      if(plci->channels)plci->channels--;
-      for(; i<MAX_CHANNELS_PER_PLCI-1; i++) plci->inc_dis_ncci_table[i] = plci->inc_dis_ncci_table[i+1];
-      plci->inc_dis_ncci_table[MAX_CHANNELS_PER_PLCI-1] = 0;
-
-      ncci_free_receive_buffers (plci, ncci);
-
-      if((plci->State==IDLE || plci->State==SUSPENDING) && !plci->channels){
-        if(plci->State == SUSPENDING){
-          sendf(plci->appl,
-                _FACILITY_I,
-                Id & 0xffffL,
-                0,
-                "ws", (word)3, "\x03\x04\x00\x00");
-          sendf(plci->appl, _DISCONNECT_I, Id & 0xffffL, 0, "w", 0);
-        }
-        plci_remove(plci);
-        plci->State=IDLE;
-      }
-    }
-    else
-    {
-      if ((a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
-       && ((plci->B3_prot == 4) || (plci->B3_prot == 5))
-       && (a->ncci_state[ncci] == INC_DIS_PENDING))
-      {
-        ncci_free_receive_buffers (plci, ncci);
-
-        nl_req_ncci(plci,N_EDATA,(byte)ncci);
-
-        plci->adapter->ncci_state[ncci] = IDLE;
-        start_internal_command (Id, plci, fax_disconnect_command);
-        return 1;
-      }
-    }
-  }
-  return false;
+       word ncci;
+       word i;
+
+       ncci = (word)(Id >> 16);
+       dbug(1, dprintf("disconnect_b3_res(ncci=0x%x", ncci));
+       if (plci && ncci) {
+               plci->requested_options_conn = 0;
+               plci->fax_connect_info_length = 0;
+               plci->ncpi_state = 0x00;
+               if (((plci->B3_prot != B3_T90NL) && (plci->B3_prot != B3_ISO8208) && (plci->B3_prot != B3_X25_DCE))
+                   && ((plci->B2_prot != B2_LAPD) && (plci->B2_prot != B2_LAPD_FREE_SAPI_SEL)))
+               {
+                       plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;
+               }
+               for (i = 0; i < MAX_CHANNELS_PER_PLCI && plci->inc_dis_ncci_table[i] != (byte)ncci; i++);
+               if (i < MAX_CHANNELS_PER_PLCI) {
+                       if (plci->channels)plci->channels--;
+                       for (; i < MAX_CHANNELS_PER_PLCI - 1; i++) plci->inc_dis_ncci_table[i] = plci->inc_dis_ncci_table[i + 1];
+                       plci->inc_dis_ncci_table[MAX_CHANNELS_PER_PLCI - 1] = 0;
+
+                       ncci_free_receive_buffers(plci, ncci);
+
+                       if ((plci->State == IDLE || plci->State == SUSPENDING) && !plci->channels) {
+                               if (plci->State == SUSPENDING) {
+                                       sendf(plci->appl,
+                                             _FACILITY_I,
+                                             Id & 0xffffL,
+                                             0,
+                                             "ws", (word)3, "\x03\x04\x00\x00");
+                                       sendf(plci->appl, _DISCONNECT_I, Id & 0xffffL, 0, "w", 0);
+                               }
+                               plci_remove(plci);
+                               plci->State = IDLE;
+                       }
+               }
+               else
+               {
+                       if ((a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
+                           && ((plci->B3_prot == 4) || (plci->B3_prot == 5))
+                           && (a->ncci_state[ncci] == INC_DIS_PENDING))
+                       {
+                               ncci_free_receive_buffers(plci, ncci);
+
+                               nl_req_ncci(plci, N_EDATA, (byte)ncci);
+
+                               plci->adapter->ncci_state[ncci] = IDLE;
+                               start_internal_command(Id, plci, fax_disconnect_command);
+                               return 1;
+                       }
+               }
+       }
+       return false;
 }
 
 static byte data_b3_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                        PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  NCCI   *ncci_ptr;
-  DATA_B3_DESC   *data;
-  word Info;
-  word ncci;
-  word i;
-
-  dbug(1,dprintf("data_b3_req"));
-
-  Info = _WRONG_IDENTIFIER;
-  ncci = (word)(Id>>16);
-  dbug(1,dprintf("ncci=0x%x, plci=0x%x",ncci,plci));
-
-  if (plci && ncci)
-  {
-    Info = _WRONG_STATE;
-    if ((a->ncci_state[ncci] == CONNECTED)
-     || (a->ncci_state[ncci] == INC_ACT_PENDING))
-    {
-        /* queue data */
-      ncci_ptr = &(a->ncci[ncci]);
-      i = ncci_ptr->data_out + ncci_ptr->data_pending;
-      if (i >= MAX_DATA_B3)
-        i -= MAX_DATA_B3;
-      data = &(ncci_ptr->DBuffer[i]);
-      data->Number = Number;
-      if ((((byte   *)(parms[0].info)) >= ((byte   *)(plci->msg_in_queue)))
-       && (((byte   *)(parms[0].info)) < ((byte   *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
-      {
-
-        data->P = (byte *)(long)(*((dword *)(parms[0].info)));
-
-      }
-      else
-        data->P = TransmitBufferSet(appl,*(dword *)parms[0].info);
-      data->Length = GET_WORD(parms[1].info);
-      data->Handle = GET_WORD(parms[2].info);
-      data->Flags = GET_WORD(parms[3].info);
-      (ncci_ptr->data_pending)++;
-
-        /* check for delivery confirmation */
-      if (data->Flags & 0x0004)
-      {
-        i = ncci_ptr->data_ack_out + ncci_ptr->data_ack_pending;
-        if (i >= MAX_DATA_ACK)
-          i -= MAX_DATA_ACK;
-        ncci_ptr->DataAck[i].Number = data->Number;
-        ncci_ptr->DataAck[i].Handle = data->Handle;
-        (ncci_ptr->data_ack_pending)++;
-      }
-
-      send_data(plci);
-      return false;
-    }
-  }
-  if (appl)
-  {
-    if (plci)
-    {
-      if ((((byte   *)(parms[0].info)) >= ((byte   *)(plci->msg_in_queue)))
-       && (((byte   *)(parms[0].info)) < ((byte   *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
-      {
-
-        TransmitBufferFree (appl, (byte *)(long)(*((dword *)(parms[0].info))));
-
-      }
-    }
-    sendf(appl,
-          _DATA_B3_R|CONFIRM,
-          Id,
-          Number,
-          "ww",GET_WORD(parms[2].info),Info);
-  }
-  return false;
+       NCCI *ncci_ptr;
+       DATA_B3_DESC *data;
+       word Info;
+       word ncci;
+       word i;
+
+       dbug(1, dprintf("data_b3_req"));
+
+       Info = _WRONG_IDENTIFIER;
+       ncci = (word)(Id >> 16);
+       dbug(1, dprintf("ncci=0x%x, plci=0x%x", ncci, plci));
+
+       if (plci && ncci)
+       {
+               Info = _WRONG_STATE;
+               if ((a->ncci_state[ncci] == CONNECTED)
+                   || (a->ncci_state[ncci] == INC_ACT_PENDING))
+               {
+                       /* queue data */
+                       ncci_ptr = &(a->ncci[ncci]);
+                       i = ncci_ptr->data_out + ncci_ptr->data_pending;
+                       if (i >= MAX_DATA_B3)
+                               i -= MAX_DATA_B3;
+                       data = &(ncci_ptr->DBuffer[i]);
+                       data->Number = Number;
+                       if ((((byte *)(parms[0].info)) >= ((byte *)(plci->msg_in_queue)))
+                           && (((byte *)(parms[0].info)) < ((byte *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
+                       {
+
+                               data->P = (byte *)(long)(*((dword *)(parms[0].info)));
+
+                       }
+                       else
+                               data->P = TransmitBufferSet(appl, *(dword *)parms[0].info);
+                       data->Length = GET_WORD(parms[1].info);
+                       data->Handle = GET_WORD(parms[2].info);
+                       data->Flags = GET_WORD(parms[3].info);
+                       (ncci_ptr->data_pending)++;
+
+                       /* check for delivery confirmation */
+                       if (data->Flags & 0x0004)
+                       {
+                               i = ncci_ptr->data_ack_out + ncci_ptr->data_ack_pending;
+                               if (i >= MAX_DATA_ACK)
+                                       i -= MAX_DATA_ACK;
+                               ncci_ptr->DataAck[i].Number = data->Number;
+                               ncci_ptr->DataAck[i].Handle = data->Handle;
+                               (ncci_ptr->data_ack_pending)++;
+                       }
+
+                       send_data(plci);
+                       return false;
+               }
+       }
+       if (appl)
+       {
+               if (plci)
+               {
+                       if ((((byte *)(parms[0].info)) >= ((byte *)(plci->msg_in_queue)))
+                           && (((byte *)(parms[0].info)) < ((byte *)(plci->msg_in_queue)) + sizeof(plci->msg_in_queue)))
+                       {
+
+                               TransmitBufferFree(appl, (byte *)(long)(*((dword *)(parms[0].info))));
+
+                       }
+               }
+               sendf(appl,
+                     _DATA_B3_R | CONFIRM,
+                     Id,
+                     Number,
+                     "ww", GET_WORD(parms[2].info), Info);
+       }
+       return false;
 }
 
 static byte data_b3_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                        PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word n;
-  word ncci;
-  word NCCIcode;
-
-  dbug(1,dprintf("data_b3_res"));
-
-  ncci = (word)(Id>>16);
-  if(plci && ncci) {
-    n = GET_WORD(parms[0].info);
-    dbug(1,dprintf("free(%d)",n));
-    NCCIcode = ncci | (((word) a->Id) << 8);
-    if(n<appl->MaxBuffer &&
-       appl->DataNCCI[n]==NCCIcode &&
-       (byte)(appl->DataFlags[n]>>8)==plci->Id) {
-      dbug(1,dprintf("found"));
-      appl->DataNCCI[n] = 0;
-
-      if (channel_can_xon (plci, a->ncci_ch[ncci])) {
-        channel_request_xon (plci, a->ncci_ch[ncci]);
-      }
-      channel_xmit_xon (plci);
-
-      if(appl->DataFlags[n] &4) {
-        nl_req_ncci(plci,N_DATA_ACK,(byte)ncci);
-        return 1;
-      }
-    }
-  }
-  return false;
+       word n;
+       word ncci;
+       word NCCIcode;
+
+       dbug(1, dprintf("data_b3_res"));
+
+       ncci = (word)(Id >> 16);
+       if (plci && ncci) {
+               n = GET_WORD(parms[0].info);
+               dbug(1, dprintf("free(%d)", n));
+               NCCIcode = ncci | (((word) a->Id) << 8);
+               if (n < appl->MaxBuffer &&
+                   appl->DataNCCI[n] == NCCIcode &&
+                   (byte)(appl->DataFlags[n] >> 8) == plci->Id) {
+                       dbug(1, dprintf("found"));
+                       appl->DataNCCI[n] = 0;
+
+                       if (channel_can_xon(plci, a->ncci_ch[ncci])) {
+                               channel_request_xon(plci, a->ncci_ch[ncci]);
+                       }
+                       channel_xmit_xon(plci);
+
+                       if (appl->DataFlags[n] & 4) {
+                               nl_req_ncci(plci, N_DATA_ACK, (byte)ncci);
+                               return 1;
+                       }
+               }
+       }
+       return false;
 }
 
 static byte reset_b3_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                         PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word Info;
-  word ncci;
-
-  dbug(1,dprintf("reset_b3_req"));
-
-  Info = _WRONG_IDENTIFIER;
-  ncci = (word)(Id>>16);
-  if(plci && ncci)
-  {
-    Info = _WRONG_STATE;
-    switch (plci->B3_prot)
-    {
-    case B3_ISO8208:
-    case B3_X25_DCE:
-      if(a->ncci_state[ncci]==CONNECTED)
-      {
-        nl_req_ncci(plci,N_RESET,(byte)ncci);
-        send_req(plci);
-        Info = GOOD;
-      }
-      break;
-    case B3_TRANSPARENT:
-      if(a->ncci_state[ncci]==CONNECTED)
-      {
-        start_internal_command (Id, plci, reset_b3_command);
-        Info = GOOD;
-      }
-      break;
-    }
-  }
-  /* reset_b3 must result in a reset_b3_con & reset_b3_Ind */
-  sendf(appl,
-        _RESET_B3_R|CONFIRM,
-        Id,
-        Number,
-        "w",Info);
-  return false;
+       word Info;
+       word ncci;
+
+       dbug(1, dprintf("reset_b3_req"));
+
+       Info = _WRONG_IDENTIFIER;
+       ncci = (word)(Id >> 16);
+       if (plci && ncci)
+       {
+               Info = _WRONG_STATE;
+               switch (plci->B3_prot)
+               {
+               case B3_ISO8208:
+               case B3_X25_DCE:
+                       if (a->ncci_state[ncci] == CONNECTED)
+                       {
+                               nl_req_ncci(plci, N_RESET, (byte)ncci);
+                               send_req(plci);
+                               Info = GOOD;
+                       }
+                       break;
+               case B3_TRANSPARENT:
+                       if (a->ncci_state[ncci] == CONNECTED)
+                       {
+                               start_internal_command(Id, plci, reset_b3_command);
+                               Info = GOOD;
+                       }
+                       break;
+               }
+       }
+       /* reset_b3 must result in a reset_b3_con & reset_b3_Ind */
+       sendf(appl,
+             _RESET_B3_R | CONFIRM,
+             Id,
+             Number,
+             "w", Info);
+       return false;
 }
 
 static byte reset_b3_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                         PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word ncci;
-
-  dbug(1,dprintf("reset_b3_res"));
-
-  ncci = (word)(Id>>16);
-  if(plci && ncci) {
-    switch (plci->B3_prot)
-    {
-    case B3_ISO8208:
-    case B3_X25_DCE:
-      if(a->ncci_state[ncci]==INC_RES_PENDING)
-      {
-        a->ncci_state[ncci] = CONNECTED;
-        nl_req_ncci(plci,N_RESET_ACK,(byte)ncci);
-        return true;
-      }
-    break;
-    }
-  }
-  return false;
+       word ncci;
+
+       dbug(1, dprintf("reset_b3_res"));
+
+       ncci = (word)(Id >> 16);
+       if (plci && ncci) {
+               switch (plci->B3_prot)
+               {
+               case B3_ISO8208:
+               case B3_X25_DCE:
+                       if (a->ncci_state[ncci] == INC_RES_PENDING)
+                       {
+                               a->ncci_state[ncci] = CONNECTED;
+                               nl_req_ncci(plci, N_RESET_ACK, (byte)ncci);
+                               return true;
+                       }
+                       break;
+               }
+       }
+       return false;
 }
 
 static byte connect_b3_t90_a_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                                 PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word ncci;
-  API_PARSE * ncpi;
-  byte req;
-
-  dbug(1,dprintf("connect_b3_t90_a_res"));
-
-  ncci = (word)(Id>>16);
-  if(plci && ncci) {
-    if(a->ncci_state[ncci]==INC_ACT_PENDING) {
-      a->ncci_state[ncci] = CONNECTED;
-    }
-    else if(a->ncci_state[ncci]==INC_CON_PENDING) {
-      a->ncci_state[ncci] = CONNECTED;
-
-      req = N_CONNECT_ACK;
-
-        /* parms[0]==0 for CAPI original message definition! */
-      if(parms[0].info) {
-        ncpi = &parms[1];
-        if(ncpi->length>2) {
-          if(ncpi->info[1] &1) req = N_CONNECT_ACK | N_D_BIT;
-          add_d(plci,(word)(ncpi->length-3),&ncpi->info[4]);
-        }
-      }
-      nl_req_ncci(plci,req,(byte)ncci);
-      return 1;
-    }
-  }
-  return false;
+       word ncci;
+       API_PARSE *ncpi;
+       byte req;
+
+       dbug(1, dprintf("connect_b3_t90_a_res"));
+
+       ncci = (word)(Id >> 16);
+       if (plci && ncci) {
+               if (a->ncci_state[ncci] == INC_ACT_PENDING) {
+                       a->ncci_state[ncci] = CONNECTED;
+               }
+               else if (a->ncci_state[ncci] == INC_CON_PENDING) {
+                       a->ncci_state[ncci] = CONNECTED;
+
+                       req = N_CONNECT_ACK;
+
+                       /* parms[0]==0 for CAPI original message definition! */
+                       if (parms[0].info) {
+                               ncpi = &parms[1];
+                               if (ncpi->length > 2) {
+                                       if (ncpi->info[1] & 1) req = N_CONNECT_ACK | N_D_BIT;
+                                       add_d(plci, (word)(ncpi->length - 3), &ncpi->info[4]);
+                               }
+                       }
+                       nl_req_ncci(plci, req, (byte)ncci);
+                       return 1;
+               }
+       }
+       return false;
 }
 
 
 static byte select_b_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                         PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  word Info=0;
-  word i;
-  byte tel;
-    API_PARSE bp_parms[7];
-
-  if(!plci || !msg)
-  {
-    Info = _WRONG_IDENTIFIER;
-  }
-  else
-  {
-    dbug(1,dprintf("select_b_req[%d],PLCI=0x%x,Tel=0x%x,NL=0x%x,appl=0x%x,sstate=0x%x",
-                   msg->length,plci->Id,plci->tel,plci->NL.Id,plci->appl,plci->SuppState));
-    dbug(1,dprintf("PlciState=0x%x",plci->State));
-    for(i=0;i<7;i++) bp_parms[i].length = 0;
-
-    /* check if no channel is open, no B3 connected only */
-    if((plci->State == IDLE) || (plci->State == OUTG_DIS_PENDING) || (plci->State == INC_DIS_PENDING)
-     || (plci->SuppState != IDLE) || plci->channels || plci->nl_remove_id)
-    {
-      Info = _WRONG_STATE;
-    }
-    /* check message format and fill bp_parms pointer */
-    else if(msg->length && api_parse(&msg->info[1], (word)msg->length, "wwwsss", bp_parms))
-    {
-      Info = _WRONG_MESSAGE_FORMAT;
-    }
-    else
-    {
-      if((plci->State==INC_CON_PENDING) || (plci->State==INC_CON_ALERT)) /* send alert tone inband to the network, */
-      {                                                                  /* e.g. Qsig or RBS or Cornet-N or xess PRI */
-        if(Id & EXT_CONTROLLER)
-        {
-          sendf(appl, _SELECT_B_REQ|CONFIRM, Id, Number, "w", 0x2002); /* wrong controller */
-          return 0;
-        }
-        plci->State=INC_CON_CONNECTED_ALERT;
-        plci->appl = appl;
-        clear_c_ind_mask_bit (plci, (word)(appl->Id-1));
-        dump_c_ind_mask (plci);
-        for(i=0; i<max_appl; i++) /* disconnect the other appls */
-        {                         /* its quasi a connect        */
-          if(test_c_ind_mask_bit (plci, i))
-            sendf(&application[i], _DISCONNECT_I, Id, 0, "w", _OTHER_APPL_CONNECTED);
-        }
-      }
-
-      api_save_msg(msg, "s", &plci->saved_msg);
-      tel = plci->tel;
-      if(Id & EXT_CONTROLLER)
-      {
-        if(tel) /* external controller in use by this PLCI */
-        {
-          if(a->AdvSignalAppl && a->AdvSignalAppl!=appl)
-          {
-            dbug(1,dprintf("Ext_Ctrl in use 1"));
-            Info = _WRONG_STATE;
-          }
-        }
-        else  /* external controller NOT in use by this PLCI ? */
-        {
-          if(a->AdvSignalPLCI)
-          {
-            dbug(1,dprintf("Ext_Ctrl in use 2"));
-            Info = _WRONG_STATE;
-          }
-          else /* activate the codec */
-          {
-            dbug(1,dprintf("Ext_Ctrl start"));
-            if(AdvCodecSupport(a, plci, appl, 0) )
-            {
-              dbug(1,dprintf("Error in codec procedures"));
-              Info = _WRONG_STATE;
-            }
-            else if(plci->spoofed_msg==SPOOFING_REQUIRED) /* wait until codec is active */
-            {
-              plci->spoofed_msg = AWAITING_SELECT_B;
-              plci->internal_command = BLOCK_PLCI; /* lock other commands */
-              plci->command = 0;
-              dbug(1,dprintf("continue if codec loaded"));
-              return false;
-            }
-          }
-        }
-      }
-      else /* external controller bit is OFF */
-      {
-        if(tel) /* external controller in use, need to switch off */
-        {
-          if(a->AdvSignalAppl==appl)
-          {
-            CodecIdCheck(a, plci);
-            plci->tel = 0;
-            plci->adv_nl = 0;
-            dbug(1,dprintf("Ext_Ctrl disable"));
-          }
-          else
-          {
-            dbug(1,dprintf("Ext_Ctrl not requested"));
-          }
-        }
-      }
-      if (!Info)
-      {
-        if (plci->call_dir & CALL_DIR_OUT)
-          plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
-        else if (plci->call_dir & CALL_DIR_IN)
-          plci->call_dir = CALL_DIR_IN | CALL_DIR_ANSWER;
-        start_internal_command (Id, plci, select_b_command);
-        return false;
-      }
-    }
-  }
-  sendf(appl, _SELECT_B_REQ|CONFIRM, Id, Number, "w", Info);
-  return false;
+       word Info = 0;
+       word i;
+       byte tel;
+       API_PARSE bp_parms[7];
+
+       if (!plci || !msg)
+       {
+               Info = _WRONG_IDENTIFIER;
+       }
+       else
+       {
+               dbug(1, dprintf("select_b_req[%d],PLCI=0x%x,Tel=0x%x,NL=0x%x,appl=0x%x,sstate=0x%x",
+                               msg->length, plci->Id, plci->tel, plci->NL.Id, plci->appl, plci->SuppState));
+               dbug(1, dprintf("PlciState=0x%x", plci->State));
+               for (i = 0; i < 7; i++) bp_parms[i].length = 0;
+
+               /* check if no channel is open, no B3 connected only */
+               if ((plci->State == IDLE) || (plci->State == OUTG_DIS_PENDING) || (plci->State == INC_DIS_PENDING)
+                   || (plci->SuppState != IDLE) || plci->channels || plci->nl_remove_id)
+               {
+                       Info = _WRONG_STATE;
+               }
+               /* check message format and fill bp_parms pointer */
+               else if (msg->length && api_parse(&msg->info[1], (word)msg->length, "wwwsss", bp_parms))
+               {
+                       Info = _WRONG_MESSAGE_FORMAT;
+               }
+               else
+               {
+                       if ((plci->State == INC_CON_PENDING) || (plci->State == INC_CON_ALERT)) /* send alert tone inband to the network, */
+                       {                                                                  /* e.g. Qsig or RBS or Cornet-N or xess PRI */
+                               if (Id & EXT_CONTROLLER)
+                               {
+                                       sendf(appl, _SELECT_B_REQ | CONFIRM, Id, Number, "w", 0x2002); /* wrong controller */
+                                       return 0;
+                               }
+                               plci->State = INC_CON_CONNECTED_ALERT;
+                               plci->appl = appl;
+                               clear_c_ind_mask_bit(plci, (word)(appl->Id - 1));
+                               dump_c_ind_mask(plci);
+                               for (i = 0; i < max_appl; i++) /* disconnect the other appls */
+                               {                         /* its quasi a connect        */
+                                       if (test_c_ind_mask_bit(plci, i))
+                                               sendf(&application[i], _DISCONNECT_I, Id, 0, "w", _OTHER_APPL_CONNECTED);
+                               }
+                       }
+
+                       api_save_msg(msg, "s", &plci->saved_msg);
+                       tel = plci->tel;
+                       if (Id & EXT_CONTROLLER)
+                       {
+                               if (tel) /* external controller in use by this PLCI */
+                               {
+                                       if (a->AdvSignalAppl && a->AdvSignalAppl != appl)
+                                       {
+                                               dbug(1, dprintf("Ext_Ctrl in use 1"));
+                                               Info = _WRONG_STATE;
+                                       }
+                               }
+                               else  /* external controller NOT in use by this PLCI ? */
+                               {
+                                       if (a->AdvSignalPLCI)
+                                       {
+                                               dbug(1, dprintf("Ext_Ctrl in use 2"));
+                                               Info = _WRONG_STATE;
+                                       }
+                                       else /* activate the codec */
+                                       {
+                                               dbug(1, dprintf("Ext_Ctrl start"));
+                                               if (AdvCodecSupport(a, plci, appl, 0))
+                                               {
+                                                       dbug(1, dprintf("Error in codec procedures"));
+                                                       Info = _WRONG_STATE;
+                                               }
+                                               else if (plci->spoofed_msg == SPOOFING_REQUIRED) /* wait until codec is active */
+                                               {
+                                                       plci->spoofed_msg = AWAITING_SELECT_B;
+                                                       plci->internal_command = BLOCK_PLCI; /* lock other commands */
+                                                       plci->command = 0;
+                                                       dbug(1, dprintf("continue if codec loaded"));
+                                                       return false;
+                                               }
+                                       }
+                               }
+                       }
+                       else /* external controller bit is OFF */
+                       {
+                               if (tel) /* external controller in use, need to switch off */
+                               {
+                                       if (a->AdvSignalAppl == appl)
+                                       {
+                                               CodecIdCheck(a, plci);
+                                               plci->tel = 0;
+                                               plci->adv_nl = 0;
+                                               dbug(1, dprintf("Ext_Ctrl disable"));
+                                       }
+                                       else
+                                       {
+                                               dbug(1, dprintf("Ext_Ctrl not requested"));
+                                       }
+                               }
+                       }
+                       if (!Info)
+                       {
+                               if (plci->call_dir & CALL_DIR_OUT)
+                                       plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
+                               else if (plci->call_dir & CALL_DIR_IN)
+                                       plci->call_dir = CALL_DIR_IN | CALL_DIR_ANSWER;
+                               start_internal_command(Id, plci, select_b_command);
+                               return false;
+                       }
+               }
+       }
+       sendf(appl, _SELECT_B_REQ | CONFIRM, Id, Number, "w", Info);
+       return false;
 }
 
 static byte manufacturer_req(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                             PLCI *plci, APPL *appl, API_PARSE *parms)
 {
-  word command;
-  word i;
-  word ncci;
-  API_PARSE * m;
-    API_PARSE m_parms[5];
-  word codec;
-  byte req;
-  byte ch;
-  byte dir;
-  static byte chi[2] = {0x01,0x00};
-  static byte lli[2] = {0x01,0x00};
-  static byte codec_cai[2] = {0x01,0x01};
-  static byte null_msg = {0};
-  static API_PARSE null_parms = { 0, &null_msg };
-  PLCI   * v_plci;
-  word Info=0;
-
-  dbug(1,dprintf("manufacturer_req"));
-  for(i=0;i<5;i++) m_parms[i].length = 0;
-
-  if(GET_DWORD(parms[0].info)!=_DI_MANU_ID) {
-    Info = _WRONG_MESSAGE_FORMAT;
-  }
-  command = GET_WORD(parms[1].info);
-  m = &parms[2];
-  if (!Info)
-  {
-    switch(command) {
-    case _DI_ASSIGN_PLCI:
-      if(api_parse(&m->info[1],(word)m->length,"wbbs",m_parms)) {
-        Info = _WRONG_MESSAGE_FORMAT;
-        break;
-      }
-      codec = GET_WORD(m_parms[0].info);
-      ch = m_parms[1].info[0];
-      dir = m_parms[2].info[0];
-      if((i=get_plci(a))) {
-        plci = &a->plci[i-1];
-        plci->appl = appl;
-        plci->command = _MANUFACTURER_R;
-        plci->m_command = command;
-        plci->number = Number;
-        plci->State = LOCAL_CONNECT;
-        Id = ( ((word)plci->Id<<8)|plci->adapter->Id|0x80);
-        dbug(1,dprintf("ManCMD,plci=0x%x",Id));
-
-        if((ch==1 || ch==2) && (dir<=2)) {
-          chi[1] = (byte)(0x80|ch);
-          lli[1] = 0;
-          plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
-          switch(codec)
-          {
-          case 0:
-            Info = add_b1(plci,&m_parms[3],0,0);
-            break;
-          case 1:
-            add_p(plci,CAI,codec_cai);
-            break;
-          /* manual 'swich on' to the codec support without signalling */
-          /* first 'assign plci' with this function, then use */
-          case 2:
-            if(AdvCodecSupport(a, plci, appl, 0) ) {
-              Info = _RESOURCE_ERROR;
-            }
-            else {
-              Info = add_b1(plci,&null_parms,0,B1_FACILITY_LOCAL);
-              lli[1] = 0x10; /* local call codec stream */
-            }
-            break;
-          }
-
-          plci->State = LOCAL_CONNECT;
-          plci->manufacturer = true;
-          plci->command = _MANUFACTURER_R;
-          plci->m_command = command;
-          plci->number = Number;
-
-          if(!Info)
-          {
-            add_p(plci,LLI,lli);
-            add_p(plci,CHI,chi);
-            add_p(plci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-            sig_req(plci,ASSIGN,DSIG_ID);
-
-            if(!codec)
-            {
-              Info = add_b23(plci,&m_parms[3]);
-              if(!Info)
-              {
-                nl_req_ncci(plci,ASSIGN,0);
-                send_req(plci);
-              }
-            }
-            if(!Info)
-            {
-              dbug(1,dprintf("dir=0x%x,spoof=0x%x",dir,plci->spoofed_msg));
-              if (plci->spoofed_msg==SPOOFING_REQUIRED)
-              {
-                api_save_msg (m_parms, "wbbs", &plci->saved_msg);
-                plci->spoofed_msg = AWAITING_MANUF_CON;
-                plci->internal_command = BLOCK_PLCI; /* reject other req meanwhile */
-                plci->command = 0;
-                send_req(plci);
-                return false;
-              }
-              if(dir==1) {
-                sig_req(plci,CALL_REQ,0);
-              }
-              else if(!dir){
-                sig_req(plci,LISTEN_REQ,0);
-              }
-              send_req(plci);
-            }
-            else
-            {
-              sendf(appl,
-                    _MANUFACTURER_R|CONFIRM,
-                    Id,
-                    Number,
-                    "dww",_DI_MANU_ID,command,Info);
-              return 2;
-            }
-          }
-        }
-      }
-      else  Info = _OUT_OF_PLCI;
-      break;
-
-    case _DI_IDI_CTRL:
-      if(!plci)
-      {
-        Info = _WRONG_IDENTIFIER;
-        break;
-      }
-      if(api_parse(&m->info[1],(word)m->length,"bs",m_parms)) {
-        Info = _WRONG_MESSAGE_FORMAT;
-        break;
-      }
-      req = m_parms[0].info[0];
-      plci->command = _MANUFACTURER_R;
-      plci->m_command = command;
-      plci->number = Number;
-      if(req==CALL_REQ)
-      {
-        plci->b_channel = getChannel(&m_parms[1]);
-        mixer_set_bchannel_id_esc (plci, plci->b_channel);
-        if(plci->spoofed_msg==SPOOFING_REQUIRED)
-        {
-          plci->spoofed_msg = CALL_REQ | AWAITING_MANUF_CON;
-          plci->internal_command = BLOCK_PLCI; /* reject other req meanwhile */
-          plci->command = 0;
-          break;
-        }
-      }
-      else if(req==LAW_REQ)
-      {
-        plci->cr_enquiry = true;
-      }
-      add_ss(plci,FTY,&m_parms[1]);
-      sig_req(plci,req,0);
-      send_req(plci);
-      if(req==HANGUP)
-      {      
-        if (plci->NL.Id && !plci->nl_remove_id)
-        {
-          if (plci->channels)
-          {
-            for (ncci = 1; ncci < MAX_NCCI+1; ncci++)
-            {
-              if ((a->ncci_plci[ncci] == plci->Id) && (a->ncci_state[ncci] == CONNECTED))
-              {
-                a->ncci_state[ncci] = OUTG_DIS_PENDING;
-                cleanup_ncci_data (plci, ncci);
-                nl_req_ncci(plci,N_DISC,(byte)ncci);
-              }
-            }
-          }
-          mixer_remove (plci);
-          nl_req_ncci(plci,REMOVE,0);
-          send_req(plci);
-        }  
-      }
-      break;
-
-    case _DI_SIG_CTRL:
-    /* signalling control for loop activation B-channel */
-      if(!plci)
-      {
-        Info = _WRONG_IDENTIFIER;
-        break;
-      }
-      if(m->length){
-        plci->command = _MANUFACTURER_R;
-        plci->number = Number;
-        add_ss(plci,FTY,m);
-        sig_req(plci,SIG_CTRL,0);
-        send_req(plci);
-      }
-      else Info = _WRONG_MESSAGE_FORMAT;
-      break;
-
-    case _DI_RXT_CTRL:
-    /* activation control for receiver/transmitter B-channel */
-      if(!plci)
-      {
-        Info = _WRONG_IDENTIFIER;
-        break;
-      }
-      if(m->length){
-        plci->command = _MANUFACTURER_R;
-        plci->number = Number;
-        add_ss(plci,FTY,m);
-        sig_req(plci,DSP_CTRL,0);
-        send_req(plci);
-      }
-      else Info = _WRONG_MESSAGE_FORMAT;
-      break;
-
-    case _DI_ADV_CODEC:
-    case _DI_DSP_CTRL:
-      /* TEL_CTRL commands to support non standard adjustments: */
-      /* Ring on/off, Handset micro volume, external micro vol. */
-      /* handset+external speaker volume, receiver+transm. gain,*/
-      /* handsfree on (hookinfo off), set mixer command         */
-
-      if(command == _DI_ADV_CODEC)
-      {
-        if(!a->AdvCodecPLCI) {
-          Info = _WRONG_STATE;
-          break;
-        }
-        v_plci = a->AdvCodecPLCI;
-      }
-      else
-      {
-        if (plci
-         && (m->length >= 3)
-         && (m->info[1] == 0x1c)
-         && (m->info[2] >= 1))
-        {
-          if (m->info[3] == DSP_CTRL_OLD_SET_MIXER_COEFFICIENTS)
-          {
-            if ((plci->tel != ADV_VOICE) || (plci != a->AdvSignalPLCI))
-            {
-              Info = _WRONG_STATE;
-              break;
-            }
-            a->adv_voice_coef_length = m->info[2] - 1;
-            if (a->adv_voice_coef_length > m->length - 3)
-              a->adv_voice_coef_length = (byte)(m->length - 3);
-            if (a->adv_voice_coef_length > ADV_VOICE_COEF_BUFFER_SIZE)
-              a->adv_voice_coef_length = ADV_VOICE_COEF_BUFFER_SIZE;
-            for (i = 0; i < a->adv_voice_coef_length; i++)
-              a->adv_voice_coef_buffer[i] = m->info[4 + i];
-            if (plci->B1_facilities & B1_FACILITY_VOICE)
-              adv_voice_write_coefs (plci, ADV_VOICE_WRITE_UPDATE);
-            break;
-          }
-          else if (m->info[3] == DSP_CTRL_SET_DTMF_PARAMETERS)
-          {
-            if (!(a->manufacturer_features & MANUFACTURER_FEATURE_DTMF_PARAMETERS))
-            {
-              Info = _FACILITY_NOT_SUPPORTED;
-              break;
-            }
-
-            plci->dtmf_parameter_length = m->info[2] - 1;
-            if (plci->dtmf_parameter_length > m->length - 3)
-              plci->dtmf_parameter_length = (byte)(m->length - 3);
-            if (plci->dtmf_parameter_length > DTMF_PARAMETER_BUFFER_SIZE)
-              plci->dtmf_parameter_length = DTMF_PARAMETER_BUFFER_SIZE;
-            for (i = 0; i < plci->dtmf_parameter_length; i++)
-              plci->dtmf_parameter_buffer[i] = m->info[4+i];
-            if (plci->B1_facilities & B1_FACILITY_DTMFR)
-              dtmf_parameter_write (plci);
-            break;
-
-          }
-        }
-        v_plci = plci;
-      }
-
-      if(!v_plci)
-      {
-        Info = _WRONG_IDENTIFIER;
-        break;
-      }
-      if(m->length){
-        add_ss(v_plci,FTY,m);
-        sig_req(v_plci,TEL_CTRL,0);
-        send_req(v_plci);
-      }
-      else Info = _WRONG_MESSAGE_FORMAT;
-
-      break;
-
-    case _DI_OPTIONS_REQUEST:
-      if(api_parse(&m->info[1],(word)m->length,"d",m_parms)) {
-        Info = _WRONG_MESSAGE_FORMAT;
-        break;
-      }
-      if (GET_DWORD (m_parms[0].info) & ~a->man_profile.private_options)
-      {
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      a->requested_options_table[appl->Id-1] = GET_DWORD (m_parms[0].info);
-      break;
-
-
-
-    default:
-      Info = _WRONG_MESSAGE_FORMAT;
-      break;
-    }
-  }
-
-  sendf(appl,
-        _MANUFACTURER_R|CONFIRM,
-        Id,
-        Number,
-        "dww",_DI_MANU_ID,command,Info);
-  return false;
+       word command;
+       word i;
+       word ncci;
+       API_PARSE *m;
+       API_PARSE m_parms[5];
+       word codec;
+       byte req;
+       byte ch;
+       byte dir;
+       static byte chi[2] = {0x01, 0x00};
+       static byte lli[2] = {0x01, 0x00};
+       static byte codec_cai[2] = {0x01, 0x01};
+       static byte null_msg = {0};
+       static API_PARSE null_parms = { 0, &null_msg };
+       PLCI *v_plci;
+       word Info = 0;
+
+       dbug(1, dprintf("manufacturer_req"));
+       for (i = 0; i < 5; i++) m_parms[i].length = 0;
+
+       if (GET_DWORD(parms[0].info) != _DI_MANU_ID) {
+               Info = _WRONG_MESSAGE_FORMAT;
+       }
+       command = GET_WORD(parms[1].info);
+       m = &parms[2];
+       if (!Info)
+       {
+               switch (command) {
+               case _DI_ASSIGN_PLCI:
+                       if (api_parse(&m->info[1], (word)m->length, "wbbs", m_parms)) {
+                               Info = _WRONG_MESSAGE_FORMAT;
+                               break;
+                       }
+                       codec = GET_WORD(m_parms[0].info);
+                       ch = m_parms[1].info[0];
+                       dir = m_parms[2].info[0];
+                       if ((i = get_plci(a))) {
+                               plci = &a->plci[i - 1];
+                               plci->appl = appl;
+                               plci->command = _MANUFACTURER_R;
+                               plci->m_command = command;
+                               plci->number = Number;
+                               plci->State = LOCAL_CONNECT;
+                               Id = (((word)plci->Id << 8) | plci->adapter->Id | 0x80);
+                               dbug(1, dprintf("ManCMD,plci=0x%x", Id));
+
+                               if ((ch == 1 || ch == 2) && (dir <= 2)) {
+                                       chi[1] = (byte)(0x80 | ch);
+                                       lli[1] = 0;
+                                       plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
+                                       switch (codec)
+                                       {
+                                       case 0:
+                                               Info = add_b1(plci, &m_parms[3], 0, 0);
+                                               break;
+                                       case 1:
+                                               add_p(plci, CAI, codec_cai);
+                                               break;
+                                               /* manual 'swich on' to the codec support without signalling */
+                                               /* first 'assign plci' with this function, then use */
+                                       case 2:
+                                               if (AdvCodecSupport(a, plci, appl, 0)) {
+                                                       Info = _RESOURCE_ERROR;
+                                               }
+                                               else {
+                                                       Info = add_b1(plci, &null_parms, 0, B1_FACILITY_LOCAL);
+                                                       lli[1] = 0x10; /* local call codec stream */
+                                               }
+                                               break;
+                                       }
+
+                                       plci->State = LOCAL_CONNECT;
+                                       plci->manufacturer = true;
+                                       plci->command = _MANUFACTURER_R;
+                                       plci->m_command = command;
+                                       plci->number = Number;
+
+                                       if (!Info)
+                                       {
+                                               add_p(plci, LLI, lli);
+                                               add_p(plci, CHI, chi);
+                                               add_p(plci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               sig_req(plci, ASSIGN, DSIG_ID);
+
+                                               if (!codec)
+                                               {
+                                                       Info = add_b23(plci, &m_parms[3]);
+                                                       if (!Info)
+                                                       {
+                                                               nl_req_ncci(plci, ASSIGN, 0);
+                                                               send_req(plci);
+                                                       }
+                                               }
+                                               if (!Info)
+                                               {
+                                                       dbug(1, dprintf("dir=0x%x,spoof=0x%x", dir, plci->spoofed_msg));
+                                                       if (plci->spoofed_msg == SPOOFING_REQUIRED)
+                                                       {
+                                                               api_save_msg(m_parms, "wbbs", &plci->saved_msg);
+                                                               plci->spoofed_msg = AWAITING_MANUF_CON;
+                                                               plci->internal_command = BLOCK_PLCI; /* reject other req meanwhile */
+                                                               plci->command = 0;
+                                                               send_req(plci);
+                                                               return false;
+                                                       }
+                                                       if (dir == 1) {
+                                                               sig_req(plci, CALL_REQ, 0);
+                                                       }
+                                                       else if (!dir) {
+                                                               sig_req(plci, LISTEN_REQ, 0);
+                                                       }
+                                                       send_req(plci);
+                                               }
+                                               else
+                                               {
+                                                       sendf(appl,
+                                                             _MANUFACTURER_R | CONFIRM,
+                                                             Id,
+                                                             Number,
+                                                             "dww", _DI_MANU_ID, command, Info);
+                                                       return 2;
+                                               }
+                                       }
+                               }
+                       }
+                       else  Info = _OUT_OF_PLCI;
+                       break;
+
+               case _DI_IDI_CTRL:
+                       if (!plci)
+                       {
+                               Info = _WRONG_IDENTIFIER;
+                               break;
+                       }
+                       if (api_parse(&m->info[1], (word)m->length, "bs", m_parms)) {
+                               Info = _WRONG_MESSAGE_FORMAT;
+                               break;
+                       }
+                       req = m_parms[0].info[0];
+                       plci->command = _MANUFACTURER_R;
+                       plci->m_command = command;
+                       plci->number = Number;
+                       if (req == CALL_REQ)
+                       {
+                               plci->b_channel = getChannel(&m_parms[1]);
+                               mixer_set_bchannel_id_esc(plci, plci->b_channel);
+                               if (plci->spoofed_msg == SPOOFING_REQUIRED)
+                               {
+                                       plci->spoofed_msg = CALL_REQ | AWAITING_MANUF_CON;
+                                       plci->internal_command = BLOCK_PLCI; /* reject other req meanwhile */
+                                       plci->command = 0;
+                                       break;
+                               }
+                       }
+                       else if (req == LAW_REQ)
+                       {
+                               plci->cr_enquiry = true;
+                       }
+                       add_ss(plci, FTY, &m_parms[1]);
+                       sig_req(plci, req, 0);
+                       send_req(plci);
+                       if (req == HANGUP)
+                       {
+                               if (plci->NL.Id && !plci->nl_remove_id)
+                               {
+                                       if (plci->channels)
+                                       {
+                                               for (ncci = 1; ncci < MAX_NCCI + 1; ncci++)
+                                               {
+                                                       if ((a->ncci_plci[ncci] == plci->Id) && (a->ncci_state[ncci] == CONNECTED))
+                                                       {
+                                                               a->ncci_state[ncci] = OUTG_DIS_PENDING;
+                                                               cleanup_ncci_data(plci, ncci);
+                                                               nl_req_ncci(plci, N_DISC, (byte)ncci);
+                                                       }
+                                               }
+                                       }
+                                       mixer_remove(plci);
+                                       nl_req_ncci(plci, REMOVE, 0);
+                                       send_req(plci);
+                               }
+                       }
+                       break;
+
+               case _DI_SIG_CTRL:
+                       /* signalling control for loop activation B-channel */
+                       if (!plci)
+                       {
+                               Info = _WRONG_IDENTIFIER;
+                               break;
+                       }
+                       if (m->length) {
+                               plci->command = _MANUFACTURER_R;
+                               plci->number = Number;
+                               add_ss(plci, FTY, m);
+                               sig_req(plci, SIG_CTRL, 0);
+                               send_req(plci);
+                       }
+                       else Info = _WRONG_MESSAGE_FORMAT;
+                       break;
+
+               case _DI_RXT_CTRL:
+                       /* activation control for receiver/transmitter B-channel */
+                       if (!plci)
+                       {
+                               Info = _WRONG_IDENTIFIER;
+                               break;
+                       }
+                       if (m->length) {
+                               plci->command = _MANUFACTURER_R;
+                               plci->number = Number;
+                               add_ss(plci, FTY, m);
+                               sig_req(plci, DSP_CTRL, 0);
+                               send_req(plci);
+                       }
+                       else Info = _WRONG_MESSAGE_FORMAT;
+                       break;
+
+               case _DI_ADV_CODEC:
+               case _DI_DSP_CTRL:
+                       /* TEL_CTRL commands to support non standard adjustments: */
+                       /* Ring on/off, Handset micro volume, external micro vol. */
+                       /* handset+external speaker volume, receiver+transm. gain,*/
+                       /* handsfree on (hookinfo off), set mixer command         */
+
+                       if (command == _DI_ADV_CODEC)
+                       {
+                               if (!a->AdvCodecPLCI) {
+                                       Info = _WRONG_STATE;
+                                       break;
+                               }
+                               v_plci = a->AdvCodecPLCI;
+                       }
+                       else
+                       {
+                               if (plci
+                                   && (m->length >= 3)
+                                   && (m->info[1] == 0x1c)
+                                   && (m->info[2] >= 1))
+                               {
+                                       if (m->info[3] == DSP_CTRL_OLD_SET_MIXER_COEFFICIENTS)
+                                       {
+                                               if ((plci->tel != ADV_VOICE) || (plci != a->AdvSignalPLCI))
+                                               {
+                                                       Info = _WRONG_STATE;
+                                                       break;
+                                               }
+                                               a->adv_voice_coef_length = m->info[2] - 1;
+                                               if (a->adv_voice_coef_length > m->length - 3)
+                                                       a->adv_voice_coef_length = (byte)(m->length - 3);
+                                               if (a->adv_voice_coef_length > ADV_VOICE_COEF_BUFFER_SIZE)
+                                                       a->adv_voice_coef_length = ADV_VOICE_COEF_BUFFER_SIZE;
+                                               for (i = 0; i < a->adv_voice_coef_length; i++)
+                                                       a->adv_voice_coef_buffer[i] = m->info[4 + i];
+                                               if (plci->B1_facilities & B1_FACILITY_VOICE)
+                                                       adv_voice_write_coefs(plci, ADV_VOICE_WRITE_UPDATE);
+                                               break;
+                                       }
+                                       else if (m->info[3] == DSP_CTRL_SET_DTMF_PARAMETERS)
+                                       {
+                                               if (!(a->manufacturer_features & MANUFACTURER_FEATURE_DTMF_PARAMETERS))
+                                               {
+                                                       Info = _FACILITY_NOT_SUPPORTED;
+                                                       break;
+                                               }
+
+                                               plci->dtmf_parameter_length = m->info[2] - 1;
+                                               if (plci->dtmf_parameter_length > m->length - 3)
+                                                       plci->dtmf_parameter_length = (byte)(m->length - 3);
+                                               if (plci->dtmf_parameter_length > DTMF_PARAMETER_BUFFER_SIZE)
+                                                       plci->dtmf_parameter_length = DTMF_PARAMETER_BUFFER_SIZE;
+                                               for (i = 0; i < plci->dtmf_parameter_length; i++)
+                                                       plci->dtmf_parameter_buffer[i] = m->info[4 + i];
+                                               if (plci->B1_facilities & B1_FACILITY_DTMFR)
+                                                       dtmf_parameter_write(plci);
+                                               break;
+
+                                       }
+                               }
+                               v_plci = plci;
+                       }
+
+                       if (!v_plci)
+                       {
+                               Info = _WRONG_IDENTIFIER;
+                               break;
+                       }
+                       if (m->length) {
+                               add_ss(v_plci, FTY, m);
+                               sig_req(v_plci, TEL_CTRL, 0);
+                               send_req(v_plci);
+                       }
+                       else Info = _WRONG_MESSAGE_FORMAT;
+
+                       break;
+
+               case _DI_OPTIONS_REQUEST:
+                       if (api_parse(&m->info[1], (word)m->length, "d", m_parms)) {
+                               Info = _WRONG_MESSAGE_FORMAT;
+                               break;
+                       }
+                       if (GET_DWORD(m_parms[0].info) & ~a->man_profile.private_options)
+                       {
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       a->requested_options_table[appl->Id - 1] = GET_DWORD(m_parms[0].info);
+                       break;
+
+
+
+               default:
+                       Info = _WRONG_MESSAGE_FORMAT;
+                       break;
+               }
+       }
+
+       sendf(appl,
+             _MANUFACTURER_R | CONFIRM,
+             Id,
+             Number,
+             "dww", _DI_MANU_ID, command, Info);
+       return false;
 }
 
 
 static byte manufacturer_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
                             PLCI *plci, APPL *appl, API_PARSE *msg)
 {
-  word indication;
-
-    API_PARSE m_parms[3];
-  API_PARSE *ncpi;
-    API_PARSE fax_parms[9];
-  word i;
-  byte len;
-
-
-  dbug(1,dprintf("manufacturer_res"));
-
-  if ((msg[0].length == 0)
-   || (msg[1].length == 0)
-   || (GET_DWORD(msg[0].info)!=_DI_MANU_ID))
-  {
-    return false;
-  }
-  indication = GET_WORD(msg[1].info);
-  switch (indication)
-  {
-
-  case _DI_NEGOTIATE_B3:
-    if(!plci)
-      break;
-    if (((plci->B3_prot != 4) && (plci->B3_prot != 5))
-     || !(plci->ncpi_state & NCPI_NEGOTIATE_B3_SENT))
-    {
-      dbug(1,dprintf("wrong state for NEGOTIATE_B3 parameters"));
-      break;
-    }
-    if (api_parse (&msg[2].info[1], msg[2].length, "ws", m_parms))
-    {
-      dbug(1,dprintf("wrong format in NEGOTIATE_B3 parameters"));
-      break;
-    }
-    ncpi = &m_parms[1];
-    len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
-    if (plci->fax_connect_info_length < len)
-    {
-      ((T30_INFO *)(plci->fax_connect_info_buffer))->station_id_len = 0;
-      ((T30_INFO *)(plci->fax_connect_info_buffer))->head_line_len = 0;
-    }
-    if (api_parse (&ncpi->info[1], ncpi->length, "wwwwssss", fax_parms))
-    {
-      dbug(1,dprintf("non-standard facilities info missing or wrong format"));
-    }
-    else
-    {
-      if (plci->fax_connect_info_length <= len)
-        plci->fax_connect_info_buffer[len] = 0;
-      len += 1 + plci->fax_connect_info_buffer[len];
-      if (plci->fax_connect_info_length <= len)
-        plci->fax_connect_info_buffer[len] = 0;
-      len += 1 + plci->fax_connect_info_buffer[len];
-      if ((fax_parms[7].length >= 3) && (fax_parms[7].info[1] >= 2))
-        plci->nsf_control_bits = GET_WORD(&fax_parms[7].info[2]);
-      plci->fax_connect_info_buffer[len++] = (byte)(fax_parms[7].length);
-      for (i = 0; i < fax_parms[7].length; i++)
-        plci->fax_connect_info_buffer[len++] = fax_parms[7].info[1+i];
-    }
-    plci->fax_connect_info_length = len;
-    plci->fax_edata_ack_length = plci->fax_connect_info_length;
-    start_internal_command (Id, plci, fax_edata_ack_command);
-    break;
-
-  }
-  return false;
+       word indication;
+
+       API_PARSE m_parms[3];
+       API_PARSE *ncpi;
+       API_PARSE fax_parms[9];
+       word i;
+       byte len;
+
+
+       dbug(1, dprintf("manufacturer_res"));
+
+       if ((msg[0].length == 0)
+           || (msg[1].length == 0)
+           || (GET_DWORD(msg[0].info) != _DI_MANU_ID))
+       {
+               return false;
+       }
+       indication = GET_WORD(msg[1].info);
+       switch (indication)
+       {
+
+       case _DI_NEGOTIATE_B3:
+               if (!plci)
+                       break;
+               if (((plci->B3_prot != 4) && (plci->B3_prot != 5))
+                   || !(plci->ncpi_state & NCPI_NEGOTIATE_B3_SENT))
+               {
+                       dbug(1, dprintf("wrong state for NEGOTIATE_B3 parameters"));
+                       break;
+               }
+               if (api_parse(&msg[2].info[1], msg[2].length, "ws", m_parms))
+               {
+                       dbug(1, dprintf("wrong format in NEGOTIATE_B3 parameters"));
+                       break;
+               }
+               ncpi = &m_parms[1];
+               len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
+               if (plci->fax_connect_info_length < len)
+               {
+                       ((T30_INFO *)(plci->fax_connect_info_buffer))->station_id_len = 0;
+                       ((T30_INFO *)(plci->fax_connect_info_buffer))->head_line_len = 0;
+               }
+               if (api_parse(&ncpi->info[1], ncpi->length, "wwwwssss", fax_parms))
+               {
+                       dbug(1, dprintf("non-standard facilities info missing or wrong format"));
+               }
+               else
+               {
+                       if (plci->fax_connect_info_length <= len)
+                               plci->fax_connect_info_buffer[len] = 0;
+                       len += 1 + plci->fax_connect_info_buffer[len];
+                       if (plci->fax_connect_info_length <= len)
+                               plci->fax_connect_info_buffer[len] = 0;
+                       len += 1 + plci->fax_connect_info_buffer[len];
+                       if ((fax_parms[7].length >= 3) && (fax_parms[7].info[1] >= 2))
+                               plci->nsf_control_bits = GET_WORD(&fax_parms[7].info[2]);
+                       plci->fax_connect_info_buffer[len++] = (byte)(fax_parms[7].length);
+                       for (i = 0; i < fax_parms[7].length; i++)
+                               plci->fax_connect_info_buffer[len++] = fax_parms[7].info[1 + i];
+               }
+               plci->fax_connect_info_length = len;
+               plci->fax_edata_ack_length = plci->fax_connect_info_length;
+               start_internal_command(Id, plci, fax_edata_ack_command);
+               break;
+
+       }
+       return false;
 }
 
 /*------------------------------------------------------------------*/
 /* IDI callback function                                            */
 /*------------------------------------------------------------------*/
 
-void   callback(ENTITY   * e)
-{
-  DIVA_CAPI_ADAPTER   * a;
-  APPL   * appl;
-  PLCI   * plci;
-  CAPI_MSG   *m;
-  word i, j;
-  byte rc;
-  byte ch;
-  byte req;
-  byte global_req;
-  int no_cancel_rc;
-
-  dbug(1,dprintf("%x:CB(%x:Req=%x,Rc=%x,Ind=%x)",
-                 (e->user[0]+1)&0x7fff,e->Id,e->Req,e->Rc,e->Ind));
-
-  a = &(adapter[(byte)e->user[0]]);
-  plci = &(a->plci[e->user[1]]);
-  no_cancel_rc = DIVA_CAPI_SUPPORTS_NO_CANCEL(a);
-
-  /*
-     If new protocol code and new XDI is used then CAPI should work
-     fully in accordance with IDI cpec an look on callback field instead
-     of Rc field for return codes.
-   */
-  if (((e->complete == 0xff) && no_cancel_rc) ||
-      (e->Rc && !no_cancel_rc)) {
-    rc = e->Rc;
-    ch = e->RcCh;
-    req = e->Req;
-    e->Rc = 0;
-
-    if (e->user[0] & 0x8000)
-    {
-      /*
-         If REMOVE request was sent then we have to wait until
-         return code with Id set to zero arrives.
-         All other return codes should be ignored.
-         */
-      if (req == REMOVE)
-      {
-        if (e->Id)
-        {
-          dbug(1,dprintf("cancel RC in REMOVE state"));
-          return;
-        }
-        channel_flow_control_remove (plci);
-        for (i = 0; i < 256; i++)
-        {
-          if (a->FlowControlIdTable[i] == plci->nl_remove_id)
-            a->FlowControlIdTable[i] = 0;
-        }
-        plci->nl_remove_id = 0;
-        if (plci->rx_dma_descriptor > 0) {
-          diva_free_dma_descriptor (plci, plci->rx_dma_descriptor - 1);
-          plci->rx_dma_descriptor = 0;
-        }
-      }
-      if (rc == OK_FC)
-      {
-        a->FlowControlIdTable[ch] = e->Id;
-        a->FlowControlSkipTable[ch] = 0;
-
-        a->ch_flow_control[ch] |= N_OK_FC_PENDING;
-        a->ch_flow_plci[ch] = plci->Id;
-        plci->nl_req = 0;
-      }
-      else
-      {
-        /*
-          Cancel return codes self, if feature was requested
-          */
-        if (no_cancel_rc && (a->FlowControlIdTable[ch] == e->Id) && e->Id) {
-          a->FlowControlIdTable[ch] = 0;
-          if ((rc == OK) && a->FlowControlSkipTable[ch]) {
-            dbug(3,dprintf ("XDI CAPI: RC cancelled Id:0x02, Ch:%02x",                              e->Id, ch));
-            return;
-          }
-        }
-
-        if (a->ch_flow_control[ch] & N_OK_FC_PENDING)
-        {
-          a->ch_flow_control[ch] &= ~N_OK_FC_PENDING;
-          if (ch == e->ReqCh)
-            plci->nl_req = 0;
-        }
-        else
-          plci->nl_req = 0;
-      }
-      if (plci->nl_req)
-        control_rc (plci, 0, rc, ch, 0, true);
-      else
-      {
-        if (req == N_XON)
-        {
-          channel_x_on (plci, ch);
-          if (plci->internal_command)
-            control_rc (plci, req, rc, ch, 0, true);
-        }
-        else
-        {
-          if (plci->nl_global_req)
-          {
-            global_req = plci->nl_global_req;
-            plci->nl_global_req = 0;
-            if (rc != ASSIGN_OK) {
-              e->Id = 0;
-              if (plci->rx_dma_descriptor > 0) {
-                diva_free_dma_descriptor (plci, plci->rx_dma_descriptor - 1);
-                plci->rx_dma_descriptor = 0;
-              }
-            }
-            channel_xmit_xon (plci);
-            control_rc (plci, 0, rc, ch, global_req, true);
-          }
-          else if (plci->data_sent)
-          {
-            channel_xmit_xon (plci);
-            plci->data_sent = false;
-            plci->NL.XNum = 1;
-            data_rc (plci, ch);
-            if (plci->internal_command)
-              control_rc (plci, req, rc, ch, 0, true);
-          }
-          else
-          {
-            channel_xmit_xon (plci);
-            control_rc (plci, req, rc, ch, 0, true);
-          }
-        }
-      }
-    }
-    else
-    {
-      /*
-         If REMOVE request was sent then we have to wait until
-         return code with Id set to zero arrives.
-         All other return codes should be ignored.
-         */
-      if (req == REMOVE)
-      {
-        if (e->Id)
-        {
-          dbug(1,dprintf("cancel RC in REMOVE state"));
-          return;
-        }
-        plci->sig_remove_id = 0;
-      }
-      plci->sig_req = 0;
-      if (plci->sig_global_req)
-      {
-        global_req = plci->sig_global_req;
-        plci->sig_global_req = 0;
-        if (rc != ASSIGN_OK)
-          e->Id = 0;
-        channel_xmit_xon (plci);
-        control_rc (plci, 0, rc, ch, global_req, false);
-      }
-      else
-      {
-        channel_xmit_xon (plci);
-        control_rc (plci, req, rc, ch, 0, false);
-      }
-    }
-    /*
-      Again: in accordance with IDI spec Rc and Ind can't be delivered in the
-      same callback. Also if new XDI and protocol code used then jump
-      direct to finish.
-      */
-    if (no_cancel_rc) {
-      channel_xmit_xon(plci);
-      goto capi_callback_suffix;
-    }
-  }
-
-  channel_xmit_xon(plci);
-
-  if (e->Ind) {
-    if (e->user[0] &0x8000) {
-      byte Ind = e->Ind & 0x0f;
-      byte Ch = e->IndCh;
-      if (((Ind==N_DISC) || (Ind==N_DISC_ACK)) &&
-          (a->ch_flow_plci[Ch] == plci->Id)) {
-        if (a->ch_flow_control[Ch] & N_RX_FLOW_CONTROL_MASK) {
-          dbug(3,dprintf ("XDI CAPI: I: pending N-XON Ch:%02x", Ch));
-        }
-        a->ch_flow_control[Ch] &= ~N_RX_FLOW_CONTROL_MASK;
-      }
-      nl_ind(plci);
-      if ((e->RNR != 1) &&
-          (a->ch_flow_plci[Ch] == plci->Id) &&
-          (a->ch_flow_control[Ch] & N_RX_FLOW_CONTROL_MASK)) {
-        a->ch_flow_control[Ch] &= ~N_RX_FLOW_CONTROL_MASK;
-        dbug(3,dprintf ("XDI CAPI: I: remove faked N-XON Ch:%02x", Ch));
-      }
-    } else {
-      sig_ind(plci);
-    }
-    e->Ind = 0;
-  }
+void callback(ENTITY *e)
+{
+       DIVA_CAPI_ADAPTER *a;
+       APPL *appl;
+       PLCI *plci;
+       CAPI_MSG *m;
+       word i, j;
+       byte rc;
+       byte ch;
+       byte req;
+       byte global_req;
+       int no_cancel_rc;
+
+       dbug(1, dprintf("%x:CB(%x:Req=%x,Rc=%x,Ind=%x)",
+                       (e->user[0] + 1) & 0x7fff, e->Id, e->Req, e->Rc, e->Ind));
+
+       a = &(adapter[(byte)e->user[0]]);
+       plci = &(a->plci[e->user[1]]);
+       no_cancel_rc = DIVA_CAPI_SUPPORTS_NO_CANCEL(a);
+
+       /*
+         If new protocol code and new XDI is used then CAPI should work
+         fully in accordance with IDI cpec an look on callback field instead
+         of Rc field for return codes.
+       */
+       if (((e->complete == 0xff) && no_cancel_rc) ||
+           (e->Rc && !no_cancel_rc)) {
+               rc = e->Rc;
+               ch = e->RcCh;
+               req = e->Req;
+               e->Rc = 0;
+
+               if (e->user[0] & 0x8000)
+               {
+                       /*
+                         If REMOVE request was sent then we have to wait until
+                         return code with Id set to zero arrives.
+                         All other return codes should be ignored.
+                       */
+                       if (req == REMOVE)
+                       {
+                               if (e->Id)
+                               {
+                                       dbug(1, dprintf("cancel RC in REMOVE state"));
+                                       return;
+                               }
+                               channel_flow_control_remove(plci);
+                               for (i = 0; i < 256; i++)
+                               {
+                                       if (a->FlowControlIdTable[i] == plci->nl_remove_id)
+                                               a->FlowControlIdTable[i] = 0;
+                               }
+                               plci->nl_remove_id = 0;
+                               if (plci->rx_dma_descriptor > 0) {
+                                       diva_free_dma_descriptor(plci, plci->rx_dma_descriptor - 1);
+                                       plci->rx_dma_descriptor = 0;
+                               }
+                       }
+                       if (rc == OK_FC)
+                       {
+                               a->FlowControlIdTable[ch] = e->Id;
+                               a->FlowControlSkipTable[ch] = 0;
+
+                               a->ch_flow_control[ch] |= N_OK_FC_PENDING;
+                               a->ch_flow_plci[ch] = plci->Id;
+                               plci->nl_req = 0;
+                       }
+                       else
+                       {
+                               /*
+                                 Cancel return codes self, if feature was requested
+                               */
+                               if (no_cancel_rc && (a->FlowControlIdTable[ch] == e->Id) && e->Id) {
+                                       a->FlowControlIdTable[ch] = 0;
+                                       if ((rc == OK) && a->FlowControlSkipTable[ch]) {
+                                               dbug(3, dprintf("XDI CAPI: RC cancelled Id:0x02, Ch:%02x", e->Id, ch));
+                                               return;
+                                       }
+                               }
+
+                               if (a->ch_flow_control[ch] & N_OK_FC_PENDING)
+                               {
+                                       a->ch_flow_control[ch] &= ~N_OK_FC_PENDING;
+                                       if (ch == e->ReqCh)
+                                               plci->nl_req = 0;
+                               }
+                               else
+                                       plci->nl_req = 0;
+                       }
+                       if (plci->nl_req)
+                               control_rc(plci, 0, rc, ch, 0, true);
+                       else
+                       {
+                               if (req == N_XON)
+                               {
+                                       channel_x_on(plci, ch);
+                                       if (plci->internal_command)
+                                               control_rc(plci, req, rc, ch, 0, true);
+                               }
+                               else
+                               {
+                                       if (plci->nl_global_req)
+                                       {
+                                               global_req = plci->nl_global_req;
+                                               plci->nl_global_req = 0;
+                                               if (rc != ASSIGN_OK) {
+                                                       e->Id = 0;
+                                                       if (plci->rx_dma_descriptor > 0) {
+                                                               diva_free_dma_descriptor(plci, plci->rx_dma_descriptor - 1);
+                                                               plci->rx_dma_descriptor = 0;
+                                                       }
+                                               }
+                                               channel_xmit_xon(plci);
+                                               control_rc(plci, 0, rc, ch, global_req, true);
+                                       }
+                                       else if (plci->data_sent)
+                                       {
+                                               channel_xmit_xon(plci);
+                                               plci->data_sent = false;
+                                               plci->NL.XNum = 1;
+                                               data_rc(plci, ch);
+                                               if (plci->internal_command)
+                                                       control_rc(plci, req, rc, ch, 0, true);
+                                       }
+                                       else
+                                       {
+                                               channel_xmit_xon(plci);
+                                               control_rc(plci, req, rc, ch, 0, true);
+                                       }
+                               }
+                       }
+               }
+               else
+               {
+                       /*
+                         If REMOVE request was sent then we have to wait until
+                         return code with Id set to zero arrives.
+                         All other return codes should be ignored.
+                       */
+                       if (req == REMOVE)
+                       {
+                               if (e->Id)
+                               {
+                                       dbug(1, dprintf("cancel RC in REMOVE state"));
+                                       return;
+                               }
+                               plci->sig_remove_id = 0;
+                       }
+                       plci->sig_req = 0;
+                       if (plci->sig_global_req)
+                       {
+                               global_req = plci->sig_global_req;
+                               plci->sig_global_req = 0;
+                               if (rc != ASSIGN_OK)
+                                       e->Id = 0;
+                               channel_xmit_xon(plci);
+                               control_rc(plci, 0, rc, ch, global_req, false);
+                       }
+                       else
+                       {
+                               channel_xmit_xon(plci);
+                               control_rc(plci, req, rc, ch, 0, false);
+                       }
+               }
+               /*
+                 Again: in accordance with IDI spec Rc and Ind can't be delivered in the
+                 same callback. Also if new XDI and protocol code used then jump
+                 direct to finish.
+               */
+               if (no_cancel_rc) {
+                       channel_xmit_xon(plci);
+                       goto capi_callback_suffix;
+               }
+       }
+
+       channel_xmit_xon(plci);
+
+       if (e->Ind) {
+               if (e->user[0] & 0x8000) {
+                       byte Ind = e->Ind & 0x0f;
+                       byte Ch = e->IndCh;
+                       if (((Ind == N_DISC) || (Ind == N_DISC_ACK)) &&
+                           (a->ch_flow_plci[Ch] == plci->Id)) {
+                               if (a->ch_flow_control[Ch] & N_RX_FLOW_CONTROL_MASK) {
+                                       dbug(3, dprintf("XDI CAPI: I: pending N-XON Ch:%02x", Ch));
+                               }
+                               a->ch_flow_control[Ch] &= ~N_RX_FLOW_CONTROL_MASK;
+                       }
+                       nl_ind(plci);
+                       if ((e->RNR != 1) &&
+                           (a->ch_flow_plci[Ch] == plci->Id) &&
+                           (a->ch_flow_control[Ch] & N_RX_FLOW_CONTROL_MASK)) {
+                               a->ch_flow_control[Ch] &= ~N_RX_FLOW_CONTROL_MASK;
+                               dbug(3, dprintf("XDI CAPI: I: remove faked N-XON Ch:%02x", Ch));
+                       }
+               } else {
+                       sig_ind(plci);
+               }
+               e->Ind = 0;
+       }
 
 capi_callback_suffix:
 
-  while (!plci->req_in
-   && !plci->internal_command
-   && (plci->msg_in_write_pos != plci->msg_in_read_pos))
-  {
-    j = (plci->msg_in_read_pos == plci->msg_in_wrap_pos) ? 0 : plci->msg_in_read_pos;
-
-    i = (((CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[j]))->header.length + 3) & 0xfffc;
-
-    m = (CAPI_MSG   *)(&((byte   *)(plci->msg_in_queue))[j]);
-    appl = *((APPL   *   *)(&((byte   *)(plci->msg_in_queue))[j+i]));
-    dbug(1,dprintf("dequeue msg(0x%04x) - write=%d read=%d wrap=%d",
-      m->header.command, plci->msg_in_write_pos, plci->msg_in_read_pos, plci->msg_in_wrap_pos));
-    if (plci->msg_in_read_pos == plci->msg_in_wrap_pos)
-    {
-      plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
-      plci->msg_in_read_pos = i + MSG_IN_OVERHEAD;
-    }
-    else
-    {
-      plci->msg_in_read_pos = j + i + MSG_IN_OVERHEAD;
-    }
-    if (plci->msg_in_read_pos == plci->msg_in_write_pos)
-    {
-      plci->msg_in_write_pos = MSG_IN_QUEUE_SIZE;
-      plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
-    }
-    else if (plci->msg_in_read_pos == plci->msg_in_wrap_pos)
-    {
-      plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
-      plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
-    }
-    i = api_put (appl, m);
-    if (i != 0)
-    {
-      if (m->header.command == _DATA_B3_R)
-
-        TransmitBufferFree (appl, (byte *)(long)(m->info.data_b3_req.Data));
-
-      dbug(1,dprintf("Error 0x%04x from msg(0x%04x)", i, m->header.command));
-      break;
-    }
-
-    if (plci->li_notify_update)
-    {
-      plci->li_notify_update = false;
-      mixer_notify_update (plci, false);
-    }
-
-  }
-  send_data(plci);
-  send_req(plci);
+       while (!plci->req_in
+              && !plci->internal_command
+              && (plci->msg_in_write_pos != plci->msg_in_read_pos))
+       {
+               j = (plci->msg_in_read_pos == plci->msg_in_wrap_pos) ? 0 : plci->msg_in_read_pos;
+
+               i = (((CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[j]))->header.length + 3) & 0xfffc;
+
+               m = (CAPI_MSG *)(&((byte *)(plci->msg_in_queue))[j]);
+               appl = *((APPL **)(&((byte *)(plci->msg_in_queue))[j + i]));
+               dbug(1, dprintf("dequeue msg(0x%04x) - write=%d read=%d wrap=%d",
+                               m->header.command, plci->msg_in_write_pos, plci->msg_in_read_pos, plci->msg_in_wrap_pos));
+               if (plci->msg_in_read_pos == plci->msg_in_wrap_pos)
+               {
+                       plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
+                       plci->msg_in_read_pos = i + MSG_IN_OVERHEAD;
+               }
+               else
+               {
+                       plci->msg_in_read_pos = j + i + MSG_IN_OVERHEAD;
+               }
+               if (plci->msg_in_read_pos == plci->msg_in_write_pos)
+               {
+                       plci->msg_in_write_pos = MSG_IN_QUEUE_SIZE;
+                       plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
+               }
+               else if (plci->msg_in_read_pos == plci->msg_in_wrap_pos)
+               {
+                       plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
+                       plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
+               }
+               i = api_put(appl, m);
+               if (i != 0)
+               {
+                       if (m->header.command == _DATA_B3_R)
+
+                               TransmitBufferFree(appl, (byte *)(long)(m->info.data_b3_req.Data));
+
+                       dbug(1, dprintf("Error 0x%04x from msg(0x%04x)", i, m->header.command));
+                       break;
+               }
+
+               if (plci->li_notify_update)
+               {
+                       plci->li_notify_update = false;
+                       mixer_notify_update(plci, false);
+               }
+
+       }
+       send_data(plci);
+       send_req(plci);
 }
 
 
 static void control_rc(PLCI *plci, byte req, byte rc, byte ch, byte global_req,
                       byte nl_rc)
 {
-  dword Id;
-  dword rId;
-  word Number;
-  word Info=0;
-  word i;
-  word ncci;
-  DIVA_CAPI_ADAPTER   * a;
-  APPL   * appl;
-  PLCI   * rplci;
-    byte SSparms[]  = "\x05\x00\x00\x02\x00\x00";
-    byte SSstruct[] = "\x09\x00\x00\x06\x00\x00\x00\x00\x00\x00";
-
-  if (!plci) {
-    dbug(0,dprintf("A: control_rc, no plci %02x:%02x:%02x:%02x:%02x", req, rc, ch, global_req, nl_rc));
-    return;
-  }
-  dbug(1,dprintf("req0_in/out=%d/%d",plci->req_in,plci->req_out));
-  if(plci->req_in!=plci->req_out)
-  {
-    if (nl_rc || (global_req != ASSIGN) || (rc == ASSIGN_OK))
-    {
-      dbug(1,dprintf("req_1return"));
-      return;
-    }
-    /* cancel outstanding request on the PLCI after SIG ASSIGN failure */
-  }
-  plci->req_in = plci->req_in_start = plci->req_out = 0;
-  dbug(1,dprintf("control_rc"));
-
-  appl = plci->appl;
-  a = plci->adapter;
-  ncci = a->ch_ncci[ch];
-  if(appl)
-  {
-    Id = (((dword)(ncci ? ncci : ch)) << 16) | ((word)plci->Id << 8) | a->Id;
-    if(plci->tel && plci->SuppState!=CALL_HELD) Id|=EXT_CONTROLLER;
-    Number = plci->number;
-    dbug(1,dprintf("Contr_RC-Id=%08lx,plci=%x,tel=%x, entity=0x%x, command=0x%x, int_command=0x%x",Id,plci->Id,plci->tel,plci->Sig.Id,plci->command,plci->internal_command));
-    dbug(1,dprintf("channels=0x%x",plci->channels));
-    if (plci_remove_check(plci))
-      return;
-    if(req==REMOVE && rc==ASSIGN_OK)
-    {
-      sig_req(plci,HANGUP,0);
-      sig_req(plci,REMOVE,0);
-      send_req(plci);
-    }
-    if(plci->command)
-    {
-      switch(plci->command)
-      {
-      case C_HOLD_REQ:
-        dbug(1,dprintf("HoldRC=0x%x",rc));
-        SSparms[1] = (byte)S_HOLD;
-        if(rc!=OK)
-        {
-          plci->SuppState = IDLE;
-          Info = 0x2001;
-        }
-        sendf(appl,_FACILITY_R|CONFIRM,Id,Number,"wws",Info,3,SSparms);
-        break;
-
-      case C_RETRIEVE_REQ:
-        dbug(1,dprintf("RetrieveRC=0x%x",rc));
-        SSparms[1] = (byte)S_RETRIEVE;
-        if(rc!=OK)
-        {
-          plci->SuppState = CALL_HELD;
-          Info = 0x2001;
-        }
-        sendf(appl,_FACILITY_R|CONFIRM,Id,Number,"wws",Info,3,SSparms);
-        break;
-
-      case _INFO_R:
-        dbug(1,dprintf("InfoRC=0x%x",rc));
-        if(rc!=OK) Info=_WRONG_STATE;
-        sendf(appl,_INFO_R|CONFIRM,Id,Number,"w",Info);
-        break;
-
-      case _CONNECT_R:
-        dbug(1,dprintf("Connect_R=0x%x/0x%x/0x%x/0x%x",req,rc,global_req,nl_rc));
-        if (plci->State == INC_DIS_PENDING)
-          break;
-        if(plci->Sig.Id!=0xff)
-        {
-          if (((global_req == ASSIGN) && (rc != ASSIGN_OK))
-           || (!nl_rc && (req == CALL_REQ) && (rc != OK)))
-          {
-            dbug(1,dprintf("No more IDs/Call_Req failed"));
-            sendf(appl,_CONNECT_R|CONFIRM,Id&0xffL,Number,"w",_OUT_OF_PLCI);
-            plci_remove(plci);
-            plci->State = IDLE;
-            break;
-          }
-          if(plci->State!=LOCAL_CONNECT)plci->State = OUTG_CON_PENDING;
-          sendf(appl,_CONNECT_R|CONFIRM,Id,Number,"w",0);
-        }
-        else /* D-ch activation */
-        {
-          if (rc != ASSIGN_OK)
-          {
-            dbug(1,dprintf("No more IDs/X.25 Call_Req failed"));
-            sendf(appl,_CONNECT_R|CONFIRM,Id&0xffL,Number,"w",_OUT_OF_PLCI);
-            plci_remove(plci);
-            plci->State = IDLE;
-            break;
-          }
-          sendf(appl,_CONNECT_R|CONFIRM,Id,Number,"w",0);
-          sendf(plci->appl,_CONNECT_ACTIVE_I,Id,0,"sss","","","");
-          plci->State = INC_ACT_PENDING;
-        }
-        break;
-
-      case _CONNECT_I|RESPONSE:
-        if (plci->State != INC_DIS_PENDING)
-          plci->State = INC_CON_ACCEPT;
-        break;
-
-      case _DISCONNECT_R:
-        if (plci->State == INC_DIS_PENDING)
-          break;
-        if(plci->Sig.Id!=0xff)
-        {
-          plci->State = OUTG_DIS_PENDING;
-          sendf(appl,_DISCONNECT_R|CONFIRM,Id,Number,"w",0);
-        }
-        break;
-
-      case SUSPEND_REQ:
-        break;
-
-      case RESUME_REQ:
-        break;
-
-      case _CONNECT_B3_R:
-        if(rc!=OK)
-        {
-          sendf(appl,_CONNECT_B3_R|CONFIRM,Id,Number,"w",_WRONG_IDENTIFIER);
-          break;
-        }
-        ncci = get_ncci (plci, ch, 0);
-        Id = (Id & 0xffff) | (((dword) ncci) << 16);
-        plci->channels++;
-        if(req==N_RESET)
-        {
-          a->ncci_state[ncci] = INC_ACT_PENDING;
-          sendf(appl,_CONNECT_B3_R|CONFIRM,Id,Number,"w",0);
-          sendf(appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-        }
-        else
-        {
-          a->ncci_state[ncci] = OUTG_CON_PENDING;
-          sendf(appl,_CONNECT_B3_R|CONFIRM,Id,Number,"w",0);
-        }
-        break;
-
-      case _CONNECT_B3_I|RESPONSE:
-        break;
-
-      case _RESET_B3_R:
-/*        sendf(appl,_RESET_B3_R|CONFIRM,Id,Number,"w",0);*/
-        break;
-
-      case _DISCONNECT_B3_R:
-        sendf(appl,_DISCONNECT_B3_R|CONFIRM,Id,Number,"w",0);
-        break;
-
-      case _MANUFACTURER_R:
-        break;
-
-      case PERM_LIST_REQ:
-        if(rc!=OK)
-        {
-          Info = _WRONG_IDENTIFIER;
-          sendf(plci->appl,_CONNECT_R|CONFIRM,Id,Number,"w",Info);
-          plci_remove(plci);
-        }
-        else
-          sendf(plci->appl,_CONNECT_R|CONFIRM,Id,Number,"w",Info);
-        break;
-
-      default:
-        break;
-      }
-      plci->command = 0;
-    }
-    else if (plci->internal_command)
-    {
-      switch(plci->internal_command)
-      {
-      case BLOCK_PLCI:
-        return;
-
-      case GET_MWI_STATE:
-        if(rc==OK) /* command supported, wait for indication */
-        {
-          return;
-        }
-        plci_remove(plci);
-        break;
-
-        /* Get Supported Services */
-      case GETSERV_REQ_PEND:
-        if(rc==OK) /* command supported, wait for indication */
-        {
-          break;
-        }
-        PUT_DWORD(&SSstruct[6], MASK_TERMINAL_PORTABILITY);
-        sendf(appl, _FACILITY_R|CONFIRM, Id, Number, "wws",0,3,SSstruct);
-        plci_remove(plci);
-        break;
-
-      case INTERR_DIVERSION_REQ_PEND:      /* Interrogate Parameters        */
-      case INTERR_NUMBERS_REQ_PEND:
-      case CF_START_PEND:                  /* Call Forwarding Start pending */
-      case CF_STOP_PEND:                   /* Call Forwarding Stop pending  */
-      case CCBS_REQUEST_REQ_PEND:
-      case CCBS_DEACTIVATE_REQ_PEND:
-      case CCBS_INTERROGATE_REQ_PEND:
-        switch(plci->internal_command)
-        {
-          case INTERR_DIVERSION_REQ_PEND:
-            SSparms[1] = S_INTERROGATE_DIVERSION;
-            break;
-          case INTERR_NUMBERS_REQ_PEND:
-            SSparms[1] = S_INTERROGATE_NUMBERS;
-            break;
-          case CF_START_PEND:
-            SSparms[1] = S_CALL_FORWARDING_START;
-            break;
-          case CF_STOP_PEND:
-            SSparms[1] = S_CALL_FORWARDING_STOP;
-            break;
-          case CCBS_REQUEST_REQ_PEND:
-            SSparms[1] = S_CCBS_REQUEST;
-            break;
-          case CCBS_DEACTIVATE_REQ_PEND:
-            SSparms[1] = S_CCBS_DEACTIVATE;
-            break;
-          case CCBS_INTERROGATE_REQ_PEND:
-            SSparms[1] = S_CCBS_INTERROGATE;
-            break;
-        }
-        if(global_req==ASSIGN)
-        {
-          dbug(1,dprintf("AssignDiversion_RC=0x%x/0x%x",req,rc));
-          return;
-        }
-        if(!plci->appl) break;
-        if(rc==ISDN_GUARD_REJ)
-        {
-          Info = _CAPI_GUARD_ERROR;
-        }
-        else if(rc!=OK)
-        {
-          Info = _SUPPLEMENTARY_SERVICE_NOT_SUPPORTED;
-        }
-        sendf(plci->appl,_FACILITY_R|CONFIRM,Id&0x7,
-              plci->number,"wws",Info,(word)3,SSparms);
-        if(Info) plci_remove(plci);
-        break;
-
-        /* 3pty conference pending */
-      case PTY_REQ_PEND:
-        if(!plci->relatedPTYPLCI) break;
-        rplci = plci->relatedPTYPLCI;
-        SSparms[1] = plci->ptyState;
-        rId = ((word)rplci->Id<<8)|rplci->adapter->Id;
-        if(rplci->tel) rId|=EXT_CONTROLLER;
-        if(rc!=OK)
-        {
-          Info = 0x300E; /* not supported */
-          plci->relatedPTYPLCI = NULL;
-          plci->ptyState = 0;
-        }
-        sendf(rplci->appl,
-              _FACILITY_R|CONFIRM,
-              rId,
-              plci->number,
-              "wws",Info,(word)3,SSparms);
-        break;
-
-        /* Explicit Call Transfer pending */
-      case ECT_REQ_PEND:
-        dbug(1,dprintf("ECT_RC=0x%x/0x%x",req,rc));
-        if(!plci->relatedPTYPLCI) break;
-        rplci = plci->relatedPTYPLCI;
-        SSparms[1] = S_ECT;
-        rId = ((word)rplci->Id<<8)|rplci->adapter->Id;
-        if(rplci->tel) rId|=EXT_CONTROLLER;
-        if(rc!=OK)
-        {
-          Info = 0x300E; /* not supported */
-          plci->relatedPTYPLCI = NULL;
-          plci->ptyState = 0;
-        }
-        sendf(rplci->appl,
-              _FACILITY_R|CONFIRM,
-              rId,
-              plci->number,
-              "wws",Info,(word)3,SSparms);
-        break;
-
-      case _MANUFACTURER_R:
-        dbug(1,dprintf("_Manufacturer_R=0x%x/0x%x",req,rc));
-        if ((global_req == ASSIGN) && (rc != ASSIGN_OK))
-        {
-          dbug(1,dprintf("No more IDs"));
-          sendf(appl,_MANUFACTURER_R|CONFIRM,Id,Number,"dww",_DI_MANU_ID,_MANUFACTURER_R,_OUT_OF_PLCI);
-          plci_remove(plci);  /* after codec init, internal codec commands pending */
-        }
-        break;
-
-      case _CONNECT_R:
-        dbug(1,dprintf("_Connect_R=0x%x/0x%x",req,rc));
-        if ((global_req == ASSIGN) && (rc != ASSIGN_OK))
-        {
-          dbug(1,dprintf("No more IDs"));
-          sendf(appl,_CONNECT_R|CONFIRM,Id&0xffL,Number,"w",_OUT_OF_PLCI);
-          plci_remove(plci);  /* after codec init, internal codec commands pending */
-        }
-        break;
-
-      case PERM_COD_HOOK:                     /* finished with Hook_Ind */
-        return;
-
-      case PERM_COD_CALL:
-        dbug(1,dprintf("***Codec Connect_Pending A, Rc = 0x%x",rc));
-        plci->internal_command = PERM_COD_CONN_PEND;
-        return;
-
-      case PERM_COD_ASSIGN:
-        dbug(1,dprintf("***Codec Assign A, Rc = 0x%x",rc));
-        if(rc!=ASSIGN_OK) break;
-        sig_req(plci,CALL_REQ,0);
-        send_req(plci);
-        plci->internal_command = PERM_COD_CALL;
-        return;
-
-        /* Null Call Reference Request pending */
-      case C_NCR_FAC_REQ:
-        dbug(1,dprintf("NCR_FAC=0x%x/0x%x",req,rc));
-        if(global_req==ASSIGN)
-        {
-          if(rc==ASSIGN_OK)
-          {
-            return;
-          }
-          else
-          {
-            sendf(appl,_INFO_R|CONFIRM,Id&0xf,Number,"w",_WRONG_STATE);
-            appl->NullCREnable = false;
-            plci_remove(plci);
-          }
-        }
-        else if(req==NCR_FACILITY)
-        {
-          if(rc==OK)
-          {
-            sendf(appl,_INFO_R|CONFIRM,Id&0xf,Number,"w",0);
-          }
-          else
-          {
-            sendf(appl,_INFO_R|CONFIRM,Id&0xf,Number,"w",_WRONG_STATE);
-            appl->NullCREnable = false;
-          }
-          plci_remove(plci);
-        }
-        break;
-
-      case HOOK_ON_REQ:
-        if(plci->channels)
-        {
-          if(a->ncci_state[ncci]==CONNECTED)
-          {
-            a->ncci_state[ncci] = OUTG_DIS_PENDING;
-            cleanup_ncci_data (plci, ncci);
-            nl_req_ncci(plci,N_DISC,(byte)ncci);
-          }
-          break;
-        }
-        break;
-
-      case HOOK_OFF_REQ:
-        if (plci->State == INC_DIS_PENDING)
-          break;
-        sig_req(plci,CALL_REQ,0);
-        send_req(plci);
-        plci->State=OUTG_CON_PENDING;
-        break;
-
-
-      case MWI_ACTIVATE_REQ_PEND:
-      case MWI_DEACTIVATE_REQ_PEND:
-        if(global_req == ASSIGN && rc==ASSIGN_OK)
-        {
-          dbug(1,dprintf("MWI_REQ assigned"));
-          return;
-        }
-        else if(rc!=OK)
-        {                 
-          if(rc==WRONG_IE)
-          {
-            Info = 0x2007; /* Illegal message parameter coding */
-            dbug(1,dprintf("MWI_REQ invalid parameter"));
-          }
-          else
-          {
-            Info = 0x300B; /* not supported */                      
-            dbug(1,dprintf("MWI_REQ not supported"));
-          }
-          /* 0x3010: Request not allowed in this state */
-          PUT_WORD(&SSparms[4],0x300E); /* SS not supported */
-                    
-        }
-        if(plci->internal_command==MWI_ACTIVATE_REQ_PEND)
-        {
-          PUT_WORD(&SSparms[1],S_MWI_ACTIVATE);
-        }
-        else PUT_WORD(&SSparms[1],S_MWI_DEACTIVATE);
-
-        if(plci->cr_enquiry)
-        {
-          sendf(plci->appl,
-                _FACILITY_R|CONFIRM,
-                Id&0xf,
-                plci->number,
-                "wws",Info,(word)3,SSparms);
-          if(rc!=OK) plci_remove(plci);
-        }
-        else
-        {
-          sendf(plci->appl,
-                _FACILITY_R|CONFIRM,
-                Id,
-                plci->number,
-                "wws",Info,(word)3,SSparms);
-        }
-        break;
-
-      case CONF_BEGIN_REQ_PEND:
-      case CONF_ADD_REQ_PEND:
-      case CONF_SPLIT_REQ_PEND:
-      case CONF_DROP_REQ_PEND:
-      case CONF_ISOLATE_REQ_PEND:
-      case CONF_REATTACH_REQ_PEND:
-        dbug(1,dprintf("CONF_RC=0x%x/0x%x",req,rc));
-        if((plci->internal_command==CONF_ADD_REQ_PEND)&&(!plci->relatedPTYPLCI)) break;
-        rplci = plci;
-        rId = Id;
-        switch(plci->internal_command)
-        {
-          case CONF_BEGIN_REQ_PEND:
-            SSparms[1] = S_CONF_BEGIN;
-            break;
-          case CONF_ADD_REQ_PEND:
-            SSparms[1] = S_CONF_ADD;
-            rplci = plci->relatedPTYPLCI;
-            rId = ((word)rplci->Id<<8)|rplci->adapter->Id;
-            break;
-          case CONF_SPLIT_REQ_PEND:
-            SSparms[1] = S_CONF_SPLIT;
-            break;
-          case CONF_DROP_REQ_PEND:
-            SSparms[1] = S_CONF_DROP;
-            break;
-          case CONF_ISOLATE_REQ_PEND:
-            SSparms[1] = S_CONF_ISOLATE;
-            break;
-          case CONF_REATTACH_REQ_PEND:
-            SSparms[1] = S_CONF_REATTACH;
-            break;
-        }
-        
-        if(rc!=OK)
-        {
-          Info = 0x300E; /* not supported */
-          plci->relatedPTYPLCI = NULL;
-          plci->ptyState = 0;
-        }
-        sendf(rplci->appl,
-              _FACILITY_R|CONFIRM,
-              rId,
-              plci->number,
-              "wws",Info,(word)3,SSparms);
-        break;
-
-      case VSWITCH_REQ_PEND:
-        if(rc!=OK)
-        {
-          if(plci->relatedPTYPLCI)
-          {
-            plci->relatedPTYPLCI->vswitchstate=0;
-            plci->relatedPTYPLCI->vsprot=0;
-            plci->relatedPTYPLCI->vsprotdialect=0;    
-          }
-          plci->vswitchstate=0;
-          plci->vsprot=0;
-          plci->vsprotdialect=0;
-        }
-        else
-        {
-          if(plci->relatedPTYPLCI &&
-             plci->vswitchstate==1 &&
-             plci->relatedPTYPLCI->vswitchstate==3) /* join complete */
-            plci->vswitchstate=3;
-        }
-        break;
-
-  /* Call Deflection Request pending (SSCT) */
-      case CD_REQ_PEND:
-        SSparms[1] = S_CALL_DEFLECTION;
-        if(rc!=OK)
-        {
-          Info = 0x300E; /* not supported */
-          plci->appl->CDEnable = 0;
-        }  
-        sendf(plci->appl,_FACILITY_R|CONFIRM,Id,
-          plci->number,"wws",Info,(word)3,SSparms);
-        break;
-
-      case RTP_CONNECT_B3_REQ_COMMAND_2:
-        if (rc == OK)
-        {
-          ncci = get_ncci (plci, ch, 0);
-          Id = (Id & 0xffff) | (((dword) ncci) << 16);
-          plci->channels++;
-          a->ncci_state[ncci] = OUTG_CON_PENDING;
-        }
-
-      default:
-        if (plci->internal_command_queue[0])
-        {
-          (*(plci->internal_command_queue[0]))(Id, plci, rc);
-          if (plci->internal_command)
-            return;
-        }
-        break;
-      }
-      next_internal_command (Id, plci);
-    }
-  }
-  else /* appl==0 */
-  {
-    Id = ((word)plci->Id<<8)|plci->adapter->Id;
-    if(plci->tel) Id|=EXT_CONTROLLER;
-
-    switch(plci->internal_command)
-    {
-    case BLOCK_PLCI:
-      return;
-
-    case START_L1_SIG_ASSIGN_PEND:
-    case REM_L1_SIG_ASSIGN_PEND:
-      if(global_req == ASSIGN)
-      {
-        break;
-      }
-      else
-      {
-        dbug(1,dprintf("***L1 Req rem PLCI"));
-        plci->internal_command = 0;
-        sig_req(plci,REMOVE,0);
-        send_req(plci);
-      }
-      break;
-
-      /* Call Deflection Request pending, just no appl ptr assigned */
-    case CD_REQ_PEND:
-      SSparms[1] = S_CALL_DEFLECTION;
-      if(rc!=OK)
-      {
-        Info = 0x300E; /* not supported */
-      }
-      for(i=0; i<max_appl; i++)
-      {
-        if(application[i].CDEnable)
-        {
-          if(!application[i].Id) application[i].CDEnable = 0;
-          else
-          {
-            sendf(&application[i],_FACILITY_R|CONFIRM,Id,
-                  plci->number,"wws",Info,(word)3,SSparms);
-            if(Info) application[i].CDEnable = 0;
-          }
-        }
-      }
-      plci->internal_command = 0;
-      break;
-
-    case PERM_COD_HOOK:                   /* finished with Hook_Ind */
-      return;
-
-    case PERM_COD_CALL:
-      plci->internal_command = PERM_COD_CONN_PEND;
-      dbug(1,dprintf("***Codec Connect_Pending, Rc = 0x%x",rc));
-      return;
-
-    case PERM_COD_ASSIGN:
-      dbug(1,dprintf("***Codec Assign, Rc = 0x%x",rc));
-      plci->internal_command = 0;
-      if(rc!=ASSIGN_OK) break;
-      plci->internal_command = PERM_COD_CALL;
-      sig_req(plci,CALL_REQ,0);
-      send_req(plci);
-      return;
-
-    case LISTEN_SIG_ASSIGN_PEND:
-      if(rc == ASSIGN_OK)
-      {
-        plci->internal_command = 0;
-        dbug(1,dprintf("ListenCheck, new SIG_ID = 0x%x",plci->Sig.Id));
-        add_p(plci,ESC,"\x02\x18\x00");             /* support call waiting */
-        sig_req(plci,INDICATE_REQ,0);
-        send_req(plci);
-      }
-      else
-      {
-        dbug(1,dprintf("ListenCheck failed (assignRc=0x%x)",rc));
-        a->listen_active--;
-        plci_remove(plci);
-        plci->State = IDLE;
-      }
-      break;
-
-    case USELAW_REQ:
-      if(global_req == ASSIGN)
-      {
-        if (rc==ASSIGN_OK)
-      {
-        sig_req(plci,LAW_REQ,0);
-        send_req(plci);
-        dbug(1,dprintf("Auto-Law assigned"));
-        }
-        else
-        {
-          dbug(1,dprintf("Auto-Law assign failed"));
-          a->automatic_law = 3;
-          plci->internal_command = 0;
-          a->automatic_lawPLCI = NULL;
-        }
-        break;
-      }
-      else if(req == LAW_REQ && rc==OK)
-      {
-        dbug(1,dprintf("Auto-Law initiated"));
-        a->automatic_law = 2;
-        plci->internal_command = 0;
-      }
-      else
-      {
-        dbug(1,dprintf("Auto-Law not supported"));
-        a->automatic_law = 3;
-        plci->internal_command = 0;
-        sig_req(plci,REMOVE,0);
-        send_req(plci);
-        a->automatic_lawPLCI = NULL;
-      }
-      break;
-    }
-    plci_remove_check(plci);
-  }
+       dword Id;
+       dword rId;
+       word Number;
+       word Info = 0;
+       word i;
+       word ncci;
+       DIVA_CAPI_ADAPTER *a;
+       APPL *appl;
+       PLCI *rplci;
+       byte SSparms[] = "\x05\x00\x00\x02\x00\x00";
+       byte SSstruct[] = "\x09\x00\x00\x06\x00\x00\x00\x00\x00\x00";
+
+       if (!plci) {
+               dbug(0, dprintf("A: control_rc, no plci %02x:%02x:%02x:%02x:%02x", req, rc, ch, global_req, nl_rc));
+               return;
+       }
+       dbug(1, dprintf("req0_in/out=%d/%d", plci->req_in, plci->req_out));
+       if (plci->req_in != plci->req_out)
+       {
+               if (nl_rc || (global_req != ASSIGN) || (rc == ASSIGN_OK))
+               {
+                       dbug(1, dprintf("req_1return"));
+                       return;
+               }
+               /* cancel outstanding request on the PLCI after SIG ASSIGN failure */
+       }
+       plci->req_in = plci->req_in_start = plci->req_out = 0;
+       dbug(1, dprintf("control_rc"));
+
+       appl = plci->appl;
+       a = plci->adapter;
+       ncci = a->ch_ncci[ch];
+       if (appl)
+       {
+               Id = (((dword)(ncci ? ncci : ch)) << 16) | ((word)plci->Id << 8) | a->Id;
+               if (plci->tel && plci->SuppState != CALL_HELD) Id |= EXT_CONTROLLER;
+               Number = plci->number;
+               dbug(1, dprintf("Contr_RC-Id=%08lx,plci=%x,tel=%x, entity=0x%x, command=0x%x, int_command=0x%x", Id, plci->Id, plci->tel, plci->Sig.Id, plci->command, plci->internal_command));
+               dbug(1, dprintf("channels=0x%x", plci->channels));
+               if (plci_remove_check(plci))
+                       return;
+               if (req == REMOVE && rc == ASSIGN_OK)
+               {
+                       sig_req(plci, HANGUP, 0);
+                       sig_req(plci, REMOVE, 0);
+                       send_req(plci);
+               }
+               if (plci->command)
+               {
+                       switch (plci->command)
+                       {
+                       case C_HOLD_REQ:
+                               dbug(1, dprintf("HoldRC=0x%x", rc));
+                               SSparms[1] = (byte)S_HOLD;
+                               if (rc != OK)
+                               {
+                                       plci->SuppState = IDLE;
+                                       Info = 0x2001;
+                               }
+                               sendf(appl, _FACILITY_R | CONFIRM, Id, Number, "wws", Info, 3, SSparms);
+                               break;
+
+                       case C_RETRIEVE_REQ:
+                               dbug(1, dprintf("RetrieveRC=0x%x", rc));
+                               SSparms[1] = (byte)S_RETRIEVE;
+                               if (rc != OK)
+                               {
+                                       plci->SuppState = CALL_HELD;
+                                       Info = 0x2001;
+                               }
+                               sendf(appl, _FACILITY_R | CONFIRM, Id, Number, "wws", Info, 3, SSparms);
+                               break;
+
+                       case _INFO_R:
+                               dbug(1, dprintf("InfoRC=0x%x", rc));
+                               if (rc != OK) Info = _WRONG_STATE;
+                               sendf(appl, _INFO_R | CONFIRM, Id, Number, "w", Info);
+                               break;
+
+                       case _CONNECT_R:
+                               dbug(1, dprintf("Connect_R=0x%x/0x%x/0x%x/0x%x", req, rc, global_req, nl_rc));
+                               if (plci->State == INC_DIS_PENDING)
+                                       break;
+                               if (plci->Sig.Id != 0xff)
+                               {
+                                       if (((global_req == ASSIGN) && (rc != ASSIGN_OK))
+                                           || (!nl_rc && (req == CALL_REQ) && (rc != OK)))
+                                       {
+                                               dbug(1, dprintf("No more IDs/Call_Req failed"));
+                                               sendf(appl, _CONNECT_R | CONFIRM, Id & 0xffL, Number, "w", _OUT_OF_PLCI);
+                                               plci_remove(plci);
+                                               plci->State = IDLE;
+                                               break;
+                                       }
+                                       if (plci->State != LOCAL_CONNECT) plci->State = OUTG_CON_PENDING;
+                                       sendf(appl, _CONNECT_R | CONFIRM, Id, Number, "w", 0);
+                               }
+                               else /* D-ch activation */
+                               {
+                                       if (rc != ASSIGN_OK)
+                                       {
+                                               dbug(1, dprintf("No more IDs/X.25 Call_Req failed"));
+                                               sendf(appl, _CONNECT_R | CONFIRM, Id & 0xffL, Number, "w", _OUT_OF_PLCI);
+                                               plci_remove(plci);
+                                               plci->State = IDLE;
+                                               break;
+                                       }
+                                       sendf(appl, _CONNECT_R | CONFIRM, Id, Number, "w", 0);
+                                       sendf(plci->appl, _CONNECT_ACTIVE_I, Id, 0, "sss", "", "", "");
+                                       plci->State = INC_ACT_PENDING;
+                               }
+                               break;
+
+                       case _CONNECT_I | RESPONSE:
+                               if (plci->State != INC_DIS_PENDING)
+                                       plci->State = INC_CON_ACCEPT;
+                               break;
+
+                       case _DISCONNECT_R:
+                               if (plci->State == INC_DIS_PENDING)
+                                       break;
+                               if (plci->Sig.Id != 0xff)
+                               {
+                                       plci->State = OUTG_DIS_PENDING;
+                                       sendf(appl, _DISCONNECT_R | CONFIRM, Id, Number, "w", 0);
+                               }
+                               break;
+
+                       case SUSPEND_REQ:
+                               break;
+
+                       case RESUME_REQ:
+                               break;
+
+                       case _CONNECT_B3_R:
+                               if (rc != OK)
+                               {
+                                       sendf(appl, _CONNECT_B3_R | CONFIRM, Id, Number, "w", _WRONG_IDENTIFIER);
+                                       break;
+                               }
+                               ncci = get_ncci(plci, ch, 0);
+                               Id = (Id & 0xffff) | (((dword) ncci) << 16);
+                               plci->channels++;
+                               if (req == N_RESET)
+                               {
+                                       a->ncci_state[ncci] = INC_ACT_PENDING;
+                                       sendf(appl, _CONNECT_B3_R | CONFIRM, Id, Number, "w", 0);
+                                       sendf(appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+                               }
+                               else
+                               {
+                                       a->ncci_state[ncci] = OUTG_CON_PENDING;
+                                       sendf(appl, _CONNECT_B3_R | CONFIRM, Id, Number, "w", 0);
+                               }
+                               break;
+
+                       case _CONNECT_B3_I | RESPONSE:
+                               break;
+
+                       case _RESET_B3_R:
+/*        sendf(appl, _RESET_B3_R | CONFIRM, Id, Number, "w", 0);*/
+                               break;
+
+                       case _DISCONNECT_B3_R:
+                               sendf(appl, _DISCONNECT_B3_R | CONFIRM, Id, Number, "w", 0);
+                               break;
+
+                       case _MANUFACTURER_R:
+                               break;
+
+                       case PERM_LIST_REQ:
+                               if (rc != OK)
+                               {
+                                       Info = _WRONG_IDENTIFIER;
+                                       sendf(plci->appl, _CONNECT_R | CONFIRM, Id, Number, "w", Info);
+                                       plci_remove(plci);
+                               }
+                               else
+                                       sendf(plci->appl, _CONNECT_R | CONFIRM, Id, Number, "w", Info);
+                               break;
+
+                       default:
+                               break;
+                       }
+                       plci->command = 0;
+               }
+               else if (plci->internal_command)
+               {
+                       switch (plci->internal_command)
+                       {
+                       case BLOCK_PLCI:
+                               return;
+
+                       case GET_MWI_STATE:
+                               if (rc == OK) /* command supported, wait for indication */
+                               {
+                                       return;
+                               }
+                               plci_remove(plci);
+                               break;
+
+                               /* Get Supported Services */
+                       case GETSERV_REQ_PEND:
+                               if (rc == OK) /* command supported, wait for indication */
+                               {
+                                       break;
+                               }
+                               PUT_DWORD(&SSstruct[6], MASK_TERMINAL_PORTABILITY);
+                               sendf(appl, _FACILITY_R | CONFIRM, Id, Number, "wws", 0, 3, SSstruct);
+                               plci_remove(plci);
+                               break;
+
+                       case INTERR_DIVERSION_REQ_PEND:      /* Interrogate Parameters        */
+                       case INTERR_NUMBERS_REQ_PEND:
+                       case CF_START_PEND:                  /* Call Forwarding Start pending */
+                       case CF_STOP_PEND:                   /* Call Forwarding Stop pending  */
+                       case CCBS_REQUEST_REQ_PEND:
+                       case CCBS_DEACTIVATE_REQ_PEND:
+                       case CCBS_INTERROGATE_REQ_PEND:
+                               switch (plci->internal_command)
+                               {
+                               case INTERR_DIVERSION_REQ_PEND:
+                                       SSparms[1] = S_INTERROGATE_DIVERSION;
+                                       break;
+                               case INTERR_NUMBERS_REQ_PEND:
+                                       SSparms[1] = S_INTERROGATE_NUMBERS;
+                                       break;
+                               case CF_START_PEND:
+                                       SSparms[1] = S_CALL_FORWARDING_START;
+                                       break;
+                               case CF_STOP_PEND:
+                                       SSparms[1] = S_CALL_FORWARDING_STOP;
+                                       break;
+                               case CCBS_REQUEST_REQ_PEND:
+                                       SSparms[1] = S_CCBS_REQUEST;
+                                       break;
+                               case CCBS_DEACTIVATE_REQ_PEND:
+                                       SSparms[1] = S_CCBS_DEACTIVATE;
+                                       break;
+                               case CCBS_INTERROGATE_REQ_PEND:
+                                       SSparms[1] = S_CCBS_INTERROGATE;
+                                       break;
+                               }
+                               if (global_req == ASSIGN)
+                               {
+                                       dbug(1, dprintf("AssignDiversion_RC=0x%x/0x%x", req, rc));
+                                       return;
+                               }
+                               if (!plci->appl) break;
+                               if (rc == ISDN_GUARD_REJ)
+                               {
+                                       Info = _CAPI_GUARD_ERROR;
+                               }
+                               else if (rc != OK)
+                               {
+                                       Info = _SUPPLEMENTARY_SERVICE_NOT_SUPPORTED;
+                               }
+                               sendf(plci->appl, _FACILITY_R | CONFIRM, Id & 0x7,
+                                     plci->number, "wws", Info, (word)3, SSparms);
+                               if (Info) plci_remove(plci);
+                               break;
+
+                               /* 3pty conference pending */
+                       case PTY_REQ_PEND:
+                               if (!plci->relatedPTYPLCI) break;
+                               rplci = plci->relatedPTYPLCI;
+                               SSparms[1] = plci->ptyState;
+                               rId = ((word)rplci->Id << 8) | rplci->adapter->Id;
+                               if (rplci->tel) rId |= EXT_CONTROLLER;
+                               if (rc != OK)
+                               {
+                                       Info = 0x300E; /* not supported */
+                                       plci->relatedPTYPLCI = NULL;
+                                       plci->ptyState = 0;
+                               }
+                               sendf(rplci->appl,
+                                     _FACILITY_R | CONFIRM,
+                                     rId,
+                                     plci->number,
+                                     "wws", Info, (word)3, SSparms);
+                               break;
+
+                               /* Explicit Call Transfer pending */
+                       case ECT_REQ_PEND:
+                               dbug(1, dprintf("ECT_RC=0x%x/0x%x", req, rc));
+                               if (!plci->relatedPTYPLCI) break;
+                               rplci = plci->relatedPTYPLCI;
+                               SSparms[1] = S_ECT;
+                               rId = ((word)rplci->Id << 8) | rplci->adapter->Id;
+                               if (rplci->tel) rId |= EXT_CONTROLLER;
+                               if (rc != OK)
+                               {
+                                       Info = 0x300E; /* not supported */
+                                       plci->relatedPTYPLCI = NULL;
+                                       plci->ptyState = 0;
+                               }
+                               sendf(rplci->appl,
+                                     _FACILITY_R | CONFIRM,
+                                     rId,
+                                     plci->number,
+                                     "wws", Info, (word)3, SSparms);
+                               break;
+
+                       case _MANUFACTURER_R:
+                               dbug(1, dprintf("_Manufacturer_R=0x%x/0x%x", req, rc));
+                               if ((global_req == ASSIGN) && (rc != ASSIGN_OK))
+                               {
+                                       dbug(1, dprintf("No more IDs"));
+                                       sendf(appl, _MANUFACTURER_R | CONFIRM, Id, Number, "dww", _DI_MANU_ID, _MANUFACTURER_R, _OUT_OF_PLCI);
+                                       plci_remove(plci);  /* after codec init, internal codec commands pending */
+                               }
+                               break;
+
+                       case _CONNECT_R:
+                               dbug(1, dprintf("_Connect_R=0x%x/0x%x", req, rc));
+                               if ((global_req == ASSIGN) && (rc != ASSIGN_OK))
+                               {
+                                       dbug(1, dprintf("No more IDs"));
+                                       sendf(appl, _CONNECT_R | CONFIRM, Id & 0xffL, Number, "w", _OUT_OF_PLCI);
+                                       plci_remove(plci);  /* after codec init, internal codec commands pending */
+                               }
+                               break;
+
+                       case PERM_COD_HOOK:                     /* finished with Hook_Ind */
+                               return;
+
+                       case PERM_COD_CALL:
+                               dbug(1, dprintf("***Codec Connect_Pending A, Rc = 0x%x", rc));
+                               plci->internal_command = PERM_COD_CONN_PEND;
+                               return;
+
+                       case PERM_COD_ASSIGN:
+                               dbug(1, dprintf("***Codec Assign A, Rc = 0x%x", rc));
+                               if (rc != ASSIGN_OK) break;
+                               sig_req(plci, CALL_REQ, 0);
+                               send_req(plci);
+                               plci->internal_command = PERM_COD_CALL;
+                               return;
+
+                               /* Null Call Reference Request pending */
+                       case C_NCR_FAC_REQ:
+                               dbug(1, dprintf("NCR_FAC=0x%x/0x%x", req, rc));
+                               if (global_req == ASSIGN)
+                               {
+                                       if (rc == ASSIGN_OK)
+                                       {
+                                               return;
+                                       }
+                                       else
+                                       {
+                                               sendf(appl, _INFO_R | CONFIRM, Id & 0xf, Number, "w", _WRONG_STATE);
+                                               appl->NullCREnable = false;
+                                               plci_remove(plci);
+                                       }
+                               }
+                               else if (req == NCR_FACILITY)
+                               {
+                                       if (rc == OK)
+                                       {
+                                               sendf(appl, _INFO_R | CONFIRM, Id & 0xf, Number, "w", 0);
+                                       }
+                                       else
+                                       {
+                                               sendf(appl, _INFO_R | CONFIRM, Id & 0xf, Number, "w", _WRONG_STATE);
+                                               appl->NullCREnable = false;
+                                       }
+                                       plci_remove(plci);
+                               }
+                               break;
+
+                       case HOOK_ON_REQ:
+                               if (plci->channels)
+                               {
+                                       if (a->ncci_state[ncci] == CONNECTED)
+                                       {
+                                               a->ncci_state[ncci] = OUTG_DIS_PENDING;
+                                               cleanup_ncci_data(plci, ncci);
+                                               nl_req_ncci(plci, N_DISC, (byte)ncci);
+                                       }
+                                       break;
+                               }
+                               break;
+
+                       case HOOK_OFF_REQ:
+                               if (plci->State == INC_DIS_PENDING)
+                                       break;
+                               sig_req(plci, CALL_REQ, 0);
+                               send_req(plci);
+                               plci->State = OUTG_CON_PENDING;
+                               break;
+
+
+                       case MWI_ACTIVATE_REQ_PEND:
+                       case MWI_DEACTIVATE_REQ_PEND:
+                               if (global_req == ASSIGN && rc == ASSIGN_OK)
+                               {
+                                       dbug(1, dprintf("MWI_REQ assigned"));
+                                       return;
+                               }
+                               else if (rc != OK)
+                               {
+                                       if (rc == WRONG_IE)
+                                       {
+                                               Info = 0x2007; /* Illegal message parameter coding */
+                                               dbug(1, dprintf("MWI_REQ invalid parameter"));
+                                       }
+                                       else
+                                       {
+                                               Info = 0x300B; /* not supported */
+                                               dbug(1, dprintf("MWI_REQ not supported"));
+                                       }
+                                       /* 0x3010: Request not allowed in this state */
+                                       PUT_WORD(&SSparms[4], 0x300E); /* SS not supported */
+
+                               }
+                               if (plci->internal_command == MWI_ACTIVATE_REQ_PEND)
+                               {
+                                       PUT_WORD(&SSparms[1], S_MWI_ACTIVATE);
+                               }
+                               else PUT_WORD(&SSparms[1], S_MWI_DEACTIVATE);
+
+                               if (plci->cr_enquiry)
+                               {
+                                       sendf(plci->appl,
+                                             _FACILITY_R | CONFIRM,
+                                             Id & 0xf,
+                                             plci->number,
+                                             "wws", Info, (word)3, SSparms);
+                                       if (rc != OK) plci_remove(plci);
+                               }
+                               else
+                               {
+                                       sendf(plci->appl,
+                                             _FACILITY_R | CONFIRM,
+                                             Id,
+                                             plci->number,
+                                             "wws", Info, (word)3, SSparms);
+                               }
+                               break;
+
+                       case CONF_BEGIN_REQ_PEND:
+                       case CONF_ADD_REQ_PEND:
+                       case CONF_SPLIT_REQ_PEND:
+                       case CONF_DROP_REQ_PEND:
+                       case CONF_ISOLATE_REQ_PEND:
+                       case CONF_REATTACH_REQ_PEND:
+                               dbug(1, dprintf("CONF_RC=0x%x/0x%x", req, rc));
+                               if ((plci->internal_command == CONF_ADD_REQ_PEND) && (!plci->relatedPTYPLCI)) break;
+                               rplci = plci;
+                               rId = Id;
+                               switch (plci->internal_command)
+                               {
+                               case CONF_BEGIN_REQ_PEND:
+                                       SSparms[1] = S_CONF_BEGIN;
+                                       break;
+                               case CONF_ADD_REQ_PEND:
+                                       SSparms[1] = S_CONF_ADD;
+                                       rplci = plci->relatedPTYPLCI;
+                                       rId = ((word)rplci->Id << 8) | rplci->adapter->Id;
+                                       break;
+                               case CONF_SPLIT_REQ_PEND:
+                                       SSparms[1] = S_CONF_SPLIT;
+                                       break;
+                               case CONF_DROP_REQ_PEND:
+                                       SSparms[1] = S_CONF_DROP;
+                                       break;
+                               case CONF_ISOLATE_REQ_PEND:
+                                       SSparms[1] = S_CONF_ISOLATE;
+                                       break;
+                               case CONF_REATTACH_REQ_PEND:
+                                       SSparms[1] = S_CONF_REATTACH;
+                                       break;
+                               }
+
+                               if (rc != OK)
+                               {
+                                       Info = 0x300E; /* not supported */
+                                       plci->relatedPTYPLCI = NULL;
+                                       plci->ptyState = 0;
+                               }
+                               sendf(rplci->appl,
+                                     _FACILITY_R | CONFIRM,
+                                     rId,
+                                     plci->number,
+                                     "wws", Info, (word)3, SSparms);
+                               break;
+
+                       case VSWITCH_REQ_PEND:
+                               if (rc != OK)
+                               {
+                                       if (plci->relatedPTYPLCI)
+                                       {
+                                               plci->relatedPTYPLCI->vswitchstate = 0;
+                                               plci->relatedPTYPLCI->vsprot = 0;
+                                               plci->relatedPTYPLCI->vsprotdialect = 0;
+                                       }
+                                       plci->vswitchstate = 0;
+                                       plci->vsprot = 0;
+                                       plci->vsprotdialect = 0;
+                               }
+                               else
+                               {
+                                       if (plci->relatedPTYPLCI &&
+                                           plci->vswitchstate == 1 &&
+                                           plci->relatedPTYPLCI->vswitchstate == 3) /* join complete */
+                                               plci->vswitchstate = 3;
+                               }
+                               break;
+
+                               /* Call Deflection Request pending (SSCT) */
+                       case CD_REQ_PEND:
+                               SSparms[1] = S_CALL_DEFLECTION;
+                               if (rc != OK)
+                               {
+                                       Info = 0x300E; /* not supported */
+                                       plci->appl->CDEnable = 0;
+                               }
+                               sendf(plci->appl, _FACILITY_R | CONFIRM, Id,
+                                     plci->number, "wws", Info, (word)3, SSparms);
+                               break;
+
+                       case RTP_CONNECT_B3_REQ_COMMAND_2:
+                               if (rc == OK)
+                               {
+                                       ncci = get_ncci(plci, ch, 0);
+                                       Id = (Id & 0xffff) | (((dword) ncci) << 16);
+                                       plci->channels++;
+                                       a->ncci_state[ncci] = OUTG_CON_PENDING;
+                               }
+
+                       default:
+                               if (plci->internal_command_queue[0])
+                               {
+                                       (*(plci->internal_command_queue[0]))(Id, plci, rc);
+                                       if (plci->internal_command)
+                                               return;
+                               }
+                               break;
+                       }
+                       next_internal_command(Id, plci);
+               }
+       }
+       else /* appl==0 */
+       {
+               Id = ((word)plci->Id << 8) | plci->adapter->Id;
+               if (plci->tel) Id |= EXT_CONTROLLER;
+
+               switch (plci->internal_command)
+               {
+               case BLOCK_PLCI:
+                       return;
+
+               case START_L1_SIG_ASSIGN_PEND:
+               case REM_L1_SIG_ASSIGN_PEND:
+                       if (global_req == ASSIGN)
+                       {
+                               break;
+                       }
+                       else
+                       {
+                               dbug(1, dprintf("***L1 Req rem PLCI"));
+                               plci->internal_command = 0;
+                               sig_req(plci, REMOVE, 0);
+                               send_req(plci);
+                       }
+                       break;
+
+                       /* Call Deflection Request pending, just no appl ptr assigned */
+               case CD_REQ_PEND:
+                       SSparms[1] = S_CALL_DEFLECTION;
+                       if (rc != OK)
+                       {
+                               Info = 0x300E; /* not supported */
+                       }
+                       for (i = 0; i < max_appl; i++)
+                       {
+                               if (application[i].CDEnable)
+                               {
+                                       if (!application[i].Id) application[i].CDEnable = 0;
+                                       else
+                                       {
+                                               sendf(&application[i], _FACILITY_R | CONFIRM, Id,
+                                                     plci->number, "wws", Info, (word)3, SSparms);
+                                               if (Info) application[i].CDEnable = 0;
+                                       }
+                               }
+                       }
+                       plci->internal_command = 0;
+                       break;
+
+               case PERM_COD_HOOK:                   /* finished with Hook_Ind */
+                       return;
+
+               case PERM_COD_CALL:
+                       plci->internal_command = PERM_COD_CONN_PEND;
+                       dbug(1, dprintf("***Codec Connect_Pending, Rc = 0x%x", rc));
+                       return;
+
+               case PERM_COD_ASSIGN:
+                       dbug(1, dprintf("***Codec Assign, Rc = 0x%x", rc));
+                       plci->internal_command = 0;
+                       if (rc != ASSIGN_OK) break;
+                       plci->internal_command = PERM_COD_CALL;
+                       sig_req(plci, CALL_REQ, 0);
+                       send_req(plci);
+                       return;
+
+               case LISTEN_SIG_ASSIGN_PEND:
+                       if (rc == ASSIGN_OK)
+                       {
+                               plci->internal_command = 0;
+                               dbug(1, dprintf("ListenCheck, new SIG_ID = 0x%x", plci->Sig.Id));
+                               add_p(plci, ESC, "\x02\x18\x00");             /* support call waiting */
+                               sig_req(plci, INDICATE_REQ, 0);
+                               send_req(plci);
+                       }
+                       else
+                       {
+                               dbug(1, dprintf("ListenCheck failed (assignRc=0x%x)", rc));
+                               a->listen_active--;
+                               plci_remove(plci);
+                               plci->State = IDLE;
+                       }
+                       break;
+
+               case USELAW_REQ:
+                       if (global_req == ASSIGN)
+                       {
+                               if (rc == ASSIGN_OK)
+                               {
+                                       sig_req(plci, LAW_REQ, 0);
+                                       send_req(plci);
+                                       dbug(1, dprintf("Auto-Law assigned"));
+                               }
+                               else
+                               {
+                                       dbug(1, dprintf("Auto-Law assign failed"));
+                                       a->automatic_law = 3;
+                                       plci->internal_command = 0;
+                                       a->automatic_lawPLCI = NULL;
+                               }
+                               break;
+                       }
+                       else if (req == LAW_REQ && rc == OK)
+                       {
+                               dbug(1, dprintf("Auto-Law initiated"));
+                               a->automatic_law = 2;
+                               plci->internal_command = 0;
+                       }
+                       else
+                       {
+                               dbug(1, dprintf("Auto-Law not supported"));
+                               a->automatic_law = 3;
+                               plci->internal_command = 0;
+                               sig_req(plci, REMOVE, 0);
+                               send_req(plci);
+                               a->automatic_lawPLCI = NULL;
+                       }
+                       break;
+               }
+               plci_remove_check(plci);
+       }
 }
 
 static void data_rc(PLCI *plci, byte ch)
 {
-  dword Id;
-  DIVA_CAPI_ADAPTER   * a;
-  NCCI   *ncci_ptr;
-  DATA_B3_DESC   *data;
-  word ncci;
-
-  if (plci->appl)
-  {
-    TransmitBufferFree (plci->appl, plci->data_sent_ptr);
-    a = plci->adapter;
-    ncci = a->ch_ncci[ch];
-    if (ncci && (a->ncci_plci[ncci] == plci->Id))
-    {
-      ncci_ptr = &(a->ncci[ncci]);
-      dbug(1,dprintf("data_out=%d, data_pending=%d",ncci_ptr->data_out,ncci_ptr->data_pending));
-      if (ncci_ptr->data_pending)
-      {
-        data = &(ncci_ptr->DBuffer[ncci_ptr->data_out]);
-        if (!(data->Flags &4) && a->ncci_state[ncci])
-        {
-          Id = (((dword)ncci)<<16)|((word)plci->Id<<8)|a->Id;
-          if(plci->tel) Id|=EXT_CONTROLLER;
-          sendf(plci->appl,_DATA_B3_R|CONFIRM,Id,data->Number,
-                "ww",data->Handle,0);
-        }
-        (ncci_ptr->data_out)++;
-        if (ncci_ptr->data_out == MAX_DATA_B3)
-          ncci_ptr->data_out = 0;
-        (ncci_ptr->data_pending)--;
-      }
-    }
-  }
+       dword Id;
+       DIVA_CAPI_ADAPTER *a;
+       NCCI *ncci_ptr;
+       DATA_B3_DESC *data;
+       word ncci;
+
+       if (plci->appl)
+       {
+               TransmitBufferFree(plci->appl, plci->data_sent_ptr);
+               a = plci->adapter;
+               ncci = a->ch_ncci[ch];
+               if (ncci && (a->ncci_plci[ncci] == plci->Id))
+               {
+                       ncci_ptr = &(a->ncci[ncci]);
+                       dbug(1, dprintf("data_out=%d, data_pending=%d", ncci_ptr->data_out, ncci_ptr->data_pending));
+                       if (ncci_ptr->data_pending)
+                       {
+                               data = &(ncci_ptr->DBuffer[ncci_ptr->data_out]);
+                               if (!(data->Flags & 4) && a->ncci_state[ncci])
+                               {
+                                       Id = (((dword)ncci) << 16) | ((word)plci->Id << 8) | a->Id;
+                                       if (plci->tel) Id |= EXT_CONTROLLER;
+                                       sendf(plci->appl, _DATA_B3_R | CONFIRM, Id, data->Number,
+                                             "ww", data->Handle, 0);
+                               }
+                               (ncci_ptr->data_out)++;
+                               if (ncci_ptr->data_out == MAX_DATA_B3)
+                                       ncci_ptr->data_out = 0;
+                               (ncci_ptr->data_pending)--;
+                       }
+               }
+       }
 }
 
 static void data_ack(PLCI *plci, byte ch)
 {
-  dword Id;
-  DIVA_CAPI_ADAPTER   * a;
-  NCCI   *ncci_ptr;
-  word ncci;
-
-  a = plci->adapter;
-  ncci = a->ch_ncci[ch];
-  ncci_ptr = &(a->ncci[ncci]);
-  if (ncci_ptr->data_ack_pending)
-  {
-    if (a->ncci_state[ncci] && (a->ncci_plci[ncci] == plci->Id))
-    {
-      Id = (((dword)ncci)<<16)|((word)plci->Id<<8)|a->Id;
-      if(plci->tel) Id|=EXT_CONTROLLER;
-      sendf(plci->appl,_DATA_B3_R|CONFIRM,Id,ncci_ptr->DataAck[ncci_ptr->data_ack_out].Number,
-            "ww",ncci_ptr->DataAck[ncci_ptr->data_ack_out].Handle,0);
-    }
-    (ncci_ptr->data_ack_out)++;
-    if (ncci_ptr->data_ack_out == MAX_DATA_ACK)
-      ncci_ptr->data_ack_out = 0;
-    (ncci_ptr->data_ack_pending)--;
-  }
+       dword Id;
+       DIVA_CAPI_ADAPTER *a;
+       NCCI *ncci_ptr;
+       word ncci;
+
+       a = plci->adapter;
+       ncci = a->ch_ncci[ch];
+       ncci_ptr = &(a->ncci[ncci]);
+       if (ncci_ptr->data_ack_pending)
+       {
+               if (a->ncci_state[ncci] && (a->ncci_plci[ncci] == plci->Id))
+               {
+                       Id = (((dword)ncci) << 16) | ((word)plci->Id << 8) | a->Id;
+                       if (plci->tel) Id |= EXT_CONTROLLER;
+                       sendf(plci->appl, _DATA_B3_R | CONFIRM, Id, ncci_ptr->DataAck[ncci_ptr->data_ack_out].Number,
+                             "ww", ncci_ptr->DataAck[ncci_ptr->data_ack_out].Handle, 0);
+               }
+               (ncci_ptr->data_ack_out)++;
+               if (ncci_ptr->data_ack_out == MAX_DATA_ACK)
+                       ncci_ptr->data_ack_out = 0;
+               (ncci_ptr->data_ack_pending)--;
+       }
 }
 
 static void sig_ind(PLCI *plci)
 {
-  dword x_Id;
-  dword Id;
-  dword rId;
-  word i;
-  word cip;
-  dword cip_mask;
-  byte   *ie;
-  DIVA_CAPI_ADAPTER   * a;
-    API_PARSE saved_parms[MAX_MSG_PARMS+1];
+       dword x_Id;
+       dword Id;
+       dword rId;
+       word i;
+       word cip;
+       dword cip_mask;
+       byte *ie;
+       DIVA_CAPI_ADAPTER *a;
+       API_PARSE saved_parms[MAX_MSG_PARMS + 1];
 #define MAXPARMSIDS 31
-    byte   * parms[MAXPARMSIDS];
-    byte   * add_i[4];
-    byte   * multi_fac_parms[MAX_MULTI_IE];
-    byte   * multi_pi_parms [MAX_MULTI_IE];
-    byte   * multi_ssext_parms [MAX_MULTI_IE];
-    byte   * multi_CiPN_parms [MAX_MULTI_IE];
-
-    byte   * multi_vswitch_parms [MAX_MULTI_IE];
-
-  byte ai_len;
-    byte   *esc_chi = "";
-    byte   *esc_law = "";
-    byte   *pty_cai = "";
-    byte   *esc_cr  = "";
-    byte   *esc_profile = "";
-
-    byte facility[256];
-  PLCI   * tplci = NULL;
-  byte chi[] = "\x02\x18\x01";
-  byte voice_cai[]  = "\x06\x14\x00\x00\x00\x00\x08";
-    byte resume_cau[] = "\x05\x05\x00\x02\x00\x00";
-  /* ESC_MSGTYPE must be the last but one message, a new IE has to be */
-  /* included before the ESC_MSGTYPE and MAXPARMSIDS has to be incremented */
-  /* SMSG is situated at the end because its 0 (for compatibility reasons */
-  /* (see Info_Mask Bit 4, first IE. then the message type)           */
-    word parms_id[] =
-         {MAXPARMSIDS, CPN, 0xff, DSA, OSA, BC, LLC, HLC, ESC_CAUSE, DSP, DT, CHA,
-          UUI, CONG_RR, CONG_RNR, ESC_CHI, KEY, CHI, CAU, ESC_LAW,
-          RDN, RDX, CONN_NR, RIN, NI, CAI, ESC_CR,
-          CST, ESC_PROFILE, 0xff, ESC_MSGTYPE, SMSG};
-          /* 14 FTY repl by ESC_CHI */
-          /* 18 PI  repl by ESC_LAW */
-         /* removed OAD changed to 0xff for future use, OAD is multiIE now */
-     word multi_fac_id[] = {1, FTY};
-     word multi_pi_id[]  = {1, PI};
-     word multi_CiPN_id[]  = {1, OAD};
-     word multi_ssext_id[]  = {1, ESC_SSEXT};
-
-     word multi_vswitch_id[]  = {1, ESC_VSWITCH};
-
-  byte   * cau;
-  word ncci;
-    byte SS_Ind[] = "\x05\x02\x00\x02\x00\x00"; /* Hold_Ind struct*/
-    byte CF_Ind[] = "\x09\x02\x00\x06\x00\x00\x00\x00\x00\x00";
-    byte Interr_Err_Ind[] = "\x0a\x02\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
-    byte CONF_Ind[] = "\x09\x16\x00\x06\x00\x00\0x00\0x00\0x00\0x00";
-  byte force_mt_info = false;
-  byte dir;
-  dword d;
-  word w;
-
-  a = plci->adapter;
-  Id = ((word)plci->Id<<8)|a->Id;
-  PUT_WORD(&SS_Ind[4],0x0000);
-
-  if (plci->sig_remove_id)
-  {
-    plci->Sig.RNR = 2; /* discard */
-    dbug(1,dprintf("SIG discard while remove pending"));
-    return;
-  }
-  if(plci->tel && plci->SuppState!=CALL_HELD) Id|=EXT_CONTROLLER;
-  dbug(1,dprintf("SigInd-Id=%08lx,plci=%x,tel=%x,state=0x%x,channels=%d,Discflowcl=%d",
-    Id,plci->Id,plci->tel,plci->State,plci->channels,plci->hangup_flow_ctrl_timer));
-  if(plci->Sig.Ind==CALL_HOLD_ACK && plci->channels)
-  {
-    plci->Sig.RNR = 1;
-    return;
-  }
-  if(plci->Sig.Ind==HANGUP && plci->channels)
-  {
-    plci->Sig.RNR = 1;
-    plci->hangup_flow_ctrl_timer++;
-    /* recover the network layer after timeout */
-    if(plci->hangup_flow_ctrl_timer==100)
-    {
-      dbug(1,dprintf("Exceptional disc"));
-      plci->Sig.RNR = 0;
-      plci->hangup_flow_ctrl_timer = 0;
-      for (ncci = 1; ncci < MAX_NCCI+1; ncci++)
-      {
-        if (a->ncci_plci[ncci] == plci->Id)
-        {
-          cleanup_ncci_data (plci, ncci);
-          if(plci->channels)plci->channels--;
-          if (plci->appl)
-            sendf(plci->appl,_DISCONNECT_B3_I, (((dword) ncci) << 16) | Id,0,"ws",0,"");
-        }
-      }
-      if (plci->appl)
-        sendf(plci->appl, _DISCONNECT_I, Id, 0, "w", 0);
-      plci_remove(plci);
-      plci->State=IDLE;
-    }
-    return;
-  }
-
-  /* do first parse the info with no OAD in, because OAD will be converted */
-  /* first the multiple facility IE, then mult. progress ind.              */
-  /* then the parameters for the info_ind + conn_ind                       */
-  IndParse(plci,multi_fac_id,multi_fac_parms,MAX_MULTI_IE);
-  IndParse(plci,multi_pi_id,multi_pi_parms,MAX_MULTI_IE);
-  IndParse(plci,multi_ssext_id,multi_ssext_parms,MAX_MULTI_IE);
-
-  IndParse(plci,multi_vswitch_id,multi_vswitch_parms,MAX_MULTI_IE);
-
-  IndParse(plci,parms_id,parms,0);
-  IndParse(plci,multi_CiPN_id,multi_CiPN_parms,MAX_MULTI_IE);
-  esc_chi  = parms[14];
-  esc_law  = parms[18];
-  pty_cai  = parms[24];
-  esc_cr   = parms[25];
-  esc_profile = parms[27];
-  if(esc_cr[0] && plci)
-  {
-    if(plci->cr_enquiry && plci->appl)
-    {
-      plci->cr_enquiry = false;
-      /* d = MANU_ID            */
-      /* w = m_command          */
-      /* b = total length       */
-      /* b = indication type    */
-      /* b = length of all IEs  */
-      /* b = IE1                */
-      /* S = IE1 length + cont. */
-      /* b = IE2                */
-      /* S = IE2 length + cont. */
-      sendf(plci->appl,
-        _MANUFACTURER_I,
-        Id,
-        0,
-        "dwbbbbSbS",_DI_MANU_ID,plci->m_command,
-        2+1+1+esc_cr[0]+1+1+esc_law[0],plci->Sig.Ind,1+1+esc_cr[0]+1+1+esc_law[0],ESC,esc_cr,ESC,esc_law);
-    }
-  }
-  /* create the additional info structure                                  */
-  add_i[1] = parms[15]; /* KEY of additional info */
-  add_i[2] = parms[11]; /* UUI of additional info */
-  ai_len = AddInfo(add_i,multi_fac_parms, esc_chi, facility);
-
-  /* the ESC_LAW indicates if u-Law or a-Law is actually used by the card  */
-  /* indication returns by the card if requested by the function           */
-  /* AutomaticLaw() after driver init                                      */
-  if (a->automatic_law<4)
-  {
-    if(esc_law[0]){
-      if(esc_law[2]){
-        dbug(0,dprintf("u-Law selected"));
-        a->u_law = 1;
-      }
-      else {
-        dbug(0,dprintf("a-Law selected"));
-        a->u_law = 0;
-      }
-      a->automatic_law = 4;
-      if(plci==a->automatic_lawPLCI) {
-        plci->internal_command = 0;
-        sig_req(plci,REMOVE,0);
-        send_req(plci);
-        a->automatic_lawPLCI = NULL;
-      }
-    }
-    if (esc_profile[0])
-    {
-      dbug (1, dprintf ("[%06x] CardProfile: %lx %lx %lx %lx %lx",
-        UnMapController (a->Id), GET_DWORD (&esc_profile[6]),
-        GET_DWORD (&esc_profile[10]), GET_DWORD (&esc_profile[14]),
-        GET_DWORD (&esc_profile[18]), GET_DWORD (&esc_profile[46])));
-
-      a->profile.Global_Options &= 0x000000ffL;
-      a->profile.B1_Protocols &= 0x000003ffL;
-      a->profile.B2_Protocols &= 0x00001fdfL;
-      a->profile.B3_Protocols &= 0x000000b7L;
-
-      a->profile.Global_Options &= GET_DWORD (&esc_profile[6]) |
-        GL_BCHANNEL_OPERATION_SUPPORTED;
-      a->profile.B1_Protocols &= GET_DWORD (&esc_profile[10]);
-      a->profile.B2_Protocols &= GET_DWORD (&esc_profile[14]);
-      a->profile.B3_Protocols &= GET_DWORD (&esc_profile[18]);
-      a->manufacturer_features = GET_DWORD (&esc_profile[46]);
-      a->man_profile.private_options = 0;
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_ECHO_CANCELLER)
-      {
-        a->man_profile.private_options |= 1L << PRIVATE_ECHO_CANCELLER;
-        a->profile.Global_Options |= GL_ECHO_CANCELLER_SUPPORTED;
-      }
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_RTP)
-        a->man_profile.private_options |= 1L << PRIVATE_RTP;
-      a->man_profile.rtp_primary_payloads = GET_DWORD (&esc_profile[50]);
-      a->man_profile.rtp_additional_payloads = GET_DWORD (&esc_profile[54]);
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_T38)
-        a->man_profile.private_options |= 1L << PRIVATE_T38;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_SUB_SEP_PWD)
-        a->man_profile.private_options |= 1L << PRIVATE_FAX_SUB_SEP_PWD;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_V18)
-        a->man_profile.private_options |= 1L << PRIVATE_V18;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_DTMF_TONE)
-        a->man_profile.private_options |= 1L << PRIVATE_DTMF_TONE;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_PIAFS)
-        a->man_profile.private_options |= 1L << PRIVATE_PIAFS;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
-        a->man_profile.private_options |= 1L << PRIVATE_FAX_PAPER_FORMATS;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_VOWN)
-        a->man_profile.private_options |= 1L << PRIVATE_VOWN;
-
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_NONSTANDARD)
-        a->man_profile.private_options |= 1L << PRIVATE_FAX_NONSTANDARD;
-
-    }
-    else
-    {
-      a->profile.Global_Options &= 0x0000007fL;
-      a->profile.B1_Protocols &= 0x000003dfL;
-      a->profile.B2_Protocols &= 0x00001adfL;
-      a->profile.B3_Protocols &= 0x000000b7L;
-      a->manufacturer_features &= MANUFACTURER_FEATURE_HARDDTMF;
-    }
-    if (a->manufacturer_features & (MANUFACTURER_FEATURE_HARDDTMF |
-      MANUFACTURER_FEATURE_SOFTDTMF_SEND | MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE))
-    {
-      a->profile.Global_Options |= GL_DTMF_SUPPORTED;
-    }
-    a->manufacturer_features &= ~MANUFACTURER_FEATURE_OOB_CHANNEL;
-    dbug (1, dprintf ("[%06x] Profile: %lx %lx %lx %lx %lx",
-      UnMapController (a->Id), a->profile.Global_Options,
-      a->profile.B1_Protocols, a->profile.B2_Protocols,
-      a->profile.B3_Protocols, a->manufacturer_features));
-  }
-  /* codec plci for the handset/hook state support is just an internal id  */
-  if(plci!=a->AdvCodecPLCI)
-  {
-    force_mt_info =  SendMultiIE(plci,Id,multi_fac_parms, FTY, 0x20, 0);
-    force_mt_info |= SendMultiIE(plci,Id,multi_pi_parms, PI, 0x210, 0);
-    SendSSExtInd(NULL,plci,Id,multi_ssext_parms);
-    SendInfo(plci,Id, parms, force_mt_info);
-
-    VSwitchReqInd(plci,Id,multi_vswitch_parms);
-
-  }
-
-  /* switch the codec to the b-channel                                     */
-  if(esc_chi[0] && plci && !plci->SuppState){
-    plci->b_channel = esc_chi[esc_chi[0]]&0x1f;
-    mixer_set_bchannel_id_esc (plci, plci->b_channel);
-    dbug(1,dprintf("storeChannel=0x%x",plci->b_channel));
-    if(plci->tel==ADV_VOICE && plci->appl) {
-      SetVoiceChannel(a->AdvCodecPLCI, esc_chi, a);
-    }
-  }
-
-  if(plci->appl) plci->appl->Number++;
-
-  switch(plci->Sig.Ind) {
-  /* Response to Get_Supported_Services request */
-  case S_SUPPORTED:
-    dbug(1,dprintf("S_Supported"));
-    if(!plci->appl) break;
-    if(pty_cai[0]==4)
-    {
-      PUT_DWORD(&CF_Ind[6],GET_DWORD(&pty_cai[1]) );
-    }
-    else
-    {
-      PUT_DWORD(&CF_Ind[6],MASK_TERMINAL_PORTABILITY | MASK_HOLD_RETRIEVE);
-    }
-    PUT_WORD (&CF_Ind[1], 0);
-    PUT_WORD (&CF_Ind[4], 0);
-    sendf(plci->appl,_FACILITY_R|CONFIRM,Id&0x7,plci->number, "wws",0,3,CF_Ind);
-    plci_remove(plci);
-    break;
-                    
-  /* Supplementary Service rejected */
-  case S_SERVICE_REJ:
-    dbug(1,dprintf("S_Reject=0x%x",pty_cai[5]));
-    if(!pty_cai[0]) break;
-    switch (pty_cai[5])
-    {
-    case ECT_EXECUTE:
-    case THREE_PTY_END:
-    case THREE_PTY_BEGIN:
-      if(!plci->relatedPTYPLCI) break;
-      tplci = plci->relatedPTYPLCI;
-      rId = ( (word)tplci->Id<<8)|tplci->adapter->Id;
-      if(tplci->tel) rId|=EXT_CONTROLLER;
-      if(pty_cai[5]==ECT_EXECUTE)
-      {
-        PUT_WORD(&SS_Ind[1],S_ECT);
-
-        plci->vswitchstate=0;
-        plci->relatedPTYPLCI->vswitchstate=0;
-
-      }
-      else
-      {
-        PUT_WORD(&SS_Ind[1],pty_cai[5]+3);
-      }
-      if(pty_cai[2]!=0xff)
-      {
-        PUT_WORD(&SS_Ind[4],0x3600|(word)pty_cai[2]);
-      }
-      else
-      {
-        PUT_WORD(&SS_Ind[4],0x300E);
-      }
-      plci->relatedPTYPLCI = NULL;
-      plci->ptyState = 0;
-      sendf(tplci->appl,_FACILITY_I,rId,0,"ws",3, SS_Ind);
-      break;
-
-    case CALL_DEFLECTION:
-      if(pty_cai[2]!=0xff)
-      {
-        PUT_WORD(&SS_Ind[4],0x3600|(word)pty_cai[2]);
-      }
-      else
-      {
-        PUT_WORD(&SS_Ind[4],0x300E);
-      }
-      PUT_WORD(&SS_Ind[1],pty_cai[5]);
-      for(i=0; i<max_appl; i++)
-      {
-        if(application[i].CDEnable)
-        {
-          if(application[i].Id) sendf(&application[i],_FACILITY_I,Id,0,"ws",3, SS_Ind);
-          application[i].CDEnable = false;
-        }
-      }
-      break;
-
-    case DEACTIVATION_DIVERSION:
-    case ACTIVATION_DIVERSION:
-    case DIVERSION_INTERROGATE_CFU:
-    case DIVERSION_INTERROGATE_CFB:
-    case DIVERSION_INTERROGATE_CFNR:
-    case DIVERSION_INTERROGATE_NUM:
-    case CCBS_REQUEST:
-    case CCBS_DEACTIVATE:
-    case CCBS_INTERROGATE:
-      if(!plci->appl) break;
-      if(pty_cai[2]!=0xff)
-      {
-        PUT_WORD(&Interr_Err_Ind[4],0x3600|(word)pty_cai[2]);
-      }
-      else
-      {
-        PUT_WORD(&Interr_Err_Ind[4],0x300E);
-      }
-      switch (pty_cai[5])
-      {
-        case DEACTIVATION_DIVERSION:
-          dbug(1,dprintf("Deact_Div"));
-          Interr_Err_Ind[0]=0x9;
-          Interr_Err_Ind[3]=0x6;
-          PUT_WORD(&Interr_Err_Ind[1],S_CALL_FORWARDING_STOP);
-          break;
-        case ACTIVATION_DIVERSION:
-          dbug(1,dprintf("Act_Div"));
-          Interr_Err_Ind[0]=0x9;
-          Interr_Err_Ind[3]=0x6;
-          PUT_WORD(&Interr_Err_Ind[1],S_CALL_FORWARDING_START);
-          break;
-        case DIVERSION_INTERROGATE_CFU:
-        case DIVERSION_INTERROGATE_CFB:
-        case DIVERSION_INTERROGATE_CFNR:
-          dbug(1,dprintf("Interr_Div"));
-          Interr_Err_Ind[0]=0xa;
-          Interr_Err_Ind[3]=0x7;
-          PUT_WORD(&Interr_Err_Ind[1],S_INTERROGATE_DIVERSION);
-          break;
-        case DIVERSION_INTERROGATE_NUM:
-          dbug(1,dprintf("Interr_Num"));
-          Interr_Err_Ind[0]=0xa;
-          Interr_Err_Ind[3]=0x7;
-          PUT_WORD(&Interr_Err_Ind[1],S_INTERROGATE_NUMBERS);
-          break;
-        case CCBS_REQUEST:
-          dbug(1,dprintf("CCBS Request"));
-          Interr_Err_Ind[0]=0xd;
-          Interr_Err_Ind[3]=0xa;
-          PUT_WORD(&Interr_Err_Ind[1],S_CCBS_REQUEST);
-          break;
-        case CCBS_DEACTIVATE:
-          dbug(1,dprintf("CCBS Deactivate"));
-          Interr_Err_Ind[0]=0x9;
-          Interr_Err_Ind[3]=0x6;
-          PUT_WORD(&Interr_Err_Ind[1],S_CCBS_DEACTIVATE);
-          break;
-        case CCBS_INTERROGATE:
-          dbug(1,dprintf("CCBS Interrogate"));
-          Interr_Err_Ind[0]=0xb;
-          Interr_Err_Ind[3]=0x8;
-          PUT_WORD(&Interr_Err_Ind[1],S_CCBS_INTERROGATE);
-          break;
-      }
-      PUT_DWORD(&Interr_Err_Ind[6],plci->appl->S_Handle);
-      sendf(plci->appl,_FACILITY_I,Id&0x7,0,"ws",3, Interr_Err_Ind);
-      plci_remove(plci);
-      break;
-    case ACTIVATION_MWI:      
-    case DEACTIVATION_MWI:
-      if(pty_cai[5]==ACTIVATION_MWI)
-      {
-        PUT_WORD(&SS_Ind[1],S_MWI_ACTIVATE);
-      }
-      else PUT_WORD(&SS_Ind[1],S_MWI_DEACTIVATE);
-      
-      if(pty_cai[2]!=0xff)
-      {
-        PUT_WORD(&SS_Ind[4],0x3600|(word)pty_cai[2]);
-      }
-      else
-      {
-        PUT_WORD(&SS_Ind[4],0x300E);
-      }
-
-      if(plci->cr_enquiry)
-      {
-        sendf(plci->appl,_FACILITY_I,Id&0xf,0,"ws",3, SS_Ind);
-        plci_remove(plci);
-      }
-      else
-      {
-        sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, SS_Ind);
-      }
-      break;
-    case CONF_ADD: /* ERROR */
-    case CONF_BEGIN:
-    case CONF_DROP:
-    case CONF_ISOLATE:
-    case CONF_REATTACH:
-      CONF_Ind[0]=9;
-      CONF_Ind[3]=6;   
-      switch(pty_cai[5])
-      {
-      case CONF_BEGIN:
-          PUT_WORD(&CONF_Ind[1],S_CONF_BEGIN);
-          plci->ptyState = 0;
-          break;
-      case CONF_DROP:
-          CONF_Ind[0]=5;
-          CONF_Ind[3]=2;
-          PUT_WORD(&CONF_Ind[1],S_CONF_DROP);
-          plci->ptyState = CONNECTED;
-          break;
-      case CONF_ISOLATE:
-          CONF_Ind[0]=5;
-          CONF_Ind[3]=2;
-          PUT_WORD(&CONF_Ind[1],S_CONF_ISOLATE);
-          plci->ptyState = CONNECTED;
-          break;
-      case CONF_REATTACH:
-          CONF_Ind[0]=5;
-          CONF_Ind[3]=2;
-          PUT_WORD(&CONF_Ind[1],S_CONF_REATTACH);
-          plci->ptyState = CONNECTED;
-          break;
-      case CONF_ADD:
-          PUT_WORD(&CONF_Ind[1],S_CONF_ADD);
-          plci->relatedPTYPLCI = NULL;
-          tplci=plci->relatedPTYPLCI;
-          if(tplci) tplci->ptyState = CONNECTED;
-          plci->ptyState = CONNECTED;
-          break;
-      }
-          
-      if(pty_cai[2]!=0xff)
-      {
-        PUT_WORD(&CONF_Ind[4],0x3600|(word)pty_cai[2]);
-      }
-      else
-      {
-        PUT_WORD(&CONF_Ind[4],0x3303); /* Time-out: network did not respond
-                                            within the required time */
-      }
-
-      PUT_DWORD(&CONF_Ind[6],0x0);
-      sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, CONF_Ind);
-      break;
-    }
-    break;
-
-  /* Supplementary Service indicates success */
-  case S_SERVICE:
-    dbug(1,dprintf("Service_Ind"));
-    PUT_WORD (&CF_Ind[4], 0);
-    switch (pty_cai[5])
-    {
-    case THREE_PTY_END:
-    case THREE_PTY_BEGIN:
-    case ECT_EXECUTE:
-      if(!plci->relatedPTYPLCI) break;
-      tplci = plci->relatedPTYPLCI;
-      rId = ( (word)tplci->Id<<8)|tplci->adapter->Id;
-      if(tplci->tel) rId|=EXT_CONTROLLER;
-      if(pty_cai[5]==ECT_EXECUTE)
-      {
-        PUT_WORD(&SS_Ind[1],S_ECT);
-
-        if(plci->vswitchstate!=3)
-        {
-
-        plci->ptyState = IDLE;
-        plci->relatedPTYPLCI = NULL;
-        plci->ptyState = 0;
-
-        }
-
-        dbug(1,dprintf("ECT OK"));
-        sendf(tplci->appl,_FACILITY_I,rId,0,"ws",3, SS_Ind);
-
-
-
-      }
-      else
-      {
-        switch (plci->ptyState)
-        {
-        case S_3PTY_BEGIN:
-          plci->ptyState = CONNECTED;
-          dbug(1,dprintf("3PTY ON"));
-          break;
-
-        case S_3PTY_END:
-          plci->ptyState = IDLE;
-          plci->relatedPTYPLCI = NULL;
-          plci->ptyState = 0;
-          dbug(1,dprintf("3PTY OFF"));
-          break;
-        }
-        PUT_WORD(&SS_Ind[1],pty_cai[5]+3);
-        sendf(tplci->appl,_FACILITY_I,rId,0,"ws",3, SS_Ind);
-      }
-      break;
-
-    case CALL_DEFLECTION:
-      PUT_WORD(&SS_Ind[1],pty_cai[5]);
-      for(i=0; i<max_appl; i++)
-      {
-        if(application[i].CDEnable)
-        {
-          if(application[i].Id) sendf(&application[i],_FACILITY_I,Id,0,"ws",3, SS_Ind);
-          application[i].CDEnable = false;
-        }
-      }
-      break;
-
-    case DEACTIVATION_DIVERSION:
-    case ACTIVATION_DIVERSION:
-      if(!plci->appl) break;
-      PUT_WORD(&CF_Ind[1],pty_cai[5]+2);
-      PUT_DWORD(&CF_Ind[6],plci->appl->S_Handle);
-      sendf(plci->appl,_FACILITY_I,Id&0x7,0,"ws",3, CF_Ind);
-      plci_remove(plci);
-      break;
-
-    case DIVERSION_INTERROGATE_CFU:
-    case DIVERSION_INTERROGATE_CFB:
-    case DIVERSION_INTERROGATE_CFNR:
-    case DIVERSION_INTERROGATE_NUM:
-    case CCBS_REQUEST:
-    case CCBS_DEACTIVATE:
-    case CCBS_INTERROGATE:
-      if(!plci->appl) break;
-      switch (pty_cai[5])
-      {
-        case DIVERSION_INTERROGATE_CFU:
-        case DIVERSION_INTERROGATE_CFB:
-        case DIVERSION_INTERROGATE_CFNR:
-          dbug(1,dprintf("Interr_Div"));
-          PUT_WORD(&pty_cai[1],S_INTERROGATE_DIVERSION);
-          pty_cai[3]=pty_cai[0]-3; /* Supplementary Service-specific parameter len */
-          break;
-        case DIVERSION_INTERROGATE_NUM:
-          dbug(1,dprintf("Interr_Num"));
-          PUT_WORD(&pty_cai[1],S_INTERROGATE_NUMBERS);
-          pty_cai[3]=pty_cai[0]-3; /* Supplementary Service-specific parameter len */
-          break;
-        case CCBS_REQUEST:
-          dbug(1,dprintf("CCBS Request"));
-          PUT_WORD(&pty_cai[1],S_CCBS_REQUEST);
-          pty_cai[3]=pty_cai[0]-3; /* Supplementary Service-specific parameter len */
-          break;
-        case CCBS_DEACTIVATE:
-          dbug(1,dprintf("CCBS Deactivate"));
-          PUT_WORD(&pty_cai[1],S_CCBS_DEACTIVATE);
-          pty_cai[3]=pty_cai[0]-3; /* Supplementary Service-specific parameter len */
-          break;
-        case CCBS_INTERROGATE:
-          dbug(1,dprintf("CCBS Interrogate"));
-          PUT_WORD(&pty_cai[1],S_CCBS_INTERROGATE);
-          pty_cai[3]=pty_cai[0]-3; /* Supplementary Service-specific parameter len */
-          break;
-      }
-      PUT_WORD(&pty_cai[4],0); /* Supplementary Service Reason */
-      PUT_DWORD(&pty_cai[6],plci->appl->S_Handle);
-      sendf(plci->appl,_FACILITY_I,Id&0x7,0,"wS",3, pty_cai);
-      plci_remove(plci);
-      break;
-
-    case ACTIVATION_MWI:
-    case DEACTIVATION_MWI:
-      if(pty_cai[5]==ACTIVATION_MWI)
-      {
-        PUT_WORD(&SS_Ind[1],S_MWI_ACTIVATE);
-      }
-      else PUT_WORD(&SS_Ind[1],S_MWI_DEACTIVATE);
-      if(plci->cr_enquiry)
-      {
-        sendf(plci->appl,_FACILITY_I,Id&0xf,0,"ws",3, SS_Ind);
-        plci_remove(plci);
-      }
-      else
-      {
-        sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, SS_Ind);
-      }
-      break;
-    case MWI_INDICATION:
-      if(pty_cai[0]>=0x12)
-      {
-        PUT_WORD(&pty_cai[3],S_MWI_INDICATE);
-        pty_cai[2]=pty_cai[0]-2; /* len Parameter */
-        pty_cai[5]=pty_cai[0]-5; /* Supplementary Service-specific parameter len */
-        if(plci->appl && (a->Notification_Mask[plci->appl->Id-1]&SMASK_MWI))
-        {
-          if(plci->internal_command==GET_MWI_STATE) /* result on Message Waiting Listen */
-          {
-            sendf(plci->appl,_FACILITY_I,Id&0xf,0,"wS",3, &pty_cai[2]);
-            plci_remove(plci);
-            return;
-          }
-          else  sendf(plci->appl,_FACILITY_I,Id,0,"wS",3, &pty_cai[2]);
-          pty_cai[0]=0;
-        }
-        else
-        {
-          for(i=0; i<max_appl; i++)
-          {                     
-            if(a->Notification_Mask[i]&SMASK_MWI)
-            {
-              sendf(&application[i],_FACILITY_I,Id&0x7,0,"wS",3, &pty_cai[2]);
-              pty_cai[0]=0;
-            }
-          }
-        }
-
-        if(!pty_cai[0])
-        { /* acknowledge */
-          facility[2]= 0; /* returncode */
-        }
-        else facility[2]= 0xff;
-      }
-      else
-      {
-        /* reject */
-        facility[2]= 0xff; /* returncode */
-      }
-      facility[0]= 2;
-      facility[1]= MWI_RESPONSE; /* Function */
-      add_p(plci,CAI,facility);
-      add_p(plci,ESC,multi_ssext_parms[0]); /* remembered parameter -> only one possible */
-      sig_req(plci,S_SERVICE,0);
-      send_req(plci);
-      plci->command = 0;
-      next_internal_command (Id, plci);
-      break;
-    case CONF_ADD: /* OK */
-    case CONF_BEGIN:
-    case CONF_DROP:
-    case CONF_ISOLATE:
-    case CONF_REATTACH:
-    case CONF_PARTYDISC:
-      CONF_Ind[0]=9;
-      CONF_Ind[3]=6;
-      switch(pty_cai[5])
-      {
-      case CONF_BEGIN:
-          PUT_WORD(&CONF_Ind[1],S_CONF_BEGIN);
-          if(pty_cai[0]==6)
-          {
-              d=pty_cai[6];
-              PUT_DWORD(&CONF_Ind[6],d); /* PartyID */
-          }
-          else
-          {
-              PUT_DWORD(&CONF_Ind[6],0x0);
-          }
-          break;
-      case CONF_ISOLATE:
-          PUT_WORD(&CONF_Ind[1],S_CONF_ISOLATE);
-          CONF_Ind[0]=5;
-          CONF_Ind[3]=2;
-          break;
-      case CONF_REATTACH:
-          PUT_WORD(&CONF_Ind[1],S_CONF_REATTACH);
-          CONF_Ind[0]=5;
-          CONF_Ind[3]=2;
-          break;
-      case CONF_DROP:
-          PUT_WORD(&CONF_Ind[1],S_CONF_DROP);
-          CONF_Ind[0]=5;
-          CONF_Ind[3]=2;
-          break;
-      case CONF_ADD:
-          PUT_WORD(&CONF_Ind[1],S_CONF_ADD);
-          d=pty_cai[6];
-          PUT_DWORD(&CONF_Ind[6],d); /* PartyID */
-          tplci=plci->relatedPTYPLCI;
-          if(tplci) tplci->ptyState = CONNECTED;
-          break;
-      case CONF_PARTYDISC:
-          CONF_Ind[0]=7;
-          CONF_Ind[3]=4;          
-          PUT_WORD(&CONF_Ind[1],S_CONF_PARTYDISC);
-          d=pty_cai[6];
-          PUT_DWORD(&CONF_Ind[4],d); /* PartyID */
-          break;
-      }
-      plci->ptyState = CONNECTED;
-      sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, CONF_Ind);
-      break;
-    case CCBS_INFO_RETAIN:
-    case CCBS_ERASECALLLINKAGEID:
-    case CCBS_STOP_ALERTING:
-      CONF_Ind[0]=5;
-      CONF_Ind[3]=2;
-      switch(pty_cai[5])
-      {
-      case CCBS_INFO_RETAIN:
-        PUT_WORD(&CONF_Ind[1],S_CCBS_INFO_RETAIN);
-        break;
-      case CCBS_STOP_ALERTING:
-        PUT_WORD(&CONF_Ind[1],S_CCBS_STOP_ALERTING);
-    break;
-      case CCBS_ERASECALLLINKAGEID:
-        PUT_WORD(&CONF_Ind[1],S_CCBS_ERASECALLLINKAGEID);
-        CONF_Ind[0]=7;
-        CONF_Ind[3]=4;
-        CONF_Ind[6]=0;
-        CONF_Ind[7]=0;
-        break;
-      }      
-      w=pty_cai[6];
-      PUT_WORD(&CONF_Ind[4],w); /* PartyID */
-
-      if(plci->appl && (a->Notification_Mask[plci->appl->Id-1]&SMASK_CCBS))
-      {
-        sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, CONF_Ind);
-      }
-      else
-      {
-        for(i=0; i<max_appl; i++)
-            if(a->Notification_Mask[i]&SMASK_CCBS)
-                sendf(&application[i],_FACILITY_I,Id&0x7,0,"ws",3, CONF_Ind);
-      }
-      break;
-    }
-    break;
-  case CALL_HOLD_REJ:
-    cau = parms[7];
-    if(cau)
-    {
-      i = _L3_CAUSE | cau[2];
-      if(cau[2]==0) i = 0x3603;
-    }
-    else
-    {
-      i = 0x3603;
-    }
-    PUT_WORD(&SS_Ind[1],S_HOLD);
-    PUT_WORD(&SS_Ind[4],i);
-    if(plci->SuppState == HOLD_REQUEST)
-    {
-      plci->SuppState = IDLE;
-      sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, SS_Ind);
-    }
-    break;
-
-  case CALL_HOLD_ACK:
-    if(plci->SuppState == HOLD_REQUEST)
-    {
-      plci->SuppState = CALL_HELD;
-      CodecIdCheck(a, plci);
-      start_internal_command (Id, plci, hold_save_command);
-    }
-    break;
-
-  case CALL_RETRIEVE_REJ:
-    cau = parms[7];
-    if(cau)
-    {
-      i = _L3_CAUSE | cau[2];
-      if(cau[2]==0) i = 0x3603;
-    }
-    else
-    {
-      i = 0x3603;
-    }
-    PUT_WORD(&SS_Ind[1],S_RETRIEVE);
-    PUT_WORD(&SS_Ind[4],i);
-    if(plci->SuppState == RETRIEVE_REQUEST)
-    {
-      plci->SuppState = CALL_HELD;
-      CodecIdCheck(a, plci);
-      sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, SS_Ind);
-    }
-    break;
-
-  case CALL_RETRIEVE_ACK:
-    PUT_WORD(&SS_Ind[1],S_RETRIEVE);
-    if(plci->SuppState == RETRIEVE_REQUEST)
-    {
-      plci->SuppState = IDLE;
-      plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;
-      plci->b_channel = esc_chi[esc_chi[0]]&0x1f;
-      if(plci->tel)
-      {
-        mixer_set_bchannel_id_esc (plci, plci->b_channel);
-        dbug(1,dprintf("RetrChannel=0x%x",plci->b_channel));
-        SetVoiceChannel(a->AdvCodecPLCI, esc_chi, a);
-        if(plci->B2_prot==B2_TRANSPARENT && plci->B3_prot==B3_TRANSPARENT)
-        {
-          dbug(1,dprintf("Get B-ch"));
-          start_internal_command (Id, plci, retrieve_restore_command);
-        }
-        else
-          sendf(plci->appl,_FACILITY_I,Id,0,"ws",3, SS_Ind);
-      }
-      else
-        start_internal_command (Id, plci, retrieve_restore_command);
-    }
-    break;
-
-  case INDICATE_IND:
-    if(plci->State != LISTENING) {
-      sig_req(plci,HANGUP,0);
-      send_req(plci);
-      break;
-    }
-    cip = find_cip(a,parms[4],parms[6]);
-    cip_mask = 1L<<cip;
-    dbug(1,dprintf("cip=%d,cip_mask=%lx",cip,cip_mask));
-    clear_c_ind_mask (plci);
-    if (!remove_started && !a->adapter_disabled)
-    {
-      set_c_ind_mask_bit (plci, MAX_APPL);
-      group_optimization(a, plci);
-      for(i=0; i<max_appl; i++) {
-        if(application[i].Id
-        && (a->CIP_Mask[i]&1 || a->CIP_Mask[i]&cip_mask)
-        && CPN_filter_ok(parms[0],a,i)
-        && test_group_ind_mask_bit (plci, i) ) {
-          dbug(1,dprintf("storedcip_mask[%d]=0x%lx",i,a->CIP_Mask[i] ));
-          set_c_ind_mask_bit (plci, i);
-          dump_c_ind_mask (plci);
-          plci->State = INC_CON_PENDING;
-          plci->call_dir = (plci->call_dir & ~(CALL_DIR_OUT | CALL_DIR_ORIGINATE)) |
-            CALL_DIR_IN | CALL_DIR_ANSWER;
-          if(esc_chi[0]) {
-            plci->b_channel = esc_chi[esc_chi[0]]&0x1f;
-            mixer_set_bchannel_id_esc (plci, plci->b_channel);
-          }
-          /* if a listen on the ext controller is done, check if hook states */
-          /* are supported or if just a on board codec must be activated     */
-          if(a->codec_listen[i] && !a->AdvSignalPLCI) {
-            if(a->profile.Global_Options & HANDSET)
-              plci->tel = ADV_VOICE;
-            else if(a->profile.Global_Options & ON_BOARD_CODEC)
-              plci->tel = CODEC;
-            if(plci->tel) Id|=EXT_CONTROLLER;
-            a->codec_listen[i] = plci;
-          }
-
-          sendf(&application[i],_CONNECT_I,Id,0,
-                "wSSSSSSSbSSSSS", cip,    /* CIP                 */
-                             parms[0],    /* CalledPartyNumber   */
-                             multi_CiPN_parms[0],    /* CallingPartyNumber  */
-                             parms[2],    /* CalledPartySubad    */
-                             parms[3],    /* CallingPartySubad   */
-                             parms[4],    /* BearerCapability    */
-                             parms[5],    /* LowLC               */
-                             parms[6],    /* HighLC              */
-                             ai_len,      /* nested struct add_i */
-                             add_i[0],    /* B channel info    */
-                             add_i[1],    /* keypad facility   */
-                             add_i[2],    /* user user data    */
-                             add_i[3],    /* nested facility   */
-                             multi_CiPN_parms[1]    /* second CiPN(SCR)   */
-                             );
-          SendSSExtInd(&application[i],
-                        plci,
-                        Id,
-                        multi_ssext_parms);
-          SendSetupInfo(&application[i],
-                        plci,
-                        Id,
-                        parms,
-                        SendMultiIE(plci,Id,multi_pi_parms, PI, 0x210, true));
-        }
-      }
-      clear_c_ind_mask_bit (plci, MAX_APPL);
-      dump_c_ind_mask (plci);
-    }
-    if(c_ind_mask_empty (plci)) {
-      sig_req(plci,HANGUP,0);
-      send_req(plci);
-      plci->State = IDLE;
-    }
-    plci->notifiedcall = 0;
-    a->listen_active--;
-    listen_check(a);
-    break;
-
-  case CALL_PEND_NOTIFY:
-    plci->notifiedcall = 1;
-    listen_check(a);
-    break;
-
-  case CALL_IND:
-  case CALL_CON:
-    if(plci->State==ADVANCED_VOICE_SIG || plci->State==ADVANCED_VOICE_NOSIG)
-    {
-      if(plci->internal_command==PERM_COD_CONN_PEND)
-      {
-        if(plci->State==ADVANCED_VOICE_NOSIG)
-        {
-          dbug(1,dprintf("***Codec OK"));
-          if(a->AdvSignalPLCI)
-          {
-            tplci = a->AdvSignalPLCI;
-            if(tplci->spoofed_msg)
-            {
-              dbug(1,dprintf("***Spoofed Msg(0x%x)",tplci->spoofed_msg));
-              tplci->command = 0;
-              tplci->internal_command = 0;
-              x_Id = ((word)tplci->Id<<8)|tplci->adapter->Id | 0x80;
-              switch (tplci->spoofed_msg)
-              {
-              case CALL_RES:
-                tplci->command = _CONNECT_I|RESPONSE;
-                api_load_msg (&tplci->saved_msg, saved_parms);
-                add_b1(tplci,&saved_parms[1],0,tplci->B1_facilities);
-                if (tplci->adapter->Info_Mask[tplci->appl->Id-1] & 0x200)
-                {
-                  /* early B3 connect (CIP mask bit 9) no release after a disc */
-                  add_p(tplci,LLI,"\x01\x01");
-                }
-                add_s(tplci, CONN_NR, &saved_parms[2]);
-                add_s(tplci, LLC, &saved_parms[4]);
-                add_ai(tplci, &saved_parms[5]);
-                tplci->State = INC_CON_ACCEPT;
-                sig_req(tplci, CALL_RES,0);
-                send_req(tplci);
-                break;
-
-              case AWAITING_SELECT_B:
-                dbug(1,dprintf("Select_B continue"));
-                start_internal_command (x_Id, tplci, select_b_command);
-                break;
-
-              case AWAITING_MANUF_CON: /* Get_Plci per Manufacturer_Req to ext controller */
-                if(!tplci->Sig.Id)
-                {
-                  dbug(1,dprintf("No SigID!"));
-                  sendf(tplci->appl, _MANUFACTURER_R|CONFIRM,x_Id,tplci->number, "dww",_DI_MANU_ID,_MANUFACTURER_R,_OUT_OF_PLCI);
-                  plci_remove(tplci);
-                  break;
-                }
-                tplci->command = _MANUFACTURER_R;
-                api_load_msg (&tplci->saved_msg, saved_parms);
-                dir = saved_parms[2].info[0];
-                if(dir==1) {
-                  sig_req(tplci,CALL_REQ,0);
-                }
-                else if(!dir){
-                  sig_req(tplci,LISTEN_REQ,0);
-                }
-                send_req(tplci);
-                sendf(tplci->appl, _MANUFACTURER_R|CONFIRM,x_Id,tplci->number, "dww",_DI_MANU_ID,_MANUFACTURER_R,0);
-                break;
-
-              case (CALL_REQ|AWAITING_MANUF_CON):
-                sig_req(tplci,CALL_REQ,0);
-                send_req(tplci);
-                break;
-
-              case CALL_REQ:
-                if(!tplci->Sig.Id)
-                {
-                  dbug(1,dprintf("No SigID!"));
-                  sendf(tplci->appl,_CONNECT_R|CONFIRM,tplci->adapter->Id,0,"w",_OUT_OF_PLCI);
-                  plci_remove(tplci);
-                  break;
-                }
-                tplci->command = _CONNECT_R;
-                api_load_msg (&tplci->saved_msg, saved_parms);
-                add_s(tplci,CPN,&saved_parms[1]);
-                add_s(tplci,DSA,&saved_parms[3]);
-                add_ai(tplci,&saved_parms[9]);
-                sig_req(tplci,CALL_REQ,0);
-                send_req(tplci);
-                break;
-
-              case CALL_RETRIEVE:
-                tplci->command = C_RETRIEVE_REQ;
-                sig_req(tplci,CALL_RETRIEVE,0);
-                send_req(tplci);
-                break;
-              }
-              tplci->spoofed_msg = 0;
-              if (tplci->internal_command == 0)
-                next_internal_command (x_Id, tplci);
-            }
-          }
-          next_internal_command (Id, plci);
-          break;
-        }
-        dbug(1,dprintf("***Codec Hook Init Req"));
-        plci->internal_command = PERM_COD_HOOK;
-        add_p(plci,FTY,"\x01\x09");             /* Get Hook State*/
-        sig_req(plci,TEL_CTRL,0);
-        send_req(plci);
-      }
-    }
-    else if(plci->command != _MANUFACTURER_R  /* old style permanent connect */
-    && plci->State!=INC_ACT_PENDING)
-    {
-      mixer_set_bchannel_id_esc (plci, plci->b_channel);
-      if(plci->tel == ADV_VOICE && plci->SuppState == IDLE) /* with permanent codec switch on immediately */
-      {
-        chi[2] = plci->b_channel;
-        SetVoiceChannel(a->AdvCodecPLCI, chi, a);
-      }
-      sendf(plci->appl,_CONNECT_ACTIVE_I,Id,0,"Sss",parms[21],"","");
-      plci->State = INC_ACT_PENDING;
-    }
-    break;
-
-  case TEL_CTRL:
-    ie = multi_fac_parms[0]; /* inspect the facility hook indications */
-    if(plci->State==ADVANCED_VOICE_SIG && ie[0]){
-      switch (ie[1]&0x91) {
-        case 0x80:   /* hook off */
-        case 0x81:
-          if(plci->internal_command==PERM_COD_HOOK)
-          {
-            dbug(1,dprintf("init:hook_off"));
-            plci->hook_state = ie[1];
-            next_internal_command (Id, plci);
-            break;
-          }
-          else /* ignore doubled hook indications */
-          {
-            if( ((plci->hook_state)&0xf0)==0x80)
-            {
-              dbug(1,dprintf("ignore hook"));
-              break;
-            }
-            plci->hook_state = ie[1]&0x91;
-          }
-          /* check for incoming call pending */
-          /* and signal '+'.Appl must decide */
-          /* with connect_res if call must   */
-          /* accepted or not                 */
-          for(i=0, tplci=NULL;i<max_appl;i++){
-            if(a->codec_listen[i]
-            && (a->codec_listen[i]->State==INC_CON_PENDING
-              ||a->codec_listen[i]->State==INC_CON_ALERT) ){
-              tplci = a->codec_listen[i];
-              tplci->appl = &application[i];
-            }
-          }
-          /* no incoming call, do outgoing call */
-          /* and signal '+' if outg. setup   */
-          if(!a->AdvSignalPLCI && !tplci){
-            if((i=get_plci(a))) {
-              a->AdvSignalPLCI = &a->plci[i-1];
-              tplci = a->AdvSignalPLCI;
-              tplci->tel  = ADV_VOICE;
-              PUT_WORD(&voice_cai[5],a->AdvSignalAppl->MaxDataLength);
-              if (a->Info_Mask[a->AdvSignalAppl->Id-1] & 0x200){
-                /* early B3 connect (CIP mask bit 9) no release after a disc */
-                add_p(tplci,LLI,"\x01\x01");
-              }
-              add_p(tplci, CAI, voice_cai);
-              add_p(tplci, OAD, a->TelOAD);
-              add_p(tplci, OSA, a->TelOSA);
-              add_p(tplci,SHIFT|6,NULL);
-              add_p(tplci,SIN,"\x02\x01\x00");
-              add_p(tplci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-              sig_req(tplci,ASSIGN,DSIG_ID);
-              a->AdvSignalPLCI->internal_command = HOOK_OFF_REQ;
-              a->AdvSignalPLCI->command = 0;
-              tplci->appl = a->AdvSignalAppl;
-              tplci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
-              send_req(tplci);
-            }
-
-          }
-
-          if(!tplci) break;
-          Id = ((word)tplci->Id<<8)|a->Id;
-          Id|=EXT_CONTROLLER;
-          sendf(tplci->appl,
-                _FACILITY_I,
-                Id,
-                0,
-                "ws", (word)0, "\x01+");
-          break;
-
-        case 0x90:   /* hook on  */
-        case 0x91:
-          if(plci->internal_command==PERM_COD_HOOK)
-          {
-            dbug(1,dprintf("init:hook_on"));
-            plci->hook_state = ie[1]&0x91;
-            next_internal_command (Id, plci);
-            break;
-          }
-          else /* ignore doubled hook indications */
-          {
-            if( ((plci->hook_state)&0xf0)==0x90) break;
-            plci->hook_state = ie[1]&0x91;
-          }
-          /* hangup the adv. voice call and signal '-' to the appl */
-          if(a->AdvSignalPLCI) {
-            Id = ((word)a->AdvSignalPLCI->Id<<8)|a->Id;
-            if(plci->tel) Id|=EXT_CONTROLLER;
-            sendf(a->AdvSignalAppl,
-                  _FACILITY_I,
-                  Id,
-                  0,
-                  "ws", (word)0, "\x01-");
-            a->AdvSignalPLCI->internal_command = HOOK_ON_REQ;
-            a->AdvSignalPLCI->command = 0;
-            sig_req(a->AdvSignalPLCI,HANGUP,0);
-            send_req(a->AdvSignalPLCI);
-          }
-          break;
-      }
-    }
-    break;
-
-  case RESUME:
-    clear_c_ind_mask_bit (plci, (word)(plci->appl->Id-1));
-    PUT_WORD(&resume_cau[4],GOOD);
-    sendf(plci->appl,_FACILITY_I,Id,0,"ws", (word)3, resume_cau);
-    break;
-
-  case SUSPEND:
-    clear_c_ind_mask (plci);
-
-    if (plci->NL.Id && !plci->nl_remove_id) {
-      mixer_remove (plci);
-      nl_req_ncci(plci,REMOVE,0);
-    }
-    if (!plci->sig_remove_id) {
-      plci->internal_command = 0;
-      sig_req(plci,REMOVE,0);
-    }
-    send_req(plci);
-    if(!plci->channels) {
-      sendf(plci->appl,_FACILITY_I,Id,0,"ws", (word)3, "\x05\x04\x00\x02\x00\x00");
-      sendf(plci->appl, _DISCONNECT_I, Id, 0, "w", 0);
-    }
-    break;
-
-  case SUSPEND_REJ:
-    break;
-
-  case HANGUP:
-    plci->hangup_flow_ctrl_timer=0;
-    if(plci->manufacturer && plci->State==LOCAL_CONNECT) break;
-    cau = parms[7];
-    if(cau) {
-      i = _L3_CAUSE | cau[2];
-      if(cau[2]==0) i = 0;
-      else if(cau[2]==8) i = _L1_ERROR;
-      else if(cau[2]==9 || cau[2]==10) i = _L2_ERROR;
-      else if(cau[2]==5) i = _CAPI_GUARD_ERROR;
-    }
-    else {
-      i = _L3_ERROR;
-    }
-
-    if(plci->State==INC_CON_PENDING || plci->State==INC_CON_ALERT)
-    {
-      for(i=0; i<max_appl; i++)
-      {
-        if(test_c_ind_mask_bit (plci, i))
-          sendf(&application[i], _DISCONNECT_I, Id, 0, "w", 0);
-      }
-    }
-    else
-    {
-      clear_c_ind_mask (plci);
-    }
-    if(!plci->appl)
-    {
-      if (plci->State == LISTENING)
-      {
-        plci->notifiedcall=0;
-        a->listen_active--;
-      }
-      plci->State = INC_DIS_PENDING;
-      if(c_ind_mask_empty (plci))
-      {
-        plci->State = IDLE;
-        if (plci->NL.Id && !plci->nl_remove_id)
-        {
-          mixer_remove (plci);
-          nl_req_ncci(plci,REMOVE,0);
-        }
-        if (!plci->sig_remove_id)
-        {
-          plci->internal_command = 0;
-          sig_req(plci,REMOVE,0);
-        }
-        send_req(plci);
-      }
-    }
-    else
-    {
-        /* collision of DISCONNECT or CONNECT_RES with HANGUP can   */
-        /* result in a second HANGUP! Don't generate another        */
-        /* DISCONNECT                                               */
-      if(plci->State!=IDLE && plci->State!=INC_DIS_PENDING)
-      {
-        if(plci->State==RESUMING)
-        {
-          PUT_WORD(&resume_cau[4],i);
-          sendf(plci->appl,_FACILITY_I,Id,0,"ws", (word)3, resume_cau);
-        }
-        plci->State = INC_DIS_PENDING;
-        sendf(plci->appl,_DISCONNECT_I,Id,0,"w",i);
-      }
-    }
-    break;
-
-  case SSEXT_IND:
-    SendSSExtInd(NULL,plci,Id,multi_ssext_parms);
-    break;
-
-  case VSWITCH_REQ:
-    VSwitchReqInd(plci,Id,multi_vswitch_parms);
-    break;
-  case VSWITCH_IND:
if(plci->relatedPTYPLCI &&
-  plci->vswitchstate==3 &&
-  plci->relatedPTYPLCI->vswitchstate==3 &&
-  parms[MAXPARMSIDS-1][0])
- {
-  add_p(plci->relatedPTYPLCI,SMSG,parms[MAXPARMSIDS-1]);
-  sig_req(plci->relatedPTYPLCI,VSWITCH_REQ,0);
-  send_req(plci->relatedPTYPLCI);
- }
-    else VSwitchReqInd(plci,Id,multi_vswitch_parms);
-    break;
-
-  }
-}
-
-
-static void SendSetupInfo(APPL   * appl, PLCI   * plci, dword Id, byte   * * parms, byte Info_Sent_Flag)
-{
-  word i;
-  byte   * ie;
-  word Info_Number;
-  byte   * Info_Element;
-  word Info_Mask = 0;
-
-  dbug(1,dprintf("SetupInfo"));
-
-  for(i=0; i<MAXPARMSIDS; i++) {
-    ie = parms[i];
-    Info_Number = 0;
-    Info_Element = ie;
-    if(ie[0]) {
-      switch(i) {
-      case 0:
-        dbug(1,dprintf("CPN "));
-        Info_Number = 0x0070;
-        Info_Mask   = 0x80;
-        Info_Sent_Flag = true;
-        break;
-      case 8:  /* display      */
-        dbug(1,dprintf("display(%d)",i));
-        Info_Number = 0x0028;
-        Info_Mask = 0x04;
-        Info_Sent_Flag = true;
-        break;
-      case 16: /* Channel Id */
-        dbug(1,dprintf("CHI"));
-        Info_Number = 0x0018;
-        Info_Mask = 0x100;
-        Info_Sent_Flag = true;
-        mixer_set_bchannel_id (plci, Info_Element);
-        break;
-      case 19: /* Redirected Number */
-        dbug(1,dprintf("RDN"));
-        Info_Number = 0x0074;
-        Info_Mask = 0x400;
-        Info_Sent_Flag = true;
-        break;
-      case 20: /* Redirected Number extended */
-        dbug(1,dprintf("RDX"));
-        Info_Number = 0x0073;
-        Info_Mask = 0x400;
-        Info_Sent_Flag = true;
-        break;
-      case 22: /* Redirecing Number  */
-        dbug(1,dprintf("RIN"));
-        Info_Number = 0x0076;
-        Info_Mask = 0x400;
-        Info_Sent_Flag = true;
-        break;
-      default:
-        Info_Number = 0;
-        break;
-      }
-    }
-
-    if(i==MAXPARMSIDS-2){ /* to indicate the message type "Setup" */
-      Info_Number = 0x8000 |5;
-      Info_Mask = 0x10;
-      Info_Element = "";
-    }
-
-    if(Info_Sent_Flag && Info_Number){
-      if(plci->adapter->Info_Mask[appl->Id-1] & Info_Mask) {
-        sendf(appl,_INFO_I,Id,0,"wS",Info_Number,Info_Element);
-      }
-    }
-  }
+       byte *parms[MAXPARMSIDS];
+       byte *add_i[4];
+       byte *multi_fac_parms[MAX_MULTI_IE];
+       byte *multi_pi_parms[MAX_MULTI_IE];
+       byte *multi_ssext_parms[MAX_MULTI_IE];
+       byte *multi_CiPN_parms[MAX_MULTI_IE];
+
+       byte *multi_vswitch_parms[MAX_MULTI_IE];
+
+       byte ai_len;
+       byte *esc_chi = "";
+       byte *esc_law = "";
+       byte *pty_cai = "";
+       byte *esc_cr  = "";
+       byte *esc_profile = "";
+
+       byte facility[256];
+       PLCI *tplci = NULL;
+       byte chi[] = "\x02\x18\x01";
+       byte voice_cai[]  = "\x06\x14\x00\x00\x00\x00\x08";
+       byte resume_cau[] = "\x05\x05\x00\x02\x00\x00";
+       /* ESC_MSGTYPE must be the last but one message, a new IE has to be */
+       /* included before the ESC_MSGTYPE and MAXPARMSIDS has to be incremented */
+       /* SMSG is situated at the end because its 0 (for compatibility reasons */
+       /* (see Info_Mask Bit 4, first IE. then the message type)           */
+       word parms_id[] =
+               {MAXPARMSIDS, CPN, 0xff, DSA, OSA, BC, LLC, HLC, ESC_CAUSE, DSP, DT, CHA,
+                UUI, CONG_RR, CONG_RNR, ESC_CHI, KEY, CHI, CAU, ESC_LAW,
+                RDN, RDX, CONN_NR, RIN, NI, CAI, ESC_CR,
+                CST, ESC_PROFILE, 0xff, ESC_MSGTYPE, SMSG};
+       /* 14 FTY repl by ESC_CHI */
+       /* 18 PI  repl by ESC_LAW */
+       /* removed OAD changed to 0xff for future use, OAD is multiIE now */
+       word multi_fac_id[] = {1, FTY};
+       word multi_pi_id[]  = {1, PI};
+       word multi_CiPN_id[]  = {1, OAD};
+       word multi_ssext_id[]  = {1, ESC_SSEXT};
+
+       word multi_vswitch_id[]  = {1, ESC_VSWITCH};
+
+       byte *cau;
+       word ncci;
+       byte SS_Ind[] = "\x05\x02\x00\x02\x00\x00"; /* Hold_Ind struct*/
+       byte CF_Ind[] = "\x09\x02\x00\x06\x00\x00\x00\x00\x00\x00";
+       byte Interr_Err_Ind[] = "\x0a\x02\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
+       byte CONF_Ind[] = "\x09\x16\x00\x06\x00\x00\0x00\0x00\0x00\0x00";
+       byte force_mt_info = false;
+       byte dir;
+       dword d;
+       word w;
+
+       a = plci->adapter;
+       Id = ((word)plci->Id << 8) | a->Id;
+       PUT_WORD(&SS_Ind[4], 0x0000);
+
+       if (plci->sig_remove_id)
+       {
+               plci->Sig.RNR = 2; /* discard */
+               dbug(1, dprintf("SIG discard while remove pending"));
+               return;
+       }
+       if (plci->tel && plci->SuppState != CALL_HELD) Id |= EXT_CONTROLLER;
+       dbug(1, dprintf("SigInd-Id=%08lx,plci=%x,tel=%x,state=0x%x,channels=%d,Discflowcl=%d",
+                       Id, plci->Id, plci->tel, plci->State, plci->channels, plci->hangup_flow_ctrl_timer));
+       if (plci->Sig.Ind == CALL_HOLD_ACK && plci->channels)
+       {
+               plci->Sig.RNR = 1;
+               return;
+       }
+       if (plci->Sig.Ind == HANGUP && plci->channels)
+       {
+               plci->Sig.RNR = 1;
+               plci->hangup_flow_ctrl_timer++;
+               /* recover the network layer after timeout */
+               if (plci->hangup_flow_ctrl_timer == 100)
+               {
+                       dbug(1, dprintf("Exceptional disc"));
+                       plci->Sig.RNR = 0;
+                       plci->hangup_flow_ctrl_timer = 0;
+                       for (ncci = 1; ncci < MAX_NCCI + 1; ncci++)
+                       {
+                               if (a->ncci_plci[ncci] == plci->Id)
+                               {
+                                       cleanup_ncci_data(plci, ncci);
+                                       if (plci->channels)plci->channels--;
+                                       if (plci->appl)
+                                               sendf(plci->appl, _DISCONNECT_B3_I, (((dword) ncci) << 16) | Id, 0, "ws", 0, "");
+                               }
+                       }
+                       if (plci->appl)
+                               sendf(plci->appl, _DISCONNECT_I, Id, 0, "w", 0);
+                       plci_remove(plci);
+                       plci->State = IDLE;
+               }
+               return;
+       }
+
+       /* do first parse the info with no OAD in, because OAD will be converted */
+       /* first the multiple facility IE, then mult. progress ind.              */
+       /* then the parameters for the info_ind + conn_ind                       */
+       IndParse(plci, multi_fac_id, multi_fac_parms, MAX_MULTI_IE);
+       IndParse(plci, multi_pi_id, multi_pi_parms, MAX_MULTI_IE);
+       IndParse(plci, multi_ssext_id, multi_ssext_parms, MAX_MULTI_IE);
+
+       IndParse(plci, multi_vswitch_id, multi_vswitch_parms, MAX_MULTI_IE);
+
+       IndParse(plci, parms_id, parms, 0);
+       IndParse(plci, multi_CiPN_id, multi_CiPN_parms, MAX_MULTI_IE);
+       esc_chi  = parms[14];
+       esc_law  = parms[18];
+       pty_cai  = parms[24];
+       esc_cr   = parms[25];
+       esc_profile = parms[27];
+       if (esc_cr[0] && plci)
+       {
+               if (plci->cr_enquiry && plci->appl)
+               {
+                       plci->cr_enquiry = false;
+                       /* d = MANU_ID            */
+                       /* w = m_command          */
+                       /* b = total length       */
+                       /* b = indication type    */
+                       /* b = length of all IEs  */
+                       /* b = IE1                */
+                       /* S = IE1 length + cont. */
+                       /* b = IE2                */
+                       /* S = IE2 length + cont. */
+                       sendf(plci->appl,
+                             _MANUFACTURER_I,
+                             Id,
+                             0,
+                             "dwbbbbSbS", _DI_MANU_ID, plci->m_command,
+                             2 + 1 + 1 + esc_cr[0] + 1 + 1 + esc_law[0], plci->Sig.Ind, 1 + 1 + esc_cr[0] + 1 + 1 + esc_law[0], ESC, esc_cr, ESC, esc_law);
+               }
+       }
+       /* create the additional info structure                                  */
+       add_i[1] = parms[15]; /* KEY of additional info */
+       add_i[2] = parms[11]; /* UUI of additional info */
+       ai_len = AddInfo(add_i, multi_fac_parms, esc_chi, facility);
+
+       /* the ESC_LAW indicates if u-Law or a-Law is actually used by the card  */
+       /* indication returns by the card if requested by the function           */
+       /* AutomaticLaw() after driver init                                      */
+       if (a->automatic_law < 4)
+       {
+               if (esc_law[0]) {
+                       if (esc_law[2]) {
+                               dbug(0, dprintf("u-Law selected"));
+                               a->u_law = 1;
+                       }
+                       else {
+                               dbug(0, dprintf("a-Law selected"));
+                               a->u_law = 0;
+                       }
+                       a->automatic_law = 4;
+                       if (plci == a->automatic_lawPLCI) {
+                               plci->internal_command = 0;
+                               sig_req(plci, REMOVE, 0);
+                               send_req(plci);
+                               a->automatic_lawPLCI = NULL;
+                       }
+               }
+               if (esc_profile[0])
+               {
+                       dbug(1, dprintf("[%06x] CardProfile: %lx %lx %lx %lx %lx",
+                                       UnMapController(a->Id), GET_DWORD(&esc_profile[6]),
+                                       GET_DWORD(&esc_profile[10]), GET_DWORD(&esc_profile[14]),
+                                       GET_DWORD(&esc_profile[18]), GET_DWORD(&esc_profile[46])));
+
+                       a->profile.Global_Options &= 0x000000ffL;
+                       a->profile.B1_Protocols &= 0x000003ffL;
+                       a->profile.B2_Protocols &= 0x00001fdfL;
+                       a->profile.B3_Protocols &= 0x000000b7L;
+
+                       a->profile.Global_Options &= GET_DWORD(&esc_profile[6]) |
+                               GL_BCHANNEL_OPERATION_SUPPORTED;
+                       a->profile.B1_Protocols &= GET_DWORD(&esc_profile[10]);
+                       a->profile.B2_Protocols &= GET_DWORD(&esc_profile[14]);
+                       a->profile.B3_Protocols &= GET_DWORD(&esc_profile[18]);
+                       a->manufacturer_features = GET_DWORD(&esc_profile[46]);
+                       a->man_profile.private_options = 0;
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_ECHO_CANCELLER)
+                       {
+                               a->man_profile.private_options |= 1L << PRIVATE_ECHO_CANCELLER;
+                               a->profile.Global_Options |= GL_ECHO_CANCELLER_SUPPORTED;
+                       }
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_RTP)
+                               a->man_profile.private_options |= 1L << PRIVATE_RTP;
+                       a->man_profile.rtp_primary_payloads = GET_DWORD(&esc_profile[50]);
+                       a->man_profile.rtp_additional_payloads = GET_DWORD(&esc_profile[54]);
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_T38)
+                               a->man_profile.private_options |= 1L << PRIVATE_T38;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_SUB_SEP_PWD)
+                               a->man_profile.private_options |= 1L << PRIVATE_FAX_SUB_SEP_PWD;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_V18)
+                               a->man_profile.private_options |= 1L << PRIVATE_V18;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_DTMF_TONE)
+                               a->man_profile.private_options |= 1L << PRIVATE_DTMF_TONE;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_PIAFS)
+                               a->man_profile.private_options |= 1L << PRIVATE_PIAFS;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
+                               a->man_profile.private_options |= 1L << PRIVATE_FAX_PAPER_FORMATS;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_VOWN)
+                               a->man_profile.private_options |= 1L << PRIVATE_VOWN;
+
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_NONSTANDARD)
+                               a->man_profile.private_options |= 1L << PRIVATE_FAX_NONSTANDARD;
+
+               }
+               else
+               {
+                       a->profile.Global_Options &= 0x0000007fL;
+                       a->profile.B1_Protocols &= 0x000003dfL;
+                       a->profile.B2_Protocols &= 0x00001adfL;
+                       a->profile.B3_Protocols &= 0x000000b7L;
+                       a->manufacturer_features &= MANUFACTURER_FEATURE_HARDDTMF;
+               }
+               if (a->manufacturer_features & (MANUFACTURER_FEATURE_HARDDTMF |
+                                               MANUFACTURER_FEATURE_SOFTDTMF_SEND | MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE))
+               {
+                       a->profile.Global_Options |= GL_DTMF_SUPPORTED;
+               }
+               a->manufacturer_features &= ~MANUFACTURER_FEATURE_OOB_CHANNEL;
+               dbug(1, dprintf("[%06x] Profile: %lx %lx %lx %lx %lx",
+                               UnMapController(a->Id), a->profile.Global_Options,
+                               a->profile.B1_Protocols, a->profile.B2_Protocols,
+                               a->profile.B3_Protocols, a->manufacturer_features));
+       }
+       /* codec plci for the handset/hook state support is just an internal id  */
+       if (plci != a->AdvCodecPLCI)
+       {
+               force_mt_info = SendMultiIE(plci, Id, multi_fac_parms, FTY, 0x20, 0);
+               force_mt_info |= SendMultiIE(plci, Id, multi_pi_parms, PI, 0x210, 0);
+               SendSSExtInd(NULL, plci, Id, multi_ssext_parms);
+               SendInfo(plci, Id, parms, force_mt_info);
+
+               VSwitchReqInd(plci, Id, multi_vswitch_parms);
+
+       }
+
+       /* switch the codec to the b-channel                                     */
+       if (esc_chi[0] && plci && !plci->SuppState) {
+               plci->b_channel = esc_chi[esc_chi[0]]&0x1f;
+               mixer_set_bchannel_id_esc(plci, plci->b_channel);
+               dbug(1, dprintf("storeChannel=0x%x", plci->b_channel));
+               if (plci->tel == ADV_VOICE && plci->appl) {
+                       SetVoiceChannel(a->AdvCodecPLCI, esc_chi, a);
+               }
+       }
+
+       if (plci->appl) plci->appl->Number++;
+
+       switch (plci->Sig.Ind) {
+               /* Response to Get_Supported_Services request */
+       case S_SUPPORTED:
+               dbug(1, dprintf("S_Supported"));
+               if (!plci->appl) break;
+               if (pty_cai[0] == 4)
+               {
+                       PUT_DWORD(&CF_Ind[6], GET_DWORD(&pty_cai[1]));
+               }
+               else
+               {
+                       PUT_DWORD(&CF_Ind[6], MASK_TERMINAL_PORTABILITY | MASK_HOLD_RETRIEVE);
+               }
+               PUT_WORD(&CF_Ind[1], 0);
+               PUT_WORD(&CF_Ind[4], 0);
+               sendf(plci->appl, _FACILITY_R | CONFIRM, Id & 0x7, plci->number, "wws", 0, 3, CF_Ind);
+               plci_remove(plci);
+               break;
+
+               /* Supplementary Service rejected */
+       case S_SERVICE_REJ:
+               dbug(1, dprintf("S_Reject=0x%x", pty_cai[5]));
+               if (!pty_cai[0]) break;
+               switch (pty_cai[5])
+               {
+               case ECT_EXECUTE:
+               case THREE_PTY_END:
+               case THREE_PTY_BEGIN:
+                       if (!plci->relatedPTYPLCI) break;
+                       tplci = plci->relatedPTYPLCI;
+                       rId = ((word)tplci->Id << 8) | tplci->adapter->Id;
+                       if (tplci->tel) rId |= EXT_CONTROLLER;
+                       if (pty_cai[5] == ECT_EXECUTE)
+                       {
+                               PUT_WORD(&SS_Ind[1], S_ECT);
+
+                               plci->vswitchstate = 0;
+                               plci->relatedPTYPLCI->vswitchstate = 0;
+
+                       }
+                       else
+                       {
+                               PUT_WORD(&SS_Ind[1], pty_cai[5] + 3);
+                       }
+                       if (pty_cai[2] != 0xff)
+                       {
+                               PUT_WORD(&SS_Ind[4], 0x3600 | (word)pty_cai[2]);
+                       }
+                       else
+                       {
+                               PUT_WORD(&SS_Ind[4], 0x300E);
+                       }
+                       plci->relatedPTYPLCI = NULL;
+                       plci->ptyState = 0;
+                       sendf(tplci->appl, _FACILITY_I, rId, 0, "ws", 3, SS_Ind);
+                       break;
+
+               case CALL_DEFLECTION:
+                       if (pty_cai[2] != 0xff)
+                       {
+                               PUT_WORD(&SS_Ind[4], 0x3600 | (word)pty_cai[2]);
+                       }
+                       else
+                       {
+                               PUT_WORD(&SS_Ind[4], 0x300E);
+                       }
+                       PUT_WORD(&SS_Ind[1], pty_cai[5]);
+                       for (i = 0; i < max_appl; i++)
+                       {
+                               if (application[i].CDEnable)
+                               {
+                                       if (application[i].Id) sendf(&application[i], _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+                                       application[i].CDEnable = false;
+                               }
+                       }
+                       break;
+
+               case DEACTIVATION_DIVERSION:
+               case ACTIVATION_DIVERSION:
+               case DIVERSION_INTERROGATE_CFU:
+               case DIVERSION_INTERROGATE_CFB:
+               case DIVERSION_INTERROGATE_CFNR:
+               case DIVERSION_INTERROGATE_NUM:
+               case CCBS_REQUEST:
+               case CCBS_DEACTIVATE:
+               case CCBS_INTERROGATE:
+                       if (!plci->appl) break;
+                       if (pty_cai[2] != 0xff)
+                       {
+                               PUT_WORD(&Interr_Err_Ind[4], 0x3600 | (word)pty_cai[2]);
+                       }
+                       else
+                       {
+                               PUT_WORD(&Interr_Err_Ind[4], 0x300E);
+                       }
+                       switch (pty_cai[5])
+                       {
+                       case DEACTIVATION_DIVERSION:
+                               dbug(1, dprintf("Deact_Div"));
+                               Interr_Err_Ind[0] = 0x9;
+                               Interr_Err_Ind[3] = 0x6;
+                               PUT_WORD(&Interr_Err_Ind[1], S_CALL_FORWARDING_STOP);
+                               break;
+                       case ACTIVATION_DIVERSION:
+                               dbug(1, dprintf("Act_Div"));
+                               Interr_Err_Ind[0] = 0x9;
+                               Interr_Err_Ind[3] = 0x6;
+                               PUT_WORD(&Interr_Err_Ind[1], S_CALL_FORWARDING_START);
+                               break;
+                       case DIVERSION_INTERROGATE_CFU:
+                       case DIVERSION_INTERROGATE_CFB:
+                       case DIVERSION_INTERROGATE_CFNR:
+                               dbug(1, dprintf("Interr_Div"));
+                               Interr_Err_Ind[0] = 0xa;
+                               Interr_Err_Ind[3] = 0x7;
+                               PUT_WORD(&Interr_Err_Ind[1], S_INTERROGATE_DIVERSION);
+                               break;
+                       case DIVERSION_INTERROGATE_NUM:
+                               dbug(1, dprintf("Interr_Num"));
+                               Interr_Err_Ind[0] = 0xa;
+                               Interr_Err_Ind[3] = 0x7;
+                               PUT_WORD(&Interr_Err_Ind[1], S_INTERROGATE_NUMBERS);
+                               break;
+                       case CCBS_REQUEST:
+                               dbug(1, dprintf("CCBS Request"));
+                               Interr_Err_Ind[0] = 0xd;
+                               Interr_Err_Ind[3] = 0xa;
+                               PUT_WORD(&Interr_Err_Ind[1], S_CCBS_REQUEST);
+                               break;
+                       case CCBS_DEACTIVATE:
+                               dbug(1, dprintf("CCBS Deactivate"));
+                               Interr_Err_Ind[0] = 0x9;
+                               Interr_Err_Ind[3] = 0x6;
+                               PUT_WORD(&Interr_Err_Ind[1], S_CCBS_DEACTIVATE);
+                               break;
+                       case CCBS_INTERROGATE:
+                               dbug(1, dprintf("CCBS Interrogate"));
+                               Interr_Err_Ind[0] = 0xb;
+                               Interr_Err_Ind[3] = 0x8;
+                               PUT_WORD(&Interr_Err_Ind[1], S_CCBS_INTERROGATE);
+                               break;
+                       }
+                       PUT_DWORD(&Interr_Err_Ind[6], plci->appl->S_Handle);
+                       sendf(plci->appl, _FACILITY_I, Id & 0x7, 0, "ws", 3, Interr_Err_Ind);
+                       plci_remove(plci);
+                       break;
+               case ACTIVATION_MWI:
+               case DEACTIVATION_MWI:
+                       if (pty_cai[5] == ACTIVATION_MWI)
+                       {
+                               PUT_WORD(&SS_Ind[1], S_MWI_ACTIVATE);
+                       }
+                       else PUT_WORD(&SS_Ind[1], S_MWI_DEACTIVATE);
+
+                       if (pty_cai[2] != 0xff)
+                       {
+                               PUT_WORD(&SS_Ind[4], 0x3600 | (word)pty_cai[2]);
+                       }
+                       else
+                       {
+                               PUT_WORD(&SS_Ind[4], 0x300E);
+                       }
+
+                       if (plci->cr_enquiry)
+                       {
+                               sendf(plci->appl, _FACILITY_I, Id & 0xf, 0, "ws", 3, SS_Ind);
+                               plci_remove(plci);
+                       }
+                       else
+                       {
+                               sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+                       }
+                       break;
+               case CONF_ADD: /* ERROR */
+               case CONF_BEGIN:
+               case CONF_DROP:
+               case CONF_ISOLATE:
+               case CONF_REATTACH:
+                       CONF_Ind[0] = 9;
+                       CONF_Ind[3] = 6;
+                       switch (pty_cai[5])
+                       {
+                       case CONF_BEGIN:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_BEGIN);
+                               plci->ptyState = 0;
+                               break;
+                       case CONF_DROP:
+                               CONF_Ind[0] = 5;
+                               CONF_Ind[3] = 2;
+                               PUT_WORD(&CONF_Ind[1], S_CONF_DROP);
+                               plci->ptyState = CONNECTED;
+                               break;
+                       case CONF_ISOLATE:
+                               CONF_Ind[0] = 5;
+                               CONF_Ind[3] = 2;
+                               PUT_WORD(&CONF_Ind[1], S_CONF_ISOLATE);
+                               plci->ptyState = CONNECTED;
+                               break;
+                       case CONF_REATTACH:
+                               CONF_Ind[0] = 5;
+                               CONF_Ind[3] = 2;
+                               PUT_WORD(&CONF_Ind[1], S_CONF_REATTACH);
+                               plci->ptyState = CONNECTED;
+                               break;
+                       case CONF_ADD:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_ADD);
+                               plci->relatedPTYPLCI = NULL;
+                               tplci = plci->relatedPTYPLCI;
+                               if (tplci) tplci->ptyState = CONNECTED;
+                               plci->ptyState = CONNECTED;
+                               break;
+                       }
+
+                       if (pty_cai[2] != 0xff)
+                       {
+                               PUT_WORD(&CONF_Ind[4], 0x3600 | (word)pty_cai[2]);
+                       }
+                       else
+                       {
+                               PUT_WORD(&CONF_Ind[4], 0x3303); /* Time-out: network did not respond
+                                                                 within the required time */
+                       }
+
+                       PUT_DWORD(&CONF_Ind[6], 0x0);
+                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, CONF_Ind);
+                       break;
+               }
+               break;
+
+               /* Supplementary Service indicates success */
+       case S_SERVICE:
+               dbug(1, dprintf("Service_Ind"));
+               PUT_WORD(&CF_Ind[4], 0);
+               switch (pty_cai[5])
+               {
+               case THREE_PTY_END:
+               case THREE_PTY_BEGIN:
+               case ECT_EXECUTE:
+                       if (!plci->relatedPTYPLCI) break;
+                       tplci = plci->relatedPTYPLCI;
+                       rId = ((word)tplci->Id << 8) | tplci->adapter->Id;
+                       if (tplci->tel) rId |= EXT_CONTROLLER;
+                       if (pty_cai[5] == ECT_EXECUTE)
+                       {
+                               PUT_WORD(&SS_Ind[1], S_ECT);
+
+                               if (plci->vswitchstate != 3)
+                               {
+
+                                       plci->ptyState = IDLE;
+                                       plci->relatedPTYPLCI = NULL;
+                                       plci->ptyState = 0;
+
+                               }
+
+                               dbug(1, dprintf("ECT OK"));
+                               sendf(tplci->appl, _FACILITY_I, rId, 0, "ws", 3, SS_Ind);
+
+
+
+                       }
+                       else
+                       {
+                               switch (plci->ptyState)
+                               {
+                               case S_3PTY_BEGIN:
+                                       plci->ptyState = CONNECTED;
+                                       dbug(1, dprintf("3PTY ON"));
+                                       break;
+
+                               case S_3PTY_END:
+                                       plci->ptyState = IDLE;
+                                       plci->relatedPTYPLCI = NULL;
+                                       plci->ptyState = 0;
+                                       dbug(1, dprintf("3PTY OFF"));
+                                       break;
+                               }
+                               PUT_WORD(&SS_Ind[1], pty_cai[5] + 3);
+                               sendf(tplci->appl, _FACILITY_I, rId, 0, "ws", 3, SS_Ind);
+                       }
+                       break;
+
+               case CALL_DEFLECTION:
+                       PUT_WORD(&SS_Ind[1], pty_cai[5]);
+                       for (i = 0; i < max_appl; i++)
+                       {
+                               if (application[i].CDEnable)
+                               {
+                                       if (application[i].Id) sendf(&application[i], _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+                                       application[i].CDEnable = false;
+                               }
+                       }
+                       break;
+
+               case DEACTIVATION_DIVERSION:
+               case ACTIVATION_DIVERSION:
+                       if (!plci->appl) break;
+                       PUT_WORD(&CF_Ind[1], pty_cai[5] + 2);
+                       PUT_DWORD(&CF_Ind[6], plci->appl->S_Handle);
+                       sendf(plci->appl, _FACILITY_I, Id & 0x7, 0, "ws", 3, CF_Ind);
+                       plci_remove(plci);
+                       break;
+
+               case DIVERSION_INTERROGATE_CFU:
+               case DIVERSION_INTERROGATE_CFB:
+               case DIVERSION_INTERROGATE_CFNR:
+               case DIVERSION_INTERROGATE_NUM:
+               case CCBS_REQUEST:
+               case CCBS_DEACTIVATE:
+               case CCBS_INTERROGATE:
+                       if (!plci->appl) break;
+                       switch (pty_cai[5])
+                       {
+                       case DIVERSION_INTERROGATE_CFU:
+                       case DIVERSION_INTERROGATE_CFB:
+                       case DIVERSION_INTERROGATE_CFNR:
+                               dbug(1, dprintf("Interr_Div"));
+                               PUT_WORD(&pty_cai[1], S_INTERROGATE_DIVERSION);
+                               pty_cai[3] = pty_cai[0] - 3; /* Supplementary Service-specific parameter len */
+                               break;
+                       case DIVERSION_INTERROGATE_NUM:
+                               dbug(1, dprintf("Interr_Num"));
+                               PUT_WORD(&pty_cai[1], S_INTERROGATE_NUMBERS);
+                               pty_cai[3] = pty_cai[0] - 3; /* Supplementary Service-specific parameter len */
+                               break;
+                       case CCBS_REQUEST:
+                               dbug(1, dprintf("CCBS Request"));
+                               PUT_WORD(&pty_cai[1], S_CCBS_REQUEST);
+                               pty_cai[3] = pty_cai[0] - 3; /* Supplementary Service-specific parameter len */
+                               break;
+                       case CCBS_DEACTIVATE:
+                               dbug(1, dprintf("CCBS Deactivate"));
+                               PUT_WORD(&pty_cai[1], S_CCBS_DEACTIVATE);
+                               pty_cai[3] = pty_cai[0] - 3; /* Supplementary Service-specific parameter len */
+                               break;
+                       case CCBS_INTERROGATE:
+                               dbug(1, dprintf("CCBS Interrogate"));
+                               PUT_WORD(&pty_cai[1], S_CCBS_INTERROGATE);
+                               pty_cai[3] = pty_cai[0] - 3; /* Supplementary Service-specific parameter len */
+                               break;
+                       }
+                       PUT_WORD(&pty_cai[4], 0); /* Supplementary Service Reason */
+                       PUT_DWORD(&pty_cai[6], plci->appl->S_Handle);
+                       sendf(plci->appl, _FACILITY_I, Id & 0x7, 0, "wS", 3, pty_cai);
+                       plci_remove(plci);
+                       break;
+
+               case ACTIVATION_MWI:
+               case DEACTIVATION_MWI:
+                       if (pty_cai[5] == ACTIVATION_MWI)
+                       {
+                               PUT_WORD(&SS_Ind[1], S_MWI_ACTIVATE);
+                       }
+                       else PUT_WORD(&SS_Ind[1], S_MWI_DEACTIVATE);
+                       if (plci->cr_enquiry)
+                       {
+                               sendf(plci->appl, _FACILITY_I, Id & 0xf, 0, "ws", 3, SS_Ind);
+                               plci_remove(plci);
+                       }
+                       else
+                       {
+                               sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+                       }
+                       break;
+               case MWI_INDICATION:
+                       if (pty_cai[0] >= 0x12)
+                       {
+                               PUT_WORD(&pty_cai[3], S_MWI_INDICATE);
+                               pty_cai[2] = pty_cai[0] - 2; /* len Parameter */
+                               pty_cai[5] = pty_cai[0] - 5; /* Supplementary Service-specific parameter len */
+                               if (plci->appl && (a->Notification_Mask[plci->appl->Id - 1] & SMASK_MWI))
+                               {
+                                       if (plci->internal_command == GET_MWI_STATE) /* result on Message Waiting Listen */
+                                       {
+                                               sendf(plci->appl, _FACILITY_I, Id & 0xf, 0, "wS", 3, &pty_cai[2]);
+                                               plci_remove(plci);
+                                               return;
+                                       }
+                                       else sendf(plci->appl, _FACILITY_I, Id, 0, "wS", 3, &pty_cai[2]);
+                                       pty_cai[0] = 0;
+                               }
+                               else
+                               {
+                                       for (i = 0; i < max_appl; i++)
+                                       {
+                                               if (a->Notification_Mask[i]&SMASK_MWI)
+                                               {
+                                                       sendf(&application[i], _FACILITY_I, Id & 0x7, 0, "wS", 3, &pty_cai[2]);
+                                                       pty_cai[0] = 0;
+                                               }
+                                       }
+                               }
+
+                               if (!pty_cai[0])
+                               { /* acknowledge */
+                                       facility[2] = 0; /* returncode */
+                               }
+                               else facility[2] = 0xff;
+                       }
+                       else
+                       {
+                               /* reject */
+                               facility[2] = 0xff; /* returncode */
+                       }
+                       facility[0] = 2;
+                       facility[1] = MWI_RESPONSE; /* Function */
+                       add_p(plci, CAI, facility);
+                       add_p(plci, ESC, multi_ssext_parms[0]); /* remembered parameter -> only one possible */
+                       sig_req(plci, S_SERVICE, 0);
+                       send_req(plci);
+                       plci->command = 0;
+                       next_internal_command(Id, plci);
+                       break;
+               case CONF_ADD: /* OK */
+               case CONF_BEGIN:
+               case CONF_DROP:
+               case CONF_ISOLATE:
+               case CONF_REATTACH:
+               case CONF_PARTYDISC:
+                       CONF_Ind[0] = 9;
+                       CONF_Ind[3] = 6;
+                       switch (pty_cai[5])
+                       {
+                       case CONF_BEGIN:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_BEGIN);
+                               if (pty_cai[0] == 6)
+                               {
+                                       d = pty_cai[6];
+                                       PUT_DWORD(&CONF_Ind[6], d); /* PartyID */
+                               }
+                               else
+                               {
+                                       PUT_DWORD(&CONF_Ind[6], 0x0);
+                               }
+                               break;
+                       case CONF_ISOLATE:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_ISOLATE);
+                               CONF_Ind[0] = 5;
+                               CONF_Ind[3] = 2;
+                               break;
+                       case CONF_REATTACH:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_REATTACH);
+                               CONF_Ind[0] = 5;
+                               CONF_Ind[3] = 2;
+                               break;
+                       case CONF_DROP:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_DROP);
+                               CONF_Ind[0] = 5;
+                               CONF_Ind[3] = 2;
+                               break;
+                       case CONF_ADD:
+                               PUT_WORD(&CONF_Ind[1], S_CONF_ADD);
+                               d = pty_cai[6];
+                               PUT_DWORD(&CONF_Ind[6], d); /* PartyID */
+                               tplci = plci->relatedPTYPLCI;
+                               if (tplci) tplci->ptyState = CONNECTED;
+                               break;
+                       case CONF_PARTYDISC:
+                               CONF_Ind[0] = 7;
+                               CONF_Ind[3] = 4;
+                               PUT_WORD(&CONF_Ind[1], S_CONF_PARTYDISC);
+                               d = pty_cai[6];
+                               PUT_DWORD(&CONF_Ind[4], d); /* PartyID */
+                               break;
+                       }
+                       plci->ptyState = CONNECTED;
+                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, CONF_Ind);
+                       break;
+               case CCBS_INFO_RETAIN:
+               case CCBS_ERASECALLLINKAGEID:
+               case CCBS_STOP_ALERTING:
+                       CONF_Ind[0] = 5;
+                       CONF_Ind[3] = 2;
+                       switch (pty_cai[5])
+                       {
+                       case CCBS_INFO_RETAIN:
+                               PUT_WORD(&CONF_Ind[1], S_CCBS_INFO_RETAIN);
+                               break;
+                       case CCBS_STOP_ALERTING:
+                               PUT_WORD(&CONF_Ind[1], S_CCBS_STOP_ALERTING);
+                               break;
+                       case CCBS_ERASECALLLINKAGEID:
+                               PUT_WORD(&CONF_Ind[1], S_CCBS_ERASECALLLINKAGEID);
+                               CONF_Ind[0] = 7;
+                               CONF_Ind[3] = 4;
+                               CONF_Ind[6] = 0;
+                               CONF_Ind[7] = 0;
+                               break;
+                       }
+                       w = pty_cai[6];
+                       PUT_WORD(&CONF_Ind[4], w); /* PartyID */
+
+                       if (plci->appl && (a->Notification_Mask[plci->appl->Id - 1] & SMASK_CCBS))
+                       {
+                               sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, CONF_Ind);
+                       }
+                       else
+                       {
+                               for (i = 0; i < max_appl; i++)
+                                       if (a->Notification_Mask[i] & SMASK_CCBS)
+                                               sendf(&application[i], _FACILITY_I, Id & 0x7, 0, "ws", 3, CONF_Ind);
+                       }
+                       break;
+               }
+               break;
+       case CALL_HOLD_REJ:
+               cau = parms[7];
+               if (cau)
+               {
+                       i = _L3_CAUSE | cau[2];
+                       if (cau[2] == 0) i = 0x3603;
+               }
+               else
+               {
+                       i = 0x3603;
+               }
+               PUT_WORD(&SS_Ind[1], S_HOLD);
+               PUT_WORD(&SS_Ind[4], i);
+               if (plci->SuppState == HOLD_REQUEST)
+               {
+                       plci->SuppState = IDLE;
+                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+               }
+               break;
+
+       case CALL_HOLD_ACK:
+               if (plci->SuppState == HOLD_REQUEST)
+               {
+                       plci->SuppState = CALL_HELD;
+                       CodecIdCheck(a, plci);
+                       start_internal_command(Id, plci, hold_save_command);
+               }
+               break;
+
+       case CALL_RETRIEVE_REJ:
+               cau = parms[7];
+               if (cau)
+               {
+                       i = _L3_CAUSE | cau[2];
+                       if (cau[2] == 0) i = 0x3603;
+               }
+               else
+               {
+                       i = 0x3603;
+               }
+               PUT_WORD(&SS_Ind[1], S_RETRIEVE);
+               PUT_WORD(&SS_Ind[4], i);
+               if (plci->SuppState == RETRIEVE_REQUEST)
+               {
+                       plci->SuppState = CALL_HELD;
+                       CodecIdCheck(a, plci);
+                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+               }
+               break;
+
+       case CALL_RETRIEVE_ACK:
+               PUT_WORD(&SS_Ind[1], S_RETRIEVE);
+               if (plci->SuppState == RETRIEVE_REQUEST)
+               {
+                       plci->SuppState = IDLE;
+                       plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;
+                       plci->b_channel = esc_chi[esc_chi[0]]&0x1f;
+                       if (plci->tel)
+                       {
+                               mixer_set_bchannel_id_esc(plci, plci->b_channel);
+                               dbug(1, dprintf("RetrChannel=0x%x", plci->b_channel));
+                               SetVoiceChannel(a->AdvCodecPLCI, esc_chi, a);
+                               if (plci->B2_prot == B2_TRANSPARENT && plci->B3_prot == B3_TRANSPARENT)
+                               {
+                                       dbug(1, dprintf("Get B-ch"));
+                                       start_internal_command(Id, plci, retrieve_restore_command);
+                               }
+                               else
+                                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", 3, SS_Ind);
+                       }
+                       else
+                               start_internal_command(Id, plci, retrieve_restore_command);
+               }
+               break;
+
+       case INDICATE_IND:
+               if (plci->State != LISTENING) {
+                       sig_req(plci, HANGUP, 0);
+                       send_req(plci);
+                       break;
+               }
+               cip = find_cip(a, parms[4], parms[6]);
+               cip_mask = 1L << cip;
+               dbug(1, dprintf("cip=%d,cip_mask=%lx", cip, cip_mask));
+               clear_c_ind_mask(plci);
+               if (!remove_started && !a->adapter_disabled)
+               {
+                       set_c_ind_mask_bit(plci, MAX_APPL);
+                       group_optimization(a, plci);
+                       for (i = 0; i < max_appl; i++) {
+                               if (application[i].Id
+                                   && (a->CIP_Mask[i] & 1 || a->CIP_Mask[i] & cip_mask)
+                                   && CPN_filter_ok(parms[0], a, i)
+                                   && test_group_ind_mask_bit(plci, i)) {
+                                       dbug(1, dprintf("storedcip_mask[%d]=0x%lx", i, a->CIP_Mask[i]));
+                                       set_c_ind_mask_bit(plci, i);
+                                       dump_c_ind_mask(plci);
+                                       plci->State = INC_CON_PENDING;
+                                       plci->call_dir = (plci->call_dir & ~(CALL_DIR_OUT | CALL_DIR_ORIGINATE)) |
+                                               CALL_DIR_IN | CALL_DIR_ANSWER;
+                                       if (esc_chi[0]) {
+                                               plci->b_channel = esc_chi[esc_chi[0]] & 0x1f;
+                                               mixer_set_bchannel_id_esc(plci, plci->b_channel);
+                                       }
+                                       /* if a listen on the ext controller is done, check if hook states */
+                                       /* are supported or if just a on board codec must be activated     */
+                                       if (a->codec_listen[i] && !a->AdvSignalPLCI) {
+                                               if (a->profile.Global_Options & HANDSET)
+                                                       plci->tel = ADV_VOICE;
+                                               else if (a->profile.Global_Options & ON_BOARD_CODEC)
+                                                       plci->tel = CODEC;
+                                               if (plci->tel) Id |= EXT_CONTROLLER;
+                                               a->codec_listen[i] = plci;
+                                       }
+
+                                       sendf(&application[i], _CONNECT_I, Id, 0,
+                                             "wSSSSSSSbSSSSS", cip,    /* CIP                 */
+                                             parms[0],    /* CalledPartyNumber   */
+                                             multi_CiPN_parms[0],    /* CallingPartyNumber  */
+                                             parms[2],    /* CalledPartySubad    */
+                                             parms[3],    /* CallingPartySubad   */
+                                             parms[4],    /* BearerCapability    */
+                                             parms[5],    /* LowLC               */
+                                             parms[6],    /* HighLC              */
+                                             ai_len,      /* nested struct add_i */
+                                             add_i[0],    /* B channel info    */
+                                             add_i[1],    /* keypad facility   */
+                                             add_i[2],    /* user user data    */
+                                             add_i[3],    /* nested facility   */
+                                             multi_CiPN_parms[1]    /* second CiPN(SCR)   */
+                                               );
+                                       SendSSExtInd(&application[i],
+                                                    plci,
+                                                    Id,
+                                                    multi_ssext_parms);
+                                       SendSetupInfo(&application[i],
+                                                     plci,
+                                                     Id,
+                                                     parms,
+                                                     SendMultiIE(plci, Id, multi_pi_parms, PI, 0x210, true));
+                               }
+                       }
+                       clear_c_ind_mask_bit(plci, MAX_APPL);
+                       dump_c_ind_mask(plci);
+               }
+               if (c_ind_mask_empty(plci)) {
+                       sig_req(plci, HANGUP, 0);
+                       send_req(plci);
+                       plci->State = IDLE;
+               }
+               plci->notifiedcall = 0;
+               a->listen_active--;
+               listen_check(a);
+               break;
+
+       case CALL_PEND_NOTIFY:
+               plci->notifiedcall = 1;
+               listen_check(a);
+               break;
+
+       case CALL_IND:
+       case CALL_CON:
+               if (plci->State == ADVANCED_VOICE_SIG || plci->State == ADVANCED_VOICE_NOSIG)
+               {
+                       if (plci->internal_command == PERM_COD_CONN_PEND)
+                       {
+                               if (plci->State == ADVANCED_VOICE_NOSIG)
+                               {
+                                       dbug(1, dprintf("***Codec OK"));
+                                       if (a->AdvSignalPLCI)
+                                       {
+                                               tplci = a->AdvSignalPLCI;
+                                               if (tplci->spoofed_msg)
+                                               {
+                                                       dbug(1, dprintf("***Spoofed Msg(0x%x)", tplci->spoofed_msg));
+                                                       tplci->command = 0;
+                                                       tplci->internal_command = 0;
+                                                       x_Id = ((word)tplci->Id << 8) | tplci->adapter->Id | 0x80;
+                                                       switch (tplci->spoofed_msg)
+                                                       {
+                                                       case CALL_RES:
+                                                               tplci->command = _CONNECT_I | RESPONSE;
+                                                               api_load_msg(&tplci->saved_msg, saved_parms);
+                                                               add_b1(tplci, &saved_parms[1], 0, tplci->B1_facilities);
+                                                               if (tplci->adapter->Info_Mask[tplci->appl->Id - 1] & 0x200)
+                                                               {
+                                                                       /* early B3 connect (CIP mask bit 9) no release after a disc */
+                                                                       add_p(tplci, LLI, "\x01\x01");
+                                                               }
+                                                               add_s(tplci, CONN_NR, &saved_parms[2]);
+                                                               add_s(tplci, LLC, &saved_parms[4]);
+                                                               add_ai(tplci, &saved_parms[5]);
+                                                               tplci->State = INC_CON_ACCEPT;
+                                                               sig_req(tplci, CALL_RES, 0);
+                                                               send_req(tplci);
+                                                               break;
+
+                                                       case AWAITING_SELECT_B:
+                                                               dbug(1, dprintf("Select_B continue"));
+                                                               start_internal_command(x_Id, tplci, select_b_command);
+                                                               break;
+
+                                                       case AWAITING_MANUF_CON: /* Get_Plci per Manufacturer_Req to ext controller */
+                                                               if (!tplci->Sig.Id)
+                                                               {
+                                                                       dbug(1, dprintf("No SigID!"));
+                                                                       sendf(tplci->appl, _MANUFACTURER_R | CONFIRM, x_Id, tplci->number, "dww", _DI_MANU_ID, _MANUFACTURER_R, _OUT_OF_PLCI);
+                                                                       plci_remove(tplci);
+                                                                       break;
+                                                               }
+                                                               tplci->command = _MANUFACTURER_R;
+                                                               api_load_msg(&tplci->saved_msg, saved_parms);
+                                                               dir = saved_parms[2].info[0];
+                                                               if (dir == 1) {
+                                                                       sig_req(tplci, CALL_REQ, 0);
+                                                               }
+                                                               else if (!dir) {
+                                                                       sig_req(tplci, LISTEN_REQ, 0);
+                                                               }
+                                                               send_req(tplci);
+                                                               sendf(tplci->appl, _MANUFACTURER_R | CONFIRM, x_Id, tplci->number, "dww", _DI_MANU_ID, _MANUFACTURER_R, 0);
+                                                               break;
+
+                                                       case (CALL_REQ | AWAITING_MANUF_CON):
+                                                               sig_req(tplci, CALL_REQ, 0);
+                                                               send_req(tplci);
+                                                               break;
+
+                                                       case CALL_REQ:
+                                                               if (!tplci->Sig.Id)
+                                                               {
+                                                                       dbug(1, dprintf("No SigID!"));
+                                                                       sendf(tplci->appl, _CONNECT_R | CONFIRM, tplci->adapter->Id, 0, "w", _OUT_OF_PLCI);
+                                                                       plci_remove(tplci);
+                                                                       break;
+                                                               }
+                                                               tplci->command = _CONNECT_R;
+                                                               api_load_msg(&tplci->saved_msg, saved_parms);
+                                                               add_s(tplci, CPN, &saved_parms[1]);
+                                                               add_s(tplci, DSA, &saved_parms[3]);
+                                                               add_ai(tplci, &saved_parms[9]);
+                                                               sig_req(tplci, CALL_REQ, 0);
+                                                               send_req(tplci);
+                                                               break;
+
+                                                       case CALL_RETRIEVE:
+                                                               tplci->command = C_RETRIEVE_REQ;
+                                                               sig_req(tplci, CALL_RETRIEVE, 0);
+                                                               send_req(tplci);
+                                                               break;
+                                                       }
+                                                       tplci->spoofed_msg = 0;
+                                                       if (tplci->internal_command == 0)
+                                                               next_internal_command(x_Id, tplci);
+                                               }
+                                       }
+                                       next_internal_command(Id, plci);
+                                       break;
+                               }
+                               dbug(1, dprintf("***Codec Hook Init Req"));
+                               plci->internal_command = PERM_COD_HOOK;
+                               add_p(plci, FTY, "\x01\x09");             /* Get Hook State*/
+                               sig_req(plci, TEL_CTRL, 0);
+                               send_req(plci);
+                       }
+               }
+               else if (plci->command != _MANUFACTURER_R  /* old style permanent connect */
+                        && plci->State != INC_ACT_PENDING)
+               {
+                       mixer_set_bchannel_id_esc(plci, plci->b_channel);
+                       if (plci->tel == ADV_VOICE && plci->SuppState == IDLE) /* with permanent codec switch on immediately */
+                       {
+                               chi[2] = plci->b_channel;
+                               SetVoiceChannel(a->AdvCodecPLCI, chi, a);
+                       }
+                       sendf(plci->appl, _CONNECT_ACTIVE_I, Id, 0, "Sss", parms[21], "", "");
+                       plci->State = INC_ACT_PENDING;
+               }
+               break;
+
+       case TEL_CTRL:
+               ie = multi_fac_parms[0]; /* inspect the facility hook indications */
+               if (plci->State == ADVANCED_VOICE_SIG && ie[0]) {
+                       switch (ie[1] & 0x91) {
+                       case 0x80:   /* hook off */
+                       case 0x81:
+                               if (plci->internal_command == PERM_COD_HOOK)
+                               {
+                                       dbug(1, dprintf("init:hook_off"));
+                                       plci->hook_state = ie[1];
+                                       next_internal_command(Id, plci);
+                                       break;
+                               }
+                               else /* ignore doubled hook indications */
+                               {
+                                       if (((plci->hook_state) & 0xf0) == 0x80)
+                                       {
+                                               dbug(1, dprintf("ignore hook"));
+                                               break;
+                                       }
+                                       plci->hook_state = ie[1]&0x91;
+                               }
+                               /* check for incoming call pending */
+                               /* and signal '+'.Appl must decide */
+                               /* with connect_res if call must   */
+                               /* accepted or not                 */
+                               for (i = 0, tplci = NULL; i < max_appl; i++) {
+                                       if (a->codec_listen[i]
+                                           && (a->codec_listen[i]->State == INC_CON_PENDING
+                                               || a->codec_listen[i]->State == INC_CON_ALERT)) {
+                                               tplci = a->codec_listen[i];
+                                               tplci->appl = &application[i];
+                                       }
+                               }
+                               /* no incoming call, do outgoing call */
+                               /* and signal '+' if outg. setup   */
+                               if (!a->AdvSignalPLCI && !tplci) {
+                                       if ((i = get_plci(a))) {
+                                               a->AdvSignalPLCI = &a->plci[i - 1];
+                                               tplci = a->AdvSignalPLCI;
+                                               tplci->tel  = ADV_VOICE;
+                                               PUT_WORD(&voice_cai[5], a->AdvSignalAppl->MaxDataLength);
+                                               if (a->Info_Mask[a->AdvSignalAppl->Id - 1] & 0x200) {
+                                                       /* early B3 connect (CIP mask bit 9) no release after a disc */
+                                                       add_p(tplci, LLI, "\x01\x01");
+                                               }
+                                               add_p(tplci, CAI, voice_cai);
+                                               add_p(tplci, OAD, a->TelOAD);
+                                               add_p(tplci, OSA, a->TelOSA);
+                                               add_p(tplci, SHIFT | 6, NULL);
+                                               add_p(tplci, SIN, "\x02\x01\x00");
+                                               add_p(tplci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               sig_req(tplci, ASSIGN, DSIG_ID);
+                                               a->AdvSignalPLCI->internal_command = HOOK_OFF_REQ;
+                                               a->AdvSignalPLCI->command = 0;
+                                               tplci->appl = a->AdvSignalAppl;
+                                               tplci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
+                                               send_req(tplci);
+                                       }
+
+                               }
+
+                               if (!tplci) break;
+                               Id = ((word)tplci->Id << 8) | a->Id;
+                               Id |= EXT_CONTROLLER;
+                               sendf(tplci->appl,
+                                     _FACILITY_I,
+                                     Id,
+                                     0,
+                                     "ws", (word)0, "\x01+");
+                               break;
+
+                       case 0x90:   /* hook on  */
+                       case 0x91:
+                               if (plci->internal_command == PERM_COD_HOOK)
+                               {
+                                       dbug(1, dprintf("init:hook_on"));
+                                       plci->hook_state = ie[1] & 0x91;
+                                       next_internal_command(Id, plci);
+                                       break;
+                               }
+                               else /* ignore doubled hook indications */
+                               {
+                                       if (((plci->hook_state) & 0xf0) == 0x90) break;
+                                       plci->hook_state = ie[1] & 0x91;
+                               }
+                               /* hangup the adv. voice call and signal '-' to the appl */
+                               if (a->AdvSignalPLCI) {
+                                       Id = ((word)a->AdvSignalPLCI->Id << 8) | a->Id;
+                                       if (plci->tel) Id |= EXT_CONTROLLER;
+                                       sendf(a->AdvSignalAppl,
+                                             _FACILITY_I,
+                                             Id,
+                                             0,
+                                             "ws", (word)0, "\x01-");
+                                       a->AdvSignalPLCI->internal_command = HOOK_ON_REQ;
+                                       a->AdvSignalPLCI->command = 0;
+                                       sig_req(a->AdvSignalPLCI, HANGUP, 0);
+                                       send_req(a->AdvSignalPLCI);
+                               }
+                               break;
+                       }
+               }
+               break;
+
+       case RESUME:
+               clear_c_ind_mask_bit(plci, (word)(plci->appl->Id - 1));
+               PUT_WORD(&resume_cau[4], GOOD);
+               sendf(plci->appl, _FACILITY_I, Id, 0, "ws", (word)3, resume_cau);
+               break;
+
+       case SUSPEND:
+               clear_c_ind_mask(plci);
+
+               if (plci->NL.Id && !plci->nl_remove_id) {
+                       mixer_remove(plci);
+                       nl_req_ncci(plci, REMOVE, 0);
+               }
+               if (!plci->sig_remove_id) {
+                       plci->internal_command = 0;
+                       sig_req(plci, REMOVE, 0);
+               }
+               send_req(plci);
+               if (!plci->channels) {
+                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", (word)3, "\x05\x04\x00\x02\x00\x00");
+                       sendf(plci->appl, _DISCONNECT_I, Id, 0, "w", 0);
+               }
+               break;
+
+       case SUSPEND_REJ:
+               break;
+
+       case HANGUP:
+               plci->hangup_flow_ctrl_timer = 0;
+               if (plci->manufacturer && plci->State == LOCAL_CONNECT) break;
+               cau = parms[7];
+               if (cau) {
+                       i = _L3_CAUSE | cau[2];
+                       if (cau[2] == 0) i = 0;
+                       else if (cau[2] == 8) i = _L1_ERROR;
+                       else if (cau[2] == 9 || cau[2] == 10) i = _L2_ERROR;
+                       else if (cau[2] == 5) i = _CAPI_GUARD_ERROR;
+               }
+               else {
+                       i = _L3_ERROR;
+               }
+
+               if (plci->State == INC_CON_PENDING || plci->State == INC_CON_ALERT)
+               {
+                       for (i = 0; i < max_appl; i++)
+                       {
+                               if (test_c_ind_mask_bit(plci, i))
+                                       sendf(&application[i], _DISCONNECT_I, Id, 0, "w", 0);
+                       }
+               }
+               else
+               {
+                       clear_c_ind_mask(plci);
+               }
+               if (!plci->appl)
+               {
+                       if (plci->State == LISTENING)
+                       {
+                               plci->notifiedcall = 0;
+                               a->listen_active--;
+                       }
+                       plci->State = INC_DIS_PENDING;
+                       if (c_ind_mask_empty(plci))
+                       {
+                               plci->State = IDLE;
+                               if (plci->NL.Id && !plci->nl_remove_id)
+                               {
+                                       mixer_remove(plci);
+                                       nl_req_ncci(plci, REMOVE, 0);
+                               }
+                               if (!plci->sig_remove_id)
+                               {
+                                       plci->internal_command = 0;
+                                       sig_req(plci, REMOVE, 0);
+                               }
+                               send_req(plci);
+                       }
+               }
+               else
+               {
+                       /* collision of DISCONNECT or CONNECT_RES with HANGUP can   */
+                       /* result in a second HANGUP! Don't generate another        */
+                       /* DISCONNECT                                               */
+                       if (plci->State != IDLE && plci->State != INC_DIS_PENDING)
+                       {
+                               if (plci->State == RESUMING)
+                               {
+                                       PUT_WORD(&resume_cau[4], i);
+                                       sendf(plci->appl, _FACILITY_I, Id, 0, "ws", (word)3, resume_cau);
+                               }
+                               plci->State = INC_DIS_PENDING;
+                               sendf(plci->appl, _DISCONNECT_I, Id, 0, "w", i);
+                       }
+               }
+               break;
+
+       case SSEXT_IND:
+               SendSSExtInd(NULL, plci, Id, multi_ssext_parms);
+               break;
+
+       case VSWITCH_REQ:
+               VSwitchReqInd(plci, Id, multi_vswitch_parms);
+               break;
+       case VSWITCH_IND:
              if (plci->relatedPTYPLCI &&
+                   plci->vswitchstate == 3 &&
+                   plci->relatedPTYPLCI->vswitchstate == 3 &&
+                   parms[MAXPARMSIDS - 1][0])
              {
+                       add_p(plci->relatedPTYPLCI, SMSG, parms[MAXPARMSIDS - 1]);
+                       sig_req(plci->relatedPTYPLCI, VSWITCH_REQ, 0);
+                       send_req(plci->relatedPTYPLCI);
              }
+               else VSwitchReqInd(plci, Id, multi_vswitch_parms);
+               break;
+
+       }
+}
+
+
+static void SendSetupInfo(APPL *appl, PLCI *plci, dword Id, byte **parms, byte Info_Sent_Flag)
+{
+       word i;
+       byte *ie;
+       word Info_Number;
+       byte *Info_Element;
+       word Info_Mask = 0;
+
+       dbug(1, dprintf("SetupInfo"));
+
+       for (i = 0; i < MAXPARMSIDS; i++) {
+               ie = parms[i];
+               Info_Number = 0;
+               Info_Element = ie;
+               if (ie[0]) {
+                       switch (i) {
+                       case 0:
+                               dbug(1, dprintf("CPN "));
+                               Info_Number = 0x0070;
+                               Info_Mask = 0x80;
+                               Info_Sent_Flag = true;
+                               break;
+                       case 8:  /* display      */
+                               dbug(1, dprintf("display(%d)", i));
+                               Info_Number = 0x0028;
+                               Info_Mask = 0x04;
+                               Info_Sent_Flag = true;
+                               break;
+                       case 16: /* Channel Id */
+                               dbug(1, dprintf("CHI"));
+                               Info_Number = 0x0018;
+                               Info_Mask = 0x100;
+                               Info_Sent_Flag = true;
+                               mixer_set_bchannel_id(plci, Info_Element);
+                               break;
+                       case 19: /* Redirected Number */
+                               dbug(1, dprintf("RDN"));
+                               Info_Number = 0x0074;
+                               Info_Mask = 0x400;
+                               Info_Sent_Flag = true;
+                               break;
+                       case 20: /* Redirected Number extended */
+                               dbug(1, dprintf("RDX"));
+                               Info_Number = 0x0073;
+                               Info_Mask = 0x400;
+                               Info_Sent_Flag = true;
+                               break;
+                       case 22: /* Redirecing Number  */
+                               dbug(1, dprintf("RIN"));
+                               Info_Number = 0x0076;
+                               Info_Mask = 0x400;
+                               Info_Sent_Flag = true;
+                               break;
+                       default:
+                               Info_Number = 0;
+                               break;
+                       }
+               }
+
+               if (i == MAXPARMSIDS - 2) { /* to indicate the message type "Setup" */
+                       Info_Number = 0x8000 | 5;
+                       Info_Mask = 0x10;
+                       Info_Element = "";
+               }
+
+               if (Info_Sent_Flag && Info_Number) {
+                       if (plci->adapter->Info_Mask[appl->Id - 1] & Info_Mask) {
+                               sendf(appl, _INFO_I, Id, 0, "wS", Info_Number, Info_Element);
+                       }
+               }
+       }
 }
 
 
 static void SendInfo(PLCI *plci, dword Id, byte **parms, byte iesent)
 {
-  word i;
-  word j;
-  word k;
-  byte   * ie;
-  word Info_Number;
-  byte   * Info_Element;
-  word Info_Mask = 0;
-  static byte charges[5] = {4,0,0,0,0};
-  static byte cause[] = {0x02,0x80,0x00};
-  APPL   *appl;
-
-  dbug(1,dprintf("InfoParse "));
-
-  if(
-        !plci->appl
-        && !plci->State
-        && plci->Sig.Ind!=NCR_FACILITY
-      )
-  {
-    dbug(1,dprintf("NoParse "));
-    return;
-  }
-  cause[2] = 0;
-  for(i=0; i<MAXPARMSIDS; i++) {
-    ie = parms[i];
-    Info_Number = 0;
-    Info_Element = ie;
-    if(ie[0]) {
-      switch(i) {
-      case 0:
-        dbug(1,dprintf("CPN "));
-        Info_Number = 0x0070;
-        Info_Mask   = 0x80;
-        break;
-      case 7: /* ESC_CAU */
-        dbug(1,dprintf("cau(0x%x)",ie[2]));
-        Info_Number = 0x0008;
-        Info_Mask = 0x00;
-        cause[2] = ie[2];
-        Info_Element = NULL;
-        break;
-      case 8:  /* display      */
-        dbug(1,dprintf("display(%d)",i));
-        Info_Number = 0x0028;
-        Info_Mask = 0x04;
-        break;
-      case 9:  /* Date display */
-        dbug(1,dprintf("date(%d)",i));
-        Info_Number = 0x0029;
-        Info_Mask = 0x02;
-        break;
-      case 10: /* charges */
-        for(j=0;j<4;j++) charges[1+j] = 0;
-        for(j=0; j<ie[0] && !(ie[1+j]&0x80); j++);
-        for(k=1,j++; j<ie[0] && k<=4; j++,k++) charges[k] = ie[1+j];
-        Info_Number = 0x4000;
-        Info_Mask = 0x40;
-        Info_Element = charges;
-        break;
-      case 11: /* user user info */
-        dbug(1,dprintf("uui"));
-        Info_Number = 0x007E;
-        Info_Mask = 0x08;
-        break;
-      case 12: /* congestion receiver ready */
-        dbug(1,dprintf("clRDY"));
-        Info_Number = 0x00B0;
-        Info_Mask = 0x08;
-        Info_Element = "";
-        break;
-      case 13: /* congestion receiver not ready */
-        dbug(1,dprintf("clNRDY"));
-        Info_Number = 0x00BF;
-        Info_Mask = 0x08;
-        Info_Element = "";
-        break;
-      case 15: /* Keypad Facility */
-        dbug(1,dprintf("KEY"));
-        Info_Number = 0x002C;
-        Info_Mask = 0x20;
-        break;
-      case 16: /* Channel Id */
-        dbug(1,dprintf("CHI"));
-        Info_Number = 0x0018;
-        Info_Mask = 0x100;
-        mixer_set_bchannel_id (plci, Info_Element);
-        break;
-      case 17: /* if no 1tr6 cause, send full cause, else esc_cause */
-        dbug(1,dprintf("q9cau(0x%x)",ie[2]));
-        if(!cause[2] || cause[2]<0x80) break;  /* eg. layer 1 error */
-        Info_Number = 0x0008;
-        Info_Mask = 0x01;
-        if(cause[2] != ie[2]) Info_Element = cause;
-        break;
-      case 19: /* Redirected Number */
-        dbug(1,dprintf("RDN"));
-        Info_Number = 0x0074;
-        Info_Mask = 0x400;
-        break;
-      case 22: /* Redirecing Number  */
-        dbug(1,dprintf("RIN"));
-        Info_Number = 0x0076;
-        Info_Mask = 0x400;
-        break;
-      case 23: /* Notification Indicator  */
-        dbug(1,dprintf("NI"));
-        Info_Number = (word)NI;
-        Info_Mask = 0x210;
-        break;
-      case 26: /* Call State  */
-        dbug(1,dprintf("CST"));
-        Info_Number = (word)CST;
-        Info_Mask = 0x01; /* do with cause i.e. for now */
-        break;
-      case MAXPARMSIDS-2:  /* Escape Message Type, must be the last indication */
-        dbug(1,dprintf("ESC/MT[0x%x]",ie[3]));
-        Info_Number = 0x8000 |ie[3];
-        if(iesent) Info_Mask = 0xffff;
-        else  Info_Mask = 0x10;
-        Info_Element = "";
-        break;
-      default:
-        Info_Number  = 0;
-        Info_Mask    = 0;
-        Info_Element = "";
-        break;
-      }
-    }
-
-    if(plci->Sig.Ind==NCR_FACILITY)           /* check controller broadcast */
-    {
-      for(j=0; j<max_appl; j++)
-      {
-        appl = &application[j];
-        if(Info_Number
-        && appl->Id
-        && plci->adapter->Info_Mask[appl->Id-1] &Info_Mask)
-        {
-          dbug(1,dprintf("NCR_Ind"));
-          iesent=true;
-          sendf(&application[j],_INFO_I,Id&0x0f,0,"wS",Info_Number,Info_Element);
-        }
-      }
-    }
-    else if(!plci->appl)
-    { /* overlap receiving broadcast */
-      if(Info_Number==CPN
-      || Info_Number==KEY
-      || Info_Number==NI
-      || Info_Number==DSP
-      || Info_Number==UUI )
-      {
-        for(j=0; j<max_appl; j++)
-        {
-          if(test_c_ind_mask_bit (plci, j))
-          {
-            dbug(1,dprintf("Ovl_Ind"));
-            iesent=true;
-            sendf(&application[j],_INFO_I,Id,0,"wS",Info_Number,Info_Element);
-          }
-        }
-      }
-    }               /* all other signalling states */
-    else if(Info_Number
-    && plci->adapter->Info_Mask[plci->appl->Id-1] &Info_Mask)
-    {
-      dbug(1,dprintf("Std_Ind"));
-      iesent=true;
-      sendf(plci->appl,_INFO_I,Id,0,"wS",Info_Number,Info_Element);
-    }
-  }
+       word i;
+       word j;
+       word k;
+       byte *ie;
+       word Info_Number;
+       byte *Info_Element;
+       word Info_Mask = 0;
+       static byte charges[5] = {4, 0, 0, 0, 0};
+       static byte cause[] = {0x02, 0x80, 0x00};
+       APPL *appl;
+
+       dbug(1, dprintf("InfoParse "));
+
+       if (
+               !plci->appl
+               && !plci->State
+               && plci->Sig.Ind != NCR_FACILITY
+               )
+       {
+               dbug(1, dprintf("NoParse "));
+               return;
+       }
+       cause[2] = 0;
+       for (i = 0; i < MAXPARMSIDS; i++) {
+               ie = parms[i];
+               Info_Number = 0;
+               Info_Element = ie;
+               if (ie[0]) {
+                       switch (i) {
+                       case 0:
+                               dbug(1, dprintf("CPN "));
+                               Info_Number = 0x0070;
+                               Info_Mask   = 0x80;
+                               break;
+                       case 7: /* ESC_CAU */
+                               dbug(1, dprintf("cau(0x%x)", ie[2]));
+                               Info_Number = 0x0008;
+                               Info_Mask = 0x00;
+                               cause[2] = ie[2];
+                               Info_Element = NULL;
+                               break;
+                       case 8:  /* display      */
+                               dbug(1, dprintf("display(%d)", i));
+                               Info_Number = 0x0028;
+                               Info_Mask = 0x04;
+                               break;
+                       case 9:  /* Date display */
+                               dbug(1, dprintf("date(%d)", i));
+                               Info_Number = 0x0029;
+                               Info_Mask = 0x02;
+                               break;
+                       case 10: /* charges */
+                               for (j = 0; j < 4; j++) charges[1 + j] = 0;
+                               for (j = 0; j < ie[0] && !(ie[1 + j] & 0x80); j++);
+                               for (k = 1, j++; j < ie[0] && k <= 4; j++, k++) charges[k] = ie[1 + j];
+                               Info_Number = 0x4000;
+                               Info_Mask = 0x40;
+                               Info_Element = charges;
+                               break;
+                       case 11: /* user user info */
+                               dbug(1, dprintf("uui"));
+                               Info_Number = 0x007E;
+                               Info_Mask = 0x08;
+                               break;
+                       case 12: /* congestion receiver ready */
+                               dbug(1, dprintf("clRDY"));
+                               Info_Number = 0x00B0;
+                               Info_Mask = 0x08;
+                               Info_Element = "";
+                               break;
+                       case 13: /* congestion receiver not ready */
+                               dbug(1, dprintf("clNRDY"));
+                               Info_Number = 0x00BF;
+                               Info_Mask = 0x08;
+                               Info_Element = "";
+                               break;
+                       case 15: /* Keypad Facility */
+                               dbug(1, dprintf("KEY"));
+                               Info_Number = 0x002C;
+                               Info_Mask = 0x20;
+                               break;
+                       case 16: /* Channel Id */
+                               dbug(1, dprintf("CHI"));
+                               Info_Number = 0x0018;
+                               Info_Mask = 0x100;
+                               mixer_set_bchannel_id(plci, Info_Element);
+                               break;
+                       case 17: /* if no 1tr6 cause, send full cause, else esc_cause */
+                               dbug(1, dprintf("q9cau(0x%x)", ie[2]));
+                               if (!cause[2] || cause[2] < 0x80) break;  /* eg. layer 1 error */
+                               Info_Number = 0x0008;
+                               Info_Mask = 0x01;
+                               if (cause[2] != ie[2]) Info_Element = cause;
+                               break;
+                       case 19: /* Redirected Number */
+                               dbug(1, dprintf("RDN"));
+                               Info_Number = 0x0074;
+                               Info_Mask = 0x400;
+                               break;
+                       case 22: /* Redirecing Number  */
+                               dbug(1, dprintf("RIN"));
+                               Info_Number = 0x0076;
+                               Info_Mask = 0x400;
+                               break;
+                       case 23: /* Notification Indicator  */
+                               dbug(1, dprintf("NI"));
+                               Info_Number = (word)NI;
+                               Info_Mask = 0x210;
+                               break;
+                       case 26: /* Call State  */
+                               dbug(1, dprintf("CST"));
+                               Info_Number = (word)CST;
+                               Info_Mask = 0x01; /* do with cause i.e. for now */
+                               break;
+                       case MAXPARMSIDS - 2:  /* Escape Message Type, must be the last indication */
+                               dbug(1, dprintf("ESC/MT[0x%x]", ie[3]));
+                               Info_Number = 0x8000 | ie[3];
+                               if (iesent) Info_Mask = 0xffff;
+                               else  Info_Mask = 0x10;
+                               Info_Element = "";
+                               break;
+                       default:
+                               Info_Number  = 0;
+                               Info_Mask    = 0;
+                               Info_Element = "";
+                               break;
+                       }
+               }
+
+               if (plci->Sig.Ind == NCR_FACILITY)           /* check controller broadcast */
+               {
+                       for (j = 0; j < max_appl; j++)
+                       {
+                               appl = &application[j];
+                               if (Info_Number
+                                   && appl->Id
+                                   && plci->adapter->Info_Mask[appl->Id - 1] & Info_Mask)
+                               {
+                                       dbug(1, dprintf("NCR_Ind"));
+                                       iesent = true;
+                                       sendf(&application[j], _INFO_I, Id & 0x0f, 0, "wS", Info_Number, Info_Element);
+                               }
+                       }
+               }
+               else if (!plci->appl)
+               { /* overlap receiving broadcast */
+                       if (Info_Number == CPN
+                           || Info_Number == KEY
+                           || Info_Number == NI
+                           || Info_Number == DSP
+                           || Info_Number == UUI)
+                       {
+                               for (j = 0; j < max_appl; j++)
+                               {
+                                       if (test_c_ind_mask_bit(plci, j))
+                                       {
+                                               dbug(1, dprintf("Ovl_Ind"));
+                                               iesent = true;
+                                               sendf(&application[j], _INFO_I, Id, 0, "wS", Info_Number, Info_Element);
+                                       }
+                               }
+                       }
+               }               /* all other signalling states */
+               else if (Info_Number
+                        && plci->adapter->Info_Mask[plci->appl->Id - 1] & Info_Mask)
+               {
+                       dbug(1, dprintf("Std_Ind"));
+                       iesent = true;
+                       sendf(plci->appl, _INFO_I, Id, 0, "wS", Info_Number, Info_Element);
+               }
+       }
 }
 
 
 static byte SendMultiIE(PLCI *plci, dword Id, byte **parms, byte ie_type,
                        dword info_mask, byte setupParse)
 {
-  word i;
-  word j;
-  byte   * ie;
-  word Info_Number;
-  byte   * Info_Element;
-  APPL   *appl;
-  word Info_Mask = 0;
-  byte iesent=0;
-
-  if(
-      !plci->appl
-      && !plci->State
-      && plci->Sig.Ind!=NCR_FACILITY
-      && !setupParse
-      )
-  {
-    dbug(1,dprintf("NoM-IEParse "));
-    return 0;
-  }
-  dbug(1,dprintf("M-IEParse "));
-
-  for(i=0; i<MAX_MULTI_IE; i++)
-  {
-    ie = parms[i];
-    Info_Number = 0;
-    Info_Element = ie;
-    if(ie[0])
-    {
-      dbug(1,dprintf("[Ind0x%x]:IE=0x%x",plci->Sig.Ind,ie_type));
-      Info_Number = (word)ie_type;
-      Info_Mask = (word)info_mask;
-    }
-
-    if(plci->Sig.Ind==NCR_FACILITY)           /* check controller broadcast */
-    {
-      for(j=0; j<max_appl; j++)
-      {
-        appl = &application[j];
-        if(Info_Number
-        && appl->Id
-        && plci->adapter->Info_Mask[appl->Id-1] &Info_Mask)
-        {
-          iesent = true;
-          dbug(1,dprintf("Mlt_NCR_Ind"));
-          sendf(&application[j],_INFO_I,Id&0x0f,0,"wS",Info_Number,Info_Element);
-        }
-      }
-    }
-    else if(!plci->appl && Info_Number)
-    {                                        /* overlap receiving broadcast */
-      for(j=0; j<max_appl; j++)
-      {
-        if(test_c_ind_mask_bit (plci, j))
-        {
-          iesent = true;
-          dbug(1,dprintf("Mlt_Ovl_Ind"));
-          sendf(&application[j],_INFO_I,Id,0,"wS",Info_Number,Info_Element);
-        }
-      }
-    }                                        /* all other signalling states */
-    else if(Info_Number
-    && plci->adapter->Info_Mask[plci->appl->Id-1] &Info_Mask)
-    {
-      iesent = true;
-      dbug(1,dprintf("Mlt_Std_Ind"));
-      sendf(plci->appl,_INFO_I,Id,0,"wS",Info_Number,Info_Element);
-    }
-  }
-  return iesent;
-}
-
-static void SendSSExtInd(APPL   * appl, PLCI   * plci, dword Id, byte   * * parms)
-{
-  word i;
-   /* Format of multi_ssext_parms[i][]:
-   0 byte length
-   1 byte SSEXTIE
-   2 byte SSEXT_REQ/SSEXT_IND
-   3 byte length
-   4 word SSExtCommand
-   6... Params
-   */
-  if(
-   plci
-   && plci->State
-   && plci->Sig.Ind!=NCR_FACILITY
-    )
for(i=0;i<MAX_MULTI_IE;i++)
-    {
-      if(parms[i][0]<6) continue;
-   if(parms[i][2]==SSEXT_REQ) continue;
-
-   if(appl)
-   {
-    parms[i][0]=0; /* kill it */
-    sendf(appl,_MANUFACTURER_I,
-    Id,
-    0,
-    "dwS",
-    _DI_MANU_ID,
-    _DI_SSEXT_CTRL,
-    &parms[i][3]);
-   }
-   else if(plci->appl)
-   {
-    parms[i][0]=0; /* kill it */
-    sendf(plci->appl,_MANUFACTURER_I,
-    Id,
-    0,
-    "dwS",
-    _DI_MANU_ID,
-    _DI_SSEXT_CTRL,
-    &parms[i][3]);
-   }
-    }
+       word i;
+       word j;
+       byte *ie;
+       word Info_Number;
+       byte *Info_Element;
+       APPL *appl;
+       word Info_Mask = 0;
+       byte iesent = 0;
+
+       if (
+               !plci->appl
+               && !plci->State
+               && plci->Sig.Ind != NCR_FACILITY
+               && !setupParse
+               )
+       {
+               dbug(1, dprintf("NoM-IEParse "));
+               return 0;
+       }
+       dbug(1, dprintf("M-IEParse "));
+
+       for (i = 0; i < MAX_MULTI_IE; i++)
+       {
+               ie = parms[i];
+               Info_Number = 0;
+               Info_Element = ie;
+               if (ie[0])
+               {
+                       dbug(1, dprintf("[Ind0x%x]:IE=0x%x", plci->Sig.Ind, ie_type));
+                       Info_Number = (word)ie_type;
+                       Info_Mask = (word)info_mask;
+               }
+
+               if (plci->Sig.Ind == NCR_FACILITY)           /* check controller broadcast */
+               {
+                       for (j = 0; j < max_appl; j++)
+                       {
+                               appl = &application[j];
+                               if (Info_Number
+                                   && appl->Id
+                                   && plci->adapter->Info_Mask[appl->Id - 1] & Info_Mask)
+                               {
+                                       iesent = true;
+                                       dbug(1, dprintf("Mlt_NCR_Ind"));
+                                       sendf(&application[j], _INFO_I, Id & 0x0f, 0, "wS", Info_Number, Info_Element);
+                               }
+                       }
+               }
+               else if (!plci->appl && Info_Number)
+               {                                        /* overlap receiving broadcast */
+                       for (j = 0; j < max_appl; j++)
+                       {
+                               if (test_c_ind_mask_bit(plci, j))
+                               {
+                                       iesent = true;
+                                       dbug(1, dprintf("Mlt_Ovl_Ind"));
+                                       sendf(&application[j] , _INFO_I, Id, 0, "wS", Info_Number, Info_Element);
+                               }
+                       }
+               }                                        /* all other signalling states */
+               else if (Info_Number
+                        && plci->adapter->Info_Mask[plci->appl->Id - 1] & Info_Mask)
+               {
+                       iesent = true;
+                       dbug(1, dprintf("Mlt_Std_Ind"));
+                       sendf(plci->appl, _INFO_I, Id, 0, "wS", Info_Number, Info_Element);
+               }
+       }
+       return iesent;
+}
+
+static void SendSSExtInd(APPL *appl, PLCI *plci, dword Id, byte **parms)
+{
+       word i;
+       /* Format of multi_ssext_parms[i][]:
+          0 byte length
+          1 byte SSEXTIE
+          2 byte SSEXT_REQ/SSEXT_IND
+          3 byte length
+          4 word SSExtCommand
+          6... Params
+       */
+       if (
+               plci
+               && plci->State
+               && plci->Sig.Ind != NCR_FACILITY
+               )
              for (i = 0; i < MAX_MULTI_IE; i++)
+               {
+                       if (parms[i][0] < 6) continue;
+                       if (parms[i][2] == SSEXT_REQ) continue;
+
+                       if (appl)
+                       {
+                               parms[i][0] = 0; /* kill it */
+                               sendf(appl, _MANUFACTURER_I,
+                                     Id,
+                                     0,
+                                     "dwS",
+                                     _DI_MANU_ID,
+                                     _DI_SSEXT_CTRL,
+                                     &parms[i][3]);
+                       }
+                       else if (plci->appl)
+                       {
+                               parms[i][0] = 0; /* kill it */
+                               sendf(plci->appl, _MANUFACTURER_I,
+                                     Id,
+                                     0,
+                                     "dwS",
+                                     _DI_MANU_ID,
+                                     _DI_SSEXT_CTRL,
+                                     &parms[i][3]);
+                       }
+               }
 };
 
 static void nl_ind(PLCI *plci)
 {
-  byte ch;
-  word ncci;
-  dword Id;
-  DIVA_CAPI_ADAPTER   * a;
-  word NCCIcode;
-  APPL   * APPLptr;
-  word count;
-  word Num;
-  word i, ncpi_state;
-  byte len, ncci_state;
-  word msg;
-  word info = 0;
-  word fax_feature_bits;
-  byte fax_send_edata_ack;
-  static byte v120_header_buffer[2 + 3];
-  static word fax_info[] = {
-    0,                     /* T30_SUCCESS                        */
-    _FAX_NO_CONNECTION,    /* T30_ERR_NO_DIS_RECEIVED            */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_NO_RESPONSE        */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_RESPONSE          */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_TOO_MANY_REPEATS           */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_UNEXPECTED_MESSAGE         */
-    _FAX_REMOTE_ABORT,     /* T30_ERR_UNEXPECTED_DCN             */
-    _FAX_LOCAL_ABORT,      /* T30_ERR_DTC_UNSUPPORTED            */
-    _FAX_TRAINING_ERROR,   /* T30_ERR_ALL_RATES_FAILED           */
-    _FAX_TRAINING_ERROR,   /* T30_ERR_TOO_MANY_TRAINS            */
-    _FAX_PARAMETER_ERROR,  /* T30_ERR_RECEIVE_CORRUPTED          */
-    _FAX_REMOTE_ABORT,     /* T30_ERR_UNEXPECTED_DISC            */
-    _FAX_LOCAL_ABORT,      /* T30_ERR_APPLICATION_DISC           */
-    _FAX_REMOTE_REJECT,    /* T30_ERR_INCOMPATIBLE_DIS           */
-    _FAX_LOCAL_ABORT,      /* T30_ERR_INCOMPATIBLE_DCS           */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_NO_COMMAND         */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_COMMAND           */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_COMMAND_TOO_LONG   */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_RESPONSE_TOO_LONG  */
-    _FAX_NO_CONNECTION,    /* T30_ERR_NOT_IDENTIFIED             */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_SUPERVISORY_TIMEOUT        */
-    _FAX_PARAMETER_ERROR,  /* T30_ERR_TOO_LONG_SCAN_LINE         */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_PAGE_AFTER_MPS    */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_PAGE_AFTER_CFR    */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCS_AFTER_FTT     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCS_AFTER_EOM     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCS_AFTER_MPS     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCN_AFTER_MCF     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCN_AFTER_RTN     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_CFR               */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_MCF_AFTER_EOP     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_MCF_AFTER_EOM     */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_MCF_AFTER_MPS     */
-    0x331d,                /* T30_ERR_SUB_SEP_UNSUPPORTED        */
-    0x331e,                /* T30_ERR_PWD_UNSUPPORTED            */
-    0x331f,                /* T30_ERR_SUB_SEP_PWD_UNSUPPORTED    */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_INVALID_COMMAND_FRAME      */
-    _FAX_PARAMETER_ERROR,  /* T30_ERR_UNSUPPORTED_PAGE_CODING    */
-    _FAX_PARAMETER_ERROR,  /* T30_ERR_INVALID_PAGE_CODING        */
-    _FAX_REMOTE_REJECT,    /* T30_ERR_INCOMPATIBLE_PAGE_CONFIG   */
-    _FAX_LOCAL_ABORT,      /* T30_ERR_TIMEOUT_FROM_APPLICATION   */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_NO_REACTION_ON_MARK */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_TRAINING_TIMEOUT    */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_UNEXPECTED_V21      */
-    _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_PRIMARY_CTS_ON      */
-    _FAX_LOCAL_ABORT,      /* T30_ERR_V34FAX_TURNAROUND_POLLING  */
-    _FAX_LOCAL_ABORT       /* T30_ERR_V34FAX_V8_INCOMPATIBILITY  */
-  };
-
-    byte dtmf_code_buffer[CAPIDTMF_RECV_DIGIT_BUFFER_SIZE + 1];
-
-
-  static word rtp_info[] = {
-    GOOD,                  /* RTP_SUCCESS                       */
-    0x3600                 /* RTP_ERR_SSRC_OR_PAYLOAD_CHANGE    */
-  };
-
-  static dword udata_forwarding_table[0x100 / sizeof(dword)] =
-  {
-    0x0020301e, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000
-  };
-
-  ch = plci->NL.IndCh;
-  a = plci->adapter;
-  ncci = a->ch_ncci[ch];
-  Id = (((dword)(ncci ? ncci : ch)) << 16) | (((word) plci->Id) << 8) | a->Id;
-  if(plci->tel) Id|=EXT_CONTROLLER;
-  APPLptr = plci->appl;
-  dbug(1,dprintf("NL_IND-Id(NL:0x%x)=0x%08lx,plci=%x,tel=%x,state=0x%x,ch=0x%x,chs=%d,Ind=%x",
-    plci->NL.Id,Id,plci->Id,plci->tel,plci->State,ch,plci->channels,plci->NL.Ind &0x0f));
-
-  /* in the case if no connect_active_Ind was sent to the appl we wait for */
-
-  if (plci->nl_remove_id)
-  {
-    plci->NL.RNR = 2; /* discard */
-    dbug(1,dprintf("NL discard while remove pending"));
-    return;
-  }
-  if((plci->NL.Ind &0x0f)==N_CONNECT)
-  {
-    if(plci->State==INC_DIS_PENDING
-    || plci->State==OUTG_DIS_PENDING
-    || plci->State==IDLE)
-    {
-      plci->NL.RNR = 2; /* discard */
-      dbug(1,dprintf("discard n_connect"));
-      return;
-    }
-    if(plci->State < INC_ACT_PENDING)
-    {
-      plci->NL.RNR = 1; /* flow control */
-      channel_x_off (plci, ch, N_XON_CONNECT_IND);
-      return;
-    }
-  }
-
-  if(!APPLptr)                         /* no application or invalid data */
-  {                                    /* while reloading the DSP        */
-    dbug(1,dprintf("discard1"));
-    plci->NL.RNR = 2;
-    return;
-  }
-
-  if (((plci->NL.Ind &0x0f) == N_UDATA)
-     && (((plci->B2_prot != B2_SDLC) && ((plci->B1_resource == 17) || (plci->B1_resource == 18)))
-        || (plci->B2_prot == 7)
-        || (plci->B3_prot == 7)) )
-  {
-    plci->ncpi_buffer[0] = 0;
-
-    ncpi_state = plci->ncpi_state;
-    if (plci->NL.complete == 1)
-    {
-      byte  * data = &plci->NL.RBuffer->P[0];
-
-      if ((plci->NL.RBuffer->length >= 12)
-        &&( (*data == DSP_UDATA_INDICATION_DCD_ON)
-          ||(*data == DSP_UDATA_INDICATION_CTS_ON)) )
-      {
-        word conn_opt, ncpi_opt = 0x00;
+       byte ch;
+       word ncci;
+       dword Id;
+       DIVA_CAPI_ADAPTER *a;
+       word NCCIcode;
+       APPL *APPLptr;
+       word count;
+       word Num;
+       word i, ncpi_state;
+       byte len, ncci_state;
+       word msg;
+       word info = 0;
+       word fax_feature_bits;
+       byte fax_send_edata_ack;
+       static byte v120_header_buffer[2 + 3];
+       static word fax_info[] = {
+               0,                     /* T30_SUCCESS                        */
+               _FAX_NO_CONNECTION,    /* T30_ERR_NO_DIS_RECEIVED            */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_NO_RESPONSE        */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_RESPONSE          */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_TOO_MANY_REPEATS           */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_UNEXPECTED_MESSAGE         */
+               _FAX_REMOTE_ABORT,     /* T30_ERR_UNEXPECTED_DCN             */
+               _FAX_LOCAL_ABORT,      /* T30_ERR_DTC_UNSUPPORTED            */
+               _FAX_TRAINING_ERROR,   /* T30_ERR_ALL_RATES_FAILED           */
+               _FAX_TRAINING_ERROR,   /* T30_ERR_TOO_MANY_TRAINS            */
+               _FAX_PARAMETER_ERROR,  /* T30_ERR_RECEIVE_CORRUPTED          */
+               _FAX_REMOTE_ABORT,     /* T30_ERR_UNEXPECTED_DISC            */
+               _FAX_LOCAL_ABORT,      /* T30_ERR_APPLICATION_DISC           */
+               _FAX_REMOTE_REJECT,    /* T30_ERR_INCOMPATIBLE_DIS           */
+               _FAX_LOCAL_ABORT,      /* T30_ERR_INCOMPATIBLE_DCS           */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_NO_COMMAND         */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_COMMAND           */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_COMMAND_TOO_LONG   */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_TIMEOUT_RESPONSE_TOO_LONG  */
+               _FAX_NO_CONNECTION,    /* T30_ERR_NOT_IDENTIFIED             */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_SUPERVISORY_TIMEOUT        */
+               _FAX_PARAMETER_ERROR,  /* T30_ERR_TOO_LONG_SCAN_LINE         */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_PAGE_AFTER_MPS    */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_PAGE_AFTER_CFR    */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCS_AFTER_FTT     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCS_AFTER_EOM     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCS_AFTER_MPS     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCN_AFTER_MCF     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_DCN_AFTER_RTN     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_CFR               */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_MCF_AFTER_EOP     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_MCF_AFTER_EOM     */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_RETRY_NO_MCF_AFTER_MPS     */
+               0x331d,                /* T30_ERR_SUB_SEP_UNSUPPORTED        */
+               0x331e,                /* T30_ERR_PWD_UNSUPPORTED            */
+               0x331f,                /* T30_ERR_SUB_SEP_PWD_UNSUPPORTED    */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_INVALID_COMMAND_FRAME      */
+               _FAX_PARAMETER_ERROR,  /* T30_ERR_UNSUPPORTED_PAGE_CODING    */
+               _FAX_PARAMETER_ERROR,  /* T30_ERR_INVALID_PAGE_CODING        */
+               _FAX_REMOTE_REJECT,    /* T30_ERR_INCOMPATIBLE_PAGE_CONFIG   */
+               _FAX_LOCAL_ABORT,      /* T30_ERR_TIMEOUT_FROM_APPLICATION   */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_NO_REACTION_ON_MARK */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_TRAINING_TIMEOUT    */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_UNEXPECTED_V21      */
+               _FAX_PROTOCOL_ERROR,   /* T30_ERR_V34FAX_PRIMARY_CTS_ON      */
+               _FAX_LOCAL_ABORT,      /* T30_ERR_V34FAX_TURNAROUND_POLLING  */
+               _FAX_LOCAL_ABORT       /* T30_ERR_V34FAX_V8_INCOMPATIBILITY  */
+       };
+
+       byte dtmf_code_buffer[CAPIDTMF_RECV_DIGIT_BUFFER_SIZE + 1];
+
+
+       static word rtp_info[] = {
+               GOOD,                  /* RTP_SUCCESS                       */
+               0x3600                 /* RTP_ERR_SSRC_OR_PAYLOAD_CHANGE    */
+       };
+
+       static dword udata_forwarding_table[0x100 / sizeof(dword)] =
+               {
+                       0x0020301e, 0x00000000, 0x00000000, 0x00000000,
+                       0x00000000, 0x00000000, 0x00000000, 0x00000000
+               };
+
+       ch = plci->NL.IndCh;
+       a = plci->adapter;
+       ncci = a->ch_ncci[ch];
+       Id = (((dword)(ncci ? ncci : ch)) << 16) | (((word) plci->Id) << 8) | a->Id;
+       if (plci->tel) Id |= EXT_CONTROLLER;
+       APPLptr = plci->appl;
+       dbug(1, dprintf("NL_IND-Id(NL:0x%x)=0x%08lx,plci=%x,tel=%x,state=0x%x,ch=0x%x,chs=%d,Ind=%x",
+                       plci->NL.Id, Id, plci->Id, plci->tel, plci->State, ch, plci->channels, plci->NL.Ind & 0x0f));
+
+       /* in the case if no connect_active_Ind was sent to the appl we wait for */
+
+       if (plci->nl_remove_id)
+       {
+               plci->NL.RNR = 2; /* discard */
+               dbug(1, dprintf("NL discard while remove pending"));
+               return;
+       }
+       if ((plci->NL.Ind & 0x0f) == N_CONNECT)
+       {
+               if (plci->State == INC_DIS_PENDING
+                   || plci->State == OUTG_DIS_PENDING
+                   || plci->State == IDLE)
+               {
+                       plci->NL.RNR = 2; /* discard */
+                       dbug(1, dprintf("discard n_connect"));
+                       return;
+               }
+               if (plci->State < INC_ACT_PENDING)
+               {
+                       plci->NL.RNR = 1; /* flow control */
+                       channel_x_off(plci, ch, N_XON_CONNECT_IND);
+                       return;
+               }
+       }
+
+       if (!APPLptr)                         /* no application or invalid data */
+       {                                    /* while reloading the DSP        */
+               dbug(1, dprintf("discard1"));
+               plci->NL.RNR = 2;
+               return;
+       }
+
+       if (((plci->NL.Ind & 0x0f) == N_UDATA)
+           && (((plci->B2_prot != B2_SDLC) && ((plci->B1_resource == 17) || (plci->B1_resource == 18)))
+               || (plci->B2_prot == 7)
+               || (plci->B3_prot == 7)))
+       {
+               plci->ncpi_buffer[0] = 0;
+
+               ncpi_state = plci->ncpi_state;
+               if (plci->NL.complete == 1)
+               {
+                       byte *data = &plci->NL.RBuffer->P[0];
+
+                       if ((plci->NL.RBuffer->length >= 12)
+                           && ((*data == DSP_UDATA_INDICATION_DCD_ON)
+                               || (*data == DSP_UDATA_INDICATION_CTS_ON)))
+                       {
+                               word conn_opt, ncpi_opt = 0x00;
 /*      HexDump ("MDM N_UDATA:", plci->NL.RBuffer->length, data); */
 
-        if (*data == DSP_UDATA_INDICATION_DCD_ON)
-          plci->ncpi_state |= NCPI_MDM_DCD_ON_RECEIVED;
-        if (*data == DSP_UDATA_INDICATION_CTS_ON)
-          plci->ncpi_state |= NCPI_MDM_CTS_ON_RECEIVED;
-
-        data++;    /* indication code */
-        data += 2; /* timestamp */
-        if ((*data == DSP_CONNECTED_NORM_V18) || (*data == DSP_CONNECTED_NORM_VOWN))
-          ncpi_state &= ~(NCPI_MDM_DCD_ON_RECEIVED | NCPI_MDM_CTS_ON_RECEIVED);
-        data++;    /* connected norm */
-        conn_opt = GET_WORD(data);
-        data += 2; /* connected options */
-
-        PUT_WORD (&(plci->ncpi_buffer[1]), (word)(GET_DWORD(data) & 0x0000FFFF));
-
-        if (conn_opt & DSP_CONNECTED_OPTION_MASK_V42)
-        {
-          ncpi_opt |= MDM_NCPI_ECM_V42;
-        }
-        else if (conn_opt & DSP_CONNECTED_OPTION_MASK_MNP)
-        {
-          ncpi_opt |= MDM_NCPI_ECM_MNP;
-        }
-        else
-        {
-          ncpi_opt |= MDM_NCPI_TRANSPARENT;
-        }
-        if (conn_opt & DSP_CONNECTED_OPTION_MASK_COMPRESSION)
-        {
-          ncpi_opt |= MDM_NCPI_COMPRESSED;
-        }
-        PUT_WORD (&(plci->ncpi_buffer[3]), ncpi_opt);
-        plci->ncpi_buffer[0] = 4;
-
-        plci->ncpi_state |= NCPI_VALID_CONNECT_B3_IND | NCPI_VALID_CONNECT_B3_ACT | NCPI_VALID_DISC_B3_IND;
-      }
-    }
-    if (plci->B3_prot == 7)
-    {
-      if (((a->ncci_state[ncci] == INC_ACT_PENDING) || (a->ncci_state[ncci] == OUTG_CON_PENDING))
-       && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-       && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-      {
-        a->ncci_state[ncci] = INC_ACT_PENDING;
-        sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"S",plci->ncpi_buffer);
-        plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-      }
-    }
-
-    if (!((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id-1])
-        & ((1L << PRIVATE_V18) | (1L << PRIVATE_VOWN)))
-     || !(ncpi_state & NCPI_MDM_DCD_ON_RECEIVED)
-     || !(ncpi_state & NCPI_MDM_CTS_ON_RECEIVED))
-
-    {
-      plci->NL.RNR = 2;
-      return;
-    }
-  }
-
-  if(plci->NL.complete == 2)
-    {
-    if (((plci->NL.Ind &0x0f) == N_UDATA)
-     && !(udata_forwarding_table[plci->RData[0].P[0] >> 5] & (1L << (plci->RData[0].P[0] & 0x1f))))
-    {
-      switch(plci->RData[0].P[0])
-      {
-
-      case DTMF_UDATA_INDICATION_FAX_CALLING_TONE:
-        if (plci->dtmf_rec_active & DTMF_LISTEN_ACTIVE_FLAG)
-          sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0,"ws", SELECTOR_DTMF, "\x01X");
-        break;
-      case DTMF_UDATA_INDICATION_ANSWER_TONE:
-        if (plci->dtmf_rec_active & DTMF_LISTEN_ACTIVE_FLAG)
-          sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0,"ws", SELECTOR_DTMF, "\x01Y");
-        break;
-      case DTMF_UDATA_INDICATION_DIGITS_RECEIVED:
-        dtmf_indication (Id, plci, plci->RData[0].P, plci->RData[0].PLength);
-        break;
-      case DTMF_UDATA_INDICATION_DIGITS_SENT:
-        dtmf_confirmation (Id, plci);
-        break;
-
-
-      case UDATA_INDICATION_MIXER_TAP_DATA:
-        capidtmf_recv_process_block (&(plci->capidtmf_state), plci->RData[0].P + 1, (word)(plci->RData[0].PLength - 1));
i = capidtmf_indication (&(plci->capidtmf_state), dtmf_code_buffer + 1);
- if (i != 0)
- {
-   dtmf_code_buffer[0] = DTMF_UDATA_INDICATION_DIGITS_RECEIVED;
-          dtmf_indication (Id, plci, dtmf_code_buffer, (word)(i + 1));
- }
-        break;
-
-
-      case UDATA_INDICATION_MIXER_COEFS_SET:
-        mixer_indication_coefs_set (Id, plci);
-        break;
-      case UDATA_INDICATION_XCONNECT_FROM:
-        mixer_indication_xconnect_from (Id, plci, plci->RData[0].P, plci->RData[0].PLength);
-        break;
-      case UDATA_INDICATION_XCONNECT_TO:
-        mixer_indication_xconnect_to (Id, plci, plci->RData[0].P, plci->RData[0].PLength);
-        break;
-
-
-      case LEC_UDATA_INDICATION_DISABLE_DETECT:
-        ec_indication (Id, plci, plci->RData[0].P, plci->RData[0].PLength);
-        break;
-
-
-
-      default:
-        break;
-      }
-    }
-    else
-  {
-      if ((plci->RData[0].PLength != 0)
-     && ((plci->B2_prot == B2_V120_ASYNC)
-      || (plci->B2_prot == B2_V120_ASYNC_V42BIS)
-      || (plci->B2_prot == B2_V120_BIT_TRANSPARENT)))
-    {
-
-      sendf(plci->appl,_DATA_B3_I,Id,0,
-            "dwww",
-            plci->RData[1].P,
-              (plci->NL.RNum < 2) ? 0 : plci->RData[1].PLength,
-            plci->RNum,
-            plci->RFlags);
-
-    }
-    else
-    {
-
-      sendf(plci->appl,_DATA_B3_I,Id,0,
-            "dwww",
-            plci->RData[0].P,
-            plci->RData[0].PLength,
-            plci->RNum,
-            plci->RFlags);
-
-    }
-    }
-    return;
-  }
-
-  fax_feature_bits = 0;
-  if((plci->NL.Ind &0x0f)==N_CONNECT ||
-     (plci->NL.Ind &0x0f)==N_CONNECT_ACK ||
-     (plci->NL.Ind &0x0f)==N_DISC ||
-     (plci->NL.Ind &0x0f)==N_EDATA ||
-     (plci->NL.Ind &0x0f)==N_DISC_ACK)
-  {
-    info = 0;
-    plci->ncpi_buffer[0] = 0;
-    switch (plci->B3_prot) {
-    case  0: /*XPARENT*/
-    case  1: /*T.90 NL*/
-      break;    /* no network control protocol info - jfr */
-    case  2: /*ISO8202*/
-    case  3: /*X25 DCE*/
-      for(i=0; i<plci->NL.RLength; i++) plci->ncpi_buffer[4+i] = plci->NL.RBuffer->P[i];
-      plci->ncpi_buffer[0] = (byte)(i+3);
-      plci->ncpi_buffer[1] = (byte)(plci->NL.Ind &N_D_BIT? 1:0);
-      plci->ncpi_buffer[2] = 0;
-      plci->ncpi_buffer[3] = 0;
-      break;
-    case  4: /*T.30 - FAX*/
-    case  5: /*T.30 - FAX*/
-      if(plci->NL.RLength>=sizeof(T30_INFO))
-      {
-        dbug(1,dprintf("FaxStatus %04x", ((T30_INFO   *)plci->NL.RBuffer->P)->code));
-        len = 9;
-        PUT_WORD(&(plci->ncpi_buffer[1]),((T30_INFO   *)plci->NL.RBuffer->P)->rate_div_2400 * 2400);
-        fax_feature_bits = GET_WORD(&((T30_INFO   *)plci->NL.RBuffer->P)->feature_bits_low);
-        i = (((T30_INFO   *)plci->NL.RBuffer->P)->resolution & T30_RESOLUTION_R8_0770_OR_200) ? 0x0001 : 0x0000;
-        if (plci->B3_prot == 5)
-        {
-          if (!(fax_feature_bits & T30_FEATURE_BIT_ECM))
-            i |= 0x8000; /* This is not an ECM connection */
-          if (fax_feature_bits & T30_FEATURE_BIT_T6_CODING)
-            i |= 0x4000; /* This is a connection with MMR compression */
-          if (fax_feature_bits & T30_FEATURE_BIT_2D_CODING)
-            i |= 0x2000; /* This is a connection with MR compression */
-          if (fax_feature_bits & T30_FEATURE_BIT_MORE_DOCUMENTS)
-            i |= 0x0004; /* More documents */
-          if (fax_feature_bits & T30_FEATURE_BIT_POLLING)
-            i |= 0x0002; /* Fax-polling indication */
-        }
-        dbug(1,dprintf("FAX Options %04x %04x",fax_feature_bits,i));
-        PUT_WORD(&(plci->ncpi_buffer[3]),i);
-        PUT_WORD(&(plci->ncpi_buffer[5]),((T30_INFO   *)plci->NL.RBuffer->P)->data_format);
-        plci->ncpi_buffer[7] = ((T30_INFO   *)plci->NL.RBuffer->P)->pages_low;
-        plci->ncpi_buffer[8] = ((T30_INFO   *)plci->NL.RBuffer->P)->pages_high;
-        plci->ncpi_buffer[len] = 0;
-        if(((T30_INFO   *)plci->NL.RBuffer->P)->station_id_len)
-        {
-          plci->ncpi_buffer[len] = 20;
-          for (i = 0; i < T30_MAX_STATION_ID_LENGTH; i++)
-            plci->ncpi_buffer[++len] = ((T30_INFO   *)plci->NL.RBuffer->P)->station_id[i];
-        }
-        if (((plci->NL.Ind & 0x0f) == N_DISC) || ((plci->NL.Ind & 0x0f) == N_DISC_ACK))
-        {
-         if (((T30_INFO   *)plci->NL.RBuffer->P)->code < ARRAY_SIZE(fax_info))
-            info = fax_info[((T30_INFO   *)plci->NL.RBuffer->P)->code];
-          else
-            info = _FAX_PROTOCOL_ERROR;
-        }
-
-        if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[plci->appl->Id-1])
-          & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
-        {
-          i = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + ((T30_INFO   *)plci->NL.RBuffer->P)->head_line_len;
-          while (i < plci->NL.RBuffer->length)
-            plci->ncpi_buffer[++len] = plci->NL.RBuffer->P[i++];
-        }
-
-        plci->ncpi_buffer[0] = len;
-        fax_feature_bits = GET_WORD(&((T30_INFO   *)plci->NL.RBuffer->P)->feature_bits_low);
-        PUT_WORD(&((T30_INFO   *)plci->fax_connect_info_buffer)->feature_bits_low, fax_feature_bits);
-
-        plci->ncpi_state |= NCPI_VALID_CONNECT_B3_IND;
if (((plci->NL.Ind &0x0f) == N_CONNECT_ACK)
-         || (((plci->NL.Ind &0x0f) == N_CONNECT)
-          && (fax_feature_bits & T30_FEATURE_BIT_POLLING))
-         || (((plci->NL.Ind &0x0f) == N_EDATA)
-          && ((((T30_INFO   *)plci->NL.RBuffer->P)->code == EDATA_T30_TRAIN_OK)
-           || (((T30_INFO   *)plci->NL.RBuffer->P)->code == EDATA_T30_DIS)
-           || (((T30_INFO   *)plci->NL.RBuffer->P)->code == EDATA_T30_DTC))))
- {
-          plci->ncpi_state |= NCPI_VALID_CONNECT_B3_ACT;
- }
if (((plci->NL.Ind &0x0f) == N_DISC)
-  || ((plci->NL.Ind &0x0f) == N_DISC_ACK)
-  || (((plci->NL.Ind &0x0f) == N_EDATA)
-   && (((T30_INFO   *)plci->NL.RBuffer->P)->code == EDATA_T30_EOP_CAPI)))
- {
-          plci->ncpi_state |= NCPI_VALID_CONNECT_B3_ACT | NCPI_VALID_DISC_B3_IND;
- }
-      }
-      break;
-
-    case B3_RTP:
-      if (((plci->NL.Ind & 0x0f) == N_DISC) || ((plci->NL.Ind & 0x0f) == N_DISC_ACK))
-      {
-        if (plci->NL.RLength != 0)
-        {
-          info = rtp_info[plci->NL.RBuffer->P[0]];
-          plci->ncpi_buffer[0] = plci->NL.RLength - 1;
-          for (i = 1; i < plci->NL.RLength; i++)
-            plci->ncpi_buffer[i] = plci->NL.RBuffer->P[i];
-        }
-      }
-      break;
-
-    }
-    plci->NL.RNR = 2;
-  }
-  switch(plci->NL.Ind &0x0f) {
-  case N_EDATA:
-    if ((plci->B3_prot == 4) || (plci->B3_prot == 5))
-    {
-      dbug(1,dprintf("EDATA ncci=0x%x state=%d code=%02x", ncci, a->ncci_state[ncci],
-        ((T30_INFO   *)plci->NL.RBuffer->P)->code));
-      fax_send_edata_ack = (((T30_INFO   *)(plci->fax_connect_info_buffer))->operating_mode == T30_OPERATING_MODE_CAPI_NEG);
-
-      if ((plci->nsf_control_bits & T30_NSF_CONTROL_BIT_ENABLE_NSF)
-       && (plci->nsf_control_bits & (T30_NSF_CONTROL_BIT_NEGOTIATE_IND | T30_NSF_CONTROL_BIT_NEGOTIATE_RESP))
-       && (((T30_INFO   *)plci->NL.RBuffer->P)->code == EDATA_T30_DIS)
-       && (a->ncci_state[ncci] == OUTG_CON_PENDING)
-       && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-       && !(plci->ncpi_state & NCPI_NEGOTIATE_B3_SENT))
-      {
-        ((T30_INFO   *)(plci->fax_connect_info_buffer))->code = ((T30_INFO   *)plci->NL.RBuffer->P)->code;
-        sendf(plci->appl,_MANUFACTURER_I,Id,0,"dwbS",_DI_MANU_ID,_DI_NEGOTIATE_B3,
-          (byte)(plci->ncpi_buffer[0] + 1), plci->ncpi_buffer);
-        plci->ncpi_state |= NCPI_NEGOTIATE_B3_SENT;
- if (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_NEGOTIATE_RESP)
-   fax_send_edata_ack = false;
-      }
-
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
-      {
-        switch (((T30_INFO   *)plci->NL.RBuffer->P)->code)
-        {
-        case EDATA_T30_DIS:
-          if ((a->ncci_state[ncci] == OUTG_CON_PENDING)
-           && !(GET_WORD(&((T30_INFO   *)plci->fax_connect_info_buffer)->control_bits_low) & T30_CONTROL_BIT_REQUEST_POLLING)
-           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-          {
-            a->ncci_state[ncci] = INC_ACT_PENDING;
-            if (plci->B3_prot == 4)
-              sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-            else
-              sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"S",plci->ncpi_buffer);
-            plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-          }
-          break;
-
-        case EDATA_T30_TRAIN_OK:
-          if ((a->ncci_state[ncci] == INC_ACT_PENDING)
-           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-          {
-            if (plci->B3_prot == 4)
-              sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-            else
-              sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"S",plci->ncpi_buffer);
-            plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-          }
-          break;
-
-        case EDATA_T30_EOP_CAPI:
-          if (a->ncci_state[ncci] == CONNECTED)
-          {
-            sendf(plci->appl,_DISCONNECT_B3_I,Id,0,"wS",GOOD,plci->ncpi_buffer);
-            a->ncci_state[ncci] = INC_DIS_PENDING;
-            plci->ncpi_state = 0;
-     fax_send_edata_ack = false;
-          }
-          break;
-        }
-      }
-      else
-      {
-        switch (((T30_INFO   *)plci->NL.RBuffer->P)->code)
-        {
-        case EDATA_T30_TRAIN_OK:
-          if ((a->ncci_state[ncci] == INC_ACT_PENDING)
-           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-          {
-            if (plci->B3_prot == 4)
-              sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-            else
-              sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"S",plci->ncpi_buffer);
-            plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-          }
-          break;
-        }
-      }
-      if (fax_send_edata_ack)
-      {
-        ((T30_INFO   *)(plci->fax_connect_info_buffer))->code = ((T30_INFO   *)plci->NL.RBuffer->P)->code;
- plci->fax_edata_ack_length = 1;
-        start_internal_command (Id, plci, fax_edata_ack_command);
-      }
-    }
-    else
-    {
-      dbug(1,dprintf("EDATA ncci=0x%x state=%d", ncci, a->ncci_state[ncci]));
-    }
-    break;
-  case N_CONNECT:
-    if (!a->ch_ncci[ch])
-    {
-      ncci = get_ncci (plci, ch, 0);
-      Id = (Id & 0xffff) | (((dword) ncci) << 16);
-    }
-    dbug(1,dprintf("N_CONNECT: ch=%d state=%d plci=%lx plci_Id=%lx plci_State=%d",
-      ch, a->ncci_state[ncci], a->ncci_plci[ncci], plci->Id, plci->State));
-
-    msg = _CONNECT_B3_I;
-    if (a->ncci_state[ncci] == IDLE)
-      plci->channels++;
-    else if (plci->B3_prot == 1)
-      msg = _CONNECT_B3_T90_ACTIVE_I;
-
-    a->ncci_state[ncci] = INC_CON_PENDING;
-    if(plci->B3_prot == 4)
-      sendf(plci->appl,msg,Id,0,"s","");
-    else
-      sendf(plci->appl,msg,Id,0,"S",plci->ncpi_buffer);
-    break;
-  case N_CONNECT_ACK:
-    dbug(1,dprintf("N_connect_Ack"));
-    if (plci->internal_command_queue[0]
-     && ((plci->adjust_b_state == ADJUST_B_CONNECT_2)
-      || (plci->adjust_b_state == ADJUST_B_CONNECT_3)
-      || (plci->adjust_b_state == ADJUST_B_CONNECT_4)))
-    {
-      (*(plci->internal_command_queue[0]))(Id, plci, 0);
-      if (!plci->internal_command)
-        next_internal_command (Id, plci);
-      break;
-    }
-    msg = _CONNECT_B3_ACTIVE_I;
-    if (plci->B3_prot == 1)
-    {
-      if (a->ncci_state[ncci] != OUTG_CON_PENDING)
-        msg = _CONNECT_B3_T90_ACTIVE_I;
-      a->ncci_state[ncci] = INC_ACT_PENDING;
-      sendf(plci->appl,msg,Id,0,"S",plci->ncpi_buffer);
-    }
-    else if ((plci->B3_prot == 4) || (plci->B3_prot == 5) || (plci->B3_prot == 7))
-    {
-      if ((a->ncci_state[ncci] == OUTG_CON_PENDING)
-       && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-       && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-      {
-        a->ncci_state[ncci] = INC_ACT_PENDING;
-        if (plci->B3_prot == 4)
-          sendf(plci->appl,msg,Id,0,"s","");
-        else
-          sendf(plci->appl,msg,Id,0,"S",plci->ncpi_buffer);
-        plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-      }
-    }
-    else
-    {
-      a->ncci_state[ncci] = INC_ACT_PENDING;
-      sendf(plci->appl,msg,Id,0,"S",plci->ncpi_buffer);
-    }
-    if (plci->adjust_b_restore)
-    {
-      plci->adjust_b_restore = false;
-      start_internal_command (Id, plci, adjust_b_restore);
-    }
-    break;
-  case N_DISC:
-  case N_DISC_ACK:
-    if (plci->internal_command_queue[0]
-     && ((plci->internal_command == FAX_DISCONNECT_COMMAND_1)
-      || (plci->internal_command == FAX_DISCONNECT_COMMAND_2)
-      || (plci->internal_command == FAX_DISCONNECT_COMMAND_3)))
-    {
-      (*(plci->internal_command_queue[0]))(Id, plci, 0);
-      if (!plci->internal_command)
-        next_internal_command (Id, plci);
-    }
-    ncci_state = a->ncci_state[ncci];
-    ncci_remove (plci, ncci, false);
-
-        /* with N_DISC or N_DISC_ACK the IDI frees the respective   */
-        /* channel, so we cannot store the state in ncci_state! The */
-        /* information which channel we received a N_DISC is thus   */
-        /* stored in the inc_dis_ncci_table buffer.                 */
-    for(i=0; plci->inc_dis_ncci_table[i]; i++);
-    plci->inc_dis_ncci_table[i] = (byte) ncci;
-
-      /* need a connect_b3_ind before a disconnect_b3_ind with FAX */
-    if (!plci->channels
-     && (plci->B1_resource == 16)
-     && (plci->State <= CONNECTED))
-    {
-      len = 9;
-      i = ((T30_INFO   *)plci->fax_connect_info_buffer)->rate_div_2400 * 2400;
-      PUT_WORD (&plci->ncpi_buffer[1], i);
-      PUT_WORD (&plci->ncpi_buffer[3], 0);
-      i = ((T30_INFO   *)plci->fax_connect_info_buffer)->data_format;
-      PUT_WORD (&plci->ncpi_buffer[5], i);
-      PUT_WORD (&plci->ncpi_buffer[7], 0);
-      plci->ncpi_buffer[len] = 0;
-      plci->ncpi_buffer[0] = len;
-      if(plci->B3_prot == 4)
-        sendf(plci->appl,_CONNECT_B3_I,Id,0,"s","");
-      else
-      {
-
-        if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[plci->appl->Id-1])
-          & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
-        {
-          plci->ncpi_buffer[++len] = 0;
-          plci->ncpi_buffer[++len] = 0;
-          plci->ncpi_buffer[++len] = 0;
-          plci->ncpi_buffer[0] = len;
-        }
-
-        sendf(plci->appl,_CONNECT_B3_I,Id,0,"S",plci->ncpi_buffer);
-      }
-      sendf(plci->appl,_DISCONNECT_B3_I,Id,0,"wS",info,plci->ncpi_buffer);
-      plci->ncpi_state = 0;
-      sig_req(plci,HANGUP,0);
-      send_req(plci);
-      plci->State = OUTG_DIS_PENDING;
-      /* disc here */
-    }
-    else if ((a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
-     && ((plci->B3_prot == 4) || (plci->B3_prot == 5))
-     && ((ncci_state == INC_DIS_PENDING) || (ncci_state == IDLE)))
-    {
-      if (ncci_state == IDLE)
-      {
-        if (plci->channels)
-          plci->channels--;
-        if((plci->State==IDLE || plci->State==SUSPENDING) && !plci->channels){
-          if(plci->State == SUSPENDING){
-            sendf(plci->appl,
-                  _FACILITY_I,
-                  Id & 0xffffL,
-                  0,
-                  "ws", (word)3, "\x03\x04\x00\x00");
-            sendf(plci->appl, _DISCONNECT_I, Id & 0xffffL, 0, "w", 0);
-          }
-          plci_remove(plci);
-          plci->State=IDLE;
-        }
-      }
-    }
-    else if (plci->channels)
-    {
-      sendf(plci->appl,_DISCONNECT_B3_I,Id,0,"wS",info,plci->ncpi_buffer);
-      plci->ncpi_state = 0;
-      if ((ncci_state == OUTG_REJ_PENDING)
-       && ((plci->B3_prot != B3_T90NL) && (plci->B3_prot != B3_ISO8208) && (plci->B3_prot != B3_X25_DCE)))
-      {
-        sig_req(plci,HANGUP,0);
-        send_req(plci);
-        plci->State = OUTG_DIS_PENDING;
-      }
-    }
-    break;
-  case N_RESET:
-    a->ncci_state[ncci] = INC_RES_PENDING;
-    sendf(plci->appl,_RESET_B3_I,Id,0,"S",plci->ncpi_buffer);
-    break;
-  case N_RESET_ACK:
-    a->ncci_state[ncci] = CONNECTED;
-    sendf(plci->appl,_RESET_B3_I,Id,0,"S",plci->ncpi_buffer);
-    break;
-
-  case N_UDATA:
-    if (!(udata_forwarding_table[plci->NL.RBuffer->P[0] >> 5] & (1L << (plci->NL.RBuffer->P[0] & 0x1f))))
-    {
-      plci->RData[0].P = plci->internal_ind_buffer + (-((int)(long)(plci->internal_ind_buffer)) & 3);
-      plci->RData[0].PLength = INTERNAL_IND_BUFFER_SIZE;
-      plci->NL.R = plci->RData;
-      plci->NL.RNum = 1;
-      return;
-    }
-  case N_BDATA:
-  case N_DATA:
-    if (((a->ncci_state[ncci] != CONNECTED) && (plci->B2_prot == 1)) /* transparent */
-     || (a->ncci_state[ncci] == IDLE)
-     || (a->ncci_state[ncci] == INC_DIS_PENDING))
-    {
-      plci->NL.RNR = 2;
-      break;
-    }
-    if ((a->ncci_state[ncci] != CONNECTED)
-     && (a->ncci_state[ncci] != OUTG_DIS_PENDING)
-     && (a->ncci_state[ncci] != OUTG_REJ_PENDING))
-    {
-      dbug(1,dprintf("flow control"));
-      plci->NL.RNR = 1; /* flow control  */
-      channel_x_off (plci, ch, 0);
-      break;
-    }
-
-    NCCIcode = ncci | (((word)a->Id) << 8);
-
-                /* count all buffers within the Application pool    */
-                /* belonging to the same NCCI. If this is below the */
-                /* number of buffers available per NCCI we accept   */
-                /* this packet, otherwise we reject it              */
-    count = 0;
-    Num = 0xffff;
-    for(i=0; i<APPLptr->MaxBuffer; i++) {
-      if(NCCIcode==APPLptr->DataNCCI[i]) count++;
-      if(!APPLptr->DataNCCI[i] && Num==0xffff) Num = i;
-    }
-
-    if(count>=APPLptr->MaxNCCIData || Num==0xffff)
-    {
-      dbug(3,dprintf("Flow-Control"));
-      plci->NL.RNR = 1;
-      if( ++(APPLptr->NCCIDataFlowCtrlTimer)>=
-       (word)((a->manufacturer_features & MANUFACTURER_FEATURE_OOB_CHANNEL) ? 40 : 2000))
-      {
-        plci->NL.RNR = 2;
-        dbug(3,dprintf("DiscardData"));
-      } else {
-        channel_x_off (plci, ch, 0);
-      }
-      break;
-    }
-    else
-    {
-      APPLptr->NCCIDataFlowCtrlTimer = 0;
-    }
-
-    plci->RData[0].P = ReceiveBufferGet(APPLptr,Num);
-    if(!plci->RData[0].P) {
-      plci->NL.RNR = 1;
-      channel_x_off (plci, ch, 0);
-      break;
-    }
-
-    APPLptr->DataNCCI[Num] = NCCIcode;
-    APPLptr->DataFlags[Num] = (plci->Id<<8) | (plci->NL.Ind>>4);
-    dbug(3,dprintf("Buffer(%d), Max = %d",Num,APPLptr->MaxBuffer));
-
-    plci->RNum = Num;
-    plci->RFlags = plci->NL.Ind>>4;
-    plci->RData[0].PLength = APPLptr->MaxDataLength;
-    plci->NL.R = plci->RData;
-    if ((plci->NL.RLength != 0)
-     && ((plci->B2_prot == B2_V120_ASYNC)
-      || (plci->B2_prot == B2_V120_ASYNC_V42BIS)
-      || (plci->B2_prot == B2_V120_BIT_TRANSPARENT)))
-    {
-      plci->RData[1].P = plci->RData[0].P;
-      plci->RData[1].PLength = plci->RData[0].PLength;
-      plci->RData[0].P = v120_header_buffer + (-((unsigned long)v120_header_buffer) & 3);
-      if ((plci->NL.RBuffer->P[0] & V120_HEADER_EXTEND_BIT) || (plci->NL.RLength == 1))
-        plci->RData[0].PLength = 1;
-      else
-        plci->RData[0].PLength = 2;
-      if (plci->NL.RBuffer->P[0] & V120_HEADER_BREAK_BIT)
-        plci->RFlags |= 0x0010;
-      if (plci->NL.RBuffer->P[0] & (V120_HEADER_C1_BIT | V120_HEADER_C2_BIT))
-        plci->RFlags |= 0x8000;
-      plci->NL.RNum = 2;
-    }
-    else
-    {
-      if((plci->NL.Ind &0x0f)==N_UDATA)
-        plci->RFlags |= 0x0010;
-
-      else if ((plci->B3_prot == B3_RTP) && ((plci->NL.Ind & 0x0f) == N_BDATA))
-        plci->RFlags |= 0x0001;
-
-      plci->NL.RNum = 1;
-    }
-    break;
-  case N_DATA_ACK:
-    data_ack (plci, ch);
-    break;
-  default:
-    plci->NL.RNR = 2;
-    break;
-  }
+                               if (*data == DSP_UDATA_INDICATION_DCD_ON)
+                                       plci->ncpi_state |= NCPI_MDM_DCD_ON_RECEIVED;
+                               if (*data == DSP_UDATA_INDICATION_CTS_ON)
+                                       plci->ncpi_state |= NCPI_MDM_CTS_ON_RECEIVED;
+
+                               data++;    /* indication code */
+                               data += 2; /* timestamp */
+                               if ((*data == DSP_CONNECTED_NORM_V18) || (*data == DSP_CONNECTED_NORM_VOWN))
+                                       ncpi_state &= ~(NCPI_MDM_DCD_ON_RECEIVED | NCPI_MDM_CTS_ON_RECEIVED);
+                               data++;    /* connected norm */
+                               conn_opt = GET_WORD(data);
+                               data += 2; /* connected options */
+
+                               PUT_WORD(&(plci->ncpi_buffer[1]), (word)(GET_DWORD(data) & 0x0000FFFF));
+
+                               if (conn_opt & DSP_CONNECTED_OPTION_MASK_V42)
+                               {
+                                       ncpi_opt |= MDM_NCPI_ECM_V42;
+                               }
+                               else if (conn_opt & DSP_CONNECTED_OPTION_MASK_MNP)
+                               {
+                                       ncpi_opt |= MDM_NCPI_ECM_MNP;
+                               }
+                               else
+                               {
+                                       ncpi_opt |= MDM_NCPI_TRANSPARENT;
+                               }
+                               if (conn_opt & DSP_CONNECTED_OPTION_MASK_COMPRESSION)
+                               {
+                                       ncpi_opt |= MDM_NCPI_COMPRESSED;
+                               }
+                               PUT_WORD(&(plci->ncpi_buffer[3]), ncpi_opt);
+                               plci->ncpi_buffer[0] = 4;
+
+                               plci->ncpi_state |= NCPI_VALID_CONNECT_B3_IND | NCPI_VALID_CONNECT_B3_ACT | NCPI_VALID_DISC_B3_IND;
+                       }
+               }
+               if (plci->B3_prot == 7)
+               {
+                       if (((a->ncci_state[ncci] == INC_ACT_PENDING) || (a->ncci_state[ncci] == OUTG_CON_PENDING))
+                           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+                       {
+                               a->ncci_state[ncci] = INC_ACT_PENDING;
+                               sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "S", plci->ncpi_buffer);
+                               plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+                       }
+               }
+
+               if (!((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id - 1])
+                     & ((1L << PRIVATE_V18) | (1L << PRIVATE_VOWN)))
+                   || !(ncpi_state & NCPI_MDM_DCD_ON_RECEIVED)
+                   || !(ncpi_state & NCPI_MDM_CTS_ON_RECEIVED))
+
+               {
+                       plci->NL.RNR = 2;
+                       return;
+               }
+       }
+
+       if (plci->NL.complete == 2)
+       {
+               if (((plci->NL.Ind & 0x0f) == N_UDATA)
+                   && !(udata_forwarding_table[plci->RData[0].P[0] >> 5] & (1L << (plci->RData[0].P[0] & 0x1f))))
+               {
+                       switch (plci->RData[0].P[0])
+                       {
+
+                       case DTMF_UDATA_INDICATION_FAX_CALLING_TONE:
+                               if (plci->dtmf_rec_active & DTMF_LISTEN_ACTIVE_FLAG)
+                                       sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", SELECTOR_DTMF, "\x01X");
+                               break;
+                       case DTMF_UDATA_INDICATION_ANSWER_TONE:
+                               if (plci->dtmf_rec_active & DTMF_LISTEN_ACTIVE_FLAG)
+                                       sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", SELECTOR_DTMF, "\x01Y");
+                               break;
+                       case DTMF_UDATA_INDICATION_DIGITS_RECEIVED:
+                               dtmf_indication(Id, plci, plci->RData[0].P, plci->RData[0].PLength);
+                               break;
+                       case DTMF_UDATA_INDICATION_DIGITS_SENT:
+                               dtmf_confirmation(Id, plci);
+                               break;
+
+
+                       case UDATA_INDICATION_MIXER_TAP_DATA:
+                               capidtmf_recv_process_block(&(plci->capidtmf_state), plci->RData[0].P + 1, (word)(plci->RData[0].PLength - 1));
                              i = capidtmf_indication(&(plci->capidtmf_state), dtmf_code_buffer + 1);
                              if (i != 0)
                              {
+                                       dtmf_code_buffer[0] = DTMF_UDATA_INDICATION_DIGITS_RECEIVED;
+                                       dtmf_indication(Id, plci, dtmf_code_buffer, (word)(i + 1));
                              }
+                               break;
+
+
+                       case UDATA_INDICATION_MIXER_COEFS_SET:
+                               mixer_indication_coefs_set(Id, plci);
+                               break;
+                       case UDATA_INDICATION_XCONNECT_FROM:
+                               mixer_indication_xconnect_from(Id, plci, plci->RData[0].P, plci->RData[0].PLength);
+                               break;
+                       case UDATA_INDICATION_XCONNECT_TO:
+                               mixer_indication_xconnect_to(Id, plci, plci->RData[0].P, plci->RData[0].PLength);
+                               break;
+
+
+                       case LEC_UDATA_INDICATION_DISABLE_DETECT:
+                               ec_indication(Id, plci, plci->RData[0].P, plci->RData[0].PLength);
+                               break;
+
+
+
+                       default:
+                               break;
+                       }
+               }
+               else
+               {
+                       if ((plci->RData[0].PLength != 0)
+                           && ((plci->B2_prot == B2_V120_ASYNC)
+                               || (plci->B2_prot == B2_V120_ASYNC_V42BIS)
+                               || (plci->B2_prot == B2_V120_BIT_TRANSPARENT)))
+                       {
+
+                               sendf(plci->appl, _DATA_B3_I, Id, 0,
+                                     "dwww",
+                                     plci->RData[1].P,
+                                     (plci->NL.RNum < 2) ? 0 : plci->RData[1].PLength,
+                                     plci->RNum,
+                                     plci->RFlags);
+
+                       }
+                       else
+                       {
+
+                               sendf(plci->appl, _DATA_B3_I, Id, 0,
+                                     "dwww",
+                                     plci->RData[0].P,
+                                     plci->RData[0].PLength,
+                                     plci->RNum,
+                                     plci->RFlags);
+
+                       }
+               }
+               return;
+       }
+
+       fax_feature_bits = 0;
+       if ((plci->NL.Ind & 0x0f) == N_CONNECT ||
+           (plci->NL.Ind & 0x0f) == N_CONNECT_ACK ||
+           (plci->NL.Ind & 0x0f) == N_DISC ||
+           (plci->NL.Ind & 0x0f) == N_EDATA ||
+           (plci->NL.Ind & 0x0f) == N_DISC_ACK)
+       {
+               info = 0;
+               plci->ncpi_buffer[0] = 0;
+               switch (plci->B3_prot) {
+               case  0: /*XPARENT*/
+               case  1: /*T.90 NL*/
+                       break;    /* no network control protocol info - jfr */
+               case  2: /*ISO8202*/
+               case  3: /*X25 DCE*/
+                       for (i = 0; i < plci->NL.RLength; i++) plci->ncpi_buffer[4 + i] = plci->NL.RBuffer->P[i];
+                       plci->ncpi_buffer[0] = (byte)(i + 3);
+                       plci->ncpi_buffer[1] = (byte)(plci->NL.Ind & N_D_BIT ? 1 : 0);
+                       plci->ncpi_buffer[2] = 0;
+                       plci->ncpi_buffer[3] = 0;
+                       break;
+               case  4: /*T.30 - FAX*/
+               case  5: /*T.30 - FAX*/
+                       if (plci->NL.RLength >= sizeof(T30_INFO))
+                       {
+                               dbug(1, dprintf("FaxStatus %04x", ((T30_INFO *)plci->NL.RBuffer->P)->code));
+                               len = 9;
+                               PUT_WORD(&(plci->ncpi_buffer[1]), ((T30_INFO *)plci->NL.RBuffer->P)->rate_div_2400 * 2400);
+                               fax_feature_bits = GET_WORD(&((T30_INFO *)plci->NL.RBuffer->P)->feature_bits_low);
+                               i = (((T30_INFO *)plci->NL.RBuffer->P)->resolution & T30_RESOLUTION_R8_0770_OR_200) ? 0x0001 : 0x0000;
+                               if (plci->B3_prot == 5)
+                               {
+                                       if (!(fax_feature_bits & T30_FEATURE_BIT_ECM))
+                                               i |= 0x8000; /* This is not an ECM connection */
+                                       if (fax_feature_bits & T30_FEATURE_BIT_T6_CODING)
+                                               i |= 0x4000; /* This is a connection with MMR compression */
+                                       if (fax_feature_bits & T30_FEATURE_BIT_2D_CODING)
+                                               i |= 0x2000; /* This is a connection with MR compression */
+                                       if (fax_feature_bits & T30_FEATURE_BIT_MORE_DOCUMENTS)
+                                               i |= 0x0004; /* More documents */
+                                       if (fax_feature_bits & T30_FEATURE_BIT_POLLING)
+                                               i |= 0x0002; /* Fax-polling indication */
+                               }
+                               dbug(1, dprintf("FAX Options %04x %04x", fax_feature_bits, i));
+                               PUT_WORD(&(plci->ncpi_buffer[3]), i);
+                               PUT_WORD(&(plci->ncpi_buffer[5]), ((T30_INFO *)plci->NL.RBuffer->P)->data_format);
+                               plci->ncpi_buffer[7] = ((T30_INFO *)plci->NL.RBuffer->P)->pages_low;
+                               plci->ncpi_buffer[8] = ((T30_INFO *)plci->NL.RBuffer->P)->pages_high;
+                               plci->ncpi_buffer[len] = 0;
+                               if (((T30_INFO *)plci->NL.RBuffer->P)->station_id_len)
+                               {
+                                       plci->ncpi_buffer[len] = 20;
+                                       for (i = 0; i < T30_MAX_STATION_ID_LENGTH; i++)
+                                               plci->ncpi_buffer[++len] = ((T30_INFO *)plci->NL.RBuffer->P)->station_id[i];
+                               }
+                               if (((plci->NL.Ind & 0x0f) == N_DISC) || ((plci->NL.Ind & 0x0f) == N_DISC_ACK))
+                               {
+                                       if (((T30_INFO *)plci->NL.RBuffer->P)->code < ARRAY_SIZE(fax_info))
+                                               info = fax_info[((T30_INFO *)plci->NL.RBuffer->P)->code];
+                                       else
+                                               info = _FAX_PROTOCOL_ERROR;
+                               }
+
+                               if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[plci->appl->Id - 1])
+                                   & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
+                               {
+                                       i = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + ((T30_INFO *)plci->NL.RBuffer->P)->head_line_len;
+                                       while (i < plci->NL.RBuffer->length)
+                                               plci->ncpi_buffer[++len] = plci->NL.RBuffer->P[i++];
+                               }
+
+                               plci->ncpi_buffer[0] = len;
+                               fax_feature_bits = GET_WORD(&((T30_INFO *)plci->NL.RBuffer->P)->feature_bits_low);
+                               PUT_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->feature_bits_low, fax_feature_bits);
+
+                               plci->ncpi_state |= NCPI_VALID_CONNECT_B3_IND;
                              if (((plci->NL.Ind & 0x0f) == N_CONNECT_ACK)
+                                   || (((plci->NL.Ind & 0x0f) == N_CONNECT)
+                                       && (fax_feature_bits & T30_FEATURE_BIT_POLLING))
+                                   || (((plci->NL.Ind & 0x0f) == N_EDATA)
+                                       && ((((T30_INFO *)plci->NL.RBuffer->P)->code == EDATA_T30_TRAIN_OK)
+                                           || (((T30_INFO *)plci->NL.RBuffer->P)->code == EDATA_T30_DIS)
+                                           || (((T30_INFO *)plci->NL.RBuffer->P)->code == EDATA_T30_DTC))))
                              {
+                                       plci->ncpi_state |= NCPI_VALID_CONNECT_B3_ACT;
                              }
                              if (((plci->NL.Ind & 0x0f) == N_DISC)
+                                   || ((plci->NL.Ind & 0x0f) == N_DISC_ACK)
+                                   || (((plci->NL.Ind & 0x0f) == N_EDATA)
+                                       && (((T30_INFO *)plci->NL.RBuffer->P)->code == EDATA_T30_EOP_CAPI)))
                              {
+                                       plci->ncpi_state |= NCPI_VALID_CONNECT_B3_ACT | NCPI_VALID_DISC_B3_IND;
                              }
+                       }
+                       break;
+
+               case B3_RTP:
+                       if (((plci->NL.Ind & 0x0f) == N_DISC) || ((plci->NL.Ind & 0x0f) == N_DISC_ACK))
+                       {
+                               if (plci->NL.RLength != 0)
+                               {
+                                       info = rtp_info[plci->NL.RBuffer->P[0]];
+                                       plci->ncpi_buffer[0] = plci->NL.RLength - 1;
+                                       for (i = 1; i < plci->NL.RLength; i++)
+                                               plci->ncpi_buffer[i] = plci->NL.RBuffer->P[i];
+                               }
+                       }
+                       break;
+
+               }
+               plci->NL.RNR = 2;
+       }
+       switch (plci->NL.Ind & 0x0f) {
+       case N_EDATA:
+               if ((plci->B3_prot == 4) || (plci->B3_prot == 5))
+               {
+                       dbug(1, dprintf("EDATA ncci=0x%x state=%d code=%02x", ncci, a->ncci_state[ncci],
+                                       ((T30_INFO *)plci->NL.RBuffer->P)->code));
+                       fax_send_edata_ack = (((T30_INFO *)(plci->fax_connect_info_buffer))->operating_mode == T30_OPERATING_MODE_CAPI_NEG);
+
+                       if ((plci->nsf_control_bits & T30_NSF_CONTROL_BIT_ENABLE_NSF)
+                           && (plci->nsf_control_bits & (T30_NSF_CONTROL_BIT_NEGOTIATE_IND | T30_NSF_CONTROL_BIT_NEGOTIATE_RESP))
+                           && (((T30_INFO *)plci->NL.RBuffer->P)->code == EDATA_T30_DIS)
+                           && (a->ncci_state[ncci] == OUTG_CON_PENDING)
+                           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                           && !(plci->ncpi_state & NCPI_NEGOTIATE_B3_SENT))
+                       {
+                               ((T30_INFO *)(plci->fax_connect_info_buffer))->code = ((T30_INFO *)plci->NL.RBuffer->P)->code;
+                               sendf(plci->appl, _MANUFACTURER_I, Id, 0, "dwbS", _DI_MANU_ID, _DI_NEGOTIATE_B3,
+                                     (byte)(plci->ncpi_buffer[0] + 1), plci->ncpi_buffer);
+                               plci->ncpi_state |= NCPI_NEGOTIATE_B3_SENT;
                              if (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_NEGOTIATE_RESP)
+                                       fax_send_edata_ack = false;
+                       }
+
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
+                       {
+                               switch (((T30_INFO *)plci->NL.RBuffer->P)->code)
+                               {
+                               case EDATA_T30_DIS:
+                                       if ((a->ncci_state[ncci] == OUTG_CON_PENDING)
+                                           && !(GET_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->control_bits_low) & T30_CONTROL_BIT_REQUEST_POLLING)
+                                           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                                           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+                                       {
+                                               a->ncci_state[ncci] = INC_ACT_PENDING;
+                                               if (plci->B3_prot == 4)
+                                                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+                                               else
+                                                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "S", plci->ncpi_buffer);
+                                               plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+                                       }
+                                       break;
+
+                               case EDATA_T30_TRAIN_OK:
+                                       if ((a->ncci_state[ncci] == INC_ACT_PENDING)
+                                           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                                           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+                                       {
+                                               if (plci->B3_prot == 4)
+                                                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+                                               else
+                                                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "S", plci->ncpi_buffer);
+                                               plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+                                       }
+                                       break;
+
+                               case EDATA_T30_EOP_CAPI:
+                                       if (a->ncci_state[ncci] == CONNECTED)
+                                       {
+                                               sendf(plci->appl, _DISCONNECT_B3_I, Id, 0, "wS", GOOD, plci->ncpi_buffer);
+                                               a->ncci_state[ncci] = INC_DIS_PENDING;
+                                               plci->ncpi_state = 0;
+                                               fax_send_edata_ack = false;
+                                       }
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               switch (((T30_INFO *)plci->NL.RBuffer->P)->code)
+                               {
+                               case EDATA_T30_TRAIN_OK:
+                                       if ((a->ncci_state[ncci] == INC_ACT_PENDING)
+                                           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                                           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+                                       {
+                                               if (plci->B3_prot == 4)
+                                                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+                                               else
+                                                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "S", plci->ncpi_buffer);
+                                               plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+                                       }
+                                       break;
+                               }
+                       }
+                       if (fax_send_edata_ack)
+                       {
+                               ((T30_INFO *)(plci->fax_connect_info_buffer))->code = ((T30_INFO *)plci->NL.RBuffer->P)->code;
                              plci->fax_edata_ack_length = 1;
+                               start_internal_command(Id, plci, fax_edata_ack_command);
+                       }
+               }
+               else
+               {
+                       dbug(1, dprintf("EDATA ncci=0x%x state=%d", ncci, a->ncci_state[ncci]));
+               }
+               break;
+       case N_CONNECT:
+               if (!a->ch_ncci[ch])
+               {
+                       ncci = get_ncci(plci, ch, 0);
+                       Id = (Id & 0xffff) | (((dword) ncci) << 16);
+               }
+               dbug(1, dprintf("N_CONNECT: ch=%d state=%d plci=%lx plci_Id=%lx plci_State=%d",
+                               ch, a->ncci_state[ncci], a->ncci_plci[ncci], plci->Id, plci->State));
+
+               msg = _CONNECT_B3_I;
+               if (a->ncci_state[ncci] == IDLE)
+                       plci->channels++;
+               else if (plci->B3_prot == 1)
+                       msg = _CONNECT_B3_T90_ACTIVE_I;
+
+               a->ncci_state[ncci] = INC_CON_PENDING;
+               if (plci->B3_prot == 4)
+                       sendf(plci->appl, msg, Id, 0, "s", "");
+               else
+                       sendf(plci->appl, msg, Id, 0, "S", plci->ncpi_buffer);
+               break;
+       case N_CONNECT_ACK:
+               dbug(1, dprintf("N_connect_Ack"));
+               if (plci->internal_command_queue[0]
+                   && ((plci->adjust_b_state == ADJUST_B_CONNECT_2)
+                       || (plci->adjust_b_state == ADJUST_B_CONNECT_3)
+                       || (plci->adjust_b_state == ADJUST_B_CONNECT_4)))
+               {
+                       (*(plci->internal_command_queue[0]))(Id, plci, 0);
+                       if (!plci->internal_command)
+                               next_internal_command(Id, plci);
+                       break;
+               }
+               msg = _CONNECT_B3_ACTIVE_I;
+               if (plci->B3_prot == 1)
+               {
+                       if (a->ncci_state[ncci] != OUTG_CON_PENDING)
+                               msg = _CONNECT_B3_T90_ACTIVE_I;
+                       a->ncci_state[ncci] = INC_ACT_PENDING;
+                       sendf(plci->appl, msg, Id, 0, "S", plci->ncpi_buffer);
+               }
+               else if ((plci->B3_prot == 4) || (plci->B3_prot == 5) || (plci->B3_prot == 7))
+               {
+                       if ((a->ncci_state[ncci] == OUTG_CON_PENDING)
+                           && (plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+                           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+                       {
+                               a->ncci_state[ncci] = INC_ACT_PENDING;
+                               if (plci->B3_prot == 4)
+                                       sendf(plci->appl, msg, Id, 0, "s", "");
+                               else
+                                       sendf(plci->appl, msg, Id, 0, "S", plci->ncpi_buffer);
+                               plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+                       }
+               }
+               else
+               {
+                       a->ncci_state[ncci] = INC_ACT_PENDING;
+                       sendf(plci->appl, msg, Id, 0, "S", plci->ncpi_buffer);
+               }
+               if (plci->adjust_b_restore)
+               {
+                       plci->adjust_b_restore = false;
+                       start_internal_command(Id, plci, adjust_b_restore);
+               }
+               break;
+       case N_DISC:
+       case N_DISC_ACK:
+               if (plci->internal_command_queue[0]
+                   && ((plci->internal_command == FAX_DISCONNECT_COMMAND_1)
+                       || (plci->internal_command == FAX_DISCONNECT_COMMAND_2)
+                       || (plci->internal_command == FAX_DISCONNECT_COMMAND_3)))
+               {
+                       (*(plci->internal_command_queue[0]))(Id, plci, 0);
+                       if (!plci->internal_command)
+                               next_internal_command(Id, plci);
+               }
+               ncci_state = a->ncci_state[ncci];
+               ncci_remove(plci, ncci, false);
+
+               /* with N_DISC or N_DISC_ACK the IDI frees the respective   */
+               /* channel, so we cannot store the state in ncci_state! The */
+               /* information which channel we received a N_DISC is thus   */
+               /* stored in the inc_dis_ncci_table buffer.                 */
+               for (i = 0; plci->inc_dis_ncci_table[i]; i++);
+               plci->inc_dis_ncci_table[i] = (byte) ncci;
+
+               /* need a connect_b3_ind before a disconnect_b3_ind with FAX */
+               if (!plci->channels
+                   && (plci->B1_resource == 16)
+                   && (plci->State <= CONNECTED))
+               {
+                       len = 9;
+                       i = ((T30_INFO *)plci->fax_connect_info_buffer)->rate_div_2400 * 2400;
+                       PUT_WORD(&plci->ncpi_buffer[1], i);
+                       PUT_WORD(&plci->ncpi_buffer[3], 0);
+                       i = ((T30_INFO *)plci->fax_connect_info_buffer)->data_format;
+                       PUT_WORD(&plci->ncpi_buffer[5], i);
+                       PUT_WORD(&plci->ncpi_buffer[7], 0);
+                       plci->ncpi_buffer[len] = 0;
+                       plci->ncpi_buffer[0] = len;
+                       if (plci->B3_prot == 4)
+                               sendf(plci->appl, _CONNECT_B3_I, Id, 0, "s", "");
+                       else
+                       {
+
+                               if ((plci->requested_options_conn | plci->requested_options | a->requested_options_table[plci->appl->Id - 1])
+                                   & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
+                               {
+                                       plci->ncpi_buffer[++len] = 0;
+                                       plci->ncpi_buffer[++len] = 0;
+                                       plci->ncpi_buffer[++len] = 0;
+                                       plci->ncpi_buffer[0] = len;
+                               }
+
+                               sendf(plci->appl, _CONNECT_B3_I, Id, 0, "S", plci->ncpi_buffer);
+                       }
+                       sendf(plci->appl, _DISCONNECT_B3_I, Id, 0, "wS", info, plci->ncpi_buffer);
+                       plci->ncpi_state = 0;
+                       sig_req(plci, HANGUP, 0);
+                       send_req(plci);
+                       plci->State = OUTG_DIS_PENDING;
+                       /* disc here */
+               }
+               else if ((a->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
+                        && ((plci->B3_prot == 4) || (plci->B3_prot == 5))
+                        && ((ncci_state == INC_DIS_PENDING) || (ncci_state == IDLE)))
+               {
+                       if (ncci_state == IDLE)
+                       {
+                               if (plci->channels)
+                                       plci->channels--;
+                               if ((plci->State == IDLE || plci->State == SUSPENDING) && !plci->channels) {
+                                       if (plci->State == SUSPENDING) {
+                                               sendf(plci->appl,
+                                                     _FACILITY_I,
+                                                     Id & 0xffffL,
+                                                     0,
+                                                     "ws", (word)3, "\x03\x04\x00\x00");
+                                               sendf(plci->appl, _DISCONNECT_I, Id & 0xffffL, 0, "w", 0);
+                                       }
+                                       plci_remove(plci);
+                                       plci->State = IDLE;
+                               }
+                       }
+               }
+               else if (plci->channels)
+               {
+                       sendf(plci->appl, _DISCONNECT_B3_I, Id, 0, "wS", info, plci->ncpi_buffer);
+                       plci->ncpi_state = 0;
+                       if ((ncci_state == OUTG_REJ_PENDING)
+                           && ((plci->B3_prot != B3_T90NL) && (plci->B3_prot != B3_ISO8208) && (plci->B3_prot != B3_X25_DCE)))
+                       {
+                               sig_req(plci, HANGUP, 0);
+                               send_req(plci);
+                               plci->State = OUTG_DIS_PENDING;
+                       }
+               }
+               break;
+       case N_RESET:
+               a->ncci_state[ncci] = INC_RES_PENDING;
+               sendf(plci->appl, _RESET_B3_I, Id, 0, "S", plci->ncpi_buffer);
+               break;
+       case N_RESET_ACK:
+               a->ncci_state[ncci] = CONNECTED;
+               sendf(plci->appl, _RESET_B3_I, Id, 0, "S", plci->ncpi_buffer);
+               break;
+
+       case N_UDATA:
+               if (!(udata_forwarding_table[plci->NL.RBuffer->P[0] >> 5] & (1L << (plci->NL.RBuffer->P[0] & 0x1f))))
+               {
+                       plci->RData[0].P = plci->internal_ind_buffer + (-((int)(long)(plci->internal_ind_buffer)) & 3);
+                       plci->RData[0].PLength = INTERNAL_IND_BUFFER_SIZE;
+                       plci->NL.R = plci->RData;
+                       plci->NL.RNum = 1;
+                       return;
+               }
+       case N_BDATA:
+       case N_DATA:
+               if (((a->ncci_state[ncci] != CONNECTED) && (plci->B2_prot == 1)) /* transparent */
+                   || (a->ncci_state[ncci] == IDLE)
+                   || (a->ncci_state[ncci] == INC_DIS_PENDING))
+               {
+                       plci->NL.RNR = 2;
+                       break;
+               }
+               if ((a->ncci_state[ncci] != CONNECTED)
+                   && (a->ncci_state[ncci] != OUTG_DIS_PENDING)
+                   && (a->ncci_state[ncci] != OUTG_REJ_PENDING))
+               {
+                       dbug(1, dprintf("flow control"));
+                       plci->NL.RNR = 1; /* flow control  */
+                       channel_x_off(plci, ch, 0);
+                       break;
+               }
+
+               NCCIcode = ncci | (((word)a->Id) << 8);
+
+               /* count all buffers within the Application pool    */
+               /* belonging to the same NCCI. If this is below the */
+               /* number of buffers available per NCCI we accept   */
+               /* this packet, otherwise we reject it              */
+               count = 0;
+               Num = 0xffff;
+               for (i = 0; i < APPLptr->MaxBuffer; i++) {
+                       if (NCCIcode == APPLptr->DataNCCI[i]) count++;
+                       if (!APPLptr->DataNCCI[i] && Num == 0xffff) Num = i;
+               }
+
+               if (count >= APPLptr->MaxNCCIData || Num == 0xffff)
+               {
+                       dbug(3, dprintf("Flow-Control"));
+                       plci->NL.RNR = 1;
+                       if (++(APPLptr->NCCIDataFlowCtrlTimer) >=
+                           (word)((a->manufacturer_features & MANUFACTURER_FEATURE_OOB_CHANNEL) ? 40 : 2000))
+                       {
+                               plci->NL.RNR = 2;
+                               dbug(3, dprintf("DiscardData"));
+                       } else {
+                               channel_x_off(plci, ch, 0);
+                       }
+                       break;
+               }
+               else
+               {
+                       APPLptr->NCCIDataFlowCtrlTimer = 0;
+               }
+
+               plci->RData[0].P = ReceiveBufferGet(APPLptr, Num);
+               if (!plci->RData[0].P) {
+                       plci->NL.RNR = 1;
+                       channel_x_off(plci, ch, 0);
+                       break;
+               }
+
+               APPLptr->DataNCCI[Num] = NCCIcode;
+               APPLptr->DataFlags[Num] = (plci->Id << 8) | (plci->NL.Ind >> 4);
+               dbug(3, dprintf("Buffer(%d), Max = %d", Num, APPLptr->MaxBuffer));
+
+               plci->RNum = Num;
+               plci->RFlags = plci->NL.Ind >> 4;
+               plci->RData[0].PLength = APPLptr->MaxDataLength;
+               plci->NL.R = plci->RData;
+               if ((plci->NL.RLength != 0)
+                   && ((plci->B2_prot == B2_V120_ASYNC)
+                       || (plci->B2_prot == B2_V120_ASYNC_V42BIS)
+                       || (plci->B2_prot == B2_V120_BIT_TRANSPARENT)))
+               {
+                       plci->RData[1].P = plci->RData[0].P;
+                       plci->RData[1].PLength = plci->RData[0].PLength;
+                       plci->RData[0].P = v120_header_buffer + (-((unsigned long)v120_header_buffer) & 3);
+                       if ((plci->NL.RBuffer->P[0] & V120_HEADER_EXTEND_BIT) || (plci->NL.RLength == 1))
+                               plci->RData[0].PLength = 1;
+                       else
+                               plci->RData[0].PLength = 2;
+                       if (plci->NL.RBuffer->P[0] & V120_HEADER_BREAK_BIT)
+                               plci->RFlags |= 0x0010;
+                       if (plci->NL.RBuffer->P[0] & (V120_HEADER_C1_BIT | V120_HEADER_C2_BIT))
+                               plci->RFlags |= 0x8000;
+                       plci->NL.RNum = 2;
+               }
+               else
+               {
+                       if ((plci->NL.Ind & 0x0f) == N_UDATA)
+                               plci->RFlags |= 0x0010;
+
+                       else if ((plci->B3_prot == B3_RTP) && ((plci->NL.Ind & 0x0f) == N_BDATA))
+                               plci->RFlags |= 0x0001;
+
+                       plci->NL.RNum = 1;
+               }
+               break;
+       case N_DATA_ACK:
+               data_ack(plci, ch);
+               break;
+       default:
+               plci->NL.RNR = 2;
+               break;
+       }
 }
 
 /*------------------------------------------------------------------*/
-/* find a free PLCI                                                 */
+/* find a free PLCI */
 /*------------------------------------------------------------------*/
 
 static word get_plci(DIVA_CAPI_ADAPTER *a)
 {
-  word i,j;
-  PLCI   * plci;
-
-  dump_plcis (a);
-  for(i=0;i<a->max_plci && a->plci[i].Id;i++);
-  if(i==a->max_plci) {
-    dbug(1,dprintf("get_plci: out of PLCIs"));
-    return 0;
-  }
-  plci = &a->plci[i];
-  plci->Id = (byte)(i+1);
-
-  plci->Sig.Id = 0;
-  plci->NL.Id = 0;
-  plci->sig_req = 0;
-  plci->nl_req = 0;
-
-  plci->appl = NULL;
-  plci->relatedPTYPLCI = NULL;
-  plci->State = IDLE;
-  plci->SuppState = IDLE;
-  plci->channels = 0;
-  plci->tel = 0;
-  plci->B1_resource = 0;
-  plci->B2_prot = 0;
-  plci->B3_prot = 0;
-
-  plci->command = 0;
-  plci->m_command = 0;
-  init_internal_command_queue (plci);
-  plci->number = 0;
-  plci->req_in_start = 0;
-  plci->req_in = 0;
-  plci->req_out = 0;
-  plci->msg_in_write_pos = MSG_IN_QUEUE_SIZE;
-  plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
-  plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
-
-  plci->data_sent = false;
-  plci->send_disc = 0;
-  plci->sig_global_req = 0;
-  plci->sig_remove_id = 0;
-  plci->nl_global_req = 0;
-  plci->nl_remove_id = 0;
-  plci->adv_nl = 0;
-  plci->manufacturer = false;
-  plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
-  plci->spoofed_msg = 0;
-  plci->ptyState = 0;
-  plci->cr_enquiry = false;
-  plci->hangup_flow_ctrl_timer = 0;
-
-  plci->ncci_ring_list = 0;
-  for(j=0;j<MAX_CHANNELS_PER_PLCI;j++) plci->inc_dis_ncci_table[j] = 0;
-  clear_c_ind_mask (plci);
-  set_group_ind_mask (plci);
-  plci->fax_connect_info_length = 0;
-  plci->nsf_control_bits = 0;
-  plci->ncpi_state = 0x00;
-  plci->ncpi_buffer[0] = 0;
-
-  plci->requested_options_conn = 0;
-  plci->requested_options = 0;
-  plci->notifiedcall = 0;
-  plci->vswitchstate = 0;
-  plci->vsprot = 0;
-  plci->vsprotdialect = 0;
-  init_b1_config (plci);
-  dbug(1,dprintf("get_plci(%x)",plci->Id));
-  return i+1;
+       word i, j;
+       PLCI *plci;
+
+       dump_plcis(a);
+       for (i = 0; i < a->max_plci && a->plci[i].Id; i++);
+       if (i == a->max_plci) {
+               dbug(1, dprintf("get_plci: out of PLCIs"));
+               return 0;
+       }
+       plci = &a->plci[i];
+       plci->Id = (byte)(i + 1);
+
+       plci->Sig.Id = 0;
+       plci->NL.Id = 0;
+       plci->sig_req = 0;
+       plci->nl_req = 0;
+
+       plci->appl = NULL;
+       plci->relatedPTYPLCI = NULL;
+       plci->State = IDLE;
+       plci->SuppState = IDLE;
+       plci->channels = 0;
+       plci->tel = 0;
+       plci->B1_resource = 0;
+       plci->B2_prot = 0;
+       plci->B3_prot = 0;
+
+       plci->command = 0;
+       plci->m_command = 0;
+       init_internal_command_queue(plci);
+       plci->number = 0;
+       plci->req_in_start = 0;
+       plci->req_in = 0;
+       plci->req_out = 0;
+       plci->msg_in_write_pos = MSG_IN_QUEUE_SIZE;
+       plci->msg_in_read_pos = MSG_IN_QUEUE_SIZE;
+       plci->msg_in_wrap_pos = MSG_IN_QUEUE_SIZE;
+
+       plci->data_sent = false;
+       plci->send_disc = 0;
+       plci->sig_global_req = 0;
+       plci->sig_remove_id = 0;
+       plci->nl_global_req = 0;
+       plci->nl_remove_id = 0;
+       plci->adv_nl = 0;
+       plci->manufacturer = false;
+       plci->call_dir = CALL_DIR_OUT | CALL_DIR_ORIGINATE;
+       plci->spoofed_msg = 0;
+       plci->ptyState = 0;
+       plci->cr_enquiry = false;
+       plci->hangup_flow_ctrl_timer = 0;
+
+       plci->ncci_ring_list = 0;
+       for (j = 0; j < MAX_CHANNELS_PER_PLCI; j++) plci->inc_dis_ncci_table[j] = 0;
+       clear_c_ind_mask(plci);
+       set_group_ind_mask(plci);
+       plci->fax_connect_info_length = 0;
+       plci->nsf_control_bits = 0;
+       plci->ncpi_state = 0x00;
+       plci->ncpi_buffer[0] = 0;
+
+       plci->requested_options_conn = 0;
+       plci->requested_options = 0;
+       plci->notifiedcall = 0;
+       plci->vswitchstate = 0;
+       plci->vsprot = 0;
+       plci->vsprotdialect = 0;
+       init_b1_config(plci);
+       dbug(1, dprintf("get_plci(%x)", plci->Id));
+       return i + 1;
 }
 
 /*------------------------------------------------------------------*/
 /* put a parameter in the parameter buffer                          */
 /*------------------------------------------------------------------*/
 
-static void add_p(PLCI   * plci, byte code, byte   * p)
+static void add_p(PLCI *plci, byte code, byte *p)
 {
-  word p_length;
+       word p_length;
 
-  p_length = 0;
-  if(p) p_length = p[0];
-  add_ie(plci, code, p, p_length);
+       p_length = 0;
+       if (p) p_length = p[0];
+       add_ie(plci, code, p, p_length);
 }
 
 /*------------------------------------------------------------------*/
 /* put a structure in the parameter buffer                          */
 /*------------------------------------------------------------------*/
-static void add_s(PLCI   * plci, byte code, API_PARSE * p)
+static void add_s(PLCI *plci, byte code, API_PARSE *p)
 {
-  if(p) add_ie(plci, code, p->info, (word)p->length);
+       if (p) add_ie(plci, code, p->info, (word)p->length);
 }
 
 /*------------------------------------------------------------------*/
 /* put multiple structures in the parameter buffer                  */
 /*------------------------------------------------------------------*/
-static void add_ss(PLCI   * plci, byte code, API_PARSE * p)
+static void add_ss(PLCI *plci, byte code, API_PARSE *p)
 {
-  byte i;
+       byte i;
 
-  if(p){
-    dbug(1,dprintf("add_ss(%x,len=%d)",code,p->length));
-    for(i=2;i<(byte)p->length;i+=p->info[i]+2){
-      dbug(1,dprintf("add_ss_ie(%x,len=%d)",p->info[i-1],p->info[i]));
-      add_ie(plci, p->info[i-1], (byte   *)&(p->info[i]), (word)p->info[i]);
-    }
-  }
+       if (p) {
+               dbug(1, dprintf("add_ss(%x,len=%d)", code, p->length));
+               for (i = 2; i < (byte)p->length; i += p->info[i] + 2) {
+                       dbug(1, dprintf("add_ss_ie(%x,len=%d)", p->info[i - 1], p->info[i]));
+                       add_ie(plci, p->info[i - 1], (byte *)&(p->info[i]), (word)p->info[i]);
+               }
+       }
 }
 
 /*------------------------------------------------------------------*/
 /* return the channel number sent by the application in a esc_chi   */
 /*------------------------------------------------------------------*/
-static byte getChannel(API_PARSE * p)
+static byte getChannel(API_PARSE *p)
 {
-  byte i;
+       byte i;
 
-  if(p){
-    for(i=2;i<(byte)p->length;i+=p->info[i]+2){
-      if(p->info[i]==2){
-        if(p->info[i-1]==ESC && p->info[i+1]==CHI) return (p->info[i+2]);
-      }
-    }
-  }
-  return 0;
+       if (p) {
+               for (i = 2; i < (byte)p->length; i += p->info[i] + 2) {
+                       if (p->info[i] == 2) {
+                               if (p->info[i - 1] == ESC && p->info[i + 1] == CHI) return (p->info[i + 2]);
+                       }
+               }
+       }
+       return 0;
 }
 
 
@@ -7400,26 +7400,26 @@ static byte getChannel(API_PARSE * p)
 /* put an information element in the parameter buffer               */
 /*------------------------------------------------------------------*/
 
-static void add_ie(PLCI   * plci, byte code, byte   * p, word p_length)
+static void add_ie(PLCI *plci, byte code, byte *p, word p_length)
 {
-  word i;
+       word i;
 
-  if(!(code &0x80) && !p_length) return;
+       if (!(code & 0x80) && !p_length) return;
 
-  if(plci->req_in==plci->req_in_start) {
-    plci->req_in +=2;
-  }
-  else {
-    plci->req_in--;
-  }
-  plci->RBuffer[plci->req_in++] = code;
+       if (plci->req_in == plci->req_in_start) {
+               plci->req_in += 2;
+       }
+       else {
+               plci->req_in--;
+       }
+       plci->RBuffer[plci->req_in++] = code;
 
-  if(p) {
-    plci->RBuffer[plci->req_in++] = (byte)p_length;
-    for(i=0;i<p_length;i++) plci->RBuffer[plci->req_in++] = p[1+i];
-  }
+       if (p) {
+               plci->RBuffer[plci->req_in++] = (byte)p_length;
+               for (i = 0; i < p_length; i++) plci->RBuffer[plci->req_in++] = p[1 + i];
+       }
 
-  plci->RBuffer[plci->req_in++] = 0;
+       plci->RBuffer[plci->req_in++] = 0;
 }
 
 /*------------------------------------------------------------------*/
@@ -7428,15 +7428,15 @@ static void add_ie(PLCI   * plci, byte code, byte   * p, word p_length)
 
 static void add_d(PLCI *plci, word length, byte *p)
 {
-  word i;
+       word i;
 
-  if(plci->req_in==plci->req_in_start) {
-    plci->req_in +=2;
-  }
-  else {
-    plci->req_in--;
-  }
-  for(i=0;i<length;i++) plci->RBuffer[plci->req_in++] = p[i];
+       if (plci->req_in == plci->req_in_start) {
+               plci->req_in += 2;
+       }
+       else {
+               plci->req_in--;
+       }
+       for (i = 0; i < length; i++) plci->RBuffer[plci->req_in++] = p[i];
 }
 
 /*------------------------------------------------------------------*/
@@ -7446,19 +7446,19 @@ static void add_d(PLCI *plci, word length, byte *p)
 
 static void add_ai(PLCI *plci, API_PARSE *ai)
 {
-  word i;
-    API_PARSE ai_parms[5];
+       word i;
+       API_PARSE ai_parms[5];
 
-  for(i=0;i<5;i++) ai_parms[i].length = 0;
+       for (i = 0; i < 5; i++) ai_parms[i].length = 0;
 
-  if(!ai->length)
-    return;
-  if(api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms))
-    return;
+       if (!ai->length)
+               return;
+       if (api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms))
+               return;
 
-  add_s (plci,KEY,&ai_parms[1]);
-  add_s (plci,UUI,&ai_parms[2]);
-  add_ss(plci,FTY,&ai_parms[3]);
+       add_s(plci, KEY, &ai_parms[1]);
+       add_s(plci, UUI, &ai_parms[2]);
+       add_ss(plci, FTY, &ai_parms[3]);
 }
 
 /*------------------------------------------------------------------*/
@@ -7468,462 +7468,462 @@ static void add_ai(PLCI *plci, API_PARSE *ai)
 static word add_b1(PLCI *plci, API_PARSE *bp, word b_channel_info,
                   word b1_facilities)
 {
-    API_PARSE bp_parms[8];
-    API_PARSE mdm_cfg[9];
-    API_PARSE global_config[2];
-    byte cai[256];
-  byte resource[] = {5,9,13,12,16,39,9,17,17,18};
-  byte voice_cai[] = "\x06\x14\x00\x00\x00\x00\x08";
-  word i;
-
-    API_PARSE mdm_cfg_v18[4];
-  word j, n, w;
-  dword d;
-
-
-  for(i=0;i<8;i++) bp_parms[i].length = 0;
-  for(i=0;i<2;i++) global_config[i].length = 0;
-
-  dbug(1,dprintf("add_b1"));
-  api_save_msg(bp, "s", &plci->B_protocol);
-
-  if(b_channel_info==2){
-    plci->B1_resource = 0;
-    adjust_b1_facilities (plci, plci->B1_resource, b1_facilities);
-    add_p(plci, CAI, "\x01\x00");
-    dbug(1,dprintf("Cai=1,0 (no resource)"));
-    return 0;
-  }
-
-  if(plci->tel == CODEC_PERMANENT) return 0;
-  else if(plci->tel == CODEC){
-    plci->B1_resource = 1;
-    adjust_b1_facilities (plci, plci->B1_resource, b1_facilities);
-    add_p(plci, CAI, "\x01\x01");
-    dbug(1,dprintf("Cai=1,1 (Codec)"));
-    return 0;
-  }
-  else if(plci->tel == ADV_VOICE){
-    plci->B1_resource = add_b1_facilities (plci, 9, (word)(b1_facilities | B1_FACILITY_VOICE));
-    adjust_b1_facilities (plci, plci->B1_resource, (word)(b1_facilities | B1_FACILITY_VOICE));
-    voice_cai[1] = plci->B1_resource;
-    PUT_WORD (&voice_cai[5], plci->appl->MaxDataLength);
-    add_p(plci, CAI, voice_cai);
-    dbug(1,dprintf("Cai=1,0x%x (AdvVoice)",voice_cai[1]));
-    return 0;
-  }
-  plci->call_dir &= ~(CALL_DIR_ORIGINATE | CALL_DIR_ANSWER);
-  if (plci->call_dir & CALL_DIR_OUT)
-    plci->call_dir |= CALL_DIR_ORIGINATE;
-  else if (plci->call_dir & CALL_DIR_IN)
-    plci->call_dir |= CALL_DIR_ANSWER;
-
-  if(!bp->length){
-    plci->B1_resource = 0x5;
-    adjust_b1_facilities (plci, plci->B1_resource, b1_facilities);
-    add_p(plci, CAI, "\x01\x05");
-    return 0;
-  }
-
-  dbug(1,dprintf("b_prot_len=%d",(word)bp->length));
-  if(bp->length>256) return _WRONG_MESSAGE_FORMAT;
-  if(api_parse(&bp->info[1], (word)bp->length, "wwwsssb", bp_parms))
-  {
-    bp_parms[6].length = 0;
-    if(api_parse(&bp->info[1], (word)bp->length, "wwwsss", bp_parms))
-    {
-      dbug(1,dprintf("b-form.!"));
-      return _WRONG_MESSAGE_FORMAT;
-    }
-  }
-  else if (api_parse(&bp->info[1], (word)bp->length, "wwwssss", bp_parms))
-  {
-    dbug(1,dprintf("b-form.!"));
-    return _WRONG_MESSAGE_FORMAT;
-  }
-
-  if(bp_parms[6].length)
-  {
-    if(api_parse(&bp_parms[6].info[1], (word)bp_parms[6].length, "w", global_config))
-    {
-      return _WRONG_MESSAGE_FORMAT;
-    }
-    switch(GET_WORD(global_config[0].info))
-    {
-    case 1:
-      plci->call_dir = (plci->call_dir & ~CALL_DIR_ANSWER) | CALL_DIR_ORIGINATE;
-      break;
-    case 2:
-      plci->call_dir = (plci->call_dir & ~CALL_DIR_ORIGINATE) | CALL_DIR_ANSWER;
-      break;
-    }
-  }
-  dbug(1,dprintf("call_dir=%04x", plci->call_dir));
-
-
-  if ((GET_WORD(bp_parms[0].info) == B1_RTP)
-   && (plci->adapter->man_profile.private_options & (1L << PRIVATE_RTP)))
-  {
-    plci->B1_resource = add_b1_facilities (plci, 31, (word)(b1_facilities & ~B1_FACILITY_VOICE));
-    adjust_b1_facilities (plci, plci->B1_resource, (word)(b1_facilities & ~B1_FACILITY_VOICE));
-    cai[1] = plci->B1_resource;
-    cai[2] = 0;
-    cai[3] = 0;
-    cai[4] = 0;
-    PUT_WORD(&cai[5],plci->appl->MaxDataLength);
-    for (i = 0; i < bp_parms[3].length; i++)
-      cai[7+i] = bp_parms[3].info[1+i];
-    cai[0] = 6 + bp_parms[3].length;
-    add_p(plci, CAI, cai);
-    return 0;
-  }
-
-
-  if ((GET_WORD(bp_parms[0].info) == B1_PIAFS)
-   && (plci->adapter->man_profile.private_options & (1L << PRIVATE_PIAFS)))
-  {
-    plci->B1_resource = add_b1_facilities (plci, 35/* PIAFS HARDWARE FACILITY */, (word)(b1_facilities & ~B1_FACILITY_VOICE));
-    adjust_b1_facilities (plci, plci->B1_resource, (word)(b1_facilities & ~B1_FACILITY_VOICE));
-    cai[1] = plci->B1_resource;
-    cai[2] = 0;
-    cai[3] = 0;
-    cai[4] = 0;
-    PUT_WORD(&cai[5],plci->appl->MaxDataLength);
-    cai[0] = 6;
-    add_p(plci, CAI, cai);
-    return 0;
-  }
-
-
-  if ((GET_WORD(bp_parms[0].info) >= 32)
-   || (!((1L << GET_WORD(bp_parms[0].info)) & plci->adapter->profile.B1_Protocols)
-    && ((GET_WORD(bp_parms[0].info) != 3)
-     || !((1L << B1_HDLC) & plci->adapter->profile.B1_Protocols)
-     || ((bp_parms[3].length != 0) && (GET_WORD(&bp_parms[3].info[1]) != 0) && (GET_WORD(&bp_parms[3].info[1]) != 56000)))))
-  {
-    return _B1_NOT_SUPPORTED;
-  }
-  plci->B1_resource = add_b1_facilities (plci, resource[GET_WORD(bp_parms[0].info)],
-    (word)(b1_facilities & ~B1_FACILITY_VOICE));
-  adjust_b1_facilities (plci, plci->B1_resource, (word)(b1_facilities & ~B1_FACILITY_VOICE));
-  cai[0] = 6;
-  cai[1] = plci->B1_resource;
-  for (i=2;i<sizeof(cai);i++) cai[i] = 0;
-
-  if ((GET_WORD(bp_parms[0].info) == B1_MODEM_ALL_NEGOTIATE)
-   || (GET_WORD(bp_parms[0].info) == B1_MODEM_ASYNC)
-   || (GET_WORD(bp_parms[0].info) == B1_MODEM_SYNC_HDLC))
-  { /* B1 - modem */
-    for (i=0;i<7;i++) mdm_cfg[i].length = 0;
-
-    if (bp_parms[3].length)
-    {
-      if(api_parse(&bp_parms[3].info[1],(word)bp_parms[3].length,"wwwwww", mdm_cfg))
-      {
-        return (_WRONG_MESSAGE_FORMAT);
-      }
-        
-      cai[2] = 0; /* Bit rate for adaptation */
-
-      dbug(1,dprintf("MDM Max Bit Rate:<%d>", GET_WORD(mdm_cfg[0].info)));
-
-      PUT_WORD (&cai[13], 0);                          /* Min Tx speed */
-      PUT_WORD (&cai[15], GET_WORD(mdm_cfg[0].info)); /* Max Tx speed */
-      PUT_WORD (&cai[17], 0);                          /* Min Rx speed */
-      PUT_WORD (&cai[19], GET_WORD(mdm_cfg[0].info)); /* Max Rx speed */
-
-      cai[3] = 0; /* Async framing parameters */
-      switch (GET_WORD (mdm_cfg[2].info))
-      {       /* Parity     */
-      case 1: /* odd parity */
-        cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_ODD);
-        dbug(1,dprintf("MDM: odd parity"));
-        break;
-
-      case 2: /* even parity */
-        cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_EVEN);
-        dbug(1,dprintf("MDM: even parity"));
-        break;
-
-      default:
-        dbug(1,dprintf("MDM: no parity"));
-        break;
-      }
-
-      switch (GET_WORD (mdm_cfg[3].info))
-      {       /* stop bits   */
-      case 1: /* 2 stop bits */
-        cai[3] |= DSP_CAI_ASYNC_TWO_STOP_BITS;
-        dbug(1,dprintf("MDM: 2 stop bits"));
-        break;
-
-      default:
-        dbug(1,dprintf("MDM: 1 stop bit"));
-        break;
-      }
-
-      switch (GET_WORD (mdm_cfg[1].info))
-      {     /* char length */
-      case 5:
-        cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_5;
-        dbug(1,dprintf("MDM: 5 bits"));
-        break;
-
-      case 6:
-        cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_6;
-        dbug(1,dprintf("MDM: 6 bits"));
-        break;
-
-      case 7:
-        cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_7;
-        dbug(1,dprintf("MDM: 7 bits"));
-        break;
-
-      default:
-        dbug(1,dprintf("MDM: 8 bits"));
-        break;
-      }
-
-      cai[7] = 0; /* Line taking options */
-      cai[8] = 0; /* Modulation negotiation options */
-      cai[9] = 0; /* Modulation options */
-
-      if (((plci->call_dir & CALL_DIR_ORIGINATE) != 0) ^ ((plci->call_dir & CALL_DIR_OUT) != 0))
-      {
-        cai[9] |= DSP_CAI_MODEM_REVERSE_DIRECTION;
-        dbug(1, dprintf("MDM: Reverse direction"));
-      }
-
-      if (GET_WORD (mdm_cfg[4].info) & MDM_CAPI_DISABLE_RETRAIN)
-      {
-        cai[9] |= DSP_CAI_MODEM_DISABLE_RETRAIN;
-        dbug(1, dprintf("MDM: Disable retrain"));
-      }
-
-      if (GET_WORD (mdm_cfg[4].info) & MDM_CAPI_DISABLE_RING_TONE)
-      {
-        cai[7] |= DSP_CAI_MODEM_DISABLE_CALLING_TONE | DSP_CAI_MODEM_DISABLE_ANSWER_TONE;
-        dbug(1, dprintf("MDM: Disable ring tone"));
-      }
-
-      if (GET_WORD (mdm_cfg[4].info) & MDM_CAPI_GUARD_1800)
-      {
-        cai[8] |= DSP_CAI_MODEM_GUARD_TONE_1800HZ;
-        dbug(1, dprintf("MDM: 1800 guard tone"));
-      }
-      else if (GET_WORD (mdm_cfg[4].info) & MDM_CAPI_GUARD_550 )
-      {
-        cai[8] |= DSP_CAI_MODEM_GUARD_TONE_550HZ;
-        dbug(1, dprintf("MDM: 550 guard tone"));
-      }
-
-      if ((GET_WORD (mdm_cfg[5].info) & 0x00ff) == MDM_CAPI_NEG_V100)
-      {
-        cai[8] |= DSP_CAI_MODEM_NEGOTIATE_V100;
-        dbug(1, dprintf("MDM: V100"));
-      }
-      else if ((GET_WORD (mdm_cfg[5].info) & 0x00ff) == MDM_CAPI_NEG_MOD_CLASS)
-      {
-        cai[8] |= DSP_CAI_MODEM_NEGOTIATE_IN_CLASS;
-        dbug(1, dprintf("MDM: IN CLASS"));
-      }
-      else if ((GET_WORD (mdm_cfg[5].info) & 0x00ff) == MDM_CAPI_NEG_DISABLED)
-      {
-        cai[8] |= DSP_CAI_MODEM_NEGOTIATE_DISABLED;
-        dbug(1, dprintf("MDM: DISABLED"));
-      }
-      cai[0] = 20;
-
-      if ((plci->adapter->man_profile.private_options & (1L << PRIVATE_V18))
-       && (GET_WORD(mdm_cfg[5].info) & 0x8000)) /* Private V.18 enable */
-      {
-        plci->requested_options |= 1L << PRIVATE_V18;
-      }
-      if (GET_WORD(mdm_cfg[5].info) & 0x4000) /* Private VOWN enable */
-        plci->requested_options |= 1L << PRIVATE_VOWN;
-
-      if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id-1])
-        & ((1L << PRIVATE_V18) | (1L << PRIVATE_VOWN)))
-      {
-        if (!api_parse(&bp_parms[3].info[1],(word)bp_parms[3].length,"wwwwwws", mdm_cfg))
-        {
-          i = 27;
-          if (mdm_cfg[6].length >= 4)
-          {
-            d = GET_DWORD(&mdm_cfg[6].info[1]);
-            cai[7] |= (byte) d;          /* line taking options */
-            cai[9] |= (byte)(d >> 8);    /* modulation options */
-            cai[++i] = (byte)(d >> 16);  /* vown modulation options */
-            cai[++i] = (byte)(d >> 24);
-            if (mdm_cfg[6].length >= 8)
-            {
-              d = GET_DWORD(&mdm_cfg[6].info[5]);
-              cai[10] |= (byte) d;        /* disabled modulations mask */
-              cai[11] |= (byte)(d >> 8);
-              if (mdm_cfg[6].length >= 12)
-              {
-                d = GET_DWORD(&mdm_cfg[6].info[9]);
-                cai[12] = (byte) d;          /* enabled modulations mask */
-                cai[++i] = (byte)(d >> 8);   /* vown enabled modulations */
-                cai[++i] = (byte)(d >> 16);
-                cai[++i] = (byte)(d >> 24);
-                cai[++i] = 0;
-                if (mdm_cfg[6].length >= 14)
-                {
-                  w = GET_WORD(&mdm_cfg[6].info[13]);
-                  if (w != 0)
-                    PUT_WORD(&cai[13], w);  /* min tx speed */
-                  if (mdm_cfg[6].length >= 16)
-                  {
-                    w = GET_WORD(&mdm_cfg[6].info[15]);
-                    if (w != 0)
-                      PUT_WORD(&cai[15], w);  /* max tx speed */
-                    if (mdm_cfg[6].length >= 18)
-                    {
-                      w = GET_WORD(&mdm_cfg[6].info[17]);
-                      if (w != 0)
-                        PUT_WORD(&cai[17], w);  /* min rx speed */
-                      if (mdm_cfg[6].length >= 20)
-                      {
-                        w = GET_WORD(&mdm_cfg[6].info[19]);
-                        if (w != 0)
-                          PUT_WORD(&cai[19], w);  /* max rx speed */
-                        if (mdm_cfg[6].length >= 22)
-                        {
-                          w = GET_WORD(&mdm_cfg[6].info[21]);
-                          cai[23] = (byte)(-((short) w));  /* transmit level */
-                          if (mdm_cfg[6].length >= 24)
-                          {
-                            w = GET_WORD(&mdm_cfg[6].info[23]);
-                            cai[22] |= (byte) w;        /* info options mask */
-                            cai[21] |= (byte)(w >> 8);  /* disabled symbol rates */
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-          cai[27] = i - 27;
-          i++;
-          if (!api_parse(&bp_parms[3].info[1],(word)bp_parms[3].length,"wwwwwwss", mdm_cfg))
-          {
-            if (!api_parse(&mdm_cfg[7].info[1],(word)mdm_cfg[7].length,"sss", mdm_cfg_v18))
-            {
-              for (n = 0; n < 3; n++)
-              {
-                cai[i] = (byte)(mdm_cfg_v18[n].length);
-                for (j = 1; j < ((word)(cai[i] + 1)); j++)
-                  cai[i+j] = mdm_cfg_v18[n].info[j];
-                i += cai[i] + 1;
-              }
-            }
-          }
-          cai[0] = (byte)(i - 1);
-        }
-      }
-
-    }
-  }
-  if(GET_WORD(bp_parms[0].info)==2 ||                         /* V.110 async */
-     GET_WORD(bp_parms[0].info)==3 )                          /* V.110 sync */
-  {
-    if(bp_parms[3].length){
-      dbug(1,dprintf("V.110,%d",GET_WORD(&bp_parms[3].info[1])));
-      switch(GET_WORD(&bp_parms[3].info[1])){                 /* Rate */
-        case 0:
-        case 56000:
-          if(GET_WORD(bp_parms[0].info)==3){                  /* V.110 sync 56k */
-            dbug(1,dprintf("56k sync HSCX"));
-            cai[1] = 8;
-            cai[2] = 0;
-            cai[3] = 0;
-          }
-          else if(GET_WORD(bp_parms[0].info)==2){
-            dbug(1,dprintf("56k async DSP"));
-            cai[2] = 9;
-          }
-          break;
-        case 50:     cai[2] = 1;  break;
-        case 75:     cai[2] = 1;  break;
-        case 110:    cai[2] = 1;  break;
-        case 150:    cai[2] = 1;  break;
-        case 200:    cai[2] = 1;  break;
-        case 300:    cai[2] = 1;  break;
-        case 600:    cai[2] = 1;  break;
-        case 1200:   cai[2] = 2;  break;
-        case 2400:   cai[2] = 3;  break;
-        case 4800:   cai[2] = 4;  break;
-        case 7200:   cai[2] = 10; break;
-        case 9600:   cai[2] = 5;  break;
-        case 12000:  cai[2] = 13; break;
-        case 24000:  cai[2] = 0;  break;
-        case 14400:  cai[2] = 11; break;
-        case 19200:  cai[2] = 6;  break;
-        case 28800:  cai[2] = 12; break;
-        case 38400:  cai[2] = 7;  break;
-        case 48000:  cai[2] = 8;  break;
-        case 76:     cai[2] = 15; break;  /* 75/1200     */
-        case 1201:   cai[2] = 14; break;  /* 1200/75     */
-        case 56001:  cai[2] = 9;  break;  /* V.110 56000 */
-
-        default:
-          return _B1_PARM_NOT_SUPPORTED;
-      }
-      cai[3] = 0;
-      if (cai[1] == 13)                                        /* v.110 async */
-      {
-        if (bp_parms[3].length >= 8)
-        {
-          switch (GET_WORD (&bp_parms[3].info[3]))
-          {       /* char length */
-          case 5:
-            cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_5;
-            break;
-          case 6:
-            cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_6;
-            break;
-          case 7:
-            cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_7;
-            break;
-          }
-          switch (GET_WORD (&bp_parms[3].info[5]))
-          {       /* Parity     */
-          case 1: /* odd parity */
-            cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_ODD);
-            break;
-          case 2: /* even parity */
-            cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_EVEN);
-            break;
-          }
-          switch (GET_WORD (&bp_parms[3].info[7]))
-          {       /* stop bits   */
-          case 1: /* 2 stop bits */
-            cai[3] |= DSP_CAI_ASYNC_TWO_STOP_BITS;
-            break;
-          }
-        }
-      }
-    }
-    else if(cai[1]==8 || GET_WORD(bp_parms[0].info)==3 ){
-      dbug(1,dprintf("V.110 default 56k sync"));
-      cai[1] = 8;
-      cai[2] = 0;
-      cai[3] = 0;
-    }
-    else {
-      dbug(1,dprintf("V.110 default 9600 async"));
-      cai[2] = 5;
-    }
-  }
-  PUT_WORD(&cai[5],plci->appl->MaxDataLength);
-  dbug(1,dprintf("CAI[%d]=%x,%x,%x,%x,%x,%x", cai[0], cai[1], cai[2], cai[3], cai[4], cai[5], cai[6]));
+       API_PARSE bp_parms[8];
+       API_PARSE mdm_cfg[9];
+       API_PARSE global_config[2];
+       byte cai[256];
+       byte resource[] = {5, 9, 13, 12, 16, 39, 9, 17, 17, 18};
+       byte voice_cai[] = "\x06\x14\x00\x00\x00\x00\x08";
+       word i;
+
+       API_PARSE mdm_cfg_v18[4];
+       word j, n, w;
+       dword d;
+
+
+       for (i = 0; i < 8; i++) bp_parms[i].length = 0;
+       for (i = 0; i < 2; i++) global_config[i].length = 0;
+
+       dbug(1, dprintf("add_b1"));
+       api_save_msg(bp, "s", &plci->B_protocol);
+
+       if (b_channel_info == 2) {
+               plci->B1_resource = 0;
+               adjust_b1_facilities(plci, plci->B1_resource, b1_facilities);
+               add_p(plci, CAI, "\x01\x00");
+               dbug(1, dprintf("Cai=1,0 (no resource)"));
+               return 0;
+       }
+
+       if (plci->tel == CODEC_PERMANENT) return 0;
+       else if (plci->tel == CODEC) {
+               plci->B1_resource = 1;
+               adjust_b1_facilities(plci, plci->B1_resource, b1_facilities);
+               add_p(plci, CAI, "\x01\x01");
+               dbug(1, dprintf("Cai=1,1 (Codec)"));
+               return 0;
+       }
+       else if (plci->tel == ADV_VOICE) {
+               plci->B1_resource = add_b1_facilities(plci, 9, (word)(b1_facilities | B1_FACILITY_VOICE));
+               adjust_b1_facilities(plci, plci->B1_resource, (word)(b1_facilities | B1_FACILITY_VOICE));
+               voice_cai[1] = plci->B1_resource;
+               PUT_WORD(&voice_cai[5], plci->appl->MaxDataLength);
+               add_p(plci, CAI, voice_cai);
+               dbug(1, dprintf("Cai=1,0x%x (AdvVoice)", voice_cai[1]));
+               return 0;
+       }
+       plci->call_dir &= ~(CALL_DIR_ORIGINATE | CALL_DIR_ANSWER);
+       if (plci->call_dir & CALL_DIR_OUT)
+               plci->call_dir |= CALL_DIR_ORIGINATE;
+       else if (plci->call_dir & CALL_DIR_IN)
+               plci->call_dir |= CALL_DIR_ANSWER;
+
+       if (!bp->length) {
+               plci->B1_resource = 0x5;
+               adjust_b1_facilities(plci, plci->B1_resource, b1_facilities);
+               add_p(plci, CAI, "\x01\x05");
+               return 0;
+       }
+
+       dbug(1, dprintf("b_prot_len=%d", (word)bp->length));
+       if (bp->length > 256) return _WRONG_MESSAGE_FORMAT;
+       if (api_parse(&bp->info[1], (word)bp->length, "wwwsssb", bp_parms))
+       {
+               bp_parms[6].length = 0;
+               if (api_parse(&bp->info[1], (word)bp->length, "wwwsss", bp_parms))
+               {
+                       dbug(1, dprintf("b-form.!"));
+                       return _WRONG_MESSAGE_FORMAT;
+               }
+       }
+       else if (api_parse(&bp->info[1], (word)bp->length, "wwwssss", bp_parms))
+       {
+               dbug(1, dprintf("b-form.!"));
+               return _WRONG_MESSAGE_FORMAT;
+       }
+
+       if (bp_parms[6].length)
+       {
+               if (api_parse(&bp_parms[6].info[1], (word)bp_parms[6].length, "w", global_config))
+               {
+                       return _WRONG_MESSAGE_FORMAT;
+               }
+               switch (GET_WORD(global_config[0].info))
+               {
+               case 1:
+                       plci->call_dir = (plci->call_dir & ~CALL_DIR_ANSWER) | CALL_DIR_ORIGINATE;
+                       break;
+               case 2:
+                       plci->call_dir = (plci->call_dir & ~CALL_DIR_ORIGINATE) | CALL_DIR_ANSWER;
+                       break;
+               }
+       }
+       dbug(1, dprintf("call_dir=%04x", plci->call_dir));
+
+
+       if ((GET_WORD(bp_parms[0].info) == B1_RTP)
+           && (plci->adapter->man_profile.private_options & (1L << PRIVATE_RTP)))
+       {
+               plci->B1_resource = add_b1_facilities(plci, 31, (word)(b1_facilities & ~B1_FACILITY_VOICE));
+               adjust_b1_facilities(plci, plci->B1_resource, (word)(b1_facilities & ~B1_FACILITY_VOICE));
+               cai[1] = plci->B1_resource;
+               cai[2] = 0;
+               cai[3] = 0;
+               cai[4] = 0;
+               PUT_WORD(&cai[5], plci->appl->MaxDataLength);
+               for (i = 0; i < bp_parms[3].length; i++)
+                       cai[7 + i] = bp_parms[3].info[1 + i];
+               cai[0] = 6 + bp_parms[3].length;
+               add_p(plci, CAI, cai);
+               return 0;
+       }
+
+
+       if ((GET_WORD(bp_parms[0].info) == B1_PIAFS)
+           && (plci->adapter->man_profile.private_options & (1L << PRIVATE_PIAFS)))
+       {
+               plci->B1_resource = add_b1_facilities(plci, 35/* PIAFS HARDWARE FACILITY */, (word)(b1_facilities & ~B1_FACILITY_VOICE));
+               adjust_b1_facilities(plci, plci->B1_resource, (word)(b1_facilities & ~B1_FACILITY_VOICE));
+               cai[1] = plci->B1_resource;
+               cai[2] = 0;
+               cai[3] = 0;
+               cai[4] = 0;
+               PUT_WORD(&cai[5], plci->appl->MaxDataLength);
+               cai[0] = 6;
+               add_p(plci, CAI, cai);
+               return 0;
+       }
+
+
+       if ((GET_WORD(bp_parms[0].info) >= 32)
+           || (!((1L << GET_WORD(bp_parms[0].info)) & plci->adapter->profile.B1_Protocols)
+               && ((GET_WORD(bp_parms[0].info) != 3)
+                   || !((1L << B1_HDLC) & plci->adapter->profile.B1_Protocols)
+                   || ((bp_parms[3].length != 0) && (GET_WORD(&bp_parms[3].info[1]) != 0) && (GET_WORD(&bp_parms[3].info[1]) != 56000)))))
+       {
+               return _B1_NOT_SUPPORTED;
+       }
+       plci->B1_resource = add_b1_facilities(plci, resource[GET_WORD(bp_parms[0].info)],
+                                             (word)(b1_facilities & ~B1_FACILITY_VOICE));
+       adjust_b1_facilities(plci, plci->B1_resource, (word)(b1_facilities & ~B1_FACILITY_VOICE));
+       cai[0] = 6;
+       cai[1] = plci->B1_resource;
+       for (i = 2; i < sizeof(cai); i++) cai[i] = 0;
+
+       if ((GET_WORD(bp_parms[0].info) == B1_MODEM_ALL_NEGOTIATE)
+           || (GET_WORD(bp_parms[0].info) == B1_MODEM_ASYNC)
+           || (GET_WORD(bp_parms[0].info) == B1_MODEM_SYNC_HDLC))
+       { /* B1 - modem */
+               for (i = 0; i < 7; i++) mdm_cfg[i].length = 0;
+
+               if (bp_parms[3].length)
+               {
+                       if (api_parse(&bp_parms[3].info[1], (word)bp_parms[3].length, "wwwwww", mdm_cfg))
+                       {
+                               return (_WRONG_MESSAGE_FORMAT);
+                       }
+
+                       cai[2] = 0; /* Bit rate for adaptation */
+
+                       dbug(1, dprintf("MDM Max Bit Rate:<%d>", GET_WORD(mdm_cfg[0].info)));
+
+                       PUT_WORD(&cai[13], 0);                          /* Min Tx speed */
+                       PUT_WORD(&cai[15], GET_WORD(mdm_cfg[0].info)); /* Max Tx speed */
+                       PUT_WORD(&cai[17], 0);                          /* Min Rx speed */
+                       PUT_WORD(&cai[19], GET_WORD(mdm_cfg[0].info)); /* Max Rx speed */
+
+                       cai[3] = 0; /* Async framing parameters */
+                       switch (GET_WORD(mdm_cfg[2].info))
+                       {       /* Parity     */
+                       case 1: /* odd parity */
+                               cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_ODD);
+                               dbug(1, dprintf("MDM: odd parity"));
+                               break;
+
+                       case 2: /* even parity */
+                               cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_EVEN);
+                               dbug(1, dprintf("MDM: even parity"));
+                               break;
+
+                       default:
+                               dbug(1, dprintf("MDM: no parity"));
+                               break;
+                       }
+
+                       switch (GET_WORD(mdm_cfg[3].info))
+                       {       /* stop bits   */
+                       case 1: /* 2 stop bits */
+                               cai[3] |= DSP_CAI_ASYNC_TWO_STOP_BITS;
+                               dbug(1, dprintf("MDM: 2 stop bits"));
+                               break;
+
+                       default:
+                               dbug(1, dprintf("MDM: 1 stop bit"));
+                               break;
+                       }
+
+                       switch (GET_WORD(mdm_cfg[1].info))
+                       {     /* char length */
+                       case 5:
+                               cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_5;
+                               dbug(1, dprintf("MDM: 5 bits"));
+                               break;
+
+                       case 6:
+                               cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_6;
+                               dbug(1, dprintf("MDM: 6 bits"));
+                               break;
+
+                       case 7:
+                               cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_7;
+                               dbug(1, dprintf("MDM: 7 bits"));
+                               break;
+
+                       default:
+                               dbug(1, dprintf("MDM: 8 bits"));
+                               break;
+                       }
+
+                       cai[7] = 0; /* Line taking options */
+                       cai[8] = 0; /* Modulation negotiation options */
+                       cai[9] = 0; /* Modulation options */
+
+                       if (((plci->call_dir & CALL_DIR_ORIGINATE) != 0) ^ ((plci->call_dir & CALL_DIR_OUT) != 0))
+                       {
+                               cai[9] |= DSP_CAI_MODEM_REVERSE_DIRECTION;
+                               dbug(1, dprintf("MDM: Reverse direction"));
+                       }
+
+                       if (GET_WORD(mdm_cfg[4].info) & MDM_CAPI_DISABLE_RETRAIN)
+                       {
+                               cai[9] |= DSP_CAI_MODEM_DISABLE_RETRAIN;
+                               dbug(1, dprintf("MDM: Disable retrain"));
+                       }
+
+                       if (GET_WORD(mdm_cfg[4].info) & MDM_CAPI_DISABLE_RING_TONE)
+                       {
+                               cai[7] |= DSP_CAI_MODEM_DISABLE_CALLING_TONE | DSP_CAI_MODEM_DISABLE_ANSWER_TONE;
+                               dbug(1, dprintf("MDM: Disable ring tone"));
+                       }
+
+                       if (GET_WORD(mdm_cfg[4].info) & MDM_CAPI_GUARD_1800)
+                       {
+                               cai[8] |= DSP_CAI_MODEM_GUARD_TONE_1800HZ;
+                               dbug(1, dprintf("MDM: 1800 guard tone"));
+                       }
+                       else if (GET_WORD(mdm_cfg[4].info) & MDM_CAPI_GUARD_550)
+                       {
+                               cai[8] |= DSP_CAI_MODEM_GUARD_TONE_550HZ;
+                               dbug(1, dprintf("MDM: 550 guard tone"));
+                       }
+
+                       if ((GET_WORD(mdm_cfg[5].info) & 0x00ff) == MDM_CAPI_NEG_V100)
+                       {
+                               cai[8] |= DSP_CAI_MODEM_NEGOTIATE_V100;
+                               dbug(1, dprintf("MDM: V100"));
+                       }
+                       else if ((GET_WORD(mdm_cfg[5].info) & 0x00ff) == MDM_CAPI_NEG_MOD_CLASS)
+                       {
+                               cai[8] |= DSP_CAI_MODEM_NEGOTIATE_IN_CLASS;
+                               dbug(1, dprintf("MDM: IN CLASS"));
+                       }
+                       else if ((GET_WORD(mdm_cfg[5].info) & 0x00ff) == MDM_CAPI_NEG_DISABLED)
+                       {
+                               cai[8] |= DSP_CAI_MODEM_NEGOTIATE_DISABLED;
+                               dbug(1, dprintf("MDM: DISABLED"));
+                       }
+                       cai[0] = 20;
+
+                       if ((plci->adapter->man_profile.private_options & (1L << PRIVATE_V18))
+                           && (GET_WORD(mdm_cfg[5].info) & 0x8000)) /* Private V.18 enable */
+                       {
+                               plci->requested_options |= 1L << PRIVATE_V18;
+                       }
+                       if (GET_WORD(mdm_cfg[5].info) & 0x4000) /* Private VOWN enable */
+                               plci->requested_options |= 1L << PRIVATE_VOWN;
+
+                       if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id - 1])
+                           & ((1L << PRIVATE_V18) | (1L << PRIVATE_VOWN)))
+                       {
+                               if (!api_parse(&bp_parms[3].info[1], (word)bp_parms[3].length, "wwwwwws", mdm_cfg))
+                               {
+                                       i = 27;
+                                       if (mdm_cfg[6].length >= 4)
+                                       {
+                                               d = GET_DWORD(&mdm_cfg[6].info[1]);
+                                               cai[7] |= (byte) d;          /* line taking options */
+                                               cai[9] |= (byte)(d >> 8);    /* modulation options */
+                                               cai[++i] = (byte)(d >> 16);  /* vown modulation options */
+                                               cai[++i] = (byte)(d >> 24);
+                                               if (mdm_cfg[6].length >= 8)
+                                               {
+                                                       d = GET_DWORD(&mdm_cfg[6].info[5]);
+                                                       cai[10] |= (byte) d;        /* disabled modulations mask */
+                                                       cai[11] |= (byte)(d >> 8);
+                                                       if (mdm_cfg[6].length >= 12)
+                                                       {
+                                                               d = GET_DWORD(&mdm_cfg[6].info[9]);
+                                                               cai[12] = (byte) d;          /* enabled modulations mask */
+                                                               cai[++i] = (byte)(d >> 8);   /* vown enabled modulations */
+                                                               cai[++i] = (byte)(d >> 16);
+                                                               cai[++i] = (byte)(d >> 24);
+                                                               cai[++i] = 0;
+                                                               if (mdm_cfg[6].length >= 14)
+                                                               {
+                                                                       w = GET_WORD(&mdm_cfg[6].info[13]);
+                                                                       if (w != 0)
+                                                                               PUT_WORD(&cai[13], w);  /* min tx speed */
+                                                                       if (mdm_cfg[6].length >= 16)
+                                                                       {
+                                                                               w = GET_WORD(&mdm_cfg[6].info[15]);
+                                                                               if (w != 0)
+                                                                                       PUT_WORD(&cai[15], w);  /* max tx speed */
+                                                                               if (mdm_cfg[6].length >= 18)
+                                                                               {
+                                                                                       w = GET_WORD(&mdm_cfg[6].info[17]);
+                                                                                       if (w != 0)
+                                                                                               PUT_WORD(&cai[17], w);  /* min rx speed */
+                                                                                       if (mdm_cfg[6].length >= 20)
+                                                                                       {
+                                                                                               w = GET_WORD(&mdm_cfg[6].info[19]);
+                                                                                               if (w != 0)
+                                                                                                       PUT_WORD(&cai[19], w);  /* max rx speed */
+                                                                                               if (mdm_cfg[6].length >= 22)
+                                                                                               {
+                                                                                                       w = GET_WORD(&mdm_cfg[6].info[21]);
+                                                                                                       cai[23] = (byte)(-((short) w));  /* transmit level */
+                                                                                                       if (mdm_cfg[6].length >= 24)
+                                                                                                       {
+                                                                                                               w = GET_WORD(&mdm_cfg[6].info[23]);
+                                                                                                               cai[22] |= (byte) w;        /* info options mask */
+                                                                                                               cai[21] |= (byte)(w >> 8);  /* disabled symbol rates */
+                                                                                                       }
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                                       cai[27] = i - 27;
+                                       i++;
+                                       if (!api_parse(&bp_parms[3].info[1], (word)bp_parms[3].length, "wwwwwwss", mdm_cfg))
+                                       {
+                                               if (!api_parse(&mdm_cfg[7].info[1], (word)mdm_cfg[7].length, "sss", mdm_cfg_v18))
+                                               {
+                                                       for (n = 0; n < 3; n++)
+                                                       {
+                                                               cai[i] = (byte)(mdm_cfg_v18[n].length);
+                                                               for (j = 1; j < ((word)(cai[i] + 1)); j++)
+                                                                       cai[i + j] = mdm_cfg_v18[n].info[j];
+                                                               i += cai[i] + 1;
+                                                       }
+                                               }
+                                       }
+                                       cai[0] = (byte)(i - 1);
+                               }
+                       }
+
+               }
+       }
+       if (GET_WORD(bp_parms[0].info) == 2 ||                         /* V.110 async */
+           GET_WORD(bp_parms[0].info) == 3)                           /* V.110 sync */
+       {
+               if (bp_parms[3].length) {
+                       dbug(1, dprintf("V.110,%d", GET_WORD(&bp_parms[3].info[1])));
+                       switch (GET_WORD(&bp_parms[3].info[1])) {                 /* Rate */
+                       case 0:
+                       case 56000:
+                               if (GET_WORD(bp_parms[0].info) == 3) {                  /* V.110 sync 56k */
+                                       dbug(1, dprintf("56k sync HSCX"));
+                                       cai[1] = 8;
+                                       cai[2] = 0;
+                                       cai[3] = 0;
+                               }
+                               else if (GET_WORD(bp_parms[0].info) == 2) {
+                                       dbug(1, dprintf("56k async DSP"));
+                                       cai[2] = 9;
+                               }
+                               break;
+                       case 50:     cai[2] = 1;  break;
+                       case 75:     cai[2] = 1;  break;
+                       case 110:    cai[2] = 1;  break;
+                       case 150:    cai[2] = 1;  break;
+                       case 200:    cai[2] = 1;  break;
+                       case 300:    cai[2] = 1;  break;
+                       case 600:    cai[2] = 1;  break;
+                       case 1200:   cai[2] = 2;  break;
+                       case 2400:   cai[2] = 3;  break;
+                       case 4800:   cai[2] = 4;  break;
+                       case 7200:   cai[2] = 10; break;
+                       case 9600:   cai[2] = 5;  break;
+                       case 12000:  cai[2] = 13; break;
+                       case 24000:  cai[2] = 0;  break;
+                       case 14400:  cai[2] = 11; break;
+                       case 19200:  cai[2] = 6;  break;
+                       case 28800:  cai[2] = 12; break;
+                       case 38400:  cai[2] = 7;  break;
+                       case 48000:  cai[2] = 8;  break;
+                       case 76:     cai[2] = 15; break;  /* 75/1200     */
+                       case 1201:   cai[2] = 14; break;  /* 1200/75     */
+                       case 56001:  cai[2] = 9;  break;  /* V.110 56000 */
+
+                       default:
+                               return _B1_PARM_NOT_SUPPORTED;
+                       }
+                       cai[3] = 0;
+                       if (cai[1] == 13)                                        /* v.110 async */
+                       {
+                               if (bp_parms[3].length >= 8)
+                               {
+                                       switch (GET_WORD(&bp_parms[3].info[3]))
+                                       {       /* char length */
+                                       case 5:
+                                               cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_5;
+                                               break;
+                                       case 6:
+                                               cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_6;
+                                               break;
+                                       case 7:
+                                               cai[3] |= DSP_CAI_ASYNC_CHAR_LENGTH_7;
+                                               break;
+                                       }
+                                       switch (GET_WORD(&bp_parms[3].info[5]))
+                                       {       /* Parity     */
+                                       case 1: /* odd parity */
+                                               cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_ODD);
+                                               break;
+                                       case 2: /* even parity */
+                                               cai[3] |= (DSP_CAI_ASYNC_PARITY_ENABLE | DSP_CAI_ASYNC_PARITY_EVEN);
+                                               break;
+                                       }
+                                       switch (GET_WORD(&bp_parms[3].info[7]))
+                                       {       /* stop bits   */
+                                       case 1: /* 2 stop bits */
+                                               cai[3] |= DSP_CAI_ASYNC_TWO_STOP_BITS;
+                                               break;
+                                       }
+                               }
+                       }
+               }
+               else if (cai[1] == 8 || GET_WORD(bp_parms[0].info) == 3) {
+                       dbug(1, dprintf("V.110 default 56k sync"));
+                       cai[1] = 8;
+                       cai[2] = 0;
+                       cai[3] = 0;
+               }
+               else {
+                       dbug(1, dprintf("V.110 default 9600 async"));
+                       cai[2] = 5;
+               }
+       }
+       PUT_WORD(&cai[5], plci->appl->MaxDataLength);
+       dbug(1, dprintf("CAI[%d]=%x,%x,%x,%x,%x,%x", cai[0], cai[1], cai[2], cai[3], cai[4], cai[5], cai[6]));
 /* HexDump ("CAI", sizeof(cai), &cai[0]); */
 
-  add_p(plci, CAI, cai);
-  return 0;
+       add_p(plci, CAI, cai);
+       return 0;
 }
 
 /*------------------------------------------------------------------*/
@@ -7932,624 +7932,624 @@ static word add_b1(PLCI *plci, API_PARSE *bp, word b_channel_info,
 
 static word add_b23(PLCI *plci, API_PARSE *bp)
 {
-  word i, fax_control_bits;
-  byte pos, len;
-  byte SAPI = 0x40;  /* default SAPI 16 for x.31 */
-    API_PARSE bp_parms[8];
-  API_PARSE * b1_config;
-  API_PARSE * b2_config;
-    API_PARSE b2_config_parms[8];
-  API_PARSE * b3_config;
-    API_PARSE b3_config_parms[6];
-    API_PARSE global_config[2];
-
-  static byte llc[3] = {2,0,0};
-  static byte dlc[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-  static byte nlc[256];
-  static byte lli[12] = {1,1};
-
-  const byte llc2_out[] = {1,2,4,6,2,0,0,0, X75_V42BIS,V120_L2,V120_V42BIS,V120_L2,6};
-  const byte llc2_in[]  = {1,3,4,6,3,0,0,0, X75_V42BIS,V120_L2,V120_V42BIS,V120_L2,6};
-
-  const byte llc3[] = {4,3,2,2,6,6,0};
-  const byte header[] = {0,2,3,3,0,0,0};
-
-  for(i=0;i<8;i++) bp_parms[i].length = 0;
-  for(i=0;i<6;i++) b2_config_parms[i].length = 0;
-  for(i=0;i<5;i++) b3_config_parms[i].length = 0;
-
-  lli[0] = 1;
-  lli[1] = 1;
-  if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)
-    lli[1] |= 2;
-  if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_OOB_CHANNEL)
-    lli[1] |= 4;
-
-  if ((lli[1] & 0x02) && (diva_xdi_extended_features & DIVA_CAPI_USE_CMA)) {
-    lli[1] |= 0x10;
-    if (plci->rx_dma_descriptor <= 0) {
-      plci->rx_dma_descriptor=diva_get_dma_descriptor(plci,&plci->rx_dma_magic);
-      if (plci->rx_dma_descriptor >= 0)
-        plci->rx_dma_descriptor++;
-    }
-    if (plci->rx_dma_descriptor > 0) {
-      lli[0] = 6;
-      lli[1] |= 0x40;
-      lli[2] = (byte)(plci->rx_dma_descriptor - 1);
-      lli[3] = (byte)plci->rx_dma_magic;
-      lli[4] = (byte)(plci->rx_dma_magic >>  8);
-      lli[5] = (byte)(plci->rx_dma_magic >> 16);
-      lli[6] = (byte)(plci->rx_dma_magic >> 24);
-    }
-  }
-
-  if (DIVA_CAPI_SUPPORTS_NO_CANCEL(plci->adapter)) {
-    lli[1] |= 0x20;
-  }
-
-  dbug(1,dprintf("add_b23"));
-  api_save_msg(bp, "s", &plci->B_protocol);
-
-  if(!bp->length && plci->tel)
-  {
-    plci->adv_nl = true;
-    dbug(1,dprintf("Default adv.Nl"));
-    add_p(plci,LLI,lli);
-    plci->B2_prot = 1 /*XPARENT*/;
-    plci->B3_prot = 0 /*XPARENT*/;
-    llc[1] = 2;
-    llc[2] = 4;
-    add_p(plci, LLC, llc);
-    dlc[0] = 2;
-    PUT_WORD(&dlc[1],plci->appl->MaxDataLength);
-    add_p(plci, DLC, dlc);
-    return 0;
-  }
-
-  if(!bp->length) /*default*/
-  {   
-    dbug(1,dprintf("ret default"));
-    add_p(plci,LLI,lli);
-    plci->B2_prot = 0 /*X.75   */;
-    plci->B3_prot = 0 /*XPARENT*/;
-    llc[1] = 1;
-    llc[2] = 4;
-    add_p(plci, LLC, llc);
-    dlc[0] = 2;
-    PUT_WORD(&dlc[1],plci->appl->MaxDataLength);
-    add_p(plci, DLC, dlc);
-    return 0;
-  }
-  dbug(1,dprintf("b_prot_len=%d",(word)bp->length));
-  if((word)bp->length > 256)    return _WRONG_MESSAGE_FORMAT;
-
-  if(api_parse(&bp->info[1], (word)bp->length, "wwwsssb", bp_parms))
-  {
-    bp_parms[6].length = 0;
-    if(api_parse(&bp->info[1], (word)bp->length, "wwwsss", bp_parms))
-    {
-      dbug(1,dprintf("b-form.!"));
-      return _WRONG_MESSAGE_FORMAT;
-    }
-  }
-  else if (api_parse(&bp->info[1], (word)bp->length, "wwwssss", bp_parms))
-  {
-    dbug(1,dprintf("b-form.!"));
-    return _WRONG_MESSAGE_FORMAT;
-  }
-
-  if(plci->tel==ADV_VOICE) /* transparent B on advanced voice */
-  {  
-    if(GET_WORD(bp_parms[1].info)!=1
-    || GET_WORD(bp_parms[2].info)!=0) return _B2_NOT_SUPPORTED;
-    plci->adv_nl = true;
-  }
-  else if(plci->tel) return _B2_NOT_SUPPORTED;
-
-
-  if ((GET_WORD(bp_parms[1].info) == B2_RTP)
-   && (GET_WORD(bp_parms[2].info) == B3_RTP)
-   && (plci->adapter->man_profile.private_options & (1L << PRIVATE_RTP)))
-  {
-    add_p(plci,LLI,lli);
-    plci->B2_prot = (byte) GET_WORD(bp_parms[1].info);
-    plci->B3_prot = (byte) GET_WORD(bp_parms[2].info);
-    llc[1] = (plci->call_dir & (CALL_DIR_ORIGINATE | CALL_DIR_FORCE_OUTG_NL)) ? 14 : 13;
-    llc[2] = 4;
-    add_p(plci, LLC, llc);
-    dlc[0] = 2;
-    PUT_WORD(&dlc[1],plci->appl->MaxDataLength);
-    dlc[3] = 3; /* Addr A */
-    dlc[4] = 1; /* Addr B */
-    dlc[5] = 7; /* modulo mode */
-    dlc[6] = 7; /* window size */
-    dlc[7] = 0; /* XID len Lo  */
-    dlc[8] = 0; /* XID len Hi  */
-    for (i = 0; i < bp_parms[4].length; i++)
-      dlc[9+i] = bp_parms[4].info[1+i];
-    dlc[0] = (byte)(8 + bp_parms[4].length);
-    add_p(plci, DLC, dlc);
-    for (i = 0; i < bp_parms[5].length; i++)
-      nlc[1+i] = bp_parms[5].info[1+i];
-    nlc[0] = (byte)(bp_parms[5].length);
-    add_p(plci, NLC, nlc);
-    return 0;
-  }
-
-
-
-  if ((GET_WORD(bp_parms[1].info) >= 32)
-   || (!((1L << GET_WORD(bp_parms[1].info)) & plci->adapter->profile.B2_Protocols)
-    && ((GET_WORD(bp_parms[1].info) != B2_PIAFS)
-     || !(plci->adapter->man_profile.private_options & (1L << PRIVATE_PIAFS)))))
-
-  {
-    return _B2_NOT_SUPPORTED;
-  }
-  if ((GET_WORD(bp_parms[2].info) >= 32)
-   || !((1L << GET_WORD(bp_parms[2].info)) & plci->adapter->profile.B3_Protocols))
-  {
-    return _B3_NOT_SUPPORTED;
-  }
-  if ((GET_WORD(bp_parms[1].info) != B2_SDLC)
-   && ((GET_WORD(bp_parms[0].info) == B1_MODEM_ALL_NEGOTIATE)
-    || (GET_WORD(bp_parms[0].info) == B1_MODEM_ASYNC)
-    || (GET_WORD(bp_parms[0].info) == B1_MODEM_SYNC_HDLC)))
-  {
-    return (add_modem_b23 (plci, bp_parms));
-  }
-
-  add_p(plci,LLI,lli);
-
-  plci->B2_prot = (byte) GET_WORD(bp_parms[1].info);
-  plci->B3_prot = (byte) GET_WORD(bp_parms[2].info);
-  if(plci->B2_prot==12) SAPI = 0; /* default SAPI D-channel */
-
-  if(bp_parms[6].length)
-  {
-    if(api_parse(&bp_parms[6].info[1], (word)bp_parms[6].length, "w", global_config))
-    {
-      return _WRONG_MESSAGE_FORMAT;
-    }
-    switch(GET_WORD(global_config[0].info))
-    {
-    case 1:
-      plci->call_dir = (plci->call_dir & ~CALL_DIR_ANSWER) | CALL_DIR_ORIGINATE;
-      break;
-    case 2:
-      plci->call_dir = (plci->call_dir & ~CALL_DIR_ORIGINATE) | CALL_DIR_ANSWER;
-      break;
-    }
-  }
-  dbug(1,dprintf("call_dir=%04x", plci->call_dir));
-
-
-  if (plci->B2_prot == B2_PIAFS)
-    llc[1] = PIAFS_CRC;
-  else
+       word i, fax_control_bits;
+       byte pos, len;
+       byte SAPI = 0x40;  /* default SAPI 16 for x.31 */
+       API_PARSE bp_parms[8];
+       API_PARSE *b1_config;
+       API_PARSE *b2_config;
+       API_PARSE b2_config_parms[8];
+       API_PARSE *b3_config;
+       API_PARSE b3_config_parms[6];
+       API_PARSE global_config[2];
+
+       static byte llc[3] = {2,0,0};
+       static byte dlc[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+       static byte nlc[256];
+       static byte lli[12] = {1,1};
+
+       const byte llc2_out[] = {1,2,4,6,2,0,0,0, X75_V42BIS,V120_L2,V120_V42BIS,V120_L2,6};
+       const byte llc2_in[]  = {1,3,4,6,3,0,0,0, X75_V42BIS,V120_L2,V120_V42BIS,V120_L2,6};
+
+       const byte llc3[] = {4,3,2,2,6,6,0};
+       const byte header[] = {0,2,3,3,0,0,0};
+
+       for (i = 0; i < 8; i++) bp_parms[i].length = 0;
+       for (i = 0; i < 6; i++) b2_config_parms[i].length = 0;
+       for (i = 0; i < 5; i++) b3_config_parms[i].length = 0;
+
+       lli[0] = 1;
+       lli[1] = 1;
+       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)
+               lli[1] |= 2;
+       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_OOB_CHANNEL)
+               lli[1] |= 4;
+
+       if ((lli[1] & 0x02) && (diva_xdi_extended_features & DIVA_CAPI_USE_CMA)) {
+               lli[1] |= 0x10;
+               if (plci->rx_dma_descriptor <= 0) {
+                       plci->rx_dma_descriptor = diva_get_dma_descriptor(plci, &plci->rx_dma_magic);
+                       if (plci->rx_dma_descriptor >= 0)
+                               plci->rx_dma_descriptor++;
+               }
+               if (plci->rx_dma_descriptor > 0) {
+                       lli[0] = 6;
+                       lli[1] |= 0x40;
+                       lli[2] = (byte)(plci->rx_dma_descriptor - 1);
+                       lli[3] = (byte)plci->rx_dma_magic;
+                       lli[4] = (byte)(plci->rx_dma_magic >>  8);
+                       lli[5] = (byte)(plci->rx_dma_magic >> 16);
+                       lli[6] = (byte)(plci->rx_dma_magic >> 24);
+               }
+       }
+
+       if (DIVA_CAPI_SUPPORTS_NO_CANCEL(plci->adapter)) {
+               lli[1] |= 0x20;
+       }
+
+       dbug(1, dprintf("add_b23"));
+       api_save_msg(bp, "s", &plci->B_protocol);
+
+       if (!bp->length && plci->tel)
+       {
+               plci->adv_nl = true;
+               dbug(1, dprintf("Default adv.Nl"));
+               add_p(plci, LLI, lli);
+               plci->B2_prot = 1 /*XPARENT*/;
+               plci->B3_prot = 0 /*XPARENT*/;
+               llc[1] = 2;
+               llc[2] = 4;
+               add_p(plci, LLC, llc);
+               dlc[0] = 2;
+               PUT_WORD(&dlc[1], plci->appl->MaxDataLength);
+               add_p(plci, DLC, dlc);
+               return 0;
+       }
+
+       if (!bp->length) /*default*/
+       {
+               dbug(1, dprintf("ret default"));
+               add_p(plci, LLI, lli);
+               plci->B2_prot = 0 /*X.75   */;
+               plci->B3_prot = 0 /*XPARENT*/;
+               llc[1] = 1;
+               llc[2] = 4;
+               add_p(plci, LLC, llc);
+               dlc[0] = 2;
+               PUT_WORD(&dlc[1], plci->appl->MaxDataLength);
+               add_p(plci, DLC, dlc);
+               return 0;
+       }
+       dbug(1, dprintf("b_prot_len=%d", (word)bp->length));
+       if ((word)bp->length > 256)    return _WRONG_MESSAGE_FORMAT;
+
+       if (api_parse(&bp->info[1], (word)bp->length, "wwwsssb", bp_parms))
+       {
+               bp_parms[6].length = 0;
+               if (api_parse(&bp->info[1], (word)bp->length, "wwwsss", bp_parms))
+               {
+                       dbug(1, dprintf("b-form.!"));
+                       return _WRONG_MESSAGE_FORMAT;
+               }
+       }
+       else if (api_parse(&bp->info[1], (word)bp->length, "wwwssss", bp_parms))
+       {
+               dbug(1, dprintf("b-form.!"));
+               return _WRONG_MESSAGE_FORMAT;
+       }
+
+       if (plci->tel == ADV_VOICE) /* transparent B on advanced voice */
+       {
+               if (GET_WORD(bp_parms[1].info) != 1
+                   || GET_WORD(bp_parms[2].info) != 0) return _B2_NOT_SUPPORTED;
+               plci->adv_nl = true;
+       }
+       else if (plci->tel) return _B2_NOT_SUPPORTED;
+
+
+       if ((GET_WORD(bp_parms[1].info) == B2_RTP)
+           && (GET_WORD(bp_parms[2].info) == B3_RTP)
+           && (plci->adapter->man_profile.private_options & (1L << PRIVATE_RTP)))
+       {
+               add_p(plci, LLI, lli);
+               plci->B2_prot = (byte) GET_WORD(bp_parms[1].info);
+               plci->B3_prot = (byte) GET_WORD(bp_parms[2].info);
+               llc[1] = (plci->call_dir & (CALL_DIR_ORIGINATE | CALL_DIR_FORCE_OUTG_NL)) ? 14 : 13;
+               llc[2] = 4;
+               add_p(plci, LLC, llc);
+               dlc[0] = 2;
+               PUT_WORD(&dlc[1], plci->appl->MaxDataLength);
+               dlc[3] = 3; /* Addr A */
+               dlc[4] = 1; /* Addr B */
+               dlc[5] = 7; /* modulo mode */
+               dlc[6] = 7; /* window size */
+               dlc[7] = 0; /* XID len Lo  */
+               dlc[8] = 0; /* XID len Hi  */
+               for (i = 0; i < bp_parms[4].length; i++)
+                       dlc[9 + i] = bp_parms[4].info[1 + i];
+               dlc[0] = (byte)(8 + bp_parms[4].length);
+               add_p(plci, DLC, dlc);
+               for (i = 0; i < bp_parms[5].length; i++)
+                       nlc[1 + i] = bp_parms[5].info[1 + i];
+               nlc[0] = (byte)(bp_parms[5].length);
+               add_p(plci, NLC, nlc);
+               return 0;
+       }
+
+
+
+       if ((GET_WORD(bp_parms[1].info) >= 32)
+           || (!((1L << GET_WORD(bp_parms[1].info)) & plci->adapter->profile.B2_Protocols)
+               && ((GET_WORD(bp_parms[1].info) != B2_PIAFS)
+                   || !(plci->adapter->man_profile.private_options & (1L << PRIVATE_PIAFS)))))
+
+       {
+               return _B2_NOT_SUPPORTED;
+       }
+       if ((GET_WORD(bp_parms[2].info) >= 32)
+           || !((1L << GET_WORD(bp_parms[2].info)) & plci->adapter->profile.B3_Protocols))
+       {
+               return _B3_NOT_SUPPORTED;
+       }
+       if ((GET_WORD(bp_parms[1].info) != B2_SDLC)
+           && ((GET_WORD(bp_parms[0].info) == B1_MODEM_ALL_NEGOTIATE)
+               || (GET_WORD(bp_parms[0].info) == B1_MODEM_ASYNC)
+               || (GET_WORD(bp_parms[0].info) == B1_MODEM_SYNC_HDLC)))
+       {
+               return (add_modem_b23(plci, bp_parms));
+       }
+
+       add_p(plci, LLI, lli);
+
+       plci->B2_prot = (byte)GET_WORD(bp_parms[1].info);
+       plci->B3_prot = (byte)GET_WORD(bp_parms[2].info);
+       if (plci->B2_prot == 12) SAPI = 0; /* default SAPI D-channel */
+
+       if (bp_parms[6].length)
+       {
+               if (api_parse(&bp_parms[6].info[1], (word)bp_parms[6].length, "w", global_config))
+               {
+                       return _WRONG_MESSAGE_FORMAT;
+               }
+               switch (GET_WORD(global_config[0].info))
+               {
+               case 1:
+                       plci->call_dir = (plci->call_dir & ~CALL_DIR_ANSWER) | CALL_DIR_ORIGINATE;
+                       break;
+               case 2:
+                       plci->call_dir = (plci->call_dir & ~CALL_DIR_ORIGINATE) | CALL_DIR_ANSWER;
+                       break;
+               }
+       }
+       dbug(1, dprintf("call_dir=%04x", plci->call_dir));
+
+
+       if (plci->B2_prot == B2_PIAFS)
+               llc[1] = PIAFS_CRC;
+       else
 /* IMPLEMENT_PIAFS */
-  {
-    llc[1] = (plci->call_dir & (CALL_DIR_ORIGINATE | CALL_DIR_FORCE_OUTG_NL)) ?
-             llc2_out[GET_WORD(bp_parms[1].info)] : llc2_in[GET_WORD(bp_parms[1].info)];
-  }
-  llc[2] = llc3[GET_WORD(bp_parms[2].info)];
-
-  add_p(plci, LLC, llc);
-
-  dlc[0] = 2;
-  PUT_WORD(&dlc[1], plci->appl->MaxDataLength +
-                      header[GET_WORD(bp_parms[2].info)]);
-
-  b1_config = &bp_parms[3];
-  nlc[0] = 0;
-  if(plci->B3_prot == 4
-  || plci->B3_prot == 5)
-  {
-    for (i=0;i<sizeof(T30_INFO);i++) nlc[i] = 0;
-    nlc[0] = sizeof(T30_INFO);
-    if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
-      ((T30_INFO *)&nlc[1])->operating_mode = T30_OPERATING_MODE_CAPI;
-    ((T30_INFO *)&nlc[1])->rate_div_2400 = 0xff;
-    if(b1_config->length>=2)
-    {
-      ((T30_INFO *)&nlc[1])->rate_div_2400 = (byte)(GET_WORD(&b1_config->info[1])/2400);
-    }
-  }
-  b2_config = &bp_parms[4];
-
-
-  if (llc[1] == PIAFS_CRC)
-  {
-    if (plci->B3_prot != B3_TRANSPARENT)
-    {
-      return _B_STACK_NOT_SUPPORTED;
-    }
-    if(b2_config->length && api_parse(&b2_config->info[1], (word)b2_config->length, "bwww", b2_config_parms)) {
-      return _WRONG_MESSAGE_FORMAT;
-    }
-    PUT_WORD(&dlc[1],plci->appl->MaxDataLength);
-    dlc[3] = 0; /* Addr A */
-    dlc[4] = 0; /* Addr B */
-    dlc[5] = 0; /* modulo mode */
-    dlc[6] = 0; /* window size */
-    if (b2_config->length >= 7){
-      dlc[ 7] = 7; 
-      dlc[ 8] = 0; 
-      dlc[ 9] = b2_config_parms[0].info[0]; /* PIAFS protocol Speed configuration */
-      dlc[10] = b2_config_parms[1].info[0]; /* V.42bis P0 */
-      dlc[11] = b2_config_parms[1].info[1]; /* V.42bis P0 */
-      dlc[12] = b2_config_parms[2].info[0]; /* V.42bis P1 */
-      dlc[13] = b2_config_parms[2].info[1]; /* V.42bis P1 */
-      dlc[14] = b2_config_parms[3].info[0]; /* V.42bis P2 */
-      dlc[15] = b2_config_parms[3].info[1]; /* V.42bis P2 */
-      dlc[ 0] = 15;
-      if(b2_config->length >= 8) { /* PIAFS control abilities */
-        dlc[ 7] = 10; 
-        dlc[16] = 2; /* Length of PIAFS extension */
-        dlc[17] = PIAFS_UDATA_ABILITIES; /* control (UDATA) ability */
-        dlc[18] = b2_config_parms[4].info[0]; /* value */
-        dlc[ 0] = 18;
-      }
-    }
-    else /* default values, 64K, variable, no compression */
-    {
-      dlc[ 7] = 7; 
-      dlc[ 8] = 0; 
-      dlc[ 9] = 0x03; /* PIAFS protocol Speed configuration */
-      dlc[10] = 0x03; /* V.42bis P0 */
-      dlc[11] = 0;    /* V.42bis P0 */
-      dlc[12] = 0;    /* V.42bis P1 */
-      dlc[13] = 0;    /* V.42bis P1 */
-      dlc[14] = 0;    /* V.42bis P2 */
-      dlc[15] = 0;    /* V.42bis P2 */
-    dlc[ 0] = 15;
-    }
-    add_p(plci, DLC, dlc);
-  }
-  else
-
-  if ((llc[1] == V120_L2) || (llc[1] == V120_V42BIS))
-  {
-    if (plci->B3_prot != B3_TRANSPARENT)
-      return _B_STACK_NOT_SUPPORTED;
-
-    dlc[0] = 6;
-    PUT_WORD (&dlc[1], GET_WORD (&dlc[1]) + 2);
-    dlc[3] = 0x08;
-    dlc[4] = 0x01;
-    dlc[5] = 127;
-    dlc[6] = 7;
-    if (b2_config->length != 0)
-    {
-      if((llc[1]==V120_V42BIS) && api_parse(&b2_config->info[1], (word)b2_config->length, "bbbbwww", b2_config_parms)) {
-        return _WRONG_MESSAGE_FORMAT;
-      }
-      dlc[3] = (byte)((b2_config->info[2] << 3) | ((b2_config->info[1] >> 5) & 0x04));
-      dlc[4] = (byte)((b2_config->info[1] << 1) | 0x01);
-      if (b2_config->info[3] != 128)
-      {
-        dbug(1,dprintf("1D-dlc= %x %x %x %x %x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4]));
-        return _B2_PARM_NOT_SUPPORTED;
-      }
-      dlc[5] = (byte)(b2_config->info[3] - 1);
-      dlc[6] = b2_config->info[4];
-      if(llc[1]==V120_V42BIS){
-        if (b2_config->length >= 10){
-          dlc[ 7] = 6; 
-          dlc[ 8] = 0; 
-          dlc[ 9] = b2_config_parms[4].info[0];
-          dlc[10] = b2_config_parms[4].info[1];
-          dlc[11] = b2_config_parms[5].info[0];
-          dlc[12] = b2_config_parms[5].info[1];
-          dlc[13] = b2_config_parms[6].info[0];
-          dlc[14] = b2_config_parms[6].info[1];
-          dlc[ 0] = 14;
-          dbug(1,dprintf("b2_config_parms[4].info[0] [1]:  %x %x", b2_config_parms[4].info[0], b2_config_parms[4].info[1]));
-          dbug(1,dprintf("b2_config_parms[5].info[0] [1]:  %x %x", b2_config_parms[5].info[0], b2_config_parms[5].info[1]));
-          dbug(1,dprintf("b2_config_parms[6].info[0] [1]:  %x %x", b2_config_parms[6].info[0], b2_config_parms[6].info[1]));
-        }
-        else {
-          dlc[ 6] = 14;
-        }
-      }
-    }
-  }
-  else
-  {
-    if(b2_config->length)
-    {
-      dbug(1,dprintf("B2-Config"));
-      if(llc[1]==X75_V42BIS){
-        if(api_parse(&b2_config->info[1], (word)b2_config->length, "bbbbwww", b2_config_parms))
-        {
-          return _WRONG_MESSAGE_FORMAT;
-        }
-      }
-      else {
-        if(api_parse(&b2_config->info[1], (word)b2_config->length, "bbbbs", b2_config_parms))
-        {
-          return _WRONG_MESSAGE_FORMAT;
-        }
-      }
-          /* if B2 Protocol is LAPD, b2_config structure is different */
-      if(llc[1]==6)
-      {
-        dlc[0] = 4;
-        if(b2_config->length>=1) dlc[2] = b2_config->info[1];      /* TEI */
-        else dlc[2] = 0x01;
-        if( (b2_config->length>=2) && (plci->B2_prot==12) )
-        {
-          SAPI = b2_config->info[2];    /* SAPI */
-        }
-        dlc[1] = SAPI;
-        if( (b2_config->length>=3) && (b2_config->info[3]==128) )
-        {
-          dlc[3] = 127;      /* Mode */
-        }
-        else
-        {
-          dlc[3] = 7;        /* Mode */
-        }
-   
-        if(b2_config->length>=4) dlc[4] = b2_config->info[4];      /* Window */
-        else dlc[4] = 1;
-        dbug(1,dprintf("D-dlc[%d]=%x,%x,%x,%x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4]));
-        if(b2_config->length>5) return _B2_PARM_NOT_SUPPORTED;
-      }
-      else
-      {
-        dlc[0] = (byte)(b2_config_parms[4].length+6);
-        dlc[3] = b2_config->info[1];
-        dlc[4] = b2_config->info[2];
-        if(b2_config->info[3]!=8 && b2_config->info[3]!=128){
-          dbug(1,dprintf("1D-dlc= %x %x %x %x %x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4]));
-          return _B2_PARM_NOT_SUPPORTED;
-        }
-
-        dlc[5] = (byte)(b2_config->info[3]-1);
-        dlc[6] = b2_config->info[4];
-        if(dlc[6]>dlc[5]){
-          dbug(1,dprintf("2D-dlc= %x %x %x %x %x %x %x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4], dlc[5], dlc[6]));
-          return _B2_PARM_NOT_SUPPORTED;
-        }
-        if(llc[1]==X75_V42BIS) {
-          if (b2_config->length >= 10){
-            dlc[ 7] = 6; 
-            dlc[ 8] = 0; 
-            dlc[ 9] = b2_config_parms[4].info[0];
-            dlc[10] = b2_config_parms[4].info[1];
-            dlc[11] = b2_config_parms[5].info[0];
-            dlc[12] = b2_config_parms[5].info[1];
-            dlc[13] = b2_config_parms[6].info[0];
-            dlc[14] = b2_config_parms[6].info[1];
-            dlc[ 0] = 14;
-            dbug(1,dprintf("b2_config_parms[4].info[0] [1]:  %x %x", b2_config_parms[4].info[0], b2_config_parms[4].info[1]));
-            dbug(1,dprintf("b2_config_parms[5].info[0] [1]:  %x %x", b2_config_parms[5].info[0], b2_config_parms[5].info[1]));
-            dbug(1,dprintf("b2_config_parms[6].info[0] [1]:  %x %x", b2_config_parms[6].info[0], b2_config_parms[6].info[1]));
-          }
-          else {
-            dlc[ 6] = 14;
-          }
-
-        }
-        else {
-          PUT_WORD(&dlc[7], (word)b2_config_parms[4].length);
-          for(i=0; i<b2_config_parms[4].length; i++)
-            dlc[11+i] = b2_config_parms[4].info[1+i];
-        }
-      }
-    }
-  }
-  add_p(plci, DLC, dlc);
-
-  b3_config = &bp_parms[5];
-  if(b3_config->length)
-  {
-    if(plci->B3_prot == 4 
-    || plci->B3_prot == 5)
-    {
-      if(api_parse(&b3_config->info[1], (word)b3_config->length, "wwss", b3_config_parms))
-      {
-        return _WRONG_MESSAGE_FORMAT;
-      }
-      i = GET_WORD((byte   *)(b3_config_parms[0].info));
-      ((T30_INFO *)&nlc[1])->resolution = (byte)(((i & 0x0001) ||
-        ((plci->B3_prot == 4) && (((byte)(GET_WORD((byte   *)b3_config_parms[1].info))) != 5))) ? T30_RESOLUTION_R8_0770_OR_200 : 0);
-      ((T30_INFO *)&nlc[1])->data_format = (byte)(GET_WORD((byte   *)b3_config_parms[1].info));
-      fax_control_bits = T30_CONTROL_BIT_ALL_FEATURES;
-      if ((((T30_INFO *)&nlc[1])->rate_div_2400 != 0) && (((T30_INFO *)&nlc[1])->rate_div_2400 <= 6))
-        fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_V34FAX;
-      if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
-      {
-
-        if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id-1])
-          & (1L << PRIVATE_FAX_PAPER_FORMATS))
-        {
-          ((T30_INFO *)&nlc[1])->resolution |= T30_RESOLUTION_R8_1540 |
-            T30_RESOLUTION_R16_1540_OR_400 | T30_RESOLUTION_300_300 |
-            T30_RESOLUTION_INCH_BASED | T30_RESOLUTION_METRIC_BASED;
-        }
-
- ((T30_INFO *)&nlc[1])->recording_properties =
-   T30_RECORDING_WIDTH_ISO_A3 |
-   (T30_RECORDING_LENGTH_UNLIMITED << 2) |
-   (T30_MIN_SCANLINE_TIME_00_00_00 << 4);
-      }
-      if(plci->B3_prot == 5)
-      {
-        if (i & 0x0002) /* Accept incoming fax-polling requests */
-          fax_control_bits |= T30_CONTROL_BIT_ACCEPT_POLLING;
-        if (i & 0x2000) /* Do not use MR compression */
-          fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_2D_CODING;
-        if (i & 0x4000) /* Do not use MMR compression */
-          fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_T6_CODING;
-        if (i & 0x8000) /* Do not use ECM */
-          fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_ECM;
-        if (plci->fax_connect_info_length != 0)
-        {
-          ((T30_INFO *)&nlc[1])->resolution = ((T30_INFO   *)plci->fax_connect_info_buffer)->resolution;
-          ((T30_INFO *)&nlc[1])->data_format = ((T30_INFO   *)plci->fax_connect_info_buffer)->data_format;
-          ((T30_INFO *)&nlc[1])->recording_properties = ((T30_INFO   *)plci->fax_connect_info_buffer)->recording_properties;
-          fax_control_bits |= GET_WORD(&((T30_INFO   *)plci->fax_connect_info_buffer)->control_bits_low) &
-            (T30_CONTROL_BIT_REQUEST_POLLING | T30_CONTROL_BIT_MORE_DOCUMENTS);
-        }
-      }
-      /* copy station id to NLC */
-      for(i=0; i < T30_MAX_STATION_ID_LENGTH; i++)
-      {
-        if(i<b3_config_parms[2].length)
-        {
-          ((T30_INFO *)&nlc[1])->station_id[i] = ((byte   *)b3_config_parms[2].info)[1+i];
-        }
-        else
-        {
-          ((T30_INFO *)&nlc[1])->station_id[i] = ' ';
-        }
-      }
-      ((T30_INFO *)&nlc[1])->station_id_len = T30_MAX_STATION_ID_LENGTH;
-      /* copy head line to NLC */
-      if(b3_config_parms[3].length)
-      {
-
-        pos = (byte)(fax_head_line_time (&(((T30_INFO *)&nlc[1])->station_id[T30_MAX_STATION_ID_LENGTH])));
-        if (pos != 0)
-        {
-          if (CAPI_MAX_DATE_TIME_LENGTH + 2 + b3_config_parms[3].length > CAPI_MAX_HEAD_LINE_SPACE)
-            pos = 0;
-          else
-          {
-            nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
-            nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
-            len = (byte)b3_config_parms[2].length;
-            if (len > 20)
-              len = 20;
-            if (CAPI_MAX_DATE_TIME_LENGTH + 2 + len + 2 + b3_config_parms[3].length <= CAPI_MAX_HEAD_LINE_SPACE)
-            {
-              for (i = 0; i < len; i++)
-                nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ((byte   *)b3_config_parms[2].info)[1+i];
-              nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
-              nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
-            }
-          }
-        }
-
-        len = (byte)b3_config_parms[3].length;
-        if (len > CAPI_MAX_HEAD_LINE_SPACE - pos)
-          len = (byte)(CAPI_MAX_HEAD_LINE_SPACE - pos);
-        ((T30_INFO *)&nlc[1])->head_line_len = (byte)(pos + len);
-        nlc[0] += (byte)(pos + len);
-        for (i = 0; i < len; i++)
-          nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] =  ((byte   *)b3_config_parms[3].info)[1+i];
-      } else
-        ((T30_INFO *)&nlc[1])->head_line_len = 0;
-
-      plci->nsf_control_bits = 0;
-      if(plci->B3_prot == 5)
-      {
-        if ((plci->adapter->man_profile.private_options & (1L << PRIVATE_FAX_SUB_SEP_PWD))
-         && (GET_WORD((byte   *)b3_config_parms[1].info) & 0x8000)) /* Private SUB/SEP/PWD enable */
-        {
-          plci->requested_options |= 1L << PRIVATE_FAX_SUB_SEP_PWD;
-        }
-        if ((plci->adapter->man_profile.private_options & (1L << PRIVATE_FAX_NONSTANDARD))
-         && (GET_WORD((byte   *)b3_config_parms[1].info) & 0x4000)) /* Private non-standard facilities enable */
-        {
-          plci->requested_options |= 1L << PRIVATE_FAX_NONSTANDARD;
-        }
-        if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id-1])
-          & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
-        {
-        if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id-1])
-          & (1L << PRIVATE_FAX_SUB_SEP_PWD))
-        {
-          fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SUBADDRESS | T30_CONTROL_BIT_ACCEPT_PASSWORD;
-          if (fax_control_bits & T30_CONTROL_BIT_ACCEPT_POLLING)
-            fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SEL_POLLING;
-          }
-            len = nlc[0];
-          pos = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
-   if (pos < plci->fax_connect_info_length)
-   {
-     for (i = 1 + plci->fax_connect_info_buffer[pos]; i != 0; i--)
-              nlc[++len] = plci->fax_connect_info_buffer[pos++];
-          }
-   else
-     nlc[++len] = 0;
-   if (pos < plci->fax_connect_info_length)
-   {
-     for (i = 1 + plci->fax_connect_info_buffer[pos]; i != 0; i--)
-              nlc[++len] = plci->fax_connect_info_buffer[pos++];
-          }
-   else
-     nlc[++len] = 0;
-          if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id-1])
-            & (1L << PRIVATE_FAX_NONSTANDARD))
-          {
-     if ((pos < plci->fax_connect_info_length) && (plci->fax_connect_info_buffer[pos] != 0))
-     {
-              if ((plci->fax_connect_info_buffer[pos] >= 3) && (plci->fax_connect_info_buffer[pos+1] >= 2))
-                plci->nsf_control_bits = GET_WORD(&plci->fax_connect_info_buffer[pos+2]);
-       for (i = 1 + plci->fax_connect_info_buffer[pos]; i != 0; i--)
-                nlc[++len] = plci->fax_connect_info_buffer[pos++];
-            }
-     else
-     {
-              if(api_parse(&b3_config->info[1], (word)b3_config->length, "wwsss", b3_config_parms))
-              {
-                dbug(1,dprintf("non-standard facilities info missing or wrong format"));
-                nlc[++len] = 0;
-              }
-       else
-       {
-                if ((b3_config_parms[4].length >= 3) && (b3_config_parms[4].info[1] >= 2))
-                  plci->nsf_control_bits = GET_WORD(&b3_config_parms[4].info[2]);
-         nlc[++len] = (byte)(b3_config_parms[4].length);
-         for (i = 0; i < b3_config_parms[4].length; i++)
-    nlc[++len] = b3_config_parms[4].info[1+i];
-       }
-            }
-          }
-            nlc[0] = len;
-   if ((plci->nsf_control_bits & T30_NSF_CONTROL_BIT_ENABLE_NSF)
-    && (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_NEGOTIATE_RESP))
-   {
-            ((T30_INFO *)&nlc[1])->operating_mode = T30_OPERATING_MODE_CAPI_NEG;
-          }
-        }
-      }
-
-      PUT_WORD(&(((T30_INFO *)&nlc[1])->control_bits_low), fax_control_bits);
-      len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
-      for (i = 0; i < len; i++)
-        plci->fax_connect_info_buffer[i] = nlc[1+i];
-      ((T30_INFO   *) plci->fax_connect_info_buffer)->head_line_len = 0;
-      i += ((T30_INFO *)&nlc[1])->head_line_len;
-      while (i < nlc[0])
-        plci->fax_connect_info_buffer[len++] = nlc[++i];
-      plci->fax_connect_info_length = len;
-    }
-    else
-    {
-      nlc[0] = 14;
-      if(b3_config->length!=16)
-        return _B3_PARM_NOT_SUPPORTED;
-      for(i=0; i<12; i++) nlc[1+i] = b3_config->info[1+i];
-      if(GET_WORD(&b3_config->info[13])!=8 && GET_WORD(&b3_config->info[13])!=128)
-        return _B3_PARM_NOT_SUPPORTED;
-      nlc[13] = b3_config->info[13];
-      if(GET_WORD(&b3_config->info[15])>=nlc[13])
-        return _B3_PARM_NOT_SUPPORTED;
-      nlc[14] = b3_config->info[15];
-    }
-  }
-  else
-  {
-    if (plci->B3_prot == 4 
-     || plci->B3_prot == 5 /*T.30 - FAX*/ ) return _B3_PARM_NOT_SUPPORTED;
-  }
-  add_p(plci, NLC, nlc);
-  return 0;
+       {
+               llc[1] = (plci->call_dir & (CALL_DIR_ORIGINATE | CALL_DIR_FORCE_OUTG_NL)) ?
+                       llc2_out[GET_WORD(bp_parms[1].info)] : llc2_in[GET_WORD(bp_parms[1].info)];
+       }
+       llc[2] = llc3[GET_WORD(bp_parms[2].info)];
+
+       add_p(plci, LLC, llc);
+
+       dlc[0] = 2;
+       PUT_WORD(&dlc[1], plci->appl->MaxDataLength +
+                header[GET_WORD(bp_parms[2].info)]);
+
+       b1_config = &bp_parms[3];
+       nlc[0] = 0;
+       if (plci->B3_prot == 4
+           || plci->B3_prot == 5)
+       {
+               for (i = 0; i < sizeof(T30_INFO); i++) nlc[i] = 0;
+               nlc[0] = sizeof(T30_INFO);
+               if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
+                       ((T30_INFO *)&nlc[1])->operating_mode = T30_OPERATING_MODE_CAPI;
+               ((T30_INFO *)&nlc[1])->rate_div_2400 = 0xff;
+               if (b1_config->length >= 2)
+               {
+                       ((T30_INFO *)&nlc[1])->rate_div_2400 = (byte)(GET_WORD(&b1_config->info[1]) / 2400);
+               }
+       }
+       b2_config = &bp_parms[4];
+
+
+       if (llc[1] == PIAFS_CRC)
+       {
+               if (plci->B3_prot != B3_TRANSPARENT)
+               {
+                       return _B_STACK_NOT_SUPPORTED;
+               }
+               if (b2_config->length && api_parse(&b2_config->info[1], (word)b2_config->length, "bwww", b2_config_parms)) {
+                       return _WRONG_MESSAGE_FORMAT;
+               }
+               PUT_WORD(&dlc[1], plci->appl->MaxDataLength);
+               dlc[3] = 0; /* Addr A */
+               dlc[4] = 0; /* Addr B */
+               dlc[5] = 0; /* modulo mode */
+               dlc[6] = 0; /* window size */
+               if (b2_config->length >= 7) {
+                       dlc[7] = 7;
+                       dlc[8] = 0;
+                       dlc[9] = b2_config_parms[0].info[0]; /* PIAFS protocol Speed configuration */
+                       dlc[10] = b2_config_parms[1].info[0]; /* V.42bis P0 */
+                       dlc[11] = b2_config_parms[1].info[1]; /* V.42bis P0 */
+                       dlc[12] = b2_config_parms[2].info[0]; /* V.42bis P1 */
+                       dlc[13] = b2_config_parms[2].info[1]; /* V.42bis P1 */
+                       dlc[14] = b2_config_parms[3].info[0]; /* V.42bis P2 */
+                       dlc[15] = b2_config_parms[3].info[1]; /* V.42bis P2 */
+                       dlc[0] = 15;
+                       if (b2_config->length >= 8) { /* PIAFS control abilities */
+                               dlc[7] = 10;
+                               dlc[16] = 2; /* Length of PIAFS extension */
+                               dlc[17] = PIAFS_UDATA_ABILITIES; /* control (UDATA) ability */
+                               dlc[18] = b2_config_parms[4].info[0]; /* value */
+                               dlc[0] = 18;
+                       }
+               }
+               else /* default values, 64K, variable, no compression */
+               {
+                       dlc[7] = 7;
+                       dlc[8] = 0;
+                       dlc[9] = 0x03; /* PIAFS protocol Speed configuration */
+                       dlc[10] = 0x03; /* V.42bis P0 */
+                       dlc[11] = 0;    /* V.42bis P0 */
+                       dlc[12] = 0;    /* V.42bis P1 */
+                       dlc[13] = 0;    /* V.42bis P1 */
+                       dlc[14] = 0;    /* V.42bis P2 */
+                       dlc[15] = 0;    /* V.42bis P2 */
+                       dlc[0] = 15;
+               }
+               add_p(plci, DLC, dlc);
+       }
+       else
+
+               if ((llc[1] == V120_L2) || (llc[1] == V120_V42BIS))
+               {
+                       if (plci->B3_prot != B3_TRANSPARENT)
+                               return _B_STACK_NOT_SUPPORTED;
+
+                       dlc[0] = 6;
+                       PUT_WORD(&dlc[1], GET_WORD(&dlc[1]) + 2);
+                       dlc[3] = 0x08;
+                       dlc[4] = 0x01;
+                       dlc[5] = 127;
+                       dlc[6] = 7;
+                       if (b2_config->length != 0)
+                       {
+                               if ((llc[1] == V120_V42BIS) && api_parse(&b2_config->info[1], (word)b2_config->length, "bbbbwww", b2_config_parms)) {
+                                       return _WRONG_MESSAGE_FORMAT;
+                               }
+                               dlc[3] = (byte)((b2_config->info[2] << 3) | ((b2_config->info[1] >> 5) & 0x04));
+                               dlc[4] = (byte)((b2_config->info[1] << 1) | 0x01);
+                               if (b2_config->info[3] != 128)
+                               {
+                                       dbug(1, dprintf("1D-dlc= %x %x %x %x %x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4]));
+                                       return _B2_PARM_NOT_SUPPORTED;
+                               }
+                               dlc[5] = (byte)(b2_config->info[3] - 1);
+                               dlc[6] = b2_config->info[4];
+                               if (llc[1] == V120_V42BIS) {
+                                       if (b2_config->length >= 10) {
+                                               dlc[7] = 6;
+                                               dlc[8] = 0;
+                                               dlc[9] = b2_config_parms[4].info[0];
+                                               dlc[10] = b2_config_parms[4].info[1];
+                                               dlc[11] = b2_config_parms[5].info[0];
+                                               dlc[12] = b2_config_parms[5].info[1];
+                                               dlc[13] = b2_config_parms[6].info[0];
+                                               dlc[14] = b2_config_parms[6].info[1];
+                                               dlc[0] = 14;
+                                               dbug(1, dprintf("b2_config_parms[4].info[0] [1]:  %x %x", b2_config_parms[4].info[0], b2_config_parms[4].info[1]));
+                                               dbug(1, dprintf("b2_config_parms[5].info[0] [1]:  %x %x", b2_config_parms[5].info[0], b2_config_parms[5].info[1]));
+                                               dbug(1, dprintf("b2_config_parms[6].info[0] [1]:  %x %x", b2_config_parms[6].info[0], b2_config_parms[6].info[1]));
+                                       }
+                                       else {
+                                               dlc[6] = 14;
+                                       }
+                               }
+                       }
+               }
+               else
+               {
+                       if (b2_config->length)
+                       {
+                               dbug(1, dprintf("B2-Config"));
+                               if (llc[1] == X75_V42BIS) {
+                                       if (api_parse(&b2_config->info[1], (word)b2_config->length, "bbbbwww", b2_config_parms))
+                                       {
+                                               return _WRONG_MESSAGE_FORMAT;
+                                       }
+                               }
+                               else {
+                                       if (api_parse(&b2_config->info[1], (word)b2_config->length, "bbbbs", b2_config_parms))
+                                       {
+                                               return _WRONG_MESSAGE_FORMAT;
+                                       }
+                               }
+                               /* if B2 Protocol is LAPD, b2_config structure is different */
+                               if (llc[1] == 6)
+                               {
+                                       dlc[0] = 4;
+                                       if (b2_config->length >= 1) dlc[2] = b2_config->info[1];      /* TEI */
+                                       else dlc[2] = 0x01;
+                                       if ((b2_config->length >= 2) && (plci->B2_prot == 12))
+                                       {
+                                               SAPI = b2_config->info[2];    /* SAPI */
+                                       }
+                                       dlc[1] = SAPI;
+                                       if ((b2_config->length >= 3) && (b2_config->info[3] == 128))
+                                       {
+                                               dlc[3] = 127;      /* Mode */
+                                       }
+                                       else
+                                       {
+                                               dlc[3] = 7;        /* Mode */
+                                       }
+
+                                       if (b2_config->length >= 4) dlc[4] = b2_config->info[4];      /* Window */
+                                       else dlc[4] = 1;
+                                       dbug(1, dprintf("D-dlc[%d]=%x,%x,%x,%x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4]));
+                                       if (b2_config->length > 5) return _B2_PARM_NOT_SUPPORTED;
+                               }
+                               else
+                               {
+                                       dlc[0] = (byte)(b2_config_parms[4].length + 6);
+                                       dlc[3] = b2_config->info[1];
+                                       dlc[4] = b2_config->info[2];
+                                       if (b2_config->info[3] != 8 && b2_config->info[3] != 128) {
+                                               dbug(1, dprintf("1D-dlc= %x %x %x %x %x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4]));
+                                               return _B2_PARM_NOT_SUPPORTED;
+                                       }
+
+                                       dlc[5] = (byte)(b2_config->info[3] - 1);
+                                       dlc[6] = b2_config->info[4];
+                                       if (dlc[6] > dlc[5]) {
+                                               dbug(1, dprintf("2D-dlc= %x %x %x %x %x %x %x", dlc[0], dlc[1], dlc[2], dlc[3], dlc[4], dlc[5], dlc[6]));
+                                               return _B2_PARM_NOT_SUPPORTED;
+                                       }
+
+                                       if (llc[1] == X75_V42BIS) {
+                                               if (b2_config->length >= 10) {
+                                                       dlc[7] = 6;
+                                                       dlc[8] = 0;
+                                                       dlc[9] = b2_config_parms[4].info[0];
+                                                       dlc[10] = b2_config_parms[4].info[1];
+                                                       dlc[11] = b2_config_parms[5].info[0];
+                                                       dlc[12] = b2_config_parms[5].info[1];
+                                                       dlc[13] = b2_config_parms[6].info[0];
+                                                       dlc[14] = b2_config_parms[6].info[1];
+                                                       dlc[0] = 14;
+                                                       dbug(1, dprintf("b2_config_parms[4].info[0] [1]:  %x %x", b2_config_parms[4].info[0], b2_config_parms[4].info[1]));
+                                                       dbug(1, dprintf("b2_config_parms[5].info[0] [1]:  %x %x", b2_config_parms[5].info[0], b2_config_parms[5].info[1]));
+                                                       dbug(1, dprintf("b2_config_parms[6].info[0] [1]:  %x %x", b2_config_parms[6].info[0], b2_config_parms[6].info[1]));
+                                               }
+                                               else {
+                                                       dlc[6] = 14;
+                                               }
+
+                                       }
+                                       else {
+                                               PUT_WORD(&dlc[7], (word)b2_config_parms[4].length);
+                                               for (i = 0; i < b2_config_parms[4].length; i++)
+                                                       dlc[11 + i] = b2_config_parms[4].info[1 + i];
+                                       }
+                               }
+                       }
+               }
+       add_p(plci, DLC, dlc);
+
+       b3_config = &bp_parms[5];
+       if (b3_config->length)
+       {
+               if (plci->B3_prot == 4
+                   || plci->B3_prot == 5)
+               {
+                       if (api_parse(&b3_config->info[1], (word)b3_config->length, "wwss", b3_config_parms))
+                       {
+                               return _WRONG_MESSAGE_FORMAT;
+                       }
+                       i = GET_WORD((byte *)(b3_config_parms[0].info));
+                       ((T30_INFO *)&nlc[1])->resolution = (byte)(((i & 0x0001) ||
+                                                                   ((plci->B3_prot == 4) && (((byte)(GET_WORD((byte *)b3_config_parms[1].info))) != 5))) ? T30_RESOLUTION_R8_0770_OR_200 : 0);
+                       ((T30_INFO *)&nlc[1])->data_format = (byte)(GET_WORD((byte *)b3_config_parms[1].info));
+                       fax_control_bits = T30_CONTROL_BIT_ALL_FEATURES;
+                       if ((((T30_INFO *)&nlc[1])->rate_div_2400 != 0) && (((T30_INFO *)&nlc[1])->rate_div_2400 <= 6))
+                               fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_V34FAX;
+                       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_FAX_PAPER_FORMATS)
+                       {
+
+                               if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id - 1])
+                                   & (1L << PRIVATE_FAX_PAPER_FORMATS))
+                               {
+                                       ((T30_INFO *)&nlc[1])->resolution |= T30_RESOLUTION_R8_1540 |
+                                               T30_RESOLUTION_R16_1540_OR_400 | T30_RESOLUTION_300_300 |
+                                               T30_RESOLUTION_INCH_BASED | T30_RESOLUTION_METRIC_BASED;
+                               }
+
                              ((T30_INFO *)&nlc[1])->recording_properties =
+                                       T30_RECORDING_WIDTH_ISO_A3 |
+                                       (T30_RECORDING_LENGTH_UNLIMITED << 2) |
+                                       (T30_MIN_SCANLINE_TIME_00_00_00 << 4);
+                       }
+                       if (plci->B3_prot == 5)
+                       {
+                               if (i & 0x0002) /* Accept incoming fax-polling requests */
+                                       fax_control_bits |= T30_CONTROL_BIT_ACCEPT_POLLING;
+                               if (i & 0x2000) /* Do not use MR compression */
+                                       fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_2D_CODING;
+                               if (i & 0x4000) /* Do not use MMR compression */
+                                       fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_T6_CODING;
+                               if (i & 0x8000) /* Do not use ECM */
+                                       fax_control_bits &= ~T30_CONTROL_BIT_ENABLE_ECM;
+                               if (plci->fax_connect_info_length != 0)
+                               {
+                                       ((T30_INFO *)&nlc[1])->resolution = ((T30_INFO *)plci->fax_connect_info_buffer)->resolution;
+                                       ((T30_INFO *)&nlc[1])->data_format = ((T30_INFO *)plci->fax_connect_info_buffer)->data_format;
+                                       ((T30_INFO *)&nlc[1])->recording_properties = ((T30_INFO *)plci->fax_connect_info_buffer)->recording_properties;
+                                       fax_control_bits |= GET_WORD(&((T30_INFO *)plci->fax_connect_info_buffer)->control_bits_low) &
+                                               (T30_CONTROL_BIT_REQUEST_POLLING | T30_CONTROL_BIT_MORE_DOCUMENTS);
+                               }
+                       }
+                       /* copy station id to NLC */
+                       for (i = 0; i < T30_MAX_STATION_ID_LENGTH; i++)
+                       {
+                               if (i < b3_config_parms[2].length)
+                               {
+                                       ((T30_INFO *)&nlc[1])->station_id[i] = ((byte *)b3_config_parms[2].info)[1 + i];
+                               }
+                               else
+                               {
+                                       ((T30_INFO *)&nlc[1])->station_id[i] = ' ';
+                               }
+                       }
+                       ((T30_INFO *)&nlc[1])->station_id_len = T30_MAX_STATION_ID_LENGTH;
+                       /* copy head line to NLC */
+                       if (b3_config_parms[3].length)
+                       {
+
+                               pos = (byte)(fax_head_line_time(&(((T30_INFO *)&nlc[1])->station_id[T30_MAX_STATION_ID_LENGTH])));
+                               if (pos != 0)
+                               {
+                                       if (CAPI_MAX_DATE_TIME_LENGTH + 2 + b3_config_parms[3].length > CAPI_MAX_HEAD_LINE_SPACE)
+                                               pos = 0;
+                                       else
+                                       {
+                                               nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
+                                               nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
+                                               len = (byte)b3_config_parms[2].length;
+                                               if (len > 20)
+                                                       len = 20;
+                                               if (CAPI_MAX_DATE_TIME_LENGTH + 2 + len + 2 + b3_config_parms[3].length <= CAPI_MAX_HEAD_LINE_SPACE)
+                                               {
+                                                       for (i = 0; i < len; i++)
+                                                               nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ((byte *)b3_config_parms[2].info)[1 + i];
+                                                       nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
+                                                       nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] = ' ';
+                                               }
+                                       }
+                               }
+
+                               len = (byte)b3_config_parms[3].length;
+                               if (len > CAPI_MAX_HEAD_LINE_SPACE - pos)
+                                       len = (byte)(CAPI_MAX_HEAD_LINE_SPACE - pos);
+                               ((T30_INFO *)&nlc[1])->head_line_len = (byte)(pos + len);
+                               nlc[0] += (byte)(pos + len);
+                               for (i = 0; i < len; i++)
+                                       nlc[1 + offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH + pos++] =  ((byte *)b3_config_parms[3].info)[1 + i];
+                       } else
+                               ((T30_INFO *)&nlc[1])->head_line_len = 0;
+
+                       plci->nsf_control_bits = 0;
+                       if (plci->B3_prot == 5)
+                       {
+                               if ((plci->adapter->man_profile.private_options & (1L << PRIVATE_FAX_SUB_SEP_PWD))
+                                   && (GET_WORD((byte *)b3_config_parms[1].info) & 0x8000)) /* Private SUB/SEP/PWD enable */
+                               {
+                                       plci->requested_options |= 1L << PRIVATE_FAX_SUB_SEP_PWD;
+                               }
+                               if ((plci->adapter->man_profile.private_options & (1L << PRIVATE_FAX_NONSTANDARD))
+                                   && (GET_WORD((byte *)b3_config_parms[1].info) & 0x4000)) /* Private non-standard facilities enable */
+                               {
+                                       plci->requested_options |= 1L << PRIVATE_FAX_NONSTANDARD;
+                               }
+                               if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id - 1])
+                                   & ((1L << PRIVATE_FAX_SUB_SEP_PWD) | (1L << PRIVATE_FAX_NONSTANDARD)))
+                               {
+                                       if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id - 1])
+                                           & (1L << PRIVATE_FAX_SUB_SEP_PWD))
+                                       {
+                                               fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SUBADDRESS | T30_CONTROL_BIT_ACCEPT_PASSWORD;
+                                               if (fax_control_bits & T30_CONTROL_BIT_ACCEPT_POLLING)
+                                                       fax_control_bits |= T30_CONTROL_BIT_ACCEPT_SEL_POLLING;
+                                       }
+                                       len = nlc[0];
+                                       pos = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
+                                       if (pos < plci->fax_connect_info_length)
+                                       {
+                                               for (i = 1 + plci->fax_connect_info_buffer[pos]; i != 0; i--)
+                                                       nlc[++len] = plci->fax_connect_info_buffer[pos++];
+                                       }
+                                       else
+                                               nlc[++len] = 0;
+                                       if (pos < plci->fax_connect_info_length)
+                                       {
+                                               for (i = 1 + plci->fax_connect_info_buffer[pos]; i != 0; i--)
+                                                       nlc[++len] = plci->fax_connect_info_buffer[pos++];
+                                       }
+                                       else
+                                               nlc[++len] = 0;
+                                       if ((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[plci->appl->Id - 1])
+                                           & (1L << PRIVATE_FAX_NONSTANDARD))
+                                       {
+                                               if ((pos < plci->fax_connect_info_length) && (plci->fax_connect_info_buffer[pos] != 0))
+                                               {
+                                                       if ((plci->fax_connect_info_buffer[pos] >= 3) && (plci->fax_connect_info_buffer[pos + 1] >= 2))
+                                                               plci->nsf_control_bits = GET_WORD(&plci->fax_connect_info_buffer[pos + 2]);
+                                                       for (i = 1 + plci->fax_connect_info_buffer[pos]; i != 0; i--)
+                                                               nlc[++len] = plci->fax_connect_info_buffer[pos++];
+                                               }
+                                               else
+                                               {
+                                                       if (api_parse(&b3_config->info[1], (word)b3_config->length, "wwsss", b3_config_parms))
+                                                       {
+                                                               dbug(1, dprintf("non-standard facilities info missing or wrong format"));
+                                                               nlc[++len] = 0;
+                                                       }
+                                                       else
+                                                       {
+                                                               if ((b3_config_parms[4].length >= 3) && (b3_config_parms[4].info[1] >= 2))
+                                                                       plci->nsf_control_bits = GET_WORD(&b3_config_parms[4].info[2]);
+                                                               nlc[++len] = (byte)(b3_config_parms[4].length);
+                                                               for (i = 0; i < b3_config_parms[4].length; i++)
+                                                                       nlc[++len] = b3_config_parms[4].info[1 + i];
+                                                       }
+                                               }
+                                       }
+                                       nlc[0] = len;
+                                       if ((plci->nsf_control_bits & T30_NSF_CONTROL_BIT_ENABLE_NSF)
+                                           && (plci->nsf_control_bits & T30_NSF_CONTROL_BIT_NEGOTIATE_RESP))
+                                       {
+                                               ((T30_INFO *)&nlc[1])->operating_mode = T30_OPERATING_MODE_CAPI_NEG;
+                                       }
+                               }
+                       }
+
+                       PUT_WORD(&(((T30_INFO *)&nlc[1])->control_bits_low), fax_control_bits);
+                       len = offsetof(T30_INFO, station_id) + T30_MAX_STATION_ID_LENGTH;
+                       for (i = 0; i < len; i++)
+                               plci->fax_connect_info_buffer[i] = nlc[1 + i];
+                       ((T30_INFO *) plci->fax_connect_info_buffer)->head_line_len = 0;
+                       i += ((T30_INFO *)&nlc[1])->head_line_len;
+                       while (i < nlc[0])
+                               plci->fax_connect_info_buffer[len++] = nlc[++i];
+                       plci->fax_connect_info_length = len;
+               }
+               else
+               {
+                       nlc[0] = 14;
+                       if (b3_config->length != 16)
+                               return _B3_PARM_NOT_SUPPORTED;
+                       for (i = 0; i < 12; i++) nlc[1 + i] = b3_config->info[1 + i];
+                       if (GET_WORD(&b3_config->info[13]) != 8 && GET_WORD(&b3_config->info[13]) != 128)
+                               return _B3_PARM_NOT_SUPPORTED;
+                       nlc[13] = b3_config->info[13];
+                       if (GET_WORD(&b3_config->info[15]) >= nlc[13])
+                               return _B3_PARM_NOT_SUPPORTED;
+                       nlc[14] = b3_config->info[15];
+               }
+       }
+       else
+       {
+               if (plci->B3_prot == 4
+                   || plci->B3_prot == 5 /*T.30 - FAX*/) return _B3_PARM_NOT_SUPPORTED;
+       }
+       add_p(plci, NLC, nlc);
+       return 0;
 }
 
 /*----------------------------------------------------------------*/
@@ -8567,136 +8567,136 @@ static word add_b23(PLCI *plci, API_PARSE *bp)
 /*      B3 Configuration for modem:                               */
 /*          empty                                                 */
 /*----------------------------------------------------------------*/
-static word add_modem_b23 (PLCI  * plci, API_PARSE* bp_parms)
-{
-  static byte lli[12] = {1,1};
-  static byte llc[3] = {2,0,0};
-  static byte dlc[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-    API_PARSE mdm_config[2];
-  word i;
-  word b2_config = 0;
-
-  for(i=0;i<2;i++) mdm_config[i].length = 0;
-  for(i=0;i<sizeof(dlc);i++) dlc[i] = 0;
-
-  if (((GET_WORD(bp_parms[0].info) == B1_MODEM_ALL_NEGOTIATE)
-    && (GET_WORD(bp_parms[1].info) != B2_MODEM_EC_COMPRESSION))
-   || ((GET_WORD(bp_parms[0].info) != B1_MODEM_ALL_NEGOTIATE)
-    && (GET_WORD(bp_parms[1].info) != B2_TRANSPARENT)))
-  {
-    return (_B_STACK_NOT_SUPPORTED);
-  }
-  if ((GET_WORD(bp_parms[2].info) != B3_MODEM)
-   && (GET_WORD(bp_parms[2].info) != B3_TRANSPARENT))
-  {
-    return (_B_STACK_NOT_SUPPORTED);
-  }
-
-  plci->B2_prot = (byte) GET_WORD(bp_parms[1].info);
-  plci->B3_prot = (byte) GET_WORD(bp_parms[2].info);
-
-  if ((GET_WORD(bp_parms[1].info) == B2_MODEM_EC_COMPRESSION) && bp_parms[4].length)
-  {
-    if (api_parse (&bp_parms[4].info[1],
-                  (word)bp_parms[4].length, "w",
-                  mdm_config))
-    {
-      return (_WRONG_MESSAGE_FORMAT);
-    }
-    b2_config = GET_WORD(mdm_config[0].info);
-  }
-
-  /* OK, L2 is modem */
-
-  lli[0] = 1;
-  lli[1] = 1;
-  if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)
-    lli[1] |= 2;
-  if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_OOB_CHANNEL)
-    lli[1] |= 4;
-
-  if ((lli[1] & 0x02) && (diva_xdi_extended_features & DIVA_CAPI_USE_CMA)) {
-    lli[1] |= 0x10;
-    if (plci->rx_dma_descriptor <= 0) {
-      plci->rx_dma_descriptor=diva_get_dma_descriptor(plci,&plci->rx_dma_magic);
-      if (plci->rx_dma_descriptor >= 0)
-        plci->rx_dma_descriptor++;
-    }
-    if (plci->rx_dma_descriptor > 0) {
-      lli[1] |= 0x40;
-      lli[0] = 6;
-      lli[2] = (byte)(plci->rx_dma_descriptor - 1);
-      lli[3] = (byte)plci->rx_dma_magic;
-      lli[4] = (byte)(plci->rx_dma_magic >>  8);
-      lli[5] = (byte)(plci->rx_dma_magic >> 16);
-      lli[6] = (byte)(plci->rx_dma_magic >> 24);
-    }
-  }
-
-  if (DIVA_CAPI_SUPPORTS_NO_CANCEL(plci->adapter)) {
-    lli[1] |= 0x20;
-  }
-
-  llc[1] = (plci->call_dir & (CALL_DIR_ORIGINATE | CALL_DIR_FORCE_OUTG_NL)) ?
-    /*V42*/ 10 : /*V42_IN*/ 9;
-  llc[2] = 4;                      /* pass L3 always transparent */
-  add_p(plci, LLI, lli);
-  add_p(plci, LLC, llc);
-  i =  1;
-  PUT_WORD (&dlc[i], plci->appl->MaxDataLength);
-  i += 2;
-  if (GET_WORD(bp_parms[1].info) == B2_MODEM_EC_COMPRESSION)
-  {
-    if (bp_parms[4].length)
-  {
-    dbug(1, dprintf("MDM b2_config=%02x", b2_config));
-    dlc[i++] = 3; /* Addr A */
-    dlc[i++] = 1; /* Addr B */
-    dlc[i++] = 7; /* modulo mode */
-    dlc[i++] = 7; /* window size */
-    dlc[i++] = 0; /* XID len Lo  */
-    dlc[i++] = 0; /* XID len Hi  */
-
-    if (b2_config & MDM_B2_DISABLE_V42bis)
-    {
-      dlc[i] |= DLC_MODEMPROT_DISABLE_V42_V42BIS;
-    }
-    if (b2_config & MDM_B2_DISABLE_MNP)
-    {
-      dlc[i] |= DLC_MODEMPROT_DISABLE_MNP_MNP5;
-    }
-    if (b2_config & MDM_B2_DISABLE_TRANS)
-    {
-      dlc[i] |= DLC_MODEMPROT_REQUIRE_PROTOCOL;
-    }
-    if (b2_config & MDM_B2_DISABLE_V42)
-    {
-      dlc[i] |= DLC_MODEMPROT_DISABLE_V42_DETECT;
-    }
-    if (b2_config & MDM_B2_DISABLE_COMP)
-    {
-      dlc[i] |= DLC_MODEMPROT_DISABLE_COMPRESSION;
-    }
-    i++;
-  }
-  }
-  else
-  {
-    dlc[i++] = 3; /* Addr A */
-    dlc[i++] = 1; /* Addr B */
-    dlc[i++] = 7; /* modulo mode */
-    dlc[i++] = 7; /* window size */
-    dlc[i++] = 0; /* XID len Lo  */
-    dlc[i++] = 0; /* XID len Hi  */
-    dlc[i++] = DLC_MODEMPROT_DISABLE_V42_V42BIS |
-               DLC_MODEMPROT_DISABLE_MNP_MNP5 |
-               DLC_MODEMPROT_DISABLE_V42_DETECT |
-               DLC_MODEMPROT_DISABLE_COMPRESSION;
-  }
-  dlc[0] = (byte)(i - 1);
+static word add_modem_b23(PLCI *plci, API_PARSE *bp_parms)
+{
+       static byte lli[12] = {1,1};
+       static byte llc[3] = {2,0,0};
+       static byte dlc[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+       API_PARSE mdm_config[2];
+       word i;
+       word b2_config = 0;
+
+       for (i = 0; i < 2; i++) mdm_config[i].length = 0;
+       for (i = 0; i < sizeof(dlc); i++) dlc[i] = 0;
+
+       if (((GET_WORD(bp_parms[0].info) == B1_MODEM_ALL_NEGOTIATE)
+            && (GET_WORD(bp_parms[1].info) != B2_MODEM_EC_COMPRESSION))
+           || ((GET_WORD(bp_parms[0].info) != B1_MODEM_ALL_NEGOTIATE)
+               && (GET_WORD(bp_parms[1].info) != B2_TRANSPARENT)))
+       {
+               return (_B_STACK_NOT_SUPPORTED);
+       }
+       if ((GET_WORD(bp_parms[2].info) != B3_MODEM)
+           && (GET_WORD(bp_parms[2].info) != B3_TRANSPARENT))
+       {
+               return (_B_STACK_NOT_SUPPORTED);
+       }
+
+       plci->B2_prot = (byte) GET_WORD(bp_parms[1].info);
+       plci->B3_prot = (byte) GET_WORD(bp_parms[2].info);
+
+       if ((GET_WORD(bp_parms[1].info) == B2_MODEM_EC_COMPRESSION) && bp_parms[4].length)
+       {
+               if (api_parse(&bp_parms[4].info[1],
+                             (word)bp_parms[4].length, "w",
+                             mdm_config))
+               {
+                       return (_WRONG_MESSAGE_FORMAT);
+               }
+               b2_config = GET_WORD(mdm_config[0].info);
+       }
+
+       /* OK, L2 is modem */
+
+       lli[0] = 1;
+       lli[1] = 1;
+       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)
+               lli[1] |= 2;
+       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_OOB_CHANNEL)
+               lli[1] |= 4;
+
+       if ((lli[1] & 0x02) && (diva_xdi_extended_features & DIVA_CAPI_USE_CMA)) {
+               lli[1] |= 0x10;
+               if (plci->rx_dma_descriptor <= 0) {
+                       plci->rx_dma_descriptor = diva_get_dma_descriptor(plci, &plci->rx_dma_magic);
+                       if (plci->rx_dma_descriptor >= 0)
+                               plci->rx_dma_descriptor++;
+               }
+               if (plci->rx_dma_descriptor > 0) {
+                       lli[1] |= 0x40;
+                       lli[0] = 6;
+                       lli[2] = (byte)(plci->rx_dma_descriptor - 1);
+                       lli[3] = (byte)plci->rx_dma_magic;
+                       lli[4] = (byte)(plci->rx_dma_magic >>  8);
+                       lli[5] = (byte)(plci->rx_dma_magic >> 16);
+                       lli[6] = (byte)(plci->rx_dma_magic >> 24);
+               }
+       }
+
+       if (DIVA_CAPI_SUPPORTS_NO_CANCEL(plci->adapter)) {
+               lli[1] |= 0x20;
+       }
+
+       llc[1] = (plci->call_dir & (CALL_DIR_ORIGINATE | CALL_DIR_FORCE_OUTG_NL)) ?
+               /*V42*/ 10 : /*V42_IN*/ 9;
+       llc[2] = 4;                      /* pass L3 always transparent */
+       add_p(plci, LLI, lli);
+       add_p(plci, LLC, llc);
+       i =  1;
+       PUT_WORD(&dlc[i], plci->appl->MaxDataLength);
+       i += 2;
+       if (GET_WORD(bp_parms[1].info) == B2_MODEM_EC_COMPRESSION)
+       {
+               if (bp_parms[4].length)
+               {
+                       dbug(1, dprintf("MDM b2_config=%02x", b2_config));
+                       dlc[i++] = 3; /* Addr A */
+                       dlc[i++] = 1; /* Addr B */
+                       dlc[i++] = 7; /* modulo mode */
+                       dlc[i++] = 7; /* window size */
+                       dlc[i++] = 0; /* XID len Lo  */
+                       dlc[i++] = 0; /* XID len Hi  */
+
+                       if (b2_config & MDM_B2_DISABLE_V42bis)
+                       {
+                               dlc[i] |= DLC_MODEMPROT_DISABLE_V42_V42BIS;
+                       }
+                       if (b2_config & MDM_B2_DISABLE_MNP)
+                       {
+                               dlc[i] |= DLC_MODEMPROT_DISABLE_MNP_MNP5;
+                       }
+                       if (b2_config & MDM_B2_DISABLE_TRANS)
+                       {
+                               dlc[i] |= DLC_MODEMPROT_REQUIRE_PROTOCOL;
+                       }
+                       if (b2_config & MDM_B2_DISABLE_V42)
+                       {
+                               dlc[i] |= DLC_MODEMPROT_DISABLE_V42_DETECT;
+                       }
+                       if (b2_config & MDM_B2_DISABLE_COMP)
+                       {
+                               dlc[i] |= DLC_MODEMPROT_DISABLE_COMPRESSION;
+                       }
+                       i++;
+               }
+       }
+       else
+       {
+               dlc[i++] = 3; /* Addr A */
+               dlc[i++] = 1; /* Addr B */
+               dlc[i++] = 7; /* modulo mode */
+               dlc[i++] = 7; /* window size */
+               dlc[i++] = 0; /* XID len Lo  */
+               dlc[i++] = 0; /* XID len Hi  */
+               dlc[i++] = DLC_MODEMPROT_DISABLE_V42_V42BIS |
+                       DLC_MODEMPROT_DISABLE_MNP_MNP5 |
+                       DLC_MODEMPROT_DISABLE_V42_DETECT |
+                       DLC_MODEMPROT_DISABLE_COMPRESSION;
+       }
+       dlc[0] = (byte)(i - 1);
 /* HexDump ("DLC", sizeof(dlc), &dlc[0]); */
-  add_p(plci, DLC, dlc);
-  return (0);
+       add_p(plci, DLC, dlc);
+       return (0);
 }
 
 
@@ -8706,20 +8706,20 @@ static word add_modem_b23 (PLCI  * plci, API_PARSE* bp_parms)
 
 static void sig_req(PLCI *plci, byte req, byte Id)
 {
-  if(!plci) return;
-  if(plci->adapter->adapter_disabled) return;
-  dbug(1,dprintf("sig_req(%x)",req));
-  if (req == REMOVE)
-    plci->sig_remove_id = plci->Sig.Id;
-  if(plci->req_in==plci->req_in_start) {
-    plci->req_in +=2;
-    plci->RBuffer[plci->req_in++] = 0;
-  }
-  PUT_WORD(&plci->RBuffer[plci->req_in_start], plci->req_in-plci->req_in_start-2);
-  plci->RBuffer[plci->req_in++] = Id;   /* sig/nl flag */
-  plci->RBuffer[plci->req_in++] = req;  /* request */
-  plci->RBuffer[plci->req_in++] = 0;    /* channel */
-  plci->req_in_start = plci->req_in;
+       if (!plci) return;
+       if (plci->adapter->adapter_disabled) return;
+       dbug(1, dprintf("sig_req(%x)", req));
+       if (req == REMOVE)
+               plci->sig_remove_id = plci->Sig.Id;
+       if (plci->req_in == plci->req_in_start) {
+               plci->req_in += 2;
+               plci->RBuffer[plci->req_in++] = 0;
+       }
+       PUT_WORD(&plci->RBuffer[plci->req_in_start], plci->req_in-plci->req_in_start - 2);
+       plci->RBuffer[plci->req_in++] = Id;   /* sig/nl flag */
+       plci->RBuffer[plci->req_in++] = req;  /* request */
+       plci->RBuffer[plci->req_in++] = 0;    /* channel */
+       plci->req_in_start = plci->req_in;
 }
 
 /*------------------------------------------------------------------*/
@@ -8728,198 +8728,198 @@ static void sig_req(PLCI *plci, byte req, byte Id)
 
 static void nl_req_ncci(PLCI *plci, byte req, byte ncci)
 {
-  if(!plci) return;
-  if(plci->adapter->adapter_disabled) return;
-  dbug(1,dprintf("nl_req %02x %02x %02x", plci->Id, req, ncci));
-  if (req == REMOVE)
-  {
-    plci->nl_remove_id = plci->NL.Id;
-    ncci_remove (plci, 0, (byte)(ncci != 0));
-    ncci = 0;
-  }
-  if(plci->req_in==plci->req_in_start) {
-    plci->req_in +=2;
-    plci->RBuffer[plci->req_in++] = 0;
-  }
-  PUT_WORD(&plci->RBuffer[plci->req_in_start], plci->req_in-plci->req_in_start-2);
-  plci->RBuffer[plci->req_in++] = 1;    /* sig/nl flag */
-  plci->RBuffer[plci->req_in++] = req;  /* request */
-  plci->RBuffer[plci->req_in++] = plci->adapter->ncci_ch[ncci];   /* channel */
-  plci->req_in_start = plci->req_in;
+       if (!plci) return;
+       if (plci->adapter->adapter_disabled) return;
+       dbug(1, dprintf("nl_req %02x %02x %02x", plci->Id, req, ncci));
+       if (req == REMOVE)
+       {
+               plci->nl_remove_id = plci->NL.Id;
+               ncci_remove(plci, 0, (byte)(ncci != 0));
+               ncci = 0;
+       }
+       if (plci->req_in == plci->req_in_start) {
+               plci->req_in += 2;
+               plci->RBuffer[plci->req_in++] = 0;
+       }
+       PUT_WORD(&plci->RBuffer[plci->req_in_start], plci->req_in-plci->req_in_start - 2);
+       plci->RBuffer[plci->req_in++] = 1;    /* sig/nl flag */
+       plci->RBuffer[plci->req_in++] = req;  /* request */
+       plci->RBuffer[plci->req_in++] = plci->adapter->ncci_ch[ncci];   /* channel */
+       plci->req_in_start = plci->req_in;
 }
 
 static void send_req(PLCI *plci)
 {
-  ENTITY   * e;
-  word l;
+       ENTITY *e;
+       word l;
 /*  word i; */
 
-  if(!plci) return;
-  if(plci->adapter->adapter_disabled) return;
-  channel_xmit_xon (plci);
-
-        /* if nothing to do, return */
-  if(plci->req_in==plci->req_out) return;
-  dbug(1,dprintf("send_req(in=%d,out=%d)",plci->req_in,plci->req_out));
-
-  if(plci->nl_req || plci->sig_req) return;
-
-  l = GET_WORD(&plci->RBuffer[plci->req_out]);
-  plci->req_out += 2;
-  plci->XData[0].P = &plci->RBuffer[plci->req_out];
-  plci->req_out += l;
-  if(plci->RBuffer[plci->req_out]==1)
-  {
-    e = &plci->NL;
-    plci->req_out++;
-    e->Req = plci->nl_req = plci->RBuffer[plci->req_out++];
-    e->ReqCh = plci->RBuffer[plci->req_out++];
-    if(!(e->Id & 0x1f))
-    {
-      e->Id = NL_ID;
-      plci->RBuffer[plci->req_out-4] = CAI;
-      plci->RBuffer[plci->req_out-3] = 1;
-      plci->RBuffer[plci->req_out-2] = (plci->Sig.Id==0xff) ? 0 : plci->Sig.Id;
-      plci->RBuffer[plci->req_out-1] = 0;
-      l+=3;
-      plci->nl_global_req = plci->nl_req;
-    }
-    dbug(1,dprintf("%x:NLREQ(%x:%x:%x)",plci->adapter->Id,e->Id,e->Req,e->ReqCh));
-  }
-  else
-  {
-    e = &plci->Sig;
-    if(plci->RBuffer[plci->req_out])
-      e->Id = plci->RBuffer[plci->req_out];
-    plci->req_out++;
-    e->Req = plci->sig_req = plci->RBuffer[plci->req_out++];
-    e->ReqCh = plci->RBuffer[plci->req_out++];
-    if(!(e->Id & 0x1f))
-      plci->sig_global_req = plci->sig_req;
-    dbug(1,dprintf("%x:SIGREQ(%x:%x:%x)",plci->adapter->Id,e->Id,e->Req,e->ReqCh));
-  }
-  plci->XData[0].PLength = l;
-  e->X = plci->XData;
-  plci->adapter->request(e);
-  dbug(1,dprintf("send_ok"));
+       if (!plci) return;
+       if (plci->adapter->adapter_disabled) return;
+       channel_xmit_xon(plci);
+
+       /* if nothing to do, return */
+       if (plci->req_in == plci->req_out) return;
+       dbug(1, dprintf("send_req(in=%d,out=%d)", plci->req_in, plci->req_out));
+
+       if (plci->nl_req || plci->sig_req) return;
+
+       l = GET_WORD(&plci->RBuffer[plci->req_out]);
+       plci->req_out += 2;
+       plci->XData[0].P = &plci->RBuffer[plci->req_out];
+       plci->req_out += l;
+       if (plci->RBuffer[plci->req_out] == 1)
+       {
+               e = &plci->NL;
+               plci->req_out++;
+               e->Req = plci->nl_req = plci->RBuffer[plci->req_out++];
+               e->ReqCh = plci->RBuffer[plci->req_out++];
+               if (!(e->Id & 0x1f))
+               {
+                       e->Id = NL_ID;
+                       plci->RBuffer[plci->req_out - 4] = CAI;
+                       plci->RBuffer[plci->req_out - 3] = 1;
+                       plci->RBuffer[plci->req_out - 2] = (plci->Sig.Id == 0xff) ? 0 : plci->Sig.Id;
+                       plci->RBuffer[plci->req_out - 1] = 0;
+                       l += 3;
+                       plci->nl_global_req = plci->nl_req;
+               }
+               dbug(1, dprintf("%x:NLREQ(%x:%x:%x)", plci->adapter->Id, e->Id, e->Req, e->ReqCh));
+       }
+       else
+       {
+               e = &plci->Sig;
+               if (plci->RBuffer[plci->req_out])
+                       e->Id = plci->RBuffer[plci->req_out];
+               plci->req_out++;
+               e->Req = plci->sig_req = plci->RBuffer[plci->req_out++];
+               e->ReqCh = plci->RBuffer[plci->req_out++];
+               if (!(e->Id & 0x1f))
+                       plci->sig_global_req = plci->sig_req;
+               dbug(1, dprintf("%x:SIGREQ(%x:%x:%x)", plci->adapter->Id, e->Id, e->Req, e->ReqCh));
+       }
+       plci->XData[0].PLength = l;
+       e->X = plci->XData;
+       plci->adapter->request(e);
+       dbug(1, dprintf("send_ok"));
 }
 
 static void send_data(PLCI *plci)
 {
-  DIVA_CAPI_ADAPTER   * a;
-  DATA_B3_DESC   * data;
-  NCCI   *ncci_ptr;
-  word ncci;
-
-  if (!plci->nl_req && plci->ncci_ring_list)
-  {
-    a = plci->adapter;
-    ncci = plci->ncci_ring_list;
-    do
-    {
-      ncci = a->ncci_next[ncci];
-      ncci_ptr = &(a->ncci[ncci]);
-      if (!(a->ncci_ch[ncci]
-         && (a->ch_flow_control[a->ncci_ch[ncci]] & N_OK_FC_PENDING)))
-      {
-        if (ncci_ptr->data_pending)
-        {
-          if ((a->ncci_state[ncci] == CONNECTED)
-           || (a->ncci_state[ncci] == INC_ACT_PENDING)
-           || (plci->send_disc == ncci))
-          {
-            data = &(ncci_ptr->DBuffer[ncci_ptr->data_out]);
-            if ((plci->B2_prot == B2_V120_ASYNC)
-             || (plci->B2_prot == B2_V120_ASYNC_V42BIS)
-             || (plci->B2_prot == B2_V120_BIT_TRANSPARENT))
-            {
-              plci->NData[1].P = TransmitBufferGet (plci->appl, data->P);
-              plci->NData[1].PLength = data->Length;
-              if (data->Flags & 0x10)
-                plci->NData[0].P = v120_break_header;
-              else
-                plci->NData[0].P = v120_default_header;
-              plci->NData[0].PLength = 1 ;
-              plci->NL.XNum = 2;
-              plci->NL.Req = plci->nl_req = (byte)((data->Flags&0x07)<<4 |N_DATA);
-            }
-            else
-            {
-              plci->NData[0].P = TransmitBufferGet (plci->appl, data->P);
-              plci->NData[0].PLength = data->Length;
-              if (data->Flags & 0x10)
-                plci->NL.Req = plci->nl_req = (byte)N_UDATA;
-
-              else if ((plci->B3_prot == B3_RTP) && (data->Flags & 0x01))
-                plci->NL.Req = plci->nl_req = (byte)N_BDATA;
-
-              else
-                plci->NL.Req = plci->nl_req = (byte)((data->Flags&0x07)<<4 |N_DATA);
-            }
-            plci->NL.X = plci->NData;
-            plci->NL.ReqCh = a->ncci_ch[ncci];
-            dbug(1,dprintf("%x:DREQ(%x:%x)",a->Id,plci->NL.Id,plci->NL.Req));
-            plci->data_sent = true;
-            plci->data_sent_ptr = data->P;
-            a->request(&plci->NL);
-          }
-          else {
-            cleanup_ncci_data (plci, ncci);
-          }
-        }
-        else if (plci->send_disc == ncci)
-        {
-          /* dprintf("N_DISC"); */
-          plci->NData[0].PLength = 0;
-          plci->NL.ReqCh = a->ncci_ch[ncci];
-          plci->NL.Req = plci->nl_req = N_DISC;
-          a->request(&plci->NL);
-          plci->command = _DISCONNECT_B3_R;
-          plci->send_disc = 0;
-        }
-      }
-    } while (!plci->nl_req && (ncci != plci->ncci_ring_list));
-    plci->ncci_ring_list = ncci;
-  }
+       DIVA_CAPI_ADAPTER *a;
+       DATA_B3_DESC *data;
+       NCCI   *ncci_ptr;
+       word ncci;
+
+       if (!plci->nl_req && plci->ncci_ring_list)
+       {
+               a = plci->adapter;
+               ncci = plci->ncci_ring_list;
+               do
+               {
+                       ncci = a->ncci_next[ncci];
+                       ncci_ptr = &(a->ncci[ncci]);
+                       if (!(a->ncci_ch[ncci]
+                             && (a->ch_flow_control[a->ncci_ch[ncci]] & N_OK_FC_PENDING)))
+                       {
+                               if (ncci_ptr->data_pending)
+                               {
+                                       if ((a->ncci_state[ncci] == CONNECTED)
+                                           || (a->ncci_state[ncci] == INC_ACT_PENDING)
+                                           || (plci->send_disc == ncci))
+                                       {
+                                               data = &(ncci_ptr->DBuffer[ncci_ptr->data_out]);
+                                               if ((plci->B2_prot == B2_V120_ASYNC)
+                                                   || (plci->B2_prot == B2_V120_ASYNC_V42BIS)
+                                                   || (plci->B2_prot == B2_V120_BIT_TRANSPARENT))
+                                               {
+                                                       plci->NData[1].P = TransmitBufferGet(plci->appl, data->P);
+                                                       plci->NData[1].PLength = data->Length;
+                                                       if (data->Flags & 0x10)
+                                                               plci->NData[0].P = v120_break_header;
+                                                       else
+                                                               plci->NData[0].P = v120_default_header;
+                                                       plci->NData[0].PLength = 1;
+                                                       plci->NL.XNum = 2;
+                                                       plci->NL.Req = plci->nl_req = (byte)((data->Flags & 0x07) << 4 | N_DATA);
+                                               }
+                                               else
+                                               {
+                                                       plci->NData[0].P = TransmitBufferGet(plci->appl, data->P);
+                                                       plci->NData[0].PLength = data->Length;
+                                                       if (data->Flags & 0x10)
+                                                               plci->NL.Req = plci->nl_req = (byte)N_UDATA;
+
+                                                       else if ((plci->B3_prot == B3_RTP) && (data->Flags & 0x01))
+                                                               plci->NL.Req = plci->nl_req = (byte)N_BDATA;
+
+                                                       else
+                                                               plci->NL.Req = plci->nl_req = (byte)((data->Flags & 0x07) << 4 | N_DATA);
+                                               }
+                                               plci->NL.X = plci->NData;
+                                               plci->NL.ReqCh = a->ncci_ch[ncci];
+                                               dbug(1, dprintf("%x:DREQ(%x:%x)", a->Id, plci->NL.Id, plci->NL.Req));
+                                               plci->data_sent = true;
+                                               plci->data_sent_ptr = data->P;
+                                               a->request(&plci->NL);
+                                       }
+                                       else {
+                                               cleanup_ncci_data(plci, ncci);
+                                       }
+                               }
+                               else if (plci->send_disc == ncci)
+                               {
+                                       /* dprintf("N_DISC"); */
+                                       plci->NData[0].PLength = 0;
+                                       plci->NL.ReqCh = a->ncci_ch[ncci];
+                                       plci->NL.Req = plci->nl_req = N_DISC;
+                                       a->request(&plci->NL);
+                                       plci->command = _DISCONNECT_B3_R;
+                                       plci->send_disc = 0;
+                               }
+                       }
+               } while (!plci->nl_req && (ncci != plci->ncci_ring_list));
+               plci->ncci_ring_list = ncci;
+       }
 }
 
 static void listen_check(DIVA_CAPI_ADAPTER *a)
 {
-  word i,j;
-  PLCI   * plci;
-  byte activnotifiedcalls = 0;
-
-  dbug(1,dprintf("listen_check(%d,%d)",a->listen_active,a->max_listen));
-  if (!remove_started && !a->adapter_disabled)
-  {
-    for(i=0;i<a->max_plci;i++)
-    {
-      plci = &(a->plci[i]);
-      if(plci->notifiedcall) activnotifiedcalls++;
-    }
-    dbug(1,dprintf("listen_check(%d)",activnotifiedcalls));
-
-    for(i=a->listen_active; i < ((word)(a->max_listen+activnotifiedcalls)); i++) {
-      if((j=get_plci(a))) {
-        a->listen_active++;
-        plci = &a->plci[j-1];
-        plci->State = LISTENING;
-
-        add_p(plci,OAD,"\x01\xfd");
-
-        add_p(plci,KEY,"\x04\x43\x41\x32\x30");
-
-        add_p(plci,CAI,"\x01\xc0");
-        add_p(plci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-        add_p(plci,LLI,"\x01\xc4");                  /* support Dummy CR FAC + MWI + SpoofNotify */       
-        add_p(plci,SHIFT|6,NULL);
-        add_p(plci,SIN,"\x02\x00\x00");
-        plci->internal_command = LISTEN_SIG_ASSIGN_PEND;     /* do indicate_req if OK  */
-        sig_req(plci,ASSIGN,DSIG_ID);
-        send_req(plci);
-      }
-    }
-  }
+       word i, j;
+       PLCI *plci;
+       byte activnotifiedcalls = 0;
+
+       dbug(1, dprintf("listen_check(%d,%d)", a->listen_active, a->max_listen));
+       if (!remove_started && !a->adapter_disabled)
+       {
+               for (i = 0; i < a->max_plci; i++)
+               {
+                       plci = &(a->plci[i]);
+                       if (plci->notifiedcall) activnotifiedcalls++;
+               }
+               dbug(1, dprintf("listen_check(%d)", activnotifiedcalls));
+
+               for (i = a->listen_active; i < ((word)(a->max_listen + activnotifiedcalls)); i++) {
+                       if ((j = get_plci(a))) {
+                               a->listen_active++;
+                               plci = &a->plci[j - 1];
+                               plci->State = LISTENING;
+
+                               add_p(plci, OAD, "\x01\xfd");
+
+                               add_p(plci, KEY, "\x04\x43\x41\x32\x30");
+
+                               add_p(plci, CAI, "\x01\xc0");
+                               add_p(plci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                               add_p(plci, LLI, "\x01\xc4");                  /* support Dummy CR FAC + MWI + SpoofNotify */
+                               add_p(plci, SHIFT | 6, NULL);
+                               add_p(plci, SIN, "\x02\x00\x00");
+                               plci->internal_command = LISTEN_SIG_ASSIGN_PEND;     /* do indicate_req if OK  */
+                               sig_req(plci, ASSIGN, DSIG_ID);
+                               send_req(plci);
+                       }
+               }
+       }
 }
 
 /*------------------------------------------------------------------*/
@@ -8928,83 +8928,83 @@ static void listen_check(DIVA_CAPI_ADAPTER *a)
 
 static void IndParse(PLCI *plci, word *parms_id, byte **parms, byte multiIEsize)
 {
-  word ploc;            /* points to current location within packet */
-  byte w;
-  byte wlen;
-  byte codeset,lock;
-  byte   * in;
-  word i;
-  word code;
-  word mIEindex = 0;
-  ploc = 0;
-  codeset = 0;
-  lock = 0;
-
-  in = plci->Sig.RBuffer->P;
-  for(i=0; i<parms_id[0]; i++)   /* multiIE parms_id contains just the 1st */
-  {                            /* element but parms array is larger      */
-    parms[i] = (byte   *)"";
-  }
-  for(i=0; i<multiIEsize; i++)
-  {
-    parms[i] = (byte   *)"";
-  }
-
-  while(ploc<plci->Sig.RBuffer->length-1) {
-
-        /* read information element id and length                   */
-    w = in[ploc];
-
-    if(w & 0x80) {
+       word ploc;            /* points to current location within packet */
+       byte w;
+       byte wlen;
+       byte codeset, lock;
+       byte *in;
+       word i;
+       word code;
+       word mIEindex = 0;
+       ploc = 0;
+       codeset = 0;
+       lock = 0;
+
+       in = plci->Sig.RBuffer->P;
+       for (i = 0; i < parms_id[0]; i++)   /* multiIE parms_id contains just the 1st */
+       {                            /* element but parms array is larger      */
+               parms[i] = (byte *)"";
+       }
+       for (i = 0; i < multiIEsize; i++)
+       {
+               parms[i] = (byte *)"";
+       }
+
+       while (ploc < plci->Sig.RBuffer->length - 1) {
+
+               /* read information element id and length                   */
+               w = in[ploc];
+
+               if (w & 0x80) {
 /*    w &=0xf0; removed, cannot detect congestion levels */
 /*    upper 4 bit masked with w==SHIFT now               */
-      wlen = 0;
-    }
-    else {
-      wlen = (byte)(in[ploc+1]+1);
-    }
-        /* check if length valid (not exceeding end of packet)      */
-    if((ploc+wlen) > 270) return ;
-    if(lock & 0x80) lock &=0x7f;
-    else codeset = lock;
-
-    if((w&0xf0)==SHIFT) {
-      codeset = in[ploc];
-      if(!(codeset & 0x08)) lock = (byte)(codeset & 7);
-      codeset &=7;
-      lock |=0x80;
-    }
-    else {
-      if(w==ESC && wlen>=3) code = in[ploc+2] |0x800;
-      else code = w;
-      code |= (codeset<<8);
-
-      for(i=1; i<parms_id[0]+1 && parms_id[i]!=code; i++);
-
-      if(i<parms_id[0]+1) {
-        if(!multiIEsize) { /* with multiIEs use next field index,          */
-          mIEindex = i-1;    /* with normal IEs use same index like parms_id */
-        }
-
-        parms[mIEindex] = &in[ploc+1];
-        dbug(1,dprintf("mIE[%d]=0x%x",*parms[mIEindex],in[ploc]));
-        if(parms_id[i]==OAD
-        || parms_id[i]==CONN_NR
-        || parms_id[i]==CAD) {
-          if(in[ploc+2] &0x80) {
-            in[ploc+0] = (byte)(in[ploc+1]+1);
-            in[ploc+1] = (byte)(in[ploc+2] &0x7f);
-            in[ploc+2] = 0x80;
-            parms[mIEindex] = &in[ploc];
-          }
-        }
-        mIEindex++;       /* effects multiIEs only */
-      }
-    }
-
-    ploc +=(wlen+1);
-  }
-  return ;
+                       wlen = 0;
+               }
+               else {
+                       wlen = (byte)(in[ploc + 1] + 1);
+               }
+               /* check if length valid (not exceeding end of packet)      */
+               if ((ploc + wlen) > 270) return;
+               if (lock & 0x80) lock &= 0x7f;
+               else codeset = lock;
+
+               if ((w & 0xf0) == SHIFT) {
+                       codeset = in[ploc];
+                       if (!(codeset & 0x08)) lock = (byte)(codeset & 7);
+                       codeset &= 7;
+                       lock |= 0x80;
+               }
+               else {
+                       if (w == ESC && wlen >= 3) code = in[ploc + 2] | 0x800;
+                       else code = w;
+                       code |= (codeset << 8);
+
+                       for (i = 1; i < parms_id[0] + 1 && parms_id[i] != code; i++);
+
+                       if (i < parms_id[0] + 1) {
+                               if (!multiIEsize) { /* with multiIEs use next field index,          */
+                                       mIEindex = i - 1;    /* with normal IEs use same index like parms_id */
+                               }
+
+                               parms[mIEindex] = &in[ploc + 1];
+                               dbug(1, dprintf("mIE[%d]=0x%x", *parms[mIEindex], in[ploc]));
+                               if (parms_id[i] == OAD
+                                   || parms_id[i] == CONN_NR
+                                   || parms_id[i] == CAD) {
+                                       if (in[ploc + 2] & 0x80) {
+                                               in[ploc + 0] = (byte)(in[ploc + 1] + 1);
+                                               in[ploc + 1] = (byte)(in[ploc + 2] & 0x7f);
+                                               in[ploc + 2] = 0x80;
+                                               parms[mIEindex] = &in[ploc];
+                                       }
+                               }
+                               mIEindex++;       /* effects multiIEs only */
+                       }
+               }
+
+               ploc += (wlen + 1);
+       }
+       return;
 }
 
 /*------------------------------------------------------------------*/
@@ -9013,75 +9013,75 @@ static void IndParse(PLCI *plci, word *parms_id, byte **parms, byte multiIEsize)
 
 static byte ie_compare(byte *ie1, byte *ie2)
 {
-  word i;
-  if(!ie1 || ! ie2) return false;
-  if(!ie1[0]) return false;
-  for(i=0;i<(word)(ie1[0]+1);i++) if(ie1[i]!=ie2[i]) return false;
-  return true;
+       word i;
+       if (!ie1 || !ie2) return false;
+       if (!ie1[0]) return false;
+       for (i = 0; i < (word)(ie1[0] + 1); i++) if (ie1[i] != ie2[i]) return false;
+       return true;
 }
 
 static word find_cip(DIVA_CAPI_ADAPTER *a, byte *bc, byte *hlc)
 {
-  word i;
-  word j;
+       word i;
+       word j;
 
-  for(i=9;i && !ie_compare(bc,cip_bc[i][a->u_law]);i--);
+       for (i = 9; i && !ie_compare(bc, cip_bc[i][a->u_law]); i--);
 
-  for(j=16;j<29 &&
-           (!ie_compare(bc,cip_bc[j][a->u_law]) || !ie_compare(hlc,cip_hlc[j])); j++);
-  if(j==29) return i;
-  return j;
+       for (j = 16; j < 29 &&
+                    (!ie_compare(bc, cip_bc[j][a->u_law]) || !ie_compare(hlc, cip_hlc[j])); j++);
+       if (j == 29) return i;
+       return j;
 }
 
 
-static byte AddInfo(byte   **add_i,
-                    byte   **fty_i,
-                    byte   *esc_chi,
-                    byte *facility)
+static byte AddInfo(byte **add_i,
+                   byte **fty_i,
+                   byte *esc_chi,
+                   byte *facility)
 {
-  byte i;
-  byte j;
-  byte k;
-  byte flen;
-  byte len=0;
-   /* facility is a nested structure */
-   /* FTY can be more than once      */
+       byte i;
+       byte j;
+       byte k;
+       byte flen;
+       byte len = 0;
+       /* facility is a nested structure */
+       /* FTY can be more than once      */
 
        if (esc_chi[0] && !(esc_chi[esc_chi[0]] & 0x7f))
-  {
-    add_i[0] = (byte   *)"\x02\x02\x00"; /* use neither b nor d channel */
-  }
-
-  else
-  {
-    add_i[0] = (byte   *)"";
-  }
-  if(!fty_i[0][0])
-  {
-    add_i[3] = (byte   *)"";
-  }
-  else
-  {    /* facility array found  */
-    for(i=0,j=1;i<MAX_MULTI_IE && fty_i[i][0];i++)
-    {
-      dbug(1,dprintf("AddIFac[%d]",fty_i[i][0]));
-      len += fty_i[i][0];
-      len += 2;
-      flen=fty_i[i][0];
-      facility[j++]=0x1c; /* copy fac IE */
-      for(k=0;k<=flen;k++,j++)
-      {
-        facility[j]=fty_i[i][k];
-/*      dbug(1,dprintf("%x ",facility[j])); */
-      }
-    }
-    facility[0] = len;
-    add_i[3] = facility;
-  }
-/*  dbug(1,dprintf("FacArrLen=%d ",len)); */
-  len = add_i[0][0]+add_i[1][0]+add_i[2][0]+add_i[3][0];
-  len += 4;                          /* calculate length of all */
-  return(len);
+       {
+               add_i[0] = (byte *)"\x02\x02\x00"; /* use neither b nor d channel */
+       }
+
+       else
+       {
+               add_i[0] = (byte *)"";
+       }
+       if (!fty_i[0][0])
+       {
+               add_i[3] = (byte *)"";
+       }
+       else
+       {    /* facility array found  */
+               for (i = 0, j = 1; i < MAX_MULTI_IE && fty_i[i][0]; i++)
+               {
+                       dbug(1, dprintf("AddIFac[%d]", fty_i[i][0]));
+                       len += fty_i[i][0];
+                       len += 2;
+                       flen = fty_i[i][0];
+                       facility[j++] = 0x1c; /* copy fac IE */
+                       for (k = 0; k <= flen; k++, j++)
+                       {
+                               facility[j] = fty_i[i][k];
+/*      dbug(1, dprintf("%x ",facility[j])); */
+                       }
+               }
+               facility[0] = len;
+               add_i[3] = facility;
+       }
+/*  dbug(1, dprintf("FacArrLen=%d ",len)); */
+       len = add_i[0][0] + add_i[1][0] + add_i[2][0] + add_i[3][0];
+       len += 4;                          /* calculate length of all */
+       return (len);
 }
 
 /*------------------------------------------------------------------*/
@@ -9090,219 +9090,219 @@ static byte AddInfo(byte   **add_i,
 
 static void SetVoiceChannel(PLCI *plci, byte *chi, DIVA_CAPI_ADAPTER *a)
 {
-  byte voice_chi[] = "\x02\x18\x01";
-  byte channel;
-
-  channel = chi[chi[0]]&0x3;
-  dbug(1,dprintf("ExtDevON(Ch=0x%x)",channel));
-  voice_chi[2] = (channel) ? channel : 1;
-  add_p(plci,FTY,"\x02\x01\x07");             /* B On, default on 1 */
-  add_p(plci,ESC,voice_chi);                  /* Channel */
-  sig_req(plci,TEL_CTRL,0);
-  send_req(plci);
-  if(a->AdvSignalPLCI)
-  {
-    adv_voice_write_coefs (a->AdvSignalPLCI, ADV_VOICE_WRITE_ACTIVATION);
-  }
+       byte voice_chi[] = "\x02\x18\x01";
+       byte channel;
+
+       channel = chi[chi[0]] & 0x3;
+       dbug(1, dprintf("ExtDevON(Ch=0x%x)", channel));
+       voice_chi[2] = (channel) ? channel : 1;
+       add_p(plci, FTY, "\x02\x01\x07");             /* B On, default on 1 */
+       add_p(plci, ESC, voice_chi);                  /* Channel */
+       sig_req(plci, TEL_CTRL, 0);
+       send_req(plci);
+       if (a->AdvSignalPLCI)
+       {
+               adv_voice_write_coefs(a->AdvSignalPLCI, ADV_VOICE_WRITE_ACTIVATION);
+       }
 }
 
 static void VoiceChannelOff(PLCI *plci)
 {
-  dbug(1,dprintf("ExtDevOFF"));
-  add_p(plci,FTY,"\x02\x01\x08");             /* B Off */
-  sig_req(plci,TEL_CTRL,0);
-  send_req(plci);
-  if(plci->adapter->AdvSignalPLCI)
-  {
-    adv_voice_clear_config (plci->adapter->AdvSignalPLCI);
-  }
+       dbug(1, dprintf("ExtDevOFF"));
+       add_p(plci, FTY, "\x02\x01\x08");             /* B Off */
+       sig_req(plci, TEL_CTRL, 0);
+       send_req(plci);
+       if (plci->adapter->AdvSignalPLCI)
+       {
+               adv_voice_clear_config(plci->adapter->AdvSignalPLCI);
+       }
 }
 
 
 static word AdvCodecSupport(DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL *appl,
                            byte hook_listen)
 {
-  word j;
-  PLCI   *splci;
-
-  /* check if hardware supports handset with hook states (adv.codec) */
-  /* or if just a on board codec is supported                        */
-  /* the advanced codec plci is just for internal use                */
-
-  /* diva Pro with on-board codec:                                   */
-  if(a->profile.Global_Options & HANDSET)
-  {
-    /* new call, but hook states are already signalled */
-    if(a->AdvCodecFLAG)
-    {
-      if(a->AdvSignalAppl!=appl || a->AdvSignalPLCI)
-      {
-        dbug(1,dprintf("AdvSigPlci=0x%x",a->AdvSignalPLCI));
-        return 0x2001; /* codec in use by another application */
-      }
-      if(plci!=NULL)
-      {
-        a->AdvSignalPLCI = plci;
-        plci->tel=ADV_VOICE;
-      }
-      return 0;                      /* adv codec still used */
-    }
-    if((j=get_plci(a)))
-    {
-      splci = &a->plci[j-1];
-      splci->tel = CODEC_PERMANENT;
-      /* hook_listen indicates if a facility_req with handset/hook support */
-      /* was sent. Otherwise if just a call on an external device was made */
-      /* the codec will be used but the hook info will be discarded (just  */
-      /* the external controller is in use                                 */
-      if(hook_listen) splci->State = ADVANCED_VOICE_SIG;
-      else
-      {
-        splci->State = ADVANCED_VOICE_NOSIG;
-        if(plci)
-        {
-          plci->spoofed_msg = SPOOFING_REQUIRED;
-        }
-                                               /* indicate D-ch connect if  */
-      }                                        /* codec is connected OK     */
-      if(plci!=NULL)
-      {
-        a->AdvSignalPLCI = plci;
-        plci->tel=ADV_VOICE;
-      }
-      a->AdvSignalAppl = appl;
-      a->AdvCodecFLAG = true;
-      a->AdvCodecPLCI = splci;
-      add_p(splci,CAI,"\x01\x15");
-      add_p(splci,LLI,"\x01\x00");
-      add_p(splci,ESC,"\x02\x18\x00");
-      add_p(splci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-      splci->internal_command = PERM_COD_ASSIGN;
-      dbug(1,dprintf("Codec Assign"));
-      sig_req(splci,ASSIGN,DSIG_ID);
-      send_req(splci);
-    }
-    else
-    {
-      return 0x2001; /* wrong state, no more plcis */
-    }
-  }
-  else if(a->profile.Global_Options & ON_BOARD_CODEC)
-  {
-    if(hook_listen) return 0x300B;               /* Facility not supported */
-                                                 /* no hook with SCOM      */
-    if(plci!=NULL) plci->tel = CODEC;
-    dbug(1,dprintf("S/SCOM codec"));
-    /* first time we use the scom-s codec we must shut down the internal   */
-    /* handset application of the card. This can be done by an assign with */
-    /* a cai with the 0x80 bit set. Assign return code is 'out of resource'*/
-    if(!a->scom_appl_disable){
-      if((j=get_plci(a))) {
-        splci = &a->plci[j-1];
-        add_p(splci,CAI,"\x01\x80");
-        add_p(splci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-        sig_req(splci,ASSIGN,0xC0);  /* 0xc0 is the TEL_ID */
-        send_req(splci);
-        a->scom_appl_disable = true;
-      }
-      else{
-        return 0x2001; /* wrong state, no more plcis */
-      }
-    }
-  }
-  else return 0x300B;               /* Facility not supported */
-
-  return 0;
+       word j;
+       PLCI *splci;
+
+       /* check if hardware supports handset with hook states (adv.codec) */
+       /* or if just a on board codec is supported                        */
+       /* the advanced codec plci is just for internal use                */
+
+       /* diva Pro with on-board codec:                                   */
+       if (a->profile.Global_Options & HANDSET)
+       {
+               /* new call, but hook states are already signalled */
+               if (a->AdvCodecFLAG)
+               {
+                       if (a->AdvSignalAppl != appl || a->AdvSignalPLCI)
+                       {
+                               dbug(1, dprintf("AdvSigPlci=0x%x", a->AdvSignalPLCI));
+                               return 0x2001; /* codec in use by another application */
+                       }
+                       if (plci != NULL)
+                       {
+                               a->AdvSignalPLCI = plci;
+                               plci->tel = ADV_VOICE;
+                       }
+                       return 0;                      /* adv codec still used */
+               }
+               if ((j = get_plci(a)))
+               {
+                       splci = &a->plci[j - 1];
+                       splci->tel = CODEC_PERMANENT;
+                       /* hook_listen indicates if a facility_req with handset/hook support */
+                       /* was sent. Otherwise if just a call on an external device was made */
+                       /* the codec will be used but the hook info will be discarded (just  */
+                       /* the external controller is in use                                 */
+                       if (hook_listen) splci->State = ADVANCED_VOICE_SIG;
+                       else
+                       {
+                               splci->State = ADVANCED_VOICE_NOSIG;
+                               if (plci)
+                               {
+                                       plci->spoofed_msg = SPOOFING_REQUIRED;
+                               }
+                               /* indicate D-ch connect if  */
+                       }                                        /* codec is connected OK     */
+                       if (plci != NULL)
+                       {
+                               a->AdvSignalPLCI = plci;
+                               plci->tel = ADV_VOICE;
+                       }
+                       a->AdvSignalAppl = appl;
+                       a->AdvCodecFLAG = true;
+                       a->AdvCodecPLCI = splci;
+                       add_p(splci, CAI, "\x01\x15");
+                       add_p(splci, LLI, "\x01\x00");
+                       add_p(splci, ESC, "\x02\x18\x00");
+                       add_p(splci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                       splci->internal_command = PERM_COD_ASSIGN;
+                       dbug(1, dprintf("Codec Assign"));
+                       sig_req(splci, ASSIGN, DSIG_ID);
+                       send_req(splci);
+               }
+               else
+               {
+                       return 0x2001; /* wrong state, no more plcis */
+               }
+       }
+       else if (a->profile.Global_Options & ON_BOARD_CODEC)
+       {
+               if (hook_listen) return 0x300B;               /* Facility not supported */
+               /* no hook with SCOM      */
+               if (plci != NULL) plci->tel = CODEC;
+               dbug(1, dprintf("S/SCOM codec"));
+               /* first time we use the scom-s codec we must shut down the internal   */
+               /* handset application of the card. This can be done by an assign with */
+               /* a cai with the 0x80 bit set. Assign return code is 'out of resource'*/
+               if (!a->scom_appl_disable) {
+                       if ((j = get_plci(a))) {
+                               splci = &a->plci[j - 1];
+                               add_p(splci, CAI, "\x01\x80");
+                               add_p(splci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                               sig_req(splci, ASSIGN, 0xC0);  /* 0xc0 is the TEL_ID */
+                               send_req(splci);
+                               a->scom_appl_disable = true;
+                       }
+                       else{
+                               return 0x2001; /* wrong state, no more plcis */
+                       }
+               }
+       }
+       else return 0x300B;               /* Facility not supported */
+
+       return 0;
 }
 
 
 static void CodecIdCheck(DIVA_CAPI_ADAPTER *a, PLCI *plci)
 {
 
-  dbug(1,dprintf("CodecIdCheck"));
+       dbug(1, dprintf("CodecIdCheck"));
 
-  if(a->AdvSignalPLCI == plci)
-  {
-    dbug(1,dprintf("PLCI owns codec"));
-    VoiceChannelOff(a->AdvCodecPLCI);
-    if(a->AdvCodecPLCI->State == ADVANCED_VOICE_NOSIG)
-    {
-      dbug(1,dprintf("remove temp codec PLCI"));
-      plci_remove(a->AdvCodecPLCI);
-      a->AdvCodecFLAG  = 0;
-      a->AdvCodecPLCI  = NULL;
-      a->AdvSignalAppl = NULL;
-    }
-    a->AdvSignalPLCI = NULL;
-  }
+       if (a->AdvSignalPLCI == plci)
+       {
+               dbug(1, dprintf("PLCI owns codec"));
+               VoiceChannelOff(a->AdvCodecPLCI);
+               if (a->AdvCodecPLCI->State == ADVANCED_VOICE_NOSIG)
+               {
+                       dbug(1, dprintf("remove temp codec PLCI"));
+                       plci_remove(a->AdvCodecPLCI);
+                       a->AdvCodecFLAG  = 0;
+                       a->AdvCodecPLCI  = NULL;
+                       a->AdvSignalAppl = NULL;
+               }
+               a->AdvSignalPLCI = NULL;
+       }
 }
 
 /* -------------------------------------------------------------------
-    Ask for physical address of card on PCI bus
+   Ask for physical address of card on PCI bus
    ------------------------------------------------------------------- */
-static void diva_ask_for_xdi_sdram_bar (DIVA_CAPI_ADAPTER  * a,
-                                        IDI_SYNC_REQ  * preq) {
-  a->sdram_bar = 0;
-  if (diva_xdi_extended_features & DIVA_CAPI_XDI_PROVIDES_SDRAM_BAR) {
-    ENTITY   * e = (ENTITY   *)preq;
+static void diva_ask_for_xdi_sdram_bar(DIVA_CAPI_ADAPTER *a,
+                                      IDI_SYNC_REQ *preq) {
+       a->sdram_bar = 0;
+       if (diva_xdi_extended_features & DIVA_CAPI_XDI_PROVIDES_SDRAM_BAR) {
+               ENTITY *e = (ENTITY *)preq;
 
-    e->user[0] = a->Id - 1;
-    preq->xdi_sdram_bar.info.bar    = 0;
-    preq->xdi_sdram_bar.Req         = 0;
-    preq->xdi_sdram_bar.Rc           = IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR;
+               e->user[0] = a->Id - 1;
+               preq->xdi_sdram_bar.info.bar    = 0;
+               preq->xdi_sdram_bar.Req         = 0;
+               preq->xdi_sdram_bar.Rc           = IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR;
 
-    (*(a->request))(e);
+               (*(a->request))(e);
 
-    a->sdram_bar = preq->xdi_sdram_bar.info.bar;
-    dbug(3,dprintf("A(%d) SDRAM BAR = %08x", a->Id, a->sdram_bar));
-  }
+               a->sdram_bar = preq->xdi_sdram_bar.info.bar;
+               dbug(3, dprintf("A(%d) SDRAM BAR = %08x", a->Id, a->sdram_bar));
+       }
 }
 
 /* -------------------------------------------------------------------
-     Ask XDI about extended features
+   Ask XDI about extended features
    ------------------------------------------------------------------- */
-static void diva_get_extended_adapter_features (DIVA_CAPI_ADAPTER  * a) {
-  IDI_SYNC_REQ   * preq;
-    char buffer[              ((sizeof(preq->xdi_extended_features)+4) > sizeof(ENTITY)) ?                     (sizeof(preq->xdi_extended_features)+4) : sizeof(ENTITY)];
-
-    char features[4];
-  preq = (IDI_SYNC_REQ   *)&buffer[0];
-
-  if (!diva_xdi_extended_features) {
-    ENTITY   * e = (ENTITY   *)preq;
-    diva_xdi_extended_features |= 0x80000000;
-
-    e->user[0] = a->Id - 1;
-    preq->xdi_extended_features.Req = 0;
-    preq->xdi_extended_features.Rc  = IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES;
-    preq->xdi_extended_features.info.buffer_length_in_bytes = sizeof(features);
-    preq->xdi_extended_features.info.features = &features[0];
-
-    (*(a->request))(e);
-
-    if (features[0] & DIVA_XDI_EXTENDED_FEATURES_VALID) {
-      /*
-         Check features located in the byte '0'
-         */
-      if (features[0] & DIVA_XDI_EXTENDED_FEATURE_CMA) {
-        diva_xdi_extended_features |= DIVA_CAPI_USE_CMA;
-      }
-      if (features[0] & DIVA_XDI_EXTENDED_FEATURE_RX_DMA) {
-        diva_xdi_extended_features |= DIVA_CAPI_XDI_PROVIDES_RX_DMA;
-        dbug(1,dprintf("XDI provides RxDMA"));
-      }
-      if (features[0] & DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR) {
-        diva_xdi_extended_features |= DIVA_CAPI_XDI_PROVIDES_SDRAM_BAR;
-      }
-      if (features[0] & DIVA_XDI_EXTENDED_FEATURE_NO_CANCEL_RC) {
-        diva_xdi_extended_features |= DIVA_CAPI_XDI_PROVIDES_NO_CANCEL;
-        dbug(3,dprintf("XDI provides NO_CANCEL_RC feature"));
-      }
-
-    }
-  }
-
-  diva_ask_for_xdi_sdram_bar (a, preq);
+static void diva_get_extended_adapter_features(DIVA_CAPI_ADAPTER *a) {
+       IDI_SYNC_REQ *preq;
+       char buffer[((sizeof(preq->xdi_extended_features) + 4) > sizeof(ENTITY)) ? (sizeof(preq->xdi_extended_features) + 4) : sizeof(ENTITY)];
+
+       char features[4];
+       preq = (IDI_SYNC_REQ *)&buffer[0];
+
+       if (!diva_xdi_extended_features) {
+               ENTITY *e = (ENTITY *)preq;
+               diva_xdi_extended_features |= 0x80000000;
+
+               e->user[0] = a->Id - 1;
+               preq->xdi_extended_features.Req = 0;
+               preq->xdi_extended_features.Rc  = IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES;
+               preq->xdi_extended_features.info.buffer_length_in_bytes = sizeof(features);
+               preq->xdi_extended_features.info.features = &features[0];
+
+               (*(a->request))(e);
+
+               if (features[0] & DIVA_XDI_EXTENDED_FEATURES_VALID) {
+                       /*
+                         Check features located in the byte '0'
+                       */
+                       if (features[0] & DIVA_XDI_EXTENDED_FEATURE_CMA) {
+                               diva_xdi_extended_features |= DIVA_CAPI_USE_CMA;
+                       }
+                       if (features[0] & DIVA_XDI_EXTENDED_FEATURE_RX_DMA) {
+                               diva_xdi_extended_features |= DIVA_CAPI_XDI_PROVIDES_RX_DMA;
+                               dbug(1, dprintf("XDI provides RxDMA"));
+                       }
+                       if (features[0] & DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR) {
+                               diva_xdi_extended_features |= DIVA_CAPI_XDI_PROVIDES_SDRAM_BAR;
+                       }
+                       if (features[0] & DIVA_XDI_EXTENDED_FEATURE_NO_CANCEL_RC) {
+                               diva_xdi_extended_features |= DIVA_CAPI_XDI_PROVIDES_NO_CANCEL;
+                               dbug(3, dprintf("XDI provides NO_CANCEL_RC feature"));
+                       }
+
+               }
+       }
+
+       diva_ask_for_xdi_sdram_bar(a, preq);
 }
 
 /*------------------------------------------------------------------*/
@@ -9310,188 +9310,188 @@ static void diva_get_extended_adapter_features (DIVA_CAPI_ADAPTER  * a) {
 /*------------------------------------------------------------------*/
 /* called from OS specific part after init time to get the Law              */
 /* a-law (Euro) and u-law (us,japan) use different BCs in the Setup message */
-void AutomaticLaw(DIVA_CAPI_ADAPTER   *a)
-{
-  word j;
-  PLCI   *splci;
-
-  if(a->automatic_law) {
-    return;
-  }
-  if((j=get_plci(a))) {
-    diva_get_extended_adapter_features (a);
-    splci = &a->plci[j-1];
-    a->automatic_lawPLCI = splci;
-    a->automatic_law = 1;
-    add_p(splci,CAI,"\x01\x80");
-    add_p(splci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-    splci->internal_command = USELAW_REQ;
-    splci->command = 0;
-    splci->number = 0;
-    sig_req(splci,ASSIGN,DSIG_ID);
-    send_req(splci);
-  }
+void AutomaticLaw(DIVA_CAPI_ADAPTER *a)
+{
+       word j;
+       PLCI *splci;
+
+       if (a->automatic_law) {
+               return;
+       }
+       if ((j = get_plci(a))) {
+               diva_get_extended_adapter_features(a);
+               splci = &a->plci[j - 1];
+               a->automatic_lawPLCI = splci;
+               a->automatic_law = 1;
+               add_p(splci, CAI, "\x01\x80");
+               add_p(splci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+               splci->internal_command = USELAW_REQ;
+               splci->command = 0;
+               splci->number = 0;
+               sig_req(splci, ASSIGN, DSIG_ID);
+               send_req(splci);
+       }
 }
 
 /* called from OS specific part if an application sends an Capi20Release */
 word CapiRelease(word Id)
 {
-  word i, j, appls_found;
-  PLCI   *plci;
-  APPL   *this;
-  DIVA_CAPI_ADAPTER   *a;
-
-  if (!Id)
-  {
-    dbug(0,dprintf("A: CapiRelease(Id==0)"));
-    return (_WRONG_APPL_ID);
-  }
-
-  this = &application[Id-1];               /* get application pointer */
-
-  for(i=0,appls_found=0; i<max_appl; i++)
-  {
-    if(application[i].Id)       /* an application has been found        */
-    {
-      appls_found++;
-    }
-  }
-
-  for(i=0; i<max_adapter; i++)             /* scan all adapters...    */
-  {
-    a = &adapter[i];
-    if (a->request)
-    {
-      a->Info_Mask[Id-1] = 0;
-      a->CIP_Mask[Id-1] = 0;
-      a->Notification_Mask[Id-1] = 0;
-      a->codec_listen[Id-1] = NULL;
-      a->requested_options_table[Id-1] = 0;
-      for(j=0; j<a->max_plci; j++)           /* and all PLCIs connected */
-      {                                      /* with this application   */
-        plci = &a->plci[j];
-        if(plci->Id)                         /* if plci owns no application */
-        {                                    /* it may be not jet connected */
-          if(plci->State==INC_CON_PENDING
-          || plci->State==INC_CON_ALERT)
-          {
-            if(test_c_ind_mask_bit (plci, (word)(Id-1)))
-            {
-              clear_c_ind_mask_bit (plci, (word)(Id-1));
-              if(c_ind_mask_empty (plci))
-              {
-                sig_req(plci,HANGUP,0);
-                send_req(plci);
-                plci->State = OUTG_DIS_PENDING;
-              }
-            }
-          }
-          if(test_c_ind_mask_bit (plci, (word)(Id-1)))
-          {
-            clear_c_ind_mask_bit (plci, (word)(Id-1));
-            if(c_ind_mask_empty (plci))
-            {
-              if(!plci->appl)
-              {
-                plci_remove(plci);
-                plci->State = IDLE;
-              }
-            }
-          }
-          if(plci->appl==this)
-          {
-            plci->appl = NULL;
-            plci_remove(plci);
-            plci->State = IDLE;
-          }
-        }
-      }
-      listen_check(a);
-
-      if(a->flag_dynamic_l1_down)
-      {
-        if(appls_found==1)            /* last application does a capi release */
-        {
-          if((j=get_plci(a)))
-          {
-            plci = &a->plci[j-1];
-            plci->command = 0;
-            add_p(plci,OAD,"\x01\xfd");
-            add_p(plci,CAI,"\x01\x80");
-            add_p(plci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-            add_p(plci,SHIFT|6,NULL);
-            add_p(plci,SIN,"\x02\x00\x00");
-            plci->internal_command = REM_L1_SIG_ASSIGN_PEND;
-            sig_req(plci,ASSIGN,DSIG_ID);
-            add_p(plci,FTY,"\x02\xff\x06"); /* l1 down */
-            sig_req(plci,SIG_CTRL,0);
-            send_req(plci);
-          }
-        }
-      }
-      if(a->AdvSignalAppl==this)
-      {
-        this->NullCREnable = false;
-        if (a->AdvCodecPLCI)
-        {
-          plci_remove(a->AdvCodecPLCI);
-          a->AdvCodecPLCI->tel = 0;
-          a->AdvCodecPLCI->adv_nl = 0;
-        }
-        a->AdvSignalAppl = NULL;
-        a->AdvSignalPLCI = NULL;
-        a->AdvCodecFLAG = 0;
-        a->AdvCodecPLCI = NULL;
-      }
-    }
-  }
-
-  this->Id = 0;
-
-  return GOOD;
-}
-
-static word plci_remove_check(PLCI   *plci)
-{
-  if(!plci) return true;
-  if(!plci->NL.Id && c_ind_mask_empty (plci))
-  {
-    if(plci->Sig.Id == 0xff)
-      plci->Sig.Id = 0;
-    if(!plci->Sig.Id)
-    {
-      dbug(1,dprintf("plci_remove_complete(%x)",plci->Id));
-      dbug(1,dprintf("tel=0x%x,Sig=0x%x",plci->tel,plci->Sig.Id));
-      if (plci->Id)
-      {
-        CodecIdCheck(plci->adapter, plci);
-        clear_b1_config (plci);
-        ncci_remove (plci, 0, false);
-        plci_free_msg_in_queue (plci);
-        channel_flow_control_remove (plci);
-        plci->Id = 0;
-        plci->State = IDLE;
-        plci->channels = 0;
-        plci->appl = NULL;
-        plci->notifiedcall = 0;
-      }
-      listen_check(plci->adapter);
-      return true;
-    }
-  }
-  return false;
+       word i, j, appls_found;
+       PLCI *plci;
+       APPL   *this;
+       DIVA_CAPI_ADAPTER *a;
+
+       if (!Id)
+       {
+               dbug(0, dprintf("A: CapiRelease(Id==0)"));
+               return (_WRONG_APPL_ID);
+       }
+
+       this = &application[Id - 1];               /* get application pointer */
+
+       for (i = 0, appls_found = 0; i < max_appl; i++)
+       {
+               if (application[i].Id)       /* an application has been found        */
+               {
+                       appls_found++;
+               }
+       }
+
+       for (i = 0; i < max_adapter; i++)             /* scan all adapters...    */
+       {
+               a = &adapter[i];
+               if (a->request)
+               {
+                       a->Info_Mask[Id - 1] = 0;
+                       a->CIP_Mask[Id - 1] = 0;
+                       a->Notification_Mask[Id - 1] = 0;
+                       a->codec_listen[Id - 1] = NULL;
+                       a->requested_options_table[Id - 1] = 0;
+                       for (j = 0; j < a->max_plci; j++)           /* and all PLCIs connected */
+                       {                                      /* with this application   */
+                               plci = &a->plci[j];
+                               if (plci->Id)                         /* if plci owns no application */
+                               {                                    /* it may be not jet connected */
+                                       if (plci->State == INC_CON_PENDING
+                                           || plci->State == INC_CON_ALERT)
+                                       {
+                                               if (test_c_ind_mask_bit(plci, (word)(Id - 1)))
+                                               {
+                                                       clear_c_ind_mask_bit(plci, (word)(Id - 1));
+                                                       if (c_ind_mask_empty(plci))
+                                                       {
+                                                               sig_req(plci, HANGUP, 0);
+                                                               send_req(plci);
+                                                               plci->State = OUTG_DIS_PENDING;
+                                                       }
+                                               }
+                                       }
+                                       if (test_c_ind_mask_bit(plci, (word)(Id - 1)))
+                                       {
+                                               clear_c_ind_mask_bit(plci, (word)(Id - 1));
+                                               if (c_ind_mask_empty(plci))
+                                               {
+                                                       if (!plci->appl)
+                                                       {
+                                                               plci_remove(plci);
+                                                               plci->State = IDLE;
+                                                       }
+                                               }
+                                       }
+                                       if (plci->appl == this)
+                                       {
+                                               plci->appl = NULL;
+                                               plci_remove(plci);
+                                               plci->State = IDLE;
+                                       }
+                               }
+                       }
+                       listen_check(a);
+
+                       if (a->flag_dynamic_l1_down)
+                       {
+                               if (appls_found == 1)            /* last application does a capi release */
+                               {
+                                       if ((j = get_plci(a)))
+                                       {
+                                               plci = &a->plci[j - 1];
+                                               plci->command = 0;
+                                               add_p(plci, OAD, "\x01\xfd");
+                                               add_p(plci, CAI, "\x01\x80");
+                                               add_p(plci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               add_p(plci, SHIFT | 6, NULL);
+                                               add_p(plci, SIN, "\x02\x00\x00");
+                                               plci->internal_command = REM_L1_SIG_ASSIGN_PEND;
+                                               sig_req(plci, ASSIGN, DSIG_ID);
+                                               add_p(plci, FTY, "\x02\xff\x06"); /* l1 down */
+                                               sig_req(plci, SIG_CTRL, 0);
+                                               send_req(plci);
+                                       }
+                               }
+                       }
+                       if (a->AdvSignalAppl == this)
+                       {
+                               this->NullCREnable = false;
+                               if (a->AdvCodecPLCI)
+                               {
+                                       plci_remove(a->AdvCodecPLCI);
+                                       a->AdvCodecPLCI->tel = 0;
+                                       a->AdvCodecPLCI->adv_nl = 0;
+                               }
+                               a->AdvSignalAppl = NULL;
+                               a->AdvSignalPLCI = NULL;
+                               a->AdvCodecFLAG = 0;
+                               a->AdvCodecPLCI = NULL;
+                       }
+               }
+       }
+
+       this->Id = 0;
+
+       return GOOD;
+}
+
+static word plci_remove_check(PLCI *plci)
+{
+       if (!plci) return true;
+       if (!plci->NL.Id && c_ind_mask_empty(plci))
+       {
+               if (plci->Sig.Id == 0xff)
+                       plci->Sig.Id = 0;
+               if (!plci->Sig.Id)
+               {
+                       dbug(1, dprintf("plci_remove_complete(%x)", plci->Id));
+                       dbug(1, dprintf("tel=0x%x,Sig=0x%x", plci->tel, plci->Sig.Id));
+                       if (plci->Id)
+                       {
+                               CodecIdCheck(plci->adapter, plci);
+                               clear_b1_config(plci);
+                               ncci_remove(plci, 0, false);
+                               plci_free_msg_in_queue(plci);
+                               channel_flow_control_remove(plci);
+                               plci->Id = 0;
+                               plci->State = IDLE;
+                               plci->channels = 0;
+                               plci->appl = NULL;
+                               plci->notifiedcall = 0;
+                       }
+                       listen_check(plci->adapter);
+                       return true;
+               }
+       }
+       return false;
 }
 
 
 /*------------------------------------------------------------------*/
 
-static byte plci_nl_busy (PLCI   *plci)
+static byte plci_nl_busy(PLCI *plci)
 {
-  /* only applicable for non-multiplexed protocols */
-  return (plci->nl_req
-    || (plci->ncci_ring_list
-     && plci->adapter->ncci_ch[plci->ncci_ring_list]
-     && (plci->adapter->ch_flow_control[plci->adapter->ncci_ch[plci->ncci_ring_list]] & N_OK_FC_PENDING)));
+       /* only applicable for non-multiplexed protocols */
+       return (plci->nl_req
+               || (plci->ncci_ring_list
+                   && plci->adapter->ncci_ch[plci->ncci_ring_list]
+                   && (plci->adapter->ch_flow_control[plci->adapter->ncci_ch[plci->ncci_ring_list]] & N_OK_FC_PENDING)));
 }
 
 
@@ -9502,681 +9502,681 @@ static byte plci_nl_busy (PLCI   *plci)
 
 static struct
 {
-  byte send_mask;
-  byte listen_mask;
-  byte character;
-  byte code;
+       byte send_mask;
+       byte listen_mask;
+       byte character;
+       byte code;
 } dtmf_digit_map[] =
 {
-  { 0x01, 0x01, 0x23, DTMF_DIGIT_TONE_CODE_HASHMARK },
-  { 0x01, 0x01, 0x2a, DTMF_DIGIT_TONE_CODE_STAR },
-  { 0x01, 0x01, 0x30, DTMF_DIGIT_TONE_CODE_0 },
-  { 0x01, 0x01, 0x31, DTMF_DIGIT_TONE_CODE_1 },
-  { 0x01, 0x01, 0x32, DTMF_DIGIT_TONE_CODE_2 },
-  { 0x01, 0x01, 0x33, DTMF_DIGIT_TONE_CODE_3 },
-  { 0x01, 0x01, 0x34, DTMF_DIGIT_TONE_CODE_4 },
-  { 0x01, 0x01, 0x35, DTMF_DIGIT_TONE_CODE_5 },
-  { 0x01, 0x01, 0x36, DTMF_DIGIT_TONE_CODE_6 },
-  { 0x01, 0x01, 0x37, DTMF_DIGIT_TONE_CODE_7 },
-  { 0x01, 0x01, 0x38, DTMF_DIGIT_TONE_CODE_8 },
-  { 0x01, 0x01, 0x39, DTMF_DIGIT_TONE_CODE_9 },
-  { 0x01, 0x01, 0x41, DTMF_DIGIT_TONE_CODE_A },
-  { 0x01, 0x01, 0x42, DTMF_DIGIT_TONE_CODE_B },
-  { 0x01, 0x01, 0x43, DTMF_DIGIT_TONE_CODE_C },
-  { 0x01, 0x01, 0x44, DTMF_DIGIT_TONE_CODE_D },
-  { 0x01, 0x00, 0x61, DTMF_DIGIT_TONE_CODE_A },
-  { 0x01, 0x00, 0x62, DTMF_DIGIT_TONE_CODE_B },
-  { 0x01, 0x00, 0x63, DTMF_DIGIT_TONE_CODE_C },
-  { 0x01, 0x00, 0x64, DTMF_DIGIT_TONE_CODE_D },
-
-  { 0x04, 0x04, 0x80, DTMF_SIGNAL_NO_TONE },
-  { 0x00, 0x04, 0x81, DTMF_SIGNAL_UNIDENTIFIED_TONE },
-  { 0x04, 0x04, 0x82, DTMF_SIGNAL_DIAL_TONE },
-  { 0x04, 0x04, 0x83, DTMF_SIGNAL_PABX_INTERNAL_DIAL_TONE },
-  { 0x04, 0x04, 0x84, DTMF_SIGNAL_SPECIAL_DIAL_TONE },
-  { 0x04, 0x04, 0x85, DTMF_SIGNAL_SECOND_DIAL_TONE },
-  { 0x04, 0x04, 0x86, DTMF_SIGNAL_RINGING_TONE },
-  { 0x04, 0x04, 0x87, DTMF_SIGNAL_SPECIAL_RINGING_TONE },
-  { 0x04, 0x04, 0x88, DTMF_SIGNAL_BUSY_TONE },
-  { 0x04, 0x04, 0x89, DTMF_SIGNAL_CONGESTION_TONE },
-  { 0x04, 0x04, 0x8a, DTMF_SIGNAL_SPECIAL_INFORMATION_TONE },
-  { 0x04, 0x04, 0x8b, DTMF_SIGNAL_COMFORT_TONE },
-  { 0x04, 0x04, 0x8c, DTMF_SIGNAL_HOLD_TONE },
-  { 0x04, 0x04, 0x8d, DTMF_SIGNAL_RECORD_TONE },
-  { 0x04, 0x04, 0x8e, DTMF_SIGNAL_CALLER_WAITING_TONE },
-  { 0x04, 0x04, 0x8f, DTMF_SIGNAL_CALL_WAITING_TONE },
-  { 0x04, 0x04, 0x90, DTMF_SIGNAL_PAY_TONE },
-  { 0x04, 0x04, 0x91, DTMF_SIGNAL_POSITIVE_INDICATION_TONE },
-  { 0x04, 0x04, 0x92, DTMF_SIGNAL_NEGATIVE_INDICATION_TONE },
-  { 0x04, 0x04, 0x93, DTMF_SIGNAL_WARNING_TONE },
-  { 0x04, 0x04, 0x94, DTMF_SIGNAL_INTRUSION_TONE },
-  { 0x04, 0x04, 0x95, DTMF_SIGNAL_CALLING_CARD_SERVICE_TONE },
-  { 0x04, 0x04, 0x96, DTMF_SIGNAL_PAYPHONE_RECOGNITION_TONE },
-  { 0x04, 0x04, 0x97, DTMF_SIGNAL_CPE_ALERTING_SIGNAL },
-  { 0x04, 0x04, 0x98, DTMF_SIGNAL_OFF_HOOK_WARNING_TONE },
-  { 0x04, 0x04, 0xbf, DTMF_SIGNAL_INTERCEPT_TONE },
-  { 0x04, 0x04, 0xc0, DTMF_SIGNAL_MODEM_CALLING_TONE },
-  { 0x04, 0x04, 0xc1, DTMF_SIGNAL_FAX_CALLING_TONE },
-  { 0x04, 0x04, 0xc2, DTMF_SIGNAL_ANSWER_TONE },
-  { 0x04, 0x04, 0xc3, DTMF_SIGNAL_REVERSED_ANSWER_TONE },
-  { 0x04, 0x04, 0xc4, DTMF_SIGNAL_ANSAM_TONE },
-  { 0x04, 0x04, 0xc5, DTMF_SIGNAL_REVERSED_ANSAM_TONE },
-  { 0x04, 0x04, 0xc6, DTMF_SIGNAL_BELL103_ANSWER_TONE },
-  { 0x04, 0x04, 0xc7, DTMF_SIGNAL_FAX_FLAGS },
-  { 0x04, 0x04, 0xc8, DTMF_SIGNAL_G2_FAX_GROUP_ID },
-  { 0x00, 0x04, 0xc9, DTMF_SIGNAL_HUMAN_SPEECH },
-  { 0x04, 0x04, 0xca, DTMF_SIGNAL_ANSWERING_MACHINE_390 },
-  { 0x02, 0x02, 0xf1, DTMF_MF_DIGIT_TONE_CODE_1 },
-  { 0x02, 0x02, 0xf2, DTMF_MF_DIGIT_TONE_CODE_2 },
-  { 0x02, 0x02, 0xf3, DTMF_MF_DIGIT_TONE_CODE_3 },
-  { 0x02, 0x02, 0xf4, DTMF_MF_DIGIT_TONE_CODE_4 },
-  { 0x02, 0x02, 0xf5, DTMF_MF_DIGIT_TONE_CODE_5 },
-  { 0x02, 0x02, 0xf6, DTMF_MF_DIGIT_TONE_CODE_6 },
-  { 0x02, 0x02, 0xf7, DTMF_MF_DIGIT_TONE_CODE_7 },
-  { 0x02, 0x02, 0xf8, DTMF_MF_DIGIT_TONE_CODE_8 },
-  { 0x02, 0x02, 0xf9, DTMF_MF_DIGIT_TONE_CODE_9 },
-  { 0x02, 0x02, 0xfa, DTMF_MF_DIGIT_TONE_CODE_0 },
-  { 0x02, 0x02, 0xfb, DTMF_MF_DIGIT_TONE_CODE_K1 },
-  { 0x02, 0x02, 0xfc, DTMF_MF_DIGIT_TONE_CODE_K2 },
-  { 0x02, 0x02, 0xfd, DTMF_MF_DIGIT_TONE_CODE_KP },
-  { 0x02, 0x02, 0xfe, DTMF_MF_DIGIT_TONE_CODE_S1 },
-  { 0x02, 0x02, 0xff, DTMF_MF_DIGIT_TONE_CODE_ST },
+       { 0x01, 0x01, 0x23, DTMF_DIGIT_TONE_CODE_HASHMARK },
+       { 0x01, 0x01, 0x2a, DTMF_DIGIT_TONE_CODE_STAR },
+       { 0x01, 0x01, 0x30, DTMF_DIGIT_TONE_CODE_0 },
+       { 0x01, 0x01, 0x31, DTMF_DIGIT_TONE_CODE_1 },
+       { 0x01, 0x01, 0x32, DTMF_DIGIT_TONE_CODE_2 },
+       { 0x01, 0x01, 0x33, DTMF_DIGIT_TONE_CODE_3 },
+       { 0x01, 0x01, 0x34, DTMF_DIGIT_TONE_CODE_4 },
+       { 0x01, 0x01, 0x35, DTMF_DIGIT_TONE_CODE_5 },
+       { 0x01, 0x01, 0x36, DTMF_DIGIT_TONE_CODE_6 },
+       { 0x01, 0x01, 0x37, DTMF_DIGIT_TONE_CODE_7 },
+       { 0x01, 0x01, 0x38, DTMF_DIGIT_TONE_CODE_8 },
+       { 0x01, 0x01, 0x39, DTMF_DIGIT_TONE_CODE_9 },
+       { 0x01, 0x01, 0x41, DTMF_DIGIT_TONE_CODE_A },
+       { 0x01, 0x01, 0x42, DTMF_DIGIT_TONE_CODE_B },
+       { 0x01, 0x01, 0x43, DTMF_DIGIT_TONE_CODE_C },
+       { 0x01, 0x01, 0x44, DTMF_DIGIT_TONE_CODE_D },
+       { 0x01, 0x00, 0x61, DTMF_DIGIT_TONE_CODE_A },
+       { 0x01, 0x00, 0x62, DTMF_DIGIT_TONE_CODE_B },
+       { 0x01, 0x00, 0x63, DTMF_DIGIT_TONE_CODE_C },
+       { 0x01, 0x00, 0x64, DTMF_DIGIT_TONE_CODE_D },
+
+       { 0x04, 0x04, 0x80, DTMF_SIGNAL_NO_TONE },
+       { 0x00, 0x04, 0x81, DTMF_SIGNAL_UNIDENTIFIED_TONE },
+       { 0x04, 0x04, 0x82, DTMF_SIGNAL_DIAL_TONE },
+       { 0x04, 0x04, 0x83, DTMF_SIGNAL_PABX_INTERNAL_DIAL_TONE },
+       { 0x04, 0x04, 0x84, DTMF_SIGNAL_SPECIAL_DIAL_TONE },
+       { 0x04, 0x04, 0x85, DTMF_SIGNAL_SECOND_DIAL_TONE },
+       { 0x04, 0x04, 0x86, DTMF_SIGNAL_RINGING_TONE },
+       { 0x04, 0x04, 0x87, DTMF_SIGNAL_SPECIAL_RINGING_TONE },
+       { 0x04, 0x04, 0x88, DTMF_SIGNAL_BUSY_TONE },
+       { 0x04, 0x04, 0x89, DTMF_SIGNAL_CONGESTION_TONE },
+       { 0x04, 0x04, 0x8a, DTMF_SIGNAL_SPECIAL_INFORMATION_TONE },
+       { 0x04, 0x04, 0x8b, DTMF_SIGNAL_COMFORT_TONE },
+       { 0x04, 0x04, 0x8c, DTMF_SIGNAL_HOLD_TONE },
+       { 0x04, 0x04, 0x8d, DTMF_SIGNAL_RECORD_TONE },
+       { 0x04, 0x04, 0x8e, DTMF_SIGNAL_CALLER_WAITING_TONE },
+       { 0x04, 0x04, 0x8f, DTMF_SIGNAL_CALL_WAITING_TONE },
+       { 0x04, 0x04, 0x90, DTMF_SIGNAL_PAY_TONE },
+       { 0x04, 0x04, 0x91, DTMF_SIGNAL_POSITIVE_INDICATION_TONE },
+       { 0x04, 0x04, 0x92, DTMF_SIGNAL_NEGATIVE_INDICATION_TONE },
+       { 0x04, 0x04, 0x93, DTMF_SIGNAL_WARNING_TONE },
+       { 0x04, 0x04, 0x94, DTMF_SIGNAL_INTRUSION_TONE },
+       { 0x04, 0x04, 0x95, DTMF_SIGNAL_CALLING_CARD_SERVICE_TONE },
+       { 0x04, 0x04, 0x96, DTMF_SIGNAL_PAYPHONE_RECOGNITION_TONE },
+       { 0x04, 0x04, 0x97, DTMF_SIGNAL_CPE_ALERTING_SIGNAL },
+       { 0x04, 0x04, 0x98, DTMF_SIGNAL_OFF_HOOK_WARNING_TONE },
+       { 0x04, 0x04, 0xbf, DTMF_SIGNAL_INTERCEPT_TONE },
+       { 0x04, 0x04, 0xc0, DTMF_SIGNAL_MODEM_CALLING_TONE },
+       { 0x04, 0x04, 0xc1, DTMF_SIGNAL_FAX_CALLING_TONE },
+       { 0x04, 0x04, 0xc2, DTMF_SIGNAL_ANSWER_TONE },
+       { 0x04, 0x04, 0xc3, DTMF_SIGNAL_REVERSED_ANSWER_TONE },
+       { 0x04, 0x04, 0xc4, DTMF_SIGNAL_ANSAM_TONE },
+       { 0x04, 0x04, 0xc5, DTMF_SIGNAL_REVERSED_ANSAM_TONE },
+       { 0x04, 0x04, 0xc6, DTMF_SIGNAL_BELL103_ANSWER_TONE },
+       { 0x04, 0x04, 0xc7, DTMF_SIGNAL_FAX_FLAGS },
+       { 0x04, 0x04, 0xc8, DTMF_SIGNAL_G2_FAX_GROUP_ID },
+       { 0x00, 0x04, 0xc9, DTMF_SIGNAL_HUMAN_SPEECH },
+       { 0x04, 0x04, 0xca, DTMF_SIGNAL_ANSWERING_MACHINE_390 },
+       { 0x02, 0x02, 0xf1, DTMF_MF_DIGIT_TONE_CODE_1 },
+       { 0x02, 0x02, 0xf2, DTMF_MF_DIGIT_TONE_CODE_2 },
+       { 0x02, 0x02, 0xf3, DTMF_MF_DIGIT_TONE_CODE_3 },
+       { 0x02, 0x02, 0xf4, DTMF_MF_DIGIT_TONE_CODE_4 },
+       { 0x02, 0x02, 0xf5, DTMF_MF_DIGIT_TONE_CODE_5 },
+       { 0x02, 0x02, 0xf6, DTMF_MF_DIGIT_TONE_CODE_6 },
+       { 0x02, 0x02, 0xf7, DTMF_MF_DIGIT_TONE_CODE_7 },
+       { 0x02, 0x02, 0xf8, DTMF_MF_DIGIT_TONE_CODE_8 },
+       { 0x02, 0x02, 0xf9, DTMF_MF_DIGIT_TONE_CODE_9 },
+       { 0x02, 0x02, 0xfa, DTMF_MF_DIGIT_TONE_CODE_0 },
+       { 0x02, 0x02, 0xfb, DTMF_MF_DIGIT_TONE_CODE_K1 },
+       { 0x02, 0x02, 0xfc, DTMF_MF_DIGIT_TONE_CODE_K2 },
+       { 0x02, 0x02, 0xfd, DTMF_MF_DIGIT_TONE_CODE_KP },
+       { 0x02, 0x02, 0xfe, DTMF_MF_DIGIT_TONE_CODE_S1 },
+       { 0x02, 0x02, 0xff, DTMF_MF_DIGIT_TONE_CODE_ST },
 
 };
 
 #define DTMF_DIGIT_MAP_ENTRIES ARRAY_SIZE(dtmf_digit_map)
 
 
-static void dtmf_enable_receiver (PLCI   *plci, byte enable_mask)
+static void dtmf_enable_receiver(PLCI *plci, byte enable_mask)
 {
-  word min_digit_duration, min_gap_duration;
+       word min_digit_duration, min_gap_duration;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_enable_receiver %02x",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, enable_mask));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_enable_receiver %02x",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, enable_mask));
 
-  if (enable_mask != 0)
-  {
-    min_digit_duration = (plci->dtmf_rec_pulse_ms == 0) ? 40 : plci->dtmf_rec_pulse_ms;
-    min_gap_duration = (plci->dtmf_rec_pause_ms == 0) ? 40 : plci->dtmf_rec_pause_ms;
-    plci->internal_req_buffer[0] = DTMF_UDATA_REQUEST_ENABLE_RECEIVER;
-    PUT_WORD (&plci->internal_req_buffer[1], min_digit_duration);
-    PUT_WORD (&plci->internal_req_buffer[3], min_gap_duration);
-    plci->NData[0].PLength = 5;
+       if (enable_mask != 0)
+       {
+               min_digit_duration = (plci->dtmf_rec_pulse_ms == 0) ? 40 : plci->dtmf_rec_pulse_ms;
+               min_gap_duration = (plci->dtmf_rec_pause_ms == 0) ? 40 : plci->dtmf_rec_pause_ms;
+               plci->internal_req_buffer[0] = DTMF_UDATA_REQUEST_ENABLE_RECEIVER;
+               PUT_WORD(&plci->internal_req_buffer[1], min_digit_duration);
+               PUT_WORD(&plci->internal_req_buffer[3], min_gap_duration);
+               plci->NData[0].PLength = 5;
 
-    PUT_WORD (&plci->internal_req_buffer[5], INTERNAL_IND_BUFFER_SIZE);
-    plci->NData[0].PLength += 2;
-    capidtmf_recv_enable (&(plci->capidtmf_state), min_digit_duration, min_gap_duration);
+               PUT_WORD(&plci->internal_req_buffer[5], INTERNAL_IND_BUFFER_SIZE);
+               plci->NData[0].PLength += 2;
+               capidtmf_recv_enable(&(plci->capidtmf_state), min_digit_duration, min_gap_duration);
 
-  }
-  else
-  {
-    plci->internal_req_buffer[0] = DTMF_UDATA_REQUEST_DISABLE_RECEIVER;
-    plci->NData[0].PLength = 1;
+       }
+       else
+       {
+               plci->internal_req_buffer[0] = DTMF_UDATA_REQUEST_DISABLE_RECEIVER;
+               plci->NData[0].PLength = 1;
 
-    capidtmf_recv_disable (&(plci->capidtmf_state));
+               capidtmf_recv_disable(&(plci->capidtmf_state));
 
-  }
-  plci->NData[0].P = plci->internal_req_buffer;
-  plci->NL.X = plci->NData;
-  plci->NL.ReqCh = 0;
-  plci->NL.Req = plci->nl_req = (byte) N_UDATA;
-  plci->adapter->request (&plci->NL);
+       }
+       plci->NData[0].P = plci->internal_req_buffer;
+       plci->NL.X = plci->NData;
+       plci->NL.ReqCh = 0;
+       plci->NL.Req = plci->nl_req = (byte) N_UDATA;
+       plci->adapter->request(&plci->NL);
 }
 
 
-static void dtmf_send_digits (PLCI   *plci, byte   *digit_buffer, word digit_count)
+static void dtmf_send_digits(PLCI *plci, byte *digit_buffer, word digit_count)
 {
-  word w, i;
+       word w, i;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_send_digits %d",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, digit_count));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_send_digits %d",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, digit_count));
 
-  plci->internal_req_buffer[0] = DTMF_UDATA_REQUEST_SEND_DIGITS;
-  w = (plci->dtmf_send_pulse_ms == 0) ? 40 : plci->dtmf_send_pulse_ms;
-  PUT_WORD (&plci->internal_req_buffer[1], w);
-  w = (plci->dtmf_send_pause_ms == 0) ? 40 : plci->dtmf_send_pause_ms;
-  PUT_WORD (&plci->internal_req_buffer[3], w);
-  for (i = 0; i < digit_count; i++)
-  {
-    w = 0;
-    while ((w < DTMF_DIGIT_MAP_ENTRIES)
-      && (digit_buffer[i] != dtmf_digit_map[w].character))
-    {
-      w++;
-    }
-    plci->internal_req_buffer[5+i] = (w < DTMF_DIGIT_MAP_ENTRIES) ?
-      dtmf_digit_map[w].code : DTMF_DIGIT_TONE_CODE_STAR;
-  }
-  plci->NData[0].PLength = 5 + digit_count;
-  plci->NData[0].P = plci->internal_req_buffer;
-  plci->NL.X = plci->NData;
-  plci->NL.ReqCh = 0;
-  plci->NL.Req = plci->nl_req = (byte) N_UDATA;
-  plci->adapter->request (&plci->NL);
+       plci->internal_req_buffer[0] = DTMF_UDATA_REQUEST_SEND_DIGITS;
+       w = (plci->dtmf_send_pulse_ms == 0) ? 40 : plci->dtmf_send_pulse_ms;
+       PUT_WORD(&plci->internal_req_buffer[1], w);
+       w = (plci->dtmf_send_pause_ms == 0) ? 40 : plci->dtmf_send_pause_ms;
+       PUT_WORD(&plci->internal_req_buffer[3], w);
+       for (i = 0; i < digit_count; i++)
+       {
+               w = 0;
+               while ((w < DTMF_DIGIT_MAP_ENTRIES)
+                      && (digit_buffer[i] != dtmf_digit_map[w].character))
+               {
+                       w++;
+               }
+               plci->internal_req_buffer[5 + i] = (w < DTMF_DIGIT_MAP_ENTRIES) ?
+                       dtmf_digit_map[w].code : DTMF_DIGIT_TONE_CODE_STAR;
+       }
+       plci->NData[0].PLength = 5 + digit_count;
+       plci->NData[0].P = plci->internal_req_buffer;
+       plci->NL.X = plci->NData;
+       plci->NL.ReqCh = 0;
+       plci->NL.Req = plci->nl_req = (byte) N_UDATA;
+       plci->adapter->request(&plci->NL);
 }
 
 
-static void dtmf_rec_clear_config (PLCI   *plci)
+static void dtmf_rec_clear_config(PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_rec_clear_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  plci->dtmf_rec_active = 0;
-  plci->dtmf_rec_pulse_ms = 0;
-  plci->dtmf_rec_pause_ms = 0;
-
-  capidtmf_init (&(plci->capidtmf_state), plci->adapter->u_law);
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_rec_clear_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-}
-
-
-static void dtmf_send_clear_config (PLCI   *plci)
-{
+       plci->dtmf_rec_active = 0;
+       plci->dtmf_rec_pulse_ms = 0;
+       plci->dtmf_rec_pause_ms = 0;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_send_clear_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
+       capidtmf_init(&(plci->capidtmf_state), plci->adapter->u_law);
 
-  plci->dtmf_send_requests = 0;
-  plci->dtmf_send_pulse_ms = 0;
-  plci->dtmf_send_pause_ms = 0;
 }
 
 
-static void dtmf_prepare_switch (dword Id, PLCI   *plci)
+static void dtmf_send_clear_config(PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_prepare_switch",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_send_clear_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-  while (plci->dtmf_send_requests != 0)
-    dtmf_confirmation (Id, plci);
+       plci->dtmf_send_requests = 0;
+       plci->dtmf_send_pulse_ms = 0;
+       plci->dtmf_send_pause_ms = 0;
 }
 
 
-static word dtmf_save_config (dword Id, PLCI   *plci, byte Rc)
+static void dtmf_prepare_switch(dword Id, PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_save_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_prepare_switch",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
 
-  return (GOOD);
+       while (plci->dtmf_send_requests != 0)
+               dtmf_confirmation(Id, plci);
 }
 
 
-static word dtmf_restore_config (dword Id, PLCI   *plci, byte Rc)
+static word dtmf_save_config(dword Id, PLCI *plci, byte Rc)
 {
-  word Info;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_restore_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_save_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
 
-  Info = GOOD;
-  if (plci->B1_facilities & B1_FACILITY_DTMFR)
-  {
-    switch (plci->adjust_b_state)
-    {
-    case ADJUST_B_RESTORE_DTMF_1:
-      plci->internal_command = plci->adjust_b_command;
-      if (plci_nl_busy (plci))
-      {
-        plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
-        break;
-      }
-      dtmf_enable_receiver (plci, plci->dtmf_rec_active);
-      plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_2;
-      break;
-    case ADJUST_B_RESTORE_DTMF_2:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Reenable DTMF receiver failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _WRONG_STATE;
-        break;
-      }
-      break;
-    }
-  }
-  return (Info);
+       return (GOOD);
 }
 
 
-static void dtmf_command (dword Id, PLCI   *plci, byte Rc)
+static word dtmf_restore_config(dword Id, PLCI *plci, byte Rc)
 {
-  word internal_command, Info;
-  byte mask;
-    byte result[4];
+       word Info;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_command %02x %04x %04x %d %d %d %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command,
-    plci->dtmf_cmd, plci->dtmf_rec_pulse_ms, plci->dtmf_rec_pause_ms,
-    plci->dtmf_send_pulse_ms, plci->dtmf_send_pause_ms));
-
-  Info = GOOD;
-  result[0] = 2;
-  PUT_WORD (&result[1], DTMF_SUCCESS);
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  mask = 0x01;
-  switch (plci->dtmf_cmd)
-  {
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_restore_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
 
-  case DTMF_LISTEN_TONE_START:
-    mask <<= 1;
-  case DTMF_LISTEN_MF_START:
-    mask <<= 1;
-
-  case DTMF_LISTEN_START:
-    switch (internal_command)
-    {
-    default:
-      adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities |
-        B1_FACILITY_DTMFR), DTMF_COMMAND_1);
-    case DTMF_COMMAND_1:
-      if (adjust_b_process (Id, plci, Rc) != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Load DTMF failed",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      if (plci->internal_command)
-        return;
-    case DTMF_COMMAND_2:
-      if (plci_nl_busy (plci))
-      {
-        plci->internal_command = DTMF_COMMAND_2;
-        return;
-      }
-      plci->internal_command = DTMF_COMMAND_3;
-      dtmf_enable_receiver (plci, (byte)(plci->dtmf_rec_active | mask));
-      return;
-    case DTMF_COMMAND_3:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Enable DTMF receiver failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-
-      plci->tone_last_indication_code = DTMF_SIGNAL_NO_TONE;
-
-      plci->dtmf_rec_active |= mask;
-      break;
-    }
-    break;
-
-
-  case DTMF_LISTEN_TONE_STOP:
-    mask <<= 1;
-  case DTMF_LISTEN_MF_STOP:
-    mask <<= 1;
-
-  case DTMF_LISTEN_STOP:
-    switch (internal_command)
-    {
-    default:
-      plci->dtmf_rec_active &= ~mask;
-      if (plci->dtmf_rec_active)
-        break;
-/*
-    case DTMF_COMMAND_1:
-      if (plci->dtmf_rec_active)
-      {
-        if (plci_nl_busy (plci))
-        {
-          plci->internal_command = DTMF_COMMAND_1;
-          return;
-        }
-        plci->dtmf_rec_active &= ~mask;
-        plci->internal_command = DTMF_COMMAND_2;
-        dtmf_enable_receiver (plci, false);
-        return;
-      }
-      Rc = OK;
-    case DTMF_COMMAND_2:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Disable DTMF receiver failed %02x",
-          UnMapId (Id), (char far *)(FILE_), __LINE__, Rc));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-*/
-      adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities &
-        ~(B1_FACILITY_DTMFX | B1_FACILITY_DTMFR)), DTMF_COMMAND_3);
-    case DTMF_COMMAND_3:
-      if (adjust_b_process (Id, plci, Rc) != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Unload DTMF failed",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      if (plci->internal_command)
-        return;
-      break;
-    }
-    break;
-
-
-  case DTMF_SEND_TONE:
-    mask <<= 1;
-  case DTMF_SEND_MF:
-    mask <<= 1;
-
-  case DTMF_DIGITS_SEND:
-    switch (internal_command)
-    {
-    default:
-      adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities |
-        ((plci->dtmf_parameter_length != 0) ? B1_FACILITY_DTMFX | B1_FACILITY_DTMFR : B1_FACILITY_DTMFX)),
-        DTMF_COMMAND_1);
-    case DTMF_COMMAND_1:
-      if (adjust_b_process (Id, plci, Rc) != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Load DTMF failed",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      if (plci->internal_command)
-        return;
-    case DTMF_COMMAND_2:
-      if (plci_nl_busy (plci))
-      {
-        plci->internal_command = DTMF_COMMAND_2;
-        return;
-      }
-      plci->dtmf_msg_number_queue[(plci->dtmf_send_requests)++] = plci->number;
-      plci->internal_command = DTMF_COMMAND_3;
-      dtmf_send_digits (plci, &plci->saved_msg.parms[3].info[1], plci->saved_msg.parms[3].length);
-      return;
-    case DTMF_COMMAND_3:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Send DTMF digits failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        if (plci->dtmf_send_requests != 0)
-          (plci->dtmf_send_requests)--;
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      return;
-    }
-    break;
-  }
-  sendf (plci->appl, _FACILITY_R | CONFIRM, Id & 0xffffL, plci->number,
-    "wws", Info, SELECTOR_DTMF, result);
+       Info = GOOD;
+       if (plci->B1_facilities & B1_FACILITY_DTMFR)
+       {
+               switch (plci->adjust_b_state)
+               {
+               case ADJUST_B_RESTORE_DTMF_1:
+                       plci->internal_command = plci->adjust_b_command;
+                       if (plci_nl_busy(plci))
+                       {
+                               plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
+                               break;
+                       }
+                       dtmf_enable_receiver(plci, plci->dtmf_rec_active);
+                       plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_2;
+                       break;
+               case ADJUST_B_RESTORE_DTMF_2:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Reenable DTMF receiver failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _WRONG_STATE;
+                               break;
+                       }
+                       break;
+               }
+       }
+       return (Info);
 }
 
 
-static byte dtmf_request (dword Id, word Number, DIVA_CAPI_ADAPTER   *a, PLCI   *plci, APPL   *appl, API_PARSE *msg)
+static void dtmf_command(dword Id, PLCI *plci, byte Rc)
 {
-  word Info;
-  word i, j;
-  byte mask;
-    API_PARSE dtmf_parms[5];
-    byte result[40];
+       word internal_command, Info;
+       byte mask;
+       byte result[4];
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_request",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_command %02x %04x %04x %d %d %d %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command,
+                       plci->dtmf_cmd, plci->dtmf_rec_pulse_ms, plci->dtmf_rec_pause_ms,
+                       plci->dtmf_send_pulse_ms, plci->dtmf_send_pause_ms));
 
-  Info = GOOD;
-  result[0] = 2;
-  PUT_WORD (&result[1], DTMF_SUCCESS);
-  if (!(a->profile.Global_Options & GL_DTMF_SUPPORTED))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Facility not supported",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    Info = _FACILITY_NOT_SUPPORTED;
-  }
-  else if (api_parse (&msg[1].info[1], msg[1].length, "w", dtmf_parms))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    Info = _WRONG_MESSAGE_FORMAT;
-  }
+       Info = GOOD;
+       result[0] = 2;
+       PUT_WORD(&result[1], DTMF_SUCCESS);
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       mask = 0x01;
+       switch (plci->dtmf_cmd)
+       {
 
-  else if ((GET_WORD (dtmf_parms[0].info) == DTMF_GET_SUPPORTED_DETECT_CODES)
-    || (GET_WORD (dtmf_parms[0].info) == DTMF_GET_SUPPORTED_SEND_CODES))
-  {
-    if (!((a->requested_options_table[appl->Id-1])
-        & (1L << PRIVATE_DTMF_TONE)))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: DTMF unknown request %04x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, GET_WORD (dtmf_parms[0].info)));
-      PUT_WORD (&result[1], DTMF_UNKNOWN_REQUEST);
-    }
-    else
-    {
-      for (i = 0; i < 32; i++)
-        result[4 + i] = 0;
-      if (GET_WORD (dtmf_parms[0].info) == DTMF_GET_SUPPORTED_DETECT_CODES)
-      {
-        for (i = 0; i < DTMF_DIGIT_MAP_ENTRIES; i++)
-        {
-          if (dtmf_digit_map[i].listen_mask != 0)
-            result[4 + (dtmf_digit_map[i].character >> 3)] |= (1 << (dtmf_digit_map[i].character & 0x7));
-        }
-      }
-      else
-      {
-        for (i = 0; i < DTMF_DIGIT_MAP_ENTRIES; i++)
-        {
-          if (dtmf_digit_map[i].send_mask != 0)
-            result[4 + (dtmf_digit_map[i].character >> 3)] |= (1 << (dtmf_digit_map[i].character & 0x7));
-        }
-      }
-      result[0] = 3 + 32;
-      result[3] = 32;
-    }
-  }
+       case DTMF_LISTEN_TONE_START:
+               mask <<= 1;
+       case DTMF_LISTEN_MF_START:
+               mask <<= 1;
 
-  else if (plci == NULL)
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Wrong PLCI",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    Info = _WRONG_IDENTIFIER;
-  }
-  else
+       case DTMF_LISTEN_START:
+               switch (internal_command)
+               {
+               default:
+                       adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities |
+                                                                 B1_FACILITY_DTMFR), DTMF_COMMAND_1);
+               case DTMF_COMMAND_1:
+                       if (adjust_b_process(Id, plci, Rc) != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Load DTMF failed",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       if (plci->internal_command)
+                               return;
+               case DTMF_COMMAND_2:
+                       if (plci_nl_busy(plci))
+                       {
+                               plci->internal_command = DTMF_COMMAND_2;
+                               return;
+                       }
+                       plci->internal_command = DTMF_COMMAND_3;
+                       dtmf_enable_receiver(plci, (byte)(plci->dtmf_rec_active | mask));
+                       return;
+               case DTMF_COMMAND_3:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Enable DTMF receiver failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+
+                       plci->tone_last_indication_code = DTMF_SIGNAL_NO_TONE;
+
+                       plci->dtmf_rec_active |= mask;
+                       break;
+               }
+               break;
+
+
+       case DTMF_LISTEN_TONE_STOP:
+               mask <<= 1;
+       case DTMF_LISTEN_MF_STOP:
+               mask <<= 1;
+
+       case DTMF_LISTEN_STOP:
+               switch (internal_command)
+               {
+               default:
+                       plci->dtmf_rec_active &= ~mask;
+                       if (plci->dtmf_rec_active)
+                               break;
+/*
+  case DTMF_COMMAND_1:
+  if (plci->dtmf_rec_active)
   {
-    if (!plci->State
-     || !plci->NL.Id || plci->nl_remove_id)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Wrong state",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-      Info = _WRONG_STATE;
-    }
-    else
-    {
-      plci->command = 0;
-      plci->dtmf_cmd = GET_WORD (dtmf_parms[0].info);
-      mask = 0x01;
-      switch (plci->dtmf_cmd)
-      {
-
-      case DTMF_LISTEN_TONE_START:
-      case DTMF_LISTEN_TONE_STOP:
-        mask <<= 1;
-      case DTMF_LISTEN_MF_START:
-      case DTMF_LISTEN_MF_STOP:
-        mask <<= 1;
-        if (!((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[appl->Id-1])
-          & (1L << PRIVATE_DTMF_TONE)))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: DTMF unknown request %04x",
-            UnMapId (Id), (char   *)(FILE_), __LINE__, GET_WORD (dtmf_parms[0].info)));
-          PUT_WORD (&result[1], DTMF_UNKNOWN_REQUEST);
-          break;
-        }
-
-      case DTMF_LISTEN_START:
-      case DTMF_LISTEN_STOP:
-        if (!(a->manufacturer_features & MANUFACTURER_FEATURE_HARDDTMF)
-         && !(a->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Facility not supported",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _FACILITY_NOT_SUPPORTED;
-          break;
-        }
-        if (mask & DTMF_LISTEN_ACTIVE_FLAG)
-        {
-          if (api_parse (&msg[1].info[1], msg[1].length, "wwws", dtmf_parms))
-          {
-            plci->dtmf_rec_pulse_ms = 0;
-            plci->dtmf_rec_pause_ms = 0;
-          }
-          else
-          {
-            plci->dtmf_rec_pulse_ms = GET_WORD (dtmf_parms[1].info);
-            plci->dtmf_rec_pause_ms = GET_WORD (dtmf_parms[2].info);
-          }
-        }
-        start_internal_command (Id, plci, dtmf_command);
-        return (false);
-
-
-      case DTMF_SEND_TONE:
-        mask <<= 1;
-      case DTMF_SEND_MF:
-        mask <<= 1;
-        if (!((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[appl->Id-1])
-          & (1L << PRIVATE_DTMF_TONE)))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: DTMF unknown request %04x",
-            UnMapId (Id), (char   *)(FILE_), __LINE__, GET_WORD (dtmf_parms[0].info)));
-          PUT_WORD (&result[1], DTMF_UNKNOWN_REQUEST);
-          break;
-        }
-
-      case DTMF_DIGITS_SEND:
-        if (api_parse (&msg[1].info[1], msg[1].length, "wwws", dtmf_parms))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_MESSAGE_FORMAT;
-          break;
-        }
-        if (mask & DTMF_LISTEN_ACTIVE_FLAG)
-        {
-          plci->dtmf_send_pulse_ms = GET_WORD (dtmf_parms[1].info);
-          plci->dtmf_send_pause_ms = GET_WORD (dtmf_parms[2].info);
-        }
-        i = 0;
-        j = 0;
-        while ((i < dtmf_parms[3].length) && (j < DTMF_DIGIT_MAP_ENTRIES))
-        {
-          j = 0;
-          while ((j < DTMF_DIGIT_MAP_ENTRIES)
-            && ((dtmf_parms[3].info[i+1] != dtmf_digit_map[j].character)
-             || ((dtmf_digit_map[j].send_mask & mask) == 0)))
-          {
-            j++;
-          }
-          i++;
-        }
-        if (j == DTMF_DIGIT_MAP_ENTRIES)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Incorrect DTMF digit %02x",
-            UnMapId (Id), (char   *)(FILE_), __LINE__, dtmf_parms[3].info[i]));
-          PUT_WORD (&result[1], DTMF_INCORRECT_DIGIT);
-          break;
-        }
-        if (plci->dtmf_send_requests >= ARRAY_SIZE(plci->dtmf_msg_number_queue))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: DTMF request overrun",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_STATE;
-          break;
-        }
-        api_save_msg (dtmf_parms, "wwws", &plci->saved_msg);
-        start_internal_command (Id, plci, dtmf_command);
-        return (false);
-
-      default:
-        dbug (1, dprintf ("[%06lx] %s,%d: DTMF unknown request %04x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, plci->dtmf_cmd));
-        PUT_WORD (&result[1], DTMF_UNKNOWN_REQUEST);
-      }
-    }
-  }
-  sendf (appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
-    "wws", Info, SELECTOR_DTMF, result);
-  return (false);
-}
-
-
-static void dtmf_confirmation (dword Id, PLCI   *plci)
-{
-  word i;
-    byte result[4];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_confirmation",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  result[0] = 2;
-  PUT_WORD (&result[1], DTMF_SUCCESS);
-  if (plci->dtmf_send_requests != 0)
+  if (plci_nl_busy (plci))
   {
-    sendf (plci->appl, _FACILITY_R | CONFIRM, Id & 0xffffL, plci->dtmf_msg_number_queue[0],
-      "wws", GOOD, SELECTOR_DTMF, result);
-    (plci->dtmf_send_requests)--;
-    for (i = 0; i < plci->dtmf_send_requests; i++)
-      plci->dtmf_msg_number_queue[i] = plci->dtmf_msg_number_queue[i+1];      
+  plci->internal_command = DTMF_COMMAND_1;
+  return;
   }
-}
-
-
-static void dtmf_indication (dword Id, PLCI   *plci, byte   *msg, word length)
-{
-  word i, j, n;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_indication",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  n = 0;
-  for (i = 1; i < length; i++)
-  {
-    j = 0;
-    while ((j < DTMF_DIGIT_MAP_ENTRIES)
-      && ((msg[i] != dtmf_digit_map[j].code)
-       || ((dtmf_digit_map[j].listen_mask & plci->dtmf_rec_active) == 0)))
-    {
-      j++;
-    }
-    if (j < DTMF_DIGIT_MAP_ENTRIES)
-    {
-
-      if ((dtmf_digit_map[j].listen_mask & DTMF_TONE_LISTEN_ACTIVE_FLAG)
-       && (plci->tone_last_indication_code == DTMF_SIGNAL_NO_TONE)
-       && (dtmf_digit_map[j].character != DTMF_SIGNAL_UNIDENTIFIED_TONE))
-      {
-        if (n + 1 == i)
-        {
-          for (i = length; i > n + 1; i--)
-            msg[i] = msg[i - 1];
-          length++;
-          i++;
-        }
-        msg[++n] = DTMF_SIGNAL_UNIDENTIFIED_TONE;
-      }
-      plci->tone_last_indication_code = dtmf_digit_map[j].character;
-
-      msg[++n] = dtmf_digit_map[j].character;
-    }
+  plci->dtmf_rec_active &= ~mask;
+  plci->internal_command = DTMF_COMMAND_2;
+  dtmf_enable_receiver (plci, false);
+  return;
   }
-  if (n != 0)
+  Rc = OK;
+  case DTMF_COMMAND_2:
+  if ((Rc != OK) && (Rc != OK_FC))
   {
-    msg[0] = (byte) n;
-    sendf (plci->appl, _FACILITY_I, Id & 0xffffL, 0, "wS", SELECTOR_DTMF, msg);
+  dbug (1, dprintf("[%06lx] %s,%d: Disable DTMF receiver failed %02x",
+  UnMapId (Id), (char far *)(FILE_), __LINE__, Rc));
+  Info = _FACILITY_NOT_SUPPORTED;
+  break;
   }
+*/
+                       adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities &
+                                                                 ~(B1_FACILITY_DTMFX | B1_FACILITY_DTMFR)), DTMF_COMMAND_3);
+               case DTMF_COMMAND_3:
+                       if (adjust_b_process(Id, plci, Rc) != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Unload DTMF failed",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       if (plci->internal_command)
+                               return;
+                       break;
+               }
+               break;
+
+
+       case DTMF_SEND_TONE:
+               mask <<= 1;
+       case DTMF_SEND_MF:
+               mask <<= 1;
+
+       case DTMF_DIGITS_SEND:
+               switch (internal_command)
+               {
+               default:
+                       adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities |
+                                                                 ((plci->dtmf_parameter_length != 0) ? B1_FACILITY_DTMFX | B1_FACILITY_DTMFR : B1_FACILITY_DTMFX)),
+                                          DTMF_COMMAND_1);
+               case DTMF_COMMAND_1:
+                       if (adjust_b_process(Id, plci, Rc) != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Load DTMF failed",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       if (plci->internal_command)
+                               return;
+               case DTMF_COMMAND_2:
+                       if (plci_nl_busy(plci))
+                       {
+                               plci->internal_command = DTMF_COMMAND_2;
+                               return;
+                       }
+                       plci->dtmf_msg_number_queue[(plci->dtmf_send_requests)++] = plci->number;
+                       plci->internal_command = DTMF_COMMAND_3;
+                       dtmf_send_digits(plci, &plci->saved_msg.parms[3].info[1], plci->saved_msg.parms[3].length);
+                       return;
+               case DTMF_COMMAND_3:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Send DTMF digits failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               if (plci->dtmf_send_requests != 0)
+                                       (plci->dtmf_send_requests)--;
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       return;
+               }
+               break;
+       }
+       sendf(plci->appl, _FACILITY_R | CONFIRM, Id & 0xffffL, plci->number,
+             "wws", Info, SELECTOR_DTMF, result);
+}
+
+
+static byte dtmf_request(dword Id, word Number, DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL   *appl, API_PARSE *msg)
+{
+       word Info;
+       word i, j;
+       byte mask;
+       API_PARSE dtmf_parms[5];
+       byte result[40];
+
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_request",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       Info = GOOD;
+       result[0] = 2;
+       PUT_WORD(&result[1], DTMF_SUCCESS);
+       if (!(a->profile.Global_Options & GL_DTMF_SUPPORTED))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Facility not supported",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               Info = _FACILITY_NOT_SUPPORTED;
+       }
+       else if (api_parse(&msg[1].info[1], msg[1].length, "w", dtmf_parms))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               Info = _WRONG_MESSAGE_FORMAT;
+       }
+
+       else if ((GET_WORD(dtmf_parms[0].info) == DTMF_GET_SUPPORTED_DETECT_CODES)
+                || (GET_WORD(dtmf_parms[0].info) == DTMF_GET_SUPPORTED_SEND_CODES))
+       {
+               if (!((a->requested_options_table[appl->Id - 1])
+                     & (1L << PRIVATE_DTMF_TONE)))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: DTMF unknown request %04x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, GET_WORD(dtmf_parms[0].info)));
+                       PUT_WORD(&result[1], DTMF_UNKNOWN_REQUEST);
+               }
+               else
+               {
+                       for (i = 0; i < 32; i++)
+                               result[4 + i] = 0;
+                       if (GET_WORD(dtmf_parms[0].info) == DTMF_GET_SUPPORTED_DETECT_CODES)
+                       {
+                               for (i = 0; i < DTMF_DIGIT_MAP_ENTRIES; i++)
+                               {
+                                       if (dtmf_digit_map[i].listen_mask != 0)
+                                               result[4 + (dtmf_digit_map[i].character >> 3)] |= (1 << (dtmf_digit_map[i].character & 0x7));
+                               }
+                       }
+                       else
+                       {
+                               for (i = 0; i < DTMF_DIGIT_MAP_ENTRIES; i++)
+                               {
+                                       if (dtmf_digit_map[i].send_mask != 0)
+                                               result[4 + (dtmf_digit_map[i].character >> 3)] |= (1 << (dtmf_digit_map[i].character & 0x7));
+                               }
+                       }
+                       result[0] = 3 + 32;
+                       result[3] = 32;
+               }
+       }
+
+       else if (plci == NULL)
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Wrong PLCI",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               Info = _WRONG_IDENTIFIER;
+       }
+       else
+       {
+               if (!plci->State
+                   || !plci->NL.Id || plci->nl_remove_id)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Wrong state",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                       Info = _WRONG_STATE;
+               }
+               else
+               {
+                       plci->command = 0;
+                       plci->dtmf_cmd = GET_WORD(dtmf_parms[0].info);
+                       mask = 0x01;
+                       switch (plci->dtmf_cmd)
+                       {
+
+                       case DTMF_LISTEN_TONE_START:
+                       case DTMF_LISTEN_TONE_STOP:
+                               mask <<= 1;
+                       case DTMF_LISTEN_MF_START:
+                       case DTMF_LISTEN_MF_STOP:
+                               mask <<= 1;
+                               if (!((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[appl->Id - 1])
+                                     & (1L << PRIVATE_DTMF_TONE)))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: DTMF unknown request %04x",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__, GET_WORD(dtmf_parms[0].info)));
+                                       PUT_WORD(&result[1], DTMF_UNKNOWN_REQUEST);
+                                       break;
+                               }
+
+                       case DTMF_LISTEN_START:
+                       case DTMF_LISTEN_STOP:
+                               if (!(a->manufacturer_features & MANUFACTURER_FEATURE_HARDDTMF)
+                                   && !(a->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Facility not supported",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _FACILITY_NOT_SUPPORTED;
+                                       break;
+                               }
+                               if (mask & DTMF_LISTEN_ACTIVE_FLAG)
+                               {
+                                       if (api_parse(&msg[1].info[1], msg[1].length, "wwws", dtmf_parms))
+                                       {
+                                               plci->dtmf_rec_pulse_ms = 0;
+                                               plci->dtmf_rec_pause_ms = 0;
+                                       }
+                                       else
+                                       {
+                                               plci->dtmf_rec_pulse_ms = GET_WORD(dtmf_parms[1].info);
+                                               plci->dtmf_rec_pause_ms = GET_WORD(dtmf_parms[2].info);
+                                       }
+                               }
+                               start_internal_command(Id, plci, dtmf_command);
+                               return (false);
+
+
+                       case DTMF_SEND_TONE:
+                               mask <<= 1;
+                       case DTMF_SEND_MF:
+                               mask <<= 1;
+                               if (!((plci->requested_options_conn | plci->requested_options | plci->adapter->requested_options_table[appl->Id - 1])
+                                     & (1L << PRIVATE_DTMF_TONE)))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: DTMF unknown request %04x",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__, GET_WORD(dtmf_parms[0].info)));
+                                       PUT_WORD(&result[1], DTMF_UNKNOWN_REQUEST);
+                                       break;
+                               }
+
+                       case DTMF_DIGITS_SEND:
+                               if (api_parse(&msg[1].info[1], msg[1].length, "wwws", dtmf_parms))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               if (mask & DTMF_LISTEN_ACTIVE_FLAG)
+                               {
+                                       plci->dtmf_send_pulse_ms = GET_WORD(dtmf_parms[1].info);
+                                       plci->dtmf_send_pause_ms = GET_WORD(dtmf_parms[2].info);
+                               }
+                               i = 0;
+                               j = 0;
+                               while ((i < dtmf_parms[3].length) && (j < DTMF_DIGIT_MAP_ENTRIES))
+                               {
+                                       j = 0;
+                                       while ((j < DTMF_DIGIT_MAP_ENTRIES)
+                                              && ((dtmf_parms[3].info[i + 1] != dtmf_digit_map[j].character)
+                                                  || ((dtmf_digit_map[j].send_mask & mask) == 0)))
+                                       {
+                                               j++;
+                                       }
+                                       i++;
+                               }
+                               if (j == DTMF_DIGIT_MAP_ENTRIES)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Incorrect DTMF digit %02x",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__, dtmf_parms[3].info[i]));
+                                       PUT_WORD(&result[1], DTMF_INCORRECT_DIGIT);
+                                       break;
+                               }
+                               if (plci->dtmf_send_requests >= ARRAY_SIZE(plci->dtmf_msg_number_queue))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: DTMF request overrun",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_STATE;
+                                       break;
+                               }
+                               api_save_msg(dtmf_parms, "wwws", &plci->saved_msg);
+                               start_internal_command(Id, plci, dtmf_command);
+                               return (false);
+
+                       default:
+                               dbug(1, dprintf("[%06lx] %s,%d: DTMF unknown request %04x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, plci->dtmf_cmd));
+                               PUT_WORD(&result[1], DTMF_UNKNOWN_REQUEST);
+                       }
+               }
+       }
+       sendf(appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
+             "wws", Info, SELECTOR_DTMF, result);
+       return (false);
+}
+
+
+static void dtmf_confirmation(dword Id, PLCI *plci)
+{
+       word i;
+       byte result[4];
+
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_confirmation",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       result[0] = 2;
+       PUT_WORD(&result[1], DTMF_SUCCESS);
+       if (plci->dtmf_send_requests != 0)
+       {
+               sendf(plci->appl, _FACILITY_R | CONFIRM, Id & 0xffffL, plci->dtmf_msg_number_queue[0],
+                     "wws", GOOD, SELECTOR_DTMF, result);
+               (plci->dtmf_send_requests)--;
+               for (i = 0; i < plci->dtmf_send_requests; i++)
+                       plci->dtmf_msg_number_queue[i] = plci->dtmf_msg_number_queue[i + 1];
+       }
+}
+
+
+static void dtmf_indication(dword Id, PLCI *plci, byte *msg, word length)
+{
+       word i, j, n;
+
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_indication",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       n = 0;
+       for (i = 1; i < length; i++)
+       {
+               j = 0;
+               while ((j < DTMF_DIGIT_MAP_ENTRIES)
+                      && ((msg[i] != dtmf_digit_map[j].code)
+                          || ((dtmf_digit_map[j].listen_mask & plci->dtmf_rec_active) == 0)))
+               {
+                       j++;
+               }
+               if (j < DTMF_DIGIT_MAP_ENTRIES)
+               {
+
+                       if ((dtmf_digit_map[j].listen_mask & DTMF_TONE_LISTEN_ACTIVE_FLAG)
+                           && (plci->tone_last_indication_code == DTMF_SIGNAL_NO_TONE)
+                           && (dtmf_digit_map[j].character != DTMF_SIGNAL_UNIDENTIFIED_TONE))
+                       {
+                               if (n + 1 == i)
+                               {
+                                       for (i = length; i > n + 1; i--)
+                                               msg[i] = msg[i - 1];
+                                       length++;
+                                       i++;
+                               }
+                               msg[++n] = DTMF_SIGNAL_UNIDENTIFIED_TONE;
+                       }
+                       plci->tone_last_indication_code = dtmf_digit_map[j].character;
+
+                       msg[++n] = dtmf_digit_map[j].character;
+               }
+       }
+       if (n != 0)
+       {
+               msg[0] = (byte) n;
+               sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0, "wS", SELECTOR_DTMF, msg);
+       }
 }
 
 
@@ -10184,90 +10184,90 @@ static void dtmf_indication (dword Id, PLCI   *plci, byte   *msg, word length)
 /* DTMF parameters                                                  */
 /*------------------------------------------------------------------*/
 
-static void dtmf_parameter_write (PLCI   *plci)
+static void dtmf_parameter_write(PLCI *plci)
 {
-  word i;
-    byte parameter_buffer[DTMF_PARAMETER_BUFFER_SIZE + 2];
+       word i;
+       byte parameter_buffer[DTMF_PARAMETER_BUFFER_SIZE + 2];
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_parameter_write",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_parameter_write",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-  parameter_buffer[0] = plci->dtmf_parameter_length + 1;
-  parameter_buffer[1] = DSP_CTRL_SET_DTMF_PARAMETERS;
-  for (i = 0; i < plci->dtmf_parameter_length; i++)
-    parameter_buffer[2+i] = plci->dtmf_parameter_buffer[i];
-  add_p (plci, FTY, parameter_buffer);
-  sig_req (plci, TEL_CTRL, 0);
-  send_req (plci);
+       parameter_buffer[0] = plci->dtmf_parameter_length + 1;
+       parameter_buffer[1] = DSP_CTRL_SET_DTMF_PARAMETERS;
+       for (i = 0; i < plci->dtmf_parameter_length; i++)
+               parameter_buffer[2 + i] = plci->dtmf_parameter_buffer[i];
+       add_p(plci, FTY, parameter_buffer);
+       sig_req(plci, TEL_CTRL, 0);
+       send_req(plci);
 }
 
 
-static void dtmf_parameter_clear_config (PLCI   *plci)
+static void dtmf_parameter_clear_config(PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_parameter_clear_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_parameter_clear_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-  plci->dtmf_parameter_length = 0;
+       plci->dtmf_parameter_length = 0;
 }
 
 
-static void dtmf_parameter_prepare_switch (dword Id, PLCI   *plci)
+static void dtmf_parameter_prepare_switch(dword Id, PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_parameter_prepare_switch",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_parameter_prepare_switch",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
 
 }
 
 
-static word dtmf_parameter_save_config (dword Id, PLCI   *plci, byte Rc)
+static word dtmf_parameter_save_config(dword Id, PLCI *plci, byte Rc)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_parameter_save_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_parameter_save_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
 
-  return (GOOD);
+       return (GOOD);
 }
 
 
-static word dtmf_parameter_restore_config (dword Id, PLCI   *plci, byte Rc)
+static word dtmf_parameter_restore_config(dword Id, PLCI *plci, byte Rc)
 {
-  word Info;
+       word Info;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: dtmf_parameter_restore_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+       dbug(1, dprintf("[%06lx] %s,%d: dtmf_parameter_restore_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
 
-  Info = GOOD;
-  if ((plci->B1_facilities & B1_FACILITY_DTMFR)
-   && (plci->dtmf_parameter_length != 0))
-  {
-    switch (plci->adjust_b_state)
-    {
-    case ADJUST_B_RESTORE_DTMF_PARAMETER_1:
-      plci->internal_command = plci->adjust_b_command;
-      if (plci->sig_req)
-      {
-        plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_PARAMETER_1;
-        break;
-      }
-      dtmf_parameter_write (plci);
-      plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_PARAMETER_2;
-      break;
-    case ADJUST_B_RESTORE_DTMF_PARAMETER_2:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Restore DTMF parameters failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _WRONG_STATE;
-        break;
-      }
-      break;
-    }
-  }
-  return (Info);
+       Info = GOOD;
+       if ((plci->B1_facilities & B1_FACILITY_DTMFR)
+           && (plci->dtmf_parameter_length != 0))
+       {
+               switch (plci->adjust_b_state)
+               {
+               case ADJUST_B_RESTORE_DTMF_PARAMETER_1:
+                       plci->internal_command = plci->adjust_b_command;
+                       if (plci->sig_req)
+                       {
+                               plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_PARAMETER_1;
+                               break;
+                       }
+                       dtmf_parameter_write(plci);
+                       plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_PARAMETER_2;
+                       break;
+               case ADJUST_B_RESTORE_DTMF_PARAMETER_2:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Restore DTMF parameters failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _WRONG_STATE;
+                               break;
+                       }
+                       break;
+               }
+       }
+       return (Info);
 }
 
 
@@ -10290,3059 +10290,3059 @@ word li_total_channels;
 /* if channels is provided we accept more than one channel.         */
 /*------------------------------------------------------------------*/
 
-static byte chi_to_channel (byte   *chi, dword *pchannelmap)
-{
-  int p;
-  int i;
-  dword map;
-  byte excl;
-  byte ofs;
-  byte ch;
-
-  if (pchannelmap) *pchannelmap = 0;
-  if(!chi[0]) return 0xff;
-  excl = 0;
-
-  if(chi[1] & 0x20) {
-    if(chi[0]==1 && chi[1]==0xac) return 0xfd; /* exclusive d-channel */
-    for(i=1; i<chi[0] && !(chi[i] &0x80); i++);
-    if(i==chi[0] || !(chi[i] &0x80)) return 0xfe;
-    if((chi[1] |0xc8)!=0xe9) return 0xfe;
-    if(chi[1] &0x08) excl = 0x40;
-
-        /* int. id present */
-    if(chi[1] &0x40) {
-      p=i+1;
-      for(i=p; i<chi[0] && !(chi[i] &0x80); i++);
-      if(i==chi[0] || !(chi[i] &0x80)) return 0xfe;
-    }
-
-        /* coding standard, Number/Map, Channel Type */
-    p=i+1;
-    for(i=p; i<chi[0] && !(chi[i] &0x80); i++);
-    if(i==chi[0] || !(chi[i] &0x80)) return 0xfe;
-    if((chi[p]|0xd0)!=0xd3) return 0xfe;
-
-        /* Number/Map */
-    if(chi[p] &0x10) {
-
-        /* map */
-      if((chi[0]-p)==4) ofs = 0;
-      else if((chi[0]-p)==3) ofs = 1;
-      else return 0xfe;
-      ch = 0;
-      map = 0;
-      for(i=0; i<4 && p<chi[0]; i++) {
-        p++;
-        ch += 8;
-        map <<= 8;
-        if(chi[p]) {
-          for (ch=0; !(chi[p] & (1 << ch)); ch++);
-          map |= chi[p];
-        }
-      }
-      ch += ofs;
-      map <<= ofs;
-    }
-    else {
-
-        /* number */
-      p=i+1;
-      ch = chi[p] &0x3f;
-      if(pchannelmap) {
-        if((byte)(chi[0]-p)>30) return 0xfe;
-        map = 0;
-        for(i=p; i<=chi[0]; i++) {
-          if ((chi[i] &0x7f) > 31) return 0xfe;
-          map |= (1L << (chi[i] &0x7f));
-        }
-      }
-      else {
-        if(p!=chi[0]) return 0xfe;
-        if (ch > 31) return 0xfe;
-        map = (1L << ch);
-      }
-      if(chi[p] &0x40) return 0xfe;
-    }
-    if (pchannelmap) *pchannelmap = map;
-    else if (map != ((dword)(1L << ch))) return 0xfe;
-    return (byte)(excl | ch);
-  }
-  else {  /* not PRI */
-    for(i=1; i<chi[0] && !(chi[i] &0x80); i++);
-    if(i!=chi[0] || !(chi[i] &0x80)) return 0xfe;
-    if(chi[1] &0x08) excl = 0x40;
-
-    switch(chi[1] |0x98) {
-    case 0x98: return 0;
-    case 0x99:
-      if (pchannelmap) *pchannelmap = 2;
-      return excl |1;
-    case 0x9a:
-      if (pchannelmap) *pchannelmap = 4;
-      return excl |2;
-    case 0x9b: return 0xff;
-    case 0x9c: return 0xfd; /* d-ch */
-    default: return 0xfe;
-    }
-  }
+static byte chi_to_channel(byte *chi, dword *pchannelmap)
+{
+       int p;
+       int i;
+       dword map;
+       byte excl;
+       byte ofs;
+       byte ch;
+
+       if (pchannelmap) *pchannelmap = 0;
+       if (!chi[0]) return 0xff;
+       excl = 0;
+
+       if (chi[1] & 0x20) {
+               if (chi[0] == 1 && chi[1] == 0xac) return 0xfd; /* exclusive d-channel */
+               for (i = 1; i < chi[0] && !(chi[i] & 0x80); i++);
+               if (i == chi[0] || !(chi[i] & 0x80)) return 0xfe;
+               if ((chi[1] | 0xc8) != 0xe9) return 0xfe;
+               if (chi[1] & 0x08) excl = 0x40;
+
+               /* int. id present */
+               if (chi[1] & 0x40) {
+                       p = i + 1;
+                       for (i = p; i < chi[0] && !(chi[i] & 0x80); i++);
+                       if (i == chi[0] || !(chi[i] & 0x80)) return 0xfe;
+               }
+
+               /* coding standard, Number/Map, Channel Type */
+               p = i + 1;
+               for (i = p; i < chi[0] && !(chi[i] & 0x80); i++);
+               if (i == chi[0] || !(chi[i] & 0x80)) return 0xfe;
+               if ((chi[p] | 0xd0) != 0xd3) return 0xfe;
+
+               /* Number/Map */
+               if (chi[p] & 0x10) {
+
+                       /* map */
+                       if ((chi[0] - p) == 4) ofs = 0;
+                       else if ((chi[0] - p) == 3) ofs = 1;
+                       else return 0xfe;
+                       ch = 0;
+                       map = 0;
+                       for (i = 0; i < 4 && p < chi[0]; i++) {
+                               p++;
+                               ch += 8;
+                               map <<= 8;
+                               if (chi[p]) {
+                                       for (ch = 0; !(chi[p] & (1 << ch)); ch++);
+                                       map |= chi[p];
+                               }
+                       }
+                       ch += ofs;
+                       map <<= ofs;
+               }
+               else {
+
+                       /* number */
+                       p = i + 1;
+                       ch = chi[p] & 0x3f;
+                       if (pchannelmap) {
+                               if ((byte)(chi[0] - p) > 30) return 0xfe;
+                               map = 0;
+                               for (i = p; i <= chi[0]; i++) {
+                                       if ((chi[i] & 0x7f) > 31) return 0xfe;
+                                       map |= (1L << (chi[i] & 0x7f));
+                               }
+                       }
+                       else {
+                               if (p != chi[0]) return 0xfe;
+                               if (ch > 31) return 0xfe;
+                               map = (1L << ch);
+                       }
+                       if (chi[p] & 0x40) return 0xfe;
+               }
+               if (pchannelmap) *pchannelmap = map;
+               else if (map != ((dword)(1L << ch))) return 0xfe;
+               return (byte)(excl | ch);
+       }
+       else {  /* not PRI */
+               for (i = 1; i < chi[0] && !(chi[i] & 0x80); i++);
+               if (i != chi[0] || !(chi[i] & 0x80)) return 0xfe;
+               if (chi[1] & 0x08) excl = 0x40;
+
+               switch (chi[1] | 0x98) {
+               case 0x98: return 0;
+               case 0x99:
+                       if (pchannelmap) *pchannelmap = 2;
+                       return excl | 1;
+               case 0x9a:
+                       if (pchannelmap) *pchannelmap = 4;
+                       return excl | 2;
+               case 0x9b: return 0xff;
+               case 0x9c: return 0xfd; /* d-ch */
+               default: return 0xfe;
+               }
+       }
+}
+
+
+static void mixer_set_bchannel_id_esc(PLCI *plci, byte bchannel_id)
+{
+       DIVA_CAPI_ADAPTER *a;
+       PLCI *splci;
+       byte old_id;
+
+       a = plci->adapter;
+       old_id = plci->li_bchannel_id;
+       if (a->li_pri)
+       {
+               if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
+                       li_config_table[a->li_base + (old_id - 1)].plci = NULL;
+               plci->li_bchannel_id = (bchannel_id & 0x1f) + 1;
+               if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
+                       li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
+       }
+       else
+       {
+               if (((bchannel_id & 0x03) == 1) || ((bchannel_id & 0x03) == 2))
+               {
+                       if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
+                               li_config_table[a->li_base + (old_id - 1)].plci = NULL;
+                       plci->li_bchannel_id = bchannel_id & 0x03;
+                       if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI != plci) && (a->AdvSignalPLCI->tel == ADV_VOICE))
+                       {
+                               splci = a->AdvSignalPLCI;
+                               if (li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci == NULL)
+                               {
+                                       if ((splci->li_bchannel_id != 0)
+                                           && (li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci == splci))
+                                       {
+                                               li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci = NULL;
+                                       }
+                                       splci->li_bchannel_id = 3 - plci->li_bchannel_id;
+                                       li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci = splci;
+                                       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_set_bchannel_id_esc %d",
+                                                       (dword)((splci->Id << 8) | UnMapController(splci->adapter->Id)),
+                                                       (char *)(FILE_), __LINE__, splci->li_bchannel_id));
+                               }
+                       }
+                       if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
+                               li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
+               }
+       }
+       if ((old_id == 0) && (plci->li_bchannel_id != 0)
+           && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               mixer_clear_config(plci);
+       }
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_set_bchannel_id_esc %d %d",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, bchannel_id, plci->li_bchannel_id));
+}
+
+
+static void mixer_set_bchannel_id(PLCI *plci, byte *chi)
+{
+       DIVA_CAPI_ADAPTER *a;
+       PLCI *splci;
+       byte ch, old_id;
+
+       a = plci->adapter;
+       old_id = plci->li_bchannel_id;
+       ch = chi_to_channel(chi, NULL);
+       if (!(ch & 0x80))
+       {
+               if (a->li_pri)
+               {
+                       if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
+                               li_config_table[a->li_base + (old_id - 1)].plci = NULL;
+                       plci->li_bchannel_id = (ch & 0x1f) + 1;
+                       if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
+                               li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
+               }
+               else
+               {
+                       if (((ch & 0x1f) == 1) || ((ch & 0x1f) == 2))
+                       {
+                               if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
+                                       li_config_table[a->li_base + (old_id - 1)].plci = NULL;
+                               plci->li_bchannel_id = ch & 0x1f;
+                               if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI != plci) && (a->AdvSignalPLCI->tel == ADV_VOICE))
+                               {
+                                       splci = a->AdvSignalPLCI;
+                                       if (li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci == NULL)
+                                       {
+                                               if ((splci->li_bchannel_id != 0)
+                                                   && (li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci == splci))
+                                               {
+                                                       li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci = NULL;
+                                               }
+                                               splci->li_bchannel_id = 3 - plci->li_bchannel_id;
+                                               li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci = splci;
+                                               dbug(1, dprintf("[%06lx] %s,%d: adv_voice_set_bchannel_id %d",
+                                                               (dword)((splci->Id << 8) | UnMapController(splci->adapter->Id)),
+                                                               (char *)(FILE_), __LINE__, splci->li_bchannel_id));
+                                       }
+                               }
+                               if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
+                                       li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
+                       }
+               }
+       }
+       if ((old_id == 0) && (plci->li_bchannel_id != 0)
+           && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               mixer_clear_config(plci);
+       }
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_set_bchannel_id %02x %d",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, ch, plci->li_bchannel_id));
 }
 
 
-static void mixer_set_bchannel_id_esc (PLCI   *plci, byte bchannel_id)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  PLCI   *splci;
-  byte old_id;
+#define MIXER_MAX_DUMP_CHANNELS 34
 
-  a = plci->adapter;
-  old_id = plci->li_bchannel_id;
-  if (a->li_pri)
-  {
-    if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
-      li_config_table[a->li_base + (old_id - 1)].plci = NULL;
-    plci->li_bchannel_id = (bchannel_id & 0x1f) + 1;
-    if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
-      li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
-  }
-  else
-  {
-    if (((bchannel_id & 0x03) == 1) || ((bchannel_id & 0x03) == 2))
-    {
-      if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
-        li_config_table[a->li_base + (old_id - 1)].plci = NULL;
-      plci->li_bchannel_id = bchannel_id & 0x03;
-      if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI != plci) && (a->AdvSignalPLCI->tel == ADV_VOICE))
-      {
-        splci = a->AdvSignalPLCI;
-        if (li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci == NULL)
-        {
-          if ((splci->li_bchannel_id != 0)
-           && (li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci == splci))
-          {
-            li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci = NULL;
-          }
-          splci->li_bchannel_id = 3 - plci->li_bchannel_id;
-          li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci = splci;
-          dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_set_bchannel_id_esc %d",
-            (dword)((splci->Id << 8) | UnMapController (splci->adapter->Id)),
-            (char   *)(FILE_), __LINE__, splci->li_bchannel_id));
-        }
-      }
-      if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
-        li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
-    }
-  }
-  if ((old_id == 0) && (plci->li_bchannel_id != 0)
-   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    mixer_clear_config (plci);
-  }
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_set_bchannel_id_esc %d %d",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, bchannel_id, plci->li_bchannel_id));
+static void mixer_calculate_coefs(DIVA_CAPI_ADAPTER *a)
+{
+       static char hex_digit_table[0x10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+       word n, i, j;
+       char *p;
+       char hex_line[2 * MIXER_MAX_DUMP_CHANNELS + MIXER_MAX_DUMP_CHANNELS / 8 + 4];
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_calculate_coefs",
+                       (dword)(UnMapController(a->Id)), (char *)(FILE_), __LINE__));
+
+       for (i = 0; i < li_total_channels; i++)
+       {
+               li_config_table[i].channel &= LI_CHANNEL_ADDRESSES_SET;
+               if (li_config_table[i].chflags != 0)
+                       li_config_table[i].channel |= LI_CHANNEL_INVOLVED;
+               else
+               {
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               if (((li_config_table[i].flag_table[j]) != 0)
+                                   || ((li_config_table[j].flag_table[i]) != 0))
+                               {
+                                       li_config_table[i].channel |= LI_CHANNEL_INVOLVED;
+                               }
+                               if (((li_config_table[i].flag_table[j] & LI_FLAG_CONFERENCE) != 0)
+                                   || ((li_config_table[j].flag_table[i] & LI_FLAG_CONFERENCE) != 0))
+                               {
+                                       li_config_table[i].channel |= LI_CHANNEL_CONFERENCE;
+                               }
+                       }
+               }
+       }
+       for (i = 0; i < li_total_channels; i++)
+       {
+               for (j = 0; j < li_total_channels; j++)
+               {
+                       li_config_table[i].coef_table[j] &= ~(LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC);
+                       if (li_config_table[i].flag_table[j] & LI_FLAG_CONFERENCE)
+                               li_config_table[i].coef_table[j] |= LI_COEF_CH_CH;
+               }
+       }
+       for (n = 0; n < li_total_channels; n++)
+       {
+               if (li_config_table[n].channel & LI_CHANNEL_CONFERENCE)
+               {
+                       for (i = 0; i < li_total_channels; i++)
+                       {
+                               if (li_config_table[i].channel & LI_CHANNEL_CONFERENCE)
+                               {
+                                       for (j = 0; j < li_total_channels; j++)
+                                       {
+                                               li_config_table[i].coef_table[j] |=
+                                                       li_config_table[i].coef_table[n] & li_config_table[n].coef_table[j];
+                                       }
+                               }
+                       }
+               }
+       }
+       for (i = 0; i < li_total_channels; i++)
+       {
+               if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
+               {
+                       li_config_table[i].coef_table[i] &= ~LI_COEF_CH_CH;
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               if (li_config_table[i].coef_table[j] & LI_COEF_CH_CH)
+                                       li_config_table[i].flag_table[j] |= LI_FLAG_CONFERENCE;
+                       }
+                       if (li_config_table[i].flag_table[i] & LI_FLAG_CONFERENCE)
+                               li_config_table[i].coef_table[i] |= LI_COEF_CH_CH;
+               }
+       }
+       for (i = 0; i < li_total_channels; i++)
+       {
+               if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
+               {
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               if (li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
+                                       li_config_table[i].coef_table[j] |= LI_COEF_CH_CH;
+                               if (li_config_table[i].flag_table[j] & LI_FLAG_MONITOR)
+                                       li_config_table[i].coef_table[j] |= LI_COEF_CH_PC;
+                               if (li_config_table[i].flag_table[j] & LI_FLAG_MIX)
+                                       li_config_table[i].coef_table[j] |= LI_COEF_PC_CH;
+                               if (li_config_table[i].flag_table[j] & LI_FLAG_PCCONNECT)
+                                       li_config_table[i].coef_table[j] |= LI_COEF_PC_PC;
+                       }
+                       if (li_config_table[i].chflags & LI_CHFLAG_MONITOR)
+                       {
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       if (li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
+                                       {
+                                               li_config_table[i].coef_table[j] |= LI_COEF_CH_PC;
+                                               if (li_config_table[j].chflags & LI_CHFLAG_MIX)
+                                                       li_config_table[i].coef_table[j] |= LI_COEF_PC_CH | LI_COEF_PC_PC;
+                                       }
+                               }
+                       }
+                       if (li_config_table[i].chflags & LI_CHFLAG_MIX)
+                       {
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       if (li_config_table[j].flag_table[i] & LI_FLAG_INTERCONNECT)
+                                               li_config_table[j].coef_table[i] |= LI_COEF_PC_CH;
+                               }
+                       }
+                       if (li_config_table[i].chflags & LI_CHFLAG_LOOP)
+                       {
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       if (li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
+                                       {
+                                               for (n = 0; n < li_total_channels; n++)
+                                               {
+                                                       if (li_config_table[n].flag_table[i] & LI_FLAG_INTERCONNECT)
+                                                       {
+                                                               li_config_table[n].coef_table[j] |= LI_COEF_CH_CH;
+                                                               if (li_config_table[j].chflags & LI_CHFLAG_MIX)
+                                                               {
+                                                                       li_config_table[n].coef_table[j] |= LI_COEF_PC_CH;
+                                                                       if (li_config_table[n].chflags & LI_CHFLAG_MONITOR)
+                                                                               li_config_table[n].coef_table[j] |= LI_COEF_CH_PC | LI_COEF_PC_PC;
+                                                               }
+                                                               else if (li_config_table[n].chflags & LI_CHFLAG_MONITOR)
+                                                                       li_config_table[n].coef_table[j] |= LI_COEF_CH_PC;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+       for (i = 0; i < li_total_channels; i++)
+       {
+               if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
+               {
+                       if (li_config_table[i].chflags & (LI_CHFLAG_MONITOR | LI_CHFLAG_MIX | LI_CHFLAG_LOOP))
+                               li_config_table[i].channel |= LI_CHANNEL_ACTIVE;
+                       if (li_config_table[i].chflags & LI_CHFLAG_MONITOR)
+                               li_config_table[i].channel |= LI_CHANNEL_RX_DATA;
+                       if (li_config_table[i].chflags & LI_CHFLAG_MIX)
+                               li_config_table[i].channel |= LI_CHANNEL_TX_DATA;
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               if ((li_config_table[i].flag_table[j] &
+                                    (LI_FLAG_INTERCONNECT | LI_FLAG_PCCONNECT | LI_FLAG_CONFERENCE | LI_FLAG_MONITOR))
+                                   || (li_config_table[j].flag_table[i] &
+                                       (LI_FLAG_INTERCONNECT | LI_FLAG_PCCONNECT | LI_FLAG_CONFERENCE | LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX)))
+                               {
+                                       li_config_table[i].channel |= LI_CHANNEL_ACTIVE;
+                               }
+                               if (li_config_table[i].flag_table[j] & (LI_FLAG_PCCONNECT | LI_FLAG_MONITOR))
+                                       li_config_table[i].channel |= LI_CHANNEL_RX_DATA;
+                               if (li_config_table[j].flag_table[i] & (LI_FLAG_PCCONNECT | LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX))
+                                       li_config_table[i].channel |= LI_CHANNEL_TX_DATA;
+                       }
+                       if (!(li_config_table[i].channel & LI_CHANNEL_ACTIVE))
+                       {
+                               li_config_table[i].coef_table[i] |= LI_COEF_PC_CH | LI_COEF_CH_PC;
+                               li_config_table[i].channel |= LI_CHANNEL_TX_DATA | LI_CHANNEL_RX_DATA;
+                       }
+               }
+       }
+       for (i = 0; i < li_total_channels; i++)
+       {
+               if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
+               {
+                       j = 0;
+                       while ((j < li_total_channels) && !(li_config_table[i].flag_table[j] & LI_FLAG_ANNOUNCEMENT))
+                               j++;
+                       if (j < li_total_channels)
+                       {
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       li_config_table[i].coef_table[j] &= ~(LI_COEF_CH_CH | LI_COEF_PC_CH);
+                                       if (li_config_table[i].flag_table[j] & LI_FLAG_ANNOUNCEMENT)
+                                               li_config_table[i].coef_table[j] |= LI_COEF_PC_CH;
+                               }
+                       }
+               }
+       }
+       n = li_total_channels;
+       if (n > MIXER_MAX_DUMP_CHANNELS)
+               n = MIXER_MAX_DUMP_CHANNELS;
+       p = hex_line;
+       for (j = 0; j < n; j++)
+       {
+               if ((j & 0x7) == 0)
+                       *(p++) = ' ';
+               *(p++) = hex_digit_table[li_config_table[j].curchnl >> 4];
+               *(p++) = hex_digit_table[li_config_table[j].curchnl & 0xf];
+       }
+       *p = '\0';
+       dbug(1, dprintf("[%06lx] CURRENT %s",
+                       (dword)(UnMapController(a->Id)), (char *)hex_line));
+       p = hex_line;
+       for (j = 0; j < n; j++)
+       {
+               if ((j & 0x7) == 0)
+                       *(p++) = ' ';
+               *(p++) = hex_digit_table[li_config_table[j].channel >> 4];
+               *(p++) = hex_digit_table[li_config_table[j].channel & 0xf];
+       }
+       *p = '\0';
+       dbug(1, dprintf("[%06lx] CHANNEL %s",
+                       (dword)(UnMapController(a->Id)), (char *)hex_line));
+       p = hex_line;
+       for (j = 0; j < n; j++)
+       {
+               if ((j & 0x7) == 0)
+                       *(p++) = ' ';
+               *(p++) = hex_digit_table[li_config_table[j].chflags >> 4];
+               *(p++) = hex_digit_table[li_config_table[j].chflags & 0xf];
+       }
+       *p = '\0';
+       dbug(1, dprintf("[%06lx] CHFLAG  %s",
+                       (dword)(UnMapController(a->Id)), (char *)hex_line));
+       for (i = 0; i < n; i++)
+       {
+               p = hex_line;
+               for (j = 0; j < n; j++)
+               {
+                       if ((j & 0x7) == 0)
+                               *(p++) = ' ';
+                       *(p++) = hex_digit_table[li_config_table[i].flag_table[j] >> 4];
+                       *(p++) = hex_digit_table[li_config_table[i].flag_table[j] & 0xf];
+               }
+               *p = '\0';
+               dbug(1, dprintf("[%06lx] FLAG[%02x]%s",
+                               (dword)(UnMapController(a->Id)), i, (char *)hex_line));
+       }
+       for (i = 0; i < n; i++)
+       {
+               p = hex_line;
+               for (j = 0; j < n; j++)
+               {
+                       if ((j & 0x7) == 0)
+                               *(p++) = ' ';
+                       *(p++) = hex_digit_table[li_config_table[i].coef_table[j] >> 4];
+                       *(p++) = hex_digit_table[li_config_table[i].coef_table[j] & 0xf];
+               }
+               *p = '\0';
+               dbug(1, dprintf("[%06lx] COEF[%02x]%s",
+                               (dword)(UnMapController(a->Id)), i, (char *)hex_line));
+       }
 }
 
 
-static void mixer_set_bchannel_id (PLCI   *plci, byte   *chi)
+static struct
 {
-  DIVA_CAPI_ADAPTER   *a;
-  PLCI   *splci;
-  byte ch, old_id;
-
-  a = plci->adapter;
-  old_id = plci->li_bchannel_id;
-  ch = chi_to_channel (chi, NULL);
-  if (!(ch & 0x80))
-  {
-    if (a->li_pri)
-    {
-      if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
-        li_config_table[a->li_base + (old_id - 1)].plci = NULL;
-      plci->li_bchannel_id = (ch & 0x1f) + 1;
-      if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
-        li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
-    }
-    else
-    {
-      if (((ch & 0x1f) == 1) || ((ch & 0x1f) == 2))
-      {
-        if ((old_id != 0) && (li_config_table[a->li_base + (old_id - 1)].plci == plci))
-          li_config_table[a->li_base + (old_id - 1)].plci = NULL;
-        plci->li_bchannel_id = ch & 0x1f;
-        if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI != plci) && (a->AdvSignalPLCI->tel == ADV_VOICE))
-        {
-          splci = a->AdvSignalPLCI;
-          if (li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci == NULL)
-          {
-            if ((splci->li_bchannel_id != 0)
-             && (li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci == splci))
-            {
-              li_config_table[a->li_base + (splci->li_bchannel_id - 1)].plci = NULL;
-            }
-            splci->li_bchannel_id = 3 - plci->li_bchannel_id;
-            li_config_table[a->li_base + (2 - plci->li_bchannel_id)].plci = splci;
-            dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_set_bchannel_id %d",
-              (dword)((splci->Id << 8) | UnMapController (splci->adapter->Id)),
-              (char   *)(FILE_), __LINE__, splci->li_bchannel_id));
-          }
-        }
-        if (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == NULL)
-          li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci = plci;
-      }
-    }
-  }
-  if ((old_id == 0) && (plci->li_bchannel_id != 0)
-   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    mixer_clear_config (plci);
-  }
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_set_bchannel_id %02x %d",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, ch, plci->li_bchannel_id));
-}
-
+       byte mask;
+       byte line_flags;
+} mixer_write_prog_pri[] =
+{
+       { LI_COEF_CH_CH, 0 },
+       { LI_COEF_CH_PC, MIXER_COEF_LINE_TO_PC_FLAG },
+       { LI_COEF_PC_CH, MIXER_COEF_LINE_FROM_PC_FLAG },
+       { LI_COEF_PC_PC, MIXER_COEF_LINE_TO_PC_FLAG | MIXER_COEF_LINE_FROM_PC_FLAG }
+};
 
-#define MIXER_MAX_DUMP_CHANNELS 34
+static struct
+{
+       byte from_ch;
+       byte to_ch;
+       byte mask;
+       byte xconnect_override;
+} mixer_write_prog_bri[] =
+{
+       { 0, 0, LI_COEF_CH_CH, 0x01 },  /* B      to B      */
+       { 1, 0, LI_COEF_CH_CH, 0x01 },  /* Alt B  to B      */
+       { 0, 0, LI_COEF_PC_CH, 0x80 },  /* PC     to B      */
+       { 1, 0, LI_COEF_PC_CH, 0x01 },  /* Alt PC to B      */
+       { 2, 0, LI_COEF_CH_CH, 0x00 },  /* IC     to B      */
+       { 3, 0, LI_COEF_CH_CH, 0x00 },  /* Alt IC to B      */
+       { 0, 0, LI_COEF_CH_PC, 0x80 },  /* B      to PC     */
+       { 1, 0, LI_COEF_CH_PC, 0x01 },  /* Alt B  to PC     */
+       { 0, 0, LI_COEF_PC_PC, 0x01 },  /* PC     to PC     */
+       { 1, 0, LI_COEF_PC_PC, 0x01 },  /* Alt PC to PC     */
+       { 2, 0, LI_COEF_CH_PC, 0x00 },  /* IC     to PC     */
+       { 3, 0, LI_COEF_CH_PC, 0x00 },  /* Alt IC to PC     */
+       { 0, 2, LI_COEF_CH_CH, 0x00 },  /* B      to IC     */
+       { 1, 2, LI_COEF_CH_CH, 0x00 },  /* Alt B  to IC     */
+       { 0, 2, LI_COEF_PC_CH, 0x00 },  /* PC     to IC     */
+       { 1, 2, LI_COEF_PC_CH, 0x00 },  /* Alt PC to IC     */
+       { 2, 2, LI_COEF_CH_CH, 0x00 },  /* IC     to IC     */
+       { 3, 2, LI_COEF_CH_CH, 0x00 },  /* Alt IC to IC     */
+       { 1, 1, LI_COEF_CH_CH, 0x01 },  /* Alt B  to Alt B  */
+       { 0, 1, LI_COEF_CH_CH, 0x01 },  /* B      to Alt B  */
+       { 1, 1, LI_COEF_PC_CH, 0x80 },  /* Alt PC to Alt B  */
+       { 0, 1, LI_COEF_PC_CH, 0x01 },  /* PC     to Alt B  */
+       { 3, 1, LI_COEF_CH_CH, 0x00 },  /* Alt IC to Alt B  */
+       { 2, 1, LI_COEF_CH_CH, 0x00 },  /* IC     to Alt B  */
+       { 1, 1, LI_COEF_CH_PC, 0x80 },  /* Alt B  to Alt PC */
+       { 0, 1, LI_COEF_CH_PC, 0x01 },  /* B      to Alt PC */
+       { 1, 1, LI_COEF_PC_PC, 0x01 },  /* Alt PC to Alt PC */
+       { 0, 1, LI_COEF_PC_PC, 0x01 },  /* PC     to Alt PC */
+       { 3, 1, LI_COEF_CH_PC, 0x00 },  /* Alt IC to Alt PC */
+       { 2, 1, LI_COEF_CH_PC, 0x00 },  /* IC     to Alt PC */
+       { 1, 3, LI_COEF_CH_CH, 0x00 },  /* Alt B  to Alt IC */
+       { 0, 3, LI_COEF_CH_CH, 0x00 },  /* B      to Alt IC */
+       { 1, 3, LI_COEF_PC_CH, 0x00 },  /* Alt PC to Alt IC */
+       { 0, 3, LI_COEF_PC_CH, 0x00 },  /* PC     to Alt IC */
+       { 3, 3, LI_COEF_CH_CH, 0x00 },  /* Alt IC to Alt IC */
+       { 2, 3, LI_COEF_CH_CH, 0x00 }   /* IC     to Alt IC */
+};
 
-static void mixer_calculate_coefs (DIVA_CAPI_ADAPTER   *a)
+static byte mixer_swapped_index_bri[] =
 {
-static char hex_digit_table[0x10] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
-  word n, i, j;
-  char *p;
-    char hex_line[2 * MIXER_MAX_DUMP_CHANNELS + MIXER_MAX_DUMP_CHANNELS / 8 + 4];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_calculate_coefs",
-    (dword)(UnMapController (a->Id)), (char   *)(FILE_), __LINE__));
-
-  for (i = 0; i < li_total_channels; i++)
-  {
-    li_config_table[i].channel &= LI_CHANNEL_ADDRESSES_SET;
-    if (li_config_table[i].chflags != 0)
-      li_config_table[i].channel |= LI_CHANNEL_INVOLVED;
-    else
-    {
-      for (j = 0; j < li_total_channels; j++)
-      {
-        if (((li_config_table[i].flag_table[j]) != 0)
-         || ((li_config_table[j].flag_table[i]) != 0))
-        {
-          li_config_table[i].channel |= LI_CHANNEL_INVOLVED;
-        }
-        if (((li_config_table[i].flag_table[j] & LI_FLAG_CONFERENCE) != 0)
-         || ((li_config_table[j].flag_table[i] & LI_FLAG_CONFERENCE) != 0))
-        {
-          li_config_table[i].channel |= LI_CHANNEL_CONFERENCE;
-        }
-      }
-    }
-  }
-  for (i = 0; i < li_total_channels; i++)
-  {
-    for (j = 0; j < li_total_channels; j++)
-    {
-      li_config_table[i].coef_table[j] &= ~(LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC);
-      if (li_config_table[i].flag_table[j] & LI_FLAG_CONFERENCE)
-        li_config_table[i].coef_table[j] |= LI_COEF_CH_CH;
-    }
-  }
-  for (n = 0; n < li_total_channels; n++)
-  {
-    if (li_config_table[n].channel & LI_CHANNEL_CONFERENCE)
-    {
-      for (i = 0; i < li_total_channels; i++)
-      {
-        if (li_config_table[i].channel & LI_CHANNEL_CONFERENCE)
-        {
-          for (j = 0; j < li_total_channels; j++)
-          {
-            li_config_table[i].coef_table[j] |=
-              li_config_table[i].coef_table[n] & li_config_table[n].coef_table[j];
-          }
-        }
-      }
-    }
-  }
-  for (i = 0; i < li_total_channels; i++)
-  {
-    if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
-    {
-      li_config_table[i].coef_table[i] &= ~LI_COEF_CH_CH;
-      for (j = 0; j < li_total_channels; j++)
-      {
-        if (li_config_table[i].coef_table[j] & LI_COEF_CH_CH)
-          li_config_table[i].flag_table[j] |= LI_FLAG_CONFERENCE;
-      }
-      if (li_config_table[i].flag_table[i] & LI_FLAG_CONFERENCE)
-        li_config_table[i].coef_table[i] |= LI_COEF_CH_CH;
-    }
-  }
-  for (i = 0; i < li_total_channels; i++)
-  {
-    if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
-    {
-      for (j = 0; j < li_total_channels; j++)
-      {
-        if (li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
-          li_config_table[i].coef_table[j] |= LI_COEF_CH_CH;
-        if (li_config_table[i].flag_table[j] & LI_FLAG_MONITOR)
-          li_config_table[i].coef_table[j] |= LI_COEF_CH_PC;
-        if (li_config_table[i].flag_table[j] & LI_FLAG_MIX)
-          li_config_table[i].coef_table[j] |= LI_COEF_PC_CH;
-        if (li_config_table[i].flag_table[j] & LI_FLAG_PCCONNECT)
-          li_config_table[i].coef_table[j] |= LI_COEF_PC_PC;
-      }
-      if (li_config_table[i].chflags & LI_CHFLAG_MONITOR)
-      {
-        for (j = 0; j < li_total_channels; j++)
-        {
-          if (li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
-          {
-            li_config_table[i].coef_table[j] |= LI_COEF_CH_PC;
-            if (li_config_table[j].chflags & LI_CHFLAG_MIX)
-              li_config_table[i].coef_table[j] |= LI_COEF_PC_CH | LI_COEF_PC_PC;
-          }
-        }
-      }
-      if (li_config_table[i].chflags & LI_CHFLAG_MIX)
-      {
-        for (j = 0; j < li_total_channels; j++)
-        {
-          if (li_config_table[j].flag_table[i] & LI_FLAG_INTERCONNECT)
-            li_config_table[j].coef_table[i] |= LI_COEF_PC_CH;
-        }
-      }
-      if (li_config_table[i].chflags & LI_CHFLAG_LOOP)
-      {
-        for (j = 0; j < li_total_channels; j++)
-        {
-          if (li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
-          {
-            for (n = 0; n < li_total_channels; n++)
-            {
-              if (li_config_table[n].flag_table[i] & LI_FLAG_INTERCONNECT)
-              {
-                li_config_table[n].coef_table[j] |= LI_COEF_CH_CH;
-                if (li_config_table[j].chflags & LI_CHFLAG_MIX)
-                {
-                  li_config_table[n].coef_table[j] |= LI_COEF_PC_CH;
-                  if (li_config_table[n].chflags & LI_CHFLAG_MONITOR)
-                    li_config_table[n].coef_table[j] |= LI_COEF_CH_PC | LI_COEF_PC_PC;
-                }
-                else if (li_config_table[n].chflags & LI_CHFLAG_MONITOR)
-                  li_config_table[n].coef_table[j] |= LI_COEF_CH_PC;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-  for (i = 0; i < li_total_channels; i++)
-  {
-    if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
-    {
-      if (li_config_table[i].chflags & (LI_CHFLAG_MONITOR | LI_CHFLAG_MIX | LI_CHFLAG_LOOP))
-        li_config_table[i].channel |= LI_CHANNEL_ACTIVE;
-      if (li_config_table[i].chflags & LI_CHFLAG_MONITOR)
-        li_config_table[i].channel |= LI_CHANNEL_RX_DATA;
-      if (li_config_table[i].chflags & LI_CHFLAG_MIX)
-        li_config_table[i].channel |= LI_CHANNEL_TX_DATA;
-      for (j = 0; j < li_total_channels; j++)
-      {
-        if ((li_config_table[i].flag_table[j] &
-          (LI_FLAG_INTERCONNECT | LI_FLAG_PCCONNECT | LI_FLAG_CONFERENCE | LI_FLAG_MONITOR))
-         || (li_config_table[j].flag_table[i] &
-          (LI_FLAG_INTERCONNECT | LI_FLAG_PCCONNECT | LI_FLAG_CONFERENCE | LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX)))
-        {
-          li_config_table[i].channel |= LI_CHANNEL_ACTIVE;
-        }
-        if (li_config_table[i].flag_table[j] & (LI_FLAG_PCCONNECT | LI_FLAG_MONITOR))
-          li_config_table[i].channel |= LI_CHANNEL_RX_DATA;
-        if (li_config_table[j].flag_table[i] & (LI_FLAG_PCCONNECT | LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX))
-          li_config_table[i].channel |= LI_CHANNEL_TX_DATA;
-      }
-      if (!(li_config_table[i].channel & LI_CHANNEL_ACTIVE))
-      {
-        li_config_table[i].coef_table[i] |= LI_COEF_PC_CH | LI_COEF_CH_PC;
-        li_config_table[i].channel |= LI_CHANNEL_TX_DATA | LI_CHANNEL_RX_DATA;
-      }
-    }
-  }
-  for (i = 0; i < li_total_channels; i++)
-  {
-    if (li_config_table[i].channel & LI_CHANNEL_INVOLVED)
-    {
-      j = 0;
-      while ((j < li_total_channels) && !(li_config_table[i].flag_table[j] & LI_FLAG_ANNOUNCEMENT))
-        j++;
-      if (j < li_total_channels)
-      {
-        for (j = 0; j < li_total_channels; j++)
-        {
-          li_config_table[i].coef_table[j] &= ~(LI_COEF_CH_CH | LI_COEF_PC_CH);
-          if (li_config_table[i].flag_table[j] & LI_FLAG_ANNOUNCEMENT)
-            li_config_table[i].coef_table[j] |= LI_COEF_PC_CH;
-        }
-      }
-    }
-  }
-  n = li_total_channels;
-  if (n > MIXER_MAX_DUMP_CHANNELS)
-    n = MIXER_MAX_DUMP_CHANNELS;
-  p = hex_line;
-  for (j = 0; j < n; j++)
-  {
-    if ((j & 0x7) == 0)
-      *(p++) = ' ';
-    *(p++) = hex_digit_table[li_config_table[j].curchnl >> 4];
-    *(p++) = hex_digit_table[li_config_table[j].curchnl & 0xf];
-  }
-  *p = '\0';
-  dbug (1, dprintf ("[%06lx] CURRENT %s",
-    (dword)(UnMapController (a->Id)), (char   *) hex_line));
-  p = hex_line;
-  for (j = 0; j < n; j++)
-  {
-    if ((j & 0x7) == 0)
-      *(p++) = ' ';
-    *(p++) = hex_digit_table[li_config_table[j].channel >> 4];
-    *(p++) = hex_digit_table[li_config_table[j].channel & 0xf];
-  }
-  *p = '\0';
-  dbug (1, dprintf ("[%06lx] CHANNEL %s",
-    (dword)(UnMapController (a->Id)), (char   *) hex_line));
-  p = hex_line;
-  for (j = 0; j < n; j++)
-  {
-    if ((j & 0x7) == 0)
-      *(p++) = ' ';
-    *(p++) = hex_digit_table[li_config_table[j].chflags >> 4];
-    *(p++) = hex_digit_table[li_config_table[j].chflags & 0xf];
-  }
-  *p = '\0';
-  dbug (1, dprintf ("[%06lx] CHFLAG  %s",
-    (dword)(UnMapController (a->Id)), (char   *) hex_line));
-  for (i = 0; i < n; i++)
-  {
-    p = hex_line;
-    for (j = 0; j < n; j++)
-    {
-      if ((j & 0x7) == 0)
-        *(p++) = ' ';
-      *(p++) = hex_digit_table[li_config_table[i].flag_table[j] >> 4];
-      *(p++) = hex_digit_table[li_config_table[i].flag_table[j] & 0xf];
-    }
-    *p = '\0';
-    dbug (1, dprintf ("[%06lx] FLAG[%02x]%s",
-      (dword)(UnMapController (a->Id)), i, (char   *) hex_line));
-  }
-  for (i = 0; i < n; i++)
-  {
-    p = hex_line;
-    for (j = 0; j < n; j++)
-    {
-      if ((j & 0x7) == 0)
-        *(p++) = ' ';
-      *(p++) = hex_digit_table[li_config_table[i].coef_table[j] >> 4];
-      *(p++) = hex_digit_table[li_config_table[i].coef_table[j] & 0xf];
-    }
-    *p = '\0';
-    dbug (1, dprintf ("[%06lx] COEF[%02x]%s",
-      (dword)(UnMapController (a->Id)), i, (char   *) hex_line));
-  }
-}
-
-
-static struct
-{
-  byte mask;
-  byte line_flags;
-} mixer_write_prog_pri[] =
-{
-  { LI_COEF_CH_CH, 0 },
-  { LI_COEF_CH_PC, MIXER_COEF_LINE_TO_PC_FLAG },
-  { LI_COEF_PC_CH, MIXER_COEF_LINE_FROM_PC_FLAG },
-  { LI_COEF_PC_PC, MIXER_COEF_LINE_TO_PC_FLAG | MIXER_COEF_LINE_FROM_PC_FLAG }
-};
+       18,  /* B      to B      */
+       19,  /* Alt B  to B      */
+       20,  /* PC     to B      */
+       21,  /* Alt PC to B      */
+       22,  /* IC     to B      */
+       23,  /* Alt IC to B      */
+       24,  /* B      to PC     */
+       25,  /* Alt B  to PC     */
+       26,  /* PC     to PC     */
+       27,  /* Alt PC to PC     */
+       28,  /* IC     to PC     */
+       29,  /* Alt IC to PC     */
+       30,  /* B      to IC     */
+       31,  /* Alt B  to IC     */
+       32,  /* PC     to IC     */
+       33,  /* Alt PC to IC     */
+       34,  /* IC     to IC     */
+       35,  /* Alt IC to IC     */
+       0,   /* Alt B  to Alt B  */
+       1,   /* B      to Alt B  */
+       2,   /* Alt PC to Alt B  */
+       3,   /* PC     to Alt B  */
+       4,   /* Alt IC to Alt B  */
+       5,   /* IC     to Alt B  */
+       6,   /* Alt B  to Alt PC */
+       7,   /* B      to Alt PC */
+       8,   /* Alt PC to Alt PC */
+       9,   /* PC     to Alt PC */
+       10,  /* Alt IC to Alt PC */
+       11,  /* IC     to Alt PC */
+       12,  /* Alt B  to Alt IC */
+       13,  /* B      to Alt IC */
+       14,  /* Alt PC to Alt IC */
+       15,  /* PC     to Alt IC */
+       16,  /* Alt IC to Alt IC */
+       17   /* IC     to Alt IC */
+};
 
 static struct
 {
-  byte from_ch;
-  byte to_ch;
-  byte mask;
-  byte xconnect_override;
-} mixer_write_prog_bri[] =
-{
-  { 0, 0, LI_COEF_CH_CH, 0x01 },  /* B      to B      */
-  { 1, 0, LI_COEF_CH_CH, 0x01 },  /* Alt B  to B      */
-  { 0, 0, LI_COEF_PC_CH, 0x80 },  /* PC     to B      */
-  { 1, 0, LI_COEF_PC_CH, 0x01 },  /* Alt PC to B      */
-  { 2, 0, LI_COEF_CH_CH, 0x00 },  /* IC     to B      */
-  { 3, 0, LI_COEF_CH_CH, 0x00 },  /* Alt IC to B      */
-  { 0, 0, LI_COEF_CH_PC, 0x80 },  /* B      to PC     */
-  { 1, 0, LI_COEF_CH_PC, 0x01 },  /* Alt B  to PC     */
-  { 0, 0, LI_COEF_PC_PC, 0x01 },  /* PC     to PC     */
-  { 1, 0, LI_COEF_PC_PC, 0x01 },  /* Alt PC to PC     */
-  { 2, 0, LI_COEF_CH_PC, 0x00 },  /* IC     to PC     */
-  { 3, 0, LI_COEF_CH_PC, 0x00 },  /* Alt IC to PC     */
-  { 0, 2, LI_COEF_CH_CH, 0x00 },  /* B      to IC     */
-  { 1, 2, LI_COEF_CH_CH, 0x00 },  /* Alt B  to IC     */
-  { 0, 2, LI_COEF_PC_CH, 0x00 },  /* PC     to IC     */
-  { 1, 2, LI_COEF_PC_CH, 0x00 },  /* Alt PC to IC     */
-  { 2, 2, LI_COEF_CH_CH, 0x00 },  /* IC     to IC     */
-  { 3, 2, LI_COEF_CH_CH, 0x00 },  /* Alt IC to IC     */
-  { 1, 1, LI_COEF_CH_CH, 0x01 },  /* Alt B  to Alt B  */
-  { 0, 1, LI_COEF_CH_CH, 0x01 },  /* B      to Alt B  */
-  { 1, 1, LI_COEF_PC_CH, 0x80 },  /* Alt PC to Alt B  */
-  { 0, 1, LI_COEF_PC_CH, 0x01 },  /* PC     to Alt B  */
-  { 3, 1, LI_COEF_CH_CH, 0x00 },  /* Alt IC to Alt B  */
-  { 2, 1, LI_COEF_CH_CH, 0x00 },  /* IC     to Alt B  */
-  { 1, 1, LI_COEF_CH_PC, 0x80 },  /* Alt B  to Alt PC */
-  { 0, 1, LI_COEF_CH_PC, 0x01 },  /* B      to Alt PC */
-  { 1, 1, LI_COEF_PC_PC, 0x01 },  /* Alt PC to Alt PC */
-  { 0, 1, LI_COEF_PC_PC, 0x01 },  /* PC     to Alt PC */
-  { 3, 1, LI_COEF_CH_PC, 0x00 },  /* Alt IC to Alt PC */
-  { 2, 1, LI_COEF_CH_PC, 0x00 },  /* IC     to Alt PC */
-  { 1, 3, LI_COEF_CH_CH, 0x00 },  /* Alt B  to Alt IC */
-  { 0, 3, LI_COEF_CH_CH, 0x00 },  /* B      to Alt IC */
-  { 1, 3, LI_COEF_PC_CH, 0x00 },  /* Alt PC to Alt IC */
-  { 0, 3, LI_COEF_PC_CH, 0x00 },  /* PC     to Alt IC */
-  { 3, 3, LI_COEF_CH_CH, 0x00 },  /* Alt IC to Alt IC */
-  { 2, 3, LI_COEF_CH_CH, 0x00 }   /* IC     to Alt IC */
-};
-
-static byte mixer_swapped_index_bri[] =
-{
-  18,  /* B      to B      */
-  19,  /* Alt B  to B      */
-  20,  /* PC     to B      */
-  21,  /* Alt PC to B      */
-  22,  /* IC     to B      */
-  23,  /* Alt IC to B      */
-  24,  /* B      to PC     */
-  25,  /* Alt B  to PC     */
-  26,  /* PC     to PC     */
-  27,  /* Alt PC to PC     */
-  28,  /* IC     to PC     */
-  29,  /* Alt IC to PC     */
-  30,  /* B      to IC     */
-  31,  /* Alt B  to IC     */
-  32,  /* PC     to IC     */
-  33,  /* Alt PC to IC     */
-  34,  /* IC     to IC     */
-  35,  /* Alt IC to IC     */
-  0,   /* Alt B  to Alt B  */
-  1,   /* B      to Alt B  */
-  2,   /* Alt PC to Alt B  */
-  3,   /* PC     to Alt B  */
-  4,   /* Alt IC to Alt B  */
-  5,   /* IC     to Alt B  */
-  6,   /* Alt B  to Alt PC */
-  7,   /* B      to Alt PC */
-  8,   /* Alt PC to Alt PC */
-  9,   /* PC     to Alt PC */
-  10,  /* Alt IC to Alt PC */
-  11,  /* IC     to Alt PC */
-  12,  /* Alt B  to Alt IC */
-  13,  /* B      to Alt IC */
-  14,  /* Alt PC to Alt IC */
-  15,  /* PC     to Alt IC */
-  16,  /* Alt IC to Alt IC */
-  17   /* IC     to Alt IC */
-};
-
-static struct
-{
-  byte mask;
-  byte from_pc;
-  byte to_pc;
-} xconnect_write_prog[] =
-{
-  { LI_COEF_CH_CH, false, false },
-  { LI_COEF_CH_PC, false, true },
-  { LI_COEF_PC_CH, true, false },
-  { LI_COEF_PC_PC, true, true }
-};
-
-
-static void xconnect_query_addresses (PLCI   *plci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word w, ch;
-  byte   *p;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: xconnect_query_addresses",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  a = plci->adapter;
-  if (a->li_pri && ((plci->li_bchannel_id == 0)
-   || (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci != plci)))
-  {
-    dbug (1, dprintf ("[%06x] %s,%d: Channel id wiped out",
-      (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-      (char   *)(FILE_), __LINE__));
-    return;
-  }
-  p = plci->internal_req_buffer;
-  ch = (a->li_pri) ? plci->li_bchannel_id - 1 : 0;
-  *(p++) = UDATA_REQUEST_XCONNECT_FROM;
-  w = ch;
-  *(p++) = (byte) w;
-  *(p++) = (byte)(w >> 8);
-  w = ch | XCONNECT_CHANNEL_PORT_PC;
-  *(p++) = (byte) w;
-  *(p++) = (byte)(w >> 8);
-  plci->NData[0].P = plci->internal_req_buffer;
-  plci->NData[0].PLength = p - plci->internal_req_buffer;
-  plci->NL.X = plci->NData;
-  plci->NL.ReqCh = 0;
-  plci->NL.Req = plci->nl_req = (byte) N_UDATA;
-  plci->adapter->request (&plci->NL);
-}
-
-
-static void xconnect_write_coefs (PLCI   *plci, word internal_command)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: xconnect_write_coefs %04x",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, internal_command));
-
-  plci->li_write_command = internal_command;
-  plci->li_write_channel = 0;
-}
-
-
-static byte xconnect_write_coefs_process (dword Id, PLCI   *plci, byte Rc)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word w, n, i, j, r, s, to_ch;
-  dword d;
-  byte   *p;
-  struct xconnect_transfer_address_s   *transfer_address;
-  byte ch_map[MIXER_CHANNELS_BRI];
-
-  dbug (1, dprintf ("[%06x] %s,%d: xconnect_write_coefs_process %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->li_write_channel));
-
-  a = plci->adapter;
-  if ((plci->li_bchannel_id == 0)
-   || (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci != plci))
-  {
-    dbug (1, dprintf ("[%06x] %s,%d: Channel id wiped out",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    return (true);
-  }
-  i = a->li_base + (plci->li_bchannel_id - 1);
-  j = plci->li_write_channel;
-  p = plci->internal_req_buffer;
-  if (j != 0)
-  {
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: LI write coefs failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      return (false);
-    }
-  }
-  if (li_config_table[i].adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-  {
-    r = 0;
-    s = 0;
-    if (j < li_total_channels)
-    {
-      if (li_config_table[i].channel & LI_CHANNEL_ADDRESSES_SET)
-      {
-        s = ((li_config_table[i].send_b.card_address.low | li_config_table[i].send_b.card_address.high) ?
-            (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_PC | LI_COEF_PC_PC)) &
-          ((li_config_table[i].send_pc.card_address.low | li_config_table[i].send_pc.card_address.high) ?
-            (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_PC_CH));
-      }
-      r = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-      while ((j < li_total_channels)
-        && ((r == 0)
-         || (!(li_config_table[j].channel & LI_CHANNEL_ADDRESSES_SET))
-         || (!li_config_table[j].adapter->li_pri
-          && (j >= li_config_table[j].adapter->li_base + MIXER_BCHANNELS_BRI))
-         || (((li_config_table[j].send_b.card_address.low != li_config_table[i].send_b.card_address.low)
-           || (li_config_table[j].send_b.card_address.high != li_config_table[i].send_b.card_address.high))
-          && (!(a->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)
-           || !(li_config_table[j].adapter->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)))
-         || ((li_config_table[j].adapter->li_base != a->li_base)
-          && !(r & s &
-            ((li_config_table[j].send_b.card_address.low | li_config_table[j].send_b.card_address.high) ?
-              (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_PC_CH | LI_COEF_PC_PC)) &
-            ((li_config_table[j].send_pc.card_address.low | li_config_table[j].send_pc.card_address.high) ?
-              (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_CH_PC))))))
-      {
-        j++;
-        if (j < li_total_channels)
-          r = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-      }
-    }
-    if (j < li_total_channels)
-    {
-      plci->internal_command = plci->li_write_command;
-      if (plci_nl_busy (plci))
-        return (true);
-      to_ch = (a->li_pri) ? plci->li_bchannel_id - 1 : 0;
-      *(p++) = UDATA_REQUEST_XCONNECT_TO;
-      do
-      {
-        if (li_config_table[j].adapter->li_base != a->li_base)
-        {
-          r &= s &
-            ((li_config_table[j].send_b.card_address.low | li_config_table[j].send_b.card_address.high) ?
-              (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_PC_CH | LI_COEF_PC_PC)) &
-            ((li_config_table[j].send_pc.card_address.low | li_config_table[j].send_pc.card_address.high) ?
-              (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_CH_PC));
-        }
-        n = 0;
-        do
-        {
-          if (r & xconnect_write_prog[n].mask)
-          {
-            if (xconnect_write_prog[n].from_pc)
-              transfer_address = &(li_config_table[j].send_pc);
-            else
-              transfer_address = &(li_config_table[j].send_b);
-            d = transfer_address->card_address.low;
-            *(p++) = (byte) d;
-            *(p++) = (byte)(d >> 8);
-            *(p++) = (byte)(d >> 16);
-            *(p++) = (byte)(d >> 24);
-            d = transfer_address->card_address.high;
-            *(p++) = (byte) d;
-            *(p++) = (byte)(d >> 8);
-            *(p++) = (byte)(d >> 16);
-            *(p++) = (byte)(d >> 24);
-            d = transfer_address->offset;
-            *(p++) = (byte) d;
-            *(p++) = (byte)(d >> 8);
-            *(p++) = (byte)(d >> 16);
-            *(p++) = (byte)(d >> 24);
-            w = xconnect_write_prog[n].to_pc ? to_ch | XCONNECT_CHANNEL_PORT_PC : to_ch;
-            *(p++) = (byte) w;
-            *(p++) = (byte)(w >> 8);
-            w = ((li_config_table[i].coef_table[j] & xconnect_write_prog[n].mask) == 0) ? 0x01 :
-              (li_config_table[i].adapter->u_law ?
-                 (li_config_table[j].adapter->u_law ? 0x80 : 0x86) :
-                 (li_config_table[j].adapter->u_law ? 0x7a : 0x80));
-            *(p++) = (byte) w;
-            *(p++) = (byte) 0;
-            li_config_table[i].coef_table[j] ^= xconnect_write_prog[n].mask << 4;
-          }
-          n++;
-        } while ((n < ARRAY_SIZE(xconnect_write_prog))
-          && ((p - plci->internal_req_buffer) + 16 < INTERNAL_REQ_BUFFER_SIZE));
-        if (n == ARRAY_SIZE(xconnect_write_prog))
-        {
-          do
-          {
-            j++;
-            if (j < li_total_channels)
-              r = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-          } while ((j < li_total_channels)
-            && ((r == 0)
-             || (!(li_config_table[j].channel & LI_CHANNEL_ADDRESSES_SET))
-             || (!li_config_table[j].adapter->li_pri
-              && (j >= li_config_table[j].adapter->li_base + MIXER_BCHANNELS_BRI))
-             || (((li_config_table[j].send_b.card_address.low != li_config_table[i].send_b.card_address.low)
-               || (li_config_table[j].send_b.card_address.high != li_config_table[i].send_b.card_address.high))
-              && (!(a->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)
-               || !(li_config_table[j].adapter->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)))
-             || ((li_config_table[j].adapter->li_base != a->li_base)
-              && !(r & s &
-                ((li_config_table[j].send_b.card_address.low | li_config_table[j].send_b.card_address.high) ?
-                  (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_PC_CH | LI_COEF_PC_PC)) &
-                ((li_config_table[j].send_pc.card_address.low | li_config_table[j].send_pc.card_address.high) ?
-                  (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_CH_PC))))));
-        }
-      } while ((j < li_total_channels)
-        && ((p - plci->internal_req_buffer) + 16 < INTERNAL_REQ_BUFFER_SIZE));
-    }
-    else if (j == li_total_channels)
-    {
-      plci->internal_command = plci->li_write_command;
-      if (plci_nl_busy (plci))
-        return (true);
-      if (a->li_pri)
-      {
-        *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_PRI_SYNC;
-        w = 0;
-        if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
-          w |= MIXER_FEATURE_ENABLE_TX_DATA;
-        if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
-          w |= MIXER_FEATURE_ENABLE_RX_DATA;
-        *(p++) = (byte) w;
-        *(p++) = (byte)(w >> 8);
-      }
-      else
-      {
-        *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_BRI;
-        w = 0;
-        if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI)
-         && (ADV_VOICE_NEW_COEF_BASE + sizeof(word) <= a->adv_voice_coef_length))
-        {
-          w = GET_WORD (a->adv_voice_coef_buffer + ADV_VOICE_NEW_COEF_BASE);
-        }
-        if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
-          w |= MIXER_FEATURE_ENABLE_TX_DATA;
-        if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
-          w |= MIXER_FEATURE_ENABLE_RX_DATA;
-        *(p++) = (byte) w;
-        *(p++) = (byte)(w >> 8);
-        for (j = 0; j < sizeof(ch_map); j += 2)
-        {
-          if (plci->li_bchannel_id == 2)
-          {
-            ch_map[j] = (byte)(j+1);
-            ch_map[j+1] = (byte) j;
-          }
-          else
-          {
-            ch_map[j] = (byte) j;
-            ch_map[j+1] = (byte)(j+1);
-          }
-        }
-        for (n = 0; n < ARRAY_SIZE(mixer_write_prog_bri); n++)
-        {
-          i = a->li_base + ch_map[mixer_write_prog_bri[n].to_ch];
-          j = a->li_base + ch_map[mixer_write_prog_bri[n].from_ch];
-          if (li_config_table[i].channel & li_config_table[j].channel & LI_CHANNEL_INVOLVED)
-          {
-            *p = (mixer_write_prog_bri[n].xconnect_override != 0) ?
-              mixer_write_prog_bri[n].xconnect_override :
-              ((li_config_table[i].coef_table[j] & mixer_write_prog_bri[n].mask) ? 0x80 : 0x01);
-            if ((i >= a->li_base + MIXER_BCHANNELS_BRI) || (j >= a->li_base + MIXER_BCHANNELS_BRI))
-            {
-              w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-              li_config_table[i].coef_table[j] ^= (w & mixer_write_prog_bri[n].mask) << 4;
-            }
-          }
-          else
-          {
-            *p = 0x00;
-            if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI->tel == ADV_VOICE))
-            {
-              w = (plci == a->AdvSignalPLCI) ? n : mixer_swapped_index_bri[n];
-              if (ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w < a->adv_voice_coef_length)
-                *p = a->adv_voice_coef_buffer[ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w];
-            }
-          }
-          p++;
-        }
-      }
-      j = li_total_channels + 1;
-    }
-  }
-  else
-  {
-    if (j <= li_total_channels)
-    {
-      plci->internal_command = plci->li_write_command;
-      if (plci_nl_busy (plci))
-        return (true);
-      if (j < a->li_base)
-        j = a->li_base;
-      if (a->li_pri)
-      {
-        *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_PRI_SYNC;
-        w = 0;
-        if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
-          w |= MIXER_FEATURE_ENABLE_TX_DATA;
-        if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
-          w |= MIXER_FEATURE_ENABLE_RX_DATA;
-        *(p++) = (byte) w;
-        *(p++) = (byte)(w >> 8);
-        for (n = 0; n < ARRAY_SIZE(mixer_write_prog_pri); n++)
-        {
-          *(p++) = (byte)((plci->li_bchannel_id - 1) | mixer_write_prog_pri[n].line_flags);
-          for (j = a->li_base; j < a->li_base + MIXER_CHANNELS_PRI; j++)
-          {
-            w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-            if (w & mixer_write_prog_pri[n].mask)
-            {
-              *(p++) = (li_config_table[i].coef_table[j] & mixer_write_prog_pri[n].mask) ? 0x80 : 0x01;
-              li_config_table[i].coef_table[j] ^= mixer_write_prog_pri[n].mask << 4;
-            }
-            else
-              *(p++) = 0x00;
-          }
-          *(p++) = (byte)((plci->li_bchannel_id - 1) | MIXER_COEF_LINE_ROW_FLAG | mixer_write_prog_pri[n].line_flags);
-          for (j = a->li_base; j < a->li_base + MIXER_CHANNELS_PRI; j++)
-          {
-            w = ((li_config_table[j].coef_table[i] & 0xf) ^ (li_config_table[j].coef_table[i] >> 4));
-            if (w & mixer_write_prog_pri[n].mask)
-            {
-              *(p++) = (li_config_table[j].coef_table[i] & mixer_write_prog_pri[n].mask) ? 0x80 : 0x01;
-              li_config_table[j].coef_table[i] ^= mixer_write_prog_pri[n].mask << 4;
-            }
-            else
-              *(p++) = 0x00;
-          }
-        }
-      }
-      else
-      {
-        *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_BRI;
-        w = 0;
-        if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI)
-         && (ADV_VOICE_NEW_COEF_BASE + sizeof(word) <= a->adv_voice_coef_length))
-        {
-          w = GET_WORD (a->adv_voice_coef_buffer + ADV_VOICE_NEW_COEF_BASE);
-        }
-        if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
-          w |= MIXER_FEATURE_ENABLE_TX_DATA;
-        if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
-          w |= MIXER_FEATURE_ENABLE_RX_DATA;
-        *(p++) = (byte) w;
-        *(p++) = (byte)(w >> 8);
-        for (j = 0; j < sizeof(ch_map); j += 2)
-        {
-          if (plci->li_bchannel_id == 2)
-          {
-            ch_map[j] = (byte)(j+1);
-            ch_map[j+1] = (byte) j;
-          }
-          else
-          {
-            ch_map[j] = (byte) j;
-            ch_map[j+1] = (byte)(j+1);
-          }
-        }
-        for (n = 0; n < ARRAY_SIZE(mixer_write_prog_bri); n++)
-        {
-          i = a->li_base + ch_map[mixer_write_prog_bri[n].to_ch];
-          j = a->li_base + ch_map[mixer_write_prog_bri[n].from_ch];
-          if (li_config_table[i].channel & li_config_table[j].channel & LI_CHANNEL_INVOLVED)
-          {
-            *p = ((li_config_table[i].coef_table[j] & mixer_write_prog_bri[n].mask) ? 0x80 : 0x01);
-            w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-            li_config_table[i].coef_table[j] ^= (w & mixer_write_prog_bri[n].mask) << 4;
-          }
-          else
-          {
-            *p = 0x00;
-            if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI->tel == ADV_VOICE))
-            {
-              w = (plci == a->AdvSignalPLCI) ? n : mixer_swapped_index_bri[n];
-              if (ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w < a->adv_voice_coef_length)
-                *p = a->adv_voice_coef_buffer[ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w];
-            }
-          }
-          p++;
-        }
-      }
-      j = li_total_channels + 1;
-    }
-  }
-  plci->li_write_channel = j;
-  if (p != plci->internal_req_buffer)
-  {
-    plci->NData[0].P = plci->internal_req_buffer;
-    plci->NData[0].PLength = p - plci->internal_req_buffer;
-    plci->NL.X = plci->NData;
-    plci->NL.ReqCh = 0;
-    plci->NL.Req = plci->nl_req = (byte) N_UDATA;
-    plci->adapter->request (&plci->NL);
-  }
-  return (true);
-}
-
-
-static void mixer_notify_update (PLCI   *plci, byte others)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word i, w;
-  PLCI   *notify_plci;
-    byte msg[sizeof(CAPI_MSG_HEADER) + 6];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_notify_update %d",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, others));
-
-  a = plci->adapter;
-  if (a->profile.Global_Options & GL_LINE_INTERCONNECT_SUPPORTED)
-  {
-    if (others)
-      plci->li_notify_update = true;
-    i = 0;
-    do
-    {
-      notify_plci = NULL;
-      if (others)
-      {
-        while ((i < li_total_channels) && (li_config_table[i].plci == NULL))
-          i++;
-        if (i < li_total_channels)
-          notify_plci = li_config_table[i++].plci;
-      }
-      else
-      {
-        if ((plci->li_bchannel_id != 0)
-         && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-        {
-          notify_plci = plci;
-        }
-      }
-      if ((notify_plci != NULL)
-       && !notify_plci->li_notify_update
-       && (notify_plci->appl != NULL)
-       && (notify_plci->State)
-       && notify_plci->NL.Id && !notify_plci->nl_remove_id)
-      {
-        notify_plci->li_notify_update = true;
-        ((CAPI_MSG *) msg)->header.length = 18;
-        ((CAPI_MSG *) msg)->header.appl_id = notify_plci->appl->Id;
-        ((CAPI_MSG *) msg)->header.command = _FACILITY_R;
-        ((CAPI_MSG *) msg)->header.number = 0;
-        ((CAPI_MSG *) msg)->header.controller = notify_plci->adapter->Id;
-        ((CAPI_MSG *) msg)->header.plci = notify_plci->Id;
-        ((CAPI_MSG *) msg)->header.ncci = 0;
-        ((CAPI_MSG *) msg)->info.facility_req.Selector = SELECTOR_LINE_INTERCONNECT;
-        ((CAPI_MSG *) msg)->info.facility_req.structs[0] = 3;
-        PUT_WORD (&(((CAPI_MSG *) msg)->info.facility_req.structs[1]), LI_REQ_SILENT_UPDATE);
-        ((CAPI_MSG *) msg)->info.facility_req.structs[3] = 0;
-        w = api_put (notify_plci->appl, (CAPI_MSG *) msg);
-        if (w != _QUEUE_FULL)
-        {
-          if (w != 0)
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: Interconnect notify failed %06x %d",
-              (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-              (char   *)(FILE_), __LINE__,
-              (dword)((notify_plci->Id << 8) | UnMapController (notify_plci->adapter->Id)), w));
-          }
-          notify_plci->li_notify_update = false;
-        }
-      }
-    } while (others && (notify_plci != NULL));
-    if (others)
-      plci->li_notify_update = false;
-  }
-}
-
-
-static void mixer_clear_config (PLCI   *plci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word i, j;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_clear_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  plci->li_notify_update = false;
-  plci->li_plci_b_write_pos = 0;
-  plci->li_plci_b_read_pos = 0;
-  plci->li_plci_b_req_pos = 0;
-  a = plci->adapter;
-  if ((plci->li_bchannel_id != 0)
-   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    i = a->li_base + (plci->li_bchannel_id - 1);
-    li_config_table[i].curchnl = 0;
-    li_config_table[i].channel = 0;
-    li_config_table[i].chflags = 0;
-    for (j = 0; j < li_total_channels; j++)
-    {
-      li_config_table[j].flag_table[i] = 0;
-      li_config_table[i].flag_table[j] = 0;
-      li_config_table[i].coef_table[j] = 0;
-      li_config_table[j].coef_table[i] = 0;
-    }
-    if (!a->li_pri)
-    {
-      li_config_table[i].coef_table[i] |= LI_COEF_CH_PC_SET | LI_COEF_PC_CH_SET;
-      if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
-      {
-        i = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
-        li_config_table[i].curchnl = 0;
-        li_config_table[i].channel = 0;
-        li_config_table[i].chflags = 0;
-        for (j = 0; j < li_total_channels; j++)
-        {
-          li_config_table[i].flag_table[j] = 0;
-          li_config_table[j].flag_table[i] = 0;
-          li_config_table[i].coef_table[j] = 0;
-          li_config_table[j].coef_table[i] = 0;
-        }
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
-        {
-          i = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
-          li_config_table[i].curchnl = 0;
-          li_config_table[i].channel = 0;
-          li_config_table[i].chflags = 0;
-          for (j = 0; j < li_total_channels; j++)
-          {
-            li_config_table[i].flag_table[j] = 0;
-            li_config_table[j].flag_table[i] = 0;
-            li_config_table[i].coef_table[j] = 0;
-            li_config_table[j].coef_table[i] = 0;
-          }
-        }
-      }
-    }
-  }
-}
-
-
-static void mixer_prepare_switch (dword Id, PLCI   *plci)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_prepare_switch",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  do
-  {
-    mixer_indication_coefs_set (Id, plci);
-  } while (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos);
-}
-
-
-static word mixer_save_config (dword Id, PLCI   *plci, byte Rc)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word i, j;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_save_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
-
-  a = plci->adapter;
-  if ((plci->li_bchannel_id != 0)
-   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    i = a->li_base + (plci->li_bchannel_id - 1);
-    for (j = 0; j < li_total_channels; j++)
-    {
-      li_config_table[i].coef_table[j] &= 0xf;
-      li_config_table[j].coef_table[i] &= 0xf;
-    }
-    if (!a->li_pri)
-      li_config_table[i].coef_table[i] |= LI_COEF_CH_PC_SET | LI_COEF_PC_CH_SET;
-  }
-  return (GOOD);
-}
-
-
-static word mixer_restore_config (dword Id, PLCI   *plci, byte Rc)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word Info;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_restore_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
-
-  Info = GOOD;
-  a = plci->adapter;
-  if ((plci->B1_facilities & B1_FACILITY_MIXER)
-   && (plci->li_bchannel_id != 0)
-   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    switch (plci->adjust_b_state)
-    {
-    case ADJUST_B_RESTORE_MIXER_1:
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-      {
-        plci->internal_command = plci->adjust_b_command;
-        if (plci_nl_busy (plci))
-        {
-          plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_1;
-          break;
-        }
-        xconnect_query_addresses (plci);
-        plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_2;
-        break;
-      }
-      plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_5;
-      Rc = OK;
-    case ADJUST_B_RESTORE_MIXER_2:
-    case ADJUST_B_RESTORE_MIXER_3:
-    case ADJUST_B_RESTORE_MIXER_4:
-      if ((Rc != OK) && (Rc != OK_FC) && (Rc != 0))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Adjust B query addresses failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _WRONG_STATE;
-        break;
-      }
-      if (Rc == OK)
-      {
-        if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_2)
-          plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_3;
-        else if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_4)
-          plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_5;
-      }
-      else if (Rc == 0)
-      {
-        if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_2)
-          plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_4;
-        else if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_3)
-          plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_5;
-      }
-      if (plci->adjust_b_state != ADJUST_B_RESTORE_MIXER_5)
-      {
-        plci->internal_command = plci->adjust_b_command;
-        break;
-      }
-    case ADJUST_B_RESTORE_MIXER_5:
-      xconnect_write_coefs (plci, plci->adjust_b_command);
-      plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_6;
-      Rc = OK;
-    case ADJUST_B_RESTORE_MIXER_6:
-      if (!xconnect_write_coefs_process (Id, plci, Rc))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Write mixer coefs failed",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      if (plci->internal_command)
-        break;
-      plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_7;
-    case ADJUST_B_RESTORE_MIXER_7:
-      break;
-    }
-  }
-  return (Info);
-}
-
-
-static void mixer_command (dword Id, PLCI   *plci, byte Rc)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word i, internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_command %02x %04x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command,
-    plci->li_cmd));
-
-  a = plci->adapter;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (plci->li_cmd)
-  {
-  case LI_REQ_CONNECT:
-  case LI_REQ_DISCONNECT:
-  case LI_REQ_SILENT_UPDATE:
-    switch (internal_command)
-    {
-    default:
-      if (plci->li_channel_bits & LI_CHANNEL_INVOLVED)
-      {
-        adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities |
-          B1_FACILITY_MIXER), MIXER_COMMAND_1);
-      }
-    case MIXER_COMMAND_1:
-      if (plci->li_channel_bits & LI_CHANNEL_INVOLVED)
-      {
-        if (adjust_b_process (Id, plci, Rc) != GOOD)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Load mixer failed",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          break;
-        }
-        if (plci->internal_command)
-          return;
-      }
-      plci->li_plci_b_req_pos = plci->li_plci_b_write_pos;
-      if ((plci->li_channel_bits & LI_CHANNEL_INVOLVED)
-       || ((get_b1_facilities (plci, plci->B1_resource) & B1_FACILITY_MIXER)
-        && (add_b1_facilities (plci, plci->B1_resource, (word)(plci->B1_facilities &
-         ~B1_FACILITY_MIXER)) == plci->B1_resource)))
-      {
-        xconnect_write_coefs (plci, MIXER_COMMAND_2);
-      }
-      else
-      {
-        do
-        {
-          mixer_indication_coefs_set (Id, plci);
-        } while (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos);
-      }
-    case MIXER_COMMAND_2:
-      if ((plci->li_channel_bits & LI_CHANNEL_INVOLVED)
-       || ((get_b1_facilities (plci, plci->B1_resource) & B1_FACILITY_MIXER)
-        && (add_b1_facilities (plci, plci->B1_resource, (word)(plci->B1_facilities &
-         ~B1_FACILITY_MIXER)) == plci->B1_resource)))
-      {
-        if (!xconnect_write_coefs_process (Id, plci, Rc))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Write mixer coefs failed",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          if (plci->li_plci_b_write_pos != plci->li_plci_b_req_pos)
-          {
-            do
-            {
-              plci->li_plci_b_write_pos = (plci->li_plci_b_write_pos == 0) ?
-                LI_PLCI_B_QUEUE_ENTRIES-1 : plci->li_plci_b_write_pos - 1;
-              i = (plci->li_plci_b_write_pos == 0) ?
-                LI_PLCI_B_QUEUE_ENTRIES-1 : plci->li_plci_b_write_pos - 1;
-            } while ((plci->li_plci_b_write_pos != plci->li_plci_b_req_pos)
-              && !(plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG));
-          }
-          break;
-        }
-        if (plci->internal_command)
-          return;
-      }
-      if (!(plci->li_channel_bits & LI_CHANNEL_INVOLVED))
-      {
-        adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities &
-          ~B1_FACILITY_MIXER), MIXER_COMMAND_3);
-      }
-    case MIXER_COMMAND_3:
-      if (!(plci->li_channel_bits & LI_CHANNEL_INVOLVED))
-      {
-        if (adjust_b_process (Id, plci, Rc) != GOOD)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Unload mixer failed",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          break;
-        }
-        if (plci->internal_command)
-          return;
-      }
-      break;
-    }
-    break;
-  }
-  if ((plci->li_bchannel_id == 0)
-   || (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci != plci))
-  {
-    dbug (1, dprintf ("[%06x] %s,%d: Channel id wiped out %d",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, (int)(plci->li_bchannel_id)));
-  }
-  else
-  {
-    i = a->li_base + (plci->li_bchannel_id - 1);
-    li_config_table[i].curchnl = plci->li_channel_bits;
-    if (!a->li_pri && (plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
-    {
-      i = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
-      li_config_table[i].curchnl = plci->li_channel_bits;
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
-      {
-        i = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
-        li_config_table[i].curchnl = plci->li_channel_bits;
-      }
-    }
-  }
-}
-
-
-static void li_update_connect (dword Id, DIVA_CAPI_ADAPTER   *a, PLCI   *plci,
-  dword plci_b_id, byte connect, dword li_flags)
-{
-  word i, ch_a, ch_a_v, ch_a_s, ch_b, ch_b_v, ch_b_s;
-  PLCI   *plci_b;
-  DIVA_CAPI_ADAPTER   *a_b;
-
-  a_b = &(adapter[MapController ((byte)(plci_b_id & 0x7f)) - 1]);
-  plci_b = &(a_b->plci[((plci_b_id >> 8) & 0xff) - 1]);
-  ch_a = a->li_base + (plci->li_bchannel_id - 1);
-  if (!a->li_pri && (plci->tel == ADV_VOICE)
-   && (plci == a->AdvSignalPLCI) && (Id & EXT_CONTROLLER))
-  {
-    ch_a_v = ch_a + MIXER_IC_CHANNEL_BASE;
-    ch_a_s = (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
-      a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id) : ch_a_v;
-  }
-  else
-  {
-    ch_a_v = ch_a;
-    ch_a_s = ch_a;
-  }
-  ch_b = a_b->li_base + (plci_b->li_bchannel_id - 1);
-  if (!a_b->li_pri && (plci_b->tel == ADV_VOICE)
-   && (plci_b == a_b->AdvSignalPLCI) && (plci_b_id & EXT_CONTROLLER))
-  {
-    ch_b_v = ch_b + MIXER_IC_CHANNEL_BASE;
-    ch_b_s = (a_b->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
-      a_b->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci_b->li_bchannel_id) : ch_b_v;
-  }
-  else
-  {
-    ch_b_v = ch_b;
-    ch_b_s = ch_b;
-  }
-  if (connect)
-  {
-    li_config_table[ch_a].flag_table[ch_a_v] &= ~LI_FLAG_MONITOR;
-    li_config_table[ch_a].flag_table[ch_a_s] &= ~LI_FLAG_MONITOR;
-    li_config_table[ch_a_v].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
-    li_config_table[ch_a_s].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
-  }
-  li_config_table[ch_a].flag_table[ch_b_v] &= ~LI_FLAG_MONITOR;
-  li_config_table[ch_a].flag_table[ch_b_s] &= ~LI_FLAG_MONITOR;
-  li_config_table[ch_b_v].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
-  li_config_table[ch_b_s].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
-  if (ch_a_v == ch_b_v)
-  {
-    li_config_table[ch_a_v].flag_table[ch_b_v] &= ~LI_FLAG_CONFERENCE;
-    li_config_table[ch_a_s].flag_table[ch_b_s] &= ~LI_FLAG_CONFERENCE;
-  }
-  else
-  {
-    if (li_config_table[ch_a_v].flag_table[ch_b_v] & LI_FLAG_CONFERENCE)
-    {
-      for (i = 0; i < li_total_channels; i++)
-      {
-        if (i != ch_a_v)
-          li_config_table[ch_a_v].flag_table[i] &= ~LI_FLAG_CONFERENCE;
-      }
-    }
-    if (li_config_table[ch_a_s].flag_table[ch_b_v] & LI_FLAG_CONFERENCE)
-    {
-      for (i = 0; i < li_total_channels; i++)
-      {
-        if (i != ch_a_s)
-          li_config_table[ch_a_s].flag_table[i] &= ~LI_FLAG_CONFERENCE;
-      }
-    }
-    if (li_config_table[ch_b_v].flag_table[ch_a_v] & LI_FLAG_CONFERENCE)
-    {
-      for (i = 0; i < li_total_channels; i++)
-      {
-        if (i != ch_a_v)
-          li_config_table[i].flag_table[ch_a_v] &= ~LI_FLAG_CONFERENCE;
-      }
-    }
-    if (li_config_table[ch_b_v].flag_table[ch_a_s] & LI_FLAG_CONFERENCE)
-    {
-      for (i = 0; i < li_total_channels; i++)
-      {
-        if (i != ch_a_s)
-          li_config_table[i].flag_table[ch_a_s] &= ~LI_FLAG_CONFERENCE;
-      }
-    }
-  }
-  if (li_flags & LI_FLAG_CONFERENCE_A_B)
-  {
-    li_config_table[ch_b_v].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_b_s].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_b_v].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_b_s].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
-  }
-  if (li_flags & LI_FLAG_CONFERENCE_B_A)
-  {
-    li_config_table[ch_a_v].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_a_v].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_a_s].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_a_s].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
-  }
-  if (li_flags & LI_FLAG_MONITOR_A)
-  {
-    li_config_table[ch_a].flag_table[ch_a_v] |= LI_FLAG_MONITOR;
-    li_config_table[ch_a].flag_table[ch_a_s] |= LI_FLAG_MONITOR;
-  }
-  if (li_flags & LI_FLAG_MONITOR_B)
-  {
-    li_config_table[ch_a].flag_table[ch_b_v] |= LI_FLAG_MONITOR;
-    li_config_table[ch_a].flag_table[ch_b_s] |= LI_FLAG_MONITOR;
-  }
-  if (li_flags & LI_FLAG_ANNOUNCEMENT_A)
-  {
-    li_config_table[ch_a_v].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
-    li_config_table[ch_a_s].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
-  }
-  if (li_flags & LI_FLAG_ANNOUNCEMENT_B)
-  {
-    li_config_table[ch_b_v].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
-    li_config_table[ch_b_s].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
-  }
-  if (li_flags & LI_FLAG_MIX_A)
-  {
-    li_config_table[ch_a_v].flag_table[ch_a] |= LI_FLAG_MIX;
-    li_config_table[ch_a_s].flag_table[ch_a] |= LI_FLAG_MIX;
-  }
-  if (li_flags & LI_FLAG_MIX_B)
-  {
-    li_config_table[ch_b_v].flag_table[ch_a] |= LI_FLAG_MIX;
-    li_config_table[ch_b_s].flag_table[ch_a] |= LI_FLAG_MIX;
-  }
-  if (ch_a_v != ch_a_s)
-  {
-    li_config_table[ch_a_v].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_a_s].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
-  }
-  if (ch_b_v != ch_b_s)
-  {
-    li_config_table[ch_b_v].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_b_s].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
-  }
-}
-
-
-static void li2_update_connect (dword Id, DIVA_CAPI_ADAPTER   *a, PLCI   *plci,
-  dword plci_b_id, byte connect, dword li_flags)
-{
-  word ch_a, ch_a_v, ch_a_s, ch_b, ch_b_v, ch_b_s;
-  PLCI   *plci_b;
-  DIVA_CAPI_ADAPTER   *a_b;
-
-  a_b = &(adapter[MapController ((byte)(plci_b_id & 0x7f)) - 1]);
-  plci_b = &(a_b->plci[((plci_b_id >> 8) & 0xff) - 1]);
-  ch_a = a->li_base + (plci->li_bchannel_id - 1);
-  if (!a->li_pri && (plci->tel == ADV_VOICE)
-   && (plci == a->AdvSignalPLCI) && (Id & EXT_CONTROLLER))
-  {
-    ch_a_v = ch_a + MIXER_IC_CHANNEL_BASE;
-    ch_a_s = (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
-      a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id) : ch_a_v;
-  }
-  else
-  {
-    ch_a_v = ch_a;
-    ch_a_s = ch_a;
-  }
-  ch_b = a_b->li_base + (plci_b->li_bchannel_id - 1);
-  if (!a_b->li_pri && (plci_b->tel == ADV_VOICE)
-   && (plci_b == a_b->AdvSignalPLCI) && (plci_b_id & EXT_CONTROLLER))
-  {
-    ch_b_v = ch_b + MIXER_IC_CHANNEL_BASE;
-    ch_b_s = (a_b->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
-      a_b->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci_b->li_bchannel_id) : ch_b_v;
-  }
-  else
-  {
-    ch_b_v = ch_b;
-    ch_b_s = ch_b;
-  }
-  if (connect)
-  {
-    li_config_table[ch_b].flag_table[ch_b_v] &= ~LI_FLAG_MONITOR;
-    li_config_table[ch_b].flag_table[ch_b_s] &= ~LI_FLAG_MONITOR;
-    li_config_table[ch_b_v].flag_table[ch_b] &= ~LI_FLAG_MIX;
-    li_config_table[ch_b_s].flag_table[ch_b] &= ~LI_FLAG_MIX;
-    li_config_table[ch_b].flag_table[ch_b] &= ~LI_FLAG_PCCONNECT;
-    li_config_table[ch_b].chflags &= ~(LI_CHFLAG_MONITOR | LI_CHFLAG_MIX | LI_CHFLAG_LOOP);
-  }
-  li_config_table[ch_b_v].flag_table[ch_a_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_b_s].flag_table[ch_a_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_b_v].flag_table[ch_a_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_b_s].flag_table[ch_a_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_a_v].flag_table[ch_b_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_a_v].flag_table[ch_b_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_a_s].flag_table[ch_b_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  li_config_table[ch_a_s].flag_table[ch_b_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
-  if (li_flags & LI2_FLAG_INTERCONNECT_A_B)
-  {
-    li_config_table[ch_b_v].flag_table[ch_a_v] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_b_s].flag_table[ch_a_v] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_b_v].flag_table[ch_a_s] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_b_s].flag_table[ch_a_s] |= LI_FLAG_INTERCONNECT;
-  }
-  if (li_flags & LI2_FLAG_INTERCONNECT_B_A)
-  {
-    li_config_table[ch_a_v].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_a_v].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_a_s].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_a_s].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
-  }
-  if (li_flags & LI2_FLAG_MONITOR_B)
-  {
-    li_config_table[ch_b].flag_table[ch_b_v] |= LI_FLAG_MONITOR;
-    li_config_table[ch_b].flag_table[ch_b_s] |= LI_FLAG_MONITOR;
-  }
-  if (li_flags & LI2_FLAG_MIX_B)
-  {
-    li_config_table[ch_b_v].flag_table[ch_b] |= LI_FLAG_MIX;
-    li_config_table[ch_b_s].flag_table[ch_b] |= LI_FLAG_MIX;
-  }
-  if (li_flags & LI2_FLAG_MONITOR_X)
-    li_config_table[ch_b].chflags |= LI_CHFLAG_MONITOR;
-  if (li_flags & LI2_FLAG_MIX_X)
-    li_config_table[ch_b].chflags |= LI_CHFLAG_MIX;
-  if (li_flags & LI2_FLAG_LOOP_B)
-  {
-    li_config_table[ch_b_v].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_b_s].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_b_v].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
-    li_config_table[ch_b_s].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
-  }
-  if (li_flags & LI2_FLAG_LOOP_PC)
-    li_config_table[ch_b].flag_table[ch_b] |= LI_FLAG_PCCONNECT;
-  if (li_flags & LI2_FLAG_LOOP_X)
-    li_config_table[ch_b].chflags |= LI_CHFLAG_LOOP;
-  if (li_flags & LI2_FLAG_PCCONNECT_A_B)
-    li_config_table[ch_b_s].flag_table[ch_a_s] |= LI_FLAG_PCCONNECT;
-  if (li_flags & LI2_FLAG_PCCONNECT_B_A)
-    li_config_table[ch_a_s].flag_table[ch_b_s] |= LI_FLAG_PCCONNECT;
-  if (ch_a_v != ch_a_s)
-  {
-    li_config_table[ch_a_v].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_a_s].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
-  }
-  if (ch_b_v != ch_b_s)
-  {
-    li_config_table[ch_b_v].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
-    li_config_table[ch_b_s].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
-  }
-}
-
-
-static word li_check_main_plci (dword Id, PLCI   *plci)
-{
-  if (plci == NULL)
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Wrong PLCI",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    return (_WRONG_IDENTIFIER);
-  }
-  if (!plci->State
-   || !plci->NL.Id || plci->nl_remove_id
-   || (plci->li_bchannel_id == 0))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Wrong state",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    return (_WRONG_STATE);
-  }
-  li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci = plci;
-  return (GOOD);
-}
-
-
-static PLCI   *li_check_plci_b (dword Id, PLCI   *plci,
-  dword plci_b_id, word plci_b_write_pos, byte   *p_result)
-{
-  byte ctlr_b;
-  PLCI   *plci_b;
-
-  if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
-    LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 2)
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI request overrun",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    PUT_WORD (p_result, _REQUEST_NOT_ALLOWED_IN_THIS_STATE);
-    return (NULL);
-  }
-  ctlr_b = 0;
-  if ((plci_b_id & 0x7f) != 0)
-  {
-    ctlr_b = MapController ((byte)(plci_b_id & 0x7f));
-    if ((ctlr_b > max_adapter) || ((ctlr_b != 0) && (adapter[ctlr_b - 1].request == NULL)))
-      ctlr_b = 0;
-  }
-  if ((ctlr_b == 0)
-   || (((plci_b_id >> 8) & 0xff) == 0)
-   || (((plci_b_id >> 8) & 0xff) > adapter[ctlr_b - 1].max_plci))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI invalid second PLCI %08lx",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b_id));
-    PUT_WORD (p_result, _WRONG_IDENTIFIER);
-    return (NULL);
-  }
-  plci_b = &(adapter[ctlr_b - 1].plci[((plci_b_id >> 8) & 0xff) - 1]);
-  if (!plci_b->State
-   || !plci_b->NL.Id || plci_b->nl_remove_id
-   || (plci_b->li_bchannel_id == 0))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI peer in wrong state %08lx",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b_id));
-    PUT_WORD (p_result, _REQUEST_NOT_ALLOWED_IN_THIS_STATE);
-    return (NULL);
-  }
-  li_config_table[plci_b->adapter->li_base + (plci_b->li_bchannel_id - 1)].plci = plci_b;
-  if (((byte)(plci_b_id & ~EXT_CONTROLLER)) !=
-    ((byte)(UnMapController (plci->adapter->Id) & ~EXT_CONTROLLER))
-   && (!(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-    || !(plci_b->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI not on same ctrl %08lx",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b_id));
-    PUT_WORD (p_result, _WRONG_IDENTIFIER);
-    return (NULL);
-  }
-  if (!(get_b1_facilities (plci_b, add_b1_facilities (plci_b, plci_b->B1_resource,
-    (word)(plci_b->B1_facilities | B1_FACILITY_MIXER))) & B1_FACILITY_MIXER))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Interconnect peer cannot mix %d",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b->B1_resource));
-    PUT_WORD (p_result, _REQUEST_NOT_ALLOWED_IN_THIS_STATE);
-    return (NULL);
-  }
-  return (plci_b);
-}
-
-
-static PLCI   *li2_check_plci_b (dword Id, PLCI   *plci,
-  dword plci_b_id, word plci_b_write_pos, byte   *p_result)
-{
-  byte ctlr_b;
-  PLCI   *plci_b;
-
-  if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
-    LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 2)
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI request overrun",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    PUT_WORD (p_result, _WRONG_STATE);
-    return (NULL);
-  }
-  ctlr_b = 0;
-  if ((plci_b_id & 0x7f) != 0)
-  {
-    ctlr_b = MapController ((byte)(plci_b_id & 0x7f));
-    if ((ctlr_b > max_adapter) || ((ctlr_b != 0) && (adapter[ctlr_b - 1].request == NULL)))
-      ctlr_b = 0;
-  }
-  if ((ctlr_b == 0)
-   || (((plci_b_id >> 8) & 0xff) == 0)
-   || (((plci_b_id >> 8) & 0xff) > adapter[ctlr_b - 1].max_plci))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI invalid second PLCI %08lx",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b_id));
-    PUT_WORD (p_result, _WRONG_IDENTIFIER);
-    return (NULL);
-  }
-  plci_b = &(adapter[ctlr_b - 1].plci[((plci_b_id >> 8) & 0xff) - 1]);
-  if (!plci_b->State
-   || !plci_b->NL.Id || plci_b->nl_remove_id
-   || (plci_b->li_bchannel_id == 0)
-   || (li_config_table[plci_b->adapter->li_base + (plci_b->li_bchannel_id - 1)].plci != plci_b))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI peer in wrong state %08lx",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b_id));
-    PUT_WORD (p_result, _WRONG_STATE);
-    return (NULL);
-  }
-  if (((byte)(plci_b_id & ~EXT_CONTROLLER)) !=
-    ((byte)(UnMapController (plci->adapter->Id) & ~EXT_CONTROLLER))
-   && (!(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-    || !(plci_b->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI not on same ctrl %08lx",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b_id));
-    PUT_WORD (p_result, _WRONG_IDENTIFIER);
-    return (NULL);
-  }
-  if (!(get_b1_facilities (plci_b, add_b1_facilities (plci_b, plci_b->B1_resource,
-    (word)(plci_b->B1_facilities | B1_FACILITY_MIXER))) & B1_FACILITY_MIXER))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Interconnect peer cannot mix %d",
-      UnMapId (Id), (char   *)(FILE_), __LINE__, plci_b->B1_resource));
-    PUT_WORD (p_result, _WRONG_STATE);
-    return (NULL);
-  }
-  return (plci_b);
-}
-
-
-static byte mixer_request (dword Id, word Number, DIVA_CAPI_ADAPTER   *a, PLCI   *plci, APPL   *appl, API_PARSE *msg)
-{
-  word Info;
-  word i;
-  dword d, li_flags, plci_b_id;
-  PLCI   *plci_b;
-    API_PARSE li_parms[3];
-    API_PARSE li_req_parms[3];
-    API_PARSE li_participant_struct[2];
-    API_PARSE li_participant_parms[3];
-  word participant_parms_pos;
-  byte result_buffer[32];
-  byte   *result;
-  word result_pos;
-  word plci_b_write_pos;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_request",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  Info = GOOD;
-  result = result_buffer;
-  result_buffer[0] = 0;
-  if (!(a->profile.Global_Options & GL_LINE_INTERCONNECT_SUPPORTED))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Facility not supported",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    Info = _FACILITY_NOT_SUPPORTED;
-  }
-  else if (api_parse (&msg[1].info[1], msg[1].length, "ws", li_parms))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    Info = _WRONG_MESSAGE_FORMAT;
-  }
-  else
-  {
-    result_buffer[0] = 3;
-    PUT_WORD (&result_buffer[1], GET_WORD (li_parms[0].info));
-    result_buffer[3] = 0;
-    switch (GET_WORD (li_parms[0].info))
-    {
-    case LI_GET_SUPPORTED_SERVICES:
-      if (appl->appl_flags & APPL_FLAG_OLD_LI_SPEC)
-      {
-        result_buffer[0] = 17;
-        result_buffer[3] = 14;
-        PUT_WORD (&result_buffer[4], GOOD);
-        d = 0;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_CH_CH)
-          d |= LI_CONFERENCING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_CH_PC)
-          d |= LI_MONITORING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_PC_CH)
-          d |= LI_ANNOUNCEMENTS_SUPPORTED | LI_MIXING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-          d |= LI_CROSS_CONTROLLER_SUPPORTED;
-        PUT_DWORD (&result_buffer[6], d);
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-        {
-          d = 0;
-          for (i = 0; i < li_total_channels; i++)
-          {
-            if ((li_config_table[i].adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-             && (li_config_table[i].adapter->li_pri
-              || (i < li_config_table[i].adapter->li_base + MIXER_BCHANNELS_BRI)))
-            {
-              d++;
-            }
-          }
-        }
-        else
-        {
-          d = a->li_pri ? a->li_channels : MIXER_BCHANNELS_BRI;
-        }
-        PUT_DWORD (&result_buffer[10], d / 2);
-        PUT_DWORD (&result_buffer[14], d);
-      }
-      else
-      {
-        result_buffer[0] = 25;
-        result_buffer[3] = 22;
-        PUT_WORD (&result_buffer[4], GOOD);
-        d = LI2_ASYMMETRIC_SUPPORTED | LI2_B_LOOPING_SUPPORTED | LI2_X_LOOPING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_CH_PC)
-          d |= LI2_MONITORING_SUPPORTED | LI2_REMOTE_MONITORING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_PC_CH)
-          d |= LI2_MIXING_SUPPORTED | LI2_REMOTE_MIXING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_PC_PC)
-          d |= LI2_PC_LOOPING_SUPPORTED;
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-          d |= LI2_CROSS_CONTROLLER_SUPPORTED;
-        PUT_DWORD (&result_buffer[6], d);
-        d = a->li_pri ? a->li_channels : MIXER_BCHANNELS_BRI;
-        PUT_DWORD (&result_buffer[10], d / 2);
-        PUT_DWORD (&result_buffer[14], d - 1);
-        if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-        {
-          d = 0;
-          for (i = 0; i < li_total_channels; i++)
-          {
-            if ((li_config_table[i].adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
-             && (li_config_table[i].adapter->li_pri
-              || (i < li_config_table[i].adapter->li_base + MIXER_BCHANNELS_BRI)))
-            {
-              d++;
-            }
-          }
-        }
-        PUT_DWORD (&result_buffer[18], d / 2);
-        PUT_DWORD (&result_buffer[22], d - 1);
-      }
-      break;
-
-    case LI_REQ_CONNECT:
-      if (li_parms[1].length == 8)
-      {
-        appl->appl_flags |= APPL_FLAG_OLD_LI_SPEC;
-        if (api_parse (&li_parms[1].info[1], li_parms[1].length, "dd", li_req_parms))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_MESSAGE_FORMAT;
-          break;
-        }
-        plci_b_id = GET_DWORD (li_req_parms[0].info) & 0xffff;
-        li_flags = GET_DWORD (li_req_parms[1].info);
-        Info = li_check_main_plci (Id, plci);
-        result_buffer[0] = 9;
-        result_buffer[3] = 6;
-        PUT_DWORD (&result_buffer[4], plci_b_id);
-        PUT_WORD (&result_buffer[8], GOOD);
-        if (Info != GOOD)
-          break;
-        result = plci->saved_msg.info;
-        for (i = 0; i <= result_buffer[0]; i++)
-          result[i] = result_buffer[i];
-        plci_b_write_pos = plci->li_plci_b_write_pos;
-        plci_b = li_check_plci_b (Id, plci, plci_b_id, plci_b_write_pos, &result[8]);
-        if (plci_b == NULL)
-          break;
-        li_update_connect (Id, a, plci, plci_b_id, true, li_flags);
-        plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_LAST_FLAG;
-        plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-        plci->li_plci_b_write_pos = plci_b_write_pos;
-      }
-      else
-      {
-        appl->appl_flags &= ~APPL_FLAG_OLD_LI_SPEC;
-        if (api_parse (&li_parms[1].info[1], li_parms[1].length, "ds", li_req_parms))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_MESSAGE_FORMAT;
-          break;
-        }
-        li_flags = GET_DWORD (li_req_parms[0].info) & ~(LI2_FLAG_INTERCONNECT_A_B | LI2_FLAG_INTERCONNECT_B_A);
-        Info = li_check_main_plci (Id, plci);
-        result_buffer[0] = 7;
-        result_buffer[3] = 4;
-        PUT_WORD (&result_buffer[4], Info);
-        result_buffer[6] = 0;
-        if (Info != GOOD)
-          break;
-        result = plci->saved_msg.info;
-        for (i = 0; i <= result_buffer[0]; i++)
-          result[i] = result_buffer[i];
-        plci_b_write_pos = plci->li_plci_b_write_pos;
-        participant_parms_pos = 0;
-        result_pos = 7;
-        li2_update_connect (Id, a, plci, UnMapId (Id), true, li_flags);
-        while (participant_parms_pos < li_req_parms[1].length)
-        {
-          result[result_pos] = 6;
-          result_pos += 7;
-          PUT_DWORD (&result[result_pos - 6], 0);
-          PUT_WORD (&result[result_pos - 2], GOOD);
-          if (api_parse (&li_req_parms[1].info[1 + participant_parms_pos],
-            (word)(li_parms[1].length - participant_parms_pos), "s", li_participant_struct))
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-              UnMapId (Id), (char   *)(FILE_), __LINE__));
-            PUT_WORD (&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
-            break;
-          }
-          if (api_parse (&li_participant_struct[0].info[1],
-            li_participant_struct[0].length, "dd", li_participant_parms))
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-              UnMapId (Id), (char   *)(FILE_), __LINE__));
-            PUT_WORD (&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
-            break;
-          }
-          plci_b_id = GET_DWORD (li_participant_parms[0].info) & 0xffff;
-          li_flags = GET_DWORD (li_participant_parms[1].info);
-          PUT_DWORD (&result[result_pos - 6], plci_b_id);
-          if (sizeof(result) - result_pos < 7)
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: LI result overrun",
-              UnMapId (Id), (char   *)(FILE_), __LINE__));
-            PUT_WORD (&result[result_pos - 2], _WRONG_STATE);
-            break;
-          }
-          plci_b = li2_check_plci_b (Id, plci, plci_b_id, plci_b_write_pos, &result[result_pos - 2]);
-          if (plci_b != NULL)
-          {
-            li2_update_connect (Id, a, plci, plci_b_id, true, li_flags);
-            plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id |
-              ((li_flags & (LI2_FLAG_INTERCONNECT_A_B | LI2_FLAG_INTERCONNECT_B_A |
-              LI2_FLAG_PCCONNECT_A_B | LI2_FLAG_PCCONNECT_B_A)) ? 0 : LI_PLCI_B_DISC_FLAG);
-            plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-          }
-          participant_parms_pos = (word)((&li_participant_struct[0].info[1 + li_participant_struct[0].length]) -
-            (&li_req_parms[1].info[1]));
-        }
-        result[0] = (byte)(result_pos - 1);
-        result[3] = (byte)(result_pos - 4);
-        result[6] = (byte)(result_pos - 7);
-        i = (plci_b_write_pos == 0) ? LI_PLCI_B_QUEUE_ENTRIES-1 : plci_b_write_pos - 1;
-        if ((plci_b_write_pos == plci->li_plci_b_read_pos)
-         || (plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG))
-        {
-          plci->li_plci_b_queue[plci_b_write_pos] = LI_PLCI_B_SKIP_FLAG | LI_PLCI_B_LAST_FLAG;
-          plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-        }
-        else
-          plci->li_plci_b_queue[i] |= LI_PLCI_B_LAST_FLAG;
-        plci->li_plci_b_write_pos = plci_b_write_pos;
-      }
-      mixer_calculate_coefs (a);
-      plci->li_channel_bits = li_config_table[a->li_base + (plci->li_bchannel_id - 1)].channel;
-      mixer_notify_update (plci, true);
-      sendf (appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
-        "wwS", Info, SELECTOR_LINE_INTERCONNECT, result);
-      plci->command = 0;
-      plci->li_cmd = GET_WORD (li_parms[0].info);
-      start_internal_command (Id, plci, mixer_command);
-      return (false);
-
-    case LI_REQ_DISCONNECT:
-      if (li_parms[1].length == 4)
-      {
-        appl->appl_flags |= APPL_FLAG_OLD_LI_SPEC;
-        if (api_parse (&li_parms[1].info[1], li_parms[1].length, "d", li_req_parms))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_MESSAGE_FORMAT;
-          break;
-        }
-        plci_b_id = GET_DWORD (li_req_parms[0].info) & 0xffff;
-        Info = li_check_main_plci (Id, plci);
-        result_buffer[0] = 9;
-        result_buffer[3] = 6;
-        PUT_DWORD (&result_buffer[4], GET_DWORD (li_req_parms[0].info));
-        PUT_WORD (&result_buffer[8], GOOD);
-        if (Info != GOOD)
-          break;
-        result = plci->saved_msg.info;
-        for (i = 0; i <= result_buffer[0]; i++)
-          result[i] = result_buffer[i];
-        plci_b_write_pos = plci->li_plci_b_write_pos;
-        plci_b = li_check_plci_b (Id, plci, plci_b_id, plci_b_write_pos, &result[8]);
-        if (plci_b == NULL)
-          break;
-        li_update_connect (Id, a, plci, plci_b_id, false, 0);
-        plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_DISC_FLAG | LI_PLCI_B_LAST_FLAG;
-        plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-        plci->li_plci_b_write_pos = plci_b_write_pos;
-      }
-      else
-      {
-        appl->appl_flags &= ~APPL_FLAG_OLD_LI_SPEC;
-        if (api_parse (&li_parms[1].info[1], li_parms[1].length, "s", li_req_parms))
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_MESSAGE_FORMAT;
-          break;
-        }
-        Info = li_check_main_plci (Id, plci);
-        result_buffer[0] = 7;
-        result_buffer[3] = 4;
-        PUT_WORD (&result_buffer[4], Info);
-        result_buffer[6] = 0;
-        if (Info != GOOD)
-          break;
-        result = plci->saved_msg.info;
-        for (i = 0; i <= result_buffer[0]; i++)
-          result[i] = result_buffer[i];
-        plci_b_write_pos = plci->li_plci_b_write_pos;
-        participant_parms_pos = 0;
-        result_pos = 7;
-        while (participant_parms_pos < li_req_parms[0].length)
-        {
-          result[result_pos] = 6;
-          result_pos += 7;
-          PUT_DWORD (&result[result_pos - 6], 0);
-          PUT_WORD (&result[result_pos - 2], GOOD);
-          if (api_parse (&li_req_parms[0].info[1 + participant_parms_pos],
-            (word)(li_parms[1].length - participant_parms_pos), "s", li_participant_struct))
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-              UnMapId (Id), (char   *)(FILE_), __LINE__));
-            PUT_WORD (&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
-            break;
-          }
-          if (api_parse (&li_participant_struct[0].info[1],
-            li_participant_struct[0].length, "d", li_participant_parms))
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-              UnMapId (Id), (char   *)(FILE_), __LINE__));
-            PUT_WORD (&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
-            break;
-          }
-          plci_b_id = GET_DWORD (li_participant_parms[0].info) & 0xffff;
-          PUT_DWORD (&result[result_pos - 6], plci_b_id);
-          if (sizeof(result) - result_pos < 7)
-          {
-            dbug (1, dprintf ("[%06lx] %s,%d: LI result overrun",
-              UnMapId (Id), (char   *)(FILE_), __LINE__));
-            PUT_WORD (&result[result_pos - 2], _WRONG_STATE);
-            break;
-          }
-          plci_b = li2_check_plci_b (Id, plci, plci_b_id, plci_b_write_pos, &result[result_pos - 2]);
-          if (plci_b != NULL)
-          {
-            li2_update_connect (Id, a, plci, plci_b_id, false, 0);
-            plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_DISC_FLAG;
-            plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-          }
-          participant_parms_pos = (word)((&li_participant_struct[0].info[1 + li_participant_struct[0].length]) -
-            (&li_req_parms[0].info[1]));
-        }
-        result[0] = (byte)(result_pos - 1);
-        result[3] = (byte)(result_pos - 4);
-        result[6] = (byte)(result_pos - 7);
-        i = (plci_b_write_pos == 0) ? LI_PLCI_B_QUEUE_ENTRIES-1 : plci_b_write_pos - 1;
-        if ((plci_b_write_pos == plci->li_plci_b_read_pos)
-         || (plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG))
-        {
-          plci->li_plci_b_queue[plci_b_write_pos] = LI_PLCI_B_SKIP_FLAG | LI_PLCI_B_LAST_FLAG;
-          plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-        }
-        else
-          plci->li_plci_b_queue[i] |= LI_PLCI_B_LAST_FLAG;
-        plci->li_plci_b_write_pos = plci_b_write_pos;
-      }
-      mixer_calculate_coefs (a);
-      plci->li_channel_bits = li_config_table[a->li_base + (plci->li_bchannel_id - 1)].channel;
-      mixer_notify_update (plci, true);
-      sendf (appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
-        "wwS", Info, SELECTOR_LINE_INTERCONNECT, result);
-      plci->command = 0;
-      plci->li_cmd = GET_WORD (li_parms[0].info);
-      start_internal_command (Id, plci, mixer_command);
-      return (false);
-
-    case LI_REQ_SILENT_UPDATE:
-      if (!plci || !plci->State
-       || !plci->NL.Id || plci->nl_remove_id
-       || (plci->li_bchannel_id == 0)
-       || (li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci != plci))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Wrong state",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        return (false);
-      }
-      plci_b_write_pos = plci->li_plci_b_write_pos;
-      if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
-        LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 2)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: LI request overrun",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        return (false);
-      }
-      i = (plci_b_write_pos == 0) ? LI_PLCI_B_QUEUE_ENTRIES-1 : plci_b_write_pos - 1;
-      if ((plci_b_write_pos == plci->li_plci_b_read_pos)
-       || (plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG))
-      {
-        plci->li_plci_b_queue[plci_b_write_pos] = LI_PLCI_B_SKIP_FLAG | LI_PLCI_B_LAST_FLAG;
-        plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-      }
-      else
-        plci->li_plci_b_queue[i] |= LI_PLCI_B_LAST_FLAG;
-      plci->li_plci_b_write_pos = plci_b_write_pos;
-      plci->li_channel_bits = li_config_table[a->li_base + (plci->li_bchannel_id - 1)].channel;
-      plci->command = 0;
-      plci->li_cmd = GET_WORD (li_parms[0].info);
-      start_internal_command (Id, plci, mixer_command);
-      return (false);
-
-    default:
-      dbug (1, dprintf ("[%06lx] %s,%d: LI unknown request %04x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, GET_WORD (li_parms[0].info)));
-      Info = _FACILITY_NOT_SUPPORTED;
-    }
-  }
-  sendf (appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
-    "wwS", Info, SELECTOR_LINE_INTERCONNECT, result);
-  return (false);
-}
-
-
-static void mixer_indication_coefs_set (dword Id, PLCI   *plci)
-{
-  dword d;
-    byte result[12];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_indication_coefs_set",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  if (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos)
-  {
-    do
-    {
-      d = plci->li_plci_b_queue[plci->li_plci_b_read_pos];
-      if (!(d & LI_PLCI_B_SKIP_FLAG))
-      {
-        if (plci->appl->appl_flags & APPL_FLAG_OLD_LI_SPEC)
-        {
-          if (d & LI_PLCI_B_DISC_FLAG)
-          {
-            result[0] = 5;
-            PUT_WORD (&result[1], LI_IND_DISCONNECT);
-            result[3] = 2;
-            PUT_WORD (&result[4], _LI_USER_INITIATED);
-          }
-          else
-          {
-            result[0] = 7;
-            PUT_WORD (&result[1], LI_IND_CONNECT_ACTIVE);
-            result[3] = 4;
-            PUT_DWORD (&result[4], d & ~LI_PLCI_B_FLAG_MASK);
-          }
-        }
-        else
-        {
-          if (d & LI_PLCI_B_DISC_FLAG)
-          {
-            result[0] = 9;
-            PUT_WORD (&result[1], LI_IND_DISCONNECT);
-            result[3] = 6;
-            PUT_DWORD (&result[4], d & ~LI_PLCI_B_FLAG_MASK);
-            PUT_WORD (&result[8], _LI_USER_INITIATED);
-          }
-          else
-          {
-            result[0] = 7;
-            PUT_WORD (&result[1], LI_IND_CONNECT_ACTIVE);
-            result[3] = 4;
-            PUT_DWORD (&result[4], d & ~LI_PLCI_B_FLAG_MASK);
-          }
-        }
-        sendf (plci->appl, _FACILITY_I, Id & 0xffffL, 0,
-          "ws", SELECTOR_LINE_INTERCONNECT, result);
-      }
-      plci->li_plci_b_read_pos = (plci->li_plci_b_read_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ?
-        0 : plci->li_plci_b_read_pos + 1;
-    } while (!(d & LI_PLCI_B_LAST_FLAG) && (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos));
-  }
-}
-
-
-static void mixer_indication_xconnect_from (dword Id, PLCI   *plci, byte   *msg, word length)
-{
-  word i, j, ch;
-  struct xconnect_transfer_address_s s,   *p;
-  DIVA_CAPI_ADAPTER   *a;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_indication_xconnect_from %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, (int) length));
-
-  a = plci->adapter;
-  i = 1;
-  for (i = 1; i < length; i += 16)
-  {
-    s.card_address.low = msg[i] | (msg[i+1] << 8) | (((dword)(msg[i+2])) << 16) | (((dword)(msg[i+3])) << 24);
-    s.card_address.high = msg[i+4] | (msg[i+5] << 8) | (((dword)(msg[i+6])) << 16) | (((dword)(msg[i+7])) << 24);
-    s.offset = msg[i+8] | (msg[i+9] << 8) | (((dword)(msg[i+10])) << 16) | (((dword)(msg[i+11])) << 24);
-    ch = msg[i+12] | (msg[i+13] << 8);
-    j = ch & XCONNECT_CHANNEL_NUMBER_MASK;
-    if (!a->li_pri && (plci->li_bchannel_id == 2))
-      j = 1 - j;
-    j += a->li_base;
-    if (ch & XCONNECT_CHANNEL_PORT_PC)
-      p = &(li_config_table[j].send_pc);
-    else
-      p = &(li_config_table[j].send_b);
-    p->card_address.low = s.card_address.low;
-    p->card_address.high = s.card_address.high;
-    p->offset = s.offset;
-    li_config_table[j].channel |= LI_CHANNEL_ADDRESSES_SET;
-  }
-  if (plci->internal_command_queue[0]
-   && ((plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_2)
-    || (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_3)
-    || (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_4)))
-  {
-    (*(plci->internal_command_queue[0]))(Id, plci, 0);
-    if (!plci->internal_command)
-      next_internal_command (Id, plci);
-  }
-  mixer_notify_update (plci, true);
-}
-
-
-static void mixer_indication_xconnect_to (dword Id, PLCI   *plci, byte   *msg, word length)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_indication_xconnect_to %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, (int) length));
-
-}
-
-
-static byte mixer_notify_source_removed (PLCI   *plci, dword plci_b_id)
-{
-  word plci_b_write_pos;
-
-  plci_b_write_pos = plci->li_plci_b_write_pos;
-  if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
-    LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 1)
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: LI request overrun",
-      (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-      (char   *)(FILE_), __LINE__));
-    return (false);
-  }
-  plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_DISC_FLAG;
-  plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES-1) ? 0 : plci_b_write_pos + 1;
-  plci->li_plci_b_write_pos = plci_b_write_pos;
-  return (true);
-}
-
-
-static void mixer_remove (PLCI   *plci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  PLCI   *notify_plci;
-  dword plci_b_id;
-  word i, j;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: mixer_remove",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  a = plci->adapter;
-  plci_b_id = (plci->Id << 8) | UnMapController (plci->adapter->Id);
-  if (a->profile.Global_Options & GL_LINE_INTERCONNECT_SUPPORTED)
-  {
-    if ((plci->li_bchannel_id != 0)
-     && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-    {
-      i = a->li_base + (plci->li_bchannel_id - 1);
-      if ((li_config_table[i].curchnl | li_config_table[i].channel) & LI_CHANNEL_INVOLVED)
-      {
-        for (j = 0; j < li_total_channels; j++)
-        {
-          if ((li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
-           || (li_config_table[j].flag_table[i] & LI_FLAG_INTERCONNECT))
-          {
-            notify_plci = li_config_table[j].plci;
-            if ((notify_plci != NULL)
-             && (notify_plci != plci)
-             && (notify_plci->appl != NULL)
-             && !(notify_plci->appl->appl_flags & APPL_FLAG_OLD_LI_SPEC)
-             && (notify_plci->State)
-             && notify_plci->NL.Id && !notify_plci->nl_remove_id)
-            {
-              mixer_notify_source_removed (notify_plci, plci_b_id);
-            }
-          }
-        }
-        mixer_clear_config (plci);
-        mixer_calculate_coefs (a);
-        mixer_notify_update (plci, true);
-      }
-      li_config_table[i].plci = NULL;
-      plci->li_bchannel_id = 0;
-    }
-  }
-}
-
-
-/*------------------------------------------------------------------*/
-/* Echo canceller facilities                                        */
-/*------------------------------------------------------------------*/
-
-
-static void ec_write_parameters (PLCI   *plci)
-{
-  word w;
-    byte parameter_buffer[6];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_write_parameters",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  parameter_buffer[0] = 5;
-  parameter_buffer[1] = DSP_CTRL_SET_LEC_PARAMETERS;
-  PUT_WORD (&parameter_buffer[2], plci->ec_idi_options);
-  plci->ec_idi_options &= ~LEC_RESET_COEFFICIENTS;
-  w = (plci->ec_tail_length == 0) ? 128 : plci->ec_tail_length;
-  PUT_WORD (&parameter_buffer[4], w);
-  add_p (plci, FTY, parameter_buffer);
-  sig_req (plci, TEL_CTRL, 0);
-  send_req (plci);
-}
-
-
-static void ec_clear_config (PLCI   *plci)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_clear_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  plci->ec_idi_options = LEC_ENABLE_ECHO_CANCELLER |
-    LEC_MANUAL_DISABLE | LEC_ENABLE_NONLINEAR_PROCESSING;
-  plci->ec_tail_length = 0;
-}
-
-
-static void ec_prepare_switch (dword Id, PLCI   *plci)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_prepare_switch",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-}
-
-
-static word ec_save_config (dword Id, PLCI   *plci, byte Rc)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_save_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
-
-  return (GOOD);
-}
-
-
-static word ec_restore_config (dword Id, PLCI   *plci, byte Rc)
-{
-  word Info;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_restore_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
-
-  Info = GOOD;
-  if (plci->B1_facilities & B1_FACILITY_EC)
-  {
-    switch (plci->adjust_b_state)
-    {
-    case ADJUST_B_RESTORE_EC_1:
-      plci->internal_command = plci->adjust_b_command;
-      if (plci->sig_req)
-      {
-        plci->adjust_b_state = ADJUST_B_RESTORE_EC_1;
-        break;
-      }
-      ec_write_parameters (plci);
-      plci->adjust_b_state = ADJUST_B_RESTORE_EC_2;
-      break;
-    case ADJUST_B_RESTORE_EC_2:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Restore EC failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _WRONG_STATE;
-        break;
-      }
-      break;
-    }
-  }
-  return (Info);
-}
-
-
-static void ec_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word internal_command, Info;
-    byte result[8];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_command %02x %04x %04x %04x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command,
-    plci->ec_cmd, plci->ec_idi_options, plci->ec_tail_length));
-
-  Info = GOOD;
-  if (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC)
-  {
-    result[0] = 2;
-    PUT_WORD (&result[1], EC_SUCCESS);
-  }
-  else
-  {
-    result[0] = 5;
-    PUT_WORD (&result[1], plci->ec_cmd);
-    result[3] = 2;
-    PUT_WORD (&result[4], GOOD);
-  }
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (plci->ec_cmd)
-  {
-  case EC_ENABLE_OPERATION:
-  case EC_FREEZE_COEFFICIENTS:
-  case EC_RESUME_COEFFICIENT_UPDATE:
-  case EC_RESET_COEFFICIENTS:
-    switch (internal_command)
-    {
-    default:
-      adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities |
-        B1_FACILITY_EC), EC_COMMAND_1);
-    case EC_COMMAND_1:
-      if (adjust_b_process (Id, plci, Rc) != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Load EC failed",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      if (plci->internal_command)
-        return;
-    case EC_COMMAND_2:
-      if (plci->sig_req)
-      {
-        plci->internal_command = EC_COMMAND_2;
-        return;
-      }
-      plci->internal_command = EC_COMMAND_3;
-      ec_write_parameters (plci);
-      return;
-    case EC_COMMAND_3:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Enable EC failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      break;
-    }
-    break;
-
-  case EC_DISABLE_OPERATION:
-    switch (internal_command)
-    {
-    default:
-    case EC_COMMAND_1:
-      if (plci->B1_facilities & B1_FACILITY_EC)
-      {
-        if (plci->sig_req)
-        {
-          plci->internal_command = EC_COMMAND_1;
-          return;
-        }
-        plci->internal_command = EC_COMMAND_2;
-        ec_write_parameters (plci);
-        return;
-      }
-      Rc = OK;
-    case EC_COMMAND_2:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Disable EC failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      adjust_b1_resource (Id, plci, NULL, (word)(plci->B1_facilities &
-        ~B1_FACILITY_EC), EC_COMMAND_3);
-    case EC_COMMAND_3:
-      if (adjust_b_process (Id, plci, Rc) != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Unload EC failed",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _FACILITY_NOT_SUPPORTED;
-        break;
-      }
-      if (plci->internal_command)
-        return;
-      break;
-    }
-    break;
-  }
-  sendf (plci->appl, _FACILITY_R | CONFIRM, Id & 0xffffL, plci->number,
-    "wws", Info, (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC) ?
-    PRIV_SELECTOR_ECHO_CANCELLER : SELECTOR_ECHO_CANCELLER, result);
-}
-
-
-static byte ec_request (dword Id, word Number, DIVA_CAPI_ADAPTER   *a, PLCI   *plci, APPL   *appl, API_PARSE *msg)
-{
-  word Info;
-  word opt;
-    API_PARSE ec_parms[3];
-    byte result[16];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_request",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  Info = GOOD;
-  result[0] = 0;
-  if (!(a->man_profile.private_options & (1L << PRIVATE_ECHO_CANCELLER)))
-  {
-    dbug (1, dprintf ("[%06lx] %s,%d: Facility not supported",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-    Info = _FACILITY_NOT_SUPPORTED;
-  }
-  else
-  {
-    if (appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC)
-    {
-      if (api_parse (&msg[1].info[1], msg[1].length, "w", ec_parms))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _WRONG_MESSAGE_FORMAT;
-      }
-      else
-      {
-        if (plci == NULL)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong PLCI",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_IDENTIFIER;
-        }
-        else if (!plci->State || !plci->NL.Id || plci->nl_remove_id)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong state",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_STATE;
-        }
-        else
-        {
-          plci->command = 0;
-          plci->ec_cmd = GET_WORD (ec_parms[0].info);
-          plci->ec_idi_options &= ~(LEC_MANUAL_DISABLE | LEC_RESET_COEFFICIENTS);
-          result[0] = 2;
-          PUT_WORD (&result[1], EC_SUCCESS);
-          if (msg[1].length >= 4)
-          {
-            opt = GET_WORD (&ec_parms[0].info[2]);
-            plci->ec_idi_options &= ~(LEC_ENABLE_NONLINEAR_PROCESSING |
-              LEC_ENABLE_2100HZ_DETECTOR | LEC_REQUIRE_2100HZ_REVERSALS);
-            if (!(opt & EC_DISABLE_NON_LINEAR_PROCESSING))
-              plci->ec_idi_options |= LEC_ENABLE_NONLINEAR_PROCESSING;
-            if (opt & EC_DETECT_DISABLE_TONE)
-              plci->ec_idi_options |= LEC_ENABLE_2100HZ_DETECTOR;
-            if (!(opt & EC_DO_NOT_REQUIRE_REVERSALS))
-              plci->ec_idi_options |= LEC_REQUIRE_2100HZ_REVERSALS;
-            if (msg[1].length >= 6)
-            {
-              plci->ec_tail_length = GET_WORD (&ec_parms[0].info[4]);
-            }
-          }
-          switch (plci->ec_cmd)
-          {
-          case EC_ENABLE_OPERATION:
-            plci->ec_idi_options &= ~LEC_FREEZE_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          case EC_DISABLE_OPERATION:
-            plci->ec_idi_options = LEC_ENABLE_ECHO_CANCELLER |
-              LEC_MANUAL_DISABLE | LEC_ENABLE_NONLINEAR_PROCESSING |
-              LEC_RESET_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          case EC_FREEZE_COEFFICIENTS:
-            plci->ec_idi_options |= LEC_FREEZE_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          case EC_RESUME_COEFFICIENT_UPDATE:
-            plci->ec_idi_options &= ~LEC_FREEZE_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          case EC_RESET_COEFFICIENTS:
-            plci->ec_idi_options |= LEC_RESET_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          default:
-            dbug (1, dprintf ("[%06lx] %s,%d: EC unknown request %04x",
-              UnMapId (Id), (char   *)(FILE_), __LINE__, plci->ec_cmd));
-            PUT_WORD (&result[1], EC_UNSUPPORTED_OPERATION);
-          }
-        }
-      }
-    }
-    else
-    {
-      if (api_parse (&msg[1].info[1], msg[1].length, "ws", ec_parms))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Wrong message format",
-          UnMapId (Id), (char   *)(FILE_), __LINE__));
-        Info = _WRONG_MESSAGE_FORMAT;
-      }
-      else
-      {
-        if (GET_WORD (ec_parms[0].info) == EC_GET_SUPPORTED_SERVICES)
-        {
-          result[0] = 11;
-          PUT_WORD (&result[1], EC_GET_SUPPORTED_SERVICES);
-          result[3] = 8;
-          PUT_WORD (&result[4], GOOD);
-          PUT_WORD (&result[6], 0x0007);
-          PUT_WORD (&result[8], LEC_MAX_SUPPORTED_TAIL_LENGTH);
-          PUT_WORD (&result[10], 0);
-        }
-        else if (plci == NULL)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong PLCI",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_IDENTIFIER;
-        }
-        else if (!plci->State || !plci->NL.Id || plci->nl_remove_id)
-        {
-          dbug (1, dprintf ("[%06lx] %s,%d: Wrong state",
-            UnMapId (Id), (char   *)(FILE_), __LINE__));
-          Info = _WRONG_STATE;
-        }
-        else
-        {
-          plci->command = 0;
-          plci->ec_cmd = GET_WORD (ec_parms[0].info);
-          plci->ec_idi_options &= ~(LEC_MANUAL_DISABLE | LEC_RESET_COEFFICIENTS);
-          result[0] = 5;
-          PUT_WORD (&result[1], plci->ec_cmd);
-          result[3] = 2;
-          PUT_WORD (&result[4], GOOD);
-          plci->ec_idi_options &= ~(LEC_ENABLE_NONLINEAR_PROCESSING |
-            LEC_ENABLE_2100HZ_DETECTOR | LEC_REQUIRE_2100HZ_REVERSALS);
-          plci->ec_tail_length = 0;
-          if (ec_parms[1].length >= 2)
-          {
-            opt = GET_WORD (&ec_parms[1].info[1]);
-            if (opt & EC_ENABLE_NON_LINEAR_PROCESSING)
-              plci->ec_idi_options |= LEC_ENABLE_NONLINEAR_PROCESSING;
-            if (opt & EC_DETECT_DISABLE_TONE)
-              plci->ec_idi_options |= LEC_ENABLE_2100HZ_DETECTOR;
-            if (!(opt & EC_DO_NOT_REQUIRE_REVERSALS))
-              plci->ec_idi_options |= LEC_REQUIRE_2100HZ_REVERSALS;
-            if (ec_parms[1].length >= 4)
-            {
-              plci->ec_tail_length = GET_WORD (&ec_parms[1].info[3]);
-            }
-          }
-          switch (plci->ec_cmd)
-          {
-          case EC_ENABLE_OPERATION:
-            plci->ec_idi_options &= ~LEC_FREEZE_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          case EC_DISABLE_OPERATION:
-            plci->ec_idi_options = LEC_ENABLE_ECHO_CANCELLER |
-              LEC_MANUAL_DISABLE | LEC_ENABLE_NONLINEAR_PROCESSING |
-              LEC_RESET_COEFFICIENTS;
-            start_internal_command (Id, plci, ec_command);
-            return (false);
-
-          default:
-            dbug (1, dprintf ("[%06lx] %s,%d: EC unknown request %04x",
-              UnMapId (Id), (char   *)(FILE_), __LINE__, plci->ec_cmd));
-            PUT_WORD (&result[4], _FACILITY_SPECIFIC_FUNCTION_NOT_SUPP);
-          }
-        }
-      }
-    }
-  }
-  sendf (appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
-    "wws", Info, (appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC) ?
-    PRIV_SELECTOR_ECHO_CANCELLER : SELECTOR_ECHO_CANCELLER, result);
-  return (false);
-}
-
-
-static void ec_indication (dword Id, PLCI   *plci, byte   *msg, word length)
-{
-    byte result[8];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: ec_indication",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
-
-  if (!(plci->ec_idi_options & LEC_MANUAL_DISABLE))
-  {
-    if (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC)
-    {
-      result[0] = 2;
-      PUT_WORD (&result[1], 0);
-      switch (msg[1])
-      {
-      case LEC_DISABLE_TYPE_CONTIGNUOUS_2100HZ:
-        PUT_WORD (&result[1], EC_BYPASS_DUE_TO_CONTINUOUS_2100HZ);
-        break;
-      case LEC_DISABLE_TYPE_REVERSED_2100HZ:
-        PUT_WORD (&result[1], EC_BYPASS_DUE_TO_REVERSED_2100HZ);
-        break;
-      case LEC_DISABLE_RELEASED:
-        PUT_WORD (&result[1], EC_BYPASS_RELEASED);
-        break;
-      }
-    }
-    else
-    {
-      result[0] = 5;
-      PUT_WORD (&result[1], EC_BYPASS_INDICATION);
-      result[3] = 2;
-      PUT_WORD (&result[4], 0);
-      switch (msg[1])
-      {
-      case LEC_DISABLE_TYPE_CONTIGNUOUS_2100HZ:
-        PUT_WORD (&result[4], EC_BYPASS_DUE_TO_CONTINUOUS_2100HZ);
-        break;
-      case LEC_DISABLE_TYPE_REVERSED_2100HZ:
-        PUT_WORD (&result[4], EC_BYPASS_DUE_TO_REVERSED_2100HZ);
-        break;
-      case LEC_DISABLE_RELEASED:
-        PUT_WORD (&result[4], EC_BYPASS_RELEASED);
-        break;
-      }
-    }
-    sendf (plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC) ?
-      PRIV_SELECTOR_ECHO_CANCELLER : SELECTOR_ECHO_CANCELLER, result);
-  }
-}
-
-
-
-/*------------------------------------------------------------------*/
-/* Advanced voice                                                   */
-/*------------------------------------------------------------------*/
-
-static void adv_voice_write_coefs (PLCI   *plci, word write_command)
+       byte mask;
+       byte from_pc;
+       byte to_pc;
+} xconnect_write_prog[] =
 {
-  DIVA_CAPI_ADAPTER   *a;
-  word i;
-  byte *p;
-
-  word w, n, j, k;
-  byte ch_map[MIXER_CHANNELS_BRI];
-
-    byte coef_buffer[ADV_VOICE_COEF_BUFFER_SIZE + 2];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_write_coefs %d",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, write_command));
-
-  a = plci->adapter;
-  p = coef_buffer + 1;
-  *(p++) = DSP_CTRL_OLD_SET_MIXER_COEFFICIENTS;
-  i = 0;
-  while (i + sizeof(word) <= a->adv_voice_coef_length)
-  {
-    PUT_WORD (p, GET_WORD (a->adv_voice_coef_buffer + i));
-    p += 2;
-    i += 2;
-  }
-  while (i < ADV_VOICE_OLD_COEF_COUNT * sizeof(word))
-  {
-    PUT_WORD (p, 0x8000);
-    p += 2;
-    i += 2;
-  }
+       { LI_COEF_CH_CH, false, false },
+       { LI_COEF_CH_PC, false, true },
+       { LI_COEF_PC_CH, true, false },
+       { LI_COEF_PC_PC, true, true }
+};
 
-  if (!a->li_pri && (plci->li_bchannel_id == 0))
-  {
-    if ((li_config_table[a->li_base].plci == NULL) && (li_config_table[a->li_base + 1].plci != NULL))
-    {
-      plci->li_bchannel_id = 1;
-      li_config_table[a->li_base].plci = plci;
-      dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_set_bchannel_id %d",
-        (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-        (char   *)(FILE_), __LINE__, plci->li_bchannel_id));
-    }
-    else if ((li_config_table[a->li_base].plci != NULL) && (li_config_table[a->li_base + 1].plci == NULL))
-    {
-      plci->li_bchannel_id = 2;
-      li_config_table[a->li_base + 1].plci = plci;
-      dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_set_bchannel_id %d",
-        (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-        (char   *)(FILE_), __LINE__, plci->li_bchannel_id));
-    }
-  }
-  if (!a->li_pri && (plci->li_bchannel_id != 0)
-   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    i = a->li_base + (plci->li_bchannel_id - 1);
-    switch (write_command)
-    {
-    case ADV_VOICE_WRITE_ACTIVATION:
-      j = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
-      k = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
-      if (!(plci->B1_facilities & B1_FACILITY_MIXER))
-      {
-        li_config_table[j].flag_table[i] |= LI_FLAG_CONFERENCE | LI_FLAG_MIX;
-        li_config_table[i].flag_table[j] |= LI_FLAG_CONFERENCE | LI_FLAG_MONITOR;
-      }
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
-      {
-        li_config_table[k].flag_table[i] |= LI_FLAG_CONFERENCE | LI_FLAG_MIX;
-        li_config_table[i].flag_table[k] |= LI_FLAG_CONFERENCE | LI_FLAG_MONITOR;
-        li_config_table[k].flag_table[j] |= LI_FLAG_CONFERENCE;
-        li_config_table[j].flag_table[k] |= LI_FLAG_CONFERENCE;
-      }
-      mixer_calculate_coefs (a);
-      li_config_table[i].curchnl = li_config_table[i].channel;
-      li_config_table[j].curchnl = li_config_table[j].channel;
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
-        li_config_table[k].curchnl = li_config_table[k].channel;
-      break;
-
-    case ADV_VOICE_WRITE_DEACTIVATION:
-      for (j = 0; j < li_total_channels; j++)
-      {
-        li_config_table[i].flag_table[j] = 0;
-        li_config_table[j].flag_table[i] = 0;
-      }
-      k = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
-      for (j = 0; j < li_total_channels; j++)
-      {
-        li_config_table[k].flag_table[j] = 0;
-        li_config_table[j].flag_table[k] = 0;
-      }
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
-      {
-        k = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
-        for (j = 0; j < li_total_channels; j++)
-        {
-          li_config_table[k].flag_table[j] = 0;
-          li_config_table[j].flag_table[k] = 0;
-        }
-      }
-      mixer_calculate_coefs (a);
-      break;
-    }
-    if (plci->B1_facilities & B1_FACILITY_MIXER)
-    {
-      w = 0;
-      if (ADV_VOICE_NEW_COEF_BASE + sizeof(word) <= a->adv_voice_coef_length)
-        w = GET_WORD (a->adv_voice_coef_buffer + ADV_VOICE_NEW_COEF_BASE);
-      if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
-        w |= MIXER_FEATURE_ENABLE_TX_DATA;
-      if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
-        w |= MIXER_FEATURE_ENABLE_RX_DATA;
-      *(p++) = (byte) w;
-      *(p++) = (byte)(w >> 8);
-      for (j = 0; j < sizeof(ch_map); j += 2)
-      {
-        ch_map[j] = (byte)(j + (plci->li_bchannel_id - 1));
-        ch_map[j+1] = (byte)(j + (2 - plci->li_bchannel_id));
-      }
-      for (n = 0; n < ARRAY_SIZE(mixer_write_prog_bri); n++)
-      {
-        i = a->li_base + ch_map[mixer_write_prog_bri[n].to_ch];
-        j = a->li_base + ch_map[mixer_write_prog_bri[n].from_ch];
-        if (li_config_table[i].channel & li_config_table[j].channel & LI_CHANNEL_INVOLVED)
-        {
-          *(p++) = ((li_config_table[i].coef_table[j] & mixer_write_prog_bri[n].mask) ? 0x80 : 0x01);
-          w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
-          li_config_table[i].coef_table[j] ^= (w & mixer_write_prog_bri[n].mask) << 4;
-        }
-        else
-        {
-          *(p++) = (ADV_VOICE_NEW_COEF_BASE + sizeof(word) + n < a->adv_voice_coef_length) ?
-            a->adv_voice_coef_buffer[ADV_VOICE_NEW_COEF_BASE + sizeof(word) + n] : 0x00;
-        }
-      }
-    }
-    else
-    {
-      for (i = ADV_VOICE_NEW_COEF_BASE; i < a->adv_voice_coef_length; i++)
-        *(p++) = a->adv_voice_coef_buffer[i];
-    }
-  }
-  else
 
-  {
-    for (i = ADV_VOICE_NEW_COEF_BASE; i < a->adv_voice_coef_length; i++)
-      *(p++) = a->adv_voice_coef_buffer[i];
-  }
-  coef_buffer[0] = (p - coef_buffer) - 1;
-  add_p (plci, FTY, coef_buffer);
-  sig_req (plci, TEL_CTRL, 0);
-  send_req (plci);
+static void xconnect_query_addresses(PLCI *plci)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word w, ch;
+       byte *p;
+
+       dbug(1, dprintf("[%06lx] %s,%d: xconnect_query_addresses",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
+
+       a = plci->adapter;
+       if (a->li_pri && ((plci->li_bchannel_id == 0)
+                         || (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci != plci)))
+       {
+               dbug(1, dprintf("[%06x] %s,%d: Channel id wiped out",
+                               (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                               (char *)(FILE_), __LINE__));
+               return;
+       }
+       p = plci->internal_req_buffer;
+       ch = (a->li_pri) ? plci->li_bchannel_id - 1 : 0;
+       *(p++) = UDATA_REQUEST_XCONNECT_FROM;
+       w = ch;
+       *(p++) = (byte) w;
+       *(p++) = (byte)(w >> 8);
+       w = ch | XCONNECT_CHANNEL_PORT_PC;
+       *(p++) = (byte) w;
+       *(p++) = (byte)(w >> 8);
+       plci->NData[0].P = plci->internal_req_buffer;
+       plci->NData[0].PLength = p - plci->internal_req_buffer;
+       plci->NL.X = plci->NData;
+       plci->NL.ReqCh = 0;
+       plci->NL.Req = plci->nl_req = (byte) N_UDATA;
+       plci->adapter->request(&plci->NL);
+}
+
+
+static void xconnect_write_coefs(PLCI *plci, word internal_command)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: xconnect_write_coefs %04x",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, internal_command));
+
+       plci->li_write_command = internal_command;
+       plci->li_write_channel = 0;
+}
+
+
+static byte xconnect_write_coefs_process(dword Id, PLCI *plci, byte Rc)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word w, n, i, j, r, s, to_ch;
+       dword d;
+       byte *p;
+       struct xconnect_transfer_address_s   *transfer_address;
+       byte ch_map[MIXER_CHANNELS_BRI];
+
+       dbug(1, dprintf("[%06x] %s,%d: xconnect_write_coefs_process %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->li_write_channel));
+
+       a = plci->adapter;
+       if ((plci->li_bchannel_id == 0)
+           || (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci != plci))
+       {
+               dbug(1, dprintf("[%06x] %s,%d: Channel id wiped out",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               return (true);
+       }
+       i = a->li_base + (plci->li_bchannel_id - 1);
+       j = plci->li_write_channel;
+       p = plci->internal_req_buffer;
+       if (j != 0)
+       {
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: LI write coefs failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       return (false);
+               }
+       }
+       if (li_config_table[i].adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+       {
+               r = 0;
+               s = 0;
+               if (j < li_total_channels)
+               {
+                       if (li_config_table[i].channel & LI_CHANNEL_ADDRESSES_SET)
+                       {
+                               s = ((li_config_table[i].send_b.card_address.low | li_config_table[i].send_b.card_address.high) ?
+                                    (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_PC | LI_COEF_PC_PC)) &
+                                       ((li_config_table[i].send_pc.card_address.low | li_config_table[i].send_pc.card_address.high) ?
+                                        (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_PC_CH));
+                       }
+                       r = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                       while ((j < li_total_channels)
+                              && ((r == 0)
+                                  || (!(li_config_table[j].channel & LI_CHANNEL_ADDRESSES_SET))
+                                  || (!li_config_table[j].adapter->li_pri
+                                      && (j >= li_config_table[j].adapter->li_base + MIXER_BCHANNELS_BRI))
+                                  || (((li_config_table[j].send_b.card_address.low != li_config_table[i].send_b.card_address.low)
+                                       || (li_config_table[j].send_b.card_address.high != li_config_table[i].send_b.card_address.high))
+                                      && (!(a->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)
+                                          || !(li_config_table[j].adapter->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)))
+                                  || ((li_config_table[j].adapter->li_base != a->li_base)
+                                      && !(r & s &
+                                           ((li_config_table[j].send_b.card_address.low | li_config_table[j].send_b.card_address.high) ?
+                                            (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_PC_CH | LI_COEF_PC_PC)) &
+                                           ((li_config_table[j].send_pc.card_address.low | li_config_table[j].send_pc.card_address.high) ?
+                                            (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_CH_PC))))))
+                       {
+                               j++;
+                               if (j < li_total_channels)
+                                       r = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                       }
+               }
+               if (j < li_total_channels)
+               {
+                       plci->internal_command = plci->li_write_command;
+                       if (plci_nl_busy(plci))
+                               return (true);
+                       to_ch = (a->li_pri) ? plci->li_bchannel_id - 1 : 0;
+                       *(p++) = UDATA_REQUEST_XCONNECT_TO;
+                       do
+                       {
+                               if (li_config_table[j].adapter->li_base != a->li_base)
+                               {
+                                       r &= s &
+                                               ((li_config_table[j].send_b.card_address.low | li_config_table[j].send_b.card_address.high) ?
+                                                (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_PC_CH | LI_COEF_PC_PC)) &
+                                               ((li_config_table[j].send_pc.card_address.low | li_config_table[j].send_pc.card_address.high) ?
+                                                (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_CH_PC));
+                               }
+                               n = 0;
+                               do
+                               {
+                                       if (r & xconnect_write_prog[n].mask)
+                                       {
+                                               if (xconnect_write_prog[n].from_pc)
+                                                       transfer_address = &(li_config_table[j].send_pc);
+                                               else
+                                                       transfer_address = &(li_config_table[j].send_b);
+                                               d = transfer_address->card_address.low;
+                                               *(p++) = (byte) d;
+                                               *(p++) = (byte)(d >> 8);
+                                               *(p++) = (byte)(d >> 16);
+                                               *(p++) = (byte)(d >> 24);
+                                               d = transfer_address->card_address.high;
+                                               *(p++) = (byte) d;
+                                               *(p++) = (byte)(d >> 8);
+                                               *(p++) = (byte)(d >> 16);
+                                               *(p++) = (byte)(d >> 24);
+                                               d = transfer_address->offset;
+                                               *(p++) = (byte) d;
+                                               *(p++) = (byte)(d >> 8);
+                                               *(p++) = (byte)(d >> 16);
+                                               *(p++) = (byte)(d >> 24);
+                                               w = xconnect_write_prog[n].to_pc ? to_ch | XCONNECT_CHANNEL_PORT_PC : to_ch;
+                                               *(p++) = (byte) w;
+                                               *(p++) = (byte)(w >> 8);
+                                               w = ((li_config_table[i].coef_table[j] & xconnect_write_prog[n].mask) == 0) ? 0x01 :
+                                                       (li_config_table[i].adapter->u_law ?
+                                                        (li_config_table[j].adapter->u_law ? 0x80 : 0x86) :
+                                                        (li_config_table[j].adapter->u_law ? 0x7a : 0x80));
+                                               *(p++) = (byte) w;
+                                               *(p++) = (byte) 0;
+                                               li_config_table[i].coef_table[j] ^= xconnect_write_prog[n].mask << 4;
+                                       }
+                                       n++;
+                               } while ((n < ARRAY_SIZE(xconnect_write_prog))
+                                        && ((p - plci->internal_req_buffer) + 16 < INTERNAL_REQ_BUFFER_SIZE));
+                               if (n == ARRAY_SIZE(xconnect_write_prog))
+                               {
+                                       do
+                                       {
+                                               j++;
+                                               if (j < li_total_channels)
+                                                       r = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                                       } while ((j < li_total_channels)
+                                                && ((r == 0)
+                                                    || (!(li_config_table[j].channel & LI_CHANNEL_ADDRESSES_SET))
+                                                    || (!li_config_table[j].adapter->li_pri
+                                                        && (j >= li_config_table[j].adapter->li_base + MIXER_BCHANNELS_BRI))
+                                                    || (((li_config_table[j].send_b.card_address.low != li_config_table[i].send_b.card_address.low)
+                                                         || (li_config_table[j].send_b.card_address.high != li_config_table[i].send_b.card_address.high))
+                                                        && (!(a->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)
+                                                            || !(li_config_table[j].adapter->manufacturer_features & MANUFACTURER_FEATURE_DMACONNECT)))
+                                                    || ((li_config_table[j].adapter->li_base != a->li_base)
+                                                        && !(r & s &
+                                                             ((li_config_table[j].send_b.card_address.low | li_config_table[j].send_b.card_address.high) ?
+                                                              (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_PC_CH | LI_COEF_PC_PC)) &
+                                                             ((li_config_table[j].send_pc.card_address.low | li_config_table[j].send_pc.card_address.high) ?
+                                                              (LI_COEF_CH_CH | LI_COEF_CH_PC | LI_COEF_PC_CH | LI_COEF_PC_PC) : (LI_COEF_CH_CH | LI_COEF_CH_PC))))));
+                               }
+                       } while ((j < li_total_channels)
+                                && ((p - plci->internal_req_buffer) + 16 < INTERNAL_REQ_BUFFER_SIZE));
+               }
+               else if (j == li_total_channels)
+               {
+                       plci->internal_command = plci->li_write_command;
+                       if (plci_nl_busy(plci))
+                               return (true);
+                       if (a->li_pri)
+                       {
+                               *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_PRI_SYNC;
+                               w = 0;
+                               if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_TX_DATA;
+                               if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_RX_DATA;
+                               *(p++) = (byte) w;
+                               *(p++) = (byte)(w >> 8);
+                       }
+                       else
+                       {
+                               *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_BRI;
+                               w = 0;
+                               if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI)
+                                   && (ADV_VOICE_NEW_COEF_BASE + sizeof(word) <= a->adv_voice_coef_length))
+                               {
+                                       w = GET_WORD(a->adv_voice_coef_buffer + ADV_VOICE_NEW_COEF_BASE);
+                               }
+                               if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_TX_DATA;
+                               if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_RX_DATA;
+                               *(p++) = (byte) w;
+                               *(p++) = (byte)(w >> 8);
+                               for (j = 0; j < sizeof(ch_map); j += 2)
+                               {
+                                       if (plci->li_bchannel_id == 2)
+                                       {
+                                               ch_map[j] = (byte)(j + 1);
+                                               ch_map[j + 1] = (byte) j;
+                                       }
+                                       else
+                                       {
+                                               ch_map[j] = (byte) j;
+                                               ch_map[j + 1] = (byte)(j + 1);
+                                       }
+                               }
+                               for (n = 0; n < ARRAY_SIZE(mixer_write_prog_bri); n++)
+                               {
+                                       i = a->li_base + ch_map[mixer_write_prog_bri[n].to_ch];
+                                       j = a->li_base + ch_map[mixer_write_prog_bri[n].from_ch];
+                                       if (li_config_table[i].channel & li_config_table[j].channel & LI_CHANNEL_INVOLVED)
+                                       {
+                                               *p = (mixer_write_prog_bri[n].xconnect_override != 0) ?
+                                                       mixer_write_prog_bri[n].xconnect_override :
+                                                       ((li_config_table[i].coef_table[j] & mixer_write_prog_bri[n].mask) ? 0x80 : 0x01);
+                                               if ((i >= a->li_base + MIXER_BCHANNELS_BRI) || (j >= a->li_base + MIXER_BCHANNELS_BRI))
+                                               {
+                                                       w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                                                       li_config_table[i].coef_table[j] ^= (w & mixer_write_prog_bri[n].mask) << 4;
+                                               }
+                                       }
+                                       else
+                                       {
+                                               *p = 0x00;
+                                               if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI->tel == ADV_VOICE))
+                                               {
+                                                       w = (plci == a->AdvSignalPLCI) ? n : mixer_swapped_index_bri[n];
+                                                       if (ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w < a->adv_voice_coef_length)
+                                                               *p = a->adv_voice_coef_buffer[ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w];
+                                               }
+                                       }
+                                       p++;
+                               }
+                       }
+                       j = li_total_channels + 1;
+               }
+       }
+       else
+       {
+               if (j <= li_total_channels)
+               {
+                       plci->internal_command = plci->li_write_command;
+                       if (plci_nl_busy(plci))
+                               return (true);
+                       if (j < a->li_base)
+                               j = a->li_base;
+                       if (a->li_pri)
+                       {
+                               *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_PRI_SYNC;
+                               w = 0;
+                               if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_TX_DATA;
+                               if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_RX_DATA;
+                               *(p++) = (byte) w;
+                               *(p++) = (byte)(w >> 8);
+                               for (n = 0; n < ARRAY_SIZE(mixer_write_prog_pri); n++)
+                               {
+                                       *(p++) = (byte)((plci->li_bchannel_id - 1) | mixer_write_prog_pri[n].line_flags);
+                                       for (j = a->li_base; j < a->li_base + MIXER_CHANNELS_PRI; j++)
+                                       {
+                                               w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                                               if (w & mixer_write_prog_pri[n].mask)
+                                               {
+                                                       *(p++) = (li_config_table[i].coef_table[j] & mixer_write_prog_pri[n].mask) ? 0x80 : 0x01;
+                                                       li_config_table[i].coef_table[j] ^= mixer_write_prog_pri[n].mask << 4;
+                                               }
+                                               else
+                                                       *(p++) = 0x00;
+                                       }
+                                       *(p++) = (byte)((plci->li_bchannel_id - 1) | MIXER_COEF_LINE_ROW_FLAG | mixer_write_prog_pri[n].line_flags);
+                                       for (j = a->li_base; j < a->li_base + MIXER_CHANNELS_PRI; j++)
+                                       {
+                                               w = ((li_config_table[j].coef_table[i] & 0xf) ^ (li_config_table[j].coef_table[i] >> 4));
+                                               if (w & mixer_write_prog_pri[n].mask)
+                                               {
+                                                       *(p++) = (li_config_table[j].coef_table[i] & mixer_write_prog_pri[n].mask) ? 0x80 : 0x01;
+                                                       li_config_table[j].coef_table[i] ^= mixer_write_prog_pri[n].mask << 4;
+                                               }
+                                               else
+                                                       *(p++) = 0x00;
+                                       }
+                               }
+                       }
+                       else
+                       {
+                               *(p++) = UDATA_REQUEST_SET_MIXER_COEFS_BRI;
+                               w = 0;
+                               if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI)
+                                   && (ADV_VOICE_NEW_COEF_BASE + sizeof(word) <= a->adv_voice_coef_length))
+                               {
+                                       w = GET_WORD(a->adv_voice_coef_buffer + ADV_VOICE_NEW_COEF_BASE);
+                               }
+                               if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_TX_DATA;
+                               if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
+                                       w |= MIXER_FEATURE_ENABLE_RX_DATA;
+                               *(p++) = (byte) w;
+                               *(p++) = (byte)(w >> 8);
+                               for (j = 0; j < sizeof(ch_map); j += 2)
+                               {
+                                       if (plci->li_bchannel_id == 2)
+                                       {
+                                               ch_map[j] = (byte)(j + 1);
+                                               ch_map[j + 1] = (byte) j;
+                                       }
+                                       else
+                                       {
+                                               ch_map[j] = (byte) j;
+                                               ch_map[j + 1] = (byte)(j + 1);
+                                       }
+                               }
+                               for (n = 0; n < ARRAY_SIZE(mixer_write_prog_bri); n++)
+                               {
+                                       i = a->li_base + ch_map[mixer_write_prog_bri[n].to_ch];
+                                       j = a->li_base + ch_map[mixer_write_prog_bri[n].from_ch];
+                                       if (li_config_table[i].channel & li_config_table[j].channel & LI_CHANNEL_INVOLVED)
+                                       {
+                                               *p = ((li_config_table[i].coef_table[j] & mixer_write_prog_bri[n].mask) ? 0x80 : 0x01);
+                                               w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                                               li_config_table[i].coef_table[j] ^= (w & mixer_write_prog_bri[n].mask) << 4;
+                                       }
+                                       else
+                                       {
+                                               *p = 0x00;
+                                               if ((a->AdvSignalPLCI != NULL) && (a->AdvSignalPLCI->tel == ADV_VOICE))
+                                               {
+                                                       w = (plci == a->AdvSignalPLCI) ? n : mixer_swapped_index_bri[n];
+                                                       if (ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w < a->adv_voice_coef_length)
+                                                               *p = a->adv_voice_coef_buffer[ADV_VOICE_NEW_COEF_BASE + sizeof(word) + w];
+                                               }
+                                       }
+                                       p++;
+                               }
+                       }
+                       j = li_total_channels + 1;
+               }
+       }
+       plci->li_write_channel = j;
+       if (p != plci->internal_req_buffer)
+       {
+               plci->NData[0].P = plci->internal_req_buffer;
+               plci->NData[0].PLength = p - plci->internal_req_buffer;
+               plci->NL.X = plci->NData;
+               plci->NL.ReqCh = 0;
+               plci->NL.Req = plci->nl_req = (byte) N_UDATA;
+               plci->adapter->request(&plci->NL);
+       }
+       return (true);
+}
+
+
+static void mixer_notify_update(PLCI *plci, byte others)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word i, w;
+       PLCI *notify_plci;
+       byte msg[sizeof(CAPI_MSG_HEADER) + 6];
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_notify_update %d",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, others));
+
+       a = plci->adapter;
+       if (a->profile.Global_Options & GL_LINE_INTERCONNECT_SUPPORTED)
+       {
+               if (others)
+                       plci->li_notify_update = true;
+               i = 0;
+               do
+               {
+                       notify_plci = NULL;
+                       if (others)
+                       {
+                               while ((i < li_total_channels) && (li_config_table[i].plci == NULL))
+                                       i++;
+                               if (i < li_total_channels)
+                                       notify_plci = li_config_table[i++].plci;
+                       }
+                       else
+                       {
+                               if ((plci->li_bchannel_id != 0)
+                                   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+                               {
+                                       notify_plci = plci;
+                               }
+                       }
+                       if ((notify_plci != NULL)
+                           && !notify_plci->li_notify_update
+                           && (notify_plci->appl != NULL)
+                           && (notify_plci->State)
+                           && notify_plci->NL.Id && !notify_plci->nl_remove_id)
+                       {
+                               notify_plci->li_notify_update = true;
+                               ((CAPI_MSG *) msg)->header.length = 18;
+                               ((CAPI_MSG *) msg)->header.appl_id = notify_plci->appl->Id;
+                               ((CAPI_MSG *) msg)->header.command = _FACILITY_R;
+                               ((CAPI_MSG *) msg)->header.number = 0;
+                               ((CAPI_MSG *) msg)->header.controller = notify_plci->adapter->Id;
+                               ((CAPI_MSG *) msg)->header.plci = notify_plci->Id;
+                               ((CAPI_MSG *) msg)->header.ncci = 0;
+                               ((CAPI_MSG *) msg)->info.facility_req.Selector = SELECTOR_LINE_INTERCONNECT;
+                               ((CAPI_MSG *) msg)->info.facility_req.structs[0] = 3;
+                               PUT_WORD(&(((CAPI_MSG *) msg)->info.facility_req.structs[1]), LI_REQ_SILENT_UPDATE);
+                               ((CAPI_MSG *) msg)->info.facility_req.structs[3] = 0;
+                               w = api_put(notify_plci->appl, (CAPI_MSG *) msg);
+                               if (w != _QUEUE_FULL)
+                               {
+                                       if (w != 0)
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: Interconnect notify failed %06x %d",
+                                                               (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                                                               (char *)(FILE_), __LINE__,
+                                                               (dword)((notify_plci->Id << 8) | UnMapController(notify_plci->adapter->Id)), w));
+                                       }
+                                       notify_plci->li_notify_update = false;
+                               }
+                       }
+               } while (others && (notify_plci != NULL));
+               if (others)
+                       plci->li_notify_update = false;
+       }
+}
+
+
+static void mixer_clear_config(PLCI *plci)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word i, j;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_clear_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
+
+       plci->li_notify_update = false;
+       plci->li_plci_b_write_pos = 0;
+       plci->li_plci_b_read_pos = 0;
+       plci->li_plci_b_req_pos = 0;
+       a = plci->adapter;
+       if ((plci->li_bchannel_id != 0)
+           && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               i = a->li_base + (plci->li_bchannel_id - 1);
+               li_config_table[i].curchnl = 0;
+               li_config_table[i].channel = 0;
+               li_config_table[i].chflags = 0;
+               for (j = 0; j < li_total_channels; j++)
+               {
+                       li_config_table[j].flag_table[i] = 0;
+                       li_config_table[i].flag_table[j] = 0;
+                       li_config_table[i].coef_table[j] = 0;
+                       li_config_table[j].coef_table[i] = 0;
+               }
+               if (!a->li_pri)
+               {
+                       li_config_table[i].coef_table[i] |= LI_COEF_CH_PC_SET | LI_COEF_PC_CH_SET;
+                       if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
+                       {
+                               i = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
+                               li_config_table[i].curchnl = 0;
+                               li_config_table[i].channel = 0;
+                               li_config_table[i].chflags = 0;
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       li_config_table[i].flag_table[j] = 0;
+                                       li_config_table[j].flag_table[i] = 0;
+                                       li_config_table[i].coef_table[j] = 0;
+                                       li_config_table[j].coef_table[i] = 0;
+                               }
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
+                               {
+                                       i = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
+                                       li_config_table[i].curchnl = 0;
+                                       li_config_table[i].channel = 0;
+                                       li_config_table[i].chflags = 0;
+                                       for (j = 0; j < li_total_channels; j++)
+                                       {
+                                               li_config_table[i].flag_table[j] = 0;
+                                               li_config_table[j].flag_table[i] = 0;
+                                               li_config_table[i].coef_table[j] = 0;
+                                               li_config_table[j].coef_table[i] = 0;
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+
+static void mixer_prepare_switch(dword Id, PLCI *plci)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_prepare_switch",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       do
+       {
+               mixer_indication_coefs_set(Id, plci);
+       } while (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos);
+}
+
+
+static word mixer_save_config(dword Id, PLCI *plci, byte Rc)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word i, j;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_save_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       a = plci->adapter;
+       if ((plci->li_bchannel_id != 0)
+           && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               i = a->li_base + (plci->li_bchannel_id - 1);
+               for (j = 0; j < li_total_channels; j++)
+               {
+                       li_config_table[i].coef_table[j] &= 0xf;
+                       li_config_table[j].coef_table[i] &= 0xf;
+               }
+               if (!a->li_pri)
+                       li_config_table[i].coef_table[i] |= LI_COEF_CH_PC_SET | LI_COEF_PC_CH_SET;
+       }
+       return (GOOD);
+}
+
+
+static word mixer_restore_config(dword Id, PLCI *plci, byte Rc)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word Info;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_restore_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       Info = GOOD;
+       a = plci->adapter;
+       if ((plci->B1_facilities & B1_FACILITY_MIXER)
+           && (plci->li_bchannel_id != 0)
+           && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               switch (plci->adjust_b_state)
+               {
+               case ADJUST_B_RESTORE_MIXER_1:
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                       {
+                               plci->internal_command = plci->adjust_b_command;
+                               if (plci_nl_busy(plci))
+                               {
+                                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_1;
+                                       break;
+                               }
+                               xconnect_query_addresses(plci);
+                               plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_2;
+                               break;
+                       }
+                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_5;
+                       Rc = OK;
+               case ADJUST_B_RESTORE_MIXER_2:
+               case ADJUST_B_RESTORE_MIXER_3:
+               case ADJUST_B_RESTORE_MIXER_4:
+                       if ((Rc != OK) && (Rc != OK_FC) && (Rc != 0))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Adjust B query addresses failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _WRONG_STATE;
+                               break;
+                       }
+                       if (Rc == OK)
+                       {
+                               if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_2)
+                                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_3;
+                               else if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_4)
+                                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_5;
+                       }
+                       else if (Rc == 0)
+                       {
+                               if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_2)
+                                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_4;
+                               else if (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_3)
+                                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_5;
+                       }
+                       if (plci->adjust_b_state != ADJUST_B_RESTORE_MIXER_5)
+                       {
+                               plci->internal_command = plci->adjust_b_command;
+                               break;
+                       }
+               case ADJUST_B_RESTORE_MIXER_5:
+                       xconnect_write_coefs(plci, plci->adjust_b_command);
+                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_6;
+                       Rc = OK;
+               case ADJUST_B_RESTORE_MIXER_6:
+                       if (!xconnect_write_coefs_process(Id, plci, Rc))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Write mixer coefs failed",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       if (plci->internal_command)
+                               break;
+                       plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_7;
+               case ADJUST_B_RESTORE_MIXER_7:
+                       break;
+               }
+       }
+       return (Info);
+}
+
+
+static void mixer_command(dword Id, PLCI *plci, byte Rc)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word i, internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_command %02x %04x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command,
+                       plci->li_cmd));
+
+       a = plci->adapter;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (plci->li_cmd)
+       {
+       case LI_REQ_CONNECT:
+       case LI_REQ_DISCONNECT:
+       case LI_REQ_SILENT_UPDATE:
+               switch (internal_command)
+               {
+               default:
+                       if (plci->li_channel_bits & LI_CHANNEL_INVOLVED)
+                       {
+                               adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities |
+                                                                         B1_FACILITY_MIXER), MIXER_COMMAND_1);
+                       }
+               case MIXER_COMMAND_1:
+                       if (plci->li_channel_bits & LI_CHANNEL_INVOLVED)
+                       {
+                               if (adjust_b_process(Id, plci, Rc) != GOOD)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Load mixer failed",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       break;
+                               }
+                               if (plci->internal_command)
+                                       return;
+                       }
+                       plci->li_plci_b_req_pos = plci->li_plci_b_write_pos;
+                       if ((plci->li_channel_bits & LI_CHANNEL_INVOLVED)
+                           || ((get_b1_facilities(plci, plci->B1_resource) & B1_FACILITY_MIXER)
+                               && (add_b1_facilities(plci, plci->B1_resource, (word)(plci->B1_facilities &
+                                                                                     ~B1_FACILITY_MIXER)) == plci->B1_resource)))
+                       {
+                               xconnect_write_coefs(plci, MIXER_COMMAND_2);
+                       }
+                       else
+                       {
+                               do
+                               {
+                                       mixer_indication_coefs_set(Id, plci);
+                               } while (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos);
+                       }
+               case MIXER_COMMAND_2:
+                       if ((plci->li_channel_bits & LI_CHANNEL_INVOLVED)
+                           || ((get_b1_facilities(plci, plci->B1_resource) & B1_FACILITY_MIXER)
+                               && (add_b1_facilities(plci, plci->B1_resource, (word)(plci->B1_facilities &
+                                                                                     ~B1_FACILITY_MIXER)) == plci->B1_resource)))
+                       {
+                               if (!xconnect_write_coefs_process(Id, plci, Rc))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Write mixer coefs failed",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       if (plci->li_plci_b_write_pos != plci->li_plci_b_req_pos)
+                                       {
+                                               do
+                                               {
+                                                       plci->li_plci_b_write_pos = (plci->li_plci_b_write_pos == 0) ?
+                                                               LI_PLCI_B_QUEUE_ENTRIES - 1 : plci->li_plci_b_write_pos - 1;
+                                                       i = (plci->li_plci_b_write_pos == 0) ?
+                                                               LI_PLCI_B_QUEUE_ENTRIES - 1 : plci->li_plci_b_write_pos - 1;
+                                               } while ((plci->li_plci_b_write_pos != plci->li_plci_b_req_pos)
+                                                        && !(plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG));
+                                       }
+                                       break;
+                               }
+                               if (plci->internal_command)
+                                       return;
+                       }
+                       if (!(plci->li_channel_bits & LI_CHANNEL_INVOLVED))
+                       {
+                               adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities &
+                                                                         ~B1_FACILITY_MIXER), MIXER_COMMAND_3);
+                       }
+               case MIXER_COMMAND_3:
+                       if (!(plci->li_channel_bits & LI_CHANNEL_INVOLVED))
+                       {
+                               if (adjust_b_process(Id, plci, Rc) != GOOD)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Unload mixer failed",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       break;
+                               }
+                               if (plci->internal_command)
+                                       return;
+                       }
+                       break;
+               }
+               break;
+       }
+       if ((plci->li_bchannel_id == 0)
+           || (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci != plci))
+       {
+               dbug(1, dprintf("[%06x] %s,%d: Channel id wiped out %d",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, (int)(plci->li_bchannel_id)));
+       }
+       else
+       {
+               i = a->li_base + (plci->li_bchannel_id - 1);
+               li_config_table[i].curchnl = plci->li_channel_bits;
+               if (!a->li_pri && (plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
+               {
+                       i = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
+                       li_config_table[i].curchnl = plci->li_channel_bits;
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
+                       {
+                               i = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
+                               li_config_table[i].curchnl = plci->li_channel_bits;
+                       }
+               }
+       }
+}
+
+
+static void li_update_connect(dword Id, DIVA_CAPI_ADAPTER *a, PLCI *plci,
+                             dword plci_b_id, byte connect, dword li_flags)
+{
+       word i, ch_a, ch_a_v, ch_a_s, ch_b, ch_b_v, ch_b_s;
+       PLCI *plci_b;
+       DIVA_CAPI_ADAPTER *a_b;
+
+       a_b = &(adapter[MapController((byte)(plci_b_id & 0x7f)) - 1]);
+       plci_b = &(a_b->plci[((plci_b_id >> 8) & 0xff) - 1]);
+       ch_a = a->li_base + (plci->li_bchannel_id - 1);
+       if (!a->li_pri && (plci->tel == ADV_VOICE)
+           && (plci == a->AdvSignalPLCI) && (Id & EXT_CONTROLLER))
+       {
+               ch_a_v = ch_a + MIXER_IC_CHANNEL_BASE;
+               ch_a_s = (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
+                       a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id) : ch_a_v;
+       }
+       else
+       {
+               ch_a_v = ch_a;
+               ch_a_s = ch_a;
+       }
+       ch_b = a_b->li_base + (plci_b->li_bchannel_id - 1);
+       if (!a_b->li_pri && (plci_b->tel == ADV_VOICE)
+           && (plci_b == a_b->AdvSignalPLCI) && (plci_b_id & EXT_CONTROLLER))
+       {
+               ch_b_v = ch_b + MIXER_IC_CHANNEL_BASE;
+               ch_b_s = (a_b->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
+                       a_b->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci_b->li_bchannel_id) : ch_b_v;
+       }
+       else
+       {
+               ch_b_v = ch_b;
+               ch_b_s = ch_b;
+       }
+       if (connect)
+       {
+               li_config_table[ch_a].flag_table[ch_a_v] &= ~LI_FLAG_MONITOR;
+               li_config_table[ch_a].flag_table[ch_a_s] &= ~LI_FLAG_MONITOR;
+               li_config_table[ch_a_v].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
+               li_config_table[ch_a_s].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
+       }
+       li_config_table[ch_a].flag_table[ch_b_v] &= ~LI_FLAG_MONITOR;
+       li_config_table[ch_a].flag_table[ch_b_s] &= ~LI_FLAG_MONITOR;
+       li_config_table[ch_b_v].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
+       li_config_table[ch_b_s].flag_table[ch_a] &= ~(LI_FLAG_ANNOUNCEMENT | LI_FLAG_MIX);
+       if (ch_a_v == ch_b_v)
+       {
+               li_config_table[ch_a_v].flag_table[ch_b_v] &= ~LI_FLAG_CONFERENCE;
+               li_config_table[ch_a_s].flag_table[ch_b_s] &= ~LI_FLAG_CONFERENCE;
+       }
+       else
+       {
+               if (li_config_table[ch_a_v].flag_table[ch_b_v] & LI_FLAG_CONFERENCE)
+               {
+                       for (i = 0; i < li_total_channels; i++)
+                       {
+                               if (i != ch_a_v)
+                                       li_config_table[ch_a_v].flag_table[i] &= ~LI_FLAG_CONFERENCE;
+                       }
+               }
+               if (li_config_table[ch_a_s].flag_table[ch_b_v] & LI_FLAG_CONFERENCE)
+               {
+                       for (i = 0; i < li_total_channels; i++)
+                       {
+                               if (i != ch_a_s)
+                                       li_config_table[ch_a_s].flag_table[i] &= ~LI_FLAG_CONFERENCE;
+                       }
+               }
+               if (li_config_table[ch_b_v].flag_table[ch_a_v] & LI_FLAG_CONFERENCE)
+               {
+                       for (i = 0; i < li_total_channels; i++)
+                       {
+                               if (i != ch_a_v)
+                                       li_config_table[i].flag_table[ch_a_v] &= ~LI_FLAG_CONFERENCE;
+                       }
+               }
+               if (li_config_table[ch_b_v].flag_table[ch_a_s] & LI_FLAG_CONFERENCE)
+               {
+                       for (i = 0; i < li_total_channels; i++)
+                       {
+                               if (i != ch_a_s)
+                                       li_config_table[i].flag_table[ch_a_s] &= ~LI_FLAG_CONFERENCE;
+                       }
+               }
+       }
+       if (li_flags & LI_FLAG_CONFERENCE_A_B)
+       {
+               li_config_table[ch_b_v].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_b_s].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_b_v].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_b_s].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
+       }
+       if (li_flags & LI_FLAG_CONFERENCE_B_A)
+       {
+               li_config_table[ch_a_v].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_a_v].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_a_s].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_a_s].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
+       }
+       if (li_flags & LI_FLAG_MONITOR_A)
+       {
+               li_config_table[ch_a].flag_table[ch_a_v] |= LI_FLAG_MONITOR;
+               li_config_table[ch_a].flag_table[ch_a_s] |= LI_FLAG_MONITOR;
+       }
+       if (li_flags & LI_FLAG_MONITOR_B)
+       {
+               li_config_table[ch_a].flag_table[ch_b_v] |= LI_FLAG_MONITOR;
+               li_config_table[ch_a].flag_table[ch_b_s] |= LI_FLAG_MONITOR;
+       }
+       if (li_flags & LI_FLAG_ANNOUNCEMENT_A)
+       {
+               li_config_table[ch_a_v].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
+               li_config_table[ch_a_s].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
+       }
+       if (li_flags & LI_FLAG_ANNOUNCEMENT_B)
+       {
+               li_config_table[ch_b_v].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
+               li_config_table[ch_b_s].flag_table[ch_a] |= LI_FLAG_ANNOUNCEMENT;
+       }
+       if (li_flags & LI_FLAG_MIX_A)
+       {
+               li_config_table[ch_a_v].flag_table[ch_a] |= LI_FLAG_MIX;
+               li_config_table[ch_a_s].flag_table[ch_a] |= LI_FLAG_MIX;
+       }
+       if (li_flags & LI_FLAG_MIX_B)
+       {
+               li_config_table[ch_b_v].flag_table[ch_a] |= LI_FLAG_MIX;
+               li_config_table[ch_b_s].flag_table[ch_a] |= LI_FLAG_MIX;
+       }
+       if (ch_a_v != ch_a_s)
+       {
+               li_config_table[ch_a_v].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_a_s].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
+       }
+       if (ch_b_v != ch_b_s)
+       {
+               li_config_table[ch_b_v].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_b_s].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
+       }
+}
+
+
+static void li2_update_connect(dword Id, DIVA_CAPI_ADAPTER *a, PLCI *plci,
+                              dword plci_b_id, byte connect, dword li_flags)
+{
+       word ch_a, ch_a_v, ch_a_s, ch_b, ch_b_v, ch_b_s;
+       PLCI *plci_b;
+       DIVA_CAPI_ADAPTER *a_b;
+
+       a_b = &(adapter[MapController((byte)(plci_b_id & 0x7f)) - 1]);
+       plci_b = &(a_b->plci[((plci_b_id >> 8) & 0xff) - 1]);
+       ch_a = a->li_base + (plci->li_bchannel_id - 1);
+       if (!a->li_pri && (plci->tel == ADV_VOICE)
+           && (plci == a->AdvSignalPLCI) && (Id & EXT_CONTROLLER))
+       {
+               ch_a_v = ch_a + MIXER_IC_CHANNEL_BASE;
+               ch_a_s = (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
+                       a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id) : ch_a_v;
+       }
+       else
+       {
+               ch_a_v = ch_a;
+               ch_a_s = ch_a;
+       }
+       ch_b = a_b->li_base + (plci_b->li_bchannel_id - 1);
+       if (!a_b->li_pri && (plci_b->tel == ADV_VOICE)
+           && (plci_b == a_b->AdvSignalPLCI) && (plci_b_id & EXT_CONTROLLER))
+       {
+               ch_b_v = ch_b + MIXER_IC_CHANNEL_BASE;
+               ch_b_s = (a_b->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC) ?
+                       a_b->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci_b->li_bchannel_id) : ch_b_v;
+       }
+       else
+       {
+               ch_b_v = ch_b;
+               ch_b_s = ch_b;
+       }
+       if (connect)
+       {
+               li_config_table[ch_b].flag_table[ch_b_v] &= ~LI_FLAG_MONITOR;
+               li_config_table[ch_b].flag_table[ch_b_s] &= ~LI_FLAG_MONITOR;
+               li_config_table[ch_b_v].flag_table[ch_b] &= ~LI_FLAG_MIX;
+               li_config_table[ch_b_s].flag_table[ch_b] &= ~LI_FLAG_MIX;
+               li_config_table[ch_b].flag_table[ch_b] &= ~LI_FLAG_PCCONNECT;
+               li_config_table[ch_b].chflags &= ~(LI_CHFLAG_MONITOR | LI_CHFLAG_MIX | LI_CHFLAG_LOOP);
+       }
+       li_config_table[ch_b_v].flag_table[ch_a_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_b_s].flag_table[ch_a_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_b_v].flag_table[ch_a_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_b_s].flag_table[ch_a_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_a_v].flag_table[ch_b_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_a_v].flag_table[ch_b_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_a_s].flag_table[ch_b_v] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       li_config_table[ch_a_s].flag_table[ch_b_s] &= ~(LI_FLAG_INTERCONNECT | LI_FLAG_CONFERENCE);
+       if (li_flags & LI2_FLAG_INTERCONNECT_A_B)
+       {
+               li_config_table[ch_b_v].flag_table[ch_a_v] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_b_s].flag_table[ch_a_v] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_b_v].flag_table[ch_a_s] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_b_s].flag_table[ch_a_s] |= LI_FLAG_INTERCONNECT;
+       }
+       if (li_flags & LI2_FLAG_INTERCONNECT_B_A)
+       {
+               li_config_table[ch_a_v].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_a_v].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_a_s].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_a_s].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
+       }
+       if (li_flags & LI2_FLAG_MONITOR_B)
+       {
+               li_config_table[ch_b].flag_table[ch_b_v] |= LI_FLAG_MONITOR;
+               li_config_table[ch_b].flag_table[ch_b_s] |= LI_FLAG_MONITOR;
+       }
+       if (li_flags & LI2_FLAG_MIX_B)
+       {
+               li_config_table[ch_b_v].flag_table[ch_b] |= LI_FLAG_MIX;
+               li_config_table[ch_b_s].flag_table[ch_b] |= LI_FLAG_MIX;
+       }
+       if (li_flags & LI2_FLAG_MONITOR_X)
+               li_config_table[ch_b].chflags |= LI_CHFLAG_MONITOR;
+       if (li_flags & LI2_FLAG_MIX_X)
+               li_config_table[ch_b].chflags |= LI_CHFLAG_MIX;
+       if (li_flags & LI2_FLAG_LOOP_B)
+       {
+               li_config_table[ch_b_v].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_b_s].flag_table[ch_b_v] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_b_v].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
+               li_config_table[ch_b_s].flag_table[ch_b_s] |= LI_FLAG_INTERCONNECT;
+       }
+       if (li_flags & LI2_FLAG_LOOP_PC)
+               li_config_table[ch_b].flag_table[ch_b] |= LI_FLAG_PCCONNECT;
+       if (li_flags & LI2_FLAG_LOOP_X)
+               li_config_table[ch_b].chflags |= LI_CHFLAG_LOOP;
+       if (li_flags & LI2_FLAG_PCCONNECT_A_B)
+               li_config_table[ch_b_s].flag_table[ch_a_s] |= LI_FLAG_PCCONNECT;
+       if (li_flags & LI2_FLAG_PCCONNECT_B_A)
+               li_config_table[ch_a_s].flag_table[ch_b_s] |= LI_FLAG_PCCONNECT;
+       if (ch_a_v != ch_a_s)
+       {
+               li_config_table[ch_a_v].flag_table[ch_a_s] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_a_s].flag_table[ch_a_v] |= LI_FLAG_CONFERENCE;
+       }
+       if (ch_b_v != ch_b_s)
+       {
+               li_config_table[ch_b_v].flag_table[ch_b_s] |= LI_FLAG_CONFERENCE;
+               li_config_table[ch_b_s].flag_table[ch_b_v] |= LI_FLAG_CONFERENCE;
+       }
+}
+
+
+static word li_check_main_plci(dword Id, PLCI *plci)
+{
+       if (plci == NULL)
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Wrong PLCI",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               return (_WRONG_IDENTIFIER);
+       }
+       if (!plci->State
+           || !plci->NL.Id || plci->nl_remove_id
+           || (plci->li_bchannel_id == 0))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Wrong state",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               return (_WRONG_STATE);
+       }
+       li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci = plci;
+       return (GOOD);
+}
+
+
+static PLCI *li_check_plci_b(dword Id, PLCI *plci,
+                            dword plci_b_id, word plci_b_write_pos, byte *p_result)
+{
+       byte ctlr_b;
+       PLCI *plci_b;
+
+       if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
+            LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 2)
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI request overrun",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               PUT_WORD(p_result, _REQUEST_NOT_ALLOWED_IN_THIS_STATE);
+               return (NULL);
+       }
+       ctlr_b = 0;
+       if ((plci_b_id & 0x7f) != 0)
+       {
+               ctlr_b = MapController((byte)(plci_b_id & 0x7f));
+               if ((ctlr_b > max_adapter) || ((ctlr_b != 0) && (adapter[ctlr_b - 1].request == NULL)))
+                       ctlr_b = 0;
+       }
+       if ((ctlr_b == 0)
+           || (((plci_b_id >> 8) & 0xff) == 0)
+           || (((plci_b_id >> 8) & 0xff) > adapter[ctlr_b - 1].max_plci))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI invalid second PLCI %08lx",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b_id));
+               PUT_WORD(p_result, _WRONG_IDENTIFIER);
+               return (NULL);
+       }
+       plci_b = &(adapter[ctlr_b - 1].plci[((plci_b_id >> 8) & 0xff) - 1]);
+       if (!plci_b->State
+           || !plci_b->NL.Id || plci_b->nl_remove_id
+           || (plci_b->li_bchannel_id == 0))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI peer in wrong state %08lx",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b_id));
+               PUT_WORD(p_result, _REQUEST_NOT_ALLOWED_IN_THIS_STATE);
+               return (NULL);
+       }
+       li_config_table[plci_b->adapter->li_base + (plci_b->li_bchannel_id - 1)].plci = plci_b;
+       if (((byte)(plci_b_id & ~EXT_CONTROLLER)) !=
+           ((byte)(UnMapController(plci->adapter->Id) & ~EXT_CONTROLLER))
+           && (!(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+               || !(plci_b->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI not on same ctrl %08lx",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b_id));
+               PUT_WORD(p_result, _WRONG_IDENTIFIER);
+               return (NULL);
+       }
+       if (!(get_b1_facilities(plci_b, add_b1_facilities(plci_b, plci_b->B1_resource,
+                                                         (word)(plci_b->B1_facilities | B1_FACILITY_MIXER))) & B1_FACILITY_MIXER))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Interconnect peer cannot mix %d",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b->B1_resource));
+               PUT_WORD(p_result, _REQUEST_NOT_ALLOWED_IN_THIS_STATE);
+               return (NULL);
+       }
+       return (plci_b);
+}
+
+
+static PLCI *li2_check_plci_b(dword Id, PLCI *plci,
+                             dword plci_b_id, word plci_b_write_pos, byte *p_result)
+{
+       byte ctlr_b;
+       PLCI *plci_b;
+
+       if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
+            LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 2)
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI request overrun",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               PUT_WORD(p_result, _WRONG_STATE);
+               return (NULL);
+       }
+       ctlr_b = 0;
+       if ((plci_b_id & 0x7f) != 0)
+       {
+               ctlr_b = MapController((byte)(plci_b_id & 0x7f));
+               if ((ctlr_b > max_adapter) || ((ctlr_b != 0) && (adapter[ctlr_b - 1].request == NULL)))
+                       ctlr_b = 0;
+       }
+       if ((ctlr_b == 0)
+           || (((plci_b_id >> 8) & 0xff) == 0)
+           || (((plci_b_id >> 8) & 0xff) > adapter[ctlr_b - 1].max_plci))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI invalid second PLCI %08lx",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b_id));
+               PUT_WORD(p_result, _WRONG_IDENTIFIER);
+               return (NULL);
+       }
+       plci_b = &(adapter[ctlr_b - 1].plci[((plci_b_id >> 8) & 0xff) - 1]);
+       if (!plci_b->State
+           || !plci_b->NL.Id || plci_b->nl_remove_id
+           || (plci_b->li_bchannel_id == 0)
+           || (li_config_table[plci_b->adapter->li_base + (plci_b->li_bchannel_id - 1)].plci != plci_b))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI peer in wrong state %08lx",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b_id));
+               PUT_WORD(p_result, _WRONG_STATE);
+               return (NULL);
+       }
+       if (((byte)(plci_b_id & ~EXT_CONTROLLER)) !=
+           ((byte)(UnMapController(plci->adapter->Id) & ~EXT_CONTROLLER))
+           && (!(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+               || !(plci_b->adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI not on same ctrl %08lx",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b_id));
+               PUT_WORD(p_result, _WRONG_IDENTIFIER);
+               return (NULL);
+       }
+       if (!(get_b1_facilities(plci_b, add_b1_facilities(plci_b, plci_b->B1_resource,
+                                                         (word)(plci_b->B1_facilities | B1_FACILITY_MIXER))) & B1_FACILITY_MIXER))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Interconnect peer cannot mix %d",
+                               UnMapId(Id), (char *)(FILE_), __LINE__, plci_b->B1_resource));
+               PUT_WORD(p_result, _WRONG_STATE);
+               return (NULL);
+       }
+       return (plci_b);
+}
+
+
+static byte mixer_request(dword Id, word Number, DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL   *appl, API_PARSE *msg)
+{
+       word Info;
+       word i;
+       dword d, li_flags, plci_b_id;
+       PLCI *plci_b;
+       API_PARSE li_parms[3];
+       API_PARSE li_req_parms[3];
+       API_PARSE li_participant_struct[2];
+       API_PARSE li_participant_parms[3];
+       word participant_parms_pos;
+       byte result_buffer[32];
+       byte *result;
+       word result_pos;
+       word plci_b_write_pos;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_request",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       Info = GOOD;
+       result = result_buffer;
+       result_buffer[0] = 0;
+       if (!(a->profile.Global_Options & GL_LINE_INTERCONNECT_SUPPORTED))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Facility not supported",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               Info = _FACILITY_NOT_SUPPORTED;
+       }
+       else if (api_parse(&msg[1].info[1], msg[1].length, "ws", li_parms))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               Info = _WRONG_MESSAGE_FORMAT;
+       }
+       else
+       {
+               result_buffer[0] = 3;
+               PUT_WORD(&result_buffer[1], GET_WORD(li_parms[0].info));
+               result_buffer[3] = 0;
+               switch (GET_WORD(li_parms[0].info))
+               {
+               case LI_GET_SUPPORTED_SERVICES:
+                       if (appl->appl_flags & APPL_FLAG_OLD_LI_SPEC)
+                       {
+                               result_buffer[0] = 17;
+                               result_buffer[3] = 14;
+                               PUT_WORD(&result_buffer[4], GOOD);
+                               d = 0;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_CH_CH)
+                                       d |= LI_CONFERENCING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_CH_PC)
+                                       d |= LI_MONITORING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_PC_CH)
+                                       d |= LI_ANNOUNCEMENTS_SUPPORTED | LI_MIXING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                                       d |= LI_CROSS_CONTROLLER_SUPPORTED;
+                               PUT_DWORD(&result_buffer[6], d);
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                               {
+                                       d = 0;
+                                       for (i = 0; i < li_total_channels; i++)
+                                       {
+                                               if ((li_config_table[i].adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                                                   && (li_config_table[i].adapter->li_pri
+                                                       || (i < li_config_table[i].adapter->li_base + MIXER_BCHANNELS_BRI)))
+                                               {
+                                                       d++;
+                                               }
+                                       }
+                               }
+                               else
+                               {
+                                       d = a->li_pri ? a->li_channels : MIXER_BCHANNELS_BRI;
+                               }
+                               PUT_DWORD(&result_buffer[10], d / 2);
+                               PUT_DWORD(&result_buffer[14], d);
+                       }
+                       else
+                       {
+                               result_buffer[0] = 25;
+                               result_buffer[3] = 22;
+                               PUT_WORD(&result_buffer[4], GOOD);
+                               d = LI2_ASYMMETRIC_SUPPORTED | LI2_B_LOOPING_SUPPORTED | LI2_X_LOOPING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_CH_PC)
+                                       d |= LI2_MONITORING_SUPPORTED | LI2_REMOTE_MONITORING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_PC_CH)
+                                       d |= LI2_MIXING_SUPPORTED | LI2_REMOTE_MIXING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_MIXER_PC_PC)
+                                       d |= LI2_PC_LOOPING_SUPPORTED;
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                                       d |= LI2_CROSS_CONTROLLER_SUPPORTED;
+                               PUT_DWORD(&result_buffer[6], d);
+                               d = a->li_pri ? a->li_channels : MIXER_BCHANNELS_BRI;
+                               PUT_DWORD(&result_buffer[10], d / 2);
+                               PUT_DWORD(&result_buffer[14], d - 1);
+                               if (a->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                               {
+                                       d = 0;
+                                       for (i = 0; i < li_total_channels; i++)
+                                       {
+                                               if ((li_config_table[i].adapter->manufacturer_features & MANUFACTURER_FEATURE_XCONNECT)
+                                                   && (li_config_table[i].adapter->li_pri
+                                                       || (i < li_config_table[i].adapter->li_base + MIXER_BCHANNELS_BRI)))
+                                               {
+                                                       d++;
+                                               }
+                                       }
+                               }
+                               PUT_DWORD(&result_buffer[18], d / 2);
+                               PUT_DWORD(&result_buffer[22], d - 1);
+                       }
+                       break;
+
+               case LI_REQ_CONNECT:
+                       if (li_parms[1].length == 8)
+                       {
+                               appl->appl_flags |= APPL_FLAG_OLD_LI_SPEC;
+                               if (api_parse(&li_parms[1].info[1], li_parms[1].length, "dd", li_req_parms))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               plci_b_id = GET_DWORD(li_req_parms[0].info) & 0xffff;
+                               li_flags = GET_DWORD(li_req_parms[1].info);
+                               Info = li_check_main_plci(Id, plci);
+                               result_buffer[0] = 9;
+                               result_buffer[3] = 6;
+                               PUT_DWORD(&result_buffer[4], plci_b_id);
+                               PUT_WORD(&result_buffer[8], GOOD);
+                               if (Info != GOOD)
+                                       break;
+                               result = plci->saved_msg.info;
+                               for (i = 0; i <= result_buffer[0]; i++)
+                                       result[i] = result_buffer[i];
+                               plci_b_write_pos = plci->li_plci_b_write_pos;
+                               plci_b = li_check_plci_b(Id, plci, plci_b_id, plci_b_write_pos, &result[8]);
+                               if (plci_b == NULL)
+                                       break;
+                               li_update_connect(Id, a, plci, plci_b_id, true, li_flags);
+                               plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_LAST_FLAG;
+                               plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                               plci->li_plci_b_write_pos = plci_b_write_pos;
+                       }
+                       else
+                       {
+                               appl->appl_flags &= ~APPL_FLAG_OLD_LI_SPEC;
+                               if (api_parse(&li_parms[1].info[1], li_parms[1].length, "ds", li_req_parms))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               li_flags = GET_DWORD(li_req_parms[0].info) & ~(LI2_FLAG_INTERCONNECT_A_B | LI2_FLAG_INTERCONNECT_B_A);
+                               Info = li_check_main_plci(Id, plci);
+                               result_buffer[0] = 7;
+                               result_buffer[3] = 4;
+                               PUT_WORD(&result_buffer[4], Info);
+                               result_buffer[6] = 0;
+                               if (Info != GOOD)
+                                       break;
+                               result = plci->saved_msg.info;
+                               for (i = 0; i <= result_buffer[0]; i++)
+                                       result[i] = result_buffer[i];
+                               plci_b_write_pos = plci->li_plci_b_write_pos;
+                               participant_parms_pos = 0;
+                               result_pos = 7;
+                               li2_update_connect(Id, a, plci, UnMapId(Id), true, li_flags);
+                               while (participant_parms_pos < li_req_parms[1].length)
+                               {
+                                       result[result_pos] = 6;
+                                       result_pos += 7;
+                                       PUT_DWORD(&result[result_pos - 6], 0);
+                                       PUT_WORD(&result[result_pos - 2], GOOD);
+                                       if (api_parse(&li_req_parms[1].info[1 + participant_parms_pos],
+                                                     (word)(li_parms[1].length - participant_parms_pos), "s", li_participant_struct))
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                                               PUT_WORD(&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
+                                               break;
+                                       }
+                                       if (api_parse(&li_participant_struct[0].info[1],
+                                                     li_participant_struct[0].length, "dd", li_participant_parms))
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                                               PUT_WORD(&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
+                                               break;
+                                       }
+                                       plci_b_id = GET_DWORD(li_participant_parms[0].info) & 0xffff;
+                                       li_flags = GET_DWORD(li_participant_parms[1].info);
+                                       PUT_DWORD(&result[result_pos - 6], plci_b_id);
+                                       if (sizeof(result) - result_pos < 7)
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: LI result overrun",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                                               PUT_WORD(&result[result_pos - 2], _WRONG_STATE);
+                                               break;
+                                       }
+                                       plci_b = li2_check_plci_b(Id, plci, plci_b_id, plci_b_write_pos, &result[result_pos - 2]);
+                                       if (plci_b != NULL)
+                                       {
+                                               li2_update_connect(Id, a, plci, plci_b_id, true, li_flags);
+                                               plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id |
+                                                       ((li_flags & (LI2_FLAG_INTERCONNECT_A_B | LI2_FLAG_INTERCONNECT_B_A |
+                                                                     LI2_FLAG_PCCONNECT_A_B | LI2_FLAG_PCCONNECT_B_A)) ? 0 : LI_PLCI_B_DISC_FLAG);
+                                               plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                                       }
+                                       participant_parms_pos = (word)((&li_participant_struct[0].info[1 + li_participant_struct[0].length]) -
+                                                                      (&li_req_parms[1].info[1]));
+                               }
+                               result[0] = (byte)(result_pos - 1);
+                               result[3] = (byte)(result_pos - 4);
+                               result[6] = (byte)(result_pos - 7);
+                               i = (plci_b_write_pos == 0) ? LI_PLCI_B_QUEUE_ENTRIES - 1 : plci_b_write_pos - 1;
+                               if ((plci_b_write_pos == plci->li_plci_b_read_pos)
+                                   || (plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG))
+                               {
+                                       plci->li_plci_b_queue[plci_b_write_pos] = LI_PLCI_B_SKIP_FLAG | LI_PLCI_B_LAST_FLAG;
+                                       plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                               }
+                               else
+                                       plci->li_plci_b_queue[i] |= LI_PLCI_B_LAST_FLAG;
+                               plci->li_plci_b_write_pos = plci_b_write_pos;
+                       }
+                       mixer_calculate_coefs(a);
+                       plci->li_channel_bits = li_config_table[a->li_base + (plci->li_bchannel_id - 1)].channel;
+                       mixer_notify_update(plci, true);
+                       sendf(appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
+                             "wwS", Info, SELECTOR_LINE_INTERCONNECT, result);
+                       plci->command = 0;
+                       plci->li_cmd = GET_WORD(li_parms[0].info);
+                       start_internal_command(Id, plci, mixer_command);
+                       return (false);
+
+               case LI_REQ_DISCONNECT:
+                       if (li_parms[1].length == 4)
+                       {
+                               appl->appl_flags |= APPL_FLAG_OLD_LI_SPEC;
+                               if (api_parse(&li_parms[1].info[1], li_parms[1].length, "d", li_req_parms))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               plci_b_id = GET_DWORD(li_req_parms[0].info) & 0xffff;
+                               Info = li_check_main_plci(Id, plci);
+                               result_buffer[0] = 9;
+                               result_buffer[3] = 6;
+                               PUT_DWORD(&result_buffer[4], GET_DWORD(li_req_parms[0].info));
+                               PUT_WORD(&result_buffer[8], GOOD);
+                               if (Info != GOOD)
+                                       break;
+                               result = plci->saved_msg.info;
+                               for (i = 0; i <= result_buffer[0]; i++)
+                                       result[i] = result_buffer[i];
+                               plci_b_write_pos = plci->li_plci_b_write_pos;
+                               plci_b = li_check_plci_b(Id, plci, plci_b_id, plci_b_write_pos, &result[8]);
+                               if (plci_b == NULL)
+                                       break;
+                               li_update_connect(Id, a, plci, plci_b_id, false, 0);
+                               plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_DISC_FLAG | LI_PLCI_B_LAST_FLAG;
+                               plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                               plci->li_plci_b_write_pos = plci_b_write_pos;
+                       }
+                       else
+                       {
+                               appl->appl_flags &= ~APPL_FLAG_OLD_LI_SPEC;
+                               if (api_parse(&li_parms[1].info[1], li_parms[1].length, "s", li_req_parms))
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_MESSAGE_FORMAT;
+                                       break;
+                               }
+                               Info = li_check_main_plci(Id, plci);
+                               result_buffer[0] = 7;
+                               result_buffer[3] = 4;
+                               PUT_WORD(&result_buffer[4], Info);
+                               result_buffer[6] = 0;
+                               if (Info != GOOD)
+                                       break;
+                               result = plci->saved_msg.info;
+                               for (i = 0; i <= result_buffer[0]; i++)
+                                       result[i] = result_buffer[i];
+                               plci_b_write_pos = plci->li_plci_b_write_pos;
+                               participant_parms_pos = 0;
+                               result_pos = 7;
+                               while (participant_parms_pos < li_req_parms[0].length)
+                               {
+                                       result[result_pos] = 6;
+                                       result_pos += 7;
+                                       PUT_DWORD(&result[result_pos - 6], 0);
+                                       PUT_WORD(&result[result_pos - 2], GOOD);
+                                       if (api_parse(&li_req_parms[0].info[1 + participant_parms_pos],
+                                                     (word)(li_parms[1].length - participant_parms_pos), "s", li_participant_struct))
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                                               PUT_WORD(&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
+                                               break;
+                                       }
+                                       if (api_parse(&li_participant_struct[0].info[1],
+                                                     li_participant_struct[0].length, "d", li_participant_parms))
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                                               PUT_WORD(&result[result_pos - 2], _WRONG_MESSAGE_FORMAT);
+                                               break;
+                                       }
+                                       plci_b_id = GET_DWORD(li_participant_parms[0].info) & 0xffff;
+                                       PUT_DWORD(&result[result_pos - 6], plci_b_id);
+                                       if (sizeof(result) - result_pos < 7)
+                                       {
+                                               dbug(1, dprintf("[%06lx] %s,%d: LI result overrun",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                                               PUT_WORD(&result[result_pos - 2], _WRONG_STATE);
+                                               break;
+                                       }
+                                       plci_b = li2_check_plci_b(Id, plci, plci_b_id, plci_b_write_pos, &result[result_pos - 2]);
+                                       if (plci_b != NULL)
+                                       {
+                                               li2_update_connect(Id, a, plci, plci_b_id, false, 0);
+                                               plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_DISC_FLAG;
+                                               plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                                       }
+                                       participant_parms_pos = (word)((&li_participant_struct[0].info[1 + li_participant_struct[0].length]) -
+                                                                      (&li_req_parms[0].info[1]));
+                               }
+                               result[0] = (byte)(result_pos - 1);
+                               result[3] = (byte)(result_pos - 4);
+                               result[6] = (byte)(result_pos - 7);
+                               i = (plci_b_write_pos == 0) ? LI_PLCI_B_QUEUE_ENTRIES - 1 : plci_b_write_pos - 1;
+                               if ((plci_b_write_pos == plci->li_plci_b_read_pos)
+                                   || (plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG))
+                               {
+                                       plci->li_plci_b_queue[plci_b_write_pos] = LI_PLCI_B_SKIP_FLAG | LI_PLCI_B_LAST_FLAG;
+                                       plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                               }
+                               else
+                                       plci->li_plci_b_queue[i] |= LI_PLCI_B_LAST_FLAG;
+                               plci->li_plci_b_write_pos = plci_b_write_pos;
+                       }
+                       mixer_calculate_coefs(a);
+                       plci->li_channel_bits = li_config_table[a->li_base + (plci->li_bchannel_id - 1)].channel;
+                       mixer_notify_update(plci, true);
+                       sendf(appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
+                             "wwS", Info, SELECTOR_LINE_INTERCONNECT, result);
+                       plci->command = 0;
+                       plci->li_cmd = GET_WORD(li_parms[0].info);
+                       start_internal_command(Id, plci, mixer_command);
+                       return (false);
+
+               case LI_REQ_SILENT_UPDATE:
+                       if (!plci || !plci->State
+                           || !plci->NL.Id || plci->nl_remove_id
+                           || (plci->li_bchannel_id == 0)
+                           || (li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci != plci))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Wrong state",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               return (false);
+                       }
+                       plci_b_write_pos = plci->li_plci_b_write_pos;
+                       if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
+                            LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 2)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: LI request overrun",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               return (false);
+                       }
+                       i = (plci_b_write_pos == 0) ? LI_PLCI_B_QUEUE_ENTRIES - 1 : plci_b_write_pos - 1;
+                       if ((plci_b_write_pos == plci->li_plci_b_read_pos)
+                           || (plci->li_plci_b_queue[i] & LI_PLCI_B_LAST_FLAG))
+                       {
+                               plci->li_plci_b_queue[plci_b_write_pos] = LI_PLCI_B_SKIP_FLAG | LI_PLCI_B_LAST_FLAG;
+                               plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+                       }
+                       else
+                               plci->li_plci_b_queue[i] |= LI_PLCI_B_LAST_FLAG;
+                       plci->li_plci_b_write_pos = plci_b_write_pos;
+                       plci->li_channel_bits = li_config_table[a->li_base + (plci->li_bchannel_id - 1)].channel;
+                       plci->command = 0;
+                       plci->li_cmd = GET_WORD(li_parms[0].info);
+                       start_internal_command(Id, plci, mixer_command);
+                       return (false);
+
+               default:
+                       dbug(1, dprintf("[%06lx] %s,%d: LI unknown request %04x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, GET_WORD(li_parms[0].info)));
+                       Info = _FACILITY_NOT_SUPPORTED;
+               }
+       }
+       sendf(appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
+             "wwS", Info, SELECTOR_LINE_INTERCONNECT, result);
+       return (false);
+}
+
+
+static void mixer_indication_coefs_set(dword Id, PLCI *plci)
+{
+       dword d;
+       byte result[12];
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_indication_coefs_set",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       if (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos)
+       {
+               do
+               {
+                       d = plci->li_plci_b_queue[plci->li_plci_b_read_pos];
+                       if (!(d & LI_PLCI_B_SKIP_FLAG))
+                       {
+                               if (plci->appl->appl_flags & APPL_FLAG_OLD_LI_SPEC)
+                               {
+                                       if (d & LI_PLCI_B_DISC_FLAG)
+                                       {
+                                               result[0] = 5;
+                                               PUT_WORD(&result[1], LI_IND_DISCONNECT);
+                                               result[3] = 2;
+                                               PUT_WORD(&result[4], _LI_USER_INITIATED);
+                                       }
+                                       else
+                                       {
+                                               result[0] = 7;
+                                               PUT_WORD(&result[1], LI_IND_CONNECT_ACTIVE);
+                                               result[3] = 4;
+                                               PUT_DWORD(&result[4], d & ~LI_PLCI_B_FLAG_MASK);
+                                       }
+                               }
+                               else
+                               {
+                                       if (d & LI_PLCI_B_DISC_FLAG)
+                                       {
+                                               result[0] = 9;
+                                               PUT_WORD(&result[1], LI_IND_DISCONNECT);
+                                               result[3] = 6;
+                                               PUT_DWORD(&result[4], d & ~LI_PLCI_B_FLAG_MASK);
+                                               PUT_WORD(&result[8], _LI_USER_INITIATED);
+                                       }
+                                       else
+                                       {
+                                               result[0] = 7;
+                                               PUT_WORD(&result[1], LI_IND_CONNECT_ACTIVE);
+                                               result[3] = 4;
+                                               PUT_DWORD(&result[4], d & ~LI_PLCI_B_FLAG_MASK);
+                                       }
+                               }
+                               sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0,
+                                     "ws", SELECTOR_LINE_INTERCONNECT, result);
+                       }
+                       plci->li_plci_b_read_pos = (plci->li_plci_b_read_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ?
+                               0 : plci->li_plci_b_read_pos + 1;
+               } while (!(d & LI_PLCI_B_LAST_FLAG) && (plci->li_plci_b_read_pos != plci->li_plci_b_req_pos));
+       }
+}
+
+
+static void mixer_indication_xconnect_from(dword Id, PLCI *plci, byte *msg, word length)
+{
+       word i, j, ch;
+       struct xconnect_transfer_address_s s,   *p;
+       DIVA_CAPI_ADAPTER *a;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_indication_xconnect_from %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, (int)length));
+
+       a = plci->adapter;
+       i = 1;
+       for (i = 1; i < length; i += 16)
+       {
+               s.card_address.low = msg[i] | (msg[i + 1] << 8) | (((dword)(msg[i + 2])) << 16) | (((dword)(msg[i + 3])) << 24);
+               s.card_address.high = msg[i + 4] | (msg[i + 5] << 8) | (((dword)(msg[i + 6])) << 16) | (((dword)(msg[i + 7])) << 24);
+               s.offset = msg[i + 8] | (msg[i + 9] << 8) | (((dword)(msg[i + 10])) << 16) | (((dword)(msg[i + 11])) << 24);
+               ch = msg[i + 12] | (msg[i + 13] << 8);
+               j = ch & XCONNECT_CHANNEL_NUMBER_MASK;
+               if (!a->li_pri && (plci->li_bchannel_id == 2))
+                       j = 1 - j;
+               j += a->li_base;
+               if (ch & XCONNECT_CHANNEL_PORT_PC)
+                       p = &(li_config_table[j].send_pc);
+               else
+                       p = &(li_config_table[j].send_b);
+               p->card_address.low = s.card_address.low;
+               p->card_address.high = s.card_address.high;
+               p->offset = s.offset;
+               li_config_table[j].channel |= LI_CHANNEL_ADDRESSES_SET;
+       }
+       if (plci->internal_command_queue[0]
+           && ((plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_2)
+               || (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_3)
+               || (plci->adjust_b_state == ADJUST_B_RESTORE_MIXER_4)))
+       {
+               (*(plci->internal_command_queue[0]))(Id, plci, 0);
+               if (!plci->internal_command)
+                       next_internal_command(Id, plci);
+       }
+       mixer_notify_update(plci, true);
+}
+
+
+static void mixer_indication_xconnect_to(dword Id, PLCI *plci, byte *msg, word length)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_indication_xconnect_to %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, (int) length));
+
+}
+
+
+static byte mixer_notify_source_removed(PLCI *plci, dword plci_b_id)
+{
+       word plci_b_write_pos;
+
+       plci_b_write_pos = plci->li_plci_b_write_pos;
+       if (((plci->li_plci_b_read_pos > plci_b_write_pos) ? plci->li_plci_b_read_pos :
+            LI_PLCI_B_QUEUE_ENTRIES + plci->li_plci_b_read_pos) - plci_b_write_pos - 1 < 1)
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: LI request overrun",
+                               (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                               (char *)(FILE_), __LINE__));
+               return (false);
+       }
+       plci->li_plci_b_queue[plci_b_write_pos] = plci_b_id | LI_PLCI_B_DISC_FLAG;
+       plci_b_write_pos = (plci_b_write_pos == LI_PLCI_B_QUEUE_ENTRIES - 1) ? 0 : plci_b_write_pos + 1;
+       plci->li_plci_b_write_pos = plci_b_write_pos;
+       return (true);
+}
+
+
+static void mixer_remove(PLCI *plci)
+{
+       DIVA_CAPI_ADAPTER *a;
+       PLCI *notify_plci;
+       dword plci_b_id;
+       word i, j;
+
+       dbug(1, dprintf("[%06lx] %s,%d: mixer_remove",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
+
+       a = plci->adapter;
+       plci_b_id = (plci->Id << 8) | UnMapController(plci->adapter->Id);
+       if (a->profile.Global_Options & GL_LINE_INTERCONNECT_SUPPORTED)
+       {
+               if ((plci->li_bchannel_id != 0)
+                   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+               {
+                       i = a->li_base + (plci->li_bchannel_id - 1);
+                       if ((li_config_table[i].curchnl | li_config_table[i].channel) & LI_CHANNEL_INVOLVED)
+                       {
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       if ((li_config_table[i].flag_table[j] & LI_FLAG_INTERCONNECT)
+                                           || (li_config_table[j].flag_table[i] & LI_FLAG_INTERCONNECT))
+                                       {
+                                               notify_plci = li_config_table[j].plci;
+                                               if ((notify_plci != NULL)
+                                                   && (notify_plci != plci)
+                                                   && (notify_plci->appl != NULL)
+                                                   && !(notify_plci->appl->appl_flags & APPL_FLAG_OLD_LI_SPEC)
+                                                   && (notify_plci->State)
+                                                   && notify_plci->NL.Id && !notify_plci->nl_remove_id)
+                                               {
+                                                       mixer_notify_source_removed(notify_plci, plci_b_id);
+                                               }
+                                       }
+                               }
+                               mixer_clear_config(plci);
+                               mixer_calculate_coefs(a);
+                               mixer_notify_update(plci, true);
+                       }
+                       li_config_table[i].plci = NULL;
+                       plci->li_bchannel_id = 0;
+               }
+       }
 }
 
 
-static void adv_voice_clear_config (PLCI   *plci)
-{
-  DIVA_CAPI_ADAPTER   *a;
-
-  word i, j;
+/*------------------------------------------------------------------*/
+/* Echo canceller facilities                                        */
+/*------------------------------------------------------------------*/
 
 
-  dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_clear_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
+static void ec_write_parameters(PLCI *plci)
+{
+       word w;
+       byte parameter_buffer[6];
 
-  a = plci->adapter;
-  if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
-  {
-    a->adv_voice_coef_length = 0;
-
-    if (!a->li_pri && (plci->li_bchannel_id != 0)
-     && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-    {
-      i = a->li_base + (plci->li_bchannel_id - 1);
-      li_config_table[i].curchnl = 0;
-      li_config_table[i].channel = 0;
-      li_config_table[i].chflags = 0;
-      for (j = 0; j < li_total_channels; j++)
-      {
-        li_config_table[i].flag_table[j] = 0;
-        li_config_table[j].flag_table[i] = 0;
-        li_config_table[i].coef_table[j] = 0;
-        li_config_table[j].coef_table[i] = 0;
-      }
-      li_config_table[i].coef_table[i] |= LI_COEF_CH_PC_SET | LI_COEF_PC_CH_SET;
-      i = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
-      li_config_table[i].curchnl = 0;
-      li_config_table[i].channel = 0;
-      li_config_table[i].chflags = 0;
-      for (j = 0; j < li_total_channels; j++)
-      {
-        li_config_table[i].flag_table[j] = 0;
-        li_config_table[j].flag_table[i] = 0;
-        li_config_table[i].coef_table[j] = 0;
-        li_config_table[j].coef_table[i] = 0;
-      }
-      if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
-      {
-        i = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
-        li_config_table[i].curchnl = 0;
-        li_config_table[i].channel = 0;
-        li_config_table[i].chflags = 0;
-        for (j = 0; j < li_total_channels; j++)
-        {
-          li_config_table[i].flag_table[j] = 0;
-          li_config_table[j].flag_table[i] = 0;
-          li_config_table[i].coef_table[j] = 0;
-          li_config_table[j].coef_table[i] = 0;
-        }
-      }
-    }
+       dbug(1, dprintf("[%06lx] %s,%d: ec_write_parameters",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-  }
+       parameter_buffer[0] = 5;
+       parameter_buffer[1] = DSP_CTRL_SET_LEC_PARAMETERS;
+       PUT_WORD(&parameter_buffer[2], plci->ec_idi_options);
+       plci->ec_idi_options &= ~LEC_RESET_COEFFICIENTS;
+       w = (plci->ec_tail_length == 0) ? 128 : plci->ec_tail_length;
+       PUT_WORD(&parameter_buffer[4], w);
+       add_p(plci, FTY, parameter_buffer);
+       sig_req(plci, TEL_CTRL, 0);
+       send_req(plci);
 }
 
 
-static void adv_voice_prepare_switch (dword Id, PLCI   *plci)
+static void ec_clear_config(PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_prepare_switch",
-    UnMapId (Id), (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: ec_clear_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
+       plci->ec_idi_options = LEC_ENABLE_ECHO_CANCELLER |
+               LEC_MANUAL_DISABLE | LEC_ENABLE_NONLINEAR_PROCESSING;
+       plci->ec_tail_length = 0;
 }
 
 
-static word adv_voice_save_config (dword Id, PLCI   *plci, byte Rc)
+static void ec_prepare_switch(dword Id, PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_save_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+       dbug(1, dprintf("[%06lx] %s,%d: ec_prepare_switch",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
 
-  return (GOOD);
 }
 
 
-static word adv_voice_restore_config (dword Id, PLCI   *plci, byte Rc)
-{
-  DIVA_CAPI_ADAPTER   *a;
-  word Info;
+static word ec_save_config(dword Id, PLCI *plci, byte Rc)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: ec_save_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       return (GOOD);
+}
+
+
+static word ec_restore_config(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+
+       dbug(1, dprintf("[%06lx] %s,%d: ec_restore_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       Info = GOOD;
+       if (plci->B1_facilities & B1_FACILITY_EC)
+       {
+               switch (plci->adjust_b_state)
+               {
+               case ADJUST_B_RESTORE_EC_1:
+                       plci->internal_command = plci->adjust_b_command;
+                       if (plci->sig_req)
+                       {
+                               plci->adjust_b_state = ADJUST_B_RESTORE_EC_1;
+                               break;
+                       }
+                       ec_write_parameters(plci);
+                       plci->adjust_b_state = ADJUST_B_RESTORE_EC_2;
+                       break;
+               case ADJUST_B_RESTORE_EC_2:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Restore EC failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _WRONG_STATE;
+                               break;
+                       }
+                       break;
+               }
+       }
+       return (Info);
+}
+
+
+static void ec_command(dword Id, PLCI *plci, byte Rc)
+{
+       word internal_command, Info;
+       byte result[8];
+
+       dbug(1, dprintf("[%06lx] %s,%d: ec_command %02x %04x %04x %04x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command,
+                       plci->ec_cmd, plci->ec_idi_options, plci->ec_tail_length));
+
+       Info = GOOD;
+       if (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC)
+       {
+               result[0] = 2;
+               PUT_WORD(&result[1], EC_SUCCESS);
+       }
+       else
+       {
+               result[0] = 5;
+               PUT_WORD(&result[1], plci->ec_cmd);
+               result[3] = 2;
+               PUT_WORD(&result[4], GOOD);
+       }
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (plci->ec_cmd)
+       {
+       case EC_ENABLE_OPERATION:
+       case EC_FREEZE_COEFFICIENTS:
+       case EC_RESUME_COEFFICIENT_UPDATE:
+       case EC_RESET_COEFFICIENTS:
+               switch (internal_command)
+               {
+               default:
+                       adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities |
+                                                                 B1_FACILITY_EC), EC_COMMAND_1);
+               case EC_COMMAND_1:
+                       if (adjust_b_process(Id, plci, Rc) != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Load EC failed",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       if (plci->internal_command)
+                               return;
+               case EC_COMMAND_2:
+                       if (plci->sig_req)
+                       {
+                               plci->internal_command = EC_COMMAND_2;
+                               return;
+                       }
+                       plci->internal_command = EC_COMMAND_3;
+                       ec_write_parameters(plci);
+                       return;
+               case EC_COMMAND_3:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Enable EC failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       break;
+               }
+               break;
+
+       case EC_DISABLE_OPERATION:
+               switch (internal_command)
+               {
+               default:
+               case EC_COMMAND_1:
+                       if (plci->B1_facilities & B1_FACILITY_EC)
+                       {
+                               if (plci->sig_req)
+                               {
+                                       plci->internal_command = EC_COMMAND_1;
+                                       return;
+                               }
+                               plci->internal_command = EC_COMMAND_2;
+                               ec_write_parameters(plci);
+                               return;
+                       }
+                       Rc = OK;
+               case EC_COMMAND_2:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Disable EC failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       adjust_b1_resource(Id, plci, NULL, (word)(plci->B1_facilities &
+                                                                 ~B1_FACILITY_EC), EC_COMMAND_3);
+               case EC_COMMAND_3:
+                       if (adjust_b_process(Id, plci, Rc) != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Unload EC failed",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _FACILITY_NOT_SUPPORTED;
+                               break;
+                       }
+                       if (plci->internal_command)
+                               return;
+                       break;
+               }
+               break;
+       }
+       sendf(plci->appl, _FACILITY_R | CONFIRM, Id & 0xffffL, plci->number,
+             "wws", Info, (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC) ?
+             PRIV_SELECTOR_ECHO_CANCELLER : SELECTOR_ECHO_CANCELLER, result);
+}
+
+
+static byte ec_request(dword Id, word Number, DIVA_CAPI_ADAPTER *a, PLCI *plci, APPL   *appl, API_PARSE *msg)
+{
+       word Info;
+       word opt;
+       API_PARSE ec_parms[3];
+       byte result[16];
+
+       dbug(1, dprintf("[%06lx] %s,%d: ec_request",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       Info = GOOD;
+       result[0] = 0;
+       if (!(a->man_profile.private_options & (1L << PRIVATE_ECHO_CANCELLER)))
+       {
+               dbug(1, dprintf("[%06lx] %s,%d: Facility not supported",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+               Info = _FACILITY_NOT_SUPPORTED;
+       }
+       else
+       {
+               if (appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC)
+               {
+                       if (api_parse(&msg[1].info[1], msg[1].length, "w", ec_parms))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _WRONG_MESSAGE_FORMAT;
+                       }
+                       else
+                       {
+                               if (plci == NULL)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong PLCI",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_IDENTIFIER;
+                               }
+                               else if (!plci->State || !plci->NL.Id || plci->nl_remove_id)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong state",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_STATE;
+                               }
+                               else
+                               {
+                                       plci->command = 0;
+                                       plci->ec_cmd = GET_WORD(ec_parms[0].info);
+                                       plci->ec_idi_options &= ~(LEC_MANUAL_DISABLE | LEC_RESET_COEFFICIENTS);
+                                       result[0] = 2;
+                                       PUT_WORD(&result[1], EC_SUCCESS);
+                                       if (msg[1].length >= 4)
+                                       {
+                                               opt = GET_WORD(&ec_parms[0].info[2]);
+                                               plci->ec_idi_options &= ~(LEC_ENABLE_NONLINEAR_PROCESSING |
+                                                                         LEC_ENABLE_2100HZ_DETECTOR | LEC_REQUIRE_2100HZ_REVERSALS);
+                                               if (!(opt & EC_DISABLE_NON_LINEAR_PROCESSING))
+                                                       plci->ec_idi_options |= LEC_ENABLE_NONLINEAR_PROCESSING;
+                                               if (opt & EC_DETECT_DISABLE_TONE)
+                                                       plci->ec_idi_options |= LEC_ENABLE_2100HZ_DETECTOR;
+                                               if (!(opt & EC_DO_NOT_REQUIRE_REVERSALS))
+                                                       plci->ec_idi_options |= LEC_REQUIRE_2100HZ_REVERSALS;
+                                               if (msg[1].length >= 6)
+                                               {
+                                                       plci->ec_tail_length = GET_WORD(&ec_parms[0].info[4]);
+                                               }
+                                       }
+                                       switch (plci->ec_cmd)
+                                       {
+                                       case EC_ENABLE_OPERATION:
+                                               plci->ec_idi_options &= ~LEC_FREEZE_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       case EC_DISABLE_OPERATION:
+                                               plci->ec_idi_options = LEC_ENABLE_ECHO_CANCELLER |
+                                                       LEC_MANUAL_DISABLE | LEC_ENABLE_NONLINEAR_PROCESSING |
+                                                       LEC_RESET_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       case EC_FREEZE_COEFFICIENTS:
+                                               plci->ec_idi_options |= LEC_FREEZE_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       case EC_RESUME_COEFFICIENT_UPDATE:
+                                               plci->ec_idi_options &= ~LEC_FREEZE_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       case EC_RESET_COEFFICIENTS:
+                                               plci->ec_idi_options |= LEC_RESET_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       default:
+                                               dbug(1, dprintf("[%06lx] %s,%d: EC unknown request %04x",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__, plci->ec_cmd));
+                                               PUT_WORD(&result[1], EC_UNSUPPORTED_OPERATION);
+                                       }
+                               }
+                       }
+               }
+               else
+               {
+                       if (api_parse(&msg[1].info[1], msg[1].length, "ws", ec_parms))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Wrong message format",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__));
+                               Info = _WRONG_MESSAGE_FORMAT;
+                       }
+                       else
+                       {
+                               if (GET_WORD(ec_parms[0].info) == EC_GET_SUPPORTED_SERVICES)
+                               {
+                                       result[0] = 11;
+                                       PUT_WORD(&result[1], EC_GET_SUPPORTED_SERVICES);
+                                       result[3] = 8;
+                                       PUT_WORD(&result[4], GOOD);
+                                       PUT_WORD(&result[6], 0x0007);
+                                       PUT_WORD(&result[8], LEC_MAX_SUPPORTED_TAIL_LENGTH);
+                                       PUT_WORD(&result[10], 0);
+                               }
+                               else if (plci == NULL)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong PLCI",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_IDENTIFIER;
+                               }
+                               else if (!plci->State || !plci->NL.Id || plci->nl_remove_id)
+                               {
+                                       dbug(1, dprintf("[%06lx] %s,%d: Wrong state",
+                                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                                       Info = _WRONG_STATE;
+                               }
+                               else
+                               {
+                                       plci->command = 0;
+                                       plci->ec_cmd = GET_WORD(ec_parms[0].info);
+                                       plci->ec_idi_options &= ~(LEC_MANUAL_DISABLE | LEC_RESET_COEFFICIENTS);
+                                       result[0] = 5;
+                                       PUT_WORD(&result[1], plci->ec_cmd);
+                                       result[3] = 2;
+                                       PUT_WORD(&result[4], GOOD);
+                                       plci->ec_idi_options &= ~(LEC_ENABLE_NONLINEAR_PROCESSING |
+                                                                 LEC_ENABLE_2100HZ_DETECTOR | LEC_REQUIRE_2100HZ_REVERSALS);
+                                       plci->ec_tail_length = 0;
+                                       if (ec_parms[1].length >= 2)
+                                       {
+                                               opt = GET_WORD(&ec_parms[1].info[1]);
+                                               if (opt & EC_ENABLE_NON_LINEAR_PROCESSING)
+                                                       plci->ec_idi_options |= LEC_ENABLE_NONLINEAR_PROCESSING;
+                                               if (opt & EC_DETECT_DISABLE_TONE)
+                                                       plci->ec_idi_options |= LEC_ENABLE_2100HZ_DETECTOR;
+                                               if (!(opt & EC_DO_NOT_REQUIRE_REVERSALS))
+                                                       plci->ec_idi_options |= LEC_REQUIRE_2100HZ_REVERSALS;
+                                               if (ec_parms[1].length >= 4)
+                                               {
+                                                       plci->ec_tail_length = GET_WORD(&ec_parms[1].info[3]);
+                                               }
+                                       }
+                                       switch (plci->ec_cmd)
+                                       {
+                                       case EC_ENABLE_OPERATION:
+                                               plci->ec_idi_options &= ~LEC_FREEZE_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       case EC_DISABLE_OPERATION:
+                                               plci->ec_idi_options = LEC_ENABLE_ECHO_CANCELLER |
+                                                       LEC_MANUAL_DISABLE | LEC_ENABLE_NONLINEAR_PROCESSING |
+                                                       LEC_RESET_COEFFICIENTS;
+                                               start_internal_command(Id, plci, ec_command);
+                                               return (false);
+
+                                       default:
+                                               dbug(1, dprintf("[%06lx] %s,%d: EC unknown request %04x",
+                                                               UnMapId(Id), (char *)(FILE_), __LINE__, plci->ec_cmd));
+                                               PUT_WORD(&result[4], _FACILITY_SPECIFIC_FUNCTION_NOT_SUPP);
+                                       }
+                               }
+                       }
+               }
+       }
+       sendf(appl, _FACILITY_R | CONFIRM, Id & 0xffffL, Number,
+             "wws", Info, (appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC) ?
+             PRIV_SELECTOR_ECHO_CANCELLER : SELECTOR_ECHO_CANCELLER, result);
+       return (false);
+}
+
+
+static void ec_indication(dword Id, PLCI *plci, byte *msg, word length)
+{
+       byte result[8];
+
+       dbug(1, dprintf("[%06lx] %s,%d: ec_indication",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+       if (!(plci->ec_idi_options & LEC_MANUAL_DISABLE))
+       {
+               if (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC)
+               {
+                       result[0] = 2;
+                       PUT_WORD(&result[1], 0);
+                       switch (msg[1])
+                       {
+                       case LEC_DISABLE_TYPE_CONTIGNUOUS_2100HZ:
+                               PUT_WORD(&result[1], EC_BYPASS_DUE_TO_CONTINUOUS_2100HZ);
+                               break;
+                       case LEC_DISABLE_TYPE_REVERSED_2100HZ:
+                               PUT_WORD(&result[1], EC_BYPASS_DUE_TO_REVERSED_2100HZ);
+                               break;
+                       case LEC_DISABLE_RELEASED:
+                               PUT_WORD(&result[1], EC_BYPASS_RELEASED);
+                               break;
+                       }
+               }
+               else
+               {
+                       result[0] = 5;
+                       PUT_WORD(&result[1], EC_BYPASS_INDICATION);
+                       result[3] = 2;
+                       PUT_WORD(&result[4], 0);
+                       switch (msg[1])
+                       {
+                       case LEC_DISABLE_TYPE_CONTIGNUOUS_2100HZ:
+                               PUT_WORD(&result[4], EC_BYPASS_DUE_TO_CONTINUOUS_2100HZ);
+                               break;
+                       case LEC_DISABLE_TYPE_REVERSED_2100HZ:
+                               PUT_WORD(&result[4], EC_BYPASS_DUE_TO_REVERSED_2100HZ);
+                               break;
+                       case LEC_DISABLE_RELEASED:
+                               PUT_WORD(&result[4], EC_BYPASS_RELEASED);
+                               break;
+                       }
+               }
+               sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", (plci->appl->appl_flags & APPL_FLAG_PRIV_EC_SPEC) ?
+                     PRIV_SELECTOR_ECHO_CANCELLER : SELECTOR_ECHO_CANCELLER, result);
+       }
+}
+
+
+
+/*------------------------------------------------------------------*/
+/* Advanced voice                                                   */
+/*------------------------------------------------------------------*/
 
-  dbug (1, dprintf ("[%06lx] %s,%d: adv_voice_restore_config %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+static void adv_voice_write_coefs(PLCI *plci, word write_command)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word i;
+       byte *p;
+
+       word w, n, j, k;
+       byte ch_map[MIXER_CHANNELS_BRI];
+
+       byte coef_buffer[ADV_VOICE_COEF_BUFFER_SIZE + 2];
+
+       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_write_coefs %d",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, write_command));
+
+       a = plci->adapter;
+       p = coef_buffer + 1;
+       *(p++) = DSP_CTRL_OLD_SET_MIXER_COEFFICIENTS;
+       i = 0;
+       while (i + sizeof(word) <= a->adv_voice_coef_length)
+       {
+               PUT_WORD(p, GET_WORD(a->adv_voice_coef_buffer + i));
+               p += 2;
+               i += 2;
+       }
+       while (i < ADV_VOICE_OLD_COEF_COUNT * sizeof(word))
+       {
+               PUT_WORD(p, 0x8000);
+               p += 2;
+               i += 2;
+       }
+
+       if (!a->li_pri && (plci->li_bchannel_id == 0))
+       {
+               if ((li_config_table[a->li_base].plci == NULL) && (li_config_table[a->li_base + 1].plci != NULL))
+               {
+                       plci->li_bchannel_id = 1;
+                       li_config_table[a->li_base].plci = plci;
+                       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_set_bchannel_id %d",
+                                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                                       (char *)(FILE_), __LINE__, plci->li_bchannel_id));
+               }
+               else if ((li_config_table[a->li_base].plci != NULL) && (li_config_table[a->li_base + 1].plci == NULL))
+               {
+                       plci->li_bchannel_id = 2;
+                       li_config_table[a->li_base + 1].plci = plci;
+                       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_set_bchannel_id %d",
+                                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                                       (char *)(FILE_), __LINE__, plci->li_bchannel_id));
+               }
+       }
+       if (!a->li_pri && (plci->li_bchannel_id != 0)
+           && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               i = a->li_base + (plci->li_bchannel_id - 1);
+               switch (write_command)
+               {
+               case ADV_VOICE_WRITE_ACTIVATION:
+                       j = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
+                       k = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
+                       if (!(plci->B1_facilities & B1_FACILITY_MIXER))
+                       {
+                               li_config_table[j].flag_table[i] |= LI_FLAG_CONFERENCE | LI_FLAG_MIX;
+                               li_config_table[i].flag_table[j] |= LI_FLAG_CONFERENCE | LI_FLAG_MONITOR;
+                       }
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
+                       {
+                               li_config_table[k].flag_table[i] |= LI_FLAG_CONFERENCE | LI_FLAG_MIX;
+                               li_config_table[i].flag_table[k] |= LI_FLAG_CONFERENCE | LI_FLAG_MONITOR;
+                               li_config_table[k].flag_table[j] |= LI_FLAG_CONFERENCE;
+                               li_config_table[j].flag_table[k] |= LI_FLAG_CONFERENCE;
+                       }
+                       mixer_calculate_coefs(a);
+                       li_config_table[i].curchnl = li_config_table[i].channel;
+                       li_config_table[j].curchnl = li_config_table[j].channel;
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
+                               li_config_table[k].curchnl = li_config_table[k].channel;
+                       break;
+
+               case ADV_VOICE_WRITE_DEACTIVATION:
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               li_config_table[i].flag_table[j] = 0;
+                               li_config_table[j].flag_table[i] = 0;
+                       }
+                       k = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               li_config_table[k].flag_table[j] = 0;
+                               li_config_table[j].flag_table[k] = 0;
+                       }
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
+                       {
+                               k = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       li_config_table[k].flag_table[j] = 0;
+                                       li_config_table[j].flag_table[k] = 0;
+                               }
+                       }
+                       mixer_calculate_coefs(a);
+                       break;
+               }
+               if (plci->B1_facilities & B1_FACILITY_MIXER)
+               {
+                       w = 0;
+                       if (ADV_VOICE_NEW_COEF_BASE + sizeof(word) <= a->adv_voice_coef_length)
+                               w = GET_WORD(a->adv_voice_coef_buffer + ADV_VOICE_NEW_COEF_BASE);
+                       if (li_config_table[i].channel & LI_CHANNEL_TX_DATA)
+                               w |= MIXER_FEATURE_ENABLE_TX_DATA;
+                       if (li_config_table[i].channel & LI_CHANNEL_RX_DATA)
+                               w |= MIXER_FEATURE_ENABLE_RX_DATA;
+                       *(p++) = (byte) w;
+                       *(p++) = (byte)(w >> 8);
+                       for (j = 0; j < sizeof(ch_map); j += 2)
+                       {
+                               ch_map[j] = (byte)(j + (plci->li_bchannel_id - 1));
+                               ch_map[j + 1] = (byte)(j + (2 - plci->li_bchannel_id));
+                       }
+                       for (n = 0; n < ARRAY_SIZE(mixer_write_prog_bri); n++)
+                       {
+                               i = a->li_base + ch_map[mixer_write_prog_bri[n].to_ch];
+                               j = a->li_base + ch_map[mixer_write_prog_bri[n].from_ch];
+                               if (li_config_table[i].channel & li_config_table[j].channel & LI_CHANNEL_INVOLVED)
+                               {
+                                       *(p++) = ((li_config_table[i].coef_table[j] & mixer_write_prog_bri[n].mask) ? 0x80 : 0x01);
+                                       w = ((li_config_table[i].coef_table[j] & 0xf) ^ (li_config_table[i].coef_table[j] >> 4));
+                                       li_config_table[i].coef_table[j] ^= (w & mixer_write_prog_bri[n].mask) << 4;
+                               }
+                               else
+                               {
+                                       *(p++) = (ADV_VOICE_NEW_COEF_BASE + sizeof(word) + n < a->adv_voice_coef_length) ?
+                                               a->adv_voice_coef_buffer[ADV_VOICE_NEW_COEF_BASE + sizeof(word) + n] : 0x00;
+                               }
+                       }
+               }
+               else
+               {
+                       for (i = ADV_VOICE_NEW_COEF_BASE; i < a->adv_voice_coef_length; i++)
+                               *(p++) = a->adv_voice_coef_buffer[i];
+               }
+       }
+       else
+
+       {
+               for (i = ADV_VOICE_NEW_COEF_BASE; i < a->adv_voice_coef_length; i++)
+                       *(p++) = a->adv_voice_coef_buffer[i];
+       }
+       coef_buffer[0] = (p - coef_buffer) - 1;
+       add_p(plci, FTY, coef_buffer);
+       sig_req(plci, TEL_CTRL, 0);
+       send_req(plci);
+}
+
+
+static void adv_voice_clear_config(PLCI *plci)
+{
+       DIVA_CAPI_ADAPTER *a;
+
+       word i, j;
+
+
+       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_clear_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
+
+       a = plci->adapter;
+       if ((plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
+       {
+               a->adv_voice_coef_length = 0;
+
+               if (!a->li_pri && (plci->li_bchannel_id != 0)
+                   && (li_config_table[a->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+               {
+                       i = a->li_base + (plci->li_bchannel_id - 1);
+                       li_config_table[i].curchnl = 0;
+                       li_config_table[i].channel = 0;
+                       li_config_table[i].chflags = 0;
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               li_config_table[i].flag_table[j] = 0;
+                               li_config_table[j].flag_table[i] = 0;
+                               li_config_table[i].coef_table[j] = 0;
+                               li_config_table[j].coef_table[i] = 0;
+                       }
+                       li_config_table[i].coef_table[i] |= LI_COEF_CH_PC_SET | LI_COEF_PC_CH_SET;
+                       i = a->li_base + MIXER_IC_CHANNEL_BASE + (plci->li_bchannel_id - 1);
+                       li_config_table[i].curchnl = 0;
+                       li_config_table[i].channel = 0;
+                       li_config_table[i].chflags = 0;
+                       for (j = 0; j < li_total_channels; j++)
+                       {
+                               li_config_table[i].flag_table[j] = 0;
+                               li_config_table[j].flag_table[i] = 0;
+                               li_config_table[i].coef_table[j] = 0;
+                               li_config_table[j].coef_table[i] = 0;
+                       }
+                       if (a->manufacturer_features & MANUFACTURER_FEATURE_SLAVE_CODEC)
+                       {
+                               i = a->li_base + MIXER_IC_CHANNEL_BASE + (2 - plci->li_bchannel_id);
+                               li_config_table[i].curchnl = 0;
+                               li_config_table[i].channel = 0;
+                               li_config_table[i].chflags = 0;
+                               for (j = 0; j < li_total_channels; j++)
+                               {
+                                       li_config_table[i].flag_table[j] = 0;
+                                       li_config_table[j].flag_table[i] = 0;
+                                       li_config_table[i].coef_table[j] = 0;
+                                       li_config_table[j].coef_table[i] = 0;
+                               }
+                       }
+               }
+
+       }
+}
+
+
+static void adv_voice_prepare_switch(dword Id, PLCI *plci)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_prepare_switch",
+                       UnMapId(Id), (char *)(FILE_), __LINE__));
+
+}
+
+
+static word adv_voice_save_config(dword Id, PLCI *plci, byte Rc)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_save_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       return (GOOD);
+}
+
+
+static word adv_voice_restore_config(dword Id, PLCI *plci, byte Rc)
+{
+       DIVA_CAPI_ADAPTER *a;
+       word Info;
 
-  Info = GOOD;
-  a = plci->adapter;
-  if ((plci->B1_facilities & B1_FACILITY_VOICE)
-   && (plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
-  {
-    switch (plci->adjust_b_state)
-    {
-    case ADJUST_B_RESTORE_VOICE_1:
-      plci->internal_command = plci->adjust_b_command;
-      if (plci->sig_req)
-      {
-        plci->adjust_b_state = ADJUST_B_RESTORE_VOICE_1;
-        break;
-      }
-      adv_voice_write_coefs (plci, ADV_VOICE_WRITE_UPDATE);
-      plci->adjust_b_state = ADJUST_B_RESTORE_VOICE_2;
-      break;
-    case ADJUST_B_RESTORE_VOICE_2:
-      if ((Rc != OK) && (Rc != OK_FC))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Restore voice config failed %02x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-        Info = _WRONG_STATE;
-        break;
-      }
-      break;
-    }
-  }
-  return (Info);
+       dbug(1, dprintf("[%06lx] %s,%d: adv_voice_restore_config %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       Info = GOOD;
+       a = plci->adapter;
+       if ((plci->B1_facilities & B1_FACILITY_VOICE)
+           && (plci->tel == ADV_VOICE) && (plci == a->AdvSignalPLCI))
+       {
+               switch (plci->adjust_b_state)
+               {
+               case ADJUST_B_RESTORE_VOICE_1:
+                       plci->internal_command = plci->adjust_b_command;
+                       if (plci->sig_req)
+                       {
+                               plci->adjust_b_state = ADJUST_B_RESTORE_VOICE_1;
+                               break;
+                       }
+                       adv_voice_write_coefs(plci, ADV_VOICE_WRITE_UPDATE);
+                       plci->adjust_b_state = ADJUST_B_RESTORE_VOICE_2;
+                       break;
+               case ADJUST_B_RESTORE_VOICE_2:
+                       if ((Rc != OK) && (Rc != OK_FC))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Restore voice config failed %02x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                               Info = _WRONG_STATE;
+                               break;
+                       }
+                       break;
+               }
+       }
+       return (Info);
 }
 
 
@@ -13354,1373 +13354,1373 @@ static word adv_voice_restore_config (dword Id, PLCI   *plci, byte Rc)
 
 static byte b1_facilities_table[] =
 {
-  0x00,  /* 0  No bchannel resources      */
-  0x00,  /* 1  Codec (automatic law)      */
-  0x00,  /* 2  Codec (A-law)              */
-  0x00,  /* 3  Codec (y-law)              */
-  0x00,  /* 4  HDLC for X.21              */
-  0x00,  /* 5  HDLC                       */
-  0x00,  /* 6  External Device 0          */
-  0x00,  /* 7  External Device 1          */
-  0x00,  /* 8  HDLC 56k                   */
-  0x00,  /* 9  Transparent                */
-  0x00,  /* 10 Loopback to network        */
-  0x00,  /* 11 Test pattern to net        */
-  0x00,  /* 12 Rate adaptation sync       */
-  0x00,  /* 13 Rate adaptation async      */
-  0x00,  /* 14 R-Interface                */
-  0x00,  /* 15 HDLC 128k leased line      */
-  0x00,  /* 16 FAX                        */
-  0x00,  /* 17 Modem async                */
-  0x00,  /* 18 Modem sync HDLC            */
-  0x00,  /* 19 V.110 async HDLC           */
-  0x12,  /* 20 Adv voice (Trans,mixer)    */
-  0x00,  /* 21 Codec connected to IC      */
-  0x0c,  /* 22 Trans,DTMF                 */
-  0x1e,  /* 23 Trans,DTMF+mixer           */
-  0x1f,  /* 24 Trans,DTMF+mixer+local     */
-  0x13,  /* 25 Trans,mixer+local          */
-  0x12,  /* 26 HDLC,mixer                 */
-  0x12,  /* 27 HDLC 56k,mixer             */
-  0x2c,  /* 28 Trans,LEC+DTMF             */
-  0x3e,  /* 29 Trans,LEC+DTMF+mixer       */
-  0x3f,  /* 30 Trans,LEC+DTMF+mixer+local */
-  0x2c,  /* 31 RTP,LEC+DTMF               */
-  0x3e,  /* 32 RTP,LEC+DTMF+mixer         */
-  0x3f,  /* 33 RTP,LEC+DTMF+mixer+local   */
-  0x00,  /* 34 Signaling task             */
-  0x00,  /* 35 PIAFS                      */
-  0x0c,  /* 36 Trans,DTMF+TONE            */
-  0x1e,  /* 37 Trans,DTMF+TONE+mixer      */
-  0x1f   /* 38 Trans,DTMF+TONE+mixer+local*/
+       0x00,  /* 0  No bchannel resources      */
+       0x00,  /* 1  Codec (automatic law)      */
+       0x00,  /* 2  Codec (A-law)              */
+       0x00,  /* 3  Codec (y-law)              */
+       0x00,  /* 4  HDLC for X.21              */
+       0x00,  /* 5  HDLC                       */
+       0x00,  /* 6  External Device 0          */
+       0x00,  /* 7  External Device 1          */
+       0x00,  /* 8  HDLC 56k                   */
+       0x00,  /* 9  Transparent                */
+       0x00,  /* 10 Loopback to network        */
+       0x00,  /* 11 Test pattern to net        */
+       0x00,  /* 12 Rate adaptation sync       */
+       0x00,  /* 13 Rate adaptation async      */
+       0x00,  /* 14 R-Interface                */
+       0x00,  /* 15 HDLC 128k leased line      */
+       0x00,  /* 16 FAX                        */
+       0x00,  /* 17 Modem async                */
+       0x00,  /* 18 Modem sync HDLC            */
+       0x00,  /* 19 V.110 async HDLC           */
+       0x12,  /* 20 Adv voice (Trans,mixer)    */
+       0x00,  /* 21 Codec connected to IC      */
+       0x0c,  /* 22 Trans,DTMF                 */
+       0x1e,  /* 23 Trans,DTMF+mixer           */
+       0x1f,  /* 24 Trans,DTMF+mixer+local     */
+       0x13,  /* 25 Trans,mixer+local          */
+       0x12,  /* 26 HDLC,mixer                 */
+       0x12,  /* 27 HDLC 56k,mixer             */
+       0x2c,  /* 28 Trans,LEC+DTMF             */
+       0x3e,  /* 29 Trans,LEC+DTMF+mixer       */
+       0x3f,  /* 30 Trans,LEC+DTMF+mixer+local */
+       0x2c,  /* 31 RTP,LEC+DTMF               */
+       0x3e,  /* 32 RTP,LEC+DTMF+mixer         */
+       0x3f,  /* 33 RTP,LEC+DTMF+mixer+local   */
+       0x00,  /* 34 Signaling task             */
+       0x00,  /* 35 PIAFS                      */
+       0x0c,  /* 36 Trans,DTMF+TONE            */
+       0x1e,  /* 37 Trans,DTMF+TONE+mixer      */
+       0x1f   /* 38 Trans,DTMF+TONE+mixer+local*/
 };
 
 
-static word get_b1_facilities (PLCI   * plci, byte b1_resource)
+static word get_b1_facilities(PLCI *plci, byte b1_resource)
 {
-  word b1_facilities;
+       word b1_facilities;
 
-  b1_facilities = b1_facilities_table[b1_resource];
-  if ((b1_resource == 9) || (b1_resource == 20) || (b1_resource == 25))
-  {
+       b1_facilities = b1_facilities_table[b1_resource];
+       if ((b1_resource == 9) || (b1_resource == 20) || (b1_resource == 25))
+       {
 
-    if (!(((plci->requested_options_conn | plci->requested_options) & (1L << PRIVATE_DTMF_TONE))
-       || (plci->appl && (plci->adapter->requested_options_table[plci->appl->Id-1] & (1L << PRIVATE_DTMF_TONE)))))
+               if (!(((plci->requested_options_conn | plci->requested_options) & (1L << PRIVATE_DTMF_TONE))
+                     || (plci->appl && (plci->adapter->requested_options_table[plci->appl->Id - 1] & (1L << PRIVATE_DTMF_TONE)))))
 
-    {
-      if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_SEND)
-        b1_facilities |= B1_FACILITY_DTMFX;
-      if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE)
-        b1_facilities |= B1_FACILITY_DTMFR;
-    }
-  }
-  if ((b1_resource == 17) || (b1_resource == 18))
-  {
-    if (plci->adapter->manufacturer_features & (MANUFACTURER_FEATURE_V18 | MANUFACTURER_FEATURE_VOWN))
-      b1_facilities |= B1_FACILITY_DTMFX | B1_FACILITY_DTMFR;
-  }
+               {
+                       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_SEND)
+                               b1_facilities |= B1_FACILITY_DTMFX;
+                       if (plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE)
+                               b1_facilities |= B1_FACILITY_DTMFR;
+               }
+       }
+       if ((b1_resource == 17) || (b1_resource == 18))
+       {
+               if (plci->adapter->manufacturer_features & (MANUFACTURER_FEATURE_V18 | MANUFACTURER_FEATURE_VOWN))
+                       b1_facilities |= B1_FACILITY_DTMFX | B1_FACILITY_DTMFR;
+       }
 /*
-  dbug (1, dprintf ("[%06lx] %s,%d: get_b1_facilities %d %04x",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char far *)(FILE_), __LINE__, b1_resource, b1_facilites));
+  dbug (1, dprintf("[%06lx] %s,%d: get_b1_facilities %d %04x",
+  (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+  (char far *)(FILE_), __LINE__, b1_resource, b1_facilites));
 */
-  return (b1_facilities);
-}
-
-
-static byte add_b1_facilities (PLCI   * plci, byte b1_resource, word b1_facilities)
-{
-  byte b;
-
-  switch (b1_resource)
-  {
-  case 5:
-  case 26:
-    if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-      b = 26;
-    else
-      b = 5;
-    break;
-
-  case 8:
-  case 27:
-    if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-      b = 27;
-    else
-      b = 8;
-    break;
-
-  case 9:
-  case 20:
-  case 22:
-  case 23:
-  case 24:
-  case 25:
-  case 28:
-  case 29:
-  case 30:
-  case 36:
-  case 37:
-  case 38:
-    if (b1_facilities & B1_FACILITY_EC)
-    {
-      if (b1_facilities & B1_FACILITY_LOCAL)
-        b = 30;
-      else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-        b = 29;
-      else
-        b = 28;
-    }
-
-    else if ((b1_facilities & (B1_FACILITY_DTMFX | B1_FACILITY_DTMFR | B1_FACILITY_MIXER))
-      && (((plci->requested_options_conn | plci->requested_options) & (1L << PRIVATE_DTMF_TONE))
-       || (plci->appl && (plci->adapter->requested_options_table[plci->appl->Id-1] & (1L << PRIVATE_DTMF_TONE)))))
-    {
-      if (b1_facilities & B1_FACILITY_LOCAL)
-        b = 38;
-      else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-        b = 37;
-      else
-        b = 36;
-    }
-
-    else if (((plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_HARDDTMF)
-      && !(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE))
-     || ((b1_facilities & B1_FACILITY_DTMFR)
-      && ((b1_facilities & B1_FACILITY_MIXER)
-       || !(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE)))
-     || ((b1_facilities & B1_FACILITY_DTMFX)
-      && ((b1_facilities & B1_FACILITY_MIXER)
-       || !(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_SEND))))
-    {
-      if (b1_facilities & B1_FACILITY_LOCAL)
-        b = 24;
-      else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-        b = 23;
-      else
-        b = 22;
-    }
-    else
-    {
-      if (b1_facilities & B1_FACILITY_LOCAL)
-        b = 25;
-      else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-        b = 20;
-      else
-        b = 9;
-    }
-    break;
-
-  case 31:
-  case 32:
-  case 33:
-    if (b1_facilities & B1_FACILITY_LOCAL)
-      b = 33;
-    else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
-      b = 32;
-    else
-      b = 31;
-    break;
-
-  default:
-    b = b1_resource;
-  }
-  dbug (1, dprintf ("[%06lx] %s,%d: add_b1_facilities %d %04x %d %04x",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__,
-    b1_resource, b1_facilities, b, get_b1_facilities (plci, b)));
-  return (b);
-}
-
-
-static void adjust_b1_facilities (PLCI   *plci, byte new_b1_resource, word new_b1_facilities)
-{
-  word removed_facilities;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: adjust_b1_facilities %d %04x %04x",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__, new_b1_resource, new_b1_facilities,
-    new_b1_facilities & get_b1_facilities (plci, new_b1_resource)));
-
-  new_b1_facilities &= get_b1_facilities (plci, new_b1_resource);
-  removed_facilities = plci->B1_facilities & ~new_b1_facilities;
-
-  if (removed_facilities & B1_FACILITY_EC)
-    ec_clear_config (plci);
-
-
-  if (removed_facilities & B1_FACILITY_DTMFR)
-  {
-    dtmf_rec_clear_config (plci);
-    dtmf_parameter_clear_config (plci);
-  }
-  if (removed_facilities & B1_FACILITY_DTMFX)
-    dtmf_send_clear_config (plci);
-
-
-  if (removed_facilities & B1_FACILITY_MIXER)
-    mixer_clear_config (plci);
-
-  if (removed_facilities & B1_FACILITY_VOICE)
-    adv_voice_clear_config (plci);
-  plci->B1_facilities = new_b1_facilities;
-}
-
-
-static void adjust_b_clear (PLCI   *plci)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: adjust_b_clear",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  plci->adjust_b_restore = false;
-}
-
-
-static word adjust_b_process (dword Id, PLCI   *plci, byte Rc)
-{
-  word Info;
-  byte b1_resource;
-  NCCI   * ncci_ptr;
-    API_PARSE bp[2];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: adjust_b_process %02x %d",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
-
-  Info = GOOD;
-  switch (plci->adjust_b_state)
-  {
-  case ADJUST_B_START:
-    if ((plci->adjust_b_parms_msg == NULL)
-     && (plci->adjust_b_mode & ADJUST_B_MODE_SWITCH_L1)
-     && ((plci->adjust_b_mode & ~(ADJUST_B_MODE_SAVE | ADJUST_B_MODE_SWITCH_L1 |
-      ADJUST_B_MODE_NO_RESOURCE | ADJUST_B_MODE_RESTORE)) == 0))
-    {
-      b1_resource = (plci->adjust_b_mode == ADJUST_B_MODE_NO_RESOURCE) ?
-        0 : add_b1_facilities (plci, plci->B1_resource, plci->adjust_b_facilities);
-      if (b1_resource == plci->B1_resource)
-      {
-        adjust_b1_facilities (plci, b1_resource, plci->adjust_b_facilities);
-        break;
-      }
-      if (plci->adjust_b_facilities & ~get_b1_facilities (plci, b1_resource))
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Adjust B nonsupported facilities %d %d %04x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__,
-          plci->B1_resource, b1_resource, plci->adjust_b_facilities));
-        Info = _WRONG_STATE;
-        break;
-      }
-    }
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
-    {
-
-      mixer_prepare_switch (Id, plci);
-
-
-      dtmf_prepare_switch (Id, plci);
-      dtmf_parameter_prepare_switch (Id, plci);
-
-
-      ec_prepare_switch (Id, plci);
-
-      adv_voice_prepare_switch (Id, plci);
-    }
-    plci->adjust_b_state = ADJUST_B_SAVE_MIXER_1;
-    Rc = OK;
-  case ADJUST_B_SAVE_MIXER_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
-    {
-
-      Info = mixer_save_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_SAVE_DTMF_1;
-    Rc = OK;
-  case ADJUST_B_SAVE_DTMF_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
-    {
-
-      Info = dtmf_save_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_REMOVE_L23_1;
-  case ADJUST_B_REMOVE_L23_1:
-    if ((plci->adjust_b_mode & ADJUST_B_MODE_REMOVE_L23)
-     && plci->NL.Id && !plci->nl_remove_id)
-    {
-      plci->internal_command = plci->adjust_b_command;
-      if (plci->adjust_b_ncci != 0)
-      {
-        ncci_ptr = &(plci->adapter->ncci[plci->adjust_b_ncci]);
-        while (ncci_ptr->data_pending)
-        {
-          plci->data_sent_ptr = ncci_ptr->DBuffer[ncci_ptr->data_out].P;
-          data_rc (plci, plci->adapter->ncci_ch[plci->adjust_b_ncci]);
-        }
-        while (ncci_ptr->data_ack_pending)
-          data_ack (plci, plci->adapter->ncci_ch[plci->adjust_b_ncci]);
-      }
-      nl_req_ncci (plci, REMOVE,
-        (byte)((plci->adjust_b_mode & ADJUST_B_MODE_CONNECT) ? plci->adjust_b_ncci : 0));
-      send_req (plci);
-      plci->adjust_b_state = ADJUST_B_REMOVE_L23_2;
-      break;
-    }
-    plci->adjust_b_state = ADJUST_B_REMOVE_L23_2;
-    Rc = OK;
-  case ADJUST_B_REMOVE_L23_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Adjust B remove failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      Info = _WRONG_STATE;
-      break;
-    }
-    if (plci->adjust_b_mode & ADJUST_B_MODE_REMOVE_L23)
-    {
-      if (plci_nl_busy (plci))
-      {
-        plci->internal_command = plci->adjust_b_command;
-        break;
-      }
-    }
-    plci->adjust_b_state = ADJUST_B_SAVE_EC_1;
-    Rc = OK;
-  case ADJUST_B_SAVE_EC_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
-    {
-
-      Info = ec_save_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_SAVE_DTMF_PARAMETER_1;
-    Rc = OK;
-  case ADJUST_B_SAVE_DTMF_PARAMETER_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
-    {
-
-      Info = dtmf_parameter_save_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_SAVE_VOICE_1;
-    Rc = OK;
-  case ADJUST_B_SAVE_VOICE_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
-    {
-      Info = adv_voice_save_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-    }
-    plci->adjust_b_state = ADJUST_B_SWITCH_L1_1;
-  case ADJUST_B_SWITCH_L1_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_SWITCH_L1)
-    {
-      if (plci->sig_req)
-      {
-        plci->internal_command = plci->adjust_b_command;
-        break;
-      }
-      if (plci->adjust_b_parms_msg != NULL)
-        api_load_msg (plci->adjust_b_parms_msg, bp);
-      else
-        api_load_msg (&plci->B_protocol, bp);
-      Info = add_b1 (plci, bp,
-        (word)((plci->adjust_b_mode & ADJUST_B_MODE_NO_RESOURCE) ? 2 : 0),
-        plci->adjust_b_facilities);
-      if (Info != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Adjust B invalid L1 parameters %d %04x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__,
-          plci->B1_resource, plci->adjust_b_facilities));
-        break;
-      }
-      plci->internal_command = plci->adjust_b_command;
-      sig_req (plci, RESOURCES, 0);
-      send_req (plci);
-      plci->adjust_b_state = ADJUST_B_SWITCH_L1_2;
-      break;
-    }
-    plci->adjust_b_state = ADJUST_B_SWITCH_L1_2;
-    Rc = OK;
-  case ADJUST_B_SWITCH_L1_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Adjust B switch failed %02x %d %04x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__,
-        Rc, plci->B1_resource, plci->adjust_b_facilities));
-      Info = _WRONG_STATE;
-      break;
-    }
-    plci->adjust_b_state = ADJUST_B_RESTORE_VOICE_1;
-    Rc = OK;
-  case ADJUST_B_RESTORE_VOICE_1:
-  case ADJUST_B_RESTORE_VOICE_2:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
-    {
-      Info = adv_voice_restore_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-    }
-    plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_PARAMETER_1;
-    Rc = OK;
-  case ADJUST_B_RESTORE_DTMF_PARAMETER_1:
-  case ADJUST_B_RESTORE_DTMF_PARAMETER_2:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
-    {
-
-      Info = dtmf_parameter_restore_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_RESTORE_EC_1;
-    Rc = OK;
-  case ADJUST_B_RESTORE_EC_1:
-  case ADJUST_B_RESTORE_EC_2:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
-    {
-
-      Info = ec_restore_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_ASSIGN_L23_1;
-  case ADJUST_B_ASSIGN_L23_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_ASSIGN_L23)
-    {
-      if (plci_nl_busy (plci))
-      {
-        plci->internal_command = plci->adjust_b_command;
-        break;
-      }
-      if (plci->adjust_b_mode & ADJUST_B_MODE_CONNECT)
-        plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;
-      if (plci->adjust_b_parms_msg != NULL)
-        api_load_msg (plci->adjust_b_parms_msg, bp);
-      else
-        api_load_msg (&plci->B_protocol, bp);
-      Info = add_b23 (plci, bp);
-      if (Info != GOOD)
-      {
-        dbug (1, dprintf ("[%06lx] %s,%d: Adjust B invalid L23 parameters %04x",
-          UnMapId (Id), (char   *)(FILE_), __LINE__, Info));
-        break;
-      }
-      plci->internal_command = plci->adjust_b_command;
-      nl_req_ncci (plci, ASSIGN, 0);
-      send_req (plci);
-      plci->adjust_b_state = ADJUST_B_ASSIGN_L23_2;
-      break;
-    }
-    plci->adjust_b_state = ADJUST_B_ASSIGN_L23_2;
-    Rc = ASSIGN_OK;
-  case ADJUST_B_ASSIGN_L23_2:
-    if ((Rc != OK) && (Rc != OK_FC) && (Rc != ASSIGN_OK))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Adjust B assign failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      Info = _WRONG_STATE;
-      break;
-    }
-    if (plci->adjust_b_mode & ADJUST_B_MODE_ASSIGN_L23)
-    {
-      if (Rc != ASSIGN_OK)
-      {
-        plci->internal_command = plci->adjust_b_command;
-        break;
-      }
-    }
-    if (plci->adjust_b_mode & ADJUST_B_MODE_USER_CONNECT)
-    {
-      plci->adjust_b_restore = true;
-      break;
-    }
-    plci->adjust_b_state = ADJUST_B_CONNECT_1;
-  case ADJUST_B_CONNECT_1:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_CONNECT)
-    {
-      plci->internal_command = plci->adjust_b_command;
-      if (plci_nl_busy (plci))
-        break;
-      nl_req_ncci (plci, N_CONNECT, 0);
-      send_req (plci);
-      plci->adjust_b_state = ADJUST_B_CONNECT_2;
-      break;
-    }
-    plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
-    Rc = OK;
-  case ADJUST_B_CONNECT_2:
-  case ADJUST_B_CONNECT_3:
-  case ADJUST_B_CONNECT_4:
-    if ((Rc != OK) && (Rc != OK_FC) && (Rc != 0))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Adjust B connect failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      Info = _WRONG_STATE;
-      break;
-    }
-    if (Rc == OK)
-    {
-      if (plci->adjust_b_mode & ADJUST_B_MODE_CONNECT)
-      {
-        get_ncci (plci, (byte)(Id >> 16), plci->adjust_b_ncci);
-        Id = (Id & 0xffff) | (((dword)(plci->adjust_b_ncci)) << 16);
-      }
-      if (plci->adjust_b_state == ADJUST_B_CONNECT_2)
-        plci->adjust_b_state = ADJUST_B_CONNECT_3;
-      else if (plci->adjust_b_state == ADJUST_B_CONNECT_4)
-        plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
-    }
-    else if (Rc == 0)
-    {
-      if (plci->adjust_b_state == ADJUST_B_CONNECT_2)
-        plci->adjust_b_state = ADJUST_B_CONNECT_4;
-      else if (plci->adjust_b_state == ADJUST_B_CONNECT_3)
-        plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
-    }
-    if (plci->adjust_b_state != ADJUST_B_RESTORE_DTMF_1)
-    {
-      plci->internal_command = plci->adjust_b_command;
-      break;
-    }
-    Rc = OK;
-  case ADJUST_B_RESTORE_DTMF_1:
-  case ADJUST_B_RESTORE_DTMF_2:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
-    {
-
-      Info = dtmf_restore_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_1;
-    Rc = OK;
-  case ADJUST_B_RESTORE_MIXER_1:
-  case ADJUST_B_RESTORE_MIXER_2:
-  case ADJUST_B_RESTORE_MIXER_3:
-  case ADJUST_B_RESTORE_MIXER_4:
-  case ADJUST_B_RESTORE_MIXER_5:
-  case ADJUST_B_RESTORE_MIXER_6:
-  case ADJUST_B_RESTORE_MIXER_7:
-    if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
-    {
-
-      Info = mixer_restore_config (Id, plci, Rc);
-      if ((Info != GOOD) || plci->internal_command)
-        break;
-
-    }
-    plci->adjust_b_state = ADJUST_B_END;
-  case ADJUST_B_END:
-    break;
-  }
-  return (Info);
-}
-
-
-static void adjust_b1_resource (dword Id, PLCI   *plci, API_SAVE   *bp_msg, word b1_facilities, word internal_command)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: adjust_b1_resource %d %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__,
-    plci->B1_resource, b1_facilities));
-
-  plci->adjust_b_parms_msg = bp_msg;
-  plci->adjust_b_facilities = b1_facilities;
-  plci->adjust_b_command = internal_command;
-  plci->adjust_b_ncci = (word)(Id >> 16);
-  if ((bp_msg == NULL) && (plci->B1_resource == 0))
-    plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_NO_RESOURCE | ADJUST_B_MODE_SWITCH_L1;
-  else
-    plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_SWITCH_L1 | ADJUST_B_MODE_RESTORE;
-  plci->adjust_b_state = ADJUST_B_START;
-  dbug (1, dprintf ("[%06lx] %s,%d: Adjust B1 resource %d %04x...",
-    UnMapId (Id), (char   *)(FILE_), __LINE__,
-    plci->B1_resource, b1_facilities));
-}
-
-
-static void adjust_b_restore (dword Id, PLCI   *plci, byte Rc)
-{
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: adjust_b_restore %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-    if (plci->req_in != 0)
-    {
-      plci->internal_command = ADJUST_B_RESTORE_1;
-      break;
-    }
-    Rc = OK;
-  case ADJUST_B_RESTORE_1:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Adjust B enqueued failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-    }
-    plci->adjust_b_parms_msg = NULL;
-    plci->adjust_b_facilities = plci->B1_facilities;
-    plci->adjust_b_command = ADJUST_B_RESTORE_2;
-    plci->adjust_b_ncci = (word)(Id >> 16);
-    plci->adjust_b_mode = ADJUST_B_MODE_RESTORE;
-    plci->adjust_b_state = ADJUST_B_START;
-    dbug (1, dprintf ("[%06lx] %s,%d: Adjust B restore...",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-  case ADJUST_B_RESTORE_2:
-    if (adjust_b_process (Id, plci, Rc) != GOOD)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Adjust B restore failed",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-    }
-    if (plci->internal_command)
-      break;
-    break;
-  }
-}
-
-
-static void reset_b3_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word Info;
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: reset_b3_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-    plci->adjust_b_parms_msg = NULL;
-    plci->adjust_b_facilities = plci->B1_facilities;
-    plci->adjust_b_command = RESET_B3_COMMAND_1;
-    plci->adjust_b_ncci = (word)(Id >> 16);
-    plci->adjust_b_mode = ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_ASSIGN_L23 | ADJUST_B_MODE_CONNECT;
-    plci->adjust_b_state = ADJUST_B_START;
-    dbug (1, dprintf ("[%06lx] %s,%d: Reset B3...",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-  case RESET_B3_COMMAND_1:
-    Info = adjust_b_process (Id, plci, Rc);
-    if (Info != GOOD)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Reset failed",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-      break;
-    }
-    if (plci->internal_command)
-      return;
-    break;
-  }
+       return (b1_facilities);
+}
+
+
+static byte add_b1_facilities(PLCI *plci, byte b1_resource, word b1_facilities)
+{
+       byte b;
+
+       switch (b1_resource)
+       {
+       case 5:
+       case 26:
+               if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                       b = 26;
+               else
+                       b = 5;
+               break;
+
+       case 8:
+       case 27:
+               if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                       b = 27;
+               else
+                       b = 8;
+               break;
+
+       case 9:
+       case 20:
+       case 22:
+       case 23:
+       case 24:
+       case 25:
+       case 28:
+       case 29:
+       case 30:
+       case 36:
+       case 37:
+       case 38:
+               if (b1_facilities & B1_FACILITY_EC)
+               {
+                       if (b1_facilities & B1_FACILITY_LOCAL)
+                               b = 30;
+                       else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                               b = 29;
+                       else
+                               b = 28;
+               }
+
+               else if ((b1_facilities & (B1_FACILITY_DTMFX | B1_FACILITY_DTMFR | B1_FACILITY_MIXER))
+                        && (((plci->requested_options_conn | plci->requested_options) & (1L << PRIVATE_DTMF_TONE))
+                            || (plci->appl && (plci->adapter->requested_options_table[plci->appl->Id - 1] & (1L << PRIVATE_DTMF_TONE)))))
+               {
+                       if (b1_facilities & B1_FACILITY_LOCAL)
+                               b = 38;
+                       else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                               b = 37;
+                       else
+                               b = 36;
+               }
+
+               else if (((plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_HARDDTMF)
+                         && !(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE))
+                        || ((b1_facilities & B1_FACILITY_DTMFR)
+                            && ((b1_facilities & B1_FACILITY_MIXER)
+                                || !(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE)))
+                        || ((b1_facilities & B1_FACILITY_DTMFX)
+                            && ((b1_facilities & B1_FACILITY_MIXER)
+                                || !(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_SOFTDTMF_SEND))))
+               {
+                       if (b1_facilities & B1_FACILITY_LOCAL)
+                               b = 24;
+                       else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                               b = 23;
+                       else
+                               b = 22;
+               }
+               else
+               {
+                       if (b1_facilities & B1_FACILITY_LOCAL)
+                               b = 25;
+                       else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                               b = 20;
+                       else
+                               b = 9;
+               }
+               break;
+
+       case 31:
+       case 32:
+       case 33:
+               if (b1_facilities & B1_FACILITY_LOCAL)
+                       b = 33;
+               else if (b1_facilities & (B1_FACILITY_MIXER | B1_FACILITY_VOICE))
+                       b = 32;
+               else
+                       b = 31;
+               break;
+
+       default:
+               b = b1_resource;
+       }
+       dbug(1, dprintf("[%06lx] %s,%d: add_b1_facilities %d %04x %d %04x",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__,
+                       b1_resource, b1_facilities, b, get_b1_facilities(plci, b)));
+       return (b);
+}
+
+
+static void adjust_b1_facilities(PLCI *plci, byte new_b1_resource, word new_b1_facilities)
+{
+       word removed_facilities;
+
+       dbug(1, dprintf("[%06lx] %s,%d: adjust_b1_facilities %d %04x %04x",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__, new_b1_resource, new_b1_facilities,
+                       new_b1_facilities & get_b1_facilities(plci, new_b1_resource)));
+
+       new_b1_facilities &= get_b1_facilities(plci, new_b1_resource);
+       removed_facilities = plci->B1_facilities & ~new_b1_facilities;
+
+       if (removed_facilities & B1_FACILITY_EC)
+               ec_clear_config(plci);
+
+
+       if (removed_facilities & B1_FACILITY_DTMFR)
+       {
+               dtmf_rec_clear_config(plci);
+               dtmf_parameter_clear_config(plci);
+       }
+       if (removed_facilities & B1_FACILITY_DTMFX)
+               dtmf_send_clear_config(plci);
+
+
+       if (removed_facilities & B1_FACILITY_MIXER)
+               mixer_clear_config(plci);
+
+       if (removed_facilities & B1_FACILITY_VOICE)
+               adv_voice_clear_config(plci);
+       plci->B1_facilities = new_b1_facilities;
+}
+
+
+static void adjust_b_clear(PLCI *plci)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: adjust_b_clear",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
+
+       plci->adjust_b_restore = false;
+}
+
+
+static word adjust_b_process(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+       byte b1_resource;
+       NCCI *ncci_ptr;
+       API_PARSE bp[2];
+
+       dbug(1, dprintf("[%06lx] %s,%d: adjust_b_process %02x %d",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->adjust_b_state));
+
+       Info = GOOD;
+       switch (plci->adjust_b_state)
+       {
+       case ADJUST_B_START:
+               if ((plci->adjust_b_parms_msg == NULL)
+                   && (plci->adjust_b_mode & ADJUST_B_MODE_SWITCH_L1)
+                   && ((plci->adjust_b_mode & ~(ADJUST_B_MODE_SAVE | ADJUST_B_MODE_SWITCH_L1 |
+                                                ADJUST_B_MODE_NO_RESOURCE | ADJUST_B_MODE_RESTORE)) == 0))
+               {
+                       b1_resource = (plci->adjust_b_mode == ADJUST_B_MODE_NO_RESOURCE) ?
+                               0 : add_b1_facilities(plci, plci->B1_resource, plci->adjust_b_facilities);
+                       if (b1_resource == plci->B1_resource)
+                       {
+                               adjust_b1_facilities(plci, b1_resource, plci->adjust_b_facilities);
+                               break;
+                       }
+                       if (plci->adjust_b_facilities & ~get_b1_facilities(plci, b1_resource))
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Adjust B nonsupported facilities %d %d %04x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__,
+                                               plci->B1_resource, b1_resource, plci->adjust_b_facilities));
+                               Info = _WRONG_STATE;
+                               break;
+                       }
+               }
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
+               {
+
+                       mixer_prepare_switch(Id, plci);
+
+
+                       dtmf_prepare_switch(Id, plci);
+                       dtmf_parameter_prepare_switch(Id, plci);
+
+
+                       ec_prepare_switch(Id, plci);
+
+                       adv_voice_prepare_switch(Id, plci);
+               }
+               plci->adjust_b_state = ADJUST_B_SAVE_MIXER_1;
+               Rc = OK;
+       case ADJUST_B_SAVE_MIXER_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
+               {
+
+                       Info = mixer_save_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_SAVE_DTMF_1;
+               Rc = OK;
+       case ADJUST_B_SAVE_DTMF_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
+               {
+
+                       Info = dtmf_save_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_REMOVE_L23_1;
+       case ADJUST_B_REMOVE_L23_1:
+               if ((plci->adjust_b_mode & ADJUST_B_MODE_REMOVE_L23)
+                   && plci->NL.Id && !plci->nl_remove_id)
+               {
+                       plci->internal_command = plci->adjust_b_command;
+                       if (plci->adjust_b_ncci != 0)
+                       {
+                               ncci_ptr = &(plci->adapter->ncci[plci->adjust_b_ncci]);
+                               while (ncci_ptr->data_pending)
+                               {
+                                       plci->data_sent_ptr = ncci_ptr->DBuffer[ncci_ptr->data_out].P;
+                                       data_rc(plci, plci->adapter->ncci_ch[plci->adjust_b_ncci]);
+                               }
+                               while (ncci_ptr->data_ack_pending)
+                                       data_ack(plci, plci->adapter->ncci_ch[plci->adjust_b_ncci]);
+                       }
+                       nl_req_ncci(plci, REMOVE,
+                                   (byte)((plci->adjust_b_mode & ADJUST_B_MODE_CONNECT) ? plci->adjust_b_ncci : 0));
+                       send_req(plci);
+                       plci->adjust_b_state = ADJUST_B_REMOVE_L23_2;
+                       break;
+               }
+               plci->adjust_b_state = ADJUST_B_REMOVE_L23_2;
+               Rc = OK;
+       case ADJUST_B_REMOVE_L23_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Adjust B remove failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       Info = _WRONG_STATE;
+                       break;
+               }
+               if (plci->adjust_b_mode & ADJUST_B_MODE_REMOVE_L23)
+               {
+                       if (plci_nl_busy(plci))
+                       {
+                               plci->internal_command = plci->adjust_b_command;
+                               break;
+                       }
+               }
+               plci->adjust_b_state = ADJUST_B_SAVE_EC_1;
+               Rc = OK;
+       case ADJUST_B_SAVE_EC_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
+               {
+
+                       Info = ec_save_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_SAVE_DTMF_PARAMETER_1;
+               Rc = OK;
+       case ADJUST_B_SAVE_DTMF_PARAMETER_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
+               {
+
+                       Info = dtmf_parameter_save_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_SAVE_VOICE_1;
+               Rc = OK;
+       case ADJUST_B_SAVE_VOICE_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SAVE)
+               {
+                       Info = adv_voice_save_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+               }
+               plci->adjust_b_state = ADJUST_B_SWITCH_L1_1;
+       case ADJUST_B_SWITCH_L1_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_SWITCH_L1)
+               {
+                       if (plci->sig_req)
+                       {
+                               plci->internal_command = plci->adjust_b_command;
+                               break;
+                       }
+                       if (plci->adjust_b_parms_msg != NULL)
+                               api_load_msg(plci->adjust_b_parms_msg, bp);
+                       else
+                               api_load_msg(&plci->B_protocol, bp);
+                       Info = add_b1(plci, bp,
+                                     (word)((plci->adjust_b_mode & ADJUST_B_MODE_NO_RESOURCE) ? 2 : 0),
+                                     plci->adjust_b_facilities);
+                       if (Info != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Adjust B invalid L1 parameters %d %04x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__,
+                                               plci->B1_resource, plci->adjust_b_facilities));
+                               break;
+                       }
+                       plci->internal_command = plci->adjust_b_command;
+                       sig_req(plci, RESOURCES, 0);
+                       send_req(plci);
+                       plci->adjust_b_state = ADJUST_B_SWITCH_L1_2;
+                       break;
+               }
+               plci->adjust_b_state = ADJUST_B_SWITCH_L1_2;
+               Rc = OK;
+       case ADJUST_B_SWITCH_L1_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Adjust B switch failed %02x %d %04x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__,
+                                       Rc, plci->B1_resource, plci->adjust_b_facilities));
+                       Info = _WRONG_STATE;
+                       break;
+               }
+               plci->adjust_b_state = ADJUST_B_RESTORE_VOICE_1;
+               Rc = OK;
+       case ADJUST_B_RESTORE_VOICE_1:
+       case ADJUST_B_RESTORE_VOICE_2:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
+               {
+                       Info = adv_voice_restore_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+               }
+               plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_PARAMETER_1;
+               Rc = OK;
+       case ADJUST_B_RESTORE_DTMF_PARAMETER_1:
+       case ADJUST_B_RESTORE_DTMF_PARAMETER_2:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
+               {
+
+                       Info = dtmf_parameter_restore_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_RESTORE_EC_1;
+               Rc = OK;
+       case ADJUST_B_RESTORE_EC_1:
+       case ADJUST_B_RESTORE_EC_2:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
+               {
+
+                       Info = ec_restore_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_ASSIGN_L23_1;
+       case ADJUST_B_ASSIGN_L23_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_ASSIGN_L23)
+               {
+                       if (plci_nl_busy(plci))
+                       {
+                               plci->internal_command = plci->adjust_b_command;
+                               break;
+                       }
+                       if (plci->adjust_b_mode & ADJUST_B_MODE_CONNECT)
+                               plci->call_dir |= CALL_DIR_FORCE_OUTG_NL;
+                       if (plci->adjust_b_parms_msg != NULL)
+                               api_load_msg(plci->adjust_b_parms_msg, bp);
+                       else
+                               api_load_msg(&plci->B_protocol, bp);
+                       Info = add_b23(plci, bp);
+                       if (Info != GOOD)
+                       {
+                               dbug(1, dprintf("[%06lx] %s,%d: Adjust B invalid L23 parameters %04x",
+                                               UnMapId(Id), (char *)(FILE_), __LINE__, Info));
+                               break;
+                       }
+                       plci->internal_command = plci->adjust_b_command;
+                       nl_req_ncci(plci, ASSIGN, 0);
+                       send_req(plci);
+                       plci->adjust_b_state = ADJUST_B_ASSIGN_L23_2;
+                       break;
+               }
+               plci->adjust_b_state = ADJUST_B_ASSIGN_L23_2;
+               Rc = ASSIGN_OK;
+       case ADJUST_B_ASSIGN_L23_2:
+               if ((Rc != OK) && (Rc != OK_FC) && (Rc != ASSIGN_OK))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Adjust B assign failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       Info = _WRONG_STATE;
+                       break;
+               }
+               if (plci->adjust_b_mode & ADJUST_B_MODE_ASSIGN_L23)
+               {
+                       if (Rc != ASSIGN_OK)
+                       {
+                               plci->internal_command = plci->adjust_b_command;
+                               break;
+                       }
+               }
+               if (plci->adjust_b_mode & ADJUST_B_MODE_USER_CONNECT)
+               {
+                       plci->adjust_b_restore = true;
+                       break;
+               }
+               plci->adjust_b_state = ADJUST_B_CONNECT_1;
+       case ADJUST_B_CONNECT_1:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_CONNECT)
+               {
+                       plci->internal_command = plci->adjust_b_command;
+                       if (plci_nl_busy(plci))
+                               break;
+                       nl_req_ncci(plci, N_CONNECT, 0);
+                       send_req(plci);
+                       plci->adjust_b_state = ADJUST_B_CONNECT_2;
+                       break;
+               }
+               plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
+               Rc = OK;
+       case ADJUST_B_CONNECT_2:
+       case ADJUST_B_CONNECT_3:
+       case ADJUST_B_CONNECT_4:
+               if ((Rc != OK) && (Rc != OK_FC) && (Rc != 0))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Adjust B connect failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       Info = _WRONG_STATE;
+                       break;
+               }
+               if (Rc == OK)
+               {
+                       if (plci->adjust_b_mode & ADJUST_B_MODE_CONNECT)
+                       {
+                               get_ncci(plci, (byte)(Id >> 16), plci->adjust_b_ncci);
+                               Id = (Id & 0xffff) | (((dword)(plci->adjust_b_ncci)) << 16);
+                       }
+                       if (plci->adjust_b_state == ADJUST_B_CONNECT_2)
+                               plci->adjust_b_state = ADJUST_B_CONNECT_3;
+                       else if (plci->adjust_b_state == ADJUST_B_CONNECT_4)
+                               plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
+               }
+               else if (Rc == 0)
+               {
+                       if (plci->adjust_b_state == ADJUST_B_CONNECT_2)
+                               plci->adjust_b_state = ADJUST_B_CONNECT_4;
+                       else if (plci->adjust_b_state == ADJUST_B_CONNECT_3)
+                               plci->adjust_b_state = ADJUST_B_RESTORE_DTMF_1;
+               }
+               if (plci->adjust_b_state != ADJUST_B_RESTORE_DTMF_1)
+               {
+                       plci->internal_command = plci->adjust_b_command;
+                       break;
+               }
+               Rc = OK;
+       case ADJUST_B_RESTORE_DTMF_1:
+       case ADJUST_B_RESTORE_DTMF_2:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
+               {
+
+                       Info = dtmf_restore_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_RESTORE_MIXER_1;
+               Rc = OK;
+       case ADJUST_B_RESTORE_MIXER_1:
+       case ADJUST_B_RESTORE_MIXER_2:
+       case ADJUST_B_RESTORE_MIXER_3:
+       case ADJUST_B_RESTORE_MIXER_4:
+       case ADJUST_B_RESTORE_MIXER_5:
+       case ADJUST_B_RESTORE_MIXER_6:
+       case ADJUST_B_RESTORE_MIXER_7:
+               if (plci->adjust_b_mode & ADJUST_B_MODE_RESTORE)
+               {
+
+                       Info = mixer_restore_config(Id, plci, Rc);
+                       if ((Info != GOOD) || plci->internal_command)
+                               break;
+
+               }
+               plci->adjust_b_state = ADJUST_B_END;
+       case ADJUST_B_END:
+               break;
+       }
+       return (Info);
+}
+
+
+static void adjust_b1_resource(dword Id, PLCI *plci, API_SAVE   *bp_msg, word b1_facilities, word internal_command)
+{
+
+       dbug(1, dprintf("[%06lx] %s,%d: adjust_b1_resource %d %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__,
+                       plci->B1_resource, b1_facilities));
+
+       plci->adjust_b_parms_msg = bp_msg;
+       plci->adjust_b_facilities = b1_facilities;
+       plci->adjust_b_command = internal_command;
+       plci->adjust_b_ncci = (word)(Id >> 16);
+       if ((bp_msg == NULL) && (plci->B1_resource == 0))
+               plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_NO_RESOURCE | ADJUST_B_MODE_SWITCH_L1;
+       else
+               plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_SWITCH_L1 | ADJUST_B_MODE_RESTORE;
+       plci->adjust_b_state = ADJUST_B_START;
+       dbug(1, dprintf("[%06lx] %s,%d: Adjust B1 resource %d %04x...",
+                       UnMapId(Id), (char *)(FILE_), __LINE__,
+                       plci->B1_resource, b1_facilities));
+}
+
+
+static void adjust_b_restore(dword Id, PLCI *plci, byte Rc)
+{
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: adjust_b_restore %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+               if (plci->req_in != 0)
+               {
+                       plci->internal_command = ADJUST_B_RESTORE_1;
+                       break;
+               }
+               Rc = OK;
+       case ADJUST_B_RESTORE_1:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Adjust B enqueued failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+               }
+               plci->adjust_b_parms_msg = NULL;
+               plci->adjust_b_facilities = plci->B1_facilities;
+               plci->adjust_b_command = ADJUST_B_RESTORE_2;
+               plci->adjust_b_ncci = (word)(Id >> 16);
+               plci->adjust_b_mode = ADJUST_B_MODE_RESTORE;
+               plci->adjust_b_state = ADJUST_B_START;
+               dbug(1, dprintf("[%06lx] %s,%d: Adjust B restore...",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+       case ADJUST_B_RESTORE_2:
+               if (adjust_b_process(Id, plci, Rc) != GOOD)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Adjust B restore failed",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+               }
+               if (plci->internal_command)
+                       break;
+               break;
+       }
+}
+
+
+static void reset_b3_command(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: reset_b3_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+               plci->adjust_b_parms_msg = NULL;
+               plci->adjust_b_facilities = plci->B1_facilities;
+               plci->adjust_b_command = RESET_B3_COMMAND_1;
+               plci->adjust_b_ncci = (word)(Id >> 16);
+               plci->adjust_b_mode = ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_ASSIGN_L23 | ADJUST_B_MODE_CONNECT;
+               plci->adjust_b_state = ADJUST_B_START;
+               dbug(1, dprintf("[%06lx] %s,%d: Reset B3...",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+       case RESET_B3_COMMAND_1:
+               Info = adjust_b_process(Id, plci, Rc);
+               if (Info != GOOD)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Reset failed",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                       break;
+               }
+               if (plci->internal_command)
+                       return;
+               break;
+       }
 /*  sendf (plci->appl, _RESET_B3_R | CONFIRM, Id, plci->number, "w", Info);*/
-  sendf(plci->appl,_RESET_B3_I,Id,0,"s","");
-}
-
-
-static void select_b_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word Info;
-  word internal_command;
-  byte esc_chi[3];
-
-  dbug (1, dprintf ("[%06lx] %s,%d: select_b_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-    plci->adjust_b_parms_msg = &plci->saved_msg;
-    if ((plci->tel == ADV_VOICE) && (plci == plci->adapter->AdvSignalPLCI))
-      plci->adjust_b_facilities = plci->B1_facilities | B1_FACILITY_VOICE;
-    else
-      plci->adjust_b_facilities = plci->B1_facilities & ~B1_FACILITY_VOICE;
-    plci->adjust_b_command = SELECT_B_COMMAND_1;
-    plci->adjust_b_ncci = (word)(Id >> 16);
-    if (plci->saved_msg.parms[0].length == 0)
-    {
-      plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_SWITCH_L1 |
-        ADJUST_B_MODE_NO_RESOURCE;
-    }
-    else
-    {
-      plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_SWITCH_L1 |
-        ADJUST_B_MODE_ASSIGN_L23 | ADJUST_B_MODE_USER_CONNECT | ADJUST_B_MODE_RESTORE;
-    }
-    plci->adjust_b_state = ADJUST_B_START;
-    dbug (1, dprintf ("[%06lx] %s,%d: Select B protocol...",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-  case SELECT_B_COMMAND_1:
-    Info = adjust_b_process (Id, plci, Rc);
-    if (Info != GOOD)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: Select B protocol failed",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-      break;
-    }
-    if (plci->internal_command)
-      return;
-    if (plci->tel == ADV_VOICE)
-    {
-      esc_chi[0] = 0x02;
-      esc_chi[1] = 0x18;
-      esc_chi[2] = plci->b_channel;
-      SetVoiceChannel (plci->adapter->AdvCodecPLCI, esc_chi, plci->adapter);
-    }
-    break;
-  }
-  sendf (plci->appl, _SELECT_B_REQ | CONFIRM, Id, plci->number, "w", Info);
-}
-
-
-static void fax_connect_ack_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: fax_connect_ack_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-  case FAX_CONNECT_ACK_COMMAND_1:
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = FAX_CONNECT_ACK_COMMAND_1;
-      return;
-    }
-    plci->internal_command = FAX_CONNECT_ACK_COMMAND_2;
-    plci->NData[0].P = plci->fax_connect_info_buffer;
-    plci->NData[0].PLength = plci->fax_connect_info_length;
-    plci->NL.X = plci->NData;
-    plci->NL.ReqCh = 0;
-    plci->NL.Req = plci->nl_req = (byte) N_CONNECT_ACK;
-    plci->adapter->request (&plci->NL);
-    return;
-  case FAX_CONNECT_ACK_COMMAND_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: FAX issue CONNECT ACK failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      break;
-    }
-  }
-  if ((plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
-   && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
-  {
-    if (plci->B3_prot == 4)
-      sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"s","");
-    else
-      sendf(plci->appl,_CONNECT_B3_ACTIVE_I,Id,0,"S",plci->ncpi_buffer);
-    plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
-  }
-}
-
-
-static void fax_edata_ack_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: fax_edata_ack_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-  case FAX_EDATA_ACK_COMMAND_1:
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = FAX_EDATA_ACK_COMMAND_1;
-      return;
-    }
-    plci->internal_command = FAX_EDATA_ACK_COMMAND_2;
-    plci->NData[0].P = plci->fax_connect_info_buffer;
-    plci->NData[0].PLength = plci->fax_edata_ack_length;
-    plci->NL.X = plci->NData;
-    plci->NL.ReqCh = 0;
-    plci->NL.Req = plci->nl_req = (byte) N_EDATA;
-    plci->adapter->request (&plci->NL);
-    return;
-  case FAX_EDATA_ACK_COMMAND_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: FAX issue EDATA ACK failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      break;
-    }
-  }
-}
-
-
-static void fax_connect_info_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word Info;
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: fax_connect_info_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-  case FAX_CONNECT_INFO_COMMAND_1:
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = FAX_CONNECT_INFO_COMMAND_1;
-      return;
-    }
-    plci->internal_command = FAX_CONNECT_INFO_COMMAND_2;
-    plci->NData[0].P = plci->fax_connect_info_buffer;
-    plci->NData[0].PLength = plci->fax_connect_info_length;
-    plci->NL.X = plci->NData;
-    plci->NL.ReqCh = 0;
-    plci->NL.Req = plci->nl_req = (byte) N_EDATA;
-    plci->adapter->request (&plci->NL);
-    return;
-  case FAX_CONNECT_INFO_COMMAND_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: FAX setting connect info failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      Info = _WRONG_STATE;
-      break;
-    }
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = FAX_CONNECT_INFO_COMMAND_2;
-      return;
-    }
-    plci->command = _CONNECT_B3_R;
-    nl_req_ncci (plci, N_CONNECT, 0);
-    send_req (plci);
-    return;
-  }
-  sendf (plci->appl, _CONNECT_B3_R | CONFIRM, Id, plci->number, "w", Info);
+       sendf(plci->appl, _RESET_B3_I, Id, 0, "s", "");
+}
+
+
+static void select_b_command(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+       word internal_command;
+       byte esc_chi[3];
+
+       dbug(1, dprintf("[%06lx] %s,%d: select_b_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+               plci->adjust_b_parms_msg = &plci->saved_msg;
+               if ((plci->tel == ADV_VOICE) && (plci == plci->adapter->AdvSignalPLCI))
+                       plci->adjust_b_facilities = plci->B1_facilities | B1_FACILITY_VOICE;
+               else
+                       plci->adjust_b_facilities = plci->B1_facilities & ~B1_FACILITY_VOICE;
+               plci->adjust_b_command = SELECT_B_COMMAND_1;
+               plci->adjust_b_ncci = (word)(Id >> 16);
+               if (plci->saved_msg.parms[0].length == 0)
+               {
+                       plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_SWITCH_L1 |
+                               ADJUST_B_MODE_NO_RESOURCE;
+               }
+               else
+               {
+                       plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_SWITCH_L1 |
+                               ADJUST_B_MODE_ASSIGN_L23 | ADJUST_B_MODE_USER_CONNECT | ADJUST_B_MODE_RESTORE;
+               }
+               plci->adjust_b_state = ADJUST_B_START;
+               dbug(1, dprintf("[%06lx] %s,%d: Select B protocol...",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+       case SELECT_B_COMMAND_1:
+               Info = adjust_b_process(Id, plci, Rc);
+               if (Info != GOOD)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: Select B protocol failed",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                       break;
+               }
+               if (plci->internal_command)
+                       return;
+               if (plci->tel == ADV_VOICE)
+               {
+                       esc_chi[0] = 0x02;
+                       esc_chi[1] = 0x18;
+                       esc_chi[2] = plci->b_channel;
+                       SetVoiceChannel(plci->adapter->AdvCodecPLCI, esc_chi, plci->adapter);
+               }
+               break;
+       }
+       sendf(plci->appl, _SELECT_B_REQ | CONFIRM, Id, plci->number, "w", Info);
+}
+
+
+static void fax_connect_ack_command(dword Id, PLCI *plci, byte Rc)
+{
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: fax_connect_ack_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+       case FAX_CONNECT_ACK_COMMAND_1:
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = FAX_CONNECT_ACK_COMMAND_1;
+                       return;
+               }
+               plci->internal_command = FAX_CONNECT_ACK_COMMAND_2;
+               plci->NData[0].P = plci->fax_connect_info_buffer;
+               plci->NData[0].PLength = plci->fax_connect_info_length;
+               plci->NL.X = plci->NData;
+               plci->NL.ReqCh = 0;
+               plci->NL.Req = plci->nl_req = (byte) N_CONNECT_ACK;
+               plci->adapter->request(&plci->NL);
+               return;
+       case FAX_CONNECT_ACK_COMMAND_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: FAX issue CONNECT ACK failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       break;
+               }
+       }
+       if ((plci->ncpi_state & NCPI_VALID_CONNECT_B3_ACT)
+           && !(plci->ncpi_state & NCPI_CONNECT_B3_ACT_SENT))
+       {
+               if (plci->B3_prot == 4)
+                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+               else
+                       sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "S", plci->ncpi_buffer);
+               plci->ncpi_state |= NCPI_CONNECT_B3_ACT_SENT;
+       }
+}
+
+
+static void fax_edata_ack_command(dword Id, PLCI *plci, byte Rc)
+{
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: fax_edata_ack_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+       case FAX_EDATA_ACK_COMMAND_1:
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = FAX_EDATA_ACK_COMMAND_1;
+                       return;
+               }
+               plci->internal_command = FAX_EDATA_ACK_COMMAND_2;
+               plci->NData[0].P = plci->fax_connect_info_buffer;
+               plci->NData[0].PLength = plci->fax_edata_ack_length;
+               plci->NL.X = plci->NData;
+               plci->NL.ReqCh = 0;
+               plci->NL.Req = plci->nl_req = (byte) N_EDATA;
+               plci->adapter->request(&plci->NL);
+               return;
+       case FAX_EDATA_ACK_COMMAND_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: FAX issue EDATA ACK failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       break;
+               }
+       }
+}
+
+
+static void fax_connect_info_command(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: fax_connect_info_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+       case FAX_CONNECT_INFO_COMMAND_1:
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = FAX_CONNECT_INFO_COMMAND_1;
+                       return;
+               }
+               plci->internal_command = FAX_CONNECT_INFO_COMMAND_2;
+               plci->NData[0].P = plci->fax_connect_info_buffer;
+               plci->NData[0].PLength = plci->fax_connect_info_length;
+               plci->NL.X = plci->NData;
+               plci->NL.ReqCh = 0;
+               plci->NL.Req = plci->nl_req = (byte) N_EDATA;
+               plci->adapter->request(&plci->NL);
+               return;
+       case FAX_CONNECT_INFO_COMMAND_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: FAX setting connect info failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       Info = _WRONG_STATE;
+                       break;
+               }
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = FAX_CONNECT_INFO_COMMAND_2;
+                       return;
+               }
+               plci->command = _CONNECT_B3_R;
+               nl_req_ncci(plci, N_CONNECT, 0);
+               send_req(plci);
+               return;
+       }
+       sendf(plci->appl, _CONNECT_B3_R | CONFIRM, Id, plci->number, "w", Info);
+}
+
+
+static void fax_adjust_b23_command(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: fax_adjust_b23_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+               plci->adjust_b_parms_msg = NULL;
+               plci->adjust_b_facilities = plci->B1_facilities;
+               plci->adjust_b_command = FAX_ADJUST_B23_COMMAND_1;
+               plci->adjust_b_ncci = (word)(Id >> 16);
+               plci->adjust_b_mode = ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_ASSIGN_L23;
+               plci->adjust_b_state = ADJUST_B_START;
+               dbug(1, dprintf("[%06lx] %s,%d: FAX adjust B23...",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+       case FAX_ADJUST_B23_COMMAND_1:
+               Info = adjust_b_process(Id, plci, Rc);
+               if (Info != GOOD)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: FAX adjust failed",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                       break;
+               }
+               if (plci->internal_command)
+                       return;
+       case FAX_ADJUST_B23_COMMAND_2:
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = FAX_ADJUST_B23_COMMAND_2;
+                       return;
+               }
+               plci->command = _CONNECT_B3_R;
+               nl_req_ncci(plci, N_CONNECT, 0);
+               send_req(plci);
+               return;
+       }
+       sendf(plci->appl, _CONNECT_B3_R | CONFIRM, Id, plci->number, "w", Info);
+}
+
+
+static void fax_disconnect_command(dword Id, PLCI *plci, byte Rc)
+{
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: fax_disconnect_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+               plci->internal_command = FAX_DISCONNECT_COMMAND_1;
+               return;
+       case FAX_DISCONNECT_COMMAND_1:
+       case FAX_DISCONNECT_COMMAND_2:
+       case FAX_DISCONNECT_COMMAND_3:
+               if ((Rc != OK) && (Rc != OK_FC) && (Rc != 0))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: FAX disconnect EDATA failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       break;
+               }
+               if (Rc == OK)
+               {
+                       if ((internal_command == FAX_DISCONNECT_COMMAND_1)
+                           || (internal_command == FAX_DISCONNECT_COMMAND_2))
+                       {
+                               plci->internal_command = FAX_DISCONNECT_COMMAND_2;
+                       }
+               }
+               else if (Rc == 0)
+               {
+                       if (internal_command == FAX_DISCONNECT_COMMAND_1)
+                               plci->internal_command = FAX_DISCONNECT_COMMAND_3;
+               }
+               return;
+       }
+}
+
+
+
+static void rtp_connect_b3_req_command(dword Id, PLCI *plci, byte Rc)
+{
+       word Info;
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: rtp_connect_b3_req_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+       case RTP_CONNECT_B3_REQ_COMMAND_1:
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_1;
+                       return;
+               }
+               plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_2;
+               nl_req_ncci(plci, N_CONNECT, 0);
+               send_req(plci);
+               return;
+       case RTP_CONNECT_B3_REQ_COMMAND_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: RTP setting connect info failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       Info = _WRONG_STATE;
+                       break;
+               }
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_2;
+                       return;
+               }
+               plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_3;
+               plci->NData[0].PLength = plci->internal_req_buffer[0];
+               plci->NData[0].P = plci->internal_req_buffer + 1;
+               plci->NL.X = plci->NData;
+               plci->NL.ReqCh = 0;
+               plci->NL.Req = plci->nl_req = (byte) N_UDATA;
+               plci->adapter->request(&plci->NL);
+               break;
+       case RTP_CONNECT_B3_REQ_COMMAND_3:
+               return;
+       }
+       sendf(plci->appl, _CONNECT_B3_R | CONFIRM, Id, plci->number, "w", Info);
+}
+
+
+static void rtp_connect_b3_res_command(dword Id, PLCI *plci, byte Rc)
+{
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: rtp_connect_b3_res_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+       case RTP_CONNECT_B3_RES_COMMAND_1:
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_1;
+                       return;
+               }
+               plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_2;
+               nl_req_ncci(plci, N_CONNECT_ACK, (byte)(Id >> 16));
+               send_req(plci);
+               return;
+       case RTP_CONNECT_B3_RES_COMMAND_2:
+               if ((Rc != OK) && (Rc != OK_FC))
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: RTP setting connect resp info failed %02x",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc));
+                       break;
+               }
+               if (plci_nl_busy(plci))
+               {
+                       plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_2;
+                       return;
+               }
+               sendf(plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
+               plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_3;
+               plci->NData[0].PLength = plci->internal_req_buffer[0];
+               plci->NData[0].P = plci->internal_req_buffer + 1;
+               plci->NL.X = plci->NData;
+               plci->NL.ReqCh = 0;
+               plci->NL.Req = plci->nl_req = (byte) N_UDATA;
+               plci->adapter->request(&plci->NL);
+               return;
+       case RTP_CONNECT_B3_RES_COMMAND_3:
+               return;
+       }
+}
+
+
+
+static void hold_save_command(dword Id, PLCI *plci, byte Rc)
+{
+       byte SS_Ind[] = "\x05\x02\x00\x02\x00\x00"; /* Hold_Ind struct*/
+       word Info;
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: hold_save_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               if (!plci->NL.Id)
+                       break;
+               plci->command = 0;
+               plci->adjust_b_parms_msg = NULL;
+               plci->adjust_b_facilities = plci->B1_facilities;
+               plci->adjust_b_command = HOLD_SAVE_COMMAND_1;
+               plci->adjust_b_ncci = (word)(Id >> 16);
+               plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_REMOVE_L23;
+               plci->adjust_b_state = ADJUST_B_START;
+               dbug(1, dprintf("[%06lx] %s,%d: HOLD save...",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+       case HOLD_SAVE_COMMAND_1:
+               Info = adjust_b_process(Id, plci, Rc);
+               if (Info != GOOD)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: HOLD save failed",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                       break;
+               }
+               if (plci->internal_command)
+                       return;
+       }
+       sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", 3, SS_Ind);
+}
+
+
+static void retrieve_restore_command(dword Id, PLCI *plci, byte Rc)
+{
+       byte SS_Ind[] = "\x05\x03\x00\x02\x00\x00"; /* Retrieve_Ind struct*/
+       word Info;
+       word internal_command;
+
+       dbug(1, dprintf("[%06lx] %s,%d: retrieve_restore_command %02x %04x",
+                       UnMapId(Id), (char *)(FILE_), __LINE__, Rc, plci->internal_command));
+
+       Info = GOOD;
+       internal_command = plci->internal_command;
+       plci->internal_command = 0;
+       switch (internal_command)
+       {
+       default:
+               plci->command = 0;
+               plci->adjust_b_parms_msg = NULL;
+               plci->adjust_b_facilities = plci->B1_facilities;
+               plci->adjust_b_command = RETRIEVE_RESTORE_COMMAND_1;
+               plci->adjust_b_ncci = (word)(Id >> 16);
+               plci->adjust_b_mode = ADJUST_B_MODE_ASSIGN_L23 | ADJUST_B_MODE_USER_CONNECT | ADJUST_B_MODE_RESTORE;
+               plci->adjust_b_state = ADJUST_B_START;
+               dbug(1, dprintf("[%06lx] %s,%d: RETRIEVE restore...",
+                               UnMapId(Id), (char *)(FILE_), __LINE__));
+       case RETRIEVE_RESTORE_COMMAND_1:
+               Info = adjust_b_process(Id, plci, Rc);
+               if (Info != GOOD)
+               {
+                       dbug(1, dprintf("[%06lx] %s,%d: RETRIEVE restore failed",
+                                       UnMapId(Id), (char *)(FILE_), __LINE__));
+                       break;
+               }
+               if (plci->internal_command)
+                       return;
+       }
+       sendf(plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", 3, SS_Ind);
 }
 
 
-static void fax_adjust_b23_command (dword Id, PLCI   *plci, byte Rc)
+static void init_b1_config(PLCI *plci)
 {
-  word Info;
-  word internal_command;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: fax_adjust_b23_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
+       dbug(1, dprintf("[%06lx] %s,%d: init_b1_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-    plci->adjust_b_parms_msg = NULL;
-    plci->adjust_b_facilities = plci->B1_facilities;
-    plci->adjust_b_command = FAX_ADJUST_B23_COMMAND_1;
-    plci->adjust_b_ncci = (word)(Id >> 16);
-    plci->adjust_b_mode = ADJUST_B_MODE_REMOVE_L23 | ADJUST_B_MODE_ASSIGN_L23;
-    plci->adjust_b_state = ADJUST_B_START;
-    dbug (1, dprintf ("[%06lx] %s,%d: FAX adjust B23...",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-  case FAX_ADJUST_B23_COMMAND_1:
-    Info = adjust_b_process (Id, plci, Rc);
-    if (Info != GOOD)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: FAX adjust failed",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-      break;
-    }
-    if (plci->internal_command)
-      return;
-  case FAX_ADJUST_B23_COMMAND_2:
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = FAX_ADJUST_B23_COMMAND_2;
-      return;
-    }
-    plci->command = _CONNECT_B3_R;
-    nl_req_ncci (plci, N_CONNECT, 0);
-    send_req (plci);
-    return;
-  }
-  sendf (plci->appl, _CONNECT_B3_R | CONFIRM, Id, plci->number, "w", Info);
-}
-
-
-static void fax_disconnect_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: fax_disconnect_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-    plci->internal_command = FAX_DISCONNECT_COMMAND_1;
-    return;
-  case FAX_DISCONNECT_COMMAND_1:
-  case FAX_DISCONNECT_COMMAND_2:
-  case FAX_DISCONNECT_COMMAND_3:
-    if ((Rc != OK) && (Rc != OK_FC) && (Rc != 0))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: FAX disconnect EDATA failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      break;
-    }
-    if (Rc == OK)
-    {
-      if ((internal_command == FAX_DISCONNECT_COMMAND_1)
-       || (internal_command == FAX_DISCONNECT_COMMAND_2))
-      {
-        plci->internal_command = FAX_DISCONNECT_COMMAND_2;
-      }
-    }
-    else if (Rc == 0)
-    {
-      if (internal_command == FAX_DISCONNECT_COMMAND_1)
-        plci->internal_command = FAX_DISCONNECT_COMMAND_3;
-    }
-    return;
-  }
-}
-
-
-
-static void rtp_connect_b3_req_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word Info;
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: rtp_connect_b3_req_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-  case RTP_CONNECT_B3_REQ_COMMAND_1:
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_1;
-      return;
-    }
-    plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_2;
-    nl_req_ncci (plci, N_CONNECT, 0);
-    send_req (plci);
-    return;
-  case RTP_CONNECT_B3_REQ_COMMAND_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: RTP setting connect info failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      Info = _WRONG_STATE;
-      break;
-    }
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_2;
-      return;
-    }
-    plci->internal_command = RTP_CONNECT_B3_REQ_COMMAND_3;
-    plci->NData[0].PLength = plci->internal_req_buffer[0];
-    plci->NData[0].P = plci->internal_req_buffer + 1;
-    plci->NL.X = plci->NData;
-    plci->NL.ReqCh = 0;
-    plci->NL.Req = plci->nl_req = (byte) N_UDATA;
-    plci->adapter->request (&plci->NL);
-    break;
-  case RTP_CONNECT_B3_REQ_COMMAND_3:
-    return;
-  }
-  sendf (plci->appl, _CONNECT_B3_R | CONFIRM, Id, plci->number, "w", Info);
-}
-
-
-static void rtp_connect_b3_res_command (dword Id, PLCI   *plci, byte Rc)
-{
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: rtp_connect_b3_res_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-  case RTP_CONNECT_B3_RES_COMMAND_1:
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_1;
-      return;
-    }
-    plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_2;
-    nl_req_ncci (plci, N_CONNECT_ACK, (byte)(Id >> 16));
-    send_req (plci);
-    return;
-  case RTP_CONNECT_B3_RES_COMMAND_2:
-    if ((Rc != OK) && (Rc != OK_FC))
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: RTP setting connect resp info failed %02x",
-        UnMapId (Id), (char   *)(FILE_), __LINE__, Rc));
-      break;
-    }
-    if (plci_nl_busy (plci))
-    {
-      plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_2;
-      return;
-    }
-    sendf (plci->appl, _CONNECT_B3_ACTIVE_I, Id, 0, "s", "");
-    plci->internal_command = RTP_CONNECT_B3_RES_COMMAND_3;
-    plci->NData[0].PLength = plci->internal_req_buffer[0];
-    plci->NData[0].P = plci->internal_req_buffer + 1;
-    plci->NL.X = plci->NData;
-    plci->NL.ReqCh = 0;
-    plci->NL.Req = plci->nl_req = (byte) N_UDATA;
-    plci->adapter->request (&plci->NL);
-    return;
-  case RTP_CONNECT_B3_RES_COMMAND_3:
-    return;
-  }
-}
-
-
-
-static void hold_save_command (dword Id, PLCI   *plci, byte Rc)
-{
-    byte SS_Ind[] = "\x05\x02\x00\x02\x00\x00"; /* Hold_Ind struct*/
-  word Info;
-  word internal_command;
+       plci->B1_resource = 0;
+       plci->B1_facilities = 0;
 
-  dbug (1, dprintf ("[%06lx] %s,%d: hold_save_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
+       plci->li_bchannel_id = 0;
+       mixer_clear_config(plci);
 
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    if (!plci->NL.Id)
-      break;
-    plci->command = 0;
-    plci->adjust_b_parms_msg = NULL;
-    plci->adjust_b_facilities = plci->B1_facilities;
-    plci->adjust_b_command = HOLD_SAVE_COMMAND_1;
-    plci->adjust_b_ncci = (word)(Id >> 16);
-    plci->adjust_b_mode = ADJUST_B_MODE_SAVE | ADJUST_B_MODE_REMOVE_L23;
-    plci->adjust_b_state = ADJUST_B_START;
-    dbug (1, dprintf ("[%06lx] %s,%d: HOLD save...",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-  case HOLD_SAVE_COMMAND_1:
-    Info = adjust_b_process (Id, plci, Rc);
-    if (Info != GOOD)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: HOLD save failed",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-      break;
-    }
-    if (plci->internal_command)
-      return;
-  }
-  sendf (plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", 3, SS_Ind);
-}
-
-
-static void retrieve_restore_command (dword Id, PLCI   *plci, byte Rc)
-{
-    byte SS_Ind[] = "\x05\x03\x00\x02\x00\x00"; /* Retrieve_Ind struct*/
-  word Info;
-  word internal_command;
-
-  dbug (1, dprintf ("[%06lx] %s,%d: retrieve_restore_command %02x %04x",
-    UnMapId (Id), (char   *)(FILE_), __LINE__, Rc, plci->internal_command));
-
-  Info = GOOD;
-  internal_command = plci->internal_command;
-  plci->internal_command = 0;
-  switch (internal_command)
-  {
-  default:
-    plci->command = 0;
-    plci->adjust_b_parms_msg = NULL;
-    plci->adjust_b_facilities = plci->B1_facilities;
-    plci->adjust_b_command = RETRIEVE_RESTORE_COMMAND_1;
-    plci->adjust_b_ncci = (word)(Id >> 16);
-    plci->adjust_b_mode = ADJUST_B_MODE_ASSIGN_L23 | ADJUST_B_MODE_USER_CONNECT | ADJUST_B_MODE_RESTORE;
-    plci->adjust_b_state = ADJUST_B_START;
-    dbug (1, dprintf ("[%06lx] %s,%d: RETRIEVE restore...",
-      UnMapId (Id), (char   *)(FILE_), __LINE__));
-  case RETRIEVE_RESTORE_COMMAND_1:
-    Info = adjust_b_process (Id, plci, Rc);
-    if (Info != GOOD)
-    {
-      dbug (1, dprintf ("[%06lx] %s,%d: RETRIEVE restore failed",
-        UnMapId (Id), (char   *)(FILE_), __LINE__));
-      break;
-    }
-    if (plci->internal_command)
-      return;
-  }
-  sendf (plci->appl, _FACILITY_I, Id & 0xffffL, 0, "ws", 3, SS_Ind);
-}
-
-
-static void init_b1_config (PLCI   *plci)
-{
-
-  dbug (1, dprintf ("[%06lx] %s,%d: init_b1_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
-
-  plci->B1_resource = 0;
-  plci->B1_facilities = 0;
 
-  plci->li_bchannel_id = 0;
-  mixer_clear_config (plci);
+       ec_clear_config(plci);
 
 
-  ec_clear_config (plci);
+       dtmf_rec_clear_config(plci);
+       dtmf_send_clear_config(plci);
+       dtmf_parameter_clear_config(plci);
 
-
-  dtmf_rec_clear_config (plci);
-  dtmf_send_clear_config (plci);
-  dtmf_parameter_clear_config (plci);
-
-  adv_voice_clear_config (plci);
-  adjust_b_clear (plci);
+       adv_voice_clear_config(plci);
+       adjust_b_clear(plci);
 }
 
 
-static void clear_b1_config (PLCI   *plci)
+static void clear_b1_config(PLCI *plci)
 {
 
-  dbug (1, dprintf ("[%06lx] %s,%d: clear_b1_config",
-    (dword)((plci->Id << 8) | UnMapController (plci->adapter->Id)),
-    (char   *)(FILE_), __LINE__));
+       dbug(1, dprintf("[%06lx] %s,%d: clear_b1_config",
+                       (dword)((plci->Id << 8) | UnMapController(plci->adapter->Id)),
+                       (char *)(FILE_), __LINE__));
 
-  adv_voice_clear_config (plci);
-  adjust_b_clear (plci);
+       adv_voice_clear_config(plci);
+       adjust_b_clear(plci);
 
-  ec_clear_config (plci);
+       ec_clear_config(plci);
 
 
-  dtmf_rec_clear_config (plci);
-  dtmf_send_clear_config (plci);
-  dtmf_parameter_clear_config (plci);
+       dtmf_rec_clear_config(plci);
+       dtmf_send_clear_config(plci);
+       dtmf_parameter_clear_config(plci);
 
 
-  if ((plci->li_bchannel_id != 0)
-   && (li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci == plci))
-  {
-    mixer_clear_config (plci);
-    li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci = NULL;
-    plci->li_bchannel_id = 0;
-  }
+       if ((plci->li_bchannel_id != 0)
+           && (li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci == plci))
+       {
+               mixer_clear_config(plci);
+               li_config_table[plci->adapter->li_base + (plci->li_bchannel_id - 1)].plci = NULL;
+               plci->li_bchannel_id = 0;
+       }
 
-  plci->B1_resource = 0;
-  plci->B1_facilities = 0;
+       plci->B1_resource = 0;
+       plci->B1_facilities = 0;
 }
 
 
 /* -----------------------------------------------------------------
-                XON protocol local helpers
+   XON protocol local helpers
    ----------------------------------------------------------------- */
-static void channel_flow_control_remove (PLCI   * plci) {
-  DIVA_CAPI_ADAPTER   * a = plci->adapter;
-  word i;
-  for(i=1;i<MAX_NL_CHANNEL+1;i++) {
-    if (a->ch_flow_plci[i] == plci->Id) {
-      a->ch_flow_plci[i] = 0;
-      a->ch_flow_control[i] = 0;
-    }
-  }
-}
-
-static void channel_x_on (PLCI   * plci, byte ch) {
-  DIVA_CAPI_ADAPTER   * a = plci->adapter;
-  if (a->ch_flow_control[ch] & N_XON_SENT) {
-    a->ch_flow_control[ch] &= ~N_XON_SENT;
-  }
-}
-
-static void channel_x_off (PLCI   * plci, byte ch, byte flag) {
-  DIVA_CAPI_ADAPTER   * a = plci->adapter;
-  if ((a->ch_flow_control[ch] & N_RX_FLOW_CONTROL_MASK) == 0) {
-    a->ch_flow_control[ch] |= (N_CH_XOFF | flag);
-    a->ch_flow_plci[ch] = plci->Id;
-    a->ch_flow_control_pending++;
-  }
-}
-
-static void channel_request_xon (PLCI   * plci, byte ch) {
-  DIVA_CAPI_ADAPTER   * a = plci->adapter;
-
-  if (a->ch_flow_control[ch] & N_CH_XOFF) {
-    a->ch_flow_control[ch] |= N_XON_REQ;
-    a->ch_flow_control[ch] &= ~N_CH_XOFF;
-    a->ch_flow_control[ch] &= ~N_XON_CONNECT_IND;
-  }
-}
-
-static void channel_xmit_extended_xon (PLCI   * plci) {
-  DIVA_CAPI_ADAPTER   * a;
-  int max_ch = ARRAY_SIZE(a->ch_flow_control);
-  int i, one_requested = 0;
-
-  if ((!plci) || (!plci->Id) || ((a = plci->adapter) == NULL)) {
-    return;
-  }
-
-  for (i = 0; i < max_ch; i++) {
-    if ((a->ch_flow_control[i] & N_CH_XOFF) &&
-        (a->ch_flow_control[i] & N_XON_CONNECT_IND) &&
-        (plci->Id == a->ch_flow_plci[i])) {
-      channel_request_xon (plci, (byte)i);
-      one_requested = 1;
-    }
-  }
-
-  if (one_requested) {
-    channel_xmit_xon (plci);
-  }
+static void channel_flow_control_remove(PLCI *plci) {
+       DIVA_CAPI_ADAPTER *a = plci->adapter;
+       word i;
+       for (i = 1; i < MAX_NL_CHANNEL + 1; i++) {
+               if (a->ch_flow_plci[i] == plci->Id) {
+                       a->ch_flow_plci[i] = 0;
+                       a->ch_flow_control[i] = 0;
+               }
+       }
+}
+
+static void channel_x_on(PLCI *plci, byte ch) {
+       DIVA_CAPI_ADAPTER *a = plci->adapter;
+       if (a->ch_flow_control[ch] & N_XON_SENT) {
+               a->ch_flow_control[ch] &= ~N_XON_SENT;
+       }
+}
+
+static void channel_x_off(PLCI *plci, byte ch, byte flag) {
+       DIVA_CAPI_ADAPTER *a = plci->adapter;
+       if ((a->ch_flow_control[ch] & N_RX_FLOW_CONTROL_MASK) == 0) {
+               a->ch_flow_control[ch] |= (N_CH_XOFF | flag);
+               a->ch_flow_plci[ch] = plci->Id;
+               a->ch_flow_control_pending++;
+       }
+}
+
+static void channel_request_xon(PLCI *plci, byte ch) {
+       DIVA_CAPI_ADAPTER *a = plci->adapter;
+
+       if (a->ch_flow_control[ch] & N_CH_XOFF) {
+               a->ch_flow_control[ch] |= N_XON_REQ;
+               a->ch_flow_control[ch] &= ~N_CH_XOFF;
+               a->ch_flow_control[ch] &= ~N_XON_CONNECT_IND;
+       }
+}
+
+static void channel_xmit_extended_xon(PLCI *plci) {
+       DIVA_CAPI_ADAPTER *a;
+       int max_ch = ARRAY_SIZE(a->ch_flow_control);
+       int i, one_requested = 0;
+
+       if ((!plci) || (!plci->Id) || ((a = plci->adapter) == NULL)) {
+               return;
+       }
+
+       for (i = 0; i < max_ch; i++) {
+               if ((a->ch_flow_control[i] & N_CH_XOFF) &&
+                   (a->ch_flow_control[i] & N_XON_CONNECT_IND) &&
+                   (plci->Id == a->ch_flow_plci[i])) {
+                       channel_request_xon(plci, (byte)i);
+                       one_requested = 1;
+               }
+       }
+
+       if (one_requested) {
+               channel_xmit_xon(plci);
+       }
 }
 
 /*
   Try to xmit next X_ON
-  */
-static int find_channel_with_pending_x_on (DIVA_CAPI_ADAPTER   * a, PLCI   * plci) {
-  int max_ch = ARRAY_SIZE(a->ch_flow_control);
-  int i;
-
-  if (!(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)) {
-    return (0);
-  }
-
-  if (a->last_flow_control_ch >= max_ch) {
-    a->last_flow_control_ch = 1;
-  }
-  for (i=a->last_flow_control_ch; i < max_ch; i++) {
-    if ((a->ch_flow_control[i] & N_XON_REQ) &&
-        (plci->Id == a->ch_flow_plci[i])) {
-      a->last_flow_control_ch = i+1;
-      return (i);
-    }
-  }
-
-  for (i = 1; i < a->last_flow_control_ch; i++) {
-    if ((a->ch_flow_control[i] & N_XON_REQ) &&
-        (plci->Id == a->ch_flow_plci[i])) {
-      a->last_flow_control_ch = i+1;
-      return (i);
-    }
-  }
-
-  return (0);
-}
-
-static void channel_xmit_xon (PLCI   * plci) {
-  DIVA_CAPI_ADAPTER   * a = plci->adapter;
-  byte ch;
-
-  if (plci->nl_req || !plci->NL.Id || plci->nl_remove_id) {
-    return;
-  }
-  if ((ch = (byte)find_channel_with_pending_x_on (a, plci)) == 0) {
-    return;
-  }
-  a->ch_flow_control[ch] &= ~N_XON_REQ;
-  a->ch_flow_control[ch] |= N_XON_SENT;
-
-  plci->NL.Req = plci->nl_req = (byte)N_XON;
-  plci->NL.ReqCh         = ch;
-  plci->NL.X             = plci->NData;
-  plci->NL.XNum          = 1;
-  plci->NData[0].P       = &plci->RBuffer[0];
-  plci->NData[0].PLength = 0;
-
-  plci->adapter->request(&plci->NL);
-}
-
-static int channel_can_xon (PLCI   * plci, byte ch) {
-  APPL   * APPLptr;
-  DIVA_CAPI_ADAPTER   * a;
-  word NCCIcode;
-  dword count;
-  word Num;
-  word i;
-
-  APPLptr = plci->appl;
-  a = plci->adapter;
-
-  if (!APPLptr)
-    return (0);
-
-  NCCIcode = a->ch_ncci[ch] | (((word) a->Id) << 8);
-
-                /* count all buffers within the Application pool    */
-                /* belonging to the same NCCI. XON if a first is    */
-                /* used.                                            */
-  count = 0;
-  Num = 0xffff;
-  for(i=0; i<APPLptr->MaxBuffer; i++) {
-    if(NCCIcode==APPLptr->DataNCCI[i]) count++;
-    if(!APPLptr->DataNCCI[i] && Num==0xffff) Num = i;
-  }
-  if ((count > 2) || (Num == 0xffff)) {
-    return (0);
-  }
-  return (1);
+*/
+static int find_channel_with_pending_x_on(DIVA_CAPI_ADAPTER *a, PLCI *plci) {
+       int max_ch = ARRAY_SIZE(a->ch_flow_control);
+       int i;
+
+       if (!(plci->adapter->manufacturer_features & MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL)) {
+               return (0);
+       }
+
+       if (a->last_flow_control_ch >= max_ch) {
+               a->last_flow_control_ch = 1;
+       }
+       for (i = a->last_flow_control_ch; i < max_ch; i++) {
+               if ((a->ch_flow_control[i] & N_XON_REQ) &&
+                   (plci->Id == a->ch_flow_plci[i])) {
+                       a->last_flow_control_ch = i + 1;
+                       return (i);
+               }
+       }
+
+       for (i = 1; i < a->last_flow_control_ch; i++) {
+               if ((a->ch_flow_control[i] & N_XON_REQ) &&
+                   (plci->Id == a->ch_flow_plci[i])) {
+                       a->last_flow_control_ch = i + 1;
+                       return (i);
+               }
+       }
+
+       return (0);
+}
+
+static void channel_xmit_xon(PLCI *plci) {
+       DIVA_CAPI_ADAPTER *a = plci->adapter;
+       byte ch;
+
+       if (plci->nl_req || !plci->NL.Id || plci->nl_remove_id) {
+               return;
+       }
+       if ((ch = (byte)find_channel_with_pending_x_on(a, plci)) == 0) {
+               return;
+       }
+       a->ch_flow_control[ch] &= ~N_XON_REQ;
+       a->ch_flow_control[ch] |= N_XON_SENT;
+
+       plci->NL.Req = plci->nl_req = (byte)N_XON;
+       plci->NL.ReqCh         = ch;
+       plci->NL.X             = plci->NData;
+       plci->NL.XNum          = 1;
+       plci->NData[0].P       = &plci->RBuffer[0];
+       plci->NData[0].PLength = 0;
+
+       plci->adapter->request(&plci->NL);
+}
+
+static int channel_can_xon(PLCI *plci, byte ch) {
+       APPL *APPLptr;
+       DIVA_CAPI_ADAPTER *a;
+       word NCCIcode;
+       dword count;
+       word Num;
+       word i;
+
+       APPLptr = plci->appl;
+       a = plci->adapter;
+
+       if (!APPLptr)
+               return (0);
+
+       NCCIcode = a->ch_ncci[ch] | (((word) a->Id) << 8);
+
+       /* count all buffers within the Application pool    */
+       /* belonging to the same NCCI. XON if a first is    */
+       /* used.                                            */
+       count = 0;
+       Num = 0xffff;
+       for (i = 0; i < APPLptr->MaxBuffer; i++) {
+               if (NCCIcode == APPLptr->DataNCCI[i]) count++;
+               if (!APPLptr->DataNCCI[i] && Num == 0xffff) Num = i;
+       }
+       if ((count > 2) || (Num == 0xffff)) {
+               return (0);
+       }
+       return (1);
 }
 
 
 /*------------------------------------------------------------------*/
 
-static word CPN_filter_ok(byte   *cpn,DIVA_CAPI_ADAPTER   * a,word offset)
+static word CPN_filter_ok(byte *cpn, DIVA_CAPI_ADAPTER *a, word offset)
 {
-  return 1;
+       return 1;
 }
 
 
@@ -14733,116 +14733,116 @@ static word CPN_filter_ok(byte   *cpn,DIVA_CAPI_ADAPTER   * a,word offset)
 /* function must be enabled by setting "a->group_optimization_enabled" from the   */
 /* OS specific part (per adapter).                                                */
 /**********************************************************************************/
-static void group_optimization(DIVA_CAPI_ADAPTER   * a, PLCI   * plci)
-{
-  word i,j,k,busy,group_found;
-  dword info_mask_group[MAX_CIP_TYPES];
-  dword cip_mask_group[MAX_CIP_TYPES];
-  word appl_number_group_type[MAX_APPL];
-  PLCI   *auxplci;
-
-  set_group_ind_mask (plci); /* all APPLs within this inc. call are allowed to dial in */
-
-  if(!a->group_optimization_enabled)
-  {
-    dbug(1,dprintf("No group optimization"));
-    return;
-  }
-
-  dbug(1,dprintf("Group optimization = 0x%x...", a->group_optimization_enabled));
-
-  for(i=0;i<MAX_CIP_TYPES;i++)
-  {
-    info_mask_group[i] = 0;
-    cip_mask_group [i] = 0;
-  }
-  for(i=0;i<MAX_APPL;i++)
-  {
-    appl_number_group_type[i] = 0;
-  }
-  for(i=0; i<max_appl; i++) /* check if any multi instance capable application is present */
-  {  /* group_optimization set to 1 means not to optimize multi-instance capable applications (default) */
-    if(application[i].Id && (application[i].MaxNCCI) > 1 && (a->CIP_Mask[i])  && (a->group_optimization_enabled ==1) )
-    {
-      dbug(1,dprintf("Multi-Instance capable, no optimization required"));
-      return; /* allow good application unfiltered access */
-    }
-  }
-  for(i=0; i<max_appl; i++) /* Build CIP Groups */
-  {
-    if(application[i].Id && a->CIP_Mask[i] )
-    {
-      for(k=0,busy=false; k<a->max_plci; k++)
-      {
-        if(a->plci[k].Id) 
-        {
-          auxplci = &a->plci[k];
-          if(auxplci->appl == &application[i]) /* application has a busy PLCI */
-          {
-            busy = true;
-            dbug(1,dprintf("Appl 0x%x is busy",i+1));
-          }
-          else if(test_c_ind_mask_bit (auxplci, i)) /* application has an incoming call pending */
-          {
-            busy = true;
-            dbug(1,dprintf("Appl 0x%x has inc. call pending",i+1));
-          }
-        }
-      }
-
-      for(j=0,group_found=0; j<=(MAX_CIP_TYPES) && !busy &&!group_found; j++)     /* build groups with free applications only */
-      {
-        if(j==MAX_CIP_TYPES)       /* all groups are in use but group still not found */
-        {                           /* the MAX_CIP_TYPES group enables all calls because of field overflow */
-          appl_number_group_type[i] = MAX_CIP_TYPES;
-          group_found=true;
-          dbug(1,dprintf("Field overflow appl 0x%x",i+1));
-        }
-        else if( (info_mask_group[j]==a->CIP_Mask[i]) && (cip_mask_group[j]==a->Info_Mask[i]) )  
-        {                                      /* is group already present ?                  */
-          appl_number_group_type[i] = j|0x80;  /* store the group number for each application */
-          group_found=true;
-          dbug(1,dprintf("Group 0x%x found with appl 0x%x, CIP=0x%lx",appl_number_group_type[i],i+1,info_mask_group[j]));
-        }
-        else if(!info_mask_group[j])
-        {                                      /* establish a new group                       */
-          appl_number_group_type[i] = j|0x80;  /* store the group number for each application */
-          info_mask_group[j] = a->CIP_Mask[i]; /* store the new CIP mask for the new group    */
-          cip_mask_group[j] = a->Info_Mask[i]; /* store the new Info_Mask for this new group  */
-          group_found=true;
-          dbug(1,dprintf("New Group 0x%x established with appl 0x%x, CIP=0x%lx",appl_number_group_type[i],i+1,info_mask_group[j]));
-        }
-      }
-    }
-  }
-        
-  for(i=0; i<max_appl; i++) /* Build group_optimization_mask_table */
-  {
-    if(appl_number_group_type[i]) /* application is free, has listens and is member of a group */
-    {
-      if(appl_number_group_type[i] == MAX_CIP_TYPES)
-      {
-        dbug(1,dprintf("OverflowGroup 0x%x, valid appl = 0x%x, call enabled",appl_number_group_type[i],i+1));
-      }
-      else
-      {
-        dbug(1,dprintf("Group 0x%x, valid appl = 0x%x",appl_number_group_type[i],i+1));
-        for(j=i+1; j<max_appl; j++)   /* search other group members and mark them as busy        */
-        {
-          if(appl_number_group_type[i] == appl_number_group_type[j]) 
-          {
-            dbug(1,dprintf("Appl 0x%x is member of group 0x%x, no call",j+1,appl_number_group_type[j]));
-            clear_group_ind_mask_bit (plci, j);           /* disable call on other group members */
-            appl_number_group_type[j] = 0;       /* remove disabled group member from group list */
-          }
-        }
-      }
-    }
-    else                                                 /* application should not get a call */
-    {
-      clear_group_ind_mask_bit (plci, i);
-    }
-  }
+static void group_optimization(DIVA_CAPI_ADAPTER *a, PLCI *plci)
+{
+       word i, j, k, busy, group_found;
+       dword info_mask_group[MAX_CIP_TYPES];
+       dword cip_mask_group[MAX_CIP_TYPES];
+       word appl_number_group_type[MAX_APPL];
+       PLCI *auxplci;
+
+       set_group_ind_mask(plci); /* all APPLs within this inc. call are allowed to dial in */
+
+       if (!a->group_optimization_enabled)
+       {
+               dbug(1, dprintf("No group optimization"));
+               return;
+       }
+
+       dbug(1, dprintf("Group optimization = 0x%x...", a->group_optimization_enabled));
+
+       for (i = 0; i < MAX_CIP_TYPES; i++)
+       {
+               info_mask_group[i] = 0;
+               cip_mask_group[i] = 0;
+       }
+       for (i = 0; i < MAX_APPL; i++)
+       {
+               appl_number_group_type[i] = 0;
+       }
+       for (i = 0; i < max_appl; i++) /* check if any multi instance capable application is present */
+       {  /* group_optimization set to 1 means not to optimize multi-instance capable applications (default) */
+               if (application[i].Id && (application[i].MaxNCCI) > 1 && (a->CIP_Mask[i]) && (a->group_optimization_enabled == 1))
+               {
+                       dbug(1, dprintf("Multi-Instance capable, no optimization required"));
+                       return; /* allow good application unfiltered access */
+               }
+       }
+       for (i = 0; i < max_appl; i++) /* Build CIP Groups */
+       {
+               if (application[i].Id && a->CIP_Mask[i])
+               {
+                       for (k = 0, busy = false; k < a->max_plci; k++)
+                       {
+                               if (a->plci[k].Id)
+                               {
+                                       auxplci = &a->plci[k];
+                                       if (auxplci->appl == &application[i]) /* application has a busy PLCI */
+                                       {
+                                               busy = true;
+                                               dbug(1, dprintf("Appl 0x%x is busy", i + 1));
+                                       }
+                                       else if (test_c_ind_mask_bit(auxplci, i)) /* application has an incoming call pending */
+                                       {
+                                               busy = true;
+                                               dbug(1, dprintf("Appl 0x%x has inc. call pending", i + 1));
+                                       }
+                               }
+                       }
+
+                       for (j = 0, group_found = 0; j <= (MAX_CIP_TYPES) && !busy && !group_found; j++)     /* build groups with free applications only */
+                       {
+                               if (j == MAX_CIP_TYPES)       /* all groups are in use but group still not found */
+                               {                           /* the MAX_CIP_TYPES group enables all calls because of field overflow */
+                                       appl_number_group_type[i] = MAX_CIP_TYPES;
+                                       group_found = true;
+                                       dbug(1, dprintf("Field overflow appl 0x%x", i + 1));
+                               }
+                               else if ((info_mask_group[j] == a->CIP_Mask[i]) && (cip_mask_group[j] == a->Info_Mask[i]))
+                               {                                      /* is group already present ?                  */
+                                       appl_number_group_type[i] = j | 0x80;  /* store the group number for each application */
+                                       group_found = true;
+                                       dbug(1, dprintf("Group 0x%x found with appl 0x%x, CIP=0x%lx", appl_number_group_type[i], i + 1, info_mask_group[j]));
+                               }
+                               else if (!info_mask_group[j])
+                               {                                      /* establish a new group                       */
+                                       appl_number_group_type[i] = j | 0x80;  /* store the group number for each application */
+                                       info_mask_group[j] = a->CIP_Mask[i]; /* store the new CIP mask for the new group    */
+                                       cip_mask_group[j] = a->Info_Mask[i]; /* store the new Info_Mask for this new group  */
+                                       group_found = true;
+                                       dbug(1, dprintf("New Group 0x%x established with appl 0x%x, CIP=0x%lx", appl_number_group_type[i], i + 1, info_mask_group[j]));
+                               }
+                       }
+               }
+       }
+
+       for (i = 0; i < max_appl; i++) /* Build group_optimization_mask_table */
+       {
+               if (appl_number_group_type[i]) /* application is free, has listens and is member of a group */
+               {
+                       if (appl_number_group_type[i] == MAX_CIP_TYPES)
+                       {
+                               dbug(1, dprintf("OverflowGroup 0x%x, valid appl = 0x%x, call enabled", appl_number_group_type[i], i + 1));
+                       }
+                       else
+                       {
+                               dbug(1, dprintf("Group 0x%x, valid appl = 0x%x", appl_number_group_type[i], i + 1));
+                               for (j = i + 1; j < max_appl; j++)   /* search other group members and mark them as busy        */
+                               {
+                                       if (appl_number_group_type[i] == appl_number_group_type[j])
+                                       {
+                                               dbug(1, dprintf("Appl 0x%x is member of group 0x%x, no call", j + 1, appl_number_group_type[j]));
+                                               clear_group_ind_mask_bit(plci, j);           /* disable call on other group members */
+                                               appl_number_group_type[j] = 0;       /* remove disabled group member from group list */
+                                       }
+                               }
+                       }
+               }
+               else                                                 /* application should not get a call */
+               {
+                       clear_group_ind_mask_bit(plci, i);
+               }
+       }
 
 }
 
@@ -14851,201 +14851,201 @@ static void group_optimization(DIVA_CAPI_ADAPTER   * a, PLCI   * plci)
 /* OS notifies the driver about a application Capi_Register */
 word CapiRegister(word id)
 {
-  word i,j,appls_found;
-
-  PLCI   *plci;
-  DIVA_CAPI_ADAPTER   *a;
-
-  for(i=0,appls_found=0; i<max_appl; i++)
-  {
-    if( application[i].Id && (application[i].Id!=id) )
-    {
-      appls_found++;                       /* an application has been found */
-    }
-  }
-
-  if(appls_found) return true;
-  for(i=0; i<max_adapter; i++)                   /* scan all adapters...    */
-  {
-    a = &adapter[i];
-    if(a->request)
-    {
-      if(a->flag_dynamic_l1_down)  /* remove adapter from L1 tristate (Huntgroup) */
-      {
-        if(!appls_found)           /* first application does a capi register   */
-        {
-          if((j=get_plci(a)))                    /* activate L1 of all adapters */
-          {
-            plci = &a->plci[j-1];
-            plci->command = 0;
-            add_p(plci,OAD,"\x01\xfd");
-            add_p(plci,CAI,"\x01\x80");
-            add_p(plci,UID,"\x06\x43\x61\x70\x69\x32\x30");
-            add_p(plci,SHIFT|6,NULL);
-            add_p(plci,SIN,"\x02\x00\x00");
-            plci->internal_command = START_L1_SIG_ASSIGN_PEND;
-            sig_req(plci,ASSIGN,DSIG_ID);
-            add_p(plci,FTY,"\x02\xff\x07"); /* l1 start */
-            sig_req(plci,SIG_CTRL,0);
-            send_req(plci);
-          }
-        }
-      }
-    }
-  }
-  return false;
+       word i, j, appls_found;
+
+       PLCI *plci;
+       DIVA_CAPI_ADAPTER *a;
+
+       for (i = 0, appls_found = 0; i < max_appl; i++)
+       {
+               if (application[i].Id && (application[i].Id != id))
+               {
+                       appls_found++;                       /* an application has been found */
+               }
+       }
+
+       if (appls_found) return true;
+       for (i = 0; i < max_adapter; i++)                   /* scan all adapters...    */
+       {
+               a = &adapter[i];
+               if (a->request)
+               {
+                       if (a->flag_dynamic_l1_down)  /* remove adapter from L1 tristate (Huntgroup) */
+                       {
+                               if (!appls_found)           /* first application does a capi register   */
+                               {
+                                       if ((j = get_plci(a)))                    /* activate L1 of all adapters */
+                                       {
+                                               plci = &a->plci[j - 1];
+                                               plci->command = 0;
+                                               add_p(plci, OAD, "\x01\xfd");
+                                               add_p(plci, CAI, "\x01\x80");
+                                               add_p(plci, UID, "\x06\x43\x61\x70\x69\x32\x30");
+                                               add_p(plci, SHIFT | 6, NULL);
+                                               add_p(plci, SIN, "\x02\x00\x00");
+                                               plci->internal_command = START_L1_SIG_ASSIGN_PEND;
+                                               sig_req(plci, ASSIGN, DSIG_ID);
+                                               add_p(plci, FTY, "\x02\xff\x07"); /* l1 start */
+                                               sig_req(plci, SIG_CTRL, 0);
+                                               send_req(plci);
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
 }
 
 /*------------------------------------------------------------------*/
 
 /* Functions for virtual Switching e.g. Transfer by join, Conference */
 
-static void VSwitchReqInd(PLCI   *plci, dword Id, byte   **parms)
-{
- word i;
- /* Format of vswitch_t:
- 0 byte length
- 1 byte VSWITCHIE
- 2 byte VSWITCH_REQ/VSWITCH_IND
- 3 byte reserved
- 4 word VSwitchcommand
- 6 word returnerror
- 8... Params
- */
if(!plci ||
-  !plci->appl ||
-  !plci->State ||
-  plci->Sig.Ind==NCR_FACILITY
-  )
-  return;
for(i=0;i<MAX_MULTI_IE;i++)
- {
-        if(!parms[i][0]) continue;
-  if(parms[i][0]<7)
-  {
-   parms[i][0]=0; /* kill it */
-   continue;
-  }
-  dbug(1,dprintf("VSwitchReqInd(%d)",parms[i][4]));
-  switch(parms[i][4])
-  {
-  case VSJOIN:
-   if(!plci->relatedPTYPLCI ||
-    (plci->ptyState!=S_ECT && plci->relatedPTYPLCI->ptyState!=S_ECT))
-   { /* Error */
-    break;
-   }
-   /* remember all necessary informations */
-   if(parms[i][0]!=11 || parms[i][8]!=3) /* Length Test */
-   {
-    break;
-   }
-   if(parms[i][2]==VSWITCH_IND && parms[i][9]==1)
-   {   /* first indication after ECT-Request on Consultation Call */
-    plci->vswitchstate=parms[i][9];
-    parms[i][9]=2; /* State */
-    /* now ask first Call to join */
-   }
-   else if(parms[i][2]==VSWITCH_REQ && parms[i][9]==3)
-   { /* Answer of VSWITCH_REQ from first Call */
-    plci->vswitchstate=parms[i][9];
-    /* tell consultation call to join
-    and the protocol capabilities of the first call */
-   }
-   else
-   { /* Error */
-    break;
-   }    
-   plci->vsprot=parms[i][10]; /* protocol */
-   plci->vsprotdialect=parms[i][11]; /* protocoldialect */
-   /* send join request to related PLCI */
-   parms[i][1]=VSWITCHIE;
-   parms[i][2]=VSWITCH_REQ;
-   
-   plci->relatedPTYPLCI->command = 0;
-   plci->relatedPTYPLCI->internal_command = VSWITCH_REQ_PEND;
-   add_p(plci->relatedPTYPLCI,ESC,&parms[i][0]);
-   sig_req(plci->relatedPTYPLCI,VSWITCH_REQ,0);
-   send_req(plci->relatedPTYPLCI);
-   break;
-  case VSTRANSPORT:
-  default:
-   if(plci->relatedPTYPLCI &&
-    plci->vswitchstate==3 &&
-    plci->relatedPTYPLCI->vswitchstate==3)
-   {
-    add_p(plci->relatedPTYPLCI,ESC,&parms[i][0]);
-    sig_req(plci->relatedPTYPLCI,VSWITCH_REQ,0);
-    send_req(plci->relatedPTYPLCI);
-   }
-   break;
-  }  
-  parms[i][0]=0; /* kill it */
- }
+static void VSwitchReqInd(PLCI *plci, dword Id, byte **parms)
+{
      word i;
      /* Format of vswitch_t:
         0 byte length
         1 byte VSWITCHIE
         2 byte VSWITCH_REQ/VSWITCH_IND
         3 byte reserved
         4 word VSwitchcommand
         6 word returnerror
         8... Params
      */
      if (!plci ||
+           !plci->appl ||
+           !plci->State ||
+           plci->Sig.Ind == NCR_FACILITY
+               )
+               return;
+
      for (i = 0; i < MAX_MULTI_IE; i++)
      {
+               if (!parms[i][0]) continue;
+               if (parms[i][0] < 7)
+               {
+                       parms[i][0] = 0; /* kill it */
+                       continue;
+               }
+               dbug(1, dprintf("VSwitchReqInd(%d)", parms[i][4]));
+               switch (parms[i][4])
+               {
+               case VSJOIN:
+                       if (!plci->relatedPTYPLCI ||
+                           (plci->ptyState != S_ECT && plci->relatedPTYPLCI->ptyState != S_ECT))
+                       { /* Error */
+                               break;
+                       }
+                       /* remember all necessary informations */
+                       if (parms[i][0] != 11 || parms[i][8] != 3) /* Length Test */
+                       {
+                               break;
+                       }
+                       if (parms[i][2] == VSWITCH_IND && parms[i][9] == 1)
+                       {   /* first indication after ECT-Request on Consultation Call */
+                               plci->vswitchstate = parms[i][9];
+                               parms[i][9] = 2; /* State */
+                               /* now ask first Call to join */
+                       }
+                       else if (parms[i][2] == VSWITCH_REQ && parms[i][9] == 3)
+                       { /* Answer of VSWITCH_REQ from first Call */
+                               plci->vswitchstate = parms[i][9];
+                               /* tell consultation call to join
+                                  and the protocol capabilities of the first call */
+                       }
+                       else
+                       { /* Error */
+                               break;
+                       }
+                       plci->vsprot = parms[i][10]; /* protocol */
+                       plci->vsprotdialect = parms[i][11]; /* protocoldialect */
+                       /* send join request to related PLCI */
+                       parms[i][1] = VSWITCHIE;
+                       parms[i][2] = VSWITCH_REQ;
+
+                       plci->relatedPTYPLCI->command = 0;
+                       plci->relatedPTYPLCI->internal_command = VSWITCH_REQ_PEND;
+                       add_p(plci->relatedPTYPLCI, ESC, &parms[i][0]);
+                       sig_req(plci->relatedPTYPLCI, VSWITCH_REQ, 0);
+                       send_req(plci->relatedPTYPLCI);
+                       break;
+               case VSTRANSPORT:
+               default:
+                       if (plci->relatedPTYPLCI &&
+                           plci->vswitchstate == 3 &&
+                           plci->relatedPTYPLCI->vswitchstate == 3)
+                       {
+                               add_p(plci->relatedPTYPLCI, ESC, &parms[i][0]);
+                               sig_req(plci->relatedPTYPLCI, VSWITCH_REQ, 0);
+                               send_req(plci->relatedPTYPLCI);
+                       }
+                       break;
+               }
+               parms[i][0] = 0; /* kill it */
      }
 }
 
 
 /*------------------------------------------------------------------*/
 
-static int diva_get_dma_descriptor (PLCI   *plci, dword   *dma_magic) {
-  ENTITY e;
-  IDI_SYNC_REQ* pReq = (IDI_SYNC_REQ*)&e;
-
-  if (!(diva_xdi_extended_features & DIVA_CAPI_XDI_PROVIDES_RX_DMA)) {
-    return (-1);
-  }
-
-  pReq->xdi_dma_descriptor_operation.Req = 0;
-  pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
-
-  pReq->xdi_dma_descriptor_operation.info.operation =     IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_number  = -1;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
-
-  e.user[0] = plci->adapter->Id - 1;
-  plci->adapter->request((ENTITY*)pReq);
-
-  if (!pReq->xdi_dma_descriptor_operation.info.operation &&
-      (pReq->xdi_dma_descriptor_operation.info.descriptor_number >= 0) &&
-      pReq->xdi_dma_descriptor_operation.info.descriptor_magic) {
-    *dma_magic = pReq->xdi_dma_descriptor_operation.info.descriptor_magic;
-    dbug(3,dprintf("dma_alloc, a:%d (%d-%08x)",
-         plci->adapter->Id,
-         pReq->xdi_dma_descriptor_operation.info.descriptor_number,
-         *dma_magic));
-    return (pReq->xdi_dma_descriptor_operation.info.descriptor_number);
-  } else {
-    dbug(1,dprintf("dma_alloc failed"));
-    return (-1);
-  }
-}
-
-static void diva_free_dma_descriptor (PLCI   *plci, int nr) {
-  ENTITY e;
-  IDI_SYNC_REQ* pReq = (IDI_SYNC_REQ*)&e;
-
-  if (nr < 0) {
-    return;
-  }
-
-  pReq->xdi_dma_descriptor_operation.Req = 0;
-  pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
-
-  pReq->xdi_dma_descriptor_operation.info.operation =                                                IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_number  = nr;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
-  pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
-
-  e.user[0] = plci->adapter->Id - 1;
-  plci->adapter->request((ENTITY*)pReq);
-
-  if (!pReq->xdi_dma_descriptor_operation.info.operation) {
-    dbug(1,dprintf("dma_free(%d)", nr));
-  } else {
-    dbug(1,dprintf("dma_free failed (%d)", nr));
-  }
+static int diva_get_dma_descriptor(PLCI *plci, dword   *dma_magic) {
+       ENTITY e;
+       IDI_SYNC_REQ *pReq = (IDI_SYNC_REQ *)&e;
+
+       if (!(diva_xdi_extended_features & DIVA_CAPI_XDI_PROVIDES_RX_DMA)) {
+               return (-1);
+       }
+
+       pReq->xdi_dma_descriptor_operation.Req = 0;
+       pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
+
+       pReq->xdi_dma_descriptor_operation.info.operation = IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_number  = -1;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
+
+       e.user[0] = plci->adapter->Id - 1;
+       plci->adapter->request((ENTITY *)pReq);
+
+       if (!pReq->xdi_dma_descriptor_operation.info.operation &&
+           (pReq->xdi_dma_descriptor_operation.info.descriptor_number >= 0) &&
+           pReq->xdi_dma_descriptor_operation.info.descriptor_magic) {
+               *dma_magic = pReq->xdi_dma_descriptor_operation.info.descriptor_magic;
+               dbug(3, dprintf("dma_alloc, a:%d (%d-%08x)",
+                               plci->adapter->Id,
+                               pReq->xdi_dma_descriptor_operation.info.descriptor_number,
+                               *dma_magic));
+               return (pReq->xdi_dma_descriptor_operation.info.descriptor_number);
+       } else {
+               dbug(1, dprintf("dma_alloc failed"));
+               return (-1);
+       }
+}
+
+static void diva_free_dma_descriptor(PLCI *plci, int nr) {
+       ENTITY e;
+       IDI_SYNC_REQ *pReq = (IDI_SYNC_REQ *)&e;
+
+       if (nr < 0) {
+               return;
+       }
+
+       pReq->xdi_dma_descriptor_operation.Req = 0;
+       pReq->xdi_dma_descriptor_operation.Rc = IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION;
+
+       pReq->xdi_dma_descriptor_operation.info.operation = IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_number  = nr;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_address = NULL;
+       pReq->xdi_dma_descriptor_operation.info.descriptor_magic   = 0;
+
+       e.user[0] = plci->adapter->Id - 1;
+       plci->adapter->request((ENTITY *)pReq);
+
+       if (!pReq->xdi_dma_descriptor_operation.info.operation) {
+               dbug(1, dprintf("dma_free(%d)", nr));
+       } else {
+               dbug(1, dprintf("dma_free failed (%d)", nr));
+       }
 }
 
 /*------------------------------------------------------------------*/
index a861dac..83e9ed8 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 /*----------------------------------------------------------------------------
 /* CPU exception context structure in MP shared ram after trap */
 typedef struct mp_xcptcontext_s MP_XCPTC;
 struct mp_xcptcontext_s {
-    dword       sr;
-    dword       cr;
-    dword       epc;
-    dword       vaddr;
-    dword       regs[32];
-    dword       mdlo;
-    dword       mdhi;
-    dword       reseverd;
-    dword       xclass;
+       dword       sr;
+       dword       cr;
+       dword       epc;
+       dword       vaddr;
+       dword       regs[32];
+       dword       mdlo;
+       dword       mdhi;
+       dword       reseverd;
+       dword       xclass;
 };
 /* boot interface structure for PRI */
 struct mp_load {
-  dword     volatile cmd;
-  dword     volatile addr;
-  dword     volatile len;
-  dword     volatile err;
-  dword     volatile live;
-  dword     volatile res1[0x1b];
-  dword     volatile TrapId;    /* has value 0x999999XX on a CPU trap */
-  dword     volatile res2[0x03];
-  MP_XCPTC  volatile xcpt;      /* contains register dump */
-  dword     volatile rest[((0x1020>>2)-6) - 0x1b - 1 - 0x03 - (sizeof(MP_XCPTC)>>2)];
-  dword     volatile signature;
-  dword data[60000]; /* real interface description */
+       dword     volatile cmd;
+       dword     volatile addr;
+       dword     volatile len;
+       dword     volatile err;
+       dword     volatile live;
+       dword     volatile res1[0x1b];
+       dword     volatile TrapId;    /* has value 0x999999XX on a CPU trap */
+       dword     volatile res2[0x03];
+       MP_XCPTC  volatile xcpt;      /* contains register dump */
+       dword     volatile rest[((0x1020 >> 2) - 6) - 0x1b - 1 - 0x03 - (sizeof(MP_XCPTC) >> 2)];
+       dword     volatile signature;
+       dword data[60000]; /* real interface description */
 };
 /*----------------------------------------------------------------------------*/
 /* SERVER 4BRI (Quattro PCI)                                                  */
@@ -150,11 +150,11 @@ struct mp_load {
 #define CS_BASEREG    0x0018
 #define BOOT_BASEREG  0x001c
 #define GTREGS_BASEREG 0x0024   /*GTRegsBase reg-contain the base addr where*/
-                                /*the GT64010 internal regs where mapped    */
+                               /*the GT64010 internal regs where mapped    */
 /*
  *  GT64010 internal registers
  */
-        /* DRAM device coding  */
+/* DRAM device coding  */
 #define LOW_RAS0_DREG 0x0400    /*Ras0 low decode address*/
 #define HI_RAS0_DREG  0x0404    /*Ras0 high decode address*/
 #define LOW_RAS1_DREG 0x0408    /*Ras1 low decode address*/
@@ -163,7 +163,7 @@ struct mp_load {
 #define HI_RAS2_DREG  0x0414    /*Ras2 high decode address*/
 #define LOW_RAS3_DREG 0x0418    /*Ras3 low decode address*/
 #define HI_RAS3_DREG  0x041c    /*Ras3 high decode address*/
-        /* I/O CS device coding  */
+/* I/O CS device coding  */
 #define LOW_CS0_DREG  0x0420 /* CS0* low decode register */
 #define HI_CS0_DREG   0x0424 /* CS0* high decode register */
 #define LOW_CS1_DREG  0x0428 /* CS1* low decode register */
@@ -172,20 +172,20 @@ struct mp_load {
 #define HI_CS2_DREG   0x0434 /* CS2* high decode register */
 #define LOW_CS3_DREG  0x0438 /* CS3* low decode register */
 #define HI_CS3_DREG   0x043c /* CS3* high decode register */
-        /* Boot PROM device coding */
+/* Boot PROM device coding */
 #define LOW_BOOTCS_DREG 0x0440 /* Boot CS low decode register */
 #define HI_BOOTCS_DREG 0x0444 /* Boot CS High decode register */
-        /* DRAM group coding (for CPU)  */
+/* DRAM group coding (for CPU)  */
 #define LO_RAS10_GREG 0x0008    /*Ras1..0 group low decode address*/
 #define HI_RAS10_GREG 0x0010    /*Ras1..0 group high decode address*/
 #define LO_RAS32_GREG 0x0018    /*Ras3..2 group low decode address  */
 #define HI_RAS32_GREG 0x0020    /*Ras3..2 group high decode address  */
-        /* I/O CS group coding for (CPU)  */
+/* I/O CS group coding for (CPU)  */
 #define LO_CS20_GREG  0x0028 /* CS2..0 group low decode register */
 #define HI_CS20_GREG  0x0030 /* CS2..0 group high decode register */
 #define LO_CS3B_GREG  0x0038 /* CS3 & PROM group low decode register */
 #define HI_CS3B_GREG  0x0040 /* CS3 & PROM group high decode register */
-        /* Galileo specific PCI config. */
+/* Galileo specific PCI config. */
 #define PCI_TIMEOUT_RET 0x0c04 /* Time Out and retry register */
 #define RAS10_BANKSIZE 0x0c08 /* RAS 1..0 group PCI bank size */
 #define RAS32_BANKSIZE 0x0c0c /* RAS 3..2 group PCI bank size */
index a564b75..d607260 100644 (file)
@@ -27,7 +27,7 @@ static dword notify_handle;
 static DESCRIPTOR DAdapter;
 static DESCRIPTOR MAdapter;
 static DESCRIPTOR MaintDescriptor =
-    { IDI_DIMAINT, 0, 0, (IDI_CALL) diva_maint_prtComp };
+{ IDI_DIMAINT, 0, 0, (IDI_CALL) diva_maint_prtComp };
 
 extern int diva_os_copy_to_user(void *os_handle, void __user *dst,
                                const void *src, int length);
@@ -44,7 +44,7 @@ static void no_printf(unsigned char *x, ...)
 /*
  *  DIDD callback function
  */
-static void *didd_callback(void *context, DESCRIPTOR * adapter,
+static void *didd_callback(void *context, DESCRIPTOR *adapter,
                           int removal)
 {
        if (adapter->type == IDI_DADAPTER) {
@@ -87,20 +87,20 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
                        memcpy(&DAdapter, &DIDD_Table[x], sizeof(DAdapter));
                        req.didd_notify.e.Req = 0;
                        req.didd_notify.e.Rc =
-                           IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
+                               IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
                        req.didd_notify.info.callback = (void *)didd_callback;
                        req.didd_notify.info.context = NULL;
-                       DAdapter.request((ENTITY *) & req);
+                       DAdapter.request((ENTITY *)&req);
                        if (req.didd_notify.e.Rc != 0xff)
                                return (0);
                        notify_handle = req.didd_notify.info.handle;
                        /* Register MAINT (me) */
                        req.didd_add_adapter.e.Req = 0;
                        req.didd_add_adapter.e.Rc =
-                           IDI_SYNC_REQ_DIDD_ADD_ADAPTER;
+                               IDI_SYNC_REQ_DIDD_ADD_ADAPTER;
                        req.didd_add_adapter.info.descriptor =
-                           (void *) &MaintDescriptor;
-                       DAdapter.request((ENTITY *) & req);
+                               (void *) &MaintDescriptor;
+                       DAdapter.request((ENTITY *)&req);
                        if (req.didd_add_adapter.e.Rc != 0xff)
                                return (0);
                } else if ((DIDD_Table[x].type > 0)
@@ -121,13 +121,13 @@ static void DIVA_EXIT_FUNCTION disconnect_didd(void)
        req.didd_notify.e.Req = 0;
        req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
        req.didd_notify.info.handle = notify_handle;
-       DAdapter.request((ENTITY *) & req);
+       DAdapter.request((ENTITY *)&req);
 
        req.didd_remove_adapter.e.Req = 0;
        req.didd_remove_adapter.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER;
        req.didd_remove_adapter.info.p_request =
-           (IDI_CALL) MaintDescriptor.request;
-       DAdapter.request((ENTITY *) & req);
+               (IDI_CALL) MaintDescriptor.request;
+       DAdapter.request((ENTITY *)&req);
 }
 
 /*
@@ -147,9 +147,9 @@ int maint_read_write(void __user *buf, int count)
                return (-EFAULT);
        }
 
-       cmd = *(dword *) & data[0];     /* command */
-       id = *(dword *) & data[4];      /* driver id */
-       mask = *(dword *) & data[8];    /* mask or size */
+       cmd = *(dword *)&data[0];       /* command */
+       id = *(dword *)&data[4];        /* driver id */
+       mask = *(dword *)&data[8];      /* mask or size */
 
        switch (cmd) {
        case DITRACE_CMD_GET_DRIVER_INFO:
@@ -178,19 +178,19 @@ int maint_read_write(void __user *buf, int count)
                }
                break;
 
-    /*
-       Filter commands will ignore the ID due to fact that filtering affects
-       the B- channel and Audio Tap trace levels only. Also MAINT driver will
-       select the right trace ID by itself
-       */
+               /*
+                 Filter commands will ignore the ID due to fact that filtering affects
+                 the B- channel and Audio Tap trace levels only. Also MAINT driver will
+                 select the right trace ID by itself
+               */
        case DITRACE_WRITE_SELECTIVE_TRACE_FILTER:
                if (!mask) {
-                       ret = diva_set_trace_filter (1, "*");
+                       ret = diva_set_trace_filter(1, "*");
                } else if (mask < sizeof(data)) {
-                       if (diva_os_copy_from_user(NULL, data, (char __user *)buf+12, mask)) {
+                       if (diva_os_copy_from_user(NULL, data, (char __user *)buf + 12, mask)) {
                                ret = -EFAULT;
                        } else {
-                               ret = diva_set_trace_filter ((int)mask, data);
+                               ret = diva_set_trace_filter((int)mask, data);
                        }
                } else {
                        ret = -EINVAL;
@@ -198,8 +198,8 @@ int maint_read_write(void __user *buf, int count)
                break;
 
        case DITRACE_READ_SELECTIVE_TRACE_FILTER:
-               if ((ret = diva_get_trace_filter (sizeof(data), data)) > 0) {
-                       if (diva_os_copy_to_user (NULL, buf, data, ret))
+               if ((ret = diva_get_trace_filter(sizeof(data), data)) > 0) {
+                       if (diva_os_copy_to_user(NULL, buf, data, ret))
                                ret = -EFAULT;
                } else {
                        ret = -ENODEV;
@@ -207,88 +207,88 @@ int maint_read_write(void __user *buf, int count)
                break;
 
        case DITRACE_READ_TRACE_ENTRY:{
-                       diva_os_spin_lock_magic_t old_irql;
-                       word size;
-                       diva_dbg_entry_head_t *pmsg;
-                       byte *pbuf;
+               diva_os_spin_lock_magic_t old_irql;
+               word size;
+               diva_dbg_entry_head_t *pmsg;
+               byte *pbuf;
 
-                       if (!(pbuf = diva_os_malloc(0, mask))) {
-                               return (-ENOMEM);
-                       }
+               if (!(pbuf = diva_os_malloc(0, mask))) {
+                       return (-ENOMEM);
+               }
 
-                       for(;;) {
-                               if (!(pmsg =
-                                   diva_maint_get_message(&size, &old_irql))) {
-                                       break;
-                               }
-                               if (size > mask) {
-                                       diva_maint_ack_message(0, &old_irql);
-                                       ret = -EINVAL;
-                                       break;
-                               }
-                               ret = size;
-                               memcpy(pbuf, pmsg, size);
-                               diva_maint_ack_message(1, &old_irql);
-                               if ((count < size) ||
-                                    diva_os_copy_to_user (NULL, buf, (void *) pbuf, size))
-                                                       ret = -EFAULT;
+               for (;;) {
+                       if (!(pmsg =
+                             diva_maint_get_message(&size, &old_irql))) {
+                               break;
+                       }
+                       if (size > mask) {
+                               diva_maint_ack_message(0, &old_irql);
+                               ret = -EINVAL;
                                break;
                        }
-                       diva_os_free(0, pbuf);
+                       ret = size;
+                       memcpy(pbuf, pmsg, size);
+                       diva_maint_ack_message(1, &old_irql);
+                       if ((count < size) ||
+                           diva_os_copy_to_user(NULL, buf, (void *) pbuf, size))
+                               ret = -EFAULT;
+                       break;
                }
+               diva_os_free(0, pbuf);
+       }
                break;
 
        case DITRACE_READ_TRACE_ENTRYS:{
-                       diva_os_spin_lock_magic_t old_irql;
-                       word size;
-                       diva_dbg_entry_head_t *pmsg;
-                       byte *pbuf = NULL;
-                       int written = 0;
+               diva_os_spin_lock_magic_t old_irql;
+               word size;
+               diva_dbg_entry_head_t *pmsg;
+               byte *pbuf = NULL;
+               int written = 0;
 
-                       if (mask < 4096) {
-                               ret = -EINVAL;
+               if (mask < 4096) {
+                       ret = -EINVAL;
+                       break;
+               }
+               if (!(pbuf = diva_os_malloc(0, mask))) {
+                       return (-ENOMEM);
+               }
+
+               for (;;) {
+                       if (!(pmsg =
+                             diva_maint_get_message(&size, &old_irql))) {
                                break;
                        }
-                       if (!(pbuf = diva_os_malloc(0, mask))) {
-                               return (-ENOMEM);
-                       }
-
-                       for (;;) {
-                               if (!(pmsg =
-                                    diva_maint_get_message(&size, &old_irql))) {
-                                       break;
-                               }
-                               if ((size + 8) > mask) {
-                                       diva_maint_ack_message(0, &old_irql);
-                                       break;
-                               }
-                               /*
-                                  Write entry length
-                                */
-                               pbuf[written++] = (byte) size;
-                               pbuf[written++] = (byte) (size >> 8);
-                               pbuf[written++] = 0;
-                               pbuf[written++] = 0;
-                               /*
-                                  Write message
-                                */
-                               memcpy(&pbuf[written], pmsg, size);
-                               diva_maint_ack_message(1, &old_irql);
-                               written += size;
-                               mask -= (size + 4);
+                       if ((size + 8) > mask) {
+                               diva_maint_ack_message(0, &old_irql);
+                               break;
                        }
+                       /*
+                         Write entry length
+                       */
+                       pbuf[written++] = (byte) size;
+                       pbuf[written++] = (byte) (size >> 8);
                        pbuf[written++] = 0;
                        pbuf[written++] = 0;
-                       pbuf[written++] = 0;
-                       pbuf[written++] = 0;
+                       /*
+                         Write message
+                       */
+                       memcpy(&pbuf[written], pmsg, size);
+                       diva_maint_ack_message(1, &old_irql);
+                       written += size;
+                       mask -= (size + 4);
+               }
+               pbuf[written++] = 0;
+               pbuf[written++] = 0;
+               pbuf[written++] = 0;
+               pbuf[written++] = 0;
 
-                       if ((count < written) || diva_os_copy_to_user(NULL, buf, (void *) pbuf, written)) {
-                               ret = -EFAULT;
-                       } else {
-                               ret = written;
-                       }
-                       diva_os_free(0, pbuf);
+               if ((count < written) || diva_os_copy_to_user(NULL, buf, (void *) pbuf, written)) {
+                       ret = -EFAULT;
+               } else {
+                       ret = written;
                }
+               diva_os_free(0, pbuf);
+       }
                break;
 
        default:
@@ -316,7 +316,7 @@ int DIVA_INIT_FUNCTION mntfunc_init(int *buffer_length, void **buffer,
        } else {
                while ((*buffer_length >= (64 * 1024))
                       &&
-                      (!(*buffer = diva_os_malloc (0, *buffer_length)))) {
+                      (!(*buffer = diva_os_malloc(0, *buffer_length)))) {
                        *buffer_length -= 1024;
                }
 
@@ -328,7 +328,7 @@ int DIVA_INIT_FUNCTION mntfunc_init(int *buffer_length, void **buffer,
 
        if (diva_maint_init(*buffer, *buffer_length, (diva_dbg_mem == 0))) {
                if (!diva_dbg_mem) {
-                       diva_os_free (0, *buffer);
+                       diva_os_free(0, *buffer);
                }
                DBG_ERR(("init: maint init failed"));
                return (0);
@@ -338,7 +338,7 @@ int DIVA_INIT_FUNCTION mntfunc_init(int *buffer_length, void **buffer,
                DBG_ERR(("init: failed to connect to DIDD."));
                diva_maint_finit();
                if (!diva_dbg_mem) {
-                       diva_os_free (0, *buffer);
+                       diva_os_free(0, *buffer);
                }
                return (0);
        }
@@ -362,7 +362,7 @@ void DIVA_EXIT_FUNCTION mntfunc_finit(void)
        disconnect_didd();
 
        if ((buffer = diva_maint_finit())) {
-               diva_os_free (0, buffer);
+               diva_os_free(0, buffer);
        }
 
        memset(&MAdapter, 0, sizeof(MAdapter));
index cb7616c..1891246 100644 (file)
@@ -27,12 +27,12 @@ static dword diva_xdiLoadFileLength = 0;
 extern void prepare_qBri_functions(PISDN_ADAPTER IoAdapter);
 extern void prepare_qBri2_functions(PISDN_ADAPTER IoAdapter);
 extern void diva_xdi_display_adapter_features(int card);
-extern void diva_add_slave_adapter(diva_os_xdi_adapter_t * a);
+extern void diva_add_slave_adapter(diva_os_xdi_adapter_t *a);
 
 extern int qBri_FPGA_download(PISDN_ADAPTER IoAdapter);
 extern void start_qBri_hardware(PISDN_ADAPTER IoAdapter);
 
-extern int diva_card_read_xlog(diva_os_xdi_adapter_t * a);
+extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
 
 /*
 **  LOCALS
@@ -57,23 +57,23 @@ static unsigned long _4bri_v2_bri_bar_length[4] = {
 };
 
 
-static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a);
-static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a);
+static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t *a);
+static int _4bri_get_serial_number(diva_os_xdi_adapter_t *a);
 static int diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
-                                  diva_xdi_um_cfg_cmd_t * cmd,
+                                  diva_xdi_um_cfg_cmd_t *cmd,
                                   int length);
-static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t * a);
-static int diva_4bri_write_fpga_image(diva_os_xdi_adapter_t * a,
-                                     byte * data, dword length);
+static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t *a);
+static int diva_4bri_write_fpga_image(diva_os_xdi_adapter_t *a,
+                                     byte *data, dword length);
 static int diva_4bri_reset_adapter(PISDN_ADAPTER IoAdapter);
 static int diva_4bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
                                       dword address,
-                                      const byte * data,
+                                      const byte *data,
                                       dword length, dword limit);
 static int diva_4bri_start_adapter(PISDN_ADAPTER IoAdapter,
                                   dword start_address, dword features);
 static int check_qBri_interrupt(PISDN_ADAPTER IoAdapter);
-static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a);
+static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t *a);
 
 static int _4bri_is_rev_2_card(int card_ordinal)
 {
@@ -112,8 +112,8 @@ static void diva_4bri_set_addresses(diva_os_xdi_adapter_t *a)
        a->resources.pci.mem_type_id[MEM_TYPE_PROM] = 0;
 
        /*
-          Set up hardware related pointers
-        */
+         Set up hardware related pointers
+       */
        a->xdi_adapter.Address = a->resources.pci.addr[2];      /* BAR2 SDRAM  */
        a->xdi_adapter.Address += c_offset;
 
@@ -121,15 +121,15 @@ static void diva_4bri_set_addresses(diva_os_xdi_adapter_t *a)
 
        a->xdi_adapter.ram = a->resources.pci.addr[2];  /* BAR2 SDRAM  */
        a->xdi_adapter.ram += c_offset + (offset - MQ_SHARED_RAM_SIZE);
-       
+
        a->xdi_adapter.reset = a->resources.pci.addr[0];        /* BAR0 CONFIG */
        /*
-          ctlReg contains the register address for the MIPS CPU reset control
-        */
+         ctlReg contains the register address for the MIPS CPU reset control
+       */
        a->xdi_adapter.ctlReg = a->resources.pci.addr[3];       /* BAR3 CNTRL  */
        /*
-          prom contains the register address for FPGA and EEPROM programming
-        */
+         prom contains the register address for FPGA and EEPROM programming
+       */
        a->xdi_adapter.prom = &a->xdi_adapter.reset[0x6E];
 }
 
@@ -141,7 +141,7 @@ static void diva_4bri_set_addresses(diva_os_xdi_adapter_t *a)
 **
 **  Called by master adapter, that will initialize and add slave adapters
 */
-int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
+int diva_4bri_init_card(diva_os_xdi_adapter_t *a)
 {
        int bar, i;
        byte __iomem *p;
@@ -168,48 +168,48 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
        DBG_TRC(("SDRAM_LENGTH=%08x, tasks=%d, factor=%d",
                 bar_length[2], tasks, factor))
 
-       /*
-          Get Serial Number
-          The serial number of 4BRI is accessible in accordance with PCI spec
-          via command register located in configuration space, also we do not
-          have to map any BAR before we can access it
-        */
-       if (!_4bri_get_serial_number(a)) {
-               DBG_ERR(("A: 4BRI can't get Serial Number"))
-               diva_4bri_cleanup_adapter(a);
-               return (-1);
-       }
+               /*
+                 Get Serial Number
+                 The serial number of 4BRI is accessible in accordance with PCI spec
+                 via command register located in configuration space, also we do not
+                 have to map any BAR before we can access it
+               */
+               if (!_4bri_get_serial_number(a)) {
+                       DBG_ERR(("A: 4BRI can't get Serial Number"))
+                               diva_4bri_cleanup_adapter(a);
+                       return (-1);
+               }
 
        /*
-          Set properties
-        */
+         Set properties
+       */
        a->xdi_adapter.Properties = CardProperties[a->CardOrdinal];
        DBG_LOG(("Load %s, SN:%ld, bus:%02x, func:%02x",
                 a->xdi_adapter.Properties.Name,
                 a->xdi_adapter.serialNo,
                 a->resources.pci.bus, a->resources.pci.func))
 
-       /*
-          First initialization step: get and check hardware resoures.
-          Do not map resources and do not access card at this step
-        */
-       for (bar = 0; bar < 4; bar++) {
-               a->resources.pci.bar[bar] =
-                   divasa_get_pci_bar(a->resources.pci.bus,
-                                      a->resources.pci.func, bar,
-                                      a->resources.pci.hdev);
-               if (!a->resources.pci.bar[bar]
-                   || (a->resources.pci.bar[bar] == 0xFFFFFFF0)) {
-                       DBG_ERR(
-                               ("A: invalid bar[%d]=%08x", bar,
-                                a->resources.pci.bar[bar]))
-                       return (-1);
+               /*
+                 First initialization step: get and check hardware resoures.
+                 Do not map resources and do not access card at this step
+               */
+               for (bar = 0; bar < 4; bar++) {
+                       a->resources.pci.bar[bar] =
+                               divasa_get_pci_bar(a->resources.pci.bus,
+                                                  a->resources.pci.func, bar,
+                                                  a->resources.pci.hdev);
+                       if (!a->resources.pci.bar[bar]
+                           || (a->resources.pci.bar[bar] == 0xFFFFFFF0)) {
+                               DBG_ERR(
+                                       ("A: invalid bar[%d]=%08x", bar,
+                                        a->resources.pci.bar[bar]))
+                                       return (-1);
+                       }
                }
-       }
        a->resources.pci.irq =
-           (byte) divasa_get_pci_irq(a->resources.pci.bus,
-                                     a->resources.pci.func,
-                                     a->resources.pci.hdev);
+               (byte) divasa_get_pci_irq(a->resources.pci.bus,
+                                         a->resources.pci.func,
+                                         a->resources.pci.hdev);
        if (!a->resources.pci.irq) {
                DBG_ERR(("A: invalid irq"));
                return (-1);
@@ -218,30 +218,30 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
        a->xdi_adapter.sdram_bar = a->resources.pci.bar[2];
 
        /*
-          Map all MEMORY BAR's
-        */
+         Map all MEMORY BAR's
+       */
        for (bar = 0; bar < 4; bar++) {
                if (bar != 1) { /* ignore I/O */
                        a->resources.pci.addr[bar] =
-                           divasa_remap_pci_bar(a, bar, a->resources.pci.bar[bar],
-                                                bar_length[bar]);
+                               divasa_remap_pci_bar(a, bar, a->resources.pci.bar[bar],
+                                                    bar_length[bar]);
                        if (!a->resources.pci.addr[bar]) {
                                DBG_ERR(("A: 4BRI: can't map bar[%d]", bar))
-                               diva_4bri_cleanup_adapter(a);
+                                       diva_4bri_cleanup_adapter(a);
                                return (-1);
                        }
                }
        }
 
        /*
-          Register I/O port
-        */
+         Register I/O port
+       */
        sprintf(&a->port_name[0], "DIVA 4BRI %ld", (long) a->xdi_adapter.serialNo);
 
        if (diva_os_register_io_port(a, 1, a->resources.pci.bar[1],
                                     bar_length[1], &a->port_name[0], 1)) {
                DBG_ERR(("A: 4BRI: can't register bar[1]"))
-               diva_4bri_cleanup_adapter(a);
+                       diva_4bri_cleanup_adapter(a);
                return (-1);
        }
 
@@ -249,23 +249,23 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
                (void *) (unsigned long) a->resources.pci.bar[1];
 
        /*
-          Set cleanup pointer for base adapter only, so slave adapter
-          will be unable to get cleanup
-        */
+         Set cleanup pointer for base adapter only, so slave adapter
+         will be unable to get cleanup
+       */
        a->interface.cleanup_adapter_proc = diva_4bri_cleanup_adapter;
 
        /*
-          Create slave adapters
-        */
+         Create slave adapters
+       */
        if (tasks > 1) {
                if (!(a->slave_adapters[0] =
-                    (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a))))
+                     (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a))))
                {
                        diva_4bri_cleanup_adapter(a);
                        return (-1);
                }
                if (!(a->slave_adapters[1] =
-                    (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a))))
+                     (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a))))
                {
                        diva_os_free(0, a->slave_adapters[0]);
                        a->slave_adapters[0] = NULL;
@@ -273,7 +273,7 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
                        return (-1);
                }
                if (!(a->slave_adapters[2] =
-                    (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a))))
+                     (diva_os_xdi_adapter_t *) diva_os_malloc(0, sizeof(*a))))
                {
                        diva_os_free(0, a->slave_adapters[0]);
                        diva_os_free(0, a->slave_adapters[1]);
@@ -293,10 +293,10 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
        adapter_list[3] = a->slave_adapters[2];
 
        /*
-          Allocate slave list
-        */
+         Allocate slave list
+       */
        quadro_list =
-           (PADAPTER_LIST_ENTRY) diva_os_malloc(0, sizeof(*quadro_list));
+               (PADAPTER_LIST_ENTRY) diva_os_malloc(0, sizeof(*quadro_list));
        if (!(a->slave_list = quadro_list)) {
                for (i = 0; i < (tasks - 1); i++) {
                        diva_os_free(0, a->slave_adapters[i]);
@@ -308,14 +308,14 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
        memset(quadro_list, 0x00, sizeof(*quadro_list));
 
        /*
-          Set interfaces
-        */
+         Set interfaces
+       */
        a->xdi_adapter.QuadroList = quadro_list;
        for (i = 0; i < tasks; i++) {
                adapter_list[i]->xdi_adapter.ControllerNumber = i;
                adapter_list[i]->xdi_adapter.tasks = tasks;
                quadro_list->QuadroAdapter[i] =
-                   &adapter_list[i]->xdi_adapter;
+                       &adapter_list[i]->xdi_adapter;
        }
 
        for (i = 0; i < tasks; i++) {
@@ -324,21 +324,21 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
                diva_current->dsp_mask = 0x00000003;
 
                diva_current->xdi_adapter.a.io =
-                   &diva_current->xdi_adapter;
+                       &diva_current->xdi_adapter;
                diva_current->xdi_adapter.DIRequest = request;
                diva_current->interface.cmd_proc = diva_4bri_cmd_card_proc;
                diva_current->xdi_adapter.Properties =
-                   CardProperties[a->CardOrdinal];
+                       CardProperties[a->CardOrdinal];
                diva_current->CardOrdinal = a->CardOrdinal;
 
                diva_current->xdi_adapter.Channels =
-                   CardProperties[a->CardOrdinal].Channels;
+                       CardProperties[a->CardOrdinal].Channels;
                diva_current->xdi_adapter.e_max =
-                   CardProperties[a->CardOrdinal].E_info;
+                       CardProperties[a->CardOrdinal].E_info;
                diva_current->xdi_adapter.e_tbl =
-                   diva_os_malloc(0,
-                                  diva_current->xdi_adapter.e_max *
-                                  sizeof(E_INFO));
+                       diva_os_malloc(0,
+                                      diva_current->xdi_adapter.e_max *
+                                      sizeof(E_INFO));
 
                if (!diva_current->xdi_adapter.e_tbl) {
                        diva_4bri_cleanup_slave_adapters(a);
@@ -370,8 +370,8 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
 
                strcpy(diva_current->xdi_adapter.req_soft_isr. dpc_thread_name, "kdivas4brid");
 
-               if (diva_os_initialize_soft_isr (&diva_current->xdi_adapter.req_soft_isr, DIDpcRoutine,
-                    &diva_current->xdi_adapter)) {
+               if (diva_os_initialize_soft_isr(&diva_current->xdi_adapter.req_soft_isr, DIDpcRoutine,
+                                               &diva_current->xdi_adapter)) {
                        diva_4bri_cleanup_slave_adapters(a);
                        diva_4bri_cleanup_adapter(a);
                        for (i = 1; i < (tasks - 1); i++) {
@@ -381,10 +381,10 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
                }
 
                /*
-                  Do not initialize second DPC - only one thread will be created
-                */
+                 Do not initialize second DPC - only one thread will be created
+               */
                diva_current->xdi_adapter.isr_soft_isr.object =
-                   diva_current->xdi_adapter.req_soft_isr.object;
+                       diva_current->xdi_adapter.req_soft_isr.object;
        }
 
        if (v2) {
@@ -397,12 +397,12 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
                diva_current = adapter_list[i];
                if (i)
                        memcpy(&diva_current->resources, &a->resources, sizeof(divas_card_resources_t));
-               diva_current->resources.pci.qoffset = (a->xdi_adapter.MemorySize >> factor); 
+               diva_current->resources.pci.qoffset = (a->xdi_adapter.MemorySize >> factor);
        }
 
        /*
-          Set up hardware related pointers
-        */
+         Set up hardware related pointers
+       */
        a->xdi_adapter.cfg = (void *) (unsigned long) a->resources.pci.bar[0];  /* BAR0 CONFIG */
        a->xdi_adapter.port = (void *) (unsigned long) a->resources.pci.bar[1]; /* BAR1        */
        a->xdi_adapter.ctlReg = (void *) (unsigned long) a->resources.pci.bar[3];       /* BAR3 CNTRL  */
@@ -415,21 +415,21 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
                Slave->sdram_bar = a->xdi_adapter.sdram_bar;
                if (i) {
                        Slave->serialNo = ((dword) (Slave->ControllerNumber << 24)) |
-                                       a->xdi_adapter.serialNo;
+                               a->xdi_adapter.serialNo;
                        Slave->cardType = a->xdi_adapter.cardType;
                }
        }
 
        /*
-          reset contains the base address for the PLX 9054 register set
-        */
+         reset contains the base address for the PLX 9054 register set
+       */
        p = DIVA_OS_MEM_ATTACH_RESET(&a->xdi_adapter);
        WRITE_BYTE(&p[PLX9054_INTCSR], 0x00);   /* disable PCI interrupts */
        DIVA_OS_MEM_DETACH_RESET(&a->xdi_adapter, p);
 
        /*
-          Set IRQ handler
-        */
+         Set IRQ handler
+       */
        a->xdi_adapter.irq_info.irq_nr = a->resources.pci.irq;
        sprintf(a->xdi_adapter.irq_info.irq_name, "DIVA 4BRI %ld",
                (long) a->xdi_adapter.serialNo);
@@ -447,8 +447,8 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
        a->xdi_adapter.irq_info.registered = 1;
 
        /*
-          Add three slave adapters
-        */
+         Add three slave adapters
+       */
        if (tasks > 1) {
                diva_add_slave_adapter(adapter_list[1]);
                diva_add_slave_adapter(adapter_list[2]);
@@ -466,33 +466,33 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
 **  this is guaranteed by design: cleanup callback is set
 **  by master adapter only
 */
-static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
+static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t *a)
 {
        int bar;
 
        /*
-          Stop adapter if running
-        */
+         Stop adapter if running
+       */
        if (a->xdi_adapter.Initialized) {
                diva_4bri_stop_adapter(a);
        }
 
        /*
-          Remove IRQ handler
-        */
+         Remove IRQ handler
+       */
        if (a->xdi_adapter.irq_info.registered) {
                diva_os_remove_irq(a, a->xdi_adapter.irq_info.irq_nr);
        }
        a->xdi_adapter.irq_info.registered = 0;
 
        /*
-          Free DPC's and spin locks on all adapters
-        */
+         Free DPC's and spin locks on all adapters
+       */
        diva_4bri_cleanup_slave_adapters(a);
 
        /*
-          Unmap all BARS
-        */
+         Unmap all BARS
+       */
        for (bar = 0; bar < 4; bar++) {
                if (bar != 1) {
                        if (a->resources.pci.bar[bar]
@@ -505,8 +505,8 @@ static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        }
 
        /*
-          Unregister I/O
-        */
+         Unregister I/O
+       */
        if (a->resources.pci.bar[1] && a->resources.pci.addr[1]) {
                diva_os_register_io_port(a, 0, a->resources.pci.bar[1],
                                         _4bri_is_rev_2_card(a->
@@ -526,7 +526,7 @@ static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        return (0);
 }
 
-static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a)
+static int _4bri_get_serial_number(diva_os_xdi_adapter_t *a)
 {
        dword data[64];
        dword serNo;
@@ -551,13 +551,13 @@ static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a)
                }
                if (j >= 5) {
                        DBG_ERR(("EEPROM[%d] read failed (0x%x)", i * 4, addr))
-                       return (0);
+                               return (0);
                }
                PCIread(Bus, Slot, 0x50, &data[i], sizeof(data[i]), hdev);
        }
        DBG_BLK(((char *) &data[0], sizeof(data)))
 
-       serNo = data[32];
+               serNo = data[32];
        if (serNo == 0 || serNo == 0xffffffff)
                serNo = data[63];
 
@@ -572,13 +572,13 @@ static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a)
 
        DBG_REG(("Serial No.          : %ld", a->xdi_adapter.serialNo))
 
-       return (serNo);
+               return (serNo);
 }
 
 /*
 **  Release resources of slave adapters
 */
-static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t * a)
+static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t *a)
 {
        diva_os_xdi_adapter_t *adapter_list[4];
        diva_os_xdi_adapter_t *diva_current;
@@ -625,24 +625,24 @@ static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t * a)
 
 static int
 diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
-                       diva_xdi_um_cfg_cmd_t * cmd, int length)
+                       diva_xdi_um_cfg_cmd_t *cmd, int length)
 {
        int ret = -1;
 
        if (cmd->adapter != a->controller) {
                DBG_ERR(("A: 4bri_cmd, invalid controller=%d != %d",
                         cmd->adapter, a->controller))
-               return (-1);
+                       return (-1);
        }
 
        switch (cmd->command) {
        case DIVA_XDI_UM_CMD_GET_CARD_ORDINAL:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        *(dword *) a->xdi_mbox.data =
-                           (dword) a->CardOrdinal;
+                               (dword) a->CardOrdinal;
                        a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY;
                        ret = 0;
                }
@@ -651,10 +651,10 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_SERIAL_NR:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        *(dword *) a->xdi_mbox.data =
-                           (dword) a->xdi_adapter.serialNo;
+                               (dword) a->xdi_adapter.serialNo;
                        a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY;
                        ret = 0;
                }
@@ -663,11 +663,11 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_PCI_HW_CONFIG:
                if (!a->xdi_adapter.ControllerNumber) {
                        /*
-                          Only master adapter can access hardware config
-                        */
+                         Only master adapter can access hardware config
+                       */
                        a->xdi_mbox.data_length = sizeof(dword) * 9;
                        a->xdi_mbox.data =
-                           diva_os_malloc(0, a->xdi_mbox.data_length);
+                               diva_os_malloc(0, a->xdi_mbox.data_length);
                        if (a->xdi_mbox.data) {
                                int i;
                                dword *data = (dword *) a->xdi_mbox.data;
@@ -686,7 +686,7 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
                if (!a->xdi_adapter.ControllerNumber) {
                        a->xdi_mbox.data_length = sizeof(dword);
                        a->xdi_mbox.data =
-                           diva_os_malloc(0, a->xdi_mbox.data_length);
+                               diva_os_malloc(0, a->xdi_mbox.data_length);
                        if (a->xdi_mbox.data) {
                                dword *data = (dword *) a->xdi_mbox.data;
                                if (!a->xdi_adapter.ram
@@ -709,11 +709,11 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_WRITE_FPGA:
                if (!a->xdi_adapter.ControllerNumber) {
                        ret =
-                           diva_4bri_write_fpga_image(a,
-                                                      (byte *) & cmd[1],
-                                                      cmd->command_data.
-                                                      write_fpga.
-                                                      image_length);
+                               diva_4bri_write_fpga_image(a,
+                                                          (byte *)&cmd[1],
+                                                          cmd->command_data.
+                                                          write_fpga.
+                                                          image_length);
                }
                break;
 
@@ -754,12 +754,12 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_SET_PROTOCOL_FEATURES:
                if (!a->xdi_adapter.ControllerNumber) {
                        a->xdi_adapter.features =
-                           cmd->command_data.features.features;
+                               cmd->command_data.features.features;
                        a->xdi_adapter.a.protocol_capabilities =
-                           a->xdi_adapter.features;
+                               a->xdi_adapter.features;
                        DBG_TRC(("Set raw protocol features (%08x)",
                                 a->xdi_adapter.features))
-                       ret = 0;
+                               ret = 0;
                }
                break;
 
@@ -777,16 +777,16 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
                if (!a->xdi_adapter.ControllerNumber
                    && a->xdi_adapter.Address) {
                        if (
-                           (a->xdi_mbox.data_length =
-                            cmd->command_data.read_sdram.length)) {
+                               (a->xdi_mbox.data_length =
+                                cmd->command_data.read_sdram.length)) {
                                if (
-                                   (a->xdi_mbox.data_length +
-                                    cmd->command_data.read_sdram.offset) <
-                                   a->xdi_adapter.MemorySize) {
+                                       (a->xdi_mbox.data_length +
+                                        cmd->command_data.read_sdram.offset) <
+                                       a->xdi_adapter.MemorySize) {
                                        a->xdi_mbox.data =
-                                           diva_os_malloc(0,
-                                                          a->xdi_mbox.
-                                                          data_length);
+                                               diva_os_malloc(0,
+                                                              a->xdi_mbox.
+                                                              data_length);
                                        if (a->xdi_mbox.data) {
                                                byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(&a->xdi_adapter);
                                                byte __iomem *src = p;
@@ -810,7 +810,7 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        default:
                DBG_ERR(("A: A(%d) invalid cmd=%d", a->controller,
                         cmd->command))
-       }
+                       }
 
        return (ret);
 }
@@ -838,7 +838,7 @@ void diva_os_set_qBri2_functions(PISDN_ADAPTER IoAdapter)
 }
 
 static int
-diva_4bri_write_fpga_image(diva_os_xdi_adapter_t * a, byte * data,
+diva_4bri_write_fpga_image(diva_os_xdi_adapter_t *a, byte *data,
                           dword length)
 {
        int ret;
@@ -865,12 +865,12 @@ static int diva_4bri_reset_adapter(PISDN_ADAPTER IoAdapter)
        if (IoAdapter->Initialized) {
                DBG_ERR(("A: A(%d) can't reset 4BRI adapter - please stop first",
                         IoAdapter->ANum))
-               return (-1);
+                       return (-1);
        }
 
        /*
-          Forget all entities on all adapters
-        */
+         Forget all entities on all adapters
+       */
        for (i = 0; ((i < IoAdapter->tasks) && IoAdapter->QuadroList); i++) {
                Slave = IoAdapter->QuadroList->QuadroAdapter[i];
                Slave->e_count = 0;
@@ -908,7 +908,7 @@ static int diva_4bri_reset_adapter(PISDN_ADAPTER IoAdapter)
 static int
 diva_4bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
                            dword address,
-                           const byte * data, dword length, dword limit)
+                           const byte *data, dword length, dword limit)
 {
        byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
        byte __iomem *mem = p;
@@ -917,7 +917,7 @@ diva_4bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
                DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, p);
                DBG_ERR(("A: A(%d) write 4BRI address=0x%08lx",
                         IoAdapter->ANum, address + length))
-               return (-1);
+                       return (-1);
        }
        mem += address;
 
@@ -939,14 +939,14 @@ diva_4bri_start_adapter(PISDN_ADAPTER IoAdapter,
        byte __iomem *p;
 
        /*
-          start adapter
-        */
+         start adapter
+       */
        start_qBri_hardware(IoAdapter);
 
        p = DIVA_OS_MEM_ATTACH_RAM(IoAdapter);
        /*
-          wait for signature in shared memory (max. 3 seconds)
-        */
+         wait for signature in shared memory (max. 3 seconds)
+       */
        signature = (volatile word __iomem *) (&p[0x1E]);
 
        for (i = 0; i < 300; ++i) {
@@ -954,23 +954,23 @@ diva_4bri_start_adapter(PISDN_ADAPTER IoAdapter,
                if (READ_WORD(&signature[0]) == 0x4447) {
                        DBG_TRC(("Protocol startup time %d.%02d seconds",
                                 (i / 100), (i % 100)))
-                       started = 1;
+                               started = 1;
                        break;
                }
        }
 
        for (i = 1; i < IoAdapter->tasks; i++) {
                IoAdapter->QuadroList->QuadroAdapter[i]->features =
-                   IoAdapter->features;
+                       IoAdapter->features;
                IoAdapter->QuadroList->QuadroAdapter[i]->a.
-                   protocol_capabilities = IoAdapter->features;
+                       protocol_capabilities = IoAdapter->features;
        }
 
        if (!started) {
                DBG_FTL(("%s: Adapter selftest failed, signature=%04x",
                         IoAdapter->Properties.Name,
                         READ_WORD(&signature[0])))
-               DIVA_OS_MEM_DETACH_RAM(IoAdapter, p);
+                       DIVA_OS_MEM_DETACH_RAM(IoAdapter, p);
                (*(IoAdapter->trapFnc)) (IoAdapter);
                IoAdapter->stop(IoAdapter);
                return (-1);
@@ -985,9 +985,9 @@ diva_4bri_start_adapter(PISDN_ADAPTER IoAdapter,
        if (check_qBri_interrupt(IoAdapter)) {
                DBG_ERR(("A: A(%d) interrupt test failed",
                         IoAdapter->ANum))
-               for (i = 0; i < IoAdapter->tasks; i++) {
-                       IoAdapter->QuadroList->QuadroAdapter[i]->Initialized = 0;
-               }
+                       for (i = 0; i < IoAdapter->tasks; i++) {
+                               IoAdapter->QuadroList->QuadroAdapter[i]->Initialized = 0;
+                       }
                IoAdapter->stop(IoAdapter);
                return (-1);
        }
@@ -999,7 +999,7 @@ diva_4bri_start_adapter(PISDN_ADAPTER IoAdapter,
                DBG_LOG(("A(%d) %s adapter successfully started",
                         IoAdapter->QuadroList->QuadroAdapter[i]->ANum,
                         (IoAdapter->tasks == 1) ? "BRI 2.0" : "4BRI"))
-               diva_xdi_didd_register_adapter(IoAdapter->QuadroList->QuadroAdapter[i]->ANum);
+                       diva_xdi_didd_register_adapter(IoAdapter->QuadroList->QuadroAdapter[i]->ANum);
                IoAdapter->QuadroList->QuadroAdapter[i]->Properties.Features = (word) features;
        }
 
@@ -1022,8 +1022,8 @@ static int check_qBri_interrupt(PISDN_ADAPTER IoAdapter)
        WRITE_BYTE(&p[PLX9054_INTCSR], PLX9054_INT_ENABLE);
        DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
        /*
-          interrupt test
-        */
+         interrupt test
+       */
        a->ReadyInt = 1;
        a->ram_out(a, &PR_RAM->ReadyInt, 1);
 
@@ -1034,14 +1034,14 @@ static int check_qBri_interrupt(PISDN_ADAPTER IoAdapter)
        dword volatile __iomem *qBriIrq;
        byte __iomem *p;
        /*
-          Reset on-board interrupt register
-        */
+         Reset on-board interrupt register
+       */
        IoAdapter->IrqCount = 0;
        p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        qBriIrq = (dword volatile __iomem *) (&p[_4bri_is_rev_2_card
-                                      (IoAdapter->
-                                       cardType) ? (MQ2_BREG_IRQ_TEST)
-                                      : (MQ_BREG_IRQ_TEST)]);
+                                                (IoAdapter->
+                                                 cardType) ? (MQ2_BREG_IRQ_TEST)
+                                                : (MQ_BREG_IRQ_TEST)]);
 
        WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
@@ -1056,13 +1056,13 @@ static int check_qBri_interrupt(PISDN_ADAPTER IoAdapter)
 #endif                         /* SUPPORT_INTERRUPT_TEST_ON_4BRI */
 }
 
-static void diva_4bri_clear_interrupts(diva_os_xdi_adapter_t * a)
+static void diva_4bri_clear_interrupts(diva_os_xdi_adapter_t *a)
 {
        PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
 
        /*
-          clear any pending interrupt
-        */
+         clear any pending interrupt
+       */
        IoAdapter->disIrq(IoAdapter);
 
        IoAdapter->tst_irq(&IoAdapter->a);
@@ -1070,13 +1070,13 @@ static void diva_4bri_clear_interrupts(diva_os_xdi_adapter_t * a)
        IoAdapter->tst_irq(&IoAdapter->a);
 
        /*
-          kill pending dpcs
-        */
+         kill pending dpcs
+       */
        diva_os_cancel_soft_isr(&IoAdapter->req_soft_isr);
        diva_os_cancel_soft_isr(&IoAdapter->isr_soft_isr);
 }
 
-static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a)
+static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t *a)
 {
        PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
        int i;
@@ -1088,7 +1088,7 @@ static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a)
        if (!IoAdapter->Initialized) {
                DBG_ERR(("A: A(%d) can't stop PRI adapter - not running",
                         IoAdapter->ANum))
-               return (-1);    /* nothing to stop */
+                       return (-1);    /* nothing to stop */
        }
 
        for (i = 0; i < IoAdapter->tasks; i++) {
@@ -1096,8 +1096,8 @@ static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a)
        }
 
        /*
-          Disconnect Adapters from DIDD
-        */
+         Disconnect Adapters from DIDD
+       */
        for (i = 0; i < IoAdapter->tasks; i++) {
                diva_xdi_didd_remove_adapter(IoAdapter->QuadroList->QuadroAdapter[i]->ANum);
        }
@@ -1105,8 +1105,8 @@ static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a)
        i = 100;
 
        /*
-          Stop interrupts
-        */
+         Stop interrupts
+       */
        a->clear_interrupts_proc = diva_4bri_clear_interrupts;
        IoAdapter->a.ReadyInt = 1;
        IoAdapter->a.ram_inc(&IoAdapter->a, &PR_RAM->ReadyInt);
@@ -1119,12 +1119,12 @@ static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a)
                a->clear_interrupts_proc = NULL;
                DBG_ERR(("A: A(%d) no final interrupt from 4BRI adapter",
                         IoAdapter->ANum))
-       }
+                       }
        IoAdapter->a.ReadyInt = 0;
 
        /*
-          Stop and reset adapter
-        */
+         Stop and reset adapter
+       */
        IoAdapter->stop(IoAdapter);
 
        return (0);
index 665f0af..7225327 100644 (file)
@@ -3,6 +3,6 @@
 #ifndef __DIVA_OS_4_BRI_H__
 #define __DIVA_OS_4_BRI_H__
 
-int diva_4bri_init_card(diva_os_xdi_adapter_t * a);
+int diva_4bri_init_card(diva_os_xdi_adapter_t *a);
 
 #endif
index 08f0199..20f2653 100644 (file)
@@ -23,7 +23,7 @@
 */
 extern void prepare_maestra_functions(PISDN_ADAPTER IoAdapter);
 extern void diva_xdi_display_adapter_features(int card);
-extern int diva_card_read_xlog(diva_os_xdi_adapter_t * a);
+extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
 
 /*
 **  LOCALS
@@ -33,20 +33,20 @@ static int bri_bar_length[3] = {
        0x80,
        0x20
 };
-static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a);
-static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a);
+static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t *a);
+static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t *a);
 static int diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
-                                 diva_xdi_um_cfg_cmd_t * cmd, int length);
-static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a);
+                                 diva_xdi_um_cfg_cmd_t *cmd, int length);
+static int diva_bri_reregister_io(diva_os_xdi_adapter_t *a);
 static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter);
 static int diva_bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
                                      dword address,
-                                     const byte * data, dword length);
+                                     const byte *data, dword length);
 static int diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
                                  dword start_address, dword features);
-static int diva_bri_stop_adapter(diva_os_xdi_adapter_t * a);
+static int diva_bri_stop_adapter(diva_os_xdi_adapter_t *a);
 
-static void diva_bri_set_addresses(diva_os_xdi_adapter_t * a)
+static void diva_bri_set_addresses(diva_os_xdi_adapter_t *a)
 {
        a->resources.pci.mem_type_id[MEM_TYPE_RAM] = 0;
        a->resources.pci.mem_type_id[MEM_TYPE_CFG] = 1;
@@ -54,7 +54,7 @@ static void diva_bri_set_addresses(diva_os_xdi_adapter_t * a)
        a->resources.pci.mem_type_id[MEM_TYPE_RESET] = 1;
        a->resources.pci.mem_type_id[MEM_TYPE_PORT] = 2;
        a->resources.pci.mem_type_id[MEM_TYPE_CTLREG] = 2;
-       
+
        a->xdi_adapter.ram = a->resources.pci.addr[0];
        a->xdi_adapter.cfg = a->resources.pci.addr[1];
        a->xdi_adapter.Address = a->resources.pci.addr[2];
@@ -72,7 +72,7 @@ static void diva_bri_set_addresses(diva_os_xdi_adapter_t * a)
 **  BAR1 - I/O Addr  - 0x80
 **  BAR2 - I/O Addr  - 0x20
 */
-int diva_bri_init_card(diva_os_xdi_adapter_t * a)
+int diva_bri_init_card(diva_os_xdi_adapter_t *a)
 {
        int bar;
        dword bar2 = 0, bar2_length = 0xffffffff;
@@ -82,75 +82,75 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
        byte __iomem *p;
 
        /*
-          Set properties
-        */
+         Set properties
+       */
        a->xdi_adapter.Properties = CardProperties[a->CardOrdinal];
        DBG_LOG(("Load %s", a->xdi_adapter.Properties.Name))
 
-           /*
-              Get resources
-            */
-           for (bar = 0; bar < 3; bar++) {
-               a->resources.pci.bar[bar] =
-                   divasa_get_pci_bar(a->resources.pci.bus,
-                                      a->resources.pci.func, bar,
-                                      a->resources.pci.hdev);
-               if (!a->resources.pci.bar[bar]) {
-                       DBG_ERR(("A: can't get BAR[%d]", bar))
-                       return (-1);
+               /*
+                 Get resources
+               */
+               for (bar = 0; bar < 3; bar++) {
+                       a->resources.pci.bar[bar] =
+                               divasa_get_pci_bar(a->resources.pci.bus,
+                                                  a->resources.pci.func, bar,
+                                                  a->resources.pci.hdev);
+                       if (!a->resources.pci.bar[bar]) {
+                               DBG_ERR(("A: can't get BAR[%d]", bar))
+                                       return (-1);
+                       }
                }
-       }
 
        a->resources.pci.irq =
-           (byte) divasa_get_pci_irq(a->resources.pci.bus,
-                                     a->resources.pci.func,
-                                     a->resources.pci.hdev);
+               (byte) divasa_get_pci_irq(a->resources.pci.bus,
+                                         a->resources.pci.func,
+                                         a->resources.pci.hdev);
        if (!a->resources.pci.irq) {
                DBG_ERR(("A: invalid irq"));
                return (-1);
        }
 
        /*
-          Get length of I/O bar 2 - it is different by older
-          EEPROM version
-        */
+         Get length of I/O bar 2 - it is different by older
+         EEPROM version
+       */
        Bus = a->resources.pci.bus;
        Slot = a->resources.pci.func;
        hdev = a->resources.pci.hdev;
 
        /*
-          Get plain original values of the BAR2 CDM registers
-        */
+         Get plain original values of the BAR2 CDM registers
+       */
        PCIread(Bus, Slot, 0x18, &bar2, sizeof(bar2), hdev);
        PCIread(Bus, Slot, 0x04, &cmd_org, sizeof(cmd_org), hdev);
        /*
-          Disable device and get BAR2 length
-        */
+         Disable device and get BAR2 length
+       */
        PCIwrite(Bus, Slot, 0x04, &cmd, sizeof(cmd), hdev);
        PCIwrite(Bus, Slot, 0x18, &bar2_length, sizeof(bar2_length), hdev);
        PCIread(Bus, Slot, 0x18, &bar2_length, sizeof(bar2_length), hdev);
        /*
-          Restore BAR2 and CMD registers
-        */
+         Restore BAR2 and CMD registers
+       */
        PCIwrite(Bus, Slot, 0x18, &bar2, sizeof(bar2), hdev);
        PCIwrite(Bus, Slot, 0x04, &cmd_org, sizeof(cmd_org), hdev);
 
        /*
-          Calculate BAR2 length
-        */
+         Calculate BAR2 length
+       */
        bar2_length = (~(bar2_length & ~7)) + 1;
        DBG_LOG(("BAR[2] length=%lx", bar2_length))
 
-           /*
-              Map and register resources
-            */
-           if (!(a->resources.pci.addr[0] =
-                divasa_remap_pci_bar(a, 0, a->resources.pci.bar[0],
-                                     bri_bar_length[0]))) {
-               DBG_ERR(("A: BRI, can't map BAR[0]"))
-               diva_bri_cleanup_adapter(a);
-               return (-1);
-       }
+               /*
+                 Map and register resources
+               */
+               if (!(a->resources.pci.addr[0] =
+                     divasa_remap_pci_bar(a, 0, a->resources.pci.bar[0],
+                                          bri_bar_length[0]))) {
+                       DBG_ERR(("A: BRI, can't map BAR[0]"))
+                               diva_bri_cleanup_adapter(a);
+                       return (-1);
+               }
 
        sprintf(&a->port_name[0], "BRI %02x:%02x",
                a->resources.pci.bus, a->resources.pci.func);
@@ -158,7 +158,7 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
        if (diva_os_register_io_port(a, 1, a->resources.pci.bar[1],
                                     bri_bar_length[1], &a->port_name[0], 1)) {
                DBG_ERR(("A: BRI, can't register BAR[1]"))
-               diva_bri_cleanup_adapter(a);
+                       diva_bri_cleanup_adapter(a);
                return (-1);
        }
        a->resources.pci.addr[1] = (void *) (unsigned long) a->resources.pci.bar[1];
@@ -167,33 +167,33 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
        if (diva_os_register_io_port(a, 1, a->resources.pci.bar[2],
                                     bar2_length, &a->port_name[0], 2)) {
                DBG_ERR(("A: BRI, can't register BAR[2]"))
-               diva_bri_cleanup_adapter(a);
+                       diva_bri_cleanup_adapter(a);
                return (-1);
        }
        a->resources.pci.addr[2] = (void *) (unsigned long) a->resources.pci.bar[2];
        a->resources.pci.length[2] = bar2_length;
 
        /*
-          Set all memory areas
-        */
+         Set all memory areas
+       */
        diva_bri_set_addresses(a);
 
        /*
-          Get Serial Number
-        */
+         Get Serial Number
+       */
        a->xdi_adapter.serialNo = diva_bri_get_serial_number(a);
 
        /*
-          Register I/O ports with correct name now
-        */
+         Register I/O ports with correct name now
+       */
        if (diva_bri_reregister_io(a)) {
                diva_bri_cleanup_adapter(a);
                return (-1);
        }
 
        /*
-          Initialize OS dependent objects
-        */
+         Initialize OS dependent objects
+       */
        if (diva_os_initialize_spin_lock
            (&a->xdi_adapter.isr_spin_lock, "isr")) {
                diva_bri_cleanup_adapter(a);
@@ -213,13 +213,13 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
                return (-1);
        }
        /*
-          Do not initialize second DPC - only one thread will be created
-        */
+         Do not initialize second DPC - only one thread will be created
+       */
        a->xdi_adapter.isr_soft_isr.object = a->xdi_adapter.req_soft_isr.object;
 
        /*
-          Create entity table
-        */
+         Create entity table
+       */
        a->xdi_adapter.Channels = CardProperties[a->CardOrdinal].Channels;
        a->xdi_adapter.e_max = CardProperties[a->CardOrdinal].E_info;
        a->xdi_adapter.e_tbl = diva_os_malloc(0, a->xdi_adapter.e_max * sizeof(E_INFO));
@@ -230,8 +230,8 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
        memset(a->xdi_adapter.e_tbl, 0x00, a->xdi_adapter.e_max * sizeof(E_INFO));
 
        /*
-          Set up interface
-        */
+         Set up interface
+       */
        a->xdi_adapter.a.io = &a->xdi_adapter;
        a->xdi_adapter.DIRequest = request;
        a->interface.cleanup_adapter_proc = diva_bri_cleanup_adapter;
@@ -246,8 +246,8 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
        a->dsp_mask = 0x00000003;
 
        /*
-          Set IRQ handler
-        */
+         Set IRQ handler
+       */
        a->xdi_adapter.irq_info.irq_nr = a->resources.pci.irq;
        sprintf(a->xdi_adapter.irq_info.irq_name, "DIVA BRI %ld",
                (long) a->xdi_adapter.serialNo);
@@ -265,7 +265,7 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
 }
 
 
-static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
+static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t *a)
 {
        int i;
 
@@ -274,8 +274,8 @@ static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        }
 
        /*
-          Remove ISR Handler
-        */
+         Remove ISR Handler
+       */
        if (a->xdi_adapter.irq_info.registered) {
                diva_os_remove_irq(a, a->xdi_adapter.irq_info.irq_nr);
        }
@@ -300,8 +300,8 @@ static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        }
 
        /*
-          Free OS objects
-        */
+         Free OS objects
+       */
        diva_os_cancel_soft_isr(&a->xdi_adapter.req_soft_isr);
        diva_os_cancel_soft_isr(&a->xdi_adapter.isr_soft_isr);
 
@@ -312,8 +312,8 @@ static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        diva_os_destroy_spin_lock(&a->xdi_adapter.data_spin_lock, "rm");
 
        /*
-          Free memory
-        */
+         Free memory
+       */
        if (a->xdi_adapter.e_tbl) {
                diva_os_free(0, a->xdi_adapter.e_tbl);
                a->xdi_adapter.e_tbl = NULL;
@@ -329,7 +329,7 @@ void diva_os_prepare_maestra_functions(PISDN_ADAPTER IoAdapter)
 /*
 **  Get serial number
 */
-static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a)
+static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t *a)
 {
        dword serNo = 0;
        byte __iomem *confIO;
@@ -345,7 +345,7 @@ static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a)
        if ((serNo == 0) || (serNo == 0xFFFFFFFF)) {
                DBG_FTL(("W: BRI use BAR[0] to get card serial number"))
 
-               confMem = (word __iomem *)DIVA_OS_MEM_ATTACH_RAM(&a->xdi_adapter);
+                       confMem = (word __iomem *)DIVA_OS_MEM_ATTACH_RAM(&a->xdi_adapter);
                serHi = (word) (READ_WORD(&confMem[0x11]) & 0x0FFF);
                serLo = (word) (READ_WORD(&confMem[0x13]) & 0x0FFF);
                serNo = (((dword) serHi) << 16) | ((dword) serLo);
@@ -354,14 +354,14 @@ static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a)
 
        DBG_LOG(("Serial Number=%ld", serNo))
 
-       return (serNo);
+               return (serNo);
 }
 
 /*
 **  Unregister I/O and register it with new name,
 **  based on Serial Number
 */
-static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a)
+static int diva_bri_reregister_io(diva_os_xdi_adapter_t *a)
 {
        int i;
 
@@ -380,10 +380,10 @@ static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a)
                                             a->resources.pci.length[i],
                                             &a->port_name[0], i)) {
                        DBG_ERR(("A: failed to reregister BAR[%d]", i))
-                       return (-1);
+                               return (-1);
                }
                a->resources.pci.addr[i] =
-                   (void *) (unsigned long) a->resources.pci.bar[i];
+                       (void *) (unsigned long) a->resources.pci.bar[i];
        }
 
        return (0);
@@ -394,24 +394,24 @@ static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a)
 */
 static int
 diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
-                      diva_xdi_um_cfg_cmd_t * cmd, int length)
+                      diva_xdi_um_cfg_cmd_t *cmd, int length)
 {
        int ret = -1;
 
        if (cmd->adapter != a->controller) {
                DBG_ERR(("A: pri_cmd, invalid controller=%d != %d",
                         cmd->adapter, a->controller))
-               return (-1);
+                       return (-1);
        }
 
        switch (cmd->command) {
        case DIVA_XDI_UM_CMD_GET_CARD_ORDINAL:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        *(dword *) a->xdi_mbox.data =
-                           (dword) a->CardOrdinal;
+                               (dword) a->CardOrdinal;
                        a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY;
                        ret = 0;
                }
@@ -420,10 +420,10 @@ diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_SERIAL_NR:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        *(dword *) a->xdi_mbox.data =
-                           (dword) a->xdi_adapter.serialNo;
+                               (dword) a->xdi_adapter.serialNo;
                        a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY;
                        ret = 0;
                }
@@ -432,7 +432,7 @@ diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_PCI_HW_CONFIG:
                a->xdi_mbox.data_length = sizeof(dword) * 9;
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        int i;
                        dword *data = (dword *) a->xdi_mbox.data;
@@ -449,7 +449,7 @@ diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_CARD_STATE:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        dword *data = (dword *) a->xdi_mbox.data;
                        if (!a->xdi_adapter.port) {
@@ -474,7 +474,7 @@ diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
                ret = diva_bri_write_sdram_block(&a->xdi_adapter,
                                                 cmd->command_data.
                                                 write_sdram.offset,
-                                                (byte *) & cmd[1],
+                                                (byte *)&cmd[1],
                                                 cmd->command_data.
                                                 write_sdram.length);
                break;
@@ -489,9 +489,9 @@ diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
 
        case DIVA_XDI_UM_CMD_SET_PROTOCOL_FEATURES:
                a->xdi_adapter.features =
-                   cmd->command_data.features.features;
+                       cmd->command_data.features.features;
                a->xdi_adapter.a.protocol_capabilities =
-                   a->xdi_adapter.features;
+                       a->xdi_adapter.features;
                DBG_TRC(
                        ("Set raw protocol features (%08x)",
                         a->xdi_adapter.features)) ret = 0;
@@ -530,18 +530,18 @@ static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter)
        diva_os_wait(100);
        Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
        addrHi = Port +
-           ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
+               ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
        addrLo = Port + ADDR;
        ioaddr = Port + DATA;
        /*
-          recover
-        */
+         recover
+       */
        outpp(addrHi, (byte) 0);
        outppw(addrLo, (word) 0);
        outppw(ioaddr, (word) 0);
        /*
-          clear shared memory
-        */
+         clear shared memory
+       */
        outpp(addrHi,
              (byte) (
                      (IoAdapter->MemoryBase + IoAdapter->MemorySize -
@@ -551,8 +551,8 @@ static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter)
        diva_os_wait(100);
 
        /*
-          clear signature
-        */
+         clear signature
+       */
        outpp(addrHi,
              (byte) (
                      (IoAdapter->MemoryBase + IoAdapter->MemorySize -
@@ -568,8 +568,8 @@ static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter)
        DIVA_OS_MEM_DETACH_PORT(IoAdapter, Port);
 
        /*
-          Forget all outstanding entities
-        */
+         Forget all outstanding entities
+       */
        IoAdapter->e_count = 0;
        if (IoAdapter->e_tbl) {
                memset(IoAdapter->e_tbl, 0x00,
@@ -602,7 +602,7 @@ static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter)
 
 static int
 diva_bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
-                          dword address, const byte * data, dword length)
+                          dword address, const byte *data, dword length)
 {
        byte __iomem *addrHi, *addrLo, *ioaddr;
        byte __iomem *Port;
@@ -613,7 +613,7 @@ diva_bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
 
        Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
        addrHi = Port +
-           ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
+               ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
        addrLo = Port + ADDR;
        ioaddr = Port + DATA;
 
@@ -651,9 +651,9 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
        sprintf(IoAdapter->Name, "A(%d)", (int) IoAdapter->ANum);
        DBG_LOG(("A(%d) start BRI", IoAdapter->ANum))
 
-       Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
+               Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
        addrHi = Port +
-           ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
+               ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
        addrLo = Port + ADDR;
        ioaddr = Port + DATA;
 
@@ -666,20 +666,20 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
        DIVA_OS_MEM_DETACH_PORT(IoAdapter, Port);
 
        /*
-          start the protocol code
-        */
+         start the protocol code
+       */
        Port = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        outpp(Port, 0x08);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, Port);
 
        Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
        addrHi = Port +
-           ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
+               ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
        addrLo = Port + ADDR;
        ioaddr = Port + DATA;
        /*
-          wait for signature (max. 3 seconds)
-        */
+         wait for signature (max. 3 seconds)
+       */
        for (i = 0; i < 300; ++i) {
                diva_os_wait(10);
                outpp(addrHi,
@@ -693,7 +693,7 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
                        DBG_LOG(
                                ("Protocol startup time %d.%02d seconds",
                                 (i / 100), (i % 100)))
-                       started = 1;
+                               started = 1;
                        break;
                }
        }
@@ -703,15 +703,15 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
                DBG_FTL(("A: A(%d) %s: Adapter selftest failed 0x%04X",
                         IoAdapter->ANum, IoAdapter->Properties.Name,
                         test))
-               (*(IoAdapter->trapFnc)) (IoAdapter);
+                       (*(IoAdapter->trapFnc)) (IoAdapter);
                return (-1);
        }
 
        IoAdapter->Initialized = 1;
 
        /*
-          Check Interrupt
-        */
+         Check Interrupt
+       */
        IoAdapter->IrqCount = 0;
        a->ReadyInt = 1;
 
@@ -729,7 +729,7 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
                DBG_ERR(
                        ("A: A(%d) interrupt test failed",
                         IoAdapter->ANum))
-               IoAdapter->Initialized = 0;
+                       IoAdapter->Initialized = 0;
                IoAdapter->stop(IoAdapter);
                return (-1);
        }
@@ -737,21 +737,21 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
        IoAdapter->Properties.Features = (word) features;
        diva_xdi_display_adapter_features(IoAdapter->ANum);
        DBG_LOG(("A(%d) BRI adapter successfully started", IoAdapter->ANum))
-           /*
-              Register with DIDD
-            */
-       diva_xdi_didd_register_adapter(IoAdapter->ANum);
+               /*
+                 Register with DIDD
+               */
+               diva_xdi_didd_register_adapter(IoAdapter->ANum);
 
        return (0);
 }
 
-static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t * a)
+static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t *a)
 {
        PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
 
        /*
-          clear any pending interrupt
-        */
+         clear any pending interrupt
+       */
        IoAdapter->disIrq(IoAdapter);
 
        IoAdapter->tst_irq(&IoAdapter->a);
@@ -759,8 +759,8 @@ static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t * a)
        IoAdapter->tst_irq(&IoAdapter->a);
 
        /*
-          kill pending dpcs
-        */
+         kill pending dpcs
+       */
        diva_os_cancel_soft_isr(&IoAdapter->req_soft_isr);
        diva_os_cancel_soft_isr(&IoAdapter->isr_soft_isr);
 }
@@ -768,7 +768,7 @@ static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t * a)
 /*
 **  Stop card
 */
-static int diva_bri_stop_adapter(diva_os_xdi_adapter_t * a)
+static int diva_bri_stop_adapter(diva_os_xdi_adapter_t *a)
 {
        PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
        int i = 100;
@@ -779,18 +779,18 @@ static int diva_bri_stop_adapter(diva_os_xdi_adapter_t * a)
        if (!IoAdapter->Initialized) {
                DBG_ERR(("A: A(%d) can't stop BRI adapter - not running",
                         IoAdapter->ANum))
-               return (-1);    /* nothing to stop */
+                       return (-1);    /* nothing to stop */
        }
        IoAdapter->Initialized = 0;
 
        /*
-          Disconnect Adapter from DIDD
-        */
+         Disconnect Adapter from DIDD
+       */
        diva_xdi_didd_remove_adapter(IoAdapter->ANum);
 
        /*
-          Stop interrupts
-        */
+         Stop interrupts
+       */
        a->clear_interrupts_proc = diva_bri_clear_interrupts;
        IoAdapter->a.ReadyInt = 1;
        IoAdapter->a.ram_inc(&IoAdapter->a, &PR_RAM->ReadyInt);
@@ -802,12 +802,12 @@ static int diva_bri_stop_adapter(diva_os_xdi_adapter_t * a)
                a->clear_interrupts_proc = NULL;
                DBG_ERR(("A: A(%d) no final interrupt from BRI adapter",
                         IoAdapter->ANum))
-       }
+                       }
        IoAdapter->a.ReadyInt = 0;
 
        /*
-          Stop and reset adapter
-        */
+         Stop and reset adapter
+       */
        IoAdapter->stop(IoAdapter);
 
        return (0);
index a54f0ce..02e7456 100644 (file)
@@ -3,6 +3,6 @@
 #ifndef __DIVA_OS_BRI_REV_1_H__
 #define __DIVA_OS_BRI_REV_1_H__
 
-int diva_bri_init_card(diva_os_xdi_adapter_t * a);
+int diva_bri_init_card(diva_os_xdi_adapter_t *a);
 
 #endif
index 726f915..e72394b 100644 (file)
@@ -1,16 +1,16 @@
 /* $Id: os_capi.h,v 1.7 2003/04/12 21:40:49 schindler Exp $
  *
  * ISDN interface module for Eicon active cards DIVA.
- * CAPI Interface OS include files 
- * 
- * Copyright 2000-2003 by Armin Schindler (mac@melware.de) 
+ * CAPI Interface OS include files
+ *
+ * Copyright 2000-2003 by Armin Schindler (mac@melware.de)
  * Copyright 2000-2003 Cytronics & Melware (info@melware.de)
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#ifndef __OS_CAPI_H__ 
+#ifndef __OS_CAPI_H__
 #define __OS_CAPI_H__
 
 #include <linux/capi.h>
index 5d65405..da4957a 100644 (file)
    OS Dependent part of XDI driver for DIVA PRI Adapter
 
    DSP detection/validation by Anthony Booth (Eicon Networks, www.eicon.com)
--------------------------------------------------------------------------- */
+   -------------------------------------------------------------------------- */
 
 #define DIVA_PRI_NO_PCI_BIOS_WORKAROUND 1
 
-extern int diva_card_read_xlog(diva_os_xdi_adapter_t * a);
+extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
 
 /*
 **  IMPORTS
@@ -37,12 +37,12 @@ extern void prepare_pri_functions(PISDN_ADAPTER IoAdapter);
 extern void prepare_pri2_functions(PISDN_ADAPTER IoAdapter);
 extern void diva_xdi_display_adapter_features(int card);
 
-static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a);
+static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t *a);
 static int diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
-                                 diva_xdi_um_cfg_cmd_t * cmd, int length);
-static int pri_get_serial_number(diva_os_xdi_adapter_t * a);
-static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a);
-static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t * a);
+                                 diva_xdi_um_cfg_cmd_t *cmd, int length);
+static int pri_get_serial_number(diva_os_xdi_adapter_t *a);
+static int diva_pri_stop_adapter(diva_os_xdi_adapter_t *a);
+static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t *a);
 
 /*
 **  Check card revision
@@ -57,7 +57,7 @@ static int pri_is_rev_2_card(int card_ordinal)
        return (0);
 }
 
-static void diva_pri_set_addresses(diva_os_xdi_adapter_t * a)
+static void diva_pri_set_addresses(diva_os_xdi_adapter_t *a)
 {
        a->resources.pci.mem_type_id[MEM_TYPE_ADDRESS] = 0;
        a->resources.pci.mem_type_id[MEM_TYPE_CONTROL] = 2;
@@ -66,7 +66,7 @@ static void diva_pri_set_addresses(diva_os_xdi_adapter_t * a)
        a->resources.pci.mem_type_id[MEM_TYPE_RESET] = 2;
        a->resources.pci.mem_type_id[MEM_TYPE_CFG] = 4;
        a->resources.pci.mem_type_id[MEM_TYPE_PROM] = 3;
-       
+
        a->xdi_adapter.Address = a->resources.pci.addr[0];
        a->xdi_adapter.Control = a->resources.pci.addr[2];
        a->xdi_adapter.Config = a->resources.pci.addr[4];
@@ -92,7 +92,7 @@ static void diva_pri_set_addresses(diva_os_xdi_adapter_t * a)
 **  BAR3 - FLASH (REG),                0x8000
 **  BAR4 - CONFIG (CFG),       0x1000
 */
-int diva_pri_init_card(diva_os_xdi_adapter_t * a)
+int diva_pri_init_card(diva_os_xdi_adapter_t *a)
 {
        int bar = 0;
        int pri_rev_2;
@@ -110,59 +110,59 @@ int diva_pri_init_card(diva_os_xdi_adapter_t * a)
                bar_length[0] = MP2_MEMORY_SIZE;
        }
        /*
-          Set properties
-        */
+         Set properties
+       */
        a->xdi_adapter.Properties = CardProperties[a->CardOrdinal];
        DBG_LOG(("Load %s", a->xdi_adapter.Properties.Name))
 
-       /*
-          First initialization step: get and check hardware resoures.
-          Do not map resources and do not acecess card at this step
-        */
-       for (bar = 0; bar < 5; bar++) {
-               a->resources.pci.bar[bar] =
-                   divasa_get_pci_bar(a->resources.pci.bus,
-                                      a->resources.pci.func, bar,
-                                      a->resources.pci.hdev);
-               if (!a->resources.pci.bar[bar]
-                   || (a->resources.pci.bar[bar] == 0xFFFFFFF0)) {
-                       DBG_ERR(("A: invalid bar[%d]=%08x", bar,
-                                a->resources.pci.bar[bar]))
-                       return (-1);
+               /*
+                 First initialization step: get and check hardware resoures.
+                 Do not map resources and do not acecess card at this step
+               */
+               for (bar = 0; bar < 5; bar++) {
+                       a->resources.pci.bar[bar] =
+                               divasa_get_pci_bar(a->resources.pci.bus,
+                                                  a->resources.pci.func, bar,
+                                                  a->resources.pci.hdev);
+                       if (!a->resources.pci.bar[bar]
+                           || (a->resources.pci.bar[bar] == 0xFFFFFFF0)) {
+                               DBG_ERR(("A: invalid bar[%d]=%08x", bar,
+                                        a->resources.pci.bar[bar]))
+                                       return (-1);
+                       }
                }
-       }
        a->resources.pci.irq =
-           (byte) divasa_get_pci_irq(a->resources.pci.bus,
-                                     a->resources.pci.func,
-                                     a->resources.pci.hdev);
+               (byte) divasa_get_pci_irq(a->resources.pci.bus,
+                                         a->resources.pci.func,
+                                         a->resources.pci.hdev);
        if (!a->resources.pci.irq) {
                DBG_ERR(("A: invalid irq"));
                return (-1);
        }
 
        /*
-          Map all BAR's
-        */
+         Map all BAR's
+       */
        for (bar = 0; bar < 5; bar++) {
                a->resources.pci.addr[bar] =
-                   divasa_remap_pci_bar(a, bar, a->resources.pci.bar[bar],
-                                        bar_length[bar]);
+                       divasa_remap_pci_bar(a, bar, a->resources.pci.bar[bar],
+                                            bar_length[bar]);
                if (!a->resources.pci.addr[bar]) {
                        DBG_ERR(("A: A(%d), can't map bar[%d]",
                                 a->controller, bar))
-                       diva_pri_cleanup_adapter(a);
+                               diva_pri_cleanup_adapter(a);
                        return (-1);
                }
        }
 
        /*
-          Set all memory areas
-        */
+         Set all memory areas
+       */
        diva_pri_set_addresses(a);
 
        /*
-          Get Serial Number of this adapter
-        */
+         Get Serial Number of this adapter
+       */
        if (pri_get_serial_number(a)) {
                dword serNo;
                serNo = a->resources.pci.bar[1] & 0xffff0000;
@@ -171,12 +171,12 @@ int diva_pri_init_card(diva_os_xdi_adapter_t * a)
                a->xdi_adapter.serialNo = serNo & ~0xFF000000;
                DBG_ERR(("A: A(%d) can't get Serial Number, generated serNo=%ld",
                         a->controller, a->xdi_adapter.serialNo))
-       }
+                       }
 
 
        /*
-          Initialize os objects
-        */
+         Initialize os objects
+       */
        if (diva_os_initialize_spin_lock(&a->xdi_adapter.isr_spin_lock, "isr")) {
                diva_pri_cleanup_adapter(a);
                return (-1);
@@ -196,20 +196,20 @@ int diva_pri_init_card(diva_os_xdi_adapter_t * a)
        }
 
        /*
-          Do not initialize second DPC - only one thread will be created
-        */
+         Do not initialize second DPC - only one thread will be created
+       */
        a->xdi_adapter.isr_soft_isr.object =
-           a->xdi_adapter.req_soft_isr.object;
+               a->xdi_adapter.req_soft_isr.object;
 
        /*
-          Next step of card initialization:
-          set up all interface pointers
-        */
+         Next step of card initialization:
+         set up all interface pointers
+       */
        a->xdi_adapter.Channels = CardProperties[a->CardOrdinal].Channels;
        a->xdi_adapter.e_max = CardProperties[a->CardOrdinal].E_info;
 
        a->xdi_adapter.e_tbl =
-           diva_os_malloc(0, a->xdi_adapter.e_max * sizeof(E_INFO));
+               diva_os_malloc(0, a->xdi_adapter.e_max * sizeof(E_INFO));
        if (!a->xdi_adapter.e_tbl) {
                diva_pri_cleanup_adapter(a);
                return (-1);
@@ -230,16 +230,16 @@ int diva_pri_init_card(diva_os_xdi_adapter_t * a)
        a->dsp_mask = diva_pri_detect_dsps(a);
 
        /*
-          Allocate DMA map
-        */
+         Allocate DMA map
+       */
        if (pri_rev_2) {
                diva_init_dma_map(a->resources.pci.hdev,
                                  (struct _diva_dma_map_entry **) &a->xdi_adapter.dma_map, 32);
        }
 
        /*
-          Set IRQ handler
-        */
+         Set IRQ handler
+       */
        a->xdi_adapter.irq_info.irq_nr = a->resources.pci.irq;
        sprintf(a->xdi_adapter.irq_info.irq_name,
                "DIVA PRI %ld", (long) a->xdi_adapter.serialNo);
@@ -257,28 +257,28 @@ int diva_pri_init_card(diva_os_xdi_adapter_t * a)
        return (0);
 }
 
-static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a)
+static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t *a)
 {
        int bar = 0;
 
        /*
-          Stop Adapter if adapter is running
-        */
+         Stop Adapter if adapter is running
+       */
        if (a->xdi_adapter.Initialized) {
                diva_pri_stop_adapter(a);
        }
 
        /*
-          Remove ISR Handler
-        */
+         Remove ISR Handler
+       */
        if (a->xdi_adapter.irq_info.registered) {
                diva_os_remove_irq(a, a->xdi_adapter.irq_info.irq_nr);
        }
        a->xdi_adapter.irq_info.registered = 0;
 
        /*
-          Step 1: unmap all BAR's, if any was mapped
-        */
+         Step 1: unmap all BAR's, if any was mapped
+       */
        for (bar = 0; bar < 5; bar++) {
                if (a->resources.pci.bar[bar]
                    && a->resources.pci.addr[bar]) {
@@ -289,8 +289,8 @@ static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        }
 
        /*
-          Free OS objects
-        */
+         Free OS objects
+       */
        diva_os_cancel_soft_isr(&a->xdi_adapter.isr_soft_isr);
        diva_os_cancel_soft_isr(&a->xdi_adapter.req_soft_isr);
 
@@ -301,8 +301,8 @@ static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a)
        diva_os_destroy_spin_lock(&a->xdi_adapter.data_spin_lock, "rm");
 
        /*
-          Free memory accupied by XDI adapter
-        */
+         Free memory accupied by XDI adapter
+       */
        if (a->xdi_adapter.e_tbl) {
                diva_os_free(0, a->xdi_adapter.e_tbl);
                a->xdi_adapter.e_tbl = NULL;
@@ -312,8 +312,8 @@ static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a)
 
 
        /*
-          Free adapter DMA map
-        */
+         Free adapter DMA map
+       */
        diva_free_dma_map(a->resources.pci.hdev,
                          (struct _diva_dma_map_entry *) a->xdi_adapter.
                          dma_map);
@@ -321,8 +321,8 @@ static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a)
 
 
        /*
-          Detach this adapter from debug driver
-        */
+         Detach this adapter from debug driver
+       */
 
        return (0);
 }
@@ -341,7 +341,7 @@ static int diva_pri_reset_adapter(PISDN_ADAPTER IoAdapter)
        if (IoAdapter->Initialized) {
                DBG_ERR(("A: A(%d) can't reset PRI adapter - please stop first",
                         IoAdapter->ANum))
-               return (-1);
+                       return (-1);
        }
 
        boot = (struct mp_load __iomem *) DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
@@ -360,20 +360,20 @@ static int diva_pri_reset_adapter(PISDN_ADAPTER IoAdapter)
                DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
                DBG_ERR(("A: A(%d) CPU on PRI %ld is not alive!",
                         IoAdapter->ANum, IoAdapter->serialNo))
-               return (-1);
+                       return (-1);
        }
        if (READ_DWORD(&boot->err)) {
                DBG_ERR(("A: A(%d) PRI %ld Board Selftest failed, error=%08lx",
                         IoAdapter->ANum, IoAdapter->serialNo,
                         READ_DWORD(&boot->err)))
-               DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
+                       DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
                return (-1);
        }
        DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
 
        /*
-          Forget all outstanding entities
-        */
+         Forget all outstanding entities
+       */
        IoAdapter->e_count = 0;
        if (IoAdapter->e_tbl) {
                memset(IoAdapter->e_tbl, 0x00,
@@ -407,7 +407,7 @@ static int diva_pri_reset_adapter(PISDN_ADAPTER IoAdapter)
 static int
 diva_pri_write_sdram_block(PISDN_ADAPTER IoAdapter,
                           dword address,
-                          const byte * data, dword length, dword limit)
+                          const byte *data, dword length, dword limit)
 {
        byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
        byte __iomem *mem = p;
@@ -416,7 +416,7 @@ diva_pri_write_sdram_block(PISDN_ADAPTER IoAdapter,
                DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, p);
                DBG_ERR(("A: A(%d) write PRI address=0x%08lx",
                         IoAdapter->ANum, address + length))
-               return (-1);
+                       return (-1);
        }
        mem += address;
 
@@ -443,20 +443,20 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
                DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
                DBG_ERR(("A: A(%d) pri_start_adapter, adapter already running",
                         IoAdapter->ANum))
-               return (-1);
+                       return (-1);
        }
        if (!boot) {
                DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
                DBG_ERR(("A: PRI %ld can't start, adapter not mapped",
                         IoAdapter->serialNo))
-               return (-1);
+                       return (-1);
        }
 
        sprintf(IoAdapter->Name, "A(%d)", (int) IoAdapter->ANum);
        DBG_LOG(("A(%d) start PRI at 0x%08lx", IoAdapter->ANum,
                 start_address))
 
-       WRITE_DWORD(&boot->addr, start_address);
+               WRITE_DWORD(&boot->addr, start_address);
        WRITE_DWORD(&boot->cmd, 3);
 
        for (i = 0; i < 300; ++i) {
@@ -464,7 +464,7 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
                if ((READ_DWORD(&boot->signature) >> 16) == 0x4447) {
                        DBG_LOG(("A(%d) Protocol startup time %d.%02d seconds",
                                 IoAdapter->ANum, (i / 100), (i % 100)))
-                       started = 1;
+                               started = 1;
                        break;
                }
        }
@@ -478,7 +478,7 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
                DBG_ERR(("A(%d) Adapter start failed 0x%08lx, TrapId=%08lx, debug=%08lx",
                         IoAdapter->ANum, READ_DWORD(&boot->signature),
                         TrapId, debug))
-               DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
+                       DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, boot);
                if (IoAdapter->trapFnc) {
                        (*(IoAdapter->trapFnc)) (IoAdapter);
                }
@@ -490,11 +490,11 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
        IoAdapter->Initialized = true;
 
        /*
-          Check Interrupt
-        */
+         Check Interrupt
+       */
        IoAdapter->IrqCount = 0;
        p = DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
-       WRITE_DWORD(p, (dword) ~ 0x03E00000);
+       WRITE_DWORD(p, (dword)~0x03E00000);
        DIVA_OS_MEM_DETACH_CFG(IoAdapter, p);
        a->ReadyInt = 1;
        a->ram_out(a, &PR_RAM->ReadyInt, 1);
@@ -504,7 +504,7 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
        if (!IoAdapter->IrqCount) {
                DBG_ERR(("A: A(%d) interrupt test failed",
                         IoAdapter->ANum))
-               IoAdapter->Initialized = false;
+                       IoAdapter->Initialized = false;
                IoAdapter->stop(IoAdapter);
                return (-1);
        }
@@ -514,21 +514,21 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
        diva_xdi_display_adapter_features(IoAdapter->ANum);
 
        DBG_LOG(("A(%d) PRI adapter successfully started", IoAdapter->ANum))
-       /*
-          Register with DIDD
-        */
-       diva_xdi_didd_register_adapter(IoAdapter->ANum);
+               /*
+                 Register with DIDD
+               */
+               diva_xdi_didd_register_adapter(IoAdapter->ANum);
 
        return (0);
 }
 
-static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t * a)
+static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t *a)
 {
        PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
 
        /*
-          clear any pending interrupt
-        */
+         clear any pending interrupt
+       */
        IoAdapter->disIrq(IoAdapter);
 
        IoAdapter->tst_irq(&IoAdapter->a);
@@ -536,8 +536,8 @@ static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t * a)
        IoAdapter->tst_irq(&IoAdapter->a);
 
        /*
-          kill pending dpcs
-        */
+         kill pending dpcs
+       */
        diva_os_cancel_soft_isr(&IoAdapter->req_soft_isr);
        diva_os_cancel_soft_isr(&IoAdapter->isr_soft_isr);
 }
@@ -546,7 +546,7 @@ static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t * a)
 **  Stop Adapter, but do not unmap/unregister - adapter
 **  will be restarted later
 */
-static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a)
+static int diva_pri_stop_adapter(diva_os_xdi_adapter_t *a)
 {
        PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
        int i = 100;
@@ -557,18 +557,18 @@ static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a)
        if (!IoAdapter->Initialized) {
                DBG_ERR(("A: A(%d) can't stop PRI adapter - not running",
                         IoAdapter->ANum))
-               return (-1);    /* nothing to stop */
+                       return (-1);    /* nothing to stop */
        }
        IoAdapter->Initialized = 0;
 
        /*
-          Disconnect Adapter from DIDD
-        */
+         Disconnect Adapter from DIDD
+       */
        diva_xdi_didd_remove_adapter(IoAdapter->ANum);
 
        /*
-          Stop interrupts
-        */
+         Stop interrupts
+       */
        a->clear_interrupts_proc = diva_pri_clear_interrupts;
        IoAdapter->a.ReadyInt = 1;
        IoAdapter->a.ram_inc(&IoAdapter->a, &PR_RAM->ReadyInt);
@@ -581,12 +581,12 @@ static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a)
                a->clear_interrupts_proc = NULL;
                DBG_ERR(("A: A(%d) no final interrupt from PRI adapter",
                         IoAdapter->ANum))
-       }
+                       }
        IoAdapter->a.ReadyInt = 0;
 
        /*
-          Stop and reset adapter
-        */
+         Stop and reset adapter
+       */
        IoAdapter->stop(IoAdapter);
 
        return (0);
@@ -600,24 +600,24 @@ static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a)
 */
 static int
 diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
-                      diva_xdi_um_cfg_cmd_t * cmd, int length)
+                      diva_xdi_um_cfg_cmd_t *cmd, int length)
 {
        int ret = -1;
 
        if (cmd->adapter != a->controller) {
                DBG_ERR(("A: pri_cmd, invalid controller=%d != %d",
                         cmd->adapter, a->controller))
-               return (-1);
+                       return (-1);
        }
 
        switch (cmd->command) {
        case DIVA_XDI_UM_CMD_GET_CARD_ORDINAL:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        *(dword *) a->xdi_mbox.data =
-                           (dword) a->CardOrdinal;
+                               (dword) a->CardOrdinal;
                        a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY;
                        ret = 0;
                }
@@ -626,10 +626,10 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_SERIAL_NR:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        *(dword *) a->xdi_mbox.data =
-                           (dword) a->xdi_adapter.serialNo;
+                               (dword) a->xdi_adapter.serialNo;
                        a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY;
                        ret = 0;
                }
@@ -638,7 +638,7 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_GET_PCI_HW_CONFIG:
                a->xdi_mbox.data_length = sizeof(dword) * 9;
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        int i;
                        dword *data = (dword *) a->xdi_mbox.data;
@@ -660,7 +660,7 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
                ret = diva_pri_write_sdram_block(&a->xdi_adapter,
                                                 cmd->command_data.
                                                 write_sdram.offset,
-                                                (byte *) & cmd[1],
+                                                (byte *)&cmd[1],
                                                 cmd->command_data.
                                                 write_sdram.length,
                                                 pri_is_rev_2_card(a->
@@ -683,22 +683,22 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
 
        case DIVA_XDI_UM_CMD_SET_PROTOCOL_FEATURES:
                a->xdi_adapter.features =
-                   cmd->command_data.features.features;
+                       cmd->command_data.features.features;
                a->xdi_adapter.a.protocol_capabilities =
-                   a->xdi_adapter.features;
+                       a->xdi_adapter.features;
                DBG_TRC(("Set raw protocol features (%08x)",
                         a->xdi_adapter.features))
-               ret = 0;
+                       ret = 0;
                break;
 
        case DIVA_XDI_UM_CMD_GET_CARD_STATE:
                a->xdi_mbox.data_length = sizeof(dword);
                a->xdi_mbox.data =
-                   diva_os_malloc(0, a->xdi_mbox.data_length);
+                       diva_os_malloc(0, a->xdi_mbox.data_length);
                if (a->xdi_mbox.data) {
                        dword *data = (dword *) a->xdi_mbox.data;
                        if (!a->xdi_adapter.ram ||
-                               !a->xdi_adapter.reset ||
+                           !a->xdi_adapter.reset ||
                            !a->xdi_adapter.cfg) {
                                *data = 3;
                        } else if (a->xdi_adapter.trapped) {
@@ -720,16 +720,16 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        case DIVA_XDI_UM_CMD_READ_SDRAM:
                if (a->xdi_adapter.Address) {
                        if (
-                           (a->xdi_mbox.data_length =
-                            cmd->command_data.read_sdram.length)) {
+                               (a->xdi_mbox.data_length =
+                                cmd->command_data.read_sdram.length)) {
                                if (
-                                   (a->xdi_mbox.data_length +
-                                    cmd->command_data.read_sdram.offset) <
-                                   a->xdi_adapter.MemorySize) {
+                                       (a->xdi_mbox.data_length +
+                                        cmd->command_data.read_sdram.offset) <
+                                       a->xdi_adapter.MemorySize) {
                                        a->xdi_mbox.data =
-                                           diva_os_malloc(0,
-                                                          a->xdi_mbox.
-                                                          data_length);
+                                               diva_os_malloc(0,
+                                                              a->xdi_mbox.
+                                                              data_length);
                                        if (a->xdi_mbox.data) {
                                                byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(&a->xdi_adapter);
                                                byte __iomem *src = p;
@@ -753,7 +753,7 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
        default:
                DBG_ERR(("A: A(%d) invalid cmd=%d", a->controller,
                         cmd->command))
-       }
+                       }
 
        return (ret);
 }
@@ -761,7 +761,7 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
 /*
 **  Get Serial Number
 */
-static int pri_get_serial_number(diva_os_xdi_adapter_t * a)
+static int pri_get_serial_number(diva_os_xdi_adapter_t *a)
 {
        byte data[64];
        int i;
@@ -773,28 +773,28 @@ static int pri_get_serial_number(diva_os_xdi_adapter_t * a)
 /*
  *  First set some GT6401x config registers before accessing the BOOT-ROM
  */
-       config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
+       config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
        c = READ_BYTE(&config[0xc3c]);
        if (!(c & 0x08)) {
                WRITE_BYTE(&config[0xc3c], c);  /* Base Address enable register */
        }
        WRITE_BYTE(&config[LOW_BOOTCS_DREG], 0x00);
        WRITE_BYTE(&config[HI_BOOTCS_DREG], 0xFF);
-       DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
+       DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
 /*
  *  Read only the last 64 bytes of manufacturing data
  */
        memset(data, '\0', len);
-       flash = DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter);
+       flash = DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter);
        for (i = 0; i < len; i++) {
                data[i] = READ_BYTE(&flash[0x8000 - len + i]);
        }
-       DIVA_OS_MEM_DETACH_PROM(&a->xdi_adapter, flash);
+       DIVA_OS_MEM_DETACH_PROM(&a->xdi_adapter, flash);
 
-       config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
+       config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
        WRITE_BYTE(&config[LOW_BOOTCS_DREG], 0xFC);     /* Disable FLASH EPROM access */
        WRITE_BYTE(&config[HI_BOOTCS_DREG], 0xFF);
-       DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
+       DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
 
        if (memcmp(&data[48], "DIVAserverPR", 12)) {
 #if !defined(DIVA_PRI_NO_PCI_BIOS_WORKAROUND)  /* { */
@@ -808,11 +808,11 @@ static int pri_get_serial_number(diva_os_xdi_adapter_t * a)
                addr1 = a->resources.pci.bar[1];        /* unused */
 
                DBG_ERR(("A: apply Compaq BIOS workaround"))
-               DBG_LOG(("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
-                            data[0], data[1], data[2], data[3],
-                            data[4], data[5], data[6], data[7]))
+                       DBG_LOG(("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
+                                data[0], data[1], data[2], data[3],
+                                data[4], data[5], data[6], data[7]))
 
-               Bus = a->resources.pci.bus;
+                       Bus = a->resources.pci.bus;
                Slot = a->resources.pci.func;
                hdev = a->resources.pci.hdev;
                PCIread(Bus, Slot, 0x04, &cmd_org, sizeof(cmd_org), hdev);
@@ -832,69 +832,69 @@ static int pri_get_serial_number(diva_os_xdi_adapter_t * a)
                a->resources.pci.bar[4] = addr1;
 
                /*
-                  Try to read Flash again
-                */
+                 Try to read Flash again
+               */
                len = sizeof(data);
 
-               config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
+               config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
                if (!(config[0xc3c] & 0x08)) {
                        config[0xc3c] |= 0x08;  /* Base Address enable register */
                }
                config[LOW_BOOTCS_DREG] = 0x00;
                config[HI_BOOTCS_DREG] = 0xFF;
-               DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
+               DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
 
                memset(data, '\0', len);
-               flash = DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter);
+               flash = DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter);
                for (i = 0; i < len; i++) {
                        data[i] = flash[0x8000 - len + i];
                }
-               DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter, flash);
-               config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
+               DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter, flash);
+               config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter);
                config[LOW_BOOTCS_DREG] = 0xFC;
                config[HI_BOOTCS_DREG] = 0xFF;
-               DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
+               DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config);
 
                if (memcmp(&data[48], "DIVAserverPR", 12)) {
                        DBG_ERR(("A: failed to read serial number"))
-                       DBG_LOG(("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
-                                    data[0], data[1], data[2], data[3],
-                                    data[4], data[5], data[6], data[7]))
-                       return (-1);
+                               DBG_LOG(("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
+                                        data[0], data[1], data[2], data[3],
+                                        data[4], data[5], data[6], data[7]))
+                               return (-1);
                }
 #else                          /* } { */
                DBG_ERR(("A: failed to read DIVA signature word"))
-               DBG_LOG(("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
-                            data[0], data[1], data[2], data[3],
-                            data[4], data[5], data[6], data[7]))
-               DBG_LOG(("%02x:%02x:%02x:%02x", data[47], data[46],
-                            data[45], data[44]))
+                       DBG_LOG(("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
+                                data[0], data[1], data[2], data[3],
+                                data[4], data[5], data[6], data[7]))
+                       DBG_LOG(("%02x:%02x:%02x:%02x", data[47], data[46],
+                                data[45], data[44]))
 #endif                         /* } */
-       }
+                       }
 
        a->xdi_adapter.serialNo =
-           (data[47] << 24) | (data[46] << 16) | (data[45] << 8) |
-           data[44];
+               (data[47] << 24) | (data[46] << 16) | (data[45] << 8) |
+               data[44];
        if (!a->xdi_adapter.serialNo
            || (a->xdi_adapter.serialNo == 0xffffffff)) {
                a->xdi_adapter.serialNo = 0;
                DBG_ERR(("A: failed to read serial number"))
-               return (-1);
+                       return (-1);
        }
 
        DBG_LOG(("Serial No.          : %ld", a->xdi_adapter.serialNo))
-       DBG_TRC(("Board Revision      : %d.%02d", (int) data[41],
-                    (int) data[40]))
-       DBG_TRC(("PLD revision        : %d.%02d", (int) data[33],
-                    (int) data[32]))
-       DBG_TRC(("Boot loader version : %d.%02d", (int) data[37],
-                    (int) data[36]))
+               DBG_TRC(("Board Revision      : %d.%02d", (int) data[41],
+                        (int) data[40]))
+               DBG_TRC(("PLD revision        : %d.%02d", (int) data[33],
+                        (int) data[32]))
+               DBG_TRC(("Boot loader version : %d.%02d", (int) data[37],
+                        (int) data[36]))
 
-       DBG_TRC(("Manufacturing Date  : %d/%02d/%02d  (yyyy/mm/dd)",
-                    (int) ((data[28] > 90) ? 1900 : 2000) +
-                    (int) data[28], (int) data[29], (int) data[30]))
+               DBG_TRC(("Manufacturing Date  : %d/%02d/%02d  (yyyy/mm/dd)",
+                        (int) ((data[28] > 90) ? 1900 : 2000) +
+                        (int) data[28], (int) data[29], (int) data[30]))
 
-       return (0);
+               return (0);
 }
 
 void diva_os_prepare_pri2_functions(PISDN_ADAPTER IoAdapter)
@@ -909,7 +909,7 @@ void diva_os_prepare_pri_functions(PISDN_ADAPTER IoAdapter)
 **  Checks presence of DSP on board
 */
 static int
-dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, int dsp)
+dsp_check_presence(volatile byte __iomem *addr, volatile byte __iomem *data, int dsp)
 {
        word pattern;
 
@@ -922,7 +922,7 @@ dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, i
        if (pattern != DSP_SIGNATURE_PROBE_WORD) {
                DBG_TRC(("W: DSP[%d] %04x(is) != %04x(should)",
                         dsp, pattern, DSP_SIGNATURE_PROBE_WORD))
-               return (-1);
+                       return (-1);
        }
 
        WRITE_WORD(addr, 0x4000);
@@ -931,15 +931,15 @@ dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, i
        WRITE_WORD(addr, 0x4000);
        pattern = READ_WORD(data);
 
-       if (pattern != (word) ~ DSP_SIGNATURE_PROBE_WORD) {
+       if (pattern != (word)~DSP_SIGNATURE_PROBE_WORD) {
                DBG_ERR(("A: DSP[%d] %04x(is) != %04x(should)",
-                        dsp, pattern, (word) ~ DSP_SIGNATURE_PROBE_WORD))
-               return (-2);
+                        dsp, pattern, (word)~DSP_SIGNATURE_PROBE_WORD))
+                       return (-2);
        }
 
        DBG_TRC(("DSP[%d] present", dsp))
 
-       return (0);
+               return (0);
 }
 
 
@@ -952,7 +952,7 @@ dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, i
 **  ...
 **  Bit 29 - DSP30
 */
-static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t * a)
+static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t *a)
 {
        byte __iomem *base;
        byte __iomem *p;
@@ -1008,8 +1008,8 @@ static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t * a)
        diva_os_wait(5);
 
        /*
-          Verify modules
-        */
+         Verify modules
+       */
        for (dsp_row = 0; dsp_row < 4; dsp_row++) {
                row_state = ((ret >> (dsp_row * 7)) & 0x7F);
                if (row_state && (row_state != 0x7F)) {
@@ -1018,35 +1018,35 @@ static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t * a)
                                        DBG_ERR(("A: MODULE[%d]-DSP[%d] failed",
                                                 dsp_row + 1,
                                                 dsp_index + 1))
-                               }
+                                               }
                        }
                }
        }
 
        if (!(ret & 0x10000000)) {
                DBG_ERR(("A: ON BOARD-DSP[1] failed"))
-       }
+                       }
        if (!(ret & 0x20000000)) {
                DBG_ERR(("A: ON BOARD-DSP[2] failed"))
-       }
+                       }
 
        /*
-          Print module population now
-        */
-       DBG_LOG(("+-----------------------+"))
-       DBG_LOG(("| DSP MODULE POPULATION |"))
-       DBG_LOG(("+-----------------------+"))
-       DBG_LOG(("|  1  |  2  |  3  |  4  |"))
-       DBG_LOG(("+-----------------------+"))
-       DBG_LOG(("|  %s  |  %s  |  %s  |  %s  |",
-                ((ret >> (0 * 7)) & 0x7F) ? "Y" : "N",
-                ((ret >> (1 * 7)) & 0x7F) ? "Y" : "N",
-                ((ret >> (2 * 7)) & 0x7F) ? "Y" : "N",
-                ((ret >> (3 * 7)) & 0x7F) ? "Y" : "N"))
+         Print module population now
+       */
        DBG_LOG(("+-----------------------+"))
-
-       DBG_LOG(("DSP's(present-absent):%08x-%08x", ret,
-                ~ret & 0x3fffffff))
-
-       return (ret);
+               DBG_LOG(("| DSP MODULE POPULATION |"))
+               DBG_LOG(("+-----------------------+"))
+               DBG_LOG(("|  1  |  2  |  3  |  4  |"))
+               DBG_LOG(("+-----------------------+"))
+               DBG_LOG(("|  %s  |  %s  |  %s  |  %s  |",
+                        ((ret >> (0 * 7)) & 0x7F) ? "Y" : "N",
+                        ((ret >> (1 * 7)) & 0x7F) ? "Y" : "N",
+                        ((ret >> (2 * 7)) & 0x7F) ? "Y" : "N",
+                        ((ret >> (3 * 7)) & 0x7F) ? "Y" : "N"))
+               DBG_LOG(("+-----------------------+"))
+
+               DBG_LOG(("DSP's(present-absent):%08x-%08x", ret,
+                        ~ret & 0x3fffffff))
+
+               return (ret);
 }
index a7c42f9..537c74d 100644 (file)
@@ -3,6 +3,6 @@
 #ifndef __DIVA_OS_PRI_REV_1_H__
 #define __DIVA_OS_PRI_REV_1_H__
 
-int diva_pri_init_card(diva_os_xdi_adapter_t * a);
+int diva_pri_init_card(diva_os_xdi_adapter_t *a);
 
 #endif
index bf6b018..889dc98 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef PC_H_INCLUDED  /* { */
 /* buffer definition                                                */
 /*------------------------------------------------------------------*/
 typedef struct {
-  word length;          /* length of data/parameter field           */
-  byte P[270];          /* data/parameter field                     */
+       word length;          /* length of data/parameter field           */
+       byte P[270];          /* data/parameter field                     */
 } PBUFFER;
 /*------------------------------------------------------------------*/
 /* dual port ram structure                                          */
 /*------------------------------------------------------------------*/
 struct dual
 {
-  byte Req;             /* request register                         */
-  byte ReqId;           /* request task/entity identification       */
-  byte Rc;              /* return code register                     */
-  byte RcId;            /* return code task/entity identification   */
-  byte Ind;             /* Indication register                      */
-  byte IndId;           /* Indication task/entity identification    */
-  byte IMask;           /* Interrupt Mask Flag                      */
-  byte RNR;             /* Receiver Not Ready (set by PC)           */
-  byte XLock;           /* XBuffer locked Flag                      */
-  byte Int;             /* ISDN-S interrupt                         */
-  byte ReqCh;           /* Channel field for layer-3 Requests       */
-  byte RcCh;            /* Channel field for layer-3 Returncodes    */
-  byte IndCh;           /* Channel field for layer-3 Indications    */
-  byte MInd;            /* more data indication field               */
-  word MLength;         /* more data total packet length            */
-  byte ReadyInt;        /* request field for ready interrupt        */
-  byte SWReg;           /* Software register for special purposes   */
-  byte Reserved[11];    /* reserved space                           */
-  byte InterfaceType;   /* interface type 1=16K interface           */
-  word Signature;       /* ISDN-S adapter Signature (GD)            */
-  PBUFFER XBuffer;      /* Transmit Buffer                          */
-  PBUFFER RBuffer;      /* Receive Buffer                           */
+       byte Req;             /* request register                         */
+       byte ReqId;           /* request task/entity identification       */
+       byte Rc;              /* return code register                     */
+       byte RcId;            /* return code task/entity identification   */
+       byte Ind;             /* Indication register                      */
+       byte IndId;           /* Indication task/entity identification    */
+       byte IMask;           /* Interrupt Mask Flag                      */
+       byte RNR;             /* Receiver Not Ready (set by PC)           */
+       byte XLock;           /* XBuffer locked Flag                      */
+       byte Int;             /* ISDN-S interrupt                         */
+       byte ReqCh;           /* Channel field for layer-3 Requests       */
+       byte RcCh;            /* Channel field for layer-3 Returncodes    */
+       byte IndCh;           /* Channel field for layer-3 Indications    */
+       byte MInd;            /* more data indication field               */
+       word MLength;         /* more data total packet length            */
+       byte ReadyInt;        /* request field for ready interrupt        */
+       byte SWReg;           /* Software register for special purposes   */
+       byte Reserved[11];    /* reserved space                           */
+       byte InterfaceType;   /* interface type 1=16K interface           */
+       word Signature;       /* ISDN-S adapter Signature (GD)            */
+       PBUFFER XBuffer;      /* Transmit Buffer                          */
+       PBUFFER RBuffer;      /* Receive Buffer                           */
 };
 /*------------------------------------------------------------------*/
 /* SWReg Values (0 means no command)                                */
 /*------------------------------------------------------------------*/
 #define SWREG_DIE_WITH_LEDON  0x01
-#define SWREG_HALT_CPU        0x02 /* Push CPU into a while(1) loop */
+#define SWREG_HALT_CPU        0x02 /* Push CPU into a while (1) loop */
 /*------------------------------------------------------------------*/
 /* Id Fields Coding                                                 */
 /*------------------------------------------------------------------*/
@@ -273,7 +273,7 @@ struct dual
 #define MORE 0xa0               /* more data                        */
 #define SDNCMPL 0xa1            /* sending complete                 */
 #define CL 0xb0                 /* congestion level                 */
-        /* codeset 0                                                */
+/* codeset 0                                                */
 #define SMSG 0x00               /* segmented message                */
 #define BC  0x04                /* Bearer Capability                */
 #define CAU 0x08                /* cause                            */
@@ -307,7 +307,7 @@ struct dual
 #define NLC 0x21                /* network layer configuration      */
 #define REDIRECT_IE     0x22    /* redirection request/indication data */
 #define REDIRECT_NET_IE 0x23    /* redirection network override data   */
-        /* codeset 6                                                */
+/* codeset 6                                                */
 #define SIN 0x01                /* service indicator                */
 #define CIF 0x02                /* charging information             */
 #define DATE 0x03               /* date                             */
@@ -387,13 +387,13 @@ struct dual
 #define SMASK_CCNR                 0x00000200
 #define SMASK_CONF                 0x00000400
 /* ----------------------------------------------
-    Types of transfers used to transfer the
-    information in the 'struct RC->Reserved2[8]'
-    The information is transferred as 2 dwords
-    (2 4Byte unsigned values)
-    First of them is the transfer type.
-    2^32-1 possible messages are possible in this way.
-    The context of the second one had no meaning
+   Types of transfers used to transfer the
+   information in the 'struct RC->Reserved2[8]'
+   The information is transferred as 2 dwords
+   (2 4Byte unsigned values)
+   First of them is the transfer type.
+   2^32-1 possible messages are possible in this way.
+   The context of the second one had no meaning
    ---------------------------------------------- */
 #define DIVA_RC_TYPE_NONE              0x00000000
 #define DIVA_RC_TYPE_REMOVE_COMPLETE   0x00000008
@@ -402,14 +402,14 @@ struct dual
 #define DIVA_RC_TYPE_OK_FC             0x0000000b
 #define DIVA_RC_TYPE_RX_DMA            0x0000000c
 /* ------------------------------------------------------
-      IO Control codes for IN BAND SIGNALING
+   IO Control codes for IN BAND SIGNALING
    ------------------------------------------------------ */
 #define CTRL_L1_SET_SIG_ID        5
 #define CTRL_L1_SET_DAD           6
 #define CTRL_L1_RESOURCES         7
 /* ------------------------------------------------------ */
 /* ------------------------------------------------------
-      Layer 2 types
+   Layer 2 types
    ------------------------------------------------------ */
 #define X75T            1       /* x.75 for ttx                     */
 #define TRF             2       /* transparent with hdlc framing    */
@@ -439,31 +439,31 @@ struct dual
 #define PIAFS_UDATA_ABILITY_DCDON 0x01
 #define PIAFS_UDATA_ABILITY_DDI   0x80
 /*
-DLC of PIAFS :
-Byte | 8 7 6 5 4 3 2 1
------+--------------------------------------------------------
-   0 | 0 0 1 0 0 0 0 0  Data Link Configuration
-   1 | X X X X X X X X  Length of IE (at least 15 Bytes)
-   2 | 0 0 0 0 0 0 0 0  max. information field, LOW  byte (not used, fix 73 Bytes)
-   3 | 0 0 0 0 0 0 0 0  max. information field, HIGH byte (not used, fix 73 Bytes)
-   4 | 0 0 0 0 0 0 0 0  address A (not used)
-   5 | 0 0 0 0 0 0 0 0  address B (not used)
-   6 | 0 0 0 0 0 0 0 0  Mode (not used, fix 128)
-   7 | 0 0 0 0 0 0 0 0  Window Size (not used, fix 127)
-   8 | X X X X X X X X  XID Length, Low Byte (at least 7 Bytes)
-   9 | X X X X X X X X  XID Length, High Byte
+  DLC of PIAFS :
+  Byte | 8 7 6 5 4 3 2 1
+  -----+--------------------------------------------------------
+  0 | 0 0 1 0 0 0 0 0  Data Link Configuration
+  1 | X X X X X X X X  Length of IE (at least 15 Bytes)
+  2 | 0 0 0 0 0 0 0 0  max. information field, LOW  byte (not used, fix 73 Bytes)
+  3 | 0 0 0 0 0 0 0 0  max. information field, HIGH byte (not used, fix 73 Bytes)
+  4 | 0 0 0 0 0 0 0 0  address A (not used)
+  5 | 0 0 0 0 0 0 0 0  address B (not used)
+  6 | 0 0 0 0 0 0 0 0  Mode (not used, fix 128)
+  7 | 0 0 0 0 0 0 0 0  Window Size (not used, fix 127)
+  8 | X X X X X X X X  XID Length, Low Byte (at least 7 Bytes)
+  9 | X X X X X X X X  XID Length, High Byte
   10 | 0 0 0 0 0 C V S  PIAFS Protocol Speed configuration -> Note(1)
-     |                  S = 0 -> Protocol Speed is 32K
-     |                  S = 1 -> Protocol Speed is 64K
-     |                  V = 0 -> Protocol Speed is fixed
-     |                  V = 1 -> Protocol Speed is variable
-     |                  C = 0 -> speed setting according to standard
-     |                  C = 1 -> speed setting for chinese implementation
+  |                  S = 0 -> Protocol Speed is 32K
+  |                  S = 1 -> Protocol Speed is 64K
+  |                  V = 0 -> Protocol Speed is fixed
+  |                  V = 1 -> Protocol Speed is variable
+  |                  C = 0 -> speed setting according to standard
+  |                  C = 1 -> speed setting for chinese implementation
   11 | 0 0 0 0 0 0 R T  P0 - V42bis Compression enable/disable, Low Byte
-     |                  T = 0 -> Transmit Direction enable
-     |                  T = 1 -> Transmit Direction disable
-     |                  R = 0 -> Receive  Direction enable
-     |                  R = 1 -> Receive  Direction disable
+  |                  T = 0 -> Transmit Direction enable
+  |                  T = 1 -> Transmit Direction disable
+  |                  R = 0 -> Receive  Direction enable
+  |                  R = 1 -> Receive  Direction disable
   13 | 0 0 0 0 0 0 0 0  P0 - V42bis Compression enable/disable, High Byte
   14 | X X X X X X X X  P1 - V42bis Dictionary Size, Low Byte
   15 | X X X X X X X X  P1 - V42bis Dictionary Size, High Byte
@@ -472,61 +472,61 @@ Byte | 8 7 6 5 4 3 2 1
   18 | X X X X X X X X  PIAFS extension length
   19 | 1 0 0 0 0 0 0 0  PIAFS extension Id (0x80) - UDATA abilities
   20 | U 0 0 0 0 0 0 D  UDATA abilities -> Note (2)
-     |                  up to now the following Bits are defined:
-     |                  D - signal DCD ON
-     |                  U - use extensive UDATA control communication
-     |                      for DDI test application
-+ Note (1): ----------+------+-----------------------------------------+
-| PIAFS Protocol      | Bit  |                                         |
-| Speed configuration |    S | Bit 1 - Protocol Speed                  |
-|                     |      |         0 - 32K                         |
-|                     |      |         1 - 64K (default)               |
-|                     |    V | Bit 2 - Variable Protocol Speed         |
-|                     |      |         0 - Speed is fix                |
-|                     |      |         1 - Speed is variable (default) |
-|                     |      |             OVERWRITES 32k Bit 1        |
-|                     |    C | Bit 3   0 - Speed Settings according to |
-|                     |      |             PIAFS specification         |
-|                     |      |         1 - Speed setting for chinese   |
-|                     |      |             PIAFS implementation        |
-|                     |      | Explanation for chinese speed settings: |
-|                     |      |         if Bit 3 is set the following   |
-|                     |      |         rules apply:                    |
-|                     |      |         Bit1=0 Bit2=0: 32k fix          |
-|                     |      |         Bit1=1 Bit2=0: 64k fix          |
-|                     |      |         Bit1=0 Bit2=1: PIAFS is trying  |
-|                     |      |             to negotiate 32k is that is |
-|                     |      |             not possible it tries to    |
-|                     |      |             negotiate 64k               |
-|                     |      |         Bit1=1 Bit2=1: PIAFS is trying  |
-|                     |      |             to negotiate 64k is that is |
-|                     |      |             not possible it tries to    |
-|                     |      |             negotiate 32k               |
-+ Note (2): ----------+------+-----------------------------------------+
-| PIAFS               | Bit  | this byte defines the usage of UDATA    |
-| Implementation      |      | control communication                   |
-| UDATA usage         |    D | Bit 1 - DCD-ON signalling               |
-|                     |      |         0 - no DCD-ON is signalled      |
-|                     |      |             (default)                   |
-|                     |      |         1 - DCD-ON will be signalled    |
-|                     |    U | Bit 8 - DDI test application UDATA      |
-|                     |      |         control communication           |
-|                     |      |         0 - no UDATA control            |
-|                     |      |             communication (default)     |
-|                     |      |             sets as well the DCD-ON     |
-|                     |      |             signalling                  |
-|                     |      |         1 - UDATA control communication |
-|                     |      |             ATTENTION: Do not use these |
-|                     |      |                        setting if you   |
-|                     |      |                        are not really   |
-|                     |      |                        that you need it |
-|                     |      |                        and you know     |
-|                     |      |                        exactly what you |
-|                     |      |                        are doing.       |
-|                     |      |                        You can easily   |
-|                     |      |                        disable any      |
-|                     |      |                        data transfer.   |
-+---------------------+------+-----------------------------------------+
+  |                  up to now the following Bits are defined:
+  |                  D - signal DCD ON
+  |                  U - use extensive UDATA control communication
+  |                      for DDI test application
+  + Note (1): ----------+------+-----------------------------------------+
+  | PIAFS Protocol      | Bit  |                                         |
+  | Speed configuration |    S | Bit 1 - Protocol Speed                  |
+  |                     |      |         0 - 32K                         |
+  |                     |      |         1 - 64K (default)               |
+  |                     |    V | Bit 2 - Variable Protocol Speed         |
+  |                     |      |         0 - Speed is fix                |
+  |                     |      |         1 - Speed is variable (default) |
+  |                     |      |             OVERWRITES 32k Bit 1        |
+  |                     |    C | Bit 3   0 - Speed Settings according to |
+  |                     |      |             PIAFS specification         |
+  |                     |      |         1 - Speed setting for chinese   |
+  |                     |      |             PIAFS implementation        |
+  |                     |      | Explanation for chinese speed settings: |
+  |                     |      |         if Bit 3 is set the following   |
+  |                     |      |         rules apply:                    |
+  |                     |      |         Bit1=0 Bit2=0: 32k fix          |
+  |                     |      |         Bit1=1 Bit2=0: 64k fix          |
+  |                     |      |         Bit1=0 Bit2=1: PIAFS is trying  |
+  |                     |      |             to negotiate 32k is that is |
+  |                     |      |             not possible it tries to    |
+  |                     |      |             negotiate 64k               |
+  |                     |      |         Bit1=1 Bit2=1: PIAFS is trying  |
+  |                     |      |             to negotiate 64k is that is |
+  |                     |      |             not possible it tries to    |
+  |                     |      |             negotiate 32k               |
+  + Note (2): ----------+------+-----------------------------------------+
+  | PIAFS               | Bit  | this byte defines the usage of UDATA    |
+  | Implementation      |      | control communication                   |
+  | UDATA usage         |    D | Bit 1 - DCD-ON signalling               |
+  |                     |      |         0 - no DCD-ON is signalled      |
+  |                     |      |             (default)                   |
+  |                     |      |         1 - DCD-ON will be signalled    |
+  |                     |    U | Bit 8 - DDI test application UDATA      |
+  |                     |      |         control communication           |
+  |                     |      |         0 - no UDATA control            |
+  |                     |      |             communication (default)     |
+  |                     |      |             sets as well the DCD-ON     |
+  |                     |      |             signalling                  |
+  |                     |      |         1 - UDATA control communication |
+  |                     |      |             ATTENTION: Do not use these |
+  |                     |      |                        setting if you   |
+  |                     |      |                        are not really   |
+  |                     |      |                        that you need it |
+  |                     |      |                        and you know     |
+  |                     |      |                        exactly what you |
+  |                     |      |                        are doing.       |
+  |                     |      |                        You can easily   |
+  |                     |      |                        disable any      |
+  |                     |      |                        data transfer.   |
+  +---------------------+------+-----------------------------------------+
 */
 /* ------------------------------------------------------
    LISTENER DLC DEFINITIONS
@@ -712,11 +712,11 @@ Byte | 8 7 6 5 4 3 2 1
 /*#define RESERVED85                0x85*/
 #define ADVICE_OF_CHARGE          0x86
 /*1111 0001
-to
-1111 1111
-F1H - Reserved for network operator use
-to
-FFH*/
+  to
+  1111 1111
+  F1H - Reserved for network operator use
+  to
+  FFH*/
 /* Parameter Types */
 #define DATE_AND_TIME                                           1
 #define CLI_PARAMETER_TYPE                                      2
index a616fc9..d1d0086 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef PC_INIT_H_
   0x0060          length (8)
   0x0061          RBS Answer Delay
   0x0062          RBS Config Bit 3, 4:
-                             0  0 -> Wink Start
-                             1  0 -> Loop Start
-                             0  1 -> Ground Start
-                             1  1 -> reserved
-                             Bit 5, 6:
-                             0  0 -> Pulse Dial -> Rotary
-                             1  0 -> DTMF
-                             0  1 -> MF
-                             1  1 -> reserved
+  0  0 -> Wink Start
+  1  0 -> Loop Start
+  0  1 -> Ground Start
+  1  1 -> reserved
+  Bit 5, 6:
+  0  0 -> Pulse Dial -> Rotary
+  1  0 -> DTMF
+  0  1 -> MF
+  1  1 -> reserved
   0x0063          RBS RX Digit Timeout
   0x0064          RBS Bearer Capability
   0x0065-0x0069   RBS Debug Mask
index 352ab8d..496f018 100644 (file)
@@ -1,31 +1,31 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifdef PLATFORM_GT_32BIT
 /* #define POINTER_32BIT byte * __ptr32 */
-#define POINTER_32BIT dword 
+#define POINTER_32BIT dword
 #else
 #define POINTER_32BIT byte *
 #endif
 #define NO_EVENT 1
 struct DSigStruc
 {
-  byte Id;
-  byte u;
-  byte listen;
-  byte active;
-  byte sin[3];
-  byte bc[6];
-  byte llc[6];
-  byte hlc[6];
-  byte oad[20];
+       byte Id;
+       byte u;
+       byte listen;
+       byte active;
+       byte sin[3];
+       byte bc[6];
+       byte llc[6];
+       byte hlc[6];
+       byte oad[20];
 };
 struct BL1Struc {
-  dword cx_b1;
-  dword cx_b2;
-  dword cr_b1;
-  dword cr_b2;
-  dword px_b1;
-  dword px_b2;
-  dword pr_b1;
-  dword pr_b2;
-  word er_b1;
-  word er_b2;
+       dword cx_b1;
+       dword cx_b2;
+       dword cr_b1;
+       dword cr_b2;
+       dword px_b1;
+       dword px_b2;
+       dword pr_b1;
+       dword pr_b2;
+       word er_b1;
+       word er_b2;
 };
 struct L2Struc {
-  dword XTotal;
-  dword RTotal;
-  word XError;
-  word RError;
+       dword XTotal;
+       dword RTotal;
+       word XError;
+       word RError;
 };
 struct OSStruc {
-  dword free_n;
+       dword free_n;
 };
 typedef union
 {
-  struct DSigStruc DSigStats;
-  struct BL1Struc BL1Stats;
-  struct L2Struc L2Stats;
-  struct OSStruc OSStats;
-  byte   b[BUFFER_SZ];
-  word   w[BUFFER_SZ>>1];
-  word   l[BUFFER_SZ>>2]; /* word is wrong, do not use! Use 'd' instead. */
-  dword  d[BUFFER_SZ>>2];
+       struct DSigStruc DSigStats;
+       struct BL1Struc BL1Stats;
+       struct L2Struc L2Stats;
+       struct OSStruc OSStats;
+       byte   b[BUFFER_SZ];
+       word   w[BUFFER_SZ >> 1];
+       word   l[BUFFER_SZ >> 2]; /* word is wrong, do not use! Use 'd' instead. */
+       dword  d[BUFFER_SZ >> 2];
 } BUFFER;
 typedef union
 {
-  struct DSigStruc DSigStats;
-  struct BL1Struc BL1Stats;
-  struct L2Struc L2Stats;
-  struct OSStruc OSStats;
-  byte   b[MIPS_BUFFER_SZ];
-  word   w[MIPS_BUFFER_SZ>>1];
-  word   l[BUFFER_SZ>>2]; /* word is wrong, do not use! Use 'd' instead. */
-  dword  d[MIPS_BUFFER_SZ>>2];
+       struct DSigStruc DSigStats;
+       struct BL1Struc BL1Stats;
+       struct L2Struc L2Stats;
+       struct OSStruc OSStats;
+       byte   b[MIPS_BUFFER_SZ];
+       word   w[MIPS_BUFFER_SZ >> 1];
+       word   l[BUFFER_SZ >> 2]; /* word is wrong, do not use! Use 'd' instead. */
+       dword  d[MIPS_BUFFER_SZ >> 2];
 } MIPS_BUFFER;
 #if !defined(MIPS_SCOM)
 struct pc_maint
 {
-  byte req;
-  byte rc;
-  POINTER_32BIT mem;
-  short length;
-  word port;
-  byte fill[6];
-  BUFFER data;
+       byte req;
+       byte rc;
+       POINTER_32BIT mem;
+       short length;
+       word port;
+       byte fill[6];
+       BUFFER data;
 };
 #else
 struct pc_maint
 {
-  byte req;
-  byte rc;
-  byte reserved[2];     /* R3000 alignment ... */
-  POINTER_32BIT mem;
-  short length;
-  word port;
-  byte fill[4];         /* data at offset 16   */
-  BUFFER data;
+       byte req;
+       byte rc;
+       byte reserved[2];     /* R3000 alignment ... */
+       POINTER_32BIT mem;
+       short length;
+       word port;
+       byte fill[4];         /* data at offset 16   */
+       BUFFER data;
 };
 #endif
 struct mi_pc_maint
 {
-  byte req;
-  byte rc;
-  byte reserved[2];     /* R3000 alignment ... */
-  POINTER_32BIT mem;
-  short length;
-  word port;
-  byte fill[4];         /* data at offset 16   */
-  MIPS_BUFFER data;
+       byte req;
+       byte rc;
+       byte reserved[2];     /* R3000 alignment ... */
+       POINTER_32BIT mem;
+       short length;
+       word port;
+       byte fill[4];         /* data at offset 16   */
+       MIPS_BUFFER data;
 };
index 722f85f..cf3fb14 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_XDI_OS_DEPENDENT_PACK_MAIN_ON_BYTE_INC__
 
 
 /*
-       Only one purpose of this compiler dependent file to pack
-       structures, described in pc_maint.h so that no padding
-       will be included.
+  Only one purpose of this compiler dependent file to pack
+  structures, described in pc_maint.h so that no padding
+  will be included.
 
-       With microsoft compile it is done by "pshpack1.h" and
-       after is restored by "poppack.h"
-       */
+  With microsoft compile it is done by "pshpack1.h" and
+  after is restored by "poppack.h"
+*/
 
 
 #include "pc_maint.h"
 
 
 #endif
-
index 15d4942..7331c3b 100644 (file)
@@ -1,10 +1,10 @@
 /* $Id: platform.h,v 1.37.4.6 2005/01/31 12:22:20 armin Exp $
  *
  * platform.h
- * 
+ *
  *
  * Copyright 2000-2003  by Armin Schindler (mac@melware.de)
- * Copyright 2000  Eicon Networks 
+ * Copyright 2000  Eicon Networks
  *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
 #define DIVA_OS_MEM_ATTACH_CONFIG(a)   ((a)->Config)
 #define DIVA_OS_MEM_ATTACH_CONTROL(a)  ((a)->Control)
 
-#define DIVA_OS_MEM_DETACH_RAM(a, x)   do { } while(0)
-#define DIVA_OS_MEM_DETACH_PORT(a, x)  do { } while(0)
-#define DIVA_OS_MEM_DETACH_PROM(a, x)  do { } while(0)
-#define DIVA_OS_MEM_DETACH_CTLREG(a, x)        do { } while(0)
-#define DIVA_OS_MEM_DETACH_RESET(a, x) do { } while(0)
-#define DIVA_OS_MEM_DETACH_CFG(a, x)   do { } while(0)
-#define DIVA_OS_MEM_DETACH_ADDRESS(a, x)       do { } while(0)
-#define DIVA_OS_MEM_DETACH_CONFIG(a, x)        do { } while(0)
-#define DIVA_OS_MEM_DETACH_CONTROL(a, x)       do { } while(0)
+#define DIVA_OS_MEM_DETACH_RAM(a, x)   do { } while (0)
+#define DIVA_OS_MEM_DETACH_PORT(a, x)  do { } while (0)
+#define DIVA_OS_MEM_DETACH_PROM(a, x)  do { } while (0)
+#define DIVA_OS_MEM_DETACH_CTLREG(a, x)        do { } while (0)
+#define DIVA_OS_MEM_DETACH_RESET(a, x) do { } while (0)
+#define DIVA_OS_MEM_DETACH_CFG(a, x)   do { } while (0)
+#define DIVA_OS_MEM_DETACH_ADDRESS(a, x)       do { } while (0)
+#define DIVA_OS_MEM_DETACH_CONFIG(a, x)        do { } while (0)
+#define DIVA_OS_MEM_DETACH_CONTROL(a, x)       do { } while (0)
 
 #define DIVA_INVALID_FILE_HANDLE  ((dword)(-1))
 
-#define DIVAS_CONTAINING_RECORD(address, type, field) \
-        ((type *)((char*)(address) - (char*)(&((type *)0)->field)))
+#define DIVAS_CONTAINING_RECORD(address, type, field)                  \
+       ((type *)((char *)(address) - (char *)(&((type *)0)->field)))
 
-extern int sprintf(char *, const char*, ...);
+extern int sprintf(char *, const char *, ...);
 
-typedef voidLIST_ENTRY;
+typedef void *LIST_ENTRY;
 
-typedef char    DEVICE_NAME[64];
-typedef struct _ISDN_ADAPTER   ISDN_ADAPTER;
-typedef struct _ISDN_ADAPTERPISDN_ADAPTER;
+typedef char DEVICE_NAME[64];
+typedef struct _ISDN_ADAPTER ISDN_ADAPTER;
+typedef struct _ISDN_ADAPTER *PISDN_ADAPTER;
 
-typedef void (* DIVA_DI_PRINTF) (unsigned char *, ...);
+typedef void (*DIVA_DI_PRINTF)(unsigned char *, ...);
 #include "debuglib.h"
 
 #define dtrc(p) DBG_PRV0(p)
-#define dbug(a,p) DBG_PRV1(p)
+#define dbug(a, p) DBG_PRV1(p)
 
 
-typedef struct e_info_s E_INFO ;
+typedef struct e_info_s E_INFO;
 
 typedef char diva_os_dependent_devica_name_t[64];
-typedef voidPDEVICE_OBJECT;
+typedef void *PDEVICE_OBJECT;
 
 struct _diva_os_soft_isr;
 struct _diva_os_timer;
@@ -156,13 +156,13 @@ void diva_log_info(unsigned char *, ...);
 /*
 **  XDI DIDD Interface
 */
-void diva_xdi_didd_register_adapter (int card);
-void diva_xdi_didd_remove_adapter (int card);
+void diva_xdi_didd_register_adapter(int card);
+void diva_xdi_didd_remove_adapter(int card);
 
 /*
 ** memory allocation
 */
-static __inline__ void* diva_os_malloc (unsigned long flags, unsigned long size)
+static __inline__ void *diva_os_malloc(unsigned long flags, unsigned long size)
 {
        void *ret = NULL;
 
@@ -171,7 +171,7 @@ static __inline__ void* diva_os_malloc (unsigned long flags, unsigned long size)
        }
        return (ret);
 }
-static __inline__ void  diva_os_free   (unsigned long flags, void* ptr)
+static __inline__ void diva_os_free(unsigned long flags, void *ptr)
 {
        vfree(ptr);
 }
@@ -200,34 +200,34 @@ static __inline__ void diva_os_wait(dword mSec)
 /*
 **  PCI Configuration space access
 */
-void PCIwrite (byte bus, byte func, int offset, void* data, int length, void* pci_dev_handle);
-void PCIread (byte bus, byte func, int offset, void* data, int length, void* pci_dev_handle);
+void PCIwrite(byte bus, byte func, int offset, void *data, int length, void *pci_dev_handle);
+void PCIread(byte bus, byte func, int offset, void *data, int length, void *pci_dev_handle);
 
 /*
 **  I/O Port utilities
 */
-int diva_os_register_io_port (void *adapter, int register, unsigned long port,
-                               unsigned long length, const char* name, int id);
+int diva_os_register_io_port(void *adapter, int register, unsigned long port,
+                            unsigned long length, const char *name, int id);
 /*
 **  I/O port access abstraction
 */
-byte inpp (void __iomem *);
-word inppw (void __iomem *);
-void inppw_buffer (void __iomem *, void*, int);
-void outppw (void __iomem *, word);
-void outppw_buffer (void __iomem * , void*, int);
-void outpp (void __iomem *, word);
+byte inpp(void __iomem *);
+word inppw(void __iomem *);
+void inppw_buffer(void __iomem *, void *, int);
+void outppw(void __iomem *, word);
+void outppw_buffer(void __iomem * , void*, int);
+void outpp(void __iomem *, word);
 
 /*
-**  IRQ 
+**  IRQ
 */
 typedef struct _diva_os_adapter_irq_info {
-        byte irq_nr;
-        int  registered;
-        char irq_name[24];
+       byte irq_nr;
+       int  registered;
+       char irq_name[24];
 } diva_os_adapter_irq_info_t;
-int diva_os_register_irq (void* context, byte irq, const char* name);
-void diva_os_remove_irq (void* context, byte irq);
+int diva_os_register_irq(void *context, byte irq, const char *name);
+void diva_os_remove_irq(void *context, byte irq);
 
 #define diva_os_in_irq() in_irq()
 
@@ -236,58 +236,58 @@ void diva_os_remove_irq (void* context, byte irq);
 */
 typedef long diva_os_spin_lock_magic_t;
 typedef spinlock_t diva_os_spin_lock_t;
-static __inline__ int diva_os_initialize_spin_lock (spinlock_t *lock, void * unused) { \
-  spin_lock_init (lock); return(0); }
-static __inline__ void diva_os_enter_spin_lock (diva_os_spin_lock_t* a, \
-                              diva_os_spin_lock_magic_t* old_irql, \
-                              void* dbg) { spin_lock_bh(a); }
-static __inline__ void diva_os_leave_spin_lock (diva_os_spin_lock_t* a, \
-                              diva_os_spin_lock_magic_t* old_irql, \
-                              void* dbg) { spin_unlock_bh(a); }
+static __inline__ int diva_os_initialize_spin_lock(spinlock_t *lock, void *unused) { \
+       spin_lock_init(lock); return (0); }
+static __inline__ void diva_os_enter_spin_lock(diva_os_spin_lock_t *a, \
+                                              diva_os_spin_lock_magic_t *old_irql, \
+                                              void *dbg) { spin_lock_bh(a); }
+static __inline__ void diva_os_leave_spin_lock(diva_os_spin_lock_t *a, \
+                                              diva_os_spin_lock_magic_t *old_irql, \
+                                              void *dbg) { spin_unlock_bh(a); }
 
-#define diva_os_destroy_spin_lock(a,b) do { } while(0)
+#define diva_os_destroy_spin_lock(a, b) do { } while (0)
 
 /*
 **  Deffered processing framework
 */
-typedef int (*diva_os_isr_callback_t)(struct _ISDN_ADAPTER*);
-typedef void (*diva_os_soft_isr_callback_t)(struct _diva_os_soft_isr* psoft_isr, void* context);
+typedef int (*diva_os_isr_callback_t)(struct _ISDN_ADAPTER *);
+typedef void (*diva_os_soft_isr_callback_t)(struct _diva_os_soft_isr *psoft_isr, void *context);
 
 typedef struct _diva_os_soft_isr {
-  void* object;
-  diva_os_soft_isr_callback_t callback;
-  void* callback_context;
-  char dpc_thread_name[24];
+       void *object;
+       diva_os_soft_isr_callback_t callback;
+       void *callback_context;
+       char dpc_thread_name[24];
 } diva_os_soft_isr_t;
 
-int diva_os_initialize_soft_isr (diva_os_soft_isr_t* psoft_isr, diva_os_soft_isr_callback_t callback, void*   callback_context);
-int diva_os_schedule_soft_isr (diva_os_soft_isr_t* psoft_isr);
-int diva_os_cancel_soft_isr (diva_os_soft_isr_t* psoft_isr);
-void diva_os_remove_soft_isr (diva_os_soft_isr_t* psoft_isr);
+int diva_os_initialize_soft_isr(diva_os_soft_isr_t *psoft_isr, diva_os_soft_isr_callback_t callback, void *callback_context);
+int diva_os_schedule_soft_isr(diva_os_soft_isr_t *psoft_isr);
+int diva_os_cancel_soft_isr(diva_os_soft_isr_t *psoft_isr);
+void diva_os_remove_soft_isr(diva_os_soft_isr_t *psoft_isr);
 
 /*
   Get time service
-  */
-void diva_os_get_time (dword* sec, dword* usec);
+*/
+void diva_os_get_time(dword *sec, dword *usec);
 
 /*
 **  atomic operation, fake because we use threads
 */
 typedef int diva_os_atomic_t;
 static diva_os_atomic_t __inline__
-diva_os_atomic_increment(diva_os_atomic_tpv)
+diva_os_atomic_increment(diva_os_atomic_t *pv)
 {
-  *pv += 1;
-  return (*pv);
+       *pv += 1;
+       return (*pv);
 }
 static diva_os_atomic_t __inline__
-diva_os_atomic_decrement(diva_os_atomic_tpv)
+diva_os_atomic_decrement(diva_os_atomic_t *pv)
 {
-  *pv -= 1;
-  return (*pv);
+       *pv -= 1;
+       return (*pv);
 }
 
-/* 
+/*
 **  CAPI SECTION
 */
 #define NO_CORNETN
@@ -319,9 +319,9 @@ diva_os_atomic_decrement(diva_os_atomic_t* pv)
 #define READ_WORD(addr)   readw(addr)
 #define READ_DWORD(addr)  readl(addr)
 
-#define WRITE_BYTE(addr,v)  writeb(v,addr)
-#define WRITE_WORD(addr,v)  writew(v,addr)
-#define WRITE_DWORD(addr,v) writel(v,addr)
+#define WRITE_BYTE(addr, v)  writeb(v, addr)
+#define WRITE_WORD(addr, v)  writew(v, addr)
+#define WRITE_DWORD(addr, v) writel(v, addr)
 
 static inline __u16 GET_WORD(void *addr)
 {
@@ -344,10 +344,10 @@ static inline void PUT_DWORD(void *addr, __u32 v)
 ** 32/64 bit macors
 */
 #ifdef BITS_PER_LONG
- #if BITS_PER_LONG > 32 
-  #define PLATFORM_GT_32BIT
-  #define ULongToPtr(x) (void *)(unsigned long)(x)
- #endif
+#if BITS_PER_LONG > 32
+#define PLATFORM_GT_32BIT
+#define ULongToPtr(x) (void *)(unsigned long)(x)
+#endif
 #endif
 
 /*
@@ -362,7 +362,7 @@ static inline void PUT_DWORD(void *addr, __u32 v)
 */
 #define diva_os_dump_file_t char
 #define diva_os_board_trace_t char
-#define diva_os_dump_file(__x__) do { } while(0)
+#define diva_os_dump_file(__x__) do { } while (0)
 
 /*
 ** size of internal arrays
index bf49a5a..a08d6d5 100644 (file)
@@ -1,76 +1,76 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 struct pr_ram {
-  word NextReq;         /* pointer to next Req Buffer               */
-  word NextRc;          /* pointer to next Rc Buffer                */
-  word NextInd;         /* pointer to next Ind Buffer               */
-  byte ReqInput;        /* number of Req Buffers sent               */
-  byte ReqOutput;       /* number of Req Buffers returned           */
-  byte ReqReserved;     /* number of Req Buffers reserved           */
-  byte Int;             /* ISDN-P interrupt                         */
-  byte XLock;           /* Lock field for arbitration               */
-  byte RcOutput;        /* number of Rc buffers received            */
-  byte IndOutput;       /* number of Ind buffers received           */
-  byte IMask;           /* Interrupt Mask Flag                      */
-  byte Reserved1[2];    /* reserved field, do not use               */
-  byte ReadyInt;        /* request field for ready interrupt        */
-  byte Reserved2[12];   /* reserved field, do not use               */
-  byte InterfaceType;   /* interface type 1=16K interface           */
-  word Signature;       /* ISDN-P initialized indication            */
-  byte B[1];            /* buffer space for Req,Ind and Rc          */
+       word NextReq;         /* pointer to next Req Buffer               */
+       word NextRc;          /* pointer to next Rc Buffer                */
+       word NextInd;         /* pointer to next Ind Buffer               */
+       byte ReqInput;        /* number of Req Buffers sent               */
+       byte ReqOutput;       /* number of Req Buffers returned           */
+       byte ReqReserved;     /* number of Req Buffers reserved           */
+       byte Int;             /* ISDN-P interrupt                         */
+       byte XLock;           /* Lock field for arbitration               */
+       byte RcOutput;        /* number of Rc buffers received            */
+       byte IndOutput;       /* number of Ind buffers received           */
+       byte IMask;           /* Interrupt Mask Flag                      */
+       byte Reserved1[2];    /* reserved field, do not use               */
+       byte ReadyInt;        /* request field for ready interrupt        */
+       byte Reserved2[12];   /* reserved field, do not use               */
+       byte InterfaceType;   /* interface type 1=16K interface           */
+       word Signature;       /* ISDN-P initialized indication            */
+       byte B[1];            /* buffer space for Req,Ind and Rc          */
 };
 typedef struct {
-  word next;
-  byte Req;
-  byte ReqId;
-  byte ReqCh;
-  byte Reserved1;
-  word Reference;
-  byte Reserved[8];
-  PBUFFER XBuffer;
+       word next;
+       byte Req;
+       byte ReqId;
+       byte ReqCh;
+       byte Reserved1;
+       word Reference;
+       byte Reserved[8];
+       PBUFFER XBuffer;
 } REQ;
 typedef struct {
-  word next;
-  byte Rc;
-  byte RcId;
-  byte RcCh;
-  byte Reserved1;
-  word Reference;
-  byte Reserved2[8];
+       word next;
+       byte Rc;
+       byte RcId;
+       byte RcCh;
+       byte Reserved1;
+       word Reference;
+       byte Reserved2[8];
 } RC;
 typedef struct {
-  word next;
-  byte Ind;
-  byte IndId;
-  byte IndCh;
-  byte MInd;
-  word MLength;
-  word Reference;
-  byte RNR;
-  byte Reserved;
-  dword Ack;
-  PBUFFER RBuffer;
+       word next;
+       byte Ind;
+       byte IndId;
+       byte IndCh;
+       byte MInd;
+       word MLength;
+       word Reference;
+       byte RNR;
+       byte Reserved;
+       dword Ack;
+       PBUFFER RBuffer;
 } IND;
index 25c5d7f..ec12165 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 #define        MAX_XLOG_SIZE   (64 * 1024)
 
 /* --------------------------------------------------------------------------
-               Recovery XLOG from QBRI Card
-        -------------------------------------------------------------------------- */
-static void qBri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
-       byte  __iomem *base ;
-       word *Xlog ;
-       dword   regs[4], TrapID, offset, size ;
-       Xdesc   xlogDesc ;
+   Recovery XLOG from QBRI Card
+   -------------------------------------------------------------------------- */
+static void qBri_cpu_trapped(PISDN_ADAPTER IoAdapter) {
+       byte  __iomem *base;
+       word *Xlog;
+       dword   regs[4], TrapID, offset, size;
+       Xdesc   xlogDesc;
        int factor = (IoAdapter->tasks == 1) ? 1 : 2;
 
 /*
@@ -56,211 +56,211 @@ static void qBri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
  */
 
        base = DIVA_OS_MEM_ATTACH_CONTROL(IoAdapter);
-       offset = IoAdapter->ControllerNumber * (IoAdapter->MemorySize >> factor) ;
+       offset = IoAdapter->ControllerNumber * (IoAdapter->MemorySize >> factor);
 
-       TrapID = READ_DWORD(&base[0x80]) ;
+       TrapID = READ_DWORD(&base[0x80]);
 
-       if ( (TrapID == 0x99999999) || (TrapID == 0x99999901) )
+       if ((TrapID == 0x99999999) || (TrapID == 0x99999901))
        {
-               dump_trap_frame (IoAdapter, &base[0x90]) ;
-               IoAdapter->trapped = 1 ;
+               dump_trap_frame(IoAdapter, &base[0x90]);
+               IoAdapter->trapped = 1;
        }
 
        regs[0] = READ_DWORD((base + offset) + 0x70);
        regs[1] = READ_DWORD((base + offset) + 0x74);
        regs[2] = READ_DWORD((base + offset) + 0x78);
        regs[3] = READ_DWORD((base + offset) + 0x7c);
-       regs[0] &= IoAdapter->MemorySize - 1 ;
+       regs[0] &= IoAdapter->MemorySize - 1;
 
-       if ( (regs[0] >= offset)
-         && (regs[0] < offset + (IoAdapter->MemorySize >> factor) - 1) )
+       if ((regs[0] >= offset)
+           && (regs[0] < offset + (IoAdapter->MemorySize >> factor) - 1))
        {
-               if ( !(Xlog = (word *)diva_os_malloc (0, MAX_XLOG_SIZE)) ) {
+               if (!(Xlog = (word *)diva_os_malloc(0, MAX_XLOG_SIZE))) {
                        DIVA_OS_MEM_DETACH_CONTROL(IoAdapter, base);
-                       return ;
+                       return;
                }
 
-               size = offset + (IoAdapter->MemorySize >> factor) - regs[0] ;
-               if ( size > MAX_XLOG_SIZE )
-                       size = MAX_XLOG_SIZE ;
-               memcpy_fromio (Xlog, &base[regs[0]], size) ;
-               xlogDesc.buf = Xlog ;
-               xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]) ;
-               xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]) ;
-               dump_xlog_buffer (IoAdapter, &xlogDesc) ;
-               diva_os_free (0, Xlog) ;
-               IoAdapter->trapped = 2 ;
+               size = offset + (IoAdapter->MemorySize >> factor) - regs[0];
+               if (size > MAX_XLOG_SIZE)
+                       size = MAX_XLOG_SIZE;
+               memcpy_fromio(Xlog, &base[regs[0]], size);
+               xlogDesc.buf = Xlog;
+               xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]);
+               xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]);
+               dump_xlog_buffer(IoAdapter, &xlogDesc);
+               diva_os_free(0, Xlog);
+               IoAdapter->trapped = 2;
        }
        DIVA_OS_MEM_DETACH_CONTROL(IoAdapter, base);
 }
 
 /* --------------------------------------------------------------------------
-               Reset QBRI Hardware
-        -------------------------------------------------------------------------- */
-static void reset_qBri_hardware (PISDN_ADAPTER IoAdapter) {
-       word volatile __iomem *qBriReset ;
-       byte  volatile __iomem *qBriCntrl ;
-       byte  volatile __iomem *p ;
+   Reset QBRI Hardware
+   -------------------------------------------------------------------------- */
+static void reset_qBri_hardware(PISDN_ADAPTER IoAdapter) {
+       word volatile __iomem *qBriReset;
+       byte  volatile __iomem *qBriCntrl;
+       byte  volatile __iomem *p;
 
        qBriReset = (word volatile __iomem *)DIVA_OS_MEM_ATTACH_PROM(IoAdapter);
-       WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_SOFT_RESET) ;
-       diva_os_wait (1) ;
-       WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_SOFT_RESET) ;
-       diva_os_wait (1);
-       WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_RELOAD_EEPROM) ;
-       diva_os_wait (1) ;
-       WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_RELOAD_EEPROM) ;
-       diva_os_wait (1);
+       WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_SOFT_RESET);
+       diva_os_wait(1);
+       WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_SOFT_RESET);
+       diva_os_wait(1);
+       WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_RELOAD_EEPROM);
+       diva_os_wait(1);
+       WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_RELOAD_EEPROM);
+       diva_os_wait(1);
        DIVA_OS_MEM_DETACH_PROM(IoAdapter, qBriReset);
 
        qBriCntrl = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        p = &qBriCntrl[DIVA_4BRI_REVISION(IoAdapter) ? (MQ2_BREG_RISC) : (MQ_BREG_RISC)];
-       WRITE_DWORD(p, 0) ;
+       WRITE_DWORD(p, 0);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, qBriCntrl);
 
        DBG_TRC(("resetted board @ reset addr 0x%08lx", qBriReset))
-       DBG_TRC(("resetted board @ cntrl addr 0x%08lx", p))
-}
+               DBG_TRC(("resetted board @ cntrl addr 0x%08lx", p))
+               }
 
 /* --------------------------------------------------------------------------
-               Start Card CPU
-        -------------------------------------------------------------------------- */
-void start_qBri_hardware (PISDN_ADAPTER IoAdapter) {
-       byte volatile __iomem *qBriReset ;
-       byte volatile __iomem *p ;
+   Start Card CPU
+   -------------------------------------------------------------------------- */
+void start_qBri_hardware(PISDN_ADAPTER IoAdapter) {
+       byte volatile __iomem *qBriReset;
+       byte volatile __iomem *p;
 
        p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        qBriReset = &p[(DIVA_4BRI_REVISION(IoAdapter)) ? (MQ2_BREG_RISC) : (MQ_BREG_RISC)];
-       WRITE_DWORD(qBriReset, MQ_RISC_COLD_RESET_MASK) ;
-       diva_os_wait (2) ;
-       WRITE_DWORD(qBriReset, MQ_RISC_WARM_RESET_MASK | MQ_RISC_COLD_RESET_MASK) ;
-       diva_os_wait (10) ;
+       WRITE_DWORD(qBriReset, MQ_RISC_COLD_RESET_MASK);
+       diva_os_wait(2);
+       WRITE_DWORD(qBriReset, MQ_RISC_WARM_RESET_MASK | MQ_RISC_COLD_RESET_MASK);
+       diva_os_wait(10);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 
        DBG_TRC(("started processor @ addr 0x%08lx", qBriReset))
-}
+               }
 
 /* --------------------------------------------------------------------------
-               Stop Card CPU
-        -------------------------------------------------------------------------- */
-static void stop_qBri_hardware (PISDN_ADAPTER IoAdapter) {
-       byte volatile __iomem *p ;
-       dword volatile __iomem *qBriReset ;
-       dword volatile __iomem *qBriIrq ;
-       dword volatile __iomem *qBriIsacDspReset ;
+   Stop Card CPU
+   -------------------------------------------------------------------------- */
+static void stop_qBri_hardware(PISDN_ADAPTER IoAdapter) {
+       byte volatile __iomem *p;
+       dword volatile __iomem *qBriReset;
+       dword volatile __iomem *qBriIrq;
+       dword volatile __iomem *qBriIsacDspReset;
        int rev2 = DIVA_4BRI_REVISION(IoAdapter);
        int reset_offset = rev2 ? (MQ2_BREG_RISC)      : (MQ_BREG_RISC);
        int irq_offset   = rev2 ? (MQ2_BREG_IRQ_TEST)  : (MQ_BREG_IRQ_TEST);
        int hw_offset    = rev2 ? (MQ2_ISAC_DSP_RESET) : (MQ_ISAC_DSP_RESET);
 
-       if ( IoAdapter->ControllerNumber > 0 )
-               return ;
+       if (IoAdapter->ControllerNumber > 0)
+               return;
        p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        qBriReset = (dword volatile __iomem *)&p[reset_offset];
        qBriIsacDspReset = (dword volatile __iomem *)&p[hw_offset];
 /*
  *     clear interrupt line (reset Local Interrupt Test Register)
  */
-       WRITE_DWORD(qBriReset, 0) ;
-       WRITE_DWORD(qBriIsacDspReset, 0) ;
+       WRITE_DWORD(qBriReset, 0);
+       WRITE_DWORD(qBriIsacDspReset, 0);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
-       
+
        p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
        WRITE_BYTE(&p[PLX9054_INTCSR], 0x00);   /* disable PCI interrupts */
        DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
-       
+
        p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        qBriIrq   = (dword volatile __iomem *)&p[irq_offset];
-       WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF) ;
+       WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 
        DBG_TRC(("stopped processor @ addr 0x%08lx", qBriReset))
 
-}
+               }
 
 /* --------------------------------------------------------------------------
-               FPGA download
-        -------------------------------------------------------------------------- */
+   FPGA download
+   -------------------------------------------------------------------------- */
 #define FPGA_NAME_OFFSET         0x10
 
-static byte * qBri_check_FPGAsrc (PISDN_ADAPTER IoAdapter, char *FileName,
-                                  dword *Length, dword *code) {
-       byte *File ;
-       char  *fpgaFile, *fpgaType, *fpgaDate, *fpgaTime ;
-       dword  fpgaFlen,  fpgaTlen,  fpgaDlen, cnt, year, i ;
+static byte *qBri_check_FPGAsrc(PISDN_ADAPTER IoAdapter, char *FileName,
+                               dword *Length, dword *code) {
+       byte *File;
+       char *fpgaFile, *fpgaType, *fpgaDate, *fpgaTime;
+       dword fpgaFlen, fpgaTlen, fpgaDlen, cnt, year, i;
 
-       if (!(File = (byte *)xdiLoadFile (FileName, Length, 0))) {
-               return (NULL) ;
+       if (!(File = (byte *)xdiLoadFile(FileName, Length, 0))) {
+               return (NULL);
        }
 /*
  *      scan file until FF and put id string into buffer
  */
-       for ( i = 0 ; File[i] != 0xff ; )
+       for (i = 0; File[i] != 0xff;)
        {
-               if ( ++i >= *Length )
+               if (++i >= *Length)
                {
                        DBG_FTL(("FPGA download: start of data header not found"))
-                       xdiFreeFile (File) ;
-                       return (NULL) ;
+                               xdiFreeFile(File);
+                       return (NULL);
                }
        }
-       *code = i++ ;
+       *code = i++;
 
-       if ( (File[i] & 0xF0) != 0x20 )
+       if ((File[i] & 0xF0) != 0x20)
        {
                DBG_FTL(("FPGA download: data header corrupted"))
-               xdiFreeFile (File) ;
-               return (NULL) ;
+                       xdiFreeFile(File);
+               return (NULL);
        }
-       fpgaFlen = (dword)  File[FPGA_NAME_OFFSET - 1] ;
-       if ( fpgaFlen == 0 )
-               fpgaFlen = 12 ;
-       fpgaFile = (char *)&File[FPGA_NAME_OFFSET] ;
-       fpgaTlen = (dword)  fpgaFile[fpgaFlen + 2] ;
-       if ( fpgaTlen == 0 )
-               fpgaTlen = 10 ;
-       fpgaType = (char *)&fpgaFile[fpgaFlen + 3] ;
-       fpgaDlen = (dword)  fpgaType[fpgaTlen + 2] ;
-       if ( fpgaDlen == 0 )
-               fpgaDlen = 11 ;
-       fpgaDate = (char *)&fpgaType[fpgaTlen + 3] ;
-       fpgaTime = (char *)&fpgaDate[fpgaDlen + 3] ;
-       cnt = (dword)(((File[  i  ] & 0x0F) << 20) + (File[i + 1] << 12)
-                    + (File[i + 2]         <<  4) + (File[i + 3] >>  4)) ;
-
-       if ( (dword)(i + (cnt / 8)) > *Length )
+       fpgaFlen = (dword)File[FPGA_NAME_OFFSET - 1];
+       if (fpgaFlen == 0)
+               fpgaFlen = 12;
+       fpgaFile = (char *)&File[FPGA_NAME_OFFSET];
+       fpgaTlen = (dword)fpgaFile[fpgaFlen + 2];
+       if (fpgaTlen == 0)
+               fpgaTlen = 10;
+       fpgaType = (char *)&fpgaFile[fpgaFlen + 3];
+       fpgaDlen = (dword)  fpgaType[fpgaTlen + 2];
+       if (fpgaDlen == 0)
+               fpgaDlen = 11;
+       fpgaDate = (char *)&fpgaType[fpgaTlen + 3];
+       fpgaTime = (char *)&fpgaDate[fpgaDlen + 3];
+       cnt = (dword)(((File[i] & 0x0F) << 20) + (File[i + 1] << 12)
+                     + (File[i + 2] << 4) + (File[i + 3] >> 4));
+
+       if ((dword)(i + (cnt / 8)) > *Length)
        {
                DBG_FTL(("FPGA download: '%s' file too small (%ld < %ld)",
-                        FileName, *Length, code + ((cnt + 7) / 8) ))
-               xdiFreeFile (File) ;
-               return (NULL) ;
+                        FileName, *Length, code + ((cnt + 7) / 8)))
+                       xdiFreeFile(File);
+               return (NULL);
        }
-       i = 0 ;
+       i = 0;
        do
        {
-               while ( (fpgaDate[i] != '\0')
-                    && ((fpgaDate[i] < '0') || (fpgaDate[i] > '9')) )
+               while ((fpgaDate[i] != '\0')
+                      && ((fpgaDate[i] < '0') || (fpgaDate[i] > '9')))
                {
                        i++;
                }
-               year = 0 ;
-               while ( (fpgaDate[i] >= '0') && (fpgaDate[i] <= '9') )
-                       year = year * 10 + (fpgaDate[i++] - '0') ;
-       } while ( (year < 2000) && (fpgaDate[i] != '\0') );
+               year = 0;
+               while ((fpgaDate[i] >= '0') && (fpgaDate[i] <= '9'))
+                       year = year * 10 + (fpgaDate[i++] - '0');
+       } while ((year < 2000) && (fpgaDate[i] != '\0'));
 
        switch (IoAdapter->cardType) {
-               case CARDTYPE_DIVASRV_B_2F_PCI:
-                       break;
+       case CARDTYPE_DIVASRV_B_2F_PCI:
+               break;
 
-               default:
-           if ( year >= 2001 ) {
-                               IoAdapter->fpga_features |= PCINIT_FPGA_PLX_ACCESS_SUPPORTED ;
-                       }
+       default:
+               if (year >= 2001) {
+                       IoAdapter->fpga_features |= PCINIT_FPGA_PLX_ACCESS_SUPPORTED;
+               }
        }
 
        DBG_LOG(("FPGA[%s] file %s (%s %s) len %d",
-                fpgaType, fpgaFile, fpgaDate, fpgaTime, cnt))
-       return (File) ;
+                fpgaType, fpgaFile, fpgaDate, fpgaTime, cnt))
+               return (File);
 }
 
 /******************************************************************************/
@@ -272,114 +272,114 @@ static byte * qBri_check_FPGAsrc (PISDN_ADAPTER IoAdapter, char *FileName,
 #define FPGA_DOUT   0x0400
 #define FPGA_DIN    FPGA_DOUT   /* bidirectional I/O */
 
-int qBri_FPGA_download (PISDN_ADAPTER IoAdapter) {
-       int            bit ;
-       byte           *File ;
-       dword          code, FileLength ;
+int qBri_FPGA_download(PISDN_ADAPTER IoAdapter) {
+       int            bit;
+       byte           *File;
+       dword          code, FileLength;
        word volatile __iomem *addr = (word volatile __iomem *)DIVA_OS_MEM_ATTACH_PROM(IoAdapter);
-       word           val, baseval = FPGA_CS | FPGA_PROG ;
+       word           val, baseval = FPGA_CS | FPGA_PROG;
 
 
 
        if (DIVA_4BRI_REVISION(IoAdapter))
        {
-               charname;
+               char *name;
 
                switch (IoAdapter->cardType) {
-                       case CARDTYPE_DIVASRV_B_2F_PCI:
-                               name = "dsbri2f.bit";
-                               break;
+               case CARDTYPE_DIVASRV_B_2F_PCI:
+                       name = "dsbri2f.bit";
+                       break;
 
-                       case CARDTYPE_DIVASRV_B_2M_V2_PCI:
-                       case CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI:
-                               name = "dsbri2m.bit";
-                               break;
+               case CARDTYPE_DIVASRV_B_2M_V2_PCI:
+               case CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI:
+                       name = "dsbri2m.bit";
+                       break;
 
-                       default:
-                               name = "ds4bri2.bit";
+               default:
+                       name = "ds4bri2.bit";
                }
 
-               File = qBri_check_FPGAsrc (IoAdapter, name,
-                                               &FileLength, &code);
+               File = qBri_check_FPGAsrc(IoAdapter, name,
+                                         &FileLength, &code);
        }
        else
        {
-               File = qBri_check_FPGAsrc (IoAdapter, "ds4bri.bit",
-                                          &FileLength, &code) ;
+               File = qBri_check_FPGAsrc(IoAdapter, "ds4bri.bit",
+                                         &FileLength, &code);
        }
-       if ( !File ) {
+       if (!File) {
                DIVA_OS_MEM_DETACH_PROM(IoAdapter, addr);
-               return (0) ;
+               return (0);
        }
 /*
  *     prepare download, pulse PROGRAM pin down.
  */
-       WRITE_WORD(addr, baseval & ~FPGA_PROG) ; /* PROGRAM low pulse */
-       WRITE_WORD(addr, baseval) ;              /* release */
-       diva_os_wait (50) ;  /* wait until FPGA finished internal memory clear */
+       WRITE_WORD(addr, baseval & ~FPGA_PROG); /* PROGRAM low pulse */
+       WRITE_WORD(addr, baseval);              /* release */
+       diva_os_wait(50);  /* wait until FPGA finished internal memory clear */
 /*
  *     check done pin, must be low
  */
-       if ( READ_WORD(addr) & FPGA_BUSY )
+       if (READ_WORD(addr) & FPGA_BUSY)
        {
                DBG_FTL(("FPGA download: acknowledge for FPGA memory clear missing"))
-               xdiFreeFile (File) ;
+                       xdiFreeFile(File);
                DIVA_OS_MEM_DETACH_PROM(IoAdapter, addr);
-               return (0) ;
+               return (0);
        }
 /*
  *     put data onto the FPGA
  */
-       while ( code < FileLength )
+       while (code < FileLength)
        {
-               val = ((word)File[code++]) << 3 ;
+               val = ((word)File[code++]) << 3;
 
-               for ( bit = 8 ; bit-- > 0 ; val <<= 1 ) /* put byte onto FPGA */
+               for (bit = 8; bit-- > 0; val <<= 1) /* put byte onto FPGA */
                {
-                       baseval &= ~FPGA_DOUT ;             /* clr  data bit */
-                       baseval |= (val & FPGA_DOUT) ;      /* copy data bit */
-                       WRITE_WORD(addr, baseval) ;
-                       WRITE_WORD(addr, baseval | FPGA_CCLK) ;     /* set CCLK hi */
-                       WRITE_WORD(addr, baseval | FPGA_CCLK) ;     /* set CCLK hi */
-                       WRITE_WORD(addr, baseval) ;                 /* set CCLK lo */
+                       baseval &= ~FPGA_DOUT;             /* clr  data bit */
+                       baseval |= (val & FPGA_DOUT);      /* copy data bit */
+                       WRITE_WORD(addr, baseval);
+                       WRITE_WORD(addr, baseval | FPGA_CCLK);     /* set CCLK hi */
+                       WRITE_WORD(addr, baseval | FPGA_CCLK);     /* set CCLK hi */
+                       WRITE_WORD(addr, baseval);                 /* set CCLK lo */
                }
        }
-       xdiFreeFile (File) ;
-       diva_os_wait (100) ;
-       val = READ_WORD(addr) ;
+       xdiFreeFile(File);
+       diva_os_wait(100);
+       val = READ_WORD(addr);
 
        DIVA_OS_MEM_DETACH_PROM(IoAdapter, addr);
 
-       if ( !(val & FPGA_BUSY) )
+       if (!(val & FPGA_BUSY))
        {
                DBG_FTL(("FPGA download: chip remains in busy state (0x%04x)", val))
-               return (0) ;
+                       return (0);
        }
 
-       return (1) ;
+       return (1);
 }
 
-static int load_qBri_hardware (PISDN_ADAPTER IoAdapter) {
+static int load_qBri_hardware(PISDN_ADAPTER IoAdapter) {
        return (0);
 }
 
 /* --------------------------------------------------------------------------
-               Card ISR
-        -------------------------------------------------------------------------- */
-static int qBri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
-       dword volatile     __iomem *qBriIrq ;
+   Card ISR
+   -------------------------------------------------------------------------- */
+static int qBri_ISR(struct _ISDN_ADAPTER *IoAdapter) {
+       dword volatile     __iomem *qBriIrq;
 
-       PADAPTER_LIST_ENTRY QuadroList = IoAdapter->QuadroList ;
+       PADAPTER_LIST_ENTRY QuadroList = IoAdapter->QuadroList;
 
-       word                    i ;
-       int                     serviced = 0 ;
+       word                    i;
+       int                     serviced = 0;
        byte __iomem *p;
 
        p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
 
-       if ( !(READ_BYTE(&p[PLX9054_INTCSR]) & 0x80) ) {
+       if (!(READ_BYTE(&p[PLX9054_INTCSR]) & 0x80)) {
                DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
-               return (0) ;
+               return (0);
        }
        DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
 
@@ -388,34 +388,34 @@ static int qBri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
  */
        p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        qBriIrq = (dword volatile __iomem *)(&p[DIVA_4BRI_REVISION(IoAdapter) ? (MQ2_BREG_IRQ_TEST)  : (MQ_BREG_IRQ_TEST)]);
-       WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF) ;
+       WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 
-       for ( i = 0 ; i < IoAdapter->tasks; ++i )
+       for (i = 0; i < IoAdapter->tasks; ++i)
        {
-               IoAdapter = QuadroList->QuadroAdapter[i] ;
+               IoAdapter = QuadroList->QuadroAdapter[i];
 
-               if ( IoAdapter && IoAdapter->Initialized
-                 && IoAdapter->tst_irq (&IoAdapter->a) )
+               if (IoAdapter && IoAdapter->Initialized
+                   && IoAdapter->tst_irq(&IoAdapter->a))
                {
-                       IoAdapter->IrqCount++ ;
-                       serviced = 1 ;
-                       diva_os_schedule_soft_isr (&IoAdapter->isr_soft_isr);
+                       IoAdapter->IrqCount++;
+                       serviced = 1;
+                       diva_os_schedule_soft_isr(&IoAdapter->isr_soft_isr);
                }
        }
 
-       return (serviced) ;
+       return (serviced);
 }
 
 /* --------------------------------------------------------------------------
-               Does disable the interrupt on the card
-        -------------------------------------------------------------------------- */
-static void disable_qBri_interrupt (PISDN_ADAPTER IoAdapter) {
-       dword volatile __iomem *qBriIrq ;
+   Does disable the interrupt on the card
+   -------------------------------------------------------------------------- */
+static void disable_qBri_interrupt(PISDN_ADAPTER IoAdapter) {
+       dword volatile __iomem *qBriIrq;
        byte __iomem *p;
 
-       if ( IoAdapter->ControllerNumber > 0 )
-               return ;
+       if (IoAdapter->ControllerNumber > 0)
+               return;
 /*
  *     clear interrupt line (reset Local Interrupt Test Register)
  */
@@ -425,84 +425,84 @@ static void disable_qBri_interrupt (PISDN_ADAPTER IoAdapter) {
 
        p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
        qBriIrq = (dword volatile __iomem *)(&p[DIVA_4BRI_REVISION(IoAdapter) ? (MQ2_BREG_IRQ_TEST)  : (MQ_BREG_IRQ_TEST)]);
-       WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF) ;
+       WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
        DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 }
 
 /* --------------------------------------------------------------------------
-               Install Adapter Entry Points
-        -------------------------------------------------------------------------- */
-static void set_common_qBri_functions (PISDN_ADAPTER IoAdapter) {
+   Install Adapter Entry Points
+   -------------------------------------------------------------------------- */
+static void set_common_qBri_functions(PISDN_ADAPTER IoAdapter) {
        ADAPTER *a;
 
-       a = &IoAdapter->a ;
+       a = &IoAdapter->a;
 
-       a->ram_in           = mem_in ;
-       a->ram_inw          = mem_inw ;
-       a->ram_in_buffer    = mem_in_buffer ;
-       a->ram_look_ahead   = mem_look_ahead ;
-       a->ram_out          = mem_out ;
-       a->ram_outw         = mem_outw ;
-       a->ram_out_buffer   = mem_out_buffer ;
-       a->ram_inc          = mem_inc ;
+       a->ram_in           = mem_in;
+       a->ram_inw          = mem_inw;
+       a->ram_in_buffer    = mem_in_buffer;
+       a->ram_look_ahead   = mem_look_ahead;
+       a->ram_out          = mem_out;
+       a->ram_outw         = mem_outw;
+       a->ram_out_buffer   = mem_out_buffer;
+       a->ram_inc          = mem_inc;
 
-       IoAdapter->out      = pr_out ;
-       IoAdapter->dpc      = pr_dpc ;
-       IoAdapter->tst_irq  = scom_test_int ;
-       IoAdapter->clr_irq  = scom_clear_int ;
-       IoAdapter->pcm      = (struct pc_maint *)MIPS_MAINT_OFFS ;
+       IoAdapter->out = pr_out;
+       IoAdapter->dpc = pr_dpc;
+       IoAdapter->tst_irq = scom_test_int;
+       IoAdapter->clr_irq  = scom_clear_int;
+       IoAdapter->pcm  = (struct pc_maint *)MIPS_MAINT_OFFS;
 
-       IoAdapter->load     = load_qBri_hardware ;
+       IoAdapter->load = load_qBri_hardware;
 
-       IoAdapter->disIrq   = disable_qBri_interrupt ;
-       IoAdapter->rstFnc   = reset_qBri_hardware ;
-       IoAdapter->stop     = stop_qBri_hardware ;
-       IoAdapter->trapFnc  = qBri_cpu_trapped ;
+       IoAdapter->disIrq = disable_qBri_interrupt;
+       IoAdapter->rstFnc = reset_qBri_hardware;
+       IoAdapter->stop = stop_qBri_hardware;
+       IoAdapter->trapFnc = qBri_cpu_trapped;
 
        IoAdapter->diva_isr_handler = qBri_ISR;
 
-       IoAdapter->a.io       = (void*)IoAdapter ;
+       IoAdapter->a.io = (void *)IoAdapter;
 }
 
-static void set_qBri_functions (PISDN_ADAPTER IoAdapter) {
+static void set_qBri_functions(PISDN_ADAPTER IoAdapter) {
        if (!IoAdapter->tasks) {
                IoAdapter->tasks = MQ_INSTANCE_COUNT;
        }
-       IoAdapter->MemorySize = MQ_MEMORY_SIZE ;
-       set_common_qBri_functions (IoAdapter) ;
-       diva_os_set_qBri_functions (IoAdapter) ;
+       IoAdapter->MemorySize = MQ_MEMORY_SIZE;
+       set_common_qBri_functions(IoAdapter);
+       diva_os_set_qBri_functions(IoAdapter);
 }
 
-static void set_qBri2_functions (PISDN_ADAPTER IoAdapter) {
+static void set_qBri2_functions(PISDN_ADAPTER IoAdapter) {
        if (!IoAdapter->tasks) {
                IoAdapter->tasks = MQ_INSTANCE_COUNT;
        }
        IoAdapter->MemorySize = (IoAdapter->tasks == 1) ? BRI2_MEMORY_SIZE : MQ2_MEMORY_SIZE;
-       set_common_qBri_functions (IoAdapter) ;
-       diva_os_set_qBri2_functions (IoAdapter) ;
+       set_common_qBri_functions(IoAdapter);
+       diva_os_set_qBri2_functions(IoAdapter);
 }
 
 /******************************************************************************/
 
-void prepare_qBri_functions (PISDN_ADAPTER IoAdapter) {
+void prepare_qBri_functions(PISDN_ADAPTER IoAdapter) {
 
-       set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[0]) ;
-       set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[1]) ;
-       set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[2]) ;
-       set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[3]) ;
+       set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[0]);
+       set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[1]);
+       set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[2]);
+       set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[3]);
 
 }
 
-void prepare_qBri2_functions (PISDN_ADAPTER IoAdapter) {
+void prepare_qBri2_functions(PISDN_ADAPTER IoAdapter) {
        if (!IoAdapter->tasks) {
                IoAdapter->tasks = MQ_INSTANCE_COUNT;
        }
 
-       set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[0]) ;
+       set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[0]);
        if (IoAdapter->tasks > 1) {
-               set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[1]) ;
-               set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[2]) ;
-               set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[3]) ;
+               set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[1]);
+               set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[2]);
+               set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[3]);
        }
 
 }
index 5c87552..6a5bb74 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 /*****************************************************************************/
 #define MAX_XLOG_SIZE (64 * 1024)
 /* --------------------------------------------------------------------------
-  Investigate card state, recovery trace buffer
-  -------------------------------------------------------------------------- */
-static void bri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
byte  __iomem *addrHi, *addrLo, *ioaddr ;
word *Xlog ;
dword   regs[4], i, size ;
Xdesc   xlogDesc ;
- byte __iomem *Port;
+   Investigate card state, recovery trace buffer
+   -------------------------------------------------------------------------- */
+static void bri_cpu_trapped(PISDN_ADAPTER IoAdapter) {
      byte  __iomem *addrHi, *addrLo, *ioaddr;
      word *Xlog;
      dword   regs[4], i, size;
      Xdesc   xlogDesc;
      byte __iomem *Port;
 /*
  * first read pointers and trap frame
  */
if ( !(Xlog = (word *)diva_os_malloc (0, MAX_XLOG_SIZE)) )
-  return ;
- Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
addrHi =   Port + ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH) ;
addrLo = Port + ADDR ;
ioaddr = Port + DATA ;
outpp (addrHi,  0) ;
outppw (addrLo, 0) ;
for ( i = 0 ; i < 0x100 ; Xlog[i++] = inppw(ioaddr) ) ;
      if (!(Xlog = (word *)diva_os_malloc(0, MAX_XLOG_SIZE)))
+               return;
      Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
      addrHi = Port + ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
      addrLo = Port + ADDR;
      ioaddr = Port + DATA;
      outpp(addrHi,  0);
      outppw(addrLo, 0);
      for (i = 0; i < 0x100; Xlog[i++] = inppw(ioaddr));
 /*
  * check for trapped MIPS 3xxx CPU, dump only exception frame
  */
if ( GET_DWORD(&Xlog[0x80 / sizeof(Xlog[0])]) == 0x99999999 )
- {
-  dump_trap_frame (IoAdapter, &((byte *)Xlog)[0x90]) ;
-  IoAdapter->trapped = 1 ;
- }
- regs[0] = GET_DWORD(&((byte *)Xlog)[0x70]);
- regs[1] = GET_DWORD(&((byte *)Xlog)[0x74]);
- regs[2] = GET_DWORD(&((byte *)Xlog)[0x78]);
- regs[3] = GET_DWORD(&((byte *)Xlog)[0x7c]);
outpp (addrHi, (regs[1] >> 16) & 0x7F) ;
outppw (addrLo, regs[1] & 0xFFFF) ;
xlogDesc.cnt = inppw(ioaddr) ;
outpp (addrHi, (regs[2] >> 16) & 0x7F) ;
outppw (addrLo, regs[2] & 0xFFFF) ;
xlogDesc.out = inppw(ioaddr) ;
xlogDesc.buf = Xlog ;
regs[0] &= IoAdapter->MemorySize - 1 ;
if ( (regs[0] < IoAdapter->MemorySize - 1) )
- {
-  size = IoAdapter->MemorySize - regs[0] ;
-  if ( size > MAX_XLOG_SIZE )
-   size = MAX_XLOG_SIZE ;
-  for ( i = 0 ; i < (size / sizeof(*Xlog)) ; regs[0] += 2 )
-  {
-   outpp (addrHi, (regs[0] >> 16) & 0x7F) ;
-   outppw (addrLo, regs[0] & 0xFFFF) ;
-   Xlog[i++] = inppw(ioaddr) ;
-  }
-  dump_xlog_buffer (IoAdapter, &xlogDesc) ;
-  diva_os_free (0, Xlog) ;
-  IoAdapter->trapped = 2 ;
- }
outpp  (addrHi, (byte)((BRI_UNCACHED_ADDR (IoAdapter->MemoryBase + IoAdapter->MemorySize -
-                                            BRI_SHARED_RAM_SIZE)) >> 16)) ;
outppw (addrLo, 0x00) ;
- DIVA_OS_MEM_DETACH_PORT(IoAdapter, Port);
      if (GET_DWORD(&Xlog[0x80 / sizeof(Xlog[0])]) == 0x99999999)
      {
+               dump_trap_frame(IoAdapter, &((byte *)Xlog)[0x90]);
+               IoAdapter->trapped = 1;
      }
      regs[0] = GET_DWORD(&((byte *)Xlog)[0x70]);
      regs[1] = GET_DWORD(&((byte *)Xlog)[0x74]);
      regs[2] = GET_DWORD(&((byte *)Xlog)[0x78]);
      regs[3] = GET_DWORD(&((byte *)Xlog)[0x7c]);
      outpp(addrHi, (regs[1] >> 16) & 0x7F);
      outppw(addrLo, regs[1] & 0xFFFF);
      xlogDesc.cnt = inppw(ioaddr);
      outpp(addrHi, (regs[2] >> 16) & 0x7F);
      outppw(addrLo, regs[2] & 0xFFFF);
      xlogDesc.out = inppw(ioaddr);
      xlogDesc.buf = Xlog;
      regs[0] &= IoAdapter->MemorySize - 1;
      if ((regs[0] < IoAdapter->MemorySize - 1))
      {
+               size = IoAdapter->MemorySize - regs[0];
+               if (size > MAX_XLOG_SIZE)
+                       size = MAX_XLOG_SIZE;
+               for (i = 0; i < (size / sizeof(*Xlog)); regs[0] += 2)
+               {
+                       outpp(addrHi, (regs[0] >> 16) & 0x7F);
+                       outppw(addrLo, regs[0] & 0xFFFF);
+                       Xlog[i++] = inppw(ioaddr);
+               }
+               dump_xlog_buffer(IoAdapter, &xlogDesc);
+               diva_os_free(0, Xlog);
+               IoAdapter->trapped = 2;
      }
      outpp(addrHi, (byte)((BRI_UNCACHED_ADDR(IoAdapter->MemoryBase + IoAdapter->MemorySize -
+                                               BRI_SHARED_RAM_SIZE)) >> 16));
      outppw(addrLo, 0x00);
      DIVA_OS_MEM_DETACH_PORT(IoAdapter, Port);
 }
 /* ---------------------------------------------------------------------
    Reset hardware
-  --------------------------------------------------------------------- */
-static void reset_bri_hardware (PISDN_ADAPTER IoAdapter) {
- byte __iomem *p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
outpp (p, 0x00) ;
- DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
+   --------------------------------------------------------------------- */
+static void reset_bri_hardware(PISDN_ADAPTER IoAdapter) {
      byte __iomem *p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
      outpp(p, 0x00);
      DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 }
 /* ---------------------------------------------------------------------
    Halt system
-  --------------------------------------------------------------------- */
-static void stop_bri_hardware (PISDN_ADAPTER IoAdapter) {
- byte __iomem *p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
- if (p) {
-  outpp (p, 0x00) ; /* disable interrupts ! */
- }
- DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
- p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
outpp (p, 0x00) ;    /* clear int, halt cpu */
- DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
+   --------------------------------------------------------------------- */
+static void stop_bri_hardware(PISDN_ADAPTER IoAdapter) {
      byte __iomem *p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
      if (p) {
+               outpp(p, 0x00); /* disable interrupts ! */
      }
      DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
      p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
      outpp(p, 0x00);    /* clear int, halt cpu */
      DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 }
-static int load_bri_hardware (PISDN_ADAPTER IoAdapter) {
- return (0);
+static int load_bri_hardware(PISDN_ADAPTER IoAdapter) {
      return (0);
 }
 /******************************************************************************/
-static int bri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
- byte __iomem *p;
+static int bri_ISR(struct _ISDN_ADAPTER *IoAdapter) {
      byte __iomem *p;
 
- p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
if ( !(inpp (p) & 0x01) ) {
-  DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
-  return (0) ;
- }
- /*
-  clear interrupt line
-  */
outpp (p, 0x08) ;
- DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
IoAdapter->IrqCount++ ;
if ( IoAdapter->Initialized ) {
-  diva_os_schedule_soft_isr (&IoAdapter->isr_soft_isr);
- }
return (1) ;
      p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
      if (!(inpp(p) & 0x01)) {
+               DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
+               return (0);
      }
      /*
+         clear interrupt line
+       */
      outpp(p, 0x08);
      DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
      IoAdapter->IrqCount++;
      if (IoAdapter->Initialized) {
+               diva_os_schedule_soft_isr(&IoAdapter->isr_soft_isr);
      }
      return (1);
 }
 /* --------------------------------------------------------------------------
-  Disable IRQ in the card hardware
-  -------------------------------------------------------------------------- */
-static void disable_bri_interrupt (PISDN_ADAPTER IoAdapter) {
- byte __iomem *p;
- p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
if ( p )
- {
-  outpp (p, 0x00) ; /* disable interrupts ! */
- }
- DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
- p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
outpp (p, 0x00) ; /* clear int, halt cpu */
- DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
+   Disable IRQ in the card hardware
+   -------------------------------------------------------------------------- */
+static void disable_bri_interrupt(PISDN_ADAPTER IoAdapter) {
      byte __iomem *p;
      p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
      if (p)
      {
+               outpp(p, 0x00); /* disable interrupts ! */
      }
      DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
      p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
      outpp(p, 0x00); /* clear int, halt cpu */
      DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
 }
 /* -------------------------------------------------------------------------
-  Fill card entry points
-  ------------------------------------------------------------------------- */
-void prepare_maestra_functions (PISDN_ADAPTER IoAdapter) {
ADAPTER *a = &IoAdapter->a ;
a->ram_in             = io_in ;
a->ram_inw            = io_inw ;
a->ram_in_buffer      = io_in_buffer ;
a->ram_look_ahead     = io_look_ahead ;
a->ram_out            = io_out ;
a->ram_outw           = io_outw ;
a->ram_out_buffer     = io_out_buffer ;
a->ram_inc            = io_inc ;
IoAdapter->MemoryBase = BRI_MEMORY_BASE ;
IoAdapter->MemorySize = BRI_MEMORY_SIZE ;
IoAdapter->out        = pr_out ;
IoAdapter->dpc        = pr_dpc ;
IoAdapter->tst_irq    = scom_test_int ;
IoAdapter->clr_irq    = scom_clear_int ;
IoAdapter->pcm        = (struct pc_maint *)MIPS_MAINT_OFFS ;
IoAdapter->load       = load_bri_hardware ;
IoAdapter->disIrq     = disable_bri_interrupt ;
IoAdapter->rstFnc     = reset_bri_hardware ;
IoAdapter->stop       = stop_bri_hardware ;
IoAdapter->trapFnc    = bri_cpu_trapped ;
- IoAdapter->diva_isr_handler = bri_ISR;
- /*
-  Prepare OS dependent functions
-  */
diva_os_prepare_maestra_functions (IoAdapter);
+   Fill card entry points
+   ------------------------------------------------------------------------- */
+void prepare_maestra_functions(PISDN_ADAPTER IoAdapter) {
      ADAPTER *a = &IoAdapter->a;
      a->ram_in             = io_in;
      a->ram_inw            = io_inw;
      a->ram_in_buffer      = io_in_buffer;
      a->ram_look_ahead     = io_look_ahead;
      a->ram_out            = io_out;
      a->ram_outw           = io_outw;
      a->ram_out_buffer     = io_out_buffer;
      a->ram_inc            = io_inc;
      IoAdapter->MemoryBase = BRI_MEMORY_BASE;
      IoAdapter->MemorySize = BRI_MEMORY_SIZE;
      IoAdapter->out        = pr_out;
      IoAdapter->dpc        = pr_dpc;
      IoAdapter->tst_irq    = scom_test_int;
      IoAdapter->clr_irq    = scom_clear_int;
      IoAdapter->pcm        = (struct pc_maint *)MIPS_MAINT_OFFS;
      IoAdapter->load       = load_bri_hardware;
      IoAdapter->disIrq     = disable_bri_interrupt;
      IoAdapter->rstFnc     = reset_bri_hardware;
      IoAdapter->stop       = stop_bri_hardware;
      IoAdapter->trapFnc    = bri_cpu_trapped;
      IoAdapter->diva_isr_handler = bri_ISR;
      /*
+         Prepare OS dependent functions
+       */
      diva_os_prepare_maestra_functions(IoAdapter);
 }
 /* -------------------------------------------------------------------------- */
index 18f2878..ddd0e0e 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #include "platform.h"
 /*****************************************************************************/
 #define MAX_XLOG_SIZE  (64 * 1024)
 /* -------------------------------------------------------------------------
-  Does return offset between ADAPTER->ram and real begin of memory
-  ------------------------------------------------------------------------- */
-static dword pri_ram_offset (ADAPTER* a) {
- return ((dword)MP_SHARED_RAM_OFFSET);
+   Does return offset between ADAPTER->ram and real begin of memory
+   ------------------------------------------------------------------------- */
+static dword pri_ram_offset(ADAPTER *a) {
      return ((dword)MP_SHARED_RAM_OFFSET);
 }
 /* -------------------------------------------------------------------------
-  Recovery XLOG buffer from the card
-  ------------------------------------------------------------------------- */
-static void pri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
byte  __iomem *base ;
word *Xlog ;
dword   regs[4], TrapID, size ;
Xdesc   xlogDesc ;
+   Recovery XLOG buffer from the card
+   ------------------------------------------------------------------------- */
+static void pri_cpu_trapped(PISDN_ADAPTER IoAdapter) {
      byte  __iomem *base;
      word *Xlog;
      dword   regs[4], TrapID, size;
      Xdesc   xlogDesc;
 /*
  * check for trapped MIPS 46xx CPU, dump exception frame
  */
- base   = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
TrapID = READ_DWORD(&base[0x80]) ;
if ( (TrapID == 0x99999999) || (TrapID == 0x99999901) )
- {
-  dump_trap_frame (IoAdapter, &base[0x90]) ;
-  IoAdapter->trapped = 1 ;
- }
- regs[0] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x70]);
- regs[1] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x74]);
- regs[2] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x78]);
- regs[3] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x7c]);
regs[0] &= IoAdapter->MemorySize - 1 ;
if ( (regs[0] < IoAdapter->MemorySize - 1) )
- {
-  if ( !(Xlog = (word *)diva_os_malloc (0, MAX_XLOG_SIZE)) ) {
-   DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, base);
-   return ;
-  }
-  size = IoAdapter->MemorySize - regs[0] ;
-  if ( size > MAX_XLOG_SIZE )
-   size = MAX_XLOG_SIZE ;
-  memcpy_fromio(Xlog, &base[regs[0]], size) ;
-  xlogDesc.buf = Xlog ;
-  xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]) ;
-  xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]) ;
-  dump_xlog_buffer (IoAdapter, &xlogDesc) ;
-  diva_os_free (0, Xlog) ;
-  IoAdapter->trapped = 2 ;
- }
- DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, base);
      base   = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
      TrapID = READ_DWORD(&base[0x80]);
      if ((TrapID == 0x99999999) || (TrapID == 0x99999901))
      {
+               dump_trap_frame(IoAdapter, &base[0x90]);
+               IoAdapter->trapped = 1;
      }
      regs[0] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x70]);
      regs[1] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x74]);
      regs[2] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x78]);
      regs[3] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x7c]);
      regs[0] &= IoAdapter->MemorySize - 1;
      if ((regs[0] < IoAdapter->MemorySize - 1))
      {
+               if (!(Xlog = (word *)diva_os_malloc(0, MAX_XLOG_SIZE))) {
+                       DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, base);
+                       return;
+               }
+               size = IoAdapter->MemorySize - regs[0];
+               if (size > MAX_XLOG_SIZE)
+                       size = MAX_XLOG_SIZE;
+               memcpy_fromio(Xlog, &base[regs[0]], size);
+               xlogDesc.buf = Xlog;
+               xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]);
+               xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]);
+               dump_xlog_buffer(IoAdapter, &xlogDesc);
+               diva_os_free(0, Xlog);
+               IoAdapter->trapped = 2;
      }
      DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, base);
 }
 /* -------------------------------------------------------------------------
-  Hardware reset of PRI card
-  ------------------------------------------------------------------------- */
-static void reset_pri_hardware (PISDN_ADAPTER IoAdapter) {
- byte __iomem *p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
- WRITE_BYTE(p, _MP_RISC_RESET | _MP_LED1 | _MP_LED2);
diva_os_wait (50) ;
- WRITE_BYTE(p, 0x00);
diva_os_wait (50) ;
- DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
+   Hardware reset of PRI card
+   ------------------------------------------------------------------------- */
+static void reset_pri_hardware(PISDN_ADAPTER IoAdapter) {
      byte __iomem *p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
      WRITE_BYTE(p, _MP_RISC_RESET | _MP_LED1 | _MP_LED2);
      diva_os_wait(50);
      WRITE_BYTE(p, 0x00);
      diva_os_wait(50);
      DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
 }
 /* -------------------------------------------------------------------------
-  Stop Card Hardware
-  ------------------------------------------------------------------------- */
-static void stop_pri_hardware (PISDN_ADAPTER IoAdapter) {
- dword i;
- byte __iomem *p;
- dword volatile __iomem *cfgReg = (void __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
- WRITE_DWORD(&cfgReg[3], 0);
- WRITE_DWORD(&cfgReg[1], 0);
- DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
IoAdapter->a.ram_out (&IoAdapter->a, &RAM->SWReg, SWREG_HALT_CPU) ;
i = 0 ;
while ( (i < 100) && (IoAdapter->a.ram_in (&IoAdapter->a, &RAM->SWReg) != 0) )
- {
-  diva_os_wait (1) ;
-  i++ ;
- }
- DBG_TRC(("%s: PRI stopped (%d)", IoAdapter->Name, i))
- cfgReg = (void __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
WRITE_DWORD(&cfgReg[0],((dword)(~0x03E00000)));
- DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
diva_os_wait (1) ;
- p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
- WRITE_BYTE(p, _MP_RISC_RESET | _MP_LED1 | _MP_LED2);
- DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
+   Stop Card Hardware
+   ------------------------------------------------------------------------- */
+static void stop_pri_hardware(PISDN_ADAPTER IoAdapter) {
      dword i;
      byte __iomem *p;
      dword volatile __iomem *cfgReg = (void __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
      WRITE_DWORD(&cfgReg[3], 0);
      WRITE_DWORD(&cfgReg[1], 0);
      DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
      IoAdapter->a.ram_out(&IoAdapter->a, &RAM->SWReg, SWREG_HALT_CPU);
      i = 0;
      while ((i < 100) && (IoAdapter->a.ram_in(&IoAdapter->a, &RAM->SWReg) != 0))
      {
+               diva_os_wait(1);
+               i++;
      }
      DBG_TRC(("%s: PRI stopped (%d)", IoAdapter->Name, i))
              cfgReg = (void __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
      WRITE_DWORD(&cfgReg[0], ((dword)(~0x03E00000)));
      DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
      diva_os_wait(1);
      p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
      WRITE_BYTE(p, _MP_RISC_RESET | _MP_LED1 | _MP_LED2);
      DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
 }
-static int load_pri_hardware (PISDN_ADAPTER IoAdapter) {
- return (0);
+static int load_pri_hardware(PISDN_ADAPTER IoAdapter) {
      return (0);
 }
 /* --------------------------------------------------------------------------
-  PRI Adapter interrupt Service Routine
+   PRI Adapter interrupt Service Routine
    -------------------------------------------------------------------------- */
-static int pri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
- byte __iomem *cfg = DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
if ( !(READ_DWORD(cfg) & 0x80000000) ) {
-  DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfg);
-  return (0) ;
- }
- /*
-  clear interrupt line
-  */
WRITE_DWORD(cfg, (dword)~0x03E00000) ;
- DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfg);
IoAdapter->IrqCount++ ;
if ( IoAdapter->Initialized )
- {
-  diva_os_schedule_soft_isr (&IoAdapter->isr_soft_isr);
- }
return (1) ;
+static int pri_ISR(struct _ISDN_ADAPTER *IoAdapter) {
      byte __iomem *cfg = DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
      if (!(READ_DWORD(cfg) & 0x80000000)) {
+               DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfg);
+               return (0);
      }
      /*
+         clear interrupt line
+       */
      WRITE_DWORD(cfg, (dword)~0x03E00000);
      DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfg);
      IoAdapter->IrqCount++;
      if (IoAdapter->Initialized)
      {
+               diva_os_schedule_soft_isr(&IoAdapter->isr_soft_isr);
      }
      return (1);
 }
 /* -------------------------------------------------------------------------
-  Disable interrupt in the card hardware
-  ------------------------------------------------------------------------- */
-static void disable_pri_interrupt (PISDN_ADAPTER IoAdapter) {
dword volatile __iomem *cfgReg = (dword volatile __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter) ;
- WRITE_DWORD(&cfgReg[3], 0);
- WRITE_DWORD(&cfgReg[1], 0);
WRITE_DWORD(&cfgReg[0], (dword)(~0x03E00000)) ;
- DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
+   Disable interrupt in the card hardware
+   ------------------------------------------------------------------------- */
+static void disable_pri_interrupt(PISDN_ADAPTER IoAdapter) {
      dword volatile __iomem *cfgReg = (dword volatile __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
      WRITE_DWORD(&cfgReg[3], 0);
      WRITE_DWORD(&cfgReg[1], 0);
      WRITE_DWORD(&cfgReg[0], (dword)(~0x03E00000));
      DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
 }
 /* -------------------------------------------------------------------------
-  Install entry points for PRI Adapter
-  ------------------------------------------------------------------------- */
-static void prepare_common_pri_functions (PISDN_ADAPTER IoAdapter) {
ADAPTER *a = &IoAdapter->a ;
a->ram_in           = mem_in ;
a->ram_inw          = mem_inw ;
a->ram_in_buffer    = mem_in_buffer ;
a->ram_look_ahead   = mem_look_ahead ;
a->ram_out          = mem_out ;
a->ram_outw         = mem_outw ;
a->ram_out_buffer   = mem_out_buffer ;
a->ram_inc          = mem_inc ;
a->ram_offset       = pri_ram_offset ;
- a->ram_out_dw    = mem_out_dw;
- a->ram_in_dw    = mem_in_dw;
-  a->istream_wakeup   = pr_stream;
IoAdapter->out      = pr_out ;
IoAdapter->dpc      = pr_dpc ;
IoAdapter->tst_irq  = scom_test_int ;
IoAdapter->clr_irq  = scom_clear_int ;
- IoAdapter->pcm      = (struct pc_maint *)(MIPS_MAINT_OFFS
-                                        - MP_SHARED_RAM_OFFSET) ;
IoAdapter->load     = load_pri_hardware ;
IoAdapter->disIrq   = disable_pri_interrupt ;
IoAdapter->rstFnc   = reset_pri_hardware ;
IoAdapter->stop     = stop_pri_hardware ;
IoAdapter->trapFnc  = pri_cpu_trapped ;
- IoAdapter->diva_isr_handler = pri_ISR;
+   Install entry points for PRI Adapter
+   ------------------------------------------------------------------------- */
+static void prepare_common_pri_functions(PISDN_ADAPTER IoAdapter) {
      ADAPTER *a = &IoAdapter->a;
      a->ram_in           = mem_in;
      a->ram_inw          = mem_inw;
      a->ram_in_buffer    = mem_in_buffer;
      a->ram_look_ahead   = mem_look_ahead;
      a->ram_out          = mem_out;
      a->ram_outw         = mem_outw;
      a->ram_out_buffer   = mem_out_buffer;
      a->ram_inc          = mem_inc;
      a->ram_offset       = pri_ram_offset;
      a->ram_out_dw    = mem_out_dw;
      a->ram_in_dw    = mem_in_dw;
+       a->istream_wakeup   = pr_stream;
      IoAdapter->out      = pr_out;
      IoAdapter->dpc      = pr_dpc;
      IoAdapter->tst_irq  = scom_test_int;
      IoAdapter->clr_irq  = scom_clear_int;
      IoAdapter->pcm      = (struct pc_maint *)(MIPS_MAINT_OFFS
+                                                 - MP_SHARED_RAM_OFFSET);
      IoAdapter->load     = load_pri_hardware;
      IoAdapter->disIrq   = disable_pri_interrupt;
      IoAdapter->rstFnc   = reset_pri_hardware;
      IoAdapter->stop     = stop_pri_hardware;
      IoAdapter->trapFnc  = pri_cpu_trapped;
      IoAdapter->diva_isr_handler = pri_ISR;
 }
 /* -------------------------------------------------------------------------
-  Install entry points for PRI Adapter
-  ------------------------------------------------------------------------- */
-void prepare_pri_functions (PISDN_ADAPTER IoAdapter) {
IoAdapter->MemorySize = MP_MEMORY_SIZE ;
prepare_common_pri_functions (IoAdapter) ;
diva_os_prepare_pri_functions (IoAdapter);
+   Install entry points for PRI Adapter
+   ------------------------------------------------------------------------- */
+void prepare_pri_functions(PISDN_ADAPTER IoAdapter) {
      IoAdapter->MemorySize = MP_MEMORY_SIZE;
      prepare_common_pri_functions(IoAdapter);
      diva_os_prepare_pri_functions(IoAdapter);
 }
 /* -------------------------------------------------------------------------
-  Install entry points for PRI Rev.2 Adapter
-  ------------------------------------------------------------------------- */
-void prepare_pri2_functions (PISDN_ADAPTER IoAdapter) {
IoAdapter->MemorySize = MP2_MEMORY_SIZE ;
prepare_common_pri_functions (IoAdapter) ;
diva_os_prepare_pri2_functions (IoAdapter);
+   Install entry points for PRI Rev.2 Adapter
+   ------------------------------------------------------------------------- */
+void prepare_pri2_functions(PISDN_ADAPTER IoAdapter) {
      IoAdapter->MemorySize = MP2_MEMORY_SIZE;
      prepare_common_pri_functions(IoAdapter);
      diva_os_prepare_pri2_functions(IoAdapter);
 }
 /* ------------------------------------------------------------------------- */
index 8f61c69..5e20f8d 100644 (file)
@@ -1,48 +1,48 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
 #ifndef __DIVA_SOFT_DSP_TASK_ENTRY_H__
 #define __DIVA_SOFT_DSP_TASK_ENTRY_H__
 /*
- The soft DSP image is described by binary header contained on begin of this
- image:
-OFFSET FROM IMAGE START |  VARIABLE
-------------------------------------------------------------------------
- DIVA_MIPS_TASK_IMAGE_LINK_OFFS   |  link to the next image
 The soft DSP image is described by binary header contained on begin of this
 image:
+  OFFSET FROM IMAGE START |  VARIABLE
+  ------------------------------------------------------------------------
 DIVA_MIPS_TASK_IMAGE_LINK_OFFS   |  link to the next image
   ----------------------------------------------------------------------
- DIVA_MIPS_TASK_IMAGE_GP_OFFS    |  image gp register value, void*
 DIVA_MIPS_TASK_IMAGE_GP_OFFS    |  image gp register value, void*
   ----------------------------------------------------------------------
- DIVA_MIPS_TASK_IMAGE_ENTRY_OFFS   |  diva_mips_sdp_task_entry_t*
 DIVA_MIPS_TASK_IMAGE_ENTRY_OFFS   |  diva_mips_sdp_task_entry_t*
   ----------------------------------------------------------------------
- DIVA_MIPS_TASK_IMAGE_LOAD_ADDR_OFFS |  image image start address (void*)
 DIVA_MIPS_TASK_IMAGE_LOAD_ADDR_OFFS |  image image start address (void*)
   ----------------------------------------------------------------------
- DIVA_MIPS_TASK_IMAGE_END_ADDR_OFFS |  image image end address   (void*)
 DIVA_MIPS_TASK_IMAGE_END_ADDR_OFFS |  image image end address   (void*)
   ----------------------------------------------------------------------
- DIVA_MIPS_TASK_IMAGE_ID_STRING_OFFS |  image id string char[...];
 DIVA_MIPS_TASK_IMAGE_ID_STRING_OFFS |  image id string char[...];
   ----------------------------------------------------------------------
- */
+*/
 #define DIVA_MIPS_TASK_IMAGE_LINK_OFFS   0x6C
 #define DIVA_MIPS_TASK_IMAGE_GP_OFFS    0x70
 #define DIVA_MIPS_TASK_IMAGE_ENTRY_OFFS   0x74
@@ -50,63 +50,63 @@ OFFSET FROM IMAGE START |  VARIABLE
 #define DIVA_MIPS_TASK_IMAGE_END_ADDR_OFFS 0x7c
 #define DIVA_MIPS_TASK_IMAGE_ID_STRING_OFFS 0x80
 /*
- This function is called in order to set GP register of this task
- This function should be always called before any function of the
- task is called
- */
-typedef void (*diva_task_set_prog_gp_proc_t)(voidnew_gp);
 This function is called in order to set GP register of this task
 This function should be always called before any function of the
 task is called
+*/
+typedef void (*diva_task_set_prog_gp_proc_t)(void *new_gp);
 /*
- This function is called to clear .bss at task initialization step
- */
-typedef void  (*diva_task_sys_reset_proc_t)(void);
 This function is called to clear .bss at task initialization step
+*/
+typedef void (*diva_task_sys_reset_proc_t)(void);
 /*
- This function is called in order to provide GP of master call to
- task, that will be used by calls from the task to the master
- */
-typedef void (*diva_task_set_main_gp_proc_t)(voidmain_gp);
 This function is called in order to provide GP of master call to
 task, that will be used by calls from the task to the master
+*/
+typedef void (*diva_task_set_main_gp_proc_t)(void *main_gp);
 /*
- This function is called to provide address of 'dprintf' function
- to the task
- */
 This function is called to provide address of 'dprintf' function
 to the task
+*/
 typedef word (*diva_prt_proc_t)(char *, ...);
 typedef void (*diva_task_set_prt_proc_t)(diva_prt_proc_t fn);
 /*
- This function is called to set task PID
- */
 This function is called to set task PID
+*/
 typedef void (*diva_task_set_pid_proc_t)(dword id);
 /*
- This function is called for run-time task init
- */
 This function is called for run-time task init
+*/
 typedef int (*diva_task_run_time_init_proc_t)(void*, dword);
 /*
- This function is called from system scheduler or from timer
- */
 This function is called from system scheduler or from timer
+*/
 typedef void (*diva_task_callback_proc_t)(void);
 /*
- This callback is used by task to get current time im mS
-  */
 This callback is used by task to get current time im mS
+*/
 typedef dword (*diva_task_get_tick_count_proc_t)(void);
 typedef void (*diva_task_set_get_time_proc_t)(\
-                diva_task_get_tick_count_proc_t fn);
+       diva_task_get_tick_count_proc_t fn);
 typedef struct _diva_mips_sdp_task_entry {
- diva_task_set_prog_gp_proc_t  set_gp_proc;
- diva_task_sys_reset_proc_t   sys_reset_proc;
- diva_task_set_main_gp_proc_t  set_main_gp_proc;
- diva_task_set_prt_proc_t    set_dprintf_proc;
- diva_task_set_pid_proc_t    set_pid_proc;
- diva_task_run_time_init_proc_t run_time_init_proc;
- diva_task_callback_proc_t    task_callback_proc;
- diva_task_callback_proc_t    timer_callback_proc;
- diva_task_set_get_time_proc_t  set_get_time_proc;
void*              last_entry_proc;
      diva_task_set_prog_gp_proc_t  set_gp_proc;
      diva_task_sys_reset_proc_t   sys_reset_proc;
      diva_task_set_main_gp_proc_t  set_main_gp_proc;
      diva_task_set_prt_proc_t    set_dprintf_proc;
      diva_task_set_pid_proc_t    set_pid_proc;
      diva_task_run_time_init_proc_t run_time_init_proc;
      diva_task_callback_proc_t    task_callback_proc;
      diva_task_callback_proc_t    timer_callback_proc;
      diva_task_set_get_time_proc_t  set_get_time_proc;
      void *last_entry_proc;
 } diva_mips_sdp_task_entry_t;
 /*
- 'last_entry_proc' should be set to zero and is used for future extensuios
- */
 'last_entry_proc' should be set to zero and is used for future extensuios
+*/
 typedef struct _diva_mips_sw_task {
-  diva_mips_sdp_task_entry_t  sdp_entry;
-  void*                       sdp_gp_reg;
-  void*                       own_gp_reg;
+       diva_mips_sdp_task_entry_t  sdp_entry;
+       void *sdp_gp_reg;
+       void *own_gp_reg;
 } diva_mips_sw_task_t;
 #if !defined(DIVA_BRI2F_SDP_1_NAME)
 #define DIVA_BRI2F_SDP_1_NAME "sdp0.2q0"
index ac0bdd1..7cab5c3 100644 (file)
 #define DIVAS_MAX_XDI_ADAPTERS 64
 
 /* --------------------------------------------------------------------------
-               IMPORTS
+   IMPORTS
    -------------------------------------------------------------------------- */
 extern void diva_os_wakeup_read(void *os_context);
 extern void diva_os_wakeup_close(void *os_context);
 /* --------------------------------------------------------------------------
-               LOCALS
+   LOCALS
    -------------------------------------------------------------------------- */
 static LIST_HEAD(adapter_q);
 static diva_os_spin_lock_t adapter_lock;
 
 static diva_um_idi_adapter_t *diva_um_idi_find_adapter(dword nr);
-static void cleanup_adapter(diva_um_idi_adapter_t * a);
-static void cleanup_entity(divas_um_idi_entity_t * e);
-static int diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
+static void cleanup_adapter(diva_um_idi_adapter_t *a);
+static void cleanup_entity(divas_um_idi_entity_t *e);
+static int diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t *a,
                                               diva_um_idi_adapter_features_t
-                                              * features);
-static int process_idi_request(divas_um_idi_entity_t * e,
-                              const diva_um_idi_req_hdr_t * req);
-static int process_idi_rc(divas_um_idi_entity_t * e, byte rc);
-static int process_idi_ind(divas_um_idi_entity_t * e, byte ind);
-static int write_return_code(divas_um_idi_entity_t * e, byte rc);
+                                              *features);
+static int process_idi_request(divas_um_idi_entity_t *e,
+                              const diva_um_idi_req_hdr_t *req);
+static int process_idi_rc(divas_um_idi_entity_t *e, byte rc);
+static int process_idi_ind(divas_um_idi_entity_t *e, byte ind);
+static int write_return_code(divas_um_idi_entity_t *e, byte rc);
 
 /* --------------------------------------------------------------------------
-               MAIN
+   MAIN
    -------------------------------------------------------------------------- */
 int diva_user_mode_idi_init(void)
 {
@@ -46,10 +46,10 @@ int diva_user_mode_idi_init(void)
 }
 
 /* --------------------------------------------------------------------------
-               Copy adapter features to user supplied buffer
+   Copy adapter features to user supplied buffer
    -------------------------------------------------------------------------- */
 static int
-diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
+diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t *a,
                                    diva_um_idi_adapter_features_t *
                                    features)
 {
@@ -63,14 +63,14 @@ diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
 
                sync_req.GetName.Req = 0;
                sync_req.GetName.Rc = IDI_SYNC_REQ_GET_NAME;
-               (*(a->d.request)) ((ENTITY *) & sync_req);
+               (*(a->d.request)) ((ENTITY *)&sync_req);
                strlcpy(features->name, sync_req.GetName.name,
                        sizeof(features->name));
 
                sync_req.GetSerial.Req = 0;
                sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
                sync_req.GetSerial.serial = 0;
-               (*(a->d.request)) ((ENTITY *) & sync_req);
+               (*(a->d.request))((ENTITY *)&sync_req);
                features->serial_number = sync_req.GetSerial.serial;
        }
 
@@ -78,7 +78,7 @@ diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
 }
 
 /* --------------------------------------------------------------------------
-               REMOVE ADAPTER
+   REMOVE ADAPTER
    -------------------------------------------------------------------------- */
 void diva_user_mode_idi_remove_adapter(int adapter_nr)
 {
@@ -98,7 +98,7 @@ void diva_user_mode_idi_remove_adapter(int adapter_nr)
 }
 
 /* --------------------------------------------------------------------------
-               CALLED ON DRIVER EXIT (UNLOAD)
+   CALLED ON DRIVER EXIT (UNLOAD)
    -------------------------------------------------------------------------- */
 void diva_user_mode_idi_finit(void)
 {
@@ -116,15 +116,15 @@ void diva_user_mode_idi_finit(void)
 }
 
 /* -------------------------------------------------------------------------
-               CREATE AND INIT IDI ADAPTER
-        ------------------------------------------------------------------------- */
-int diva_user_mode_idi_create_adapter(const DESCRIPTOR * d, int adapter_nr)
+   CREATE AND INIT IDI ADAPTER
+   ------------------------------------------------------------------------- */
+int diva_user_mode_idi_create_adapter(const DESCRIPTOR *d, int adapter_nr)
 {
        diva_os_spin_lock_magic_t old_irql;
        diva_um_idi_adapter_t *a =
-           (diva_um_idi_adapter_t *) diva_os_malloc(0,
-                                                    sizeof
-                                                    (diva_um_idi_adapter_t));
+               (diva_um_idi_adapter_t *) diva_os_malloc(0,
+                                                        sizeof
+                                                        (diva_um_idi_adapter_t));
 
        if (!a) {
                return (-1);
@@ -145,7 +145,7 @@ int diva_user_mode_idi_create_adapter(const DESCRIPTOR * d, int adapter_nr)
 }
 
 /* ------------------------------------------------------------------------
-                       Find adapter by Adapter number
+   Find adapter by Adapter number
    ------------------------------------------------------------------------ */
 static diva_um_idi_adapter_t *diva_um_idi_find_adapter(dword nr)
 {
@@ -159,14 +159,14 @@ static diva_um_idi_adapter_t *diva_um_idi_find_adapter(dword nr)
                        break;
                a = NULL;
        }
-       return(a);
+       return (a);
 }
 
 /* ------------------------------------------------------------------------
-               Cleanup this adapter and cleanup/delete all entities assigned
-               to this adapter
+   Cleanup this adapter and cleanup/delete all entities assigned
+   to this adapter
    ------------------------------------------------------------------------ */
-static void cleanup_adapter(diva_um_idi_adapter_t * a)
+static void cleanup_adapter(diva_um_idi_adapter_t *a)
 {
        struct list_head *tmp, *safe;
        divas_um_idi_entity_t *e;
@@ -184,9 +184,9 @@ static void cleanup_adapter(diva_um_idi_adapter_t * a)
 }
 
 /* ------------------------------------------------------------------------
-               Cleanup, but NOT delete this entity
+   Cleanup, but NOT delete this entity
    ------------------------------------------------------------------------ */
-static void cleanup_entity(divas_um_idi_entity_t * e)
+static void cleanup_entity(divas_um_idi_entity_t *e)
 {
        e->os_ref = NULL;
        e->status = 0;
@@ -203,7 +203,7 @@ static void cleanup_entity(divas_um_idi_entity_t * e)
 
 
 /* ------------------------------------------------------------------------
-               Create ENTITY, link it to the adapter and remove pointer to entity
+   Create ENTITY, link it to the adapter and remove pointer to entity
    ------------------------------------------------------------------------ */
 void *divas_um_idi_create_entity(dword adapter_nr, void *file)
 {
@@ -236,12 +236,12 @@ void *divas_um_idi_create_entity(dword adapter_nr, void *file)
 
                diva_os_enter_spin_lock(&adapter_lock, &old_irql, "create_entity");
                /*
-                  Look for Adapter requested
-                */
+                 Look for Adapter requested
+               */
                if (!(a = diva_um_idi_find_adapter(adapter_nr))) {
                        /*
-                          No adapter was found, or this adapter was removed
-                        */
+                         No adapter was found, or this adapter was removed
+                       */
                        diva_os_leave_spin_lock(&adapter_lock, &old_irql, "create_entity");
 
                        DBG_LOG(("A: no adapter(%ld)", adapter_nr));
@@ -267,7 +267,7 @@ void *divas_um_idi_create_entity(dword adapter_nr, void *file)
 }
 
 /* ------------------------------------------------------------------------
-               Unlink entity and free memory 
+   Unlink entity and free memory
    ------------------------------------------------------------------------ */
 int divas_um_idi_delete_entity(int adapter_nr, void *entity)
 {
@@ -296,8 +296,8 @@ int divas_um_idi_delete_entity(int adapter_nr, void *entity)
 }
 
 /* --------------------------------------------------------------------------
-               Called by application to read data from IDI
-        -------------------------------------------------------------------------- */
+   Called by application to read data from IDI
+   -------------------------------------------------------------------------- */
 int diva_um_idi_read(void *entity,
                     void *os_handle,
                     void *dst,
@@ -319,20 +319,20 @@ int diva_um_idi_read(void *entity,
            (a->status & DIVA_UM_IDI_ADAPTER_REMOVED)) {
                diva_os_leave_spin_lock(&adapter_lock, &old_irql, "read");
                DBG_ERR(("E(%08x) read failed - adapter removed", e))
-               return (-1);
+                       return (-1);
        }
 
        DBG_TRC(("A(%d) E(%08x) read(%d)", a->adapter_nr, e, max_length));
 
        /*
-          Try to read return code first
-        */
+         Try to read return code first
+       */
        data = diva_data_q_get_segment4read(&e->rc);
        q = &e->rc;
 
        /*
-          No return codes available, read indications now
-        */
+         No return codes available, read indications now
+       */
        if (!data) {
                if (!(e->status & DIVA_UM_IDI_RC_PENDING)) {
                        DBG_TRC(("A(%d) E(%08x) read data", a->adapter_nr, e));
@@ -348,8 +348,8 @@ int diva_um_idi_read(void *entity,
                if ((length = diva_data_q_get_segment_length(q)) >
                    max_length) {
                        /*
-                          Not enough space to read message
-                        */
+                         Not enough space to read message
+                       */
                        DBG_ERR(("A: A(%d) E(%08x) read small buffer",
                                 a->adapter_nr, e, ret));
                        diva_os_leave_spin_lock(&adapter_lock, &old_irql,
@@ -357,14 +357,14 @@ int diva_um_idi_read(void *entity,
                        return (-2);
                }
                /*
-                  Copy it to user, this function does access ONLY locked an verified
-                  memory, also we can access it witch spin lock held
-                */
+                 Copy it to user, this function does access ONLY locked an verified
+                 memory, also we can access it witch spin lock held
+               */
 
                if ((ret = (*cp_fn) (os_handle, dst, data, length)) >= 0) {
                        /*
-                          Acknowledge only if read was successful
-                        */
+                         Acknowledge only if read was successful
+                       */
                        diva_data_q_ack_segment4read(q);
                }
        }
@@ -399,7 +399,7 @@ int diva_um_idi_write(void *entity,
            (a->status & DIVA_UM_IDI_ADAPTER_REMOVED)) {
                diva_os_leave_spin_lock(&adapter_lock, &old_irql, "write");
                DBG_ERR(("E(%08x) write failed - adapter removed", e))
-               return (-1);
+                       return (-1);
        }
 
        DBG_TRC(("A(%d) E(%08x) write(%d)", a->adapter_nr, e, length));
@@ -416,9 +416,9 @@ int diva_um_idi_write(void *entity,
        }
 
        /*
-          Copy function does access only locked verified memory,
-          also it can be called with spin lock held
-        */
+         Copy function does access only locked verified memory,
+         also it can be called with spin lock held
+       */
        if ((ret = (*cp_fn) (os_handle, e->buffer, src, length)) < 0) {
                DBG_TRC(("A: A(%d) E(%08x) write error=%d", a->adapter_nr,
                         e, ret));
@@ -426,32 +426,32 @@ int diva_um_idi_write(void *entity,
                return (ret);
        }
 
-       req = (diva_um_idi_req_hdr_t *) & e->buffer[0];
+       req = (diva_um_idi_req_hdr_t *)&e->buffer[0];
 
        switch (req->type) {
        case DIVA_UM_IDI_GET_FEATURES:{
-                       DBG_LOG(("A(%d) get_features", a->adapter_nr));
-                       if (!(data =
-                            diva_data_q_get_segment4write(&e->data))) {
-                               DBG_ERR(("A(%d) get_features, no free buffer",
-                                        a->adapter_nr));
-                               diva_os_leave_spin_lock(&adapter_lock,
-                                                       &old_irql,
-                                                       "write");
-                               return (0);
-                       }
-                       diva_user_mode_idi_adapter_features(a, &(((diva_um_idi_ind_hdr_t
-                                                               *) data)->hdr.features));
-                       ((diva_um_idi_ind_hdr_t *) data)->type =
-                           DIVA_UM_IDI_IND_FEATURES;
-                       ((diva_um_idi_ind_hdr_t *) data)->data_length = 0;
-                       diva_data_q_ack_segment4write(&e->data,
-                                                     sizeof(diva_um_idi_ind_hdr_t));
+               DBG_LOG(("A(%d) get_features", a->adapter_nr));
+               if (!(data =
+                     diva_data_q_get_segment4write(&e->data))) {
+                       DBG_ERR(("A(%d) get_features, no free buffer",
+                                a->adapter_nr));
+                       diva_os_leave_spin_lock(&adapter_lock,
+                                               &old_irql,
+                                               "write");
+                       return (0);
+               }
+               diva_user_mode_idi_adapter_features(a, &(((diva_um_idi_ind_hdr_t
+                                                          *) data)->hdr.features));
+               ((diva_um_idi_ind_hdr_t *) data)->type =
+                       DIVA_UM_IDI_IND_FEATURES;
+               ((diva_um_idi_ind_hdr_t *) data)->data_length = 0;
+               diva_data_q_ack_segment4write(&e->data,
+                                             sizeof(diva_um_idi_ind_hdr_t));
 
-                       diva_os_leave_spin_lock(&adapter_lock, &old_irql, "write");
+               diva_os_leave_spin_lock(&adapter_lock, &old_irql, "write");
 
-                       diva_os_wakeup_read(e->os_context);
-               }
+               diva_os_wakeup_read(e->os_context);
+       }
                break;
 
        case DIVA_UM_IDI_REQ:
@@ -486,9 +486,9 @@ int diva_um_idi_write(void *entity,
 }
 
 /* --------------------------------------------------------------------------
-                       CALLBACK FROM XDI
-        -------------------------------------------------------------------------- */
-static void diva_um_idi_xdi_callback(ENTITY * entity)
+   CALLBACK FROM XDI
+   -------------------------------------------------------------------------- */
+static void diva_um_idi_xdi_callback(ENTITY *entity)
 {
        divas_um_idi_entity_t *e = DIVAS_CONTAINING_RECORD(entity,
                                                           divas_um_idi_entity_t,
@@ -529,8 +529,8 @@ static void diva_um_idi_xdi_callback(ENTITY * entity)
        }
 }
 
-static int process_idi_request(divas_um_idi_entity_t * e,
-                              const diva_um_idi_req_hdr_t * req)
+static int process_idi_request(divas_um_idi_entity_t *e,
+                              const diva_um_idi_req_hdr_t *req)
 {
        int assign = 0;
        byte Req = (byte) req->Req;
@@ -579,7 +579,7 @@ static int process_idi_request(divas_um_idi_entity_t * e,
        e->e.Req = Req;
        e->e.ReqCh = (byte) req->ReqCh;
        e->e.X->PLength = (word) req->data_length;
-       e->e.X->P = (byte *) & req[1];  /* Our buffer is safe */
+       e->e.X->P = (byte *)&req[1];    /* Our buffer is safe */
 
        DBG_TRC(("A(%d) E(%08x) request(%02x-%02x-%02x (%d))",
                 e->adapter->adapter_nr, e, e->e.Id, e->e.Req,
@@ -595,9 +595,9 @@ static int process_idi_request(divas_um_idi_entity_t * e,
        if (assign) {
                if (e->e.Rc == OUT_OF_RESOURCES) {
                        /*
-                          XDI has no entities more, call was not forwarded to the card,
-                          no callback will be scheduled
-                        */
+                         XDI has no entities more, call was not forwarded to the card,
+                         no callback will be scheduled
+                       */
                        DBG_ERR(("A: A(%d) E(%08x) XDI out of entities",
                                 e->adapter->adapter_nr, e));
 
@@ -621,7 +621,7 @@ static int process_idi_request(divas_um_idi_entity_t * e,
        return (0);
 }
 
-static int process_idi_rc(divas_um_idi_entity_t * e, byte rc)
+static int process_idi_rc(divas_um_idi_entity_t *e, byte rc)
 {
        DBG_TRC(("A(%d) E(%08x) rc(%02x-%02x-%02x)",
                 e->adapter->adapter_nr, e, e->e.Id, rc, e->e.RcCh));
@@ -674,20 +674,20 @@ static int process_idi_rc(divas_um_idi_entity_t * e, byte rc)
        return (1);
 }
 
-static int process_idi_ind(divas_um_idi_entity_t * e, byte ind)
+static int process_idi_ind(divas_um_idi_entity_t *e, byte ind)
 {
        int do_wakeup = 0;
 
        if (e->e.complete != 0x02) {
                diva_um_idi_ind_hdr_t *pind =
-                   (diva_um_idi_ind_hdr_t *)
-                   diva_data_q_get_segment4write(&e->data);
+                       (diva_um_idi_ind_hdr_t *)
+                       diva_data_q_get_segment4write(&e->data);
                if (pind) {
                        e->e.RNum = 1;
-                       e->e.R->P = (byte *) & pind[1];
+                       e->e.R->P = (byte *)&pind[1];
                        e->e.R->PLength =
-                           (word) (diva_data_q_get_max_length(&e->data) -
-                                   sizeof(*pind));
+                               (word) (diva_data_q_get_max_length(&e->data) -
+                                       sizeof(*pind));
                        DBG_TRC(("A(%d) E(%08x) ind_1(%02x-%02x-%02x)-[%d-%d]",
                                 e->adapter->adapter_nr, e, e->e.Id, ind,
                                 e->e.IndCh, e->e.RLength,
@@ -703,7 +703,7 @@ static int process_idi_ind(divas_um_idi_entity_t * e, byte ind)
                }
        } else {
                diva_um_idi_ind_hdr_t *pind =
-                   (diva_um_idi_ind_hdr_t *) (e->e.R->P);
+                       (diva_um_idi_ind_hdr_t *) (e->e.R->P);
 
                DBG_TRC(("A(%d) E(%08x) ind(%02x-%02x-%02x)-[%d]",
                         e->adapter->adapter_nr, e, e->e.Id, ind,
@@ -728,14 +728,14 @@ static int process_idi_ind(divas_um_idi_entity_t * e, byte ind)
 }
 
 /* --------------------------------------------------------------------------
-               Write return code to the return code queue of entity
-        -------------------------------------------------------------------------- */
-static int write_return_code(divas_um_idi_entity_t * e, byte rc)
+   Write return code to the return code queue of entity
+   -------------------------------------------------------------------------- */
+static int write_return_code(divas_um_idi_entity_t *e, byte rc)
 {
        diva_um_idi_ind_hdr_t *prc;
 
        if (!(prc =
-            (diva_um_idi_ind_hdr_t *) diva_data_q_get_segment4write(&e->rc)))
+             (diva_um_idi_ind_hdr_t *) diva_data_q_get_segment4write(&e->rc)))
        {
                DBG_ERR(("A: A(%d) E(%08x) rc(%02x) lost",
                         e->adapter->adapter_nr, e, rc));
@@ -753,9 +753,9 @@ static int write_return_code(divas_um_idi_entity_t * e, byte rc)
 }
 
 /* --------------------------------------------------------------------------
-               Return amount of entries that can be bead from this entity or
-               -1 if adapter was removed
-        -------------------------------------------------------------------------- */
+   Return amount of entries that can be bead from this entity or
+   -1 if adapter was removed
+   -------------------------------------------------------------------------- */
 int diva_user_mode_idi_ind_ready(void *entity, void *os_handle)
 {
        divas_um_idi_entity_t *e;
@@ -771,16 +771,16 @@ int diva_user_mode_idi_ind_ready(void *entity, void *os_handle)
 
        if ((!a) || (a->status & DIVA_UM_IDI_ADAPTER_REMOVED)) {
                /*
-                  Adapter was unloaded
-                */
+                 Adapter was unloaded
+               */
                diva_os_leave_spin_lock(&adapter_lock, &old_irql, "ind_ready");
                return (-1);    /* adapter was removed */
        }
        if (e->status & DIVA_UM_IDI_REMOVED) {
                /*
-                  entity was removed as result of adapter removal
-                  user should assign this entity again
-                */
+                 entity was removed as result of adapter removal
+                 user should assign this entity again
+               */
                diva_os_leave_spin_lock(&adapter_lock, &old_irql, "ind_ready");
                return (-1);
        }
@@ -827,7 +827,7 @@ int divas_um_idi_entity_assigned(void *entity)
        DBG_TRC(("Id:%02x, rc_count:%d, status:%08x", e->e.Id, e->rc_count,
                 e->status))
 
-       diva_os_leave_spin_lock(&adapter_lock, &old_irql, "assigned?");
+               diva_os_leave_spin_lock(&adapter_lock, &old_irql, "assigned?");
 
        return (ret);
 }
@@ -850,23 +850,23 @@ int divas_um_idi_entity_start_remove(void *entity)
 
        if (e->rc_count) {
                /*
-                  Entity BUSY
-                */
+                 Entity BUSY
+               */
                diva_os_leave_spin_lock(&adapter_lock, &old_irql, "start_remove");
                return (1);
        }
 
        if (!e->e.Id) {
                /*
-                  Remove request was already pending, and arrived now
-                */
+                 Remove request was already pending, and arrived now
+               */
                diva_os_leave_spin_lock(&adapter_lock, &old_irql, "start_remove");
                return (0);     /* REMOVE was pending */
        }
 
        /*
-          Now send remove request
-        */
+         Now send remove request
+       */
        e->e.Req = REMOVE;
        e->e.ReqCh = 0;
 
index 141072f..ffb88f7 100644 (file)
@@ -6,7 +6,7 @@
 
 /*
   interface between UM IDI core and OS dependent part
-  */
+*/
 int diva_user_mode_idi_init(void);
 void diva_user_mode_idi_finit(void);
 void *divas_um_idi_create_entity(dword adapter_nr, void *file);
index a3bd163..d303e65 100644 (file)
@@ -24,12 +24,12 @@ typedef union _divas_card_resources {
 } divas_card_resources_t;
 
 struct _diva_os_xdi_adapter;
-typedef int (*diva_init_card_proc_t) (struct _diva_os_xdi_adapter * a);
-typedef int (*diva_cmd_card_proc_t) (struct _diva_os_xdi_adapter * a,
-                                    diva_xdi_um_cfg_cmd_t * data,
-                                    int length);
-typedef void (*diva_xdi_clear_interrupts_proc_t) (struct
-                                                 _diva_os_xdi_adapter *);
+typedef int (*diva_init_card_proc_t)(struct _diva_os_xdi_adapter *a);
+typedef int (*diva_cmd_card_proc_t)(struct _diva_os_xdi_adapter *a,
+                                   diva_xdi_um_cfg_cmd_t *data,
+                                   int length);
+typedef void (*diva_xdi_clear_interrupts_proc_t)(struct
+                                                _diva_os_xdi_adapter *);
 
 #define DIVA_XDI_MBOX_BUSY                     1
 #define DIVA_XDI_MBOX_WAIT_XLOG        2
index 3ade28f..58368f7 100644 (file)
@@ -80,7 +80,7 @@
 
 /*
   Set untranslated protocol code features
-  */
+*/
 #define DIVA_XDI_UM_CMD_SET_PROTOCOL_FEATURES  11
 
 typedef struct _diva_xdi_um_cfg_cmd_data_set_features {
index cf34941..b3479e5 100644 (file)
@@ -1,26 +1,26 @@
 
 /*
  *
 Copyright (c) Eicon Networks, 2002.
+ Copyright (c) Eicon Networks, 2002.
  *
 This source file is supplied for the use with
 Eicon Networks range of DIVA Server Adapters.
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
  *
 Eicon File Revision :    2.1
+ Eicon File Revision :    2.1
  *
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  *
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
  *
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-static char diva_xdi_common_code_build[] = "102-52"; 
+static char diva_xdi_common_code_build[] = "102-52";
index 861b651..05ed4d0 100644 (file)
@@ -257,10 +257,10 @@ static struct bchannel *
 Sel_BCS(struct fritzcard *fc, u32 channel)
 {
        if (test_bit(FLG_ACTIVE, &fc->bch[0].Flags) &&
-               (fc->bch[0].nr & channel))
+           (fc->bch[0].nr & channel))
                return &fc->bch[0];
        else if (test_bit(FLG_ACTIVE, &fc->bch[1].Flags) &&
-               (fc->bch[1].nr & channel))
+                (fc->bch[1].nr & channel))
                return &fc->bch[1];
        else
                return NULL;
@@ -277,7 +277,7 @@ __write_ctrl_pci(struct fritzcard *fc, struct hdlc_hw *hdlc, u32 channel) {
 static inline void
 __write_ctrl_pciv2(struct fritzcard *fc, struct hdlc_hw *hdlc, u32 channel) {
        outl(hdlc->ctrl.ctrl, fc->addr + (channel == 2 ? AVM_HDLC_STATUS_2 :
-               AVM_HDLC_STATUS_1));
+                                         AVM_HDLC_STATUS_1));
 }
 
 void
@@ -287,7 +287,7 @@ write_ctrl(struct bchannel *bch, int which) {
 
        hdlc = &fc->hdlc[(bch->nr - 1) & 1];
        pr_debug("%s: hdlc %c wr%x ctrl %x\n", fc->name, '@' + bch->nr,
-               which, hdlc->ctrl.ctrl);
+                which, hdlc->ctrl.ctrl);
        switch (fc->type) {
        case AVM_FRITZ_PCIV2:
                __write_ctrl_pciv2(fc, hdlc, bch->nr);
@@ -310,7 +310,7 @@ static inline u32
 __read_status_pciv2(u_long addr, u32 channel)
 {
        return inl(addr + (channel == 2 ? AVM_HDLC_STATUS_2 :
-               AVM_HDLC_STATUS_1));
+                          AVM_HDLC_STATUS_1));
 }
 
 
@@ -349,7 +349,7 @@ modehdlc(struct bchannel *bch, int protocol)
 
        hdlc = &fc->hdlc[(bch->nr - 1) & 1];
        pr_debug("%s: hdlc %c protocol %x-->%x ch %d\n", fc->name,
-               '@' + bch->nr, bch->state, protocol, bch->nr);
+                '@' + bch->nr, bch->state, protocol, bch->nr);
        hdlc->ctrl.ctrl = 0;
        switch (protocol) {
        case -1: /* used for init */
@@ -411,14 +411,14 @@ hdlc_empty_fifo(struct bchannel *bch, int count)
        }
        if ((bch->rx_skb->len + count) > bch->maxlen) {
                pr_debug("%s: overrun %d\n", fc->name,
-                       bch->rx_skb->len + count);
+                        bch->rx_skb->len + count);
                return;
        }
        p = skb_put(bch->rx_skb, count);
        ptr = (u32 *)p;
        if (AVM_FRITZ_PCIV2 == fc->type)
                addr = fc->addr + (bch->nr == 2 ?
-                       AVM_HDLC_FIFO_2 : AVM_HDLC_FIFO_1);
+                                  AVM_HDLC_FIFO_2 : AVM_HDLC_FIFO_1);
        else {
                addr = fc->addr + CHIP_WINDOW;
                outl(bch->nr == 2 ? AVM_HDLC_2 : AVM_HDLC_1, fc->addr);
@@ -431,7 +431,7 @@ hdlc_empty_fifo(struct bchannel *bch, int count)
        }
        if (debug & DEBUG_HW_BFIFO) {
                snprintf(fc->log, LOG_SIZE, "B%1d-recv %s %d ",
-                       bch->nr, fc->name, count);
+                        bch->nr, fc->name, count);
                print_hex_dump_bytes(fc->log, DUMP_PREFIX_OFFSET, p, count);
        }
 }
@@ -460,14 +460,14 @@ hdlc_fill_fifo(struct bchannel *bch)
                        hdlc->ctrl.sr.cmd |= HDLC_CMD_XME;
        }
        pr_debug("%s: %s %d/%d/%d", fc->name, __func__, count,
-               bch->tx_idx, bch->tx_skb->len);
+                bch->tx_idx, bch->tx_skb->len);
        ptr = (u32 *)p;
        bch->tx_idx += count;
        hdlc->ctrl.sr.xml = ((count == HDLC_FIFO_SIZE) ? 0 : count);
        if (AVM_FRITZ_PCIV2 == fc->type) {
                __write_ctrl_pciv2(fc, hdlc, bch->nr);
                addr = fc->addr + (bch->nr == 2 ?
-                       AVM_HDLC_FIFO_2 : AVM_HDLC_FIFO_1);
+                                  AVM_HDLC_FIFO_2 : AVM_HDLC_FIFO_1);
        } else {
                __write_ctrl_pci(fc, hdlc, bch->nr);
                addr = fc->addr + CHIP_WINDOW;
@@ -480,7 +480,7 @@ hdlc_fill_fifo(struct bchannel *bch)
        }
        if (debug & DEBUG_HW_BFIFO) {
                snprintf(fc->log, LOG_SIZE, "B%1d-send %s %d ",
-                       bch->nr, fc->name, count);
+                        bch->nr, fc->name, count);
                print_hex_dump_bytes(fc->log, DUMP_PREFIX_OFFSET, p, count);
        }
 }
@@ -528,14 +528,14 @@ HDLC_irq(struct bchannel *bch, u32 stat)
                        if (!bch->rx_skb)
                                goto handle_tx;
                        if ((stat & HDLC_STAT_RME) || test_bit(FLG_TRANSPARENT,
-                           &bch->Flags)) {
+                                                              &bch->Flags)) {
                                if (((stat & HDLC_STAT_CRCVFRRAB) ==
-                                   HDLC_STAT_CRCVFR) ||
+                                    HDLC_STAT_CRCVFR) ||
                                    test_bit(FLG_TRANSPARENT, &bch->Flags)) {
                                        recv_Bchannel(bch, 0);
                                } else {
                                        pr_debug("%s: got invalid frame\n",
-                                               fc->name);
+                                                fc->name);
                                        skb_trim(bch->rx_skb, 0);
                                }
                        }
@@ -549,11 +549,11 @@ handle_tx:
                 */
                if (bch->tx_skb)
                        pr_debug("%s: ch%d XDU len(%d) idx(%d) Flags(%lx)\n",
-                               fc->name, bch->nr, bch->tx_skb->len,
-                               bch->tx_idx, bch->Flags);
+                                fc->name, bch->nr, bch->tx_skb->len,
+                                bch->tx_idx, bch->Flags);
                else
                        pr_debug("%s: ch%d XDU no tx_skb Flags(%lx)\n",
-                               fc->name, bch->nr, bch->Flags);
+                                fc->name, bch->nr, bch->Flags);
                if (bch->tx_skb && bch->tx_skb->len) {
                        if (!test_bit(FLG_TRANSPARENT, &bch->Flags))
                                bch->tx_idx = 0;
@@ -685,7 +685,7 @@ avm_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(&fc->lock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                               NULL, GFP_KERNEL);
+                                   NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                spin_lock_irqsave(&fc->lock, flags);
@@ -693,7 +693,7 @@ avm_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                modehdlc(bch, ISDN_P_NONE);
                spin_unlock_irqrestore(&fc->lock, flags);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
                ret = 0;
                break;
        }
@@ -749,7 +749,7 @@ reset_avm(struct fritzcard *fc)
        mdelay(1);
        if (debug & DEBUG_HW)
                pr_notice("%s: S0/S1 %x/%x\n", fc->name,
-                       inb(fc->addr + 2), inb(fc->addr + 3));
+                         inb(fc->addr + 2), inb(fc->addr + 3));
 }
 
 static int
@@ -761,10 +761,10 @@ init_card(struct fritzcard *fc)
        reset_avm(fc); /* disable IRQ */
        if (fc->type == AVM_FRITZ_PCIV2)
                ret = request_irq(fc->irq, avm_fritzv2_interrupt,
-                       IRQF_SHARED, fc->name, fc);
+                                 IRQF_SHARED, fc->name, fc);
        else
                ret = request_irq(fc->irq, avm_fritz_interrupt,
-                       IRQF_SHARED, fc->name, fc);
+                                 IRQF_SHARED, fc->name, fc);
        if (ret) {
                pr_info("%s: couldn't get interrupt %d\n",
                        fc->name, fc->irq);
@@ -795,7 +795,7 @@ init_card(struct fritzcard *fc)
                msleep_interruptible(10);
                if (debug & DEBUG_HW)
                        pr_notice("%s: IRQ %d count %d\n", fc->name,
-                               fc->irq, fc->irqcnt);
+                                 fc->irq, fc->irqcnt);
                if (!fc->irqcnt) {
                        pr_info("%s: IRQ(%d) getting no IRQs during init %d\n",
                                fc->name, fc->irq, 3 - cnt);
@@ -817,7 +817,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_GETOP:
                cq->op = 0;
                break;
-       /* Nothing implemented yet */
+               /* Nothing implemented yet */
        case MISDN_CTRL_FILL_EMPTY:
        default:
                pr_info("%s: %s unknown Op %x\n", fc->name, __func__, cq->op);
@@ -931,7 +931,7 @@ avm_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        case CLOSE_CHANNEL:
                pr_debug("%s: dev(%d) close from %p\n", fc->name, dch->dev.id,
-                       __builtin_return_address(0));
+                        __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -939,7 +939,7 @@ avm_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        default:
                pr_debug("%s: %s unknown command %x\n",
-                       fc->name, __func__, cmd);
+                        fc->name, __func__, cmd);
                return -EINVAL;
        }
        return err;
@@ -963,7 +963,7 @@ setup_fritz(struct fritzcard *fc)
                if (debug & DEBUG_HW) {
                        pr_notice("%s: PCI stat %#x\n", fc->name, val);
                        pr_notice("%s: PCI Class %X Rev %d\n", fc->name,
-                               val & 0xff, (val >> 8) & 0xff);
+                                 val & 0xff, (val >> 8) & 0xff);
                        pr_notice("%s: HDLC version %x\n", fc->name, ver & 0xf);
                }
                ASSIGN_FUNC(V1, ISAC, fc->isac);
@@ -975,7 +975,7 @@ setup_fritz(struct fritzcard *fc)
                if (debug & DEBUG_HW) {
                        pr_notice("%s: PCI V2 stat %#x\n", fc->name, val);
                        pr_notice("%s: PCI V2 Class %X Rev %d\n", fc->name,
-                               val & 0xff, (val>>8) & 0xff);
+                                 val & 0xff, (val >> 8) & 0xff);
                        pr_notice("%s: HDLC version %x\n", fc->name, ver & 0xf);
                }
                ASSIGN_FUNC(V2, ISAC, fc->isac);
@@ -987,8 +987,8 @@ setup_fritz(struct fritzcard *fc)
                return -ENODEV;
        }
        pr_notice("%s: %s config irq:%d base:0x%X\n", fc->name,
-               (fc->type == AVM_FRITZ_PCI) ? "AVM Fritz!CARD PCI" :
-               "AVM Fritz!CARD PCIv2", fc->irq, fc->addr);
+                 (fc->type == AVM_FRITZ_PCI) ? "AVM Fritz!CARD PCI" :
+                 "AVM Fritz!CARD PCIv2", fc->irq, fc->addr);
        return 0;
 }
 
@@ -1035,7 +1035,7 @@ setup_instance(struct fritzcard *card)
        mISDNisac_init(&card->isac, card);
 
        card->isac.dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
-           (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
+               (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
        card->isac.dch.dev.D.ctrl = avm_dctrl;
        for (i = 0; i < 2; i++) {
                card->bch[i].nr = i + 1;
@@ -1051,7 +1051,7 @@ setup_instance(struct fritzcard *card)
        if (err)
                goto error;
        err = mISDN_register_device(&card->isac.dch.dev, &card->pdev->dev,
-               card->name);
+                                   card->name);
        if (err)
                goto error_reg;
        err = init_card(card);
@@ -1097,7 +1097,7 @@ fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
 
        pr_notice("mISDN: found adapter %s at %s\n",
-              (char *) ent->driver_data, pci_name(pdev));
+                 (char *) ent->driver_data, pci_name(pdev));
 
        card->addr = pci_resource_start(pdev, 1);
        card->irq = pdev->irq;
index 0c77386..b0588ac 100644 (file)
  */
 
 /*
-#define MAX_FRAME_SIZE 2048
+  #define MAX_FRAME_SIZE       2048
 */
 
 struct hfc_chan {
        struct dchannel *dch;   /* link if channel is a D-channel */
        struct bchannel *bch;   /* link if channel is a B-channel */
-       int             port;   /* the interface port this */
+       int             port;   /* the interface port this */
                                /* channel is associated with */
        int             nt_timer; /* -1 if off, 0 if elapsed, >0 if running */
        int             los, ais, slip_tx, slip_rx, rdi; /* current alarms */
@@ -89,7 +89,7 @@ struct hfcm_hw {
 #define        HFC_CFG_REPORT_RDI      8 /* the card should report remote alarm */
 #define        HFC_CFG_DTMF            9 /* enable DTMF-detection */
 #define        HFC_CFG_CRC4            10 /* disable CRC-4 Multiframe mode, */
-                                       /* use double frame instead. */
+/* use double frame instead. */
 
 #define HFC_TYPE_E1            1 /* controller is HFC-E1 */
 #define HFC_TYPE_4S            4 /* controller is HFC-4S */
@@ -109,9 +109,9 @@ struct hfcm_hw {
 #define        HFC_CHIP_E1CLOCK_GET    10 /* always get clock from E1 interface */
 #define        HFC_CHIP_E1CLOCK_PUT    11 /* always put clock from E1 interface */
 #define        HFC_CHIP_WATCHDOG       12 /* whether we should send signals */
-                                       /* to the watchdog */
+/* to the watchdog */
 #define        HFC_CHIP_B410P          13 /* whether we have a b410p with echocan in */
-                                       /* hw */
+/* hw */
 #define        HFC_CHIP_PLXSD          14 /* whether we have a Speech-Design PLX */
 #define        HFC_CHIP_EMBSD          15 /* whether we have a SD Embedded board */
 
@@ -148,26 +148,26 @@ struct hfc_multi {
        int             io_mode; /* selects mode */
 #ifdef HFC_REGISTER_DEBUG
        void            (*HFC_outb)(struct hfc_multi *hc, u_char reg,
-                               u_char val, const char *function, int line);
+                                   u_char val, const char *function, int line);
        void            (*HFC_outb_nodebug)(struct hfc_multi *hc, u_char reg,
-                               u_char val, const char *function, int line);
+                                           u_char val, const char *function, int line);
        u_char          (*HFC_inb)(struct hfc_multi *hc, u_char reg,
-                               const char *function, int line);
+                                  const char *function, int line);
        u_char          (*HFC_inb_nodebug)(struct hfc_multi *hc, u_char reg,
-                               const char *function, int line);
+                                          const char *function, int line);
        u_short         (*HFC_inw)(struct hfc_multi *hc, u_char reg,
-                               const char *function, int line);
+                                  const char *function, int line);
        u_short         (*HFC_inw_nodebug)(struct hfc_multi *hc, u_char reg,
-                               const char *function, int line);
+                                          const char *function, int line);
        void            (*HFC_wait)(struct hfc_multi *hc,
-                               const char *function, int line);
+                                   const char *function, int line);
        void            (*HFC_wait_nodebug)(struct hfc_multi *hc,
-                               const char *function, int line);
+                                           const char *function, int line);
 #else
        void            (*HFC_outb)(struct hfc_multi *hc, u_char reg,
-                               u_char val);
+                                   u_char val);
        void            (*HFC_outb_nodebug)(struct hfc_multi *hc, u_char reg,
-                               u_char val);
+                                           u_char val);
        u_char          (*HFC_inb)(struct hfc_multi *hc, u_char reg);
        u_char          (*HFC_inb_nodebug)(struct hfc_multi *hc, u_char reg);
        u_short         (*HFC_inw)(struct hfc_multi *hc, u_char reg);
@@ -176,9 +176,9 @@ struct hfc_multi {
        void            (*HFC_wait_nodebug)(struct hfc_multi *hc);
 #endif
        void            (*read_fifo)(struct hfc_multi *hc, u_char *data,
-                               int len);
+                                    int len);
        void            (*write_fifo)(struct hfc_multi *hc, u_char *data,
-                               int len);
+                                     int len);
        u_long          pci_origmembase, plx_origmembase;
        void __iomem    *pci_membase; /* PCI memory */
        void __iomem    *plx_membase; /* PLX memory */
@@ -211,10 +211,10 @@ struct hfc_multi {
                                        /* an optical Interface */
        int             dslot;  /* channel # of d-channel (E1) default 16 */
 
-       u_long          wdcount;        /* every 500 ms we need to */
+       u_long          wdcount;        /* every 500 ms we need to */
                                        /* send the watchdog a signal */
        u_char          wdbyte; /* watchdog toggle byte */
-       u_int           activity[8];    /* if there is any action on this */
+       u_int           activity[8];    /* if there is any action on this */
                                        /* port (will be cleared after */
                                        /* showing led-states) */
        int             e1_state; /* keep track of last state */
@@ -268,7 +268,7 @@ struct hfc_multi {
 #define PLX_DSP_RES_N          PLX_GPIO8
 /* GPIO4..8 Enable & Set to OUT, SLAVE_EN_N = 1 */
 #define PLX_GPIOC_INIT         (PLX_GPIO4_DIR | PLX_GPIO5_DIR | PLX_GPIO6_DIR \
-                       | PLX_GPIO7_DIR | PLX_GPIO8_DIR | PLX_SLAVE_EN_N)
+                                | PLX_GPIO7_DIR | PLX_GPIO8_DIR | PLX_SLAVE_EN_N)
 
 /* PLX Interrupt Control/STATUS */
 #define PLX_INTCSR_LINTI1_ENABLE 0x01
@@ -290,7 +290,7 @@ struct hfc_multi {
 /* write only registers */
 #define R_CIRM                 0x00
 #define R_CTRL                 0x01
-#define R_BRG_PCM_CFG          0x02
+#define R_BRG_PCM_CFG          0x02
 #define R_RAM_ADDR0            0x08
 #define R_RAM_ADDR1            0x09
 #define R_RAM_ADDR2            0x0A
@@ -687,8 +687,8 @@ struct hfc_multi {
 #define V_NEG_CLK              0x08
 #define V_HCLK                 0x10
 /*
-#define V_JATT_AUTO_DEL                0x20
-#define V_JATT_AUTO            0x40
+  #define V_JATT_AUTO_DEL              0x20
+  #define V_JATT_AUTO          0x40
 */
 #define V_JATT_OFF             0x80
 /* R_STATE */
@@ -1230,4 +1230,3 @@ struct hfc_register_names {
        {"R_IRQ_FIFO_BL7",      0xCF},
 };
 #endif /* HFC_REGISTER_DEBUG */
-
index 45ddced..0eafe9f 100644 (file)
@@ -16,9 +16,9 @@
 static void
 #ifdef HFC_REGISTER_DEBUG
 HFC_outb_embsd(struct hfc_multi *hc, u_char reg, u_char val,
-               const char *function, int line)
+              const char *function, int line)
 #else
-HFC_outb_embsd(struct hfc_multi *hc, u_char reg, u_char val)
+       HFC_outb_embsd(struct hfc_multi *hc, u_char reg, u_char val)
 #endif
 {
        hc->immap->im_ioport.iop_padat |= PA_XHFC_A0;
@@ -30,7 +30,7 @@ static u_char
 #ifdef HFC_REGISTER_DEBUG
 HFC_inb_embsd(struct hfc_multi *hc, u_char reg, const char *function, int line)
 #else
-HFC_inb_embsd(struct hfc_multi *hc, u_char reg)
+       HFC_inb_embsd(struct hfc_multi *hc, u_char reg)
 #endif
 {
        hc->immap->im_ioport.iop_padat |= PA_XHFC_A0;
@@ -42,7 +42,7 @@ static u_short
 #ifdef HFC_REGISTER_DEBUG
 HFC_inw_embsd(struct hfc_multi *hc, u_char reg, const char *function, int line)
 #else
-HFC_inw_embsd(struct hfc_multi *hc, u_char reg)
+       HFC_inw_embsd(struct hfc_multi *hc, u_char reg)
 #endif
 {
        hc->immap->im_ioport.iop_padat |= PA_XHFC_A0;
@@ -54,7 +54,7 @@ static void
 #ifdef HFC_REGISTER_DEBUG
 HFC_wait_embsd(struct hfc_multi *hc, const char *function, int line)
 #else
-HFC_wait_embsd(struct hfc_multi *hc)
+       HFC_wait_embsd(struct hfc_multi *hc)
 #endif
 {
        hc->immap->im_ioport.iop_padat |= PA_XHFC_A0;
@@ -96,8 +96,8 @@ static int
 setup_embedded(struct hfc_multi *hc, struct hm_map *m)
 {
        printk(KERN_INFO
-           "HFC-multi: card manufacturer: '%s' card name: '%s' clock: %s\n",
-           m->vendor_name, m->card_name, m->clock2 ? "double" : "normal");
+              "HFC-multi: card manufacturer: '%s' card name: '%s' clock: %s\n",
+              m->vendor_name, m->card_name, m->clock2 ? "double" : "normal");
 
        hc->pci_dev = NULL;
        if (m->clock2)
@@ -129,20 +129,20 @@ setup_embedded(struct hfc_multi *hc, struct hm_map *m)
                hc->write_fifo = write_fifo_embsd;
                hc->xhfc_origmembase = XHFC_MEMBASE + XHFC_OFFSET * hc->id;
                hc->xhfc_membase = (u_char *)ioremap(hc->xhfc_origmembase,
-                               XHFC_MEMSIZE);
+                                                    XHFC_MEMSIZE);
                if (!hc->xhfc_membase) {
                        printk(KERN_WARNING
-                           "HFC-multi: failed to remap xhfc address space. "
-                           "(internal error)\n");
+                              "HFC-multi: failed to remap xhfc address space. "
+                              "(internal error)\n");
                        return -EIO;
                }
                hc->xhfc_memaddr = (u_long *)(hc->xhfc_membase + 4);
                hc->xhfc_memdata = (u_long *)(hc->xhfc_membase);
                printk(KERN_INFO
-                   "HFC-multi: xhfc_membase:%#lx xhfc_origmembase:%#lx "
-                   "xhfc_memaddr:%#lx xhfc_memdata:%#lx\n",
-                   (u_long)hc->xhfc_membase, hc->xhfc_origmembase,
-                   (u_long)hc->xhfc_memaddr, (u_long)hc->xhfc_memdata);
+                      "HFC-multi: xhfc_membase:%#lx xhfc_origmembase:%#lx "
+                      "xhfc_memaddr:%#lx xhfc_memdata:%#lx\n",
+                      (u_long)hc->xhfc_membase, hc->xhfc_origmembase,
+                      (u_long)hc->xhfc_memaddr, (u_long)hc->xhfc_memdata);
                break;
        default:
                printk(KERN_WARNING "HFC-multi: Invalid IO mode.\n");
index 3132ddc..411cd10 100644 (file)
@@ -58,7 +58,7 @@
 /* GCI/IOM bus configuration registers */
 #define HFCPCI_MST_EMOD                0xB4
 #define HFCPCI_MST_MODE                0xB8
-#define HFCPCI_CONNECT                 0xBC
+#define HFCPCI_CONNECT         0xBC
 
 
 /* Interrupt and status registers */
@@ -189,18 +189,18 @@ struct zt {
 
 struct dfifo {
        u_char data[D_FIFO_SIZE]; /* FIFO data space */
-       u_char fill1[0x20A0-D_FIFO_SIZE]; /* reserved, do not use */
+       u_char fill1[0x20A0 - D_FIFO_SIZE]; /* reserved, do not use */
        u_char f1, f2; /* f pointers */
-       u_char fill2[0x20C0-0x20A2]; /* reserved, do not use */
+       u_char fill2[0x20C0 - 0x20A2]; /* reserved, do not use */
        /* mask index with D_FREG_MASK for access */
-       struct zt za[MAX_D_FRAMES+1];
-       u_char fill3[0x4000-0x2100]; /* align 16K */
+       struct zt za[MAX_D_FRAMES + 1];
+       u_char fill3[0x4000 - 0x2100]; /* align 16K */
 };
 
 struct bzfifo {
-       struct zt       za[MAX_B_FRAMES+1]; /* only range 0x0..0x1F allowed */
+       struct zt       za[MAX_B_FRAMES + 1]; /* only range 0x0..0x1F allowed */
        u_char          f1, f2; /* f pointers */
-       u_char          fill[0x2100-0x2082]; /* alignment */
+       u_char          fill[0x2100 - 0x2082]; /* alignment */
 };
 
 
@@ -224,5 +224,5 @@ union fifo_area {
        u_char fill[32768];
 };
 
-#define Write_hfc(a, b, c) (writeb(c, (a->hw.pci_io)+b))
-#define Read_hfc(a, b) (readb((a->hw.pci_io)+b))
+#define Write_hfc(a, b, c) (writeb(c, (a->hw.pci_io) + b))
+#define Read_hfc(a, b) (readb((a->hw.pci_io) + b))
index a440d7f..0332231 100644 (file)
  *
  * hwid:
  *     NOTE: only one hwid value must be given once
- *     Enable special embedded devices with XHFC controllers.
+ *     Enable special embedded devices with XHFC controllers.
  */
 
 /*
 #include <linux/mISDNdsp.h>
 
 /*
-#define IRQCOUNT_DEBUG
-#define IRQ_DEBUG
+  #define IRQCOUNT_DEBUG
+  #define IRQ_DEBUG
 */
 
 #include "hfc_multi.h"
@@ -237,21 +237,21 @@ module_param_array(port, uint, NULL, S_IRUGO | S_IWUSR);
 module_param(hwid, uint, S_IRUGO | S_IWUSR); /* The hardware ID */
 
 #ifdef HFC_REGISTER_DEBUG
-#define HFC_outb(hc, reg, val) \
+#define HFC_outb(hc, reg, val)                                 \
        (hc->HFC_outb(hc, reg, val, __func__, __LINE__))
-#define HFC_outb_nodebug(hc, reg, val) \
+#define HFC_outb_nodebug(hc, reg, val)                                 \
        (hc->HFC_outb_nodebug(hc, reg, val, __func__, __LINE__))
-#define HFC_inb(hc, reg) \
+#define HFC_inb(hc, reg)                               \
        (hc->HFC_inb(hc, reg, __func__, __LINE__))
-#define HFC_inb_nodebug(hc, reg) \
+#define HFC_inb_nodebug(hc, reg)                               \
        (hc->HFC_inb_nodebug(hc, reg, __func__, __LINE__))
-#define HFC_inw(hc, reg) \
+#define HFC_inw(hc, reg)                               \
        (hc->HFC_inw(hc, reg, __func__, __LINE__))
-#define HFC_inw_nodebug(hc, reg) \
+#define HFC_inw_nodebug(hc, reg)                               \
        (hc->HFC_inw_nodebug(hc, reg, __func__, __LINE__))
-#define HFC_wait(hc) \
+#define HFC_wait(hc)                           \
        (hc->HFC_wait(hc, __func__, __LINE__))
-#define HFC_wait_nodebug(hc) \
+#define HFC_wait_nodebug(hc)                           \
        (hc->HFC_wait_nodebug(hc, __func__, __LINE__))
 #else
 #define HFC_outb(hc, reg, val)         (hc->HFC_outb(hc, reg, val))
@@ -274,7 +274,7 @@ static void
 HFC_outb_pcimem(struct hfc_multi *hc, u_char reg, u_char val,
                const char *function, int line)
 #else
-HFC_outb_pcimem(struct hfc_multi *hc, u_char reg, u_char val)
+       HFC_outb_pcimem(struct hfc_multi *hc, u_char reg, u_char val)
 #endif
 {
        writeb(val, hc->pci_membase + reg);
@@ -283,7 +283,7 @@ static u_char
 #ifdef HFC_REGISTER_DEBUG
 HFC_inb_pcimem(struct hfc_multi *hc, u_char reg, const char *function, int line)
 #else
-HFC_inb_pcimem(struct hfc_multi *hc, u_char reg)
+       HFC_inb_pcimem(struct hfc_multi *hc, u_char reg)
 #endif
 {
        return readb(hc->pci_membase + reg);
@@ -292,7 +292,7 @@ static u_short
 #ifdef HFC_REGISTER_DEBUG
 HFC_inw_pcimem(struct hfc_multi *hc, u_char reg, const char *function, int line)
 #else
-HFC_inw_pcimem(struct hfc_multi *hc, u_char reg)
+       HFC_inw_pcimem(struct hfc_multi *hc, u_char reg)
 #endif
 {
        return readw(hc->pci_membase + reg);
@@ -301,7 +301,7 @@ static void
 #ifdef HFC_REGISTER_DEBUG
 HFC_wait_pcimem(struct hfc_multi *hc, const char *function, int line)
 #else
-HFC_wait_pcimem(struct hfc_multi *hc)
+       HFC_wait_pcimem(struct hfc_multi *hc)
 #endif
 {
        while (readb(hc->pci_membase + R_STATUS) & V_BUSY)
@@ -312,9 +312,9 @@ HFC_wait_pcimem(struct hfc_multi *hc)
 static void
 #ifdef HFC_REGISTER_DEBUG
 HFC_outb_regio(struct hfc_multi *hc, u_char reg, u_char val,
-       const char *function, int line)
+              const char *function, int line)
 #else
-HFC_outb_regio(struct hfc_multi *hc, u_char reg, u_char val)
+       HFC_outb_regio(struct hfc_multi *hc, u_char reg, u_char val)
 #endif
 {
        outb(reg, hc->pci_iobase + 4);
@@ -324,7 +324,7 @@ static u_char
 #ifdef HFC_REGISTER_DEBUG
 HFC_inb_regio(struct hfc_multi *hc, u_char reg, const char *function, int line)
 #else
-HFC_inb_regio(struct hfc_multi *hc, u_char reg)
+       HFC_inb_regio(struct hfc_multi *hc, u_char reg)
 #endif
 {
        outb(reg, hc->pci_iobase + 4);
@@ -334,7 +334,7 @@ static u_short
 #ifdef HFC_REGISTER_DEBUG
 HFC_inw_regio(struct hfc_multi *hc, u_char reg, const char *function, int line)
 #else
-HFC_inw_regio(struct hfc_multi *hc, u_char reg)
+       HFC_inw_regio(struct hfc_multi *hc, u_char reg)
 #endif
 {
        outb(reg, hc->pci_iobase + 4);
@@ -344,7 +344,7 @@ static void
 #ifdef HFC_REGISTER_DEBUG
 HFC_wait_regio(struct hfc_multi *hc, const char *function, int line)
 #else
-HFC_wait_regio(struct hfc_multi *hc)
+       HFC_wait_regio(struct hfc_multi *hc)
 #endif
 {
        outb(R_STATUS, hc->pci_iobase + 4);
@@ -355,7 +355,7 @@ HFC_wait_regio(struct hfc_multi *hc)
 #ifdef HFC_REGISTER_DEBUG
 static void
 HFC_outb_debug(struct hfc_multi *hc, u_char reg, u_char val,
-               const char *function, int line)
+              const char *function, int line)
 {
        char regname[256] = "", bits[9] = "xxxxxxxx";
        int i;
@@ -377,8 +377,8 @@ HFC_outb_debug(struct hfc_multi *hc, u_char reg, u_char val,
        bits[1] = '0' + (!!(val & 64));
        bits[0] = '0' + (!!(val & 128));
        printk(KERN_DEBUG
-           "HFC_outb(chip %d, %02x=%s, 0x%02x=%s); in %s() line %d\n",
-           hc->id, reg, regname, val, bits, function, line);
+              "HFC_outb(chip %d, %02x=%s, 0x%02x=%s); in %s() line %d\n",
+              hc->id, reg, regname, val, bits, function, line);
        HFC_outb_nodebug(hc, reg, val);
 }
 static u_char
@@ -407,8 +407,8 @@ HFC_inb_debug(struct hfc_multi *hc, u_char reg, const char *function, int line)
        bits[1] = '0' + (!!(val & 64));
        bits[0] = '0' + (!!(val & 128));
        printk(KERN_DEBUG
-           "HFC_inb(chip %d, %02x=%s) = 0x%02x=%s; in %s() line %d\n",
-           hc->id, reg, regname, val, bits, function, line);
+              "HFC_inb(chip %d, %02x=%s) = 0x%02x=%s; in %s() line %d\n",
+              hc->id, reg, regname, val, bits, function, line);
        return val;
 }
 static u_short
@@ -429,15 +429,15 @@ HFC_inw_debug(struct hfc_multi *hc, u_char reg, const char *function, int line)
                strcpy(regname, "register");
 
        printk(KERN_DEBUG
-           "HFC_inw(chip %d, %02x=%s) = 0x%04x; in %s() line %d\n",
-           hc->id, reg, regname, val, function, line);
+              "HFC_inw(chip %d, %02x=%s) = 0x%04x; in %s() line %d\n",
+              hc->id, reg, regname, val, function, line);
        return val;
 }
 static void
 HFC_wait_debug(struct hfc_multi *hc, const char *function, int line)
 {
        printk(KERN_DEBUG "HFC_wait(chip %d); in %s() line %d\n",
-           hc->id, function, line);
+              hc->id, function, line);
        HFC_wait_nodebug(hc);
 }
 #endif
@@ -446,13 +446,13 @@ HFC_wait_debug(struct hfc_multi *hc, const char *function, int line)
 static void
 write_fifo_regio(struct hfc_multi *hc, u_char *data, int len)
 {
-       outb(A_FIFO_DATA0, (hc->pci_iobase)+4);
-       while (len>>2) {
+       outb(A_FIFO_DATA0, (hc->pci_iobase) + 4);
+       while (len >> 2) {
                outl(cpu_to_le32(*(u32 *)data), hc->pci_iobase);
                data += 4;
                len -= 4;
        }
-       while (len>>1) {
+       while (len >> 1) {
                outw(cpu_to_le16(*(u16 *)data), hc->pci_iobase);
                data += 2;
                len -= 2;
@@ -467,15 +467,15 @@ write_fifo_regio(struct hfc_multi *hc, u_char *data, int len)
 static void
 write_fifo_pcimem(struct hfc_multi *hc, u_char *data, int len)
 {
-       while (len>>2) {
+       while (len >> 2) {
                writel(cpu_to_le32(*(u32 *)data),
-                       hc->pci_membase + A_FIFO_DATA0);
+                      hc->pci_membase + A_FIFO_DATA0);
                data += 4;
                len -= 4;
        }
-       while (len>>1) {
+       while (len >> 1) {
                writew(cpu_to_le16(*(u16 *)data),
-                       hc->pci_membase + A_FIFO_DATA0);
+                      hc->pci_membase + A_FIFO_DATA0);
                data += 2;
                len -= 2;
        }
@@ -490,13 +490,13 @@ write_fifo_pcimem(struct hfc_multi *hc, u_char *data, int len)
 static void
 read_fifo_regio(struct hfc_multi *hc, u_char *data, int len)
 {
-       outb(A_FIFO_DATA0, (hc->pci_iobase)+4);
-       while (len>>2) {
+       outb(A_FIFO_DATA0, (hc->pci_iobase) + 4);
+       while (len >> 2) {
                *(u32 *)data = le32_to_cpu(inl(hc->pci_iobase));
                data += 4;
                len -= 4;
        }
-       while (len>>1) {
+       while (len >> 1) {
                *(u16 *)data = le16_to_cpu(inw(hc->pci_iobase));
                data += 2;
                len -= 2;
@@ -512,13 +512,13 @@ read_fifo_regio(struct hfc_multi *hc, u_char *data, int len)
 static void
 read_fifo_pcimem(struct hfc_multi *hc, u_char *data, int len)
 {
-       while (len>>2) {
+       while (len >> 2) {
                *(u32 *)data =
                        le32_to_cpu(readl(hc->pci_membase + A_FIFO_DATA0));
                data += 4;
                len -= 4;
        }
-       while (len>>1) {
+       while (len >> 1) {
                *(u16 *)data =
                        le16_to_cpu(readw(hc->pci_membase + A_FIFO_DATA0));
                data += 2;
@@ -607,7 +607,7 @@ writepcibridge(struct hfc_multi *hc, unsigned char address, unsigned char data)
        outw(cipv, hc->pci_iobase + 4);
        /* define a 32 bit dword with 4 identical bytes for write sequence */
        datav = data | ((__u32) data << 8) | ((__u32) data << 16) |
-           ((__u32) data << 24);
+               ((__u32) data << 24);
 
        /*
         * write this 32 bit dword to the bridge data port
@@ -699,7 +699,7 @@ vpm_in(struct hfc_multi *c, int which, unsigned short addr)
 
 inline void
 vpm_out(struct hfc_multi *c, int which, unsigned short addr,
-    unsigned char data)
+       unsigned char data)
 {
        vpm_write_address(c, addr);
 
@@ -717,11 +717,11 @@ vpm_out(struct hfc_multi *c, int which, unsigned short addr,
        disablepcibridge(c);
 
        {
-       unsigned char regin;
-       regin = vpm_in(c, which, addr);
-       if (regin != data)
-               printk(KERN_DEBUG "Wrote 0x%x to register 0x%x but got back "
-                       "0x%x\n", data, addr, regin);
+               unsigned char regin;
+               regin = vpm_in(c, which, addr);
+               if (regin != data)
+                       printk(KERN_DEBUG "Wrote 0x%x to register 0x%x but got back "
+                              "0x%x\n", data, addr, regin);
        }
 
 }
@@ -853,16 +853,16 @@ vpm_echocan_on(struct hfc_multi *hc, int ch, int taps)
 
 #ifdef TXADJ
        skb = _alloc_mISDN_skb(PH_CONTROL_IND, HFC_VOL_CHANGE_TX,
-               sizeof(int), &txadj, GFP_ATOMIC);
+                              sizeof(int), &txadj, GFP_ATOMIC);
        if (skb)
                recv_Bchannel_skb(bch, skb);
 #endif
 
-       timeslot = ((ch/4)*8) + ((ch%4)*4) + 1;
+       timeslot = ((ch / 4) * 8) + ((ch % 4) * 4) + 1;
        unit = ch % 4;
 
        printk(KERN_NOTICE "vpm_echocan_on called taps [%d] on timeslot %d\n",
-           taps, timeslot);
+              taps, timeslot);
 
        vpm_out(hc, unit, timeslot, 0x7e);
 }
@@ -886,16 +886,16 @@ vpm_echocan_off(struct hfc_multi *hc, int ch)
 
 #ifdef TXADJ
        skb = _alloc_mISDN_skb(PH_CONTROL_IND, HFC_VOL_CHANGE_TX,
-               sizeof(int), &txadj, GFP_ATOMIC);
+                              sizeof(int), &txadj, GFP_ATOMIC);
        if (skb)
                recv_Bchannel_skb(bch, skb);
 #endif
 
-       timeslot = ((ch/4)*8) + ((ch%4)*4) + 1;
+       timeslot = ((ch / 4) * 8) + ((ch % 4) * 4) + 1;
        unit = ch % 4;
 
        printk(KERN_NOTICE "vpm_echocan_off called on timeslot %d\n",
-           timeslot);
+              timeslot);
        /* FILLME */
        vpm_out(hc, unit, timeslot, 0x01);
 }
@@ -920,7 +920,7 @@ hfcmulti_resync(struct hfc_multi *locked, struct hfc_multi *newmaster, int rm)
 
        if (debug & DEBUG_HFCMULTI_PLXSD)
                printk(KERN_DEBUG "%s: RESYNC(syncmaster=0x%p)\n",
-                       __func__, syncmaster);
+                      __func__, syncmaster);
 
        /* select new master */
        if (newmaster) {
@@ -949,7 +949,7 @@ hfcmulti_resync(struct hfc_multi *locked, struct hfc_multi *newmaster, int rm)
                                if (hc->ctype == HFC_TYPE_E1) {
                                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                                printk(KERN_DEBUG
-                                                       "Schedule SYNC_I\n");
+                                                      "Schedule SYNC_I\n");
                                        hc->e1_resync |= 1; /* get SYNC_I */
                                }
                        }
@@ -960,7 +960,7 @@ hfcmulti_resync(struct hfc_multi *locked, struct hfc_multi *newmaster, int rm)
                hc = newmaster;
                if (debug & DEBUG_HFCMULTI_PLXSD)
                        printk(KERN_DEBUG "id=%d (0x%p) = syncronized with "
-                               "interface.\n", hc->id, hc);
+                              "interface.\n", hc->id, hc);
                /* Enable new sync master */
                plx_acc_32 = hc->plx_membase + PLX_GPIOC;
                pv = readl(plx_acc_32);
@@ -968,7 +968,7 @@ hfcmulti_resync(struct hfc_multi *locked, struct hfc_multi *newmaster, int rm)
                writel(pv, plx_acc_32);
                /* switch to jatt PLL, if not disabled by RX_SYNC */
                if (hc->ctype == HFC_TYPE_E1
-                               && !test_bit(HFC_CHIP_RX_SYNC, &hc->chip)) {
+                   && !test_bit(HFC_CHIP_RX_SYNC, &hc->chip)) {
                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                printk(KERN_DEBUG "Schedule jatt PLL\n");
                        hc->e1_resync |= 2; /* switch to jatt */
@@ -978,20 +978,20 @@ hfcmulti_resync(struct hfc_multi *locked, struct hfc_multi *newmaster, int rm)
                        hc = pcmmaster;
                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                printk(KERN_DEBUG
-                                       "id=%d (0x%p) = PCM master syncronized "
-                                       "with QUARTZ\n", hc->id, hc);
+                                      "id=%d (0x%p) = PCM master syncronized "
+                                      "with QUARTZ\n", hc->id, hc);
                        if (hc->ctype == HFC_TYPE_E1) {
                                /* Use the crystal clock for the PCM
                                   master card */
                                if (debug & DEBUG_HFCMULTI_PLXSD)
                                        printk(KERN_DEBUG
-                                           "Schedule QUARTZ for HFC-E1\n");
+                                              "Schedule QUARTZ for HFC-E1\n");
                                hc->e1_resync |= 4; /* switch quartz */
                        } else {
                                if (debug & DEBUG_HFCMULTI_PLXSD)
                                        printk(KERN_DEBUG
-                                           "QUARTZ is automatically "
-                                           "enabled by HFC-%dS\n", hc->ctype);
+                                              "QUARTZ is automatically "
+                                              "enabled by HFC-%dS\n", hc->ctype);
                        }
                        plx_acc_32 = hc->plx_membase + PLX_GPIOC;
                        pv = readl(plx_acc_32);
@@ -1000,7 +1000,7 @@ hfcmulti_resync(struct hfc_multi *locked, struct hfc_multi *newmaster, int rm)
                } else
                        if (!rm)
                                printk(KERN_ERR "%s no pcm master, this MUST "
-                                       "not happen!\n", __func__);
+                                      "not happen!\n", __func__);
        }
        syncmaster = newmaster;
 
@@ -1016,16 +1016,16 @@ plxsd_checksync(struct hfc_multi *hc, int rm)
                if (syncmaster == NULL) {
                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                printk(KERN_DEBUG "%s: GOT sync on card %d"
-                                       " (id=%d)\n", __func__, hc->id + 1,
-                                       hc->id);
+                                      " (id=%d)\n", __func__, hc->id + 1,
+                                      hc->id);
                        hfcmulti_resync(hc, hc, rm);
                }
        } else {
                if (syncmaster == hc) {
                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                printk(KERN_DEBUG "%s: LOST sync on card %d"
-                                       " (id=%d)\n", __func__, hc->id + 1,
-                                       hc->id);
+                                      " (id=%d)\n", __func__, hc->id + 1,
+                                      hc->id);
                        hfcmulti_resync(hc, NULL, rm);
                }
        }
@@ -1057,7 +1057,7 @@ release_io_hfcmulti(struct hfc_multi *hc)
        if (test_bit(HFC_CHIP_PLXSD, &hc->chip) && hc->plx_membase) {
                if (debug & DEBUG_HFCMULTI_PLXSD)
                        printk(KERN_DEBUG "%s: release PLXSD card %d\n",
-                           __func__, hc->id + 1);
+                              __func__, hc->id + 1);
                spin_lock_irqsave(&plx_lock, plx_flags);
                plx_acc_32 = hc->plx_membase + PLX_GPIOC;
                writel(PLX_GPIOC_INIT, plx_acc_32);
@@ -1073,7 +1073,7 @@ release_io_hfcmulti(struct hfc_multi *hc)
                writel(pv, plx_acc_32);
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PCM off: PLX_GPIO=%x\n",
-                               __func__, pv);
+                              __func__, pv);
                spin_unlock_irqrestore(&plx_lock, plx_flags);
        }
 
@@ -1131,22 +1131,22 @@ init_chip(struct hfc_multi *hc)
        }
        rev = HFC_inb(hc, R_CHIP_RV);
        printk(KERN_INFO
-           "HFC_multi: detected HFC with chip ID=0x%lx revision=%ld%s\n",
-           val, rev, (rev == 0 && (hc->ctype != HFC_TYPE_XHFC)) ?
-               " (old FIFO handling)" : "");
+              "HFC_multi: detected HFC with chip ID=0x%lx revision=%ld%s\n",
+              val, rev, (rev == 0 && (hc->ctype != HFC_TYPE_XHFC)) ?
+              " (old FIFO handling)" : "");
        if (hc->ctype != HFC_TYPE_XHFC && rev == 0) {
                test_and_set_bit(HFC_CHIP_REVISION0, &hc->chip);
                printk(KERN_WARNING
-                   "HFC_multi: NOTE: Your chip is revision 0, "
-                   "ask Cologne Chip for update. Newer chips "
-                   "have a better FIFO handling. Old chips "
-                   "still work but may have slightly lower "
-                   "HDLC transmit performance.\n");
+                      "HFC_multi: NOTE: Your chip is revision 0, "
+                      "ask Cologne Chip for update. Newer chips "
+                      "have a better FIFO handling. Old chips "
+                      "still work but may have slightly lower "
+                      "HDLC transmit performance.\n");
        }
        if (rev > 1) {
                printk(KERN_WARNING "HFC_multi: WARNING: This driver doesn't "
-                   "consider chip revision = %ld. The chip / "
-                   "bridge may not work.\n", rev);
+                      "consider chip revision = %ld. The chip / "
+                      "bridge may not work.\n", rev);
        }
 
        /* set s-ram size */
@@ -1157,7 +1157,7 @@ init_chip(struct hfc_multi *hc)
        if (test_bit(HFC_CHIP_EXRAM_128, &hc->chip)) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: changing to 128K extenal RAM\n",
-                           __func__);
+                              __func__);
                hc->hw.r_ctrl |= V_EXT_RAM;
                hc->hw.r_ram_sz = 1;
                hc->Flen = 0x20;
@@ -1168,7 +1168,7 @@ init_chip(struct hfc_multi *hc)
        if (test_bit(HFC_CHIP_EXRAM_512, &hc->chip)) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: changing to 512K extenal RAM\n",
-                           __func__);
+                              __func__);
                hc->hw.r_ctrl |= V_EXT_RAM;
                hc->hw.r_ram_sz = 2;
                hc->Flen = 0x20;
@@ -1190,7 +1190,7 @@ init_chip(struct hfc_multi *hc)
        if (test_bit(HFC_CHIP_PLXSD, &hc->chip)) {
                if (debug & DEBUG_HFCMULTI_PLXSD)
                        printk(KERN_DEBUG "%s: initializing PLXSD card %d\n",
-                           __func__, hc->id + 1);
+                              __func__, hc->id + 1);
                spin_lock_irqsave(&plx_lock, plx_flags);
                plx_acc_32 = hc->plx_membase + PLX_GPIOC;
                writel(PLX_GPIOC_INIT, plx_acc_32);
@@ -1207,7 +1207,7 @@ init_chip(struct hfc_multi *hc)
                spin_unlock_irqrestore(&plx_lock, plx_flags);
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: slave/term: PLX_GPIO=%x\n",
-                               __func__, pv);
+                              __func__, pv);
                /*
                 * If we are the 3rd PLXSD card or higher, we must turn
                 * termination of last PLXSD card off.
@@ -1225,8 +1225,8 @@ init_chip(struct hfc_multi *hc)
                if (plx_count >= 3) {
                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                printk(KERN_DEBUG "%s: card %d is between, so "
-                                       "we disable termination\n",
-                                   __func__, plx_last_hc->id + 1);
+                                      "we disable termination\n",
+                                      __func__, plx_last_hc->id + 1);
                        spin_lock_irqsave(&plx_lock, plx_flags);
                        plx_acc_32 = plx_last_hc->plx_membase + PLX_GPIOC;
                        pv = readl(plx_acc_32);
@@ -1235,8 +1235,8 @@ init_chip(struct hfc_multi *hc)
                        spin_unlock_irqrestore(&plx_lock, plx_flags);
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: term off: PLX_GPIO=%x\n",
-                                   __func__, pv);
+                                      "%s: term off: PLX_GPIO=%x\n",
+                                      __func__, pv);
                }
                spin_unlock_irqrestore(&HFClock, hfc_flags);
                hc->hw.r_pcm_md0 = V_F0_LEN; /* shift clock for DSP */
@@ -1253,24 +1253,24 @@ init_chip(struct hfc_multi *hc)
        if (test_bit(HFC_CHIP_PCM_SLAVE, &hc->chip)) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: setting PCM into slave mode\n",
-                           __func__);
+                              __func__);
        } else
-       if (test_bit(HFC_CHIP_PCM_MASTER, &hc->chip) && !plxsd_master) {
-               if (debug & DEBUG_HFCMULTI_INIT)
-                       printk(KERN_DEBUG "%s: setting PCM into master mode\n",
-                           __func__);
-               hc->hw.r_pcm_md0 |= V_PCM_MD;
-       } else {
-               if (debug & DEBUG_HFCMULTI_INIT)
-                       printk(KERN_DEBUG "%s: performing PCM auto detect\n",
-                           __func__);
-       }
+               if (test_bit(HFC_CHIP_PCM_MASTER, &hc->chip) && !plxsd_master) {
+                       if (debug & DEBUG_HFCMULTI_INIT)
+                               printk(KERN_DEBUG "%s: setting PCM into master mode\n",
+                                      __func__);
+                       hc->hw.r_pcm_md0 |= V_PCM_MD;
+               } else {
+                       if (debug & DEBUG_HFCMULTI_INIT)
+                               printk(KERN_DEBUG "%s: performing PCM auto detect\n",
+                                      __func__);
+               }
 
        /* soft reset */
        HFC_outb(hc, R_CTRL, hc->hw.r_ctrl);
        if (hc->ctype == HFC_TYPE_XHFC)
                HFC_outb(hc, 0x0C /* R_FIFO_THRES */,
-                               0x11 /* 16 Bytes TX/RX */);
+                        0x11 /* 16 Bytes TX/RX */);
        else
                HFC_outb(hc, R_RAM_SZ, hc->hw.r_ram_sz);
        HFC_outb(hc, R_FIFO_MD, 0);
@@ -1298,13 +1298,13 @@ init_chip(struct hfc_multi *hc)
                        pv |= PLX_SYNC_O_EN;
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG "%s: master: PLX_GPIO=%x\n",
-                                       __func__, pv);
+                                      __func__, pv);
                } else {
                        pv &= ~(PLX_MASTER_EN | PLX_SLAVE_EN_N);
                        pv &= ~PLX_SYNC_O_EN;
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG "%s: slave: PLX_GPIO=%x\n",
-                                       __func__, pv);
+                                      __func__, pv);
                }
                writel(pv, plx_acc_32);
                spin_unlock_irqrestore(&plx_lock, plx_flags);
@@ -1338,7 +1338,7 @@ init_chip(struct hfc_multi *hc)
        if (test_bit(HFC_CHIP_CLOCK2, &hc->chip)) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: setting double clock\n", __func__);
+                              "%s: setting double clock\n", __func__);
                HFC_outb(hc, R_BRG_PCM_CFG, V_PCM_CLK);
        }
 
@@ -1360,48 +1360,48 @@ init_chip(struct hfc_multi *hc)
        val += HFC_inb(hc, R_F0_CNTH) << 8;
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG
-                   "HFC_multi F0_CNT %ld after reset\n", val);
+                      "HFC_multi F0_CNT %ld after reset\n", val);
        spin_unlock_irqrestore(&hc->lock, flags);
        set_current_state(TASK_UNINTERRUPTIBLE);
-       schedule_timeout((HZ/100)?:1); /* Timeout minimum 10ms */
+       schedule_timeout((HZ / 100) ? : 1); /* Timeout minimum 10ms */
        spin_lock_irqsave(&hc->lock, flags);
        val2 = HFC_inb(hc, R_F0_CNTL);
        val2 += HFC_inb(hc, R_F0_CNTH) << 8;
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG
-                       "HFC_multi F0_CNT %ld after 10 ms (1st try)\n",
-                   val2);
-       if (val2 >= val+8) { /* 1 ms */
+                      "HFC_multi F0_CNT %ld after 10 ms (1st try)\n",
+                      val2);
+       if (val2 >= val + 8) { /* 1 ms */
                /* it counts, so we keep the pcm mode */
                if (test_bit(HFC_CHIP_PCM_MASTER, &hc->chip))
                        printk(KERN_INFO "controller is PCM bus MASTER\n");
                else
-               if (test_bit(HFC_CHIP_PCM_SLAVE, &hc->chip))
-                       printk(KERN_INFO "controller is PCM bus SLAVE\n");
-               else {
-                       test_and_set_bit(HFC_CHIP_PCM_SLAVE, &hc->chip);
-                       printk(KERN_INFO "controller is PCM bus SLAVE "
-                               "(auto detected)\n");
-               }
+                       if (test_bit(HFC_CHIP_PCM_SLAVE, &hc->chip))
+                               printk(KERN_INFO "controller is PCM bus SLAVE\n");
+                       else {
+                               test_and_set_bit(HFC_CHIP_PCM_SLAVE, &hc->chip);
+                               printk(KERN_INFO "controller is PCM bus SLAVE "
+                                      "(auto detected)\n");
+                       }
        } else {
                /* does not count */
                if (test_bit(HFC_CHIP_PCM_MASTER, &hc->chip)) {
-controller_fail:
+               controller_fail:
                        printk(KERN_ERR "HFC_multi ERROR, getting no 125us "
-                           "pulse. Seems that controller fails.\n");
+                              "pulse. Seems that controller fails.\n");
                        err = -EIO;
                        goto out;
                }
                if (test_bit(HFC_CHIP_PCM_SLAVE, &hc->chip)) {
                        printk(KERN_INFO "controller is PCM bus SLAVE "
-                               "(ignoring missing PCM clock)\n");
+                              "(ignoring missing PCM clock)\n");
                } else {
                        /* only one pcm master */
                        if (test_bit(HFC_CHIP_PLXSD, &hc->chip)
-                               && plxsd_master) {
+                           && plxsd_master) {
                                printk(KERN_ERR "HFC_multi ERROR, no clock "
-                                   "on another Speech Design card found. "
-                                   "Please be sure to connect PCM cable.\n");
+                                      "on another Speech Design card found. "
+                                      "Please be sure to connect PCM cable.\n");
                                err = -EIO;
                                goto out;
                        }
@@ -1416,24 +1416,24 @@ controller_fail:
                                spin_unlock_irqrestore(&plx_lock, plx_flags);
                                if (debug & DEBUG_HFCMULTI_INIT)
                                        printk(KERN_DEBUG "%s: master: "
-                                           "PLX_GPIO=%x\n", __func__, pv);
+                                              "PLX_GPIO=%x\n", __func__, pv);
                        }
                        hc->hw.r_pcm_md0 |= V_PCM_MD;
                        HFC_outb(hc, R_PCM_MD0, hc->hw.r_pcm_md0 | 0x00);
                        spin_unlock_irqrestore(&hc->lock, flags);
                        set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout((HZ/100)?:1); /* Timeout min. 10ms */
+                       schedule_timeout((HZ / 100) ?: 1); /* Timeout min. 10ms */
                        spin_lock_irqsave(&hc->lock, flags);
                        val2 = HFC_inb(hc, R_F0_CNTL);
                        val2 += HFC_inb(hc, R_F0_CNTH) << 8;
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG "HFC_multi F0_CNT %ld after "
-                                       "10 ms (2nd try)\n", val2);
-                       if (val2 >= val+8) { /* 1 ms */
+                                      "10 ms (2nd try)\n", val2);
+                       if (val2 >= val + 8) { /* 1 ms */
                                test_and_set_bit(HFC_CHIP_PCM_MASTER,
-                                       &hc->chip);
+                                                &hc->chip);
                                printk(KERN_INFO "controller is PCM bus MASTER "
-                                       "(auto detected)\n");
+                                      "(auto detected)\n");
                        } else
                                goto controller_fail;
                }
@@ -1451,21 +1451,21 @@ controller_fail:
                spin_unlock_irqrestore(&plx_lock, plx_flags);
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: reset off: PLX_GPIO=%x\n",
-                               __func__, pv);
+                              __func__, pv);
        }
 
        /* pcm id */
        if (hc->pcm)
                printk(KERN_INFO "controller has given PCM BUS ID %d\n",
-                       hc->pcm);
+                      hc->pcm);
        else {
                if (test_bit(HFC_CHIP_PCM_MASTER, &hc->chip)
-                || test_bit(HFC_CHIP_PLXSD, &hc->chip)) {
+                   || test_bit(HFC_CHIP_PLXSD, &hc->chip)) {
                        PCM_cnt++; /* SD has proprietary bridging */
                }
                hc->pcm = PCM_cnt;
                printk(KERN_INFO "controller has PCM BUS ID %d "
-                       "(auto selected)\n", hc->pcm);
+                      "(auto selected)\n", hc->pcm);
        }
 
        /* set up timer */
@@ -1480,7 +1480,7 @@ controller_fail:
        if (test_bit(HFC_CHIP_DTMF, &hc->chip)) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: enabling DTMF detection "
-                           "for all B-channel\n", __func__);
+                              "for all B-channel\n", __func__);
                hc->hw.r_dtmf = V_DTMF_EN | V_DTMF_STOP;
                if (test_bit(HFC_CHIP_ULAW, &hc->chip))
                        hc->hw.r_dtmf |= V_ULAW_SEL;
@@ -1527,8 +1527,8 @@ controller_fail:
        if (hc->masterclk >= 0) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: setting ST master clock "
-                           "to port %d (0..%d)\n",
-                           __func__, hc->masterclk, hc->ports-1);
+                              "to port %d (0..%d)\n",
+                              __func__, hc->masterclk, hc->ports - 1);
                hc->hw.r_st_sync |= (hc->masterclk | V_AUTO_SYNC);
                HFC_outb(hc, R_ST_SYNC, hc->hw.r_st_sync);
        }
@@ -1539,7 +1539,7 @@ controller_fail:
        HFC_outb(hc, R_IRQMSK_MISC, hc->hw.r_irqmsk_misc);
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "r_irqmsk_misc.2: 0x%x\n",
-                   hc->hw.r_irqmsk_misc);
+                      hc->hw.r_irqmsk_misc);
 
        /* RAM access test */
        HFC_outb(hc, R_RAM_ADDR0, 0);
@@ -1547,7 +1547,7 @@ controller_fail:
        HFC_outb(hc, R_RAM_ADDR2, 0);
        for (i = 0; i < 256; i++) {
                HFC_outb_nodebug(hc, R_RAM_ADDR0, i);
-               HFC_outb_nodebug(hc, R_RAM_DATA, ((i*3)&0xff));
+               HFC_outb_nodebug(hc, R_RAM_DATA, ((i * 3) & 0xff));
        }
        for (i = 0; i < 256; i++) {
                HFC_outb_nodebug(hc, R_RAM_ADDR0, i);
@@ -1555,8 +1555,8 @@ controller_fail:
                rval = HFC_inb_nodebug(hc, R_INT_DATA);
                if (rval != ((i * 3) & 0xff)) {
                        printk(KERN_DEBUG
-                           "addr:%x val:%x should:%x\n", i, rval,
-                           (i * 3) & 0xff);
+                              "addr:%x val:%x should:%x\n", i, rval,
+                              (i * 3) & 0xff);
                        err++;
                }
        }
@@ -1585,9 +1585,9 @@ hfcmulti_watchdog(struct hfc_multi *hc)
        if (hc->wdcount > 10) {
                hc->wdcount = 0;
                hc->wdbyte = hc->wdbyte == V_GPIO_OUT2 ?
-                   V_GPIO_OUT3 : V_GPIO_OUT2;
+                       V_GPIO_OUT3 : V_GPIO_OUT2;
 
-       /* printk("Sending Watchdog Kill %x\n",hc->wdbyte); */
+               /* printk("Sending Watchdog Kill %x\n",hc->wdbyte); */
                HFC_outb(hc, R_GPIO_EN0, V_GPIO_EN2 | V_GPIO_EN3);
                HFC_outb(hc, R_GPIO_OUT0, hc->wdbyte);
        }
@@ -1623,10 +1623,10 @@ hfcmulti_leds(struct hfc_multi *hc)
                 */
                if (hc->chan[hc->dslot].sync != 2) { /* no frame sync */
                        if (hc->chan[hc->dslot].dch->dev.D.protocol
-                               != ISDN_P_NT_E1) {
+                           != ISDN_P_NT_E1) {
                                led[0] = 1;
                                led[1] = 1;
-                       } else if (hc->ledcount>>11) {
+                       } else if (hc->ledcount >> 11) {
                                led[0] = 1;
                                led[1] = 1;
                        } else {
@@ -1643,7 +1643,7 @@ hfcmulti_leds(struct hfc_multi *hc)
                        led[3] = 1;
                }
                leds = (led[0] | (led[1]<<2) | (led[2]<<1) | (led[3]<<3))^0xF;
-                       /* leds are inverted */
+               /* leds are inverted */
                if (leds != (int)hc->ledstate) {
                        HFC_outb_nodebug(hc, R_GPIO_OUT1, leds);
                        hc->ledstate = leds;
@@ -1674,7 +1674,7 @@ hfcmulti_leds(struct hfc_multi *hc)
                                                /* TE mode: led red */
                                                led[i] = 2;
                                        else
-                                               if (hc->ledcount>>11)
+                                               if (hc->ledcount >> 11)
                                                        /* led red */
                                                        led[i] = 2;
                                                else
@@ -1700,9 +1700,9 @@ hfcmulti_leds(struct hfc_multi *hc)
                        }
                } else {
                        leds = ((led[3] > 0) << 0) | ((led[1] > 0) << 1) |
-                           ((led[0] > 0) << 2) | ((led[2] > 0) << 3) |
-                           ((led[3] & 1) << 4) | ((led[1] & 1) << 5) |
-                           ((led[0] & 1) << 6) | ((led[2] & 1) << 7);
+                               ((led[0] > 0) << 2) | ((led[2] > 0) << 3) |
+                               ((led[3] & 1) << 4) | ((led[1] & 1) << 5) |
+                               ((led[0] & 1) << 6) | ((led[2] & 1) << 7);
                        if (leds != (int)hc->ledstate) {
                                HFC_outb_nodebug(hc, R_GPIO_EN1, leds & 0x0F);
                                HFC_outb_nodebug(hc, R_GPIO_OUT1, leds >> 4);
@@ -1746,13 +1746,13 @@ hfcmulti_leds(struct hfc_multi *hc)
                }
 
 
-               leds = (led[0] > 0) | ((led[1] > 0)<<1) | ((led[0]&1)<<2)
-                       | ((led[1]&1)<<3);
+               leds = (led[0] > 0) | ((led[1] > 0) << 1) | ((led[0]&1) << 2)
+                       | ((led[1]&1) << 3);
                if (leds != (int)hc->ledstate) {
                        HFC_outb_nodebug(hc, R_GPIO_EN1,
-                           ((led[0] > 0) << 2) | ((led[1] > 0) << 3));
+                                        ((led[0] > 0) << 2) | ((led[1] > 0) << 3));
                        HFC_outb_nodebug(hc, R_GPIO_OUT1,
-                           ((led[0] & 1) << 2) | ((led[1] & 1) << 3));
+                                        ((led[0] & 1) << 2) | ((led[1] & 1) << 3));
                        hc->ledstate = leds;
                }
                break;
@@ -1784,7 +1784,7 @@ hfcmulti_leds(struct hfc_multi *hc)
                leddw = lled << 24 | lled << 16 | lled << 8 | lled;
                if (leddw != hc->ledstate) {
                        /* HFC_outb(hc, R_BRG_PCM_CFG, 1);
-                       HFC_outb(c, R_BRG_PCM_CFG, (0x0 << 6) | 0x3); */
+                          HFC_outb(c, R_BRG_PCM_CFG, (0x0 << 6) | 0x3); */
                        /* was _io before */
                        HFC_outb_nodebug(hc, R_BRG_PCM_CFG, 1 | V_PCM_CLK);
                        outw(0x4000, hc->pci_iobase + 4);
@@ -1826,16 +1826,16 @@ hfcmulti_dtmf(struct hfc_multi *hc)
                        continue;
                if (debug & DEBUG_HFCMULTI_DTMF)
                        printk(KERN_DEBUG "%s: dtmf channel %d:",
-                               __func__, ch);
+                              __func__, ch);
                coeff = &(hc->chan[ch].coeff[hc->chan[ch].coeff_count * 16]);
                dtmf = 1;
                for (co = 0; co < 8; co++) {
                        /* read W(n-1) coefficient */
-                       addr = hc->DTMFbase + ((co<<7) | (ch<<2));
+                       addr = hc->DTMFbase + ((co << 7) | (ch << 2));
                        HFC_outb_nodebug(hc, R_RAM_ADDR0, addr);
-                       HFC_outb_nodebug(hc, R_RAM_ADDR1, addr>>8);
-                       HFC_outb_nodebug(hc, R_RAM_ADDR2, (addr>>16)
-                               | V_ADDR_INC);
+                       HFC_outb_nodebug(hc, R_RAM_ADDR1, addr >> 8);
+                       HFC_outb_nodebug(hc, R_RAM_ADDR2, (addr >> 16)
+                                        | V_ADDR_INC);
                        w_float = HFC_inb_nodebug(hc, R_RAM_DATA);
                        w_float |= (HFC_inb_nodebug(hc, R_RAM_DATA) << 8);
                        if (debug & DEBUG_HFCMULTI_DTMF)
@@ -1845,14 +1845,14 @@ hfcmulti_dtmf(struct hfc_multi *hc)
                        mantissa = w_float & 0x0fff;
                        if (w_float & 0x8000)
                                mantissa |= 0xfffff000;
-                       exponent = (w_float>>12) & 0x7;
+                       exponent = (w_float >> 12) & 0x7;
                        if (exponent) {
                                mantissa ^= 0x1000;
-                               mantissa <<= (exponent-1);
+                               mantissa <<= (exponent - 1);
                        }
 
                        /* store coefficient */
-                       coeff[co<<1] = mantissa;
+                       coeff[co << 1] = mantissa;
 
                        /* read W(n) coefficient */
                        w_float = HFC_inb_nodebug(hc, R_RAM_DATA);
@@ -1864,27 +1864,27 @@ hfcmulti_dtmf(struct hfc_multi *hc)
                        mantissa = w_float & 0x0fff;
                        if (w_float & 0x8000)
                                mantissa |= 0xfffff000;
-                       exponent = (w_float>>12) & 0x7;
+                       exponent = (w_float >> 12) & 0x7;
                        if (exponent) {
                                mantissa ^= 0x1000;
-                               mantissa <<= (exponent-1);
+                               mantissa <<= (exponent - 1);
                        }
 
                        /* store coefficient */
-                       coeff[(co<<1)|1] = mantissa;
+                       coeff[(co << 1) | 1] = mantissa;
                }
                if (debug & DEBUG_HFCMULTI_DTMF)
                        printk(" DTMF ready %08x %08x %08x %08x "
-                           "%08x %08x %08x %08x\n",
-                           coeff[0], coeff[1], coeff[2], coeff[3],
-                           coeff[4], coeff[5], coeff[6], coeff[7]);
+                              "%08x %08x %08x %08x\n",
+                              coeff[0], coeff[1], coeff[2], coeff[3],
+                              coeff[4], coeff[5], coeff[6], coeff[7]);
                hc->chan[ch].coeff_count++;
                if (hc->chan[ch].coeff_count == 8) {
                        hc->chan[ch].coeff_count = 0;
                        skb = mI_alloc_skb(512, GFP_ATOMIC);
                        if (!skb) {
                                printk(KERN_DEBUG "%s: No memory for skb\n",
-                                   __func__);
+                                      __func__);
                                continue;
                        }
                        hh = mISDN_HEAD_P(skb);
@@ -1966,8 +1966,8 @@ next_frame:
                while (f2 != (temp = HFC_inb_nodebug(hc, A_F2))) {
                        if (debug & DEBUG_HFCMULTI_FIFO)
                                printk(KERN_DEBUG
-                                   "%s(card %d): reread f2 because %d!=%d\n",
-                                   __func__, hc->id + 1, temp, f2);
+                                      "%s(card %d): reread f2 because %d!=%d\n",
+                                      __func__, hc->id + 1, temp, f2);
                        f2 = temp; /* repeat until F2 is equal */
                }
                Fspace = f2 - f1 - 1;
@@ -1999,7 +1999,7 @@ next_frame:
        while (z2 != (temp = (HFC_inw_nodebug(hc, A_Z2) - hc->Zmin))) {
                if (debug & DEBUG_HFCMULTI_FIFO)
                        printk(KERN_DEBUG "%s(card %d): reread z2 because "
-                               "%d!=%d\n", __func__, hc->id + 1, temp, z2);
+                              "%d!=%d\n", __func__, hc->id + 1, temp, z2);
                z2 = temp; /* repeat unti Z2 is equal */
        }
        hc->chan[ch].Zfill = z1 - z2;
@@ -2023,28 +2023,28 @@ next_frame:
                            *txpending && slot_tx >= 0) {
                                if (debug & DEBUG_HFCMULTI_MODE)
                                        printk(KERN_DEBUG
-                                           "%s: reconnecting PCM due to no "
-                                           "more FIFO data: channel %d "
-                                           "slot_tx %d\n",
-                                           __func__, ch, slot_tx);
+                                              "%s: reconnecting PCM due to no "
+                                              "more FIFO data: channel %d "
+                                              "slot_tx %d\n",
+                                              __func__, ch, slot_tx);
                                /* connect slot */
                                if (hc->ctype == HFC_TYPE_XHFC)
                                        HFC_outb(hc, A_CON_HDLC, 0xc0
-                                           | 0x07 << 2 | V_HDLC_TRP | V_IFF);
-                                               /* Enable FIFO, no interrupt */
+                                                | 0x07 << 2 | V_HDLC_TRP | V_IFF);
+                               /* Enable FIFO, no interrupt */
                                else
                                        HFC_outb(hc, A_CON_HDLC, 0xc0 | 0x00 |
-                                           V_HDLC_TRP | V_IFF);
-                               HFC_outb_nodebug(hc, R_FIFO, ch<<1 | 1);
+                                                V_HDLC_TRP | V_IFF);
+                               HFC_outb_nodebug(hc, R_FIFO, ch << 1 | 1);
                                HFC_wait_nodebug(hc);
                                if (hc->ctype == HFC_TYPE_XHFC)
                                        HFC_outb(hc, A_CON_HDLC, 0xc0
-                                           | 0x07 << 2 | V_HDLC_TRP | V_IFF);
-                                               /* Enable FIFO, no interrupt */
+                                                | 0x07 << 2 | V_HDLC_TRP | V_IFF);
+                               /* Enable FIFO, no interrupt */
                                else
                                        HFC_outb(hc, A_CON_HDLC, 0xc0 | 0x00 |
-                                           V_HDLC_TRP | V_IFF);
-                               HFC_outb_nodebug(hc, R_FIFO, ch<<1);
+                                                V_HDLC_TRP | V_IFF);
+                               HFC_outb_nodebug(hc, R_FIFO, ch << 1);
                                HFC_wait_nodebug(hc);
                        }
                        *txpending = 0;
@@ -2054,10 +2054,10 @@ next_frame:
 
        /* "fill fifo if empty" feature */
        if (bch && test_bit(FLG_FILLEMPTY, &bch->Flags)
-               && !test_bit(FLG_HDLC, &bch->Flags) && z2 == z1) {
+           && !test_bit(FLG_HDLC, &bch->Flags) && z2 == z1) {
                if (debug & DEBUG_HFCMULTI_FILL)
                        printk(KERN_DEBUG "%s: buffer empty, so we have "
-                               "underrun\n", __func__);
+                              "underrun\n", __func__);
                /* fill buffer, to prevent future underrun */
                hc->write_fifo(hc, hc->silence_data, poll >> 1);
                Zspace -= (poll >> 1);
@@ -2065,29 +2065,29 @@ next_frame:
 
        /* if audio data and connected slot */
        if (bch && (!test_bit(FLG_HDLC, &bch->Flags)) && (!*txpending)
-               && slot_tx >= 0) {
+           && slot_tx >= 0) {
                if (debug & DEBUG_HFCMULTI_MODE)
                        printk(KERN_DEBUG "%s: disconnecting PCM due to "
-                           "FIFO data: channel %d slot_tx %d\n",
-                           __func__, ch, slot_tx);
+                              "FIFO data: channel %d slot_tx %d\n",
+                              __func__, ch, slot_tx);
                /* disconnect slot */
                if (hc->ctype == HFC_TYPE_XHFC)
                        HFC_outb(hc, A_CON_HDLC, 0x80
-                           | 0x07 << 2 | V_HDLC_TRP | V_IFF);
-                               /* Enable FIFO, no interrupt */
+                                | 0x07 << 2 | V_HDLC_TRP | V_IFF);
+               /* Enable FIFO, no interrupt */
                else
                        HFC_outb(hc, A_CON_HDLC, 0x80 | 0x00 |
-                           V_HDLC_TRP | V_IFF);
-               HFC_outb_nodebug(hc, R_FIFO, ch<<1 | 1);
+                                V_HDLC_TRP | V_IFF);
+               HFC_outb_nodebug(hc, R_FIFO, ch << 1 | 1);
                HFC_wait_nodebug(hc);
                if (hc->ctype == HFC_TYPE_XHFC)
                        HFC_outb(hc, A_CON_HDLC, 0x80
-                           | 0x07 << 2 | V_HDLC_TRP | V_IFF);
-                               /* Enable FIFO, no interrupt */
+                                | 0x07 << 2 | V_HDLC_TRP | V_IFF);
+               /* Enable FIFO, no interrupt */
                else
                        HFC_outb(hc, A_CON_HDLC, 0x80 | 0x00 |
-                           V_HDLC_TRP | V_IFF);
-               HFC_outb_nodebug(hc, R_FIFO, ch<<1);
+                                V_HDLC_TRP | V_IFF);
+               HFC_outb_nodebug(hc, R_FIFO, ch << 1);
                HFC_wait_nodebug(hc);
        }
        *txpending = 1;
@@ -2107,9 +2107,9 @@ next_frame:
                ii = Zspace + i;
        if (debug & DEBUG_HFCMULTI_FIFO)
                printk(KERN_DEBUG "%s(card %d): fifo(%d) has %d bytes space "
-                   "left (z1=%04x, z2=%04x) sending %d of %d bytes %s\n",
-                       __func__, hc->id + 1, ch, Zspace, z1, z2, ii-i, len-i,
-                       temp ? "HDLC" : "TRANS");
+                      "left (z1=%04x, z2=%04x) sending %d of %d bytes %s\n",
+                      __func__, hc->id + 1, ch, Zspace, z1, z2, ii-i, len-i,
+                      temp ? "HDLC" : "TRANS");
 
        /* Have to prep the audio data */
        hc->write_fifo(hc, d, ii - i);
@@ -2189,9 +2189,9 @@ next_frame:
            (hc->chan[ch].protocol == ISDN_P_B_RAW) &&
            (hc->chan[ch].slot_rx < 0) &&
            (hc->chan[ch].slot_tx < 0))
-               HFC_outb_nodebug(hc, R_FIFO, 0x20 | (ch<<1) | 1);
+               HFC_outb_nodebug(hc, R_FIFO, 0x20 | (ch << 1) | 1);
        else
-               HFC_outb_nodebug(hc, R_FIFO, (ch<<1)|1);
+               HFC_outb_nodebug(hc, R_FIFO, (ch << 1) | 1);
        HFC_wait_nodebug(hc);
 
        /* ignore if rx is off BUT change fifo (above) to start pending TX */
@@ -2203,8 +2203,8 @@ next_frame:
                while (f1 != (temp = HFC_inb_nodebug(hc, A_F1))) {
                        if (debug & DEBUG_HFCMULTI_FIFO)
                                printk(KERN_DEBUG
-                                   "%s(card %d): reread f1 because %d!=%d\n",
-                                   __func__, hc->id + 1, temp, f1);
+                                      "%s(card %d): reread f1 because %d!=%d\n",
+                                      __func__, hc->id + 1, temp, f1);
                        f1 = temp; /* repeat until F1 is equal */
                }
                f2 = HFC_inb_nodebug(hc, A_F2);
@@ -2213,7 +2213,7 @@ next_frame:
        while (z1 != (temp = (HFC_inw_nodebug(hc, A_Z1) - hc->Zmin))) {
                if (debug & DEBUG_HFCMULTI_FIFO)
                        printk(KERN_DEBUG "%s(card %d): reread z2 because "
-                               "%d!=%d\n", __func__, hc->id + 1, temp, z2);
+                              "%d!=%d\n", __func__, hc->id + 1, temp, z2);
                z1 = temp; /* repeat until Z1 is equal */
        }
        z2 = HFC_inw_nodebug(hc, A_Z2) - hc->Zmin;
@@ -2231,7 +2231,7 @@ next_frame:
                *sp = mI_alloc_skb(maxlen + 3, GFP_ATOMIC);
                if (*sp == NULL) {
                        printk(KERN_DEBUG "%s: No mem for rx_skb\n",
-                           __func__);
+                              __func__);
                        return;
                }
        }
@@ -2242,16 +2242,16 @@ next_frame:
        if (dch || test_bit(FLG_HDLC, &bch->Flags)) {
                if (debug & DEBUG_HFCMULTI_FIFO)
                        printk(KERN_DEBUG "%s(card %d): fifo(%d) reading %d "
-                           "bytes (z1=%04x, z2=%04x) HDLC %s (f1=%d, f2=%d) "
-                           "got=%d (again %d)\n", __func__, hc->id + 1, ch,
-                           Zsize, z1, z2, (f1 == f2) ? "fragment" : "COMPLETE",
-                           f1, f2, Zsize + (*sp)->len, again);
+                              "bytes (z1=%04x, z2=%04x) HDLC %s (f1=%d, f2=%d) "
+                              "got=%d (again %d)\n", __func__, hc->id + 1, ch,
+                              Zsize, z1, z2, (f1 == f2) ? "fragment" : "COMPLETE",
+                              f1, f2, Zsize + (*sp)->len, again);
                /* HDLC */
                if ((Zsize + (*sp)->len) > (maxlen + 3)) {
                        if (debug & DEBUG_HFCMULTI_FIFO)
                                printk(KERN_DEBUG
-                                   "%s(card %d): hdlc-frame too large.\n",
-                                   __func__, hc->id + 1);
+                                      "%s(card %d): hdlc-frame too large.\n",
+                                      __func__, hc->id + 1);
                        skb_trim(*sp, 0);
                        HFC_outb_nodebug(hc, R_INC_RES_FIFO, V_RES_F);
                        HFC_wait_nodebug(hc);
@@ -2268,8 +2268,8 @@ next_frame:
                        if ((*sp)->len < 4) {
                                if (debug & DEBUG_HFCMULTI_FIFO)
                                        printk(KERN_DEBUG
-                                           "%s(card %d): Frame below minimum "
-                                           "size\n", __func__, hc->id + 1);
+                                              "%s(card %d): Frame below minimum "
+                                              "size\n", __func__, hc->id + 1);
                                skb_trim(*sp, 0);
                                goto next_frame;
                        }
@@ -2277,7 +2277,7 @@ next_frame:
                        if ((*sp)->data[(*sp)->len - 1]) {
                                if (debug & DEBUG_HFCMULTI_CRC)
                                        printk(KERN_DEBUG
-                                           "%s: CRC-error\n", __func__);
+                                              "%s: CRC-error\n", __func__);
                                skb_trim(*sp, 0);
                                goto next_frame;
                        }
@@ -2287,11 +2287,11 @@ next_frame:
                                *sp = mI_alloc_skb(skb->len, GFP_ATOMIC);
                                if (*sp) {
                                        memcpy(skb_put(*sp, skb->len),
-                                           skb->data, skb->len);
+                                              skb->data, skb->len);
                                        skb_trim(skb, 0);
                                } else {
                                        printk(KERN_DEBUG "%s: No mem\n",
-                                           __func__);
+                                              __func__);
                                        *sp = skb;
                                        skb = NULL;
                                }
@@ -2300,7 +2300,7 @@ next_frame:
                        }
                        if (debug & DEBUG_HFCMULTI_FIFO) {
                                printk(KERN_DEBUG "%s(card %d):",
-                                       __func__, hc->id + 1);
+                                      __func__, hc->id + 1);
                                temp = 0;
                                while (temp < (*sp)->len)
                                        printk(" %02x", (*sp)->data[temp++]);
@@ -2325,7 +2325,7 @@ next_frame:
                        *sp = mI_alloc_skb(skb->len, GFP_ATOMIC);
                        if (*sp) {
                                memcpy(skb_put(*sp, skb->len),
-                                   skb->data, skb->len);
+                                      skb->data, skb->len);
                                skb_trim(skb, 0);
                        } else {
                                printk(KERN_DEBUG "%s: No mem\n", __func__);
@@ -2337,9 +2337,9 @@ next_frame:
                }
                if (debug & DEBUG_HFCMULTI_FIFO)
                        printk(KERN_DEBUG
-                           "%s(card %d): fifo(%d) reading %d bytes "
-                           "(z1=%04x, z2=%04x) TRANS\n",
-                               __func__, hc->id + 1, ch, Zsize, z1, z2);
+                              "%s(card %d): fifo(%d) reading %d bytes "
+                              "(z1=%04x, z2=%04x) TRANS\n",
+                              __func__, hc->id + 1, ch, Zsize, z1, z2);
                /* only bch is transparent */
                recv_Bchannel(bch, hc->chan[ch].Zfill);
                *sp = skb;
@@ -2362,7 +2362,7 @@ signal_state_up(struct dchannel *dch, int info, char *msg)
        id = TEI_SAPI | (GROUP_TEI << 8); /* manager address */
 
        skb = _alloc_mISDN_skb(MPH_INFORMATION_IND, id, sizeof(data), &data,
-               GFP_ATOMIC);
+                              GFP_ATOMIC);
        if (!skb)
                return;
        recv_Dchannel_skb(dch, skb);
@@ -2395,10 +2395,10 @@ handle_timer_irq(struct hfc_multi *hc)
                if (hc->e1_resync & 4) {
                        if (debug & DEBUG_HFCMULTI_PLXSD)
                                printk(KERN_DEBUG
-                                   "Enable QUARTZ for HFC-E1\n");
+                                      "Enable QUARTZ for HFC-E1\n");
                        /* set jatt to quartz */
                        HFC_outb(hc, R_SYNC_CTRL, V_EXT_CLK_SYNC
-                               | V_JATT_OFF);
+                                | V_JATT_OFF);
                        /* switch to JATT, in case it is not already */
                        HFC_outb(hc, R_SYNC_OUT, 0);
                }
@@ -2417,14 +2417,14 @@ handle_timer_irq(struct hfc_multi *hc)
                                        dch = hc->chan[ch].dch;
                                        if (!(--hc->chan[ch].nt_timer)) {
                                                schedule_event(dch,
-                                                   FLG_PHCHANGE);
+                                                              FLG_PHCHANGE);
                                                if (debug &
                                                    DEBUG_HFCMULTI_STATE)
                                                        printk(KERN_DEBUG
-                                                           "%s: nt_timer at "
-                                                           "state %x\n",
-                                                           __func__,
-                                                           dch->state);
+                                                              "%s: nt_timer at "
+                                                              "state %x\n",
+                                                              __func__,
+                                                              dch->state);
                                        }
                                }
                        }
@@ -2436,10 +2436,10 @@ handle_timer_irq(struct hfc_multi *hc)
                        temp = HFC_inb_nodebug(hc, R_SYNC_STA) & V_SIG_LOS;
                        if (!temp && hc->chan[hc->dslot].los)
                                signal_state_up(dch, L1_SIGNAL_LOS_ON,
-                                   "LOS detected");
+                                               "LOS detected");
                        if (temp && !hc->chan[hc->dslot].los)
                                signal_state_up(dch, L1_SIGNAL_LOS_OFF,
-                                   "LOS gone");
+                                               "LOS gone");
                        hc->chan[hc->dslot].los = temp;
                }
                if (test_bit(HFC_CFG_REPORT_AIS, &hc->chan[hc->dslot].cfg)) {
@@ -2447,10 +2447,10 @@ handle_timer_irq(struct hfc_multi *hc)
                        temp = HFC_inb_nodebug(hc, R_SYNC_STA) & V_AIS;
                        if (!temp && hc->chan[hc->dslot].ais)
                                signal_state_up(dch, L1_SIGNAL_AIS_ON,
-                                   "AIS detected");
+                                               "AIS detected");
                        if (temp && !hc->chan[hc->dslot].ais)
                                signal_state_up(dch, L1_SIGNAL_AIS_OFF,
-                                   "AIS gone");
+                                               "AIS gone");
                        hc->chan[hc->dslot].ais = temp;
                }
                if (test_bit(HFC_CFG_REPORT_SLIP, &hc->chan[hc->dslot].cfg)) {
@@ -2458,12 +2458,12 @@ handle_timer_irq(struct hfc_multi *hc)
                        temp = HFC_inb_nodebug(hc, R_SLIP) & V_FOSLIP_RX;
                        if (!temp && hc->chan[hc->dslot].slip_rx)
                                signal_state_up(dch, L1_SIGNAL_SLIP_RX,
-                                   " bit SLIP detected RX");
+                                               " bit SLIP detected RX");
                        hc->chan[hc->dslot].slip_rx = temp;
                        temp = HFC_inb_nodebug(hc, R_SLIP) & V_FOSLIP_TX;
                        if (!temp && hc->chan[hc->dslot].slip_tx)
                                signal_state_up(dch, L1_SIGNAL_SLIP_TX,
-                                   " bit SLIP detected TX");
+                                               " bit SLIP detected TX");
                        hc->chan[hc->dslot].slip_tx = temp;
                }
                if (test_bit(HFC_CFG_REPORT_RDI, &hc->chan[hc->dslot].cfg)) {
@@ -2471,10 +2471,10 @@ handle_timer_irq(struct hfc_multi *hc)
                        temp = HFC_inb_nodebug(hc, R_RX_SL0_0) & V_A;
                        if (!temp && hc->chan[hc->dslot].rdi)
                                signal_state_up(dch, L1_SIGNAL_RDI_ON,
-                                   "RDI detected");
+                                               "RDI detected");
                        if (temp && !hc->chan[hc->dslot].rdi)
                                signal_state_up(dch, L1_SIGNAL_RDI_OFF,
-                                   "RDI gone");
+                                               "RDI gone");
                        hc->chan[hc->dslot].rdi = temp;
                }
                temp = HFC_inb_nodebug(hc, R_JATT_DIR);
@@ -2483,13 +2483,13 @@ handle_timer_irq(struct hfc_multi *hc)
                        if ((temp & 0x60) == 0x60) {
                                if (debug & DEBUG_HFCMULTI_SYNC)
                                        printk(KERN_DEBUG
-                                           "%s: (id=%d) E1 now "
-                                           "in clock sync\n",
-                                           __func__, hc->id);
+                                              "%s: (id=%d) E1 now "
+                                              "in clock sync\n",
+                                              __func__, hc->id);
                                HFC_outb(hc, R_RX_OFF,
-                                   hc->chan[hc->dslot].jitter | V_RX_INIT);
+                                        hc->chan[hc->dslot].jitter | V_RX_INIT);
                                HFC_outb(hc, R_TX_OFF,
-                                   hc->chan[hc->dslot].jitter | V_RX_INIT);
+                                        hc->chan[hc->dslot].jitter | V_RX_INIT);
                                hc->chan[hc->dslot].sync = 1;
                                goto check_framesync;
                        }
@@ -2498,20 +2498,20 @@ handle_timer_irq(struct hfc_multi *hc)
                        if ((temp & 0x60) != 0x60) {
                                if (debug & DEBUG_HFCMULTI_SYNC)
                                        printk(KERN_DEBUG
-                                           "%s: (id=%d) E1 "
-                                           "lost clock sync\n",
-                                           __func__, hc->id);
+                                              "%s: (id=%d) E1 "
+                                              "lost clock sync\n",
+                                              __func__, hc->id);
                                hc->chan[hc->dslot].sync = 0;
                                break;
                        }
-check_framesync:
+               check_framesync:
                        temp = HFC_inb_nodebug(hc, R_SYNC_STA);
                        if (temp == 0x27) {
                                if (debug & DEBUG_HFCMULTI_SYNC)
                                        printk(KERN_DEBUG
-                                           "%s: (id=%d) E1 "
-                                           "now in frame sync\n",
-                                           __func__, hc->id);
+                                              "%s: (id=%d) E1 "
+                                              "now in frame sync\n",
+                                              __func__, hc->id);
                                hc->chan[hc->dslot].sync = 2;
                        }
                        break;
@@ -2519,9 +2519,9 @@ check_framesync:
                        if ((temp & 0x60) != 0x60) {
                                if (debug & DEBUG_HFCMULTI_SYNC)
                                        printk(KERN_DEBUG
-                                           "%s: (id=%d) E1 lost "
-                                           "clock & frame sync\n",
-                                           __func__, hc->id);
+                                              "%s: (id=%d) E1 lost "
+                                              "clock & frame sync\n",
+                                              __func__, hc->id);
                                hc->chan[hc->dslot].sync = 0;
                                break;
                        }
@@ -2529,9 +2529,9 @@ check_framesync:
                        if (temp != 0x27) {
                                if (debug & DEBUG_HFCMULTI_SYNC)
                                        printk(KERN_DEBUG
-                                           "%s: (id=%d) E1 "
-                                           "lost frame sync\n",
-                                           __func__, hc->id);
+                                              "%s: (id=%d) E1 "
+                                              "lost frame sync\n",
+                                              __func__, hc->id);
                                hc->chan[hc->dslot].sync = 1;
                        }
                        break;
@@ -2559,30 +2559,30 @@ ph_state_irq(struct hfc_multi *hc, u_char r_irq_statech)
                        dch = hc->chan[ch].dch;
                        if (r_irq_statech & 1) {
                                HFC_outb_nodebug(hc, R_ST_SEL,
-                                       hc->chan[ch].port);
+                                                hc->chan[ch].port);
                                /* undocumented: delay after R_ST_SEL */
                                udelay(1);
                                /* undocumented: status changes during read */
                                st_status = HFC_inb_nodebug(hc, A_ST_RD_STATE);
                                while (st_status != (temp =
-                                       HFC_inb_nodebug(hc, A_ST_RD_STATE))) {
+                                                    HFC_inb_nodebug(hc, A_ST_RD_STATE))) {
                                        if (debug & DEBUG_HFCMULTI_STATE)
                                                printk(KERN_DEBUG "%s: reread "
-                                                   "STATE because %d!=%d\n",
-                                                   __func__, temp,
-                                                   st_status);
+                                                      "STATE because %d!=%d\n",
+                                                      __func__, temp,
+                                                      st_status);
                                        st_status = temp; /* repeat */
                                }
 
                                /* Speech Design TE-sync indication */
                                if (test_bit(HFC_CHIP_PLXSD, &hc->chip) &&
-                                       dch->dev.D.protocol == ISDN_P_TE_S0) {
+                                   dch->dev.D.protocol == ISDN_P_TE_S0) {
                                        if (st_status & V_FR_SYNC_ST)
                                                hc->syncronized |=
-                                                   (1 << hc->chan[ch].port);
+                                                       (1 << hc->chan[ch].port);
                                        else
                                                hc->syncronized &=
-                                                  ~(1 << hc->chan[ch].port);
+                                                       ~(1 << hc->chan[ch].port);
                                }
                                dch->state = st_status & 0x0f;
                                if (dch->dev.D.protocol == ISDN_P_NT_S0)
@@ -2591,19 +2591,19 @@ ph_state_irq(struct hfc_multi *hc, u_char r_irq_statech)
                                        active = 7;
                                if (dch->state == active) {
                                        HFC_outb_nodebug(hc, R_FIFO,
-                                               (ch << 1) | 1);
+                                                        (ch << 1) | 1);
                                        HFC_wait_nodebug(hc);
                                        HFC_outb_nodebug(hc,
-                                               R_INC_RES_FIFO, V_RES_F);
+                                                        R_INC_RES_FIFO, V_RES_F);
                                        HFC_wait_nodebug(hc);
                                        dch->tx_idx = 0;
                                }
                                schedule_event(dch, FLG_PHCHANGE);
                                if (debug & DEBUG_HFCMULTI_STATE)
                                        printk(KERN_DEBUG
-                                           "%s: S/T newstate %x port %d\n",
-                                           __func__, dch->state,
-                                           hc->chan[ch].port);
+                                              "%s: S/T newstate %x port %d\n",
+                                              __func__, dch->state,
+                                              hc->chan[ch].port);
                        }
                        r_irq_statech >>= 1;
                }
@@ -2665,7 +2665,7 @@ hfcmulti_interrupt(int intno, void *dev_id)
 {
 #ifdef IRQCOUNT_DEBUG
        static int iq1 = 0, iq2 = 0, iq3 = 0, iq4 = 0,
-           iq5 = 0, iq6 = 0, iqcnt = 0;
+               iq5 = 0, iq6 = 0, iqcnt = 0;
 #endif
        struct hfc_multi        *hc = dev_id;
        struct dchannel         *dch;
@@ -2686,7 +2686,7 @@ hfcmulti_interrupt(int intno, void *dev_id)
 #ifdef IRQ_DEBUG
        if (irqsem)
                printk(KERN_ERR "irq for card %d during irq from "
-               "card %d, this is no bug.\n", hc->id + 1, irqsem);
+                      "card %d, this is no bug.\n", hc->id + 1, irqsem);
        irqsem = hc->id + 1;
 #endif
 #ifdef CONFIG_MISDN_HFCMULTI_8xx
@@ -2719,14 +2719,14 @@ hfcmulti_interrupt(int intno, void *dev_id)
                iq6++;
        if (iqcnt++ > 5000) {
                printk(KERN_ERR "iq1:%x iq2:%x iq3:%x iq4:%x iq5:%x iq6:%x\n",
-                   iq1, iq2, iq3, iq4, iq5, iq6);
+                      iq1, iq2, iq3, iq4, iq5, iq6);
                iqcnt = 0;
        }
 #endif
 
        if (!r_irq_statech &&
            !(status & (V_DTMF_STA | V_LOST_STA | V_EXT_IRQSTA |
-           V_MISC_IRQSTA | V_FR_IRQSTA))) {
+                       V_MISC_IRQSTA | V_FR_IRQSTA))) {
                /* irq is not for us */
                goto irq_notforus;
        }
@@ -2751,7 +2751,7 @@ hfcmulti_interrupt(int intno, void *dev_id)
                                dch = hc->chan[hc->dslot].dch;
                                e1_syncsta = HFC_inb_nodebug(hc, R_SYNC_STA);
                                if (test_bit(HFC_CHIP_PLXSD, &hc->chip)
-                                && hc->e1_getclock) {
+                                   && hc->e1_getclock) {
                                        if (e1_syncsta & V_FR_SYNC_E1)
                                                hc->syncronized = 1;
                                        else
@@ -2760,12 +2760,12 @@ hfcmulti_interrupt(int intno, void *dev_id)
                                /* undocumented: status changes during read */
                                dch->state = HFC_inb_nodebug(hc, R_E1_RD_STA);
                                while (dch->state != (temp =
-                                       HFC_inb_nodebug(hc, R_E1_RD_STA))) {
+                                                     HFC_inb_nodebug(hc, R_E1_RD_STA))) {
                                        if (debug & DEBUG_HFCMULTI_STATE)
                                                printk(KERN_DEBUG "%s: reread "
-                                                   "STATE because %d!=%d\n",
-                                                   __func__, temp,
-                                                   dch->state);
+                                                      "STATE because %d!=%d\n",
+                                                      __func__, temp,
+                                                      dch->state);
                                        dch->state = temp; /* repeat */
                                }
                                dch->state = HFC_inb_nodebug(hc, R_E1_RD_STA)
@@ -2773,8 +2773,8 @@ hfcmulti_interrupt(int intno, void *dev_id)
                                schedule_event(dch, FLG_PHCHANGE);
                                if (debug & DEBUG_HFCMULTI_STATE)
                                        printk(KERN_DEBUG
-                                           "%s: E1 (id=%d) newstate %x\n",
-                                           __func__, hc->id, dch->state);
+                                              "%s: E1 (id=%d) newstate %x\n",
+                                              __func__, hc->id, dch->state);
                                if (test_bit(HFC_CHIP_PLXSD, &hc->chip))
                                        plxsd_checksync(hc, 0);
                        }
@@ -2792,7 +2792,7 @@ hfcmulti_interrupt(int intno, void *dev_id)
                        static int irq_proc_cnt;
                        if (!irq_proc_cnt++)
                                printk(KERN_DEBUG "%s: got V_IRQ_PROC -"
-                                   " this should not happen\n", __func__);
+                                      " this should not happen\n", __func__);
                }
 
        }
@@ -2841,7 +2841,7 @@ hfcmulti_dbusy_timer(struct hfc_multi *hc)
  */
 static int
 mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
-    int bank_tx, int slot_rx, int bank_rx)
+             int bank_tx, int slot_rx, int bank_rx)
 {
        int flow_tx = 0, flow_rx = 0, routing = 0;
        int oslot_tx, oslot_rx;
@@ -2855,28 +2855,28 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
 
        if (debug & DEBUG_HFCMULTI_MODE)
                printk(KERN_DEBUG
-                   "%s: card %d channel %d protocol %x slot old=%d new=%d "
-                   "bank new=%d (TX) slot old=%d new=%d bank new=%d (RX)\n",
-                   __func__, hc->id, ch, protocol, oslot_tx, slot_tx,
-                   bank_tx, oslot_rx, slot_rx, bank_rx);
+                      "%s: card %d channel %d protocol %x slot old=%d new=%d "
+                      "bank new=%d (TX) slot old=%d new=%d bank new=%d (RX)\n",
+                      __func__, hc->id, ch, protocol, oslot_tx, slot_tx,
+                      bank_tx, oslot_rx, slot_rx, bank_rx);
 
        if (oslot_tx >= 0 && slot_tx != oslot_tx) {
                /* remove from slot */
                if (debug & DEBUG_HFCMULTI_MODE)
                        printk(KERN_DEBUG "%s: remove from slot %d (TX)\n",
-                           __func__, oslot_tx);
-               if (hc->slot_owner[oslot_tx<<1] == ch) {
+                              __func__, oslot_tx);
+               if (hc->slot_owner[oslot_tx << 1] == ch) {
                        HFC_outb(hc, R_SLOT, oslot_tx << 1);
                        HFC_outb(hc, A_SL_CFG, 0);
                        if (hc->ctype != HFC_TYPE_XHFC)
                                HFC_outb(hc, A_CONF, 0);
-                       hc->slot_owner[oslot_tx<<1] = -1;
+                       hc->slot_owner[oslot_tx << 1] = -1;
                } else {
                        if (debug & DEBUG_HFCMULTI_MODE)
                                printk(KERN_DEBUG
-                                   "%s: we are not owner of this tx slot "
-                                   "anymore, channel %d is.\n",
-                                   __func__, hc->slot_owner[oslot_tx<<1]);
+                                      "%s: we are not owner of this tx slot "
+                                      "anymore, channel %d is.\n",
+                                      __func__, hc->slot_owner[oslot_tx << 1]);
                }
        }
 
@@ -2884,8 +2884,8 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                /* remove from slot */
                if (debug & DEBUG_HFCMULTI_MODE)
                        printk(KERN_DEBUG
-                           "%s: remove from slot %d (RX)\n",
-                           __func__, oslot_rx);
+                              "%s: remove from slot %d (RX)\n",
+                              __func__, oslot_rx);
                if (hc->slot_owner[(oslot_rx << 1) | 1] == ch) {
                        HFC_outb(hc, R_SLOT, (oslot_rx << 1) | V_SL_DIR);
                        HFC_outb(hc, A_SL_CFG, 0);
@@ -2893,10 +2893,10 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                } else {
                        if (debug & DEBUG_HFCMULTI_MODE)
                                printk(KERN_DEBUG
-                                   "%s: we are not owner of this rx slot "
-                                   "anymore, channel %d is.\n",
-                                   __func__,
-                                   hc->slot_owner[(oslot_rx << 1) | 1]);
+                                      "%s: we are not owner of this rx slot "
+                                      "anymore, channel %d is.\n",
+                                      __func__,
+                                      hc->slot_owner[(oslot_rx << 1) | 1]);
                }
        }
 
@@ -2917,14 +2917,14 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        routing = 0x40; /* loop */
                if (debug & DEBUG_HFCMULTI_MODE)
                        printk(KERN_DEBUG "%s: put channel %d to slot %d bank"
-                           " %d flow %02x routing %02x conf %d (TX)\n",
-                           __func__, ch, slot_tx, bank_tx,
-                           flow_tx, routing, conf);
+                              " %d flow %02x routing %02x conf %d (TX)\n",
+                              __func__, ch, slot_tx, bank_tx,
+                              flow_tx, routing, conf);
                HFC_outb(hc, R_SLOT, slot_tx << 1);
-               HFC_outb(hc, A_SL_CFG, (ch<<1) | routing);
+               HFC_outb(hc, A_SL_CFG, (ch << 1) | routing);
                if (hc->ctype != HFC_TYPE_XHFC)
                        HFC_outb(hc, A_CONF,
-                               (conf < 0) ? 0 : (conf | V_CONF_SL));
+                                (conf < 0) ? 0 : (conf | V_CONF_SL));
                hc->slot_owner[slot_tx << 1] = ch;
                hc->chan[ch].slot_tx = slot_tx;
                hc->chan[ch].bank_tx = bank_tx;
@@ -2946,12 +2946,12 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        routing = 0x40; /* loop */
                if (debug & DEBUG_HFCMULTI_MODE)
                        printk(KERN_DEBUG "%s: put channel %d to slot %d bank"
-                           " %d flow %02x routing %02x conf %d (RX)\n",
-                           __func__, ch, slot_rx, bank_rx,
-                           flow_rx, routing, conf);
-               HFC_outb(hc, R_SLOT, (slot_rx<<1) | V_SL_DIR);
-               HFC_outb(hc, A_SL_CFG, (ch<<1) | V_CH_DIR | routing);
-               hc->slot_owner[(slot_rx<<1)|1] = ch;
+                              " %d flow %02x routing %02x conf %d (RX)\n",
+                              __func__, ch, slot_rx, bank_rx,
+                              flow_rx, routing, conf);
+               HFC_outb(hc, R_SLOT, (slot_rx << 1) | V_SL_DIR);
+               HFC_outb(hc, A_SL_CFG, (ch << 1) | V_CH_DIR | routing);
+               hc->slot_owner[(slot_rx << 1) | 1] = ch;
                hc->chan[ch].slot_rx = slot_rx;
                hc->chan[ch].bank_rx = bank_rx;
        }
@@ -2967,7 +2967,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
                HFC_wait(hc);
                /* disable RX fifo */
-               HFC_outb(hc, R_FIFO, (ch<<1)|1);
+               HFC_outb(hc, R_FIFO, (ch << 1) | 1);
                HFC_wait(hc);
                HFC_outb(hc, A_CON_HDLC, flow_rx | 0x00);
                HFC_outb(hc, A_SUBCH_CFG, 0);
@@ -2976,17 +2976,17 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                HFC_wait(hc);
                if (hc->chan[ch].bch && hc->ctype != HFC_TYPE_E1) {
                        hc->hw.a_st_ctrl0[hc->chan[ch].port] &=
-                           ((ch & 0x3) == 0) ? ~V_B1_EN : ~V_B2_EN;
+                               ((ch & 0x3) == 0) ? ~V_B1_EN : ~V_B2_EN;
                        HFC_outb(hc, R_ST_SEL, hc->chan[ch].port);
                        /* undocumented: delay after R_ST_SEL */
                        udelay(1);
                        HFC_outb(hc, A_ST_CTRL0,
-                           hc->hw.a_st_ctrl0[hc->chan[ch].port]);
+                                hc->hw.a_st_ctrl0[hc->chan[ch].port]);
                }
                if (hc->chan[ch].bch) {
                        test_and_clear_bit(FLG_HDLC, &hc->chan[ch].bch->Flags);
                        test_and_clear_bit(FLG_TRANSPARENT,
-                           &hc->chan[ch].bch->Flags);
+                                          &hc->chan[ch].bch->Flags);
                }
                break;
        case (ISDN_P_B_RAW): /* B-channel */
@@ -2996,20 +2996,20 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                    (hc->chan[ch].slot_tx < 0)) {
 
                        printk(KERN_DEBUG
-                           "Setting B-channel %d to echo cancelable "
-                           "state on PCM slot %d\n", ch,
-                           ((ch / 4) * 8) + ((ch % 4) * 4) + 1);
+                              "Setting B-channel %d to echo cancelable "
+                              "state on PCM slot %d\n", ch,
+                              ((ch / 4) * 8) + ((ch % 4) * 4) + 1);
                        printk(KERN_DEBUG
-                           "Enabling pass through for channel\n");
+                              "Enabling pass through for channel\n");
                        vpm_out(hc, ch, ((ch / 4) * 8) +
-                           ((ch % 4) * 4) + 1, 0x01);
+                               ((ch % 4) * 4) + 1, 0x01);
                        /* rx path */
                        /* S/T -> PCM */
                        HFC_outb(hc, R_FIFO, (ch << 1));
                        HFC_wait(hc);
                        HFC_outb(hc, A_CON_HDLC, 0xc0 | V_HDLC_TRP | V_IFF);
                        HFC_outb(hc, R_SLOT, (((ch / 4) * 8) +
-                           ((ch % 4) * 4) + 1) << 1);
+                                             ((ch % 4) * 4) + 1) << 1);
                        HFC_outb(hc, A_SL_CFG, 0x80 | (ch << 1));
 
                        /* PCM -> FIFO */
@@ -3021,7 +3021,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
                        HFC_wait(hc);
                        HFC_outb(hc, R_SLOT, ((((ch / 4) * 8) +
-                           ((ch % 4) * 4) + 1) << 1) | 1);
+                                              ((ch % 4) * 4) + 1) << 1) | 1);
                        HFC_outb(hc, A_SL_CFG, 0x80 | 0x20 | (ch << 1) | 1);
 
                        /* tx path */
@@ -3030,7 +3030,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        HFC_wait(hc);
                        HFC_outb(hc, A_CON_HDLC, 0xc0 | V_HDLC_TRP | V_IFF);
                        HFC_outb(hc, R_SLOT, ((((ch / 4) * 8) +
-                           ((ch % 4) * 4)) << 1) | 1);
+                                              ((ch % 4) * 4)) << 1) | 1);
                        HFC_outb(hc, A_SL_CFG, 0x80 | 0x40 | (ch << 1) | 1);
 
                        /* FIFO -> PCM */
@@ -3044,7 +3044,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        /* tx silence */
                        HFC_outb_nodebug(hc, A_FIFO_DATA0_NOINC, hc->silence);
                        HFC_outb(hc, R_SLOT, (((ch / 4) * 8) +
-                           ((ch % 4) * 4)) << 1);
+                                             ((ch % 4) * 4)) << 1);
                        HFC_outb(hc, A_SL_CFG, 0x80 | 0x20 | (ch << 1));
                } else {
                        /* enable TX fifo */
@@ -3052,11 +3052,11 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        HFC_wait(hc);
                        if (hc->ctype == HFC_TYPE_XHFC)
                                HFC_outb(hc, A_CON_HDLC, flow_tx | 0x07 << 2 |
-                                       V_HDLC_TRP | V_IFF);
-                                       /* Enable FIFO, no interrupt */
+                                        V_HDLC_TRP | V_IFF);
+                       /* Enable FIFO, no interrupt */
                        else
                                HFC_outb(hc, A_CON_HDLC, flow_tx | 0x00 |
-                                       V_HDLC_TRP | V_IFF);
+                                        V_HDLC_TRP | V_IFF);
                        HFC_outb(hc, A_SUBCH_CFG, 0);
                        HFC_outb(hc, A_IRQ_MSK, 0);
                        HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
@@ -3064,15 +3064,15 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        /* tx silence */
                        HFC_outb_nodebug(hc, A_FIFO_DATA0_NOINC, hc->silence);
                        /* enable RX fifo */
-                       HFC_outb(hc, R_FIFO, (ch<<1)|1);
+                       HFC_outb(hc, R_FIFO, (ch << 1) | 1);
                        HFC_wait(hc);
                        if (hc->ctype == HFC_TYPE_XHFC)
                                HFC_outb(hc, A_CON_HDLC, flow_rx | 0x07 << 2 |
-                                       V_HDLC_TRP);
-                                       /* Enable FIFO, no interrupt*/
+                                        V_HDLC_TRP);
+                       /* Enable FIFO, no interrupt*/
                        else
                                HFC_outb(hc, A_CON_HDLC, flow_rx | 0x00 |
-                                               V_HDLC_TRP);
+                                        V_HDLC_TRP);
                        HFC_outb(hc, A_SUBCH_CFG, 0);
                        HFC_outb(hc, A_IRQ_MSK, 0);
                        HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
@@ -3080,16 +3080,16 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                }
                if (hc->ctype != HFC_TYPE_E1) {
                        hc->hw.a_st_ctrl0[hc->chan[ch].port] |=
-                           ((ch & 0x3) == 0) ? V_B1_EN : V_B2_EN;
+                               ((ch & 0x3) == 0) ? V_B1_EN : V_B2_EN;
                        HFC_outb(hc, R_ST_SEL, hc->chan[ch].port);
                        /* undocumented: delay after R_ST_SEL */
                        udelay(1);
                        HFC_outb(hc, A_ST_CTRL0,
-                           hc->hw.a_st_ctrl0[hc->chan[ch].port]);
+                                hc->hw.a_st_ctrl0[hc->chan[ch].port]);
                }
                if (hc->chan[ch].bch)
                        test_and_set_bit(FLG_TRANSPARENT,
-                           &hc->chan[ch].bch->Flags);
+                                        &hc->chan[ch].bch->Flags);
                break;
        case (ISDN_P_B_HDLC): /* B-channel */
        case (ISDN_P_TE_S0): /* D-channel */
@@ -3097,7 +3097,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
        case (ISDN_P_TE_E1):
        case (ISDN_P_NT_E1):
                /* enable TX fifo */
-               HFC_outb(hc, R_FIFO, ch<<1);
+               HFC_outb(hc, R_FIFO, ch << 1);
                HFC_wait(hc);
                if (hc->ctype == HFC_TYPE_E1 || hc->chan[ch].bch) {
                        /* E1 or B-channel */
@@ -3112,7 +3112,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
                HFC_wait(hc);
                /* enable RX fifo */
-               HFC_outb(hc, R_FIFO, (ch<<1)|1);
+               HFC_outb(hc, R_FIFO, (ch << 1) | 1);
                HFC_wait(hc);
                HFC_outb(hc, A_CON_HDLC, flow_rx | 0x04);
                if (hc->ctype == HFC_TYPE_E1 || hc->chan[ch].bch)
@@ -3126,18 +3126,18 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
                        test_and_set_bit(FLG_HDLC, &hc->chan[ch].bch->Flags);
                        if (hc->ctype != HFC_TYPE_E1) {
                                hc->hw.a_st_ctrl0[hc->chan[ch].port] |=
-                                 ((ch&0x3) == 0) ? V_B1_EN : V_B2_EN;
+                                       ((ch & 0x3) == 0) ? V_B1_EN : V_B2_EN;
                                HFC_outb(hc, R_ST_SEL, hc->chan[ch].port);
                                /* undocumented: delay after R_ST_SEL */
                                udelay(1);
                                HFC_outb(hc, A_ST_CTRL0,
-                                 hc->hw.a_st_ctrl0[hc->chan[ch].port]);
+                                        hc->hw.a_st_ctrl0[hc->chan[ch].port]);
                        }
                }
                break;
        default:
                printk(KERN_DEBUG "%s: protocol not known %x\n",
-                   __func__, protocol);
+                      __func__, protocol);
                hc->chan[ch].protocol = ISDN_P_NONE;
                return -ENOPROTOOPT;
        }
@@ -3152,7 +3152,7 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
 
 static void
 hfcmulti_pcm(struct hfc_multi *hc, int ch, int slot_tx, int bank_tx,
-    int slot_rx, int bank_rx)
+            int slot_rx, int bank_rx)
 {
        if (slot_tx < 0 || slot_rx < 0 || bank_tx < 0 || bank_rx < 0) {
                /* disable PCM */
@@ -3162,7 +3162,7 @@ hfcmulti_pcm(struct hfc_multi *hc, int ch, int slot_tx, int bank_tx,
 
        /* enable pcm */
        mode_hfcmulti(hc, ch, hc->chan[ch].protocol, slot_tx, bank_tx,
-               slot_rx, bank_rx);
+                     slot_rx, bank_rx);
 }
 
 /*
@@ -3177,8 +3177,8 @@ hfcmulti_conf(struct hfc_multi *hc, int ch, int num)
        else
                hc->chan[ch].conf = -1;
        mode_hfcmulti(hc, ch, hc->chan[ch].protocol, hc->chan[ch].slot_tx,
-           hc->chan[ch].bank_tx, hc->chan[ch].slot_rx,
-           hc->chan[ch].bank_rx);
+                     hc->chan[ch].bank_tx, hc->chan[ch].slot_rx,
+                     hc->chan[ch].bank_rx);
 }
 
 
@@ -3207,8 +3207,8 @@ hfcm_l1callback(struct dchannel *dch, u_int cmd)
                if (hc->ctype == HFC_TYPE_E1) {
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG
-                                   "%s: HW_RESET_REQ no BRI\n",
-                                   __func__);
+                                      "%s: HW_RESET_REQ no BRI\n",
+                                      __func__);
                } else {
                        HFC_outb(hc, R_ST_SEL, hc->chan[dch->slot].port);
                        /* undocumented: delay after R_ST_SEL */
@@ -3216,8 +3216,8 @@ hfcm_l1callback(struct dchannel *dch, u_int cmd)
                        HFC_outb(hc, A_ST_WR_STATE, V_ST_LD_STA | 3); /* F3 */
                        udelay(6); /* wait at least 5,21us */
                        HFC_outb(hc, A_ST_WR_STATE, 3);
-                       HFC_outb(hc, A_ST_WR_STATE, 3 | (V_ST_ACT*3));
-                               /* activate */
+                       HFC_outb(hc, A_ST_WR_STATE, 3 | (V_ST_ACT * 3));
+                       /* activate */
                }
                spin_unlock_irqrestore(&hc->lock, flags);
                l1_event(dch->l1, HW_POWERUP_IND);
@@ -3228,17 +3228,17 @@ hfcm_l1callback(struct dchannel *dch, u_int cmd)
                if (hc->ctype == HFC_TYPE_E1) {
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG
-                                   "%s: HW_DEACT_REQ no BRI\n",
-                                   __func__);
+                                      "%s: HW_DEACT_REQ no BRI\n",
+                                      __func__);
                } else {
                        HFC_outb(hc, R_ST_SEL, hc->chan[dch->slot].port);
                        /* undocumented: delay after R_ST_SEL */
                        udelay(1);
-                       HFC_outb(hc, A_ST_WR_STATE, V_ST_ACT*2);
-                               /* deactivate */
+                       HFC_outb(hc, A_ST_WR_STATE, V_ST_ACT * 2);
+                       /* deactivate */
                        if (test_bit(HFC_CHIP_PLXSD, &hc->chip)) {
                                hc->syncronized &=
-                                  ~(1 << hc->chan[dch->slot].port);
+                                       ~(1 << hc->chan[dch->slot].port);
                                plxsd_checksync(hc, 0);
                        }
                }
@@ -3262,8 +3262,8 @@ hfcm_l1callback(struct dchannel *dch, u_int cmd)
                if (hc->ctype == HFC_TYPE_E1) {
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG
-                                   "%s: HW_POWERUP_REQ no BRI\n",
-                                   __func__);
+                                      "%s: HW_POWERUP_REQ no BRI\n",
+                                      __func__);
                } else {
                        HFC_outb(hc, R_ST_SEL, hc->chan[dch->slot].port);
                        /* undocumented: delay after R_ST_SEL */
@@ -3277,17 +3277,17 @@ hfcm_l1callback(struct dchannel *dch, u_int cmd)
        case PH_ACTIVATE_IND:
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        case PH_DEACTIVATE_IND:
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: unknown command %x\n",
-                           __func__, cmd);
+                              __func__, cmd);
                return -1;
        }
        return 0;
@@ -3332,27 +3332,27 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                        ret = 0;
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG
-                                   "%s: PH_ACTIVATE port %d (0..%d)\n",
-                                   __func__, hc->chan[dch->slot].port,
-                                   hc->ports-1);
+                                      "%s: PH_ACTIVATE port %d (0..%d)\n",
+                                      __func__, hc->chan[dch->slot].port,
+                                      hc->ports - 1);
                        /* start activation */
                        if (hc->ctype == HFC_TYPE_E1) {
                                ph_state_change(dch);
                                if (debug & DEBUG_HFCMULTI_STATE)
                                        printk(KERN_DEBUG
-                                           "%s: E1 report state %x \n",
-                                           __func__, dch->state);
+                                              "%s: E1 report state %x \n",
+                                              __func__, dch->state);
                        } else {
                                HFC_outb(hc, R_ST_SEL,
-                                   hc->chan[dch->slot].port);
+                                        hc->chan[dch->slot].port);
                                /* undocumented: delay after R_ST_SEL */
                                udelay(1);
                                HFC_outb(hc, A_ST_WR_STATE, V_ST_LD_STA | 1);
-                                   /* G1 */
+                               /* G1 */
                                udelay(6); /* wait at least 5,21us */
                                HFC_outb(hc, A_ST_WR_STATE, 1);
                                HFC_outb(hc, A_ST_WR_STATE, 1 |
-                                   (V_ST_ACT*3)); /* activate */
+                                        (V_ST_ACT * 3)); /* activate */
                                dch->state = 1;
                        }
                        spin_unlock_irqrestore(&hc->lock, flags);
@@ -3365,22 +3365,22 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                        spin_lock_irqsave(&hc->lock, flags);
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG
-                                   "%s: PH_DEACTIVATE port %d (0..%d)\n",
-                                   __func__, hc->chan[dch->slot].port,
-                                   hc->ports-1);
+                                      "%s: PH_DEACTIVATE port %d (0..%d)\n",
+                                      __func__, hc->chan[dch->slot].port,
+                                      hc->ports - 1);
                        /* start deactivation */
                        if (hc->ctype == HFC_TYPE_E1) {
                                if (debug & DEBUG_HFCMULTI_MSG)
                                        printk(KERN_DEBUG
-                                           "%s: PH_DEACTIVATE no BRI\n",
-                                           __func__);
+                                              "%s: PH_DEACTIVATE no BRI\n",
+                                              __func__);
                        } else {
                                HFC_outb(hc, R_ST_SEL,
-                                   hc->chan[dch->slot].port);
+                                        hc->chan[dch->slot].port);
                                /* undocumented: delay after R_ST_SEL */
                                udelay(1);
                                HFC_outb(hc, A_ST_WR_STATE, V_ST_ACT * 2);
-                                   /* deactivate */
+                               /* deactivate */
                                dch->state = 1;
                        }
                        skb_queue_purge(&dch->squeue);
@@ -3460,28 +3460,28 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_ACTIVATE_REQ:
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: PH_ACTIVATE ch %d (0..32)\n",
-                               __func__, bch->slot);
+                              __func__, bch->slot);
                spin_lock_irqsave(&hc->lock, flags);
                /* activate B-channel if not already activated */
                if (!test_and_set_bit(FLG_ACTIVE, &bch->Flags)) {
                        hc->chan[bch->slot].txpending = 0;
                        ret = mode_hfcmulti(hc, bch->slot,
-                               ch->protocol,
-                               hc->chan[bch->slot].slot_tx,
-                               hc->chan[bch->slot].bank_tx,
-                               hc->chan[bch->slot].slot_rx,
-                               hc->chan[bch->slot].bank_rx);
+                                           ch->protocol,
+                                           hc->chan[bch->slot].slot_tx,
+                                           hc->chan[bch->slot].bank_tx,
+                                           hc->chan[bch->slot].slot_rx,
+                                           hc->chan[bch->slot].bank_rx);
                        if (!ret) {
                                if (ch->protocol == ISDN_P_B_RAW && !hc->dtmf
-                                       && test_bit(HFC_CHIP_DTMF, &hc->chip)) {
+                                   && test_bit(HFC_CHIP_DTMF, &hc->chip)) {
                                        /* start decoder */
                                        hc->dtmf = 1;
                                        if (debug & DEBUG_HFCMULTI_DTMF)
                                                printk(KERN_DEBUG
-                                                   "%s: start dtmf decoder\n",
-                                                       __func__);
+                                                      "%s: start dtmf decoder\n",
+                                                      __func__);
                                        HFC_outb(hc, R_DTMF, hc->hw.r_dtmf |
-                                           V_RST_DTMF);
+                                                V_RST_DTMF);
                                }
                        }
                } else
@@ -3489,7 +3489,7 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(&hc->lock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0, NULL,
-                               GFP_KERNEL);
+                                   GFP_KERNEL);
                break;
        case PH_CONTROL_REQ:
                spin_lock_irqsave(&hc->lock, flags);
@@ -3497,20 +3497,20 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                case HFC_SPL_LOOP_ON: /* set sample loop */
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG
-                                   "%s: HFC_SPL_LOOP_ON (len = %d)\n",
-                                   __func__, skb->len);
+                                      "%s: HFC_SPL_LOOP_ON (len = %d)\n",
+                                      __func__, skb->len);
                        ret = 0;
                        break;
                case HFC_SPL_LOOP_OFF: /* set silence */
                        if (debug & DEBUG_HFCMULTI_MSG)
                                printk(KERN_DEBUG "%s: HFC_SPL_LOOP_OFF\n",
-                                   __func__);
+                                      __func__);
                        ret = 0;
                        break;
                default:
                        printk(KERN_ERR
-                            "%s: unknown PH_CONTROL_REQ info %x\n",
-                            __func__, hh->id);
+                              "%s: unknown PH_CONTROL_REQ info %x\n",
+                              __func__, hh->id);
                        ret = -EINVAL;
                }
                spin_unlock_irqrestore(&hc->lock, flags);
@@ -3518,7 +3518,7 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_DEACTIVATE_REQ:
                deactivate_bchannel(bch); /* locked there */
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0, NULL,
-                       GFP_KERNEL);
+                           GFP_KERNEL);
                ret = 0;
                break;
        }
@@ -3559,18 +3559,18 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
                }
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: RX_OFF request (nr=%d off=%d)\n",
-                           __func__, bch->nr, hc->chan[bch->slot].rx_off);
+                              __func__, bch->nr, hc->chan[bch->slot].rx_off);
                break;
        case MISDN_CTRL_FILL_EMPTY: /* fill fifo, if empty */
                test_and_set_bit(FLG_FILLEMPTY, &bch->Flags);
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: FILL_EMPTY request (nr=%d "
-                               "off=%d)\n", __func__, bch->nr, !!cq->p1);
+                              "off=%d)\n", __func__, bch->nr, !!cq->p1);
                break;
        case MISDN_CTRL_HW_FEATURES: /* fill features structure */
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: HW_FEATURE request\n",
-                           __func__);
+                              __func__);
                /* create confirm */
                features->hfc_id = hc->id;
                if (test_bit(HFC_CHIP_DTMF, &hc->chip))
@@ -3593,40 +3593,40 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
                bank_rx = cq->p2 >> 8;
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG
-                           "%s: HFC_PCM_CONN slot %d bank %d (TX) "
-                           "slot %d bank %d (RX)\n",
-                           __func__, slot_tx, bank_tx,
-                           slot_rx, bank_rx);
+                              "%s: HFC_PCM_CONN slot %d bank %d (TX) "
+                              "slot %d bank %d (RX)\n",
+                              __func__, slot_tx, bank_tx,
+                              slot_rx, bank_rx);
                if (slot_tx < hc->slots && bank_tx <= 2 &&
                    slot_rx < hc->slots && bank_rx <= 2)
                        hfcmulti_pcm(hc, bch->slot,
-                           slot_tx, bank_tx, slot_rx, bank_rx);
+                                    slot_tx, bank_tx, slot_rx, bank_rx);
                else {
                        printk(KERN_WARNING
-                           "%s: HFC_PCM_CONN slot %d bank %d (TX) "
-                           "slot %d bank %d (RX) out of range\n",
-                           __func__, slot_tx, bank_tx,
-                           slot_rx, bank_rx);
+                              "%s: HFC_PCM_CONN slot %d bank %d (TX) "
+                              "slot %d bank %d (RX) out of range\n",
+                              __func__, slot_tx, bank_tx,
+                              slot_rx, bank_rx);
                        ret = -EINVAL;
                }
                break;
        case MISDN_CTRL_HFC_PCM_DISC: /* release interface from pcm timeslot */
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: HFC_PCM_DISC\n",
-                           __func__);
+                              __func__);
                hfcmulti_pcm(hc, bch->slot, -1, 0, -1, 0);
                break;
        case MISDN_CTRL_HFC_CONF_JOIN: /* join conference (0..7) */
                num = cq->p1 & 0xff;
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: HFC_CONF_JOIN conf %d\n",
-                           __func__, num);
+                              __func__, num);
                if (num <= 7)
                        hfcmulti_conf(hc, bch->slot, num);
                else {
                        printk(KERN_WARNING
-                           "%s: HW_CONF_JOIN conf %d out of range\n",
-                           __func__, num);
+                              "%s: HW_CONF_JOIN conf %d out of range\n",
+                              __func__, num);
                        ret = -EINVAL;
                }
                break;
@@ -3647,7 +3647,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_HFC_ECHOCAN_OFF:
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: HFC_ECHOCAN_OFF\n",
-                               __func__);
+                              __func__);
                if (test_bit(HFC_CHIP_B410P, &hc->chip))
                        vpm_echocan_off(hc, bch->slot);
                else
@@ -3655,7 +3655,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n",
-                   __func__, cq->op);
+                      __func__, cq->op);
                ret = -EINVAL;
                break;
        }
@@ -3672,7 +3672,7 @@ hfcm_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
        if (bch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: cmd:%x %p\n",
-                   __func__, cmd, arg);
+                      __func__, cmd, arg);
        switch (cmd) {
        case CLOSE_CHANNEL:
                test_and_clear_bit(FLG_OPEN, &bch->Flags);
@@ -3690,7 +3690,7 @@ hfcm_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                break;
        default:
                printk(KERN_WARNING "%s: unknown prim(%x)\n",
-                       __func__, cmd);
+                      __func__, cmd);
        }
        return err;
 }
@@ -3717,13 +3717,13 @@ ph_state_change(struct dchannel *dch)
                if (dch->dev.D.protocol == ISDN_P_TE_E1) {
                        if (debug & DEBUG_HFCMULTI_STATE)
                                printk(KERN_DEBUG
-                                   "%s: E1 TE (id=%d) newstate %x\n",
-                                   __func__, hc->id, dch->state);
+                                      "%s: E1 TE (id=%d) newstate %x\n",
+                                      __func__, hc->id, dch->state);
                } else {
                        if (debug & DEBUG_HFCMULTI_STATE)
                                printk(KERN_DEBUG
-                                   "%s: E1 NT (id=%d) newstate %x\n",
-                                   __func__, hc->id, dch->state);
+                                      "%s: E1 NT (id=%d) newstate %x\n",
+                                      __func__, hc->id, dch->state);
                }
                switch (dch->state) {
                case (1):
@@ -3731,16 +3731,16 @@ ph_state_change(struct dchannel *dch)
                                for (i = 1; i <= 31; i++) {
                                        /* reset fifos on e1 activation */
                                        HFC_outb_nodebug(hc, R_FIFO,
-                                               (i << 1) | 1);
+                                                        (i << 1) | 1);
                                        HFC_wait_nodebug(hc);
                                        HFC_outb_nodebug(hc, R_INC_RES_FIFO,
-                                               V_RES_F);
+                                                        V_RES_F);
                                        HFC_wait_nodebug(hc);
                                }
                        }
                        test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                        _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
-                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                        break;
 
                default:
@@ -3748,15 +3748,15 @@ ph_state_change(struct dchannel *dch)
                                return;
                        test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                        _queue_data(&dch->dev.D, PH_DEACTIVATE_IND,
-                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                }
                hc->e1_state = dch->state;
        } else {
                if (dch->dev.D.protocol == ISDN_P_TE_S0) {
                        if (debug & DEBUG_HFCMULTI_STATE)
                                printk(KERN_DEBUG
-                                   "%s: S/T TE newstate %x\n",
-                                   __func__, dch->state);
+                                      "%s: S/T TE newstate %x\n",
+                                      __func__, dch->state);
                        switch (dch->state) {
                        case (0):
                                l1_event(dch->l1, HW_RESET_IND);
@@ -3778,38 +3778,38 @@ ph_state_change(struct dchannel *dch)
                } else {
                        if (debug & DEBUG_HFCMULTI_STATE)
                                printk(KERN_DEBUG "%s: S/T NT newstate %x\n",
-                                   __func__, dch->state);
+                                      __func__, dch->state);
                        switch (dch->state) {
                        case (2):
                                if (hc->chan[ch].nt_timer == 0) {
                                        hc->chan[ch].nt_timer = -1;
                                        HFC_outb(hc, R_ST_SEL,
-                                           hc->chan[ch].port);
+                                                hc->chan[ch].port);
                                        /* undocumented: delay after R_ST_SEL */
                                        udelay(1);
                                        HFC_outb(hc, A_ST_WR_STATE, 4 |
-                                           V_ST_LD_STA); /* G4 */
+                                                V_ST_LD_STA); /* G4 */
                                        udelay(6); /* wait at least 5,21us */
                                        HFC_outb(hc, A_ST_WR_STATE, 4);
                                        dch->state = 4;
                                } else {
                                        /* one extra count for the next event */
                                        hc->chan[ch].nt_timer =
-                                           nt_t1_count[poll_timer] + 1;
+                                               nt_t1_count[poll_timer] + 1;
                                        HFC_outb(hc, R_ST_SEL,
-                                           hc->chan[ch].port);
+                                                hc->chan[ch].port);
                                        /* undocumented: delay after R_ST_SEL */
                                        udelay(1);
                                        /* allow G2 -> G3 transition */
                                        HFC_outb(hc, A_ST_WR_STATE, 2 |
-                                           V_SET_G2_G3);
+                                                V_SET_G2_G3);
                                }
                                break;
                        case (1):
                                hc->chan[ch].nt_timer = -1;
                                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                                _queue_data(&dch->dev.D, PH_DEACTIVATE_IND,
-                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                                break;
                        case (4):
                                hc->chan[ch].nt_timer = -1;
@@ -3818,7 +3818,7 @@ ph_state_change(struct dchannel *dch)
                                hc->chan[ch].nt_timer = -1;
                                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                                _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
-                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                                break;
                        }
                }
@@ -3845,7 +3845,7 @@ hfcmulti_initmode(struct dchannel *dch)
                hc->chan[hc->dslot].conf = -1;
                if (hc->dslot) {
                        mode_hfcmulti(hc, hc->dslot, dch->dev.D.protocol,
-                               -1, 0, -1, 0);
+                                     -1, 0, -1, 0);
                        dch->timer.function = (void *) hfcmulti_dbusy_timer;
                        dch->timer.data = (long) dch;
                        init_timer(&dch->timer);
@@ -3887,13 +3887,13 @@ hfcmulti_initmode(struct dchannel *dch)
                if (dch->dev.D.protocol == ISDN_P_NT_E1) {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG "%s: E1 port is NT-mode\n",
-                                   __func__);
+                                      __func__);
                        r_e1_wr_sta = 0; /* G0 */
                        hc->e1_getclock = 0;
                } else {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG "%s: E1 port is TE-mode\n",
-                                   __func__);
+                                      __func__);
                        r_e1_wr_sta = 0; /* F0 */
                        hc->e1_getclock = 1;
                }
@@ -3909,26 +3909,26 @@ hfcmulti_initmode(struct dchannel *dch)
                        /* SLAVE (clock master) */
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: E1 port is clock master "
-                                   "(clock from PCM)\n", __func__);
+                                      "%s: E1 port is clock master "
+                                      "(clock from PCM)\n", __func__);
                        HFC_outb(hc, R_SYNC_CTRL, V_EXT_CLK_SYNC | V_PCM_SYNC);
                } else {
                        if (hc->e1_getclock) {
                                /* MASTER (clock slave) */
                                if (debug & DEBUG_HFCMULTI_INIT)
                                        printk(KERN_DEBUG
-                                           "%s: E1 port is clock slave "
-                                           "(clock to PCM)\n", __func__);
+                                              "%s: E1 port is clock slave "
+                                              "(clock to PCM)\n", __func__);
                                HFC_outb(hc, R_SYNC_CTRL, V_SYNC_OFFS);
                        } else {
                                /* MASTER (clock master) */
                                if (debug & DEBUG_HFCMULTI_INIT)
                                        printk(KERN_DEBUG "%s: E1 port is "
-                                           "clock master "
-                                           "(clock from QUARTZ)\n",
-                                           __func__);
+                                              "clock master "
+                                              "(clock from QUARTZ)\n",
+                                              __func__);
                                HFC_outb(hc, R_SYNC_CTRL, V_EXT_CLK_SYNC |
-                                   V_PCM_SYNC | V_JATT_OFF);
+                                        V_PCM_SYNC | V_JATT_OFF);
                                HFC_outb(hc, R_SYNC_OUT, 0);
                        }
                }
@@ -3970,8 +3970,8 @@ hfcmulti_initmode(struct dchannel *dch)
                if (dch->dev.D.protocol == ISDN_P_NT_S0) {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: ST port %d is NT-mode\n",
-                                   __func__, pt);
+                                      "%s: ST port %d is NT-mode\n",
+                                      __func__, pt);
                        /* clock delay */
                        HFC_outb(hc, A_ST_CLK_DLY, clockdelay_nt);
                        a_st_wr_state = 1; /* G1 */
@@ -3979,8 +3979,8 @@ hfcmulti_initmode(struct dchannel *dch)
                } else {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: ST port %d is TE-mode\n",
-                                   __func__, pt);
+                                      "%s: ST port %d is TE-mode\n",
+                                      __func__, pt);
                        /* clock delay */
                        HFC_outb(hc, A_ST_CLK_DLY, clockdelay_te);
                        a_st_wr_state = 2; /* F2 */
@@ -3991,7 +3991,7 @@ hfcmulti_initmode(struct dchannel *dch)
                if (hc->ctype == HFC_TYPE_XHFC) {
                        hc->hw.a_st_ctrl0[pt] |= 0x40 /* V_ST_PU_CTRL */;
                        HFC_outb(hc, 0x35 /* A_ST_CTRL3 */,
-                               0x7c << 1 /* V_ST_PULSE */);
+                                0x7c << 1 /* V_ST_PULSE */);
                }
                /* line setup */
                HFC_outb(hc, A_ST_CTRL0,  hc->hw.a_st_ctrl0[pt]);
@@ -4013,7 +4013,7 @@ hfcmulti_initmode(struct dchannel *dch)
                /* unset sync on port */
                if (test_bit(HFC_CHIP_PLXSD, &hc->chip)) {
                        hc->syncronized &=
-                          ~(1 << hc->chan[dch->slot].port);
+                               ~(1 << hc->chan[dch->slot].port);
                        plxsd_checksync(hc, 0);
                }
        }
@@ -4024,21 +4024,21 @@ hfcmulti_initmode(struct dchannel *dch)
 
 static int
 open_dchannel(struct hfc_multi *hc, struct dchannel *dch,
-    struct channel_req *rq)
+             struct channel_req *rq)
 {
        int     err = 0;
        u_long  flags;
 
        if (debug & DEBUG_HW_OPEN)
                printk(KERN_DEBUG "%s: dev(%d) open from %p\n", __func__,
-                   dch->dev.id, __builtin_return_address(0));
+                      dch->dev.id, __builtin_return_address(0));
        if (rq->protocol == ISDN_P_NONE)
                return -EINVAL;
        if ((dch->dev.D.protocol != ISDN_P_NONE) &&
            (dch->dev.D.protocol != rq->protocol)) {
                if (debug & DEBUG_HFCMULTI_MODE)
                        printk(KERN_DEBUG "%s: change protocol %x to %x\n",
-                           __func__, dch->dev.D.protocol, rq->protocol);
+                              __func__, dch->dev.D.protocol, rq->protocol);
        }
        if ((dch->dev.D.protocol == ISDN_P_TE_S0) &&
            (rq->protocol != ISDN_P_TE_S0))
@@ -4060,7 +4060,7 @@ open_dchannel(struct hfc_multi *hc, struct dchannel *dch,
            ((rq->protocol == ISDN_P_NT_E1) && (dch->state == 1)) ||
            ((rq->protocol == ISDN_P_TE_E1) && (dch->state == 1))) {
                _queue_data(&dch->dev.D, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                   0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
        }
        rq->ch = &dch->dev.D;
        if (!try_module_get(THIS_MODULE))
@@ -4070,7 +4070,7 @@ open_dchannel(struct hfc_multi *hc, struct dchannel *dch,
 
 static int
 open_bchannel(struct hfc_multi *hc, struct dchannel *dch,
-    struct channel_req *rq)
+             struct channel_req *rq)
 {
        struct bchannel *bch;
        int             ch;
@@ -4086,7 +4086,7 @@ open_bchannel(struct hfc_multi *hc, struct dchannel *dch,
        bch = hc->chan[ch].bch;
        if (!bch) {
                printk(KERN_ERR "%s:internal error ch %d has no bch\n",
-                   __func__, ch);
+                      __func__, ch);
                return -EINVAL;
        }
        if (test_and_set_bit(FLG_OPEN, &bch->Flags))
@@ -4119,8 +4119,8 @@ channel_dctrl(struct dchannel *dch, struct mISDN_ctrl_req *cq)
                wd_mode = !!(cq->p1 >> 4);
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: MISDN_CTRL_HFC_WD_INIT mode %s"
-                           ", counter 0x%x\n", __func__,
-                           wd_mode ? "AUTO" : "MANUAL", wd_cnt);
+                              ", counter 0x%x\n", __func__,
+                              wd_mode ? "AUTO" : "MANUAL", wd_cnt);
                /* set the watchdog timer */
                HFC_outb(hc, R_TI_WD, poll_timer | (wd_cnt << 4));
                hc->hw.r_bert_wd_md = (wd_mode ? V_AUTO_WD_RES : 0);
@@ -4139,12 +4139,12 @@ channel_dctrl(struct dchannel *dch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_HFC_WD_RESET: /* reset the watchdog counter */
                if (debug & DEBUG_HFCMULTI_MSG)
                        printk(KERN_DEBUG "%s: MISDN_CTRL_HFC_WD_RESET\n",
-                           __func__);
+                              __func__);
                HFC_outb(hc, R_BERT_WD_MD, hc->hw.r_bert_wd_md | V_WD_RES);
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n",
-                   __func__, cq->op);
+                      __func__, cq->op);
                ret = -EINVAL;
                break;
        }
@@ -4163,7 +4163,7 @@ hfcm_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
        if (dch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: cmd:%x %p\n",
-                   __func__, cmd, arg);
+                      __func__, cmd, arg);
        switch (cmd) {
        case OPEN_CHANNEL:
                rq = arg;
@@ -4193,8 +4193,8 @@ hfcm_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        case CLOSE_CHANNEL:
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_DEBUG "%s: dev(%d) close from %p\n",
-                           __func__, dch->dev.id,
-                           __builtin_return_address(0));
+                              __func__, dch->dev.id,
+                              __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -4205,7 +4205,7 @@ hfcm_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: unknown command %x\n",
-                           __func__, cmd);
+                              __func__, cmd);
                err = -EINVAL;
        }
        return err;
@@ -4246,9 +4246,9 @@ init_card(struct hfc_multi *hc)
        spin_unlock_irqrestore(&hc->lock, flags);
 
        if (request_irq(hc->irq, hfcmulti_interrupt, IRQF_SHARED,
-           "HFC-multi", hc)) {
+                       "HFC-multi", hc)) {
                printk(KERN_WARNING "mISDN: Could not get interrupt %d.\n",
-                   hc->irq);
+                      hc->irq);
                hc->irq = 0;
                return -EIO;
        }
@@ -4257,13 +4257,13 @@ init_card(struct hfc_multi *hc)
                spin_lock_irqsave(&plx_lock, plx_flags);
                plx_acc = hc->plx_membase + PLX_INTCSR;
                writew((PLX_INTCSR_PCIINT_ENABLE | PLX_INTCSR_LINTI1_ENABLE),
-                       plx_acc); /* enable PCI & LINT1 irq */
+                      plx_acc); /* enable PCI & LINT1 irq */
                spin_unlock_irqrestore(&plx_lock, plx_flags);
        }
 
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: IRQ %d count %d\n",
-                   __func__, hc->irq, hc->irqcnt);
+                      __func__, hc->irq, hc->irqcnt);
        err = init_chip(hc);
        if (err)
                goto error;
@@ -4277,14 +4277,14 @@ init_card(struct hfc_multi *hc)
        spin_unlock_irqrestore(&hc->lock, flags);
        /* printk(KERN_DEBUG "no master irq set!!!\n"); */
        set_current_state(TASK_UNINTERRUPTIBLE);
-       schedule_timeout((100*HZ)/1000); /* Timeout 100ms */
+       schedule_timeout((100 * HZ) / 1000); /* Timeout 100ms */
        /* turn IRQ off until chip is completely initialized */
        spin_lock_irqsave(&hc->lock, flags);
        disable_hwirq(hc);
        spin_unlock_irqrestore(&hc->lock, flags);
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: IRQ %d count %d\n",
-                   __func__, hc->irq, hc->irqcnt);
+                      __func__, hc->irq, hc->irqcnt);
        if (hc->irqcnt) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: done\n", __func__);
@@ -4297,7 +4297,7 @@ init_card(struct hfc_multi *hc)
        }
 
        printk(KERN_ERR "HFC PCI: IRQ(%d) getting no interrupts during init.\n",
-               hc->irq);
+              hc->irq);
 
        err = -EIO;
 
@@ -4327,13 +4327,13 @@ error:
 
 static int
 setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
-               const struct pci_device_id *ent)
+         const struct pci_device_id *ent)
 {
        struct hm_map   *m = (struct hm_map *)ent->driver_data;
 
        printk(KERN_INFO
-           "HFC-multi: card manufacturer: '%s' card name: '%s' clock: %s\n",
-           m->vendor_name, m->card_name, m->clock2 ? "double" : "normal");
+              "HFC-multi: card manufacturer: '%s' card name: '%s' clock: %s\n",
+              m->vendor_name, m->card_name, m->clock2 ? "double" : "normal");
 
        hc->pci_dev = pdev;
        if (m->clock2)
@@ -4380,7 +4380,7 @@ setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
 
                if (!hc->plx_origmembase) {
                        printk(KERN_WARNING
-                         "HFC-multi: No IO-Memory for PCI PLX bridge found\n");
+                              "HFC-multi: No IO-Memory for PCI PLX bridge found\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
@@ -4388,20 +4388,20 @@ setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
                hc->plx_membase = ioremap(hc->plx_origmembase, 0x80);
                if (!hc->plx_membase) {
                        printk(KERN_WARNING
-                           "HFC-multi: failed to remap plx address space. "
-                           "(internal error)\n");
+                              "HFC-multi: failed to remap plx address space. "
+                              "(internal error)\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
                printk(KERN_INFO
-                   "HFC-multi: plx_membase:%#lx plx_origmembase:%#lx\n",
-                   (u_long)hc->plx_membase, hc->plx_origmembase);
+                      "HFC-multi: plx_membase:%#lx plx_origmembase:%#lx\n",
+                      (u_long)hc->plx_membase, hc->plx_origmembase);
 
                hc->pci_origmembase =  hc->pci_dev->resource[2].start;
-                   /* MEMBASE 1 is PLX PCI Bridge */
+               /* MEMBASE 1 is PLX PCI Bridge */
                if (!hc->pci_origmembase) {
                        printk(KERN_WARNING
-                           "HFC-multi: No IO-Memory for PCI card found\n");
+                              "HFC-multi: No IO-Memory for PCI card found\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
@@ -4409,16 +4409,16 @@ setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
                hc->pci_membase = ioremap(hc->pci_origmembase, 0x400);
                if (!hc->pci_membase) {
                        printk(KERN_WARNING "HFC-multi: failed to remap io "
-                           "address space. (internal error)\n");
+                              "address space. (internal error)\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
 
                printk(KERN_INFO
-                   "card %d: defined at MEMBASE %#lx (%#lx) IRQ %d HZ %d "
-                   "leds-type %d\n",
-                   hc->id, (u_long)hc->pci_membase, hc->pci_origmembase,
-                   hc->pci_dev->irq, HZ, hc->leds);
+                      "card %d: defined at MEMBASE %#lx (%#lx) IRQ %d HZ %d "
+                      "leds-type %d\n",
+                      hc->id, (u_long)hc->pci_membase, hc->pci_origmembase,
+                      hc->pci_dev->irq, HZ, hc->leds);
                pci_write_config_word(hc->pci_dev, PCI_COMMAND, PCI_ENA_MEMIO);
                break;
        case HFC_IO_MODE_PCIMEM:
@@ -4431,7 +4431,7 @@ setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
                hc->pci_origmembase = hc->pci_dev->resource[1].start;
                if (!hc->pci_origmembase) {
                        printk(KERN_WARNING
-                           "HFC-multi: No IO-Memory for PCI card found\n");
+                              "HFC-multi: No IO-Memory for PCI card found\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
@@ -4439,14 +4439,14 @@ setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
                hc->pci_membase = ioremap(hc->pci_origmembase, 256);
                if (!hc->pci_membase) {
                        printk(KERN_WARNING
-                           "HFC-multi: failed to remap io address space. "
-                           "(internal error)\n");
+                              "HFC-multi: failed to remap io address space. "
+                              "(internal error)\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
                printk(KERN_INFO "card %d: defined at MEMBASE %#lx (%#lx) IRQ "
-                   "%d HZ %d leds-type %d\n", hc->id, (u_long)hc->pci_membase,
-                   hc->pci_origmembase, hc->pci_dev->irq, HZ, hc->leds);
+                      "%d HZ %d leds-type %d\n", hc->id, (u_long)hc->pci_membase,
+                      hc->pci_origmembase, hc->pci_dev->irq, HZ, hc->leds);
                pci_write_config_word(hc->pci_dev, PCI_COMMAND, PCI_ENA_MEMIO);
                break;
        case HFC_IO_MODE_REGIO:
@@ -4459,23 +4459,23 @@ setup_pci(struct hfc_multi *hc, struct pci_dev *pdev,
                hc->pci_iobase = (u_int) hc->pci_dev->resource[0].start;
                if (!hc->pci_iobase) {
                        printk(KERN_WARNING
-                               "HFC-multi: No IO for PCI card found\n");
+                              "HFC-multi: No IO for PCI card found\n");
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
 
                if (!request_region(hc->pci_iobase, 8, "hfcmulti")) {
                        printk(KERN_WARNING "HFC-multi: failed to request "
-                           "address space at 0x%08lx (internal error)\n",
-                           hc->pci_iobase);
+                              "address space at 0x%08lx (internal error)\n",
+                              hc->pci_iobase);
                        pci_disable_device(hc->pci_dev);
                        return -EIO;
                }
 
                printk(KERN_INFO
-                   "%s %s: defined at IOBASE %#x IRQ %d HZ %d leds-type %d\n",
-                   m->vendor_name, m->card_name, (u_int) hc->pci_iobase,
-                   hc->pci_dev->irq, HZ, hc->leds);
+                      "%s %s: defined at IOBASE %#x IRQ %d HZ %d leds-type %d\n",
+                      m->vendor_name, m->card_name, (u_int) hc->pci_iobase,
+                      hc->pci_dev->irq, HZ, hc->leds);
                pci_write_config_word(hc->pci_dev, PCI_COMMAND, PCI_ENA_REGIO);
                break;
        default:
@@ -4508,17 +4508,17 @@ release_port(struct hfc_multi *hc, struct dchannel *dch)
 
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: entered for port %d\n",
-                       __func__, pt + 1);
+                      __func__, pt + 1);
 
        if (pt >= hc->ports) {
                printk(KERN_WARNING "%s: ERROR port out of range (%d).\n",
-                    __func__, pt + 1);
+                      __func__, pt + 1);
                return;
        }
 
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: releasing port=%d\n",
-                   __func__, pt + 1);
+                      __func__, pt + 1);
 
        if (dch->dev.D.protocol == ISDN_P_TE_S0)
                l1_event(dch->l1, CLOSE_CHANNEL);
@@ -4548,8 +4548,8 @@ release_port(struct hfc_multi *hc, struct dchannel *dch)
                        if (hc->chan[i].bch) {
                                if (debug & DEBUG_HFCMULTI_INIT)
                                        printk(KERN_DEBUG
-                                           "%s: free port %d channel %d\n",
-                                           __func__, hc->chan[i].port+1, i);
+                                              "%s: free port %d channel %d\n",
+                                              __func__, hc->chan[i].port + 1, i);
                                pb = hc->chan[i].bch;
                                hc->chan[i].bch = NULL;
                                spin_unlock_irqrestore(&hc->lock, flags);
@@ -4563,16 +4563,16 @@ release_port(struct hfc_multi *hc, struct dchannel *dch)
                /* remove sync */
                if (test_bit(HFC_CHIP_PLXSD, &hc->chip)) {
                        hc->syncronized &=
-                          ~(1 << hc->chan[ci].port);
+                               ~(1 << hc->chan[ci].port);
                        plxsd_checksync(hc, 1);
                }
                /* free channels */
                if (hc->chan[ci - 2].bch) {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: free port %d channel %d\n",
-                                   __func__, hc->chan[ci - 2].port+1,
-                                   ci - 2);
+                                      "%s: free port %d channel %d\n",
+                                      __func__, hc->chan[ci - 2].port + 1,
+                                      ci - 2);
                        pb = hc->chan[ci - 2].bch;
                        hc->chan[ci - 2].bch = NULL;
                        spin_unlock_irqrestore(&hc->lock, flags);
@@ -4584,9 +4584,9 @@ release_port(struct hfc_multi *hc, struct dchannel *dch)
                if (hc->chan[ci - 1].bch) {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: free port %d channel %d\n",
-                                   __func__, hc->chan[ci - 1].port+1,
-                                   ci - 1);
+                                      "%s: free port %d channel %d\n",
+                                      __func__, hc->chan[ci - 1].port + 1,
+                                      ci - 1);
                        pb = hc->chan[ci - 1].bch;
                        hc->chan[ci - 1].bch = NULL;
                        spin_unlock_irqrestore(&hc->lock, flags);
@@ -4616,7 +4616,7 @@ release_card(struct hfc_multi *hc)
 
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: release card (%d) entered\n",
-                   __func__, hc->id);
+                      __func__, hc->id);
 
        /* unregister clock source */
        if (hc->iclock)
@@ -4635,7 +4635,7 @@ release_card(struct hfc_multi *hc)
        /* disable D-channels & B-channels */
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: disable all channels (d and b)\n",
-                   __func__);
+                      __func__);
        for (ch = 0; ch <= 31; ch++) {
                if (hc->chan[ch].dch)
                        release_port(hc, hc->chan[ch].dch);
@@ -4645,7 +4645,7 @@ release_card(struct hfc_multi *hc)
        if (hc->irq) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: free irq %d\n",
-                           __func__, hc->irq);
+                              __func__, hc->irq);
                free_irq(hc->irq, hc);
                hc->irq = 0;
 
@@ -4654,7 +4654,7 @@ release_card(struct hfc_multi *hc)
 
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: remove instance from list\n",
-                    __func__);
+                      __func__);
        list_del(&hc->list);
 
        if (debug & DEBUG_HFCMULTI_INIT)
@@ -4664,7 +4664,7 @@ release_card(struct hfc_multi *hc)
        kfree(hc);
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: card successfully removed\n",
-                   __func__);
+                      __func__);
 }
 
 static int
@@ -4683,7 +4683,7 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m)
        dch->hw = hc;
        dch->dev.Dprotocols = (1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1);
        dch->dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
-           (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
+               (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
        dch->dev.D.send = handle_dmsg;
        dch->dev.D.ctrl = hfcm_dctrl;
        dch->dev.nrbchan = (hc->dslot) ? 30 : 31;
@@ -4697,14 +4697,14 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m)
                bch = kzalloc(sizeof(struct bchannel), GFP_KERNEL);
                if (!bch) {
                        printk(KERN_ERR "%s: no memory for bchannel\n",
-                           __func__);
+                              __func__);
                        ret = -ENOMEM;
                        goto free_chan;
                }
                hc->chan[ch].coeff = kzalloc(512, GFP_KERNEL);
                if (!hc->chan[ch].coeff) {
                        printk(KERN_ERR "%s: no memory for coeffs\n",
-                           __func__);
+                              __func__);
                        ret = -ENOMEM;
                        kfree(bch);
                        goto free_chan;
@@ -4726,93 +4726,93 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m)
        if (port[Port_cnt] & 0x001) {
                if (!m->opticalsupport)  {
                        printk(KERN_INFO
-                           "This board has no optical "
-                           "support\n");
+                              "This board has no optical "
+                              "support\n");
                } else {
                        if (debug & DEBUG_HFCMULTI_INIT)
                                printk(KERN_DEBUG
-                                   "%s: PORT set optical "
-                                   "interfacs: card(%d) "
-                                   "port(%d)\n",
-                                   __func__,
-                                   HFC_cnt + 1, 1);
+                                      "%s: PORT set optical "
+                                      "interfacs: card(%d) "
+                                      "port(%d)\n",
+                                      __func__,
+                                      HFC_cnt + 1, 1);
                        test_and_set_bit(HFC_CFG_OPTICAL,
-                           &hc->chan[hc->dslot].cfg);
+                                        &hc->chan[hc->dslot].cfg);
                }
        }
        /* set LOS report */
        if (port[Port_cnt] & 0x004) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PORT set "
-                           "LOS report: card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, 1);
+                              "LOS report: card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CFG_REPORT_LOS,
-                   &hc->chan[hc->dslot].cfg);
+                                &hc->chan[hc->dslot].cfg);
        }
        /* set AIS report */
        if (port[Port_cnt] & 0x008) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PORT set "
-                           "AIS report: card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, 1);
+                              "AIS report: card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CFG_REPORT_AIS,
-                   &hc->chan[hc->dslot].cfg);
+                                &hc->chan[hc->dslot].cfg);
        }
        /* set SLIP report */
        if (port[Port_cnt] & 0x010) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: PORT set SLIP report: "
-                           "card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, 1);
+                              "%s: PORT set SLIP report: "
+                              "card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CFG_REPORT_SLIP,
-                   &hc->chan[hc->dslot].cfg);
+                                &hc->chan[hc->dslot].cfg);
        }
        /* set RDI report */
        if (port[Port_cnt] & 0x020) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: PORT set RDI report: "
-                           "card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, 1);
+                              "%s: PORT set RDI report: "
+                              "card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CFG_REPORT_RDI,
-                   &hc->chan[hc->dslot].cfg);
+                                &hc->chan[hc->dslot].cfg);
        }
        /* set CRC-4 Mode */
        if (!(port[Port_cnt] & 0x100)) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PORT turn on CRC4 report:"
-                               " card(%d) port(%d)\n",
-                               __func__, HFC_cnt + 1, 1);
+                              " card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CFG_CRC4,
-                   &hc->chan[hc->dslot].cfg);
+                                &hc->chan[hc->dslot].cfg);
        } else {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PORT turn off CRC4"
-                               " report: card(%d) port(%d)\n",
-                               __func__, HFC_cnt + 1, 1);
+                              " report: card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
        }
        /* set forced clock */
        if (port[Port_cnt] & 0x0200) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PORT force getting clock from "
-                               "E1: card(%d) port(%d)\n",
-                               __func__, HFC_cnt + 1, 1);
+                              "E1: card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CHIP_E1CLOCK_GET, &hc->chip);
        } else
-       if (port[Port_cnt] & 0x0400) {
-               if (debug & DEBUG_HFCMULTI_INIT)
-                       printk(KERN_DEBUG "%s: PORT force putting clock to "
-                               "E1: card(%d) port(%d)\n",
-                               __func__, HFC_cnt + 1, 1);
-               test_and_set_bit(HFC_CHIP_E1CLOCK_PUT, &hc->chip);
-       }
+               if (port[Port_cnt] & 0x0400) {
+                       if (debug & DEBUG_HFCMULTI_INIT)
+                               printk(KERN_DEBUG "%s: PORT force putting clock to "
+                                      "E1: card(%d) port(%d)\n",
+                                      __func__, HFC_cnt + 1, 1);
+                       test_and_set_bit(HFC_CHIP_E1CLOCK_PUT, &hc->chip);
+               }
        /* set JATT PLL */
        if (port[Port_cnt] & 0x0800) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG "%s: PORT disable JATT PLL on "
-                               "E1: card(%d) port(%d)\n",
-                               __func__, HFC_cnt + 1, 1);
+                              "E1: card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, 1);
                test_and_set_bit(HFC_CHIP_RX_SYNC, &hc->chip);
        }
        /* set elastic jitter buffer */
@@ -4820,10 +4820,10 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m)
                hc->chan[hc->dslot].jitter = (port[Port_cnt]>>12) & 0x3;
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: PORT set elastic "
-                           "buffer to %d: card(%d) port(%d)\n",
-                           __func__, hc->chan[hc->dslot].jitter,
-                           HFC_cnt + 1, 1);
+                              "%s: PORT set elastic "
+                              "buffer to %d: card(%d) port(%d)\n",
+                              __func__, hc->chan[hc->dslot].jitter,
+                              HFC_cnt + 1, 1);
        } else
                hc->chan[hc->dslot].jitter = 2; /* default */
        snprintf(name, MISDN_MAX_IDLEN - 1, "hfc-e1.%d", HFC_cnt + 1);
@@ -4853,7 +4853,7 @@ init_multi_port(struct hfc_multi *hc, int pt)
        dch->hw = hc;
        dch->dev.Dprotocols = (1 << ISDN_P_TE_S0) | (1 << ISDN_P_NT_S0);
        dch->dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
-           (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
+               (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
        dch->dev.D.send = handle_dmsg;
        dch->dev.D.ctrl = hfcm_dctrl;
        dch->dev.nrbchan = 2;
@@ -4866,14 +4866,14 @@ init_multi_port(struct hfc_multi *hc, int pt)
                bch = kzalloc(sizeof(struct bchannel), GFP_KERNEL);
                if (!bch) {
                        printk(KERN_ERR "%s: no memory for bchannel\n",
-                           __func__);
+                              __func__);
                        ret = -ENOMEM;
                        goto free_chan;
                }
                hc->chan[i + ch].coeff = kzalloc(512, GFP_KERNEL);
                if (!hc->chan[i + ch].coeff) {
                        printk(KERN_ERR "%s: no memory for coeffs\n",
-                           __func__);
+                              __func__);
                        ret = -ENOMEM;
                        kfree(bch);
                        goto free_chan;
@@ -4895,22 +4895,22 @@ init_multi_port(struct hfc_multi *hc, int pt)
        if (port[Port_cnt] & 0x001) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: PROTOCOL set master clock: "
-                           "card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, pt + 1);
+                              "%s: PROTOCOL set master clock: "
+                              "card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, pt + 1);
                if (dch->dev.D.protocol != ISDN_P_TE_S0) {
                        printk(KERN_ERR "Error: Master clock "
-                           "for port(%d) of card(%d) is only"
-                           " possible with TE-mode\n",
-                           pt + 1, HFC_cnt + 1);
+                              "for port(%d) of card(%d) is only"
+                              " possible with TE-mode\n",
+                              pt + 1, HFC_cnt + 1);
                        ret = -EINVAL;
                        goto free_chan;
                }
                if (hc->masterclk >= 0) {
                        printk(KERN_ERR "Error: Master clock "
-                           "for port(%d) of card(%d) already "
-                           "defined for port(%d)\n",
-                           pt + 1, HFC_cnt + 1, hc->masterclk+1);
+                              "for port(%d) of card(%d) already "
+                              "defined for port(%d)\n",
+                              pt + 1, HFC_cnt + 1, hc->masterclk + 1);
                        ret = -EINVAL;
                        goto free_chan;
                }
@@ -4920,29 +4920,29 @@ init_multi_port(struct hfc_multi *hc, int pt)
        if (port[Port_cnt] & 0x002) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: PROTOCOL set non capacitive "
-                           "transmitter: card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, pt + 1);
+                              "%s: PROTOCOL set non capacitive "
+                              "transmitter: card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, pt + 1);
                test_and_set_bit(HFC_CFG_NONCAP_TX,
-                   &hc->chan[i + 2].cfg);
+                                &hc->chan[i + 2].cfg);
        }
        /* disable E-channel */
        if (port[Port_cnt] & 0x004) {
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: PROTOCOL disable E-channel: "
-                           "card(%d) port(%d)\n",
-                           __func__, HFC_cnt + 1, pt + 1);
+                              "%s: PROTOCOL disable E-channel: "
+                              "card(%d) port(%d)\n",
+                              __func__, HFC_cnt + 1, pt + 1);
                test_and_set_bit(HFC_CFG_DIS_ECHANNEL,
-                   &hc->chan[i + 2].cfg);
+                                &hc->chan[i + 2].cfg);
        }
        if (hc->ctype == HFC_TYPE_XHFC) {
                snprintf(name, MISDN_MAX_IDLEN - 1, "xhfc.%d-%d",
-                       HFC_cnt + 1, pt + 1);
+                        HFC_cnt + 1, pt + 1);
                ret = mISDN_register_device(&dch->dev, NULL, name);
        } else {
                snprintf(name, MISDN_MAX_IDLEN - 1, "hfc-%ds.%d-%d",
-                       hc->ctype, HFC_cnt + 1, pt + 1);
+                        hc->ctype, HFC_cnt + 1, pt + 1);
                ret = mISDN_register_device(&dch->dev, &hc->pci_dev->dev, name);
        }
        if (ret)
@@ -4956,7 +4956,7 @@ free_chan:
 
 static int
 hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
-    const struct pci_device_id *ent)
+             const struct pci_device_id *ent)
 {
        int             ret_err = 0;
        int             pt;
@@ -4967,22 +4967,22 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
 
        if (HFC_cnt >= MAX_CARDS) {
                printk(KERN_ERR "too many cards (max=%d).\n",
-                       MAX_CARDS);
+                      MAX_CARDS);
                return -EINVAL;
        }
        if ((type[HFC_cnt] & 0xff) && (type[HFC_cnt] & 0xff) != m->type) {
                printk(KERN_WARNING "HFC-MULTI: Card '%s:%s' type %d found but "
-                   "type[%d] %d was supplied as module parameter\n",
-                   m->vendor_name, m->card_name, m->type, HFC_cnt,
-                   type[HFC_cnt] & 0xff);
+                      "type[%d] %d was supplied as module parameter\n",
+                      m->vendor_name, m->card_name, m->type, HFC_cnt,
+                      type[HFC_cnt] & 0xff);
                printk(KERN_WARNING "HFC-MULTI: Load module without parameters "
-                       "first, to see cards and their types.");
+                      "first, to see cards and their types.");
                return -EINVAL;
        }
        if (debug & DEBUG_HFCMULTI_INIT)
                printk(KERN_DEBUG "%s: Registering %s:%s chip type %d (0x%x)\n",
-                   __func__, m->vendor_name, m->card_name, m->type,
-                   type[HFC_cnt]);
+                      __func__, m->vendor_name, m->card_name, m->type,
+                      type[HFC_cnt]);
 
        /* allocate card+fifo structure */
        hc = kzalloc(sizeof(struct hfc_multi), GFP_KERNEL);
@@ -5000,13 +5000,13 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
        if (dslot[HFC_cnt] < 0 && hc->ctype == HFC_TYPE_E1) {
                hc->dslot = 0;
                printk(KERN_INFO "HFC-E1 card has disabled D-channel, but "
-                       "31 B-channels\n");
+                      "31 B-channels\n");
        }
        if (dslot[HFC_cnt] > 0 && dslot[HFC_cnt] < 32
            && hc->ctype == HFC_TYPE_E1) {
                hc->dslot = dslot[HFC_cnt];
                printk(KERN_INFO "HFC-E1 card has alternating D-channel on "
-                       "time slot %d\n", dslot[HFC_cnt]);
+                      "time slot %d\n", dslot[HFC_cnt]);
        } else
                hc->dslot = 16;
 
@@ -5019,7 +5019,7 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
                hc->silence = 0x2a; /* alaw silence */
        if ((poll >> 1) > sizeof(hc->silence_data)) {
                printk(KERN_ERR "HFCMULTI error: silence_data too small, "
-                       "please fix\n");
+                      "please fix\n");
                return -EINVAL;
        }
        for (i = 0; i < (poll >> 1); i++)
@@ -5086,7 +5086,7 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
        for (pt = 0; pt < hc->ports; pt++) {
                if (Port_cnt >= MAX_PORTS) {
                        printk(KERN_ERR "too many ports (max=%d).\n",
-                               MAX_PORTS);
+                              MAX_PORTS);
                        ret_err = -EINVAL;
                        goto free_card;
                }
@@ -5096,9 +5096,9 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
                        ret_err = init_multi_port(hc, pt);
                if (debug & DEBUG_HFCMULTI_INIT)
                        printk(KERN_DEBUG
-                           "%s: Registering D-channel, card(%d) port(%d)"
-                           "result %d\n",
-                           __func__, HFC_cnt + 1, pt, ret_err);
+                              "%s: Registering D-channel, card(%d) port(%d)"
+                              "result %d\n",
+                              __func__, HFC_cnt + 1, pt, ret_err);
 
                if (ret_err) {
                        while (pt) { /* release already registered ports */
@@ -5129,7 +5129,7 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
                        pmj = ~pmj & 0xf;
 
                printk(KERN_INFO "%s: %s DIPs(0x%x) jumpers(0x%x)\n",
-                       m->vendor_name, m->card_name, dips, pmj);
+                      m->vendor_name, m->card_name, dips, pmj);
                break;
        case DIP_8S:
                /*
@@ -5151,16 +5151,16 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
                /* disable PCI auxbridge function */
                HFC_outb(hc, R_BRG_PCM_CFG, V_PCM_CLK);
                printk(KERN_INFO "%s: %s DIPs(0x%x)\n",
-                   m->vendor_name, m->card_name, dips);
+                      m->vendor_name, m->card_name, dips);
                break;
        case DIP_E1:
                /*
                 * get DIP Setting for beroNet E1 cards
                 * DIP Setting: collect GPI 4/5/6/7 (R_GPI_IN0)
                 */
-               dips = (~HFC_inb(hc, R_GPI_IN0) & 0xF0)>>4;
+               dips = (~HFC_inb(hc, R_GPI_IN0) & 0xF0) >> 4;
                printk(KERN_INFO "%s: %s DIPs(0x%x)\n",
-                   m->vendor_name, m->card_name, dips);
+                      m->vendor_name, m->card_name, dips);
                break;
        }
 
@@ -5203,9 +5203,9 @@ static void __devexit hfc_remove_pci(struct pci_dev *pdev)
 
        if (debug)
                printk(KERN_INFO "removing hfc_multi card vendor:%x "
-                   "device:%x subvendor:%x subdevice:%x\n",
-                   pdev->vendor, pdev->device,
-                   pdev->subsystem_vendor, pdev->subsystem_device);
+                      "device:%x subvendor:%x subdevice:%x\n",
+                      pdev->vendor, pdev->device,
+                      pdev->subsystem_vendor, pdev->subsystem_device);
 
        if (card) {
                spin_lock_irqsave(&HFClock, flags);
@@ -5214,7 +5214,7 @@ static void __devexit hfc_remove_pci(struct pci_dev *pdev)
        }  else {
                if (debug)
                        printk(KERN_DEBUG "%s: drvdata already removed\n",
-                           __func__);
+                              __func__);
        }
 }
 
@@ -5225,50 +5225,50 @@ static void __devexit hfc_remove_pci(struct pci_dev *pdev)
 #define VENDOR_PRIM    "PrimuX"
 
 static const struct hm_map hfcm_map[] = {
-/*0*/  {VENDOR_BN, "HFC-1S Card (mini PCI)", 4, 1, 1, 3, 0, DIP_4S, 0, 0},
-/*1*/  {VENDOR_BN, "HFC-2S Card", 4, 2, 1, 3, 0, DIP_4S, 0, 0},
-/*2*/  {VENDOR_BN, "HFC-2S Card (mini PCI)", 4, 2, 1, 3, 0, DIP_4S, 0, 0},
-/*3*/  {VENDOR_BN, "HFC-4S Card", 4, 4, 1, 2, 0, DIP_4S, 0, 0},
-/*4*/  {VENDOR_BN, "HFC-4S Card (mini PCI)", 4, 4, 1, 2, 0, 0, 0, 0},
-/*5*/  {VENDOR_CCD, "HFC-4S Eval (old)", 4, 4, 0, 0, 0, 0, 0, 0},
-/*6*/  {VENDOR_CCD, "HFC-4S IOB4ST", 4, 4, 1, 2, 0, DIP_4S, 0, 0},
-/*7*/  {VENDOR_CCD, "HFC-4S", 4, 4, 1, 2, 0, 0, 0, 0},
-/*8*/  {VENDOR_DIG, "HFC-4S Card", 4, 4, 0, 2, 0, 0, HFC_IO_MODE_REGIO, 0},
-/*9*/  {VENDOR_CCD, "HFC-4S Swyx 4xS0 SX2 QuadBri", 4, 4, 1, 2, 0, 0, 0, 0},
-/*10*/ {VENDOR_JH, "HFC-4S (junghanns 2.0)", 4, 4, 1, 2, 0, 0, 0, 0},
-/*11*/ {VENDOR_PRIM, "HFC-2S Primux Card", 4, 2, 0, 0, 0, 0, 0, 0},
-
-/*12*/ {VENDOR_BN, "HFC-8S Card", 8, 8, 1, 0, 0, 0, 0, 0},
-/*13*/ {VENDOR_BN, "HFC-8S Card (+)", 8, 8, 1, 8, 0, DIP_8S,
-               HFC_IO_MODE_REGIO, 0},
-/*14*/ {VENDOR_CCD, "HFC-8S Eval (old)", 8, 8, 0, 0, 0, 0, 0, 0},
-/*15*/ {VENDOR_CCD, "HFC-8S IOB4ST Recording", 8, 8, 1, 0, 0, 0, 0, 0},
-
-/*16*/ {VENDOR_CCD, "HFC-8S IOB8ST", 8, 8, 1, 0, 0, 0, 0, 0},
-/*17*/ {VENDOR_CCD, "HFC-8S", 8, 8, 1, 0, 0, 0, 0, 0},
-/*18*/ {VENDOR_CCD, "HFC-8S", 8, 8, 1, 0, 0, 0, 0, 0},
-
-/*19*/ {VENDOR_BN, "HFC-E1 Card", 1, 1, 0, 1, 0, DIP_E1, 0, 0},
-/*20*/ {VENDOR_BN, "HFC-E1 Card (mini PCI)", 1, 1, 0, 1, 0, 0, 0, 0},
-/*21*/ {VENDOR_BN, "HFC-E1+ Card (Dual)", 1, 1, 0, 1, 0, DIP_E1, 0, 0},
-/*22*/ {VENDOR_BN, "HFC-E1 Card (Dual)", 1, 1, 0, 1, 0, DIP_E1, 0, 0},
-
-/*23*/ {VENDOR_CCD, "HFC-E1 Eval (old)", 1, 1, 0, 0, 0, 0, 0, 0},
-/*24*/ {VENDOR_CCD, "HFC-E1 IOB1E1", 1, 1, 0, 1, 0, 0, 0, 0},
-/*25*/ {VENDOR_CCD, "HFC-E1", 1, 1, 0, 1, 0, 0, 0, 0},
-
-/*26*/ {VENDOR_CCD, "HFC-4S Speech Design", 4, 4, 0, 0, 0, 0,
-               HFC_IO_MODE_PLXSD, 0},
-/*27*/ {VENDOR_CCD, "HFC-E1 Speech Design", 1, 1, 0, 0, 0, 0,
-               HFC_IO_MODE_PLXSD, 0},
-/*28*/ {VENDOR_CCD, "HFC-4S OpenVox", 4, 4, 1, 0, 0, 0, 0, 0},
-/*29*/ {VENDOR_CCD, "HFC-2S OpenVox", 4, 2, 1, 0, 0, 0, 0, 0},
-/*30*/ {VENDOR_CCD, "HFC-8S OpenVox", 8, 8, 1, 0, 0, 0, 0, 0},
-/*31*/ {VENDOR_CCD, "XHFC-4S Speech Design", 5, 4, 0, 0, 0, 0,
-               HFC_IO_MODE_EMBSD, XHFC_IRQ},
-/*32*/ {VENDOR_JH, "HFC-8S (junghanns)", 8, 8, 1, 0, 0, 0, 0, 0},
-/*33*/ {VENDOR_BN, "HFC-2S Beronet Card PCIe", 4, 2, 1, 3, 0, DIP_4S, 0, 0},
-/*34*/ {VENDOR_BN, "HFC-4S Beronet Card PCIe", 4, 4, 1, 2, 0, DIP_4S, 0, 0},
+       /*0*/   {VENDOR_BN, "HFC-1S Card (mini PCI)", 4, 1, 1, 3, 0, DIP_4S, 0, 0},
+       /*1*/   {VENDOR_BN, "HFC-2S Card", 4, 2, 1, 3, 0, DIP_4S, 0, 0},
+       /*2*/   {VENDOR_BN, "HFC-2S Card (mini PCI)", 4, 2, 1, 3, 0, DIP_4S, 0, 0},
+       /*3*/   {VENDOR_BN, "HFC-4S Card", 4, 4, 1, 2, 0, DIP_4S, 0, 0},
+       /*4*/   {VENDOR_BN, "HFC-4S Card (mini PCI)", 4, 4, 1, 2, 0, 0, 0, 0},
+       /*5*/   {VENDOR_CCD, "HFC-4S Eval (old)", 4, 4, 0, 0, 0, 0, 0, 0},
+       /*6*/   {VENDOR_CCD, "HFC-4S IOB4ST", 4, 4, 1, 2, 0, DIP_4S, 0, 0},
+       /*7*/   {VENDOR_CCD, "HFC-4S", 4, 4, 1, 2, 0, 0, 0, 0},
+       /*8*/   {VENDOR_DIG, "HFC-4S Card", 4, 4, 0, 2, 0, 0, HFC_IO_MODE_REGIO, 0},
+       /*9*/   {VENDOR_CCD, "HFC-4S Swyx 4xS0 SX2 QuadBri", 4, 4, 1, 2, 0, 0, 0, 0},
+       /*10*/  {VENDOR_JH, "HFC-4S (junghanns 2.0)", 4, 4, 1, 2, 0, 0, 0, 0},
+       /*11*/  {VENDOR_PRIM, "HFC-2S Primux Card", 4, 2, 0, 0, 0, 0, 0, 0},
+
+       /*12*/  {VENDOR_BN, "HFC-8S Card", 8, 8, 1, 0, 0, 0, 0, 0},
+       /*13*/  {VENDOR_BN, "HFC-8S Card (+)", 8, 8, 1, 8, 0, DIP_8S,
+                HFC_IO_MODE_REGIO, 0},
+       /*14*/  {VENDOR_CCD, "HFC-8S Eval (old)", 8, 8, 0, 0, 0, 0, 0, 0},
+       /*15*/  {VENDOR_CCD, "HFC-8S IOB4ST Recording", 8, 8, 1, 0, 0, 0, 0, 0},
+
+       /*16*/  {VENDOR_CCD, "HFC-8S IOB8ST", 8, 8, 1, 0, 0, 0, 0, 0},
+       /*17*/  {VENDOR_CCD, "HFC-8S", 8, 8, 1, 0, 0, 0, 0, 0},
+       /*18*/  {VENDOR_CCD, "HFC-8S", 8, 8, 1, 0, 0, 0, 0, 0},
+
+       /*19*/  {VENDOR_BN, "HFC-E1 Card", 1, 1, 0, 1, 0, DIP_E1, 0, 0},
+       /*20*/  {VENDOR_BN, "HFC-E1 Card (mini PCI)", 1, 1, 0, 1, 0, 0, 0, 0},
+       /*21*/  {VENDOR_BN, "HFC-E1+ Card (Dual)", 1, 1, 0, 1, 0, DIP_E1, 0, 0},
+       /*22*/  {VENDOR_BN, "HFC-E1 Card (Dual)", 1, 1, 0, 1, 0, DIP_E1, 0, 0},
+
+       /*23*/  {VENDOR_CCD, "HFC-E1 Eval (old)", 1, 1, 0, 0, 0, 0, 0, 0},
+       /*24*/  {VENDOR_CCD, "HFC-E1 IOB1E1", 1, 1, 0, 1, 0, 0, 0, 0},
+       /*25*/  {VENDOR_CCD, "HFC-E1", 1, 1, 0, 1, 0, 0, 0, 0},
+
+       /*26*/  {VENDOR_CCD, "HFC-4S Speech Design", 4, 4, 0, 0, 0, 0,
+                HFC_IO_MODE_PLXSD, 0},
+       /*27*/  {VENDOR_CCD, "HFC-E1 Speech Design", 1, 1, 0, 0, 0, 0,
+                HFC_IO_MODE_PLXSD, 0},
+       /*28*/  {VENDOR_CCD, "HFC-4S OpenVox", 4, 4, 1, 0, 0, 0, 0, 0},
+       /*29*/  {VENDOR_CCD, "HFC-2S OpenVox", 4, 2, 1, 0, 0, 0, 0, 0},
+       /*30*/  {VENDOR_CCD, "HFC-8S OpenVox", 8, 8, 1, 0, 0, 0, 0, 0},
+       /*31*/  {VENDOR_CCD, "XHFC-4S Speech Design", 5, 4, 0, 0, 0, 0,
+                HFC_IO_MODE_EMBSD, XHFC_IRQ},
+       /*32*/  {VENDOR_JH, "HFC-8S (junghanns)", 8, 8, 1, 0, 0, 0, 0, 0},
+       /*33*/  {VENDOR_BN, "HFC-2S Beronet Card PCIe", 4, 2, 1, 3, 0, DIP_4S, 0, 0},
+       /*34*/  {VENDOR_BN, "HFC-4S Beronet Card PCIe", 4, 4, 1, 2, 0, DIP_4S, 0, 0},
 };
 
 #undef H
@@ -5277,83 +5277,83 @@ static struct pci_device_id hfmultipci_ids[] __devinitdata = {
 
        /* Cards with HFC-4S Chip */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BN1SM, 0, 0, H(0)}, /* BN1S mini PCI */
+         PCI_SUBDEVICE_ID_CCD_BN1SM, 0, 0, H(0)}, /* BN1S mini PCI */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BN2S, 0, 0, H(1)}, /* BN2S */
+         PCI_SUBDEVICE_ID_CCD_BN2S, 0, 0, H(1)}, /* BN2S */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BN2SM, 0, 0, H(2)}, /* BN2S mini PCI */
+         PCI_SUBDEVICE_ID_CCD_BN2SM, 0, 0, H(2)}, /* BN2S mini PCI */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BN4S, 0, 0, H(3)}, /* BN4S */
+         PCI_SUBDEVICE_ID_CCD_BN4S, 0, 0, H(3)}, /* BN4S */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BN4SM, 0, 0, H(4)}, /* BN4S mini PCI */
+         PCI_SUBDEVICE_ID_CCD_BN4SM, 0, 0, H(4)}, /* BN4S mini PCI */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_DEVICE_ID_CCD_HFC4S, 0, 0, H(5)}, /* Old Eval */
+         PCI_DEVICE_ID_CCD_HFC4S, 0, 0, H(5)}, /* Old Eval */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_IOB4ST, 0, 0, H(6)}, /* IOB4ST */
+         PCI_SUBDEVICE_ID_CCD_IOB4ST, 0, 0, H(6)}, /* IOB4ST */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_HFC4S, 0, 0, H(7)}, /* 4S */
+         PCI_SUBDEVICE_ID_CCD_HFC4S, 0, 0, H(7)}, /* 4S */
        { PCI_VENDOR_ID_DIGIUM, PCI_DEVICE_ID_DIGIUM_HFC4S,
-               PCI_VENDOR_ID_DIGIUM, PCI_DEVICE_ID_DIGIUM_HFC4S, 0, 0, H(8)},
+         PCI_VENDOR_ID_DIGIUM, PCI_DEVICE_ID_DIGIUM_HFC4S, 0, 0, H(8)},
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_SWYX4S, 0, 0, H(9)}, /* 4S Swyx */
+         PCI_SUBDEVICE_ID_CCD_SWYX4S, 0, 0, H(9)}, /* 4S Swyx */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_JH4S20, 0, 0, H(10)},
+         PCI_SUBDEVICE_ID_CCD_JH4S20, 0, 0, H(10)},
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_PMX2S, 0, 0, H(11)}, /* Primux */
+         PCI_SUBDEVICE_ID_CCD_PMX2S, 0, 0, H(11)}, /* Primux */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_OV4S, 0, 0, H(28)}, /* OpenVox 4 */
+         PCI_SUBDEVICE_ID_CCD_OV4S, 0, 0, H(28)}, /* OpenVox 4 */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_OV2S, 0, 0, H(29)}, /* OpenVox 2 */
+         PCI_SUBDEVICE_ID_CCD_OV2S, 0, 0, H(29)}, /* OpenVox 2 */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               0xb761, 0, 0, H(33)}, /* BN2S PCIe */
+         0xb761, 0, 0, H(33)}, /* BN2S PCIe */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
-               0xb762, 0, 0, H(34)}, /* BN4S PCIe */
+         0xb762, 0, 0, H(34)}, /* BN4S PCIe */
 
        /* Cards with HFC-8S Chip */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-       PCI_SUBDEVICE_ID_CCD_BN8S, 0, 0, H(12)}, /* BN8S */
+         PCI_SUBDEVICE_ID_CCD_BN8S, 0, 0, H(12)}, /* BN8S */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-       PCI_SUBDEVICE_ID_CCD_BN8SP, 0, 0, H(13)}, /* BN8S+ */
+         PCI_SUBDEVICE_ID_CCD_BN8SP, 0, 0, H(13)}, /* BN8S+ */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-       PCI_DEVICE_ID_CCD_HFC8S, 0, 0, H(14)}, /* old Eval */
+         PCI_DEVICE_ID_CCD_HFC8S, 0, 0, H(14)}, /* old Eval */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-       PCI_SUBDEVICE_ID_CCD_IOB8STR, 0, 0, H(15)}, /* IOB8ST Recording */
+         PCI_SUBDEVICE_ID_CCD_IOB8STR, 0, 0, H(15)}, /* IOB8ST Recording */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_IOB8ST, 0, 0, H(16)}, /* IOB8ST  */
+         PCI_SUBDEVICE_ID_CCD_IOB8ST, 0, 0, H(16)}, /* IOB8ST  */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_IOB8ST_1, 0, 0, H(17)}, /* IOB8ST  */
+         PCI_SUBDEVICE_ID_CCD_IOB8ST_1, 0, 0, H(17)}, /* IOB8ST  */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_HFC8S, 0, 0, H(18)}, /* 8S */
+         PCI_SUBDEVICE_ID_CCD_HFC8S, 0, 0, H(18)}, /* 8S */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_OV8S, 0, 0, H(30)}, /* OpenVox 8 */
+         PCI_SUBDEVICE_ID_CCD_OV8S, 0, 0, H(30)}, /* OpenVox 8 */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC8S, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_JH8S, 0, 0, H(32)}, /* Junganns 8S  */
+         PCI_SUBDEVICE_ID_CCD_JH8S, 0, 0, H(32)}, /* Junganns 8S  */
 
 
        /* Cards with HFC-E1 Chip */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BNE1, 0, 0, H(19)}, /* BNE1 */
+         PCI_SUBDEVICE_ID_CCD_BNE1, 0, 0, H(19)}, /* BNE1 */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BNE1M, 0, 0, H(20)}, /* BNE1 mini PCI */
+         PCI_SUBDEVICE_ID_CCD_BNE1M, 0, 0, H(20)}, /* BNE1 mini PCI */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BNE1DP, 0, 0, H(21)}, /* BNE1 + (Dual) */
+         PCI_SUBDEVICE_ID_CCD_BNE1DP, 0, 0, H(21)}, /* BNE1 + (Dual) */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_BNE1D, 0, 0, H(22)}, /* BNE1 (Dual) */
+         PCI_SUBDEVICE_ID_CCD_BNE1D, 0, 0, H(22)}, /* BNE1 (Dual) */
 
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_DEVICE_ID_CCD_HFCE1, 0, 0, H(23)}, /* Old Eval */
+         PCI_DEVICE_ID_CCD_HFCE1, 0, 0, H(23)}, /* Old Eval */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_IOB1E1, 0, 0, H(24)}, /* IOB1E1 */
+         PCI_SUBDEVICE_ID_CCD_IOB1E1, 0, 0, H(24)}, /* IOB1E1 */
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_HFCE1, 0, 0, H(25)}, /* E1 */
+         PCI_SUBDEVICE_ID_CCD_HFCE1, 0, 0, H(25)}, /* E1 */
 
        { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_SPD4S, 0, 0, H(26)}, /* PLX PCI Bridge */
+         PCI_SUBDEVICE_ID_CCD_SPD4S, 0, 0, H(26)}, /* PLX PCI Bridge */
        { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_SPDE1, 0, 0, H(27)}, /* PLX PCI Bridge */
+         PCI_SUBDEVICE_ID_CCD_SPDE1, 0, 0, H(27)}, /* PLX PCI Bridge */
 
        { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFCE1, PCI_VENDOR_ID_CCD,
-               PCI_SUBDEVICE_ID_CCD_JHSE1, 0, 0, H(25)}, /* Junghanns E1 */
+         PCI_SUBDEVICE_ID_CCD_JHSE1, 0, 0, H(25)}, /* Junghanns E1 */
 
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_HFC4S), 0 },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_HFC8S), 0 },
@@ -5371,16 +5371,16 @@ hfcmulti_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        int             ret;
 
        if (m == NULL && ent->vendor == PCI_VENDOR_ID_CCD && (
-           ent->device == PCI_DEVICE_ID_CCD_HFC4S ||
-           ent->device == PCI_DEVICE_ID_CCD_HFC8S ||
-           ent->device == PCI_DEVICE_ID_CCD_HFCE1)) {
+                   ent->device == PCI_DEVICE_ID_CCD_HFC4S ||
+                   ent->device == PCI_DEVICE_ID_CCD_HFC8S ||
+                   ent->device == PCI_DEVICE_ID_CCD_HFCE1)) {
                printk(KERN_ERR
-                   "Unknown HFC multiport controller (vendor:%04x device:%04x "
-                   "subvendor:%04x subdevice:%04x)\n", pdev->vendor,
-                   pdev->device, pdev->subsystem_vendor,
-                   pdev->subsystem_device);
+                      "Unknown HFC multiport controller (vendor:%04x device:%04x "
+                      "subvendor:%04x subdevice:%04x)\n", pdev->vendor,
+                      pdev->device, pdev->subsystem_vendor,
+                      pdev->subsystem_device);
                printk(KERN_ERR
-                   "Please contact the driver maintainer for support.\n");
+                      "Please contact the driver maintainer for support.\n");
                return -ENODEV;
        }
        ret = hfcmulti_init(m, pdev, ent);
@@ -5453,7 +5453,7 @@ HFCmulti_init(void)
                break;
        default:
                printk(KERN_ERR
-                   "%s: Wrong poll value (%d).\n", __func__, poll);
+                      "%s: Wrong poll value (%d).\n", __func__, poll);
                err = -EINVAL;
                return err;
 
@@ -5485,7 +5485,7 @@ HFCmulti_init(void)
                err = hfcmulti_init(&m, NULL, NULL);
                if (err) {
                        printk(KERN_ERR "error registering embedded driver: "
-                               "%x\n", err);
+                              "%x\n", err);
                        return err;
                }
                HFC_cnt++;
index 3261de1..d055ae7 100644 (file)
@@ -109,11 +109,11 @@ struct hfcPCI_hw {
        unsigned char           bswapped;
        unsigned char           protocol;
        int                     nt_timer;
-       unsigned char __iomem   *pci_io; /* start of PCI IO memory */
+       unsigned char __iomem   *pci_io; /* start of PCI IO memory */
        dma_addr_t              dmahandle;
        void                    *fifos; /* FIFO memory */
        int                     last_bfifo_cnt[2];
-           /* marker saving last b-fifo frame count */
+       /* marker saving last b-fifo frame count */
        struct timer_list       timer;
 };
 
@@ -216,7 +216,7 @@ reset_hfcpci(struct hfc_pci *hc)
        disable_hwirq(hc);
        /* enable memory ports + busmaster */
        pci_write_config_word(hc->pdev, PCI_COMMAND,
-           PCI_ENA_MEMIO + PCI_ENA_MASTER);
+                             PCI_ENA_MEMIO + PCI_ENA_MASTER);
        val = Read_hfc(hc, HFCPCI_STATUS);
        printk(KERN_DEBUG "HFC-PCI status(%x) before reset\n", val);
        hc->hw.cirm = HFCPCI_RESET;     /* Reset On */
@@ -255,7 +255,7 @@ reset_hfcpci(struct hfc_pci *hc)
        Write_hfc(hc, HFCPCI_CTMT, hc->hw.ctmt);
 
        hc->hw.int_m1 = HFCPCI_INTS_DTRANS | HFCPCI_INTS_DREC |
-           HFCPCI_INTS_L1STATE | HFCPCI_INTS_TIMER;
+               HFCPCI_INTS_L1STATE | HFCPCI_INTS_TIMER;
        Write_hfc(hc, HFCPCI_INT_M1, hc->hw.int_m1);
 
        /* Clear already pending ints */
@@ -319,10 +319,10 @@ static struct bchannel *
 Sel_BCS(struct hfc_pci *hc, int channel)
 {
        if (test_bit(FLG_ACTIVE, &hc->bch[0].Flags) &&
-               (hc->bch[0].nr & channel))
+           (hc->bch[0].nr & channel))
                return &hc->bch[0];
        else if (test_bit(FLG_ACTIVE, &hc->bch[1].Flags) &&
-               (hc->bch[1].nr & channel))
+                (hc->bch[1].nr & channel))
                return &hc->bch[1];
        else
                return NULL;
@@ -352,7 +352,7 @@ hfcpci_clear_fifo_rx(struct hfc_pci *hc, int fifo)
        bzr->f2 = bzr->f1;      /* init F pointers to remain constant */
        bzr->za[MAX_B_FRAMES].z1 = cpu_to_le16(B_FIFO_SIZE + B_SUB_VAL - 1);
        bzr->za[MAX_B_FRAMES].z2 = cpu_to_le16(
-           le16_to_cpu(bzr->za[MAX_B_FRAMES].z1));
+               le16_to_cpu(bzr->za[MAX_B_FRAMES].z1));
        if (fifo_state)
                hc->hw.fifo_en |= fifo_state;
        Write_hfc(hc, HFCPCI_FIFO_EN, hc->hw.fifo_en);
@@ -378,11 +378,11 @@ static void hfcpci_clear_fifo_tx(struct hfc_pci *hc, int fifo)
        Write_hfc(hc, HFCPCI_FIFO_EN, hc->hw.fifo_en);
        if (hc->bch[fifo].debug & DEBUG_HW_BCHANNEL)
                printk(KERN_DEBUG "hfcpci_clear_fifo_tx%d f1(%x) f2(%x) "
-                   "z1(%x) z2(%x) state(%x)\n",
-                   fifo, bzt->f1, bzt->f2,
-                   le16_to_cpu(bzt->za[MAX_B_FRAMES].z1),
-                   le16_to_cpu(bzt->za[MAX_B_FRAMES].z2),
-                   fifo_state);
+                      "z1(%x) z2(%x) state(%x)\n",
+                      fifo, bzt->f1, bzt->f2,
+                      le16_to_cpu(bzt->za[MAX_B_FRAMES].z1),
+                      le16_to_cpu(bzt->za[MAX_B_FRAMES].z2),
+                      fifo_state);
        bzt->f2 = MAX_B_FRAMES;
        bzt->f1 = bzt->f2;      /* init F pointers to remain constant */
        bzt->za[MAX_B_FRAMES].z1 = cpu_to_le16(B_FIFO_SIZE + B_SUB_VAL - 1);
@@ -392,10 +392,10 @@ static void hfcpci_clear_fifo_tx(struct hfc_pci *hc, int fifo)
        Write_hfc(hc, HFCPCI_FIFO_EN, hc->hw.fifo_en);
        if (hc->bch[fifo].debug & DEBUG_HW_BCHANNEL)
                printk(KERN_DEBUG
-                   "hfcpci_clear_fifo_tx%d f1(%x) f2(%x) z1(%x) z2(%x)\n",
-                   fifo, bzt->f1, bzt->f2,
-                   le16_to_cpu(bzt->za[MAX_B_FRAMES].z1),
-                   le16_to_cpu(bzt->za[MAX_B_FRAMES].z2));
+                      "hfcpci_clear_fifo_tx%d f1(%x) f2(%x) z1(%x) z2(%x)\n",
+                      fifo, bzt->f1, bzt->f2,
+                      le16_to_cpu(bzt->za[MAX_B_FRAMES].z1),
+                      le16_to_cpu(bzt->za[MAX_B_FRAMES].z2));
 }
 
 /*
@@ -403,7 +403,7 @@ static void hfcpci_clear_fifo_tx(struct hfc_pci *hc, int fifo)
  */
 static void
 hfcpci_empty_bfifo(struct bchannel *bch, struct bzfifo *bz,
-    u_char *bdata, int count)
+                  u_char *bdata, int count)
 {
        u_char          *ptr, *ptr1, new_f2;
        int             maxlen, new_z2;
@@ -420,7 +420,7 @@ hfcpci_empty_bfifo(struct bchannel *bch, struct bzfifo *bz,
            (*(bdata + (le16_to_cpu(zp->z1) - B_SUB_VAL)))) {
                if (bch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "hfcpci_empty_fifo: incoming packet "
-                           "invalid length %d or crc\n", count);
+                              "invalid length %d or crc\n", count);
 #ifdef ERROR_STATISTIC
                bch->err_inv++;
 #endif
@@ -439,10 +439,10 @@ hfcpci_empty_bfifo(struct bchannel *bch, struct bzfifo *bz,
                        maxlen = count;         /* complete transfer */
                else
                        maxlen = B_FIFO_SIZE + B_SUB_VAL -
-                           le16_to_cpu(zp->z2);        /* maximum */
+                               le16_to_cpu(zp->z2);    /* maximum */
 
                ptr1 = bdata + (le16_to_cpu(zp->z2) - B_SUB_VAL);
-                   /* start of data */
+               /* start of data */
                memcpy(ptr, ptr1, maxlen);      /* copy data */
                count -= maxlen;
 
@@ -480,33 +480,33 @@ receive_dmsg(struct hfc_pci *hc)
                rcnt++;
                if (dch->debug & DEBUG_HW_DCHANNEL)
                        printk(KERN_DEBUG
-                           "hfcpci recd f1(%d) f2(%d) z1(%x) z2(%x) cnt(%d)\n",
-                               df->f1, df->f2,
-                               le16_to_cpu(zp->z1),
-                               le16_to_cpu(zp->z2),
-                               rcnt);
+                              "hfcpci recd f1(%d) f2(%d) z1(%x) z2(%x) cnt(%d)\n",
+                              df->f1, df->f2,
+                              le16_to_cpu(zp->z1),
+                              le16_to_cpu(zp->z2),
+                              rcnt);
 
                if ((rcnt > MAX_DFRAME_LEN + 3) || (rcnt < 4) ||
                    (df->data[le16_to_cpu(zp->z1)])) {
                        if (dch->debug & DEBUG_HW)
                                printk(KERN_DEBUG
-                                   "empty_fifo hfcpci paket inv. len "
-                                   "%d or crc %d\n",
-                                   rcnt,
-                                   df->data[le16_to_cpu(zp->z1)]);
+                                      "empty_fifo hfcpci paket inv. len "
+                                      "%d or crc %d\n",
+                                      rcnt,
+                                      df->data[le16_to_cpu(zp->z1)]);
 #ifdef ERROR_STATISTIC
                        cs->err_rx++;
 #endif
                        df->f2 = ((df->f2 + 1) & MAX_D_FRAMES) |
-                           (MAX_D_FRAMES + 1); /* next buffer */
+                               (MAX_D_FRAMES + 1);     /* next buffer */
                        df->za[df->f2 & D_FREG_MASK].z2 =
-                           cpu_to_le16((le16_to_cpu(zp->z2) + rcnt) &
-                           (D_FIFO_SIZE - 1));
+                               cpu_to_le16((le16_to_cpu(zp->z2) + rcnt) &
+                                           (D_FIFO_SIZE - 1));
                } else {
                        dch->rx_skb = mI_alloc_skb(rcnt - 3, GFP_ATOMIC);
                        if (!dch->rx_skb) {
                                printk(KERN_WARNING
-                                   "HFC-PCI: D receive out of memory\n");
+                                      "HFC-PCI: D receive out of memory\n");
                                break;
                        }
                        total = rcnt;
@@ -517,10 +517,10 @@ receive_dmsg(struct hfc_pci *hc)
                                maxlen = rcnt;  /* complete transfer */
                        else
                                maxlen = D_FIFO_SIZE - le16_to_cpu(zp->z2);
-                                   /* maximum */
+                       /* maximum */
 
                        ptr1 = df->data + le16_to_cpu(zp->z2);
-                           /* start of data */
+                       /* start of data */
                        memcpy(ptr, ptr1, maxlen);      /* copy data */
                        rcnt -= maxlen;
 
@@ -530,9 +530,9 @@ receive_dmsg(struct hfc_pci *hc)
                                memcpy(ptr, ptr1, rcnt);        /* rest */
                        }
                        df->f2 = ((df->f2 + 1) & MAX_D_FRAMES) |
-                           (MAX_D_FRAMES + 1); /* next buffer */
+                               (MAX_D_FRAMES + 1);     /* next buffer */
                        df->za[df->f2 & D_FREG_MASK].z2 = cpu_to_le16((
-                           le16_to_cpu(zp->z2) + total) & (D_FIFO_SIZE - 1));
+                                                                             le16_to_cpu(zp->z2) + total) & (D_FIFO_SIZE - 1));
                        recv_Dchannel(dch);
                }
        }
@@ -544,9 +544,9 @@ receive_dmsg(struct hfc_pci *hc)
  */
 static void
 hfcpci_empty_fifo_trans(struct bchannel *bch, struct bzfifo *rxbz,
-       struct bzfifo *txbz, u_char *bdata)
+                       struct bzfifo *txbz, u_char *bdata)
 {
-        __le16 *z1r, *z2r, *z1t, *z2t;
+       __le16  *z1r, *z2r, *z1t, *z2t;
        int     new_z2, fcnt_rx, fcnt_tx, maxlen;
        u_char  *ptr, *ptr1;
 
@@ -573,9 +573,9 @@ hfcpci_empty_fifo_trans(struct bchannel *bch, struct bzfifo *rxbz,
        fcnt_tx = le16_to_cpu(*z2t) - le16_to_cpu(*z1t);
        if (fcnt_tx <= 0)
                fcnt_tx += B_FIFO_SIZE;
-                   /* fcnt_tx contains available bytes in tx-fifo */
+       /* fcnt_tx contains available bytes in tx-fifo */
        fcnt_tx = B_FIFO_SIZE - fcnt_tx;
-                   /* remaining bytes to send (bytes in tx-fifo) */
+       /* remaining bytes to send (bytes in tx-fifo) */
 
        bch->rx_skb = mI_alloc_skb(fcnt_rx, GFP_ATOMIC);
        if (bch->rx_skb) {
@@ -584,10 +584,10 @@ hfcpci_empty_fifo_trans(struct bchannel *bch, struct bzfifo *rxbz,
                        maxlen = fcnt_rx;       /* complete transfer */
                else
                        maxlen = B_FIFO_SIZE + B_SUB_VAL - le16_to_cpu(*z2r);
-                           /* maximum */
+               /* maximum */
 
                ptr1 = bdata + (le16_to_cpu(*z2r) - B_SUB_VAL);
-                   /* start of data */
+               /* start of data */
                memcpy(ptr, ptr1, maxlen);      /* copy data */
                fcnt_rx -= maxlen;
 
@@ -632,7 +632,7 @@ Begin:
        if (rxbz->f1 != rxbz->f2) {
                if (bch->debug & DEBUG_HW_BCHANNEL)
                        printk(KERN_DEBUG "hfcpci rec ch(%x) f1(%d) f2(%d)\n",
-                           bch->nr, rxbz->f1, rxbz->f2);
+                              bch->nr, rxbz->f1, rxbz->f2);
                zp = &rxbz->za[rxbz->f2];
 
                rcnt = le16_to_cpu(zp->z1) - le16_to_cpu(zp->z2);
@@ -641,9 +641,9 @@ Begin:
                rcnt++;
                if (bch->debug & DEBUG_HW_BCHANNEL)
                        printk(KERN_DEBUG
-                           "hfcpci rec ch(%x) z1(%x) z2(%x) cnt(%d)\n",
-                           bch->nr, le16_to_cpu(zp->z1),
-                           le16_to_cpu(zp->z2), rcnt);
+                              "hfcpci rec ch(%x) z1(%x) z2(%x) cnt(%d)\n",
+                              bch->nr, le16_to_cpu(zp->z1),
+                              le16_to_cpu(zp->z2), rcnt);
                hfcpci_empty_bfifo(bch, rxbz, bdata, rcnt);
                rcnt = rxbz->f1 - rxbz->f2;
                if (rcnt < 0)
@@ -691,15 +691,15 @@ hfcpci_fill_dfifo(struct hfc_pci *hc)
 
        if (dch->debug & DEBUG_HW_DFIFO)
                printk(KERN_DEBUG "%s:f1(%d) f2(%d) z1(f1)(%x)\n", __func__,
-                   df->f1, df->f2,
-                   le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1));
+                      df->f1, df->f2,
+                      le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1));
        fcnt = df->f1 - df->f2; /* frame count actually buffered */
        if (fcnt < 0)
                fcnt += (MAX_D_FRAMES + 1);     /* if wrap around */
        if (fcnt > (MAX_D_FRAMES - 1)) {
                if (dch->debug & DEBUG_HW_DCHANNEL)
                        printk(KERN_DEBUG
-                           "hfcpci_fill_Dfifo more as 14 frames\n");
+                              "hfcpci_fill_Dfifo more as 14 frames\n");
 #ifdef ERROR_STATISTIC
                cs->err_tx++;
 #endif
@@ -707,25 +707,25 @@ hfcpci_fill_dfifo(struct hfc_pci *hc)
        }
        /* now determine free bytes in FIFO buffer */
        maxlen = le16_to_cpu(df->za[df->f2 & D_FREG_MASK].z2) -
-           le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1) - 1;
+               le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1) - 1;
        if (maxlen <= 0)
                maxlen += D_FIFO_SIZE;  /* count now contains available bytes */
 
        if (dch->debug & DEBUG_HW_DCHANNEL)
                printk(KERN_DEBUG "hfcpci_fill_Dfifo count(%d/%d)\n",
-                       count, maxlen);
+                      count, maxlen);
        if (count > maxlen) {
                if (dch->debug & DEBUG_HW_DCHANNEL)
                        printk(KERN_DEBUG "hfcpci_fill_Dfifo no fifo mem\n");
                return;
        }
        new_z1 = (le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1) + count) &
-           (D_FIFO_SIZE - 1);
+               (D_FIFO_SIZE - 1);
        new_f1 = ((df->f1 + 1) & D_FREG_MASK) | (D_FREG_MASK + 1);
        src = dch->tx_skb->data + dch->tx_idx;  /* source pointer */
        dst = df->data + le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1);
        maxlen = D_FIFO_SIZE - le16_to_cpu(df->za[df->f1 & D_FREG_MASK].z1);
-           /* end fifo */
+       /* end fifo */
        if (maxlen > count)
                maxlen = count; /* limit size */
        memcpy(dst, src, maxlen);       /* first copy */
@@ -737,9 +737,9 @@ hfcpci_fill_dfifo(struct hfc_pci *hc)
                memcpy(dst, src, count);
        }
        df->za[new_f1 & D_FREG_MASK].z1 = cpu_to_le16(new_z1);
-           /* for next buffer */
+       /* for next buffer */
        df->za[df->f1 & D_FREG_MASK].z1 = cpu_to_le16(new_z1);
-           /* new pos actual buffer */
+       /* new pos actual buffer */
        df->f1 = new_f1;        /* next frame */
        dch->tx_idx = dch->tx_skb->len;
 }
@@ -750,7 +750,7 @@ hfcpci_fill_dfifo(struct hfc_pci *hc)
 static void
 hfcpci_fill_fifo(struct bchannel *bch)
 {
-       struct hfc_pci  *hc = bch->hw;
+       struct hfc_pci  *hc = bch->hw;
        int             maxlen, fcnt;
        int             count, new_z1;
        struct bzfifo   *bz;
@@ -776,35 +776,35 @@ hfcpci_fill_fifo(struct bchannel *bch)
                z2t = z1t + 1;
                if (bch->debug & DEBUG_HW_BCHANNEL)
                        printk(KERN_DEBUG "hfcpci_fill_fifo_trans ch(%x) "
-                           "cnt(%d) z1(%x) z2(%x)\n", bch->nr, count,
-                           le16_to_cpu(*z1t), le16_to_cpu(*z2t));
+                              "cnt(%d) z1(%x) z2(%x)\n", bch->nr, count,
+                              le16_to_cpu(*z1t), le16_to_cpu(*z2t));
                fcnt = le16_to_cpu(*z2t) - le16_to_cpu(*z1t);
                if (fcnt <= 0)
                        fcnt += B_FIFO_SIZE;
-                           /* fcnt contains available bytes in fifo */
+               /* fcnt contains available bytes in fifo */
                fcnt = B_FIFO_SIZE - fcnt;
-                   /* remaining bytes to send (bytes in fifo) */
+               /* remaining bytes to send (bytes in fifo) */
 
                /* "fill fifo if empty" feature */
                if (test_bit(FLG_FILLEMPTY, &bch->Flags) && !fcnt) {
                        /* printk(KERN_DEBUG "%s: buffer empty, so we have "
-                               "underrun\n", __func__); */
+                          "underrun\n", __func__); */
                        /* fill buffer, to prevent future underrun */
                        count = HFCPCI_FILLEMPTY;
                        new_z1 = le16_to_cpu(*z1t) + count;
-                          /* new buffer Position */
+                       /* new buffer Position */
                        if (new_z1 >= (B_FIFO_SIZE + B_SUB_VAL))
                                new_z1 -= B_FIFO_SIZE;  /* buffer wrap */
                        dst = bdata + (le16_to_cpu(*z1t) - B_SUB_VAL);
                        maxlen = (B_FIFO_SIZE + B_SUB_VAL) - le16_to_cpu(*z1t);
-                           /* end of fifo */
+                       /* end of fifo */
                        if (bch->debug & DEBUG_HW_BFIFO)
                                printk(KERN_DEBUG "hfcpci_FFt fillempty "
-                                   "fcnt(%d) maxl(%d) nz1(%x) dst(%p)\n",
-                                   fcnt, maxlen, new_z1, dst);
+                                      "fcnt(%d) maxl(%d) nz1(%x) dst(%p)\n",
+                                      fcnt, maxlen, new_z1, dst);
                        fcnt += count;
                        if (maxlen > count)
-                               maxlen = count;         /* limit size */
+                               maxlen = count;         /* limit size */
                        memset(dst, 0x2a, maxlen);      /* first copy */
                        count -= maxlen;                /* remaining bytes */
                        if (count) {
@@ -814,7 +814,7 @@ hfcpci_fill_fifo(struct bchannel *bch)
                        *z1t = cpu_to_le16(new_z1);     /* now send data */
                }
 
-next_t_frame:
+       next_t_frame:
                count = bch->tx_skb->len - bch->tx_idx;
                /* maximum fill shall be poll*2 */
                if (count > (poll << 1) - fcnt)
@@ -823,18 +823,18 @@ next_t_frame:
                        return;
                /* data is suitable for fifo */
                new_z1 = le16_to_cpu(*z1t) + count;
-                   /* new buffer Position */
+               /* new buffer Position */
                if (new_z1 >= (B_FIFO_SIZE + B_SUB_VAL))
                        new_z1 -= B_FIFO_SIZE;  /* buffer wrap */
                src = bch->tx_skb->data + bch->tx_idx;
-                   /* source pointer */
+               /* source pointer */
                dst = bdata + (le16_to_cpu(*z1t) - B_SUB_VAL);
                maxlen = (B_FIFO_SIZE + B_SUB_VAL) - le16_to_cpu(*z1t);
-                   /* end of fifo */
+               /* end of fifo */
                if (bch->debug & DEBUG_HW_BFIFO)
                        printk(KERN_DEBUG "hfcpci_FFt fcnt(%d) "
-                           "maxl(%d) nz1(%x) dst(%p)\n",
-                           fcnt, maxlen, new_z1, dst);
+                              "maxl(%d) nz1(%x) dst(%p)\n",
+                              fcnt, maxlen, new_z1, dst);
                fcnt += count;
                bch->tx_idx += count;
                if (maxlen > count)
@@ -859,27 +859,27 @@ next_t_frame:
        }
        if (bch->debug & DEBUG_HW_BCHANNEL)
                printk(KERN_DEBUG
-                   "%s: ch(%x) f1(%d) f2(%d) z1(f1)(%x)\n",
-                   __func__, bch->nr, bz->f1, bz->f2,
-                   bz->za[bz->f1].z1);
+                      "%s: ch(%x) f1(%d) f2(%d) z1(f1)(%x)\n",
+                      __func__, bch->nr, bz->f1, bz->f2,
+                      bz->za[bz->f1].z1);
        fcnt = bz->f1 - bz->f2; /* frame count actually buffered */
        if (fcnt < 0)
                fcnt += (MAX_B_FRAMES + 1);     /* if wrap around */
        if (fcnt > (MAX_B_FRAMES - 1)) {
                if (bch->debug & DEBUG_HW_BCHANNEL)
                        printk(KERN_DEBUG
-                           "hfcpci_fill_Bfifo more as 14 frames\n");
+                              "hfcpci_fill_Bfifo more as 14 frames\n");
                return;
        }
        /* now determine free bytes in FIFO buffer */
        maxlen = le16_to_cpu(bz->za[bz->f2].z2) -
-           le16_to_cpu(bz->za[bz->f1].z1) - 1;
+               le16_to_cpu(bz->za[bz->f1].z1) - 1;
        if (maxlen <= 0)
                maxlen += B_FIFO_SIZE;  /* count now contains available bytes */
 
        if (bch->debug & DEBUG_HW_BCHANNEL)
                printk(KERN_DEBUG "hfcpci_fill_fifo ch(%x) count(%d/%d)\n",
-                       bch->nr, count, maxlen);
+                      bch->nr, count, maxlen);
 
        if (maxlen < count) {
                if (bch->debug & DEBUG_HW_BCHANNEL)
@@ -887,7 +887,7 @@ next_t_frame:
                return;
        }
        new_z1 = le16_to_cpu(bz->za[bz->f1].z1) + count;
-           /* new buffer Position */
+       /* new buffer Position */
        if (new_z1 >= (B_FIFO_SIZE + B_SUB_VAL))
                new_z1 -= B_FIFO_SIZE;  /* buffer wrap */
 
@@ -895,7 +895,7 @@ next_t_frame:
        src = bch->tx_skb->data + bch->tx_idx;  /* source pointer */
        dst = bdata + (le16_to_cpu(bz->za[bz->f1].z1) - B_SUB_VAL);
        maxlen = (B_FIFO_SIZE + B_SUB_VAL) - le16_to_cpu(bz->za[bz->f1].z1);
-           /* end fifo */
+       /* end fifo */
        if (maxlen > count)
                maxlen = count; /* limit size */
        memcpy(dst, src, maxlen);       /* first copy */
@@ -923,7 +923,7 @@ ph_state_te(struct dchannel *dch)
 {
        if (dch->debug)
                printk(KERN_DEBUG "%s: TE newstate %x\n",
-                       __func__, dch->state);
+                      __func__, dch->state);
        switch (dch->state) {
        case 0:
                l1_event(dch->l1, HW_RESET_IND);
@@ -961,7 +961,7 @@ handle_nt_timer3(struct dchannel *dch) {
                hc->hw.mst_m |= HFCPCI_MASTER;
        Write_hfc(hc, HFCPCI_MST_MODE, hc->hw.mst_m);
        _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
-           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
 }
 
 static void
@@ -971,7 +971,7 @@ ph_state_nt(struct dchannel *dch)
 
        if (dch->debug)
                printk(KERN_DEBUG "%s: NT newstate %x\n",
-                       __func__, dch->state);
+                      __func__, dch->state);
        switch (dch->state) {
        case 2:
                if (hc->hw.nt_timer < 0) {
@@ -993,7 +993,7 @@ ph_state_nt(struct dchannel *dch)
                        hc->hw.ctmt &= ~HFCPCI_AUTO_TIMER;
                        hc->hw.ctmt |= HFCPCI_TIM3_125;
                        Write_hfc(hc, HFCPCI_CTMT, hc->hw.ctmt |
-                               HFCPCI_CLTIMER);
+                                 HFCPCI_CLTIMER);
                        test_and_clear_bit(FLG_HFC_TIMER_T3, &dch->Flags);
                        test_and_set_bit(FLG_HFC_TIMER_T1, &dch->Flags);
                        /* allow G2 -> G3 transition */
@@ -1013,7 +1013,7 @@ ph_state_nt(struct dchannel *dch)
                Write_hfc(hc, HFCPCI_MST_MODE, hc->hw.mst_m);
                test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
                _queue_data(&dch->dev.D, PH_DEACTIVATE_IND,
-                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                break;
        case 4:
                hc->hw.nt_timer = 0;
@@ -1025,7 +1025,7 @@ ph_state_nt(struct dchannel *dch)
        case 3:
                if (!test_and_set_bit(FLG_HFC_TIMER_T3, &dch->Flags)) {
                        if (!test_and_clear_bit(FLG_L2_ACTIVATED,
-                           &dch->Flags)) {
+                                               &dch->Flags)) {
                                handle_nt_timer3(dch);
                                break;
                        }
@@ -1036,7 +1036,7 @@ ph_state_nt(struct dchannel *dch)
                        hc->hw.ctmt &= ~HFCPCI_AUTO_TIMER;
                        hc->hw.ctmt |= HFCPCI_TIM3_125;
                        Write_hfc(hc, HFCPCI_CTMT, hc->hw.ctmt |
-                               HFCPCI_CLTIMER);
+                                 HFCPCI_CLTIMER);
                }
                break;
        }
@@ -1081,7 +1081,7 @@ hfc_l1callback(struct dchannel *dch, u_int cmd)
                        hc->hw.mst_m |= HFCPCI_MASTER;
                Write_hfc(hc, HFCPCI_MST_MODE, hc->hw.mst_m);
                Write_hfc(hc, HFCPCI_STATES, HFCPCI_ACTIVATE |
-                  HFCPCI_DO_ACTION);
+                         HFCPCI_DO_ACTION);
                l1_event(dch->l1, HW_POWERUP_IND);
                break;
        case HW_DEACT_REQ:
@@ -1107,17 +1107,17 @@ hfc_l1callback(struct dchannel *dch, u_int cmd)
        case PH_ACTIVATE_IND:
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        case PH_DEACTIVATE_IND:
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: unknown command %x\n",
-                           __func__, cmd);
+                              __func__, cmd);
                return -1;
        }
        return 0;
@@ -1170,7 +1170,7 @@ hfcpci_int(int intno, void *dev_id)
                val = Read_hfc(hc, HFCPCI_INT_S1);
                if (hc->dch.debug & DEBUG_HW_DCHANNEL)
                        printk(KERN_DEBUG
-                           "HFC-PCI: stat(%02x) s1(%02x)\n", stat, val);
+                              "HFC-PCI: stat(%02x) s1(%02x)\n", stat, val);
        } else {
                /* shared */
                spin_unlock(&hc->lock);
@@ -1185,7 +1185,7 @@ hfcpci_int(int intno, void *dev_id)
                exval = Read_hfc(hc, HFCPCI_STATES) & 0xf;
                if (hc->dch.debug & DEBUG_HW_DCHANNEL)
                        printk(KERN_DEBUG "ph_state chg %d->%d\n",
-                               hc->dch.state, exval);
+                              hc->dch.state, exval);
                hc->dch.state = exval;
                schedule_event(&hc->dch, FLG_PHCHANGE);
                val &= ~0x40;
@@ -1198,7 +1198,7 @@ hfcpci_int(int intno, void *dev_id)
                val &= ~0x80;
                Write_hfc(hc, HFCPCI_CTMT, hc->hw.ctmt | HFCPCI_CLTIMER);
        }
-       if (val & 0x08) {       /* B1 rx */
+       if (val & 0x08) {       /* B1 rx */
                bch = Sel_BCS(hc, hc->hw.bswapped ? 2 : 1);
                if (bch)
                        main_rec_hfcpci(bch);
@@ -1257,22 +1257,22 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
 
        if (bch->debug & DEBUG_HW_BCHANNEL)
                printk(KERN_DEBUG
-                   "HFCPCI bchannel protocol %x-->%x ch %x-->%x\n",
-                   bch->state, protocol, bch->nr, bc);
+                      "HFCPCI bchannel protocol %x-->%x ch %x-->%x\n",
+                      bch->state, protocol, bch->nr, bc);
 
        fifo2 = bc;
-       pcm_mode = (bc>>24) & 0xff;
+       pcm_mode = (bc >> 24) & 0xff;
        if (pcm_mode) { /* PCM SLOT USE */
                if (!test_bit(HFC_CFG_PCM, &hc->cfg))
                        printk(KERN_WARNING
-                           "%s: pcm channel id without HFC_CFG_PCM\n",
-                           __func__);
-               rx_slot = (bc>>8) & 0xff;
-               tx_slot = (bc>>16) & 0xff;
+                              "%s: pcm channel id without HFC_CFG_PCM\n",
+                              __func__);
+               rx_slot = (bc >> 8) & 0xff;
+               tx_slot = (bc >> 16) & 0xff;
                bc = bc & 0xff;
        } else if (test_bit(HFC_CFG_PCM, &hc->cfg) && (protocol > ISDN_P_NONE))
                printk(KERN_WARNING "%s: no pcm channel id but HFC_CFG_PCM\n",
-                   __func__);
+                      __func__);
        if (hc->chanlimit > 1) {
                hc->hw.bswapped = 0;    /* B1 and B2 normal mode */
                hc->hw.sctrl_e &= ~0x80;
@@ -1308,11 +1308,11 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
                if (fifo2 & 2) {
                        hc->hw.fifo_en &= ~HFCPCI_FIFOEN_B2;
                        hc->hw.int_m1 &= ~(HFCPCI_INTS_B2TRANS +
-                               HFCPCI_INTS_B2REC);
+                                          HFCPCI_INTS_B2REC);
                } else {
                        hc->hw.fifo_en &= ~HFCPCI_FIFOEN_B1;
                        hc->hw.int_m1 &= ~(HFCPCI_INTS_B1TRANS +
-                               HFCPCI_INTS_B1REC);
+                                          HFCPCI_INTS_B1REC);
                }
 #ifdef REVERSE_BITORDER
                if (bch->nr & 2)
@@ -1347,14 +1347,14 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
                        hc->hw.fifo_en |= HFCPCI_FIFOEN_B2;
                        if (!tics)
                                hc->hw.int_m1 |= (HFCPCI_INTS_B2TRANS +
-                                   HFCPCI_INTS_B2REC);
+                                                 HFCPCI_INTS_B2REC);
                        hc->hw.ctmt |= 2;
                        hc->hw.conn &= ~0x18;
                } else {
                        hc->hw.fifo_en |= HFCPCI_FIFOEN_B1;
                        if (!tics)
                                hc->hw.int_m1 |= (HFCPCI_INTS_B1TRANS +
-                                   HFCPCI_INTS_B1REC);
+                                                 HFCPCI_INTS_B1REC);
                        hc->hw.ctmt |= 1;
                        hc->hw.conn &= ~0x03;
                }
@@ -1376,14 +1376,14 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
                        hc->hw.last_bfifo_cnt[1] = 0;
                        hc->hw.fifo_en |= HFCPCI_FIFOEN_B2;
                        hc->hw.int_m1 |= (HFCPCI_INTS_B2TRANS +
-                           HFCPCI_INTS_B2REC);
+                                         HFCPCI_INTS_B2REC);
                        hc->hw.ctmt &= ~2;
                        hc->hw.conn &= ~0x18;
                } else {
                        hc->hw.last_bfifo_cnt[0] = 0;
                        hc->hw.fifo_en |= HFCPCI_FIFOEN_B1;
                        hc->hw.int_m1 |= (HFCPCI_INTS_B1TRANS +
-                           HFCPCI_INTS_B1REC);
+                                         HFCPCI_INTS_B1REC);
                        hc->hw.ctmt &= ~1;
                        hc->hw.conn &= ~0x03;
                }
@@ -1395,7 +1395,7 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
        }
        if (test_bit(HFC_CFG_PCM, &hc->cfg)) {
                if ((protocol == ISDN_P_NONE) ||
-                       (protocol == -1)) {     /* init case */
+                   (protocol == -1)) { /* init case */
                        rx_slot = 0;
                        tx_slot = 0;
                } else {
@@ -1411,18 +1411,18 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
                        hc->hw.conn &= 0xc7;
                        hc->hw.conn |= 0x08;
                        printk(KERN_DEBUG "%s: Write_hfc: B2_SSL 0x%x\n",
-                               __func__, tx_slot);
+                              __func__, tx_slot);
                        printk(KERN_DEBUG "%s: Write_hfc: B2_RSL 0x%x\n",
-                               __func__, rx_slot);
+                              __func__, rx_slot);
                        Write_hfc(hc, HFCPCI_B2_SSL, tx_slot);
                        Write_hfc(hc, HFCPCI_B2_RSL, rx_slot);
                } else {
                        hc->hw.conn &= 0xf8;
                        hc->hw.conn |= 0x01;
                        printk(KERN_DEBUG "%s: Write_hfc: B1_SSL 0x%x\n",
-                               __func__, tx_slot);
+                              __func__, tx_slot);
                        printk(KERN_DEBUG "%s: Write_hfc: B1_RSL 0x%x\n",
-                               __func__, rx_slot);
+                              __func__, rx_slot);
                        Write_hfc(hc, HFCPCI_B1_SSL, tx_slot);
                        Write_hfc(hc, HFCPCI_B1_RSL, rx_slot);
                }
@@ -1447,12 +1447,12 @@ set_hfcpci_rxtest(struct bchannel *bch, int protocol, int chan)
 
        if (bch->debug & DEBUG_HW_BCHANNEL)
                printk(KERN_DEBUG
-                   "HFCPCI bchannel test rx protocol %x-->%x ch %x-->%x\n",
-                   bch->state, protocol, bch->nr, chan);
+                      "HFCPCI bchannel test rx protocol %x-->%x ch %x-->%x\n",
+                      bch->state, protocol, bch->nr, chan);
        if (bch->nr != chan) {
                printk(KERN_DEBUG
-                   "HFCPCI rxtest wrong channel parameter %x/%x\n",
-                   bch->nr, chan);
+                      "HFCPCI rxtest wrong channel parameter %x/%x\n",
+                      bch->nr, chan);
                return -EINVAL;
        }
        switch (protocol) {
@@ -1543,7 +1543,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
                test_and_set_bit(FLG_FILLEMPTY, &bch->Flags);
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_DEBUG "%s: FILL_EMPTY request (nr=%d "
-                               "off=%d)\n", __func__, bch->nr, !!cq->p1);
+                              "off=%d)\n", __func__, bch->nr, !!cq->p1);
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n", __func__, cq->op);
@@ -1593,7 +1593,7 @@ hfc_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                break;
        default:
                printk(KERN_WARNING "%s: unknown prim(%x)\n",
-                       __func__, cmd);
+                      __func__, cmd);
        }
        return ret;
 }
@@ -1635,12 +1635,12 @@ hfcpci_l2l1D(struct mISDNchannel *ch, struct sk_buff *skb)
                        if (test_bit(FLG_ACTIVE, &dch->Flags)) {
                                spin_unlock_irqrestore(&hc->lock, flags);
                                _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
-                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                                break;
                        }
                        test_and_set_bit(FLG_L2_ACTIVATED, &dch->Flags);
                        Write_hfc(hc, HFCPCI_STATES, HFCPCI_ACTIVATE |
-                           HFCPCI_DO_ACTION | 1);
+                                 HFCPCI_DO_ACTION | 1);
                } else
                        ret = l1_event(dch->l1, hh->prim);
                spin_unlock_irqrestore(&hc->lock, flags);
@@ -1718,12 +1718,12 @@ hfcpci_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(&hc->lock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                               NULL, GFP_KERNEL);
+                                   NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                deactivate_bchannel(bch);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
                ret = 0;
                break;
        }
@@ -1763,7 +1763,7 @@ init_card(struct hfc_pci *hc)
        spin_unlock_irqrestore(&hc->lock, flags);
        if (request_irq(hc->irq, hfcpci_int, IRQF_SHARED, "HFC PCI", hc)) {
                printk(KERN_WARNING
-                   "mISDN: couldn't get interrupt %d\n", hc->irq);
+                      "mISDN: couldn't get interrupt %d\n", hc->irq);
                return -EIO;
        }
        spin_lock_irqsave(&hc->lock, flags);
@@ -1779,9 +1779,9 @@ init_card(struct hfc_pci *hc)
                spin_unlock_irqrestore(&hc->lock, flags);
                /* Timeout 80ms */
                current->state = TASK_UNINTERRUPTIBLE;
-               schedule_timeout((80*HZ)/1000);
+               schedule_timeout((80 * HZ) / 1000);
                printk(KERN_INFO "HFC PCI: IRQ %d count %d\n",
-                       hc->irq, hc->irqcnt);
+                      hc->irq, hc->irqcnt);
                /* now switch timer interrupt off */
                spin_lock_irqsave(&hc->lock, flags);
                hc->hw.int_m1 &= ~HFCPCI_INTS_TIMER;
@@ -1790,8 +1790,8 @@ init_card(struct hfc_pci *hc)
                Write_hfc(hc, HFCPCI_MST_MODE, hc->hw.mst_m);
                if (!hc->irqcnt) {
                        printk(KERN_WARNING
-                           "HFC PCI: IRQ(%d) getting no interrupts "
-                           "during init %d\n", hc->irq, 4 - cnt);
+                              "HFC PCI: IRQ(%d) getting no interrupts "
+                              "during init %d\n", hc->irq, 4 - cnt);
                        if (cnt == 1)
                                break;
                        else {
@@ -1819,7 +1819,7 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
        switch (cq->op) {
        case MISDN_CTRL_GETOP:
                cq->op = MISDN_CTRL_LOOP | MISDN_CTRL_CONNECT |
-                   MISDN_CTRL_DISCONNECT;
+                       MISDN_CTRL_DISCONNECT;
                break;
        case MISDN_CTRL_LOOP:
                /* channel 0 disabled loop */
@@ -1833,7 +1833,7 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
                        else
                                slot = 0x80;
                        printk(KERN_DEBUG "%s: Write_hfc: B1_SSL/RSL 0x%x\n",
-                           __func__, slot);
+                              __func__, slot);
                        Write_hfc(hc, HFCPCI_B1_SSL, slot);
                        Write_hfc(hc, HFCPCI_B1_RSL, slot);
                        hc->hw.conn = (hc->hw.conn & ~7) | 6;
@@ -1845,7 +1845,7 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
                        else
                                slot = 0x81;
                        printk(KERN_DEBUG "%s: Write_hfc: B2_SSL/RSL 0x%x\n",
-                           __func__, slot);
+                              __func__, slot);
                        Write_hfc(hc, HFCPCI_B2_SSL, slot);
                        Write_hfc(hc, HFCPCI_B2_RSL, slot);
                        hc->hw.conn = (hc->hw.conn & ~0x38) | 0x30;
@@ -1875,7 +1875,7 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
                else
                        slot = 0x80;
                printk(KERN_DEBUG "%s: Write_hfc: B1_SSL/RSL 0x%x\n",
-                   __func__, slot);
+                      __func__, slot);
                Write_hfc(hc, HFCPCI_B1_SSL, slot);
                Write_hfc(hc, HFCPCI_B2_RSL, slot);
                if (test_bit(HFC_CFG_SW_DD_DU, &hc->cfg))
@@ -1883,7 +1883,7 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
                else
                        slot = 0x81;
                printk(KERN_DEBUG "%s: Write_hfc: B2_SSL/RSL 0x%x\n",
-                   __func__, slot);
+                      __func__, slot);
                Write_hfc(hc, HFCPCI_B2_SSL, slot);
                Write_hfc(hc, HFCPCI_B1_RSL, slot);
                hc->hw.conn = (hc->hw.conn & ~0x3f) | 0x36;
@@ -1898,7 +1898,7 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n",
-                   __func__, cq->op);
+                      __func__, cq->op);
                ret = -EINVAL;
                break;
        }
@@ -1907,13 +1907,13 @@ channel_ctrl(struct hfc_pci *hc, struct mISDN_ctrl_req *cq)
 
 static int
 open_dchannel(struct hfc_pci *hc, struct mISDNchannel *ch,
-    struct channel_req *rq)
+             struct channel_req *rq)
 {
        int err = 0;
 
        if (debug & DEBUG_HW_OPEN)
                printk(KERN_DEBUG "%s: dev(%d) open from %p\n", __func__,
-                   hc->dch.dev.id, __builtin_return_address(0));
+                      hc->dch.dev.id, __builtin_return_address(0));
        if (rq->protocol == ISDN_P_NONE)
                return -EINVAL;
        if (rq->adr.channel == 1) {
@@ -1949,7 +1949,7 @@ open_dchannel(struct hfc_pci *hc, struct mISDNchannel *ch,
        if (((ch->protocol == ISDN_P_NT_S0) && (hc->dch.state == 3)) ||
            ((ch->protocol == ISDN_P_TE_S0) && (hc->dch.state == 7))) {
                _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                   0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
        }
        rq->ch = ch;
        if (!try_module_get(THIS_MODULE))
@@ -1991,7 +1991,7 @@ hfc_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
        if (dch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: cmd:%x %p\n",
-                   __func__, cmd, arg);
+                      __func__, cmd, arg);
        switch (cmd) {
        case OPEN_CHANNEL:
                rq = arg;
@@ -2004,8 +2004,8 @@ hfc_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        case CLOSE_CHANNEL:
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_DEBUG "%s: dev(%d) close from %p\n",
-                           __func__, hc->dch.dev.id,
-                           __builtin_return_address(0));
+                              __func__, hc->dch.dev.id,
+                              __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -2014,7 +2014,7 @@ hfc_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: unknown command %x\n",
-                           __func__, cmd);
+                              __func__, cmd);
                return -EINVAL;
        }
        return err;
@@ -2047,16 +2047,16 @@ setup_hw(struct hfc_pci *hc)
        /* We silently assume the address is okay if nonzero */
        if (!buffer) {
                printk(KERN_WARNING
-                   "HFC-PCI: Error allocating memory for FIFO!\n");
+                      "HFC-PCI: Error allocating memory for FIFO!\n");
                return 1;
        }
        hc->hw.fifos = buffer;
        pci_write_config_dword(hc->pdev, 0x80, hc->hw.dmahandle);
        hc->hw.pci_io = ioremap((ulong) hc->hw.pci_io, 256);
        printk(KERN_INFO
-               "HFC-PCI: defined at mem %#lx fifo %#lx(%#lx) IRQ %d HZ %d\n",
-               (u_long) hc->hw.pci_io, (u_long) hc->hw.fifos,
-               (u_long) hc->hw.dmahandle, hc->irq, HZ);
+              "HFC-PCI: defined at mem %#lx fifo %#lx(%#lx) IRQ %d HZ %d\n",
+              (u_long) hc->hw.pci_io, (u_long) hc->hw.fifos,
+              (u_long) hc->hw.dmahandle, hc->irq, HZ);
        /* enable memory mapped ports, disable busmaster */
        pci_write_config_word(hc->pdev, PCI_COMMAND, PCI_ENA_MEMIO);
        hc->hw.int_m2 = 0;
@@ -2113,7 +2113,7 @@ setup_card(struct hfc_pci *card)
        card->dch.hw = card;
        card->dch.dev.Dprotocols = (1 << ISDN_P_TE_S0) | (1 << ISDN_P_NT_S0);
        card->dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
-           (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
+               (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
        card->dch.dev.D.send = hfcpci_l2l1D;
        card->dch.dev.D.ctrl = hfc_dctrl;
        card->dch.dev.nrbchan = 2;
@@ -2174,13 +2174,13 @@ static const struct _hfc_map hfc_map[] =
        {HFC_ANIGMA_MC145575, 0, "Motorola MC145575"},
        {HFC_ZOLTRIX_2BD0, 0, "Zoltrix 2BD0"},
        {HFC_DIGI_DF_M_IOM2_E, 0,
-           "Digi International DataFire Micro V IOM2 (Europe)"},
+        "Digi International DataFire Micro V IOM2 (Europe)"},
        {HFC_DIGI_DF_M_E, 0,
-           "Digi International DataFire Micro V (Europe)"},
+        "Digi International DataFire Micro V (Europe)"},
        {HFC_DIGI_DF_M_IOM2_A, 0,
-           "Digi International DataFire Micro V IOM2 (North America)"},
+        "Digi International DataFire Micro V IOM2 (North America)"},
        {HFC_DIGI_DF_M_A, 0,
-           "Digi International DataFire Micro V (North America)"},
+        "Digi International DataFire Micro V (North America)"},
        {HFC_SITECOM_DC105V2, 0, "Sitecom Connectivity DC-105 ISDN TA"},
        {},
 };
@@ -2188,51 +2188,51 @@ static const struct _hfc_map hfc_map[] =
 static struct pci_device_id hfc_ids[] =
 {
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_2BD0),
-               (unsigned long) &hfc_map[0] },
+         (unsigned long) &hfc_map[0] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B000),
-               (unsigned long) &hfc_map[1] },
+         (unsigned long) &hfc_map[1] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B006),
-               (unsigned long) &hfc_map[2] },
+         (unsigned long) &hfc_map[2] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B007),
-               (unsigned long) &hfc_map[3] },
+         (unsigned long) &hfc_map[3] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B008),
-               (unsigned long) &hfc_map[4] },
+         (unsigned long) &hfc_map[4] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B009),
-               (unsigned long) &hfc_map[5] },
+         (unsigned long) &hfc_map[5] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B00A),
-               (unsigned long) &hfc_map[6] },
+         (unsigned long) &hfc_map[6] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B00B),
-               (unsigned long) &hfc_map[7] },
+         (unsigned long) &hfc_map[7] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B00C),
-               (unsigned long) &hfc_map[8] },
+         (unsigned long) &hfc_map[8] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B100),
-               (unsigned long) &hfc_map[9] },
+         (unsigned long) &hfc_map[9] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B700),
-               (unsigned long) &hfc_map[10] },
+         (unsigned long) &hfc_map[10] },
        { PCI_VDEVICE(CCD, PCI_DEVICE_ID_CCD_B701),
-               (unsigned long) &hfc_map[11] },
+         (unsigned long) &hfc_map[11] },
        { PCI_VDEVICE(ABOCOM, PCI_DEVICE_ID_ABOCOM_2BD1),
-               (unsigned long) &hfc_map[12] },
+         (unsigned long) &hfc_map[12] },
        { PCI_VDEVICE(ASUSTEK, PCI_DEVICE_ID_ASUSTEK_0675),
-               (unsigned long) &hfc_map[13] },
+         (unsigned long) &hfc_map[13] },
        { PCI_VDEVICE(BERKOM, PCI_DEVICE_ID_BERKOM_T_CONCEPT),
-               (unsigned long) &hfc_map[14] },
+         (unsigned long) &hfc_map[14] },
        { PCI_VDEVICE(BERKOM, PCI_DEVICE_ID_BERKOM_A1T),
-               (unsigned long) &hfc_map[15] },
+         (unsigned long) &hfc_map[15] },
        { PCI_VDEVICE(ANIGMA, PCI_DEVICE_ID_ANIGMA_MC145575),
-               (unsigned long) &hfc_map[16] },
+         (unsigned long) &hfc_map[16] },
        { PCI_VDEVICE(ZOLTRIX, PCI_DEVICE_ID_ZOLTRIX_2BD0),
-               (unsigned long) &hfc_map[17] },
+         (unsigned long) &hfc_map[17] },
        { PCI_VDEVICE(DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_E),
-               (unsigned long) &hfc_map[18] },
+         (unsigned long) &hfc_map[18] },
        { PCI_VDEVICE(DIGI, PCI_DEVICE_ID_DIGI_DF_M_E),
-               (unsigned long) &hfc_map[19] },
+         (unsigned long) &hfc_map[19] },
        { PCI_VDEVICE(DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_A),
-               (unsigned long) &hfc_map[20] },
+         (unsigned long) &hfc_map[20] },
        { PCI_VDEVICE(DIGI, PCI_DEVICE_ID_DIGI_DF_M_A),
-               (unsigned long) &hfc_map[21] },
+         (unsigned long) &hfc_map[21] },
        { PCI_VDEVICE(SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2),
-               (unsigned long) &hfc_map[22] },
+         (unsigned long) &hfc_map[22] },
        {},
 };
 
@@ -2277,7 +2277,7 @@ hfc_remove_pci(struct pci_dev *pdev)
        else
                if (debug)
                        printk(KERN_DEBUG "%s: drvdata already removed\n",
-                           __func__);
+                              __func__);
 }
 
 
@@ -2317,7 +2317,7 @@ static void
 hfcpci_softirq(void *arg)
 {
        (void) driver_for_each_device(&hfc_driver.driver, NULL, arg,
-                                       _hfcpci_softirq);
+                                     _hfcpci_softirq);
 
        /* if next event would be in the past ... */
        if ((s32)(hfc_jiffies + tics - jiffies) <= 0)
@@ -2343,14 +2343,14 @@ HFC_init(void)
                poll = (tics * 8000) / HZ;
                if (poll > 256 || poll < 8) {
                        printk(KERN_ERR "%s: Wrong poll value %d not in range "
-                               "of 8..256.\n", __func__, poll);
+                              "of 8..256.\n", __func__, poll);
                        err = -EINVAL;
                        return err;
                }
        }
        if (poll != HFCPCI_BTRANS_THRESHOLD) {
                printk(KERN_INFO "%s: Using alternative poll value of %d\n",
-                       __func__, poll);
+                      __func__, poll);
                hfc_tl.function = (void *)hfcpci_softirq;
                hfc_tl.data = 0;
                init_timer(&hfc_tl);
index 43b4d29..6023387 100644 (file)
@@ -75,9 +75,9 @@ ctrl_start_transfer(struct hfcsusb *hw)
                hw->ctrl_urb->transfer_buffer = NULL;
                hw->ctrl_urb->transfer_buffer_length = 0;
                hw->ctrl_write.wIndex =
-                   cpu_to_le16(hw->ctrl_buff[hw->ctrl_out_idx].hfcs_reg);
+                       cpu_to_le16(hw->ctrl_buff[hw->ctrl_out_idx].hfcs_reg);
                hw->ctrl_write.wValue =
-                   cpu_to_le16(hw->ctrl_buff[hw->ctrl_out_idx].reg_val);
+                       cpu_to_le16(hw->ctrl_buff[hw->ctrl_out_idx].reg_val);
 
                usb_submit_urb(hw->ctrl_urb, GFP_ATOMIC);
        }
@@ -93,7 +93,7 @@ static int write_reg(struct hfcsusb *hw, __u8 reg, __u8 val)
 
        if (debug & DBG_HFC_CALL_TRACE)
                printk(KERN_DEBUG "%s: %s reg(0x%02x) val(0x%02x)\n",
-                       hw->name, __func__, reg, val);
+                      hw->name, __func__, reg, val);
 
        spin_lock(&hw->ctrl_lock);
        if (hw->ctrl_cnt >= HFC_CTRL_BUFSIZE) {
@@ -196,8 +196,8 @@ handle_led(struct hfcsusb *hw, int event)
        if (hw->led_state != tmpled) {
                if (debug & DBG_HFC_CALL_TRACE)
                        printk(KERN_DEBUG "%s: %s reg(0x%02x) val(x%02x)\n",
-                           hw->name, __func__,
-                           HFCUSB_P_DATA, hw->led_state);
+                              hw->name, __func__,
+                              HFCUSB_P_DATA, hw->led_state);
 
                write_reg(hw, HFCUSB_P_DATA, hw->led_state);
        }
@@ -225,7 +225,7 @@ hfcusb_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(&hw->lock, flags);
                if (debug & DBG_HFC_CALL_TRACE)
                        printk(KERN_DEBUG "%s: %s PH_DATA_REQ ret(%i)\n",
-                               hw->name, __func__, ret);
+                              hw->name, __func__, ret);
                if (ret > 0) {
                        /*
                         * other l1 drivers don't send early confirms on
@@ -244,12 +244,12 @@ hfcusb_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                        ret = 0;
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                               0, NULL, GFP_KERNEL);
+                                   0, NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                deactivate_bchannel(bch);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY,
-                       0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
                ret = 0;
                break;
        }
@@ -270,7 +270,7 @@ hfcsusb_ph_info(struct hfcsusb *hw)
        int i;
 
        phi = kzalloc(sizeof(struct ph_info) +
-               dch->dev.nrbchan * sizeof(struct ph_info_ch), GFP_ATOMIC);
+                     dch->dev.nrbchan * sizeof(struct ph_info_ch), GFP_ATOMIC);
        phi->dch.ch.protocol = hw->protocol;
        phi->dch.ch.Flags = dch->Flags;
        phi->dch.state = dch->state;
@@ -280,8 +280,8 @@ hfcsusb_ph_info(struct hfcsusb *hw)
                phi->bch[i].Flags = hw->bch[i].Flags;
        }
        _queue_data(&dch->dev.D, MPH_INFORMATION_IND, MISDN_ID_ANY,
-               sizeof(struct ph_info_dch) + dch->dev.nrbchan *
-               sizeof(struct ph_info_ch), phi, GFP_ATOMIC);
+                   sizeof(struct ph_info_dch) + dch->dev.nrbchan *
+                   sizeof(struct ph_info_ch), phi, GFP_ATOMIC);
        kfree(phi);
 }
 
@@ -302,7 +302,7 @@ hfcusb_l2l1D(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_DATA_REQ:
                if (debug & DBG_HFC_CALL_TRACE)
                        printk(KERN_DEBUG "%s: %s: PH_DATA_REQ\n",
-                               hw->name, __func__);
+                              hw->name, __func__);
 
                spin_lock_irqsave(&hw->lock, flags);
                ret = dchannel_senddata(dch, skb);
@@ -316,20 +316,20 @@ hfcusb_l2l1D(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_ACTIVATE_REQ:
                if (debug & DBG_HFC_CALL_TRACE)
                        printk(KERN_DEBUG "%s: %s: PH_ACTIVATE_REQ %s\n",
-                               hw->name, __func__,
-                               (hw->protocol == ISDN_P_NT_S0) ? "NT" : "TE");
+                              hw->name, __func__,
+                              (hw->protocol == ISDN_P_NT_S0) ? "NT" : "TE");
 
                if (hw->protocol == ISDN_P_NT_S0) {
                        ret = 0;
                        if (test_bit(FLG_ACTIVE, &dch->Flags)) {
                                _queue_data(&dch->dev.D,
-                                       PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                                       NULL, GFP_ATOMIC);
+                                           PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
+                                           NULL, GFP_ATOMIC);
                        } else {
                                hfcsusb_ph_command(hw,
-                                       HFC_L1_ACTIVATE_NT);
+                                                  HFC_L1_ACTIVATE_NT);
                                test_and_set_bit(FLG_L2_ACTIVATED,
-                                       &dch->Flags);
+                                                &dch->Flags);
                        }
                } else {
                        hfcsusb_ph_command(hw, HFC_L1_ACTIVATE_TE);
@@ -340,7 +340,7 @@ hfcusb_l2l1D(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_DEACTIVATE_REQ:
                if (debug & DBG_HFC_CALL_TRACE)
                        printk(KERN_DEBUG "%s: %s: PH_DEACTIVATE_REQ\n",
-                               hw->name, __func__);
+                              hw->name, __func__);
                test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
 
                if (hw->protocol == ISDN_P_NT_S0) {
@@ -385,7 +385,7 @@ hfc_l1callback(struct dchannel *dch, u_int cmd)
 
        if (debug & DBG_HFC_CALL_TRACE)
                printk(KERN_DEBUG "%s: %s cmd 0x%x\n",
-                       hw->name, __func__, cmd);
+                      hw->name, __func__, cmd);
 
        switch (cmd) {
        case INFO3_P8:
@@ -410,17 +410,17 @@ hfc_l1callback(struct dchannel *dch, u_int cmd)
        case PH_ACTIVATE_IND:
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        case PH_DEACTIVATE_IND:
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: %s: unknown cmd %x\n",
-                       hw->name, __func__, cmd);
+                              hw->name, __func__, cmd);
                return -1;
        }
        hfcsusb_ph_info(hw);
@@ -429,14 +429,14 @@ hfc_l1callback(struct dchannel *dch, u_int cmd)
 
 static int
 open_dchannel(struct hfcsusb *hw, struct mISDNchannel *ch,
-    struct channel_req *rq)
+             struct channel_req *rq)
 {
        int err = 0;
 
        if (debug & DEBUG_HW_OPEN)
                printk(KERN_DEBUG "%s: %s: dev(%d) open addr(%i) from %p\n",
-                   hw->name, __func__, hw->dch.dev.id, rq->adr.channel,
-                   __builtin_return_address(0));
+                      hw->name, __func__, hw->dch.dev.id, rq->adr.channel,
+                      __builtin_return_address(0));
        if (rq->protocol == ISDN_P_NONE)
                return -EINVAL;
 
@@ -450,7 +450,7 @@ open_dchannel(struct hfcsusb *hw, struct mISDNchannel *ch,
                        hfcsusb_start_endpoint(hw, HFC_CHAN_E);
                        set_bit(FLG_ACTIVE, &hw->ech.Flags);
                        _queue_data(&hw->ech.dev.D, PH_ACTIVATE_IND,
-                                    MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                } else
                        return -EINVAL;
        }
@@ -473,11 +473,11 @@ open_dchannel(struct hfcsusb *hw, struct mISDNchannel *ch,
        if (((ch->protocol == ISDN_P_NT_S0) && (hw->dch.state == 3)) ||
            ((ch->protocol == ISDN_P_TE_S0) && (hw->dch.state == 7)))
                _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                   0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
        rq->ch = ch;
        if (!try_module_get(THIS_MODULE))
                printk(KERN_WARNING "%s: %s: cannot get module\n",
-                   hw->name, __func__);
+                      hw->name, __func__);
        return 0;
 }
 
@@ -493,7 +493,7 @@ open_bchannel(struct hfcsusb *hw, struct channel_req *rq)
 
        if (debug & DBG_HFC_CALL_TRACE)
                printk(KERN_DEBUG "%s: %s B%i\n",
-                       hw->name, __func__, rq->adr.channel);
+                      hw->name, __func__, rq->adr.channel);
 
        bch = &hw->bch[rq->adr.channel - 1];
        if (test_and_set_bit(FLG_OPEN, &bch->Flags))
@@ -510,7 +510,7 @@ open_bchannel(struct hfcsusb *hw, struct channel_req *rq)
 
        if (!try_module_get(THIS_MODULE))
                printk(KERN_WARNING "%s: %s:cannot get module\n",
-                   hw->name, __func__);
+                      hw->name, __func__);
        return 0;
 }
 
@@ -521,16 +521,16 @@ channel_ctrl(struct hfcsusb *hw, struct mISDN_ctrl_req *cq)
 
        if (debug & DBG_HFC_CALL_TRACE)
                printk(KERN_DEBUG "%s: %s op(0x%x) channel(0x%x)\n",
-                   hw->name, __func__, (cq->op), (cq->channel));
+                      hw->name, __func__, (cq->op), (cq->channel));
 
        switch (cq->op) {
        case MISDN_CTRL_GETOP:
                cq->op = MISDN_CTRL_LOOP | MISDN_CTRL_CONNECT |
-                        MISDN_CTRL_DISCONNECT;
+                       MISDN_CTRL_DISCONNECT;
                break;
        default:
                printk(KERN_WARNING "%s: %s: unknown Op %x\n",
-                       hw->name, __func__, cq->op);
+                      hw->name, __func__, cq->op);
                ret = -EINVAL;
                break;
        }
@@ -551,7 +551,7 @@ hfc_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
        if (dch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: %s: cmd:%x %p\n",
-                   hw->name, __func__, cmd, arg);
+                      hw->name, __func__, cmd, arg);
        switch (cmd) {
        case OPEN_CHANNEL:
                rq = arg;
@@ -567,9 +567,9 @@ hfc_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                hw->open--;
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_DEBUG
-                               "%s: %s: dev(%d) close from %p (open %d)\n",
-                               hw->name, __func__, hw->dch.dev.id,
-                               __builtin_return_address(0), hw->open);
+                              "%s: %s: dev(%d) close from %p (open %d)\n",
+                              hw->name, __func__, hw->dch.dev.id,
+                              __builtin_return_address(0), hw->open);
                if (!hw->open) {
                        hfcsusb_stop_endpoint(hw, HFC_CHAN_D);
                        if (hw->fifos[HFCUSB_PCM_RX].pipe)
@@ -584,7 +584,7 @@ hfc_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: %s: unknown command %x\n",
-                               hw->name, __func__, cmd);
+                              hw->name, __func__, cmd);
                return -EINVAL;
        }
        return err;
@@ -601,10 +601,10 @@ ph_state_te(struct dchannel *dch)
        if (debug & DEBUG_HW) {
                if (dch->state <= HFC_MAX_TE_LAYER1_STATE)
                        printk(KERN_DEBUG "%s: %s: %s\n", hw->name, __func__,
-                           HFC_TE_LAYER1_STATES[dch->state]);
+                              HFC_TE_LAYER1_STATES[dch->state]);
                else
                        printk(KERN_DEBUG "%s: %s: TE F%d\n",
-                           hw->name, __func__, dch->state);
+                              hw->name, __func__, dch->state);
        }
 
        switch (dch->state) {
@@ -642,12 +642,12 @@ ph_state_nt(struct dchannel *dch)
        if (debug & DEBUG_HW) {
                if (dch->state <= HFC_MAX_NT_LAYER1_STATE)
                        printk(KERN_DEBUG "%s: %s: %s\n",
-                           hw->name, __func__,
-                           HFC_NT_LAYER1_STATES[dch->state]);
+                              hw->name, __func__,
+                              HFC_NT_LAYER1_STATES[dch->state]);
 
                else
                        printk(KERN_INFO DRIVER_NAME "%s: %s: NT G%d\n",
-                           hw->name, __func__, dch->state);
+                              hw->name, __func__, dch->state);
        }
 
        switch (dch->state) {
@@ -676,7 +676,7 @@ ph_state_nt(struct dchannel *dch)
                hw->timers &= ~NT_ACTIVATION_TIMER;
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
-                       MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                           MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                handle_led(hw, LED_S0_ON);
                break;
        case (4):
@@ -711,8 +711,8 @@ hfcsusb_setup_bch(struct bchannel *bch, int protocol)
 
        if (debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: %s: protocol %x-->%x B%d\n",
-                   hw->name, __func__, bch->state, protocol,
-                   bch->nr);
+                      hw->name, __func__, bch->state, protocol,
+                      bch->nr);
 
        /* setup val for CON_HDLC */
        conhdlc = 0;
@@ -742,7 +742,7 @@ hfcsusb_setup_bch(struct bchannel *bch, int protocol)
        default:
                if (debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: %s: prot not known %x\n",
-                               hw->name, __func__, protocol);
+                              hw->name, __func__, protocol);
                return -ENOPROTOOPT;
        }
 
@@ -771,7 +771,7 @@ hfcsusb_setup_bch(struct bchannel *bch, int protocol)
                        handle_led(hw, (bch->nr == 1) ? LED_B1_ON : LED_B2_ON);
                else
                        handle_led(hw, (bch->nr == 1) ? LED_B1_OFF :
-                               LED_B2_OFF);
+                                  LED_B2_OFF);
        }
        hfcsusb_ph_info(hw);
        return 0;
@@ -782,7 +782,7 @@ hfcsusb_ph_command(struct hfcsusb *hw, u_char command)
 {
        if (debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: %s: %x\n",
-                  hw->name, __func__, command);
+                      hw->name, __func__, command);
 
        switch (command) {
        case HFC_L1_ACTIVATE_TE:
@@ -800,15 +800,15 @@ hfcsusb_ph_command(struct hfcsusb *hw, u_char command)
        case HFC_L1_ACTIVATE_NT:
                if (hw->dch.state == 3)
                        _queue_data(&hw->dch.dev.D, PH_ACTIVATE_IND,
-                               MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
+                                   MISDN_ID_ANY, 0, NULL, GFP_ATOMIC);
                else
                        write_reg(hw, HFCUSB_STATES, HFCUSB_ACTIVATE |
-                               HFCUSB_DO_ACTION | HFCUSB_NT_G2_G3);
+                                 HFCUSB_DO_ACTION | HFCUSB_NT_G2_G3);
                break;
 
        case HFC_L1_DEACTIVATE_NT:
                write_reg(hw, HFCUSB_STATES,
-                       HFCUSB_DO_ACTION);
+                         HFCUSB_DO_ACTION);
                break;
        }
 }
@@ -829,7 +829,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
                test_and_set_bit(FLG_FILLEMPTY, &bch->Flags);
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_DEBUG "%s: FILL_EMPTY request (nr=%d "
-                               "off=%d)\n", __func__, bch->nr, !!cq->p1);
+                              "off=%d)\n", __func__, bch->nr, !!cq->p1);
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n", __func__, cq->op);
@@ -842,7 +842,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
 /* collect data from incoming interrupt or isochron USB data */
 static void
 hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
-       int finish)
+                int finish)
 {
        struct hfcsusb  *hw = fifo->hw;
        struct sk_buff  *rx_skb = NULL;
@@ -853,9 +853,9 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
 
        if (debug & DBG_HFC_CALL_TRACE)
                printk(KERN_DEBUG "%s: %s: fifo(%i) len(%i) "
-                   "dch(%p) bch(%p) ech(%p)\n",
-                   hw->name, __func__, fifon, len,
-                   fifo->dch, fifo->bch, fifo->ech);
+                      "dch(%p) bch(%p) ech(%p)\n",
+                      hw->name, __func__, fifon, len,
+                      fifo->dch, fifo->bch, fifo->ech);
 
        if (!len)
                return;
@@ -895,7 +895,7 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
                        skb_trim(rx_skb, 0);
                } else {
                        printk(KERN_DEBUG "%s: %s: No mem for rx_skb\n",
-                           hw->name, __func__);
+                              hw->name, __func__);
                        spin_unlock(&hw->lock);
                        return;
                }
@@ -905,8 +905,8 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
                /* D/E-Channel SKB range check */
                if ((rx_skb->len + len) >= MAX_DFRAME_LEN_L1) {
                        printk(KERN_DEBUG "%s: %s: sbk mem exceeded "
-                           "for fifo(%d) HFCUSB_D_RX\n",
-                           hw->name, __func__, fifon);
+                              "for fifo(%d) HFCUSB_D_RX\n",
+                              hw->name, __func__, fifon);
                        skb_trim(rx_skb, 0);
                        spin_unlock(&hw->lock);
                        return;
@@ -915,8 +915,8 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
                /* B-Channel SKB range check */
                if ((rx_skb->len + len) >= (MAX_BCH_SIZE + 3)) {
                        printk(KERN_DEBUG "%s: %s: sbk mem exceeded "
-                           "for fifo(%d) HFCUSB_B_RX\n",
-                           hw->name, __func__, fifon);
+                              "for fifo(%d) HFCUSB_B_RX\n",
+                              hw->name, __func__, fifon);
                        skb_trim(rx_skb, 0);
                        spin_unlock(&hw->lock);
                        return;
@@ -929,16 +929,16 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
                /* we have a complete hdlc packet */
                if (finish) {
                        if ((rx_skb->len > 3) &&
-                          (!(rx_skb->data[rx_skb->len - 1]))) {
+                           (!(rx_skb->data[rx_skb->len - 1]))) {
                                if (debug & DBG_HFC_FIFO_VERBOSE) {
                                        printk(KERN_DEBUG "%s: %s: fifon(%i)"
-                                           " new RX len(%i): ",
-                                           hw->name, __func__, fifon,
-                                           rx_skb->len);
+                                              " new RX len(%i): ",
+                                              hw->name, __func__, fifon,
+                                              rx_skb->len);
                                        i = 0;
                                        while (i < rx_skb->len)
                                                printk("%02x ",
-                                                   rx_skb->data[i++]);
+                                                      rx_skb->data[i++]);
                                        printk("\n");
                                }
 
@@ -951,17 +951,17 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,
                                        recv_Bchannel(fifo->bch, MISDN_ID_ANY);
                                if (fifo->ech)
                                        recv_Echannel(fifo->ech,
-                                                    &hw->dch);
+                                                     &hw->dch);
                        } else {
                                if (debug & DBG_HFC_FIFO_VERBOSE) {
                                        printk(KERN_DEBUG
-                                           "%s: CRC or minlen ERROR fifon(%i) "
-                                           "RX len(%i): ",
-                                           hw->name, fifon, rx_skb->len);
+                                              "%s: CRC or minlen ERROR fifon(%i) "
+                                              "RX len(%i): ",
+                                              hw->name, fifon, rx_skb->len);
                                        i = 0;
                                        while (i < rx_skb->len)
                                                printk("%02x ",
-                                                   rx_skb->data[i++]);
+                                                      rx_skb->data[i++]);
                                        printk("\n");
                                }
                                skb_trim(rx_skb, 0);
@@ -983,7 +983,7 @@ fill_isoc_urb(struct urb *urb, struct usb_device *dev, unsigned int pipe,
        int k;
 
        usb_fill_bulk_urb(urb, dev, pipe, buf, packet_size * num_packets,
-           complete, context);
+                         complete, context);
 
        urb->number_of_packets = num_packets;
        urb->transfer_flags = URB_ISO_ASAP;
@@ -1005,7 +1005,7 @@ rx_iso_complete(struct urb *urb)
        struct usb_fifo *fifo = context_iso_urb->owner_fifo;
        struct hfcsusb *hw = fifo->hw;
        int k, len, errcode, offset, num_isoc_packets, fifon, maxlen,
-           status, iso_status, i;
+               status, iso_status, i;
        __u8 *buf;
        static __u8 eof[8];
        __u8 s0_state;
@@ -1029,8 +1029,8 @@ rx_iso_complete(struct urb *urb)
        if (status == -EXDEV) {
                if (debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: %s: with -EXDEV "
-                           "urb->status %d, fifonum %d\n",
-                           hw->name, __func__,  status, fifon);
+                              "urb->status %d, fifonum %d\n",
+                              hw->name, __func__,  status, fifon);
 
                /* clear status, so go on with ISO transfers */
                status = 0;
@@ -1049,18 +1049,18 @@ rx_iso_complete(struct urb *urb)
 
                        if (iso_status && (debug & DBG_HFC_FIFO_VERBOSE)) {
                                printk(KERN_DEBUG "%s: %s: "
-                                   "ISO packet %i, status: %i\n",
-                                   hw->name, __func__, k, iso_status);
+                                      "ISO packet %i, status: %i\n",
+                                      hw->name, __func__, k, iso_status);
                        }
 
                        /* USB data log for every D ISO in */
                        if ((fifon == HFCUSB_D_RX) &&
                            (debug & DBG_HFC_USB_VERBOSE)) {
                                printk(KERN_DEBUG
-                                   "%s: %s: %d (%d/%d) len(%d) ",
-                                   hw->name, __func__, urb->start_frame,
-                                   k, num_isoc_packets-1,
-                                   len);
+                                      "%s: %s: %d (%d/%d) len(%d) ",
+                                      hw->name, __func__, urb->start_frame,
+                                      k, num_isoc_packets - 1,
+                                      len);
                                for (i = 0; i < len; i++)
                                        printk("%x ", buf[i]);
                                printk("\n");
@@ -1081,12 +1081,12 @@ rx_iso_complete(struct urb *urb)
                                        eof[fifon] = buf[0] & 1;
                                        if (len > 2)
                                                hfcsusb_rx_frame(fifo, buf + 2,
-                                                       len - 2, (len < maxlen)
-                                                       ? eof[fifon] : 0);
+                                                                len - 2, (len < maxlen)
+                                                                ? eof[fifon] : 0);
                                } else
                                        hfcsusb_rx_frame(fifo, buf, len,
-                                               (len < maxlen) ?
-                                               eof[fifon] : 0);
+                                                        (len < maxlen) ?
+                                                        eof[fifon] : 0);
                                fifo->last_urblen = len;
                        }
                }
@@ -1106,14 +1106,14 @@ rx_iso_complete(struct urb *urb)
                if (errcode < 0) {
                        if (debug & DEBUG_HW)
                                printk(KERN_DEBUG "%s: %s: error submitting "
-                                   "ISO URB: %d\n",
-                                   hw->name, __func__, errcode);
+                                      "ISO URB: %d\n",
+                                      hw->name, __func__, errcode);
                }
        } else {
                if (status && (debug & DBG_HFC_URB_INFO))
                        printk(KERN_DEBUG "%s: %s: rx_iso_complete : "
-                           "urb->status %d, fifonum %d\n",
-                           hw->name, __func__, status, fifon);
+                              "urb->status %d, fifonum %d\n",
+                              hw->name, __func__, status, fifon);
        }
 }
 
@@ -1140,8 +1140,8 @@ rx_int_complete(struct urb *urb)
        if ((!fifo->active) || (urb->status)) {
                if (debug & DBG_HFC_URB_ERROR)
                        printk(KERN_DEBUG
-                           "%s: %s: RX-Fifo %i is going down (%i)\n",
-                           hw->name, __func__, fifon, urb->status);
+                              "%s: %s: RX-Fifo %i is going down (%i)\n",
+                              hw->name, __func__, fifon, urb->status);
 
                fifo->urb->interval = 0; /* cancel automatic rescheduling */
                return;
@@ -1153,7 +1153,7 @@ rx_int_complete(struct urb *urb)
        /* USB data log for every D INT in */
        if ((fifon == HFCUSB_D_RX) && (debug & DBG_HFC_USB_VERBOSE)) {
                printk(KERN_DEBUG "%s: %s: D RX INT len(%d) ",
-                   hw->name, __func__, len);
+                      hw->name, __func__, len);
                for (i = 0; i < len; i++)
                        printk("%02x ", buf[i]);
                printk("\n");
@@ -1173,8 +1173,8 @@ rx_int_complete(struct urb *urb)
                /* if we have more than the 2 status bytes -> collect data */
                if (len > 2)
                        hfcsusb_rx_frame(fifo, buf + 2,
-                          urb->actual_length - 2,
-                          (len < maxlen) ? eof[fifon] : 0);
+                                        urb->actual_length - 2,
+                                        (len < maxlen) ? eof[fifon] : 0);
        } else {
                hfcsusb_rx_frame(fifo, buf, urb->actual_length,
                                 (len < maxlen) ? eof[fifon] : 0);
@@ -1185,7 +1185,7 @@ rx_int_complete(struct urb *urb)
        if (status) {
                if (debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: %s: error resubmitting USB\n",
-                           hw->name, __func__);
+                              hw->name, __func__);
        }
 }
 
@@ -1198,7 +1198,7 @@ tx_iso_complete(struct urb *urb)
        struct hfcsusb *hw = fifo->hw;
        struct sk_buff *tx_skb;
        int k, tx_offset, num_isoc_packets, sink, remain, current_len,
-           errcode, hdlc, i;
+               errcode, hdlc, i;
        int *tx_idx;
        int frame_complete, fifon, status;
        __u8 threshbit;
@@ -1221,7 +1221,7 @@ tx_iso_complete(struct urb *urb)
                hdlc = test_bit(FLG_HDLC, &fifo->bch->Flags);
        } else {
                printk(KERN_DEBUG "%s: %s: neither BCH nor DCH\n",
-                   hw->name, __func__);
+                      hw->name, __func__);
                spin_unlock(&hw->lock);
                return;
        }
@@ -1238,8 +1238,8 @@ tx_iso_complete(struct urb *urb)
        if (status == -EXDEV) {
                if (debug & DBG_HFC_URB_ERROR)
                        printk(KERN_DEBUG "%s: %s: "
-                           "-EXDEV (%i) fifon (%d)\n",
-                           hw->name, __func__, status, fifon);
+                              "-EXDEV (%i) fifon (%d)\n",
+                              hw->name, __func__, status, fifon);
 
                /* clear status, so go on with ISO transfers */
                status = 0;
@@ -1269,8 +1269,8 @@ tx_iso_complete(struct urb *urb)
                                errcode = urb->iso_frame_desc[k].status;
                                if (errcode) {
                                        printk(KERN_DEBUG "%s: %s: "
-                                           "ISO packet %i, status: %i\n",
-                                            hw->name, __func__, k, errcode);
+                                              "ISO packet %i, status: %i\n",
+                                              hw->name, __func__, k, errcode);
                                }
                        }
 
@@ -1298,7 +1298,7 @@ tx_iso_complete(struct urb *urb)
                                        if (hdlc) {
                                                /* signal frame completion */
                                                context_iso_urb->
-                                                   buffer[tx_offset] = 1;
+                                                       buffer[tx_offset] = 1;
                                                /* add 2 byte flags and 16bit
                                                 * CRC at end of ISDN frame */
                                                fifo->bit_line += 32;
@@ -1318,21 +1318,21 @@ tx_iso_complete(struct urb *urb)
                                if ((fifon == HFCUSB_D_RX) &&
                                    (debug & DBG_HFC_USB_VERBOSE)) {
                                        printk(KERN_DEBUG
-                                           "%s: %s (%d/%d) offs(%d) len(%d) ",
-                                           hw->name, __func__,
-                                           k, num_isoc_packets-1,
-                                           urb->iso_frame_desc[k].offset,
-                                           urb->iso_frame_desc[k].length);
+                                              "%s: %s (%d/%d) offs(%d) len(%d) ",
+                                              hw->name, __func__,
+                                              k, num_isoc_packets - 1,
+                                              urb->iso_frame_desc[k].offset,
+                                              urb->iso_frame_desc[k].length);
 
                                        for (i = urb->iso_frame_desc[k].offset;
                                             i < (urb->iso_frame_desc[k].offset
-                                            + urb->iso_frame_desc[k].length);
+                                                 + urb->iso_frame_desc[k].length);
                                             i++)
                                                printk("%x ",
-                                                   context_iso_urb->buffer[i]);
+                                                      context_iso_urb->buffer[i]);
 
                                        printk(" skb->len(%i) tx-idx(%d)\n",
-                                           tx_skb->len, *tx_idx);
+                                              tx_skb->len, *tx_idx);
                                }
 
                                tx_offset += (current_len + 1);
@@ -1350,13 +1350,13 @@ tx_iso_complete(struct urb *urb)
 
                                if (debug & DBG_HFC_FIFO_VERBOSE) {
                                        printk(KERN_DEBUG  "%s: %s: "
-                                           "fifon(%i) new TX len(%i): ",
-                                           hw->name, __func__,
-                                           fifon, tx_skb->len);
+                                              "fifon(%i) new TX len(%i): ",
+                                              hw->name, __func__,
+                                              fifon, tx_skb->len);
                                        i = 0;
                                        while (i < tx_skb->len)
                                                printk("%02x ",
-                                                   tx_skb->data[i++]);
+                                                      tx_skb->data[i++]);
                                        printk("\n");
                                }
 
@@ -1365,9 +1365,9 @@ tx_iso_complete(struct urb *urb)
                                if (fifo->dch && get_next_dframe(fifo->dch))
                                        tx_skb = fifo->dch->tx_skb;
                                else if (fifo->bch &&
-                                   get_next_bframe(fifo->bch)) {
+                                        get_next_bframe(fifo->bch)) {
                                        if (test_bit(FLG_TRANSPARENT,
-                                           &fifo->bch->Flags))
+                                                    &fifo->bch->Flags))
                                                confirm_Bsend(fifo->bch);
                                        tx_skb = fifo->bch->tx_skb;
                                }
@@ -1377,8 +1377,8 @@ tx_iso_complete(struct urb *urb)
                if (errcode < 0) {
                        if (debug & DEBUG_HW)
                                printk(KERN_DEBUG
-                                   "%s: %s: error submitting ISO URB: %d \n",
-                                   hw->name, __func__, errcode);
+                                      "%s: %s: error submitting ISO URB: %d \n",
+                                      hw->name, __func__, errcode);
                }
 
                /*
@@ -1395,9 +1395,9 @@ tx_iso_complete(struct urb *urb)
        } else {
                if (status && (debug & DBG_HFC_URB_ERROR))
                        printk(KERN_DEBUG  "%s: %s: urb->status %s (%i)"
-                           "fifonum=%d\n",
-                           hw->name, __func__,
-                           symbolic(urb_errlist, status), status, fifon);
+                              "fifonum=%d\n",
+                              hw->name, __func__,
+                              symbolic(urb_errlist, status), status, fifon);
        }
        spin_unlock(&hw->lock);
 }
@@ -1415,17 +1415,17 @@ start_isoc_chain(struct usb_fifo *fifo, int num_packets_per_urb,
 
        if (debug)
                printk(KERN_DEBUG "%s: %s: fifo %i\n",
-                   hw->name, __func__, fifo->fifonum);
+                      hw->name, __func__, fifo->fifonum);
 
        /* allocate Memory for Iso out Urbs */
        for (i = 0; i < 2; i++) {
                if (!(fifo->iso[i].urb)) {
                        fifo->iso[i].urb =
-                           usb_alloc_urb(num_packets_per_urb, GFP_KERNEL);
+                               usb_alloc_urb(num_packets_per_urb, GFP_KERNEL);
                        if (!(fifo->iso[i].urb)) {
                                printk(KERN_DEBUG
-                                   "%s: %s: alloc urb for fifo %i failed",
-                                   hw->name, __func__, fifo->fifonum);
+                                      "%s: %s: alloc urb for fifo %i failed",
+                                      hw->name, __func__, fifo->fifonum);
                        }
                        fifo->iso[i].owner_fifo = (struct usb_fifo *) fifo;
                        fifo->iso[i].indx = i;
@@ -1435,27 +1435,27 @@ start_isoc_chain(struct usb_fifo *fifo, int num_packets_per_urb,
                            (fifo->usb_packet_maxlen *
                             num_packets_per_urb)) {
                                fill_isoc_urb(fifo->iso[i].urb,
-                                   fifo->hw->dev, fifo->pipe,
-                                   fifo->iso[i].buffer,
-                                   num_packets_per_urb,
-                                   fifo->usb_packet_maxlen,
-                                   fifo->intervall, complete,
-                                   &fifo->iso[i]);
+                                             fifo->hw->dev, fifo->pipe,
+                                             fifo->iso[i].buffer,
+                                             num_packets_per_urb,
+                                             fifo->usb_packet_maxlen,
+                                             fifo->intervall, complete,
+                                             &fifo->iso[i]);
                                memset(fifo->iso[i].buffer, 0,
                                       sizeof(fifo->iso[i].buffer));
 
                                for (k = 0; k < num_packets_per_urb; k++) {
                                        fifo->iso[i].urb->
-                                           iso_frame_desc[k].offset =
-                                           k * packet_size;
+                                               iso_frame_desc[k].offset =
+                                               k * packet_size;
                                        fifo->iso[i].urb->
-                                           iso_frame_desc[k].length =
-                                           packet_size;
+                                               iso_frame_desc[k].length =
+                                               packet_size;
                                }
                        } else {
                                printk(KERN_DEBUG
-                                   "%s: %s: ISO Buffer size to small!\n",
-                                   hw->name, __func__);
+                                      "%s: %s: ISO Buffer size to small!\n",
+                                      hw->name, __func__);
                        }
                }
                fifo->bit_line = BITLINE_INF;
@@ -1465,8 +1465,8 @@ start_isoc_chain(struct usb_fifo *fifo, int num_packets_per_urb,
                fifo->stop_gracefull = 0;
                if (errcode < 0) {
                        printk(KERN_DEBUG "%s: %s: %s URB nr:%d\n",
-                           hw->name, __func__,
-                           symbolic(urb_errlist, errcode), i);
+                              hw->name, __func__,
+                              symbolic(urb_errlist, errcode), i);
                }
        }
        return fifo->active;
@@ -1491,10 +1491,10 @@ stop_iso_gracefull(struct usb_fifo *fifo)
        for (i = 0; i < 2; i++) {
                timeout = 3;
                while (fifo->stop_gracefull && timeout--)
-                       schedule_timeout_interruptible((HZ/1000)*16);
+                       schedule_timeout_interruptible((HZ / 1000) * 16);
                if (debug && fifo->stop_gracefull)
                        printk(KERN_DEBUG "%s: ERROR %s for fifo %i.%i\n",
-                               hw->name, __func__, fifo->fifonum, i);
+                              hw->name, __func__, fifo->fifonum, i);
        }
 }
 
@@ -1514,7 +1514,7 @@ stop_int_gracefull(struct usb_fifo *fifo)
 
        timeout = 3;
        while (fifo->stop_gracefull && timeout--)
-               schedule_timeout_interruptible((HZ/1000)*3);
+               schedule_timeout_interruptible((HZ / 1000) * 3);
        if (debug && fifo->stop_gracefull)
                printk(KERN_DEBUG "%s: ERROR %s for fifo %i\n",
                       hw->name, __func__, fifo->fifonum);
@@ -1529,7 +1529,7 @@ start_int_fifo(struct usb_fifo *fifo)
 
        if (debug)
                printk(KERN_DEBUG "%s: %s: INT IN fifo:%d\n",
-                   hw->name, __func__, fifo->fifonum);
+                      hw->name, __func__, fifo->fifonum);
 
        if (!fifo->urb) {
                fifo->urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -1537,14 +1537,14 @@ start_int_fifo(struct usb_fifo *fifo)
                        return;
        }
        usb_fill_int_urb(fifo->urb, fifo->hw->dev, fifo->pipe,
-           fifo->buffer, fifo->usb_packet_maxlen,
-           (usb_complete_t)rx_int_complete, fifo, fifo->intervall);
+                        fifo->buffer, fifo->usb_packet_maxlen,
+                        (usb_complete_t)rx_int_complete, fifo, fifo->intervall);
        fifo->active = 1;
        fifo->stop_gracefull = 0;
        errcode = usb_submit_urb(fifo->urb, GFP_KERNEL);
        if (errcode) {
                printk(KERN_DEBUG "%s: %s: submit URB: status:%i\n",
-                   hw->name, __func__, errcode);
+                      hw->name, __func__, errcode);
                fifo->active = 0;
        }
 }
@@ -1554,7 +1554,7 @@ setPortMode(struct hfcsusb *hw)
 {
        if (debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: %s %s\n", hw->name, __func__,
-                  (hw->protocol == ISDN_P_TE_S0) ? "TE" : "NT");
+                      (hw->protocol == ISDN_P_TE_S0) ? "TE" : "NT");
 
        if (hw->protocol == ISDN_P_TE_S0) {
                write_reg(hw, HFCUSB_SCTRL, 0x40);
@@ -1588,7 +1588,7 @@ reset_hfcsusb(struct hfcsusb *hw)
 
        /* set USB_SIZE to match the wMaxPacketSize for INT or BULK transfers */
        write_reg(hw, HFCUSB_USB_SIZE, (hw->packet_size / 8) |
-           ((hw->packet_size / 8) << 4));
+                 ((hw->packet_size / 8) << 4));
 
        /* set USB_SIZE_I to match the the wMaxPacketSize for ISO transfers */
        write_reg(hw, HFCUSB_USB_SIZE_I, hw->iso_packet_size);
@@ -1599,13 +1599,13 @@ reset_hfcsusb(struct hfcsusb *hw)
 
        /* init the fifos */
        write_reg(hw, HFCUSB_F_THRES,
-           (HFCUSB_TX_THRESHOLD / 8) | ((HFCUSB_RX_THRESHOLD / 8) << 4));
+                 (HFCUSB_TX_THRESHOLD / 8) | ((HFCUSB_RX_THRESHOLD / 8) << 4));
 
        fifo = hw->fifos;
        for (i = 0; i < HFCUSB_NUM_FIFOS; i++) {
                write_reg(hw, HFCUSB_FIFO, i);  /* select the desired fifo */
                fifo[i].max_size =
-                   (i <= HFCUSB_B2_RX) ? MAX_BCH_SIZE : MAX_DFRAME_LEN;
+                       (i <= HFCUSB_B2_RX) ? MAX_BCH_SIZE : MAX_DFRAME_LEN;
                fifo[i].last_urblen = 0;
 
                /* set 2 bit for D- & E-channel */
@@ -1614,7 +1614,7 @@ reset_hfcsusb(struct hfcsusb *hw)
                /* enable all fifos */
                if (i == HFCUSB_D_TX)
                        write_reg(hw, HFCUSB_CON_HDLC,
-                           (hw->protocol == ISDN_P_NT_S0) ? 0x08 : 0x09);
+                                 (hw->protocol == ISDN_P_NT_S0) ? 0x08 : 0x09);
                else
                        write_reg(hw, HFCUSB_CON_HDLC, 0x08);
                write_reg(hw, HFCUSB_INC_RES_F, 2); /* reset the fifo */
@@ -1640,34 +1640,34 @@ hfcsusb_start_endpoint(struct hfcsusb *hw, int channel)
 
        /* start rx endpoints using USB INT IN method */
        if (hw->cfg_used == CNF_3INT3ISO || hw->cfg_used == CNF_4INT3ISO)
-               start_int_fifo(hw->fifos + channel*2 + 1);
+               start_int_fifo(hw->fifos + channel * 2 + 1);
 
        /* start rx endpoints using USB ISO IN method */
        if (hw->cfg_used == CNF_3ISO3ISO || hw->cfg_used == CNF_4ISO3ISO) {
                switch (channel) {
                case HFC_CHAN_D:
                        start_isoc_chain(hw->fifos + HFCUSB_D_RX,
-                               ISOC_PACKETS_D,
-                               (usb_complete_t)rx_iso_complete,
-                               16);
+                                        ISOC_PACKETS_D,
+                                        (usb_complete_t)rx_iso_complete,
+                                        16);
                        break;
                case HFC_CHAN_E:
                        start_isoc_chain(hw->fifos + HFCUSB_PCM_RX,
-                               ISOC_PACKETS_D,
-                               (usb_complete_t)rx_iso_complete,
-                               16);
+                                        ISOC_PACKETS_D,
+                                        (usb_complete_t)rx_iso_complete,
+                                        16);
                        break;
                case HFC_CHAN_B1:
                        start_isoc_chain(hw->fifos + HFCUSB_B1_RX,
-                               ISOC_PACKETS_B,
-                               (usb_complete_t)rx_iso_complete,
-                               16);
+                                        ISOC_PACKETS_B,
+                                        (usb_complete_t)rx_iso_complete,
+                                        16);
                        break;
                case HFC_CHAN_B2:
                        start_isoc_chain(hw->fifos + HFCUSB_B2_RX,
-                               ISOC_PACKETS_B,
-                               (usb_complete_t)rx_iso_complete,
-                               16);
+                                        ISOC_PACKETS_B,
+                                        (usb_complete_t)rx_iso_complete,
+                                        16);
                        break;
                }
        }
@@ -1676,18 +1676,18 @@ hfcsusb_start_endpoint(struct hfcsusb *hw, int channel)
        switch (channel) {
        case HFC_CHAN_D:
                start_isoc_chain(hw->fifos + HFCUSB_D_TX,
-                       ISOC_PACKETS_B,
-                       (usb_complete_t)tx_iso_complete, 1);
+                                ISOC_PACKETS_B,
+                                (usb_complete_t)tx_iso_complete, 1);
                break;
        case HFC_CHAN_B1:
                start_isoc_chain(hw->fifos + HFCUSB_B1_TX,
-                       ISOC_PACKETS_D,
-                       (usb_complete_t)tx_iso_complete, 1);
+                                ISOC_PACKETS_D,
+                                (usb_complete_t)tx_iso_complete, 1);
                break;
        case HFC_CHAN_B2:
                start_isoc_chain(hw->fifos + HFCUSB_B2_TX,
-                       ISOC_PACKETS_B,
-                       (usb_complete_t)tx_iso_complete, 1);
+                                ISOC_PACKETS_B,
+                                (usb_complete_t)tx_iso_complete, 1);
                break;
        }
 }
@@ -1708,15 +1708,15 @@ hfcsusb_stop_endpoint(struct hfcsusb *hw, int channel)
 
        /* rx endpoints using USB INT IN method */
        if (hw->cfg_used == CNF_3INT3ISO || hw->cfg_used == CNF_4INT3ISO)
-               stop_int_gracefull(hw->fifos + channel*2 + 1);
+               stop_int_gracefull(hw->fifos + channel * 2 + 1);
 
        /* rx endpoints using USB ISO IN method */
        if (hw->cfg_used == CNF_3ISO3ISO || hw->cfg_used == CNF_4ISO3ISO)
-               stop_iso_gracefull(hw->fifos + channel*2 + 1);
+               stop_iso_gracefull(hw->fifos + channel * 2 + 1);
 
        /* tx endpoints using USB ISO OUT method */
        if (channel != HFC_CHAN_E)
-               stop_iso_gracefull(hw->fifos + channel*2);
+               stop_iso_gracefull(hw->fifos + channel * 2);
 }
 
 
@@ -1732,12 +1732,12 @@ setup_hfcsusb(struct hfcsusb *hw)
        /* check the chip id */
        if (read_reg_atomic(hw, HFCUSB_CHIP_ID, &b) != 1) {
                printk(KERN_DEBUG "%s: %s: cannot read chip id\n",
-                   hw->name, __func__);
+                      hw->name, __func__);
                return 1;
        }
        if (b != HFCUSB_CHIPID) {
                printk(KERN_DEBUG "%s: %s: Invalid chip id 0x%02x\n",
-                   hw->name, __func__, b);
+                      hw->name, __func__, b);
                return 1;
        }
 
@@ -1754,8 +1754,8 @@ setup_hfcsusb(struct hfcsusb *hw)
        hw->ctrl_write.bRequest = 0;
        hw->ctrl_write.wLength = 0;
        usb_fill_control_urb(hw->ctrl_urb, hw->dev, hw->ctrl_out_pipe,
-           (u_char *)&hw->ctrl_write, NULL, 0,
-           (usb_complete_t)ctrl_complete, hw);
+                            (u_char *)&hw->ctrl_write, NULL, 0,
+                            (usb_complete_t)ctrl_complete, hw);
 
        reset_hfcsusb(hw);
        return 0;
@@ -1806,7 +1806,7 @@ deactivate_bchannel(struct bchannel *bch)
 
        if (bch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: %s: bch->nr(%i)\n",
-                   hw->name, __func__, bch->nr);
+                      hw->name, __func__, bch->nr);
 
        spin_lock_irqsave(&hw->lock, flags);
        mISDN_clear_bchannel(bch);
@@ -1848,7 +1848,7 @@ hfc_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                break;
        default:
                printk(KERN_WARNING "%s: unknown prim(%x)\n",
-                       __func__, cmd);
+                      __func__, cmd);
        }
        return ret;
 }
@@ -1877,7 +1877,7 @@ setup_instance(struct hfcsusb *hw, struct device *parent)
                mISDN_initdchannel(&hw->ech, MAX_DFRAME_LEN_L1, NULL);
 
        hw->dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
-           (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
+               (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
        hw->dch.dev.nrbchan = 2;
        for (i = 0; i < 2; i++) {
                hw->bch[i].nr = i + 1;
@@ -1905,9 +1905,9 @@ setup_instance(struct hfcsusb *hw, struct device *parent)
                goto out;
 
        snprintf(hw->name, MISDN_MAX_IDLEN - 1, "%s.%d", DRIVER_NAME,
-           hfcsusb_cnt + 1);
+                hfcsusb_cnt + 1);
        printk(KERN_INFO "%s: registered as '%s'\n",
-           DRIVER_NAME, hw->name);
+              DRIVER_NAME, hw->name);
 
        err = mISDN_register_device(&hw->dch.dev, parent, hw->name);
        if (err)
@@ -1937,30 +1937,30 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
        struct usb_host_endpoint        *ep;
        struct hfcsusb_vdata            *driver_info;
        int ifnum = iface->desc.bInterfaceNumber, i, idx, alt_idx,
-           probe_alt_setting, vend_idx, cfg_used, *vcf, attr, cfg_found,
-           ep_addr, cmptbl[16], small_match, iso_packet_size, packet_size,
-           alt_used = 0;
+               probe_alt_setting, vend_idx, cfg_used, *vcf, attr, cfg_found,
+               ep_addr, cmptbl[16], small_match, iso_packet_size, packet_size,
+               alt_used = 0;
 
        vend_idx = 0xffff;
        for (i = 0; hfcsusb_idtab[i].idVendor; i++) {
                if ((le16_to_cpu(dev->descriptor.idVendor)
-                      == hfcsusb_idtab[i].idVendor) &&
+                    == hfcsusb_idtab[i].idVendor) &&
                    (le16_to_cpu(dev->descriptor.idProduct)
-                      == hfcsusb_idtab[i].idProduct)) {
+                    == hfcsusb_idtab[i].idProduct)) {
                        vend_idx = i;
                        continue;
                }
        }
 
        printk(KERN_DEBUG
-           "%s: interface(%d) actalt(%d) minor(%d) vend_idx(%d)\n",
-           __func__, ifnum, iface->desc.bAlternateSetting,
-           intf->minor, vend_idx);
+              "%s: interface(%d) actalt(%d) minor(%d) vend_idx(%d)\n",
+              __func__, ifnum, iface->desc.bAlternateSetting,
+              intf->minor, vend_idx);
 
        if (vend_idx == 0xffff) {
                printk(KERN_WARNING
-                   "%s: no valid vendor found in USB descriptor\n",
-                   __func__);
+                      "%s: no valid vendor found in USB descriptor\n",
+                      __func__);
                return -EIO;
        }
        /* if vendor and product ID is OK, start probing alternate settings */
@@ -1996,17 +1996,17 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
                                        if (cmptbl[idx] == EP_NUL)
                                                cfg_found = 0;
                                        if (attr == USB_ENDPOINT_XFER_INT
-                                               && cmptbl[idx] == EP_INT)
+                                           && cmptbl[idx] == EP_INT)
                                                cmptbl[idx] = EP_NUL;
                                        if (attr == USB_ENDPOINT_XFER_BULK
-                                               && cmptbl[idx] == EP_BLK)
+                                           && cmptbl[idx] == EP_BLK)
                                                cmptbl[idx] = EP_NUL;
                                        if (attr == USB_ENDPOINT_XFER_ISOC
-                                               && cmptbl[idx] == EP_ISO)
+                                           && cmptbl[idx] == EP_ISO)
                                                cmptbl[idx] = EP_NUL;
 
                                        if (attr == USB_ENDPOINT_XFER_INT &&
-                                               ep->desc.bInterval < vcf[17]) {
+                                           ep->desc.bInterval < vcf[17]) {
                                                cfg_found = 0;
                                        }
                                }
@@ -2060,27 +2060,27 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
                switch (ep->desc.bmAttributes) {
                case USB_ENDPOINT_XFER_INT:
                        f->pipe = usb_rcvintpipe(dev,
-                               ep->desc.bEndpointAddress);
+                                                ep->desc.bEndpointAddress);
                        f->usb_transfer_mode = USB_INT;
                        packet_size = le16_to_cpu(ep->desc.wMaxPacketSize);
                        break;
                case USB_ENDPOINT_XFER_BULK:
                        if (ep_addr & 0x80)
                                f->pipe = usb_rcvbulkpipe(dev,
-                                       ep->desc.bEndpointAddress);
+                                                         ep->desc.bEndpointAddress);
                        else
                                f->pipe = usb_sndbulkpipe(dev,
-                                       ep->desc.bEndpointAddress);
+                                                         ep->desc.bEndpointAddress);
                        f->usb_transfer_mode = USB_BULK;
                        packet_size = le16_to_cpu(ep->desc.wMaxPacketSize);
                        break;
                case USB_ENDPOINT_XFER_ISOC:
                        if (ep_addr & 0x80)
                                f->pipe = usb_rcvisocpipe(dev,
-                                       ep->desc.bEndpointAddress);
+                                                         ep->desc.bEndpointAddress);
                        else
                                f->pipe = usb_sndisocpipe(dev,
-                                       ep->desc.bEndpointAddress);
+                                                         ep->desc.bEndpointAddress);
                        f->usb_transfer_mode = USB_ISOC;
                        iso_packet_size = le16_to_cpu(ep->desc.wMaxPacketSize);
                        break;
@@ -2092,7 +2092,7 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
                        f->fifonum = idx & 7;
                        f->hw = hw;
                        f->usb_packet_maxlen =
-                           le16_to_cpu(ep->desc.wMaxPacketSize);
+                               le16_to_cpu(ep->desc.wMaxPacketSize);
                        f->intervall = ep->desc.bInterval;
                }
                ep++;
@@ -2114,8 +2114,8 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
        driver_info =
                (struct hfcsusb_vdata *)hfcsusb_idtab[vend_idx].driver_info;
        printk(KERN_DEBUG "%s: %s: detected \"%s\" (%s, if=%d alt=%d)\n",
-           hw->name, __func__, driver_info->vend_name,
-           conf_str[small_match], ifnum, alt_used);
+              hw->name, __func__, driver_info->vend_name,
+              conf_str[small_match], ifnum, alt_used);
 
        if (setup_instance(hw, dev->dev.parent))
                return -EIO;
index 369196a..cb1231b 100644 (file)
 #define NT_ACTIVATION_TIMER    0x01    /* enables NT mode activation Timer */
 #define NT_T1_COUNT            10
 
-#define MAX_BCH_SIZE           2048    /* allowed B-channel packet size */
+#define MAX_BCH_SIZE           2048    /* allowed B-channel packet size */
 
-#define HFCUSB_RX_THRESHOLD    64      /* threshold for fifo report bit rx */
-#define HFCUSB_TX_THRESHOLD    96      /* threshold for fifo report bit tx */
+#define HFCUSB_RX_THRESHOLD    64      /* threshold for fifo report bit rx */
+#define HFCUSB_TX_THRESHOLD    96      /* threshold for fifo report bit tx */
 
 #define HFCUSB_CHIP_ID         0x16    /* Chip ID register index */
 #define HFCUSB_CIRM            0x00    /* cirm register index */
@@ -90,8 +90,8 @@
 
 /* defines how much ISO packets are handled in one URB */
 static int iso_packets[8] =
-    { ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B,
-       ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D
+{ ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B,
+  ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D
 };
 
 
@@ -100,15 +100,15 @@ static int iso_packets[8] =
 #define SINK_MIN       48
 #define SINK_DMIN      12
 #define SINK_DMAX      18
-#define BITLINE_INF    (-96*8)
+#define BITLINE_INF    (-96 * 8)
 
 /* HFC-S USB register access by Control-URSs */
-#define write_reg_atomic(a, b, c) \
+#define write_reg_atomic(a, b, c)                                      \
        usb_control_msg((a)->dev, (a)->ctrl_out_pipe, 0, 0x40, (c), (b), \
-               0, 0, HFC_CTRL_TIMEOUT)
-#define read_reg_atomic(a, b, c) \
+                       0, 0, HFC_CTRL_TIMEOUT)
+#define read_reg_atomic(a, b, c)                                       \
        usb_control_msg((a)->dev, (a)->ctrl_in_pipe, 1, 0xC0, 0, (b), (c), \
-               1, HFC_CTRL_TIMEOUT)
+                       1, HFC_CTRL_TIMEOUT)
 #define HFC_CTRL_BUFSIZE 64
 
 struct ctrl_buf {
@@ -222,7 +222,7 @@ static char *conf_str[] = {
 #define LED_B2_DATA    10
 
 #define LED_NORMAL     0       /* LEDs are normal */
-#define LED_INVERTED   1       /* LEDs are inverted */
+#define LED_INVERTED   1       /* LEDs are inverted */
 
 /* time in ms to perform a Flashing LED when B-Channel has traffic */
 #define LED_TIME      250
@@ -258,7 +258,7 @@ struct usb_fifo {
 
        __u8 usb_transfer_mode; /* switched between ISO and INT */
        struct iso_urb  iso[2]; /* two urbs to have one always
-                                        one pending */
+                                  one pending */
 
        struct dchannel *dch;   /* link to hfcsusb_t->dch */
        struct bchannel *bch;   /* link to hfcsusb_t->bch */
@@ -339,76 +339,76 @@ static const char *HFC_NT_LAYER1_STATES[HFC_MAX_NT_LAYER1_STATE + 1] = {
 /* supported devices */
 static struct usb_device_id hfcsusb_idtab[] = {
        {
-        USB_DEVICE(0x0959, 0x2bd0),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_OFF, {4, 0, 2, 1},
-                          "ISDN USB TA (Cologne Chip HFC-S USB based)"}),
+               USB_DEVICE(0x0959, 0x2bd0),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_OFF, {4, 0, 2, 1},
+                                       "ISDN USB TA (Cologne Chip HFC-S USB based)"}),
        },
        {
-        USB_DEVICE(0x0675, 0x1688),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {1, 2, 0, 0},
-                          "DrayTek miniVigor 128 USB ISDN TA"}),
+               USB_DEVICE(0x0675, 0x1688),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {1, 2, 0, 0},
+                                       "DrayTek miniVigor 128 USB ISDN TA"}),
        },
        {
-        USB_DEVICE(0x07b0, 0x0007),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Billion tiny USB ISDN TA 128"}),
+               USB_DEVICE(0x07b0, 0x0007),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Billion tiny USB ISDN TA 128"}),
        },
        {
-        USB_DEVICE(0x0742, 0x2008),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {4, 0, 2, 1},
-                          "Stollmann USB TA"}),
+               USB_DEVICE(0x0742, 0x2008),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {4, 0, 2, 1},
+                                       "Stollmann USB TA"}),
        },
        {
-        USB_DEVICE(0x0742, 0x2009),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {4, 0, 2, 1},
-                          "Aceex USB ISDN TA"}),
+               USB_DEVICE(0x0742, 0x2009),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {4, 0, 2, 1},
+                                       "Aceex USB ISDN TA"}),
        },
        {
-        USB_DEVICE(0x0742, 0x200A),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {4, 0, 2, 1},
-                          "OEM USB ISDN TA"}),
+               USB_DEVICE(0x0742, 0x200A),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {4, 0, 2, 1},
+                                       "OEM USB ISDN TA"}),
        },
        {
-        USB_DEVICE(0x08e3, 0x0301),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {2, 0, 1, 4},
-                          "Olitec USB RNIS"}),
+               USB_DEVICE(0x08e3, 0x0301),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {2, 0, 1, 4},
+                                       "Olitec USB RNIS"}),
        },
        {
-        USB_DEVICE(0x07fa, 0x0846),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Bewan Modem RNIS USB"}),
+               USB_DEVICE(0x07fa, 0x0846),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Bewan Modem RNIS USB"}),
        },
        {
-        USB_DEVICE(0x07fa, 0x0847),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Djinn Numeris USB"}),
+               USB_DEVICE(0x07fa, 0x0847),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Djinn Numeris USB"}),
        },
        {
-        USB_DEVICE(0x07b0, 0x0006),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Twister ISDN TA"}),
+               USB_DEVICE(0x07b0, 0x0006),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Twister ISDN TA"}),
        },
        {
-        USB_DEVICE(0x071d, 0x1005),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {0x02, 0, 0x01, 0x04},
-                          "Eicon DIVA USB 4.0"}),
+               USB_DEVICE(0x071d, 0x1005),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {0x02, 0, 0x01, 0x04},
+                                       "Eicon DIVA USB 4.0"}),
        },
        {
-        USB_DEVICE(0x0586, 0x0102),
-        .driver_info = (unsigned long) &((struct hfcsusb_vdata)
-                         {LED_SCHEME1, {0x88, -64, -32, -16},
-                          "ZyXEL OMNI.NET USB II"}),
+               USB_DEVICE(0x0586, 0x0102),
+               .driver_info = (unsigned long) &((struct hfcsusb_vdata)
+                       {LED_SCHEME1, {0x88, -64, -32, -16},
+                                       "ZyXEL OMNI.NET USB II"}),
        },
        { }
 };
index b438981..c3e7bb1 100644 (file)
 #define _IOHELPER_H
 
 typedef        u8      (read_reg_func)(void *hwp, u8 offset);
-typedef        void    (write_reg_func)(void *hwp, u8 offset, u8 value);
-typedef        void    (fifo_func)(void *hwp, u8 offset, u8 *datap, int size);
+                              typedef  void    (write_reg_func)(void *hwp, u8 offset, u8 value);
+                              typedef  void    (fifo_func)(void *hwp, u8 offset, u8 *datap, int size);
 
-struct _ioport {
-       u32     port;
-       u32     ale;
-};
+                              struct _ioport {
+                                      u32      port;
+                                      u32      ale;
+                              };
 
-#define IOFUNC_IO(name, hws, ap) \
-       static u8 Read##name##_IO(void *p, u8 off) {\
-               struct hws *hw = p;\
-               return inb(hw->ap.port + off);\
-       } \
-       static void Write##name##_IO(void *p, u8 off, u8 val) {\
-               struct hws *hw = p;\
-               outb(val, hw->ap.port + off);\
-       } \
-       static void ReadFiFo##name##_IO(void *p, u8 off, u8 *dp, int size) {\
-               struct hws *hw = p;\
-               insb(hw->ap.port + off, dp, size);\
-       } \
-       static void WriteFiFo##name##_IO(void *p, u8 off, u8 *dp, int size) {\
-               struct hws *hw = p;\
-               outsb(hw->ap.port + off, dp, size);\
+#define IOFUNC_IO(name, hws, ap)                                       \
+       static u8 Read##name##_IO(void *p, u8 off) {                    \
+               struct hws *hw = p;                                     \
+               return inb(hw->ap.port + off);                          \
+       }                                                               \
+       static void Write##name##_IO(void *p, u8 off, u8 val) {         \
+               struct hws *hw = p;                                     \
+               outb(val, hw->ap.port + off);                           \
+       }                                                               \
+       static void ReadFiFo##name##_IO(void *p, u8 off, u8 *dp, int size) { \
+               struct hws *hw = p;                                     \
+               insb(hw->ap.port + off, dp, size);                      \
+       }                                                               \
+       static void WriteFiFo##name##_IO(void *p, u8 off, u8 *dp, int size) { \
+               struct hws *hw = p;                                     \
+               outsb(hw->ap.port + off, dp, size);                     \
        }
 
-#define IOFUNC_IND(name, hws, ap) \
-       static u8 Read##name##_IND(void *p, u8 off) {\
-               struct hws *hw = p;\
-               outb(off, hw->ap.ale);\
-               return inb(hw->ap.port);\
-       } \
-       static void Write##name##_IND(void *p, u8 off, u8 val) {\
-               struct hws *hw = p;\
-               outb(off, hw->ap.ale);\
-               outb(val, hw->ap.port);\
-       } \
-       static void ReadFiFo##name##_IND(void *p, u8 off, u8 *dp, int size) {\
-               struct hws *hw = p;\
-               outb(off, hw->ap.ale);\
-               insb(hw->ap.port, dp, size);\
-       } \
-       static void WriteFiFo##name##_IND(void *p, u8 off, u8 *dp, int size) {\
-               struct hws *hw = p;\
-               outb(off, hw->ap.ale);\
-               outsb(hw->ap.port, dp, size);\
+#define IOFUNC_IND(name, hws, ap)                                      \
+       static u8 Read##name##_IND(void *p, u8 off) {                   \
+               struct hws *hw = p;                                     \
+               outb(off, hw->ap.ale);                                  \
+               return inb(hw->ap.port);                                \
+       }                                                               \
+       static void Write##name##_IND(void *p, u8 off, u8 val) {        \
+               struct hws *hw = p;                                     \
+               outb(off, hw->ap.ale);                                  \
+               outb(val, hw->ap.port);                                 \
+       }                                                               \
+       static void ReadFiFo##name##_IND(void *p, u8 off, u8 *dp, int size) { \
+               struct hws *hw = p;                                     \
+               outb(off, hw->ap.ale);                                  \
+               insb(hw->ap.port, dp, size);                            \
+       }                                                               \
+       static void WriteFiFo##name##_IND(void *p, u8 off, u8 *dp, int size) { \
+               struct hws *hw = p;                                     \
+               outb(off, hw->ap.ale);                                  \
+               outsb(hw->ap.port, dp, size);                           \
        }
 
-#define IOFUNC_MEMIO(name, hws, typ, adr) \
-       static u8 Read##name##_MIO(void *p, u8 off) {\
-               struct hws *hw = p;\
-               return readb(((typ *)hw->adr) + off);\
-       } \
-       static void Write##name##_MIO(void *p, u8 off, u8 val) {\
-               struct hws *hw = p;\
-               writeb(val, ((typ *)hw->adr) + off);\
-       } \
-       static void ReadFiFo##name##_MIO(void *p, u8 off, u8 *dp, int size) {\
-               struct hws *hw = p;\
-               while (size--)\
-                       *dp++ = readb(((typ *)hw->adr) + off);\
-       } \
-       static void WriteFiFo##name##_MIO(void *p, u8 off, u8 *dp, int size) {\
-               struct hws *hw = p;\
-               while (size--)\
-                       writeb(*dp++, ((typ *)hw->adr) + off);\
+#define IOFUNC_MEMIO(name, hws, typ, adr)                              \
+       static u8 Read##name##_MIO(void *p, u8 off) {                   \
+               struct hws *hw = p;                                     \
+               return readb(((typ *)hw->adr) + off);                   \
+       }                                                               \
+       static void Write##name##_MIO(void *p, u8 off, u8 val) {        \
+               struct hws *hw = p;                                     \
+               writeb(val, ((typ *)hw->adr) + off);                    \
+       }                                                               \
+       static void ReadFiFo##name##_MIO(void *p, u8 off, u8 *dp, int size) { \
+               struct hws *hw = p;                                     \
+               while (size--)                                          \
+                       *dp++ = readb(((typ *)hw->adr) + off);          \
+       }                                                               \
+       static void WriteFiFo##name##_MIO(void *p, u8 off, u8 *dp, int size) { \
+               struct hws *hw = p;                                     \
+               while (size--)                                          \
+                       writeb(*dp++, ((typ *)hw->adr) + off);          \
        }
 
-#define ASSIGN_FUNC(typ, name, dest)   do {\
-       dest.read_reg = &Read##name##_##typ;\
-       dest.write_reg = &Write##name##_##typ;\
-       dest.read_fifo = &ReadFiFo##name##_##typ;\
-       dest.write_fifo = &WriteFiFo##name##_##typ;\
+#define ASSIGN_FUNC(typ, name, dest)   do {                    \
+               dest.read_reg = &Read##name##_##typ;            \
+               dest.write_reg = &Write##name##_##typ;          \
+               dest.read_fifo = &ReadFiFo##name##_##typ;       \
+               dest.write_fifo = &WriteFiFo##name##_##typ;     \
        } while (0)
-#define ASSIGN_FUNC_IPAC(typ, target)  do {\
-       ASSIGN_FUNC(typ, ISAC, target.isac);\
-       ASSIGN_FUNC(typ, IPAC, target);\
+#define ASSIGN_FUNC_IPAC(typ, target)  do {            \
+               ASSIGN_FUNC(typ, ISAC, target.isac);    \
+               ASSIGN_FUNC(typ, IPAC, target);         \
        } while (0)
 
 #endif
index 9962bdf..cadfc49 100644 (file)
@@ -97,7 +97,7 @@ struct isar_hw {
 #define ISAR_HIS_SDATA         0x20
 #define ISAR_HIS_DPS1          0x40
 #define ISAR_HIS_DPS2          0x80
-#define SET_DPS(x)             ((x<<6) & 0xc0)
+#define SET_DPS(x)             ((x << 6) & 0xc0)
 
 #define ISAR_IIS_MSCMSD                0x3f
 #define ISAR_IIS_VNR           0x15
index 6218775..631eb3f 100644 (file)
@@ -431,11 +431,11 @@ enable_hwirq(struct inf_hw *hw)
                break;
        case INF_GAZEL_R685:
                outb(GAZEL_ISAC_EN + GAZEL_HSCX_EN + GAZEL_PCI_EN,
-                       (u32)hw->cfg.start + GAZEL_INCSR);
+                    (u32)hw->cfg.start + GAZEL_INCSR);
                break;
        case INF_GAZEL_R753:
                outb(GAZEL_IPAC_EN + GAZEL_PCI_EN,
-                       (u32)hw->cfg.start + GAZEL_INCSR);
+                    (u32)hw->cfg.start + GAZEL_INCSR);
                break;
        default:
                break;
@@ -511,21 +511,21 @@ reset_inf(struct inf_hw *hw)
                /* Workaround PCI9060 */
                outb(9, (u32)hw->cfg.start + 0x69);
                outb(DIVA_RESET_BIT | DIVA_LED_A,
-                       (u32)hw->cfg.start + DIVA_PCI_CTRL);
+                    (u32)hw->cfg.start + DIVA_PCI_CTRL);
                break;
        case INF_DIVA201:
                writel(PITA_PARA_SOFTRESET | PITA_PARA_MPX_MODE,
-                       hw->cfg.p + PITA_MISC_REG);
+                      hw->cfg.p + PITA_MISC_REG);
                mdelay(1);
                writel(PITA_PARA_MPX_MODE, hw->cfg.p + PITA_MISC_REG);
                mdelay(10);
                break;
        case INF_DIVA202:
                writel(PITA_PARA_SOFTRESET | PITA_PARA_MPX_MODE,
-                       hw->cfg.p + PITA_MISC_REG);
+                      hw->cfg.p + PITA_MISC_REG);
                mdelay(1);
                writel(PITA_PARA_MPX_MODE | PITA_SER_SOFTRESET,
-                       hw->cfg.p + PITA_MISC_REG);
+                      hw->cfg.p + PITA_MISC_REG);
                mdelay(10);
                break;
        case INF_SPEEDWIN:
@@ -630,7 +630,7 @@ init_irq(struct inf_hw *hw)
                msleep_interruptible(10);
                if (debug & DEBUG_HW)
                        pr_notice("%s: IRQ %d count %d\n", hw->name,
-                               hw->irq, hw->irqcnt);
+                                 hw->irq, hw->irqcnt);
                if (!hw->irqcnt) {
                        pr_info("%s: IRQ(%d) got no requests during init %d\n",
                                hw->name, hw->irq, 3 - cnt);
@@ -672,11 +672,11 @@ setup_io(struct inf_hw *hw)
                hw->cfg.size = pci_resource_len(hw->pdev, hw->ci->cfg_bar);
                if (hw->ci->cfg_mode == AM_MEMIO) {
                        if (!request_mem_region(hw->cfg.start, hw->cfg.size,
-                           hw->name))
+                                               hw->name))
                                err = -EBUSY;
                } else {
                        if (!request_region(hw->cfg.start, hw->cfg.size,
-                           hw->name))
+                                           hw->name))
                                err = -EBUSY;
                }
                if (err) {
@@ -690,8 +690,8 @@ setup_io(struct inf_hw *hw)
                hw->cfg.mode = hw->ci->cfg_mode;
                if (debug & DEBUG_HW)
                        pr_notice("%s: IO cfg %lx (%lu bytes) mode%d\n",
-                               hw->name, (ulong)hw->cfg.start,
-                               (ulong)hw->cfg.size, hw->ci->cfg_mode);
+                                 hw->name, (ulong)hw->cfg.start,
+                                 (ulong)hw->cfg.size, hw->ci->cfg_mode);
 
        }
        if (hw->ci->addr_mode) {
@@ -699,11 +699,11 @@ setup_io(struct inf_hw *hw)
                hw->addr.size = pci_resource_len(hw->pdev, hw->ci->addr_bar);
                if (hw->ci->addr_mode == AM_MEMIO) {
                        if (!request_mem_region(hw->addr.start, hw->addr.size,
-                           hw->name))
+                                               hw->name))
                                err = -EBUSY;
                } else {
                        if (!request_region(hw->addr.start, hw->addr.size,
-                           hw->name))
+                                           hw->name))
                                err = -EBUSY;
                }
                if (err) {
@@ -717,8 +717,8 @@ setup_io(struct inf_hw *hw)
                hw->addr.mode = hw->ci->addr_mode;
                if (debug & DEBUG_HW)
                        pr_notice("%s: IO addr %lx (%lu bytes) mode%d\n",
-                               hw->name, (ulong)hw->addr.start,
-                               (ulong)hw->addr.size, hw->ci->addr_mode);
+                                 hw->name, (ulong)hw->addr.start,
+                                 (ulong)hw->addr.size, hw->ci->addr_mode);
 
        }
 
@@ -903,7 +903,7 @@ setup_instance(struct inf_hw *card)
        ulong flags;
 
        snprintf(card->name, MISDN_MAX_IDLEN - 1, "%s.%d", card->ci->name,
-               inf_cnt + 1);
+                inf_cnt + 1);
        write_lock_irqsave(&card_lock, flags);
        list_add_tail(&card->list, &Cards);
        write_unlock_irqrestore(&card_lock, flags);
@@ -928,7 +928,7 @@ setup_instance(struct inf_hw *card)
                goto error_setup;
 
        err = mISDN_register_device(&card->ipac.isac.dch.dev,
-               &card->pdev->dev, card->name);
+                                   &card->pdev->dev, card->name);
        if (err)
                goto error;
 
@@ -1099,7 +1099,7 @@ inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                return -EINVAL;
        } else
                pr_notice("mISDN: found adapter %s at %s\n",
-                       card->ci->full, pci_name(pdev));
+                         card->ci->full, pci_name(pdev));
 
        card->irq = pdev->irq;
        pci_set_drvdata(pdev, card);
index d2ffb1d..b47e9be 100644 (file)
@@ -129,7 +129,7 @@ isac_empty_fifo(struct isac_hw *isac, int count)
        }
        if ((isac->dch.rx_skb->len + count) >= isac->dch.maxlen) {
                pr_debug("%s: %s overrun %d\n", isac->name, __func__,
-                           isac->dch.rx_skb->len + count);
+                        isac->dch.rx_skb->len + count);
                WriteISAC(isac, ISAC_CMDR, 0x80);
                return;
        }
@@ -140,7 +140,7 @@ isac_empty_fifo(struct isac_hw *isac, int count)
                char    pfx[MISDN_MAX_IDLEN + 16];
 
                snprintf(pfx, MISDN_MAX_IDLEN + 15, "D-recv %s %d ",
-                       isac->name, count);
+                        isac->name, count);
                print_hex_dump_bytes(pfx, DUMP_PREFIX_OFFSET, ptr, count);
        }
 }
@@ -178,7 +178,7 @@ isac_fill_fifo(struct isac_hw *isac)
                char    pfx[MISDN_MAX_IDLEN + 16];
 
                snprintf(pfx, MISDN_MAX_IDLEN + 15, "D-send %s %d ",
-                       isac->name, count);
+                        isac->name, count);
                print_hex_dump_bytes(pfx, DUMP_PREFIX_OFFSET, ptr, count);
        }
 }
@@ -283,7 +283,7 @@ isac_mos_irq(struct isac_hw *isac)
                }
                isac->mon_rx[isac->mon_rxp++] = ReadISAC(isac, ISAC_MOR0);
                pr_debug("%s: ISAC MOR0 %02x\n", isac->name,
-                       isac->mon_rx[isac->mon_rxp - 1]);
+                        isac->mon_rx[isac->mon_rxp - 1]);
                if (isac->mon_rxp == 1) {
                        isac->mocr |= 0x04;
                        WriteISAC(isac, ISAC_MOCR, isac->mocr);
@@ -313,7 +313,7 @@ afterMONR0:
                }
                isac->mon_rx[isac->mon_rxp++] = ReadISAC(isac, ISAC_MOR1);
                pr_debug("%s: ISAC MOR1 %02x\n", isac->name,
-                       isac->mon_rx[isac->mon_rxp - 1]);
+                        isac->mon_rx[isac->mon_rxp - 1]);
                isac->mocr |= 0x40;
                WriteISAC(isac, ISAC_MOCR, isac->mocr);
        }
@@ -325,7 +325,7 @@ afterMONR1:
                WriteISAC(isac, ISAC_MOCR, isac->mocr);
                if (isac->monitor) {
                        ret = isac->monitor(isac->dch.hw, MONITOR_RX_0,
-                               isac->mon_rx, isac->mon_rxp);
+                                           isac->mon_rx, isac->mon_rxp);
                        if (ret)
                                kfree(isac->mon_rx);
                } else {
@@ -343,7 +343,7 @@ afterMONR1:
                WriteISAC(isac, ISAC_MOCR, isac->mocr);
                if (isac->monitor) {
                        ret = isac->monitor(isac->dch.hw, MONITOR_RX_1,
-                               isac->mon_rx, isac->mon_rxp);
+                                           isac->mon_rx, isac->mon_rxp);
                        if (ret)
                                kfree(isac->mon_rx);
                } else {
@@ -356,7 +356,7 @@ afterMONR1:
        }
        if (val & 0x02) {
                if ((!isac->mon_tx) || (isac->mon_txc &&
-                       (isac->mon_txp >= isac->mon_txc) && !(val & 0x08))) {
+                                       (isac->mon_txp >= isac->mon_txc) && !(val & 0x08))) {
                        isac->mocr &= 0xf0;
                        WriteISAC(isac, ISAC_MOCR, isac->mocr);
                        isac->mocr |= 0x0a;
@@ -364,7 +364,7 @@ afterMONR1:
                        if (isac->mon_txc && (isac->mon_txp >= isac->mon_txc)) {
                                if (isac->monitor)
                                        ret = isac->monitor(isac->dch.hw,
-                                               MONITOR_TX_0, NULL, 0);
+                                                           MONITOR_TX_0, NULL, 0);
                        }
                        kfree(isac->mon_tx);
                        isac->mon_tx = NULL;
@@ -375,7 +375,7 @@ afterMONR1:
                if (isac->mon_txc && (isac->mon_txp >= isac->mon_txc)) {
                        if (isac->monitor)
                                ret = isac->monitor(isac->dch.hw,
-                                       MONITOR_TX_0, NULL, 0);
+                                                   MONITOR_TX_0, NULL, 0);
                        kfree(isac->mon_tx);
                        isac->mon_tx = NULL;
                        isac->mon_txc = 0;
@@ -384,12 +384,12 @@ afterMONR1:
                }
                WriteISAC(isac, ISAC_MOX0, isac->mon_tx[isac->mon_txp++]);
                pr_debug("%s: ISAC %02x -> MOX0\n", isac->name,
-                       isac->mon_tx[isac->mon_txp - 1]);
+                        isac->mon_tx[isac->mon_txp - 1]);
        }
 AfterMOX0:
        if (val & 0x20) {
                if ((!isac->mon_tx) || (isac->mon_txc &&
-                       (isac->mon_txp >= isac->mon_txc) && !(val & 0x80))) {
+                                       (isac->mon_txp >= isac->mon_txc) && !(val & 0x80))) {
                        isac->mocr &= 0x0f;
                        WriteISAC(isac, ISAC_MOCR, isac->mocr);
                        isac->mocr |= 0xa0;
@@ -397,7 +397,7 @@ AfterMOX0:
                        if (isac->mon_txc && (isac->mon_txp >= isac->mon_txc)) {
                                if (isac->monitor)
                                        ret = isac->monitor(isac->dch.hw,
-                                               MONITOR_TX_1, NULL, 0);
+                                                           MONITOR_TX_1, NULL, 0);
                        }
                        kfree(isac->mon_tx);
                        isac->mon_tx = NULL;
@@ -408,7 +408,7 @@ AfterMOX0:
                if (isac->mon_txc && (isac->mon_txp >= isac->mon_txc)) {
                        if (isac->monitor)
                                ret = isac->monitor(isac->dch.hw,
-                                       MONITOR_TX_1, NULL, 0);
+                                                   MONITOR_TX_1, NULL, 0);
                        kfree(isac->mon_tx);
                        isac->mon_tx = NULL;
                        isac->mon_txc = 0;
@@ -417,7 +417,7 @@ AfterMOX0:
                }
                WriteISAC(isac, ISAC_MOX1, isac->mon_tx[isac->mon_txp++]);
                pr_debug("%s: ISAC %02x -> MOX1\n", isac->name,
-                       isac->mon_tx[isac->mon_txp - 1]);
+                        isac->mon_tx[isac->mon_txp - 1]);
        }
 AfterMOX1:
        val = 0; /* dummy to avoid warning */
@@ -432,7 +432,7 @@ isac_cisq_irq(struct isac_hw *isac) {
        pr_debug("%s: ISAC CIR0 %02X\n", isac->name, val);
        if (val & 2) {
                pr_debug("%s: ph_state change %x->%x\n", isac->name,
-                       isac->state, (val >> 2) & 0xf);
+                        isac->state, (val >> 2) & 0xf);
                isac->state = (val >> 2) & 0xf;
                isac_ph_state_change(isac);
        }
@@ -451,7 +451,7 @@ isacsx_cic_irq(struct isac_hw *isac)
        pr_debug("%s: ISACX CIR0 %02X\n", isac->name, val);
        if (val & ISACX_CIR0_CIC0) {
                pr_debug("%s: ph_state change %x->%x\n", isac->name,
-                       isac->state, val >> 4);
+                        isac->state, val >> 4);
                isac->state = val >> 4;
                isac_ph_state_change(isac);
        }
@@ -488,7 +488,7 @@ isacsx_rme_irq(struct isac_hw *isac)
                if (isac->dch.rx_skb) {
                        skb_trim(isac->dch.rx_skb, isac->dch.rx_skb->len - 1);
                        pr_debug("%s: dchannel received %d\n", isac->name,
-                               isac->dch.rx_skb->len);
+                                isac->dch.rx_skb->len);
                        recv_Dchannel(&isac->dch);
                }
        }
@@ -628,7 +628,7 @@ isac_ctrl(struct isac_hw *isac, u32 cmd, u_long para)
                break;
        default:
                pr_debug("%s: %s unknown command %x %lx\n", isac->name,
-                       __func__, cmd, para);
+                        __func__, cmd, para);
                return -1;
        }
        return 0;
@@ -685,16 +685,16 @@ isac_l1cmd(struct dchannel *dch, u32 cmd)
        case PH_ACTIVATE_IND:
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        case PH_DEACTIVATE_IND:
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        default:
                pr_debug("%s: %s unknown command %x\n", isac->name,
-                       __func__, cmd);
+                        __func__, cmd);
                return -1;
        }
        return 0;
@@ -731,7 +731,7 @@ dbusy_timer_handler(struct isac_hw *isac)
                rbch = ReadISAC(isac, ISAC_RBCH);
                star = ReadISAC(isac, ISAC_STAR);
                pr_debug("%s: D-Channel Busy RBCH %02x STAR %02x\n",
-                       isac->name, rbch, star);
+                        isac->name, rbch, star);
                if (rbch & ISAC_RBCH_XAC) /* D-Channel Busy */
                        test_and_set_bit(FLG_L1_BUSY, &isac->dch.Flags);
                else {
@@ -753,7 +753,7 @@ static int
 open_dchannel(struct isac_hw *isac, struct channel_req *rq)
 {
        pr_debug("%s: %s dev(%d) open from %p\n", isac->name, __func__,
-               isac->dch.dev.id, __builtin_return_address(1));
+                isac->dch.dev.id, __builtin_return_address(1));
        if (rq->protocol != ISDN_P_TE_S0)
                return -EINVAL;
        if (rq->adr.channel == 1)
@@ -763,7 +763,7 @@ open_dchannel(struct isac_hw *isac, struct channel_req *rq)
        rq->ch->protocol = rq->protocol;
        if (isac->dch.state == 7)
                _queue_data(rq->ch, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                   0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
        return 0;
 }
 
@@ -807,7 +807,7 @@ isac_init(struct isac_hw *isac)
                val = ReadISAC(isac, ISACX_ID);
                if (isac->dch.debug & DEBUG_HW)
                        pr_notice("%s: ISACX Design ID %x\n",
-                               isac->name, val & 0x3f);
+                                 isac->name, val & 0x3f);
                val = ReadISAC(isac, ISACX_CIR0);
                pr_debug("%s: ISACX CIR0 %02X\n", isac->name, val);
                isac->state = val >> 4;
@@ -832,7 +832,7 @@ isac_init(struct isac_hw *isac)
                val = ReadISAC(isac, ISAC_RBCH);
                if (isac->dch.debug & DEBUG_HW)
                        pr_notice("%s: ISAC version (%x): %s\n", isac->name,
-                               val, ISACVer[(val >> 5) & 3]);
+                                 val, ISACVer[(val >> 5) & 3]);
                isac->type |= ((val >> 5) & 3);
                if (!isac->adf2)
                        isac->adf2 = 0x80;
@@ -889,7 +889,7 @@ waitforCEC(struct hscx_hw *hx)
        }
        if (to < 50)
                pr_debug("%s: B%1d CEC %d us\n", hx->ip->name, hx->bch.nr,
-                       50 - to);
+                        50 - to);
        if (!to)
                pr_info("%s: B%1d CEC timeout\n", hx->ip->name, hx->bch.nr);
 }
@@ -909,7 +909,7 @@ waitforXFW(struct hscx_hw *hx)
        }
        if (to < 50)
                pr_debug("%s: B%1d XFW %d us\n", hx->ip->name, hx->bch.nr,
-                       50 - to);
+                        50 - to);
        if (!to)
                pr_info("%s: B%1d XFW timeout\n", hx->ip->name, hx->bch.nr);
 }
@@ -942,7 +942,7 @@ hscx_empty_fifo(struct hscx_hw *hscx, u8 count)
        }
        if ((hscx->bch.rx_skb->len + count) > hscx->bch.maxlen) {
                pr_debug("%s: overrun %d\n", hscx->ip->name,
-                       hscx->bch.rx_skb->len + count);
+                        hscx->bch.rx_skb->len + count);
                skb_trim(hscx->bch.rx_skb, 0);
                hscx_cmdr(hscx, 0x80); /* RMC */
                return;
@@ -951,16 +951,16 @@ hscx_empty_fifo(struct hscx_hw *hscx, u8 count)
 
        if (hscx->ip->type & IPAC_TYPE_IPACX)
                hscx->ip->read_fifo(hscx->ip->hw,
-                       hscx->off + IPACX_RFIFOB, p, count);
+                                   hscx->off + IPACX_RFIFOB, p, count);
        else
                hscx->ip->read_fifo(hscx->ip->hw,
-                       hscx->off, p, count);
+                                   hscx->off, p, count);
 
        hscx_cmdr(hscx, 0x80); /* RMC */
 
        if (hscx->bch.debug & DEBUG_HW_BFIFO) {
                snprintf(hscx->log, 64, "B%1d-recv %s %d ",
-                       hscx->bch.nr, hscx->ip->name, count);
+                        hscx->bch.nr, hscx->ip->name, count);
                print_hex_dump_bytes(hscx->log, DUMP_PREFIX_OFFSET, p, count);
        }
 }
@@ -984,22 +984,22 @@ hscx_fill_fifo(struct hscx_hw *hscx)
                more = 1;
        }
        pr_debug("%s: B%1d %d/%d/%d\n", hscx->ip->name, hscx->bch.nr, count,
-               hscx->bch.tx_idx, hscx->bch.tx_skb->len);
+                hscx->bch.tx_idx, hscx->bch.tx_skb->len);
        hscx->bch.tx_idx += count;
 
        if (hscx->ip->type & IPAC_TYPE_IPACX)
                hscx->ip->write_fifo(hscx->ip->hw,
-                       hscx->off + IPACX_XFIFOB, p, count);
+                                    hscx->off + IPACX_XFIFOB, p, count);
        else {
                waitforXFW(hscx);
                hscx->ip->write_fifo(hscx->ip->hw,
-                       hscx->off, p, count);
+                                    hscx->off, p, count);
        }
        hscx_cmdr(hscx, more ? 0x08 : 0x0a);
 
        if (hscx->bch.debug & DEBUG_HW_BFIFO) {
                snprintf(hscx->log, 64, "B%1d-send %s %d ",
-                       hscx->bch.nr, hscx->ip->name, count);
+                        hscx->bch.nr, hscx->ip->name, count);
                print_hex_dump_bytes(hscx->log, DUMP_PREFIX_OFFSET, p, count);
        }
 }
@@ -1037,18 +1037,18 @@ ipac_rme(struct hscx_hw *hx)
                if (!(rstab & 0x80)) {
                        if (hx->bch.debug & DEBUG_HW_BCHANNEL)
                                pr_notice("%s: B%1d invalid frame\n",
-                                       hx->ip->name, hx->bch.nr);
+                                         hx->ip->name, hx->bch.nr);
                }
                if (rstab & 0x40) {
                        if (hx->bch.debug & DEBUG_HW_BCHANNEL)
                                pr_notice("%s: B%1d RDO proto=%x\n",
-                                       hx->ip->name, hx->bch.nr,
-                                       hx->bch.state);
+                                         hx->ip->name, hx->bch.nr,
+                                         hx->bch.state);
                }
                if (!(rstab & 0x20)) {
                        if (hx->bch.debug & DEBUG_HW_BCHANNEL)
                                pr_notice("%s: B%1d CRC error\n",
-                                       hx->ip->name, hx->bch.nr);
+                                         hx->ip->name, hx->bch.nr);
                }
                hscx_cmdr(hx, 0x80); /* Do RMC */
                return;
@@ -1065,7 +1065,7 @@ ipac_rme(struct hscx_hw *hx)
                return;
        if (hx->bch.rx_skb->len < 2) {
                pr_debug("%s: B%1d frame to short %d\n",
-                       hx->ip->name, hx->bch.nr, hx->bch.rx_skb->len);
+                        hx->ip->name, hx->bch.nr, hx->bch.rx_skb->len);
                skb_trim(hx->bch.rx_skb, 0);
        } else {
                skb_trim(hx->bch.rx_skb, hx->bch.rx_skb->len - 1);
@@ -1086,7 +1086,7 @@ ipac_irq(struct hscx_hw *hx, u8 ista)
                if (m & ista) {
                        exirb = ReadHSCX(hx, IPAC_EXIRB);
                        pr_debug("%s: B%1d EXIRB %02x\n", hx->ip->name,
-                               hx->bch.nr, exirb);
+                                hx->bch.nr, exirb);
                }
        } else if (hx->bch.nr & 2) { /* HSCX B */
                if (ista & (HSCX__EXA | HSCX__ICA))
@@ -1094,7 +1094,7 @@ ipac_irq(struct hscx_hw *hx, u8 ista)
                if (ista & HSCX__EXB) {
                        exirb = ReadHSCX(hx, IPAC_EXIRB);
                        pr_debug("%s: B%1d EXIRB %02x\n", hx->ip->name,
-                               hx->bch.nr, exirb);
+                                hx->bch.nr, exirb);
                }
                istab = ista & 0xF8;
        } else { /* HSCX A */
@@ -1102,7 +1102,7 @@ ipac_irq(struct hscx_hw *hx, u8 ista)
                if (ista & HSCX__EXA) {
                        exirb = ReadHSCX(hx, IPAC_EXIRB);
                        pr_debug("%s: B%1d EXIRB %02x\n", hx->ip->name,
-                               hx->bch.nr, exirb);
+                                hx->bch.nr, exirb);
                }
                istab = istab & 0xF8;
        }
@@ -1141,7 +1141,7 @@ ipac_irq(struct hscx_hw *hx, u8 ista)
                        return;
                }
                pr_debug("%s: B%1d XDU error at len %d\n", hx->ip->name,
-                       hx->bch.nr, hx->bch.tx_idx);
+                        hx->bch.nr, hx->bch.tx_idx);
                hx->bch.tx_idx = 0;
                hscx_cmdr(hx, 0x01);    /* XRES */
        }
@@ -1204,10 +1204,10 @@ mISDNipac_irq(struct ipac_hw *ipac, int maxloop)
                return IRQ_NONE;
        if (cnt < maxloop)
                pr_debug("%s: %d irqloops cpu%d\n", ipac->name,
-                       maxloop - cnt, smp_processor_id());
+                        maxloop - cnt, smp_processor_id());
        if (maxloop && !cnt)
                pr_notice("%s: %d IRQ LOOP cpu%d\n", ipac->name,
-                       maxloop, smp_processor_id());
+                         maxloop, smp_processor_id());
        return IRQ_HANDLED;
 }
 EXPORT_SYMBOL(mISDNipac_irq);
@@ -1216,7 +1216,7 @@ static int
 hscx_mode(struct hscx_hw *hscx, u32 bprotocol)
 {
        pr_debug("%s: HSCX %c protocol %x-->%x ch %d\n", hscx->ip->name,
-               '@' + hscx->bch.nr, hscx->bch.state, bprotocol, hscx->bch.nr);
+                '@' + hscx->bch.nr, hscx->bch.state, bprotocol, hscx->bch.nr);
        if (hscx->ip->type & IPAC_TYPE_IPACX) {
                if (hscx->bch.nr & 1) { /* B1 and ICA */
                        WriteIPAC(hscx->ip, ISACX_BCHA_TSDP_BC1, 0x80);
@@ -1364,7 +1364,7 @@ hscx_l2l1(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(hx->ip->hwlock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                               NULL, GFP_KERNEL);
+                                   NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                spin_lock_irqsave(hx->ip->hwlock, flags);
@@ -1372,7 +1372,7 @@ hscx_l2l1(struct mISDNchannel *ch, struct sk_buff *skb)
                hscx_mode(hx, ISDN_P_NONE);
                spin_unlock_irqrestore(hx->ip->hwlock, flags);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
                ret = 0;
                break;
        default:
@@ -1394,7 +1394,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_GETOP:
                cq->op = 0;
                break;
-       /* Nothing implemented yet */
+               /* Nothing implemented yet */
        case MISDN_CTRL_FILL_EMPTY:
        default:
                pr_info("%s: unknown Op %x\n", __func__, cq->op);
@@ -1467,7 +1467,7 @@ hscx_init(struct hscx_hw *hx)
                pr_debug("%s: HSCX VSTR %02x\n", hx->ip->name, val);
                if (hx->bch.debug & DEBUG_HW)
                        pr_notice("%s: HSCX version %s\n", hx->ip->name,
-                               HSCXVer[val & 0x0f]);
+                                 HSCXVer[val & 0x0f]);
        } else
                WriteHSCX(hx, IPAC_CCR1, 0x82);
        WriteHSCX(hx, IPAC_CCR2, 0x30);
@@ -1491,7 +1491,7 @@ ipac_init(struct ipac_hw *ipac)
                val = ReadIPAC(ipac, IPAC_CONF);
                /* conf is default 0, but can be overwritten by card setup */
                pr_debug("%s: IPAC CONF %02x/%02x\n", ipac->name,
-                       val, ipac->conf);
+                        val, ipac->conf);
                WriteIPAC(ipac, IPAC_CONF, ipac->conf);
                val = ReadIPAC(ipac, IPAC_ID);
                if (ipac->hscx[0].bch.debug & DEBUG_HW)
@@ -1569,7 +1569,7 @@ ipac_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        case CLOSE_CHANNEL:
                pr_debug("%s: dev(%d) close from %p\n", ipac->name,
-                       dch->dev.id, __builtin_return_address(0));
+                        dch->dev.id, __builtin_return_address(0));
                module_put(ipac->owner);
                break;
        case CONTROL_CHANNEL:
@@ -1620,7 +1620,7 @@ mISDNipac_init(struct ipac_hw *ipac, void *hw)
                ipac->hscx[i].bch.nr = i + 1;
                set_channelmap(i + 1, ipac->isac.dch.dev.channelmap);
                list_add(&ipac->hscx[i].bch.ch.list,
-                       &ipac->isac.dch.dev.bchannels);
+                        &ipac->isac.dch.dev.bchannels);
                mISDN_initbchannel(&ipac->hscx[i].bch, MAX_DATA_MEM);
                ipac->hscx[i].bch.ch.nr = i + 1;
                ipac->hscx[i].bch.ch.send = &hscx_l2l1;
index 7034af2..10446ab 100644 (file)
@@ -42,7 +42,7 @@ MODULE_VERSION(ISAR_REV);
 
 static const u8 faxmodulation_s[] = "3,24,48,72,73,74,96,97,98,121,122,145,146";
 static const u8 faxmodulation[] = {3, 24, 48, 72, 73, 74, 96, 97, 98, 121,
-                                       122, 145, 146};
+                                  122, 145, 146};
 #define FAXMODCNT 13
 
 static void isar_setup(struct isar_hw *);
@@ -84,9 +84,9 @@ send_mbox(struct isar_hw *isar, u8 his, u8 creg, u8 len, u8 *msg)
 
                        while (l < (int)len) {
                                hex_dump_to_buffer(msg + l, len - l, 32, 1,
-                                       isar->log, 256, 1);
+                                                  isar->log, 256, 1);
                                pr_debug("%s: %s %02x: %s\n", isar->name,
-                                       __func__, l, isar->log);
+                                        __func__, l, isar->log);
                                l += 32;
                        }
                }
@@ -113,9 +113,9 @@ rcv_mbox(struct isar_hw *isar, u8 *msg)
 
                        while (l < (int)isar->clsb) {
                                hex_dump_to_buffer(msg + l, isar->clsb - l, 32,
-                                       1, isar->log, 256, 1);
+                                                  1, isar->log, 256, 1);
                                pr_debug("%s: %s %02x: %s\n", isar->name,
-                                       __func__, l, isar->log);
+                                        __func__, l, isar->log);
                                l += 32;
                        }
                }
@@ -130,7 +130,7 @@ get_irq_infos(struct isar_hw *isar)
        isar->cmsb = isar->read_reg(isar->hw, ISAR_CTRL_H);
        isar->clsb = isar->read_reg(isar->hw, ISAR_CTRL_L);
        pr_debug("%s: rcv_mbox(%02x,%02x,%d)\n", isar->name,
-               isar->iis, isar->cmsb, isar->clsb);
+                isar->iis, isar->cmsb, isar->clsb);
 }
 
 /*
@@ -154,7 +154,7 @@ poll_mbox(struct isar_hw *isar, int maxdelay)
                rcv_mbox(isar, NULL);
        }
        pr_debug("%s: pulled %d bytes after %d us\n",
-               isar->name, isar->clsb, maxdelay - t);
+                isar->name, isar->clsb, maxdelay - t);
        return t;
 }
 
@@ -200,13 +200,13 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
 
        if (1 != isar->version) {
                pr_err("%s: ISAR wrong version %d firmware download aborted\n",
-                       isar->name, isar->version);
+                      isar->name, isar->version);
                return -EINVAL;
        }
        if (!(saved_debug & DEBUG_HW_FIRMWARE_FIFO))
                isar->ch[0].bch.debug &= ~DEBUG_HW_BFIFO;
        pr_debug("%s: load firmware %d words (%d bytes)\n",
-               isar->name, size/2, size);
+                isar->name, size / 2, size);
        cnt = 0;
        size /= 2;
        /* disable ISAR IRQ */
@@ -219,7 +219,7 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
                blk_head.d_key = le16_to_cpu(*sp++);
                cnt += 3;
                pr_debug("ISAR firmware block (%#x,%d,%#x)\n",
-                       blk_head.sadr, blk_head.len, blk_head.d_key & 0xff);
+                        blk_head.sadr, blk_head.len, blk_head.d_key & 0xff);
                left = blk_head.len;
                if (cnt + left > size) {
                        pr_info("%s: firmware error have %d need %d words\n",
@@ -229,7 +229,7 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
                }
                spin_lock_irqsave(isar->hwlock, flags);
                if (!send_mbox(isar, ISAR_HIS_DKEY, blk_head.d_key & 0xff,
-                   0, NULL)) {
+                              0, NULL)) {
                        pr_info("ISAR send_mbox dkey failed\n");
                        ret = -ETIME;
                        goto reterror;
@@ -260,7 +260,7 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
                        cnt += noc;
                        *mp++ = noc;
                        pr_debug("%s: load %3d words at %04x\n", isar->name,
-                               noc, blk_head.sadr);
+                                noc, blk_head.sadr);
                        blk_head.sadr += noc;
                        while (noc) {
                                val = le16_to_cpu(*sp++);
@@ -289,7 +289,7 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
                        }
                }
                pr_debug("%s: ISAR firmware block %d words loaded\n",
-                       isar->name, blk_head.len);
+                        isar->name, blk_head.len);
        }
        isar->ch[0].bch.debug = saved_debug;
        /* 10ms delay */
@@ -333,7 +333,7 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
                goto reterrflg;
        } else
                pr_debug("%s: ISAR general status event %x\n",
-                       isar->name, isar->bstat);
+                        isar->name, isar->bstat);
        /* 10ms delay */
        cnt = 10;
        while (cnt--)
@@ -387,7 +387,7 @@ load_firmware(struct isar_hw *isar, const u8 *buf, int size)
        } else {
                if ((isar->cmsb == ISAR_CTRL_SWVER) && (isar->clsb == 1)) {
                        pr_notice("%s: ISAR software version %#x\n",
-                               isar->name, isar->buf[0]);
+                                 isar->name, isar->buf[0]);
                } else {
                        pr_info("%s: ISAR wrong swver response (%x,%x)"
                                " cnt(%d)\n", isar->name, isar->cmsb,
@@ -431,7 +431,7 @@ isar_rcv_frame(struct isar_ch *ch)
        switch (ch->bch.state) {
        case ISDN_P_NONE:
                pr_debug("%s: ISAR protocol 0 spurious IIS_RDATA %x/%x/%x\n",
-                       ch->is->name, ch->is->iis, ch->is->cmsb, ch->is->clsb);
+                        ch->is->name, ch->is->iis, ch->is->cmsb, ch->is->clsb);
                ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                break;
        case ISDN_P_B_RAW:
@@ -439,7 +439,7 @@ isar_rcv_frame(struct isar_ch *ch)
        case ISDN_P_B_MODEM_ASYNC:
                if (!ch->bch.rx_skb) {
                        ch->bch.rx_skb = mI_alloc_skb(ch->bch.maxlen,
-                                               GFP_ATOMIC);
+                                                     GFP_ATOMIC);
                        if (unlikely(!ch->bch.rx_skb)) {
                                pr_info("%s: B receive out of memory\n",
                                        ch->is->name);
@@ -453,7 +453,7 @@ isar_rcv_frame(struct isar_ch *ch)
        case ISDN_P_B_HDLC:
                if (!ch->bch.rx_skb) {
                        ch->bch.rx_skb = mI_alloc_skb(ch->bch.maxlen,
-                                               GFP_ATOMIC);
+                                                     GFP_ATOMIC);
                        if (unlikely(!ch->bch.rx_skb)) {
                                pr_info("%s: B receive out of memory\n",
                                        ch->is->name);
@@ -464,14 +464,14 @@ isar_rcv_frame(struct isar_ch *ch)
                if ((ch->bch.rx_skb->len + ch->is->clsb) >
                    (ch->bch.maxlen + 2)) {
                        pr_debug("%s: incoming packet too large\n",
-                               ch->is->name);
+                                ch->is->name);
                        ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                        skb_trim(ch->bch.rx_skb, 0);
                        break;
                }
                if (ch->is->cmsb & HDLC_ERROR) {
                        pr_debug("%s: ISAR frame error %x len %d\n",
-                               ch->is->name, ch->is->cmsb, ch->is->clsb);
+                                ch->is->name, ch->is->cmsb, ch->is->clsb);
 #ifdef ERROR_STATISTIC
                        if (ch->is->cmsb & HDLC_ERR_RER)
                                ch->bch.err_inv++;
@@ -489,7 +489,7 @@ isar_rcv_frame(struct isar_ch *ch)
                if (ch->is->cmsb & HDLC_FED) {
                        if (ch->bch.rx_skb->len < 3) { /* last 2 are the FCS */
                                pr_debug("%s: ISAR frame to short %d\n",
-                                       ch->is->name, ch->bch.rx_skb->len);
+                                        ch->is->name, ch->bch.rx_skb->len);
                                skb_trim(ch->bch.rx_skb, 0);
                                break;
                        }
@@ -500,7 +500,7 @@ isar_rcv_frame(struct isar_ch *ch)
        case ISDN_P_B_T30_FAX:
                if (ch->state != STFAX_ACTIV) {
                        pr_debug("%s: isar_rcv_frame: not ACTIV\n",
-                               ch->is->name);
+                                ch->is->name);
                        ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                        if (ch->bch.rx_skb)
                                skb_trim(ch->bch.rx_skb, 0);
@@ -508,7 +508,7 @@ isar_rcv_frame(struct isar_ch *ch)
                }
                if (!ch->bch.rx_skb) {
                        ch->bch.rx_skb = mI_alloc_skb(ch->bch.maxlen,
-                                               GFP_ATOMIC);
+                                                     GFP_ATOMIC);
                        if (unlikely(!ch->bch.rx_skb)) {
                                pr_info("%s: B receive out of memory\n",
                                        __func__);
@@ -519,14 +519,14 @@ isar_rcv_frame(struct isar_ch *ch)
                if (ch->cmd == PCTRL_CMD_FRM) {
                        rcv_mbox(ch->is, skb_put(ch->bch.rx_skb, ch->is->clsb));
                        pr_debug("%s: isar_rcv_frame: %d\n",
-                               ch->is->name, ch->bch.rx_skb->len);
+                                ch->is->name, ch->bch.rx_skb->len);
                        if (ch->is->cmsb & SART_NMD) { /* ABORT */
                                pr_debug("%s: isar_rcv_frame: no more data\n",
-                                       ch->is->name);
+                                        ch->is->name);
                                ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                                send_mbox(ch->is, SET_DPS(ch->dpath) |
-                                       ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC,
-                                       0, NULL);
+                                         ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC,
+                                         0, NULL);
                                ch->state = STFAX_ESCAPE;
                                /* set_skb_flag(skb, DF_NOMOREDATA); */
                        }
@@ -537,7 +537,7 @@ isar_rcv_frame(struct isar_ch *ch)
                }
                if (ch->cmd != PCTRL_CMD_FRH) {
                        pr_debug("%s: isar_rcv_frame: unknown fax mode %x\n",
-                               ch->is->name, ch->cmd);
+                                ch->is->name, ch->cmd);
                        ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                        if (ch->bch.rx_skb)
                                skb_trim(ch->bch.rx_skb, 0);
@@ -574,12 +574,12 @@ isar_rcv_frame(struct isar_ch *ch)
                }
                if (ch->is->cmsb & SART_NMD) { /* ABORT */
                        pr_debug("%s: isar_rcv_frame: no more data\n",
-                               ch->is->name);
+                                ch->is->name);
                        ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                        if (ch->bch.rx_skb)
                                skb_trim(ch->bch.rx_skb, 0);
                        send_mbox(ch->is, SET_DPS(ch->dpath) |
-                               ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC, 0, NULL);
+                                 ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC, 0, NULL);
                        ch->state = STFAX_ESCAPE;
                        deliver_status(ch, HW_MOD_NOCARR);
                }
@@ -599,14 +599,14 @@ isar_fill_fifo(struct isar_ch *ch)
        u8 *ptr;
 
        pr_debug("%s: ch%d  tx_skb %p tx_idx %d\n",
-               ch->is->name, ch->bch.nr, ch->bch.tx_skb, ch->bch.tx_idx);
+                ch->is->name, ch->bch.nr, ch->bch.tx_skb, ch->bch.tx_idx);
        if (!ch->bch.tx_skb)
                return;
        count = ch->bch.tx_skb->len - ch->bch.tx_idx;
        if (count <= 0)
                return;
        if (!(ch->is->bstat &
-               (ch->dpath == 1 ? BSTAT_RDM1 : BSTAT_RDM2)))
+             (ch->dpath == 1 ? BSTAT_RDM1 : BSTAT_RDM2)))
                return;
        if (count > ch->mml) {
                msb = 0;
@@ -618,17 +618,17 @@ isar_fill_fifo(struct isar_ch *ch)
        if (!ch->bch.tx_idx) {
                pr_debug("%s: frame start\n", ch->is->name);
                if ((ch->bch.state == ISDN_P_B_T30_FAX) &&
-                       (ch->cmd == PCTRL_CMD_FTH)) {
+                   (ch->cmd == PCTRL_CMD_FTH)) {
                        if (count > 1) {
                                if ((ptr[0] == 0xff) && (ptr[1] == 0x13)) {
                                        /* last frame */
                                        test_and_set_bit(FLG_LASTDATA,
-                                               &ch->bch.Flags);
+                                                        &ch->bch.Flags);
                                        pr_debug("%s: set LASTDATA\n",
-                                               ch->is->name);
+                                                ch->is->name);
                                        if (msb == HDLC_FED)
                                                test_and_set_bit(FLG_DLEETX,
-                                                       &ch->bch.Flags);
+                                                                &ch->bch.Flags);
                                }
                        }
                }
@@ -643,21 +643,21 @@ isar_fill_fifo(struct isar_ch *ch)
        case ISDN_P_B_L2DTMF:
        case ISDN_P_B_MODEM_ASYNC:
                send_mbox(ch->is, SET_DPS(ch->dpath) | ISAR_HIS_SDATA,
-                       0, count, ptr);
+                         0, count, ptr);
                break;
        case ISDN_P_B_HDLC:
                send_mbox(ch->is, SET_DPS(ch->dpath) | ISAR_HIS_SDATA,
-                       msb, count, ptr);
+                         msb, count, ptr);
                break;
        case ISDN_P_B_T30_FAX:
                if (ch->state != STFAX_ACTIV)
                        pr_debug("%s: not ACTIV\n", ch->is->name);
                else if (ch->cmd == PCTRL_CMD_FTH)
                        send_mbox(ch->is, SET_DPS(ch->dpath) | ISAR_HIS_SDATA,
-                               msb, count, ptr);
+                                 msb, count, ptr);
                else if (ch->cmd == PCTRL_CMD_FTM)
                        send_mbox(ch->is, SET_DPS(ch->dpath) | ISAR_HIS_SDATA,
-                               0, count, ptr);
+                                 0, count, ptr);
                else
                        pr_debug("%s: not FTH/FTM\n", ch->is->name);
                break;
@@ -687,8 +687,8 @@ static void
 send_next(struct isar_ch *ch)
 {
        pr_debug("%s: %s ch%d tx_skb %p tx_idx %d\n",
-               ch->is->name, __func__, ch->bch.nr,
-               ch->bch.tx_skb, ch->bch.tx_idx);
+                ch->is->name, __func__, ch->bch.nr,
+                ch->bch.tx_skb, ch->bch.tx_idx);
        if (ch->bch.state == ISDN_P_B_T30_FAX) {
                if (ch->cmd == PCTRL_CMD_FTH) {
                        if (test_bit(FLG_LASTDATA, &ch->bch.Flags)) {
@@ -713,12 +713,12 @@ send_next(struct isar_ch *ch)
        else {
                if (test_and_clear_bit(FLG_DLEETX, &ch->bch.Flags)) {
                        if (test_and_clear_bit(FLG_LASTDATA,
-                           &ch->bch.Flags)) {
+                                              &ch->bch.Flags)) {
                                if (test_and_clear_bit(FLG_NMD_DATA,
-                                   &ch->bch.Flags)) {
+                                                      &ch->bch.Flags)) {
                                        u8 zd = 0;
                                        send_mbox(ch->is, SET_DPS(ch->dpath) |
-                                               ISAR_HIS_SDATA, 0x01, 1, &zd);
+                                                 ISAR_HIS_SDATA, 0x01, 1, &zd);
                                }
                                test_and_set_bit(FLG_LL_OK, &ch->bch.Flags);
                        } else {
@@ -738,7 +738,7 @@ check_send(struct isar_hw *isar, u8 rdm)
                ch = sel_bch_isar(isar, 1);
                if (ch && test_bit(FLG_ACTIVE, &ch->bch.Flags)) {
                        if (ch->bch.tx_skb && (ch->bch.tx_skb->len >
-                           ch->bch.tx_idx))
+                                              ch->bch.tx_idx))
                                isar_fill_fifo(ch);
                        else
                                send_next(ch);
@@ -748,7 +748,7 @@ check_send(struct isar_hw *isar, u8 rdm)
                ch = sel_bch_isar(isar, 2);
                if (ch && test_bit(FLG_ACTIVE, &ch->bch.Flags)) {
                        if (ch->bch.tx_skb && (ch->bch.tx_skb->len >
-                           ch->bch.tx_idx))
+                                              ch->bch.tx_idx))
                                isar_fill_fifo(ch);
                        else
                                send_next(ch);
@@ -757,10 +757,10 @@ check_send(struct isar_hw *isar, u8 rdm)
 }
 
 const char *dmril[] = {"NO SPEED", "1200/75", "NODEF2", "75/1200", "NODEF4",
-                       "300", "600", "1200", "2400", "4800", "7200",
-                       "9600nt", "9600t", "12000", "14400", "WRONG"};
+                      "300", "600", "1200", "2400", "4800", "7200",
+                      "9600nt", "9600t", "12000", "14400", "WRONG"};
 const char *dmrim[] = {"NO MOD", "NO DEF", "V32/V32b", "V22", "V21",
-                       "Bell103", "V23", "Bell202", "V17", "V29", "V27ter"};
+                      "Bell103", "V23", "Bell202", "V17", "V29", "V27ter"};
 
 static void
 isar_pump_status_rsp(struct isar_ch *ch) {
@@ -892,10 +892,10 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                        pr_debug("%s: pump stev LINE_TX_H\n", ch->is->name);
                        ch->state = STFAX_CONT;
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                               PCTRL_CMD_CONT, 0, NULL);
+                                 PCTRL_CMD_CONT, 0, NULL);
                } else {
                        pr_debug("%s: pump stev LINE_TX_H wrong st %x\n",
-                               ch->is->name, ch->state);
+                                ch->is->name, ch->state);
                }
                break;
        case PSEV_LINE_RX_H:
@@ -903,10 +903,10 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                        pr_debug("%s: pump stev LINE_RX_H\n", ch->is->name);
                        ch->state = STFAX_CONT;
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                               PCTRL_CMD_CONT, 0, NULL);
+                                 PCTRL_CMD_CONT, 0, NULL);
                } else {
                        pr_debug("%s: pump stev LINE_RX_H wrong st %x\n",
-                               ch->is->name, ch->state);
+                                ch->is->name, ch->state);
                }
                break;
        case PSEV_LINE_TX_B:
@@ -914,10 +914,10 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                        pr_debug("%s: pump stev LINE_TX_B\n", ch->is->name);
                        ch->state = STFAX_CONT;
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                               PCTRL_CMD_CONT, 0, NULL);
+                                 PCTRL_CMD_CONT, 0, NULL);
                } else {
                        pr_debug("%s: pump stev LINE_TX_B wrong st %x\n",
-                               ch->is->name, ch->state);
+                                ch->is->name, ch->state);
                }
                break;
        case PSEV_LINE_RX_B:
@@ -925,10 +925,10 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                        pr_debug("%s: pump stev LINE_RX_B\n", ch->is->name);
                        ch->state = STFAX_CONT;
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                               PCTRL_CMD_CONT, 0, NULL);
+                                 PCTRL_CMD_CONT, 0, NULL);
                } else {
                        pr_debug("%s: pump stev LINE_RX_B wrong st %x\n",
-                               ch->is->name, ch->state);
+                                ch->is->name, ch->state);
                }
                break;
        case PSEV_RSP_CONN:
@@ -941,19 +941,19 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                                int delay = (ch->mod == 3) ? 1000 : 200;
                                /* 1s (200 ms) Flags before data */
                                if (test_and_set_bit(FLG_FTI_RUN,
-                                   &ch->bch.Flags))
+                                                    &ch->bch.Flags))
                                        del_timer(&ch->ftimer);
                                ch->ftimer.expires =
-                                       jiffies + ((delay * HZ)/1000);
+                                       jiffies + ((delay * HZ) / 1000);
                                test_and_set_bit(FLG_LL_CONN,
-                                       &ch->bch.Flags);
+                                                &ch->bch.Flags);
                                add_timer(&ch->ftimer);
                        } else {
                                deliver_status(ch, HW_MOD_CONNECT);
                        }
                } else {
                        pr_debug("%s: pump stev RSP_CONN wrong st %x\n",
-                               ch->is->name, ch->state);
+                                ch->is->name, ch->state);
                }
                break;
        case PSEV_FLAGS_DET:
@@ -961,7 +961,7 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                break;
        case PSEV_RSP_DISC:
                pr_debug("%s: pump stev RSP_DISC state(%d)\n",
-                       ch->is->name, ch->state);
+                        ch->is->name, ch->state);
                if (ch->state == STFAX_ESCAPE) {
                        p1 = 5;
                        switch (ch->newcmd) {
@@ -972,7 +972,7 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                                p1 = 2;
                        case PCTRL_CMD_FTH:
                                send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                                       PCTRL_CMD_SILON, 1, &p1);
+                                         PCTRL_CMD_SILON, 1, &p1);
                                ch->state = STFAX_SILDET;
                                break;
                        case PCTRL_CMD_FRH:
@@ -983,13 +983,13 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                                ch->cmd = ch->newcmd;
                                ch->newcmd = 0;
                                send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                                       ch->cmd, 1, &p1);
+                                         ch->cmd, 1, &p1);
                                ch->state = STFAX_LINE;
                                ch->try_mod = 3;
                                break;
                        default:
                                pr_debug("%s: RSP_DISC unknown newcmd %x\n",
-                                       ch->is->name, ch->newcmd);
+                                        ch->is->name, ch->newcmd);
                                break;
                        }
                } else if (ch->state == STFAX_ACTIV) {
@@ -1015,7 +1015,7 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
                        ch->cmd = ch->newcmd;
                        ch->newcmd = 0;
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                               ch->cmd, 1, &p1);
+                                 ch->cmd, 1, &p1);
                        ch->state = STFAX_LINE;
                        ch->try_mod = 3;
                }
@@ -1026,17 +1026,17 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) {
        case PSEV_RSP_FCERR:
                if (ch->state == STFAX_LINE) {
                        pr_debug("%s: pump stev RSP_FCERR try %d\n",
-                               ch->is->name, ch->try_mod);
+                                ch->is->name, ch->try_mod);
                        if (ch->try_mod--) {
                                send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
-                                       ch->cmd, 1, &ch->mod);
+                                         ch->cmd, 1, &ch->mod);
                                break;
                        }
                }
                pr_debug("%s: pump stev RSP_FCERR\n", ch->is->name);
                ch->state = STFAX_ESCAPE;
                send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC,
-                       0, NULL);
+                         0, NULL);
                deliver_status(ch, HW_MOD_FCERROR);
                break;
        default:
@@ -1057,8 +1057,8 @@ mISDNisar_irq(struct isar_hw *isar)
                        isar_rcv_frame(ch);
                else {
                        pr_debug("%s: ISAR spurious IIS_RDATA %x/%x/%x\n",
-                               isar->name, isar->iis, isar->cmsb,
-                               isar->clsb);
+                                isar->name, isar->iis, isar->cmsb,
+                                isar->clsb);
                        isar->write_reg(isar->hw, ISAR_IIA, 0);
                }
                break;
@@ -1078,7 +1078,7 @@ mISDNisar_irq(struct isar_hw *isar)
                }
 #endif
                pr_debug("%s: Buffer STEV dpath%d msb(%x)\n",
-                       isar->name, isar->iis>>6, isar->cmsb);
+                        isar->name, isar->iis >> 6, isar->cmsb);
                isar->write_reg(isar->hw, ISAR_IIA, 0);
                break;
        case ISAR_IIS_PSTEV:
@@ -1100,16 +1100,16 @@ mISDNisar_irq(struct isar_hw *isar)
                                        tt += 7;
                                tt |= DTMF_TONE_VAL;
                                _queue_data(&ch->bch.ch, PH_CONTROL_IND,
-                                       MISDN_ID_ANY, sizeof(tt), &tt,
-                                       GFP_ATOMIC);
+                                           MISDN_ID_ANY, sizeof(tt), &tt,
+                                           GFP_ATOMIC);
                        } else
                                pr_debug("%s: ISAR IIS_PSTEV pm %d sta %x\n",
-                                       isar->name, ch->bch.state,
-                                       isar->cmsb);
+                                        isar->name, ch->bch.state,
+                                        isar->cmsb);
                } else {
                        pr_debug("%s: ISAR spurious IIS_PSTEV %x/%x/%x\n",
-                               isar->name, isar->iis, isar->cmsb,
-                               isar->clsb);
+                                isar->name, isar->iis, isar->cmsb,
+                                isar->clsb);
                        isar->write_reg(isar->hw, ISAR_IIA, 0);
                }
                break;
@@ -1120,8 +1120,8 @@ mISDNisar_irq(struct isar_hw *isar)
                        isar_pump_status_rsp(ch);
                } else {
                        pr_debug("%s: ISAR spurious IIS_PSTRSP %x/%x/%x\n",
-                               isar->name, isar->iis, isar->cmsb,
-                               isar->clsb);
+                                isar->name, isar->iis, isar->cmsb,
+                                isar->clsb);
                        isar->write_reg(isar->hw, ISAR_IIA, 0);
                }
                break;
@@ -1137,7 +1137,7 @@ mISDNisar_irq(struct isar_hw *isar)
        default:
                rcv_mbox(isar, NULL);
                pr_debug("%s: unhandled msg iis(%x) ctrl(%x/%x)\n",
-                       isar->name, isar->iis, isar->cmsb, isar->clsb);
+                        isar->name, isar->iis, isar->cmsb, isar->clsb);
                break;
        }
 }
@@ -1169,11 +1169,11 @@ setup_pump(struct isar_ch *ch) {
                if (test_bit(FLG_DTMFSEND, &ch->bch.Flags)) {
                        param[0] = 5; /* TOA 5 db */
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCFG,
-                               PMOD_DTMF_TRANS, 1, param);
+                                 PMOD_DTMF_TRANS, 1, param);
                } else {
                        param[0] = 40; /* REL -46 dbm */
                        send_mbox(ch->is, dps | ISAR_HIS_PUMPCFG,
-                               PMOD_DTMF, 1, param);
+                                 PMOD_DTMF, 1, param);
                }
        case ISDN_P_B_MODEM_ASYNC:
                ctrl = PMOD_DATAMODEM;
@@ -1220,17 +1220,17 @@ setup_sart(struct isar_ch *ch) {
        switch (ch->bch.state) {
        case ISDN_P_NONE:
                send_mbox(ch->is, dps | ISAR_HIS_SARTCFG, SMODE_DISABLE,
-                       0, NULL);
+                         0, NULL);
                break;
        case ISDN_P_B_RAW:
        case ISDN_P_B_L2DTMF:
                send_mbox(ch->is, dps | ISAR_HIS_SARTCFG, SMODE_BINARY,
-                       2, param);
+                         2, param);
                break;
        case ISDN_P_B_HDLC:
        case ISDN_P_B_T30_FAX:
                send_mbox(ch->is, dps | ISAR_HIS_SARTCFG, SMODE_HDLC,
-                       1, param);
+                         1, param);
                break;
        case ISDN_P_B_MODEM_ASYNC:
                ctrl = SMODE_V14 | SCTRL_HDMC_BOTH;
@@ -1297,7 +1297,7 @@ modeisar(struct isar_ch *ch, u32 bprotocol)
                        if (!test_and_set_bit(ISAR_DP2_USE, &ch->is->Flags))
                                ch->dpath = 2;
                        else if (!test_and_set_bit(ISAR_DP1_USE,
-                           &ch->is->Flags))
+                                                  &ch->is->Flags))
                                ch->dpath = 1;
                        else {
                                pr_info("modeisar both pathes in use\n");
@@ -1307,7 +1307,7 @@ modeisar(struct isar_ch *ch, u32 bprotocol)
                                test_and_set_bit(FLG_HDLC, &ch->bch.Flags);
                        else
                                test_and_set_bit(FLG_TRANSPARENT,
-                                       &ch->bch.Flags);
+                                                &ch->bch.Flags);
                        break;
                case ISDN_P_B_MODEM_ASYNC:
                case ISDN_P_B_T30_FAX:
@@ -1328,7 +1328,7 @@ modeisar(struct isar_ch *ch, u32 bprotocol)
                }
        }
        pr_debug("%s: ISAR ch%d dp%d protocol %x->%x\n", ch->is->name,
-               ch->bch.nr, ch->dpath, ch->bch.state, bprotocol);
+                ch->bch.nr, ch->dpath, ch->bch.state, bprotocol);
        ch->bch.state = bprotocol;
        setup_pump(ch);
        setup_iom2(ch);
@@ -1353,7 +1353,7 @@ isar_pump_cmd(struct isar_ch *ch, u32 cmd, u8 para)
        u8 ctrl = 0, nom = 0, p1 = 0;
 
        pr_debug("%s: isar_pump_cmd %x/%x state(%x)\n",
-               ch->is->name, cmd, para, ch->bch.state);
+                ch->is->name, cmd, para, ch->bch.state);
        switch (cmd) {
        case HW_MOD_FTM:
                if (ch->state == STFAX_READY) {
@@ -1367,7 +1367,7 @@ isar_pump_cmd(struct isar_ch *ch, u32 cmd, u8 para)
                        ch->newcmd = 0;
                        ch->try_mod = 3;
                } else if ((ch->state == STFAX_ACTIV) &&
-                   (ch->cmd == PCTRL_CMD_FTM) && (ch->mod == para))
+                          (ch->cmd == PCTRL_CMD_FTM) && (ch->mod == para))
                        deliver_status(ch, HW_MOD_CONNECT);
                else {
                        ch->newmod = para;
@@ -1389,8 +1389,8 @@ isar_pump_cmd(struct isar_ch *ch, u32 cmd, u8 para)
                        ch->newcmd = 0;
                        ch->try_mod = 3;
                } else if ((ch->state == STFAX_ACTIV) &&
-                   (ch->cmd == PCTRL_CMD_FTH) && (ch->mod == para))
-                               deliver_status(ch, HW_MOD_CONNECT);
+                          (ch->cmd == PCTRL_CMD_FTH) && (ch->mod == para))
+                       deliver_status(ch, HW_MOD_CONNECT);
                else {
                        ch->newmod = para;
                        ch->newcmd = PCTRL_CMD_FTH;
@@ -1411,7 +1411,7 @@ isar_pump_cmd(struct isar_ch *ch, u32 cmd, u8 para)
                        ch->newcmd = 0;
                        ch->try_mod = 3;
                } else if ((ch->state == STFAX_ACTIV) &&
-                   (ch->cmd == PCTRL_CMD_FRM) && (ch->mod == para))
+                          (ch->cmd == PCTRL_CMD_FRM) && (ch->mod == para))
                        deliver_status(ch, HW_MOD_CONNECT);
                else {
                        ch->newmod = para;
@@ -1433,7 +1433,7 @@ isar_pump_cmd(struct isar_ch *ch, u32 cmd, u8 para)
                        ch->newcmd = 0;
                        ch->try_mod = 3;
                } else if ((ch->state == STFAX_ACTIV) &&
-                   (ch->cmd == PCTRL_CMD_FRH) && (ch->mod == para))
+                          (ch->cmd == PCTRL_CMD_FRH) && (ch->mod == para))
                        deliver_status(ch, HW_MOD_CONNECT);
                else {
                        ch->newmod = para;
@@ -1464,7 +1464,7 @@ isar_setup(struct isar_hw *isar)
        for (i = 0; i < 2; i++) {
                /* Buffer Config */
                send_mbox(isar, (i ? ISAR_HIS_DPS2 : ISAR_HIS_DPS1) |
-                       ISAR_HIS_P12CFG, 4, 1, &msg);
+                         ISAR_HIS_P12CFG, 4, 1, &msg);
                isar->ch[i].mml = msg;
                isar->ch[i].bch.state = 0;
                isar->ch[i].dpath = i + 1;
@@ -1505,7 +1505,7 @@ isar_l2l1(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(ich->is->hwlock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                               NULL, GFP_KERNEL);
+                                   NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                spin_lock_irqsave(ich->is->hwlock, flags);
@@ -1513,15 +1513,15 @@ isar_l2l1(struct mISDNchannel *ch, struct sk_buff *skb)
                modeisar(ich, ISDN_P_NONE);
                spin_unlock_irqrestore(ich->is->hwlock, flags);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
                ret = 0;
                break;
        case PH_CONTROL_REQ:
                val = (u32 *)skb->data;
                pr_debug("%s: PH_CONTROL | REQUEST %x/%x\n", ich->is->name,
-                       hh->id, *val);
+                        hh->id, *val);
                if ((hh->id == 0) && ((*val & ~DTMF_TONE_MASK) ==
-                   DTMF_TONE_VAL)) {
+                                     DTMF_TONE_VAL)) {
                        if (bch->state == ISDN_P_B_L2DTMF) {
                                char tt = *val & DTMF_TONE_MASK;
 
@@ -1541,7 +1541,7 @@ isar_l2l1(struct mISDNchannel *ch, struct sk_buff *skb)
                                return -EINVAL;
                        }
                } else if ((hh->id == HW_MOD_FRM) || (hh->id == HW_MOD_FRH) ||
-                   (hh->id == HW_MOD_FTM) || (hh->id == HW_MOD_FTH)) {
+                          (hh->id == HW_MOD_FTM) || (hh->id == HW_MOD_FTH)) {
                        for (id = 0; id < FAXMODCNT; id++)
                                if (faxmodulation[id] == *val)
                                        break;
@@ -1581,7 +1581,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_GETOP:
                cq->op = 0;
                break;
-       /* Nothing implemented yet */
+               /* Nothing implemented yet */
        case MISDN_CTRL_FILL_EMPTY:
        default:
                pr_info("%s: unknown Op %x\n", __func__, cq->op);
@@ -1647,7 +1647,7 @@ init_isar(struct isar_hw *isar)
                isar->version = ISARVersion(isar);
                if (isar->ch[0].bch.debug & DEBUG_HW)
                        pr_notice("%s: Testing version %d (%d time)\n",
-                               isar->name, isar->version, 3 - cnt);
+                                 isar->name, isar->version, 3 - cnt);
                if (isar->version == 1)
                        break;
                isar->ctrl(isar->hw, HW_RESET_REQ, 0);
index 5ef9f11..dd6de9f 100644 (file)
@@ -191,7 +191,7 @@ fill_mem(struct tiger_ch *bc, u32 idx, u32 cnt, u32 fill)
        u32 mask = 0xff, val;
 
        pr_debug("%s: B%1d fill %02x len %d idx %d/%d\n", card->name,
-               bc->bch.nr, fill, cnt, idx, card->send.idx);
+                bc->bch.nr, fill, cnt, idx, card->send.idx);
        if (bc->bch.nr & 2) {
                fill  <<= 8;
                mask <<= 8;
@@ -213,7 +213,7 @@ mode_tiger(struct tiger_ch *bc, u32 protocol)
        struct tiger_hw *card = bc->bch.hw;
 
        pr_debug("%s: B%1d protocol %x-->%x\n", card->name,
-               bc->bch.nr, bc->bch.state, protocol);
+                bc->bch.nr, bc->bch.state, protocol);
        switch (protocol) {
        case ISDN_P_NONE:
                if (bc->bch.state == ISDN_P_NONE)
@@ -237,7 +237,7 @@ mode_tiger(struct tiger_ch *bc, u32 protocol)
                test_and_set_bit(FLG_TRANSPARENT, &bc->bch.Flags);
                bc->bch.state = protocol;
                bc->idx = 0;
-               bc->free = card->send.size/2;
+               bc->free = card->send.size / 2;
                bc->rxstate = 0;
                bc->txstate = TX_INIT | TX_IDLE;
                bc->lastrx = -1;
@@ -251,7 +251,7 @@ mode_tiger(struct tiger_ch *bc, u32 protocol)
                test_and_set_bit(FLG_HDLC, &bc->bch.Flags);
                bc->bch.state = protocol;
                bc->idx = 0;
-               bc->free = card->send.size/2;
+               bc->free = card->send.size / 2;
                bc->rxstate = 0;
                bc->txstate = TX_INIT | TX_IDLE;
                isdnhdlc_rcv_init(&bc->hrecv, 0);
@@ -273,12 +273,12 @@ mode_tiger(struct tiger_ch *bc, u32 protocol)
        card->send.idx = (card->send.dmacur - card->send.dmastart) >> 2;
        card->recv.idx = (card->recv.dmacur - card->recv.dmastart) >> 2;
        pr_debug("%s: %s ctrl %x irq  %02x/%02x idx %d/%d\n",
-               card->name, __func__,
-               inb(card->base + NJ_DMACTRL),
-               inb(card->base + NJ_IRQMASK0),
-               inb(card->base + NJ_IRQSTAT0),
-               card->send.idx,
-               card->recv.idx);
+                card->name, __func__,
+                inb(card->base + NJ_DMACTRL),
+                inb(card->base + NJ_IRQMASK0),
+                inb(card->base + NJ_IRQSTAT0),
+                card->send.idx,
+                card->recv.idx);
        return 0;
 }
 
@@ -311,7 +311,7 @@ inittiger(struct tiger_hw *card)
        int i;
 
        card->dma_p = pci_alloc_consistent(card->pdev, NJ_DMA_SIZE,
-                       &card->dma);
+                                          &card->dma);
        if (!card->dma_p) {
                pr_info("%s: No DMA memory\n", card->name);
                return -ENOMEM;
@@ -344,9 +344,9 @@ inittiger(struct tiger_hw *card)
 
        if (debug & DEBUG_HW)
                pr_notice("%s: send buffer phy %#x - %#x - %#x  virt %p"
-                       " size %zu u32\n", card->name,
-                       card->send.dmastart, card->send.dmairq,
-                       card->send.dmaend, card->send.start, card->send.size);
+                         " size %zu u32\n", card->name,
+                         card->send.dmastart, card->send.dmairq,
+                         card->send.dmaend, card->send.start, card->send.size);
 
        outl(card->send.dmastart, card->base + NJ_DMA_READ_START);
        outl(card->send.dmairq, card->base + NJ_DMA_READ_IRQ);
@@ -362,9 +362,9 @@ inittiger(struct tiger_hw *card)
 
        if (debug & DEBUG_HW)
                pr_notice("%s: recv buffer phy %#x - %#x - %#x  virt %p"
-                       " size %zu u32\n", card->name,
-                       card->recv.dmastart, card->recv.dmairq,
-                       card->recv.dmaend, card->recv.start, card->recv.size);
+                         " size %zu u32\n", card->name,
+                         card->recv.dmastart, card->recv.dmairq,
+                         card->recv.dmaend, card->recv.start, card->recv.size);
 
        outl(card->recv.dmastart, card->base + NJ_DMA_WRITE_START);
        outl(card->recv.dmairq, card->base + NJ_DMA_WRITE_IRQ);
@@ -398,7 +398,7 @@ read_dma(struct tiger_ch *bc, u32 idx, int cnt)
        if (test_bit(FLG_TRANSPARENT, &bc->bch.Flags)) {
                if ((bc->bch.rx_skb->len + cnt) > bc->bch.maxlen) {
                        pr_debug("%s: B%1d overrun %d\n", card->name,
-                               bc->bch.nr, bc->bch.rx_skb->len + cnt);
+                                bc->bch.nr, bc->bch.rx_skb->len + cnt);
                        skb_trim(bc->bch.rx_skb, 0);
                        return;
                }
@@ -418,8 +418,8 @@ read_dma(struct tiger_ch *bc, u32 idx, int cnt)
 next_frame:
        if (test_bit(FLG_HDLC, &bc->bch.Flags)) {
                stat = isdnhdlc_decode(&bc->hrecv, pn, cnt, &i,
-                       bc->bch.rx_skb->data, bc->bch.maxlen);
-               if (stat > 0) /* valid frame received */ 
+                                      bc->bch.rx_skb->data, bc->bch.maxlen);
+               if (stat > 0) /* valid frame received */
                        p = skb_put(bc->bch.rx_skb, stat);
                else if (stat == -HDLC_CRC_ERROR)
                        pr_info("%s: B%1d receive frame CRC error\n",
@@ -431,14 +431,14 @@ next_frame:
                        pr_info("%s: B%1d receive frame too long (> %d)\n",
                                card->name, bc->bch.nr, bc->bch.maxlen);
        } else
-               stat = cnt;     
+               stat = cnt;
 
        if (stat > 0) {
                if (debug & DEBUG_HW_BFIFO) {
                        snprintf(card->log, LOG_SIZE, "B%1d-recv %s %d ",
-                               bc->bch.nr, card->name, stat);
+                                bc->bch.nr, card->name, stat);
                        print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET,
-                               p, stat);
+                                            p, stat);
                }
                recv_Bchannel(&bc->bch, 0);
        }
@@ -447,7 +447,7 @@ next_frame:
                cnt -= i;
                if (!bc->bch.rx_skb) {
                        bc->bch.rx_skb = mI_alloc_skb(bc->bch.maxlen,
-                               GFP_ATOMIC);
+                                                     GFP_ATOMIC);
                        if (!bc->bch.rx_skb) {
                                pr_info("%s: B%1d receive out of memory\n",
                                        card->name, bc->bch.nr);
@@ -498,7 +498,7 @@ resync(struct tiger_ch *bc, struct tiger_hw *card)
                bc->idx = card->recv.size - 1;
        bc->txstate = TX_RUN;
        pr_debug("%s: %s B%1d free %d idx %d/%d\n", card->name,
-               __func__, bc->bch.nr, bc->free, bc->idx, card->send.idx);
+                __func__, bc->bch.nr, bc->free, bc->idx, card->send.idx);
 }
 
 static int bc_next_frame(struct tiger_ch *);
@@ -514,14 +514,14 @@ fill_hdlc_flag(struct tiger_ch *bc)
        if (bc->free == 0)
                return;
        pr_debug("%s: %s B%1d %d state %x idx %d/%d\n", card->name,
-               __func__, bc->bch.nr, bc->free, bc->txstate,
-               bc->idx, card->send.idx);
+                __func__, bc->bch.nr, bc->free, bc->txstate,
+                bc->idx, card->send.idx);
        if (bc->txstate & (TX_IDLE | TX_INIT | TX_UNDERRUN))
                resync(bc, card);
        count = isdnhdlc_encode(&bc->hsend, NULL, 0, &i,
-                       bc->hsbuf, bc->free);
+                               bc->hsbuf, bc->free);
        pr_debug("%s: B%1d hdlc encoded %d flags\n", card->name,
-                       bc->bch.nr, count);
+                bc->bch.nr, count);
        bc->free -= count;
        p = bc->hsbuf;
        m = (bc->bch.nr & 1) ? 0xffffff00 : 0xffff00ff;
@@ -535,7 +535,7 @@ fill_hdlc_flag(struct tiger_ch *bc)
        }
        if (debug & DEBUG_HW_BFIFO) {
                snprintf(card->log, LOG_SIZE, "B%1d-send %s %d ",
-                       bc->bch.nr, card->name, count);
+                        bc->bch.nr, card->name, count);
                print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET, p, count);
        }
 }
@@ -554,16 +554,16 @@ fill_dma(struct tiger_ch *bc)
        if (count <= 0)
                return;
        pr_debug("%s: %s B%1d %d/%d/%d/%d state %x idx %d/%d\n", card->name,
-               __func__, bc->bch.nr, count, bc->free, bc->bch.tx_idx,
-               bc->bch.tx_skb->len, bc->txstate, bc->idx, card->send.idx);
+                __func__, bc->bch.nr, count, bc->free, bc->bch.tx_idx,
+                bc->bch.tx_skb->len, bc->txstate, bc->idx, card->send.idx);
        if (bc->txstate & (TX_IDLE | TX_INIT | TX_UNDERRUN))
                resync(bc, card);
        p = bc->bch.tx_skb->data + bc->bch.tx_idx;
        if (test_bit(FLG_HDLC, &bc->bch.Flags)) {
                count = isdnhdlc_encode(&bc->hsend, p, count, &i,
-                       bc->hsbuf, bc->free);
+                                       bc->hsbuf, bc->free);
                pr_debug("%s: B%1d hdlc encoded %d in %d\n", card->name,
-                       bc->bch.nr, i, count);
+                        bc->bch.nr, i, count);
                bc->bch.tx_idx += i;
                bc->free -= count;
                p = bc->hsbuf;
@@ -584,7 +584,7 @@ fill_dma(struct tiger_ch *bc)
        }
        if (debug & DEBUG_HW_BFIFO) {
                snprintf(card->log, LOG_SIZE, "B%1d-send %s %d ",
-                       bc->bch.nr, card->name, count);
+                        bc->bch.nr, card->name, count);
                print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET, p, count);
        }
        if (bc->free)
@@ -633,7 +633,7 @@ send_tiger_bc(struct tiger_hw *card, struct tiger_ch *bc)
                        return;
                }
                pr_debug("%s: B%1d TX no data free %d idx %d/%d\n", card->name,
-                       bc->bch.nr, bc->free, bc->idx, card->send.idx);
+                        bc->bch.nr, bc->free, bc->idx, card->send.idx);
                if (!(bc->txstate & (TX_IDLE | TX_INIT))) {
                        fill_mem(bc, bc->idx, bc->free, 0xff);
                        if (bc->free == card->send.size)
@@ -706,8 +706,8 @@ nj_irq(int intno, void *dev_id)
                s0val |= 0x01;  /* the 1st read area is free */
 
        pr_debug("%s: DMA Status %02x/%02x/%02x %d/%d\n", card->name,
-               s1val, s0val, card->last_is0,
-               card->recv.idx, card->send.idx);
+                s1val, s0val, card->last_is0,
+                card->recv.idx, card->send.idx);
        /* test if we have a DMA interrupt */
        if (s0val != card->last_is0) {
                if ((s0val & NJ_IRQM0_RD_MASK) !=
@@ -758,7 +758,7 @@ nj_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(&card->lock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                               NULL, GFP_KERNEL);
+                                   NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                spin_lock_irqsave(&card->lock, flags);
@@ -766,7 +766,7 @@ nj_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                mode_tiger(bc, ISDN_P_NONE);
                spin_unlock_irqrestore(&card->lock, flags);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
                ret = 0;
                break;
        }
@@ -785,7 +785,7 @@ channel_bctrl(struct tiger_ch *bc, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_GETOP:
                cq->op = 0;
                break;
-       /* Nothing implemented yet */
+               /* Nothing implemented yet */
        case MISDN_CTRL_FILL_EMPTY:
        default:
                pr_info("%s: %s unknown Op %x\n", card->name, __func__, cq->op);
@@ -900,7 +900,7 @@ nj_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        case CLOSE_CHANNEL:
                pr_debug("%s: dev(%d) close from %p\n", card->name, dch->dev.id,
-                       __builtin_return_address(0));
+                        __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -908,7 +908,7 @@ nj_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        default:
                pr_debug("%s: %s unknown command %x\n",
-                       card->name, __func__, cmd);
+                        card->name, __func__, cmd);
                return -EINVAL;
        }
        return err;
@@ -968,7 +968,7 @@ nj_release(struct tiger_hw *card)
                free_irq(card->irq, card);
        if (card->isac.dch.dev.dev.class)
                mISDN_unregister_device(&card->isac.dch.dev);
-       
+
        for (i = 0; i < 2; i++) {
                mISDN_freebchannel(&card->bc[i].bch);
                kfree(card->bc[i].hsbuf);
@@ -976,7 +976,7 @@ nj_release(struct tiger_hw *card)
        }
        if (card->dma_p)
                pci_free_consistent(card->pdev, NJ_DMA_SIZE,
-                       card->dma_p, card->dma);
+                                   card->dma_p, card->dma);
        write_lock_irqsave(&card_lock, flags);
        list_del(&card->list);
        write_unlock_irqrestore(&card_lock, flags);
@@ -1033,14 +1033,14 @@ setup_instance(struct tiger_hw *card)
                card->bc[i].bch.ch.ctrl = nj_bctrl;
                card->bc[i].bch.ch.nr = i + 1;
                list_add(&card->bc[i].bch.ch.list,
-                       &card->isac.dch.dev.bchannels);
+                        &card->isac.dch.dev.bchannels);
                card->bc[i].bch.hw = card;
        }
        err = nj_setup(card);
        if (err)
                goto error;
        err = mISDN_register_device(&card->isac.dch.dev, &card->pdev->dev,
-               card->name);
+                                   card->name);
        if (err)
                goto error;
        err = nj_init_card(card);
@@ -1074,7 +1074,7 @@ nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
 
        if (pdev->subsystem_vendor == 0xb100 &&
-           pdev->subsystem_device == 0x0003 ) {
+           pdev->subsystem_device == 0x0003) {
                pr_notice("Netjet: Digium TDM400P not handled yet\n");
                return -ENODEV;
        }
@@ -1094,7 +1094,7 @@ nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
 
        printk(KERN_INFO "nj_probe(mISDN): found adapter at %s\n",
-               pci_name(pdev));
+              pci_name(pdev));
 
        pci_set_master(pdev);
 
index d061ff9..ddd41ef 100644 (file)
@@ -55,4 +55,3 @@
 /* 2 * 64 byte is a compromise between IRQ count and latency */
 #define NJ_DMA_RXSIZE          128  /* 2 * 64 */
 #define NJ_DMA_TXSIZE          128  /* 2 * 64 */
-
index 4d0d41e..0468993 100644 (file)
@@ -147,10 +147,10 @@ Start_ISAR:
                goto Start_ISAR;
        if (cnt < irqloops)
                pr_debug("%s: %d irqloops cpu%d\n", sf->name,
-                       irqloops - cnt, smp_processor_id());
+                        irqloops - cnt, smp_processor_id());
        if (irqloops && !cnt)
                pr_notice("%s: %d IRQ LOOP cpu%d\n", sf->name,
-                       irqloops, smp_processor_id());
+                         irqloops, smp_processor_id());
        spin_unlock(&sf->lock);
        return IRQ_HANDLED;
 }
@@ -266,7 +266,7 @@ sfax_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        case CLOSE_CHANNEL:
                pr_debug("%s: dev(%d) close from %p\n", sf->name,
-                       dch->dev.id, __builtin_return_address(0));
+                        dch->dev.id, __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -306,10 +306,10 @@ init_card(struct sfax_hw *sf)
                msleep_interruptible(10);
                if (debug & DEBUG_HW)
                        pr_notice("%s: IRQ %d count %d\n", sf->name,
-                               sf->irq, sf->irqcnt);
+                                 sf->irq, sf->irqcnt);
                if (!sf->irqcnt) {
                        pr_info("%s: IRQ(%d) got no requests during init %d\n",
-                              sf->name, sf->irq, 3 - cnt);
+                               sf->name, sf->irq, 3 - cnt);
                } else
                        return 0;
        }
@@ -325,7 +325,7 @@ setup_speedfax(struct sfax_hw *sf)
 
        if (!request_region(sf->cfg, 256, sf->name)) {
                pr_info("mISDN: %s config port %x-%x already in use\n",
-                      sf->name, sf->cfg, sf->cfg + 255);
+                       sf->name, sf->cfg, sf->cfg + 255);
                return -EIO;
        }
        outb(0xff, sf->cfg);
@@ -396,7 +396,7 @@ setup_instance(struct sfax_hw *card)
        }
        if (debug & DEBUG_HW)
                pr_notice("%s: got firmware %zu bytes\n",
-                       card->name, firmware->size);
+                         card->name, firmware->size);
 
        mISDNisac_init(&card->isac, card);
 
@@ -406,7 +406,7 @@ setup_instance(struct sfax_hw *card)
        for (i = 0; i < 2; i++) {
                set_channelmap(i + 1, card->isac.dch.dev.channelmap);
                list_add(&card->isar.ch[i].bch.ch.list,
-                       &card->isac.dch.dev.bchannels);
+                        &card->isac.dch.dev.bchannels);
        }
 
        err = setup_speedfax(card);
@@ -416,7 +416,7 @@ setup_instance(struct sfax_hw *card)
        if (err)
                goto error;
        err = mISDN_register_device(&card->isac.dch.dev,
-               &card->pdev->dev, card->name);
+                                   &card->pdev->dev, card->name);
        if (err)
                goto error;
        err = init_card(card);
@@ -466,7 +466,7 @@ sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
 
        pr_notice("mISDN: Speedfax found adapter %s at %s\n",
-               (char *)ent->driver_data, pci_name(pdev));
+                 (char *)ent->driver_data, pci_name(pdev));
 
        card->cfg = pci_resource_start(pdev, 0);
        card->irq = pdev->irq;
@@ -514,7 +514,7 @@ Speedfax_init(void)
        int err;
 
        pr_notice("Sedlbauer Speedfax+ Driver Rev. %s\n",
-               SPEEDFAX_REV);
+                 SPEEDFAX_REV);
        err = pci_register_driver(&sfaxpci_driver);
        return err;
 }
index e10e028..7f1e7ba 100644 (file)
@@ -171,7 +171,7 @@ W6692Version(struct w6692_hw *card)
 
        val = ReadW6692(card, W_D_RBCH);
        pr_notice("%s: Winbond W6692 version: %s\n", card->name,
-               W6692Ver[(val >> 6) & 3]);
+                 W6692Ver[(val >> 6) & 3]);
 }
 
 static void
@@ -248,7 +248,7 @@ W6692_ph_bh(struct dchannel *dch)
                break;
        default:
                pr_debug("%s: TE unknown state %02x dch state %02x\n",
-                       card->name, card->state, dch->state);
+                        card->name, card->state, dch->state);
                break;
        }
        pr_debug("%s: TE newstate %02x\n", card->name, dch->state);
@@ -271,7 +271,7 @@ W6692_empty_Dfifo(struct w6692_hw *card, int count)
        }
        if ((dch->rx_skb->len + count) >= dch->maxlen) {
                pr_debug("%s: empty_Dfifo overrun %d\n", card->name,
-                       dch->rx_skb->len + count);
+                        dch->rx_skb->len + count);
                WriteW6692(card, W_D_CMDR, W_D_CMDR_RACK);
                return;
        }
@@ -280,7 +280,7 @@ W6692_empty_Dfifo(struct w6692_hw *card, int count)
        WriteW6692(card, W_D_CMDR, W_D_CMDR_RACK);
        if (debug & DEBUG_HW_DFIFO) {
                snprintf(card->log, 63, "D-recv %s %d ",
-                       card->name, count);
+                        card->name, count);
                print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET, ptr, count);
        }
 }
@@ -312,11 +312,11 @@ W6692_fill_Dfifo(struct w6692_hw *card)
                del_timer(&dch->timer);
        }
        init_timer(&dch->timer);
-       dch->timer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ)/1000);
+       dch->timer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ) / 1000);
        add_timer(&dch->timer);
        if (debug & DEBUG_HW_DFIFO) {
                snprintf(card->log, 63, "D-send %s %d ",
-                       card->name, count);
+                        card->name, count);
                print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET, ptr, count);
        }
 }
@@ -426,7 +426,7 @@ handle_statusD(struct w6692_hw *card)
        if (exval & W_D_EXI_MOC) {      /* MOC - not supported */
                v1 = ReadW6692(card, W_MOSR);
                pr_debug("%s: spurious MOC interrupt MOSR %02x\n",
-                       card->name, v1);
+                        card->name, v1);
        }
        if (exval & W_D_EXI_ISC) {      /* ISC - Level1 change */
                cir = ReadW6692(card, W_CIR);
@@ -434,7 +434,7 @@ handle_statusD(struct w6692_hw *card)
                if (cir & W_CIR_ICC) {
                        v1 = cir & W_CIR_COD_MASK;
                        pr_debug("%s: ph_state_change %x -> %x\n", card->name,
-                               dch->state, v1);
+                                dch->state, v1);
                        card->state = v1;
                        if (card->fmask & led) {
                                switch (v1) {
@@ -479,13 +479,13 @@ W6692_empty_Bfifo(struct w6692_ch *wch, int count)
                if (unlikely(!wch->bch.rx_skb)) {
                        pr_info("%s: B receive out of memory\n", card->name);
                        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK |
-                               W_B_CMDR_RACT);
+                                   W_B_CMDR_RACT);
                        return;
                }
        }
        if (wch->bch.rx_skb->len + count > wch->bch.maxlen) {
                pr_debug("%s: empty_Bfifo incoming packet too large\n",
-                       card->name);
+                        card->name);
                WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RACT);
                skb_trim(wch->bch.rx_skb, 0);
                return;
@@ -495,7 +495,7 @@ W6692_empty_Bfifo(struct w6692_ch *wch, int count)
        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RACT);
        if (debug & DEBUG_HW_DFIFO) {
                snprintf(card->log, 63, "B%1d-recv %s %d ",
-                       wch->bch.nr, card->name, count);
+                        wch->bch.nr, card->name, count);
                print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET, ptr, count);
        }
 }
@@ -520,13 +520,13 @@ W6692_fill_Bfifo(struct w6692_ch *wch)
                cmd |= W_B_CMDR_XME;
 
        pr_debug("%s: fill Bfifo%d/%d\n", card->name,
-                       count, wch->bch.tx_idx);
+                count, wch->bch.tx_idx);
        wch->bch.tx_idx += count;
        outsb(wch->addr + W_B_XFIFO, ptr, count);
        WriteW6692B(wch, W_B_CMDR, cmd);
        if (debug & DEBUG_HW_DFIFO) {
                snprintf(card->log, 63, "B%1d-send %s %d ",
-                       wch->bch.nr, card->name, count);
+                        wch->bch.nr, card->name, count);
                print_hex_dump_bytes(card->log, DUMP_PREFIX_OFFSET, ptr, count);
        }
 }
@@ -586,7 +586,7 @@ disable_pots(struct w6692_ch *wch)
        wch->b_mode &= ~(W_B_MODE_EPCM | W_B_MODE_BSW0);
        WriteW6692B(wch, W_B_MODE, wch->b_mode);
        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RRST | W_B_CMDR_RACT |
-               W_B_CMDR_XRST);
+                   W_B_CMDR_XRST);
        return 0;
 }
 
@@ -597,7 +597,7 @@ w6692_mode(struct w6692_ch *wch, u32 pr)
 
        card = wch->bch.hw;
        pr_debug("%s: B%d protocol %x-->%x\n", card->name,
-               wch->bch.nr, wch->bch.state, pr);
+                wch->bch.nr, wch->bch.state, pr);
        switch (pr) {
        case ISDN_P_NONE:
                if ((card->fmask & pots) && (wch->b_mode & W_B_MODE_EPCM))
@@ -614,7 +614,7 @@ w6692_mode(struct w6692_ch *wch, u32 pr)
                WriteW6692B(wch, W_B_MODE, wch->b_mode);
                WriteW6692B(wch, W_B_EXIM, 0);
                WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RRST | W_B_CMDR_RACT |
-                       W_B_CMDR_XRST);
+                           W_B_CMDR_XRST);
                test_and_set_bit(FLG_TRANSPARENT, &wch->bch.Flags);
                break;
        case ISDN_P_B_HDLC:
@@ -624,7 +624,7 @@ w6692_mode(struct w6692_ch *wch, u32 pr)
                WriteW6692B(wch, W_B_ADM2, 0xff);
                WriteW6692B(wch, W_B_EXIM, 0);
                WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RRST | W_B_CMDR_RACT |
-                       W_B_CMDR_XRST);
+                           W_B_CMDR_XRST);
                test_and_set_bit(FLG_HDLC, &wch->bch.Flags);
                break;
        default:
@@ -667,7 +667,7 @@ W6692B_interrupt(struct w6692_hw *card, int ch)
                        if ((star & W_B_STAR_RDOV) &&
                            test_bit(FLG_ACTIVE, &wch->bch.Flags)) {
                                pr_debug("%s: B%d RDOV proto=%x\n", card->name,
-                                       wch->bch.nr, wch->bch.state);
+                                        wch->bch.nr, wch->bch.state);
 #ifdef ERROR_STATISTIC
                                wch->bch.err_rdo++;
 #endif
@@ -675,21 +675,21 @@ W6692B_interrupt(struct w6692_hw *card, int ch)
                        if (test_bit(FLG_HDLC, &wch->bch.Flags)) {
                                if (star & W_B_STAR_CRCE) {
                                        pr_debug("%s: B%d CRC error\n",
-                                               card->name, wch->bch.nr);
+                                                card->name, wch->bch.nr);
 #ifdef ERROR_STATISTIC
                                        wch->bch.err_crc++;
 #endif
                                }
                                if (star & W_B_STAR_RMB) {
                                        pr_debug("%s: B%d message abort\n",
-                                               card->name, wch->bch.nr);
+                                                card->name, wch->bch.nr);
 #ifdef ERROR_STATISTIC
                                        wch->bch.err_inv++;
 #endif
                                }
                        }
                        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK |
-                               W_B_CMDR_RRST | W_B_CMDR_RACT);
+                                   W_B_CMDR_RRST | W_B_CMDR_RACT);
                        if (wch->bch.rx_skb)
                                skb_trim(wch->bch.rx_skb, 0);
                } else {
@@ -706,12 +706,12 @@ W6692B_interrupt(struct w6692_hw *card, int ch)
                        star = ReadW6692B(wch, W_B_STAR);
                if (star & W_B_STAR_RDOV) {
                        pr_debug("%s: B%d RDOV proto=%x\n", card->name,
-                               wch->bch.nr, wch->bch.state);
+                                wch->bch.nr, wch->bch.state);
 #ifdef ERROR_STATISTIC
                        wch->bch.err_rdo++;
 #endif
                        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK |
-                               W_B_CMDR_RRST | W_B_CMDR_RACT);
+                                   W_B_CMDR_RRST | W_B_CMDR_RACT);
                } else {
                        W6692_empty_Bfifo(wch, W_B_FIFO_THRESH);
                        if (test_bit(FLG_TRANSPARENT, &wch->bch.Flags) &&
@@ -723,28 +723,28 @@ W6692B_interrupt(struct w6692_hw *card, int ch)
                /* only if it is not handled yet */
                if (!(star & W_B_STAR_RDOV)) {
                        pr_debug("%s: B%d RDOV IRQ proto=%x\n", card->name,
-                               wch->bch.nr, wch->bch.state);
+                                wch->bch.nr, wch->bch.state);
 #ifdef ERROR_STATISTIC
                        wch->bch.err_rdo++;
 #endif
                        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK |
-                               W_B_CMDR_RRST | W_B_CMDR_RACT);
+                                   W_B_CMDR_RRST | W_B_CMDR_RACT);
                }
        }
        if (stat & W_B_EXI_XFR) {
                if (!(stat & (W_B_EXI_RME | W_B_EXI_RMR))) {
                        star = ReadW6692B(wch, W_B_STAR);
                        pr_debug("%s: B%d star %02x\n", card->name,
-                               wch->bch.nr, star);
+                                wch->bch.nr, star);
                }
                if (star & W_B_STAR_XDOW) {
                        pr_debug("%s: B%d XDOW proto=%x\n", card->name,
-                               wch->bch.nr, wch->bch.state);
+                                wch->bch.nr, wch->bch.state);
 #ifdef ERROR_STATISTIC
                        wch->bch.err_xdu++;
 #endif
                        WriteW6692B(wch, W_B_CMDR, W_B_CMDR_XRST |
-                               W_B_CMDR_RACT);
+                                   W_B_CMDR_RACT);
                        /* resend */
                        if (wch->bch.tx_skb) {
                                if (!test_bit(FLG_TRANSPARENT, &wch->bch.Flags))
@@ -757,7 +757,7 @@ W6692B_interrupt(struct w6692_hw *card, int ch)
        }
        if (stat & W_B_EXI_XDUN) {
                pr_debug("%s: B%d XDUN proto=%x\n", card->name,
-                       wch->bch.nr, wch->bch.state);
+                        wch->bch.nr, wch->bch.state);
 #ifdef ERROR_STATISTIC
                wch->bch.err_xdu++;
 #endif
@@ -818,7 +818,7 @@ dbusy_timer_handler(struct dchannel *dch)
                rbch = ReadW6692(card, W_D_RBCH);
                star = ReadW6692(card, W_D_STAR);
                pr_debug("%s: D-Channel Busy RBCH %02x STAR %02x\n",
-                       card->name, rbch, star);
+                        card->name, rbch, star);
                if (star & W_D_STAR_XBZ)        /* D-Channel Busy */
                        test_and_set_bit(FLG_L1_BUSY, &dch->Flags);
                else {
@@ -888,7 +888,7 @@ void initW6692(struct w6692_hw *card)
                        val = ReadW6692(card, W_XADDR);
                        if (debug & DEBUG_HW)
                                pr_notice("%s: W_XADDR=%02x\n",
-                                       card->name, val);
+                                         card->name, val);
                }
        }
 }
@@ -924,7 +924,7 @@ init_card(struct w6692_hw *card)
                msleep_interruptible(10);
                if (debug & DEBUG_HW)
                        pr_notice("%s: IRQ %d count %d\n", card->name,
-                               card->irq, card->irqcnt);
+                                 card->irq, card->irqcnt);
                if (!card->irqcnt) {
                        pr_info("%s: IRQ(%d) getting no IRQs during init %d\n",
                                card->name, card->irq, 3 - cnt);
@@ -970,7 +970,7 @@ w6692_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                spin_unlock_irqrestore(&card->lock, flags);
                if (!ret)
                        _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                               NULL, GFP_KERNEL);
+                                   NULL, GFP_KERNEL);
                break;
        case PH_DEACTIVATE_REQ:
                spin_lock_irqsave(&card->lock, flags);
@@ -978,7 +978,7 @@ w6692_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
                w6692_mode(bc, ISDN_P_NONE);
                spin_unlock_irqrestore(&card->lock, flags);
                _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
                ret = 0;
                break;
        default:
@@ -1000,7 +1000,7 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_GETOP:
                cq->op = 0;
                break;
-       /* Nothing implemented yet */
+               /* Nothing implemented yet */
        case MISDN_CTRL_FILL_EMPTY:
        default:
                pr_info("%s: unknown Op %x\n", __func__, cq->op);
@@ -1168,16 +1168,16 @@ w6692_l1callback(struct dchannel *dch, u32 cmd)
        case PH_ACTIVATE_IND:
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        case PH_DEACTIVATE_IND:
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
-                       GFP_ATOMIC);
+                           GFP_ATOMIC);
                break;
        default:
                pr_debug("%s: %s unknown command %x\n", card->name,
-                       __func__, cmd);
+                        __func__, cmd);
                return -1;
        }
        return 0;
@@ -1187,7 +1187,7 @@ static int
 open_dchannel(struct w6692_hw *card, struct channel_req *rq)
 {
        pr_debug("%s: %s dev(%d) open from %p\n", card->name, __func__,
-               card->dch.dev.id, __builtin_return_address(1));
+                card->dch.dev.id, __builtin_return_address(1));
        if (rq->protocol != ISDN_P_TE_S0)
                return -EINVAL;
        if (rq->adr.channel == 1)
@@ -1197,7 +1197,7 @@ open_dchannel(struct w6692_hw *card, struct channel_req *rq)
        rq->ch->protocol = rq->protocol;
        if (card->dch.state == 7)
                _queue_data(rq->ch, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                   0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
        return 0;
 }
 
@@ -1225,7 +1225,7 @@ w6692_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
                break;
        case CLOSE_CHANNEL:
                pr_debug("%s: dev(%d) close from %p\n", card->name,
-                       dch->dev.id, __builtin_return_address(0));
+                        dch->dev.id, __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -1245,7 +1245,7 @@ setup_w6692(struct w6692_hw *card)
 
        if (!request_region(card->addr, 256, card->name)) {
                pr_info("%s: config port %x-%x already in use\n", card->name,
-                      card->addr, card->addr + 255);
+                       card->addr, card->addr + 255);
                return -EIO;
        }
        W6692Version(card);
@@ -1333,7 +1333,7 @@ setup_instance(struct w6692_hw *card)
        if (err)
                goto error_setup;
        err = mISDN_register_device(&card->dch.dev, &card->pdev->dev,
-               card->name);
+                                   card->name);
        if (err)
                goto error_reg;
        err = init_card(card);
index 5d72783..89342f7 100644 (file)
@@ -101,26 +101,26 @@ static WORD initAMD[] = {
 static void /* macro wWordAMD */
 WriteWordAmd7930(struct IsdnCardState *cs, BYTE reg, WORD val)
 {
-        wByteAMD(cs, 0x00, reg);
-        wByteAMD(cs, 0x01, LOBYTE(val));
-        wByteAMD(cs, 0x01, HIBYTE(val));
+       wByteAMD(cs, 0x00, reg);
+       wByteAMD(cs, 0x01, LOBYTE(val));
+       wByteAMD(cs, 0x01, HIBYTE(val));
 }
 
 static WORD /* macro rWordAMD */
 ReadWordAmd7930(struct IsdnCardState *cs, BYTE reg)
 {
-        WORD res;
-        /* direct access register */
-        if(reg < 8) {
-               res = rByteAMD(cs, reg);
-                res += 256*rByteAMD(cs, reg);
-        }
-        /* indirect access register */
-        else {
-                wByteAMD(cs, 0x00, reg);
-               res = rByteAMD(cs, 0x01);
-                res += 256*rByteAMD(cs, 0x01);
-        }
+       WORD res;
+       /* direct access register */
+       if (reg < 8) {
+               res = rByteAMD(cs, reg);
+               res += 256 * rByteAMD(cs, reg);
+       }
+       /* indirect access register */
+       else {
+               wByteAMD(cs, 0x00, reg);
+               res = rByteAMD(cs, 0x01);
+               res += 256 * rByteAMD(cs, 0x01);
+       }
        return (res);
 }
 
@@ -131,23 +131,23 @@ Amd7930_ph_command(struct IsdnCardState *cs, u_char command, char *s)
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "AMD7930: %s: ph_command 0x%02X", s, command);
 
-        cs->dc.amd7930.lmr1 = command;
-        wByteAMD(cs, 0xA3, command);
+       cs->dc.amd7930.lmr1 = command;
+       wByteAMD(cs, 0xA3, command);
 }
 
 
 
 static BYTE i430States[] = {
 // to   reset  F3    F4    F5    F6    F7    F8    AR     from
-        0x01, 0x02, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00,   // init
-        0x01, 0x02, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00,   // reset
-        0x01, 0x02, 0x00, 0x00, 0x00, 0x09, 0x05, 0x04,   // F3
-        0x01, 0x02, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00,   // F4
-        0x01, 0x02, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00,   // F5
-        0x01, 0x03, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00,   // F6
-        0x11, 0x13, 0x00, 0x00, 0x1B, 0x00, 0x15, 0x00,   // F7
-        0x01, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,   // F8
-        0x01, 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0A};  // AR
+       0x01, 0x02, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00,   // init
+       0x01, 0x02, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00,   // reset
+       0x01, 0x02, 0x00, 0x00, 0x00, 0x09, 0x05, 0x04,   // F3
+       0x01, 0x02, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00,   // F4
+       0x01, 0x02, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00,   // F5
+       0x01, 0x03, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00,   // F6
+       0x11, 0x13, 0x00, 0x00, 0x1B, 0x00, 0x15, 0x00,   // F7
+       0x01, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,   // F8
+       0x01, 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0A};  // AR
 
 
 /*                    Row     init    -   reset  F3    F4    F5    F6    F7    F8    AR */
@@ -158,9 +158,9 @@ static BYTE stateHelper[] = { 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x
 
 static void
 Amd7930_get_state(struct IsdnCardState *cs) {
-        BYTE lsr = rByteAMD(cs, 0xA1);
-        cs->dc.amd7930.ph_state = (lsr & 0x7) + 2;
-        Amd7930_new_ph(cs);
+       BYTE lsr = rByteAMD(cs, 0xA1);
+       cs->dc.amd7930.ph_state = (lsr & 0x7) + 2;
+       Amd7930_new_ph(cs);
 }
 
 
@@ -168,65 +168,65 @@ Amd7930_get_state(struct IsdnCardState *cs) {
 static void
 Amd7930_new_ph(struct IsdnCardState *cs)
 {
-        u_char index = stateHelper[cs->dc.amd7930.old_state]*8 + stateHelper[cs->dc.amd7930.ph_state]-1;
-        u_char message = i430States[index];
+       u_char index = stateHelper[cs->dc.amd7930.old_state] * 8 + stateHelper[cs->dc.amd7930.ph_state] - 1;
+       u_char message = i430States[index];
 
-        if (cs->debug & L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "AMD7930: new_ph %d, old_ph %d, message %d, index %d",
-                        cs->dc.amd7930.ph_state, cs->dc.amd7930.old_state, message & 0x0f, index);
+                       cs->dc.amd7930.ph_state, cs->dc.amd7930.old_state, message & 0x0f, index);
 
-        cs->dc.amd7930.old_state = cs->dc.amd7930.ph_state;
+       cs->dc.amd7930.old_state = cs->dc.amd7930.ph_state;
 
-        /* abort transmit if nessesary */
-        if ((message & 0xf0) && (cs->tx_skb)) {
-                wByteAMD(cs, 0x21, 0xC2);
-                wByteAMD(cs, 0x21, 0x02);
-        }
+       /* abort transmit if nessesary */
+       if ((message & 0xf0) && (cs->tx_skb)) {
+               wByteAMD(cs, 0x21, 0xC2);
+               wByteAMD(cs, 0x21, 0x02);
+       }
 
        switch (message & 0x0f) {
 
-                case (1):
-                        l1_msg(cs, HW_RESET | INDICATION, NULL);
-                        Amd7930_get_state(cs);
-                        break;
-                case (2): /* init, Card starts in F3 */
-                        l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
-                        break;
-                case (3):
-                        l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                        break;
-                case (4):
-                        l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                        Amd7930_ph_command(cs, 0x50, "HW_ENABLE REQUEST");
-                        break;
-                case (5):
-                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                        break;
-                case (6):
-                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                        break;
-                case (7): /* init, Card starts in F7 */
-                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                        break;
-                case (8):
-                        l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                        /* fall through */
-                case (9):
-                        Amd7930_ph_command(cs, 0x40, "HW_ENABLE REQ cleared if set");
-                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                        break;
-                case (10):
-                        Amd7930_ph_command(cs, 0x40, "T3 expired, HW_ENABLE REQ cleared");
-                        cs->dc.amd7930.old_state = 3;
-                        break;
-                case (11):
-                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                        break;
-               default:
-                       break;
+       case (1):
+               l1_msg(cs, HW_RESET | INDICATION, NULL);
+               Amd7930_get_state(cs);
+               break;
+       case (2): /* init, Card starts in F3 */
+               l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
+               break;
+       case (3):
+               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+               break;
+       case (4):
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               Amd7930_ph_command(cs, 0x50, "HW_ENABLE REQUEST");
+               break;
+       case (5):
+               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+               break;
+       case (6):
+               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+               break;
+       case (7): /* init, Card starts in F7 */
+               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+               break;
+       case (8):
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               /* fall through */
+       case (9):
+               Amd7930_ph_command(cs, 0x40, "HW_ENABLE REQ cleared if set");
+               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+               break;
+       case (10):
+               Amd7930_ph_command(cs, 0x40, "T3 expired, HW_ENABLE REQ cleared");
+               cs->dc.amd7930.old_state = 3;
+               break;
+       case (11):
+               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+               break;
+       default:
+               break;
        }
 }
 
@@ -237,10 +237,10 @@ Amd7930_bh(struct work_struct *work)
 {
        struct IsdnCardState *cs =
                container_of(work, struct IsdnCardState, tqueue);
-        struct PStack *stptr;
+       struct PStack *stptr;
 
        if (test_and_clear_bit(D_CLEARBUSY, &cs->event)) {
-                if (cs->debug)
+               if (cs->debug)
                        debugl1(cs, "Amd7930: bh, D-Channel Busy cleared");
                stptr = cs->stlist;
                while (stptr != NULL) {
@@ -249,29 +249,29 @@ Amd7930_bh(struct work_struct *work)
                }
        }
        if (test_and_clear_bit(D_L1STATECHANGE, &cs->event)) {
-               if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "AMD7930: bh, D_L1STATECHANGE");
-                Amd7930_new_ph(cs);
-        }
-
-        if (test_and_clear_bit(D_RCVBUFREADY, &cs->event)) {
-               if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "AMD7930: bh, D_RCVBUFREADY");
-                DChannel_proc_rcv(cs);
-        }
-
-        if (test_and_clear_bit(D_XMTBUFREADY, &cs->event)) {
-               if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "AMD7930: bh, D_XMTBUFREADY");
-                DChannel_proc_xmt(cs);
-        }
+               if (cs->debug & L1_DEB_ISAC)
+                       debugl1(cs, "AMD7930: bh, D_L1STATECHANGE");
+               Amd7930_new_ph(cs);
+       }
+
+       if (test_and_clear_bit(D_RCVBUFREADY, &cs->event)) {
+               if (cs->debug & L1_DEB_ISAC)
+                       debugl1(cs, "AMD7930: bh, D_RCVBUFREADY");
+               DChannel_proc_rcv(cs);
+       }
+
+       if (test_and_clear_bit(D_XMTBUFREADY, &cs->event)) {
+               if (cs->debug & L1_DEB_ISAC)
+                       debugl1(cs, "AMD7930: bh, D_XMTBUFREADY");
+               DChannel_proc_xmt(cs);
+       }
 }
 
 static void
 Amd7930_empty_Dfifo(struct IsdnCardState *cs, int flag)
 {
 
-        BYTE stat, der;
+       BYTE stat, der;
        BYTE *ptr;
        struct sk_buff *skb;
 
@@ -288,54 +288,54 @@ Amd7930_empty_Dfifo(struct IsdnCardState *cs, int flag)
        /* read D-Channel-Fifo*/
        stat = rByteAMD(cs, 0x07); // DSR2
 
-               /* while Data in Fifo ... */
-               while ( (stat & 2) && ((ptr-cs->rcvbuf) < MAX_DFRAME_LEN_L1) ) {
-                       *ptr = rByteAMD(cs, 0x04); // DCRB
-                       ptr++;
-                       stat = rByteAMD(cs, 0x07); // DSR2
-                       cs->rcvidx = ptr - cs->rcvbuf;
-
-                        /* Paket ready? */
-                       if (stat & 1) {
-
-                                der = rWordAMD(cs, 0x03);
-
-                                /* no errors, packet ok */
-                                if(!der && !flag) {
-                                       rWordAMD(cs, 0x89); // clear DRCR
-
-                                        if ((cs->rcvidx) > 0) {
-                                                if (!(skb = alloc_skb(cs->rcvidx, GFP_ATOMIC)))
-                                                       printk(KERN_WARNING "HiSax: Amd7930: empty_Dfifo, D receive out of memory!\n");
-                                               else {
-                                                        /* Debugging */
-                                                        if (cs->debug & L1_DEB_ISAC_FIFO) {
-                                                               char *t = cs->dlog;
-
-                                                               t += sprintf(t, "Amd7930: empty_Dfifo cnt: %d |", cs->rcvidx);
-                                                               QuickHex(t, cs->rcvbuf, cs->rcvidx);
-                                                               debugl1(cs, cs->dlog);
-                                                       }
-                                                        /* moves received data in sk-buffer */
-                                                       memcpy(skb_put(skb, cs->rcvidx), cs->rcvbuf, cs->rcvidx);
-                                                       skb_queue_tail(&cs->rq, skb);
+       /* while Data in Fifo ... */
+       while ((stat & 2) && ((ptr-cs->rcvbuf) < MAX_DFRAME_LEN_L1)) {
+               *ptr = rByteAMD(cs, 0x04); // DCRB
+               ptr++;
+               stat = rByteAMD(cs, 0x07); // DSR2
+               cs->rcvidx = ptr - cs->rcvbuf;
+
+               /* Paket ready? */
+               if (stat & 1) {
+
+                       der = rWordAMD(cs, 0x03);
+
+                       /* no errors, packet ok */
+                       if (!der && !flag) {
+                               rWordAMD(cs, 0x89); // clear DRCR
+
+                               if ((cs->rcvidx) > 0) {
+                                       if (!(skb = alloc_skb(cs->rcvidx, GFP_ATOMIC)))
+                                               printk(KERN_WARNING "HiSax: Amd7930: empty_Dfifo, D receive out of memory!\n");
+                                       else {
+                                               /* Debugging */
+                                               if (cs->debug & L1_DEB_ISAC_FIFO) {
+                                                       char *t = cs->dlog;
+
+                                                       t += sprintf(t, "Amd7930: empty_Dfifo cnt: %d |", cs->rcvidx);
+                                                       QuickHex(t, cs->rcvbuf, cs->rcvidx);
+                                                       debugl1(cs, cs->dlog);
                                                }
+                                               /* moves received data in sk-buffer */
+                                               memcpy(skb_put(skb, cs->rcvidx), cs->rcvbuf, cs->rcvidx);
+                                               skb_queue_tail(&cs->rq, skb);
                                        }
-
                                }
-                                /* throw damaged packets away, reset receive-buffer, indicate RX */
-                               ptr = cs->rcvbuf;
-                               cs->rcvidx = 0;
-                               schedule_event(cs, D_RCVBUFREADY);
+
                        }
-                }
-               /* Packet to long, overflow */
-               if(cs->rcvidx >= MAX_DFRAME_LEN_L1) {
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "AMD7930: empty_Dfifo L2-Framelength overrun");
+                       /* throw damaged packets away, reset receive-buffer, indicate RX */
+                       ptr = cs->rcvbuf;
                        cs->rcvidx = 0;
-                       return;
+                       schedule_event(cs, D_RCVBUFREADY);
                }
+       }
+       /* Packet to long, overflow */
+       if (cs->rcvidx >= MAX_DFRAME_LEN_L1) {
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "AMD7930: empty_Dfifo L2-Framelength overrun");
+               cs->rcvidx = 0;
+               return;
+       }
        /* AMD interrupts on */
        AmdIrqOn(cs);
 }
@@ -345,9 +345,9 @@ static void
 Amd7930_fill_Dfifo(struct IsdnCardState *cs)
 {
 
-        WORD dtcrr, dtcrw, len, count;
-        BYTE txstat, dmr3;
-        BYTE *ptr, *deb_ptr;
+       WORD dtcrr, dtcrw, len, count;
+       BYTE txstat, dmr3;
+       BYTE *ptr, *deb_ptr;
 
        if ((cs->debug & L1_DEB_ISAC) && !(cs->debug & L1_DEB_ISAC_FIFO))
                debugl1(cs, "Amd7930: fill_Dfifo");
@@ -355,43 +355,43 @@ Amd7930_fill_Dfifo(struct IsdnCardState *cs)
        if ((!cs->tx_skb) || (cs->tx_skb->len <= 0))
                return;
 
-        dtcrw = 0;
-        if(!cs->dc.amd7930.tx_xmtlen)
-                /* new Frame */
-                len = dtcrw = cs->tx_skb->len;
-        /* continue frame */
-        else len = cs->dc.amd7930.tx_xmtlen;
+       dtcrw = 0;
+       if (!cs->dc.amd7930.tx_xmtlen)
+               /* new Frame */
+               len = dtcrw = cs->tx_skb->len;
+       /* continue frame */
+       else len = cs->dc.amd7930.tx_xmtlen;
 
 
        /* AMD interrupts off */
        AmdIrqOff(cs);
 
-        deb_ptr = ptr = cs->tx_skb->data;
-
-        /* while free place in tx-fifo available and data in sk-buffer */
-        txstat = 0x10;
-        while((txstat & 0x10) && (cs->tx_cnt < len)) {
-                wByteAMD(cs, 0x04, *ptr);
-                ptr++;
-                cs->tx_cnt++;
-                txstat= rByteAMD(cs, 0x07);
-        }
-        count = ptr - cs->tx_skb->data;
+       deb_ptr = ptr = cs->tx_skb->data;
+
+       /* while free place in tx-fifo available and data in sk-buffer */
+       txstat = 0x10;
+       while ((txstat & 0x10) && (cs->tx_cnt < len)) {
+               wByteAMD(cs, 0x04, *ptr);
+               ptr++;
+               cs->tx_cnt++;
+               txstat = rByteAMD(cs, 0x07);
+       }
+       count = ptr - cs->tx_skb->data;
        skb_pull(cs->tx_skb, count);
 
 
-        dtcrr = rWordAMD(cs, 0x85); // DTCR
-        dmr3  = rByteAMD(cs, 0x8E);
+       dtcrr = rWordAMD(cs, 0x85); // DTCR
+       dmr3  = rByteAMD(cs, 0x8E);
 
        if (cs->debug & L1_DEB_ISAC) {
                debugl1(cs, "Amd7930: fill_Dfifo, DMR3: 0x%02X, DTCR read: 0x%04X write: 0x%02X 0x%02X", dmr3, dtcrr, LOBYTE(dtcrw), HIBYTE(dtcrw));
-        }
+       }
 
-        /* writeing of dtcrw starts transmit */
-        if(!cs->dc.amd7930.tx_xmtlen) {
-                wWordAMD(cs, 0x85, dtcrw);
-                cs->dc.amd7930.tx_xmtlen = dtcrw;
-        }
+       /* writeing of dtcrw starts transmit */
+       if (!cs->dc.amd7930.tx_xmtlen) {
+               wWordAMD(cs, 0x85, dtcrw);
+               cs->dc.amd7930.tx_xmtlen = dtcrw;
+       }
 
        if (test_and_set_bit(FLG_DBUSY_TIMER, &cs->HW_Flags)) {
                debugl1(cs, "Amd7930: fill_Dfifo dbusytimer running");
@@ -409,260 +409,260 @@ Amd7930_fill_Dfifo(struct IsdnCardState *cs)
                debugl1(cs, cs->dlog);
        }
        /* AMD interrupts on */
-        AmdIrqOn(cs);
+       AmdIrqOn(cs);
 }
 
 
 void Amd7930_interrupt(struct IsdnCardState *cs, BYTE irflags)
 {
        BYTE dsr1, dsr2, lsr;
-        WORD der;
+       WORD der;
 
- while (irflags)
- {
      while (irflags)
      {
 
-        dsr1 = rByteAMD(cs, 0x02);
-        der  = rWordAMD(cs, 0x03);
-        dsr2 = rByteAMD(cs, 0x07);
-        lsr  = rByteAMD(cs, 0xA1);
+               dsr1 = rByteAMD(cs, 0x02);
+               der  = rWordAMD(cs, 0x03);
+               dsr2 = rByteAMD(cs, 0x07);
+               lsr  = rByteAMD(cs, 0xA1);
 
-       if (cs->debug & L1_DEB_ISAC)
-               debugl1(cs, "Amd7930: interrupt: flags: 0x%02X, DSR1: 0x%02X, DSR2: 0x%02X, LSR: 0x%02X, DER=0x%04X", irflags, dsr1, dsr2, lsr, der);
+               if (cs->debug & L1_DEB_ISAC)
+                       debugl1(cs, "Amd7930: interrupt: flags: 0x%02X, DSR1: 0x%02X, DSR2: 0x%02X, LSR: 0x%02X, DER=0x%04X", irflags, dsr1, dsr2, lsr, der);
 
-        /* D error -> read DER and DSR2 bit 2 */
-       if (der || (dsr2 & 4)) {
+               /* D error -> read DER and DSR2 bit 2 */
+               if (der || (dsr2 & 4)) {
 
-                if (cs->debug & L1_DEB_WARN)
-                       debugl1(cs, "Amd7930: interrupt: D error DER=0x%04X", der);
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "Amd7930: interrupt: D error DER=0x%04X", der);
+
+                       /* RX, TX abort if collision detected */
+                       if (der & 2) {
+                               wByteAMD(cs, 0x21, 0xC2);
+                               wByteAMD(cs, 0x21, 0x02);
+                               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                                       del_timer(&cs->dbusytimer);
+                               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                                       schedule_event(cs, D_CLEARBUSY);
+                               /* restart frame */
+                               if (cs->tx_skb) {
+                                       skb_push(cs->tx_skb, cs->tx_cnt);
+                                       cs->tx_cnt = 0;
+                                       cs->dc.amd7930.tx_xmtlen = 0;
+                                       Amd7930_fill_Dfifo(cs);
+                               } else {
+                                       printk(KERN_WARNING "HiSax: Amd7930 D-Collision, no skb\n");
+                                       debugl1(cs, "Amd7930: interrupt: D-Collision, no skb");
+                               }
+                       }
+                       /* remove damaged data from fifo */
+                       Amd7930_empty_Dfifo(cs, 1);
 
-                /* RX, TX abort if collision detected */
-                if (der & 2) {
-                        wByteAMD(cs, 0x21, 0xC2);
-                        wByteAMD(cs, 0x21, 0x02);
                        if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
                                del_timer(&cs->dbusytimer);
                        if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
                                schedule_event(cs, D_CLEARBUSY);
-                        /* restart frame */
-                        if (cs->tx_skb) {
+                       /* restart TX-Frame */
+                       if (cs->tx_skb) {
                                skb_push(cs->tx_skb, cs->tx_cnt);
                                cs->tx_cnt = 0;
-                                cs->dc.amd7930.tx_xmtlen = 0;
+                               cs->dc.amd7930.tx_xmtlen = 0;
                                Amd7930_fill_Dfifo(cs);
-                       } else {
-                               printk(KERN_WARNING "HiSax: Amd7930 D-Collision, no skb\n");
-                               debugl1(cs, "Amd7930: interrupt: D-Collision, no skb");
                        }
-                }
-                /* remove damaged data from fifo */
-               Amd7930_empty_Dfifo(cs, 1);
-
-               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                       del_timer(&cs->dbusytimer);
-               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                       schedule_event(cs, D_CLEARBUSY);
-                /* restart TX-Frame */
-                if (cs->tx_skb) {
-                       skb_push(cs->tx_skb, cs->tx_cnt);
-                       cs->tx_cnt = 0;
-                        cs->dc.amd7930.tx_xmtlen = 0;
-                       Amd7930_fill_Dfifo(cs);
                }
-       }
 
-        /* D TX FIFO empty -> fill */
-       if (irflags & 1) {
-               if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "Amd7930: interrupt: clear Timer and fill D-TX-FIFO if data");
+               /* D TX FIFO empty -> fill */
+               if (irflags & 1) {
+                       if (cs->debug & L1_DEB_ISAC)
+                               debugl1(cs, "Amd7930: interrupt: clear Timer and fill D-TX-FIFO if data");
 
-               /* AMD interrupts off */
-                AmdIrqOff(cs);
+                       /* AMD interrupts off */
+                       AmdIrqOff(cs);
 
-                if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                       del_timer(&cs->dbusytimer);
-               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                       schedule_event(cs, D_CLEARBUSY);
-               if (cs->tx_skb) {
-                       if (cs->tx_skb->len)
-                               Amd7930_fill_Dfifo(cs);
+                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                               del_timer(&cs->dbusytimer);
+                       if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                               schedule_event(cs, D_CLEARBUSY);
+                       if (cs->tx_skb) {
+                               if (cs->tx_skb->len)
+                                       Amd7930_fill_Dfifo(cs);
+                       }
+                       /* AMD interrupts on */
+                       AmdIrqOn(cs);
                }
-               /* AMD interrupts on */
-                AmdIrqOn(cs);
-       }
 
 
-        /* D RX FIFO full or tiny packet in Fifo -> empty */
-       if ((irflags & 2) || (dsr1 & 2)) {
-                if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "Amd7930: interrupt: empty D-FIFO");
-                Amd7930_empty_Dfifo(cs, 0);
-       }
+               /* D RX FIFO full or tiny packet in Fifo -> empty */
+               if ((irflags & 2) || (dsr1 & 2)) {
+                       if (cs->debug & L1_DEB_ISAC)
+                               debugl1(cs, "Amd7930: interrupt: empty D-FIFO");
+                       Amd7930_empty_Dfifo(cs, 0);
+               }
 
 
-        /* D-Frame transmit complete */
-       if (dsr1 & 64) {
-               if (cs->debug & L1_DEB_ISAC) {
-                       debugl1(cs, "Amd7930: interrupt: transmit packet ready");
-               }
-               /* AMD interrupts off */
-                AmdIrqOff(cs);
+               /* D-Frame transmit complete */
+               if (dsr1 & 64) {
+                       if (cs->debug & L1_DEB_ISAC) {
+                               debugl1(cs, "Amd7930: interrupt: transmit packet ready");
+                       }
+                       /* AMD interrupts off */
+                       AmdIrqOff(cs);
 
-                if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                       del_timer(&cs->dbusytimer);
-               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                       schedule_event(cs, D_CLEARBUSY);
+                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                               del_timer(&cs->dbusytimer);
+                       if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                               schedule_event(cs, D_CLEARBUSY);
 
-                if (cs->tx_skb) {
-                       if (cs->debug & L1_DEB_ISAC)
-                               debugl1(cs, "Amd7930: interrupt: TX-Packet ready, freeing skb");
-                        dev_kfree_skb_irq(cs->tx_skb);
-                       cs->tx_cnt = 0;
-                        cs->dc.amd7930.tx_xmtlen=0;
-                       cs->tx_skb = NULL;
-                }
-                if ((cs->tx_skb = skb_dequeue(&cs->sq))) {
-                       if (cs->debug & L1_DEB_ISAC)
-                               debugl1(cs, "Amd7930: interrupt: TX-Packet ready, next packet dequeued");
-                       cs->tx_cnt = 0;
-                        cs->dc.amd7930.tx_xmtlen=0;
-                       Amd7930_fill_Dfifo(cs);
+                       if (cs->tx_skb) {
+                               if (cs->debug & L1_DEB_ISAC)
+                                       debugl1(cs, "Amd7930: interrupt: TX-Packet ready, freeing skb");
+                               dev_kfree_skb_irq(cs->tx_skb);
+                               cs->tx_cnt = 0;
+                               cs->dc.amd7930.tx_xmtlen = 0;
+                               cs->tx_skb = NULL;
+                       }
+                       if ((cs->tx_skb = skb_dequeue(&cs->sq))) {
+                               if (cs->debug & L1_DEB_ISAC)
+                                       debugl1(cs, "Amd7930: interrupt: TX-Packet ready, next packet dequeued");
+                               cs->tx_cnt = 0;
+                               cs->dc.amd7930.tx_xmtlen = 0;
+                               Amd7930_fill_Dfifo(cs);
+                       }
+                       else
+                               schedule_event(cs, D_XMTBUFREADY);
+                       /* AMD interrupts on */
+                       AmdIrqOn(cs);
                }
-                else
-                       schedule_event(cs, D_XMTBUFREADY);
-               /* AMD interrupts on */
-                AmdIrqOn(cs);
-        }
 
-       /* LIU status interrupt -> read LSR, check statechanges */
-       if (lsr & 0x38) {
-                /* AMD interrupts off */
-                AmdIrqOff(cs);
+               /* LIU status interrupt -> read LSR, check statechanges */
+               if (lsr & 0x38) {
+                       /* AMD interrupts off */
+                       AmdIrqOff(cs);
 
-               if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "Amd: interrupt: LSR=0x%02X, LIU is in state %d", lsr, ((lsr & 0x7) +2));
+                       if (cs->debug & L1_DEB_ISAC)
+                               debugl1(cs, "Amd: interrupt: LSR=0x%02X, LIU is in state %d", lsr, ((lsr & 0x7) + 2));
 
-               cs->dc.amd7930.ph_state = (lsr & 0x7) + 2;
+                       cs->dc.amd7930.ph_state = (lsr & 0x7) + 2;
 
-               schedule_event(cs, D_L1STATECHANGE);
-               /* AMD interrupts on */
-                AmdIrqOn(cs);
-       }
+                       schedule_event(cs, D_L1STATECHANGE);
+                       /* AMD interrupts on */
+                       AmdIrqOn(cs);
+               }
 
-        /* reads Interrupt-Register again. If there is a new interrupt-flag: restart handler */
-        irflags = rByteAMD(cs, 0x00);
- }
+               /* reads Interrupt-Register again. If there is a new interrupt-flag: restart handler */
+               irflags = rByteAMD(cs, 0x00);
      }
 
 }
 
 static void
 Amd7930_l1hw(struct PStack *st, int pr, void *arg)
 {
-        struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware;
+       struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware;
        struct sk_buff *skb = arg;
        u_long flags;
 
-        if (cs->debug & L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "Amd7930: l1hw called, pr: 0x%04X", pr);
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                        if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
-#ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "Amd7930: l1hw: PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
-                                cs->dc.amd7930.tx_xmtlen=0;
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "Amd7930: l1hw: PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "Amd7930: l1hw: PH_DATA Queued", 0);
 #endif
-                               Amd7930_fill_Dfifo(cs);
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "Amd7930: l1hw: l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
-                        cs->dc.amd7930.tx_xmtlen=0;
+                       cs->dc.amd7930.tx_xmtlen = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
                        if (cs->debug & L1_DEB_LAPD)
-                               Logl2Frame(cs, skb, "Amd7930: l1hw: PH_DATA_PULLED", 0);
+                               Logl2Frame(cs, skb, "Amd7930: l1hw: PH_DATA", 0);
 #endif
                        Amd7930_fill_Dfifo(cs);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "Amd7930: l1hw: l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        break;
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
+               cs->dc.amd7930.tx_xmtlen = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "Amd7930: l1hw: -> PH_REQUEST_PULL, skb: %s", (cs->tx_skb)? "yes":"no");
+               if (cs->debug & L1_DEB_LAPD)
+                       Logl2Frame(cs, skb, "Amd7930: l1hw: PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if ((cs->dc.amd7930.ph_state == 8)) {
-                               /* b-channels off, PH-AR cleared
-                                * change to F3 */
-                               Amd7930_ph_command(cs, 0x20, "HW_RESET REQEST"); //LMR1 bit 5
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                       } else {
-                               Amd7930_ph_command(cs, 0x40, "HW_RESET REQUEST");
-                               cs->dc.amd7930.ph_state = 2;
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               Amd7930_new_ph(cs);
-                       }
-                       break;
-               case (HW_ENABLE | REQUEST):
-                        cs->dc.amd7930.ph_state = 9;
-                        Amd7930_new_ph(cs);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       // automatic
-                       break;
-               case (HW_TESTLOOP | REQUEST):
-                       /* not implemented yet */
-                       break;
-               case (HW_DEACTIVATE | RESPONSE):
-                        skb_queue_purge(&cs->rq);
-                       skb_queue_purge(&cs->sq);
-                       if (cs->tx_skb) {
-                               dev_kfree_skb(cs->tx_skb);
-                               cs->tx_skb = NULL;
-                       }
-                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                               del_timer(&cs->dbusytimer);
-                       if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                               schedule_event(cs, D_CLEARBUSY);
-                       break;
-               default:
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "Amd7930: l1hw: unknown %04x", pr);
-                       break;
+               Amd7930_fill_Dfifo(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG           /* psa */
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "Amd7930: l1hw: -> PH_REQUEST_PULL, skb: %s", (cs->tx_skb) ? "yes" : "no");
+#endif
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               if ((cs->dc.amd7930.ph_state == 8)) {
+                       /* b-channels off, PH-AR cleared
+                        * change to F3 */
+                       Amd7930_ph_command(cs, 0x20, "HW_RESET REQEST"); //LMR1 bit 5
+                       spin_unlock_irqrestore(&cs->lock, flags);
+               } else {
+                       Amd7930_ph_command(cs, 0x40, "HW_RESET REQUEST");
+                       cs->dc.amd7930.ph_state = 2;
+                       spin_unlock_irqrestore(&cs->lock, flags);
+                       Amd7930_new_ph(cs);
+               }
+               break;
+       case (HW_ENABLE | REQUEST):
+               cs->dc.amd7930.ph_state = 9;
+               Amd7930_new_ph(cs);
+               break;
+       case (HW_INFO3 | REQUEST):
+               // automatic
+               break;
+       case (HW_TESTLOOP | REQUEST):
+               /* not implemented yet */
+               break;
+       case (HW_DEACTIVATE | RESPONSE):
+               skb_queue_purge(&cs->rq);
+               skb_queue_purge(&cs->sq);
+               if (cs->tx_skb) {
+                       dev_kfree_skb(cs->tx_skb);
+                       cs->tx_skb = NULL;
+               }
+               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                       del_timer(&cs->dbusytimer);
+               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                       schedule_event(cs, D_CLEARBUSY);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "Amd7930: l1hw: unknown %04x", pr);
+               break;
        }
 }
 
@@ -670,16 +670,16 @@ static void
 setstack_Amd7930(struct PStack *st, struct IsdnCardState *cs)
 {
 
-        if (cs->debug & L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "Amd7930: setstack called");
 
-        st->l1.l1hw = Amd7930_l1hw;
+       st->l1.l1hw = Amd7930_l1hw;
 }
 
 
 static void
 DC_Close_Amd7930(struct IsdnCardState *cs) {
-        if (cs->debug & L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "Amd7930: DC_Close called");
 }
 
@@ -689,23 +689,23 @@ dbusy_timer_handler(struct IsdnCardState *cs)
 {
        u_long flags;
        struct PStack *stptr;
-        WORD dtcr, der;
-        BYTE dsr1, dsr2;
+       WORD dtcr, der;
+       BYTE dsr1, dsr2;
 
 
-        if (cs->debug & L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "Amd7930: dbusy_timer expired!");
 
        if (test_bit(FLG_DBUSY_TIMER, &cs->HW_Flags)) {
                spin_lock_irqsave(&cs->lock, flags);
-                /* D Transmit Byte Count Register:
-                 * Counts down packet's number of Bytes, 0 if packet ready */
-                dtcr = rWordAMD(cs, 0x85);
-                dsr1 = rByteAMD(cs, 0x02);
-                dsr2 = rByteAMD(cs, 0x07);
-                der  = rWordAMD(cs, 0x03);
-
-               if (cs->debug & L1_DEB_ISAC)
+               /* D Transmit Byte Count Register:
+                * Counts down packet's number of Bytes, 0 if packet ready */
+               dtcr = rWordAMD(cs, 0x85);
+               dsr1 = rByteAMD(cs, 0x02);
+               dsr2 = rByteAMD(cs, 0x07);
+               der  = rWordAMD(cs, 0x03);
+
+               if (cs->debug & L1_DEB_ISAC)
                        debugl1(cs, "Amd7930: dbusy_timer_handler: DSR1=0x%02X, DSR2=0x%02X, DER=0x%04X, cs->tx_skb->len=%u, tx_stat=%u, dtcr=%u, cs->tx_cnt=%u", dsr1, dsr2, der, cs->tx_skb->len, cs->dc.amd7930.tx_xmtlen, dtcr, cs->tx_cnt);
 
                if ((cs->dc.amd7930.tx_xmtlen - dtcr) < cs->tx_cnt) {   /* D-Channel Busy */
@@ -724,7 +724,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
                                dev_kfree_skb_any(cs->tx_skb);
                                cs->tx_cnt = 0;
                                cs->tx_skb = NULL;
-                                cs->dc.amd7930.tx_xmtlen = 0;
+                               cs->dc.amd7930.tx_xmtlen = 0;
                        } else {
                                printk(KERN_WARNING "HiSax: Amd7930: D-Channel Busy no skb\n");
                                debugl1(cs, "Amd7930: D-Channel Busy no skb");
@@ -736,7 +736,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
                        spin_unlock_irqrestore(&cs->lock, flags);
                        cs->irq_func(cs->irq, cs);
 
-                        if (cs->debug & L1_DEB_ISAC)
+                       if (cs->debug & L1_DEB_ISAC)
                                debugl1(cs, "Amd7930: dbusy_timer_handler: Transmitter reset");
                }
        }
@@ -746,16 +746,16 @@ dbusy_timer_handler(struct IsdnCardState *cs)
 
 void Amd7930_init(struct IsdnCardState *cs)
 {
-    WORD *ptr;
-    BYTE cmd, cnt;
+       WORD *ptr;
+       BYTE cmd, cnt;
 
-        if (cs->debug & L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "Amd7930: initamd called");
 
-        cs->dc.amd7930.tx_xmtlen = 0;
-        cs->dc.amd7930.old_state = 0;
-        cs->dc.amd7930.lmr1 = 0x40;
-        cs->dc.amd7930.ph_command = Amd7930_ph_command;
+       cs->dc.amd7930.tx_xmtlen = 0;
+       cs->dc.amd7930.old_state = 0;
+       cs->dc.amd7930.lmr1 = 0x40;
+       cs->dc.amd7930.ph_command = Amd7930_ph_command;
        cs->setstack_d = setstack_Amd7930;
        cs->DC_Close = DC_Close_Amd7930;
 
@@ -763,19 +763,19 @@ void Amd7930_init(struct IsdnCardState *cs)
        for (ptr = initAMD; *ptr != 0xFFFF; ) {
                cmd = LOBYTE(*ptr);
 
-                /* read */
-                if (*ptr++ >= 0x100) {
+               /* read */
+               if (*ptr++ >= 0x100) {
                        if (cmd < 8)
-                                /* reset register */
-                                rByteAMD(cs, cmd);
+                               /* reset register */
+                               rByteAMD(cs, cmd);
                        else {
                                wByteAMD(cs, 0x00, cmd);
                                for (cnt = *ptr++; cnt > 0; cnt--)
                                        rByteAMD(cs, 0x01);
                        }
                }
-                /* write */
-                else if (cmd < 8)
+               /* write */
+               else if (cmd < 8)
                        wByteAMD(cs, cmd, LOBYTE(*ptr++));
 
                else {
@@ -789,7 +789,7 @@ void Amd7930_init(struct IsdnCardState *cs)
 void __devinit
 setup_Amd7930(struct IsdnCardState *cs)
 {
-        INIT_WORK(&cs->tqueue, Amd7930_bh);
+       INIT_WORK(&cs->tqueue, Amd7930_bh);
        cs->dbusytimer.function = (void *) dbusy_timer_handler;
        cs->dbusytimer.data = (long) cs;
        init_timer(&cs->dbusytimer);
index 21cbbe1..29ec2df 100644 (file)
@@ -9,7 +9,7 @@
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
+
 #include <linux/sched.h>
 #include "hisax.h"
 #include "isdnl1.h"
@@ -22,9 +22,9 @@ static void
 add_arcofi_timer(struct IsdnCardState *cs) {
        if (test_and_set_bit(FLG_ARCOFI_TIMER, &cs->HW_Flags)) {
                del_timer(&cs->dc.isac.arcofitimer);
-       }       
+       }
        init_timer(&cs->dc.isac.arcofitimer);
-       cs->dc.isac.arcofitimer.expires = jiffies + ((ARCOFI_TIMER_VALUE * HZ)/1000);
+       cs->dc.isac.arcofitimer.expires = jiffies + ((ARCOFI_TIMER_VALUE * HZ) / 1000);
        add_timer(&cs->dc.isac.arcofitimer);
 }
 
@@ -34,11 +34,11 @@ send_arcofi(struct IsdnCardState *cs) {
        cs->dc.isac.mon_txp = 0;
        cs->dc.isac.mon_txc = cs->dc.isac.arcofi_list->len;
        memcpy(cs->dc.isac.mon_tx, cs->dc.isac.arcofi_list->msg, cs->dc.isac.mon_txc);
-       switch(cs->dc.isac.arcofi_bc) {
-               case 0: break;
-               case 1: cs->dc.isac.mon_tx[1] |= 0x40;
-                       break;
-               default: break;
+       switch (cs->dc.isac.arcofi_bc) {
+       case 0: break;
+       case 1: cs->dc.isac.mon_tx[1] |= 0x40;
+               break;
+       default: break;
        }
        cs->dc.isac.mocr &= 0x0f;
        cs->dc.isac.mocr |= 0xa0;
@@ -58,42 +58,25 @@ arcofi_fsm(struct IsdnCardState *cs, int event, void *data) {
                cs->dc.isac.arcofi_state = ARCOFI_NOP;
                test_and_set_bit(FLG_ARCOFI_ERROR, &cs->HW_Flags);
                wake_up(&cs->dc.isac.arcofi_wait);
-               return(1);
+               return (1);
        }
        switch (cs->dc.isac.arcofi_state) {
-               case ARCOFI_NOP:
-                       if (event == ARCOFI_START) {
-                               cs->dc.isac.arcofi_list = data;
-                               cs->dc.isac.arcofi_state = ARCOFI_TRANSMIT;
-                               send_arcofi(cs);
-                       }
-                       break;
-               case ARCOFI_TRANSMIT:
-                       if (event == ARCOFI_TX_END) {
-                               if (cs->dc.isac.arcofi_list->receive) {
-                                       add_arcofi_timer(cs);
-                                       cs->dc.isac.arcofi_state = ARCOFI_RECEIVE;
-                               } else {
-                                       if (cs->dc.isac.arcofi_list->next) {
-                                               cs->dc.isac.arcofi_list =
-                                                       cs->dc.isac.arcofi_list->next;
-                                               send_arcofi(cs);
-                                       } else {
-                                               if (test_and_clear_bit(FLG_ARCOFI_TIMER, &cs->HW_Flags)) {
-                                                       del_timer(&cs->dc.isac.arcofitimer);
-                                               }
-                                               cs->dc.isac.arcofi_state = ARCOFI_NOP;
-                                               wake_up(&cs->dc.isac.arcofi_wait);
-                                       }
-                               }
-                       }
-                       break;
-               case ARCOFI_RECEIVE:
-                       if (event == ARCOFI_RX_END) {
+       case ARCOFI_NOP:
+               if (event == ARCOFI_START) {
+                       cs->dc.isac.arcofi_list = data;
+                       cs->dc.isac.arcofi_state = ARCOFI_TRANSMIT;
+                       send_arcofi(cs);
+               }
+               break;
+       case ARCOFI_TRANSMIT:
+               if (event == ARCOFI_TX_END) {
+                       if (cs->dc.isac.arcofi_list->receive) {
+                               add_arcofi_timer(cs);
+                               cs->dc.isac.arcofi_state = ARCOFI_RECEIVE;
+                       } else {
                                if (cs->dc.isac.arcofi_list->next) {
                                        cs->dc.isac.arcofi_list =
                                                cs->dc.isac.arcofi_list->next;
-                                       cs->dc.isac.arcofi_state = ARCOFI_TRANSMIT;
                                        send_arcofi(cs);
                                } else {
                                        if (test_and_clear_bit(FLG_ARCOFI_TIMER, &cs->HW_Flags)) {
@@ -103,12 +86,29 @@ arcofi_fsm(struct IsdnCardState *cs, int event, void *data) {
                                        wake_up(&cs->dc.isac.arcofi_wait);
                                }
                        }
-                       break;
-               default:
-                       debugl1(cs, "Arcofi unknown state %x", cs->dc.isac.arcofi_state);
-                       return(2);
+               }
+               break;
+       case ARCOFI_RECEIVE:
+               if (event == ARCOFI_RX_END) {
+                       if (cs->dc.isac.arcofi_list->next) {
+                               cs->dc.isac.arcofi_list =
+                                       cs->dc.isac.arcofi_list->next;
+                               cs->dc.isac.arcofi_state = ARCOFI_TRANSMIT;
+                               send_arcofi(cs);
+                       } else {
+                               if (test_and_clear_bit(FLG_ARCOFI_TIMER, &cs->HW_Flags)) {
+                                       del_timer(&cs->dc.isac.arcofitimer);
+                               }
+                               cs->dc.isac.arcofi_state = ARCOFI_NOP;
+                               wake_up(&cs->dc.isac.arcofi_wait);
+                       }
+               }
+               break;
+       default:
+               debugl1(cs, "Arcofi unknown state %x", cs->dc.isac.arcofi_state);
+               return (2);
        }
-       return(0);
+       return (0);
 }
 
 static void
index 00c44d3..b9c7752 100644 (file)
@@ -9,7 +9,7 @@
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
+
 #define ARCOFI_USE     1
 
 /* states */
index 1f879b5..2b74a40 100644 (file)
@@ -22,7 +22,7 @@
 
 static const char *Asuscom_revision = "$Revision: 1.14.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define ASUS_ISAC      0
@@ -51,7 +51,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -66,7 +66,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -87,13 +87,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.asus.adr, cs->hw.asus.isac, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.asus.adr, cs->hw.asus.isac, 0, data, size);
 }
@@ -101,23 +101,23 @@ WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
 static u_char
 ReadISAC_IPAC(struct IsdnCardState *cs, u_char offset)
 {
-       return (readreg(cs->hw.asus.adr, cs->hw.asus.isac, offset|0x80));
+       return (readreg(cs->hw.asus.adr, cs->hw.asus.isac, offset | 0x80));
 }
 
 static void
 WriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
-       writereg(cs->hw.asus.adr, cs->hw.asus.isac, offset|0x80, value);
+       writereg(cs->hw.asus.adr, cs->hw.asus.isac, offset | 0x80, value);
 }
 
 static void
-ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.asus.adr, cs->hw.asus.isac, 0x80, data, size);
 }
 
 static void
-WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.asus.adr, cs->hw.asus.isac, 0x80, data, size);
 }
@@ -140,16 +140,16 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
  * fast interrupt HSCX stuff goes here
  */
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.asus.adr, \
-               cs->hw.asus.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.asus.adr, \
-               cs->hw.asus.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.asus.adr,                 \
+                                     cs->hw.asus.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.asus.adr,         \
+                                             cs->hw.asus.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.asus.adr, \
-               cs->hw.asus.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.asus.adr,       \
+                                               cs->hw.asus.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.asus.adr, \
-               cs->hw.asus.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.asus.adr,     \
+                                                 cs->hw.asus.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -162,11 +162,11 @@ asuscom_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_ISTA + 0x40);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.asus.adr, cs->hw.asus.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_ISTA + 0x40);
@@ -274,39 +274,39 @@ Asus_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_asuscom(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_asuscom(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->debug |= L1_DEB_IPAC;
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_asuscom(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_asuscom(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->debug |= L1_DEB_IPAC;
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 #ifdef __ISAPNP__
 static struct isapnp_device_id asus_ids[] __devinitdata = {
        { ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688),
-         ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), 
+         ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688),
          (unsigned long) "Asus1688 PnP" },
        { ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1690),
-         ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1690), 
+         ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1690),
          (unsigned long) "Asus1690 PnP" },
        { ISAPNP_VENDOR('S', 'I', 'E'), ISAPNP_FUNCTION(0x0020),
-         ISAPNP_VENDOR('S', 'I', 'E'), ISAPNP_FUNCTION(0x0020), 
+         ISAPNP_VENDOR('S', 'I', 'E'), ISAPNP_FUNCTION(0x0020),
          (unsigned long) "Isurf2 PnP" },
        { ISAPNP_VENDOR('E', 'L', 'F'), ISAPNP_FUNCTION(0x0000),
-         ISAPNP_VENDOR('E', 'L', 'F'), ISAPNP_FUNCTION(0x0000), 
+         ISAPNP_VENDOR('E', 'L', 'F'), ISAPNP_FUNCTION(0x0000),
          (unsigned long) "Iscas TE320" },
        { 0, }
 };
@@ -330,30 +330,30 @@ setup_asuscom(struct IsdnCard *card)
 #ifdef __ISAPNP__
        if (!card->para[1] && isapnp_present()) {
                struct pnp_dev *pnp_d;
-               while(ipid->card_vendor) {
+               while (ipid->card_vendor) {
                        if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                               ipid->card_device, pnp_c))) {
+                                                  ipid->card_device, pnp_c))) {
                                pnp_d = NULL;
                                if ((pnp_d = pnp_find_dev(pnp_c,
-                                       ipid->vendor, ipid->function, pnp_d))) {
+                                                         ipid->vendor, ipid->function, pnp_d))) {
                                        int err;
 
                                        printk(KERN_INFO "HiSax: %s detected\n",
-                                               (char *)ipid->driver_data);
+                                              (char *)ipid->driver_data);
                                        pnp_disable_dev(pnp_d);
                                        err = pnp_activate_dev(pnp_d);
-                                       if (err<0) {
+                                       if (err < 0) {
                                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                                       __func__, err);
-                                               return(0);
+                                                      __func__, err);
+                                               return (0);
                                        }
                                        card->para[1] = pnp_port_start(pnp_d, 0);
                                        card->para[0] = pnp_irq(pnp_d, 0);
                                        if (!card->para[0] || !card->para[1]) {
                                                printk(KERN_ERR "AsusPnP:some resources are missing %ld/%lx\n",
-                                                       card->para[0], card->para[1]);
+                                                      card->para[0], card->para[1]);
                                                pnp_disable_dev(pnp_d);
-                                               return(0);
+                                               return (0);
                                        }
                                        break;
                                } else {
@@ -362,10 +362,10 @@ setup_asuscom(struct IsdnCard *card)
                        }
                        ipid++;
                        pnp_c = NULL;
-               } 
+               }
                if (!ipid->card_vendor) {
                        printk(KERN_INFO "AsusPnP: no ISAPnP card found\n");
-                       return(0);
+                       return (0);
                }
        }
 #endif
@@ -380,14 +380,14 @@ setup_asuscom(struct IsdnCard *card)
                return (0);
        }
        printk(KERN_INFO "ISDNLink: defined at 0x%x IRQ %d\n",
-               cs->hw.asus.cfg_reg, cs->irq);
+              cs->hw.asus.cfg_reg, cs->irq);
        setup_isac(cs);
        cs->BC_Read_Reg = &ReadHSCX;
        cs->BC_Write_Reg = &WriteHSCX;
        cs->BC_Send_Data = &hscx_fill_fifo;
        cs->cardmsg = &Asus_card_msg;
-       val = readreg(cs->hw.asus.cfg_reg + ASUS_IPAC_ALE, 
-               cs->hw.asus.cfg_reg + ASUS_IPAC_DATA, IPAC_ID);
+       val = readreg(cs->hw.asus.cfg_reg + ASUS_IPAC_ALE,
+                     cs->hw.asus.cfg_reg + ASUS_IPAC_DATA, IPAC_ID);
        if ((val == 1) || (val == 2)) {
                cs->subtyp = ASUS_IPAC;
                cs->hw.asus.adr  = cs->hw.asus.cfg_reg + ASUS_IPAC_ALE;
@@ -415,7 +415,7 @@ setup_asuscom(struct IsdnCard *card)
                ISACVersion(cs, "ISDNLink:");
                if (HscxVersion(cs, "ISDNLink:")) {
                        printk(KERN_WARNING
-                       "ISDNLink: wrong HSCX versions check IO address\n");
+                              "ISDNLink: wrong HSCX versions check IO address\n");
                        release_io_asuscom(cs);
                        return (0);
                }
index eb6b432..402d489 100644 (file)
@@ -22,7 +22,7 @@ static const char *avm_revision = "$Revision: 2.15.2.4 $";
 #define         AVM_A1_STAT_HSCX       0x02
 #define         AVM_A1_STAT_TIMER      0x04
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static inline u_char
@@ -39,13 +39,13 @@ writereg(unsigned int adr, u_char off, u_char data)
 
 
 static inline void
-read_fifo(unsigned int adr, u_char * data, int size)
+read_fifo(unsigned int adr, u_char *data, int size)
 {
        insb(adr, data, size);
 }
 
 static void
-write_fifo(unsigned int adr, u_char * data, int size)
+write_fifo(unsigned int adr, u_char *data, int size)
 {
        outsb(adr, data, size);
 }
@@ -65,13 +65,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        read_fifo(cs->hw.avm.isacfifo, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        write_fifo(cs->hw.avm.isacfifo, data, size);
 }
@@ -158,23 +158,23 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       return(0);
-               case CARD_RELEASE:
-                       release_ioregs(cs, 0x3f);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 1);
-                       byteout(cs->hw.avm.cfg_reg, 0x16);
-                       byteout(cs->hw.avm.cfg_reg, 0x1E);
-                       inithscxisac(cs, 2);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               return (0);
+       case CARD_RELEASE:
+               release_ioregs(cs, 0x3f);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 1);
+               byteout(cs->hw.avm.cfg_reg, 0x16);
+               byteout(cs->hw.avm.cfg_reg, 0x1E);
+               inithscxisac(cs, 2);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 int __devinit
index 3039c6d..3934719 100644 (file)
@@ -39,7 +39,7 @@
 #define         ASL0_R_ISAC            0x20 /* active low */
 #define         ASL0_R_HSCX            0x40 /* active low */
 #define         ASL0_R_TESTBIT         0x80
-#define  ASL0_R_IRQPENDING     (ASL0_R_ISAC|ASL0_R_HSCX|ASL0_R_TIMER)
+#define  ASL0_R_IRQPENDING     (ASL0_R_ISAC | ASL0_R_HSCX | ASL0_R_TIMER)
 
 /* write bits ASL0 */
 #define         ASL0_W_RESET           0x01
@@ -52,8 +52,8 @@
 #define         ASL1_W_LED0            0x10
 #define         ASL1_W_LED1            0x20
 #define         ASL1_W_ENABLE_S0       0xC0
-#define byteout(addr,val) outb(val,addr)
+
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static const char *avm_revision = "$Revision: 2.9.2.5 $";
@@ -61,34 +61,34 @@ static const char *avm_revision = "$Revision: 2.9.2.5 $";
 static inline u_char
 ReadISAC(struct IsdnCardState *cs, u_char offset)
 {
-        u_char ret;
+       u_char ret;
 
-        offset -= 0x20;
-        byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,ISAC_REG_OFFSET+offset);
-       ret = bytein(cs->hw.avm.cfg_reg+DATAREG_OFFSET);
+       offset -= 0x20;
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_REG_OFFSET + offset);
+       ret = bytein(cs->hw.avm.cfg_reg + DATAREG_OFFSET);
        return ret;
 }
 
 static inline void
 WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
-        offset -= 0x20;
-        byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,ISAC_REG_OFFSET+offset);
-       byteout(cs->hw.avm.cfg_reg+DATAREG_OFFSET, value);
+       offset -= 0x20;
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_REG_OFFSET + offset);
+       byteout(cs->hw.avm.cfg_reg + DATAREG_OFFSET, value);
 }
 
 static inline void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
-       byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,ISAC_FIFO_OFFSET);
-       insb(cs->hw.avm.cfg_reg+DATAREG_OFFSET, data, size);
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_FIFO_OFFSET);
+       insb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size);
 }
 
 static inline void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
-       byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,ISAC_FIFO_OFFSET);
-       outsb(cs->hw.avm.cfg_reg+DATAREG_OFFSET, data, size);
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_FIFO_OFFSET);
+       outsb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size);
 }
 
 static inline u_char
@@ -96,36 +96,36 @@ ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset)
 {
        u_char ret;
 
-        offset -= 0x20;
-       byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,
-                       HSCX_REG_OFFSET+hscx*HSCX_CH_DIFF+offset);
-       ret = bytein(cs->hw.avm.cfg_reg+DATAREG_OFFSET);
+       offset -= 0x20;
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET,
+               HSCX_REG_OFFSET + hscx * HSCX_CH_DIFF + offset);
+       ret = bytein(cs->hw.avm.cfg_reg + DATAREG_OFFSET);
        return ret;
 }
 
 static inline void
 WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
 {
-        offset -= 0x20;
-       byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,
-                       HSCX_REG_OFFSET+hscx*HSCX_CH_DIFF+offset);
-       byteout(cs->hw.avm.cfg_reg+DATAREG_OFFSET, value);
+       offset -= 0x20;
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET,
+               HSCX_REG_OFFSET + hscx * HSCX_CH_DIFF + offset);
+       byteout(cs->hw.avm.cfg_reg + DATAREG_OFFSET, value);
 }
 
 static inline void
-ReadHSCXfifo(struct IsdnCardState *cs, int hscx, u_char * data, int size)
+ReadHSCXfifo(struct IsdnCardState *cs, int hscx, u_char *data, int size)
 {
-       byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,
-                       HSCX_FIFO_OFFSET+hscx*HSCX_CH_DIFF);
-       insb(cs->hw.avm.cfg_reg+DATAREG_OFFSET, data, size);
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET,
+               HSCX_FIFO_OFFSET + hscx * HSCX_CH_DIFF);
+       insb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size);
 }
 
 static inline void
-WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char * data, int size)
+WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char *data, int size)
 {
-       byteout(cs->hw.avm.cfg_reg+ADDRREG_OFFSET,
-                       HSCX_FIFO_OFFSET+hscx*HSCX_CH_DIFF);
-       outsb(cs->hw.avm.cfg_reg+DATAREG_OFFSET, data, size);
+       byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET,
+               HSCX_FIFO_OFFSET + hscx * HSCX_CH_DIFF);
+       outsb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size);
 }
 
 /*
@@ -134,7 +134,7 @@ WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char * data, int size)
 
 #define READHSCX(cs, nr, reg) ReadHSCX(cs, nr, reg)
 #define WRITEHSCX(cs, nr, reg, data) WriteHSCX(cs, nr, reg, data)
-#define READHSCXFIFO(cs, nr, ptr, cnt) ReadHSCXfifo(cs, nr, ptr, cnt) 
+#define READHSCXFIFO(cs, nr, ptr, cnt) ReadHSCXfifo(cs, nr, ptr, cnt)
 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) WriteHSCXfifo(cs, nr, ptr, cnt)
 
 #include "hscx_irq.c"
@@ -147,11 +147,11 @@ avm_a1p_interrupt(int intno, void *dev_id)
        u_long flags;
 
        spin_lock_irqsave(&cs->lock, flags);
-       while ((sval = (~bytein(cs->hw.avm.cfg_reg+ASL0_OFFSET) & ASL0_R_IRQPENDING))) {
+       while ((sval = (~bytein(cs->hw.avm.cfg_reg + ASL0_OFFSET) & ASL0_R_IRQPENDING))) {
                if (cs->debug & L1_DEB_INTSTAT)
                        debugl1(cs, "avm IntStatus %x", sval);
                if (sval & ASL0_R_HSCX) {
-                        val = ReadHSCX(cs, 1, HSCX_ISTA);
+                       val = ReadHSCX(cs, 1, HSCX_ISTA);
                        if (val)
                                hscx_int_main(cs, val);
                }
@@ -177,38 +177,38 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,0x00);
-                       HZDELAY(HZ / 5 + 1);
-                       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,ASL0_W_RESET);
-                       HZDELAY(HZ / 5 + 1);
-                       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,0x00);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return 0;
-
-               case CARD_RELEASE:
-                       /* free_irq is done in HiSax_closecard(). */
-                       /* free_irq(cs->irq, cs); */
-                       return 0;
-
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       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);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return 0;
-
-               case CARD_TEST:
-                       /* we really don't need it for the PCMCIA Version */
-                       return 0;
-
-               default:
-                       /* all card drivers ignore others, so we do the same */
-                       return 0;
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00);
+               HZDELAY(HZ / 5 + 1);
+               byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_RESET);
+               HZDELAY(HZ / 5 + 1);
+               byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return 0;
+
+       case CARD_RELEASE:
+               /* free_irq is done in HiSax_closecard(). */
+               /* free_irq(cs->irq, cs); */
+               return 0;
+
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               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);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return 0;
+
+       case CARD_TEST:
+               /* we really don't need it for the PCMCIA Version */
+               return 0;
+
+       default:
+               /* all card drivers ignore others, so we do the same */
+               return 0;
        }
        return 0;
 }
@@ -222,7 +222,7 @@ int __devinit setup_avm_a1_pcmcia(struct IsdnCard *card)
 
        strcpy(tmp, avm_revision);
        printk(KERN_INFO "HiSax: AVM A1 PCMCIA driver Rev. %s\n",
-                                                HiSax_getrev(tmp));
+              HiSax_getrev(tmp));
        if (cs->typ != ISDN_CTYPE_A1_PCMCIA)
                return (0);
 
@@ -230,20 +230,20 @@ int __devinit setup_avm_a1_pcmcia(struct IsdnCard *card)
        cs->irq = card->para[0];
 
 
-       byteout(cs->hw.avm.cfg_reg+ASL1_OFFSET, ASL1_W_ENABLE_S0);
-       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,0x00);
+       byteout(cs->hw.avm.cfg_reg + ASL1_OFFSET, ASL1_W_ENABLE_S0);
+       byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00);
        HZDELAY(HZ / 5 + 1);
-       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,ASL0_W_RESET);
+       byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_RESET);
        HZDELAY(HZ / 5 + 1);
-       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,0x00);
+       byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00);
 
-       byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET, ASL0_W_TDISABLE|ASL0_W_TRESET);
+       byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_TDISABLE | ASL0_W_TRESET);
 
-       model = bytein(cs->hw.avm.cfg_reg+MODREG_OFFSET);
-       vers = bytein(cs->hw.avm.cfg_reg+VERREG_OFFSET);
+       model = bytein(cs->hw.avm.cfg_reg + MODREG_OFFSET);
+       vers = bytein(cs->hw.avm.cfg_reg + VERREG_OFFSET);
 
        printk(KERN_INFO "AVM A1 PCMCIA: io 0x%x irq %d model %d version %d\n",
-                               cs->hw.avm.cfg_reg, cs->irq, model, vers);
+              cs->hw.avm.cfg_reg, cs->irq, model, vers);
 
        setup_isac(cs);
        cs->readisac = &ReadISAC;
index 0e66af1..979492d 100644 (file)
@@ -95,14 +95,14 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        outb(AVM_ISAC_FIFO, cs->hw.avm.cfg_reg + 4);
        insb(cs->hw.avm.isac, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        outb(AVM_ISAC_FIFO, cs->hw.avm.cfg_reg + 4);
        outsb(cs->hw.avm.isac, data, size);
@@ -151,7 +151,7 @@ WriteHDLCPnP(struct IsdnCardState *cs, int chan, u_char offset, u_char value)
 static u_char
 ReadHDLC_s(struct IsdnCardState *cs, int chan, u_char offset)
 {
-       return(0xff & ReadHDLCPCI(cs, chan, offset));
+       return (0xff & ReadHDLCPCI(cs, chan, offset));
 }
 
 static void
@@ -164,11 +164,11 @@ static inline
 struct BCState *Sel_BCS(struct IsdnCardState *cs, int channel)
 {
        if (cs->bcs[0].mode && (cs->bcs[0].channel == channel))
-               return(&cs->bcs[0]);
+               return (&cs->bcs[0]);
        else if (cs->bcs[1].mode && (cs->bcs[1].channel == channel))
-               return(&cs->bcs[1]);
+               return (&cs->bcs[1]);
        else
-               return(NULL);
+               return (NULL);
 }
 
 static void
@@ -182,13 +182,13 @@ write_ctrl(struct BCState *bcs, int which) {
        } else {
                if (which & 4)
                        WriteHDLCPnP(bcs->cs, bcs->channel, HDLC_STATUS + 2,
-                               bcs->hw.hdlc.ctrl.sr.mode);
+                                    bcs->hw.hdlc.ctrl.sr.mode);
                if (which & 2)
                        WriteHDLCPnP(bcs->cs, bcs->channel, HDLC_STATUS + 1,
-                               bcs->hw.hdlc.ctrl.sr.xml);
+                                    bcs->hw.hdlc.ctrl.sr.xml);
                if (which & 1)
                        WriteHDLCPnP(bcs->cs, bcs->channel, HDLC_STATUS,
-                               bcs->hw.hdlc.ctrl.sr.cmd);
+                                    bcs->hw.hdlc.ctrl.sr.cmd);
        }
 }
 
@@ -203,41 +203,41 @@ modehdlc(struct BCState *bcs, int mode, int bc)
                        'A' + hdlc, bcs->mode, mode, hdlc, bc);
        bcs->hw.hdlc.ctrl.ctrl = 0;
        switch (mode) {
-               case (-1): /* used for init */
-                       bcs->mode = 1;
-                       bcs->channel = bc;
-                       bc = 0;
-               case (L1_MODE_NULL):
-                       if (bcs->mode == L1_MODE_NULL)
-                               return;
-                       bcs->hw.hdlc.ctrl.sr.cmd  = HDLC_CMD_XRS | HDLC_CMD_RRS;
-                       bcs->hw.hdlc.ctrl.sr.mode = HDLC_MODE_TRANS;
-                       write_ctrl(bcs, 5);
-                       bcs->mode = L1_MODE_NULL;
-                       bcs->channel = bc;
-                       break;
-               case (L1_MODE_TRANS):
-                       bcs->mode = mode;
-                       bcs->channel = bc;
-                       bcs->hw.hdlc.ctrl.sr.cmd  = HDLC_CMD_XRS | HDLC_CMD_RRS;
-                       bcs->hw.hdlc.ctrl.sr.mode = HDLC_MODE_TRANS;
-                       write_ctrl(bcs, 5);
-                       bcs->hw.hdlc.ctrl.sr.cmd = HDLC_CMD_XRS;
-                       write_ctrl(bcs, 1);
-                       bcs->hw.hdlc.ctrl.sr.cmd = 0;
-                       schedule_event(bcs, B_XMTBUFREADY);
-                       break;
-               case (L1_MODE_HDLC):
-                       bcs->mode = mode;
-                       bcs->channel = bc;
-                       bcs->hw.hdlc.ctrl.sr.cmd  = HDLC_CMD_XRS | HDLC_CMD_RRS;
-                       bcs->hw.hdlc.ctrl.sr.mode = HDLC_MODE_ITF_FLG;
-                       write_ctrl(bcs, 5);
-                       bcs->hw.hdlc.ctrl.sr.cmd = HDLC_CMD_XRS;
-                       write_ctrl(bcs, 1);
-                       bcs->hw.hdlc.ctrl.sr.cmd = 0;
-                       schedule_event(bcs, B_XMTBUFREADY);
-                       break;
+       case (-1): /* used for init */
+               bcs->mode = 1;
+               bcs->channel = bc;
+               bc = 0;
+       case (L1_MODE_NULL):
+               if (bcs->mode == L1_MODE_NULL)
+                       return;
+               bcs->hw.hdlc.ctrl.sr.cmd  = HDLC_CMD_XRS | HDLC_CMD_RRS;
+               bcs->hw.hdlc.ctrl.sr.mode = HDLC_MODE_TRANS;
+               write_ctrl(bcs, 5);
+               bcs->mode = L1_MODE_NULL;
+               bcs->channel = bc;
+               break;
+       case (L1_MODE_TRANS):
+               bcs->mode = mode;
+               bcs->channel = bc;
+               bcs->hw.hdlc.ctrl.sr.cmd  = HDLC_CMD_XRS | HDLC_CMD_RRS;
+               bcs->hw.hdlc.ctrl.sr.mode = HDLC_MODE_TRANS;
+               write_ctrl(bcs, 5);
+               bcs->hw.hdlc.ctrl.sr.cmd = HDLC_CMD_XRS;
+               write_ctrl(bcs, 1);
+               bcs->hw.hdlc.ctrl.sr.cmd = 0;
+               schedule_event(bcs, B_XMTBUFREADY);
+               break;
+       case (L1_MODE_HDLC):
+               bcs->mode = mode;
+               bcs->channel = bc;
+               bcs->hw.hdlc.ctrl.sr.cmd  = HDLC_CMD_XRS | HDLC_CMD_RRS;
+               bcs->hw.hdlc.ctrl.sr.mode = HDLC_MODE_ITF_FLG;
+               write_ctrl(bcs, 5);
+               bcs->hw.hdlc.ctrl.sr.cmd = HDLC_CMD_XRS;
+               write_ctrl(bcs, 1);
+               bcs->hw.hdlc.ctrl.sr.cmd = 0;
+               schedule_event(bcs, B_XMTBUFREADY);
+               break;
        }
 }
 
@@ -247,7 +247,7 @@ hdlc_empty_fifo(struct BCState *bcs, int count)
        register u_int *ptr;
        u_char *p;
        u_char idx = bcs->channel ? AVM_HDLC_2 : AVM_HDLC_1;
-       int cnt=0;
+       int cnt = 0;
        struct IsdnCardState *cs = bcs->cs;
 
        if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
@@ -264,7 +264,7 @@ hdlc_empty_fifo(struct BCState *bcs, int count)
                outl(idx, cs->hw.avm.cfg_reg + 4);
                while (cnt < count) {
 #ifdef __powerpc__
-                       *ptr++ = in_be32((unsigned *)(cs->hw.avm.isac +_IO_BASE));
+                       *ptr++ = in_be32((unsigned *)(cs->hw.avm.isac + _IO_BASE));
 #else
                        *ptr++ = inl(cs->hw.avm.isac);
 #endif /* __powerpc__ */
@@ -293,7 +293,7 @@ static inline void
 hdlc_fill_fifo(struct BCState *bcs)
 {
        struct IsdnCardState *cs = bcs->cs;
-       int count, cnt =0;
+       int count, cnt = 0;
        int fifo_size = 32;
        u_char *p;
        u_int *ptr;
@@ -323,16 +323,16 @@ hdlc_fill_fifo(struct BCState *bcs)
        bcs->hw.hdlc.ctrl.sr.xml = ((count == fifo_size) ? 0 : count);
        write_ctrl(bcs, 3);  /* sets the correct index too */
        if (cs->subtyp == AVM_FRITZ_PCI) {
-               while (cnt<count) {
+               while (cnt < count) {
 #ifdef __powerpc__
-                       out_be32((unsigned *)(cs->hw.avm.isac +_IO_BASE), *ptr++);
+                       out_be32((unsigned *)(cs->hw.avm.isac + _IO_BASE), *ptr++);
 #else
                        outl(*ptr++, cs->hw.avm.isac);
 #endif /* __powerpc__ */
                        cnt += 4;
                }
        } else {
-               while (cnt<count) {
+               while (cnt < count) {
                        outb(*p++, cs->hw.avm.isac);
                        cnt++;
                }
@@ -369,17 +369,17 @@ HDLC_irq(struct BCState *bcs, u_int stat) {
                        write_ctrl(bcs, 1);
                        bcs->hw.hdlc.rcvidx = 0;
                } else {
-                       if (!(len = (stat & HDLC_STAT_RML_MASK)>>8))
+                       if (!(len = (stat & HDLC_STAT_RML_MASK) >> 8))
                                len = 32;
                        hdlc_empty_fifo(bcs, len);
                        if ((stat & HDLC_STAT_RME) || (bcs->mode == L1_MODE_TRANS)) {
-                               if (((stat & HDLC_STAT_CRCVFRRAB)==HDLC_STAT_CRCVFR) ||
-                                       (bcs->mode == L1_MODE_TRANS)) {
+                               if (((stat & HDLC_STAT_CRCVFRRAB) == HDLC_STAT_CRCVFR) ||
+                                   (bcs->mode == L1_MODE_TRANS)) {
                                        if (!(skb = dev_alloc_skb(bcs->hw.hdlc.rcvidx)))
                                                printk(KERN_WARNING "HDLC: receive out of memory\n");
                                        else {
                                                memcpy(skb_put(skb, bcs->hw.hdlc.rcvidx),
-                                                       bcs->hw.hdlc.rcvbuf, bcs->hw.hdlc.rcvidx);
+                                                      bcs->hw.hdlc.rcvbuf, bcs->hw.hdlc.rcvidx);
                                                skb_queue_tail(&bcs->rqueue, skb);
                                        }
                                        bcs->hw.hdlc.rcvidx = 0;
@@ -418,9 +418,9 @@ HDLC_irq(struct BCState *bcs, u_int stat) {
                                hdlc_fill_fifo(bcs);
                                return;
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
-                                       u_long  flags;
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                                       u_long flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->hw.hdlc.count;
                                        spin_unlock_irqrestore(&bcs->aclock, flags);
@@ -453,7 +453,7 @@ HDLC_irq_main(struct IsdnCardState *cs)
        } else {
                stat = ReadHDLCPnP(cs, 0, HDLC_STATUS);
                if (stat & HDLC_INT_RPR)
-                       stat |= (ReadHDLCPnP(cs, 0, HDLC_STATUS+1))<<8;
+                       stat |= (ReadHDLCPnP(cs, 0, HDLC_STATUS + 1)) << 8;
        }
        if (stat & HDLC_INT_MASK) {
                if (!(bcs = Sel_BCS(cs, 0))) {
@@ -467,7 +467,7 @@ HDLC_irq_main(struct IsdnCardState *cs)
        } else {
                stat = ReadHDLCPnP(cs, 1, HDLC_STATUS);
                if (stat & HDLC_INT_RPR)
-                       stat |= (ReadHDLCPnP(cs, 1, HDLC_STATUS+1))<<8;
+                       stat |= (ReadHDLCPnP(cs, 1, HDLC_STATUS + 1)) << 8;
        }
        if (stat & HDLC_INT_MASK) {
                if (!(bcs = Sel_BCS(cs, 1))) {
@@ -486,55 +486,55 @@ hdlc_l2l1(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->hw.hdlc.count = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "hdlc_l2l1: this shouldn't happen\n");
-                       } else {
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->tx_skb = skb;
-                               bcs->hw.hdlc.count = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       modehdlc(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       modehdlc(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->hw.hdlc.count = 0;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "hdlc_l2l1: this shouldn't happen\n");
+               } else {
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->tx_skb = skb;
+                       bcs->hw.hdlc.count = 0;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               modehdlc(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               modehdlc(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -568,7 +568,7 @@ open_hdlcstate(struct IsdnCardState *cs, struct BCState *bcs)
                }
                if (!(bcs->blog = kmalloc(MAX_BLOG_SPACE, GFP_ATOMIC))) {
                        printk(KERN_WARNING
-                               "HiSax: No memory for bcs->blog\n");
+                              "HiSax: No memory for bcs->blog\n");
                        test_and_clear_bit(BC_FLG_INIT, &bcs->Flag);
                        kfree(bcs->hw.hdlc.rcvbuf);
                        bcs->hw.hdlc.rcvbuf = NULL;
@@ -688,34 +688,34 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_avmpcipnp(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       outb(0, cs->hw.avm.cfg_reg + 2);
-                       release_region(cs->hw.avm.cfg_reg, 32);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_avmpcipnp(cs);
-                       clear_pending_isac_ints(cs);
-                       initisac(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);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_avmpcipnp(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               outb(0, cs->hw.avm.cfg_reg + 2);
+               release_region(cs->hw.avm.cfg_reg, 32);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_avmpcipnp(cs);
+               clear_pending_isac_ints(cs);
+               initisac(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);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 static int __devinit avm_setup_rest(struct IsdnCardState *cs)
@@ -724,7 +724,7 @@ static int __devinit avm_setup_rest(struct IsdnCardState *cs)
 
        cs->hw.avm.isac = cs->hw.avm.cfg_reg + 0x10;
        if (!request_region(cs->hw.avm.cfg_reg, 32,
-               (cs->subtyp == AVM_FRITZ_PCI) ? "avm PCI" : "avm PnP")) {
+                           (cs->subtyp == AVM_FRITZ_PCI) ? "avm PCI" : "avm PnP")) {
                printk(KERN_WARNING
                       "HiSax: Fritz!PCI/PNP config port %x-%x already in use\n",
                       cs->hw.avm.cfg_reg,
@@ -732,28 +732,28 @@ static int __devinit avm_setup_rest(struct IsdnCardState *cs)
                return (0);
        }
        switch (cs->subtyp) {
-         case AVM_FRITZ_PCI:
+       case AVM_FRITZ_PCI:
                val = inl(cs->hw.avm.cfg_reg);
                printk(KERN_INFO "AVM PCI: stat %#x\n", val);
                printk(KERN_INFO "AVM PCI: Class %X Rev %d\n",
-                       val & 0xff, (val>>8) & 0xff);
+                      val & 0xff, (val >> 8) & 0xff);
                cs->BC_Read_Reg = &ReadHDLC_s;
                cs->BC_Write_Reg = &WriteHDLC_s;
                break;
-         case AVM_FRITZ_PNP:
+       case AVM_FRITZ_PNP:
                val = inb(cs->hw.avm.cfg_reg);
                ver = inb(cs->hw.avm.cfg_reg + 1);
                printk(KERN_INFO "AVM PnP: Class %X Rev %d\n", val, ver);
                cs->BC_Read_Reg = &ReadHDLCPnP;
                cs->BC_Write_Reg = &WriteHDLCPnP;
                break;
-         default:
-               printk(KERN_WARNING "AVM unknown subtype %d\n", cs->subtyp);
-               return(0);
+       default:
+               printk(KERN_WARNING "AVM unknown subtype %d\n", cs->subtyp);
+               return (0);
        }
        printk(KERN_INFO "HiSax: %s config irq:%d base:0x%X\n",
-               (cs->subtyp == AVM_FRITZ_PCI) ? "AVM Fritz!PCI" : "AVM Fritz!PnP",
-               cs->irq, cs->hw.avm.cfg_reg);
+              (cs->subtyp == AVM_FRITZ_PCI) ? "AVM Fritz!PCI" : "AVM Fritz!PnP",
+              cs->irq, cs->hw.avm.cfg_reg);
 
        setup_isac(cs);
        cs->readisac = &ReadISAC;
@@ -772,7 +772,7 @@ static int __devinit avm_setup_rest(struct IsdnCardState *cs)
 
 static int __devinit avm_pnp_setup(struct IsdnCardState *cs)
 {
-       return(1);      /* no-op: success */
+       return (1);     /* no-op: success */
 }
 
 #else
@@ -784,33 +784,33 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs)
        struct pnp_dev *pnp_avm_d = NULL;
 
        if (!isapnp_present())
-               return(1);      /* no-op: success */
+               return (1);     /* no-op: success */
 
        if ((pnp_avm_c = pnp_find_card(
-               ISAPNP_VENDOR('A', 'V', 'M'),
-               ISAPNP_FUNCTION(0x0900), pnp_avm_c))) {
+                    ISAPNP_VENDOR('A', 'V', 'M'),
+                    ISAPNP_FUNCTION(0x0900), pnp_avm_c))) {
                if ((pnp_avm_d = pnp_find_dev(pnp_avm_c,
-                       ISAPNP_VENDOR('A', 'V', 'M'),
-                       ISAPNP_FUNCTION(0x0900), pnp_avm_d))) {
+                                             ISAPNP_VENDOR('A', 'V', 'M'),
+                                             ISAPNP_FUNCTION(0x0900), pnp_avm_d))) {
                        int err;
 
                        pnp_disable_dev(pnp_avm_d);
                        err = pnp_activate_dev(pnp_avm_d);
-                       if (err<0) {
+                       if (err < 0) {
                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                       __func__, err);
-                               return(0);
+                                      __func__, err);
+                               return (0);
                        }
                        cs->hw.avm.cfg_reg =
                                pnp_port_start(pnp_avm_d, 0);
                        cs->irq = pnp_irq(pnp_avm_d, 0);
                        if (!cs->irq) {
                                printk(KERN_ERR "FritzPnP:No IRQ\n");
-                               return(0);
+                               return (0);
                        }
                        if (!cs->hw.avm.cfg_reg) {
                                printk(KERN_ERR "FritzPnP:No IO address\n");
-                               return(0);
+                               return (0);
                        }
                        cs->subtyp = AVM_FRITZ_PNP;
 
@@ -827,7 +827,7 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs)
 
 static int __devinit avm_pci_setup(struct IsdnCardState *cs)
 {
-       return(1);      /* no-op: success */
+       return (1);     /* no-op: success */
 }
 
 #else
@@ -837,27 +837,27 @@ static struct pci_dev *dev_avm __devinitdata = NULL;
 static int __devinit avm_pci_setup(struct IsdnCardState *cs)
 {
        if ((dev_avm = hisax_find_pci_device(PCI_VENDOR_ID_AVM,
-               PCI_DEVICE_ID_AVM_A1, dev_avm))) {
+                                            PCI_DEVICE_ID_AVM_A1, dev_avm))) {
 
                if (pci_enable_device(dev_avm))
-                       return(0);
+                       return (0);
 
                cs->irq = dev_avm->irq;
                if (!cs->irq) {
                        printk(KERN_ERR "FritzPCI: No IRQ for PCI card found\n");
-                       return(0);
+                       return (0);
                }
 
                cs->hw.avm.cfg_reg = pci_resource_start(dev_avm, 1);
                if (!cs->hw.avm.cfg_reg) {
                        printk(KERN_ERR "FritzPCI: No IO-Adr for PCI card found\n");
-                       return(0);
+                       return (0);
                }
 
                cs->subtyp = AVM_FRITZ_PCI;
        } else {
                printk(KERN_WARNING "FritzPCI: No PCI card found\n");
-               return(0);
+               return (0);
        }
 
        cs->irq_flags |= IRQF_SHARED;
index 8f0ad2a..33e3c94 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Author       Carsten Paeth
  * Copyright    1998-2001 by Carsten Paeth <calle@calle.in-berlin.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -39,20 +39,20 @@ module_param(isdnprot, int, 0);
 
 /*====================================================================*/
 
-static int avma1cs_config(struct pcmcia_device *link) __devinit ;
+static int avma1cs_config(struct pcmcia_device *link) __devinit;
 static void avma1cs_release(struct pcmcia_device *link);
-static void avma1cs_detach(struct pcmcia_device *p_dev) __devexit ;
+static void avma1cs_detach(struct pcmcia_device *p_dev) __devexit;
 
 static int __devinit avma1cs_probe(struct pcmcia_device *p_dev)
 {
-    dev_dbg(&p_dev->dev, "avma1cs_attach()\n");
+       dev_dbg(&p_dev->dev, "avma1cs_attach()\n");
 
-    /* General socket configuration */
-    p_dev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
-    p_dev->config_index = 1;
-    p_dev->config_regs = PRESENT_OPTION;
+       /* General socket configuration */
+       p_dev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
+       p_dev->config_index = 1;
+       p_dev->config_regs = PRESENT_OPTION;
 
-    return avma1cs_config(p_dev);
+       return avma1cs_config(p_dev);
 } /* avma1cs_attach */
 
 static void __devexit avma1cs_detach(struct pcmcia_device *link)
@@ -75,63 +75,63 @@ static int avma1cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
 
 static int __devinit avma1cs_config(struct pcmcia_device *link)
 {
-    int i = -1;
-    char devname[128];
-    IsdnCard_t icard;
-    int busy = 0;
-
-    dev_dbg(&link->dev, "avma1cs_config(0x%p)\n", link);
-
-    devname[0] = 0;
-    if (link->prod_id[1])
-           strlcpy(devname, link->prod_id[1], sizeof(devname));
-
-    if (pcmcia_loop_config(link, avma1cs_configcheck, NULL))
-           return -ENODEV;
-
-    do {
-       /*
-        * allocate an interrupt line
-        */
-       if (!link->irq) {
-           /* undo */
-           pcmcia_disable_device(link);
-           break;
-       }
-
-       /*
-        * configure the PCMCIA socket
-        */
-       i = pcmcia_enable_device(link);
+       int i = -1;
+       char devname[128];
+       IsdnCard_t      icard;
+       int busy = 0;
+
+       dev_dbg(&link->dev, "avma1cs_config(0x%p)\n", link);
+
+       devname[0] = 0;
+       if (link->prod_id[1])
+               strlcpy(devname, link->prod_id[1], sizeof(devname));
+
+       if (pcmcia_loop_config(link, avma1cs_configcheck, NULL))
+               return -ENODEV;
+
+       do {
+               /*
+                * allocate an interrupt line
+                */
+               if (!link->irq) {
+                       /* undo */
+                       pcmcia_disable_device(link);
+                       break;
+               }
+
+               /*
+                * configure the PCMCIA socket
+                */
+               i = pcmcia_enable_device(link);
+               if (i != 0) {
+                       pcmcia_disable_device(link);
+                       break;
+               }
+
+       } while (0);
+
+       /* If any step failed, release any partially configured state */
        if (i != 0) {
-           pcmcia_disable_device(link);
-           break;
+               avma1cs_release(link);
+               return -ENODEV;
        }
 
-    } while (0);
-
-    /* If any step failed, release any partially configured state */
-    if (i != 0) {
-       avma1cs_release(link);
-       return -ENODEV;
-    }
-
-    icard.para[0] = link->irq;
-    icard.para[1] = link->resource[0]->start;
-    icard.protocol = isdnprot;
-    icard.typ = ISDN_CTYPE_A1_PCMCIA;
-    
-    i = hisax_init_pcmcia(link, &busy, &icard);
-    if (i < 0) {
-       printk(KERN_ERR "avma1_cs: failed to initialize AVM A1 "
-                       "PCMCIA %d at i/o %#x\n", i,
-                       (unsigned int) link->resource[0]->start);
-       avma1cs_release(link);
-       return -ENODEV;
-    }
-    link->priv = (void *) (unsigned long) i;
+       icard.para[0] = link->irq;
+       icard.para[1] = link->resource[0]->start;
+       icard.protocol = isdnprot;
+       icard.typ = ISDN_CTYPE_A1_PCMCIA;
+
+       i = hisax_init_pcmcia(link, &busy, &icard);
+       if (i < 0) {
+               printk(KERN_ERR "avma1_cs: failed to initialize AVM A1 "
+                      "PCMCIA %d at i/o %#x\n", i,
+                      (unsigned int) link->resource[0]->start);
+               avma1cs_release(link);
+               return -ENODEV;
+       }
+       link->priv = (void *) (unsigned long) i;
 
-    return 0;
+       return 0;
 } /* avma1cs_config */
 
 static void avma1cs_release(struct pcmcia_device *link)
index 9f2009c..f6bf9c6 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Roland Klabunde
  * Copyright    by Roland Klabunde   <R.Klabunde@Berkom.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -39,7 +39,7 @@ readreg(unsigned int ale, unsigned long adr, u_char off)
 
 
 static inline void
-readfifo(unsigned int ale, unsigned long adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned long adr, u_char off, u_char *data, int size)
 {
        int i;
        for (i = 0; i < size; i++)
@@ -59,7 +59,7 @@ writereg(unsigned int ale, unsigned long adr, u_char off, u_char data)
 
 
 static inline void
-writefifo(unsigned int ale, unsigned long adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned long adr, u_char off, u_char *data, int size)
 {
        int i;
 
@@ -83,13 +83,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.ax.isac_ale, cs->hw.ax.isac_adr, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.ax.isac_ale, cs->hw.ax.isac_adr, 0, data, size);
 }
@@ -110,15 +110,15 @@ WriteJADE(struct IsdnCardState *cs, int jade, u_char offset, u_char value)
  * fast interrupt JADE stuff goes here
  */
 
-#define READJADE(cs, nr, reg) readreg(cs->hw.ax.jade_ale,\
-               cs->hw.ax.jade_adr, reg + (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)))
-#define WRITEJADE(cs, nr, reg, data) writereg(cs->hw.ax.jade_ale,\
-               cs->hw.ax.jade_adr, reg + (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)), data)
+#define READJADE(cs, nr, reg) readreg(cs->hw.ax.jade_ale,              \
+                                     cs->hw.ax.jade_adr, reg + (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)))
+#define WRITEJADE(cs, nr, reg, data) writereg(cs->hw.ax.jade_ale,      \
+                                             cs->hw.ax.jade_adr, reg + (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)), data)
 
-#define READJADEFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.ax.jade_ale,\
-               cs->hw.ax.jade_adr, (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)), ptr, cnt)
-#define WRITEJADEFIFO(cs, nr, ptr, cnt) writefifo( cs->hw.ax.jade_ale,\
-               cs->hw.ax.jade_adr, (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)), ptr, cnt)
+#define READJADEFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.ax.jade_ale,    \
+                                               cs->hw.ax.jade_adr, (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)), ptr, cnt)
+#define WRITEJADEFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.ax.jade_ale,  \
+                                                 cs->hw.ax.jade_adr, (nr == -1 ? 0 : (nr ? 0xC0 : 0x80)), ptr, cnt)
 
 #include "jade_irq.c"
 
@@ -201,11 +201,11 @@ reset_bkm(struct IsdnCardState *cs)
                pI20_Regs->i20SysControl = sysRESET | sysCFG;
                /* Issue ISDN reset     */
                pI20_Regs->i20GuestControl = guestWAIT_CFG |
-                   g_A4T_JADE_RES |
-                   g_A4T_ISAR_RES |
-                   g_A4T_ISAC_RES |
-                   g_A4T_JADE_BOOTR |
-                   g_A4T_ISAR_BOOTR;
+                       g_A4T_JADE_RES |
+                       g_A4T_ISAR_RES |
+                       g_A4T_ISAC_RES |
+                       g_A4T_JADE_BOOTR |
+                       g_A4T_ISAR_BOOTR;
                mdelay(10);
 
                /* Remove RESET state from ISDN */
@@ -222,33 +222,33 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       /* Disable ints */
-                       spin_lock_irqsave(&cs->lock, flags);
-                       enable_bkm_int(cs, 0);
-                       reset_bkm(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_RELEASE:
-                       /* Sanity */
-                       spin_lock_irqsave(&cs->lock, flags);
-                       enable_bkm_int(cs, 0);
-                       reset_bkm(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       release_io_bkm(cs);
-                       return (0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       clear_pending_isac_ints(cs);
-                       clear_pending_jade_ints(cs);
-                       initisac(cs);
-                       initjade(cs);
-                       /* Enable ints */
-                       enable_bkm_int(cs, 1);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_TEST:
-                       return (0);
+       case CARD_RESET:
+               /* Disable ints */
+               spin_lock_irqsave(&cs->lock, flags);
+               enable_bkm_int(cs, 0);
+               reset_bkm(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               /* Sanity */
+               spin_lock_irqsave(&cs->lock, flags);
+               enable_bkm_int(cs, 0);
+               reset_bkm(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               release_io_bkm(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               clear_pending_isac_ints(cs);
+               clear_pending_jade_ints(cs);
+               initisac(cs);
+               initjade(cs);
+               /* Enable ints */
+               enable_bkm_int(cs, 1);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
        return (0);
 }
@@ -341,7 +341,7 @@ setup_bkm_a4t(struct IsdnCard *card)
                return (0);
 
        while ((dev_a4t = hisax_find_pci_device(PCI_VENDOR_ID_ZORAN,
-               PCI_DEVICE_ID_ZORAN_36120, dev_a4t))) {
+                                               PCI_DEVICE_ID_ZORAN_36120, dev_a4t))) {
                ret = a4t_pci_probe(dev_a4t, cs, &found, &pci_memaddr);
                if (!ret)
                        return (0);
index e775706..c9c98f0 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Roland Klabunde
  * Copyright    by Roland Klabunde   <R.Klabunde@Berkom.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -34,7 +34,7 @@ static const char *sct_quadro_subtypes[] =
 };
 
 
-#define wordout(addr,val) outw(val,addr)
+#define wordout(addr, val) outw(val, addr)
 #define wordin(addr) inw(addr)
 
 static inline u_char
@@ -47,7 +47,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        int i;
        wordout(ale, off);
@@ -64,7 +64,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        int i;
        wordout(ale, off);
@@ -87,13 +87,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.ax.base, cs->hw.ax.data_adr, 0x80, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.ax.base, cs->hw.ax.data_adr, 0x80, data, size);
 }
@@ -117,21 +117,21 @@ set_ipac_active(struct IsdnCardState *cs, u_int active)
 {
        /* set irq mask */
        writereg(cs->hw.ax.base, cs->hw.ax.data_adr, IPAC_MASK,
-               active ? 0xc0 : 0xff);
+                active ? 0xc0 : 0xff);
 }
 
 /*
  * fast interrupt HSCX stuff goes here
  */
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.ax.base, \
-       cs->hw.ax.data_adr, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.ax.base, \
-       cs->hw.ax.data_adr, reg + (nr ? 0x40 : 0), data)
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.ax.base, \
-       cs->hw.ax.data_adr, (nr ? 0x40 : 0), ptr, cnt)
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.ax.base, \
-       cs->hw.ax.data_adr, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.ax.base,                  \
+                                     cs->hw.ax.data_adr, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.ax.base,          \
+                                             cs->hw.ax.data_adr, reg + (nr ? 0x40 : 0), data)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.ax.base,                \
+                                               cs->hw.ax.data_adr, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.ax.base,      \
+                                                 cs->hw.ax.data_adr, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -148,7 +148,7 @@ bkm_interrupt_ipac(int intno, void *dev_id)
                spin_unlock_irqrestore(&cs->lock, flags);
                return IRQ_NONE;
        }
-      Start_IPAC:
+Start_IPAC:
        if (cs->debug & L1_DEB_IPAC)
                debugl1(cs, "IPAC ISTA %02X", ista);
        if (ista & 0x0f) {
@@ -224,33 +224,33 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       /* Disable ints */
-                       set_ipac_active(cs, 0);
-                       enable_bkm_int(cs, 0);
-                       reset_bkm(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_RELEASE:
-                       /* Sanity */
-                       spin_lock_irqsave(&cs->lock, flags);
-                       set_ipac_active(cs, 0);
-                       enable_bkm_int(cs, 0);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       release_io_sct_quadro(cs);
-                       return (0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->debug |= L1_DEB_IPAC;
-                       set_ipac_active(cs, 1);
-                       inithscxisac(cs, 3);
-                       /* Enable ints */
-                       enable_bkm_int(cs, 1);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_TEST:
-                       return (0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               /* Disable ints */
+               set_ipac_active(cs, 0);
+               enable_bkm_int(cs, 0);
+               reset_bkm(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               /* Sanity */
+               spin_lock_irqsave(&cs->lock, flags);
+               set_ipac_active(cs, 0);
+               enable_bkm_int(cs, 0);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               release_io_sct_quadro(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->debug |= L1_DEB_IPAC;
+               set_ipac_active(cs, 1);
+               inithscxisac(cs, 3);
+               /* Enable ints */
+               enable_bkm_int(cs, 1);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
        return (0);
 }
@@ -260,11 +260,11 @@ sct_alloc_io(u_int adr, u_int len)
 {
        if (!request_region(adr, len, "scitel")) {
                printk(KERN_WARNING
-                       "HiSax: Scitel port %#x-%#x already in use\n",
-                       adr, adr + len);
+                      "HiSax: Scitel port %#x-%#x already in use\n",
+                      adr, adr + len);
                return (1);
        }
-       return(0);
+       return (0);
 }
 
 static struct pci_dev *dev_a8 __devinitdata = NULL;
@@ -298,18 +298,18 @@ setup_sct_quadro(struct IsdnCard *card)
                return (0);
        }
        if ((cs->subtyp != SCT_1) && ((sub_sys_id != PCI_DEVICE_ID_BERKOM_SCITEL_QUADRO) ||
-               (sub_vendor_id != PCI_VENDOR_ID_BERKOM)))
+                                     (sub_vendor_id != PCI_VENDOR_ID_BERKOM)))
                return (0);
        if (cs->subtyp == SCT_1) {
                while ((dev_a8 = hisax_find_pci_device(PCI_VENDOR_ID_PLX,
-                       PCI_DEVICE_ID_PLX_9050, dev_a8))) {
-                       
+                                                      PCI_DEVICE_ID_PLX_9050, dev_a8))) {
+
                        sub_vendor_id = dev_a8->subsystem_vendor;
                        sub_sys_id = dev_a8->subsystem_device;
                        if ((sub_sys_id == PCI_DEVICE_ID_BERKOM_SCITEL_QUADRO) &&
-                               (sub_vendor_id == PCI_VENDOR_ID_BERKOM)) {
+                           (sub_vendor_id == PCI_VENDOR_ID_BERKOM)) {
                                if (pci_enable_device(dev_a8))
-                                       return(0);
+                                       return (0);
                                pci_ioaddr1 = pci_resource_start(dev_a8, 1);
                                pci_irq = dev_a8->irq;
                                pci_bus = dev_a8->bus->number;
@@ -320,23 +320,23 @@ setup_sct_quadro(struct IsdnCard *card)
                }
                if (!found) {
                        printk(KERN_WARNING "HiSax: Scitel Quadro (%s): "
-                               "Card not found\n",
-                               sct_quadro_subtypes[cs->subtyp]);
+                              "Card not found\n",
+                              sct_quadro_subtypes[cs->subtyp]);
                        return (0);
                }
 #ifdef ATTEMPT_PCI_REMAPPING
 /* HACK: PLX revision 1 bug: PLX address bit 7 must not be set */
                if ((pci_ioaddr1 & 0x80) && (dev_a8->revision == 1)) {
                        printk(KERN_WARNING "HiSax: Scitel Quadro (%s): "
-                               "PLX rev 1, remapping required!\n",
-                               sct_quadro_subtypes[cs->subtyp]);
+                              "PLX rev 1, remapping required!\n",
+                              sct_quadro_subtypes[cs->subtyp]);
                        /* Restart PCI negotiation */
-                       pci_write_config_dword(dev_a8, PCI_BASE_ADDRESS_1, (u_int) - 1);
+                       pci_write_config_dword(dev_a8, PCI_BASE_ADDRESS_1, (u_int)-1);
                        /* Move up by 0x80 byte */
                        pci_ioaddr1 += 0x80;
                        pci_ioaddr1 &= PCI_BASE_ADDRESS_IO_MASK;
                        pci_write_config_dword(dev_a8, PCI_BASE_ADDRESS_1, pci_ioaddr1);
-                       dev_a8->resource[ 1].start = pci_ioaddr1;
+                       dev_a8->resource[1].start = pci_ioaddr1;
                }
 #endif /* End HACK */
        }
@@ -371,39 +371,39 @@ setup_sct_quadro(struct IsdnCard *card)
        /* pci_ioaddr5 is for the first subdevice only */
        cs->hw.ax.plx_adr = pci_ioaddr1;
        /* Enter all ipac_base addresses */
-       switch(cs->subtyp) {
-               case 1:
-                       cs->hw.ax.base = pci_ioaddr5 + 0x00;
-                       if (sct_alloc_io(pci_ioaddr1, 128))
-                               return(0);
-                       if (sct_alloc_io(pci_ioaddr5, 64))
-                               return(0);
-                       /* disable all IPAC */
-                       writereg(pci_ioaddr5, pci_ioaddr5 + 4,
-                               IPAC_MASK, 0xFF);
-                       writereg(pci_ioaddr4 + 0x08, pci_ioaddr4 + 0x0c,
-                               IPAC_MASK, 0xFF);
-                       writereg(pci_ioaddr3 + 0x10, pci_ioaddr3 + 0x14,
-                               IPAC_MASK, 0xFF);
-                       writereg(pci_ioaddr2 + 0x20, pci_ioaddr2 + 0x24,
-                               IPAC_MASK, 0xFF);
-                       break;
-               case 2:
-                       cs->hw.ax.base = pci_ioaddr4 + 0x08;
-                       if (sct_alloc_io(pci_ioaddr4, 64))
-                               return(0);
-                       break;
-               case 3:
-                       cs->hw.ax.base = pci_ioaddr3 + 0x10;
-                       if (sct_alloc_io(pci_ioaddr3, 64))
-                               return(0);
-                       break;
-               case 4:
-                       cs->hw.ax.base = pci_ioaddr2 + 0x20;
-                       if (sct_alloc_io(pci_ioaddr2, 64))
-                               return(0);
-                       break;
-       }       
+       switch (cs->subtyp) {
+       case 1:
+               cs->hw.ax.base = pci_ioaddr5 + 0x00;
+               if (sct_alloc_io(pci_ioaddr1, 128))
+                       return (0);
+               if (sct_alloc_io(pci_ioaddr5, 64))
+                       return (0);
+               /* disable all IPAC */
+               writereg(pci_ioaddr5, pci_ioaddr5 + 4,
+                        IPAC_MASK, 0xFF);
+               writereg(pci_ioaddr4 + 0x08, pci_ioaddr4 + 0x0c,
+                        IPAC_MASK, 0xFF);
+               writereg(pci_ioaddr3 + 0x10, pci_ioaddr3 + 0x14,
+                        IPAC_MASK, 0xFF);
+               writereg(pci_ioaddr2 + 0x20, pci_ioaddr2 + 0x24,
+                        IPAC_MASK, 0xFF);
+               break;
+       case 2:
+               cs->hw.ax.base = pci_ioaddr4 + 0x08;
+               if (sct_alloc_io(pci_ioaddr4, 64))
+                       return (0);
+               break;
+       case 3:
+               cs->hw.ax.base = pci_ioaddr3 + 0x10;
+               if (sct_alloc_io(pci_ioaddr3, 64))
+                       return (0);
+               break;
+       case 4:
+               cs->hw.ax.base = pci_ioaddr2 + 0x20;
+               if (sct_alloc_io(pci_ioaddr2, 64))
+                       return (0);
+               break;
+       }
        /* For isac and hscx data path */
        cs->hw.ax.data_adr = cs->hw.ax.base + 4;
 
@@ -429,7 +429,7 @@ setup_sct_quadro(struct IsdnCard *card)
        cs->irq_func = &bkm_interrupt_ipac;
 
        printk(KERN_INFO "HiSax: Scitel Quadro (%s): IPAC Version %d\n",
-               sct_quadro_subtypes[cs->subtyp],
-               readreg(cs->hw.ax.base, cs->hw.ax.data_adr, IPAC_ID));
+              sct_quadro_subtypes[cs->subtyp],
+              readreg(cs->hw.ax.base, cs->hw.ax.data_adr, IPAC_ID));
        return (1);
 }
index 029e0a2..27ff8a8 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Roland Klabunde
  * Copyright    by Roland Klabunde   <R.Klabunde@Berkom.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 
 /* Application specific registers I20 (Siemens SZB6120H) */
 typedef        struct {
-               /* Video front end horizontal configuration register */
+       /* Video front end horizontal configuration register */
        volatile u_int  i20VFEHorzCfg;  /* Offset 00 */
-               /* Video front end vertical configuration register */
-       volatile u_int  i20VFEVertCfg;  /* Offset 04 */ 
-               /* Video front end scaler and pixel format register */
-       volatile u_int  i20VFEScaler;   /* Offset 08 */ 
-               /* Video display top register */
-       volatile u_int  i20VDispTop;    /* Offset 0C */ 
-               /* Video display bottom register */
-       volatile u_int  i20VDispBottom; /* Offset 10 */ 
-               /* Video stride, status and frame grab register */
-       volatile u_int  i20VidFrameGrab;/* Offset 14 */ 
-               /* Video display configuration register */
-       volatile u_int  i20VDispCfg;    /* Offset 18 */ 
-               /* Video masking map top */
-       volatile u_int  i20VMaskTop;    /* Offset 1C */ 
-               /* Video masking map bottom */
-       volatile u_int  i20VMaskBottom; /* Offset 20 */ 
-               /* Overlay control register */
-       volatile u_int  i20OvlyControl; /* Offset 24 */ 
-               /* System, PCI and general purpose pins control register */
-       volatile u_int  i20SysControl;  /* Offset 28 */ 
+       /* Video front end vertical configuration register */
+       volatile u_int  i20VFEVertCfg;  /* Offset 04 */
+       /* Video front end scaler and pixel format register */
+       volatile u_int  i20VFEScaler;   /* Offset 08 */
+       /* Video display top register */
+       volatile u_int  i20VDispTop;    /* Offset 0C */
+       /* Video display bottom register */
+       volatile u_int  i20VDispBottom; /* Offset 10 */
+       /* Video stride, status and frame grab register */
+       volatile u_int  i20VidFrameGrab;/* Offset 14 */
+       /* Video display configuration register */
+       volatile u_int  i20VDispCfg;    /* Offset 18 */
+       /* Video masking map top */
+       volatile u_int  i20VMaskTop;    /* Offset 1C */
+       /* Video masking map bottom */
+       volatile u_int  i20VMaskBottom; /* Offset 20 */
+       /* Overlay control register */
+       volatile u_int  i20OvlyControl; /* Offset 24 */
+       /* System, PCI and general purpose pins control register */
+       volatile u_int  i20SysControl;  /* Offset 28 */
 #define        sysRESET                0x01000000      /* bit 24:Softreset (Low)               */
-                       /* GPIO 4...0: Output fixed for our cfg! */
+       /* GPIO 4...0: Output fixed for our cfg! */
 #define        sysCFG                  0x000000E0      /* GPIO 7,6,5: Input */
        /* General purpose pins and guest bus control register */
-       volatile u_int  i20GuestControl;/* Offset 2C */ 
+       volatile u_int  i20GuestControl;/* Offset 2C */
 #define        guestWAIT_CFG   0x00005555      /* 4 PCI waits for all */
 #define        guestISDN_INT_E 0x01000000      /* ISDN Int en (low) */
-#define        guestVID_INT_E  0x02000000      /* Video interrupt en (low) */
+#define        guestVID_INT_E  0x02000000      /* Video interrupt en (low) */
 #define        guestADI1_INT_R 0x04000000      /* ADI #1 int req (low) */
 #define        guestADI2_INT_R 0x08000000      /* ADI #2 int req (low) */
 #define        guestISDN_RES   0x10000000      /* ISDN reset bit (high) */
@@ -78,18 +78,18 @@ typedef     struct {
 #define        g_A4T_ISAR_INT_S 0x40000000     /* ISAR interrupt pnd (Low) */
 #define        g_A4T_ISAC_INT_S 0x80000000     /* ISAC interrupt pnd (Low) */
 
-       volatile u_int  i20CodeSource;  /* Offset 30 */ 
-       volatile u_int  i20CodeXferCtrl;/* Offset 34 */ 
-       volatile u_int  i20CodeMemPtr;  /* Offset 38 */ 
+       volatile u_int  i20CodeSource;  /* Offset 30 */
+       volatile u_int  i20CodeXferCtrl;/* Offset 34 */
+       volatile u_int  i20CodeMemPtr;  /* Offset 38 */
 
-       volatile u_int  i20IntStatus;   /* Offset 3C */ 
-       volatile u_int  i20IntCtrl;     /* Offset 40 */ 
+       volatile u_int  i20IntStatus;   /* Offset 3C */
+       volatile u_int  i20IntCtrl;     /* Offset 40 */
 #define        intISDN         0x40000000      /* GIRQ1En (ISAC/ADI) (High) */
 #define        intVID          0x20000000      /* GIRQ0En (VSYNC)    (High) */
 #define        intCOD          0x10000000      /* CodRepIrqEn        (High) */
-#define        intPCI          0x01000000      /* PCI IntA enable    (High) */
+#define        intPCI          0x01000000      /* PCI IntA enable    (High) */
 
-       volatile u_int  i20I2CCtrl;     /* Offset 44                                    */      
+       volatile u_int  i20I2CCtrl;     /* Offset 44                                    */
 } I20_REGISTER_FILE, *PI20_REGISTER_FILE;
 
 /*
@@ -98,7 +98,7 @@ typedef       struct {
  */
 #define        PO_OFFSET       0x00000200      /* Postoffice offset from base */
 
-#define        GCS_0           0x00000000      /* Guest bus chip selects */
+#define        GCS_0           0x00000000      /* Guest bus chip selects */
 #define        GCS_1           0x00100000
 #define        GCS_2           0x00200000
 #define        GCS_3           0x00300000
@@ -108,12 +108,12 @@ typedef   struct {
 
 #define        PO_PEND         0x02000000
 
-#define POSTOFFICE(postoffice) *(volatile unsigned int*)(postoffice)
+#define POSTOFFICE(postoffice) *(volatile unsigned int *)(postoffice)
 
-/* Wait unlimited (don't worry)                                                                                */ 
-#define        __WAITI20__(postoffice)                                                                         \
-do {                                                                                                                           \
-       while ((POSTOFFICE(postoffice) & PO_PEND)) ;                                    \
-} while (0)
+/* Wait unlimited (don't worry)                                                                                */
+#define        __WAITI20__(postoffice)                                 \
+       do {                                                    \
+               while ((POSTOFFICE(postoffice) & PO_PEND)) ;    \
+       } while (0)
 
 #endif /* __BKM_AX_H__ */
index 9ae92b4..a47637b 100644 (file)
@@ -2,7 +2,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -66,7 +66,7 @@ hisax_findcard(int driverid)
 }
 
 static __printf(3, 4) void
-link_debug(struct Channel *chanp, int direction, char *fmt, ...)
+       link_debug(struct Channel *chanp, int direction, char *fmt, ...)
 {
        va_list args;
        char tmp[16];
@@ -91,9 +91,9 @@ enum {
        ST_WAIT_DCOMMAND,       /*  9 call clear. (receiver), awaiting DCHANNEL message */
        ST_WAIT_DRELEASE,       /* 10 DISCONNECT sent, awaiting RELEASE */
        ST_WAIT_D_REL_CNF,      /* 11 RELEASE sent, awaiting RELEASE confirm */
-       ST_IN_PROCEED_SEND,     /* 12 incoming call, proceeding send */ 
+       ST_IN_PROCEED_SEND,     /* 12 incoming call, proceeding send */
 };
-  
+
 
 #define STATE_COUNT (ST_IN_PROCEED_SEND + 1)
 
@@ -119,7 +119,7 @@ enum {
        EV_SETUP_CNF,           /*  1 */
        EV_ACCEPTB,             /*  2 */
        EV_DISCONNECT_IND,      /*  3 */
-       EV_RELEASE,             /*  4 */
+       EV_RELEASE,             /*  4 */
        EV_LEASED,              /*  5 */
        EV_LEASED_REL,          /*  6 */
        EV_SETUP_IND,           /*  7 */
@@ -136,8 +136,8 @@ enum {
        EV_SETUP_ERR,           /* 18 */
        EV_CONNECT_ERR,         /* 19 */
        EV_PROCEED,             /* 20 */
-       EV_ALERT,               /* 21 */ 
-       EV_REDIR,               /* 22 */ 
+       EV_ALERT,               /* 21 */
+       EV_REDIR,               /* 22 */
 };
 
 #define EVENT_COUNT (EV_REDIR + 1)
@@ -232,8 +232,8 @@ lli_leased_in(struct FsmInst *fi, int event, void *arg)
        ic.parm.setup.si2 = 0;
        ic.parm.setup.plan = 0;
        ic.parm.setup.screen = 0;
-       sprintf(ic.parm.setup.eazmsn,"%d", chanp->chan + 1);
-       sprintf(ic.parm.setup.phone,"LEASED%d", chanp->cs->myid);
+       sprintf(ic.parm.setup.eazmsn, "%d", chanp->chan + 1);
+       sprintf(ic.parm.setup.phone, "LEASED%d", chanp->cs->myid);
        ret = chanp->cs->iif.statcallb(&ic);
        if (chanp->debug & 1)
                link_debug(chanp, 1, "statcallb ret=%d", ret);
@@ -356,33 +356,33 @@ lli_deliver_call(struct FsmInst *fi, int event, void *arg)
                        link_debug(chanp, 1, "statcallb ret=%d", ret);
 
                switch (ret) {
-                       case 1: /* OK, someone likes this call */
-                               FsmDelTimer(&chanp->drel_timer, 61);
-                               FsmChangeState(fi, ST_IN_ALERT_SENT);
-                               chanp->d_st->lli.l4l3(chanp->d_st, CC_ALERTING | REQUEST, chanp->proc);
-                               break;
-                       case 5: /* direct redirect */
-                       case 4: /* Proceeding desired */
-                               FsmDelTimer(&chanp->drel_timer, 61);
-                               FsmChangeState(fi, ST_IN_PROCEED_SEND);
-                               chanp->d_st->lli.l4l3(chanp->d_st, CC_PROCEED_SEND | REQUEST, chanp->proc);
-                               if (ret == 5) {
-                                       memcpy(&chanp->setup, &ic.parm.setup, sizeof(setup_parm));
-                                       chanp->d_st->lli.l4l3(chanp->d_st, CC_REDIR | REQUEST, chanp->proc);
-                               }
-                               break;
-                       case 2: /* Rejecting Call */
-                               break;
-                       case 3: /* incomplete number */
-                               FsmDelTimer(&chanp->drel_timer, 61);
-                               chanp->d_st->lli.l4l3(chanp->d_st, CC_MORE_INFO | REQUEST, chanp->proc);
-                               break;
-                       case 0: /* OK, nobody likes this call */
-                       default:        /* statcallb problems */
-                               chanp->d_st->lli.l4l3(chanp->d_st, CC_IGNORE | REQUEST, chanp->proc);
-                               chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan);
-                               FsmChangeState(fi, ST_NULL);
-                               break;
+               case 1: /* OK, someone likes this call */
+                       FsmDelTimer(&chanp->drel_timer, 61);
+                       FsmChangeState(fi, ST_IN_ALERT_SENT);
+                       chanp->d_st->lli.l4l3(chanp->d_st, CC_ALERTING | REQUEST, chanp->proc);
+                       break;
+               case 5: /* direct redirect */
+               case 4: /* Proceeding desired */
+                       FsmDelTimer(&chanp->drel_timer, 61);
+                       FsmChangeState(fi, ST_IN_PROCEED_SEND);
+                       chanp->d_st->lli.l4l3(chanp->d_st, CC_PROCEED_SEND | REQUEST, chanp->proc);
+                       if (ret == 5) {
+                               memcpy(&chanp->setup, &ic.parm.setup, sizeof(setup_parm));
+                               chanp->d_st->lli.l4l3(chanp->d_st, CC_REDIR | REQUEST, chanp->proc);
+                       }
+                       break;
+               case 2: /* Rejecting Call */
+                       break;
+               case 3: /* incomplete number */
+                       FsmDelTimer(&chanp->drel_timer, 61);
+                       chanp->d_st->lli.l4l3(chanp->d_st, CC_MORE_INFO | REQUEST, chanp->proc);
+                       break;
+               case 0: /* OK, nobody likes this call */
+               default:        /* statcallb problems */
+                       chanp->d_st->lli.l4l3(chanp->d_st, CC_IGNORE | REQUEST, chanp->proc);
+                       chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan);
+                       FsmChangeState(fi, ST_NULL);
+                       break;
                }
        } else {
                chanp->d_st->lli.l4l3(chanp->d_st, CC_IGNORE | REQUEST, chanp->proc);
@@ -487,7 +487,7 @@ lli_disconnect_req(struct FsmInst *fi, int event, void *arg)
                if (chanp->proc)
                        chanp->proc->para.cause = 0x10; /* Normal Call Clearing */
                chanp->d_st->lli.l4l3(chanp->d_st, CC_DISCONNECT | REQUEST,
-                       chanp->proc);
+                                     chanp->proc);
        }
 }
 
@@ -503,7 +503,7 @@ lli_disconnect_reject(struct FsmInst *fi, int event, void *arg)
                if (chanp->proc)
                        chanp->proc->para.cause = 0x15; /* Call Rejected */
                chanp->d_st->lli.l4l3(chanp->d_st, CC_DISCONNECT | REQUEST,
-                       chanp->proc);
+                                     chanp->proc);
        }
 }
 
@@ -579,7 +579,7 @@ static void
 lli_bhup_disc(struct FsmInst *fi, int event, void *arg)
 {
        struct Channel *chanp = fi->userdata;
+
        if (chanp->debug & 1)
                link_debug(chanp, 0, "STAT_BHUP");
        HL_LL(chanp, ISDN_STAT_BHUP);
@@ -639,7 +639,7 @@ lli_abort(struct FsmInst *fi, int event, void *arg)
        chanp->b_st->lli.l4l3(chanp->b_st, DL_RELEASE | REQUEST, NULL);
        lli_bhup_dhup(fi, event, arg);
 }
+
 static void
 lli_release_req(struct FsmInst *fi, int event, void *arg)
 {
@@ -650,7 +650,7 @@ lli_release_req(struct FsmInst *fi, int event, void *arg)
        } else {
                FsmChangeState(fi, ST_WAIT_D_REL_CNF);
                chanp->d_st->lli.l4l3(chanp->d_st, CC_RELEASE | REQUEST,
-                       chanp->proc);
+                                     chanp->proc);
        }
 }
 
@@ -667,7 +667,7 @@ static void
 lli_bhup_release_req(struct FsmInst *fi, int event, void *arg)
 {
        struct Channel *chanp = fi->userdata;
+
        if (chanp->debug & 1)
                link_debug(chanp, 0, "STAT_BHUP");
        HL_LL(chanp, ISDN_STAT_BHUP);
@@ -698,7 +698,7 @@ lli_dchan_not_ready(struct FsmInst *fi, int event, void *arg)
 
        if (chanp->debug & 1)
                link_debug(chanp, 0, "STAT_DHUP");
-       HL_LL(chanp, ISDN_STAT_DHUP); 
+       HL_LL(chanp, ISDN_STAT_DHUP);
 }
 
 static void
@@ -709,7 +709,7 @@ lli_no_setup_rsp(struct FsmInst *fi, int event, void *arg)
        if (chanp->debug & 1)
                link_debug(chanp, 0, "STAT_DHUP");
        HL_LL(chanp, ISDN_STAT_DHUP);
-       lli_close(fi); 
+       lli_close(fi);
 }
 
 static void
@@ -768,69 +768,69 @@ lli_failure_a(struct FsmInst *fi, int event, void *arg)
 /* *INDENT-OFF* */
 static struct FsmNode fnlist[] __initdata =
 {
-        {ST_NULL,               EV_DIAL,                lli_prep_dialout},
-        {ST_NULL,               EV_RESUME,              lli_resume},
-        {ST_NULL,               EV_SETUP_IND,           lli_deliver_call},
-        {ST_NULL,               EV_LEASED,              lli_leased_in},
-        {ST_OUT_DIAL,           EV_SETUP_CNF,           lli_init_bchan_out},
-        {ST_OUT_DIAL,           EV_HANGUP,              lli_disconnect_req},
-        {ST_OUT_DIAL,           EV_DISCONNECT_IND,      lli_release_req},
-        {ST_OUT_DIAL,           EV_RELEASE,             lli_dhup_close},
-        {ST_OUT_DIAL,           EV_NOSETUP_RSP,         lli_no_setup_rsp},
-        {ST_OUT_DIAL,           EV_SETUP_ERR,           lli_error},
-        {ST_IN_WAIT_LL,         EV_LEASED_REL,          lli_failure_l},
-        {ST_IN_WAIT_LL,         EV_ACCEPTD,             lli_setup_rsp},
-        {ST_IN_WAIT_LL,         EV_HANGUP,              lli_reject_req},
-        {ST_IN_WAIT_LL,         EV_DISCONNECT_IND,      lli_release_req},
-        {ST_IN_WAIT_LL,         EV_RELEASE,             lli_dhup_close},
-        {ST_IN_WAIT_LL,         EV_SETUP_IND,           lli_deliver_call},
-        {ST_IN_WAIT_LL,         EV_SETUP_ERR,           lli_error},
-        {ST_IN_ALERT_SENT,      EV_SETUP_CMPL_IND,      lli_init_bchan_in},
-        {ST_IN_ALERT_SENT,      EV_ACCEPTD,             lli_send_dconnect},
-        {ST_IN_ALERT_SENT,      EV_HANGUP,              lli_disconnect_reject},
-        {ST_IN_ALERT_SENT,      EV_DISCONNECT_IND,      lli_release_req},
-        {ST_IN_ALERT_SENT,      EV_RELEASE,             lli_dhup_close},
+       {ST_NULL,               EV_DIAL,                lli_prep_dialout},
+       {ST_NULL,               EV_RESUME,              lli_resume},
+       {ST_NULL,               EV_SETUP_IND,           lli_deliver_call},
+       {ST_NULL,               EV_LEASED,              lli_leased_in},
+       {ST_OUT_DIAL,           EV_SETUP_CNF,           lli_init_bchan_out},
+       {ST_OUT_DIAL,           EV_HANGUP,              lli_disconnect_req},
+       {ST_OUT_DIAL,           EV_DISCONNECT_IND,      lli_release_req},
+       {ST_OUT_DIAL,           EV_RELEASE,             lli_dhup_close},
+       {ST_OUT_DIAL,           EV_NOSETUP_RSP,         lli_no_setup_rsp},
+       {ST_OUT_DIAL,           EV_SETUP_ERR,           lli_error},
+       {ST_IN_WAIT_LL,         EV_LEASED_REL,          lli_failure_l},
+       {ST_IN_WAIT_LL,         EV_ACCEPTD,             lli_setup_rsp},
+       {ST_IN_WAIT_LL,         EV_HANGUP,              lli_reject_req},
+       {ST_IN_WAIT_LL,         EV_DISCONNECT_IND,      lli_release_req},
+       {ST_IN_WAIT_LL,         EV_RELEASE,             lli_dhup_close},
+       {ST_IN_WAIT_LL,         EV_SETUP_IND,           lli_deliver_call},
+       {ST_IN_WAIT_LL,         EV_SETUP_ERR,           lli_error},
+       {ST_IN_ALERT_SENT,      EV_SETUP_CMPL_IND,      lli_init_bchan_in},
+       {ST_IN_ALERT_SENT,      EV_ACCEPTD,             lli_send_dconnect},
+       {ST_IN_ALERT_SENT,      EV_HANGUP,              lli_disconnect_reject},
+       {ST_IN_ALERT_SENT,      EV_DISCONNECT_IND,      lli_release_req},
+       {ST_IN_ALERT_SENT,      EV_RELEASE,             lli_dhup_close},
        {ST_IN_ALERT_SENT,      EV_REDIR,               lli_send_redir},
        {ST_IN_PROCEED_SEND,    EV_REDIR,               lli_send_redir},
        {ST_IN_PROCEED_SEND,    EV_ALERT,               lli_send_alert},
        {ST_IN_PROCEED_SEND,    EV_ACCEPTD,             lli_send_dconnect},
        {ST_IN_PROCEED_SEND,    EV_HANGUP,              lli_disconnect_reject},
        {ST_IN_PROCEED_SEND,    EV_DISCONNECT_IND,      lli_dhup_close},
-        {ST_IN_ALERT_SENT,      EV_RELEASE,             lli_dhup_close},
-        {ST_IN_WAIT_CONN_ACK,   EV_SETUP_CMPL_IND,      lli_init_bchan_in},
-        {ST_IN_WAIT_CONN_ACK,   EV_HANGUP,              lli_disconnect_req},
-        {ST_IN_WAIT_CONN_ACK,   EV_DISCONNECT_IND,      lli_release_req},
-        {ST_IN_WAIT_CONN_ACK,   EV_RELEASE,             lli_dhup_close},
-        {ST_IN_WAIT_CONN_ACK,   EV_CONNECT_ERR,         lli_error},
-        {ST_WAIT_BCONN,         EV_BC_EST,              lli_go_active},
-        {ST_WAIT_BCONN,         EV_BC_REL,              lli_rel_b_disc},
-        {ST_WAIT_BCONN,         EV_HANGUP,              lli_rel_b_disc},
-        {ST_WAIT_BCONN,         EV_DISCONNECT_IND,      lli_rel_b_release_req},
-        {ST_WAIT_BCONN,         EV_RELEASE,             lli_rel_b_dhup},
-        {ST_WAIT_BCONN,         EV_LEASED_REL,          lli_rel_b_fail},
-        {ST_WAIT_BCONN,         EV_CINF,                lli_charge_info},
-        {ST_ACTIVE,             EV_CINF,                lli_charge_info},
-        {ST_ACTIVE,             EV_BC_REL,              lli_bhup_rel_b},
-        {ST_ACTIVE,             EV_SUSPEND,             lli_suspend},
-        {ST_ACTIVE,             EV_HANGUP,              lli_disconn_bchan},
-        {ST_ACTIVE,             EV_DISCONNECT_IND,      lli_release_bchan},
-        {ST_ACTIVE,             EV_RELEASE,             lli_abort},
-        {ST_ACTIVE,             EV_LEASED_REL,          lli_failure_a},
-        {ST_WAIT_BRELEASE,      EV_BC_REL,              lli_bhup_disc},
-        {ST_WAIT_BRELEASE,      EV_DISCONNECT_IND,      lli_bhup_release_req},
-        {ST_WAIT_BRELEASE,      EV_RELEASE,             lli_bhup_dhup},
-        {ST_WAIT_BRELEASE,      EV_LEASED_REL,          lli_bhup_fail},
-        {ST_WAIT_BREL_DISC,     EV_BC_REL,              lli_bhup_release_req},
-        {ST_WAIT_BREL_DISC,     EV_RELEASE,             lli_bhup_dhup},
-        {ST_WAIT_DCOMMAND,      EV_HANGUP,              lli_start_disc},
-        {ST_WAIT_DCOMMAND,      EV_DISCONNECT_IND,      lli_release_req},
-        {ST_WAIT_DCOMMAND,      EV_RELEASE,             lli_dhup_close},
-        {ST_WAIT_DCOMMAND,      EV_LEASED_REL,          lli_failure_l},
-        {ST_WAIT_DRELEASE,      EV_RELEASE,             lli_dhup_close},
-        {ST_WAIT_DRELEASE,      EV_DIAL,                lli_dchan_not_ready},
-  /* ETS 300-104 16.1 */
-        {ST_WAIT_D_REL_CNF,     EV_RELEASE,             lli_dhup_close},
-        {ST_WAIT_D_REL_CNF,     EV_DIAL,                lli_dchan_not_ready},
+       {ST_IN_ALERT_SENT,      EV_RELEASE,             lli_dhup_close},
+       {ST_IN_WAIT_CONN_ACK,   EV_SETUP_CMPL_IND,      lli_init_bchan_in},
+       {ST_IN_WAIT_CONN_ACK,   EV_HANGUP,              lli_disconnect_req},
+       {ST_IN_WAIT_CONN_ACK,   EV_DISCONNECT_IND,      lli_release_req},
+       {ST_IN_WAIT_CONN_ACK,   EV_RELEASE,             lli_dhup_close},
+       {ST_IN_WAIT_CONN_ACK,   EV_CONNECT_ERR,         lli_error},
+       {ST_WAIT_BCONN,         EV_BC_EST,              lli_go_active},
+       {ST_WAIT_BCONN,         EV_BC_REL,              lli_rel_b_disc},
+       {ST_WAIT_BCONN,         EV_HANGUP,              lli_rel_b_disc},
+       {ST_WAIT_BCONN,         EV_DISCONNECT_IND,      lli_rel_b_release_req},
+       {ST_WAIT_BCONN,         EV_RELEASE,             lli_rel_b_dhup},
+       {ST_WAIT_BCONN,         EV_LEASED_REL,          lli_rel_b_fail},
+       {ST_WAIT_BCONN,         EV_CINF,                lli_charge_info},
+       {ST_ACTIVE,             EV_CINF,                lli_charge_info},
+       {ST_ACTIVE,             EV_BC_REL,              lli_bhup_rel_b},
+       {ST_ACTIVE,             EV_SUSPEND,             lli_suspend},
+       {ST_ACTIVE,             EV_HANGUP,              lli_disconn_bchan},
+       {ST_ACTIVE,             EV_DISCONNECT_IND,      lli_release_bchan},
+       {ST_ACTIVE,             EV_RELEASE,             lli_abort},
+       {ST_ACTIVE,             EV_LEASED_REL,          lli_failure_a},
+       {ST_WAIT_BRELEASE,      EV_BC_REL,              lli_bhup_disc},
+       {ST_WAIT_BRELEASE,      EV_DISCONNECT_IND,      lli_bhup_release_req},
+       {ST_WAIT_BRELEASE,      EV_RELEASE,             lli_bhup_dhup},
+       {ST_WAIT_BRELEASE,      EV_LEASED_REL,          lli_bhup_fail},
+       {ST_WAIT_BREL_DISC,     EV_BC_REL,              lli_bhup_release_req},
+       {ST_WAIT_BREL_DISC,     EV_RELEASE,             lli_bhup_dhup},
+       {ST_WAIT_DCOMMAND,      EV_HANGUP,              lli_start_disc},
+       {ST_WAIT_DCOMMAND,      EV_DISCONNECT_IND,      lli_release_req},
+       {ST_WAIT_DCOMMAND,      EV_RELEASE,             lli_dhup_close},
+       {ST_WAIT_DCOMMAND,      EV_LEASED_REL,          lli_failure_l},
+       {ST_WAIT_DRELEASE,      EV_RELEASE,             lli_dhup_close},
+       {ST_WAIT_DRELEASE,      EV_DIAL,                lli_dchan_not_ready},
+       /* ETS 300-104 16.1 */
+       {ST_WAIT_D_REL_CNF,     EV_RELEASE,             lli_dhup_close},
+       {ST_WAIT_D_REL_CNF,     EV_DIAL,                lli_dchan_not_ready},
 };
 /* *INDENT-ON* */
 
@@ -855,21 +855,21 @@ release_b_st(struct Channel *chanp)
 {
        struct PStack *st = chanp->b_st;
 
-       if(test_and_clear_bit(FLG_START_B, &chanp->Flags)) {
+       if (test_and_clear_bit(FLG_START_B, &chanp->Flags)) {
                chanp->bcs->BC_Close(chanp->bcs);
                switch (chanp->l2_active_protocol) {
-                       case (ISDN_PROTO_L2_X75I):
-                               releasestack_isdnl2(st);
-                               break;
-                       case (ISDN_PROTO_L2_HDLC):
-                       case (ISDN_PROTO_L2_HDLC_56K):
-                       case (ISDN_PROTO_L2_TRANS):
-                       case (ISDN_PROTO_L2_MODEM):
-                       case (ISDN_PROTO_L2_FAX):
-                               releasestack_transl2(st);
-                               break;
+               case (ISDN_PROTO_L2_X75I):
+                       releasestack_isdnl2(st);
+                       break;
+               case (ISDN_PROTO_L2_HDLC):
+               case (ISDN_PROTO_L2_HDLC_56K):
+               case (ISDN_PROTO_L2_TRANS):
+               case (ISDN_PROTO_L2_MODEM):
+               case (ISDN_PROTO_L2_FAX):
+                       releasestack_transl2(st);
+                       break;
                }
-       } 
+       }
 }
 
 static struct Channel
@@ -880,9 +880,9 @@ static struct Channel
        int i;
 
        if (test_bit(FLG_TWO_DCHAN, &cs->HW_Flags))
-               i=1;
+               i = 1;
        else
-               i=0;
+               i = 0;
 
        if (!bch) {
                i = 2; /* virtual channel */
@@ -912,10 +912,10 @@ static struct Channel
 
 static void stat_redir_result(struct IsdnCardState *cs, int chan, ulong result)
 {      isdn_ctrl ic;
-  
+
        ic.driver = cs->myid;
        ic.command = ISDN_STAT_REDIR;
-       ic.arg = chan; 
+       ic.arg = chan;
        ic.parm.num[0] = result;
        cs->iif.statcallb(&ic);
 } /* stat_redir_result */
@@ -927,7 +927,7 @@ dchan_l3l4(struct PStack *st, int pr, void *arg)
        struct IsdnCardState *cs = st->l1.hardware;
        struct Channel *chanp;
 
-       if(!pc)
+       if (!pc)
                return;
 
        if (pr == (CC_SETUP | INDICATION)) {
@@ -945,63 +945,63 @@ dchan_l3l4(struct PStack *st, int pr, void *arg)
                return;
 
        switch (pr) {
-               case (CC_MORE_INFO | INDICATION):
-                       FsmEvent(&chanp->fi, EV_SETUP_IND, NULL);
-                       break;
-               case (CC_DISCONNECT | INDICATION):
-                       FsmEvent(&chanp->fi, EV_DISCONNECT_IND, NULL);
-                       break;
-               case (CC_RELEASE | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_RELEASE, NULL);
-                       break;
-               case (CC_SUSPEND | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_RELEASE, NULL);
-                       break;
-               case (CC_RESUME | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_SETUP_CNF, NULL);
-                       break;
-               case (CC_RESUME_ERR):
-                       FsmEvent(&chanp->fi, EV_RELEASE, NULL);
-                       break;
-               case (CC_RELEASE | INDICATION):
-                       FsmEvent(&chanp->fi, EV_RELEASE, NULL);
-                       break;
-               case (CC_SETUP_COMPL | INDICATION):
-                       FsmEvent(&chanp->fi, EV_SETUP_CMPL_IND, NULL);
-                       break;
-               case (CC_SETUP | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_SETUP_CNF, NULL);
-                       break;
-               case (CC_CHARGE | INDICATION):
-                       FsmEvent(&chanp->fi, EV_CINF, NULL);
-                       break;
-               case (CC_NOSETUP_RSP):
-                       FsmEvent(&chanp->fi, EV_NOSETUP_RSP, NULL);
-                       break;
-               case (CC_SETUP_ERR):
-                       FsmEvent(&chanp->fi, EV_SETUP_ERR, NULL);
-                       break;
-               case (CC_CONNECT_ERR):
-                       FsmEvent(&chanp->fi, EV_CONNECT_ERR, NULL);
-                       break;
-               case (CC_RELEASE_ERR):
-                       FsmEvent(&chanp->fi, EV_RELEASE, NULL);
-                       break;
-               case (CC_PROCEED_SEND | INDICATION):
-               case (CC_PROCEEDING | INDICATION):
-               case (CC_ALERTING | INDICATION):
-               case (CC_PROGRESS | INDICATION):
-               case (CC_NOTIFY | INDICATION):
-                       break;
-               case (CC_REDIR | INDICATION):
-                       stat_redir_result(cs, chanp->chan, pc->redir_result); 
-                       break;
-                       default:
-                       if (chanp->debug & 0x800) {
-                               HiSax_putstatus(chanp->cs, "Ch",
+       case (CC_MORE_INFO | INDICATION):
+               FsmEvent(&chanp->fi, EV_SETUP_IND, NULL);
+               break;
+       case (CC_DISCONNECT | INDICATION):
+               FsmEvent(&chanp->fi, EV_DISCONNECT_IND, NULL);
+               break;
+       case (CC_RELEASE | CONFIRM):
+               FsmEvent(&chanp->fi, EV_RELEASE, NULL);
+               break;
+       case (CC_SUSPEND | CONFIRM):
+               FsmEvent(&chanp->fi, EV_RELEASE, NULL);
+               break;
+       case (CC_RESUME | CONFIRM):
+               FsmEvent(&chanp->fi, EV_SETUP_CNF, NULL);
+               break;
+       case (CC_RESUME_ERR):
+               FsmEvent(&chanp->fi, EV_RELEASE, NULL);
+               break;
+       case (CC_RELEASE | INDICATION):
+               FsmEvent(&chanp->fi, EV_RELEASE, NULL);
+               break;
+       case (CC_SETUP_COMPL | INDICATION):
+               FsmEvent(&chanp->fi, EV_SETUP_CMPL_IND, NULL);
+               break;
+       case (CC_SETUP | CONFIRM):
+               FsmEvent(&chanp->fi, EV_SETUP_CNF, NULL);
+               break;
+       case (CC_CHARGE | INDICATION):
+               FsmEvent(&chanp->fi, EV_CINF, NULL);
+               break;
+       case (CC_NOSETUP_RSP):
+               FsmEvent(&chanp->fi, EV_NOSETUP_RSP, NULL);
+               break;
+       case (CC_SETUP_ERR):
+               FsmEvent(&chanp->fi, EV_SETUP_ERR, NULL);
+               break;
+       case (CC_CONNECT_ERR):
+               FsmEvent(&chanp->fi, EV_CONNECT_ERR, NULL);
+               break;
+       case (CC_RELEASE_ERR):
+               FsmEvent(&chanp->fi, EV_RELEASE, NULL);
+               break;
+       case (CC_PROCEED_SEND | INDICATION):
+       case (CC_PROCEEDING | INDICATION):
+       case (CC_ALERTING | INDICATION):
+       case (CC_PROGRESS | INDICATION):
+       case (CC_NOTIFY | INDICATION):
+               break;
+       case (CC_REDIR | INDICATION):
+               stat_redir_result(cs, chanp->chan, pc->redir_result);
+               break;
+       default:
+               if (chanp->debug & 0x800) {
+                       HiSax_putstatus(chanp->cs, "Ch",
                                        "%d L3->L4 unknown primitiv %#x",
                                        chanp->chan, pr);
-                       }
+               }
        }
 }
 
@@ -1069,7 +1069,7 @@ init_d_st(struct Channel *chanp)
 }
 
 static __printf(2, 3) void
-callc_debug(struct FsmInst *fi, char *fmt, ...)
+       callc_debug(struct FsmInst *fi, char *fmt, ...)
 {
        va_list args;
        struct Channel *chanp = fi->userdata;
@@ -1129,8 +1129,8 @@ CallcNewChan(struct IsdnCardState *csta) {
                return err;
        printk(KERN_INFO "HiSax: 2 channels added\n");
 
-       for (i = 0; i < MAX_WAITING_CALLS; i++) { 
-               err = init_chan(i+2,csta);
+       for (i = 0; i < MAX_WAITING_CALLS; i++) {
+               err = init_chan(i + 2, csta);
                if (err)
                        return err;
        }
@@ -1138,7 +1138,7 @@ CallcNewChan(struct IsdnCardState *csta) {
        if (test_bit(FLG_PTP, &csta->channel->d_st->l2.flag)) {
                printk(KERN_INFO "LAYER2 WATCHING ESTABLISH\n");
                csta->channel->d_st->lli.l4l3(csta->channel->d_st,
-                       DL_ESTABLISH | REQUEST, NULL);
+                                             DL_ESTABLISH | REQUEST, NULL);
        }
        return (0);
 }
@@ -1187,28 +1187,28 @@ lldata_handler(struct PStack *st, int pr, void *arg)
        struct sk_buff *skb = arg;
 
        switch (pr) {
-               case (DL_DATA  | INDICATION):
-                       if (chanp->data_open) {
-                               if (chanp->debug & 0x800)
-                                       link_debug(chanp, 0, "lldata: %d", skb->len);
-                               chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb);
-                       } else {
-                               link_debug(chanp, 0, "lldata: channel not open");
-                               dev_kfree_skb(skb);
-                       }
-                       break;
-               case (DL_ESTABLISH | INDICATION):
-               case (DL_ESTABLISH | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_BC_EST, NULL);
-                       break;
-               case (DL_RELEASE | INDICATION):
-               case (DL_RELEASE | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_BC_REL, NULL);
-                       break;
-               default:
-                       printk(KERN_WARNING "lldata_handler unknown primitive %#x\n",
-                               pr);
-                       break;
+       case (DL_DATA  | INDICATION):
+               if (chanp->data_open) {
+                       if (chanp->debug & 0x800)
+                               link_debug(chanp, 0, "lldata: %d", skb->len);
+                       chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb);
+               } else {
+                       link_debug(chanp, 0, "lldata: channel not open");
+                       dev_kfree_skb(skb);
+               }
+               break;
+       case (DL_ESTABLISH | INDICATION):
+       case (DL_ESTABLISH | CONFIRM):
+               FsmEvent(&chanp->fi, EV_BC_EST, NULL);
+               break;
+       case (DL_RELEASE | INDICATION):
+       case (DL_RELEASE | CONFIRM):
+               FsmEvent(&chanp->fi, EV_BC_REL, NULL);
+               break;
+       default:
+               printk(KERN_WARNING "lldata_handler unknown primitive %#x\n",
+                      pr);
+               break;
        }
 }
 
@@ -1219,28 +1219,28 @@ lltrans_handler(struct PStack *st, int pr, void *arg)
        struct sk_buff *skb = arg;
 
        switch (pr) {
-               case (PH_DATA | INDICATION):
-                       if (chanp->data_open) {
-                               if (chanp->debug & 0x800)
-                                       link_debug(chanp, 0, "lltrans: %d", skb->len);
-                               chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb);
-                       } else {
-                               link_debug(chanp, 0, "lltrans: channel not open");
-                               dev_kfree_skb(skb);
-                       }
-                       break;
-               case (PH_ACTIVATE | INDICATION):
-               case (PH_ACTIVATE | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_BC_EST, NULL);
-                       break;
-               case (PH_DEACTIVATE | INDICATION):
-               case (PH_DEACTIVATE | CONFIRM):
-                       FsmEvent(&chanp->fi, EV_BC_REL, NULL);
-                       break;
-               default:
-                       printk(KERN_WARNING "lltrans_handler unknown primitive %#x\n",
-                               pr);
-                       break;
+       case (PH_DATA | INDICATION):
+               if (chanp->data_open) {
+                       if (chanp->debug & 0x800)
+                               link_debug(chanp, 0, "lltrans: %d", skb->len);
+                       chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb);
+               } else {
+                       link_debug(chanp, 0, "lltrans: channel not open");
+                       dev_kfree_skb(skb);
+               }
+               break;
+       case (PH_ACTIVATE | INDICATION):
+       case (PH_ACTIVATE | CONFIRM):
+               FsmEvent(&chanp->fi, EV_BC_EST, NULL);
+               break;
+       case (PH_DEACTIVATE | INDICATION):
+       case (PH_DEACTIVATE | CONFIRM):
+               FsmEvent(&chanp->fi, EV_BC_REL, NULL);
+               break;
+       default:
+               printk(KERN_WARNING "lltrans_handler unknown primitive %#x\n",
+                      pr);
+               break;
        }
 }
 
@@ -1272,22 +1272,22 @@ init_b_st(struct Channel *chanp, int incoming)
        else
                st->l1.bc = chanp->proc->para.bchannel - 1;
        switch (chanp->l2_active_protocol) {
-               case (ISDN_PROTO_L2_X75I):
-               case (ISDN_PROTO_L2_HDLC):
-                       st->l1.mode = L1_MODE_HDLC;
-                       break;
-               case (ISDN_PROTO_L2_HDLC_56K):
-                       st->l1.mode = L1_MODE_HDLC_56K;
-                       break;
-               case (ISDN_PROTO_L2_TRANS):
-                       st->l1.mode = L1_MODE_TRANS;
-                       break;
-               case (ISDN_PROTO_L2_MODEM):
-                       st->l1.mode = L1_MODE_V32;
-                       break;
-               case (ISDN_PROTO_L2_FAX):
-                       st->l1.mode = L1_MODE_FAX;
-                       break;
+       case (ISDN_PROTO_L2_X75I):
+       case (ISDN_PROTO_L2_HDLC):
+               st->l1.mode = L1_MODE_HDLC;
+               break;
+       case (ISDN_PROTO_L2_HDLC_56K):
+               st->l1.mode = L1_MODE_HDLC_56K;
+               break;
+       case (ISDN_PROTO_L2_TRANS):
+               st->l1.mode = L1_MODE_TRANS;
+               break;
+       case (ISDN_PROTO_L2_MODEM):
+               st->l1.mode = L1_MODE_V32;
+               break;
+       case (ISDN_PROTO_L2_FAX):
+               st->l1.mode = L1_MODE_FAX;
+               break;
        }
        chanp->bcs->conmsg = NULL;
        if (chanp->bcs->BC_SetStack(st, chanp->bcs))
@@ -1303,29 +1303,29 @@ init_b_st(struct Channel *chanp, int incoming)
        st->l2.T203 = 5000;     /* 5000 milliseconds */
        st->l3.debug = 0;
        switch (chanp->l2_active_protocol) {
-               case (ISDN_PROTO_L2_X75I):
-                       sprintf(tmp, "Ch%d X.75", chanp->chan);
-                       setstack_isdnl2(st, tmp);
-                       setstack_l3bc(st, chanp);
-                       st->l2.l2l3 = lldata_handler;
-                       st->lli.userdata = chanp;
-                       test_and_clear_bit(FLG_LLI_L1WAKEUP, &st->lli.flag);
-                       test_and_set_bit(FLG_LLI_L2WAKEUP, &st->lli.flag);
-                       st->l2.l2m.debug = chanp->debug & 16;
-                       st->l2.debug = chanp->debug & 64;
-                       break;
-               case (ISDN_PROTO_L2_HDLC):
-               case (ISDN_PROTO_L2_HDLC_56K):
-               case (ISDN_PROTO_L2_TRANS):
-               case (ISDN_PROTO_L2_MODEM):
-               case (ISDN_PROTO_L2_FAX):
-                       st->l1.l1l2 = lltrans_handler;
-                       st->lli.userdata = chanp;
-                       test_and_set_bit(FLG_LLI_L1WAKEUP, &st->lli.flag);
-                       test_and_clear_bit(FLG_LLI_L2WAKEUP, &st->lli.flag);
-                       setstack_transl2(st);
-                       setstack_l3bc(st, chanp);
-                       break;
+       case (ISDN_PROTO_L2_X75I):
+               sprintf(tmp, "Ch%d X.75", chanp->chan);
+               setstack_isdnl2(st, tmp);
+               setstack_l3bc(st, chanp);
+               st->l2.l2l3 = lldata_handler;
+               st->lli.userdata = chanp;
+               test_and_clear_bit(FLG_LLI_L1WAKEUP, &st->lli.flag);
+               test_and_set_bit(FLG_LLI_L2WAKEUP, &st->lli.flag);
+               st->l2.l2m.debug = chanp->debug & 16;
+               st->l2.debug = chanp->debug & 64;
+               break;
+       case (ISDN_PROTO_L2_HDLC):
+       case (ISDN_PROTO_L2_HDLC_56K):
+       case (ISDN_PROTO_L2_TRANS):
+       case (ISDN_PROTO_L2_MODEM):
+       case (ISDN_PROTO_L2_FAX):
+               st->l1.l1l2 = lltrans_handler;
+               st->lli.userdata = chanp;
+               test_and_set_bit(FLG_LLI_L1WAKEUP, &st->lli.flag);
+               test_and_clear_bit(FLG_LLI_L2WAKEUP, &st->lli.flag);
+               setstack_transl2(st);
+               setstack_l3bc(st, chanp);
+               break;
        }
        test_and_set_bit(FLG_START_B, &chanp->Flags);
        return (0);
@@ -1338,19 +1338,19 @@ leased_l4l3(struct PStack *st, int pr, void *arg)
        struct sk_buff *skb = arg;
 
        switch (pr) {
-               case (DL_DATA | REQUEST):
-                       link_debug(chanp, 0, "leased line d-channel DATA");
-                       dev_kfree_skb(skb);
-                       break;
-               case (DL_ESTABLISH | REQUEST):
-                       st->l2.l2l1(st, PH_ACTIVATE | REQUEST, NULL);
-                       break;
-               case (DL_RELEASE | REQUEST):
-                       break;
-               default:
-                       printk(KERN_WARNING "transd_l4l3 unknown primitive %#x\n",
-                               pr);
-                       break;
+       case (DL_DATA | REQUEST):
+               link_debug(chanp, 0, "leased line d-channel DATA");
+               dev_kfree_skb(skb);
+               break;
+       case (DL_ESTABLISH | REQUEST):
+               st->l2.l2l1(st, PH_ACTIVATE | REQUEST, NULL);
+               break;
+       case (DL_RELEASE | REQUEST):
+               break;
+       default:
+               printk(KERN_WARNING "transd_l4l3 unknown primitive %#x\n",
+                      pr);
+               break;
        }
 }
 
@@ -1359,32 +1359,32 @@ leased_l1l2(struct PStack *st, int pr, void *arg)
 {
        struct Channel *chanp = (struct Channel *) st->lli.userdata;
        struct sk_buff *skb = arg;
-       int i,event = EV_LEASED_REL;
+       int i, event = EV_LEASED_REL;
 
        switch (pr) {
-               case (PH_DATA | INDICATION):
-                       link_debug(chanp, 0, "leased line d-channel DATA");
-                       dev_kfree_skb(skb);
-                       break;
-               case (PH_ACTIVATE | INDICATION):
-               case (PH_ACTIVATE | CONFIRM):
-                       event = EV_LEASED;
-               case (PH_DEACTIVATE | INDICATION):
-               case (PH_DEACTIVATE | CONFIRM):
-                       if (test_bit(FLG_TWO_DCHAN, &chanp->cs->HW_Flags))
-                               i = 1;
-                       else
-                               i = 0;
-                       while (i < 2) {
-                               FsmEvent(&chanp->fi, event, NULL);
-                               chanp++;
-                               i++;
-                       }
-                       break;
-               default:
-                       printk(KERN_WARNING
-                               "transd_l1l2 unknown primitive %#x\n", pr);
-                       break;
+       case (PH_DATA | INDICATION):
+               link_debug(chanp, 0, "leased line d-channel DATA");
+               dev_kfree_skb(skb);
+               break;
+       case (PH_ACTIVATE | INDICATION):
+       case (PH_ACTIVATE | CONFIRM):
+               event = EV_LEASED;
+       case (PH_DEACTIVATE | INDICATION):
+       case (PH_DEACTIVATE | CONFIRM):
+               if (test_bit(FLG_TWO_DCHAN, &chanp->cs->HW_Flags))
+                       i = 1;
+               else
+                       i = 0;
+               while (i < 2) {
+                       FsmEvent(&chanp->fi, event, NULL);
+                       chanp++;
+                       i++;
+               }
+               break;
+       default:
+               printk(KERN_WARNING
+                      "transd_l1l2 unknown primitive %#x\n", pr);
+               break;
        }
 }
 
@@ -1394,7 +1394,7 @@ distr_debug(struct IsdnCardState *csta, int debugflags)
        int i;
        struct Channel *chanp = csta->channel;
 
-       for (i = 0; i < (2 + MAX_WAITING_CALLS) ; i++) {
+       for (i = 0; i < (2 + MAX_WAITING_CALLS); i++) {
                chanp[i].debug = debugflags;
                chanp[i].fi.debug = debugflags & 2;
                chanp[i].d_st->l2.l2m.debug = debugflags & 8;
@@ -1421,9 +1421,9 @@ capi_debug(struct Channel *chanp, capi_msg *cm)
 {
        char *t = tmpbuf;
 
-       t += QuickHex(t, (u_char *)cm, (cm->Length>50)? 50: cm->Length);
+       t += QuickHex(t, (u_char *)cm, (cm->Length > 50) ? 50 : cm->Length);
        t--;
-       *t= 0;
+       *t = 0;
        HiSax_putstatus(chanp->cs, "Ch", "%d CAPIMSG %s", chanp->chan, tmpbuf);
 }
 
@@ -1431,31 +1431,31 @@ static void
 lli_got_fac_req(struct Channel *chanp, capi_msg *cm) {
        if ((cm->para[0] != 3) || (cm->para[1] != 0))
                return;
-       if (cm->para[2]<3)
+       if (cm->para[2] < 3)
                return;
        if (cm->para[4] != 0)
                return;
-       switch(cm->para[3]) {
-               case 4: /* Suspend */
-                       strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] +1);
-                       FsmEvent(&chanp->fi, EV_SUSPEND, cm);
-                       break;
-               case 5: /* Resume */
-                       strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] +1);
-                       if (chanp->fi.state == ST_NULL) {
-                               FsmEvent(&chanp->fi, EV_RESUME, cm);
-                       } else {
-                               FsmDelTimer(&chanp->dial_timer, 72);
-                               FsmAddTimer(&chanp->dial_timer, 80, EV_RESUME, cm, 73);
-                       }
-                       break;
+       switch (cm->para[3]) {
+       case 4: /* Suspend */
+               strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] + 1);
+               FsmEvent(&chanp->fi, EV_SUSPEND, cm);
+               break;
+       case 5: /* Resume */
+               strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] + 1);
+               if (chanp->fi.state == ST_NULL) {
+                       FsmEvent(&chanp->fi, EV_RESUME, cm);
+               } else {
+                       FsmDelTimer(&chanp->dial_timer, 72);
+                       FsmAddTimer(&chanp->dial_timer, 80, EV_RESUME, cm, 73);
+               }
+               break;
        }
 }
 
 static void
 lli_got_manufacturer(struct Channel *chanp, struct IsdnCardState *cs, capi_msg *cm) {
        if ((cs->typ == ISDN_CTYPE_ELSA) || (cs->typ == ISDN_CTYPE_ELSA_PNP) ||
-               (cs->typ == ISDN_CTYPE_ELSA_PCI)) {
+           (cs->typ == ISDN_CTYPE_ELSA_PCI)) {
                if (cs->hw.elsa.MFlag) {
                        cs->cardmsg(cs, CARD_AUX_IND, cm->para);
                }
@@ -1466,14 +1466,14 @@ lli_got_manufacturer(struct Channel *chanp, struct IsdnCardState *cs, capi_msg *
 /***************************************************************/
 /* Limit the available number of channels for the current card */
 /***************************************************************/
-static int 
+static int
 set_channel_limit(struct IsdnCardState *cs, int chanmax)
 {
        isdn_ctrl ic;
        int i, ii;
 
        if ((chanmax < 0) || (chanmax > 2))
-               return(-EINVAL);
+               return (-EINVAL);
        cs->chanlimit = 0;
        for (ii = 0; ii < 2; ii++) {
                ic.driver = cs->myid;
@@ -1483,16 +1483,16 @@ set_channel_limit(struct IsdnCardState *cs, int chanmax)
                        ic.parm.num[0] = 0; /* disabled */
                else
                        ic.parm.num[0] = 1; /* enabled */
-               i = cs->iif.statcallb(&ic); 
-               if (i) return(-EINVAL);
-               if (ii < chanmax) 
+               i = cs->iif.statcallb(&ic);
+               if (i) return (-EINVAL);
+               if (ii < chanmax)
                        cs->chanlimit++;
        }
-       return(0);
+       return (0);
 } /* set_channel_limit */
 
 int
-HiSax_command(isdn_ctrl * ic)
+HiSax_command(isdn_ctrl *ic)
 {
        struct IsdnCardState *csta = hisax_findcard(ic->driver);
        struct PStack *st;
@@ -1502,236 +1502,236 @@ HiSax_command(isdn_ctrl * ic)
 
        if (!csta) {
                printk(KERN_ERR
-               "HiSax: if_command %d called with invalid driverId %d!\n",
-                       ic->command, ic->driver);
+                      "HiSax: if_command %d called with invalid driverId %d!\n",
+                      ic->command, ic->driver);
                return -ENODEV;
        }
        switch (ic->command) {
-               case (ISDN_CMD_SETEAZ):
-                       chanp = csta->channel + ic->arg;
+       case (ISDN_CMD_SETEAZ):
+               chanp = csta->channel + ic->arg;
+               break;
+       case (ISDN_CMD_SETL2):
+               chanp = csta->channel + (ic->arg & 0xff);
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "SETL2 card %d %ld",
+                                  csta->cardnr + 1, ic->arg >> 8);
+               chanp->l2_protocol = ic->arg >> 8;
+               break;
+       case (ISDN_CMD_SETL3):
+               chanp = csta->channel + (ic->arg & 0xff);
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "SETL3 card %d %ld",
+                                  csta->cardnr + 1, ic->arg >> 8);
+               chanp->l3_protocol = ic->arg >> 8;
+               break;
+       case (ISDN_CMD_DIAL):
+               chanp = csta->channel + (ic->arg & 0xff);
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "DIAL %s -> %s (%d,%d)",
+                                  ic->parm.setup.eazmsn, ic->parm.setup.phone,
+                                  ic->parm.setup.si1, ic->parm.setup.si2);
+               memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm));
+               if (!strcmp(chanp->setup.eazmsn, "0"))
+                       chanp->setup.eazmsn[0] = '\0';
+               /* this solution is dirty and may be change, if
+                * we make a callreference based callmanager */
+               if (chanp->fi.state == ST_NULL) {
+                       FsmEvent(&chanp->fi, EV_DIAL, NULL);
+               } else {
+                       FsmDelTimer(&chanp->dial_timer, 70);
+                       FsmAddTimer(&chanp->dial_timer, 50, EV_DIAL, NULL, 71);
+               }
+               break;
+       case (ISDN_CMD_ACCEPTB):
+               chanp = csta->channel + ic->arg;
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "ACCEPTB");
+               FsmEvent(&chanp->fi, EV_ACCEPTB, NULL);
+               break;
+       case (ISDN_CMD_ACCEPTD):
+               chanp = csta->channel + ic->arg;
+               memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm));
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "ACCEPTD");
+               FsmEvent(&chanp->fi, EV_ACCEPTD, NULL);
+               break;
+       case (ISDN_CMD_HANGUP):
+               chanp = csta->channel + ic->arg;
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "HANGUP");
+               FsmEvent(&chanp->fi, EV_HANGUP, NULL);
+               break;
+       case (CAPI_PUT_MESSAGE):
+               chanp = csta->channel + ic->arg;
+               if (chanp->debug & 1)
+                       capi_debug(chanp, &ic->parm.cmsg);
+               if (ic->parm.cmsg.Length < 8)
                        break;
-               case (ISDN_CMD_SETL2):
-                       chanp = csta->channel + (ic->arg & 0xff);
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "SETL2 card %d %ld",
-                                       csta->cardnr + 1, ic->arg >> 8);
-                       chanp->l2_protocol = ic->arg >> 8;
+               switch (ic->parm.cmsg.Command) {
+               case CAPI_FACILITY:
+                       if (ic->parm.cmsg.Subcommand == CAPI_REQ)
+                               lli_got_fac_req(chanp, &ic->parm.cmsg);
                        break;
-               case (ISDN_CMD_SETL3):
-                       chanp = csta->channel + (ic->arg & 0xff);
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "SETL3 card %d %ld",
-                                       csta->cardnr + 1, ic->arg >> 8);
-                       chanp->l3_protocol = ic->arg >> 8;
+               case CAPI_MANUFACTURER:
+                       if (ic->parm.cmsg.Subcommand == CAPI_REQ)
+                               lli_got_manufacturer(chanp, csta, &ic->parm.cmsg);
                        break;
-               case (ISDN_CMD_DIAL):
-                       chanp = csta->channel + (ic->arg & 0xff);
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "DIAL %s -> %s (%d,%d)",
-                                       ic->parm.setup.eazmsn, ic->parm.setup.phone,
-                                       ic->parm.setup.si1, ic->parm.setup.si2);
-                       memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm));
-                       if (!strcmp(chanp->setup.eazmsn, "0"))
-                               chanp->setup.eazmsn[0] = '\0';
-                       /* this solution is dirty and may be change, if
-                        * we make a callreference based callmanager */
-                       if (chanp->fi.state == ST_NULL) {
-                               FsmEvent(&chanp->fi, EV_DIAL, NULL);
-                       } else {
-                               FsmDelTimer(&chanp->dial_timer, 70);
-                               FsmAddTimer(&chanp->dial_timer, 50, EV_DIAL, NULL, 71);
-                       }
+               default:
                        break;
-               case (ISDN_CMD_ACCEPTB):
-                       chanp = csta->channel + ic->arg;
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "ACCEPTB");
-                       FsmEvent(&chanp->fi, EV_ACCEPTB, NULL);
+               }
+               break;
+       case (ISDN_CMD_IOCTL):
+               switch (ic->arg) {
+               case (0):
+                       num = *(unsigned int *) ic->parm.num;
+                       HiSax_reportcard(csta->cardnr, num);
                        break;
-               case (ISDN_CMD_ACCEPTD):
-                       chanp = csta->channel + ic->arg;
-                       memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm));
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "ACCEPTD");
-                       FsmEvent(&chanp->fi, EV_ACCEPTD, NULL);
+               case (1):
+                       num = *(unsigned int *) ic->parm.num;
+                       distr_debug(csta, num);
+                       printk(KERN_DEBUG "HiSax: debugging flags card %d set to %x\n",
+                              csta->cardnr + 1, num);
+                       HiSax_putstatus(csta, "debugging flags ",
+                                       "card %d set to %x", csta->cardnr + 1, num);
                        break;
-               case (ISDN_CMD_HANGUP):
-                       chanp = csta->channel + ic->arg;
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "HANGUP");
-                       FsmEvent(&chanp->fi, EV_HANGUP, NULL);
+               case (2):
+                       num = *(unsigned int *) ic->parm.num;
+                       csta->channel[0].b_st->l1.delay = num;
+                       csta->channel[1].b_st->l1.delay = num;
+                       HiSax_putstatus(csta, "delay ", "card %d set to %d ms",
+                                       csta->cardnr + 1, num);
+                       printk(KERN_DEBUG "HiSax: delay card %d set to %d ms\n",
+                              csta->cardnr + 1, num);
                        break;
-               case (CAPI_PUT_MESSAGE):
-                       chanp = csta->channel + ic->arg;
-                       if (chanp->debug & 1)
-                               capi_debug(chanp, &ic->parm.cmsg);
-                       if (ic->parm.cmsg.Length < 8)
-                               break;
-                       switch(ic->parm.cmsg.Command) {
-                               case CAPI_FACILITY:
-                                       if (ic->parm.cmsg.Subcommand == CAPI_REQ)
-                                               lli_got_fac_req(chanp, &ic->parm.cmsg);
-                                       break;
-                               case CAPI_MANUFACTURER:
-                                       if (ic->parm.cmsg.Subcommand == CAPI_REQ)
-                                               lli_got_manufacturer(chanp, csta, &ic->parm.cmsg);
-                                       break;
-                               default:
-                                       break;
+               case (5):       /* set card in leased mode */
+                       num = *(unsigned int *) ic->parm.num;
+                       if ((num < 1) || (num > 2)) {
+                               HiSax_putstatus(csta, "Set LEASED ",
+                                               "wrong channel %d", num);
+                               printk(KERN_WARNING "HiSax: Set LEASED wrong channel %d\n",
+                                      num);
+                       } else {
+                               num--;
+                               chanp = csta->channel + num;
+                               chanp->leased = 1;
+                               HiSax_putstatus(csta, "Card",
+                                               "%d channel %d set leased mode\n",
+                                               csta->cardnr + 1, num + 1);
+                               chanp->d_st->l1.l1l2 = leased_l1l2;
+                               chanp->d_st->lli.l4l3 = leased_l4l3;
+                               chanp->d_st->lli.l4l3(chanp->d_st,
+                                                     DL_ESTABLISH | REQUEST, NULL);
                        }
                        break;
-               case (ISDN_CMD_IOCTL):
-                       switch (ic->arg) {
-                               case (0):
-                                       num = *(unsigned int *) ic->parm.num;
-                                       HiSax_reportcard(csta->cardnr, num);
-                                       break;
-                               case (1):
-                                       num = *(unsigned int *) ic->parm.num;
-                                       distr_debug(csta, num);
-                                       printk(KERN_DEBUG "HiSax: debugging flags card %d set to %x\n",
-                                               csta->cardnr + 1, num);
-                                       HiSax_putstatus(csta, "debugging flags ",
-                                               "card %d set to %x", csta->cardnr + 1, num);
-                                       break;
-                               case (2):
-                                       num = *(unsigned int *) ic->parm.num;
-                                       csta->channel[0].b_st->l1.delay = num;
-                                       csta->channel[1].b_st->l1.delay = num;
-                                       HiSax_putstatus(csta, "delay ", "card %d set to %d ms",
-                                               csta->cardnr + 1, num);
-                                       printk(KERN_DEBUG "HiSax: delay card %d set to %d ms\n",
-                                               csta->cardnr + 1, num);
-                                       break;
-                               case (5):       /* set card in leased mode */
-                                       num = *(unsigned int *) ic->parm.num;
-                                       if ((num <1) || (num > 2)) {
-                                               HiSax_putstatus(csta, "Set LEASED ",
-                                                       "wrong channel %d", num);
-                                               printk(KERN_WARNING "HiSax: Set LEASED wrong channel %d\n",
-                                                       num);
-                                       } else {
-                                               num--;
-                                               chanp = csta->channel +num;
-                                               chanp->leased = 1;
-                                               HiSax_putstatus(csta, "Card",
-                                                       "%d channel %d set leased mode\n",
-                                                       csta->cardnr + 1, num + 1);
-                                               chanp->d_st->l1.l1l2 = leased_l1l2;
-                                               chanp->d_st->lli.l4l3 = leased_l4l3;
-                                               chanp->d_st->lli.l4l3(chanp->d_st,
-                                                       DL_ESTABLISH | REQUEST, NULL);
-                                       }
-                                       break;
-                               case (6):       /* set B-channel test loop */
-                                       num = *(unsigned int *) ic->parm.num;
-                                       if (csta->stlist)
-                                               csta->stlist->l2.l2l1(csta->stlist,
-                                                       PH_TESTLOOP | REQUEST, (void *) (long)num);
-                                       break;
-                               case (7):       /* set card in PTP mode */
-                                       num = *(unsigned int *) ic->parm.num;
-                                       if (test_bit(FLG_TWO_DCHAN, &csta->HW_Flags)) {
-                                               printk(KERN_ERR "HiSax PTP mode only with one TEI possible\n");
-                                       } else if (num) {
-                                               test_and_set_bit(FLG_PTP, &csta->channel[0].d_st->l2.flag);
-                                               test_and_set_bit(FLG_FIXED_TEI, &csta->channel[0].d_st->l2.flag);
-                                               csta->channel[0].d_st->l2.tei = 0;
-                                               HiSax_putstatus(csta, "set card ", "in PTP mode");
-                                               printk(KERN_DEBUG "HiSax: set card in PTP mode\n");
-                                               printk(KERN_INFO "LAYER2 WATCHING ESTABLISH\n");
-                                               csta->channel[0].d_st->lli.l4l3(csta->channel[0].d_st,
-                                                       DL_ESTABLISH | REQUEST, NULL);
-                                       } else {
-                                               test_and_clear_bit(FLG_PTP, &csta->channel[0].d_st->l2.flag);
-                                               test_and_clear_bit(FLG_FIXED_TEI, &csta->channel[0].d_st->l2.flag);
-                                               HiSax_putstatus(csta, "set card ", "in PTMP mode");
-                                               printk(KERN_DEBUG "HiSax: set card in PTMP mode\n");
-                                       }
-                                       break;
-                               case (8):       /* set card in FIXED TEI mode */
-                                       num = *(unsigned int *) ic->parm.num;
-                                       chanp = csta->channel + (num & 1);
-                                       num = num >>1;
-                                       if (num == 127) {
-                                               test_and_clear_bit(FLG_FIXED_TEI, &chanp->d_st->l2.flag);
-                                               chanp->d_st->l2.tei = -1;
-                                               HiSax_putstatus(csta, "set card ", "in VAR TEI mode");
-                                               printk(KERN_DEBUG "HiSax: set card in VAR TEI mode\n");
-                                       } else {
-                                               test_and_set_bit(FLG_FIXED_TEI, &chanp->d_st->l2.flag);
-                                               chanp->d_st->l2.tei = num;
-                                               HiSax_putstatus(csta, "set card ", "in FIXED TEI (%d) mode", num);
-                                               printk(KERN_DEBUG "HiSax: set card in FIXED TEI (%d) mode\n",
-                                                       num);
-                                       }
-                                       chanp->d_st->lli.l4l3(chanp->d_st,
-                                               DL_ESTABLISH | REQUEST, NULL);
-                                       break;
-                               case (11):
-                                       num = csta->debug & DEB_DLOG_HEX;
-                                       csta->debug = *(unsigned int *) ic->parm.num;
-                                       csta->debug |= num;
-                                       HiSax_putstatus(cards[0].cs, "l1 debugging ",
-                                               "flags card %d set to %x",
-                                               csta->cardnr + 1, csta->debug);
-                                       printk(KERN_DEBUG "HiSax: l1 debugging flags card %d set to %x\n",
-                                               csta->cardnr + 1, csta->debug);
-                                       break;
-                               case (13):
-                                       csta->channel[0].d_st->l3.debug = *(unsigned int *) ic->parm.num;
-                                       csta->channel[1].d_st->l3.debug = *(unsigned int *) ic->parm.num;
-                                       HiSax_putstatus(cards[0].cs, "l3 debugging ",
-                                               "flags card %d set to %x\n", csta->cardnr + 1,
-                                               *(unsigned int *) ic->parm.num);
-                                       printk(KERN_DEBUG "HiSax: l3 debugging flags card %d set to %x\n",
-                                               csta->cardnr + 1, *(unsigned int *) ic->parm.num);
-                                       break;
-                               case (10):
-                                       i = *(unsigned int *) ic->parm.num;
-                                       return(set_channel_limit(csta, i));
-                               default:
-                                       if (csta->auxcmd)
-                                               return(csta->auxcmd(csta, ic));
-                                       printk(KERN_DEBUG "HiSax: invalid ioctl %d\n",
-                                               (int) ic->arg);
-                                       return (-EINVAL);
-                       }
+               case (6):       /* set B-channel test loop */
+                       num = *(unsigned int *) ic->parm.num;
+                       if (csta->stlist)
+                               csta->stlist->l2.l2l1(csta->stlist,
+                                                     PH_TESTLOOP | REQUEST, (void *) (long)num);
                        break;
-               
-               case (ISDN_CMD_PROCEED):
-                       chanp = csta->channel + ic->arg;
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "PROCEED");
-                       FsmEvent(&chanp->fi, EV_PROCEED, NULL);
+               case (7):       /* set card in PTP mode */
+                       num = *(unsigned int *) ic->parm.num;
+                       if (test_bit(FLG_TWO_DCHAN, &csta->HW_Flags)) {
+                               printk(KERN_ERR "HiSax PTP mode only with one TEI possible\n");
+                       } else if (num) {
+                               test_and_set_bit(FLG_PTP, &csta->channel[0].d_st->l2.flag);
+                               test_and_set_bit(FLG_FIXED_TEI, &csta->channel[0].d_st->l2.flag);
+                               csta->channel[0].d_st->l2.tei = 0;
+                               HiSax_putstatus(csta, "set card ", "in PTP mode");
+                               printk(KERN_DEBUG "HiSax: set card in PTP mode\n");
+                               printk(KERN_INFO "LAYER2 WATCHING ESTABLISH\n");
+                               csta->channel[0].d_st->lli.l4l3(csta->channel[0].d_st,
+                                                               DL_ESTABLISH | REQUEST, NULL);
+                       } else {
+                               test_and_clear_bit(FLG_PTP, &csta->channel[0].d_st->l2.flag);
+                               test_and_clear_bit(FLG_FIXED_TEI, &csta->channel[0].d_st->l2.flag);
+                               HiSax_putstatus(csta, "set card ", "in PTMP mode");
+                               printk(KERN_DEBUG "HiSax: set card in PTMP mode\n");
+                       }
                        break;
-
-               case (ISDN_CMD_ALERT):
-                       chanp = csta->channel + ic->arg;
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "ALERT");
-                       FsmEvent(&chanp->fi, EV_ALERT, NULL);
+               case (8):       /* set card in FIXED TEI mode */
+                       num = *(unsigned int *)ic->parm.num;
+                       chanp = csta->channel + (num & 1);
+                       num = num >> 1;
+                       if (num == 127) {
+                               test_and_clear_bit(FLG_FIXED_TEI, &chanp->d_st->l2.flag);
+                               chanp->d_st->l2.tei = -1;
+                               HiSax_putstatus(csta, "set card ", "in VAR TEI mode");
+                               printk(KERN_DEBUG "HiSax: set card in VAR TEI mode\n");
+                       } else {
+                               test_and_set_bit(FLG_FIXED_TEI, &chanp->d_st->l2.flag);
+                               chanp->d_st->l2.tei = num;
+                               HiSax_putstatus(csta, "set card ", "in FIXED TEI (%d) mode", num);
+                               printk(KERN_DEBUG "HiSax: set card in FIXED TEI (%d) mode\n",
+                                      num);
+                       }
+                       chanp->d_st->lli.l4l3(chanp->d_st,
+                                             DL_ESTABLISH | REQUEST, NULL);
                        break;
-
-               case (ISDN_CMD_REDIR):
-                       chanp = csta->channel + ic->arg;
-                       if (chanp->debug & 1)
-                               link_debug(chanp, 1, "REDIR");
-                       memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm));
-                       FsmEvent(&chanp->fi, EV_REDIR, NULL);
+               case (11):
+                       num = csta->debug & DEB_DLOG_HEX;
+                       csta->debug = *(unsigned int *) ic->parm.num;
+                       csta->debug |= num;
+                       HiSax_putstatus(cards[0].cs, "l1 debugging ",
+                                       "flags card %d set to %x",
+                                       csta->cardnr + 1, csta->debug);
+                       printk(KERN_DEBUG "HiSax: l1 debugging flags card %d set to %x\n",
+                              csta->cardnr + 1, csta->debug);
                        break;
-
-               /* protocol specific io commands */
-               case (ISDN_CMD_PROT_IO):
-                       for (st = csta->stlist; st; st = st->next)
-                               if (st->protocol == (ic->arg & 0xFF))
-                                       return(st->lli.l4l3_proto(st, ic));
-                       return(-EINVAL);
+               case (13):
+                       csta->channel[0].d_st->l3.debug = *(unsigned int *) ic->parm.num;
+                       csta->channel[1].d_st->l3.debug = *(unsigned int *) ic->parm.num;
+                       HiSax_putstatus(cards[0].cs, "l3 debugging ",
+                                       "flags card %d set to %x\n", csta->cardnr + 1,
+                                       *(unsigned int *) ic->parm.num);
+                       printk(KERN_DEBUG "HiSax: l3 debugging flags card %d set to %x\n",
+                              csta->cardnr + 1, *(unsigned int *) ic->parm.num);
                        break;
+               case (10):
+                       i = *(unsigned int *) ic->parm.num;
+                       return (set_channel_limit(csta, i));
                default:
                        if (csta->auxcmd)
-                               return(csta->auxcmd(csta, ic));
-                       return(-EINVAL);
+                               return (csta->auxcmd(csta, ic));
+                       printk(KERN_DEBUG "HiSax: invalid ioctl %d\n",
+                              (int) ic->arg);
+                       return (-EINVAL);
+               }
+               break;
+
+       case (ISDN_CMD_PROCEED):
+               chanp = csta->channel + ic->arg;
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "PROCEED");
+               FsmEvent(&chanp->fi, EV_PROCEED, NULL);
+               break;
+
+       case (ISDN_CMD_ALERT):
+               chanp = csta->channel + ic->arg;
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "ALERT");
+               FsmEvent(&chanp->fi, EV_ALERT, NULL);
+               break;
+
+       case (ISDN_CMD_REDIR):
+               chanp = csta->channel + ic->arg;
+               if (chanp->debug & 1)
+                       link_debug(chanp, 1, "REDIR");
+               memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm));
+               FsmEvent(&chanp->fi, EV_REDIR, NULL);
+               break;
+
+               /* protocol specific io commands */
+       case (ISDN_CMD_PROT_IO):
+               for (st = csta->stlist; st; st = st->next)
+                       if (st->protocol == (ic->arg & 0xFF))
+                               return (st->lli.l4l3_proto(st, ic));
+               return (-EINVAL);
+               break;
+       default:
+               if (csta->auxcmd)
+                       return (csta->auxcmd(csta, ic));
+               return (-EINVAL);
        }
        return (0);
 }
@@ -1747,7 +1747,7 @@ HiSax_writebuf_skb(int id, int chan, int ack, struct sk_buff *skb)
 
        if (!csta) {
                printk(KERN_ERR
-                       "HiSax: if_sendbuf called with invalid driverId!\n");
+                      "HiSax: if_sendbuf called with invalid driverId!\n");
                return -ENODEV;
        }
        chanp = csta->channel + chan;
@@ -1759,7 +1759,7 @@ HiSax_writebuf_skb(int id, int chan, int ack, struct sk_buff *skb)
        if (len > MAX_DATA_SIZE) {
                link_debug(chanp, 1, "writebuf: packet too large (%d bytes)", len);
                printk(KERN_WARNING "HiSax_writebuf: packet too large (%d bytes) !\n",
-                       len);
+                      len);
                return -EINVAL;
        }
        if (len) {
@@ -1771,7 +1771,7 @@ HiSax_writebuf_skb(int id, int chan, int ack, struct sk_buff *skb)
                                link_debug(chanp, 1, "writebuf: no buffers for %d bytes", len);
                        return 0;
                } else if (chanp->debug & 0x800)
-                       link_debug(chanp, 1, "writebuf %d/%d/%d", len, chanp->bcs->tx_cnt,MAX_DATA_MEM);
+                       link_debug(chanp, 1, "writebuf %d/%d/%d", len, chanp->bcs->tx_cnt, MAX_DATA_MEM);
                nskb = skb_clone(skb, GFP_ATOMIC);
                if (nskb) {
                        nskb->truesize = nskb->len;
index c110f86..b5edc0e 100644 (file)
@@ -3,7 +3,7 @@
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
  *              by Kai Germaschewski <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -61,8 +61,8 @@
  *   24 Dr Neuhaus Niccy PnP/PCI card p0=irq p1=IO0 p2=IO1 (PnP only)
  *   25 Teles S0Box             p0=irq p1=iobase (from isapnp setup)
  *   26 AVM A1 PCMCIA (Fritz)   p0=irq p1=iobase
- *   27 AVM PnP/PCI            p0=irq p1=iobase (PCI no parameter)
- *   28 Sedlbauer Speed Fax+   p0=irq p1=iobase (from isapnp setup)
+ *   27 AVM PnP/PCI            p0=irq p1=iobase (PCI no parameter)
+ *   28 Sedlbauer Speed Fax+   p0=irq p1=iobase (from isapnp setup)
  *   29 Siemens I-Surf          p0=irq p1=iobase p2=memory (from isapnp setup)
  *   30 ACER P10                p0=irq p1=iobase (from isapnp setup)
  *   31 HST Saphir              p0=irq  p1=iobase
@@ -88,200 +88,200 @@ const char *CardType[] = {
        "Teles PCMCIA", "ITK ix1-micro Rev.2", "Elsa PCMCIA",
        "Eicon.Diehl Diva", "ISDNLink", "TeleInt", "Teles 16.3c",
        "Sedlbauer Speed Card", "USR Sportster", "ith mic Linux",
-       "Elsa PCI", "Compaq ISA", "NETjet-S", "Teles PCI", 
+       "Elsa PCI", "Compaq ISA", "NETjet-S", "Teles PCI",
        "Sedlbauer Speed Star (PCMCIA)", "AMD 7930", "NICCY", "S0Box",
        "AVM A1 (PCMCIA)", "AVM Fritz PnP/PCI", "Sedlbauer Speed Fax +",
        "Siemens I-Surf", "Acer P10", "HST Saphir", "Telekom A4T",
        "Scitel Quadro", "Gazel", "HFC 2BDS0 PCI", "Winbond 6692",
        "HFC 2BDS0 SX", "NETspider-U", "HFC-2BDS0-SP PCMCIA",
-       "Hotplug", "Formula-n enter:now PCI a/b", 
+       "Hotplug", "Formula-n enter:now PCI a/b",
 };
 
 #ifdef CONFIG_HISAX_ELSA
 #define DEFAULT_CARD ISDN_CTYPE_ELSA
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_AVM_A1
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_A1
-#define DEFAULT_CFG {10,0x340,0,0}
+#define DEFAULT_CFG {10, 0x340, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_AVM_A1_PCMCIA
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_A1_PCMCIA
-#define DEFAULT_CFG {11,0x170,0,0}
+#define DEFAULT_CFG {11, 0x170, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_FRITZPCI
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_FRITZPCI
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_16_3
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_16_3
-#define DEFAULT_CFG {15,0x180,0,0}
+#define DEFAULT_CFG {15, 0x180, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_S0BOX
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_S0BOX
-#define DEFAULT_CFG {7,0x378,0,0}
+#define DEFAULT_CFG {7, 0x378, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_16_0
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_16_0
-#define DEFAULT_CFG {15,0xd0000,0xd80,0}
+#define DEFAULT_CFG {15, 0xd0000, 0xd80, 0}
 #endif
 
 #ifdef CONFIG_HISAX_TELESPCI
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_TELESPCI
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_IX1MICROR2
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_IX1MICROR2
-#define DEFAULT_CFG {5,0x390,0,0}
+#define DEFAULT_CFG {5, 0x390, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_DIEHLDIVA
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_DIEHLDIVA
-#define DEFAULT_CFG {0,0x0,0,0}
+#define DEFAULT_CFG {0, 0x0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_ASUSCOM
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_ASUSCOM
-#define DEFAULT_CFG {5,0x200,0,0}
+#define DEFAULT_CFG {5, 0x200, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_TELEINT
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_TELEINT
-#define DEFAULT_CFG {5,0x300,0,0}
+#define DEFAULT_CFG {5, 0x300, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_SEDLBAUER
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_SEDLBAUER
-#define DEFAULT_CFG {11,0x270,0,0}
+#define DEFAULT_CFG {11, 0x270, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_SPORTSTER
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_SPORTSTER
-#define DEFAULT_CFG {7,0x268,0,0}
+#define DEFAULT_CFG {7, 0x268, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_MIC
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_MIC
-#define DEFAULT_CFG {12,0x3e0,0,0}
+#define DEFAULT_CFG {12, 0x3e0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_NETJET
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_NETJET_S
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_HFCS
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_TELES3C
-#define DEFAULT_CFG {5,0x500,0,0}
+#define DEFAULT_CFG {5, 0x500, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_HFC_PCI
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_HFC_PCI
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_HFC_SX
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_HFC_SX
-#define DEFAULT_CFG {5,0x2E0,0,0}
+#define DEFAULT_CFG {5, 0x2E0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_NICCY
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_NICCY
-#define DEFAULT_CFG {0,0x0,0,0}
+#define DEFAULT_CFG {0, 0x0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_ISURF
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_ISURF
-#define DEFAULT_CFG {5,0x100,0xc8000,0}
+#define DEFAULT_CFG {5, 0x100, 0xc8000, 0}
 #endif
 
 #ifdef CONFIG_HISAX_HSTSAPHIR
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_HSTSAPHIR
-#define DEFAULT_CFG {5,0x250,0,0}
+#define DEFAULT_CFG {5, 0x250, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_BKM_A4T
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_BKM_A4T
-#define DEFAULT_CFG {0,0x0,0,0}
+#define DEFAULT_CFG {0, 0x0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_SCT_QUADRO
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_SCT_QUADRO
-#define DEFAULT_CFG {1,0x0,0,0}
+#define DEFAULT_CFG {1, 0x0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_GAZEL
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_GAZEL
-#define DEFAULT_CFG {15,0x180,0,0}
+#define DEFAULT_CFG {15, 0x180, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_W6692
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_W6692
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_NETJET_U
 #undef DEFAULT_CARD
 #undef DEFAULT_CFG
 #define DEFAULT_CARD ISDN_CTYPE_NETJET_U
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
 #ifdef CONFIG_HISAX_1TR6
@@ -306,21 +306,21 @@ const char *CardType[] = {
 #endif
 #ifndef DEFAULT_CARD
 #define DEFAULT_CARD 0
-#define DEFAULT_CFG {0,0,0,0}
+#define DEFAULT_CFG {0, 0, 0, 0}
 #endif
 
-#define FIRST_CARD { \
-       DEFAULT_CARD, \
-       DEFAULT_PROTO, \
-       DEFAULT_CFG, \
-       NULL, \
-}
+#define FIRST_CARD {                           \
+               DEFAULT_CARD,                   \
+                       DEFAULT_PROTO,          \
+                       DEFAULT_CFG,            \
+                       NULL,                   \
+                       }
 
 struct IsdnCard cards[HISAX_MAX_CARDS] = {
        FIRST_CARD,
 };
 
-#define HISAX_IDSIZE (HISAX_MAX_CARDS*8)
+#define HISAX_IDSIZE (HISAX_MAX_CARDS * 8)
 static char HiSaxID[HISAX_IDSIZE] = { 0, };
 
 static char *HiSax_id = HiSaxID;
@@ -400,7 +400,7 @@ static void __init HiSaxVersion(void)
 }
 
 #ifndef MODULE
-#define MAX_ARG        (HISAX_MAX_CARDS*5)
+#define MAX_ARG        (HISAX_MAX_CARDS * 5)
 static int __init HiSax_setup(char *line)
 {
        int i, j, argc;
@@ -441,7 +441,7 @@ static int __init HiSax_setup(char *line)
                }
                i++;
        }
-       if (str && *str) {
+       if (str && *str) {
                if (strlen(str) < HISAX_IDSIZE)
                        strcpy(HiSaxID, str);
                else
@@ -813,11 +813,11 @@ static irqreturn_t card_irq(int intno, void *dev_id)
 
 static int init_card(struct IsdnCardState *cs)
 {
-       int     irq_cnt, cnt = 3, ret;
+       int     irq_cnt, cnt = 3, ret;
 
        if (!cs->irq) {
                ret = cs->cardmsg(cs, CARD_INIT, NULL);
-               return(ret);
+               return (ret);
        }
        irq_cnt = cs->irq_cnt = 0;
        printk(KERN_INFO "%s: IRQ %d count %d\n", CardType[cs->typ],
@@ -1142,12 +1142,12 @@ static int hisax_cs_setup(int cardnr, struct IsdnCard *card,
        /* init_card only handles interrupts which are not */
        /* used here for the loadable driver */
        switch (card->typ) {
-               case ISDN_CTYPE_DYNAMIC:
-                       ret = 0;
-                       break;
-               default:
-                       ret = init_card(cs);
-                       break;
+       case ISDN_CTYPE_DYNAMIC:
+               ret = 0;
+               break;
+       default:
+               ret = init_card(cs);
+               break;
        }
        if (ret) {
                closecard(cardnr);
@@ -1203,10 +1203,10 @@ static int __ref checkcard(int cardnr, char *id, int *busy_flag,
        ret = hisax_cs_setup(cardnr, card, cs);
        goto out;
 
- outf_cs:
+outf_cs:
        kfree(cs);
        card->cs = NULL;
- out:
+out:
        return ret;
 }
 
@@ -1256,8 +1256,8 @@ static int __init HiSax_inithardware(int *busy_flag)
                        /* make sure we don't oops the module */
                        if (cards[i].typ > 0 && cards[i].typ <= ISDN_CTYPE_COUNT) {
                                printk(KERN_WARNING
-                                       "HiSax: Card %s not installed !\n",
-                                       CardType[cards[i].typ]);
+                                      "HiSax: Card %s not installed !\n",
+                                      CardType[cards[i].typ]);
                        }
                        HiSax_shiftcards(i);
                        nrcards--;
@@ -1521,15 +1521,15 @@ static int __init HiSax_init(void)
                return -ENODEV;
        return 0;
 
- out_tei:
+out_tei:
        TeiFree();
- out_isdnl2:
+out_isdnl2:
        Isdnl2Free();
- out_isdnl3:
+out_isdnl3:
        Isdnl3Free();
- out_callc:
+out_callc:
        CallcFree();
- out:
+out:
        return retval;
 }
 
@@ -1614,7 +1614,7 @@ int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[],
        sprintf(id, "%s%d", name, i);
        nrcards++;
        retval = checkcard(i, id, NULL, hisax_d_if->owner,
-                               hisax_setup_card_dynamic);
+                          hisax_setup_card_dynamic);
        if (retval == 0) { // yuck
                cards[i].typ = 0;
                nrcards--;
@@ -1637,7 +1637,7 @@ int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[],
        hisax_d_if->ifc.l1l2 = hisax_d_l1l2;
        skb_queue_head_init(&hisax_d_if->erq);
        clear_bit(0, &hisax_d_if->ph_state);
-       
+
        return 0;
 }
 
@@ -1674,7 +1674,7 @@ static void hisax_bh(struct work_struct *work)
                        pr = PH_DEACTIVATE | INDICATION;
                for (st = cs->stlist; st; st = st->next)
                        st->l1.l1l2(st, pr, NULL);
-               
+
        }
 }
 
@@ -1764,7 +1764,7 @@ static void hisax_b_l1l2(struct hisax_if *ifc, int pr, void *arg)
                break;
        case PH_DATA | CONFIRM:
                bcs->tx_cnt -= (long)arg;
-               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag)) {
+               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag)) {
                        u_long  flags;
                        spin_lock_irqsave(&bcs->aclock, flags);
                        bcs->ackcnt += (long)arg;
index 780da9b..62a2945 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -27,7 +27,7 @@
 
 static const char *Diva_revision = "$Revision: 1.33.2.6 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define DIVA_HSCX_DATA         0
@@ -89,7 +89,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -113,15 +113,15 @@ writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size
 static inline u_char
 memreadreg(unsigned long adr, u_char off)
 {
-       return(*((unsigned char *)
-               (((unsigned int *)adr) + off)));
+       return (*((unsigned char *)
+                (((unsigned int *)adr) + off)));
 }
 
 static inline void
 memwritereg(unsigned long adr, u_char off, u_char data)
 {
        register u_char *p;
-       
+
        p = (unsigned char *)(((unsigned int *)adr) + off);
        *p = data;
 }
@@ -131,7 +131,7 @@ memwritereg(unsigned long adr, u_char off, u_char data)
 static u_char
 ReadISAC(struct IsdnCardState *cs, u_char offset)
 {
-       return(readreg(cs->hw.diva.isac_adr, cs->hw.diva.isac, offset));
+       return (readreg(cs->hw.diva.isac_adr, cs->hw.diva.isac, offset));
 }
 
 static void
@@ -155,23 +155,23 @@ WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 static u_char
 ReadISAC_IPAC(struct IsdnCardState *cs, u_char offset)
 {
-       return (readreg(cs->hw.diva.isac_adr, cs->hw.diva.isac, offset+0x80));
+       return (readreg(cs->hw.diva.isac_adr, cs->hw.diva.isac, offset + 0x80));
 }
 
 static void
 WriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
-       writereg(cs->hw.diva.isac_adr, cs->hw.diva.isac, offset|0x80, value);
+       writereg(cs->hw.diva.isac_adr, cs->hw.diva.isac, offset | 0x80, value);
 }
 
 static void
-ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.diva.isac_adr, cs->hw.diva.isac, 0x80, data, size);
 }
 
 static void
-WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.diva.isac_adr, cs->hw.diva.isac, 0x80, data, size);
 }
@@ -179,47 +179,47 @@ WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
 static u_char
 ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset)
 {
-       return(readreg(cs->hw.diva.hscx_adr,
-               cs->hw.diva.hscx, offset + (hscx ? 0x40 : 0)));
+       return (readreg(cs->hw.diva.hscx_adr,
+                      cs->hw.diva.hscx, offset + (hscx ? 0x40 : 0)));
 }
 
 static void
 WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
 {
        writereg(cs->hw.diva.hscx_adr,
-               cs->hw.diva.hscx, offset + (hscx ? 0x40 : 0), value);
+                cs->hw.diva.hscx, offset + (hscx ? 0x40 : 0), value);
 }
 
 static u_char
 MemReadISAC_IPAC(struct IsdnCardState *cs, u_char offset)
 {
-       return (memreadreg(cs->hw.diva.cfg_reg, offset+0x80));
+       return (memreadreg(cs->hw.diva.cfg_reg, offset + 0x80));
 }
 
 static void
 MemWriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
-       memwritereg(cs->hw.diva.cfg_reg, offset|0x80, value);
+       memwritereg(cs->hw.diva.cfg_reg, offset | 0x80, value);
 }
 
 static void
-MemReadISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+MemReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
-       while(size--)
+       while (size--)
                *data++ = memreadreg(cs->hw.diva.cfg_reg, 0x80);
 }
 
 static void
-MemWriteISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+MemWriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
-       while(size--)
+       while (size--)
                memwritereg(cs->hw.diva.cfg_reg, 0x80, *data++);
 }
 
 static u_char
 MemReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset)
 {
-       return(memreadreg(cs->hw.diva.cfg_reg, offset + (hscx ? 0x40 : 0)));
+       return (memreadreg(cs->hw.diva.cfg_reg, offset + (hscx ? 0x40 : 0)));
 }
 
 static void
@@ -242,47 +242,47 @@ MemWriteISAC_IPACX(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-MemReadISACfifo_IPACX(struct IsdnCardState *cs, u_char * data, int size)
+MemReadISACfifo_IPACX(struct IsdnCardState *cs, u_char *data, int size)
 {
-       while(size--)
+       while (size--)
                *data++ = memreadreg(cs->hw.diva.cfg_reg, 0);
 }
 
 static void
-MemWriteISACfifo_IPACX(struct IsdnCardState *cs, u_char * data, int size)
+MemWriteISACfifo_IPACX(struct IsdnCardState *cs, u_char *data, int size)
 {
-       while(size--)
+       while (size--)
                memwritereg(cs->hw.diva.cfg_reg, 0, *data++);
 }
 
 static u_char
 MemReadHSCX_IPACX(struct IsdnCardState *cs, int hscx, u_char offset)
 {
-       return(memreadreg(cs->hw.diva.cfg_reg, offset + 
-                    (hscx ? IPACX_OFF_B2 : IPACX_OFF_B1)));
+       return (memreadreg(cs->hw.diva.cfg_reg, offset +
+                         (hscx ? IPACX_OFF_B2 : IPACX_OFF_B1)));
 }
 
 static void
 MemWriteHSCX_IPACX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
 {
-       memwritereg(cs->hw.diva.cfg_reg, offset + 
-              (hscx ? IPACX_OFF_B2 : IPACX_OFF_B1), value);
+       memwritereg(cs->hw.diva.cfg_reg, offset +
+                   (hscx ? IPACX_OFF_B2 : IPACX_OFF_B1), value);
 }
 
 /*
  * fast interrupt HSCX stuff goes here
  */
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.diva.hscx_adr, \
-               cs->hw.diva.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.diva.hscx_adr, \
-                cs->hw.diva.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.diva.hscx_adr,            \
+                                     cs->hw.diva.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.diva.hscx_adr,    \
+                                             cs->hw.diva.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.diva.hscx_adr, \
-               cs->hw.diva.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.diva.hscx_adr,  \
+                                               cs->hw.diva.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.diva.hscx_adr, \
-               cs->hw.diva.hscx, (nr ? 0x40 : 0), ptr, cnt)
+                                                 cs->hw.diva.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -292,7 +292,7 @@ diva_interrupt(int intno, void *dev_id)
        struct IsdnCardState *cs = dev_id;
        u_char val, sval;
        u_long flags;
-       int cnt=5;
+       int cnt = 5;
 
        spin_lock_irqsave(&cs->lock, flags);
        while (((sval = bytein(cs->hw.diva.ctrl)) & DIVA_IRQ_REQ) && cnt) {
@@ -320,9 +320,9 @@ static irqreturn_t
 diva_irq_ipac_isa(int intno, void *dev_id)
 {
        struct IsdnCardState *cs = dev_id;
-       u_char ista,val;
+       u_char ista, val;
        u_long flags;
-       int icnt=5;
+       int icnt = 5;
 
        spin_lock_irqsave(&cs->lock, flags);
        ista = readreg(cs->hw.diva.isac_adr, cs->hw.diva.isac, IPAC_ISTA);
@@ -436,8 +436,8 @@ Memhscx_fill_fifo(struct BCState *bcs)
 {
        struct IsdnCardState *cs = bcs->cs;
        int more, count, cnt;
-       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags)? 64: 32;
-       u_char *ptr,*p;
+       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags) ? 64 : 32;
+       u_char *ptr, *p;
 
        if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
                debugl1(cs, "hscx_fill_fifo");
@@ -459,9 +459,9 @@ Memhscx_fill_fifo(struct BCState *bcs)
        skb_pull(bcs->tx_skb, count);
        bcs->tx_cnt -= count;
        bcs->hw.hscx.count += count;
-       while(cnt--)
+       while (cnt--)
                memwritereg(cs->hw.diva.cfg_reg, bcs->hw.hscx.hscx ? 0x40 : 0,
-                       *p++);
+                           *p++);
        MemWriteHSCXCMDR(cs, bcs->hw.hscx.hscx, more ? 0x8 : 0xa);
        if (cs->debug & L1_DEB_HSCX_FIFO) {
                char *t = bcs->blog;
@@ -479,7 +479,7 @@ Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
        u_char r;
        struct BCState *bcs = cs->bcs + hscx;
        struct sk_buff *skb;
-       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags)? 64: 32;
+       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags) ? 64 : 32;
        int count;
 
        if (!test_bit(BC_FLG_INIT, &bcs->Flag))
@@ -501,7 +501,7 @@ Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
                        MemWriteHSCXCMDR(cs, hscx, 0x80);
                } else {
                        count = MemReadHSCX(cs, hscx, HSCX_RBCL) & (
-                               test_bit(HW_IPAC, &cs->HW_Flags)? 0x3f: 0x1f);
+                               test_bit(HW_IPAC, &cs->HW_Flags) ? 0x3f : 0x1f);
                        if (count == 0)
                                count = fifo_size;
                        Memhscx_empty_fifo(bcs, count);
@@ -539,8 +539,8 @@ Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
                                Memhscx_fill_fifo(bcs);
                                return;
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                        u_long  flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->hw.hscx.count;
@@ -548,7 +548,7 @@ Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
                                        schedule_event(bcs, B_ACKPENDING);
                                }
                                dev_kfree_skb_irq(bcs->tx_skb);
-                               bcs->hw.hscx.count = 0; 
+                               bcs->hw.hscx.count = 0;
                                bcs->tx_skb = NULL;
                        }
                }
@@ -578,7 +578,7 @@ Memhscx_int_main(struct IsdnCardState *cs, u_char val)
                                Memhscx_fill_fifo(bcs);
                        else {
                                /* Here we lost an TX interrupt, so
-                                  * restart transmitting the whole frame.
+                                * restart transmitting the whole frame.
                                 */
                                if (bcs->tx_skb) {
                                        skb_push(bcs->tx_skb, bcs->hw.hscx.count);
@@ -605,7 +605,7 @@ Memhscx_int_main(struct IsdnCardState *cs, u_char val)
                                Memhscx_fill_fifo(bcs);
                        else {
                                /* Here we lost an TX interrupt, so
-                                  * restart transmitting the whole frame.
+                                * restart transmitting the whole frame.
                                 */
                                if (bcs->tx_skb) {
                                        skb_push(bcs->tx_skb, bcs->hw.hscx.count);
@@ -631,8 +631,8 @@ static irqreturn_t
 diva_irq_ipac_pci(int intno, void *dev_id)
 {
        struct IsdnCardState *cs = dev_id;
-       u_char ista,val;
-       int icnt=5;
+       u_char ista, val;
+       int icnt = 5;
        u_char *cfg;
        u_long flags;
 
@@ -693,11 +693,11 @@ diva_irq_ipacx_pci(int intno, void *dev_id)
        spin_lock_irqsave(&cs->lock, flags);
        cfg = (u_char *) cs->hw.diva.pci_cfg;
        val = *cfg;
-       if (!(val &PITA_INT0_STATUS)) {
+       if (!(val & PITA_INT0_STATUS)) {
                spin_unlock_irqrestore(&cs->lock, flags);
                return IRQ_NONE; // other shared IRQ
        }
-       interrupt_ipacx(cs);      // handler for chip
+       interrupt_ipacx(cs);      // handler for chip
        *cfg = PITA_INT0_STATUS;  // Reset PLX interrupt
        spin_unlock_irqrestore(&cs->lock, flags);
        return IRQ_HANDLED;
@@ -708,11 +708,11 @@ release_io_diva(struct IsdnCardState *cs)
 {
        int bytecnt;
 
-       if ((cs->subtyp == DIVA_IPAC_PCI) || 
-           (cs->subtyp == DIVA_IPACX_PCI)   ) {
+       if ((cs->subtyp == DIVA_IPAC_PCI) ||
+           (cs->subtyp == DIVA_IPACX_PCI)) {
                u_int *cfg = (unsigned int *)cs->hw.diva.pci_cfg;
 
-               *cfg = 0; /* disable INT0/1 */ 
+               *cfg = 0; /* disable INT0/1 */
                *cfg = 2; /* reset pending INT0 */
                if (cs->hw.diva.cfg_reg)
                        iounmap((void *)cs->hw.diva.cfg_reg);
@@ -761,7 +761,7 @@ reset_diva(struct IsdnCardState *cs)
                writereg(cs->hw.diva.isac_adr, cs->hw.diva.isac, IPAC_MASK, 0xc0);
        } else if (cs->subtyp == DIVA_IPAC_PCI) {
                unsigned int *ireg = (unsigned int *)(cs->hw.diva.pci_cfg +
-                                       PITA_MISC_REG);
+                                                     PITA_MISC_REG);
                *ireg = PITA_PARA_SOFTRESET | PITA_PARA_MPX_MODE;
                mdelay(10);
                *ireg = PITA_PARA_MPX_MODE;
@@ -769,7 +769,7 @@ reset_diva(struct IsdnCardState *cs)
                memwritereg(cs->hw.diva.cfg_reg, IPAC_MASK, 0xc0);
        } else if (cs->subtyp == DIVA_IPACX_PCI) {
                unsigned int *ireg = (unsigned int *)(cs->hw.diva.pci_cfg +
-                                       PITA_MISC_REG);
+                                                     PITA_MISC_REG);
                *ireg = PITA_PARA_SOFTRESET | PITA_PARA_MPX_MODE;
                mdelay(10);
                *ireg = PITA_PARA_MPX_MODE | PITA_SER_SOFTRESET;
@@ -802,7 +802,7 @@ diva_led_handler(struct IsdnCardState *cs)
 
        if ((cs->subtyp == DIVA_IPAC_ISA) ||
            (cs->subtyp == DIVA_IPAC_PCI) ||
-           (cs->subtyp == DIVA_IPACX_PCI)   )
+           (cs->subtyp == DIVA_IPACX_PCI))
                return;
        del_timer(&cs->hw.diva.tl);
        if (cs->hw.diva.status & DIVA_ASSIGN)
@@ -822,7 +822,7 @@ diva_led_handler(struct IsdnCardState *cs)
                blink = 500;
        } else
                cs->hw.diva.ctrl_reg &= ~((DIVA_ISA == cs->subtyp) ?
-                       DIVA_ISA_LED_B : DIVA_PCI_LED_B);
+                                         DIVA_ISA_LED_B : DIVA_PCI_LED_B);
 
        byteout(cs->hw.diva.ctrl, cs->hw.diva.ctrl_reg);
        if (blink) {
@@ -839,69 +839,69 @@ Diva_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_diva(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_diva(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_diva(cs);
-                       if (cs->subtyp == DIVA_IPACX_PCI) {
-                               ireg = (unsigned int *)cs->hw.diva.pci_cfg;
-                               *ireg = PITA_INT0_ENABLE;
-                               init_ipacx(cs, 3); // init chip and enable interrupts
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               return (0);
-                       }
-                       if (cs->subtyp == DIVA_IPAC_PCI) {
-                               ireg = (unsigned int *)cs->hw.diva.pci_cfg;
-                               *ireg = PITA_INT0_ENABLE;
-                       }
-                       inithscxisac(cs, 3);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_diva(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_diva(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_diva(cs);
+               if (cs->subtyp == DIVA_IPACX_PCI) {
+                       ireg = (unsigned int *)cs->hw.diva.pci_cfg;
+                       *ireg = PITA_INT0_ENABLE;
+                       init_ipacx(cs, 3); // init chip and enable interrupts
                        spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
-               case (MDL_REMOVE | REQUEST):
-                       cs->hw.diva.status = 0;
-                       break;
-               case (MDL_ASSIGN | REQUEST):
-                       cs->hw.diva.status |= DIVA_ASSIGN;
-                       break;
-               case MDL_INFO_SETUP:
-                       if ((long)arg)
-                               cs->hw.diva.status |=  0x0200;
-                       else
-                               cs->hw.diva.status |=  0x0100;
-                       break;
-               case MDL_INFO_CONN:
-                       if ((long)arg)
-                               cs->hw.diva.status |=  0x2000;
-                       else
-                               cs->hw.diva.status |=  0x1000;
-                       break;
-               case MDL_INFO_REL:
-                       if ((long)arg) {
-                               cs->hw.diva.status &=  ~0x2000;
-                               cs->hw.diva.status &=  ~0x0200;
-                       } else {
-                               cs->hw.diva.status &=  ~0x1000;
-                               cs->hw.diva.status &=  ~0x0100;
-                       }
-                       break;
+                       return (0);
+               }
+               if (cs->subtyp == DIVA_IPAC_PCI) {
+                       ireg = (unsigned int *)cs->hw.diva.pci_cfg;
+                       *ireg = PITA_INT0_ENABLE;
+               }
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
+       case (MDL_REMOVE | REQUEST):
+               cs->hw.diva.status = 0;
+               break;
+       case (MDL_ASSIGN | REQUEST):
+               cs->hw.diva.status |= DIVA_ASSIGN;
+               break;
+       case MDL_INFO_SETUP:
+               if ((long)arg)
+                       cs->hw.diva.status |=  0x0200;
+               else
+                       cs->hw.diva.status |=  0x0100;
+               break;
+       case MDL_INFO_CONN:
+               if ((long)arg)
+                       cs->hw.diva.status |=  0x2000;
+               else
+                       cs->hw.diva.status |=  0x1000;
+               break;
+       case MDL_INFO_REL:
+               if ((long)arg) {
+                       cs->hw.diva.status &=  ~0x2000;
+                       cs->hw.diva.status &=  ~0x0200;
+               } else {
+                       cs->hw.diva.status &=  ~0x1000;
+                       cs->hw.diva.status &=  ~0x0100;
+               }
+               break;
        }
-       if ((cs->subtyp != DIVA_IPAC_ISA) && 
+       if ((cs->subtyp != DIVA_IPAC_ISA) &&
            (cs->subtyp != DIVA_IPAC_PCI) &&
            (cs->subtyp != DIVA_IPACX_PCI)) {
-               spin_lock_irqsave(&cs->lock, flags);
+               spin_lock_irqsave(&cs->lock, flags);
                diva_led_handler(cs);
                spin_unlock_irqrestore(&cs->lock, flags);
        }
-       return(0);
+       return (0);
 }
 
 static int __devinit setup_diva_common(struct IsdnCardState *cs)
@@ -915,21 +915,21 @@ static int __devinit setup_diva_common(struct IsdnCardState *cs)
                bytecnt = 32;
 
        printk(KERN_INFO
-               "Diva: %s card configured at %#lx IRQ %d\n",
-               (cs->subtyp == DIVA_PCI) ? "PCI" :
-               (cs->subtyp == DIVA_ISA) ? "ISA" : 
-               (cs->subtyp == DIVA_IPAC_ISA) ? "IPAC ISA" :
-               (cs->subtyp == DIVA_IPAC_PCI) ? "IPAC PCI" : "IPACX PCI",
-               cs->hw.diva.cfg_reg, cs->irq);
-       if ((cs->subtyp == DIVA_IPAC_PCI)  || 
-           (cs->subtyp == DIVA_IPACX_PCI) || 
-           (cs->subtyp == DIVA_PCI)         )
+              "Diva: %s card configured at %#lx IRQ %d\n",
+              (cs->subtyp == DIVA_PCI) ? "PCI" :
+              (cs->subtyp == DIVA_ISA) ? "ISA" :
+              (cs->subtyp == DIVA_IPAC_ISA) ? "IPAC ISA" :
+              (cs->subtyp == DIVA_IPAC_PCI) ? "IPAC PCI" : "IPACX PCI",
+              cs->hw.diva.cfg_reg, cs->irq);
+       if ((cs->subtyp == DIVA_IPAC_PCI)  ||
+           (cs->subtyp == DIVA_IPACX_PCI) ||
+           (cs->subtyp == DIVA_PCI))
                printk(KERN_INFO "Diva: %s space at %#lx\n",
-                       (cs->subtyp == DIVA_PCI) ? "PCI" :
-                       (cs->subtyp == DIVA_IPAC_PCI) ? "IPAC PCI" : "IPACX PCI",
-                       cs->hw.diva.pci_cfg);
+                      (cs->subtyp == DIVA_PCI) ? "PCI" :
+                      (cs->subtyp == DIVA_IPAC_PCI) ? "IPAC PCI" : "IPACX PCI",
+                      cs->hw.diva.pci_cfg);
        if ((cs->subtyp != DIVA_IPAC_PCI) &&
-           (cs->subtyp != DIVA_IPACX_PCI)   ) {
+           (cs->subtyp != DIVA_IPACX_PCI)) {
                if (!request_region(cs->hw.diva.cfg_reg, bytecnt, "diva isdn")) {
                        printk(KERN_WARNING
                               "HiSax: %s config port %lx-%lx already in use\n",
@@ -973,8 +973,8 @@ static int __devinit setup_diva_common(struct IsdnCardState *cs)
                cs->BC_Write_Reg = &MemWriteHSCX_IPACX;
                cs->BC_Send_Data = NULL; // function located in ipacx module
                cs->irq_func = &diva_irq_ipacx_pci;
-               printk(KERN_INFO "Diva: IPACX Design Id: %x\n", 
-                       MemReadISAC_IPACX(cs, IPACX_ID) &0x3F);
+               printk(KERN_INFO "Diva: IPACX Design Id: %x\n",
+                      MemReadISAC_IPACX(cs, IPACX_ID) & 0x3F);
        } else { /* DIVA 2.0 */
                cs->hw.diva.tl.function = (void *) diva_led_handler;
                cs->hw.diva.tl.data = (long) cs;
@@ -987,7 +987,7 @@ static int __devinit setup_diva_common(struct IsdnCardState *cs)
                ISACVersion(cs, "Diva:");
                if (HscxVersion(cs, "Diva:")) {
                        printk(KERN_WARNING
-                      "Diva: wrong HSCX versions check IO address\n");
+                              "Diva: wrong HSCX versions check IO address\n");
                        release_io_diva(cs);
                        return (0);
                }
@@ -1008,9 +1008,9 @@ static int __devinit setup_diva_isa(struct IsdnCard *card)
        cs->hw.diva.ctrl_reg = 0;
        cs->hw.diva.cfg_reg = card->para[1];
        val = readreg(cs->hw.diva.cfg_reg + DIVA_IPAC_ADR,
-               cs->hw.diva.cfg_reg + DIVA_IPAC_DATA, IPAC_ID);
+                     cs->hw.diva.cfg_reg + DIVA_IPAC_DATA, IPAC_ID);
        printk(KERN_INFO "Diva: IPAC version %x\n", val);
-       if ((val == 1) || (val==2)) {
+       if ((val == 1) || (val == 2)) {
                cs->subtyp = DIVA_IPAC_ISA;
                cs->hw.diva.ctrl = 0;
                cs->hw.diva.isac = card->para[1] + DIVA_IPAC_DATA;
@@ -1043,22 +1043,22 @@ static int __devinit setup_diva_isa(struct IsdnCard *card)
 #ifdef __ISAPNP__
 static struct isapnp_device_id diva_ids[] __devinitdata = {
        { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51),
-         ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), 
+         ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51),
          (unsigned long) "Diva picola" },
        { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51),
-         ISAPNP_VENDOR('E', 'I', 'C'), ISAPNP_FUNCTION(0x51), 
+         ISAPNP_VENDOR('E', 'I', 'C'), ISAPNP_FUNCTION(0x51),
          (unsigned long) "Diva picola" },
        { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x71),
-         ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x71), 
+         ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x71),
          (unsigned long) "Diva 2.0" },
        { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x71),
-         ISAPNP_VENDOR('E', 'I', 'C'), ISAPNP_FUNCTION(0x71), 
+         ISAPNP_VENDOR('E', 'I', 'C'), ISAPNP_FUNCTION(0x71),
          (unsigned long) "Diva 2.0" },
        { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0xA1),
-         ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0xA1), 
+         ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0xA1),
          (unsigned long) "Diva 2.01" },
        { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0xA1),
-         ISAPNP_VENDOR('E', 'I', 'C'), ISAPNP_FUNCTION(0xA1), 
+         ISAPNP_VENDOR('E', 'I', 'C'), ISAPNP_FUNCTION(0xA1),
          (unsigned long) "Diva 2.01" },
        { 0, }
 };
@@ -1074,30 +1074,30 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card)
        if (!isapnp_present())
                return (-1);    /* card not found; continue search */
 
-       while(ipid->card_vendor) {
+       while (ipid->card_vendor) {
                if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                       ipid->card_device, pnp_c))) {
+                                          ipid->card_device, pnp_c))) {
                        pnp_d = NULL;
                        if ((pnp_d = pnp_find_dev(pnp_c,
-                               ipid->vendor, ipid->function, pnp_d))) {
+                                                 ipid->vendor, ipid->function, pnp_d))) {
                                int err;
 
                                printk(KERN_INFO "HiSax: %s detected\n",
-                                       (char *)ipid->driver_data);
+                                      (char *)ipid->driver_data);
                                pnp_disable_dev(pnp_d);
                                err = pnp_activate_dev(pnp_d);
-                               if (err<0) {
+                               if (err < 0) {
                                        printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                               __func__, err);
-                                       return(0);
+                                              __func__, err);
+                                       return (0);
                                }
                                card->para[1] = pnp_port_start(pnp_d, 0);
                                card->para[0] = pnp_irq(pnp_d, 0);
                                if (!card->para[0] || !card->para[1]) {
                                        printk(KERN_ERR "Diva PnP:some resources are missing %ld/%lx\n",
-                                               card->para[0], card->para[1]);
-                                       pnp_disable_dev(pnp_d); 
-                                       return(0);
+                                              card->para[0], card->para[1]);
+                                       pnp_disable_dev(pnp_d);
+                                       return (0);
                                }
                                cs->hw.diva.cfg_reg  = card->para[1];
                                cs->irq = card->para[0];
@@ -1129,12 +1129,12 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card)
                                return (1);             /* card found */
                        } else {
                                printk(KERN_ERR "Diva PnP: PnP error card found, no device\n");
-                               return(0);
+                               return (0);
                        }
                }
                ipid++;
-               pnp_c=NULL;
-       } 
+               pnp_c = NULL;
+       }
 
        return (-1);    /* card not found; continue search */
 }
@@ -1160,23 +1160,23 @@ static int __devinit setup_diva_pci(struct IsdnCard *card)
 
        cs->subtyp = 0;
        if ((dev_diva = hisax_find_pci_device(PCI_VENDOR_ID_EICON,
-               PCI_DEVICE_ID_EICON_DIVA20, dev_diva))) {
+                                             PCI_DEVICE_ID_EICON_DIVA20, dev_diva))) {
                if (pci_enable_device(dev_diva))
-                       return(0);
+                       return (0);
                cs->subtyp = DIVA_PCI;
                cs->irq = dev_diva->irq;
                cs->hw.diva.cfg_reg = pci_resource_start(dev_diva, 2);
        } else if ((dev_diva_u = hisax_find_pci_device(PCI_VENDOR_ID_EICON,
-               PCI_DEVICE_ID_EICON_DIVA20_U, dev_diva_u))) {
+                                                      PCI_DEVICE_ID_EICON_DIVA20_U, dev_diva_u))) {
                if (pci_enable_device(dev_diva_u))
-                       return(0);
+                       return (0);
                cs->subtyp = DIVA_PCI;
                cs->irq = dev_diva_u->irq;
                cs->hw.diva.cfg_reg = pci_resource_start(dev_diva_u, 2);
        } else if ((dev_diva201 = hisax_find_pci_device(PCI_VENDOR_ID_EICON,
-               PCI_DEVICE_ID_EICON_DIVA201, dev_diva201))) {
+                                                       PCI_DEVICE_ID_EICON_DIVA201, dev_diva201))) {
                if (pci_enable_device(dev_diva201))
-                       return(0);
+                       return (0);
                cs->subtyp = DIVA_IPAC_PCI;
                cs->irq = dev_diva201->irq;
                cs->hw.diva.pci_cfg =
@@ -1184,9 +1184,9 @@ static int __devinit setup_diva_pci(struct IsdnCard *card)
                cs->hw.diva.cfg_reg =
                        (ulong) ioremap(pci_resource_start(dev_diva201, 1), 4096);
        } else if ((dev_diva202 = hisax_find_pci_device(PCI_VENDOR_ID_EICON,
-               PCI_DEVICE_ID_EICON_DIVA202, dev_diva202))) {
+                                                       PCI_DEVICE_ID_EICON_DIVA202, dev_diva202))) {
                if (pci_enable_device(dev_diva202))
-                       return(0);
+                       return (0);
                cs->subtyp = DIVA_IPACX_PCI;
                cs->irq = dev_diva202->irq;
                cs->hw.diva.pci_cfg =
@@ -1200,18 +1200,18 @@ static int __devinit setup_diva_pci(struct IsdnCard *card)
        if (!cs->irq) {
                printk(KERN_WARNING "Diva: No IRQ for PCI card found\n");
                iounmap_diva(cs);
-               return(0);
+               return (0);
        }
 
        if (!cs->hw.diva.cfg_reg) {
                printk(KERN_WARNING "Diva: No IO-Adr for PCI card found\n");
                iounmap_diva(cs);
-               return(0);
+               return (0);
        }
        cs->irq_flags |= IRQF_SHARED;
 
        if ((cs->subtyp == DIVA_IPAC_PCI) ||
-           (cs->subtyp == DIVA_IPACX_PCI)   ) {
+           (cs->subtyp == DIVA_IPACX_PCI)) {
                cs->hw.diva.ctrl = 0;
                cs->hw.diva.isac = 0;
                cs->hw.diva.hscx = 0;
@@ -1248,7 +1248,7 @@ setup_diva(struct IsdnCard *card)
        strcpy(tmp, Diva_revision);
        printk(KERN_INFO "HiSax: Eicon.Diehl Diva driver Rev. %s\n", HiSax_getrev(tmp));
        if (cs->typ != ISDN_CTYPE_DIEHLDIVA)
-               return(0);
+               return (0);
        cs->hw.diva.status = 0;
 
        rc = setup_diva_isa(card);
@@ -1276,7 +1276,7 @@ setup_diva(struct IsdnCard *card)
 ready:
        if (!have_card) {
                printk(KERN_WARNING "Diva: No ISA, ISAPNP or PCI card found\n");
-               return(0);
+               return (0);
        }
 
        return setup_diva_common(card->cs);
index 5d9d338..64ba26a 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 static const char *Elsa_revision = "$Revision: 2.32.2.4 $";
 static const char *Elsa_Types[] =
 {"None", "PC", "PCC-8", "PCC-16", "PCF", "PCF-Pro",
- "PCMCIA", "QS 1000", "QS 3000", "Microlink PCI", "QS 3000 PCI", 
+ "PCMCIA", "QS 1000", "QS 3000", "Microlink PCI", "QS 3000 PCI",
  "PCMCIA-IPAC" };
 
 static const char *ITACVer[] =
 {"?0?", "?1?", "?2?", "?3?", "?4?", "V2.2",
  "B1", "A1"};
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define ELSA_ISAC      0
@@ -113,25 +113,25 @@ static const char *ITACVer[] =
 
 #if ARCOFI_USE
 static struct arcofi_msg ARCOFI_XOP_F =
-       {NULL,0,2,{0xa1,0x3f,0,0,0,0,0,0,0,0}}; /* Normal OP */
+{NULL,0,2,{0xa1,0x3f,0,0,0,0,0,0,0,0}}; /* Normal OP */
 static struct arcofi_msg ARCOFI_XOP_1 =
-       {&ARCOFI_XOP_F,0,2,{0xa1,0x31,0,0,0,0,0,0,0,0}}; /* PWR UP */
-static struct arcofi_msg ARCOFI_SOP_F = 
-       {&ARCOFI_XOP_1,0,10,{0xa1,0x1f,0x00,0x50,0x10,0x00,0x00,0x80,0x02,0x12}};
+{&ARCOFI_XOP_F,0,2,{0xa1,0x31,0,0,0,0,0,0,0,0}}; /* PWR UP */
+static struct arcofi_msg ARCOFI_SOP_F =
+{&ARCOFI_XOP_1,0,10,{0xa1,0x1f,0x00,0x50,0x10,0x00,0x00,0x80,0x02,0x12}};
 static struct arcofi_msg ARCOFI_COP_9 =
-       {&ARCOFI_SOP_F,0,10,{0xa1,0x29,0x80,0xcb,0xe9,0x88,0x00,0xc8,0xd8,0x80}}; /* RX */
+{&ARCOFI_SOP_F,0,10,{0xa1,0x29,0x80,0xcb,0xe9,0x88,0x00,0xc8,0xd8,0x80}}; /* RX */
 static struct arcofi_msg ARCOFI_COP_8 =
-       {&ARCOFI_COP_9,0,10,{0xa1,0x28,0x49,0x31,0x8,0x13,0x6e,0x88,0x2a,0x61}}; /* TX */
+{&ARCOFI_COP_9,0,10,{0xa1,0x28,0x49,0x31,0x8,0x13,0x6e,0x88,0x2a,0x61}}; /* TX */
 static struct arcofi_msg ARCOFI_COP_7 =
-       {&ARCOFI_COP_8,0,4,{0xa1,0x27,0x80,0x80,0,0,0,0,0,0}}; /* GZ */
+{&ARCOFI_COP_8,0,4,{0xa1,0x27,0x80,0x80,0,0,0,0,0,0}}; /* GZ */
 static struct arcofi_msg ARCOFI_COP_6 =
-       {&ARCOFI_COP_7,0,6,{0xa1,0x26,0,0,0x82,0x7c,0,0,0,0}}; /* GRL GRH */
+{&ARCOFI_COP_7,0,6,{0xa1,0x26,0,0,0x82,0x7c,0,0,0,0}}; /* GRL GRH */
 static struct arcofi_msg ARCOFI_COP_5 =
-       {&ARCOFI_COP_6,0,4,{0xa1,0x25,0xbb,0x4a,0,0,0,0,0,0}}; /* GTX */
+{&ARCOFI_COP_6,0,4,{0xa1,0x25,0xbb,0x4a,0,0,0,0,0,0}}; /* GTX */
 static struct arcofi_msg ARCOFI_VERSION =
-       {NULL,1,2,{0xa0,0,0,0,0,0,0,0,0,0}};
+{NULL,1,2,{0xa0,0,0,0,0,0,0,0,0,0}};
 static struct arcofi_msg ARCOFI_XOP_0 =
-       {NULL,0,2,{0xa1,0x30,0,0,0,0,0,0,0,0}}; /* PWR Down */
+{NULL,0,2,{0xa1,0x30,0,0,0,0,0,0,0,0}}; /* PWR Down */
 
 static void set_arcofi(struct IsdnCardState *cs, int bc);
 
@@ -149,7 +149,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -164,7 +164,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -185,13 +185,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0, data, size);
 }
@@ -199,23 +199,23 @@ WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
 static u_char
 ReadISAC_IPAC(struct IsdnCardState *cs, u_char offset)
 {
-       return (readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset+0x80));
+       return (readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset + 0x80));
 }
 
 static void
 WriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
-       writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset|0x80, value);
+       writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset | 0x80, value);
 }
 
 static void
-ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0x80, data, size);
 }
 
 static void
-WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0x80, data, size);
 }
@@ -267,16 +267,16 @@ TimerRun(struct IsdnCardState *cs)
  * fast interrupt HSCX stuff goes here
  */
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.elsa.ale, \
-               cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.elsa.ale, \
-               cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.elsa.ale,                 \
+                                     cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.elsa.ale,         \
+                                             cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.elsa.ale, \
-               cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.elsa.ale,       \
+                                               cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.elsa.ale, \
-               cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.elsa.ale,     \
+                                                 cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -286,11 +286,11 @@ elsa_interrupt(int intno, void *dev_id)
        struct IsdnCardState *cs = dev_id;
        u_long flags;
        u_char val;
-       int icnt=5;
+       int icnt = 5;
 
        if ((cs->typ == ISDN_CTYPE_ELSA_PCMCIA) && (*cs->busy_flag == 1)) {
-       /* The card tends to generate interrupts while being removed
-          causing us to just crash the kernel. bad. */
+               /* The card tends to generate interrupts while being removed
+                  causing us to just crash the kernel. bad. */
                printk(KERN_WARNING "Elsa: card not available!\n");
                return IRQ_NONE;
        }
@@ -299,18 +299,18 @@ elsa_interrupt(int intno, void *dev_id)
        if (cs->hw.elsa.MFlag) {
                val = serial_inp(cs, UART_IIR);
                if (!(val & UART_IIR_NO_INT)) {
-                       debugl1(cs,"IIR %02x", val);
+                       debugl1(cs, "IIR %02x", val);
                        rs_interrupt_elsa(cs);
                }
        }
 #endif
        val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40);
-      Start_HSCX:
+Start_HSCX:
        if (val) {
                hscx_int_main(cs, val);
        }
        val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val) {
                isac_interrupt(cs, val);
        }
@@ -364,8 +364,8 @@ elsa_interrupt_ipac(int intno, void *dev_id)
 {
        struct IsdnCardState *cs = dev_id;
        u_long flags;
-       u_char ista,val;
-       int icnt=5;
+       u_char ista, val;
+       int icnt = 5;
 
        spin_lock_irqsave(&cs->lock, flags);
        if (cs->subtyp == ELSA_QS1000PCI || cs->subtyp == ELSA_QS3000PCI) {
@@ -379,7 +379,7 @@ elsa_interrupt_ipac(int intno, void *dev_id)
        if (cs->hw.elsa.MFlag) {
                val = serial_inp(cs, UART_IIR);
                if (!(val & UART_IIR_NO_INT)) {
-                       debugl1(cs,"IIR %02x", val);
+                       debugl1(cs, "IIR %02x", val);
                        rs_interrupt_elsa(cs);
                }
        }
@@ -444,13 +444,13 @@ release_io_elsa(struct IsdnCardState *cs)
                writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff);
                release_region(cs->hw.elsa.cfg, 0x80);
        }
-       if (cs->subtyp == ELSA_PCMCIA_IPAC) {
+       if (cs->subtyp == ELSA_PCMCIA_IPAC) {
                writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff);
-       }
+       }
        if ((cs->subtyp == ELSA_PCFPRO) ||
-               (cs->subtyp == ELSA_QS3000) ||
-               (cs->subtyp == ELSA_PCF) ||
-               (cs->subtyp == ELSA_QS3000PCI)) {
+           (cs->subtyp == ELSA_QS3000) ||
+           (cs->subtyp == ELSA_PCF) ||
+           (cs->subtyp == ELSA_QS3000PCI)) {
                bytecnt = 16;
 #if ARCOFI_USE
                release_modem(cs);
@@ -521,84 +521,84 @@ check_arcofi(struct IsdnCardState *cs)
        u_char *p;
 
        if (!cs->dc.isac.mon_tx)
-               if (!(cs->dc.isac.mon_tx=kmalloc(MAX_MON_FRAME, GFP_ATOMIC))) {
+               if (!(cs->dc.isac.mon_tx = kmalloc(MAX_MON_FRAME, GFP_ATOMIC))) {
                        if (cs->debug & L1_DEB_WARN)
                                debugl1(cs, "ISAC MON TX out of buffers!");
-                       return(0);
+                       return (0);
                }
        cs->dc.isac.arcofi_bc = 0;
        arcofi_fsm(cs, ARCOFI_START, &ARCOFI_VERSION);
        interruptible_sleep_on(&cs->dc.isac.arcofi_wait);
        if (!test_and_clear_bit(FLG_ARCOFI_ERROR, &cs->HW_Flags)) {
-                       debugl1(cs, "Arcofi response received %d bytes", cs->dc.isac.mon_rxp);
-                       p = cs->dc.isac.mon_rx;
-                       t = tmp;
-                       t += sprintf(tmp, "Arcofi data");
-                       QuickHex(t, p, cs->dc.isac.mon_rxp);
-                       debugl1(cs, tmp);
-                       if ((cs->dc.isac.mon_rxp == 2) && (cs->dc.isac.mon_rx[0] == 0xa0)) {
-                               switch(cs->dc.isac.mon_rx[1]) {
-                                       case 0x80:
-                                               debugl1(cs, "Arcofi 2160 detected");
-                                               arcofi_present = 1;
-                                               break;
-                                       case 0x82:
-                                               debugl1(cs, "Arcofi 2165 detected");
-                                               arcofi_present = 2;
-                                               break;
-                                       case 0x84:
-                                               debugl1(cs, "Arcofi 2163 detected");
-                                               arcofi_present = 3;
-                                               break;
-                                       default:
-                                               debugl1(cs, "unknown Arcofi response");
-                                               break;
-                               }
-                       } else
-                               debugl1(cs, "undefined Monitor response");
-                       cs->dc.isac.mon_rxp = 0;
+               debugl1(cs, "Arcofi response received %d bytes", cs->dc.isac.mon_rxp);
+               p = cs->dc.isac.mon_rx;
+               t = tmp;
+               t += sprintf(tmp, "Arcofi data");
+               QuickHex(t, p, cs->dc.isac.mon_rxp);
+               debugl1(cs, tmp);
+               if ((cs->dc.isac.mon_rxp == 2) && (cs->dc.isac.mon_rx[0] == 0xa0)) {
+                       switch (cs->dc.isac.mon_rx[1]) {
+                       case 0x80:
+                               debugl1(cs, "Arcofi 2160 detected");
+                               arcofi_present = 1;
+                               break;
+                       case 0x82:
+                               debugl1(cs, "Arcofi 2165 detected");
+                               arcofi_present = 2;
+                               break;
+                       case 0x84:
+                               debugl1(cs, "Arcofi 2163 detected");
+                               arcofi_present = 3;
+                               break;
+                       default:
+                               debugl1(cs, "unknown Arcofi response");
+                               break;
+                       }
+               } else
+                       debugl1(cs, "undefined Monitor response");
+               cs->dc.isac.mon_rxp = 0;
        } else if (cs->dc.isac.mon_tx) {
                debugl1(cs, "Arcofi not detected");
        }
        if (arcofi_present) {
-               if (cs->subtyp==ELSA_QS1000) {
+               if (cs->subtyp == ELSA_QS1000) {
                        cs->subtyp = ELSA_QS3000;
                        printk(KERN_INFO
-                               "Elsa: %s detected modem at 0x%lx\n",
-                               Elsa_Types[cs->subtyp],
-                               cs->hw.elsa.base+8);
+                              "Elsa: %s detected modem at 0x%lx\n",
+                              Elsa_Types[cs->subtyp],
+                              cs->hw.elsa.base + 8);
                        release_region(cs->hw.elsa.base, 8);
                        if (!request_region(cs->hw.elsa.base, 16, "elsa isdn modem")) {
                                printk(KERN_WARNING
-                                       "HiSax: %s config port %lx-%lx already in use\n",
-                                       Elsa_Types[cs->subtyp],
-                                       cs->hw.elsa.base + 8,
-                                       cs->hw.elsa.base + 16);
+                                      "HiSax: %s config port %lx-%lx already in use\n",
+                                      Elsa_Types[cs->subtyp],
+                                      cs->hw.elsa.base + 8,
+                                      cs->hw.elsa.base + 16);
                        }
-               } else if (cs->subtyp==ELSA_PCC16) {
+               } else if (cs->subtyp == ELSA_PCC16) {
                        cs->subtyp = ELSA_PCF;
                        printk(KERN_INFO
-                               "Elsa: %s detected modem at 0x%lx\n",
-                               Elsa_Types[cs->subtyp],
-                               cs->hw.elsa.base+8);
+                              "Elsa: %s detected modem at 0x%lx\n",
+                              Elsa_Types[cs->subtyp],
+                              cs->hw.elsa.base + 8);
                        release_region(cs->hw.elsa.base, 8);
                        if (!request_region(cs->hw.elsa.base, 16, "elsa isdn modem")) {
                                printk(KERN_WARNING
-                                       "HiSax: %s config port %lx-%lx already in use\n",
-                                       Elsa_Types[cs->subtyp],
-                                       cs->hw.elsa.base + 8,
-                                       cs->hw.elsa.base + 16);
+                                      "HiSax: %s config port %lx-%lx already in use\n",
+                                      Elsa_Types[cs->subtyp],
+                                      cs->hw.elsa.base + 8,
+                                      cs->hw.elsa.base + 16);
                        }
                } else
                        printk(KERN_INFO
-                               "Elsa: %s detected modem at 0x%lx\n",
-                               Elsa_Types[cs->subtyp],
-                               cs->hw.elsa.base+8);
+                              "Elsa: %s detected modem at 0x%lx\n",
+                              Elsa_Types[cs->subtyp],
+                              cs->hw.elsa.base + 8);
                arcofi_fsm(cs, ARCOFI_START, &ARCOFI_XOP_0);
                interruptible_sleep_on(&cs->dc.isac.arcofi_wait);
-               return(1);
+               return (1);
        }
-       return(0);
+       return (0);
 }
 #endif /* ARCOFI_USE */
 
@@ -627,7 +627,7 @@ elsa_led_handler(struct IsdnCardState *cs)
                cs->hw.elsa.ctrl_reg &= ~ELSA_LINE_LED;
 
        if ((cs->subtyp == ELSA_QS1000PCI) ||
-               (cs->subtyp == ELSA_QS3000PCI)) {
+           (cs->subtyp == ELSA_QS3000PCI)) {
                u_char led = 0xff;
                if (cs->hw.elsa.ctrl_reg & ELSA_LINE_LED)
                        led ^= ELSA_IPAC_LINE_LED;
@@ -650,111 +650,111 @@ Elsa_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_elsa(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_elsa(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->debug |= L1_DEB_IPAC;
+               reset_elsa(cs);
+               inithscxisac(cs, 1);
+               if ((cs->subtyp == ELSA_QS1000) ||
+                   (cs->subtyp == ELSA_QS3000))
+               {
+                       byteout(cs->hw.elsa.timer, 0);
+               }
+               if (cs->hw.elsa.trig)
+                       byteout(cs->hw.elsa.trig, 0xff);
+               inithscxisac(cs, 2);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               if ((cs->subtyp == ELSA_PCMCIA) ||
+                   (cs->subtyp == ELSA_PCMCIA_IPAC) ||
+                   (cs->subtyp == ELSA_QS1000PCI)) {
+                       return (0);
+               } else if (cs->subtyp == ELSA_QS3000PCI) {
+                       ret = 0;
+               } else {
                        spin_lock_irqsave(&cs->lock, flags);
-                       reset_elsa(cs);
+                       cs->hw.elsa.counter = 0;
+                       cs->hw.elsa.ctrl_reg |= ELSA_ENA_TIMER_INT;
+                       cs->hw.elsa.status |= ELIRQF_TIMER_AKTIV;
+                       byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
+                       byteout(cs->hw.elsa.timer, 0);
                        spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_elsa(cs);
-                       return(0);
-               case CARD_INIT:
+                       msleep(110);
                        spin_lock_irqsave(&cs->lock, flags);
-                       cs->debug |= L1_DEB_IPAC;
-                       reset_elsa(cs);
-                       inithscxisac(cs, 1);
-                       if ((cs->subtyp == ELSA_QS1000) ||
-                           (cs->subtyp == ELSA_QS3000))
-                       {
-                               byteout(cs->hw.elsa.timer, 0);
-                       }
-                       if (cs->hw.elsa.trig)
-                               byteout(cs->hw.elsa.trig, 0xff);
-                       inithscxisac(cs, 2);
+                       cs->hw.elsa.ctrl_reg &= ~ELSA_ENA_TIMER_INT;
+                       byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
+                       cs->hw.elsa.status &= ~ELIRQF_TIMER_AKTIV;
                        spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       if ((cs->subtyp == ELSA_PCMCIA) ||
-                               (cs->subtyp == ELSA_PCMCIA_IPAC) ||
-                               (cs->subtyp == ELSA_QS1000PCI)) {
-                               return(0);
-                       } else if (cs->subtyp == ELSA_QS3000PCI) {
+                       printk(KERN_INFO "Elsa: %d timer tics in 110 msek\n",
+                              cs->hw.elsa.counter);
+                       if ((cs->hw.elsa.counter > 10) &&
+                           (cs->hw.elsa.counter < 16)) {
+                               printk(KERN_INFO "Elsa: timer and irq OK\n");
                                ret = 0;
                        } else {
-                               spin_lock_irqsave(&cs->lock, flags);
-                               cs->hw.elsa.counter = 0;
-                               cs->hw.elsa.ctrl_reg |= ELSA_ENA_TIMER_INT;
-                               cs->hw.elsa.status |= ELIRQF_TIMER_AKTIV;
-                               byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
-                               byteout(cs->hw.elsa.timer, 0);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               msleep(110);
-                               spin_lock_irqsave(&cs->lock, flags);
-                               cs->hw.elsa.ctrl_reg &= ~ELSA_ENA_TIMER_INT;
-                               byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
-                               cs->hw.elsa.status &= ~ELIRQF_TIMER_AKTIV;
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               printk(KERN_INFO "Elsa: %d timer tics in 110 msek\n",
-                                      cs->hw.elsa.counter);
-                               if ((cs->hw.elsa.counter > 10) &&
-                                       (cs->hw.elsa.counter < 16)) {
-                                       printk(KERN_INFO "Elsa: timer and irq OK\n");
-                                       ret = 0;
-                               } else {
-                                       printk(KERN_WARNING
-                                              "Elsa: timer tic problem (%d/12) maybe an IRQ(%d) conflict\n",
-                                              cs->hw.elsa.counter, cs->irq);
-                                       ret = 1;
-                               }
+                               printk(KERN_WARNING
+                                      "Elsa: timer tic problem (%d/12) maybe an IRQ(%d) conflict\n",
+                                      cs->hw.elsa.counter, cs->irq);
+                               ret = 1;
                        }
+               }
 #if ARCOFI_USE
-                       if (check_arcofi(cs)) {
-                               init_modem(cs);
-                       }
+               if (check_arcofi(cs)) {
+                       init_modem(cs);
+               }
 #endif
-                       elsa_led_handler(cs);
-                       return(ret);
-               case (MDL_REMOVE | REQUEST):
-                       cs->hw.elsa.status &= 0;
-                       break;
-               case (MDL_ASSIGN | REQUEST):
-                       cs->hw.elsa.status |= ELSA_ASSIGN;
-                       break;
-               case MDL_INFO_SETUP:
-                       if ((long) arg)
-                               cs->hw.elsa.status |= 0x0200;
-                       else
-                               cs->hw.elsa.status |= 0x0100;
-                       break;
-               case MDL_INFO_CONN:
-                       if ((long) arg)
-                               cs->hw.elsa.status |= 0x2000;
-                       else
-                               cs->hw.elsa.status |= 0x1000;
-                       break;
-               case MDL_INFO_REL:
-                       if ((long) arg) {
-                               cs->hw.elsa.status &= ~0x2000;
-                               cs->hw.elsa.status &= ~0x0200;
-                       } else {
-                               cs->hw.elsa.status &= ~0x1000;
-                               cs->hw.elsa.status &= ~0x0100;
-                       }
-                       break;
+               elsa_led_handler(cs);
+               return (ret);
+       case (MDL_REMOVE | REQUEST):
+               cs->hw.elsa.status &= 0;
+               break;
+       case (MDL_ASSIGN | REQUEST):
+               cs->hw.elsa.status |= ELSA_ASSIGN;
+               break;
+       case MDL_INFO_SETUP:
+               if ((long) arg)
+                       cs->hw.elsa.status |= 0x0200;
+               else
+                       cs->hw.elsa.status |= 0x0100;
+               break;
+       case MDL_INFO_CONN:
+               if ((long) arg)
+                       cs->hw.elsa.status |= 0x2000;
+               else
+                       cs->hw.elsa.status |= 0x1000;
+               break;
+       case MDL_INFO_REL:
+               if ((long) arg) {
+                       cs->hw.elsa.status &= ~0x2000;
+                       cs->hw.elsa.status &= ~0x0200;
+               } else {
+                       cs->hw.elsa.status &= ~0x1000;
+                       cs->hw.elsa.status &= ~0x0100;
+               }
+               break;
 #if ARCOFI_USE
-               case CARD_AUX_IND:
-                       if (cs->hw.elsa.MFlag) {
-                               int len;
-                               u_char *msg;
-
-                               if (!arg)
-                                       return(0);
-                               msg = arg;
-                               len = *msg;
-                               msg++;
-                               modem_write_cmd(cs, msg, len);
-                       }
-                       break;
+       case CARD_AUX_IND:
+               if (cs->hw.elsa.MFlag) {
+                       int len;
+                       u_char *msg;
+
+                       if (!arg)
+                               return (0);
+                       msg = arg;
+                       len = *msg;
+                       msg++;
+                       modem_write_cmd(cs, msg, len);
+               }
+               break;
 #endif
        }
        if (cs->typ == ISDN_CTYPE_ELSA) {
@@ -765,14 +765,14 @@ Elsa_card_msg(struct IsdnCardState *cs, int mt, void *arg)
                        cs->hw.elsa.status &= ~ELSA_BAD_PWR;
        }
        elsa_led_handler(cs);
-       return(ret);
+       return (ret);
 }
 
 static unsigned char
 probe_elsa_adr(unsigned int adr, int typ)
 {
        int i, in1, in2, p16_1 = 0, p16_2 = 0, p8_1 = 0, p8_2 = 0, pc_1 = 0,
-        pc_2 = 0, pfp_1 = 0, pfp_2 = 0;
+               pc_2 = 0, pfp_1 = 0, pfp_2 = 0;
 
        /* In case of the elsa pcmcia card, this region is in use,
           reserved for us by the card manager. So we do not check it
@@ -822,7 +822,7 @@ probe_elsa(struct IsdnCardState *cs)
 {
        int i;
        unsigned int CARD_portlist[] =
-       {0x160, 0x170, 0x260, 0x360, 0};
+               {0x160, 0x170, 0x260, 0x360, 0};
 
        for (i = 0; CARD_portlist[i]; i++) {
                if ((cs->subtyp = probe_elsa_adr(CARD_portlist[i], cs->typ)))
@@ -867,15 +867,15 @@ setup_elsa_isa(struct IsdnCard *card)
        val = bytein(cs->hw.elsa.cfg);
        if (cs->subtyp == ELSA_PC) {
                const u_char CARD_IrqTab[8] =
-               {7, 3, 5, 9, 0, 0, 0, 0};
+                       {7, 3, 5, 9, 0, 0, 0, 0};
                cs->irq = CARD_IrqTab[(val & ELSA_IRQ_IDX_PC) >> 2];
        } else if (cs->subtyp == ELSA_PCC8) {
                const u_char CARD_IrqTab[8] =
-               {7, 3, 5, 9, 0, 0, 0, 0};
+                       {7, 3, 5, 9, 0, 0, 0, 0};
                cs->irq = CARD_IrqTab[(val & ELSA_IRQ_IDX_PCC8) >> 4];
        } else {
                const u_char CARD_IrqTab[8] =
-               {15, 10, 15, 3, 11, 5, 11, 9};
+                       {15, 10, 15, 3, 11, 5, 11, 9};
                cs->irq = CARD_IrqTab[(val & ELSA_IRQ_IDX) >> 3];
        }
        val = bytein(cs->hw.elsa.ale) & ELSA_HW_RELEASE;
@@ -894,7 +894,7 @@ setup_elsa_isa(struct IsdnCard *card)
        val = bytein(cs->hw.elsa.ale) & ELSA_S0_POWER_BAD;
        if (val) {
                printk(KERN_WARNING
-                  "Elsa: Microlink S0 bus power bad\n");
+                      "Elsa: Microlink S0 bus power bad\n");
                cs->hw.elsa.status |= ELSA_BAD_PWR;
        }
 
@@ -904,10 +904,10 @@ setup_elsa_isa(struct IsdnCard *card)
 #ifdef __ISAPNP__
 static struct isapnp_device_id elsa_ids[] __devinitdata = {
        { ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133),
-         ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), 
+         ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133),
          (unsigned long) "Elsa QS1000" },
        { ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0134),
-         ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0134), 
+         ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0134),
          (unsigned long) "Elsa QS3000" },
        { 0, }
 };
@@ -924,31 +924,31 @@ setup_elsa_isapnp(struct IsdnCard *card)
 #ifdef __ISAPNP__
        if (!card->para[1] && isapnp_present()) {
                struct pnp_dev *pnp_d;
-               while(ipid->card_vendor) {
+               while (ipid->card_vendor) {
                        if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                               ipid->card_device, pnp_c))) {
+                                                  ipid->card_device, pnp_c))) {
                                pnp_d = NULL;
                                if ((pnp_d = pnp_find_dev(pnp_c,
-                                       ipid->vendor, ipid->function, pnp_d))) {
+                                                         ipid->vendor, ipid->function, pnp_d))) {
                                        int err;
 
                                        printk(KERN_INFO "HiSax: %s detected\n",
-                                               (char *)ipid->driver_data);
+                                              (char *)ipid->driver_data);
                                        pnp_disable_dev(pnp_d);
                                        err = pnp_activate_dev(pnp_d);
-                                       if (err<0) {
+                                       if (err < 0) {
                                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                                       __func__, err);
-                                               return(0);
+                                                      __func__, err);
+                                               return (0);
                                        }
                                        card->para[1] = pnp_port_start(pnp_d, 0);
                                        card->para[0] = pnp_irq(pnp_d, 0);
 
                                        if (!card->para[0] || !card->para[1]) {
                                                printk(KERN_ERR "Elsa PnP:some resources are missing %ld/%lx\n",
-                                                       card->para[0], card->para[1]);
+                                                      card->para[0], card->para[1]);
                                                pnp_disable_dev(pnp_d);
-                                               return(0);
+                                               return (0);
                                        }
                                        if (ipid->function == ISAPNP_FUNCTION(0x133))
                                                cs->subtyp = ELSA_QS1000;
@@ -957,20 +957,20 @@ setup_elsa_isapnp(struct IsdnCard *card)
                                        break;
                                } else {
                                        printk(KERN_ERR "Elsa PnP: PnP error card found, no device\n");
-                                       return(0);
+                                       return (0);
                                }
                        }
                        ipid++;
-                       pnp_c=NULL;
-               } 
+                       pnp_c = NULL;
+               }
                if (!ipid->card_vendor) {
                        printk(KERN_INFO "Elsa PnP: no ISAPnP card found\n");
-                       return(0);
+                       return (0);
                }
        }
 #endif /* __ISAPNP__ */
 
-       if (card->para[1] && card->para[0]) { 
+       if (card->para[1] && card->para[0]) {
                cs->hw.elsa.base = card->para[1];
                cs->irq = card->para[0];
                if (!cs->subtyp)
@@ -1027,8 +1027,8 @@ setup_elsa_pcmcia(struct IsdnCard *card)
 }
 
 #ifdef CONFIG_PCI
-static         struct pci_dev *dev_qs1000 __devinitdata = NULL;
-static         struct pci_dev *dev_qs3000 __devinitdata = NULL;
+static struct pci_dev *dev_qs1000 __devinitdata = NULL;
+static struct pci_dev *dev_qs3000 __devinitdata = NULL;
 
 static int __devinit
 setup_elsa_pci(struct IsdnCard *card)
@@ -1037,33 +1037,33 @@ setup_elsa_pci(struct IsdnCard *card)
 
        cs->subtyp = 0;
        if ((dev_qs1000 = hisax_find_pci_device(PCI_VENDOR_ID_ELSA,
-               PCI_DEVICE_ID_ELSA_MICROLINK, dev_qs1000))) {
+                                               PCI_DEVICE_ID_ELSA_MICROLINK, dev_qs1000))) {
                if (pci_enable_device(dev_qs1000))
-                       return(0);
+                       return (0);
                cs->subtyp = ELSA_QS1000PCI;
                cs->irq = dev_qs1000->irq;
                cs->hw.elsa.cfg = pci_resource_start(dev_qs1000, 1);
                cs->hw.elsa.base = pci_resource_start(dev_qs1000, 3);
        } else if ((dev_qs3000 = hisax_find_pci_device(PCI_VENDOR_ID_ELSA,
-               PCI_DEVICE_ID_ELSA_QS3000, dev_qs3000))) {
+                                                      PCI_DEVICE_ID_ELSA_QS3000, dev_qs3000))) {
                if (pci_enable_device(dev_qs3000))
-                       return(0);
+                       return (0);
                cs->subtyp = ELSA_QS3000PCI;
                cs->irq = dev_qs3000->irq;
                cs->hw.elsa.cfg = pci_resource_start(dev_qs3000, 1);
                cs->hw.elsa.base = pci_resource_start(dev_qs3000, 3);
        } else {
                printk(KERN_WARNING "Elsa: No PCI card found\n");
-               return(0);
+               return (0);
        }
        if (!cs->irq) {
                printk(KERN_WARNING "Elsa: No IRQ for PCI card found\n");
-               return(0);
+               return (0);
        }
 
        if (!(cs->hw.elsa.base && cs->hw.elsa.cfg)) {
                printk(KERN_WARNING "Elsa: No IO-Adr for PCI card found\n");
-               return(0);
+               return (0);
        }
        if ((cs->hw.elsa.cfg & 0xff) || (cs->hw.elsa.base & 0xf)) {
                printk(KERN_WARNING "Elsa: You may have a wrong PCI bios\n");
@@ -1071,8 +1071,8 @@ setup_elsa_pci(struct IsdnCard *card)
                printk(KERN_WARNING "Elsa: Documentation/isdn/README.HiSax\n");
        }
        cs->hw.elsa.ale  = cs->hw.elsa.base;
-       cs->hw.elsa.isac = cs->hw.elsa.base +1;
-       cs->hw.elsa.hscx = cs->hw.elsa.base +1; 
+       cs->hw.elsa.isac = cs->hw.elsa.base + 1;
+       cs->hw.elsa.hscx = cs->hw.elsa.base + 1;
        test_and_set_bit(HW_IPAC, &cs->HW_Flags);
        cs->hw.elsa.timer = 0;
        cs->hw.elsa.trig  = 0;
@@ -1104,27 +1104,27 @@ setup_elsa_common(struct IsdnCard *card)
        int bytecnt;
 
        switch (cs->subtyp) {
-               case ELSA_PC:
-               case ELSA_PCC8:
-               case ELSA_PCC16:
-               case ELSA_QS1000:
-               case ELSA_PCMCIA:
-               case ELSA_PCMCIA_IPAC:
-                       bytecnt = 8;
-                       break;
-               case ELSA_PCFPRO:
-               case ELSA_PCF:
-               case ELSA_QS3000:
-               case ELSA_QS3000PCI:
-                       bytecnt = 16;
-                       break;
-               case ELSA_QS1000PCI:
-                       bytecnt = 2;
-                       break;
-               default:
-                       printk(KERN_WARNING
-                              "Unknown ELSA subtype %d\n", cs->subtyp);
-                       return (0);
+       case ELSA_PC:
+       case ELSA_PCC8:
+       case ELSA_PCC16:
+       case ELSA_QS1000:
+       case ELSA_PCMCIA:
+       case ELSA_PCMCIA_IPAC:
+               bytecnt = 8;
+               break;
+       case ELSA_PCFPRO:
+       case ELSA_PCF:
+       case ELSA_QS3000:
+       case ELSA_QS3000PCI:
+               bytecnt = 16;
+               break;
+       case ELSA_QS1000PCI:
+               bytecnt = 2;
+               break;
+       default:
+               printk(KERN_WARNING
+                      "Unknown ELSA subtype %d\n", cs->subtyp);
+               return (0);
        }
        /* In case of the elsa pcmcia card, this region is in use,
           reserved for us by the card manager. So we do not check it
@@ -1140,8 +1140,8 @@ setup_elsa_common(struct IsdnCard *card)
                if (!request_region(cs->hw.elsa.cfg, 0x80, "elsa isdn pci")) {
                        printk(KERN_WARNING
                               "HiSax: ELSA pci port %x-%x already in use\n",
-                               cs->hw.elsa.cfg,
-                               cs->hw.elsa.cfg + 0x80);
+                              cs->hw.elsa.cfg,
+                              cs->hw.elsa.cfg + 0x80);
                        release_region(cs->hw.elsa.base, bytecnt);
                        return (0);
                }
@@ -1166,7 +1166,7 @@ setup_elsa_common(struct IsdnCard *card)
                                return (0);
                        }
                }
-               HZDELAY((HZ/100) + 1);  /* wait >=10 ms */
+               HZDELAY((HZ / 100) + 1);        /* wait >=10 ms */
                if (TimerRun(cs)) {
                        printk(KERN_WARNING "Elsa: timer do not run down\n");
                        release_io_elsa(cs);
@@ -1195,7 +1195,7 @@ setup_elsa_common(struct IsdnCard *card)
                ISACVersion(cs, "Elsa:");
                if (HscxVersion(cs, "Elsa:")) {
                        printk(KERN_WARNING
-                               "Elsa: wrong HSCX versions check IO address\n");
+                              "Elsa: wrong HSCX versions check IO address\n");
                        release_io_elsa(cs);
                        return (0);
                }
@@ -1244,7 +1244,7 @@ setup_elsa(struct IsdnCard *card)
                if (!rc)
                        return (0);
 
-       } else 
+       } else
                return (0);
 
        return setup_elsa_common(card);
index f0b6c0e..fe254e7 100644 (file)
@@ -1,39 +1,39 @@
 /*======================================================================
 
-    An elsa_cs PCMCIA client driver
+  An elsa_cs PCMCIA client driver
 
-    This driver is for the Elsa PCM ISDN Cards, i.e. the MicroLink
+  This driver is for the Elsa PCM ISDN Cards, i.e. the MicroLink
 
 
-    The contents of this file are subject to the Mozilla Public
-    License Version 1.1 (the "License"); you may not use this file
-    except in compliance with the License. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
+  The contents of this file are subject to the Mozilla Public
+  License Version 1.1 (the "License"); you may not use this file
+  except in compliance with the License. You may obtain a copy of
+  the License at http://www.mozilla.org/MPL/
 
-    Software distributed under the License is distributed on an "AS
-    IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-    implied. See the License for the specific language governing
-    rights and limitations under the License.
+  Software distributed under the License is distributed on an "AS
+  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+  implied. See the License for the specific language governing
+  rights and limitations under the License.
 
-    The initial developer of the original code is David A. Hinds
-    <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
-    are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
+  The initial developer of the original code is David A. Hinds
+  <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
+  are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
 
-    Modifications from dummy_cs.c are Copyright (C) 1999-2001 Klaus
-    Lichtenwalder <Lichtenwalder@ACM.org>. All Rights Reserved.
+  Modifications from dummy_cs.c are Copyright (C) 1999-2001 Klaus
+  Lichtenwalder <Lichtenwalder@ACM.org>. All Rights Reserved.
 
-    Alternatively, the contents of this file may be used under the
-    terms of the GNU General Public License version 2 (the "GPL"), in
-    which case the provisions of the GPL are applicable instead of the
-    above.  If you wish to allow the use of your version of this file
-    only under the terms of the GPL and not to allow others to use
-    your version of this file under the MPL, indicate your decision
-    by deleting the provisions above and replace them with the notice
-    and other provisions required by the GPL.  If you do not delete
-    the provisions above, a recipient may use your version of this
-    file under either the MPL or the GPL.
+  Alternatively, the contents of this file may be used under the
+  terms of the GNU General Public License version 2 (the "GPL"), in
+  which case the provisions of the GPL are applicable instead of the
+  above.  If you wish to allow the use of your version of this file
+  only under the terms of the GPL and not to allow others to use
+  your version of this file under the MPL, indicate your decision
+  by deleting the provisions above and replace them with the notice
+  and other provisions required by the GPL.  If you do not delete
+  the provisions above, a recipient may use your version of this
+  file under either the MPL or the GPL.
 
-======================================================================*/
+  ======================================================================*/
 
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -63,32 +63,32 @@ MODULE_LICENSE("Dual MPL/GPL");
 static int protocol = 2;        /* EURO-ISDN Default */
 module_param(protocol, int, 0);
 
-static int elsa_cs_config(struct pcmcia_device *link) __devinit ;
+static int elsa_cs_config(struct pcmcia_device *link) __devinit;
 static void elsa_cs_release(struct pcmcia_device *link);
 static void elsa_cs_detach(struct pcmcia_device *p_dev) __devexit;
 
 typedef struct local_info_t {
        struct pcmcia_device    *p_dev;
-    int                 busy;
-    int                        cardnr;
+       int                 busy;
+       int                     cardnr;
 } local_info_t;
 
 static int __devinit elsa_cs_probe(struct pcmcia_device *link)
 {
-    local_info_t *local;
+       local_info_t *local;
 
-    dev_dbg(&link->dev, "elsa_cs_attach()\n");
+       dev_dbg(&link->dev, "elsa_cs_attach()\n");
 
-    /* Allocate space for private device-specific data */
-    local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
-    if (!local) return -ENOMEM;
+       /* Allocate space for private device-specific data */
+       local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
+       if (!local) return -ENOMEM;
 
-    local->p_dev = link;
-    link->priv = local;
+       local->p_dev = link;
+       link->priv = local;
 
-    local->cardnr = -1;
+       local->cardnr = -1;
 
-    return elsa_cs_config(link);
+       return elsa_cs_config(link);
 } /* elsa_cs_attach */
 
 static void __devexit elsa_cs_detach(struct pcmcia_device *link)
@@ -129,64 +129,64 @@ static int elsa_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
 
 static int __devinit elsa_cs_config(struct pcmcia_device *link)
 {
-    int i;
-    IsdnCard_t icard;
-
-    dev_dbg(&link->dev, "elsa_config(0x%p)\n", link);
-
-    link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
-
-    i = pcmcia_loop_config(link, elsa_cs_configcheck, NULL);
-    if (i != 0)
-       goto failed;
-
-    if (!link->irq)
-       goto failed;
-
-    i = pcmcia_enable_device(link);
-    if (i != 0)
-       goto failed;
-
-    icard.para[0] = link->irq;
-    icard.para[1] = link->resource[0]->start;
-    icard.protocol = protocol;
-    icard.typ = ISDN_CTYPE_ELSA_PCMCIA;
-    
-    i = hisax_init_pcmcia(link, &(((local_info_t*)link->priv)->busy), &icard);
-    if (i < 0) {
-       printk(KERN_ERR "elsa_cs: failed to initialize Elsa "
-               "PCMCIA %d with %pR\n", i, link->resource[0]);
-       elsa_cs_release(link);
-    } else
-       ((local_info_t*)link->priv)->cardnr = i;
-
-    return 0;
+       int i;
+       IsdnCard_t icard;
+
+       dev_dbg(&link->dev, "elsa_config(0x%p)\n", link);
+
+       link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
+
+       i = pcmcia_loop_config(link, elsa_cs_configcheck, NULL);
+       if (i != 0)
+               goto failed;
+
+       if (!link->irq)
+               goto failed;
+
+       i = pcmcia_enable_device(link);
+       if (i != 0)
+               goto failed;
+
+       icard.para[0] = link->irq;
+       icard.para[1] = link->resource[0]->start;
+       icard.protocol = protocol;
+       icard.typ = ISDN_CTYPE_ELSA_PCMCIA;
+
+       i = hisax_init_pcmcia(link, &(((local_info_t *)link->priv)->busy), &icard);
+       if (i < 0) {
+               printk(KERN_ERR "elsa_cs: failed to initialize Elsa "
+                      "PCMCIA %d with %pR\n", i, link->resource[0]);
+               elsa_cs_release(link);
+       } else
+               ((local_info_t *)link->priv)->cardnr = i;
+
+       return 0;
 failed:
-    elsa_cs_release(link);
-    return -ENODEV;
+       elsa_cs_release(link);
+       return -ENODEV;
 } /* elsa_cs_config */
 
 static void elsa_cs_release(struct pcmcia_device *link)
 {
-    local_info_t *local = link->priv;
+       local_info_t *local = link->priv;
 
-    dev_dbg(&link->dev, "elsa_cs_release(0x%p)\n", link);
+       dev_dbg(&link->dev, "elsa_cs_release(0x%p)\n", link);
 
-    if (local) {
-       if (local->cardnr >= 0) {
-           /* no unregister function with hisax */
-           HiSax_closecard(local->cardnr);
+       if (local) {
+               if (local->cardnr >= 0) {
+                       /* no unregister function with hisax */
+                       HiSax_closecard(local->cardnr);
+               }
        }
-    }
 
-    pcmcia_disable_device(link);
+       pcmcia_disable_device(link);
 } /* elsa_cs_release */
 
 static int elsa_suspend(struct pcmcia_device *link)
 {
        local_info_t *dev = link->priv;
 
-        dev->busy = 1;
+       dev->busy = 1;
 
        return 0;
 }
@@ -195,7 +195,7 @@ static int elsa_resume(struct pcmcia_device *link)
 {
        local_info_t *dev = link->priv;
 
-        dev->busy = 0;
+       dev->busy = 0;
 
        return 0;
 }
index 3fa9f61..d4c98d3 100644 (file)
@@ -12,9 +12,9 @@
 #include <linux/slab.h>
 
 #define MAX_MODEM_BUF  256
-#define WAKEUP_CHARS   (MAX_MODEM_BUF/2)
+#define WAKEUP_CHARS   (MAX_MODEM_BUF / 2)
 #define RS_ISR_PASS_LIMIT 256
-#define BASE_BAUD ( 1843200 / 16 )
+#define BASE_BAUD (1843200 / 16)
 
 //#define SERIAL_DEBUG_OPEN 1
 //#define SERIAL_DEBUG_INTR 1
@@ -27,8 +27,8 @@
 
 #ifdef SERIAL_DEBUG_REG
 static u_char deb[32];
-const char *ModemIn[] = {"RBR","IER","IIR","LCR","MCR","LSR","MSR","SCR"};
-const char *ModemOut[] = {"THR","IER","FCR","LCR","MCR","LSR","MSR","SCR"};
+const char *ModemIn[] = {"RBR", "IER", "IIR", "LCR", "MCR", "LSR", "MSR", "SCR"};
+const char *ModemOut[] = {"THR", "IER", "FCR", "LCR", "MCR", "LSR", "MSR", "SCR"};
 #endif
 
 static char *MInit_1 = "AT&F&C1E0&D2\r\0";
@@ -49,8 +49,8 @@ static inline unsigned int serial_in(struct IsdnCardState *cs, int offset)
 {
 #ifdef SERIAL_DEBUG_REG
        u_int val = inb(cs->hw.elsa.base + 8 + offset);
-       debugl1(cs,"in   %s %02x",ModemIn[offset], val);
-       return(val);
+       debugl1(cs, "in   %s %02x", ModemIn[offset], val);
+       return (val);
 #else
        return inb(cs->hw.elsa.base + 8 + offset);
 #endif
@@ -61,12 +61,12 @@ static inline unsigned int serial_inp(struct IsdnCardState *cs, int offset)
 #ifdef SERIAL_DEBUG_REG
 #ifdef ELSA_SERIAL_NOPAUSE_IO
        u_int val = inb(cs->hw.elsa.base + 8 + offset);
-       debugl1(cs,"inp  %s %02x",ModemIn[offset], val);
+       debugl1(cs, "inp  %s %02x", ModemIn[offset], val);
 #else
        u_int val = inb_p(cs->hw.elsa.base + 8 + offset);
-       debugl1(cs,"inP  %s %02x",ModemIn[offset], val);
+       debugl1(cs, "inP  %s %02x", ModemIn[offset], val);
 #endif
-       return(val);
+       return (val);
 #else
 #ifdef ELSA_SERIAL_NOPAUSE_IO
        return inb(cs->hw.elsa.base + 8 + offset);
@@ -79,7 +79,7 @@ static inline unsigned int serial_inp(struct IsdnCardState *cs, int offset)
 static inline void serial_out(struct IsdnCardState *cs, int offset, int value)
 {
 #ifdef SERIAL_DEBUG_REG
-       debugl1(cs,"out  %s %02x",ModemOut[offset], value);
+       debugl1(cs, "out  %s %02x", ModemOut[offset], value);
 #endif
        outb(value, cs->hw.elsa.base + 8 + offset);
 }
@@ -89,15 +89,15 @@ static inline void serial_outp(struct IsdnCardState *cs, int offset,
 {
 #ifdef SERIAL_DEBUG_REG
 #ifdef ELSA_SERIAL_NOPAUSE_IO
-       debugl1(cs,"outp %s %02x",ModemOut[offset], value);
+       debugl1(cs, "outp %s %02x", ModemOut[offset], value);
 #else
-       debugl1(cs,"outP %s %02x",ModemOut[offset], value);
+       debugl1(cs, "outP %s %02x", ModemOut[offset], value);
 #endif
 #endif
 #ifdef ELSA_SERIAL_NOPAUSE_IO
        outb(value, cs->hw.elsa.base + 8 + offset);
 #else
-       outb_p(value, cs->hw.elsa.base + 8 + offset);
+       outb_p(value, cs->hw.elsa.base + 8 + offset);
 #endif
 }
 
@@ -131,7 +131,7 @@ static void change_speed(struct IsdnCardState *cs, int baud)
        cs->hw.elsa.IER |= UART_IER_MSI;
        serial_outp(cs, UART_IER, cs->hw.elsa.IER);
 
-       debugl1(cs,"modem quot=0x%x", quot);
+       debugl1(cs, "modem quot=0x%x", quot);
        serial_outp(cs, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */
        serial_outp(cs, UART_DLL, quot & 0xff);         /* LS of divisor */
        serial_outp(cs, UART_DLM, quot >> 8);           /* MS of divisor */
@@ -141,7 +141,7 @@ static void change_speed(struct IsdnCardState *cs, int baud)
 
 static int mstartup(struct IsdnCardState *cs)
 {
-       int     retval=0;
+       int retval = 0;
 
        /*
         * Clear the FIFO buffers and disable them
@@ -158,7 +158,7 @@ static int mstartup(struct IsdnCardState *cs)
                retval = -ENODEV;
                goto errout;
        }
-       
+
        /*
         * Clear the interrupt registers.
         */
@@ -167,20 +167,20 @@ static int mstartup(struct IsdnCardState *cs)
        (void) serial_inp(cs, UART_MSR);
 
        /*
-        * Now, initialize the UART 
+        * Now, initialize the UART
         */
        serial_outp(cs, UART_LCR, UART_LCR_WLEN8);      /* reset DLAB */
 
        cs->hw.elsa.MCR = 0;
        cs->hw.elsa.MCR = UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2;
        serial_outp(cs, UART_MCR, cs->hw.elsa.MCR);
-       
+
        /*
         * Finally, enable interrupts
         */
        cs->hw.elsa.IER = UART_IER_MSI | UART_IER_RLSI | UART_IER_RDI;
        serial_outp(cs, UART_IER, cs->hw.elsa.IER);     /* enable interrupts */
-       
+
        /*
         * And clear the interrupt registers again for luck.
         */
@@ -190,7 +190,7 @@ static int mstartup(struct IsdnCardState *cs)
        (void)serial_inp(cs, UART_MSR);
 
        cs->hw.elsa.transcnt = cs->hw.elsa.transp = 0;
-       cs->hw.elsa.rcvcnt = cs->hw.elsa.rcvp =0;
+       cs->hw.elsa.rcvcnt = cs->hw.elsa.rcvp = 0;
 
        /*
         * and set the speed of the serial port
@@ -211,7 +211,7 @@ static void mshutdown(struct IsdnCardState *cs)
 #ifdef SERIAL_DEBUG_OPEN
        printk(KERN_DEBUG"Shutting down serial ....");
 #endif
-       
+
        /*
         * clear delta_msr_wait queue to avoid mem leaks: we may free the irq
         * here so the queue might never be waken up
@@ -220,17 +220,17 @@ static void mshutdown(struct IsdnCardState *cs)
        cs->hw.elsa.IER = 0;
        serial_outp(cs, UART_IER, 0x00);        /* disable all intrs */
        cs->hw.elsa.MCR &= ~UART_MCR_OUT2;
-       
+
        /* disable break condition */
        serial_outp(cs, UART_LCR, serial_inp(cs, UART_LCR) & ~UART_LCR_SBC);
-       
-       cs->hw.elsa.MCR &= ~(UART_MCR_DTR|UART_MCR_RTS);
+
+       cs->hw.elsa.MCR &= ~(UART_MCR_DTR | UART_MCR_RTS);
        serial_outp(cs, UART_MCR, cs->hw.elsa.MCR);
 
-       /* disable FIFO's */    
+       /* disable FIFO's */
        serial_outp(cs, UART_FCR, (UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT));
        serial_inp(cs, UART_RX);    /* read data port to reset things */
-       
+
 #ifdef SERIAL_DEBUG_OPEN
        printk(" done\n");
 #endif
@@ -238,10 +238,10 @@ static void mshutdown(struct IsdnCardState *cs)
 
 static inline int
 write_modem(struct BCState *bcs) {
-       int ret=0;
+       int ret = 0;
        struct IsdnCardState *cs = bcs->cs;
        int count, len, fp;
-       
+
        if (!bcs->tx_skb)
                return 0;
        if (bcs->tx_skb->len <= 0)
@@ -250,7 +250,7 @@ write_modem(struct BCState *bcs) {
        if (len > MAX_MODEM_BUF - cs->hw.elsa.transcnt)
                len = MAX_MODEM_BUF - cs->hw.elsa.transcnt;
        fp = cs->hw.elsa.transcnt + cs->hw.elsa.transp;
-       fp &= (MAX_MODEM_BUF -1);
+       fp &= (MAX_MODEM_BUF - 1);
        count = len;
        if (count > MAX_MODEM_BUF - fp) {
                count = MAX_MODEM_BUF - fp;
@@ -267,25 +267,25 @@ write_modem(struct BCState *bcs) {
        skb_pull(bcs->tx_skb, count);
        cs->hw.elsa.transcnt += count;
        ret += count;
-       
-       if (cs->hw.elsa.transcnt && 
+
+       if (cs->hw.elsa.transcnt &&
            !(cs->hw.elsa.IER & UART_IER_THRI)) {
-                       cs->hw.elsa.IER |= UART_IER_THRI;
+               cs->hw.elsa.IER |= UART_IER_THRI;
                serial_outp(cs, UART_IER, cs->hw.elsa.IER);
        }
-       return(ret);
+       return (ret);
 }
 
 static inline void
 modem_fill(struct BCState *bcs) {
-               
+
        if (bcs->tx_skb) {
                if (bcs->tx_skb->len) {
                        write_modem(bcs);
                        return;
                } else {
-                       if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                               (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                       if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                           (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                u_long  flags;
                                spin_lock_irqsave(&bcs->aclock, flags);
                                bcs->ackcnt += bcs->hw.hscx.count;
@@ -322,7 +322,7 @@ static inline void receive_chars(struct IsdnCardState *cs,
 #endif
                if (*status & (UART_LSR_BI | UART_LSR_PE |
                               UART_LSR_FE | UART_LSR_OE)) {
-                                       
+
 #ifdef SERIAL_DEBUG_INTR
                        printk("handling exept....");
 #endif
@@ -333,9 +333,9 @@ static inline void receive_chars(struct IsdnCardState *cs,
                if (!(skb = dev_alloc_skb(cs->hw.elsa.rcvcnt)))
                        printk(KERN_WARNING "ElsaSER: receive out of memory\n");
                else {
-                       memcpy(skb_put(skb, cs->hw.elsa.rcvcnt), cs->hw.elsa.rcvbuf, 
-                               cs->hw.elsa.rcvcnt);
-                       skb_queue_tail(& cs->hw.elsa.bcs->rqueue, skb);
+                       memcpy(skb_put(skb, cs->hw.elsa.rcvcnt), cs->hw.elsa.rcvbuf,
+                              cs->hw.elsa.rcvcnt);
+                       skb_queue_tail(&cs->hw.elsa.bcs->rqueue, skb);
                }
                schedule_event(cs->hw.elsa.bcs, B_RCVBUFREADY);
        } else {
@@ -352,10 +352,10 @@ static inline void receive_chars(struct IsdnCardState *cs,
 static inline void transmit_chars(struct IsdnCardState *cs, int *intr_done)
 {
        int count;
-       
-       debugl1(cs, "transmit_chars: p(%x) cnt(%x)", cs->hw.elsa.transp, 
+
+       debugl1(cs, "transmit_chars: p(%x) cnt(%x)", cs->hw.elsa.transp,
                cs->hw.elsa.transcnt);
-       
+
        if (cs->hw.elsa.transcnt <= 0) {
                cs->hw.elsa.IER &= ~UART_IER_THRI;
                serial_out(cs, UART_IER, cs->hw.elsa.IER);
@@ -365,11 +365,11 @@ static inline void transmit_chars(struct IsdnCardState *cs, int *intr_done)
        do {
                serial_outp(cs, UART_TX, cs->hw.elsa.transbuf[cs->hw.elsa.transp++]);
                if (cs->hw.elsa.transp >= MAX_MODEM_BUF)
-                       cs->hw.elsa.transp=0;
+                       cs->hw.elsa.transp = 0;
                if (--cs->hw.elsa.transcnt <= 0)
                        break;
        } while (--count > 0);
-       if ((cs->hw.elsa.transcnt < WAKEUP_CHARS) && (cs->hw.elsa.MFlag==2))
+       if ((cs->hw.elsa.transcnt < WAKEUP_CHARS) && (cs->hw.elsa.MFlag == 2))
                modem_fill(cs->hw.elsa.bcs);
 
 #ifdef SERIAL_DEBUG_INTR
@@ -388,14 +388,14 @@ static void rs_interrupt_elsa(struct IsdnCardState *cs)
 {
        int status, iir, msr;
        int pass_counter = 0;
-       
+
 #ifdef SERIAL_DEBUG_INTR
        printk(KERN_DEBUG "rs_interrupt_single(%d)...", cs->irq);
 #endif
 
        do {
                status = serial_inp(cs, UART_LSR);
-               debugl1(cs,"rs LSR %02x", status);
+               debugl1(cs, "rs LSR %02x", status);
 #ifdef SERIAL_DEBUG_INTR
                printk("status = %x...", status);
 #endif
@@ -408,10 +408,10 @@ static void rs_interrupt_elsa(struct IsdnCardState *cs)
                        break;
                }
                iir = serial_inp(cs, UART_IIR);
-               debugl1(cs,"rs IIR %02x", iir);
+               debugl1(cs, "rs IIR %02x", iir);
                if ((iir & 0xf) == 0) {
                        msr = serial_inp(cs, UART_MSR);
-                       debugl1(cs,"rs MSR %02x", msr);
+                       debugl1(cs, "rs MSR %02x", msr);
                }
        } while (!(iir & UART_IIR_NO_INT));
 #ifdef SERIAL_DEBUG_INTR
@@ -447,14 +447,14 @@ static void
 modem_write_cmd(struct IsdnCardState *cs, u_char *buf, int len) {
        int count, fp;
        u_char *msg = buf;
-       
+
        if (!len)
                return;
        if (len > (MAX_MODEM_BUF - cs->hw.elsa.transcnt)) {
                return;
        }
        fp = cs->hw.elsa.transcnt + cs->hw.elsa.transp;
-       fp &= (MAX_MODEM_BUF -1);
+       fp &= (MAX_MODEM_BUF - 1);
        count = len;
        if (count > MAX_MODEM_BUF - fp) {
                count = MAX_MODEM_BUF - fp;
@@ -466,7 +466,7 @@ modem_write_cmd(struct IsdnCardState *cs, u_char *buf, int len) {
        }
        memcpy(cs->hw.elsa.transbuf + fp, msg, count);
        cs->hw.elsa.transcnt += count;
-       if (cs->hw.elsa.transcnt && 
+       if (cs->hw.elsa.transcnt &&
            !(cs->hw.elsa.IER & UART_IER_THRI)) {
                cs->hw.elsa.IER |= UART_IER_THRI;
                serial_outp(cs, UART_IER, cs->hw.elsa.IER);
@@ -480,43 +480,43 @@ modem_set_init(struct IsdnCardState *cs) {
 #define RCV_DELAY 20
        modem_write_cmd(cs, MInit_1, strlen(MInit_1));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
        modem_write_cmd(cs, MInit_2, strlen(MInit_2));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
        modem_write_cmd(cs, MInit_3, strlen(MInit_3));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
        modem_write_cmd(cs, MInit_4, strlen(MInit_4));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
        modem_write_cmd(cs, MInit_5, strlen(MInit_5));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
        modem_write_cmd(cs, MInit_6, strlen(MInit_6));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
        modem_write_cmd(cs, MInit_7, strlen(MInit_7));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
@@ -529,7 +529,7 @@ modem_set_dial(struct IsdnCardState *cs, int outgoing) {
 
        modem_write_cmd(cs, MInit_speed28800, strlen(MInit_speed28800));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
@@ -538,7 +538,7 @@ modem_set_dial(struct IsdnCardState *cs, int outgoing) {
        else
                modem_write_cmd(cs, MInit_dialin, strlen(MInit_dialin));
        timeout = 1000;
-       while(timeout-- && cs->hw.elsa.transcnt)
+       while (timeout-- && cs->hw.elsa.transcnt)
                udelay(1000);
        debugl1(cs, "msi tout=%d", timeout);
        mdelay(RCV_DELAY);
@@ -568,15 +568,15 @@ modem_l2l1(struct PStack *st, int pr, void *arg)
                set_arcofi(bcs->cs, st->l1.bc);
                mstartup(bcs->cs);
                modem_set_dial(bcs->cs, test_bit(FLG_ORIG, &st->l2.flag));
-               bcs->cs->hw.elsa.MFlag=2;
+               bcs->cs->hw.elsa.MFlag = 2;
        } else if (pr == (PH_DEACTIVATE | REQUEST)) {
                test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
                bcs->cs->dc.isac.arcofi_bc = st->l1.bc;
                arcofi_fsm(bcs->cs, ARCOFI_START, &ARCOFI_XOP_0);
                interruptible_sleep_on(&bcs->cs->dc.isac.arcofi_wait);
-               bcs->cs->hw.elsa.MFlag=1;
+               bcs->cs->hw.elsa.MFlag = 1;
        } else {
-               printk(KERN_WARNING"ElsaSer: unknown pr %x\n", pr);
+               printk(KERN_WARNING "ElsaSer: unknown pr %x\n", pr);
        }
 }
 
@@ -586,27 +586,27 @@ setstack_elsa(struct PStack *st, struct BCState *bcs)
 
        bcs->channel = st->l1.bc;
        switch (st->l1.mode) {
-               case L1_MODE_HDLC:
-               case L1_MODE_TRANS:
-                       if (open_hscxstate(st->l1.hardware, bcs))
-                               return (-1);
-                       st->l2.l2l1 = hscx_l2l1;
-                       break;
-               case L1_MODE_MODEM:
-                       bcs->mode = L1_MODE_MODEM;
-                       if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) {
-                               bcs->hw.hscx.rcvbuf = bcs->cs->hw.elsa.rcvbuf;
-                               skb_queue_head_init(&bcs->rqueue);
-                               skb_queue_head_init(&bcs->squeue);
-                       }
-                       bcs->tx_skb = NULL;
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       bcs->event = 0;
-                       bcs->hw.hscx.rcvidx = 0;
-                       bcs->tx_cnt = 0;
-                       bcs->cs->hw.elsa.bcs = bcs;
-                       st->l2.l2l1 = modem_l2l1;
-                       break;
+       case L1_MODE_HDLC:
+       case L1_MODE_TRANS:
+               if (open_hscxstate(st->l1.hardware, bcs))
+                       return (-1);
+               st->l2.l2l1 = hscx_l2l1;
+               break;
+       case L1_MODE_MODEM:
+               bcs->mode = L1_MODE_MODEM;
+               if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) {
+                       bcs->hw.hscx.rcvbuf = bcs->cs->hw.elsa.rcvbuf;
+                       skb_queue_head_init(&bcs->rqueue);
+                       skb_queue_head_init(&bcs->squeue);
+               }
+               bcs->tx_skb = NULL;
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               bcs->event = 0;
+               bcs->hw.hscx.rcvidx = 0;
+               bcs->tx_cnt = 0;
+               bcs->cs->hw.elsa.bcs = bcs;
+               st->l2.l2l1 = modem_l2l1;
+               break;
        }
        st->l1.bcs = bcs;
        setstack_manager(st);
@@ -623,15 +623,15 @@ init_modem(struct IsdnCardState *cs) {
        cs->bcs[0].BC_Close = close_elsastate;
        cs->bcs[1].BC_Close = close_elsastate;
        if (!(cs->hw.elsa.rcvbuf = kmalloc(MAX_MODEM_BUF,
-               GFP_ATOMIC))) {
+                                          GFP_ATOMIC))) {
                printk(KERN_WARNING
-                       "Elsa: No modem mem hw.elsa.rcvbuf\n");
+                      "Elsa: No modem mem hw.elsa.rcvbuf\n");
                return;
        }
        if (!(cs->hw.elsa.transbuf = kmalloc(MAX_MODEM_BUF,
-               GFP_ATOMIC))) {
+                                            GFP_ATOMIC))) {
                printk(KERN_WARNING
-                       "Elsa: No modem mem hw.elsa.transbuf\n");
+                      "Elsa: No modem mem hw.elsa.transbuf\n");
                kfree(cs->hw.elsa.rcvbuf);
                cs->hw.elsa.rcvbuf = NULL;
                return;
index f55d29d..b1e38b5 100644 (file)
@@ -97,13 +97,13 @@ static unsigned char
 ReadByteAmd7930(struct IsdnCardState *cs, unsigned char offset)
 {
        /* direct register */
-       if(offset < 8)
-               return (inb(cs->hw.njet.isac + 4*offset));
+       if (offset < 8)
+               return (inb(cs->hw.njet.isac + 4 * offset));
 
        /* indirect register */
        else {
-               outb(offset, cs->hw.njet.isac + 4*AMD_CR);
-               return(inb(cs->hw.njet.isac + 4*AMD_DR));
+               outb(offset, cs->hw.njet.isac + 4 * AMD_CR);
+               return (inb(cs->hw.njet.isac + 4 * AMD_DR));
        }
 }
 
@@ -112,29 +112,29 @@ static void
 WriteByteAmd7930(struct IsdnCardState *cs, unsigned char offset, unsigned char value)
 {
        /* direct register */
-       if(offset < 8)
-               outb(value, cs->hw.njet.isac + 4*offset);
+       if (offset < 8)
+               outb(value, cs->hw.njet.isac + 4 * offset);
 
        /* indirect register */
        else {
-               outb(offset, cs->hw.njet.isac + 4*AMD_CR);
-               outb(value, cs->hw.njet.isac + 4*AMD_DR);
+               outb(offset, cs->hw.njet.isac + 4 * AMD_CR);
+               outb(value, cs->hw.njet.isac + 4 * AMD_DR);
        }
 }
 
 
 static void
 enpci_setIrqMask(struct IsdnCardState *cs, unsigned char val) {
-        if (!val)
-               outb(0x00, cs->hw.njet.base+NETJET_IRQMASK1);
-        else
-               outb(TJ_AMD_IRQ, cs->hw.njet.base+NETJET_IRQMASK1);
+       if (!val)
+               outb(0x00, cs->hw.njet.base + NETJET_IRQMASK1);
+       else
+               outb(TJ_AMD_IRQ, cs->hw.njet.base + NETJET_IRQMASK1);
 }
 
 
 static unsigned char dummyrr(struct IsdnCardState *cs, int chan, unsigned char off)
 {
-        return(5);
+       return (5);
 }
 
 static void dummywr(struct IsdnCardState *cs, int chan, unsigned char off, unsigned char value)
@@ -173,70 +173,70 @@ static int
 enpci_card_msg(struct IsdnCardState *cs, int mt, void *arg)
 {
        u_long flags;
-        unsigned char *chan;
+       unsigned char *chan;
 
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "enter:now PCI: card_msg: 0x%04X", mt);
 
-        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_enpci(cs);
-                        Amd7930_init(cs);
-                        spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case CARD_RELEASE:
-                       release_io_netjet(cs);
-                       break;
-               case CARD_INIT:
-                       reset_enpci(cs);
-                       inittiger(cs);
-                       /* irq must be on here */
-                       Amd7930_init(cs);
-                       break;
-               case CARD_TEST:
-                       break;
-                case MDL_ASSIGN:
-                        /* TEI assigned, LED1 on */
-                        cs->hw.njet.auxd = TJ_AMD_IRQ << 1;
-                        outb(cs->hw.njet.auxd, cs->hw.njet.base + NETJET_AUXDATA);
-                        break;
-                case MDL_REMOVE:
-                        /* TEI removed, LEDs off */
-                       cs->hw.njet.auxd = 0;
-                        outb(0x00, cs->hw.njet.base + NETJET_AUXDATA);
-                        break;
-                case MDL_BC_ASSIGN:
-                        /* activate B-channel */
-                        chan = (unsigned char *)arg;
-
-                        if (cs->debug & L1_DEB_ISAC)
-                               debugl1(cs, "enter:now PCI: assign phys. BC %d in AMD LMR1", *chan);
-
-                        cs->dc.amd7930.ph_command(cs, (cs->dc.amd7930.lmr1 | (*chan + 1)), "MDL_BC_ASSIGN");
-                        /* at least one b-channel in use, LED 2 on */
-                        cs->hw.njet.auxd |= TJ_AMD_IRQ << 2;
-                        outb(cs->hw.njet.auxd, cs->hw.njet.base + NETJET_AUXDATA);
-                        break;
-                case MDL_BC_RELEASE:
-                        /* deactivate B-channel */
-                        chan = (unsigned char *)arg;
-
-                        if (cs->debug & L1_DEB_ISAC)
-                               debugl1(cs, "enter:now PCI: release phys. BC %d in Amd LMR1", *chan);
-
-                        cs->dc.amd7930.ph_command(cs, (cs->dc.amd7930.lmr1 & ~(*chan + 1)), "MDL_BC_RELEASE");
-                        /* no b-channel active -> LED2 off */
-                        if (!(cs->dc.amd7930.lmr1 & 3)) {
-                                cs->hw.njet.auxd &= ~(TJ_AMD_IRQ << 2);
-                                outb(cs->hw.njet.auxd, cs->hw.njet.base + NETJET_AUXDATA);
-                        }
-                        break;
-                default:
-                        break;
+       switch (mt) {
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_enpci(cs);
+               Amd7930_init(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case CARD_RELEASE:
+               release_io_netjet(cs);
+               break;
+       case CARD_INIT:
+               reset_enpci(cs);
+               inittiger(cs);
+               /* irq must be on here */
+               Amd7930_init(cs);
+               break;
+       case CARD_TEST:
+               break;
+       case MDL_ASSIGN:
+               /* TEI assigned, LED1 on */
+               cs->hw.njet.auxd = TJ_AMD_IRQ << 1;
+               outb(cs->hw.njet.auxd, cs->hw.njet.base + NETJET_AUXDATA);
+               break;
+       case MDL_REMOVE:
+               /* TEI removed, LEDs off */
+               cs->hw.njet.auxd = 0;
+               outb(0x00, cs->hw.njet.base + NETJET_AUXDATA);
+               break;
+       case MDL_BC_ASSIGN:
+               /* activate B-channel */
+               chan = (unsigned char *)arg;
+
+               if (cs->debug & L1_DEB_ISAC)
+                       debugl1(cs, "enter:now PCI: assign phys. BC %d in AMD LMR1", *chan);
+
+               cs->dc.amd7930.ph_command(cs, (cs->dc.amd7930.lmr1 | (*chan + 1)), "MDL_BC_ASSIGN");
+               /* at least one b-channel in use, LED 2 on */
+               cs->hw.njet.auxd |= TJ_AMD_IRQ << 2;
+               outb(cs->hw.njet.auxd, cs->hw.njet.base + NETJET_AUXDATA);
+               break;
+       case MDL_BC_RELEASE:
+               /* deactivate B-channel */
+               chan = (unsigned char *)arg;
+
+               if (cs->debug & L1_DEB_ISAC)
+                       debugl1(cs, "enter:now PCI: release phys. BC %d in Amd LMR1", *chan);
+
+               cs->dc.amd7930.ph_command(cs, (cs->dc.amd7930.lmr1 & ~(*chan + 1)), "MDL_BC_RELEASE");
+               /* no b-channel active -> LED2 off */
+               if (!(cs->dc.amd7930.lmr1 & 3)) {
+                       cs->hw.njet.auxd &= ~(TJ_AMD_IRQ << 2);
+                       outb(cs->hw.njet.auxd, cs->hw.njet.base + NETJET_AUXDATA);
+               }
+               break;
+       default:
+               break;
 
        }
-       return(0);
+       return (0);
 }
 
 static irqreturn_t
@@ -249,32 +249,32 @@ enpci_interrupt(int intno, void *dev_id)
        spin_lock_irqsave(&cs->lock, flags);
        s1val = inb(cs->hw.njet.base + NETJET_IRQSTAT1);
 
-        /* AMD threw an interrupt */
+       /* AMD threw an interrupt */
        if (!(s1val & TJ_AMD_IRQ)) {
-                /* read and clear interrupt-register */
+               /* read and clear interrupt-register */
                ir = ReadByteAmd7930(cs, 0x00);
                Amd7930_interrupt(cs, ir);
                s1val = 1;
        } else
                s1val = 0;
        s0val = inb(cs->hw.njet.base + NETJET_IRQSTAT0);
-       if ((s0val | s1val)==0) { // shared IRQ
+       if ((s0val | s1val) == 0) { // shared IRQ
                spin_unlock_irqrestore(&cs->lock, flags);
                return IRQ_NONE;
-       } 
+       }
        if (s0val)
                outb(s0val, cs->hw.njet.base + NETJET_IRQSTAT0);
 
        /* DMA-Interrupt: B-channel-stuff */
        /* set bits in sval to indicate which page is free */
        if (inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR) <
-               inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ))
+           inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ))
                /* the 2nd write page is free */
                s0val = 0x08;
        else    /* the 1st write page is free */
                s0val = 0x04;
        if (inl(cs->hw.njet.base + NETJET_DMA_READ_ADR) <
-               inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ))
+           inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ))
                /* the 2nd read page is free */
                s0val = s0val | 0x02;
        else    /* the 1st read page is free */
@@ -287,11 +287,11 @@ enpci_interrupt(int intno, void *dev_id)
                }
                cs->hw.njet.irqstat0 = s0val;
                if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) !=
-                       (cs->hw.njet.last_is0 & NETJET_IRQM0_READ))
+                   (cs->hw.njet.last_is0 & NETJET_IRQM0_READ))
                        /* we have a read dma int */
                        read_tiger(cs);
                if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE) !=
-                       (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE))
+                   (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE))
                        /* we have a write dma int */
                        write_tiger(cs);
                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
@@ -304,26 +304,26 @@ static int __devinit en_pci_probe(struct pci_dev *dev_netjet,
                                  struct IsdnCardState *cs)
 {
        if (pci_enable_device(dev_netjet))
-               return(0);
+               return (0);
        cs->irq = dev_netjet->irq;
        if (!cs->irq) {
                printk(KERN_WARNING "enter:now PCI: No IRQ for PCI card found\n");
-               return(0);
+               return (0);
        }
        cs->hw.njet.base = pci_resource_start(dev_netjet, 0);
        if (!cs->hw.njet.base) {
                printk(KERN_WARNING "enter:now PCI: No IO-Adr for PCI card found\n");
-               return(0);
+               return (0);
        }
        /* checks Sub-Vendor ID because system crashes with Traverse-Card */
        if ((dev_netjet->subsystem_vendor != 0x55) ||
            (dev_netjet->subsystem_device != 0x02)) {
                printk(KERN_WARNING "enter:now: You tried to load this driver with an incompatible TigerJet-card\n");
                printk(KERN_WARNING "Use type=20 for Traverse NetJet PCI Card.\n");
-               return(0);
+               return (0);
        }
 
-       return(1);
+       return (1);
 }
 
 static void __devinit en_cs_init(struct IsdnCard *card,
@@ -356,8 +356,8 @@ static int __devinit en_cs_init_rest(struct IsdnCard *card,
        const int bytecnt = 256;
 
        printk(KERN_INFO
-               "enter:now PCI: PCI card configured at 0x%lx IRQ %d\n",
-               cs->hw.njet.base, cs->irq);
+              "enter:now PCI: PCI card configured at 0x%lx IRQ %d\n",
+              cs->hw.njet.base, cs->irq);
        if (!request_region(cs->hw.njet.base, bytecnt, "Fn_ISDN")) {
                printk(KERN_WARNING
                       "HiSax: enter:now config port %lx-%lx already in use\n",
@@ -368,13 +368,13 @@ static int __devinit en_cs_init_rest(struct IsdnCard *card,
 
        setup_Amd7930(cs);
        cs->hw.njet.last_is0 = 0;
-        /* macro rByteAMD */
-        cs->readisac = &ReadByteAmd7930;
-        /* macro wByteAMD */
-        cs->writeisac = &WriteByteAmd7930;
-        cs->dc.amd7930.setIrqMask = &enpci_setIrqMask;
+       /* macro rByteAMD */
+       cs->readisac = &ReadByteAmd7930;
+       /* macro wByteAMD */
+       cs->writeisac = &WriteByteAmd7930;
+       cs->dc.amd7930.setIrqMask = &enpci_setIrqMask;
 
-        cs->BC_Read_Reg  = &dummyrr;
+       cs->BC_Read_Reg  = &dummyrr;
        cs->BC_Write_Reg = &dummywr;
        cs->BC_Send_Data = &netjet_fill_dma;
        cs->cardmsg = &enpci_card_msg;
@@ -398,27 +398,27 @@ setup_enternow_pci(struct IsdnCard *card)
 #error "not running on big endian machines now"
 #endif
 
-        strcpy(tmp, enternow_pci_rev);
+       strcpy(tmp, enternow_pci_rev);
        printk(KERN_INFO "HiSax: Formula-n Europe AG enter:now ISDN PCI driver Rev. %s\n", HiSax_getrev(tmp));
        if (cs->typ != ISDN_CTYPE_ENTERNOW)
-               return(0);
+               return (0);
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
 
-       for ( ;; )
+       for (;;)
        {
                if ((dev_netjet = hisax_find_pci_device(PCI_VENDOR_ID_TIGERJET,
-                       PCI_DEVICE_ID_TIGERJET_300,  dev_netjet))) {
+                                                       PCI_DEVICE_ID_TIGERJET_300,  dev_netjet))) {
                        ret = en_pci_probe(dev_netjet, cs);
                        if (!ret)
-                               return(0);
+                               return (0);
                } else {
-                        printk(KERN_WARNING "enter:now PCI: No PCI card found\n");
-                       return(0);
+                       printk(KERN_WARNING "enter:now PCI: No PCI card found\n");
+                       return (0);
                }
 
                en_cs_init(card, cs);
                break;
        }
 
-        return en_cs_init_rest(card, cs);
+       return en_cs_init_rest(card, cs);
 }
index 732ea63..1bb2910 100644 (file)
@@ -5,7 +5,7 @@
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
  *              by Kai Germaschewski <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -27,18 +27,18 @@ FsmNew(struct Fsm *fsm, struct FsmNode *fnlist, int fncount)
        int i;
 
        fsm->jumpmatrix = (FSMFNPTR *)
-               kzalloc(sizeof (FSMFNPTR) * fsm->state_count * fsm->event_count, GFP_KERNEL);
+               kzalloc(sizeof(FSMFNPTR) * fsm->state_count * fsm->event_count, GFP_KERNEL);
        if (!fsm->jumpmatrix)
                return -ENOMEM;
 
-       for (i = 0; i < fncount; i++) 
-               if ((fnlist[i].state>=fsm->state_count) || (fnlist[i].event>=fsm->event_count)) {
+       for (i = 0; i < fncount; i++)
+               if ((fnlist[i].state >= fsm->state_count) || (fnlist[i].event >= fsm->event_count)) {
                        printk(KERN_ERR "FsmNew Error line %d st(%ld/%ld) ev(%ld/%ld)\n",
-                               i,(long)fnlist[i].state,(long)fsm->state_count,
-                               (long)fnlist[i].event,(long)fsm->event_count);
-               } else          
+                              i, (long)fnlist[i].state, (long)fsm->state_count,
+                              (long)fnlist[i].event, (long)fsm->event_count);
+               } else
                        fsm->jumpmatrix[fsm->state_count * fnlist[i].event +
-                               fnlist[i].state] = (FSMFNPTR) fnlist[i].routine;
+                                       fnlist[i].state] = (FSMFNPTR)fnlist[i].routine;
        return 0;
 }
 
@@ -53,24 +53,24 @@ FsmEvent(struct FsmInst *fi, int event, void *arg)
 {
        FSMFNPTR r;
 
-       if ((fi->state>=fi->fsm->state_count) || (event >= fi->fsm->event_count)) {
+       if ((fi->state >= fi->fsm->state_count) || (event >= fi->fsm->event_count)) {
                printk(KERN_ERR "FsmEvent Error st(%ld/%ld) ev(%d/%ld)\n",
-                       (long)fi->state,(long)fi->fsm->state_count,event,(long)fi->fsm->event_count);
-               return(1);
+                      (long)fi->state, (long)fi->fsm->state_count, event, (long)fi->fsm->event_count);
+               return (1);
        }
        r = fi->fsm->jumpmatrix[fi->fsm->state_count * event + fi->state];
        if (r) {
                if (fi->debug)
                        fi->printdebug(fi, "State %s Event %s",
-                               fi->fsm->strState[fi->state],
-                               fi->fsm->strEvent[event]);
+                                      fi->fsm->strState[fi->state],
+                                      fi->fsm->strEvent[event]);
                r(fi, event, arg);
                return (0);
        } else {
                if (fi->debug)
                        fi->printdebug(fi, "State %s Event %s no routine",
-                               fi->fsm->strState[fi->state],
-                               fi->fsm->strEvent[event]);
+                                      fi->fsm->strState[fi->state],
+                                      fi->fsm->strEvent[event]);
                return (!0);
        }
 }
@@ -81,7 +81,7 @@ FsmChangeState(struct FsmInst *fi, int newstate)
        fi->state = newstate;
        if (fi->debug)
                fi->printdebug(fi, "ChangeState %s",
-                       fi->fsm->strState[newstate]);
+                              fi->fsm->strState[newstate]);
 }
 
 static void
@@ -125,7 +125,7 @@ FsmAddTimer(struct FsmTimer *ft,
 #if FSM_TIMER_DEBUG
        if (ft->fi->debug)
                ft->fi->printdebug(ft->fi, "FsmAddTimer %lx %d %d",
-                       (long) ft, millisec, where);
+                                  (long) ft, millisec, where);
 #endif
 
        if (timer_pending(&ft->tl)) {
@@ -143,13 +143,13 @@ FsmAddTimer(struct FsmTimer *ft,
 
 void
 FsmRestartTimer(struct FsmTimer *ft,
-           int millisec, int event, void *arg, int where)
+               int millisec, int event, void *arg, int where)
 {
 
 #if FSM_TIMER_DEBUG
        if (ft->fi->debug)
                ft->fi->printdebug(ft->fi, "FsmRestartTimer %lx %d %d",
-                       (long) ft, millisec, where);
+                                  (long) ft, millisec, where);
 #endif
 
        if (timer_pending(&ft->tl))
index f02f7da..8c73856 100644 (file)
@@ -5,7 +5,7 @@
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
  *              by Kai Germaschewski <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -18,7 +18,7 @@
 
 struct FsmInst;
 
-typedef void (* FSMFNPTR)(struct FsmInst *, int, void *);
+typedef void (*FSMFNPTR)(struct FsmInst *, int, void *);
 
 struct Fsm {
        FSMFNPTR *jumpmatrix;
index 353982f..4fef775 100644 (file)
@@ -5,7 +5,7 @@
  * Author       BeWan Systems
  *              based on source code from Karsten Keil
  * Copyright    by BeWan Systems
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -38,7 +38,7 @@ static const char *gazel_revision = "$Revision: 2.19.2.4 $";
 #define INT_IPAC_EN  0x3       /* enable IT ipac */
 
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static inline u_char
@@ -55,13 +55,13 @@ writereg(unsigned int adr, u_short off, u_char data)
 
 
 static inline void
-read_fifo(unsigned int adr, u_char * data, int size)
+read_fifo(unsigned int adr, u_char *data, int size)
 {
        insb(adr, data, size);
 }
 
 static void
-write_fifo(unsigned int adr, u_char * data, int size)
+write_fifo(unsigned int adr, u_char *data, int size)
 {
        outsb(adr, data, size);
 }
@@ -85,14 +85,14 @@ writereg_ipac(unsigned int adr, u_short off, u_char data)
 
 
 static inline void
-read_fifo_ipac(unsigned int adr, u_short off, u_char * data, int size)
+read_fifo_ipac(unsigned int adr, u_short off, u_char *data, int size)
 {
        byteout(adr, off);
        insb(adr + 4, data, size);
 }
 
 static void
-write_fifo_ipac(unsigned int adr, u_short off, u_char * data, int size)
+write_fifo_ipac(unsigned int adr, u_short off, u_char *data, int size)
 {
        byteout(adr, off);
        outsb(adr + 4, data, size);
@@ -106,13 +106,13 @@ ReadISAC(struct IsdnCardState *cs, u_char offset)
        u_short off2 = offset;
 
        switch (cs->subtyp) {
-               case R647:
-                       off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
-               case R685:
-                       return (readreg(cs->hw.gazel.isac, off2));
-               case R753:
-               case R742:
-                       return (readreg_ipac(cs->hw.gazel.ipac, 0x80 + off2));
+       case R647:
+               off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
+       case R685:
+               return (readreg(cs->hw.gazel.isac, off2));
+       case R753:
+       case R742:
+               return (readreg_ipac(cs->hw.gazel.ipac, 0x80 + off2));
        }
        return 0;
 }
@@ -123,75 +123,75 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
        u_short off2 = offset;
 
        switch (cs->subtyp) {
-               case R647:
-                       off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
-               case R685:
-                       writereg(cs->hw.gazel.isac, off2, value);
-                       break;
-               case R753:
-               case R742:
-                       writereg_ipac(cs->hw.gazel.ipac, 0x80 + off2, value);
-                       break;
+       case R647:
+               off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
+       case R685:
+               writereg(cs->hw.gazel.isac, off2, value);
+               break;
+       case R753:
+       case R742:
+               writereg_ipac(cs->hw.gazel.ipac, 0x80 + off2, value);
+               break;
        }
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        switch (cs->subtyp) {
-               case R647:
-               case R685:
-                       read_fifo(cs->hw.gazel.isacfifo, data, size);
-                       break;
-               case R753:
-               case R742:
-                       read_fifo_ipac(cs->hw.gazel.ipac, 0x80, data, size);
-                       break;
+       case R647:
+       case R685:
+               read_fifo(cs->hw.gazel.isacfifo, data, size);
+               break;
+       case R753:
+       case R742:
+               read_fifo_ipac(cs->hw.gazel.ipac, 0x80, data, size);
+               break;
        }
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        switch (cs->subtyp) {
-               case R647:
-               case R685:
-                       write_fifo(cs->hw.gazel.isacfifo, data, size);
-                       break;
-               case R753:
-               case R742:
-                       write_fifo_ipac(cs->hw.gazel.ipac, 0x80, data, size);
-                       break;
+       case R647:
+       case R685:
+               write_fifo(cs->hw.gazel.isacfifo, data, size);
+               break;
+       case R753:
+       case R742:
+               write_fifo_ipac(cs->hw.gazel.ipac, 0x80, data, size);
+               break;
        }
 }
 
 static void
-ReadHSCXfifo(struct IsdnCardState *cs, int hscx, u_char * data, int size)
+ReadHSCXfifo(struct IsdnCardState *cs, int hscx, u_char *data, int size)
 {
        switch (cs->subtyp) {
-               case R647:
-               case R685:
-                       read_fifo(cs->hw.gazel.hscxfifo[hscx], data, size);
-                       break;
-               case R753:
-               case R742:
-                       read_fifo_ipac(cs->hw.gazel.ipac, hscx * 0x40, data, size);
-                       break;
+       case R647:
+       case R685:
+               read_fifo(cs->hw.gazel.hscxfifo[hscx], data, size);
+               break;
+       case R753:
+       case R742:
+               read_fifo_ipac(cs->hw.gazel.ipac, hscx * 0x40, data, size);
+               break;
        }
 }
 
 static void
-WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char * data, int size)
+WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char *data, int size)
 {
        switch (cs->subtyp) {
-               case R647:
-               case R685:
-                       write_fifo(cs->hw.gazel.hscxfifo[hscx], data, size);
-                       break;
-               case R753:
-               case R742:
-                       write_fifo_ipac(cs->hw.gazel.ipac, hscx * 0x40, data, size);
-                       break;
+       case R647:
+       case R685:
+               write_fifo(cs->hw.gazel.hscxfifo[hscx], data, size);
+               break;
+       case R753:
+       case R742:
+               write_fifo_ipac(cs->hw.gazel.ipac, hscx * 0x40, data, size);
+               break;
        }
 }
 
@@ -201,13 +201,13 @@ ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset)
        u_short off2 = offset;
 
        switch (cs->subtyp) {
-               case R647:
-                       off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
-               case R685:
-                       return (readreg(cs->hw.gazel.hscx[hscx], off2));
-               case R753:
-               case R742:
-                       return (readreg_ipac(cs->hw.gazel.ipac, hscx * 0x40 + off2));
+       case R647:
+               off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
+       case R685:
+               return (readreg(cs->hw.gazel.hscx[hscx], off2));
+       case R753:
+       case R742:
+               return (readreg_ipac(cs->hw.gazel.ipac, hscx * 0x40 + off2));
        }
        return 0;
 }
@@ -218,15 +218,15 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
        u_short off2 = offset;
 
        switch (cs->subtyp) {
-               case R647:
-                       off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
-               case R685:
-                       writereg(cs->hw.gazel.hscx[hscx], off2, value);
-                       break;
-               case R753:
-               case R742:
-                       writereg_ipac(cs->hw.gazel.ipac, hscx * 0x40 + off2, value);
-                       break;
+       case R647:
+               off2 = ((off2 << 8 & 0xf000) | (off2 & 0xf));
+       case R685:
+               writereg(cs->hw.gazel.hscx[hscx], off2, value);
+               break;
+       case R753:
+       case R742:
+               writereg_ipac(cs->hw.gazel.ipac, hscx * 0x40 + off2, value);
+               break;
        }
 }
 
@@ -279,7 +279,7 @@ gazel_interrupt_ipac(int intno, void *dev_id)
        u_char ista, val;
        int count = 0;
        u_long flags;
-       
+
        spin_lock_irqsave(&cs->lock, flags);
        ista = ReadISAC(cs, IPAC_ISTA - 0x80);
        do {
@@ -322,25 +322,25 @@ release_io_gazel(struct IsdnCardState *cs)
        unsigned int i;
 
        switch (cs->subtyp) {
-               case R647:
-                       for (i = 0x0000; i < 0xC000; i += 0x1000)
-                               release_region(i + cs->hw.gazel.hscx[0], 16);
-                       release_region(0xC000 + cs->hw.gazel.hscx[0], 1);
-                       break;
-
-               case R685:
-                       release_region(cs->hw.gazel.hscx[0], 0x100);
-                       release_region(cs->hw.gazel.cfg_reg, 0x80);
-                       break;
-
-               case R753:
-                       release_region(cs->hw.gazel.ipac, 0x8);
-                       release_region(cs->hw.gazel.cfg_reg, 0x80);
-                       break;
-
-               case R742:
-                       release_region(cs->hw.gazel.ipac, 8);
-                       break;
+       case R647:
+               for (i = 0x0000; i < 0xC000; i += 0x1000)
+                       release_region(i + cs->hw.gazel.hscx[0], 16);
+               release_region(0xC000 + cs->hw.gazel.hscx[0], 1);
+               break;
+
+       case R685:
+               release_region(cs->hw.gazel.hscx[0], 0x100);
+               release_region(cs->hw.gazel.cfg_reg, 0x80);
+               break;
+
+       case R753:
+               release_region(cs->hw.gazel.ipac, 0x8);
+               release_region(cs->hw.gazel.cfg_reg, 0x80);
+               break;
+
+       case R742:
+               release_region(cs->hw.gazel.ipac, 8);
+               break;
        }
 }
 
@@ -350,49 +350,49 @@ reset_gazel(struct IsdnCardState *cs)
        unsigned long plxcntrl, addr = cs->hw.gazel.cfg_reg;
 
        switch (cs->subtyp) {
-               case R647:
-                       writereg(addr, 0, 0);
-                       HZDELAY(10);
-                       writereg(addr, 0, 1);
-                       HZDELAY(2);
-                       break;
-               case R685:
-                       plxcntrl = inl(addr + PLX_CNTRL);
-                       plxcntrl |= (RESET_9050 + RESET_GAZEL);
-                       outl(plxcntrl, addr + PLX_CNTRL);
-                       plxcntrl &= ~(RESET_9050 + RESET_GAZEL);
-                       HZDELAY(4);
-                       outl(plxcntrl, addr + PLX_CNTRL);
-                       HZDELAY(10);
-                       outb(INT_ISAC_EN + INT_HSCX_EN + INT_PCI_EN, addr + PLX_INCSR);
-                       break;
-               case R753:
-                       plxcntrl = inl(addr + PLX_CNTRL);
-                       plxcntrl |= (RESET_9050 + RESET_GAZEL);
-                       outl(plxcntrl, addr + PLX_CNTRL);
-                       plxcntrl &= ~(RESET_9050 + RESET_GAZEL);
-                       WriteISAC(cs, IPAC_POTA2 - 0x80, 0x20);
-                       HZDELAY(4);
-                       outl(plxcntrl, addr + PLX_CNTRL);
-                       HZDELAY(10);
-                       WriteISAC(cs, IPAC_POTA2 - 0x80, 0x00);
-                       WriteISAC(cs, IPAC_ACFG - 0x80, 0xff);
-                       WriteISAC(cs, IPAC_AOE - 0x80, 0x0);
-                       WriteISAC(cs, IPAC_MASK - 0x80, 0xff);
-                       WriteISAC(cs, IPAC_CONF - 0x80, 0x1);
-                       outb(INT_IPAC_EN + INT_PCI_EN, addr + PLX_INCSR);
-                       WriteISAC(cs, IPAC_MASK - 0x80, 0xc0);
-                       break;
-               case R742:
-                       WriteISAC(cs, IPAC_POTA2 - 0x80, 0x20);
-                       HZDELAY(4);
-                       WriteISAC(cs, IPAC_POTA2 - 0x80, 0x00);
-                       WriteISAC(cs, IPAC_ACFG - 0x80, 0xff);
-                       WriteISAC(cs, IPAC_AOE - 0x80, 0x0);
-                       WriteISAC(cs, IPAC_MASK - 0x80, 0xff);
-                       WriteISAC(cs, IPAC_CONF - 0x80, 0x1);
-                       WriteISAC(cs, IPAC_MASK - 0x80, 0xc0);
-                       break;
+       case R647:
+               writereg(addr, 0, 0);
+               HZDELAY(10);
+               writereg(addr, 0, 1);
+               HZDELAY(2);
+               break;
+       case R685:
+               plxcntrl = inl(addr + PLX_CNTRL);
+               plxcntrl |= (RESET_9050 + RESET_GAZEL);
+               outl(plxcntrl, addr + PLX_CNTRL);
+               plxcntrl &= ~(RESET_9050 + RESET_GAZEL);
+               HZDELAY(4);
+               outl(plxcntrl, addr + PLX_CNTRL);
+               HZDELAY(10);
+               outb(INT_ISAC_EN + INT_HSCX_EN + INT_PCI_EN, addr + PLX_INCSR);
+               break;
+       case R753:
+               plxcntrl = inl(addr + PLX_CNTRL);
+               plxcntrl |= (RESET_9050 + RESET_GAZEL);
+               outl(plxcntrl, addr + PLX_CNTRL);
+               plxcntrl &= ~(RESET_9050 + RESET_GAZEL);
+               WriteISAC(cs, IPAC_POTA2 - 0x80, 0x20);
+               HZDELAY(4);
+               outl(plxcntrl, addr + PLX_CNTRL);
+               HZDELAY(10);
+               WriteISAC(cs, IPAC_POTA2 - 0x80, 0x00);
+               WriteISAC(cs, IPAC_ACFG - 0x80, 0xff);
+               WriteISAC(cs, IPAC_AOE - 0x80, 0x0);
+               WriteISAC(cs, IPAC_MASK - 0x80, 0xff);
+               WriteISAC(cs, IPAC_CONF - 0x80, 0x1);
+               outb(INT_IPAC_EN + INT_PCI_EN, addr + PLX_INCSR);
+               WriteISAC(cs, IPAC_MASK - 0x80, 0xc0);
+               break;
+       case R742:
+               WriteISAC(cs, IPAC_POTA2 - 0x80, 0x20);
+               HZDELAY(4);
+               WriteISAC(cs, IPAC_POTA2 - 0x80, 0x00);
+               WriteISAC(cs, IPAC_ACFG - 0x80, 0xff);
+               WriteISAC(cs, IPAC_AOE - 0x80, 0x0);
+               WriteISAC(cs, IPAC_MASK - 0x80, 0xff);
+               WriteISAC(cs, IPAC_CONF - 0x80, 0x1);
+               WriteISAC(cs, IPAC_MASK - 0x80, 0xc0);
+               break;
        }
        return (0);
 }
@@ -403,28 +403,28 @@ Gazel_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_gazel(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_RELEASE:
-                       release_io_gazel(cs);
-                       return (0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 1);
-                       if ((cs->subtyp==R647)||(cs->subtyp==R685)) {
-                               int i;
-                               for (i=0;i<(2+MAX_WAITING_CALLS);i++) {
-                                       cs->bcs[i].hw.hscx.tsaxr0 = 0x1f;
-                                       cs->bcs[i].hw.hscx.tsaxr1 = 0x23;
-                               }
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_gazel(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_gazel(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 1);
+               if ((cs->subtyp == R647) || (cs->subtyp == R685)) {
+                       int i;
+                       for (i = 0; i < (2 + MAX_WAITING_CALLS); i++) {
+                               cs->bcs[i].hw.hscx.tsaxr0 = 0x1f;
+                               cs->bcs[i].hw.hscx.tsaxr1 = 0x23;
                        }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_TEST:
-                       return (0);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
        return (0);
 }
@@ -435,49 +435,49 @@ reserve_regions(struct IsdnCard *card, struct IsdnCardState *cs)
        unsigned int i, j, base = 0, adr = 0, len = 0;
 
        switch (cs->subtyp) {
-               case R647:
-                       base = cs->hw.gazel.hscx[0];
-                       if (!request_region(adr = (0xC000 + base), len = 1, "gazel"))
-                               goto error;
-                       for (i = 0x0000; i < 0xC000; i += 0x1000) {
-                               if (!request_region(adr = (i + base), len = 16, "gazel"))
-                                       goto error;
-                       }
-                       if (i != 0xC000) {
-                               for (j = 0; j < i; j+= 0x1000)
-                                       release_region(j + base, 16);
-                               release_region(0xC000 + base, 1);
+       case R647:
+               base = cs->hw.gazel.hscx[0];
+               if (!request_region(adr = (0xC000 + base), len = 1, "gazel"))
+                       goto error;
+               for (i = 0x0000; i < 0xC000; i += 0x1000) {
+                       if (!request_region(adr = (i + base), len = 16, "gazel"))
                                goto error;
-                       }
-                       break;
+               }
+               if (i != 0xC000) {
+                       for (j = 0; j < i; j += 0x1000)
+                               release_region(j + base, 16);
+                       release_region(0xC000 + base, 1);
+                       goto error;
+               }
+               break;
 
-               case R685:
-                       if (!request_region(adr = cs->hw.gazel.hscx[0], len = 0x100, "gazel"))
-                               goto error;
-                       if (!request_region(adr = cs->hw.gazel.cfg_reg, len = 0x80, "gazel")) {
-                               release_region(cs->hw.gazel.hscx[0],0x100);
-                               goto error;
-                       }
-                       break;
+       case R685:
+               if (!request_region(adr = cs->hw.gazel.hscx[0], len = 0x100, "gazel"))
+                       goto error;
+               if (!request_region(adr = cs->hw.gazel.cfg_reg, len = 0x80, "gazel")) {
+                       release_region(cs->hw.gazel.hscx[0], 0x100);
+                       goto error;
+               }
+               break;
 
-               case R753:
-                       if (!request_region(adr = cs->hw.gazel.ipac, len = 0x8, "gazel"))
-                               goto error;
-                       if (!request_region(adr = cs->hw.gazel.cfg_reg, len = 0x80, "gazel")) {
-                               release_region(cs->hw.gazel.ipac, 8);
-                               goto error;
-                       }
-                       break;
+       case R753:
+               if (!request_region(adr = cs->hw.gazel.ipac, len = 0x8, "gazel"))
+                       goto error;
+               if (!request_region(adr = cs->hw.gazel.cfg_reg, len = 0x80, "gazel")) {
+                       release_region(cs->hw.gazel.ipac, 8);
+                       goto error;
+               }
+               break;
 
-               case R742:
-                       if (!request_region(adr = cs->hw.gazel.ipac, len = 0x8, "gazel"))
-                               goto error;
-                       break;
+       case R742:
+               if (!request_region(adr = cs->hw.gazel.ipac, len = 0x8, "gazel"))
+                       goto error;
+               break;
        }
 
        return 0;
 
-      error:
+error:
        printk(KERN_WARNING "Gazel: io ports 0x%x-0x%x already in use\n",
               adr, adr + len);
        return 1;
@@ -508,24 +508,24 @@ setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs)
        cs->hw.gazel.hscxfifo[1] = cs->hw.gazel.hscx[1];
 
        switch (cs->subtyp) {
-               case R647:
-                       printk(KERN_INFO "Gazel: Card ISA R647/R648 found\n");
-                       cs->dc.isac.adf2 = 0x87;
-                       printk(KERN_INFO
-                               "Gazel: config irq:%d isac:0x%X  cfg:0x%X\n",
-                               cs->irq, cs->hw.gazel.isac, cs->hw.gazel.cfg_reg);
-                       printk(KERN_INFO
-                               "Gazel: hscx A:0x%X  hscx B:0x%X\n",
-                               cs->hw.gazel.hscx[0], cs->hw.gazel.hscx[1]);
-
-                       break;
-               case R742:
-                       printk(KERN_INFO "Gazel: Card ISA R742 found\n");
-                       test_and_set_bit(HW_IPAC, &cs->HW_Flags);
-                       printk(KERN_INFO
-                              "Gazel: config irq:%d ipac:0x%X\n",
-                              cs->irq, cs->hw.gazel.ipac);
-                       break;
+       case R647:
+               printk(KERN_INFO "Gazel: Card ISA R647/R648 found\n");
+               cs->dc.isac.adf2 = 0x87;
+               printk(KERN_INFO
+                      "Gazel: config irq:%d isac:0x%X  cfg:0x%X\n",
+                      cs->irq, cs->hw.gazel.isac, cs->hw.gazel.cfg_reg);
+               printk(KERN_INFO
+                      "Gazel: hscx A:0x%X  hscx B:0x%X\n",
+                      cs->hw.gazel.hscx[0], cs->hw.gazel.hscx[1]);
+
+               break;
+       case R742:
+               printk(KERN_INFO "Gazel: Card ISA R742 found\n");
+               test_and_set_bit(HW_IPAC, &cs->HW_Flags);
+               printk(KERN_INFO
+                      "Gazel: config irq:%d ipac:0x%X\n",
+                      cs->irq, cs->hw.gazel.ipac);
+               break;
        }
 
        return (0);
@@ -547,7 +547,7 @@ setup_gazelpci(struct IsdnCardState *cs)
        seekcard = PCI_DEVICE_ID_PLX_R685;
        for (nbseek = 0; nbseek < 4; nbseek++) {
                if ((dev_tel = hisax_find_pci_device(PCI_VENDOR_ID_PLX,
-                                       seekcard, dev_tel))) {
+                                                    seekcard, dev_tel))) {
                        if (pci_enable_device(dev_tel))
                                return 1;
                        pci_irq = dev_tel->irq;
@@ -559,15 +559,15 @@ setup_gazelpci(struct IsdnCardState *cs)
                        break;
                else {
                        switch (seekcard) {
-                               case PCI_DEVICE_ID_PLX_R685:
-                                       seekcard = PCI_DEVICE_ID_PLX_R753;
-                                       break;
-                               case PCI_DEVICE_ID_PLX_R753:
-                                       seekcard = PCI_DEVICE_ID_PLX_DJINN_ITOO;
-                                       break;
-                               case PCI_DEVICE_ID_PLX_DJINN_ITOO:
-                                       seekcard = PCI_DEVICE_ID_PLX_OLITEC;
-                                       break;
+                       case PCI_DEVICE_ID_PLX_R685:
+                               seekcard = PCI_DEVICE_ID_PLX_R753;
+                               break;
+                       case PCI_DEVICE_ID_PLX_R753:
+                               seekcard = PCI_DEVICE_ID_PLX_DJINN_ITOO;
+                               break;
+                       case PCI_DEVICE_ID_PLX_DJINN_ITOO:
+                               seekcard = PCI_DEVICE_ID_PLX_OLITEC;
+                               break;
                        }
                }
        }
@@ -595,27 +595,27 @@ setup_gazelpci(struct IsdnCardState *cs)
        cs->irq_flags |= IRQF_SHARED;
 
        switch (seekcard) {
-               case PCI_DEVICE_ID_PLX_R685:
-                       printk(KERN_INFO "Gazel: Card PCI R685 found\n");
-                       cs->subtyp = R685;
-                       cs->dc.isac.adf2 = 0x87;
-                       printk(KERN_INFO
-                           "Gazel: config irq:%d isac:0x%X  cfg:0x%X\n",
-                       cs->irq, cs->hw.gazel.isac, cs->hw.gazel.cfg_reg);
-                       printk(KERN_INFO
-                              "Gazel: hscx A:0x%X  hscx B:0x%X\n",
-                            cs->hw.gazel.hscx[0], cs->hw.gazel.hscx[1]);
-                       break;
-               case PCI_DEVICE_ID_PLX_R753:
-               case PCI_DEVICE_ID_PLX_DJINN_ITOO:
-               case PCI_DEVICE_ID_PLX_OLITEC:
-                       printk(KERN_INFO "Gazel: Card PCI R753 found\n");
-                       cs->subtyp = R753;
-                       test_and_set_bit(HW_IPAC, &cs->HW_Flags);
-                       printk(KERN_INFO
-                           "Gazel: config irq:%d ipac:0x%X  cfg:0x%X\n",
-                       cs->irq, cs->hw.gazel.ipac, cs->hw.gazel.cfg_reg);
-                       break;
+       case PCI_DEVICE_ID_PLX_R685:
+               printk(KERN_INFO "Gazel: Card PCI R685 found\n");
+               cs->subtyp = R685;
+               cs->dc.isac.adf2 = 0x87;
+               printk(KERN_INFO
+                      "Gazel: config irq:%d isac:0x%X  cfg:0x%X\n",
+                      cs->irq, cs->hw.gazel.isac, cs->hw.gazel.cfg_reg);
+               printk(KERN_INFO
+                      "Gazel: hscx A:0x%X  hscx B:0x%X\n",
+                      cs->hw.gazel.hscx[0], cs->hw.gazel.hscx[1]);
+               break;
+       case PCI_DEVICE_ID_PLX_R753:
+       case PCI_DEVICE_ID_PLX_DJINN_ITOO:
+       case PCI_DEVICE_ID_PLX_OLITEC:
+               printk(KERN_INFO "Gazel: Card PCI R753 found\n");
+               cs->subtyp = R753;
+               test_and_set_bit(HW_IPAC, &cs->HW_Flags);
+               printk(KERN_INFO
+                      "Gazel: config irq:%d ipac:0x%X  cfg:0x%X\n",
+                      cs->irq, cs->hw.gazel.ipac, cs->hw.gazel.cfg_reg);
+               break;
        }
 
        return (0);
@@ -667,23 +667,23 @@ setup_gazel(struct IsdnCard *card)
        cs->cardmsg = &Gazel_card_msg;
 
        switch (cs->subtyp) {
-               case R647:
-               case R685:
-                       cs->irq_func = &gazel_interrupt;
-                       ISACVersion(cs, "Gazel:");
-                       if (HscxVersion(cs, "Gazel:")) {
-                               printk(KERN_WARNING
-                                      "Gazel: wrong HSCX versions check IO address\n");
-                               release_io_gazel(cs);
-                               return (0);
-                       }
-                       break;
-               case R742:
-               case R753:
-                       cs->irq_func = &gazel_interrupt_ipac;
-                       val = ReadISAC(cs, IPAC_ID - 0x80);
-                       printk(KERN_INFO "Gazel: IPAC version %x\n", val);
-                       break;
+       case R647:
+       case R685:
+               cs->irq_func = &gazel_interrupt;
+               ISACVersion(cs, "Gazel:");
+               if (HscxVersion(cs, "Gazel:")) {
+                       printk(KERN_WARNING
+                              "Gazel: wrong HSCX versions check IO address\n");
+                       release_io_gazel(cs);
+                       return (0);
+               }
+               break;
+       case R742:
+       case R753:
+               cs->irq_func = &gazel_interrupt_ipac;
+               val = ReadISAC(cs, IPAC_ID - 0x80);
+               printk(KERN_INFO "Gazel: IPAC version %x\n", val);
+               break;
        }
 
        return (1);
index 384d511..dea04de 100644 (file)
@@ -93,32 +93,32 @@ static struct pci_device_id hfc4s8s_ids[] = {
         .subdevice = 0x08b4,
         .driver_data =
         (unsigned long) &((hfc4s8s_param) {CHIP_ID_4S, CLOCKMODE_0, 4,
-                                           "HFC-4S Evaluation Board"}),
-        },
+                                "HFC-4S Evaluation Board"}),
+       },
        {.vendor = PCI_VENDOR_ID_CCD,
         .device = PCI_DEVICE_ID_8S,
         .subvendor = 0x1397,
         .subdevice = 0x16b8,
         .driver_data =
         (unsigned long) &((hfc4s8s_param) {CHIP_ID_8S, CLOCKMODE_0, 8,
-                                           "HFC-8S Evaluation Board"}),
-        },
+                                "HFC-8S Evaluation Board"}),
+       },
        {.vendor = PCI_VENDOR_ID_CCD,
         .device = PCI_DEVICE_ID_4S,
         .subvendor = 0x1397,
         .subdevice = 0xb520,
         .driver_data =
         (unsigned long) &((hfc4s8s_param) {CHIP_ID_4S, CLOCKMODE_1, 4,
-                                           "IOB4ST"}),
-        },
+                                "IOB4ST"}),
+       },
        {.vendor = PCI_VENDOR_ID_CCD,
         .device = PCI_DEVICE_ID_8S,
         .subvendor = 0x1397,
         .subdevice = 0xb522,
         .driver_data =
         (unsigned long) &((hfc4s8s_param) {CHIP_ID_8S, CLOCKMODE_1, 8,
-                                           "IOB8ST"}),
-        },
+                                "IOB8ST"}),
+       },
        {}
 };
 
@@ -203,14 +203,14 @@ typedef struct _hfc4s8s_hw {
 #ifdef HISAX_HFC4S8S_PCIMEM    /* inline functions memory mapped */
 
 /* memory write and dummy IO read to avoid PCI byte merge problems */
-#define Write_hfc8(a,b,c) {(*((volatile u_char *)(a->membase+b)) = c); inb(a->iobase+4);}
+#define Write_hfc8(a, b, c) {(*((volatile u_char *)(a->membase + b)) = c); inb(a->iobase + 4);}
 /* memory write without dummy IO access for fifo data access */
-#define fWrite_hfc8(a,b,c) (*((volatile u_char *)(a->membase+b)) = c)
-#define Read_hfc8(a,b) (*((volatile u_char *)(a->membase+b)))
-#define Write_hfc16(a,b,c) (*((volatile unsigned short *)(a->membase+b)) = c)
-#define Read_hfc16(a,b) (*((volatile unsigned short *)(a->membase+b)))
-#define Write_hfc32(a,b,c) (*((volatile unsigned long *)(a->membase+b)) = c)
-#define Read_hfc32(a,b) (*((volatile unsigned long *)(a->membase+b)))
+#define fWrite_hfc8(a, b, c) (*((volatile u_char *)(a->membase + b)) = c)
+#define Read_hfc8(a, b) (*((volatile u_char *)(a->membase + b)))
+#define Write_hfc16(a, b, c) (*((volatile unsigned short *)(a->membase + b)) = c)
+#define Read_hfc16(a, b) (*((volatile unsigned short *)(a->membase + b)))
+#define Write_hfc32(a, b, c) (*((volatile unsigned long *)(a->membase + b)) = c)
+#define Read_hfc32(a, b) (*((volatile unsigned long *)(a->membase + b)))
 #define wait_busy(a) {while ((Read_hfc8(a, R_STATUS) & M_BUSY));}
 #define PCI_ENA_MEMIO  0x03
 
@@ -218,87 +218,87 @@ typedef struct _hfc4s8s_hw {
 
 /* inline functions io mapped */
 static inline void
-SetRegAddr(hfc4s8s_hw * a, u_char b)
+SetRegAddr(hfc4s8s_hw *a, u_char b)
 {
        outb(b, (a->iobase) + 4);
 }
 
 static inline u_char
-GetRegAddr(hfc4s8s_hw * a)
+GetRegAddr(hfc4s8s_hw *a)
 {
        return (inb((volatile u_int) (a->iobase + 4)));
 }
 
 
 static inline void
-Write_hfc8(hfc4s8s_hw * a, u_char b, u_char c)
+Write_hfc8(hfc4s8s_hw *a, u_char b, u_char c)
 {
        SetRegAddr(a, b);
        outb(c, a->iobase);
 }
 
 static inline void
-fWrite_hfc8(hfc4s8s_hw * a, u_char c)
+fWrite_hfc8(hfc4s8s_hw *a, u_char c)
 {
        outb(c, a->iobase);
 }
 
 static inline void
-Write_hfc16(hfc4s8s_hw * a, u_char b, u_short c)
+Write_hfc16(hfc4s8s_hw *a, u_char b, u_short c)
 {
        SetRegAddr(a, b);
        outw(c, a->iobase);
 }
 
 static inline void
-Write_hfc32(hfc4s8s_hw * a, u_char b, u_long c)
+Write_hfc32(hfc4s8s_hw *a, u_char b, u_long c)
 {
        SetRegAddr(a, b);
        outl(c, a->iobase);
 }
 
 static inline void
-fWrite_hfc32(hfc4s8s_hw * a, u_long c)
+fWrite_hfc32(hfc4s8s_hw *a, u_long c)
 {
        outl(c, a->iobase);
 }
 
 static inline u_char
-Read_hfc8(hfc4s8s_hw * a, u_char b)
+Read_hfc8(hfc4s8s_hw *a, u_char b)
 {
        SetRegAddr(a, b);
        return (inb((volatile u_int) a->iobase));
 }
 
 static inline u_char
-fRead_hfc8(hfc4s8s_hw * a)
+fRead_hfc8(hfc4s8s_hw *a)
 {
        return (inb((volatile u_int) a->iobase));
 }
 
 
 static inline u_short
-Read_hfc16(hfc4s8s_hw * a, u_char b)
+Read_hfc16(hfc4s8s_hw *a, u_char b)
 {
        SetRegAddr(a, b);
        return (inw((volatile u_int) a->iobase));
 }
 
 static inline u_long
-Read_hfc32(hfc4s8s_hw * a, u_char b)
+Read_hfc32(hfc4s8s_hw *a, u_char b)
 {
        SetRegAddr(a, b);
        return (inl((volatile u_int) a->iobase));
 }
 
 static inline u_long
-fRead_hfc32(hfc4s8s_hw * a)
+fRead_hfc32(hfc4s8s_hw *a)
 {
        return (inl((volatile u_int) a->iobase));
 }
 
 static inline void
-wait_busy(hfc4s8s_hw * a)
+wait_busy(hfc4s8s_hw *a)
 {
        SetRegAddr(a, R_STATUS);
        while (inb((volatile u_int) a->iobase) & M_BUSY);
@@ -313,7 +313,7 @@ wait_busy(hfc4s8s_hw * a)
 /* may be updated by the chip during read             */
 /******************************************************/
 static u_char
-Read_hfc8_stable(hfc4s8s_hw * hw, int reg)
+Read_hfc8_stable(hfc4s8s_hw *hw, int reg)
 {
        u_char ref8;
        u_char in8;
@@ -325,7 +325,7 @@ Read_hfc8_stable(hfc4s8s_hw * hw, int reg)
 }
 
 static int
-Read_hfc16_stable(hfc4s8s_hw * hw, int reg)
+Read_hfc16_stable(hfc4s8s_hw *hw, int reg)
 {
        int ref16;
        int in16;
@@ -349,67 +349,67 @@ dch_l2l1(struct hisax_d_if *iface, int pr, void *arg)
 
        switch (pr) {
 
-               case (PH_DATA | REQUEST):
-                       if (!l1->enabled) {
-                               dev_kfree_skb(skb);
-                               break;
-                       }
-                       spin_lock_irqsave(&l1->lock, flags);
-                       skb_queue_tail(&l1->d_tx_queue, skb);
-                       if ((skb_queue_len(&l1->d_tx_queue) == 1) &&
-                           (l1->tx_cnt <= 0)) {
-                               l1->hw->mr.r_irq_fifo_blx[l1->st_num] |=
-                                   0x10;
-                               spin_unlock_irqrestore(&l1->lock, flags);
-                               schedule_work(&l1->hw->tqueue);
-                       } else
-                               spin_unlock_irqrestore(&l1->lock, flags);
+       case (PH_DATA | REQUEST):
+               if (!l1->enabled) {
+                       dev_kfree_skb(skb);
                        break;
+               }
+               spin_lock_irqsave(&l1->lock, flags);
+               skb_queue_tail(&l1->d_tx_queue, skb);
+               if ((skb_queue_len(&l1->d_tx_queue) == 1) &&
+                   (l1->tx_cnt <= 0)) {
+                       l1->hw->mr.r_irq_fifo_blx[l1->st_num] |=
+                               0x10;
+                       spin_unlock_irqrestore(&l1->lock, flags);
+                       schedule_work(&l1->hw->tqueue);
+               } else
+                       spin_unlock_irqrestore(&l1->lock, flags);
+               break;
 
-               case (PH_ACTIVATE | REQUEST):
-                       if (!l1->enabled)
-                               break;
-                       if (!l1->nt_mode) {
-                               if (l1->l1_state < 6) {
-                                       spin_lock_irqsave(&l1->lock,
-                                                         flags);
-
-                                       Write_hfc8(l1->hw, R_ST_SEL,
-                                                  l1->st_num);
-                                       Write_hfc8(l1->hw, A_ST_WR_STA,
-                                                  0x60);
-                                       mod_timer(&l1->l1_timer,
-                                                 jiffies + L1_TIMER_T3);
-                                       spin_unlock_irqrestore(&l1->lock,
-                                                              flags);
-                               } else if (l1->l1_state == 7)
-                                       l1->d_if.ifc.l1l2(&l1->d_if.ifc,
-                                                         PH_ACTIVATE |
-                                                         INDICATION,
-                                                         NULL);
-                       } else {
-                               if (l1->l1_state != 3) {
-                                       spin_lock_irqsave(&l1->lock,
-                                                         flags);
-                                       Write_hfc8(l1->hw, R_ST_SEL,
-                                                  l1->st_num);
-                                       Write_hfc8(l1->hw, A_ST_WR_STA,
-                                                  0x60);
-                                       spin_unlock_irqrestore(&l1->lock,
-                                                              flags);
-                               } else if (l1->l1_state == 3)
-                                       l1->d_if.ifc.l1l2(&l1->d_if.ifc,
-                                                         PH_ACTIVATE |
-                                                         INDICATION,
-                                                         NULL);
-                       }
+       case (PH_ACTIVATE | REQUEST):
+               if (!l1->enabled)
                        break;
+               if (!l1->nt_mode) {
+                       if (l1->l1_state < 6) {
+                               spin_lock_irqsave(&l1->lock,
+                                                 flags);
+
+                               Write_hfc8(l1->hw, R_ST_SEL,
+                                          l1->st_num);
+                               Write_hfc8(l1->hw, A_ST_WR_STA,
+                                          0x60);
+                               mod_timer(&l1->l1_timer,
+                                         jiffies + L1_TIMER_T3);
+                               spin_unlock_irqrestore(&l1->lock,
+                                                      flags);
+                       } else if (l1->l1_state == 7)
+                               l1->d_if.ifc.l1l2(&l1->d_if.ifc,
+                                                 PH_ACTIVATE |
+                                                 INDICATION,
+                                                 NULL);
+               } else {
+                       if (l1->l1_state != 3) {
+                               spin_lock_irqsave(&l1->lock,
+                                                 flags);
+                               Write_hfc8(l1->hw, R_ST_SEL,
+                                          l1->st_num);
+                               Write_hfc8(l1->hw, A_ST_WR_STA,
+                                          0x60);
+                               spin_unlock_irqrestore(&l1->lock,
+                                                      flags);
+                       } else if (l1->l1_state == 3)
+                               l1->d_if.ifc.l1l2(&l1->d_if.ifc,
+                                                 PH_ACTIVATE |
+                                                 INDICATION,
+                                                 NULL);
+               }
+               break;
 
-               default:
-                       printk(KERN_INFO
-                              "HFC-4S/8S: Unknown D-chan cmd 0x%x received, ignored\n",
-                              pr);
-                       break;
+       default:
+               printk(KERN_INFO
+                      "HFC-4S/8S: Unknown D-chan cmd 0x%x received, ignored\n",
+                      pr);
+               break;
        }
        if (!l1->enabled)
                l1->d_if.ifc.l1l2(&l1->d_if.ifc,
@@ -430,199 +430,199 @@ bch_l2l1(struct hisax_if *ifc, int pr, void *arg)
 
        switch (pr) {
 
-               case (PH_DATA | REQUEST):
-                       if (!l1->enabled || (bch->mode == L1_MODE_NULL)) {
-                               dev_kfree_skb(skb);
-                               break;
-                       }
-                       spin_lock_irqsave(&l1->lock, flags);
-                       skb_queue_tail(&bch->tx_queue, skb);
-                       if (!bch->tx_skb && (bch->tx_cnt <= 0)) {
-                               l1->hw->mr.r_irq_fifo_blx[l1->st_num] |=
-                                   ((bch->bchan == 1) ? 1 : 4);
-                               spin_unlock_irqrestore(&l1->lock, flags);
-                               schedule_work(&l1->hw->tqueue);
-                       } else
-                               spin_unlock_irqrestore(&l1->lock, flags);
+       case (PH_DATA | REQUEST):
+               if (!l1->enabled || (bch->mode == L1_MODE_NULL)) {
+                       dev_kfree_skb(skb);
                        break;
+               }
+               spin_lock_irqsave(&l1->lock, flags);
+               skb_queue_tail(&bch->tx_queue, skb);
+               if (!bch->tx_skb && (bch->tx_cnt <= 0)) {
+                       l1->hw->mr.r_irq_fifo_blx[l1->st_num] |=
+                               ((bch->bchan == 1) ? 1 : 4);
+                       spin_unlock_irqrestore(&l1->lock, flags);
+                       schedule_work(&l1->hw->tqueue);
+               } else
+                       spin_unlock_irqrestore(&l1->lock, flags);
+               break;
 
-               case (PH_ACTIVATE | REQUEST):
-               case (PH_DEACTIVATE | REQUEST):
-                       if (!l1->enabled)
-                               break;
-                       if (pr == (PH_DEACTIVATE | REQUEST))
-                               mode = L1_MODE_NULL;
-
-                       switch (mode) {
-                               case L1_MODE_HDLC:
-                                       spin_lock_irqsave(&l1->lock,
-                                                         flags);
-                                       l1->hw->mr.timer_usg_cnt++;
-                                       l1->hw->mr.
-                                           fifo_slow_timer_service[l1->
-                                                                   st_num]
-                                           |=
-                                           ((bch->bchan ==
-                                             1) ? 0x2 : 0x8);
-                                       Write_hfc8(l1->hw, R_FIFO,
-                                                  (l1->st_num * 8 +
-                                                   ((bch->bchan ==
-                                                     1) ? 0 : 2)));
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, A_CON_HDLC, 0xc);    /* HDLC mode, flag fill, connect ST */
-                                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
-                                       Write_hfc8(l1->hw, A_IRQ_MSK, 1);       /* enable TX interrupts for hdlc */
-                                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
-                                       wait_busy(l1->hw);
-
-                                       Write_hfc8(l1->hw, R_FIFO,
-                                                  (l1->st_num * 8 +
-                                                   ((bch->bchan ==
-                                                     1) ? 1 : 3)));
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, A_CON_HDLC, 0xc);    /* HDLC mode, flag fill, connect ST */
-                                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
-                                       Write_hfc8(l1->hw, A_IRQ_MSK, 1);       /* enable RX interrupts for hdlc */
-                                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
-
-                                       Write_hfc8(l1->hw, R_ST_SEL,
-                                                  l1->st_num);
-                                       l1->hw->mr.r_ctrl0 |=
-                                           (bch->bchan & 3);
-                                       Write_hfc8(l1->hw, A_ST_CTRL0,
-                                                  l1->hw->mr.r_ctrl0);
-                                       bch->mode = L1_MODE_HDLC;
-                                       spin_unlock_irqrestore(&l1->lock,
-                                                              flags);
-
-                                       bch->b_if.ifc.l1l2(&bch->b_if.ifc,
-                                                          PH_ACTIVATE |
-                                                          INDICATION,
-                                                          NULL);
-                                       break;
-
-                               case L1_MODE_TRANS:
-                                       spin_lock_irqsave(&l1->lock,
-                                                         flags);
-                                       l1->hw->mr.
-                                           fifo_rx_trans_enables[l1->
-                                                                 st_num]
-                                           |=
-                                           ((bch->bchan ==
-                                             1) ? 0x2 : 0x8);
-                                       l1->hw->mr.timer_usg_cnt++;
-                                       Write_hfc8(l1->hw, R_FIFO,
-                                                  (l1->st_num * 8 +
-                                                   ((bch->bchan ==
-                                                     1) ? 0 : 2)));
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, A_CON_HDLC, 0xf);    /* Transparent mode, 1 fill, connect ST */
-                                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
-                                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable TX interrupts */
-                                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
-                                       wait_busy(l1->hw);
-
-                                       Write_hfc8(l1->hw, R_FIFO,
-                                                  (l1->st_num * 8 +
-                                                   ((bch->bchan ==
-                                                     1) ? 1 : 3)));
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, A_CON_HDLC, 0xf);    /* Transparent mode, 1 fill, connect ST */
-                                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
-                                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable RX interrupts */
-                                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
-
-                                       Write_hfc8(l1->hw, R_ST_SEL,
-                                                  l1->st_num);
-                                       l1->hw->mr.r_ctrl0 |=
-                                           (bch->bchan & 3);
-                                       Write_hfc8(l1->hw, A_ST_CTRL0,
-                                                  l1->hw->mr.r_ctrl0);
-                                       bch->mode = L1_MODE_TRANS;
-                                       spin_unlock_irqrestore(&l1->lock,
-                                                              flags);
-
-                                       bch->b_if.ifc.l1l2(&bch->b_if.ifc,
-                                                          PH_ACTIVATE |
-                                                          INDICATION,
-                                                          NULL);
-                                       break;
-
-                               default:
-                                       if (bch->mode == L1_MODE_NULL)
-                                               break;
-                                       spin_lock_irqsave(&l1->lock,
-                                                         flags);
-                                       l1->hw->mr.
-                                           fifo_slow_timer_service[l1->
-                                                                   st_num]
-                                           &=
-                                           ~((bch->bchan ==
-                                              1) ? 0x3 : 0xc);
-                                       l1->hw->mr.
-                                           fifo_rx_trans_enables[l1->
-                                                                 st_num]
-                                           &=
-                                           ~((bch->bchan ==
-                                              1) ? 0x3 : 0xc);
-                                       l1->hw->mr.timer_usg_cnt--;
-                                       Write_hfc8(l1->hw, R_FIFO,
-                                                  (l1->st_num * 8 +
-                                                   ((bch->bchan ==
-                                                     1) ? 0 : 2)));
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable TX interrupts */
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, R_FIFO,
-                                                  (l1->st_num * 8 +
-                                                   ((bch->bchan ==
-                                                     1) ? 1 : 3)));
-                                       wait_busy(l1->hw);
-                                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable RX interrupts */
-                                       Write_hfc8(l1->hw, R_ST_SEL,
-                                                  l1->st_num);
-                                       l1->hw->mr.r_ctrl0 &=
-                                           ~(bch->bchan & 3);
-                                       Write_hfc8(l1->hw, A_ST_CTRL0,
-                                                  l1->hw->mr.r_ctrl0);
-                                       spin_unlock_irqrestore(&l1->lock,
-                                                              flags);
-
-                                       bch->mode = L1_MODE_NULL;
-                                       bch->b_if.ifc.l1l2(&bch->b_if.ifc,
-                                                          PH_DEACTIVATE |
-                                                          INDICATION,
-                                                          NULL);
-                                       if (bch->tx_skb) {
-                                               dev_kfree_skb(bch->tx_skb);
-                                               bch->tx_skb = NULL;
-                                       }
-                                       if (bch->rx_skb) {
-                                               dev_kfree_skb(bch->rx_skb);
-                                               bch->rx_skb = NULL;
-                                       }
-                                       skb_queue_purge(&bch->tx_queue);
-                                       bch->tx_cnt = 0;
-                                       bch->rx_ptr = NULL;
-                                       break;
-                       }
+       case (PH_ACTIVATE | REQUEST):
+       case (PH_DEACTIVATE | REQUEST):
+               if (!l1->enabled)
+                       break;
+               if (pr == (PH_DEACTIVATE | REQUEST))
+                       mode = L1_MODE_NULL;
+
+               switch (mode) {
+               case L1_MODE_HDLC:
+                       spin_lock_irqsave(&l1->lock,
+                                         flags);
+                       l1->hw->mr.timer_usg_cnt++;
+                       l1->hw->mr.
+                               fifo_slow_timer_service[l1->
+                                                       st_num]
+                               |=
+                               ((bch->bchan ==
+                                 1) ? 0x2 : 0x8);
+                       Write_hfc8(l1->hw, R_FIFO,
+                                  (l1->st_num * 8 +
+                                   ((bch->bchan ==
+                                     1) ? 0 : 2)));
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, A_CON_HDLC, 0xc);    /* HDLC mode, flag fill, connect ST */
+                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
+                       Write_hfc8(l1->hw, A_IRQ_MSK, 1);       /* enable TX interrupts for hdlc */
+                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
+                       wait_busy(l1->hw);
 
-                       /* timer is only used when at least one b channel */
-                       /* is set up to transparent mode */
-                       if (l1->hw->mr.timer_usg_cnt) {
-                               Write_hfc8(l1->hw, R_IRQMSK_MISC,
-                                          M_TI_IRQMSK);
-                       } else {
-                               Write_hfc8(l1->hw, R_IRQMSK_MISC, 0);
-                       }
+                       Write_hfc8(l1->hw, R_FIFO,
+                                  (l1->st_num * 8 +
+                                   ((bch->bchan ==
+                                     1) ? 1 : 3)));
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, A_CON_HDLC, 0xc);    /* HDLC mode, flag fill, connect ST */
+                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
+                       Write_hfc8(l1->hw, A_IRQ_MSK, 1);       /* enable RX interrupts for hdlc */
+                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
+
+                       Write_hfc8(l1->hw, R_ST_SEL,
+                                  l1->st_num);
+                       l1->hw->mr.r_ctrl0 |=
+                               (bch->bchan & 3);
+                       Write_hfc8(l1->hw, A_ST_CTRL0,
+                                  l1->hw->mr.r_ctrl0);
+                       bch->mode = L1_MODE_HDLC;
+                       spin_unlock_irqrestore(&l1->lock,
+                                              flags);
+
+                       bch->b_if.ifc.l1l2(&bch->b_if.ifc,
+                                          PH_ACTIVATE |
+                                          INDICATION,
+                                          NULL);
+                       break;
 
+               case L1_MODE_TRANS:
+                       spin_lock_irqsave(&l1->lock,
+                                         flags);
+                       l1->hw->mr.
+                               fifo_rx_trans_enables[l1->
+                                                     st_num]
+                               |=
+                               ((bch->bchan ==
+                                 1) ? 0x2 : 0x8);
+                       l1->hw->mr.timer_usg_cnt++;
+                       Write_hfc8(l1->hw, R_FIFO,
+                                  (l1->st_num * 8 +
+                                   ((bch->bchan ==
+                                     1) ? 0 : 2)));
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, A_CON_HDLC, 0xf);    /* Transparent mode, 1 fill, connect ST */
+                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
+                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable TX interrupts */
+                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
+                       wait_busy(l1->hw);
+
+                       Write_hfc8(l1->hw, R_FIFO,
+                                  (l1->st_num * 8 +
+                                   ((bch->bchan ==
+                                     1) ? 1 : 3)));
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, A_CON_HDLC, 0xf);    /* Transparent mode, 1 fill, connect ST */
+                       Write_hfc8(l1->hw, A_SUBCH_CFG, 0);     /* 8 bits */
+                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable RX interrupts */
+                       Write_hfc8(l1->hw, A_INC_RES_FIFO, 2);  /* reset fifo */
+
+                       Write_hfc8(l1->hw, R_ST_SEL,
+                                  l1->st_num);
+                       l1->hw->mr.r_ctrl0 |=
+                               (bch->bchan & 3);
+                       Write_hfc8(l1->hw, A_ST_CTRL0,
+                                  l1->hw->mr.r_ctrl0);
+                       bch->mode = L1_MODE_TRANS;
+                       spin_unlock_irqrestore(&l1->lock,
+                                              flags);
+
+                       bch->b_if.ifc.l1l2(&bch->b_if.ifc,
+                                          PH_ACTIVATE |
+                                          INDICATION,
+                                          NULL);
                        break;
 
                default:
-                       printk(KERN_INFO
-                              "HFC-4S/8S: Unknown B-chan cmd 0x%x received, ignored\n",
-                              pr);
+                       if (bch->mode == L1_MODE_NULL)
+                               break;
+                       spin_lock_irqsave(&l1->lock,
+                                         flags);
+                       l1->hw->mr.
+                               fifo_slow_timer_service[l1->
+                                                       st_num]
+                               &=
+                               ~((bch->bchan ==
+                                  1) ? 0x3 : 0xc);
+                       l1->hw->mr.
+                               fifo_rx_trans_enables[l1->
+                                                     st_num]
+                               &=
+                               ~((bch->bchan ==
+                                  1) ? 0x3 : 0xc);
+                       l1->hw->mr.timer_usg_cnt--;
+                       Write_hfc8(l1->hw, R_FIFO,
+                                  (l1->st_num * 8 +
+                                   ((bch->bchan ==
+                                     1) ? 0 : 2)));
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable TX interrupts */
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, R_FIFO,
+                                  (l1->st_num * 8 +
+                                   ((bch->bchan ==
+                                     1) ? 1 : 3)));
+                       wait_busy(l1->hw);
+                       Write_hfc8(l1->hw, A_IRQ_MSK, 0);       /* disable RX interrupts */
+                       Write_hfc8(l1->hw, R_ST_SEL,
+                                  l1->st_num);
+                       l1->hw->mr.r_ctrl0 &=
+                               ~(bch->bchan & 3);
+                       Write_hfc8(l1->hw, A_ST_CTRL0,
+                                  l1->hw->mr.r_ctrl0);
+                       spin_unlock_irqrestore(&l1->lock,
+                                              flags);
+
+                       bch->mode = L1_MODE_NULL;
+                       bch->b_if.ifc.l1l2(&bch->b_if.ifc,
+                                          PH_DEACTIVATE |
+                                          INDICATION,
+                                          NULL);
+                       if (bch->tx_skb) {
+                               dev_kfree_skb(bch->tx_skb);
+                               bch->tx_skb = NULL;
+                       }
+                       if (bch->rx_skb) {
+                               dev_kfree_skb(bch->rx_skb);
+                               bch->rx_skb = NULL;
+                       }
+                       skb_queue_purge(&bch->tx_queue);
+                       bch->tx_cnt = 0;
+                       bch->rx_ptr = NULL;
                        break;
+               }
+
+               /* timer is only used when at least one b channel */
+               /* is set up to transparent mode */
+               if (l1->hw->mr.timer_usg_cnt) {
+                       Write_hfc8(l1->hw, R_IRQMSK_MISC,
+                                  M_TI_IRQMSK);
+               } else {
+                       Write_hfc8(l1->hw, R_IRQMSK_MISC, 0);
+               }
+
+               break;
+
+       default:
+               printk(KERN_INFO
+                      "HFC-4S/8S: Unknown B-chan cmd 0x%x received, ignored\n",
+                      pr);
+               break;
        }
        if (!l1->enabled)
                bch->b_if.ifc.l1l2(&bch->b_if.ifc,
@@ -742,7 +742,7 @@ rx_d_frame(struct hfc4s8s_l1 *l1p, int ech)
 #ifdef HISAX_HFC4S8S_PCIMEM
                                        Read_hfc8(l1p->hw, A_FIFO_DATA0);
 #else
-                                       fRead_hfc8(l1p->hw);
+                               fRead_hfc8(l1p->hw);
 #endif
 
                                Write_hfc8(l1p->hw, A_INC_RES_FIFO, 1);
@@ -760,7 +760,7 @@ rx_d_frame(struct hfc4s8s_l1 *l1p, int ech)
                while (z1 >= 4) {
 #ifdef HISAX_HFC4S8S_PCIMEM
                        *((unsigned long *) cp) =
-                           Read_hfc32(l1p->hw, A_FIFO_DATA0);
+                               Read_hfc32(l1p->hw, A_FIFO_DATA0);
 #else
                        *((unsigned long *) cp) = fRead_hfc32(l1p->hw);
 #endif
@@ -772,7 +772,7 @@ rx_d_frame(struct hfc4s8s_l1 *l1p, int ech)
 #ifdef HISAX_HFC4S8S_PCIMEM
                        *cp++ = Read_hfc8(l1p->hw, A_FIFO_DATA0);
 #else
-                       *cp++ = fRead_hfc8(l1p->hw);
+               *cp++ = fRead_hfc8(l1p->hw);
 #endif
 
                Write_hfc8(l1p->hw, A_INC_RES_FIFO, 1); /* increment f counter */
@@ -866,10 +866,10 @@ rx_b_frame(struct hfc4s8s_btype *bch)
                while (z1 >= 4) {
 #ifdef HISAX_HFC4S8S_PCIMEM
                        *((unsigned long *) bch->rx_ptr) =
-                           Read_hfc32(l1->hw, A_FIFO_DATA0);
+                               Read_hfc32(l1->hw, A_FIFO_DATA0);
 #else
                        *((unsigned long *) bch->rx_ptr) =
-                           fRead_hfc32(l1->hw);
+                               fRead_hfc32(l1->hw);
 #endif
                        bch->rx_ptr += 4;
                        z1 -= 4;
@@ -879,7 +879,7 @@ rx_b_frame(struct hfc4s8s_btype *bch)
 #ifdef HISAX_HFC4S8S_PCIMEM
                        *(bch->rx_ptr++) = Read_hfc8(l1->hw, A_FIFO_DATA0);
 #else
-                       *(bch->rx_ptr++) = fRead_hfc8(l1->hw);
+               *(bch->rx_ptr++) = fRead_hfc8(l1->hw);
 #endif
 
                if (hdlc_complete) {
@@ -996,7 +996,7 @@ tx_b_frame(struct hfc4s8s_btype *bch)
                if (bch->mode == L1_MODE_HDLC) {
                        hdlc_num = Read_hfc8(l1->hw, A_F1) & MAX_F_CNT;
                        hdlc_num -=
-                           (Read_hfc8_stable(l1->hw, A_F2) & MAX_F_CNT);
+                               (Read_hfc8_stable(l1->hw, A_F2) & MAX_F_CNT);
                        if (hdlc_num < 0)
                                hdlc_num += 16;
                        if (hdlc_num >= 15)
@@ -1008,7 +1008,7 @@ tx_b_frame(struct hfc4s8s_btype *bch)
                        if (!(skb = skb_dequeue(&bch->tx_queue))) {
                                l1->hw->mr.fifo_slow_timer_service[l1->
                                                                   st_num]
-                                   &= ~((bch->bchan == 1) ? 1 : 4);
+                                       &= ~((bch->bchan == 1) ? 1 : 4);
                                break;  /* list empty */
                        }
                        bch->tx_skb = skb;
@@ -1017,10 +1017,10 @@ tx_b_frame(struct hfc4s8s_btype *bch)
 
                if (!hdlc_num)
                        l1->hw->mr.fifo_slow_timer_service[l1->st_num] |=
-                           ((bch->bchan == 1) ? 1 : 4);
+                               ((bch->bchan == 1) ? 1 : 4);
                else
                        l1->hw->mr.fifo_slow_timer_service[l1->st_num] &=
-                           ~((bch->bchan == 1) ? 1 : 4);
+                               ~((bch->bchan == 1) ? 1 : 4);
 
                max = Read_hfc16_stable(l1->hw, A_Z2);
                max -= Read_hfc16(l1->hw, A_Z1);
@@ -1055,7 +1055,7 @@ tx_b_frame(struct hfc4s8s_btype *bch)
 #ifdef HISAX_HFC4S8S_PCIMEM
                        fWrite_hfc8(l1->hw, A_FIFO_DATA0, *cp++);
 #else
-                       fWrite_hfc8(l1->hw, *cp++);
+               fWrite_hfc8(l1->hw, *cp++);
 #endif
 
                if (bch->tx_cnt >= skb->len) {
@@ -1106,8 +1106,8 @@ hfc4s8s_bh(struct work_struct *work)
                                        Write_hfc8(l1p->hw, R_ST_SEL,
                                                   l1p->st_num);
                                        l1p->l1_state =
-                                           Read_hfc8(l1p->hw,
-                                                     A_ST_RD_STA) & 0xf;
+                                               Read_hfc8(l1p->hw,
+                                                         A_ST_RD_STA) & 0xf;
 
                                        if ((oldstate == 3)
                                            && (l1p->l1_state != 3))
@@ -1123,12 +1123,12 @@ hfc4s8s_bh(struct work_struct *work)
                                                del_timer(&l1p->l1_timer);
                                                if (l1p->l1_state == 3) {
                                                        l1p->d_if.ifc.
-                                                           l1l2(&l1p->
-                                                                d_if.ifc,
-                                                                PH_ACTIVATE
-                                                                |
-                                                                INDICATION,
-                                                                NULL);
+                                                               l1l2(&l1p->
+                                                                    d_if.ifc,
+                                                                    PH_ACTIVATE
+                                                                    |
+                                                                    INDICATION,
+                                                                    NULL);
                                                }
                                        } else {
                                                /* allow transition */
@@ -1148,8 +1148,8 @@ hfc4s8s_bh(struct work_struct *work)
                                        Write_hfc8(l1p->hw, R_ST_SEL,
                                                   l1p->st_num);
                                        l1p->l1_state =
-                                           Read_hfc8(l1p->hw,
-                                                     A_ST_RD_STA) & 0xf;
+                                               Read_hfc8(l1p->hw,
+                                                         A_ST_RD_STA) & 0xf;
 
                                        if (((l1p->l1_state == 3) &&
                                             ((oldstate == 7) ||
@@ -1165,26 +1165,26 @@ hfc4s8s_bh(struct work_struct *work)
                                                        del_timer(&l1p->
                                                                  l1_timer);
                                                        l1p->d_if.ifc.
-                                                           l1l2(&l1p->
-                                                                d_if.ifc,
-                                                                PH_ACTIVATE
-                                                                |
-                                                                INDICATION,
-                                                                NULL);
+                                                               l1l2(&l1p->
+                                                                    d_if.ifc,
+                                                                    PH_ACTIVATE
+                                                                    |
+                                                                    INDICATION,
+                                                                    NULL);
                                                        tx_d_frame(l1p);
                                                }
                                                if (l1p->l1_state == 3) {
                                                        if (oldstate != 3)
                                                                l1p->d_if.
-                                                                   ifc.
-                                                                   l1l2
-                                                                   (&l1p->
-                                                                    d_if.
-                                                                    ifc,
-                                                                    PH_DEACTIVATE
-                                                                    |
-                                                                    INDICATION,
-                                                                    NULL);
+                                                                       ifc.
+                                                                       l1l2
+                                                                       (&l1p->
+                                                                        d_if.
+                                                                        ifc,
+                                                                        PH_DEACTIVATE
+                                                                        |
+                                                                        INDICATION,
+                                                                        NULL);
                                                }
                                        }
                                        printk(KERN_INFO
@@ -1209,8 +1209,8 @@ hfc4s8s_bh(struct work_struct *work)
                        *fifo_stat |= hw->mr.fifo_rx_trans_enables[idx];
                        if (hw->fifo_sched_cnt <= 0) {
                                *fifo_stat |=
-                                   hw->mr.fifo_slow_timer_service[l1p->
-                                                                  st_num];
+                                       hw->mr.fifo_slow_timer_service[l1p->
+                                                                      st_num];
                        }
                }
                /* ignore fifo 6 (TX E fifo) */
@@ -1288,10 +1288,10 @@ hfc4s8s_interrupt(int intno, void *dev_id)
 
        /* Layer 1 State change */
        hw->mr.r_irq_statech |=
-           (Read_hfc8(hw, R_SCI) & hw->mr.r_irqmsk_statchg);
+               (Read_hfc8(hw, R_SCI) & hw->mr.r_irqmsk_statchg);
        if (!
            (b = (Read_hfc8(hw, R_STATUS) & (M_MISC_IRQSTA | M_FR_IRQSTA)))
-&& !hw->mr.r_irq_statech) {
+           && !hw->mr.r_irq_statech) {
 #ifndef        HISAX_HFC4S8S_PCIMEM
                SetRegAddr(hw, old_ioreg);
 #endif
@@ -1332,7 +1332,7 @@ hfc4s8s_interrupt(int intno, void *dev_id)
 /* reset the complete chip, don't release the chips irq but disable it */
 /***********************************************************************/
 static void
-chipreset(hfc4s8s_hw * hw)
+chipreset(hfc4s8s_hw *hw)
 {
        u_long flags;
 
@@ -1361,7 +1361,7 @@ chipreset(hfc4s8s_hw * hw)
 /* disable/enable hardware in nt or te mode */
 /********************************************/
 static void
-hfc_hardware_enable(hfc4s8s_hw * hw, int enable, int nt_mode)
+hfc_hardware_enable(hfc4s8s_hw *hw, int enable, int nt_mode)
 {
        u_long flags;
        char if_name[40];
@@ -1468,7 +1468,7 @@ hfc_hardware_enable(hfc4s8s_hw * hw, int enable, int nt_mode)
 /* disable memory mapped ports / io ports */
 /******************************************/
 static void
-release_pci_ports(hfc4s8s_hw * hw)
+release_pci_ports(hfc4s8s_hw *hw)
 {
        pci_write_config_word(hw->pdev, PCI_COMMAND, 0);
 #ifdef HISAX_HFC4S8S_PCIMEM
@@ -1484,7 +1484,7 @@ release_pci_ports(hfc4s8s_hw * hw)
 /* enable memory mapped ports / io ports */
 /*****************************************/
 static void
-enable_pci_ports(hfc4s8s_hw * hw)
+enable_pci_ports(hfc4s8s_hw *hw)
 {
 #ifdef HISAX_HFC4S8S_PCIMEM
        pci_write_config_word(hw->pdev, PCI_COMMAND, PCI_ENA_MEMIO);
@@ -1498,7 +1498,7 @@ enable_pci_ports(hfc4s8s_hw * hw)
 /* return 0 on success.              */
 /*************************************/
 static int __devinit
-setup_instance(hfc4s8s_hw * hw)
+setup_instance(hfc4s8s_hw *hw)
 {
        int err = -EIO;
        int i;
@@ -1575,7 +1575,7 @@ setup_instance(hfc4s8s_hw * hw)
 
        return (0);
 
-      out:
+out:
        hw->irq = 0;
        release_pci_ports(hw);
        kfree(hw);
@@ -1632,7 +1632,7 @@ hfc4s8s_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                card_cnt++;
        return (err);
 
-      out:
+out:
        kfree(hw);
        return (err);
 }
@@ -1660,10 +1660,10 @@ hfc4s8s_remove(struct pci_dev *pdev)
 }
 
 static struct pci_driver hfc4s8s_driver = {
-      .name    = "hfc4s8s_l1",
-      .probe   = hfc4s8s_probe,
-      .remove  = __devexit_p(hfc4s8s_remove),
-      .id_table        = hfc4s8s_ids,
+       .name   = "hfc4s8s_l1",
+       .probe  = hfc4s8s_probe,
+       .remove = __devexit_p(hfc4s8s_remove),
+       .id_table       = hfc4s8s_ids,
 };
 
 /**********************/
@@ -1697,7 +1697,7 @@ hfc4s8s_module_init(void)
 #endif
 
        return 0;
-      out:
+out:
        return (err);
 }                              /* hfc4s8s_init_hw */
 
index 9d5d2a5..6a8f891 100644 (file)
 
 
 /*
-*  include Genero generated HFC-4S/8S header file hfc48scu.h
-*  for complete register description. This will define _HFC48SCU_H_
-*  to prevent redefinitions
-*/
+ *  include Genero generated HFC-4S/8S header file hfc48scu.h
+ *  for complete register description. This will define _HFC48SCU_H_
+ *  to prevent redefinitions
+ */
 
 // #include "hfc48scu.h"
 
index a16459a..a756e5c 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 #include "isdnl1.h"
 #include <linux/interrupt.h>
 /*
-#define KDEBUG_DEF
-#include "kdebug.h"
+  #define KDEBUG_DEF
+  #include "kdebug.h"
 */
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static void
-dummyf(struct IsdnCardState *cs, u_char * data, int size)
+dummyf(struct IsdnCardState *cs, u_char *data, int size)
 {
        printk(KERN_WARNING "HiSax: hfcd dummy fifo called\n");
 }
@@ -37,7 +37,7 @@ ReadReg(struct IsdnCardState *cs, int data, u_char reg)
        register u_char ret;
 
        if (data) {
-               if (cs->hw.hfcD.cip != reg) { 
+               if (cs->hw.hfcD.cip != reg) {
                        cs->hw.hfcD.cip = reg;
                        byteout(cs->hw.hfcD.addr | 1, reg);
                }
@@ -54,7 +54,7 @@ ReadReg(struct IsdnCardState *cs, int data, u_char reg)
 static inline void
 WriteReg(struct IsdnCardState *cs, int data, u_char reg, u_char value)
 {
-       if (cs->hw.hfcD.cip != reg) { 
+       if (cs->hw.hfcD.cip != reg) {
                cs->hw.hfcD.cip = reg;
                byteout(cs->hw.hfcD.addr | 1, reg);
        }
@@ -71,7 +71,7 @@ WriteReg(struct IsdnCardState *cs, int data, u_char reg, u_char value)
 static u_char
 readreghfcd(struct IsdnCardState *cs, u_char offset)
 {
-       return(ReadReg(cs, HFCD_DATA, offset));
+       return (ReadReg(cs, HFCD_DATA, offset));
 }
 
 static void
@@ -103,7 +103,7 @@ WaitNoBusy(struct IsdnCardState *cs)
                udelay(1);
                to--;
        }
-       if (!to) 
+       if (!to)
                printk(KERN_WARNING "HiSax: WaitNoBusy timeout\n");
        return (to);
 }
@@ -114,29 +114,29 @@ SelFiFo(struct IsdnCardState *cs, u_char FiFo)
        u_char cip;
 
        if (cs->hw.hfcD.fifo == FiFo)
-               return(1);
-       switch(FiFo) {
-               case 0: cip = HFCB_FIFO | HFCB_Z1 | HFCB_SEND | HFCB_B1;
-                       break;
-               case 1: cip = HFCB_FIFO | HFCB_Z1 | HFCB_REC | HFCB_B1;
-                       break;
-               case 2: cip = HFCB_FIFO | HFCB_Z1 | HFCB_SEND | HFCB_B2;
-                       break;
-               case 3: cip = HFCB_FIFO | HFCB_Z1 | HFCB_REC | HFCB_B2;
-                       break;
-               case 4: cip = HFCD_FIFO | HFCD_Z1 | HFCD_SEND;
-                       break;
-               case 5: cip = HFCD_FIFO | HFCD_Z1 | HFCD_REC;
-                       break;
-               default:
-                       debugl1(cs, "SelFiFo Error");
-                       return(0);
+               return (1);
+       switch (FiFo) {
+       case 0: cip = HFCB_FIFO | HFCB_Z1 | HFCB_SEND | HFCB_B1;
+               break;
+       case 1: cip = HFCB_FIFO | HFCB_Z1 | HFCB_REC | HFCB_B1;
+               break;
+       case 2: cip = HFCB_FIFO | HFCB_Z1 | HFCB_SEND | HFCB_B2;
+               break;
+       case 3: cip = HFCB_FIFO | HFCB_Z1 | HFCB_REC | HFCB_B2;
+               break;
+       case 4: cip = HFCD_FIFO | HFCD_Z1 | HFCD_SEND;
+               break;
+       case 5: cip = HFCD_FIFO | HFCD_Z1 | HFCD_REC;
+               break;
+       default:
+               debugl1(cs, "SelFiFo Error");
+               return (0);
        }
        cs->hw.hfcD.fifo = FiFo;
        WaitNoBusy(cs);
        cs->BC_Write_Reg(cs, HFCD_DATA, cip, 0);
        WaitForBusy(cs);
-       return(2);
+       return (2);
 }
 
 static int
@@ -188,7 +188,7 @@ static struct sk_buff
        int idx;
        int chksum;
        u_char stat, cip;
-       
+
        if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
                debugl1(cs, "hfc_empty_fifo");
        idx = 0;
@@ -252,7 +252,7 @@ static struct sk_buff
        WaitForBusy(cs);
        WaitNoBusy(cs);
        stat = ReadReg(cs, HFCD_DATA, HFCB_FIFO | HFCB_F2_INC |
-               HFCB_REC | HFCB_CHANNEL(bcs->channel));
+                      HFCB_REC | HFCB_CHANNEL(bcs->channel));
        WaitForBusy(cs);
        return (skb);
 }
@@ -269,7 +269,7 @@ hfc_fill_fifo(struct BCState *bcs)
                return;
        if (bcs->tx_skb->len <= 0)
                return;
-       SelFiFo(cs, HFCB_SEND | HFCB_CHANNEL(bcs->channel)); 
+       SelFiFo(cs, HFCB_SEND | HFCB_CHANNEL(bcs->channel));
        cip = HFCB_FIFO | HFCB_F1 | HFCB_SEND | HFCB_CHANNEL(bcs->channel);
        WaitNoBusy(cs);
        bcs->hw.hfc.f1 = ReadReg(cs, HFCD_DATA, cip);
@@ -278,7 +278,7 @@ hfc_fill_fifo(struct BCState *bcs)
        WaitNoBusy(cs);
        bcs->hw.hfc.f2 = ReadReg(cs, HFCD_DATA, cip);
        bcs->hw.hfc.send[bcs->hw.hfc.f1] = ReadZReg(cs, HFCB_FIFO | HFCB_Z1 | HFCB_SEND | HFCB_CHANNEL(bcs->channel));
-       if (cs->debug & L1_DEB_HSCX)
+       if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "hfc_fill_fifo %d f1(%d) f2(%d) z1(%x)",
                        bcs->channel, bcs->hw.hfc.f1, bcs->hw.hfc.f2,
                        bcs->hw.hfc.send[bcs->hw.hfc.f1]);
@@ -316,8 +316,8 @@ hfc_fill_fifo(struct BCState *bcs)
                printk(KERN_WARNING "HFC S FIFO channel %d BUSY Error\n", bcs->channel);
        } else {
                bcs->tx_cnt -= bcs->tx_skb->len;
-               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                        u_long  flags;
                        spin_lock_irqsave(&bcs->aclock, flags);
                        bcs->ackcnt += bcs->tx_skb->len;
@@ -339,12 +339,12 @@ static void
 hfc_send_data(struct BCState *bcs)
 {
        struct IsdnCardState *cs = bcs->cs;
-       
+
        if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                hfc_fill_fifo(bcs);
                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
        } else
-               debugl1(cs,"send_data %d blocked", bcs->channel);
+               debugl1(cs, "send_data %d blocked", bcs->channel);
 }
 
 static void
@@ -356,10 +356,10 @@ main_rec_2bds0(struct BCState *bcs)
        int receive, count = 5;
        struct sk_buff *skb;
 
-    Begin:
+Begin:
        count--;
        if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
-               debugl1(cs,"rec_data %d blocked", bcs->channel);
+               debugl1(cs, "rec_data %d blocked", bcs->channel);
                return;
        }
        SelFiFo(cs, HFCB_REC | HFCB_CHANNEL(bcs->channel));
@@ -386,10 +386,10 @@ main_rec_2bds0(struct BCState *bcs)
                        skb_queue_tail(&bcs->rqueue, skb);
                        schedule_event(bcs, B_RCVBUFREADY);
                }
-               rcnt = f1 -f2;
-               if (rcnt<0)
+               rcnt = f1 - f2;
+               if (rcnt < 0)
                        rcnt += 32;
-               if (rcnt>1)
+               if (rcnt > 1)
                        receive = 1;
                else
                        receive = 0;
@@ -397,7 +397,7 @@ main_rec_2bds0(struct BCState *bcs)
                receive = 0;
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
        if (count && receive)
-               goto Begin;     
+               goto Begin;
        return;
 }
 
@@ -412,37 +412,37 @@ mode_2bs0(struct BCState *bcs, int mode, int bc)
        bcs->mode = mode;
        bcs->channel = bc;
        switch (mode) {
-               case (L1_MODE_NULL):
-                       if (bc) {
-                               cs->hw.hfcD.conn |= 0x18;
-                               cs->hw.hfcD.sctrl &= ~SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcD.conn |= 0x3;
-                               cs->hw.hfcD.sctrl &= ~SCTRL_B1_ENA;
-                       }
-                       break;
-               case (L1_MODE_TRANS):
-                       if (bc) {
-                               cs->hw.hfcD.ctmt |= 2;
-                               cs->hw.hfcD.conn &= ~0x18;
-                               cs->hw.hfcD.sctrl |= SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcD.ctmt |= 1;
-                               cs->hw.hfcD.conn &= ~0x3;
-                               cs->hw.hfcD.sctrl |= SCTRL_B1_ENA;
-                       }
-                       break;
-               case (L1_MODE_HDLC):
-                       if (bc) {
-                               cs->hw.hfcD.ctmt &= ~2;
-                               cs->hw.hfcD.conn &= ~0x18;
-                               cs->hw.hfcD.sctrl |= SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcD.ctmt &= ~1;
-                               cs->hw.hfcD.conn &= ~0x3;
-                               cs->hw.hfcD.sctrl |= SCTRL_B1_ENA;
-                       }
-                       break;
+       case (L1_MODE_NULL):
+               if (bc) {
+                       cs->hw.hfcD.conn |= 0x18;
+                       cs->hw.hfcD.sctrl &= ~SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcD.conn |= 0x3;
+                       cs->hw.hfcD.sctrl &= ~SCTRL_B1_ENA;
+               }
+               break;
+       case (L1_MODE_TRANS):
+               if (bc) {
+                       cs->hw.hfcD.ctmt |= 2;
+                       cs->hw.hfcD.conn &= ~0x18;
+                       cs->hw.hfcD.sctrl |= SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcD.ctmt |= 1;
+                       cs->hw.hfcD.conn &= ~0x3;
+                       cs->hw.hfcD.sctrl |= SCTRL_B1_ENA;
+               }
+               break;
+       case (L1_MODE_HDLC):
+               if (bc) {
+                       cs->hw.hfcD.ctmt &= ~2;
+                       cs->hw.hfcD.conn &= ~0x18;
+                       cs->hw.hfcD.sctrl |= SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcD.ctmt &= ~1;
+                       cs->hw.hfcD.conn &= ~0x3;
+                       cs->hw.hfcD.sctrl |= SCTRL_B1_ENA;
+               }
+               break;
        }
        WriteReg(cs, HFCD_DATA, HFCD_SCTRL, cs->hw.hfcD.sctrl);
        WriteReg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcD.ctmt);
@@ -457,53 +457,53 @@ hfc_l2l1(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
 //                             test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
-                       } else {
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
+               } else {
 //                             test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->tx_skb = skb;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       mode_2bs0(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       mode_2bs0(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+                       bcs->tx_skb = skb;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               mode_2bs0(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               mode_2bs0(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -558,23 +558,23 @@ hfcd_bh(struct work_struct *work)
 
        if (test_and_clear_bit(D_L1STATECHANGE, &cs->event)) {
                switch (cs->dc.hfcd.ph_state) {
-                       case (0):
-                               l1_msg(cs, HW_RESET | INDICATION, NULL);
-                               break;
-                       case (3):
-                               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                               break;
-                       case (8):
-                               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                               break;
-                       case (6):
-                               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                               break;
-                       case (7):
-                               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                               break;
-                       default:
-                               break;
+               case (0):
+                       l1_msg(cs, HW_RESET | INDICATION, NULL);
+                       break;
+               case (3):
+                       l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+                       break;
+               case (8):
+                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+                       break;
+               case (6):
+                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+                       break;
+               case (7):
+                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+                       break;
+               default:
+                       break;
                }
        }
        if (test_and_clear_bit(D_RCVBUFREADY, &cs->event))
@@ -591,12 +591,12 @@ int receive_dmsg(struct IsdnCardState *cs)
        int rcnt, z1, z2;
        u_char stat, cip, f1, f2;
        int chksum;
-       int count=5;
+       int count = 5;
        u_char *ptr;
 
        if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                debugl1(cs, "rec_dmsg blocked");
-               return(1);
+               return (1);
        }
        SelFiFo(cs, 4 | HFCD_REC);
        cip = HFCD_FIFO | HFCD_F1 | HFCD_REC;
@@ -682,8 +682,8 @@ int receive_dmsg(struct IsdnCardState *cs)
                f2 = cs->readisac(cs, cip) & 0xf;
        }
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
-       return(1);
-} 
+       return (1);
+}
 
 static void
 hfc_fill_dfifo(struct IsdnCardState *cs)
@@ -750,23 +750,23 @@ hfc_fill_dfifo(struct IsdnCardState *cs)
        return;
 }
 
-static 
+static
 struct BCState *Sel_BCS(struct IsdnCardState *cs, int channel)
 {
        if (cs->bcs[0].mode && (cs->bcs[0].channel == channel))
-               return(&cs->bcs[0]);
+               return (&cs->bcs[0]);
        else if (cs->bcs[1].mode && (cs->bcs[1].channel == channel))
-               return(&cs->bcs[1]);
+               return (&cs->bcs[1]);
        else
-               return(NULL);
+               return (NULL);
 }
 
 void
 hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
 {
-               u_char exval;
-               struct BCState *bcs;
-       int count=15;
+       u_char exval;
+       struct BCState *bcs;
+       int count = 15;
 
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "HFCD irq %x %s", val,
@@ -789,25 +789,25 @@ hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
                }
                if (cs->hw.hfcD.int_s1 & 0x18) {
                        exval = val;
-                       val =  cs->hw.hfcD.int_s1;
+                       val = cs->hw.hfcD.int_s1;
                        cs->hw.hfcD.int_s1 = exval;
-               }       
+               }
                if (val & 0x08) {
-                       if (!(bcs=Sel_BCS(cs, 0))) {
+                       if (!(bcs = Sel_BCS(cs, 0))) {
                                if (cs->debug)
                                        debugl1(cs, "hfcd spurious 0x08 IRQ");
-                       } else 
+                       } else
                                main_rec_2bds0(bcs);
                }
                if (val & 0x10) {
-                       if (!(bcs=Sel_BCS(cs, 1))) {
+                       if (!(bcs = Sel_BCS(cs, 1))) {
                                if (cs->debug)
                                        debugl1(cs, "hfcd spurious 0x10 IRQ");
-                       } else 
+                       } else
                                main_rec_2bds0(bcs);
                }
                if (val & 0x01) {
-                       if (!(bcs=Sel_BCS(cs, 0))) {
+                       if (!(bcs = Sel_BCS(cs, 0))) {
                                if (cs->debug)
                                        debugl1(cs, "hfcd spurious 0x01 IRQ");
                        } else {
@@ -816,14 +816,14 @@ hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
                                                hfc_fill_fifo(bcs);
                                                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                                        } else
-                                               debugl1(cs,"fill_data %d blocked", bcs->channel);
+                                               debugl1(cs, "fill_data %d blocked", bcs->channel);
                                } else {
                                        if ((bcs->tx_skb = skb_dequeue(&bcs->squeue))) {
                                                if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                                                        hfc_fill_fifo(bcs);
                                                        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                                                } else
-                                                       debugl1(cs,"fill_data %d blocked", bcs->channel);
+                                                       debugl1(cs, "fill_data %d blocked", bcs->channel);
                                        } else {
                                                schedule_event(bcs, B_XMTBUFREADY);
                                        }
@@ -831,7 +831,7 @@ hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
                        }
                }
                if (val & 0x02) {
-                       if (!(bcs=Sel_BCS(cs, 1))) {
+                       if (!(bcs = Sel_BCS(cs, 1))) {
                                if (cs->debug)
                                        debugl1(cs, "hfcd spurious 0x02 IRQ");
                        } else {
@@ -840,14 +840,14 @@ hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
                                                hfc_fill_fifo(bcs);
                                                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                                        } else
-                                               debugl1(cs,"fill_data %d blocked", bcs->channel);
+                                               debugl1(cs, "fill_data %d blocked", bcs->channel);
                                } else {
                                        if ((bcs->tx_skb = skb_dequeue(&bcs->squeue))) {
                                                if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                                                        hfc_fill_fifo(bcs);
                                                        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                                                } else
-                                                       debugl1(cs,"fill_data %d blocked", bcs->channel);
+                                                       debugl1(cs, "fill_data %d blocked", bcs->channel);
                                        } else {
                                                schedule_event(bcs, B_XMTBUFREADY);
                                        }
@@ -888,7 +888,7 @@ hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
                        } else
                                schedule_event(cs, D_XMTBUFREADY);
                }
-      afterXPR:
+       afterXPR:
                if (cs->hw.hfcD.int_s1 && count--) {
                        val = cs->hw.hfcD.int_s1;
                        cs->hw.hfcD.int_s1 = 0;
@@ -905,105 +905,105 @@ HFCD_l1hw(struct PStack *st, int pr, void *arg)
        struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware;
        struct sk_buff *skb = arg;
        u_long flags;
-       
+
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
-#ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                               if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
-                                       hfc_fill_dfifo(cs);
-                                       test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
-                               } else
-                                       debugl1(cs, "hfc_fill_dfifo blocked");
-
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
                        if (cs->debug & L1_DEB_LAPD)
-                               Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                               Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
                        if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                                hfc_fill_dfifo(cs);
                                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                        } else
                                debugl1(cs, "hfc_fill_dfifo blocked");
+
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        break;
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD)
+                       Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->writeisac(cs, HFCD_STATES, HFCD_LOAD_STATE | 3); /* HFC ST 3 */
-                       udelay(6);
-                       cs->writeisac(cs, HFCD_STATES, 3); /* HFC ST 2 */
-                       cs->hw.hfcD.mst_m |= HFCD_MASTER;
-                       cs->writeisac(cs, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
-                       cs->writeisac(cs, HFCD_STATES, HFCD_ACTIVATE | HFCD_DO_ACTION);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                       break;
-               case (HW_ENABLE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->writeisac(cs, HFCD_STATES, HFCD_ACTIVATE | HFCD_DO_ACTION);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_DEACTIVATE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcD.mst_m &= ~HFCD_MASTER;
-                       cs->writeisac(cs, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcD.mst_m |= HFCD_MASTER;
-                       cs->writeisac(cs, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               default:
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "hfcd_l1hw unknown pr %4x", pr);
-                       break;
+               if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
+                       hfc_fill_dfifo(cs);
+                       test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
+               } else
+                       debugl1(cs, "hfc_fill_dfifo blocked");
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG           /* psa */
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "-> PH_REQUEST_PULL");
+#endif
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->writeisac(cs, HFCD_STATES, HFCD_LOAD_STATE | 3); /* HFC ST 3 */
+               udelay(6);
+               cs->writeisac(cs, HFCD_STATES, 3); /* HFC ST 2 */
+               cs->hw.hfcD.mst_m |= HFCD_MASTER;
+               cs->writeisac(cs, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
+               cs->writeisac(cs, HFCD_STATES, HFCD_ACTIVATE | HFCD_DO_ACTION);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               break;
+       case (HW_ENABLE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->writeisac(cs, HFCD_STATES, HFCD_ACTIVATE | HFCD_DO_ACTION);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_DEACTIVATE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcD.mst_m &= ~HFCD_MASTER;
+               cs->writeisac(cs, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO3 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcD.mst_m |= HFCD_MASTER;
+               cs->writeisac(cs, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "hfcd_l1hw unknown pr %4x", pr);
+               break;
        }
 }
 
@@ -1027,11 +1027,11 @@ static unsigned int
        if (!(send = kmalloc(cnt * sizeof(unsigned int), GFP_ATOMIC))) {
                printk(KERN_WARNING
                       "HiSax: No memory for hfcd.send\n");
-               return(NULL);
+               return (NULL);
        }
        for (i = 0; i < cnt; i++)
                send[i] = 0x1fff;
-       return(send);
+       return (send);
 }
 
 void
index 30f1924..8c7582a 100644 (file)
@@ -4,26 +4,26 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
 
-#define HFCD_CIRM      0x18
+#define HFCD_CIRM      0x18
 #define HFCD_CTMT      0x19
-#define HFCD_INT_M1    0x1A
-#define HFCD_INT_M2    0x1B
-#define HFCD_INT_S1    0x1E
-#define HFCD_STAT      0x1C
-#define HFCD_STAT_DISB  0x1D
-#define HFCD_STATES    0x30
-#define HFCD_SCTRL     0x31
-#define HFCD_TEST      0x32
-#define HFCD_SQ        0x34
-#define HFCD_CLKDEL    0x37
+#define HFCD_INT_M1    0x1A
+#define HFCD_INT_M2    0x1B
+#define HFCD_INT_S1    0x1E
+#define HFCD_STAT      0x1C
+#define HFCD_STAT_DISB 0x1D
+#define HFCD_STATES    0x30
+#define HFCD_SCTRL     0x31
+#define HFCD_TEST      0x32
+#define HFCD_SQ                0x34
+#define HFCD_CLKDEL    0x37
 #define HFCD_MST_MODE  0x2E
-#define HFCD_CONN      0x2F
+#define HFCD_CONN      0x2F
 
 #define HFCD_FIFO      0x80
 #define HFCD_Z1                0x10
@@ -79,7 +79,7 @@
 #define HFCD_TRANSB1 0x01
 
 /* CIRM (Write) */
-#define HFCD_RESET     0x08
+#define HFCD_RESET     0x08
 #define HFCD_MEM8K     0x10
 #define HFCD_INTA      0x01
 #define HFCD_INTB      0x02
index 626f85d..838531b 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -181,9 +181,9 @@ hfc_empty_fifo(struct BCState *bcs, int count)
                return (NULL);
        }
        if (bcs->mode == L1_MODE_TRANS)
-         count -= 1;
+               count -= 1;
        else
-         count -= 3;
+               count -= 3;
        if (!(skb = dev_alloc_skb(count)))
                printk(KERN_WARNING "HFC: receive out of memory\n");
        else {
@@ -199,35 +199,35 @@ hfc_empty_fifo(struct BCState *bcs, int count)
                        printk(KERN_WARNING "HFC FIFO channel %d BUSY Error\n", bcs->channel);
                        dev_kfree_skb_any(skb);
                        if (bcs->mode != L1_MODE_TRANS) {
-                         WaitNoBusy(cs);
-                         stat = cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F2_INC | HFC_REC |
-                                                HFC_CHANNEL(bcs->channel));
-                         WaitForBusy(cs);
+                               WaitNoBusy(cs);
+                               stat = cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F2_INC | HFC_REC |
+                                                      HFC_CHANNEL(bcs->channel));
+                               WaitForBusy(cs);
                        }
                        return (NULL);
                }
                if (bcs->mode != L1_MODE_TRANS) {
-                 WaitNoBusy(cs);
-                 chksum = (cs->BC_Read_Reg(cs, HFC_DATA, cip) << 8);
-                 WaitNoBusy(cs);
-                 chksum += cs->BC_Read_Reg(cs, HFC_DATA, cip);
-                 WaitNoBusy(cs);
-                 stat = cs->BC_Read_Reg(cs, HFC_DATA, cip);
-                 if (cs->debug & L1_DEB_HSCX)
-                   debugl1(cs, "hfc_empty_fifo %d chksum %x stat %x",
-                           bcs->channel, chksum, stat);
-                 if (stat) {
-                   debugl1(cs, "FIFO CRC error");
-                   dev_kfree_skb_any(skb);
-                   skb = NULL;
+                       WaitNoBusy(cs);
+                       chksum = (cs->BC_Read_Reg(cs, HFC_DATA, cip) << 8);
+                       WaitNoBusy(cs);
+                       chksum += cs->BC_Read_Reg(cs, HFC_DATA, cip);
+                       WaitNoBusy(cs);
+                       stat = cs->BC_Read_Reg(cs, HFC_DATA, cip);
+                       if (cs->debug & L1_DEB_HSCX)
+                               debugl1(cs, "hfc_empty_fifo %d chksum %x stat %x",
+                                       bcs->channel, chksum, stat);
+                       if (stat) {
+                               debugl1(cs, "FIFO CRC error");
+                               dev_kfree_skb_any(skb);
+                               skb = NULL;
 #ifdef ERROR_STATISTIC
-                   bcs->err_crc++;
+                               bcs->err_crc++;
 #endif
-                 }
-                 WaitNoBusy(cs);
-                 stat = cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F2_INC | HFC_REC |
-                                        HFC_CHANNEL(bcs->channel));
-                 WaitForBusy(cs);
+                       }
+                       WaitNoBusy(cs);
+                       stat = cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F2_INC | HFC_REC |
+                                              HFC_CHANNEL(bcs->channel));
+                       WaitForBusy(cs);
                }
        }
        return (skb);
@@ -249,37 +249,37 @@ hfc_fill_fifo(struct BCState *bcs)
 
        cip = HFC_CIP | HFC_F1 | HFC_SEND | HFC_CHANNEL(bcs->channel);
        if ((cip & 0xc3) != (cs->hw.hfc.cip & 0xc3)) {
-         cs->BC_Write_Reg(cs, HFC_STATUS, cip, cip);
-         WaitForBusy(cs);
+               cs->BC_Write_Reg(cs, HFC_STATUS, cip, cip);
+               WaitForBusy(cs);
        }
        WaitNoBusy(cs);
        if (bcs->mode != L1_MODE_TRANS) {
-         bcs->hw.hfc.f1 = cs->BC_Read_Reg(cs, HFC_DATA, cip);
-         cip = HFC_CIP | HFC_F2 | HFC_SEND | HFC_CHANNEL(bcs->channel);
-         WaitNoBusy(cs);
-         bcs->hw.hfc.f2 = cs->BC_Read_Reg(cs, HFC_DATA, cip);
-         bcs->hw.hfc.send[bcs->hw.hfc.f1] = ReadZReg(bcs, HFC_Z1 | HFC_SEND | HFC_CHANNEL(bcs->channel));
-         if (cs->debug & L1_DEB_HSCX)
-           debugl1(cs, "hfc_fill_fifo %d f1(%d) f2(%d) z1(%x)",
-                   bcs->channel, bcs->hw.hfc.f1, bcs->hw.hfc.f2,
-                   bcs->hw.hfc.send[bcs->hw.hfc.f1]);
-         fcnt = bcs->hw.hfc.f1 - bcs->hw.hfc.f2;
-         if (fcnt < 0)
-           fcnt += 32;
-         if (fcnt > 30) {
-           if (cs->debug & L1_DEB_HSCX)
-             debugl1(cs, "hfc_fill_fifo more as 30 frames");
-           return;
-         }
-         count = GetFreeFifoBytes(bcs);
-       } 
+               bcs->hw.hfc.f1 = cs->BC_Read_Reg(cs, HFC_DATA, cip);
+               cip = HFC_CIP | HFC_F2 | HFC_SEND | HFC_CHANNEL(bcs->channel);
+               WaitNoBusy(cs);
+               bcs->hw.hfc.f2 = cs->BC_Read_Reg(cs, HFC_DATA, cip);
+               bcs->hw.hfc.send[bcs->hw.hfc.f1] = ReadZReg(bcs, HFC_Z1 | HFC_SEND | HFC_CHANNEL(bcs->channel));
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "hfc_fill_fifo %d f1(%d) f2(%d) z1(%x)",
+                               bcs->channel, bcs->hw.hfc.f1, bcs->hw.hfc.f2,
+                               bcs->hw.hfc.send[bcs->hw.hfc.f1]);
+               fcnt = bcs->hw.hfc.f1 - bcs->hw.hfc.f2;
+               if (fcnt < 0)
+                       fcnt += 32;
+               if (fcnt > 30) {
+                       if (cs->debug & L1_DEB_HSCX)
+                               debugl1(cs, "hfc_fill_fifo more as 30 frames");
+                       return;
+               }
+               count = GetFreeFifoBytes(bcs);
+       }
        else {
-         WaitForBusy(cs);
-         z1 = ReadZReg(bcs, HFC_Z1 | HFC_REC | HFC_CHANNEL(bcs->channel));
-         z2 = ReadZReg(bcs, HFC_Z2 | HFC_REC | HFC_CHANNEL(bcs->channel));
-         count = z1 - z2;
-         if (count < 0)
-           count += cs->hw.hfc.fifosize; 
+               WaitForBusy(cs);
+               z1 = ReadZReg(bcs, HFC_Z1 | HFC_REC | HFC_CHANNEL(bcs->channel));
+               z2 = ReadZReg(bcs, HFC_Z2 | HFC_REC | HFC_CHANNEL(bcs->channel));
+               count = z1 - z2;
+               if (count < 0)
+                       count += cs->hw.hfc.fifosize;
        } /* L1_MODE_TRANS */
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "hfc_fill_fifo %d count(%u/%d)",
@@ -305,12 +305,12 @@ hfc_fill_fifo(struct BCState *bcs)
                dev_kfree_skb_any(bcs->tx_skb);
                bcs->tx_skb = NULL;
                if (bcs->mode != L1_MODE_TRANS) {
-                 WaitForBusy(cs);
-                 WaitNoBusy(cs);
-                 cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F1_INC | HFC_SEND | HFC_CHANNEL(bcs->channel));
+                       WaitForBusy(cs);
+                       WaitNoBusy(cs);
+                       cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F1_INC | HFC_SEND | HFC_CHANNEL(bcs->channel));
                }
-               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                       (count >= 0)) {
+               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                   (count >= 0)) {
                        u_long  flags;
                        spin_lock_irqsave(&bcs->aclock, flags);
                        bcs->ackcnt += count;
@@ -331,7 +331,7 @@ main_irq_hfc(struct BCState *bcs)
        int receive, transmit, count = 5;
        struct sk_buff *skb;
 
-      Begin:
+Begin:
        count--;
        cip = HFC_CIP | HFC_F1 | HFC_REC | HFC_CHANNEL(bcs->channel);
        if ((cip & 0xc3) != (cs->hw.hfc.cip & 0xc3)) {
@@ -349,7 +349,7 @@ main_irq_hfc(struct BCState *bcs)
                        if (cs->debug & L1_DEB_HSCX)
                                debugl1(cs, "hfc rec %d f1(%d) f2(%d)",
                                        bcs->channel, f1, f2);
-                       receive = 1; 
+                       receive = 1;
                }
        }
        if (receive || (bcs->mode == L1_MODE_TRANS)) {
@@ -407,41 +407,41 @@ mode_hfc(struct BCState *bcs, int mode, int bc)
        bcs->channel = bc;
 
        switch (mode) {
-               case (L1_MODE_NULL):
-                       if (bc) {
-                               cs->hw.hfc.ctmt &= ~1;
-                               cs->hw.hfc.isac_spcr &= ~0x03;
-                       }
-                       else {
-                               cs->hw.hfc.ctmt &= ~2;
-                               cs->hw.hfc.isac_spcr &= ~0x0c;
-                       }
-                       break;
-               case (L1_MODE_TRANS):
-                       cs->hw.hfc.ctmt &= ~(1 << bc); /* set HDLC mode */ 
-                       cs->BC_Write_Reg(cs, HFC_STATUS, cs->hw.hfc.ctmt, cs->hw.hfc.ctmt);
-                       hfc_clear_fifo(bcs); /* complete fifo clear */ 
-                       if (bc) {
-                               cs->hw.hfc.ctmt |= 1;
-                               cs->hw.hfc.isac_spcr &= ~0x03;
-                               cs->hw.hfc.isac_spcr |= 0x02;
-                       } else {
-                               cs->hw.hfc.ctmt |= 2;
-                               cs->hw.hfc.isac_spcr &= ~0x0c;
-                               cs->hw.hfc.isac_spcr |= 0x08;
-                       }
-                       break;
-               case (L1_MODE_HDLC):
-                       if (bc) {
-                               cs->hw.hfc.ctmt &= ~1;
-                               cs->hw.hfc.isac_spcr &= ~0x03;
-                               cs->hw.hfc.isac_spcr |= 0x02;
-                       } else {
-                               cs->hw.hfc.ctmt &= ~2;
-                               cs->hw.hfc.isac_spcr &= ~0x0c;
-                               cs->hw.hfc.isac_spcr |= 0x08;
-                       }
-                       break;
+       case (L1_MODE_NULL):
+               if (bc) {
+                       cs->hw.hfc.ctmt &= ~1;
+                       cs->hw.hfc.isac_spcr &= ~0x03;
+               }
+               else {
+                       cs->hw.hfc.ctmt &= ~2;
+                       cs->hw.hfc.isac_spcr &= ~0x0c;
+               }
+               break;
+       case (L1_MODE_TRANS):
+               cs->hw.hfc.ctmt &= ~(1 << bc); /* set HDLC mode */
+               cs->BC_Write_Reg(cs, HFC_STATUS, cs->hw.hfc.ctmt, cs->hw.hfc.ctmt);
+               hfc_clear_fifo(bcs); /* complete fifo clear */
+               if (bc) {
+                       cs->hw.hfc.ctmt |= 1;
+                       cs->hw.hfc.isac_spcr &= ~0x03;
+                       cs->hw.hfc.isac_spcr |= 0x02;
+               } else {
+                       cs->hw.hfc.ctmt |= 2;
+                       cs->hw.hfc.isac_spcr &= ~0x0c;
+                       cs->hw.hfc.isac_spcr |= 0x08;
+               }
+               break;
+       case (L1_MODE_HDLC):
+               if (bc) {
+                       cs->hw.hfc.ctmt &= ~1;
+                       cs->hw.hfc.isac_spcr &= ~0x03;
+                       cs->hw.hfc.isac_spcr |= 0x02;
+               } else {
+                       cs->hw.hfc.ctmt &= ~2;
+                       cs->hw.hfc.isac_spcr &= ~0x0c;
+                       cs->hw.hfc.isac_spcr |= 0x08;
+               }
+               break;
        }
        cs->BC_Write_Reg(cs, HFC_STATUS, cs->hw.hfc.ctmt, cs->hw.hfc.ctmt);
        cs->writeisac(cs, ISAC_SPCR, cs->hw.hfc.isac_spcr);
@@ -457,53 +457,53 @@ hfc_l2l1(struct PStack *st, int pr, void *arg)
        u_long          flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
-                       } else {
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->tx_skb = skb;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       mode_hfc(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       mode_hfc(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
+               } else {
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->tx_skb = skb;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               mode_hfc(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               mode_hfc(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
index 1a50d4a..1510096 100644 (file)
@@ -4,14 +4,14 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
 
 #define HFC_CTMT       0xe0
-#define HFC_CIRM       0xc0
+#define HFC_CIRM       0xc0
 #define HFC_CIP                0x80
 #define HFC_Z1         0x00
 #define HFC_Z2         0x08
@@ -46,7 +46,7 @@
 #define HFC_TRANSB1 0x01
 
 /* CIRM (Write) */
-#define HFC_RESET      0x08
+#define HFC_RESET      0x08
 #define HFC_MEM8K      0x10
 #define HFC_INTA       0x01
 #define HFC_INTB       0x02
index 0cb0546..334fa90 100644 (file)
@@ -57,10 +57,10 @@ static const PCI_ENTRY id_list[] =
        {PCI_VENDOR_ID_BERKOM, PCI_DEVICE_ID_BERKOM_A1T, "German telekom", "A1T"},
        {PCI_VENDOR_ID_ANIGMA, PCI_DEVICE_ID_ANIGMA_MC145575, "Motorola MC145575", "MC145575"},
        {PCI_VENDOR_ID_ZOLTRIX, PCI_DEVICE_ID_ZOLTRIX_2BD0, "Zoltrix", "2BD0"},
-       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_E,"Digi International", "Digi DataFire Micro V IOM2 (Europe)"},
-       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_E,"Digi International", "Digi DataFire Micro V (Europe)"},
-       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_A,"Digi International", "Digi DataFire Micro V IOM2 (North America)"},
-       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_A,"Digi International", "Digi DataFire Micro V (North America)"},
+       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_E, "Digi International", "Digi DataFire Micro V IOM2 (Europe)"},
+       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_E, "Digi International", "Digi DataFire Micro V (Europe)"},
+       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_A, "Digi International", "Digi DataFire Micro V IOM2 (North America)"},
+       {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_A, "Digi International", "Digi DataFire Micro V (North America)"},
        {PCI_VENDOR_ID_SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2, "Sitecom Europe", "DC-105 ISDN PCI"},
        {0, 0, NULL, NULL},
 };
@@ -73,7 +73,7 @@ static void
 release_io_hfcpci(struct IsdnCardState *cs)
 {
        printk(KERN_INFO "HiSax: release hfcpci at %p\n",
-               cs->hw.hfcpci.pci_io);
+              cs->hw.hfcpci.pci_io);
        cs->hw.hfcpci.int_m2 = 0;                                       /* interrupt output off ! */
        Write_hfc(cs, HFCPCI_INT_M2, cs->hw.hfcpci.int_m2);
        Write_hfc(cs, HFCPCI_CIRM, HFCPCI_RESET);                       /* Reset On */
@@ -84,7 +84,7 @@ release_io_hfcpci(struct IsdnCardState *cs)
        pci_write_config_word(cs->hw.hfcpci.dev, PCI_COMMAND, 0);       /* disable memory mapped ports + busmaster */
        del_timer(&cs->hw.hfcpci.timer);
        pci_free_consistent(cs->hw.hfcpci.dev, 0x8000,
-               cs->hw.hfcpci.fifos, cs->hw.hfcpci.dma);
+                           cs->hw.hfcpci.fifos, cs->hw.hfcpci.dma);
        cs->hw.hfcpci.fifos = NULL;
        iounmap((void *)cs->hw.hfcpci.pci_io);
 }
@@ -124,7 +124,7 @@ reset_hfcpci(struct IsdnCardState *cs)
        Write_hfc(cs, HFCPCI_CTMT, cs->hw.hfcpci.ctmt);
 
        cs->hw.hfcpci.int_m1 = HFCPCI_INTS_DTRANS | HFCPCI_INTS_DREC |
-           HFCPCI_INTS_L1STATE | HFCPCI_INTS_TIMER;
+               HFCPCI_INTS_L1STATE | HFCPCI_INTS_TIMER;
        Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
 
        /* Clear already pending ints */
@@ -170,8 +170,8 @@ hfcpci_Timer(struct IsdnCardState *cs)
        cs->hw.hfcpci.timer.expires = jiffies + 75;
        /* WD RESET */
 /*      WriteReg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcpci.ctmt | 0x80);
-   add_timer(&cs->hw.hfcpci.timer);
- */
+       add_timer(&cs->hw.hfcpci.timer);
+*/
 }
 
 
@@ -215,17 +215,17 @@ Sel_BCS(struct IsdnCardState *cs, int channel)
 /***************************************/
 static void hfcpci_clear_fifo_rx(struct IsdnCardState *cs, int fifo)
 {       u_char fifo_state;
-        bzfifo_type *bzr;
+       bzfifo_type *bzr;
 
        if (fifo) {
-               bzr = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxbz_b2;
+               bzr = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxbz_b2;
                fifo_state = cs->hw.hfcpci.fifo_en & HFCPCI_FIFOEN_B2RX;
        } else {
-               bzr = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxbz_b1;
+               bzr = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxbz_b1;
                fifo_state = cs->hw.hfcpci.fifo_en & HFCPCI_FIFOEN_B1RX;
        }
        if (fifo_state)
-               cs->hw.hfcpci.fifo_en ^= fifo_state;
+               cs->hw.hfcpci.fifo_en ^= fifo_state;
        Write_hfc(cs, HFCPCI_FIFO_EN, cs->hw.hfcpci.fifo_en);
        cs->hw.hfcpci.last_bfifo_cnt[fifo] = 0;
        bzr->za[MAX_B_FRAMES].z1 = B_FIFO_SIZE + B_SUB_VAL - 1;
@@ -233,7 +233,7 @@ static void hfcpci_clear_fifo_rx(struct IsdnCardState *cs, int fifo)
        bzr->f1 = MAX_B_FRAMES;
        bzr->f2 = bzr->f1;      /* init F pointers to remain constant */
        if (fifo_state)
-               cs->hw.hfcpci.fifo_en |= fifo_state;
+               cs->hw.hfcpci.fifo_en |= fifo_state;
        Write_hfc(cs, HFCPCI_FIFO_EN, cs->hw.hfcpci.fifo_en);
 }
 
@@ -242,24 +242,24 @@ static void hfcpci_clear_fifo_rx(struct IsdnCardState *cs, int fifo)
 /***************************************/
 static void hfcpci_clear_fifo_tx(struct IsdnCardState *cs, int fifo)
 {       u_char fifo_state;
-        bzfifo_type *bzt;
+       bzfifo_type *bzt;
 
        if (fifo) {
-               bzt = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.txbz_b2;
+               bzt = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.txbz_b2;
                fifo_state = cs->hw.hfcpci.fifo_en & HFCPCI_FIFOEN_B2TX;
        } else {
-               bzt = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.txbz_b1;
+               bzt = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.txbz_b1;
                fifo_state = cs->hw.hfcpci.fifo_en & HFCPCI_FIFOEN_B1TX;
        }
        if (fifo_state)
-               cs->hw.hfcpci.fifo_en ^= fifo_state;
+               cs->hw.hfcpci.fifo_en ^= fifo_state;
        Write_hfc(cs, HFCPCI_FIFO_EN, cs->hw.hfcpci.fifo_en);
        bzt->za[MAX_B_FRAMES].z1 = B_FIFO_SIZE + B_SUB_VAL - 1;
        bzt->za[MAX_B_FRAMES].z2 = bzt->za[MAX_B_FRAMES].z1;
        bzt->f1 = MAX_B_FRAMES;
        bzt->f2 = bzt->f1;      /* init F pointers to remain constant */
        if (fifo_state)
-               cs->hw.hfcpci.fifo_en |= fifo_state;
+               cs->hw.hfcpci.fifo_en |= fifo_state;
        Write_hfc(cs, HFCPCI_FIFO_EN, cs->hw.hfcpci.fifo_en);
 }
 
@@ -268,7 +268,7 @@ static void hfcpci_clear_fifo_tx(struct IsdnCardState *cs, int fifo)
 /*********************************************/
 static struct sk_buff
 *
-hfcpci_empty_fifo(struct BCState *bcs, bzfifo_type * bz, u_char * bdata, int count)
+hfcpci_empty_fifo(struct BCState *bcs, bzfifo_type *bz, u_char *bdata, int count)
 {
        u_char *ptr, *ptr1, new_f2;
        struct sk_buff *skb;
@@ -395,7 +395,7 @@ receive_dmsg(struct IsdnCardState *cs)
 /* check for transparent receive data and read max one threshold size if avail */
 /*******************************************************************************/
 static int
-hfcpci_empty_fifo_trans(struct BCState *bcs, bzfifo_type * bz, u_char * bdata)
+hfcpci_empty_fifo_trans(struct BCState *bcs, bzfifo_type *bz, u_char *bdata)
 {
        unsigned short *z1r, *z2r;
        int new_z2, fcnt, maxlen;
@@ -467,7 +467,7 @@ main_rec_hfcpci(struct BCState *bcs)
                bdata = ((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxdat_b1;
                real_fifo = 0;
        }
-      Begin:
+Begin:
        count--;
        if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                debugl1(cs, "rec_data %d blocked", bcs->channel);
@@ -494,7 +494,7 @@ main_rec_hfcpci(struct BCState *bcs)
                if (rcnt < 0)
                        rcnt += MAX_B_FRAMES + 1;
                if (cs->hw.hfcpci.last_bfifo_cnt[real_fifo] > rcnt + 1) {
-                       rcnt = 0;
+                       rcnt = 0;
                        hfcpci_clear_fifo_rx(cs, real_fifo);
                }
                cs->hw.hfcpci.last_bfifo_cnt[real_fifo] = rcnt;
@@ -647,8 +647,8 @@ hfcpci_fill_fifo(struct BCState *bcs)
                                debugl1(cs, "hfcpci_fill_fifo_trans %d frame length %d discarded",
                                        bcs->channel, bcs->tx_skb->len);
 
-                       if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                               (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                       if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                           (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                u_long  flags;
                                spin_lock_irqsave(&bcs->aclock, flags);
                                bcs->ackcnt += bcs->tx_skb->len;
@@ -710,8 +710,8 @@ hfcpci_fill_fifo(struct BCState *bcs)
                memcpy(dst, src, count);
        }
        bcs->tx_cnt -= bcs->tx_skb->len;
-       if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-               (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+       if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+           (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                u_long  flags;
                spin_lock_irqsave(&bcs->aclock, flags);
                bcs->ackcnt += bcs->tx_skb->len;
@@ -736,27 +736,27 @@ dch_nt_l2l1(struct PStack *st, int pr, void *arg)
        struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-               case (PH_PULL | REQUEST):
-               case (PH_PULL | INDICATION):
-                       st->l1.l1hw(st, pr, arg);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL);
-                       break;
-               case (PH_TESTLOOP | REQUEST):
-                       if (1 & (long) arg)
-                               debugl1(cs, "PH_TEST_LOOP B1");
-                       if (2 & (long) arg)
-                               debugl1(cs, "PH_TEST_LOOP B2");
-                       if (!(3 & (long) arg))
-                               debugl1(cs, "PH_TEST_LOOP DISABLED");
-                       st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg);
-                       break;
-               default:
-                       if (cs->debug)
-                               debugl1(cs, "dch_nt_l2l1 msg %04X unhandled", pr);
-                       break;
+       case (PH_DATA | REQUEST):
+       case (PH_PULL | REQUEST):
+       case (PH_PULL | INDICATION):
+               st->l1.l1hw(st, pr, arg);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL);
+               break;
+       case (PH_TESTLOOP | REQUEST):
+               if (1 & (long) arg)
+                       debugl1(cs, "PH_TEST_LOOP B1");
+               if (2 & (long) arg)
+                       debugl1(cs, "PH_TEST_LOOP B2");
+               if (!(3 & (long) arg))
+                       debugl1(cs, "PH_TEST_LOOP DISABLED");
+               st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg);
+               break;
+       default:
+               if (cs->debug)
+                       debugl1(cs, "dch_nt_l2l1 msg %04X unhandled", pr);
+               break;
        }
 }
 
@@ -766,14 +766,14 @@ dch_nt_l2l1(struct PStack *st, int pr, void *arg)
 /* set/reset echo mode */
 /***********************/
 static int
-hfcpci_auxcmd(struct IsdnCardState *cs, isdn_ctrl * ic)
+hfcpci_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic)
 {
        u_long  flags;
        int     i = *(unsigned int *) ic->parm.num;
 
        if ((ic->arg == 98) &&
            (!(cs->hw.hfcpci.int_m1 & (HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC + HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC)))) {
-               spin_lock_irqsave(&cs->lock, flags);
+               spin_lock_irqsave(&cs->lock, flags);
                Write_hfc(cs, HFCPCI_CLKDEL, CLKDEL_NT); /* ST-Bit delay for NT-Mode */
                Write_hfc(cs, HFCPCI_STATES, HFCPCI_LOAD_STATE | 0);    /* HFC ST G0 */
                udelay(10);
@@ -839,7 +839,7 @@ receive_emsg(struct IsdnCardState *cs)
 
        bz = &((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxbz_b2;
        bdata = ((fifo_area *) (cs->hw.hfcpci.fifos))->b_chans.rxdat_b2;
-      Begin:
+Begin:
        count--;
        if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                debugl1(cs, "echo_rec_data blocked");
@@ -1078,7 +1078,7 @@ hfcpci_interrupt(int intno, void *dev_id)
                        } else
                                sched_event_D_pci(cs, D_XMTBUFREADY);
                }
-             afterXPR:
+       afterXPR:
                if (cs->hw.hfcpci.int_s1 && count--) {
                        val = cs->hw.hfcpci.int_s1;
                        cs->hw.hfcpci.int_s1 = 0;
@@ -1110,130 +1110,130 @@ HFCPCI_l1hw(struct PStack *st, int pr, void *arg)
        struct sk_buff *skb = arg;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
-#ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                               if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
-                                       hfcpci_fill_dfifo(cs);
-                                       test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
-                               } else
-                                       debugl1(cs, "hfcpci_fill_dfifo blocked");
-
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
                        if (cs->debug & L1_DEB_LAPD)
-                               Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                               Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
                        if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                                hfcpci_fill_dfifo(cs);
                                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                        } else
                                debugl1(cs, "hfcpci_fill_dfifo blocked");
+
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        break;
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD)
+                       Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       Write_hfc(cs, HFCPCI_STATES, HFCPCI_LOAD_STATE | 3);    /* HFC ST 3 */
-                       udelay(6);
-                       Write_hfc(cs, HFCPCI_STATES, 3);        /* HFC ST 2 */
-                       cs->hw.hfcpci.mst_m |= HFCPCI_MASTER;
-                       Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
-                       Write_hfc(cs, HFCPCI_STATES, HFCPCI_ACTIVATE | HFCPCI_DO_ACTION);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                       break;
-               case (HW_ENABLE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       Write_hfc(cs, HFCPCI_STATES, HFCPCI_DO_ACTION);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_DEACTIVATE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcpci.mst_m &= ~HFCPCI_MASTER;
-                       Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcpci.mst_m |= HFCPCI_MASTER;
-                       Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
+               if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
+                       hfcpci_fill_dfifo(cs);
+                       test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
+               } else
+                       debugl1(cs, "hfcpci_fill_dfifo blocked");
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG           /* psa */
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "-> PH_REQUEST_PULL");
+#endif
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               Write_hfc(cs, HFCPCI_STATES, HFCPCI_LOAD_STATE | 3);    /* HFC ST 3 */
+               udelay(6);
+               Write_hfc(cs, HFCPCI_STATES, 3);        /* HFC ST 2 */
+               cs->hw.hfcpci.mst_m |= HFCPCI_MASTER;
+               Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
+               Write_hfc(cs, HFCPCI_STATES, HFCPCI_ACTIVATE | HFCPCI_DO_ACTION);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               break;
+       case (HW_ENABLE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               Write_hfc(cs, HFCPCI_STATES, HFCPCI_DO_ACTION);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_DEACTIVATE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcpci.mst_m &= ~HFCPCI_MASTER;
+               Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO3 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcpci.mst_m |= HFCPCI_MASTER;
+               Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_TESTLOOP | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               switch ((long) arg) {
+               case (1):
+                       Write_hfc(cs, HFCPCI_B1_SSL, 0x80);     /* tx slot */
+                       Write_hfc(cs, HFCPCI_B1_RSL, 0x80);     /* rx slot */
+                       cs->hw.hfcpci.conn = (cs->hw.hfcpci.conn & ~7) | 1;
+                       Write_hfc(cs, HFCPCI_CONNECT, cs->hw.hfcpci.conn);
                        break;
-               case (HW_TESTLOOP | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       switch ((long) arg) {
-                               case (1):
-                                       Write_hfc(cs, HFCPCI_B1_SSL, 0x80);     /* tx slot */
-                                       Write_hfc(cs, HFCPCI_B1_RSL, 0x80);     /* rx slot */
-                                       cs->hw.hfcpci.conn = (cs->hw.hfcpci.conn & ~7) | 1;
-                                       Write_hfc(cs, HFCPCI_CONNECT, cs->hw.hfcpci.conn);
-                                       break;
-
-                               case (2):
-                                       Write_hfc(cs, HFCPCI_B2_SSL, 0x81);     /* tx slot */
-                                       Write_hfc(cs, HFCPCI_B2_RSL, 0x81);     /* rx slot */
-                                       cs->hw.hfcpci.conn = (cs->hw.hfcpci.conn & ~0x38) | 0x08;
-                                       Write_hfc(cs, HFCPCI_CONNECT, cs->hw.hfcpci.conn);
-                                       break;
-
-                               default:
-                                       spin_unlock_irqrestore(&cs->lock, flags);
-                                       if (cs->debug & L1_DEB_WARN)
-                                               debugl1(cs, "hfcpci_l1hw loop invalid %4lx", (long) arg);
-                                       return;
-                       }
-                       cs->hw.hfcpci.trm |= 0x80;      /* enable IOM-loop */
-                       Write_hfc(cs, HFCPCI_TRM, cs->hw.hfcpci.trm);
-                       spin_unlock_irqrestore(&cs->lock, flags);
+
+               case (2):
+                       Write_hfc(cs, HFCPCI_B2_SSL, 0x81);     /* tx slot */
+                       Write_hfc(cs, HFCPCI_B2_RSL, 0x81);     /* rx slot */
+                       cs->hw.hfcpci.conn = (cs->hw.hfcpci.conn & ~0x38) | 0x08;
+                       Write_hfc(cs, HFCPCI_CONNECT, cs->hw.hfcpci.conn);
                        break;
+
                default:
+                       spin_unlock_irqrestore(&cs->lock, flags);
                        if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "hfcpci_l1hw unknown pr %4x", pr);
-                       break;
+                               debugl1(cs, "hfcpci_l1hw loop invalid %4lx", (long) arg);
+                       return;
+               }
+               cs->hw.hfcpci.trm |= 0x80;      /* enable IOM-loop */
+               Write_hfc(cs, HFCPCI_TRM, cs->hw.hfcpci.trm);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "hfcpci_l1hw unknown pr %4x", pr);
+               break;
        }
 }
 
@@ -1295,83 +1295,83 @@ mode_hfcpci(struct BCState *bcs, int mode, int bc)
                }
        }
        switch (mode) {
-               case (L1_MODE_NULL):
-                       if (bc) {
-                               cs->hw.hfcpci.sctrl &= ~SCTRL_B2_ENA;
-                               cs->hw.hfcpci.sctrl_r &= ~SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcpci.sctrl &= ~SCTRL_B1_ENA;
-                               cs->hw.hfcpci.sctrl_r &= ~SCTRL_B1_ENA;
-                       }
-                       if (fifo2) {
-                               cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B2;
-                               cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
-                       } else {
-                               cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B1;
-                               cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
-                       }
-                       break;
-               case (L1_MODE_TRANS):
-                       hfcpci_clear_fifo_rx(cs, fifo2);
-                       hfcpci_clear_fifo_tx(cs, fifo2);
-                       if (bc) {
-                               cs->hw.hfcpci.sctrl |= SCTRL_B2_ENA;
-                               cs->hw.hfcpci.sctrl_r |= SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcpci.sctrl |= SCTRL_B1_ENA;
-                               cs->hw.hfcpci.sctrl_r |= SCTRL_B1_ENA;
-                       }
-                       if (fifo2) {
-                               cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B2;
-                               cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
-                               cs->hw.hfcpci.ctmt |= 2;
-                               cs->hw.hfcpci.conn &= ~0x18;
-                       } else {
-                               cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B1;
-                               cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
-                               cs->hw.hfcpci.ctmt |= 1;
-                               cs->hw.hfcpci.conn &= ~0x03;
-                       }
-                       break;
-               case (L1_MODE_HDLC):
-                       hfcpci_clear_fifo_rx(cs, fifo2);
-                       hfcpci_clear_fifo_tx(cs, fifo2);
-                       if (bc) {
-                               cs->hw.hfcpci.sctrl |= SCTRL_B2_ENA;
-                               cs->hw.hfcpci.sctrl_r |= SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcpci.sctrl |= SCTRL_B1_ENA;
-                               cs->hw.hfcpci.sctrl_r |= SCTRL_B1_ENA;
-                       }
-                       if (fifo2) {
-                               cs->hw.hfcpci.last_bfifo_cnt[1] = 0;
-                               cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B2;
-                               cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
-                               cs->hw.hfcpci.ctmt &= ~2;
-                               cs->hw.hfcpci.conn &= ~0x18;
-                       } else {
-                               cs->hw.hfcpci.last_bfifo_cnt[0] = 0;
-                               cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B1;
-                               cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
-                               cs->hw.hfcpci.ctmt &= ~1;
-                               cs->hw.hfcpci.conn &= ~0x03;
-                       }
-                       break;
-               case (L1_MODE_EXTRN):
-                       if (bc) {
-                               cs->hw.hfcpci.conn |= 0x10;
-                               cs->hw.hfcpci.sctrl |= SCTRL_B2_ENA;
-                               cs->hw.hfcpci.sctrl_r |= SCTRL_B2_ENA;
-                               cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B2;
-                               cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
-                       } else {
-                               cs->hw.hfcpci.conn |= 0x02;
-                               cs->hw.hfcpci.sctrl |= SCTRL_B1_ENA;
-                               cs->hw.hfcpci.sctrl_r |= SCTRL_B1_ENA;
-                               cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B1;
-                               cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
-                       }
-                       break;
+       case (L1_MODE_NULL):
+               if (bc) {
+                       cs->hw.hfcpci.sctrl &= ~SCTRL_B2_ENA;
+                       cs->hw.hfcpci.sctrl_r &= ~SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcpci.sctrl &= ~SCTRL_B1_ENA;
+                       cs->hw.hfcpci.sctrl_r &= ~SCTRL_B1_ENA;
+               }
+               if (fifo2) {
+                       cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B2;
+                       cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
+               } else {
+                       cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B1;
+                       cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
+               }
+               break;
+       case (L1_MODE_TRANS):
+               hfcpci_clear_fifo_rx(cs, fifo2);
+               hfcpci_clear_fifo_tx(cs, fifo2);
+               if (bc) {
+                       cs->hw.hfcpci.sctrl |= SCTRL_B2_ENA;
+                       cs->hw.hfcpci.sctrl_r |= SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcpci.sctrl |= SCTRL_B1_ENA;
+                       cs->hw.hfcpci.sctrl_r |= SCTRL_B1_ENA;
+               }
+               if (fifo2) {
+                       cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B2;
+                       cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
+                       cs->hw.hfcpci.ctmt |= 2;
+                       cs->hw.hfcpci.conn &= ~0x18;
+               } else {
+                       cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B1;
+                       cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
+                       cs->hw.hfcpci.ctmt |= 1;
+                       cs->hw.hfcpci.conn &= ~0x03;
+               }
+               break;
+       case (L1_MODE_HDLC):
+               hfcpci_clear_fifo_rx(cs, fifo2);
+               hfcpci_clear_fifo_tx(cs, fifo2);
+               if (bc) {
+                       cs->hw.hfcpci.sctrl |= SCTRL_B2_ENA;
+                       cs->hw.hfcpci.sctrl_r |= SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcpci.sctrl |= SCTRL_B1_ENA;
+                       cs->hw.hfcpci.sctrl_r |= SCTRL_B1_ENA;
+               }
+               if (fifo2) {
+                       cs->hw.hfcpci.last_bfifo_cnt[1] = 0;
+                       cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B2;
+                       cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
+                       cs->hw.hfcpci.ctmt &= ~2;
+                       cs->hw.hfcpci.conn &= ~0x18;
+               } else {
+                       cs->hw.hfcpci.last_bfifo_cnt[0] = 0;
+                       cs->hw.hfcpci.fifo_en |= HFCPCI_FIFOEN_B1;
+                       cs->hw.hfcpci.int_m1 |= (HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
+                       cs->hw.hfcpci.ctmt &= ~1;
+                       cs->hw.hfcpci.conn &= ~0x03;
+               }
+               break;
+       case (L1_MODE_EXTRN):
+               if (bc) {
+                       cs->hw.hfcpci.conn |= 0x10;
+                       cs->hw.hfcpci.sctrl |= SCTRL_B2_ENA;
+                       cs->hw.hfcpci.sctrl_r |= SCTRL_B2_ENA;
+                       cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B2;
+                       cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B2TRANS + HFCPCI_INTS_B2REC);
+               } else {
+                       cs->hw.hfcpci.conn |= 0x02;
+                       cs->hw.hfcpci.sctrl |= SCTRL_B1_ENA;
+                       cs->hw.hfcpci.sctrl_r |= SCTRL_B1_ENA;
+                       cs->hw.hfcpci.fifo_en &= ~HFCPCI_FIFOEN_B1;
+                       cs->hw.hfcpci.int_m1 &= ~(HFCPCI_INTS_B1TRANS + HFCPCI_INTS_B1REC);
+               }
+               break;
        }
        Write_hfc(cs, HFCPCI_SCTRL_E, cs->hw.hfcpci.sctrl_e);
        Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
@@ -1393,54 +1393,54 @@ hfcpci_l2l1(struct PStack *st, int pr, void *arg)
        struct sk_buff  *skb = arg;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-//                             test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                               printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
-                               break;
-                       }
-//                     test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
                        bcs->tx_skb = skb;
+//                             test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
                        bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
                        spin_unlock_irqrestore(&bcs->cs->lock, flags);
+                       printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
                        break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       mode_hfcpci(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       mode_hfcpci(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+               }
+//                     test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+               bcs->tx_skb = skb;
+               bcs->cs->BC_Send_Data(bcs);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               mode_hfcpci(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               mode_hfcpci(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -1510,57 +1510,57 @@ hfcpci_bh(struct work_struct *work)
        if (test_and_clear_bit(D_L1STATECHANGE, &cs->event)) {
                if (!cs->hw.hfcpci.nt_mode)
                        switch (cs->dc.hfcpci.ph_state) {
-                               case (0):
-                                       l1_msg(cs, HW_RESET | INDICATION, NULL);
-                                       break;
-                               case (3):
-                                       l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                                       break;
-                               case (8):
-                                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                                       break;
-                               case (6):
-                                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                                       break;
-                               case (7):
-                                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                                       break;
-                               default:
-                                       break;
-               } else {
+                       case (0):
+                               l1_msg(cs, HW_RESET | INDICATION, NULL);
+                               break;
+                       case (3):
+                               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+                               break;
+                       case (8):
+                               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+                               break;
+                       case (6):
+                               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+                               break;
+                       case (7):
+                               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+                               break;
+                       default:
+                               break;
+                       } else {
                        spin_lock_irqsave(&cs->lock, flags);
                        switch (cs->dc.hfcpci.ph_state) {
-                               case (2):
-                                       if (cs->hw.hfcpci.nt_timer < 0) {
-                                               cs->hw.hfcpci.nt_timer = 0;
-                                               cs->hw.hfcpci.int_m1 &= ~HFCPCI_INTS_TIMER;
-                                               Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
-                                               /* Clear already pending ints */
-                                               if (Read_hfc(cs, HFCPCI_INT_S1));
-                                               Write_hfc(cs, HFCPCI_STATES, 4 | HFCPCI_LOAD_STATE);
-                                               udelay(10);
-                                               Write_hfc(cs, HFCPCI_STATES, 4);
-                                               cs->dc.hfcpci.ph_state = 4;
-                                       } else {
-                                               cs->hw.hfcpci.int_m1 |= HFCPCI_INTS_TIMER;
-                                               Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
-                                               cs->hw.hfcpci.ctmt &= ~HFCPCI_AUTO_TIMER;
-                                               cs->hw.hfcpci.ctmt |= HFCPCI_TIM3_125;
-                                               Write_hfc(cs, HFCPCI_CTMT, cs->hw.hfcpci.ctmt | HFCPCI_CLTIMER);
-                                               Write_hfc(cs, HFCPCI_CTMT, cs->hw.hfcpci.ctmt | HFCPCI_CLTIMER);
-                                               cs->hw.hfcpci.nt_timer = NT_T1_COUNT;
-                                               Write_hfc(cs, HFCPCI_STATES, 2 | HFCPCI_NT_G2_G3);      /* allow G2 -> G3 transition */
-                                       }
-                                       break;
-                               case (1):
-                               case (3):
-                               case (4):
+                       case (2):
+                               if (cs->hw.hfcpci.nt_timer < 0) {
                                        cs->hw.hfcpci.nt_timer = 0;
                                        cs->hw.hfcpci.int_m1 &= ~HFCPCI_INTS_TIMER;
                                        Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
-                                       break;
-                               default:
-                                       break;
+                                       /* Clear already pending ints */
+                                       if (Read_hfc(cs, HFCPCI_INT_S1));
+                                       Write_hfc(cs, HFCPCI_STATES, 4 | HFCPCI_LOAD_STATE);
+                                       udelay(10);
+                                       Write_hfc(cs, HFCPCI_STATES, 4);
+                                       cs->dc.hfcpci.ph_state = 4;
+                               } else {
+                                       cs->hw.hfcpci.int_m1 |= HFCPCI_INTS_TIMER;
+                                       Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
+                                       cs->hw.hfcpci.ctmt &= ~HFCPCI_AUTO_TIMER;
+                                       cs->hw.hfcpci.ctmt |= HFCPCI_TIM3_125;
+                                       Write_hfc(cs, HFCPCI_CTMT, cs->hw.hfcpci.ctmt | HFCPCI_CLTIMER);
+                                       Write_hfc(cs, HFCPCI_CTMT, cs->hw.hfcpci.ctmt | HFCPCI_CLTIMER);
+                                       cs->hw.hfcpci.nt_timer = NT_T1_COUNT;
+                                       Write_hfc(cs, HFCPCI_STATES, 2 | HFCPCI_NT_G2_G3);      /* allow G2 -> G3 transition */
+                               }
+                               break;
+                       case (1):
+                       case (3):
+                       case (4):
+                               cs->hw.hfcpci.nt_timer = 0;
+                               cs->hw.hfcpci.int_m1 &= ~HFCPCI_INTS_TIMER;
+                               Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
+                               break;
+                       default:
+                               break;
                        }
                        spin_unlock_irqrestore(&cs->lock, flags);
                }
@@ -1602,30 +1602,30 @@ hfcpci_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "HFCPCI: card_msg %x", mt);
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_hfcpci(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_RELEASE:
-                       release_io_hfcpci(cs);
-                       return (0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithfcpci(cs);
-                       reset_hfcpci(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       msleep(80);                             /* Timeout 80ms */
-                       /* now switch timer interrupt off */
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcpci.int_m1 &= ~HFCPCI_INTS_TIMER;
-                       Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
-                       /* reinit mode reg */
-                       Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_TEST:
-                       return (0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_hfcpci(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_hfcpci(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithfcpci(cs);
+               reset_hfcpci(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               msleep(80);                             /* Timeout 80ms */
+               /* now switch timer interrupt off */
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcpci.int_m1 &= ~HFCPCI_INTS_TIMER;
+               Write_hfc(cs, HFCPCI_INT_M1, cs->hw.hfcpci.int_m1);
+               /* reinit mode reg */
+               Write_hfc(cs, HFCPCI_MST_MODE, cs->hw.hfcpci.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
        return (0);
 }
@@ -1654,13 +1654,13 @@ setup_hfcpci(struct IsdnCard *card)
        cs->dc.hfcpci.ph_state = 0;
        cs->hw.hfcpci.fifo = 255;
        if (cs->typ != ISDN_CTYPE_HFC_PCI)
-               return(0);
+               return (0);
 
        i = 0;
        while (id_list[i].vendor_id) {
                tmp_hfcpci = hisax_find_pci_device(id_list[i].vendor_id,
-                                            id_list[i].device_id,
-                                            dev_hfcpci);
+                                                  id_list[i].device_id,
+                                                  dev_hfcpci);
                i++;
                if (tmp_hfcpci) {
                        dma_addr_t      dma_mask = DMA_BIT_MASK(32) & ~0x7fffUL;
@@ -1668,16 +1668,16 @@ setup_hfcpci(struct IsdnCard *card)
                                continue;
                        if (pci_set_dma_mask(tmp_hfcpci, dma_mask)) {
                                printk(KERN_WARNING
-                                       "HiSax hfc_pci: No suitable DMA available.\n");
+                                      "HiSax hfc_pci: No suitable DMA available.\n");
                                continue;
                        }
                        if (pci_set_consistent_dma_mask(tmp_hfcpci, dma_mask)) {
                                printk(KERN_WARNING
-                                       "HiSax hfc_pci: No suitable consistent DMA available.\n");
+                                      "HiSax hfc_pci: No suitable consistent DMA available.\n");
                                continue;
                        }
                        pci_set_master(tmp_hfcpci);
-                       if ((card->para[0]) && (card->para[0] != (tmp_hfcpci->resource[ 0].start & PCI_BASE_ADDRESS_IO_MASK)))
+                       if ((card->para[0]) && (card->para[0] != (tmp_hfcpci->resource[0].start & PCI_BASE_ADDRESS_IO_MASK)))
                                continue;
                        else
                                break;
@@ -1707,17 +1707,17 @@ setup_hfcpci(struct IsdnCard *card)
 
        /* Allocate memory for FIFOS */
        cs->hw.hfcpci.fifos = pci_alloc_consistent(cs->hw.hfcpci.dev,
-                                       0x8000, &cs->hw.hfcpci.dma);
+                                                  0x8000, &cs->hw.hfcpci.dma);
        if (!cs->hw.hfcpci.fifos) {
                printk(KERN_WARNING "HFC-PCI: Error allocating FIFO memory!\n");
                return 0;
        }
        if (cs->hw.hfcpci.dma & 0x7fff) {
                printk(KERN_WARNING
-                   "HFC-PCI: Error DMA memory not on 32K boundary (%lx)\n",
-                   (u_long)cs->hw.hfcpci.dma);
+                      "HFC-PCI: Error DMA memory not on 32K boundary (%lx)\n",
+                      (u_long)cs->hw.hfcpci.dma);
                pci_free_consistent(cs->hw.hfcpci.dev, 0x8000,
-                       cs->hw.hfcpci.fifos, cs->hw.hfcpci.dma);
+                                   cs->hw.hfcpci.fifos, cs->hw.hfcpci.dma);
                return 0;
        }
        pci_write_config_dword(cs->hw.hfcpci.dev, 0x80, (u32)cs->hw.hfcpci.dma);
index 9ef2981..4e58700 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Werner Cornelius
  * Copyright    by Werner Cornelius  <werner@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -55,7 +55,7 @@
 
 #define HFCPCI_MST_EMOD  0xB4
 #define HFCPCI_MST_MODE         0xB8
-#define HFCPCI_CONNECT          0xBC
+#define HFCPCI_CONNECT  0xBC
 
 
 /* Interrupt and status registers */
 #define HFCPCI_TRM       0x48
 #define HFCPCI_B_MODE    0x4C
 #define HFCPCI_CHIP_ID   0x58
-#define HFCPCI_CIRM     0x60
+#define HFCPCI_CIRM     0x60
 #define HFCPCI_CTMT     0x64
-#define HFCPCI_INT_M1           0x68
-#define HFCPCI_INT_M2           0x6C
-#define HFCPCI_INT_S1           0x78
-#define HFCPCI_INT_S2           0x7C
-#define HFCPCI_STATUS           0x70
+#define HFCPCI_INT_M1   0x68
+#define HFCPCI_INT_M2   0x6C
+#define HFCPCI_INT_S1   0x78
+#define HFCPCI_INT_S2   0x7C
+#define HFCPCI_STATUS   0x70
 
 /* S/T section registers */
 
-#define HFCPCI_STATES           0xC0
-#define HFCPCI_SCTRL    0xC4
+#define HFCPCI_STATES   0xC0
+#define HFCPCI_SCTRL    0xC4
 #define HFCPCI_SCTRL_E   0xC8
 #define HFCPCI_SCTRL_R   0xCC
-#define HFCPCI_SQ       0xD0
-#define HFCPCI_CLKDEL           0xDC
+#define HFCPCI_SQ       0xD0
+#define HFCPCI_CLKDEL   0xDC
 #define HFCPCI_B1_REC    0xF0
 #define HFCPCI_B1_SEND   0xF0
 #define HFCPCI_B2_REC    0xF4
@@ -91,7 +91,7 @@
 
 /* bits in status register (READ) */
 #define HFCPCI_PCI_PROC   0x02
-#define HFCPCI_NBUSY     0x04 
+#define HFCPCI_NBUSY     0x04
 #define HFCPCI_TIMER_ELAP 0x10
 #define HFCPCI_STATINT   0x20
 #define HFCPCI_FRAMEINT          0x40
 
 /* bits in CIRM (Write) */
 #define HFCPCI_AUX_MSK    0x07
-#define HFCPCI_RESET     0x08
+#define HFCPCI_RESET     0x08
 #define HFCPCI_B1_REV     0x40
 #define HFCPCI_B2_REV     0x80
 
 #define D_FREG_MASK  0xF
 
 typedef struct {
-    unsigned short z1;  /* Z1 pointer 16 Bit */
-    unsigned short z2;  /* Z2 pointer 16 Bit */
-  } z_type;
+       unsigned short z1;  /* Z1 pointer 16 Bit */
+       unsigned short z2;  /* Z2 pointer 16 Bit */
+} z_type;
 
 typedef struct {
-    u_char data[D_FIFO_SIZE]; /* FIFO data space */
-    u_char fill1[0x20A0-D_FIFO_SIZE]; /* reserved, do not use */
-    u_char f1,f2; /* f pointers */
-    u_char fill2[0x20C0-0x20A2]; /* reserved, do not use */
-    z_type za[MAX_D_FRAMES+1]; /* mask index with D_FREG_MASK for access */
-    u_char fill3[0x4000-0x2100]; /* align 16K */  
-  } dfifo_type;
+       u_char data[D_FIFO_SIZE]; /* FIFO data space */
+       u_char fill1[0x20A0 - D_FIFO_SIZE]; /* reserved, do not use */
+       u_char f1, f2; /* f pointers */
+       u_char fill2[0x20C0 - 0x20A2]; /* reserved, do not use */
+       z_type za[MAX_D_FRAMES + 1]; /* mask index with D_FREG_MASK for access */
+       u_char fill3[0x4000 - 0x2100]; /* align 16K */
+} dfifo_type;
 
 typedef struct {
-    z_type za[MAX_B_FRAMES+1]; /* only range 0x0..0x1F allowed */ 
-    u_char f1,f2; /* f pointers */
-    u_char fill[0x2100-0x2082]; /* alignment */
-  } bzfifo_type;
+       z_type za[MAX_B_FRAMES + 1]; /* only range 0x0..0x1F allowed */
+       u_char f1, f2; /* f pointers */
+       u_char fill[0x2100 - 0x2082]; /* alignment */
+} bzfifo_type;
 
 
 typedef union {
-    struct { 
-      dfifo_type d_tx; /* D-send channel */
-      dfifo_type d_rx; /* D-receive channel */
-    } d_chan; 
-    struct {
-      u_char fill1[0x200];
-      u_char txdat_b1[B_FIFO_SIZE];
-      bzfifo_type txbz_b1;
+       struct {
+               dfifo_type d_tx; /* D-send channel */
+               dfifo_type d_rx; /* D-receive channel */
+       } d_chan;
+       struct {
+               u_char fill1[0x200];
+               u_char txdat_b1[B_FIFO_SIZE];
+               bzfifo_type txbz_b1;
 
-      bzfifo_type txbz_b2;
-      u_char txdat_b2[B_FIFO_SIZE];
+               bzfifo_type txbz_b2;
+               u_char txdat_b2[B_FIFO_SIZE];
 
-      u_char fill2[D_FIFO_SIZE];
+               u_char fill2[D_FIFO_SIZE];
 
-      u_char rxdat_b1[B_FIFO_SIZE];
-      bzfifo_type rxbz_b1;
+               u_char rxdat_b1[B_FIFO_SIZE];
+               bzfifo_type rxbz_b1;
 
-      bzfifo_type rxbz_b2;
-      u_char rxdat_b2[B_FIFO_SIZE];
-    } b_chans;  
-    u_char fill[32768]; 
-  } fifo_area;
+               bzfifo_type rxbz_b2;
+               u_char rxdat_b2[B_FIFO_SIZE];
+       } b_chans;
+       u_char fill[32768];
+} fifo_area;
 
 
-#define Write_hfc(a,b,c) (*(((u_char *)a->hw.hfcpci.pci_io)+b) = c) 
-#define Read_hfc(a,b) (*(((u_char *)a->hw.hfcpci.pci_io)+b))
+#define Write_hfc(a, b, c) (*(((u_char *)a->hw.hfcpci.pci_io) + b) = c)
+#define Read_hfc(a, b) (*(((u_char *)a->hw.hfcpci.pci_io) + b))
 
 extern void main_irq_hcpci(struct BCState *bcs);
 extern void releasehfcpci(struct IsdnCardState *cs);
index 156d7c6..4db846b 100644 (file)
@@ -5,7 +5,7 @@
  * Author       Werner Cornelius
  *              based on existing driver for CCD HFC PCI cards
  * Copyright    by Werner Cornelius  <werner@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -43,16 +43,16 @@ static const char *hfcsx_revision = "$Revision: 1.12.2.5 $";
 #undef CCD_DEMO_BOARD
 #ifdef CCD_DEMO_BOARD
 static u_char ccd_sp_irqtab[16] = {
-  0,0,0,0,0,2,1,0,0,0,3,4,5,0,0,6
+       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 3, 4, 5, 0, 0, 6
 };
 #else /* Teles 16.3c */
 static u_char ccd_sp_irqtab[16] = {
-  0,0,0,7,0,1,0,0,0,2,3,4,5,0,0,6
+       0, 0, 0, 7, 0, 1, 0, 0, 0, 2, 3, 4, 5, 0, 0, 6
 };
 #endif
 #define NT_T1_COUNT 20         /* number of 3.125ms interrupts for G2 timeout */
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 /******************************/
@@ -61,19 +61,19 @@ static u_char ccd_sp_irqtab[16] = {
 static inline void
 Write_hfc(struct IsdnCardState *cs, u_char regnum, u_char val)
 {
-        byteout(cs->hw.hfcsx.base+1, regnum);
+       byteout(cs->hw.hfcsx.base + 1, regnum);
        byteout(cs->hw.hfcsx.base, val);
-} 
+}
 
 static inline u_char
 Read_hfc(struct IsdnCardState *cs, u_char regnum)
 {
-        u_char ret; 
+       u_char ret;
 
-        byteout(cs->hw.hfcsx.base+1, regnum);
+       byteout(cs->hw.hfcsx.base + 1, regnum);
        ret = bytein(cs->hw.hfcsx.base);
-       return(ret);
-} 
+       return (ret);
+}
 
 
 /**************************************************/
@@ -82,15 +82,15 @@ Read_hfc(struct IsdnCardState *cs, u_char regnum)
 static void
 fifo_select(struct IsdnCardState *cs, u_char fifo)
 {
-        if (fifo == cs->hw.hfcsx.last_fifo) 
-         return; /* still valid */
+       if (fifo == cs->hw.hfcsx.last_fifo)
+               return; /* still valid */
 
-        byteout(cs->hw.hfcsx.base+1, HFCSX_FIF_SEL);
+       byteout(cs->hw.hfcsx.base + 1, HFCSX_FIF_SEL);
        byteout(cs->hw.hfcsx.base, fifo);
-       while (bytein(cs->hw.hfcsx.base+1) & 1); /* wait for busy */
+       while (bytein(cs->hw.hfcsx.base + 1) & 1); /* wait for busy */
        udelay(4);
        byteout(cs->hw.hfcsx.base, fifo);
-       while (bytein(cs->hw.hfcsx.base+1) & 1); /* wait for busy */
+       while (bytein(cs->hw.hfcsx.base + 1) & 1); /* wait for busy */
 }
 
 /******************************************/
@@ -101,11 +101,11 @@ static void
 reset_fifo(struct IsdnCardState *cs, u_char fifo)
 {
        fifo_select(cs, fifo); /* first select the fifo */
-       byteout(cs->hw.hfcsx.base+1, HFCSX_CIRM);
+       byteout(cs->hw.hfcsx.base + 1, HFCSX_CIRM);
        byteout(cs->hw.hfcsx.base, cs->hw.hfcsx.cirm | 0x80); /* reset cmd */
        udelay(1);
-       while (bytein(cs->hw.hfcsx.base+1) & 1); /* wait for busy */
-} 
+       while (bytein(cs->hw.hfcsx.base + 1) & 1); /* wait for busy */
+}
 
 
 /*************************************************************/
@@ -116,56 +116,56 @@ reset_fifo(struct IsdnCardState *cs, u_char fifo)
 static int
 write_fifo(struct IsdnCardState *cs, struct sk_buff *skb, u_char fifo, int trans_max)
 {
-       unsigned short *msp;
-        int fifo_size, count, z1, z2;
+       unsigned short *msp;
+       int fifo_size, count, z1, z2;
        u_char f_msk, f1, f2, *src;
 
-       if (skb->len <= 0) return(0);
-        if (fifo & 1) return(0); /* no write fifo */
+       if (skb->len <= 0) return (0);
+       if (fifo & 1) return (0); /* no write fifo */
 
        fifo_select(cs, fifo);
        if (fifo & 4) {
-         fifo_size = D_FIFO_SIZE; /* D-channel */
-         f_msk = MAX_D_FRAMES;
-         if (trans_max) return(0); /* only HDLC */
+               fifo_size = D_FIFO_SIZE; /* D-channel */
+               f_msk = MAX_D_FRAMES;
+               if (trans_max) return (0); /* only HDLC */
        }
        else {
-         fifo_size = cs->hw.hfcsx.b_fifo_size; /* B-channel */
-         f_msk = MAX_B_FRAMES;
+               fifo_size = cs->hw.hfcsx.b_fifo_size; /* B-channel */
+               f_msk = MAX_B_FRAMES;
        }
 
-        z1 = Read_hfc(cs, HFCSX_FIF_Z1H);
+       z1 = Read_hfc(cs, HFCSX_FIF_Z1H);
        z1 = ((z1 << 8) | Read_hfc(cs, HFCSX_FIF_Z1L));
 
        /* Check for transparent mode */
        if (trans_max) {
-         z2 = Read_hfc(cs, HFCSX_FIF_Z2H);
-         z2 = ((z2 << 8) | Read_hfc(cs, HFCSX_FIF_Z2L));
-         count = z2 - z1;
-         if (count <= 0)
-           count += fifo_size; /* free bytes */
-         if (count < skb->len+1) return(0); /* no room */
-         count = fifo_size - count; /* bytes still not send */
-         if (count > 2 * trans_max) return(0); /* delay to long */
-         count = skb->len;
-         src = skb->data;
-         while (count--)
-           Write_hfc(cs, HFCSX_FIF_DWR, *src++);
-         return(1); /* success */
+               z2 = Read_hfc(cs, HFCSX_FIF_Z2H);
+               z2 = ((z2 << 8) | Read_hfc(cs, HFCSX_FIF_Z2L));
+               count = z2 - z1;
+               if (count <= 0)
+                       count += fifo_size; /* free bytes */
+               if (count < skb->len + 1) return (0); /* no room */
+               count = fifo_size - count; /* bytes still not send */
+               if (count > 2 * trans_max) return (0); /* delay to long */
+               count = skb->len;
+               src = skb->data;
+               while (count--)
+                       Write_hfc(cs, HFCSX_FIF_DWR, *src++);
+               return (1); /* success */
        }
 
-        msp = ((struct hfcsx_extra *)(cs->hw.hfcsx.extra))->marker;
-       msp += (((fifo >> 1) & 3) * (MAX_B_FRAMES+1));
+       msp = ((struct hfcsx_extra *)(cs->hw.hfcsx.extra))->marker;
+       msp += (((fifo >> 1) & 3) * (MAX_B_FRAMES + 1));
        f1 = Read_hfc(cs, HFCSX_FIF_F1) & f_msk;
        f2 = Read_hfc(cs, HFCSX_FIF_F2) & f_msk;
 
        count = f1 - f2; /* frame count actually buffered */
        if (count < 0)
                count += (f_msk + 1);   /* if wrap around */
-       if (count > f_msk-1) {
-         if (cs->debug & L1_DEB_ISAC_FIFO)
-           debugl1(cs, "hfcsx_write_fifo %d more as %d frames",fifo,f_msk-1);
-         return(0);
+       if (count > f_msk - 1) {
+               if (cs->debug & L1_DEB_ISAC_FIFO)
+                       debugl1(cs, "hfcsx_write_fifo %d more as %d frames", fifo, f_msk - 1);
+               return (0);
        }
 
        *(msp + f1) = z1; /* remember marker */
@@ -176,134 +176,134 @@ write_fifo(struct IsdnCardState *cs, struct sk_buff *skb, u_char fifo, int trans
        /* now determine free bytes in FIFO buffer */
        count = *(msp + f2) - z1;
        if (count <= 0)
-         count += fifo_size;   /* count now contains available bytes */
+               count += fifo_size;     /* count now contains available bytes */
 
        if (cs->debug & L1_DEB_ISAC_FIFO)
-         debugl1(cs, "hfcsx_write_fifo %d count(%u/%d)",
-                 fifo, skb->len, count);
+               debugl1(cs, "hfcsx_write_fifo %d count(%u/%d)",
+                       fifo, skb->len, count);
        if (count < skb->len) {
-         if (cs->debug & L1_DEB_ISAC_FIFO)
-           debugl1(cs, "hfcsx_write_fifo %d no fifo mem", fifo);
-         return(0);
+               if (cs->debug & L1_DEB_ISAC_FIFO)
+                       debugl1(cs, "hfcsx_write_fifo %d no fifo mem", fifo);
+               return (0);
        }
-       
+
        count = skb->len; /* get frame len */
        src = skb->data;        /* source pointer */
        while (count--)
-         Write_hfc(cs, HFCSX_FIF_DWR, *src++);
-       
+               Write_hfc(cs, HFCSX_FIF_DWR, *src++);
+
        Read_hfc(cs, HFCSX_FIF_INCF1); /* increment F1 */
        udelay(1);
-       while (bytein(cs->hw.hfcsx.base+1) & 1); /* wait for busy */
-       return(1);
-} 
+       while (bytein(cs->hw.hfcsx.base + 1) & 1); /* wait for busy */
+       return (1);
+}
 
 /***************************************************************/
 /* read_fifo reads data to an skb from the desired fifo        */
 /* if no data is available or an error occurs NULL is returned */
 /* the skb is not released in any way.                         */
 /***************************************************************/
-static struct sk_buff * 
+static struct sk_buff *
 read_fifo(struct IsdnCardState *cs, u_char fifo, int trans_max)
 {       int fifo_size, count, z1, z2;
        u_char f_msk, f1, f2, *dst;
        struct sk_buff *skb;
 
-        if (!(fifo & 1)) return(NULL); /* no read fifo */
+       if (!(fifo & 1)) return (NULL); /* no read fifo */
        fifo_select(cs, fifo);
        if (fifo & 4) {
-         fifo_size = D_FIFO_SIZE; /* D-channel */
-         f_msk = MAX_D_FRAMES;
-         if (trans_max) return(NULL); /* only hdlc */
+               fifo_size = D_FIFO_SIZE; /* D-channel */
+               f_msk = MAX_D_FRAMES;
+               if (trans_max) return (NULL); /* only hdlc */
        }
        else {
-         fifo_size = cs->hw.hfcsx.b_fifo_size; /* B-channel */
-         f_msk = MAX_B_FRAMES;
+               fifo_size = cs->hw.hfcsx.b_fifo_size; /* B-channel */
+               f_msk = MAX_B_FRAMES;
        }
 
        /* transparent mode */
        if (trans_max) {
-         z1 = Read_hfc(cs, HFCSX_FIF_Z1H);
-         z1 = ((z1 << 8) | Read_hfc(cs, HFCSX_FIF_Z1L));
-         z2 = Read_hfc(cs, HFCSX_FIF_Z2H);
-         z2 = ((z2 << 8) | Read_hfc(cs, HFCSX_FIF_Z2L));
-         /* now determine bytes in actual FIFO buffer */
-         count = z1 - z2;
-         if (count <= 0)
-           count += fifo_size; /* count now contains buffered bytes */
-         count++;
-         if (count > trans_max) 
-           count = trans_max; /* limit length */
-         skb = dev_alloc_skb(count);
-         if (skb) {
-           dst = skb_put(skb, count);
-           while (count--)
-               *dst++ = Read_hfc(cs, HFCSX_FIF_DRD);
-           return skb;
-         } else
-               return NULL; /* no memory */
+               z1 = Read_hfc(cs, HFCSX_FIF_Z1H);
+               z1 = ((z1 << 8) | Read_hfc(cs, HFCSX_FIF_Z1L));
+               z2 = Read_hfc(cs, HFCSX_FIF_Z2H);
+               z2 = ((z2 << 8) | Read_hfc(cs, HFCSX_FIF_Z2L));
+               /* now determine bytes in actual FIFO buffer */
+               count = z1 - z2;
+               if (count <= 0)
+                       count += fifo_size;     /* count now contains buffered bytes */
+               count++;
+               if (count > trans_max)
+                       count = trans_max; /* limit length */
+               skb = dev_alloc_skb(count);
+               if (skb) {
+                       dst = skb_put(skb, count);
+                       while (count--)
+                               *dst++ = Read_hfc(cs, HFCSX_FIF_DRD);
+                       return skb;
+               } else
+                       return NULL; /* no memory */
        }
 
        do {
-         f1 = Read_hfc(cs, HFCSX_FIF_F1) & f_msk;
-         f2 = Read_hfc(cs, HFCSX_FIF_F2) & f_msk;
-
-         if (f1 == f2) return(NULL); /* no frame available */
-
-         z1 = Read_hfc(cs, HFCSX_FIF_Z1H);
-         z1 = ((z1 << 8) | Read_hfc(cs, HFCSX_FIF_Z1L));
-         z2 = Read_hfc(cs, HFCSX_FIF_Z2H);
-         z2 = ((z2 << 8) | Read_hfc(cs, HFCSX_FIF_Z2L));
-
-         if (cs->debug & L1_DEB_ISAC_FIFO)
-           debugl1(cs, "hfcsx_read_fifo %d f1(%x) f2(%x) z1(f2)(%x) z2(f2)(%x)",
-                       fifo, f1, f2, z1, z2);
-         /* now determine bytes in actual FIFO buffer */
-         count = z1 - z2;
-         if (count <= 0)
-           count += fifo_size; /* count now contains buffered bytes */
-         count++;
-
-         if (cs->debug & L1_DEB_ISAC_FIFO)
-           debugl1(cs, "hfcsx_read_fifo %d count %u)",
-                   fifo, count);
-
-         if ((count > fifo_size) || (count < 4)) {
-           if (cs->debug & L1_DEB_WARN)
-             debugl1(cs, "hfcsx_read_fifo %d paket inv. len %d ", fifo , count);
-           while (count) {
-             count--; /* empty fifo */
-             Read_hfc(cs, HFCSX_FIF_DRD);
-           }
-           skb = NULL;
-         } else 
-           if ((skb = dev_alloc_skb(count - 3))) {
-             count -= 3;
-             dst = skb_put(skb, count);
-
-             while (count--) 
-               *dst++ = Read_hfc(cs, HFCSX_FIF_DRD);
-                   
-             Read_hfc(cs, HFCSX_FIF_DRD); /* CRC 1 */
-             Read_hfc(cs, HFCSX_FIF_DRD); /* CRC 2 */
-             if (Read_hfc(cs, HFCSX_FIF_DRD)) {
-               dev_kfree_skb_irq(skb);
+               f1 = Read_hfc(cs, HFCSX_FIF_F1) & f_msk;
+               f2 = Read_hfc(cs, HFCSX_FIF_F2) & f_msk;
+
+               if (f1 == f2) return (NULL); /* no frame available */
+
+               z1 = Read_hfc(cs, HFCSX_FIF_Z1H);
+               z1 = ((z1 << 8) | Read_hfc(cs, HFCSX_FIF_Z1L));
+               z2 = Read_hfc(cs, HFCSX_FIF_Z2H);
+               z2 = ((z2 << 8) | Read_hfc(cs, HFCSX_FIF_Z2L));
+
                if (cs->debug & L1_DEB_ISAC_FIFO)
-                 debugl1(cs, "hfcsx_read_fifo %d crc error", fifo);
-               skb = NULL;
-             }
-           } else {
-             printk(KERN_WARNING "HFC-SX: receive out of memory\n");
-             return(NULL);
-           }
-
-         Read_hfc(cs, HFCSX_FIF_INCF2); /* increment F2 */
-         udelay(1);
-         while (bytein(cs->hw.hfcsx.base+1) & 1); /* wait for busy */
-         udelay(1);
+                       debugl1(cs, "hfcsx_read_fifo %d f1(%x) f2(%x) z1(f2)(%x) z2(f2)(%x)",
+                               fifo, f1, f2, z1, z2);
+               /* now determine bytes in actual FIFO buffer */
+               count = z1 - z2;
+               if (count <= 0)
+                       count += fifo_size;     /* count now contains buffered bytes */
+               count++;
+
+               if (cs->debug & L1_DEB_ISAC_FIFO)
+                       debugl1(cs, "hfcsx_read_fifo %d count %u)",
+                               fifo, count);
+
+               if ((count > fifo_size) || (count < 4)) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "hfcsx_read_fifo %d paket inv. len %d ", fifo , count);
+                       while (count) {
+                               count--; /* empty fifo */
+                               Read_hfc(cs, HFCSX_FIF_DRD);
+                       }
+                       skb = NULL;
+               } else
+                       if ((skb = dev_alloc_skb(count - 3))) {
+                               count -= 3;
+                               dst = skb_put(skb, count);
+
+                               while (count--)
+                                       *dst++ = Read_hfc(cs, HFCSX_FIF_DRD);
+
+                               Read_hfc(cs, HFCSX_FIF_DRD); /* CRC 1 */
+                               Read_hfc(cs, HFCSX_FIF_DRD); /* CRC 2 */
+                               if (Read_hfc(cs, HFCSX_FIF_DRD)) {
+                                       dev_kfree_skb_irq(skb);
+                                       if (cs->debug & L1_DEB_ISAC_FIFO)
+                                               debugl1(cs, "hfcsx_read_fifo %d crc error", fifo);
+                                       skb = NULL;
+                               }
+                       } else {
+                               printk(KERN_WARNING "HFC-SX: receive out of memory\n");
+                               return (NULL);
+                       }
+
+               Read_hfc(cs, HFCSX_FIF_INCF2); /* increment F2 */
+               udelay(1);
+               while (bytein(cs->hw.hfcsx.base + 1) & 1); /* wait for busy */
+               udelay(1);
        } while (!skb); /* retry in case of crc error */
-       return(skb);
-} 
+       return (skb);
+}
 
 /******************************************/
 /* free hardware resources used by driver */
@@ -328,17 +328,17 @@ release_io_hfcsx(struct IsdnCardState *cs)
 /**********************************************************/
 static int set_fifo_size(struct IsdnCardState *cs)
 {
-        
-        if (cs->hw.hfcsx.b_fifo_size) return(1); /* already determined */
+
+       if (cs->hw.hfcsx.b_fifo_size) return (1); /* already determined */
 
        if ((cs->hw.hfcsx.chip >> 4) == 9) {
-         cs->hw.hfcsx.b_fifo_size = B_FIFO_SIZE_32K;
-         return(1);
+               cs->hw.hfcsx.b_fifo_size = B_FIFO_SIZE_32K;
+               return (1);
        }
 
-         cs->hw.hfcsx.b_fifo_size = B_FIFO_SIZE_8K;
-         cs->hw.hfcsx.cirm |= 0x10; /* only 8K of ram */
-         return(0);
+       cs->hw.hfcsx.b_fifo_size = B_FIFO_SIZE_8K;
+       cs->hw.hfcsx.cirm |= 0x10; /* only 8K of ram */
+       return (0);
 
 }
 
@@ -354,15 +354,15 @@ reset_hfcsx(struct IsdnCardState *cs)
 
        printk(KERN_INFO "HFC_SX: resetting card\n");
        while (1) {
-         Write_hfc(cs, HFCSX_CIRM, HFCSX_RESET | cs->hw.hfcsx.cirm ); /* Reset */
-         mdelay(30);
-         Write_hfc(cs, HFCSX_CIRM, cs->hw.hfcsx.cirm); /* Reset Off */
-         mdelay(20);
-         if (Read_hfc(cs, HFCSX_STATUS) & 2)
-           printk(KERN_WARNING "HFC-SX init bit busy\n");
-         cs->hw.hfcsx.last_fifo = 0xff; /* invalidate */
-         if (!set_fifo_size(cs)) continue;
-         break;
+               Write_hfc(cs, HFCSX_CIRM, HFCSX_RESET | cs->hw.hfcsx.cirm); /* Reset */
+               mdelay(30);
+               Write_hfc(cs, HFCSX_CIRM, cs->hw.hfcsx.cirm); /* Reset Off */
+               mdelay(20);
+               if (Read_hfc(cs, HFCSX_STATUS) & 2)
+                       printk(KERN_WARNING "HFC-SX init bit busy\n");
+               cs->hw.hfcsx.last_fifo = 0xff; /* invalidate */
+               if (!set_fifo_size(cs)) continue;
+               break;
        }
 
        cs->hw.hfcsx.trm = 0 + HFCSX_BTRANS_THRESMASK;  /* no echo connect , threshold */
@@ -376,8 +376,8 @@ reset_hfcsx(struct IsdnCardState *cs)
        cs->hw.hfcsx.ctmt = HFCSX_TIM3_125 | HFCSX_AUTO_TIMER;
        Write_hfc(cs, HFCSX_CTMT, cs->hw.hfcsx.ctmt);
 
-       cs->hw.hfcsx.int_m1 = HFCSX_INTS_DTRANS | HFCSX_INTS_DREC | 
-           HFCSX_INTS_L1STATE | HFCSX_INTS_TIMER;
+       cs->hw.hfcsx.int_m1 = HFCSX_INTS_DTRANS | HFCSX_INTS_DREC |
+               HFCSX_INTS_L1STATE | HFCSX_INTS_TIMER;
        Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
 
        /* Clear already pending ints */
@@ -423,8 +423,8 @@ hfcsx_Timer(struct IsdnCardState *cs)
        cs->hw.hfcsx.timer.expires = jiffies + 75;
        /* WD RESET */
 /*      WriteReg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcsx.ctmt | 0x80);
-   add_timer(&cs->hw.hfcsx.timer);
- */
+       add_timer(&cs->hw.hfcsx.timer);
+*/
 }
 
 /************************************************/
@@ -458,11 +458,11 @@ receive_dmsg(struct IsdnCardState *cs)
        }
 
        do {
-         skb = read_fifo(cs, HFCSX_SEL_D_RX, 0);
-         if (skb) {
-           skb_queue_tail(&cs->rq, skb);
-           schedule_event(cs, D_RCVBUFREADY);
-         }
+               skb = read_fifo(cs, HFCSX_SEL_D_RX, 0);
+               if (skb) {
+                       skb_queue_tail(&cs->rq, skb);
+                       schedule_event(cs, D_RCVBUFREADY);
+               }
        } while (--count && skb);
 
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
@@ -479,20 +479,20 @@ main_rec_hfcsx(struct BCState *bcs)
        int count = 5;
        struct sk_buff *skb;
 
-      Begin:
+Begin:
        count--;
        if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                debugl1(cs, "rec_data %d blocked", bcs->channel);
                return;
        }
-       skb = read_fifo(cs, ((bcs->channel) && (!cs->hw.hfcsx.bswapped)) ? 
+       skb = read_fifo(cs, ((bcs->channel) && (!cs->hw.hfcsx.bswapped)) ?
                        HFCSX_SEL_B2_RX : HFCSX_SEL_B1_RX,
-                       (bcs->mode == L1_MODE_TRANS) ? 
+                       (bcs->mode == L1_MODE_TRANS) ?
                        HFCSX_BTRANS_THRESHOLD : 0);
 
        if (skb) {
-         skb_queue_tail(&bcs->rqueue, skb);
-         schedule_event(bcs, B_RCVBUFREADY);
+               skb_queue_tail(&bcs->rqueue, skb);
+               schedule_event(bcs, B_RCVBUFREADY);
        }
 
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
@@ -513,8 +513,8 @@ hfcsx_fill_dfifo(struct IsdnCardState *cs)
                return;
 
        if (write_fifo(cs, cs->tx_skb, HFCSX_SEL_D_TX, 0)) {
-         dev_kfree_skb_any(cs->tx_skb);
-         cs->tx_skb = NULL;
+               dev_kfree_skb_any(cs->tx_skb);
+               cs->tx_skb = NULL;
        }
        return;
 }
@@ -532,24 +532,24 @@ hfcsx_fill_fifo(struct BCState *bcs)
        if (bcs->tx_skb->len <= 0)
                return;
 
-       if (write_fifo(cs, bcs->tx_skb, 
-                      ((bcs->channel) && (!cs->hw.hfcsx.bswapped)) ? 
+       if (write_fifo(cs, bcs->tx_skb,
+                      ((bcs->channel) && (!cs->hw.hfcsx.bswapped)) ?
                       HFCSX_SEL_B2_TX : HFCSX_SEL_B1_TX,
-                      (bcs->mode == L1_MODE_TRANS) ? 
+                      (bcs->mode == L1_MODE_TRANS) ?
                       HFCSX_BTRANS_THRESHOLD : 0)) {
 
-         bcs->tx_cnt -= bcs->tx_skb->len;
-         if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-               (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
-               u_long  flags;
-               spin_lock_irqsave(&bcs->aclock, flags);
-               bcs->ackcnt += bcs->tx_skb->len;
-               spin_unlock_irqrestore(&bcs->aclock, flags);
-               schedule_event(bcs, B_ACKPENDING);
-         }
-         dev_kfree_skb_any(bcs->tx_skb);
-         bcs->tx_skb = NULL;
-         test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               bcs->tx_cnt -= bcs->tx_skb->len;
+               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                       u_long  flags;
+                       spin_lock_irqsave(&bcs->aclock, flags);
+                       bcs->ackcnt += bcs->tx_skb->len;
+                       spin_unlock_irqrestore(&bcs->aclock, flags);
+                       schedule_event(bcs, B_ACKPENDING);
+               }
+               dev_kfree_skb_any(bcs->tx_skb);
+               bcs->tx_skb = NULL;
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
        }
 }
 
@@ -562,27 +562,27 @@ dch_nt_l2l1(struct PStack *st, int pr, void *arg)
        struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-               case (PH_PULL | REQUEST):
-               case (PH_PULL | INDICATION):
-                       st->l1.l1hw(st, pr, arg);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL);
-                       break;
-               case (PH_TESTLOOP | REQUEST):
-                       if (1 & (long) arg)
-                               debugl1(cs, "PH_TEST_LOOP B1");
-                       if (2 & (long) arg)
-                               debugl1(cs, "PH_TEST_LOOP B2");
-                       if (!(3 & (long) arg))
-                               debugl1(cs, "PH_TEST_LOOP DISABLED");
-                       st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg);
-                       break;
-               default:
-                       if (cs->debug)
-                               debugl1(cs, "dch_nt_l2l1 msg %04X unhandled", pr);
-                       break;
+       case (PH_DATA | REQUEST):
+       case (PH_PULL | REQUEST):
+       case (PH_PULL | INDICATION):
+               st->l1.l1hw(st, pr, arg);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL);
+               break;
+       case (PH_TESTLOOP | REQUEST):
+               if (1 & (long) arg)
+                       debugl1(cs, "PH_TEST_LOOP B1");
+               if (2 & (long) arg)
+                       debugl1(cs, "PH_TEST_LOOP B2");
+               if (!(3 & (long) arg))
+                       debugl1(cs, "PH_TEST_LOOP DISABLED");
+               st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg);
+               break;
+       default:
+               if (cs->debug)
+                       debugl1(cs, "dch_nt_l2l1 msg %04X unhandled", pr);
+               break;
        }
 }
 
@@ -592,14 +592,14 @@ dch_nt_l2l1(struct PStack *st, int pr, void *arg)
 /* set/reset echo mode */
 /***********************/
 static int
-hfcsx_auxcmd(struct IsdnCardState *cs, isdn_ctrl * ic)
+hfcsx_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic)
 {
        unsigned long flags;
        int i = *(unsigned int *) ic->parm.num;
 
        if ((ic->arg == 98) &&
            (!(cs->hw.hfcsx.int_m1 & (HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC + HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC)))) {
-               spin_lock_irqsave(&cs->lock, flags);
+               spin_lock_irqsave(&cs->lock, flags);
                Write_hfc(cs, HFCSX_STATES, HFCSX_LOAD_STATE | 0);      /* HFC ST G0 */
                udelay(10);
                cs->hw.hfcsx.sctrl |= SCTRL_MODE_NT;
@@ -660,26 +660,26 @@ receive_emsg(struct IsdnCardState *cs)
                return;
        }
        do {
-         skb = read_fifo(cs, HFCSX_SEL_B2_RX, 0);
-         if (skb) {
-           if (cs->debug & DEB_DLOG_HEX) {
-             ptr = cs->dlog;
-             if ((skb->len) < MAX_DLOG_SPACE / 3 - 10) {
-               *ptr++ = 'E';
-               *ptr++ = 'C';
-               *ptr++ = 'H';
-               *ptr++ = 'O';
-               *ptr++ = ':';
-               ptr += QuickHex(ptr, skb->data, skb->len);
-               ptr--;
-               *ptr++ = '\n';
-               *ptr = 0;
-               HiSax_putstatus(cs, NULL, cs->dlog);
-             } else
-               HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", skb->len);
-           }
-           dev_kfree_skb_any(skb);
-         }
+               skb = read_fifo(cs, HFCSX_SEL_B2_RX, 0);
+               if (skb) {
+                       if (cs->debug & DEB_DLOG_HEX) {
+                               ptr = cs->dlog;
+                               if ((skb->len) < MAX_DLOG_SPACE / 3 - 10) {
+                                       *ptr++ = 'E';
+                                       *ptr++ = 'C';
+                                       *ptr++ = 'H';
+                                       *ptr++ = 'O';
+                                       *ptr++ = ':';
+                                       ptr += QuickHex(ptr, skb->data, skb->len);
+                                       ptr--;
+                                       *ptr++ = '\n';
+                                       *ptr = 0;
+                                       HiSax_putstatus(cs, NULL, cs->dlog);
+                               } else
+                                       HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", skb->len);
+                       }
+                       dev_kfree_skb_any(skb);
+               }
        } while (--count && skb);
 
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
@@ -843,7 +843,7 @@ hfcsx_interrupt(int intno, void *dev_id)
                        } else
                                schedule_event(cs, D_XMTBUFREADY);
                }
-             afterXPR:
+       afterXPR:
                if (cs->hw.hfcsx.int_s1 && count--) {
                        val = cs->hw.hfcsx.int_s1;
                        cs->hw.hfcsx.int_s1 = 0;
@@ -875,128 +875,128 @@ HFCSX_l1hw(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
-#ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                               if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
-                                       hfcsx_fill_dfifo(cs); 
-                                       test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
-                               } else
-                                       debugl1(cs, "hfcsx_fill_dfifo blocked");
-
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
                        if (cs->debug & L1_DEB_LAPD)
-                               Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                               Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
                        if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
-                               hfcsx_fill_dfifo(cs); 
+                               hfcsx_fill_dfifo(cs);
                                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
                        } else
                                debugl1(cs, "hfcsx_fill_dfifo blocked");
+
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        break;
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD)
+                       Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       Write_hfc(cs, HFCSX_STATES, HFCSX_LOAD_STATE | 3);      /* HFC ST 3 */
-                       udelay(6);
-                       Write_hfc(cs, HFCSX_STATES, 3); /* HFC ST 2 */
-                       cs->hw.hfcsx.mst_m |= HFCSX_MASTER;
-                       Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
-                       Write_hfc(cs, HFCSX_STATES, HFCSX_ACTIVATE | HFCSX_DO_ACTION);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                       break;
-               case (HW_ENABLE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       Write_hfc(cs, HFCSX_STATES, HFCSX_ACTIVATE | HFCSX_DO_ACTION);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_DEACTIVATE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcsx.mst_m &= ~HFCSX_MASTER;
-                       Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcsx.mst_m |= HFCSX_MASTER;
-                       Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
+               if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
+                       hfcsx_fill_dfifo(cs);
+                       test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
+               } else
+                       debugl1(cs, "hfcsx_fill_dfifo blocked");
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG           /* psa */
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "-> PH_REQUEST_PULL");
+#endif
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               Write_hfc(cs, HFCSX_STATES, HFCSX_LOAD_STATE | 3);      /* HFC ST 3 */
+               udelay(6);
+               Write_hfc(cs, HFCSX_STATES, 3); /* HFC ST 2 */
+               cs->hw.hfcsx.mst_m |= HFCSX_MASTER;
+               Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
+               Write_hfc(cs, HFCSX_STATES, HFCSX_ACTIVATE | HFCSX_DO_ACTION);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               break;
+       case (HW_ENABLE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               Write_hfc(cs, HFCSX_STATES, HFCSX_ACTIVATE | HFCSX_DO_ACTION);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_DEACTIVATE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcsx.mst_m &= ~HFCSX_MASTER;
+               Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO3 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcsx.mst_m |= HFCSX_MASTER;
+               Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_TESTLOOP | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               switch ((long) arg) {
+               case (1):
+                       Write_hfc(cs, HFCSX_B1_SSL, 0x80);      /* tx slot */
+                       Write_hfc(cs, HFCSX_B1_RSL, 0x80);      /* rx slot */
+                       cs->hw.hfcsx.conn = (cs->hw.hfcsx.conn & ~7) | 1;
+                       Write_hfc(cs, HFCSX_CONNECT, cs->hw.hfcsx.conn);
                        break;
-               case (HW_TESTLOOP | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       switch ((long) arg) {
-                               case (1):
-                                       Write_hfc(cs, HFCSX_B1_SSL, 0x80);      /* tx slot */
-                                       Write_hfc(cs, HFCSX_B1_RSL, 0x80);      /* rx slot */
-                                       cs->hw.hfcsx.conn = (cs->hw.hfcsx.conn & ~7) | 1;
-                                       Write_hfc(cs, HFCSX_CONNECT, cs->hw.hfcsx.conn);
-                                       break;
-                               case (2):
-                                       Write_hfc(cs, HFCSX_B2_SSL, 0x81);      /* tx slot */
-                                       Write_hfc(cs, HFCSX_B2_RSL, 0x81);      /* rx slot */
-                                       cs->hw.hfcsx.conn = (cs->hw.hfcsx.conn & ~0x38) | 0x08;
-                                       Write_hfc(cs, HFCSX_CONNECT, cs->hw.hfcsx.conn);
-                                       break;
-                               default:
-                                       spin_unlock_irqrestore(&cs->lock, flags);
-                                       if (cs->debug & L1_DEB_WARN)
-                                               debugl1(cs, "hfcsx_l1hw loop invalid %4lx", (unsigned long)arg);
-                                       return;
-                       }
-                       cs->hw.hfcsx.trm |= 0x80;       /* enable IOM-loop */
-                       Write_hfc(cs, HFCSX_TRM, cs->hw.hfcsx.trm);
-                       spin_unlock_irqrestore(&cs->lock, flags);
+               case (2):
+                       Write_hfc(cs, HFCSX_B2_SSL, 0x81);      /* tx slot */
+                       Write_hfc(cs, HFCSX_B2_RSL, 0x81);      /* rx slot */
+                       cs->hw.hfcsx.conn = (cs->hw.hfcsx.conn & ~0x38) | 0x08;
+                       Write_hfc(cs, HFCSX_CONNECT, cs->hw.hfcsx.conn);
                        break;
                default:
+                       spin_unlock_irqrestore(&cs->lock, flags);
                        if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "hfcsx_l1hw unknown pr %4x", pr);
-                       break;
+                               debugl1(cs, "hfcsx_l1hw loop invalid %4lx", (unsigned long)arg);
+                       return;
+               }
+               cs->hw.hfcsx.trm |= 0x80;       /* enable IOM-loop */
+               Write_hfc(cs, HFCSX_TRM, cs->hw.hfcsx.trm);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "hfcsx_l1hw unknown pr %4x", pr);
+               break;
        }
 }
 
@@ -1018,7 +1018,7 @@ hfcsx_send_data(struct BCState *bcs)
        struct IsdnCardState *cs = bcs->cs;
 
        if (!test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
-         hfcsx_fill_fifo(bcs);
+               hfcsx_fill_fifo(bcs);
                test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
        } else
                debugl1(cs, "send_data %d blocked", bcs->channel);
@@ -1058,69 +1058,69 @@ mode_hfcsx(struct BCState *bcs, int mode, int bc)
                }
        }
        switch (mode) {
-               case (L1_MODE_NULL):
-                       if (bc) {
-                               cs->hw.hfcsx.sctrl &= ~SCTRL_B2_ENA;
-                               cs->hw.hfcsx.sctrl_r &= ~SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcsx.sctrl &= ~SCTRL_B1_ENA;
-                               cs->hw.hfcsx.sctrl_r &= ~SCTRL_B1_ENA;
-                       }
-                       if (fifo2) {
-                               cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
-                       } else {
-                               cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
-                       }
-                       break;
-               case (L1_MODE_TRANS):
-                       if (bc) {
-                               cs->hw.hfcsx.sctrl |= SCTRL_B2_ENA;
-                               cs->hw.hfcsx.sctrl_r |= SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcsx.sctrl |= SCTRL_B1_ENA;
-                               cs->hw.hfcsx.sctrl_r |= SCTRL_B1_ENA;
-                       }
-                       if (fifo2) {
-                               cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
-                               cs->hw.hfcsx.ctmt |= 2;
-                               cs->hw.hfcsx.conn &= ~0x18;
-                       } else {
-                               cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
-                               cs->hw.hfcsx.ctmt |= 1;
-                               cs->hw.hfcsx.conn &= ~0x03;
-                       }
-                       break;
-               case (L1_MODE_HDLC):
-                       if (bc) {
-                               cs->hw.hfcsx.sctrl |= SCTRL_B2_ENA;
-                               cs->hw.hfcsx.sctrl_r |= SCTRL_B2_ENA;
-                       } else {
-                               cs->hw.hfcsx.sctrl |= SCTRL_B1_ENA;
-                               cs->hw.hfcsx.sctrl_r |= SCTRL_B1_ENA;
-                       }
-                       if (fifo2) {
-                               cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
-                               cs->hw.hfcsx.ctmt &= ~2;
-                               cs->hw.hfcsx.conn &= ~0x18;
-                       } else {
-                               cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
-                               cs->hw.hfcsx.ctmt &= ~1;
-                               cs->hw.hfcsx.conn &= ~0x03;
-                       }
-                       break;
-               case (L1_MODE_EXTRN):
-                       if (bc) {
-                               cs->hw.hfcsx.conn |= 0x10;
-                               cs->hw.hfcsx.sctrl |= SCTRL_B2_ENA;
-                               cs->hw.hfcsx.sctrl_r |= SCTRL_B2_ENA;
-                               cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
-                       } else {
-                               cs->hw.hfcsx.conn |= 0x02;
-                               cs->hw.hfcsx.sctrl |= SCTRL_B1_ENA;
-                               cs->hw.hfcsx.sctrl_r |= SCTRL_B1_ENA;
-                               cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
-                       }
-                       break;
+       case (L1_MODE_NULL):
+               if (bc) {
+                       cs->hw.hfcsx.sctrl &= ~SCTRL_B2_ENA;
+                       cs->hw.hfcsx.sctrl_r &= ~SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcsx.sctrl &= ~SCTRL_B1_ENA;
+                       cs->hw.hfcsx.sctrl_r &= ~SCTRL_B1_ENA;
+               }
+               if (fifo2) {
+                       cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
+               } else {
+                       cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
+               }
+               break;
+       case (L1_MODE_TRANS):
+               if (bc) {
+                       cs->hw.hfcsx.sctrl |= SCTRL_B2_ENA;
+                       cs->hw.hfcsx.sctrl_r |= SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcsx.sctrl |= SCTRL_B1_ENA;
+                       cs->hw.hfcsx.sctrl_r |= SCTRL_B1_ENA;
+               }
+               if (fifo2) {
+                       cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
+                       cs->hw.hfcsx.ctmt |= 2;
+                       cs->hw.hfcsx.conn &= ~0x18;
+               } else {
+                       cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
+                       cs->hw.hfcsx.ctmt |= 1;
+                       cs->hw.hfcsx.conn &= ~0x03;
+               }
+               break;
+       case (L1_MODE_HDLC):
+               if (bc) {
+                       cs->hw.hfcsx.sctrl |= SCTRL_B2_ENA;
+                       cs->hw.hfcsx.sctrl_r |= SCTRL_B2_ENA;
+               } else {
+                       cs->hw.hfcsx.sctrl |= SCTRL_B1_ENA;
+                       cs->hw.hfcsx.sctrl_r |= SCTRL_B1_ENA;
+               }
+               if (fifo2) {
+                       cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
+                       cs->hw.hfcsx.ctmt &= ~2;
+                       cs->hw.hfcsx.conn &= ~0x18;
+               } else {
+                       cs->hw.hfcsx.int_m1 |= (HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
+                       cs->hw.hfcsx.ctmt &= ~1;
+                       cs->hw.hfcsx.conn &= ~0x03;
+               }
+               break;
+       case (L1_MODE_EXTRN):
+               if (bc) {
+                       cs->hw.hfcsx.conn |= 0x10;
+                       cs->hw.hfcsx.sctrl |= SCTRL_B2_ENA;
+                       cs->hw.hfcsx.sctrl_r |= SCTRL_B2_ENA;
+                       cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B2TRANS + HFCSX_INTS_B2REC);
+               } else {
+                       cs->hw.hfcsx.conn |= 0x02;
+                       cs->hw.hfcsx.sctrl |= SCTRL_B1_ENA;
+                       cs->hw.hfcsx.sctrl_r |= SCTRL_B1_ENA;
+                       cs->hw.hfcsx.int_m1 &= ~(HFCSX_INTS_B1TRANS + HFCSX_INTS_B1REC);
+               }
+               break;
        }
        Write_hfc(cs, HFCSX_SCTRL_E, cs->hw.hfcsx.sctrl_e);
        Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
@@ -1129,8 +1129,8 @@ mode_hfcsx(struct BCState *bcs, int mode, int bc)
        Write_hfc(cs, HFCSX_CTMT, cs->hw.hfcsx.ctmt);
        Write_hfc(cs, HFCSX_CONNECT, cs->hw.hfcsx.conn);
        if (mode != L1_MODE_EXTRN) {
-         reset_fifo(cs, fifo2 ? HFCSX_SEL_B2_RX : HFCSX_SEL_B1_RX);
-         reset_fifo(cs, fifo2 ? HFCSX_SEL_B2_TX : HFCSX_SEL_B1_TX);
+               reset_fifo(cs, fifo2 ? HFCSX_SEL_B2_RX : HFCSX_SEL_B1_RX);
+               reset_fifo(cs, fifo2 ? HFCSX_SEL_B2_TX : HFCSX_SEL_B1_TX);
        }
 }
 
@@ -1145,53 +1145,53 @@ hfcsx_l2l1(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
 //                              test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
-                       } else {
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n");
+               } else {
 //                             test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->tx_skb = skb;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       mode_hfcsx(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       mode_hfcsx(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+                       bcs->tx_skb = skb;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               mode_hfcsx(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               mode_hfcsx(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -1260,61 +1260,61 @@ hfcsx_bh(struct work_struct *work)
        if (test_and_clear_bit(D_L1STATECHANGE, &cs->event)) {
                if (!cs->hw.hfcsx.nt_mode)
                        switch (cs->dc.hfcsx.ph_state) {
-                               case (0):
-                                       l1_msg(cs, HW_RESET | INDICATION, NULL);
-                                       break;
-                               case (3):
-                                       l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                                       break;
-                               case (8):
-                                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                                       break;
-                               case (6):
-                                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                                       break;
-                               case (7):
-                                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                                       break;
-                               default:
-                                       break;
-               } else {
+                       case (0):
+                               l1_msg(cs, HW_RESET | INDICATION, NULL);
+                               break;
+                       case (3):
+                               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+                               break;
+                       case (8):
+                               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+                               break;
+                       case (6):
+                               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+                               break;
+                       case (7):
+                               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+                               break;
+                       default:
+                               break;
+                       } else {
                        switch (cs->dc.hfcsx.ph_state) {
-                               case (2):
-                                       spin_lock_irqsave(&cs->lock, flags);
-                                       if (cs->hw.hfcsx.nt_timer < 0) {
-                                               cs->hw.hfcsx.nt_timer = 0;
-                                               cs->hw.hfcsx.int_m1 &= ~HFCSX_INTS_TIMER;
-                                               Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
-                                               /* Clear already pending ints */
-                                               if (Read_hfc(cs, HFCSX_INT_S1));
-
-                                               Write_hfc(cs, HFCSX_STATES, 4 | HFCSX_LOAD_STATE);
-                                               udelay(10);
-                                               Write_hfc(cs, HFCSX_STATES, 4);
-                                               cs->dc.hfcsx.ph_state = 4;
-                                       } else {
-                                               cs->hw.hfcsx.int_m1 |= HFCSX_INTS_TIMER;
-                                               Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
-                                               cs->hw.hfcsx.ctmt &= ~HFCSX_AUTO_TIMER;
-                                               cs->hw.hfcsx.ctmt |= HFCSX_TIM3_125;
-                                               Write_hfc(cs, HFCSX_CTMT, cs->hw.hfcsx.ctmt | HFCSX_CLTIMER);
-                                               Write_hfc(cs, HFCSX_CTMT, cs->hw.hfcsx.ctmt | HFCSX_CLTIMER);
-                                               cs->hw.hfcsx.nt_timer = NT_T1_COUNT;
-                                               Write_hfc(cs, HFCSX_STATES, 2 | HFCSX_NT_G2_G3);        /* allow G2 -> G3 transition */
-                                       }
-                                       spin_unlock_irqrestore(&cs->lock, flags);
-                                       break;
-                               case (1):
-                               case (3):
-                               case (4):
-                                       spin_lock_irqsave(&cs->lock, flags);
+                       case (2):
+                               spin_lock_irqsave(&cs->lock, flags);
+                               if (cs->hw.hfcsx.nt_timer < 0) {
                                        cs->hw.hfcsx.nt_timer = 0;
                                        cs->hw.hfcsx.int_m1 &= ~HFCSX_INTS_TIMER;
                                        Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
-                                       spin_unlock_irqrestore(&cs->lock, flags);
-                                       break;
-                               default:
-                                       break;
+                                       /* Clear already pending ints */
+                                       if (Read_hfc(cs, HFCSX_INT_S1));
+
+                                       Write_hfc(cs, HFCSX_STATES, 4 | HFCSX_LOAD_STATE);
+                                       udelay(10);
+                                       Write_hfc(cs, HFCSX_STATES, 4);
+                                       cs->dc.hfcsx.ph_state = 4;
+                               } else {
+                                       cs->hw.hfcsx.int_m1 |= HFCSX_INTS_TIMER;
+                                       Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
+                                       cs->hw.hfcsx.ctmt &= ~HFCSX_AUTO_TIMER;
+                                       cs->hw.hfcsx.ctmt |= HFCSX_TIM3_125;
+                                       Write_hfc(cs, HFCSX_CTMT, cs->hw.hfcsx.ctmt | HFCSX_CLTIMER);
+                                       Write_hfc(cs, HFCSX_CTMT, cs->hw.hfcsx.ctmt | HFCSX_CLTIMER);
+                                       cs->hw.hfcsx.nt_timer = NT_T1_COUNT;
+                                       Write_hfc(cs, HFCSX_STATES, 2 | HFCSX_NT_G2_G3);        /* allow G2 -> G3 transition */
+                               }
+                               spin_unlock_irqrestore(&cs->lock, flags);
+                               break;
+                       case (1):
+                       case (3):
+                       case (4):
+                               spin_lock_irqsave(&cs->lock, flags);
+                               cs->hw.hfcsx.nt_timer = 0;
+                               cs->hw.hfcsx.int_m1 &= ~HFCSX_INTS_TIMER;
+                               Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
+                               spin_unlock_irqrestore(&cs->lock, flags);
+                               break;
+                       default:
+                               break;
                        }
                }
        }
@@ -1353,29 +1353,29 @@ hfcsx_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "HFCSX: card_msg %x", mt);
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_hfcsx(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_RELEASE:
-                       release_io_hfcsx(cs);
-                       return (0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithfcsx(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       msleep(80);                             /* Timeout 80ms */
-                       /* now switch timer interrupt off */
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcsx.int_m1 &= ~HFCSX_INTS_TIMER;
-                       Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
-                       /* reinit mode reg */
-                       Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return (0);
-               case CARD_TEST:
-                       return (0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_hfcsx(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_hfcsx(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithfcsx(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               msleep(80);                             /* Timeout 80ms */
+               /* now switch timer interrupt off */
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcsx.int_m1 &= ~HFCSX_INTS_TIMER;
+               Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
+               /* reinit mode reg */
+               Write_hfc(cs, HFCSX_MST_MODE, cs->hw.hfcsx.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
        return (0);
 }
@@ -1383,7 +1383,7 @@ hfcsx_card_msg(struct IsdnCardState *cs, int mt, void *arg)
 #ifdef __ISAPNP__
 static struct isapnp_device_id hfc_ids[] __devinitdata = {
        { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620),
-         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), 
+         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620),
          (unsigned long) "Teles 16.3c2" },
        { 0, }
 };
@@ -1403,30 +1403,30 @@ setup_hfcsx(struct IsdnCard *card)
 #ifdef __ISAPNP__
        if (!card->para[1] && isapnp_present()) {
                struct pnp_dev *pnp_d;
-               while(ipid->card_vendor) {
+               while (ipid->card_vendor) {
                        if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                               ipid->card_device, pnp_c))) {
+                                                  ipid->card_device, pnp_c))) {
                                pnp_d = NULL;
                                if ((pnp_d = pnp_find_dev(pnp_c,
-                                       ipid->vendor, ipid->function, pnp_d))) {
+                                                         ipid->vendor, ipid->function, pnp_d))) {
                                        int err;
 
                                        printk(KERN_INFO "HiSax: %s detected\n",
-                                               (char *)ipid->driver_data);
+                                              (char *)ipid->driver_data);
                                        pnp_disable_dev(pnp_d);
                                        err = pnp_activate_dev(pnp_d);
-                                       if (err<0) {
+                                       if (err < 0) {
                                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                                       __func__, err);
-                                               return(0);
+                                                      __func__, err);
+                                               return (0);
                                        }
                                        card->para[1] = pnp_port_start(pnp_d, 0);
                                        card->para[0] = pnp_irq(pnp_d, 0);
                                        if (!card->para[0] || !card->para[1]) {
                                                printk(KERN_ERR "HFC PnP:some resources are missing %ld/%lx\n",
-                                                       card->para[0], card->para[1]);
+                                                      card->para[0], card->para[1]);
                                                pnp_disable_dev(pnp_d);
-                                               return(0);
+                                               return (0);
                                        }
                                        break;
                                } else {
@@ -1435,10 +1435,10 @@ setup_hfcsx(struct IsdnCard *card)
                        }
                        ipid++;
                        pnp_c = NULL;
-               } 
+               }
                if (!ipid->card_vendor) {
                        printk(KERN_INFO "HFC PnP: no ISAPnP card found\n");
-                       return(0);
+                       return (0);
                }
        }
 #endif
@@ -1447,47 +1447,47 @@ setup_hfcsx(struct IsdnCard *card)
        cs->hw.hfcsx.int_s1 = 0;
        cs->dc.hfcsx.ph_state = 0;
        cs->hw.hfcsx.fifo = 255;
-       if ((cs->typ == ISDN_CTYPE_HFC_SX) || 
+       if ((cs->typ == ISDN_CTYPE_HFC_SX) ||
            (cs->typ == ISDN_CTYPE_HFC_SP_PCMCIA)) {
-               if ((!cs->hw.hfcsx.base) || !request_region(cs->hw.hfcsx.base, 2, "HFCSX isdn")) {
-                 printk(KERN_WARNING
-                        "HiSax: HFC-SX io-base %#lx already in use\n",
-                         cs->hw.hfcsx.base);
-                 return(0);
+               if ((!cs->hw.hfcsx.base) || !request_region(cs->hw.hfcsx.base, 2, "HFCSX isdn")) {
+                       printk(KERN_WARNING
+                              "HiSax: HFC-SX io-base %#lx already in use\n",
+                              cs->hw.hfcsx.base);
+                       return (0);
                }
                byteout(cs->hw.hfcsx.base, cs->hw.hfcsx.base & 0xFF);
                byteout(cs->hw.hfcsx.base + 1,
                        ((cs->hw.hfcsx.base >> 8) & 3) | 0x54);
                udelay(10);
-               cs->hw.hfcsx.chip = Read_hfc(cs,HFCSX_CHIP_ID);
-                switch (cs->hw.hfcsx.chip >> 4) {
-                 case 1: 
-                   tmp[0] ='+';
-                   break;
-                 case 9: 
-                   tmp[0] ='P';
-                   break;
-                 default:
-                   printk(KERN_WARNING
-                          "HFC-SX: invalid chip id 0x%x\n",
-                          cs->hw.hfcsx.chip >> 4);
-                   release_region(cs->hw.hfcsx.base, 2);
-                   return(0);
-               }  
+               cs->hw.hfcsx.chip = Read_hfc(cs, HFCSX_CHIP_ID);
+               switch (cs->hw.hfcsx.chip >> 4) {
+               case 1:
+                       tmp[0] = '+';
+                       break;
+               case 9:
+                       tmp[0] = 'P';
+                       break;
+               default:
+                       printk(KERN_WARNING
+                              "HFC-SX: invalid chip id 0x%x\n",
+                              cs->hw.hfcsx.chip >> 4);
+                       release_region(cs->hw.hfcsx.base, 2);
+                       return (0);
+               }
                if (!ccd_sp_irqtab[cs->irq & 0xF]) {
-                 printk(KERN_WARNING 
-                        "HFC_SX: invalid irq %d specified\n",cs->irq & 0xF);
-                 release_region(cs->hw.hfcsx.base, 2);
-                 return(0);
-               }  
+                       printk(KERN_WARNING
+                              "HFC_SX: invalid irq %d specified\n", cs->irq & 0xF);
+                       release_region(cs->hw.hfcsx.base, 2);
+                       return (0);
+               }
                if (!(cs->hw.hfcsx.extra = (void *)
                      kmalloc(sizeof(struct hfcsx_extra), GFP_ATOMIC))) {
-                 release_region(cs->hw.hfcsx.base, 2);
-                 printk(KERN_WARNING "HFC-SX: unable to allocate memory\n");
-                 return(0);
+                       release_region(cs->hw.hfcsx.base, 2);
+                       printk(KERN_WARNING "HFC-SX: unable to allocate memory\n");
+                       return (0);
                }
                printk(KERN_INFO "HFC-S%c chip detected at base 0x%x IRQ %d HZ %d\n",
-                       tmp[0], (u_int) cs->hw.hfcsx.base, cs->irq, HZ);
+                      tmp[0], (u_int) cs->hw.hfcsx.base, cs->irq, HZ);
                cs->hw.hfcsx.int_m2 = 0;        /* disable alle interrupts */
                cs->hw.hfcsx.int_m1 = 0;
                Write_hfc(cs, HFCSX_INT_M1, cs->hw.hfcsx.int_m1);
index 6792f13..eee85db 100644 (file)
@@ -5,7 +5,7 @@
  * Author       Werner Cornelius
  *              based on existing driver for CCD HFC PCI cards
  * Copyright    by Werner Cornelius  <werner@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -48,7 +48,7 @@
 
 #define HFCSX_MST_EMOD  0x2D
 #define HFCSX_MST_MODE 0x2E
-#define HFCSX_CONNECT  0x2F
+#define HFCSX_CONNECT  0x2F
 
 
 /* Interrupt and status registers */
 #define HFCSX_TRM       0x12
 #define HFCSX_B_MODE    0x13
 #define HFCSX_CHIP_ID   0x16
-#define HFCSX_CIRM     0x18
+#define HFCSX_CIRM     0x18
 #define HFCSX_CTMT     0x19
-#define HFCSX_INT_M1   0x1A
-#define HFCSX_INT_M2   0x1B
-#define HFCSX_INT_S1   0x1E
-#define HFCSX_INT_S2   0x1F
-#define HFCSX_STATUS   0x1C
+#define HFCSX_INT_M1   0x1A
+#define HFCSX_INT_M2   0x1B
+#define HFCSX_INT_S1   0x1E
+#define HFCSX_INT_S2   0x1F
+#define HFCSX_STATUS   0x1C
 
 /* S/T section registers */
 
-#define HFCSX_STATES   0x30
-#define HFCSX_SCTRL    0x31
+#define HFCSX_STATES   0x30
+#define HFCSX_SCTRL    0x31
 #define HFCSX_SCTRL_E   0x32
 #define HFCSX_SCTRL_R   0x33
-#define HFCSX_SQ       0x34
-#define HFCSX_CLKDEL   0x37
+#define HFCSX_SQ       0x34
+#define HFCSX_CLKDEL   0x37
 #define HFCSX_B1_REC    0x3C
 #define HFCSX_B1_SEND   0x3C
 #define HFCSX_B2_REC    0x3D
@@ -97,7 +97,7 @@
 
 /* bits in status register (READ) */
 #define HFCSX_SX_PROC    0x02
-#define HFCSX_NBUSY     0x04 
+#define HFCSX_NBUSY     0x04
 #define HFCSX_TIMER_ELAP 0x10
 #define HFCSX_STATINT   0x20
 #define HFCSX_FRAMEINT  0x40
 /* bits in CIRM (Write) */
 #define HFCSX_IRQ_SELMSK 0x07
 #define HFCSX_IRQ_SELDIS 0x00
-#define HFCSX_RESET     0x08
+#define HFCSX_RESET     0x08
 #define HFCSX_FIFO_RESET 0x80
 
 
 /* structure holding additional dynamic data -> send marker */
 /************************************************************/
 struct hfcsx_extra {
-  unsigned short marker[2*(MAX_B_FRAMES+1) + (MAX_D_FRAMES+1)];
+       unsigned short marker[2 * (MAX_B_FRAMES + 1) + (MAX_D_FRAMES + 1)];
 };
 
 extern void main_irq_hfcsx(struct BCState *bcs);
index f407de0..62c65bd 100644 (file)
@@ -27,7 +27,7 @@
  *
  * See Version Histroy at the bottom of this file
  *
-*/
+ */
 
 #include <linux/types.h>
 #include <linux/stddef.h>
 #include "hfc_usb.h"
 
 static const char *hfcusb_revision =
-    "$Revision: 2.3.2.24 $ $Date: 2007/10/14 08:40:29 $ ";
+       "$Revision: 2.3.2.24 $ $Date: 2007/10/14 08:40:29 $ ";
 
 /* Hisax debug support
-*  debug flags defined in hfc_usb.h as HFCUSB_DBG_[*]
-*/
+ *  debug flags defined in hfc_usb.h as HFCUSB_DBG_[*]
+ */
 #define __debug_variable hfc_debug
 #include "hisax_debug.h"
 static u_int debug;
@@ -67,70 +67,70 @@ typedef struct {
 /* VID/PID device list */
 static struct usb_device_id hfcusb_idtab[] = {
        {
-        USB_DEVICE(0x0959, 0x2bd0),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_OFF, {4, 0, 2, 1},
-                          "ISDN USB TA (Cologne Chip HFC-S USB based)"}),
+               USB_DEVICE(0x0959, 0x2bd0),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_OFF, {4, 0, 2, 1},
+                                       "ISDN USB TA (Cologne Chip HFC-S USB based)"}),
        },
        {
-        USB_DEVICE(0x0675, 0x1688),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {1, 2, 0, 0},
-                          "DrayTek miniVigor 128 USB ISDN TA"}),
+               USB_DEVICE(0x0675, 0x1688),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {1, 2, 0, 0},
+                                       "DrayTek miniVigor 128 USB ISDN TA"}),
        },
        {
-        USB_DEVICE(0x07b0, 0x0007),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Billion tiny USB ISDN TA 128"}),
+               USB_DEVICE(0x07b0, 0x0007),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Billion tiny USB ISDN TA 128"}),
        },
        {
-        USB_DEVICE(0x0742, 0x2008),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {4, 0, 2, 1},
-                          "Stollmann USB TA"}),
+               USB_DEVICE(0x0742, 0x2008),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {4, 0, 2, 1},
+                                       "Stollmann USB TA"}),
        },
        {
-        USB_DEVICE(0x0742, 0x2009),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {4, 0, 2, 1},
-                          "Aceex USB ISDN TA"}),
+               USB_DEVICE(0x0742, 0x2009),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {4, 0, 2, 1},
+                                       "Aceex USB ISDN TA"}),
        },
        {
-        USB_DEVICE(0x0742, 0x200A),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {4, 0, 2, 1},
-                          "OEM USB ISDN TA"}),
+               USB_DEVICE(0x0742, 0x200A),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {4, 0, 2, 1},
+                                       "OEM USB ISDN TA"}),
        },
        {
-        USB_DEVICE(0x08e3, 0x0301),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {2, 0, 1, 4},
-                          "Olitec USB RNIS"}),
+               USB_DEVICE(0x08e3, 0x0301),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {2, 0, 1, 4},
+                                       "Olitec USB RNIS"}),
        },
        {
-        USB_DEVICE(0x07fa, 0x0846),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Bewan Modem RNIS USB"}),
+               USB_DEVICE(0x07fa, 0x0846),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Bewan Modem RNIS USB"}),
        },
        {
-        USB_DEVICE(0x07fa, 0x0847),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Djinn Numeris USB"}),
+               USB_DEVICE(0x07fa, 0x0847),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Djinn Numeris USB"}),
        },
        {
-        USB_DEVICE(0x07b0, 0x0006),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {0x80, -64, -32, -16},
-                          "Twister ISDN TA"}),
+               USB_DEVICE(0x07b0, 0x0006),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {0x80, -64, -32, -16},
+                                       "Twister ISDN TA"}),
        },
        {
-        USB_DEVICE(0x071d, 0x1005),
-        .driver_info = (unsigned long) &((hfcsusb_vdata)
-                         {LED_SCHEME1, {0x02, 0, 0x01, 0x04},
-                          "Eicon DIVA USB 4.0"}),
+               USB_DEVICE(0x071d, 0x1005),
+               .driver_info = (unsigned long) &((hfcsusb_vdata)
+                       {LED_SCHEME1, {0x02, 0, 0x01, 0x04},
+                                       "Eicon DIVA USB 4.0"}),
        },
        { }
 };
@@ -177,7 +177,7 @@ typedef struct hfcusb_data {
        int alt_used;           /* used alternate config */
        int ctrl_paksize;       /* control pipe packet size */
        int ctrl_in_pipe,       /* handles for control pipe */
-           ctrl_out_pipe;
+               ctrl_out_pipe;
        int cfg_used;           /* configuration index used */
        int vend_idx;           /* vendor found */
        int b_mode[2];          /* B-channel mode */
@@ -206,7 +206,7 @@ typedef struct hfcusb_data {
 } hfcusb_data;
 
 
-static void collect_rx_frame(usb_fifo * fifo, __u8 * data, int len,
+static void collect_rx_frame(usb_fifo *fifo, __u8 *data, int len,
                             int finish);
 
 static inline const char *
@@ -220,24 +220,24 @@ symbolic(struct hfcusb_symbolic_list list[], const int num)
 }
 
 static void
-ctrl_start_transfer(hfcusb_data * hfc)
+ctrl_start_transfer(hfcusb_data *hfc)
 {
        if (hfc->ctrl_cnt) {
                hfc->ctrl_urb->pipe = hfc->ctrl_out_pipe;
-               hfc->ctrl_urb->setup_packet = (u_char *) & hfc->ctrl_write;
+               hfc->ctrl_urb->setup_packet = (u_char *)&hfc->ctrl_write;
                hfc->ctrl_urb->transfer_buffer = NULL;
                hfc->ctrl_urb->transfer_buffer_length = 0;
                hfc->ctrl_write.wIndex =
-                   cpu_to_le16(hfc->ctrl_buff[hfc->ctrl_out_idx].hfc_reg);
+                       cpu_to_le16(hfc->ctrl_buff[hfc->ctrl_out_idx].hfc_reg);
                hfc->ctrl_write.wValue =
-                   cpu_to_le16(hfc->ctrl_buff[hfc->ctrl_out_idx].reg_val);
+                       cpu_to_le16(hfc->ctrl_buff[hfc->ctrl_out_idx].reg_val);
 
                usb_submit_urb(hfc->ctrl_urb, GFP_ATOMIC);      /* start transfer */
        }
 }                              /* ctrl_start_transfer */
 
 static int
-queue_control_request(hfcusb_data * hfc, __u8 reg, __u8 val, int action)
+queue_control_request(hfcusb_data *hfc, __u8 reg, __u8 val, int action)
 {
        ctrl_buft *buf;
 
@@ -271,7 +271,7 @@ ctrl_complete(struct urb *urb)
 
 /* write led data to auxport & invert if necessary */
 static void
-write_led(hfcusb_data * hfc, __u8 led_state)
+write_led(hfcusb_data *hfc, __u8 led_state)
 {
        if (led_state != hfc->old_led_state) {
                hfc->old_led_state = led_state;
@@ -280,7 +280,7 @@ write_led(hfcusb_data * hfc, __u8 led_state)
 }
 
 static void
-set_led_bit(hfcusb_data * hfc, signed short led_bits, int on)
+set_led_bit(hfcusb_data *hfc, signed short led_bits, int on)
 {
        if (on) {
                if (led_bits < 0)
@@ -297,53 +297,53 @@ set_led_bit(hfcusb_data * hfc, signed short led_bits, int on)
 
 /* handle LED requests */
 static void
-handle_led(hfcusb_data * hfc, int event)
+handle_led(hfcusb_data *hfc, int event)
 {
        hfcsusb_vdata *driver_info =
-           (hfcsusb_vdata *) hfcusb_idtab[hfc->vend_idx].driver_info;
+               (hfcsusb_vdata *) hfcusb_idtab[hfc->vend_idx].driver_info;
 
        /* if no scheme -> no LED action */
        if (driver_info->led_scheme == LED_OFF)
                return;
 
        switch (event) {
-               case LED_POWER_ON:
-                       set_led_bit(hfc, driver_info->led_bits[0], 1);
-                       set_led_bit(hfc, driver_info->led_bits[1], 0);
-                       set_led_bit(hfc, driver_info->led_bits[2], 0);
-                       set_led_bit(hfc, driver_info->led_bits[3], 0);
-                       break;
-               case LED_POWER_OFF:
-                       set_led_bit(hfc, driver_info->led_bits[0], 0);
-                       set_led_bit(hfc, driver_info->led_bits[1], 0);
-                       set_led_bit(hfc, driver_info->led_bits[2], 0);
-                       set_led_bit(hfc, driver_info->led_bits[3], 0);
-                       break;
-               case LED_S0_ON:
-                       set_led_bit(hfc, driver_info->led_bits[1], 1);
-                       break;
-               case LED_S0_OFF:
-                       set_led_bit(hfc, driver_info->led_bits[1], 0);
-                       break;
-               case LED_B1_ON:
-                       set_led_bit(hfc, driver_info->led_bits[2], 1);
-                       break;
-               case LED_B1_OFF:
-                       set_led_bit(hfc, driver_info->led_bits[2], 0);
-                       break;
-               case LED_B2_ON:
-                       set_led_bit(hfc, driver_info->led_bits[3], 1);
-                       break;
-               case LED_B2_OFF:
-                       set_led_bit(hfc, driver_info->led_bits[3], 0);
-                       break;
+       case LED_POWER_ON:
+               set_led_bit(hfc, driver_info->led_bits[0], 1);
+               set_led_bit(hfc, driver_info->led_bits[1], 0);
+               set_led_bit(hfc, driver_info->led_bits[2], 0);
+               set_led_bit(hfc, driver_info->led_bits[3], 0);
+               break;
+       case LED_POWER_OFF:
+               set_led_bit(hfc, driver_info->led_bits[0], 0);
+               set_led_bit(hfc, driver_info->led_bits[1], 0);
+               set_led_bit(hfc, driver_info->led_bits[2], 0);
+               set_led_bit(hfc, driver_info->led_bits[3], 0);
+               break;
+       case LED_S0_ON:
+               set_led_bit(hfc, driver_info->led_bits[1], 1);
+               break;
+       case LED_S0_OFF:
+               set_led_bit(hfc, driver_info->led_bits[1], 0);
+               break;
+       case LED_B1_ON:
+               set_led_bit(hfc, driver_info->led_bits[2], 1);
+               break;
+       case LED_B1_OFF:
+               set_led_bit(hfc, driver_info->led_bits[2], 0);
+               break;
+       case LED_B2_ON:
+               set_led_bit(hfc, driver_info->led_bits[3], 1);
+               break;
+       case LED_B2_OFF:
+               set_led_bit(hfc, driver_info->led_bits[3], 0);
+               break;
        }
        write_led(hfc, hfc->led_state);
 }
 
 /* ISDN l1 timer T3 expires */
 static void
-l1_timer_expire_t3(hfcusb_data * hfc)
+l1_timer_expire_t3(hfcusb_data *hfc)
 {
        hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, PH_DEACTIVATE | INDICATION,
                           NULL);
@@ -360,7 +360,7 @@ l1_timer_expire_t3(hfcusb_data * hfc)
 
 /* ISDN l1 timer T4 expires */
 static void
-l1_timer_expire_t4(hfcusb_data * hfc)
+l1_timer_expire_t4(hfcusb_data *hfc)
 {
        hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, PH_DEACTIVATE | INDICATION,
                           NULL);
@@ -374,7 +374,7 @@ l1_timer_expire_t4(hfcusb_data * hfc)
 
 /* S0 state changed */
 static void
-s0_state_handler(hfcusb_data * hfc, __u8 state)
+s0_state_handler(hfcusb_data *hfc, __u8 state)
 {
        __u8 old_state;
 
@@ -402,12 +402,12 @@ s0_state_handler(hfcusb_data * hfc, __u8 state)
                DBG(HFCUSB_DBG_STATES, "HFC-S USB: PH_ACTIVATE | INDICATION sent");
                hfc->l1_activated = 1;
                handle_led(hfc, LED_S0_ON);
-       } else if (state <= 3 /* && activated */ ) {
+       } else if (state <= 3 /* && activated */) {
                if (old_state == 7 || old_state == 8) {
                        DBG(HFCUSB_DBG_STATES, "HFC-S USB: T4 activated");
                        if (!timer_pending(&hfc->t4_timer)) {
                                hfc->t4_timer.expires =
-                                   jiffies + (HFC_TIMER_T4 * HZ) / 1000;
+                                       jiffies + (HFC_TIMER_T4 * HZ) / 1000;
                                add_timer(&hfc->t4_timer);
                        }
                } else {
@@ -451,7 +451,7 @@ fill_isoc_urb(struct urb *urb, struct usb_device *dev, unsigned int pipe,
  * gaps in the transfer chain
  */
 static int
-start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb,
+start_isoc_chain(usb_fifo *fifo, int num_packets_per_urb,
                 usb_complete_t complete, int packet_size)
 {
        int i, k, errcode;
@@ -463,7 +463,7 @@ start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb,
        for (i = 0; i < 2; i++) {
                if (!(fifo->iso[i].purb)) {
                        fifo->iso[i].purb =
-                           usb_alloc_urb(num_packets_per_urb, GFP_KERNEL);
+                               usb_alloc_urb(num_packets_per_urb, GFP_KERNEL);
                        if (!(fifo->iso[i].purb)) {
                                printk(KERN_INFO
                                       "alloc urb for fifo %i failed!!!",
@@ -487,11 +487,11 @@ start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb,
                                /* defining packet delimeters in fifo->buffer */
                                for (k = 0; k < num_packets_per_urb; k++) {
                                        fifo->iso[i].purb->
-                                           iso_frame_desc[k].offset =
-                                           k * packet_size;
+                                               iso_frame_desc[k].offset =
+                                               k * packet_size;
                                        fifo->iso[i].purb->
-                                           iso_frame_desc[k].length =
-                                           packet_size;
+                                               iso_frame_desc[k].length =
+                                               packet_size;
                                }
                        } else {
                                printk(KERN_INFO
@@ -511,7 +511,7 @@ start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb,
 
 /* stops running iso chain and frees their pending urbs */
 static void
-stop_isoc_chain(usb_fifo * fifo)
+stop_isoc_chain(usb_fifo *fifo)
 {
        int i;
 
@@ -534,8 +534,8 @@ stop_isoc_chain(usb_fifo * fifo)
 
 /* defines how much ISO packets are handled in one URB */
 static int iso_packets[8] =
-    { ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B,
-       ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D
+{ ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B, ISOC_PACKETS_B,
+  ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D
 };
 
 static void
@@ -545,7 +545,7 @@ tx_iso_complete(struct urb *urb)
        usb_fifo *fifo = context_iso_urb->owner_fifo;
        hfcusb_data *hfc = fifo->hfc;
        int k, tx_offset, num_isoc_packets, sink, len, current_len,
-           errcode;
+               errcode;
        int frame_complete, transp_mode, fifon, status;
        __u8 threshbit;
 
@@ -565,8 +565,8 @@ tx_iso_complete(struct urb *urb)
                        errcode = urb->iso_frame_desc[k].status;
                        if (errcode)
                                DBG(HFCUSB_DBG_VERBOSE_USB, "HFC-S USB: tx_iso_complete "
-                                      "packet %i, status: %i\n",
-                                      k, errcode);
+                                   "packet %i, status: %i\n",
+                                   k, errcode);
                }
 
                // clear status, so go on with ISO transfers
@@ -607,8 +607,8 @@ tx_iso_complete(struct urb *urb)
                                if (current_len > 14)
                                        current_len = 14;
                                current_len =
-                                   (len <=
-                                    current_len) ? len : current_len;
+                                       (len <=
+                                        current_len) ? len : current_len;
                                /* how much bit do we put on the line? */
                                fifo->bit_line += current_len * 8;
 
@@ -617,7 +617,7 @@ tx_iso_complete(struct urb *urb)
                                        if (!transp_mode) {
                                                /* here frame completion */
                                                context_iso_urb->
-                                                   buffer[tx_offset] = 1;
+                                                       buffer[tx_offset] = 1;
                                                /* add 2 byte flags and 16bit CRC at end of ISDN frame */
                                                fifo->bit_line += 32;
                                        }
@@ -632,12 +632,12 @@ tx_iso_complete(struct urb *urb)
                                /* define packet delimeters within the URB buffer */
                                urb->iso_frame_desc[k].offset = tx_offset;
                                urb->iso_frame_desc[k].length =
-                                   current_len + 1;
+                                       current_len + 1;
 
                                tx_offset += (current_len + 1);
                        } else {
                                urb->iso_frame_desc[k].offset =
-                                   tx_offset++;
+                                       tx_offset++;
 
                                urb->iso_frame_desc[k].length = 1;
                                fifo->bit_line -= sink; /* we lower data margin every msec */
@@ -683,7 +683,7 @@ rx_iso_complete(struct urb *urb)
        usb_fifo *fifo = context_iso_urb->owner_fifo;
        hfcusb_data *hfc = fifo->hfc;
        int k, len, errcode, offset, num_isoc_packets, fifon, maxlen,
-           status;
+               status;
        unsigned int iso_status;
        __u8 *buf;
        static __u8 eof[8];
@@ -723,10 +723,10 @@ rx_iso_complete(struct urb *urb)
 
                        if (fifon == HFCUSB_D_RX) {
                                DBG(HFCUSB_DBG_VERBOSE_USB,
-                                      "HFC-S USB: ISO-D-RX lst_urblen:%2d "
-                                      "act_urblen:%2d max-urblen:%2d EOF:0x%0x",
-                                      fifo->last_urblen, len, maxlen,
-                                      eof[5]);
+                                   "HFC-S USB: ISO-D-RX lst_urblen:%2d "
+                                   "act_urblen:%2d max-urblen:%2d EOF:0x%0x",
+                                   fifo->last_urblen, len, maxlen,
+                                   eof[5]);
 
                                DBG_PACKET(HFCUSB_DBG_VERBOSE_USB, buf, len);
                        }
@@ -778,7 +778,7 @@ rx_iso_complete(struct urb *urb)
 
 /* collect rx data from INT- and ISO-URBs  */
 static void
-collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish)
+collect_rx_frame(usb_fifo *fifo, __u8 *data, int len, int finish)
 {
        hfcusb_data *hfc = fifo->hfc;
        int transp_mode, fifon;
@@ -802,8 +802,8 @@ collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish)
                        memcpy(skb_put(fifo->skbuff, len), data, len);
                } else {
                        DBG(HFCUSB_DBG_FIFO_ERR,
-                              "HCF-USB: got frame exceeded fifo->max_size(%d) fifo(%d)",
-                              fifo->max_size, fifon);
+                           "HCF-USB: got frame exceeded fifo->max_size(%d) fifo(%d)",
+                           fifo->max_size, fifon);
                        DBG_SKB(HFCUSB_DBG_VERBOSE_USB, fifo->skbuff);
                        skb_trim(fifo->skbuff, 0);
                }
@@ -817,7 +817,7 @@ collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish)
        /* we have a complete hdlc packet */
        if (finish) {
                if (fifo->skbuff->len > 3 &&
-                               !fifo->skbuff->data[fifo->skbuff->len - 1]) {
+                   !fifo->skbuff->data[fifo->skbuff->len - 1]) {
 
                        if (fifon == HFCUSB_D_RX) {
                                DBG(HFCUSB_DBG_DCHANNEL,
@@ -876,10 +876,10 @@ rx_int_complete(struct urb *urb)
 
        if (fifon == HFCUSB_D_RX) {
                DBG(HFCUSB_DBG_VERBOSE_USB,
-                      "HFC-S USB: INT-D-RX lst_urblen:%2d "
-                      "act_urblen:%2d max-urblen:%2d EOF:0x%0x",
-                      fifo->last_urblen, len, maxlen,
-                      eof[5]);
+                   "HFC-S USB: INT-D-RX lst_urblen:%2d "
+                   "act_urblen:%2d max-urblen:%2d EOF:0x%0x",
+                   fifo->last_urblen, len, maxlen,
+                   eof[5]);
                DBG_PACKET(HFCUSB_DBG_VERBOSE_USB, buf, len);
        }
 
@@ -909,7 +909,7 @@ rx_int_complete(struct urb *urb)
 
 /* start initial INT-URB for certain fifo */
 static void
-start_int_fifo(usb_fifo * fifo)
+start_int_fifo(usb_fifo *fifo)
 {
        int errcode;
 
@@ -936,7 +936,7 @@ start_int_fifo(usb_fifo * fifo)
 }
 
 static void
-setup_bchannel(hfcusb_data * hfc, int channel, int mode)
+setup_bchannel(hfcusb_data *hfc, int channel, int mode)
 {
        __u8 val, idx_table[2] = { 0, 2 };
 
@@ -999,100 +999,100 @@ hfc_usb_l2l1(struct hisax_if *my_hisax_if, int pr, void *arg)
        hfcusb_data *hfc = fifo->hfc;
 
        switch (pr) {
-               case PH_ACTIVATE | REQUEST:
-                       if (fifo->fifonum == HFCUSB_D_TX) {
+       case PH_ACTIVATE | REQUEST:
+               if (fifo->fifonum == HFCUSB_D_TX) {
+                       DBG(HFCUSB_DBG_STATES,
+                           "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_ACTIVATE | REQUEST");
+
+                       if (hfc->l1_state != 3
+                           && hfc->l1_state != 7) {
+                               hfc->d_if.ifc.l1l2(&hfc->d_if.ifc,
+                                                  PH_DEACTIVATE |
+                                                  INDICATION,
+                                                  NULL);
                                DBG(HFCUSB_DBG_STATES,
-                                   "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_ACTIVATE | REQUEST");
-
-                               if (hfc->l1_state != 3
-                                   && hfc->l1_state != 7) {
-                                       hfc->d_if.ifc.l1l2(&hfc->d_if.ifc,
-                                                          PH_DEACTIVATE |
+                                   "HFC-S USB: PH_DEACTIVATE | INDICATION sent (not state 3 or 7)");
+                       } else {
+                               if (hfc->l1_state == 7) {       /* l1 already active */
+                                       hfc->d_if.ifc.l1l2(&hfc->
+                                                          d_if.
+                                                          ifc,
+                                                          PH_ACTIVATE
+                                                          |
                                                           INDICATION,
                                                           NULL);
                                        DBG(HFCUSB_DBG_STATES,
-                                           "HFC-S USB: PH_DEACTIVATE | INDICATION sent (not state 3 or 7)");
+                                           "HFC-S USB: PH_ACTIVATE | INDICATION sent again ;)");
                                } else {
-                                       if (hfc->l1_state == 7) {       /* l1 already active */
-                                               hfc->d_if.ifc.l1l2(&hfc->
-                                                                  d_if.
-                                                                  ifc,
-                                                                  PH_ACTIVATE
-                                                                  |
-                                                                  INDICATION,
-                                                                  NULL);
-                                               DBG(HFCUSB_DBG_STATES,
-                                                   "HFC-S USB: PH_ACTIVATE | INDICATION sent again ;)");
-                                       } else {
-                                               /* force sending sending INFO1 */
-                                               queue_control_request(hfc,
-                                                                     HFCUSB_STATES,
-                                                                     0x14,
-                                                                     1);
-                                               mdelay(1);
-                                               /* start l1 activation */
-                                               queue_control_request(hfc,
-                                                                     HFCUSB_STATES,
-                                                                     0x04,
-                                                                     1);
-                                               if (!timer_pending
-                                                   (&hfc->t3_timer)) {
-                                                       hfc->t3_timer.
-                                                           expires =
-                                                           jiffies +
-                                                           (HFC_TIMER_T3 *
-                                                            HZ) / 1000;
-                                                       add_timer(&hfc->
-                                                                 t3_timer);
-                                               }
+                                       /* force sending sending INFO1 */
+                                       queue_control_request(hfc,
+                                                             HFCUSB_STATES,
+                                                             0x14,
+                                                             1);
+                                       mdelay(1);
+                                       /* start l1 activation */
+                                       queue_control_request(hfc,
+                                                             HFCUSB_STATES,
+                                                             0x04,
+                                                             1);
+                                       if (!timer_pending
+                                           (&hfc->t3_timer)) {
+                                               hfc->t3_timer.
+                                                       expires =
+                                                       jiffies +
+                                                       (HFC_TIMER_T3 *
+                                                        HZ) / 1000;
+                                               add_timer(&hfc->
+                                                         t3_timer);
                                        }
                                }
-                       } else {
-                               DBG(HFCUSB_DBG_STATES,
-                                   "HFC_USB: hfc_usb_d_l2l1 B-chan: PH_ACTIVATE | REQUEST");
-                               setup_bchannel(hfc,
-                                           (fifo->fifonum ==
-                                            HFCUSB_B1_TX) ? 0 : 1,
-                                           (long) arg);
-                               fifo->hif->l1l2(fifo->hif,
-                                               PH_ACTIVATE | INDICATION,
-                                               NULL);
-                       }
-                       break;
-               case PH_DEACTIVATE | REQUEST:
-                       if (fifo->fifonum == HFCUSB_D_TX) {
-                               DBG(HFCUSB_DBG_STATES,
-                                   "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_DEACTIVATE | REQUEST");
-                       } else {
-                               DBG(HFCUSB_DBG_STATES,
-                                   "HFC_USB: hfc_usb_d_l2l1 Bx-chan: PH_DEACTIVATE | REQUEST");
-                               setup_bchannel(hfc,
-                                           (fifo->fifonum ==
-                                            HFCUSB_B1_TX) ? 0 : 1,
-                                           (int) L1_MODE_NULL);
-                               fifo->hif->l1l2(fifo->hif,
-                                               PH_DEACTIVATE | INDICATION,
-                                               NULL);
-                       }
-                       break;
-               case PH_DATA | REQUEST:
-                       if (fifo->skbuff && fifo->delete_flg) {
-                               dev_kfree_skb_any(fifo->skbuff);
-                               fifo->skbuff = NULL;
-                               fifo->delete_flg = 0;
                        }
-                       fifo->skbuff = arg;     /* we have a new buffer */
-                       break;
-               default:
+               } else {
+                       DBG(HFCUSB_DBG_STATES,
+                           "HFC_USB: hfc_usb_d_l2l1 B-chan: PH_ACTIVATE | REQUEST");
+                       setup_bchannel(hfc,
+                                      (fifo->fifonum ==
+                                       HFCUSB_B1_TX) ? 0 : 1,
+                                      (long) arg);
+                       fifo->hif->l1l2(fifo->hif,
+                                       PH_ACTIVATE | INDICATION,
+                                       NULL);
+               }
+               break;
+       case PH_DEACTIVATE | REQUEST:
+               if (fifo->fifonum == HFCUSB_D_TX) {
+                       DBG(HFCUSB_DBG_STATES,
+                           "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_DEACTIVATE | REQUEST");
+               } else {
                        DBG(HFCUSB_DBG_STATES,
-                              "HFC_USB: hfc_usb_d_l2l1: unknown state : %#x", pr);
-                       break;
+                           "HFC_USB: hfc_usb_d_l2l1 Bx-chan: PH_DEACTIVATE | REQUEST");
+                       setup_bchannel(hfc,
+                                      (fifo->fifonum ==
+                                       HFCUSB_B1_TX) ? 0 : 1,
+                                      (int) L1_MODE_NULL);
+                       fifo->hif->l1l2(fifo->hif,
+                                       PH_DEACTIVATE | INDICATION,
+                                       NULL);
+               }
+               break;
+       case PH_DATA | REQUEST:
+               if (fifo->skbuff && fifo->delete_flg) {
+                       dev_kfree_skb_any(fifo->skbuff);
+                       fifo->skbuff = NULL;
+                       fifo->delete_flg = 0;
+               }
+               fifo->skbuff = arg;     /* we have a new buffer */
+               break;
+       default:
+               DBG(HFCUSB_DBG_STATES,
+                   "HFC_USB: hfc_usb_d_l2l1: unknown state : %#x", pr);
+               break;
        }
 }
 
 /* initial init HFC-S USB chip registers, HiSax interface, USB URBs */
 static int
-hfc_usb_init(hfcusb_data * hfc)
+hfc_usb_init(hfcusb_data *hfc)
 {
        usb_fifo *fifo;
        int i;
@@ -1138,7 +1138,7 @@ hfc_usb_init(hfcusb_data * hfc)
                write_usb(hfc, HFCUSB_FIFO, i); /* select the desired fifo */
                fifo[i].skbuff = NULL;  /* init buffer pointer */
                fifo[i].max_size =
-                   (i <= HFCUSB_B2_RX) ? MAX_BCH_SIZE : MAX_DFRAME_LEN;
+                       (i <= HFCUSB_B2_RX) ? MAX_BCH_SIZE : MAX_DFRAME_LEN;
                fifo[i].last_urblen = 0;
                /* set 2 bit for D- & E-channel */
                write_usb(hfc, HFCUSB_HDLC_PAR,
@@ -1185,7 +1185,7 @@ hfc_usb_init(hfcusb_data * hfc)
        usb_fill_control_urb(hfc->ctrl_urb,
                             hfc->dev,
                             hfc->ctrl_out_pipe,
-                            (u_char *) & hfc->ctrl_write,
+                            (u_char *)&hfc->ctrl_write,
                             NULL, 0, ctrl_complete, hfc);
        /* Init All Fifos */
        for (i = 0; i < HFCUSB_NUM_FIFOS; i++) {
@@ -1264,9 +1264,9 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
        struct usb_host_endpoint *ep;
        int ifnum = iface->desc.bInterfaceNumber;
        int i, idx, alt_idx, probe_alt_setting, vend_idx, cfg_used, *vcf,
-           attr, cfg_found, cidx, ep_addr;
+               attr, cfg_found, cidx, ep_addr;
        int cmptbl[16], small_match, iso_packet_size, packet_size,
-           alt_used = 0;
+               alt_used = 0;
        hfcsusb_vdata *driver_info;
 
        vend_idx = 0xffff;
@@ -1309,7 +1309,7 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
                                for (i = 0; i < iface->desc.bNumEndpoints;
                                     i++) {
                                        ep_addr =
-                                           ep->desc.bEndpointAddress;
+                                               ep->desc.bEndpointAddress;
                                        /* get endpoint base */
                                        idx = ((ep_addr & 0x7f) - 1) * 2;
                                        if (ep_addr & 0x80)
@@ -1345,7 +1345,7 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
                                        if (cfg_used < small_match) {
                                                small_match = cfg_used;
                                                alt_used =
-                                                   probe_alt_setting;
+                                                       probe_alt_setting;
                                                iface_used = iface;
                                        }
                                }
@@ -1376,95 +1376,95 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
                                if (vcf[idx] != EP_NOP
                                    && vcf[idx] != EP_NUL) {
                                        switch (attr) {
-                                               case USB_ENDPOINT_XFER_INT:
-                                                       context->
-                                                           fifos[cidx].
-                                                           pipe =
-                                                           usb_rcvintpipe
-                                                           (dev,
-                                                            ep->desc.
-                                                            bEndpointAddress);
+                                       case USB_ENDPOINT_XFER_INT:
+                                               context->
+                                                       fifos[cidx].
+                                                       pipe =
+                                                       usb_rcvintpipe
+                                                       (dev,
+                                                        ep->desc.
+                                                        bEndpointAddress);
+                                               context->
+                                                       fifos[cidx].
+                                                       usb_transfer_mode
+                                                       = USB_INT;
+                                               packet_size =
+                                                       le16_to_cpu(ep->desc.wMaxPacketSize);
+                                               break;
+                                       case USB_ENDPOINT_XFER_BULK:
+                                               if (ep_addr & 0x80)
                                                        context->
-                                                           fifos[cidx].
-                                                           usb_transfer_mode
-                                                           = USB_INT;
-                                                       packet_size =
-                                                           le16_to_cpu(ep->desc.wMaxPacketSize);
-                                                       break;
-                                               case USB_ENDPOINT_XFER_BULK:
-                                                       if (ep_addr & 0x80)
-                                                               context->
-                                                                   fifos
-                                                                   [cidx].
-                                                                   pipe =
-                                                                   usb_rcvbulkpipe
-                                                                   (dev,
-                                                                    ep->
-                                                                    desc.
-                                                                    bEndpointAddress);
-                                                       else
-                                                               context->
-                                                                   fifos
-                                                                   [cidx].
-                                                                   pipe =
-                                                                   usb_sndbulkpipe
-                                                                   (dev,
-                                                                    ep->
-                                                                    desc.
-                                                                    bEndpointAddress);
+                                                               fifos
+                                                               [cidx].
+                                                               pipe =
+                                                               usb_rcvbulkpipe
+                                                               (dev,
+                                                                ep->
+                                                                desc.
+                                                                bEndpointAddress);
+                                               else
                                                        context->
-                                                           fifos[cidx].
-                                                           usb_transfer_mode
-                                                           = USB_BULK;
-                                                       packet_size =
-                                                           le16_to_cpu(ep->desc.wMaxPacketSize);
-                                                       break;
-                                               case USB_ENDPOINT_XFER_ISOC:
-                                                       if (ep_addr & 0x80)
-                                                               context->
-                                                                   fifos
-                                                                   [cidx].
-                                                                   pipe =
-                                                                   usb_rcvisocpipe
-                                                                   (dev,
-                                                                    ep->
-                                                                    desc.
-                                                                    bEndpointAddress);
-                                                       else
-                                                               context->
-                                                                   fifos
-                                                                   [cidx].
-                                                                   pipe =
-                                                                   usb_sndisocpipe
-                                                                   (dev,
-                                                                    ep->
-                                                                    desc.
-                                                                    bEndpointAddress);
+                                                               fifos
+                                                               [cidx].
+                                                               pipe =
+                                                               usb_sndbulkpipe
+                                                               (dev,
+                                                                ep->
+                                                                desc.
+                                                                bEndpointAddress);
+                                               context->
+                                                       fifos[cidx].
+                                                       usb_transfer_mode
+                                                       = USB_BULK;
+                                               packet_size =
+                                                       le16_to_cpu(ep->desc.wMaxPacketSize);
+                                               break;
+                                       case USB_ENDPOINT_XFER_ISOC:
+                                               if (ep_addr & 0x80)
                                                        context->
-                                                           fifos[cidx].
-                                                           usb_transfer_mode
-                                                           = USB_ISOC;
-                                                       iso_packet_size =
-                                                           le16_to_cpu(ep->desc.wMaxPacketSize);
-                                                       break;
-                                               default:
+                                                               fifos
+                                                               [cidx].
+                                                               pipe =
+                                                               usb_rcvisocpipe
+                                                               (dev,
+                                                                ep->
+                                                                desc.
+                                                                bEndpointAddress);
+                                               else
                                                        context->
-                                                           fifos[cidx].
-                                                           pipe = 0;
+                                                               fifos
+                                                               [cidx].
+                                                               pipe =
+                                                               usb_sndisocpipe
+                                                               (dev,
+                                                                ep->
+                                                                desc.
+                                                                bEndpointAddress);
+                                               context->
+                                                       fifos[cidx].
+                                                       usb_transfer_mode
+                                                       = USB_ISOC;
+                                               iso_packet_size =
+                                                       le16_to_cpu(ep->desc.wMaxPacketSize);
+                                               break;
+                                       default:
+                                               context->
+                                                       fifos[cidx].
+                                                       pipe = 0;
                                        }       /* switch attribute */
 
                                        if (context->fifos[cidx].pipe) {
                                                context->fifos[cidx].
-                                                   fifonum = cidx;
+                                                       fifonum = cidx;
                                                context->fifos[cidx].hfc =
-                                                   context;
+                                                       context;
                                                context->fifos[cidx].usb_packet_maxlen =
-                                                   le16_to_cpu(ep->desc.wMaxPacketSize);
+                                                       le16_to_cpu(ep->desc.wMaxPacketSize);
                                                context->fifos[cidx].
-                                                   intervall =
-                                                   ep->desc.bInterval;
+                                                       intervall =
+                                                       ep->desc.bInterval;
                                                context->fifos[cidx].
-                                                   skbuff = NULL;
+                                                       skbuff = NULL;
                                        }
                                }
                                ep++;
@@ -1480,14 +1480,14 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
 
                        /* create the control pipes needed for register access */
                        context->ctrl_in_pipe =
-                           usb_rcvctrlpipe(context->dev, 0);
+                               usb_rcvctrlpipe(context->dev, 0);
                        context->ctrl_out_pipe =
-                           usb_sndctrlpipe(context->dev, 0);
+                               usb_sndctrlpipe(context->dev, 0);
                        context->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL);
 
                        driver_info =
-                           (hfcsusb_vdata *) hfcusb_idtab[vend_idx].
-                           driver_info;
+                               (hfcsusb_vdata *) hfcusb_idtab[vend_idx].
+                               driver_info;
                        printk(KERN_INFO "HFC-S USB: detected \"%s\"\n",
                               driver_info->vend_name);
 
index 2f581c0..f987bf8 100644 (file)
 #define SINK_MIN       48
 #define SINK_DMIN      12
 #define SINK_DMAX      18
-#define BITLINE_INF    (-64*8)
+#define BITLINE_INF    (-64 * 8)
 
 /* HFC-S USB register access by Control-URSs */
-#define write_usb(a,b,c)usb_control_msg((a)->dev,(a)->ctrl_out_pipe,0,0x40,(c),(b),NULL,0,HFC_CTRL_TIMEOUT)
-#define read_usb(a,b,c) usb_control_msg((a)->dev,(a)->ctrl_in_pipe,1,0xC0,0,(b),(c),1,HFC_CTRL_TIMEOUT)
+#define write_usb(a, b, c) usb_control_msg((a)->dev, (a)->ctrl_out_pipe, 0, 0x40, (c), (b), NULL, 0, HFC_CTRL_TIMEOUT)
+#define read_usb(a, b, c) usb_control_msg((a)->dev, (a)->ctrl_in_pipe, 1, 0xC0, 0, (b), (c), 1, HFC_CTRL_TIMEOUT)
 #define HFC_CTRL_BUFSIZE 32
 
 /* entry and size of output/input control buffer */
@@ -200,8 +200,8 @@ typedef struct {
 #define LED_B2_OFF     9
 #define LED_B2_DATA    10
 
-#define LED_NORMAL     0       // LEDs are normal
-#define LED_INVERTED   1       // LEDs are inverted
+#define LED_NORMAL     0       // LEDs are normal
+#define LED_INVERTED   1       // LEDs are inverted
 
 
 #endif // __HFC_USB_H__
index 20d7688..a5f048b 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -26,8 +26,8 @@ hfcs_interrupt(int intno, void *dev_id)
        u_long flags;
 
        spin_lock_irqsave(&cs->lock, flags);
-       if ((HFCD_ANYINT | HFCD_BUSY_NBUSY) & 
-               (stat = cs->BC_Read_Reg(cs, HFCD_DATA, HFCD_STAT))) {
+       if ((HFCD_ANYINT | HFCD_BUSY_NBUSY) &
+           (stat = cs->BC_Read_Reg(cs, HFCD_DATA, HFCD_STAT))) {
                val = cs->BC_Read_Reg(cs, HFCD_DATA, HFCD_INT_S1);
                if (cs->debug & L1_DEB_ISAC)
                        debugl1(cs, "HFCS: stat(%02x) s1(%02x)", stat, val);
@@ -106,57 +106,57 @@ hfcs_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "HFCS: card_msg %x", mt);
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_hfcs(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_hfcs(cs);
-                       return(0);
-               case CARD_INIT:
-                       delay = (75*HZ)/100 +1;
-                       mod_timer(&cs->hw.hfcD.timer, jiffies + delay);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_hfcs(cs);
-                       init2bds0(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       delay = (80*HZ)/1000 +1;
-                       msleep(80);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->hw.hfcD.ctmt |= HFCD_TIM800;
-                       cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcD.ctmt); 
-                       cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_hfcs(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_hfcs(cs);
+               return (0);
+       case CARD_INIT:
+               delay = (75 * HZ) / 100 + 1;
+               mod_timer(&cs->hw.hfcD.timer, jiffies + delay);
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_hfcs(cs);
+               init2bds0(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               delay = (80 * HZ) / 1000 + 1;
+               msleep(80);
+               spin_lock_irqsave(&cs->lock, flags);
+               cs->hw.hfcD.ctmt |= HFCD_TIM800;
+               cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcD.ctmt);
+               cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_MST_MODE, cs->hw.hfcD.mst_m);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 #ifdef __ISAPNP__
 static struct isapnp_device_id hfc_ids[] __devinitdata = {
        { ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114),
-         ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), 
+         ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114),
          (unsigned long) "Acer P10" },
        { ISAPNP_VENDOR('B', 'I', 'L'), ISAPNP_FUNCTION(0x0002),
-         ISAPNP_VENDOR('B', 'I', 'L'), ISAPNP_FUNCTION(0x0002), 
+         ISAPNP_VENDOR('B', 'I', 'L'), ISAPNP_FUNCTION(0x0002),
          (unsigned long) "Billion 2" },
        { ISAPNP_VENDOR('B', 'I', 'L'), ISAPNP_FUNCTION(0x0001),
-         ISAPNP_VENDOR('B', 'I', 'L'), ISAPNP_FUNCTION(0x0001), 
+         ISAPNP_VENDOR('B', 'I', 'L'), ISAPNP_FUNCTION(0x0001),
          (unsigned long) "Billion 1" },
        { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x7410),
-         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x7410), 
+         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x7410),
          (unsigned long) "IStar PnP" },
        { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2610),
-         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2610), 
+         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2610),
          (unsigned long) "Teles 16.3c" },
        { ISAPNP_VENDOR('S', 'F', 'M'), ISAPNP_FUNCTION(0x0001),
-         ISAPNP_VENDOR('S', 'F', 'M'), ISAPNP_FUNCTION(0x0001), 
+         ISAPNP_VENDOR('S', 'F', 'M'), ISAPNP_FUNCTION(0x0001),
          (unsigned long) "Tornado Tipa C" },
        { ISAPNP_VENDOR('K', 'Y', 'E'), ISAPNP_FUNCTION(0x0001),
-         ISAPNP_VENDOR('K', 'Y', 'E'), ISAPNP_FUNCTION(0x0001), 
+         ISAPNP_VENDOR('K', 'Y', 'E'), ISAPNP_FUNCTION(0x0001),
          (unsigned long) "Genius Speed Surfer" },
        { 0, }
 };
@@ -177,30 +177,30 @@ setup_hfcs(struct IsdnCard *card)
 #ifdef __ISAPNP__
        if (!card->para[1] && isapnp_present()) {
                struct pnp_dev *pnp_d;
-               while(ipid->card_vendor) {
+               while (ipid->card_vendor) {
                        if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                               ipid->card_device, pnp_c))) {
+                                                  ipid->card_device, pnp_c))) {
                                pnp_d = NULL;
                                if ((pnp_d = pnp_find_dev(pnp_c,
-                                       ipid->vendor, ipid->function, pnp_d))) {
+                                                         ipid->vendor, ipid->function, pnp_d))) {
                                        int err;
 
                                        printk(KERN_INFO "HiSax: %s detected\n",
-                                               (char *)ipid->driver_data);
+                                              (char *)ipid->driver_data);
                                        pnp_disable_dev(pnp_d);
                                        err = pnp_activate_dev(pnp_d);
-                                       if (err<0) {
+                                       if (err < 0) {
                                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                                       __func__, err);
-                                               return(0);
+                                                      __func__, err);
+                                               return (0);
                                        }
                                        card->para[1] = pnp_port_start(pnp_d, 0);
                                        card->para[0] = pnp_irq(pnp_d, 0);
                                        if (!card->para[0] || !card->para[1]) {
                                                printk(KERN_ERR "HFC PnP:some resources are missing %ld/%lx\n",
-                                                       card->para[0], card->para[1]);
+                                                      card->para[0], card->para[1]);
                                                pnp_disable_dev(pnp_d);
-                                               return(0);
+                                               return (0);
                                        }
                                        break;
                                } else {
@@ -209,10 +209,10 @@ setup_hfcs(struct IsdnCard *card)
                        }
                        ipid++;
                        pnp_c = NULL;
-               } 
+               }
                if (!ipid->card_vendor) {
                        printk(KERN_INFO "HFC PnP: no ISAPnP card found\n");
-                       return(0);
+                       return (0);
                }
        }
 #endif
@@ -229,7 +229,7 @@ setup_hfcs(struct IsdnCard *card)
        if (cs->typ == ISDN_CTYPE_TELES3C) {
                cs->hw.hfcD.bfifosize = 1024 + 512;
        } else if (cs->typ == ISDN_CTYPE_ACERP10) {
-               cs->hw.hfcD.bfifosize = 7*1024 + 512;
+               cs->hw.hfcD.bfifosize = 7 * 1024 + 512;
        } else
                return (0);
        if (!request_region(cs->hw.hfcD.addr, 2, "HFCS isdn")) {
index aff45a1..6ead631 100644 (file)
@@ -133,15 +133,15 @@ extern const char *tei_revision;
 
 /* include l3dss1 & ni1 specific process structures, but no other defines */
 #ifdef CONFIG_HISAX_EURO
-  #define l3dss1_process
-  #include "l3dss1.h" 
-  #undef  l3dss1_process
+#define l3dss1_process
+#include "l3dss1.h"
+#undef  l3dss1_process
 #endif /* CONFIG_HISAX_EURO */
 
 #ifdef CONFIG_HISAX_NI1
-  #define l3ni1_process
-  #include "l3ni1.h" 
-  #undef  l3ni1_process
+#define l3ni1_process
+#include "l3ni1.h"
+#undef  l3ni1_process
 #endif /* CONFIG_HISAX_NI1 */
 
 #define MAX_DFRAME_LEN 260
@@ -149,7 +149,7 @@ extern const char *tei_revision;
 #define HSCX_BUFMAX    4096
 #define MAX_DATA_SIZE  (HSCX_BUFMAX - 4)
 #define MAX_DATA_MEM   (HSCX_BUFMAX + 64)
-#define RAW_BUFMAX     (((HSCX_BUFMAX*6)/5) + 5)
+#define RAW_BUFMAX     (((HSCX_BUFMAX * 6) / 5) + 5)
 #define MAX_HEADER_LEN 4
 #define MAX_WINDOW     8
 #define MAX_MON_FRAME  32
@@ -165,7 +165,7 @@ extern const char *tei_revision;
 
 struct FsmInst;
 
-typedef void (* FSMFNPTR)(struct FsmInst *, int, void *);
+typedef void (*FSMFNPTR)(struct FsmInst *, int, void *);
 
 struct Fsm {
        FSMFNPTR *jumpmatrix;
@@ -272,10 +272,10 @@ struct Layer2 {
 
 struct Layer3 {
        void (*l3l4) (struct PStack *, int, void *);
-        void (*l3ml3) (struct PStack *, int, void *);
+       void (*l3ml3) (struct PStack *, int, void *);
        void (*l3l2) (struct PStack *, int, void *);
        struct FsmInst l3m;
-        struct FsmTimer l3m_timer;
+       struct FsmTimer l3m_timer;
        struct sk_buff_head squeue;
        struct l3_process *proc;
        struct l3_process *global;
@@ -286,7 +286,7 @@ struct Layer3 {
 
 struct LLInterface {
        void (*l4l3) (struct PStack *, int, void *);
-        int  (*l4l3_proto) (struct PStack *, isdn_ctrl *);
+       int  (*l4l3_proto) (struct PStack *, isdn_ctrl *);
        void *userdata;
        u_long flag;
 };
@@ -325,16 +325,16 @@ struct PStack {
        struct Management ma;
        int protocol;           /* EDSS1, 1TR6 or NI1 */
 
-        /* protocol specific data fields */
-        union
-        { u_char uuuu; /* only as dummy */
+       /* protocol specific data fields */
+       union
+       { u_char uuuu; /* only as dummy */
 #ifdef CONFIG_HISAX_EURO
-           dss1_stk_priv dss1; /* private dss1 data */
-#endif /* CONFIG_HISAX_EURO */              
+               dss1_stk_priv dss1; /* private dss1 data */
+#endif /* CONFIG_HISAX_EURO */
 #ifdef CONFIG_HISAX_NI1
-           ni1_stk_priv ni1; /* private ni1 data */
-#endif /* CONFIG_HISAX_NI1 */             
-        } prot;
+               ni1_stk_priv ni1; /* private ni1 data */
+#endif /* CONFIG_HISAX_NI1 */
+       } prot;
 };
 
 struct l3_process {
@@ -347,18 +347,18 @@ struct l3_process {
        struct Channel *chan;
        struct PStack *st;
        struct l3_process *next;
-        ulong redir_result;
-
-        /* protocol specific data fields */
-        union 
-        { u_char uuuu; /* only when euro not defined, avoiding empty union */
-#ifdef CONFIG_HISAX_EURO 
-           dss1_proc_priv dss1; /* private dss1 data */
-#endif /* CONFIG_HISAX_EURO */            
+       ulong redir_result;
+
+       /* protocol specific data fields */
+       union
+       { u_char uuuu; /* only when euro not defined, avoiding empty union */
+#ifdef CONFIG_HISAX_EURO
+               dss1_proc_priv dss1; /* private dss1 data */
+#endif /* CONFIG_HISAX_EURO */
 #ifdef CONFIG_HISAX_NI1
-           ni1_proc_priv ni1; /* private ni1 data */
-#endif /* CONFIG_HISAX_NI1 */             
-        } prot;
+               ni1_proc_priv ni1; /* private ni1 data */
+#endif /* CONFIG_HISAX_NI1 */
+       } prot;
 };
 
 struct hscx_hw {
@@ -642,7 +642,7 @@ struct hfc_hw {
        unsigned char cip;
        u_char isac_spcr;
        struct timer_list timer;
-};     
+};
 
 struct sedl_hw {
        unsigned int cfg_reg;
@@ -693,25 +693,25 @@ struct hfcPCI_hw {
        unsigned char int_m2;
        unsigned char int_s1;
        unsigned char sctrl;
-        unsigned char sctrl_r;
-        unsigned char sctrl_e;
-        unsigned char trm;
+       unsigned char sctrl_r;
+       unsigned char sctrl_e;
+       unsigned char trm;
        unsigned char stat;
        unsigned char fifo;
-        unsigned char fifo_en;
-        unsigned char bswapped;
-        unsigned char nt_mode;
-        int nt_timer;
-        struct pci_dev *dev;
-        unsigned char *pci_io; /* start of PCI IO memory */
+       unsigned char fifo_en;
+       unsigned char bswapped;
+       unsigned char nt_mode;
+       int nt_timer;
+       struct pci_dev *dev;
+       unsigned char *pci_io; /* start of PCI IO memory */
        dma_addr_t dma; /* dma handle for Fifos */
-        void *fifos; /* FIFO memory */ 
-        int last_bfifo_cnt[2]; /* marker saving last b-fifo frame count */
+       void *fifos; /* FIFO memory */
+       int last_bfifo_cnt[2]; /* marker saving last b-fifo frame count */
        struct timer_list timer;
 };
 
 struct hfcSX_hw {
-        unsigned long base;
+       unsigned long base;
        unsigned char cirm;
        unsigned char ctmt;
        unsigned char conn;
@@ -720,18 +720,18 @@ struct hfcSX_hw {
        unsigned char int_m2;
        unsigned char int_s1;
        unsigned char sctrl;
-        unsigned char sctrl_r;
-        unsigned char sctrl_e;
-        unsigned char trm;
+       unsigned char sctrl_r;
+       unsigned char sctrl_e;
+       unsigned char trm;
        unsigned char stat;
        unsigned char fifo;
-        unsigned char bswapped;
-        unsigned char nt_mode;
-        unsigned char chip;
-        int b_fifo_size;
-        unsigned char last_fifo;
-        void *extra;
-        int nt_timer;
+       unsigned char bswapped;
+       unsigned char nt_mode;
+       unsigned char chip;
+       int b_fifo_size;
+       unsigned char last_fifo;
+       void *extra;
+       int nt_timer;
        struct timer_list timer;
 };
 
@@ -784,13 +784,13 @@ struct bkm_hw {
        /* Scitel Quadro stuff */
        unsigned long plx_adr;
        unsigned long data_adr;
-};     
+};
 
 struct gazel_hw {
        struct pci_dev *dev;
        unsigned int cfg_reg;
        unsigned int pciaddr[2];
-        signed   int ipac;
+       signed   int ipac;
        signed   int isac;
        signed   int hscx[2];
        signed   int isacfifo;
@@ -877,8 +877,8 @@ struct icc_chip {
 #define HW_ARCOFI              3
 #define FLG_TWO_DCHAN          4
 #define FLG_L1_DBUSY           5
-#define FLG_DBUSY_TIMER        6
-#define FLG_LOCK_ATOMIC        7
+#define FLG_DBUSY_TIMER                6
+#define FLG_LOCK_ATOMIC                7
 #define FLG_ARCOFI_TIMER       8
 #define FLG_ARCOFI_ERROR       9
 #define FLG_HW_L1_UINT         10
@@ -892,8 +892,8 @@ struct IsdnCardState {
        u_long          irq_flags;
        u_long          HW_Flags;
        int             *busy_flag;
-        int            chanlimit; /* limited number of B-chans to use */
-        int            logecho; /* log echo if supported by card */
+       int             chanlimit; /* limited number of B-chans to use */
+       int             logecho; /* log echo if supported by card */
        union {
                struct elsa_hw elsa;
                struct teles0_hw teles0;
@@ -937,8 +937,8 @@ struct IsdnCardState {
        void            (*DC_Close) (struct IsdnCardState *);
        irq_handler_t   irq_func;
        int             (*auxcmd) (struct IsdnCardState *, isdn_ctrl *);
-       struct Channel  channel[2+MAX_WAITING_CALLS];
-       struct BCState  bcs[2+MAX_WAITING_CALLS];
+       struct Channel  channel[2 + MAX_WAITING_CALLS];
+       struct BCState  bcs[2 + MAX_WAITING_CALLS];
        struct PStack   *stlist;
        struct sk_buff_head rq, sq; /* D-channel queues */
        int             cardnr;
@@ -969,7 +969,7 @@ struct IsdnCardState {
 };
 
 
-#define  schedule_event(s, ev) do {test_and_set_bit(ev, &s->event);schedule_work(&s->tqueue); } while(0)
+#define schedule_event(s, ev)  do { test_and_set_bit(ev, &s->event); schedule_work(&s->tqueue); } while (0)
 
 #define  MON0_RX       1
 #define  MON1_RX       2
@@ -1053,7 +1053,7 @@ struct IsdnCardState {
 #define CARD_IX1MICROR2 0
 #endif
 
-#ifdef  CONFIG_HISAX_DIEHLDIVA
+#ifdef CONFIG_HISAX_DIEHLDIVA
 #define CARD_DIEHLDIVA 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1062,7 +1062,7 @@ struct IsdnCardState {
 #define CARD_DIEHLDIVA 0
 #endif
 
-#ifdef  CONFIG_HISAX_ASUSCOM
+#ifdef CONFIG_HISAX_ASUSCOM
 #define CARD_ASUSCOM 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1071,7 +1071,7 @@ struct IsdnCardState {
 #define CARD_ASUSCOM 0
 #endif
 
-#ifdef  CONFIG_HISAX_TELEINT
+#ifdef CONFIG_HISAX_TELEINT
 #define CARD_TELEINT 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1080,7 +1080,7 @@ struct IsdnCardState {
 #define CARD_TELEINT 0
 #endif
 
-#ifdef  CONFIG_HISAX_SEDLBAUER
+#ifdef CONFIG_HISAX_SEDLBAUER
 #define CARD_SEDLBAUER 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1089,7 +1089,7 @@ struct IsdnCardState {
 #define CARD_SEDLBAUER 0
 #endif
 
-#ifdef  CONFIG_HISAX_SPORTSTER
+#ifdef CONFIG_HISAX_SPORTSTER
 #define CARD_SPORTSTER 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1098,7 +1098,7 @@ struct IsdnCardState {
 #define CARD_SPORTSTER 0
 #endif
 
-#ifdef  CONFIG_HISAX_MIC
+#ifdef CONFIG_HISAX_MIC
 #define CARD_MIC 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1107,7 +1107,7 @@ struct IsdnCardState {
 #define CARD_MIC 0
 #endif
 
-#ifdef  CONFIG_HISAX_NETJET
+#ifdef CONFIG_HISAX_NETJET
 #define CARD_NETJET_S 1
 #ifndef ISDN_CHIP_ISAC
 #define ISDN_CHIP_ISAC 1
@@ -1206,7 +1206,7 @@ struct IsdnCardState {
 #define        CARD_W6692      0
 #endif
 
-#ifdef  CONFIG_HISAX_NETJET_U
+#ifdef CONFIG_HISAX_NETJET_U
 #define CARD_NETJET_U 1
 #ifndef ISDN_CHIP_ICC
 #define ISDN_CHIP_ICC 1
@@ -1269,8 +1269,8 @@ void setstack_l3dc(struct PStack *st, struct Channel *chanp);
 void setstack_l3bc(struct PStack *st, struct Channel *chanp);
 void releasestack_isdnl3(struct PStack *st);
 
-u_char *findie(u_char * p, int size, u_char ie, int wanted_set);
-int getcallref(u_char * p);
+u_char *findie(u_char *p, int size, u_char ie, int wanted_set);
+int getcallref(u_char *p);
 int newcallref(void);
 
 int FsmNew(struct Fsm *fsm, struct FsmNode *fnlist, int fncount);
@@ -1279,36 +1279,36 @@ int FsmEvent(struct FsmInst *fi, int event, void *arg);
 void FsmChangeState(struct FsmInst *fi, int newstate);
 void FsmInitTimer(struct FsmInst *fi, struct FsmTimer *ft);
 int FsmAddTimer(struct FsmTimer *ft, int millisec, int event,
-       void *arg, int where);
+               void *arg, int where);
 void FsmRestartTimer(struct FsmTimer *ft, int millisec, int event,
-       void *arg, int where);
+                    void *arg, int where);
 void FsmDelTimer(struct FsmTimer *ft, int where);
 int jiftime(char *s, long mark);
 
-int HiSax_command(isdn_ctrl * ic);
+int HiSax_command(isdn_ctrl *ic);
 int HiSax_writebuf_skb(int id, int chan, int ack, struct sk_buff *skb);
 __printf(3, 4)
 void HiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, ...);
 __printf(3, 0)
 void VHiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, va_list args);
 void HiSax_reportcard(int cardnr, int sel);
-int QuickHex(char *txt, u_char * p, int cnt);
-void LogFrame(struct IsdnCardState *cs, u_char * p, int size);
+int QuickHex(char *txt, u_char *p, int cnt);
+void LogFrame(struct IsdnCardState *cs, u_char *p, int size);
 void dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir);
-void iecpy(u_char * dest, u_char * iestart, int ieoffset);
+void iecpy(u_char *dest, u_char *iestart, int ieoffset);
 #endif /* __KERNEL__ */
 
 /*
  * Busywait delay for `jiffs' jiffies
  */
-#define HZDELAY(jiffs) do {                                    \
-               int tout = jiffs;                               \
-                                                               \
-               while (tout--) {                                \
-                       int loops = USEC_PER_SEC / HZ;          \
-                       while (loops--)                         \
-                               udelay(1);                      \
-               }                                               \
+#define HZDELAY(jiffs) do {                            \
+               int tout = jiffs;                       \
+                                                       \
+               while (tout--) {                        \
+                       int loops = USEC_PER_SEC / HZ;  \
+                       while (loops--)                 \
+                               udelay(1);              \
+               }                                       \
        } while (0)
 
 int ll_run(struct IsdnCardState *cs, int addfeatures);
index 17a2fea..487dcfe 100644 (file)
@@ -54,9 +54,9 @@ typedef struct IsdnCardState  IsdnCardState_t;
 typedef struct IsdnCard                IsdnCard_t;
 
 struct IsdnCard {
-       int             typ;
-       int             protocol;       /* EDSS1, 1TR6 or NI1 */
-       unsigned long   para[4];
+       int typ;
+       int protocol;   /* EDSS1, 1TR6 or NI1 */
+       unsigned long para[4];
        IsdnCardState_t *cs;
 };
 
index 5ed3b1c..7b3093d 100644 (file)
@@ -4,12 +4,12 @@
  * Author       Frode Isaksen
  * Copyright    2001 by Frode Isaksen      <fisaksen@bewan.com>
  *              2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  * How to use:
- * 
+ *
  * Before including this file, you need to
  *   #define __debug_variable my_debug
  * where my_debug is a variable in your code which
 
 #ifdef CONFIG_HISAX_DEBUG
 
-#define DBG(level, format, arg...) do { \
-if (level & __debug_variable) \
-printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
-} while (0)
+#define DBG(level, format, arg...) do {                                        \
+               if (level & __debug_variable)                           \
+                       printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
+       } while (0)
 
-#define DBG_PACKET(level,data,count) \
-  if (level & __debug_variable) dump_packet(__func__,data,count)
+#define DBG_PACKET(level, data, count)                                 \
+       if (level & __debug_variable) dump_packet(__func__, data, count)
 
-#define DBG_SKB(level,skb) \
-  if ((level & __debug_variable) && skb) dump_packet(__func__,skb->data,skb->len)
+#define DBG_SKB(level, skb)                                            \
+       if ((level & __debug_variable) && skb) dump_packet(__func__, skb->data, skb->len)
 
 
 static void __attribute__((unused))
-dump_packet(const char *name,const u_char *data,int pkt_len)
+dump_packet(const char *name, const u_char *data, int pkt_len)
 {
 #define DUMP_HDR_SIZE 20
 #define DUMP_TLR_SIZE 8
        if (pkt_len) {
-               int i,len1,len2;
+               int i, len1, len2;
 
-               printk(KERN_DEBUG "%s: length=%d,data=",name,pkt_len);
+               printk(KERN_DEBUG "%s: length=%d,data=", name, pkt_len);
 
-               if (pkt_len >  DUMP_HDR_SIZE+ DUMP_TLR_SIZE) {
+               if (pkt_len > DUMP_HDR_SIZE + DUMP_TLR_SIZE) {
                        len1 = DUMP_HDR_SIZE;
                        len2 = DUMP_TLR_SIZE;
                } else {
                        len1 = pkt_len > DUMP_HDR_SIZE ? DUMP_HDR_SIZE : pkt_len;
-                       len2 = 0;                       
+                       len2 = 0;
                }
                for (i = 0; i < len1; ++i) {
-                       printk ("%.2x", data[i]);
+                       printk("%.2x", data[i]);
                }
                if (len2) {
-                       printk ("..");
+                       printk("..");
                        for (i = pkt_len-DUMP_TLR_SIZE; i < pkt_len; ++i) {
-                               printk ("%.2x", data[i]);
+                               printk("%.2x", data[i]);
                        }
                }
-               printk ("\n");
+               printk("\n");
        }
 #undef DUMP_HDR_SIZE
 #undef DUMP_TLR_SIZE
@@ -72,8 +72,8 @@ dump_packet(const char *name,const u_char *data,int pkt_len)
 #else
 
 #define DBG(level, format, arg...) do {} while (0)
-#define DBG_PACKET(level,data,count) do {} while (0)
-#define DBG_SKB(level,skb) do {} while (0)
+#define DBG_PACKET(level, data, count) do {} while (0)
+#define DBG_SKB(level, skb) do {} while (0)
 
 #endif
 
index 478ebab..e4f47fe 100644 (file)
@@ -4,7 +4,7 @@
  * Author       Kai Germaschewski
  * Copyright    2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
  *              2001 by Karsten Keil       <keil@isdn4linux.de>
- * 
+ *
  * based upon Karsten Keil's original avm_pci.c driver
  *
  * This software may be used and distributed according to the terms
@@ -71,7 +71,7 @@ MODULE_DEVICE_TABLE(pci, fcpci_ids);
 
 #ifdef CONFIG_PNP
 static struct pnp_device_id fcpnp_ids[] __devinitdata = {
-       { 
+       {
                .id             = "AVM0900",
                .driver_data    = (unsigned long) "Fritz!Card PnP",
        },
@@ -153,7 +153,7 @@ MODULE_LICENSE("GPL");
 static unsigned char fcpci_read_isac(struct isac *isac, unsigned char offset)
 {
        struct fritz_adapter *adapter = isac->priv;
-       unsigned char idx = (offset > 0x2f) ? 
+       unsigned char idx = (offset > 0x2f) ?
                AVM_IDX_ISAC_REG_HIGH : AVM_IDX_ISAC_REG_LOW;
        unsigned char val;
        unsigned long flags;
@@ -161,7 +161,7 @@ static unsigned char fcpci_read_isac(struct isac *isac, unsigned char offset)
        spin_lock_irqsave(&adapter->hw_lock, flags);
        outb(idx, adapter->io + AVM_INDEX);
        val = inb(adapter->io + AVM_DATA + (offset & 0xf));
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
        DBG(0x1000, " port %#x, value %#x",
            offset, val);
        return val;
@@ -171,7 +171,7 @@ static void fcpci_write_isac(struct isac *isac, unsigned char offset,
                             unsigned char value)
 {
        struct fritz_adapter *adapter = isac->priv;
-       unsigned char idx = (offset > 0x2f) ? 
+       unsigned char idx = (offset > 0x2f) ?
                AVM_IDX_ISAC_REG_HIGH : AVM_IDX_ISAC_REG_LOW;
        unsigned long flags;
 
@@ -180,10 +180,10 @@ static void fcpci_write_isac(struct isac *isac, unsigned char offset,
        spin_lock_irqsave(&adapter->hw_lock, flags);
        outb(idx, adapter->io + AVM_INDEX);
        outb(value, adapter->io + AVM_DATA + (offset & 0xf));
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
 }
 
-static void fcpci_read_isac_fifo(struct isac *isac, unsigned char * data, 
+static void fcpci_read_isac_fifo(struct isac *isac, unsigned char *data,
                                 int size)
 {
        struct fritz_adapter *adapter = isac->priv;
@@ -192,10 +192,10 @@ static void fcpci_read_isac_fifo(struct isac *isac, unsigned char * data,
        spin_lock_irqsave(&adapter->hw_lock, flags);
        outb(AVM_IDX_ISAC_FIFO, adapter->io + AVM_INDEX);
        insb(adapter->io + AVM_DATA, data, size);
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
 }
 
-static void fcpci_write_isac_fifo(struct isac *isac, unsigned char * data, 
+static void fcpci_write_isac_fifo(struct isac *isac, unsigned char *data,
                                  int size)
 {
        struct fritz_adapter *adapter = isac->priv;
@@ -204,7 +204,7 @@ static void fcpci_write_isac_fifo(struct isac *isac, unsigned char * data,
        spin_lock_irqsave(&adapter->hw_lock, flags);
        outb(AVM_IDX_ISAC_FIFO, adapter->io + AVM_INDEX);
        outsb(adapter->io + AVM_DATA, data, size);
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
 }
 
 static u32 fcpci_read_hdlc_status(struct fritz_adapter *adapter, int nr)
@@ -254,14 +254,14 @@ static unsigned char fcpci2_read_isac(struct isac *isac, unsigned char offset)
        spin_lock_irqsave(&adapter->hw_lock, flags);
        outl(offset, adapter->io + AVM_ISACSX_INDEX);
        val = inl(adapter->io + AVM_ISACSX_DATA);
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
        DBG(0x1000, " port %#x, value %#x",
            offset, val);
 
        return val;
 }
 
-static void fcpci2_write_isac(struct isac *isac, unsigned char offset, 
+static void fcpci2_write_isac(struct isac *isac, unsigned char offset,
                              unsigned char value)
 {
        struct fritz_adapter *adapter = isac->priv;
@@ -272,10 +272,10 @@ static void fcpci2_write_isac(struct isac *isac, unsigned char offset,
        spin_lock_irqsave(&adapter->hw_lock, flags);
        outl(offset, adapter->io + AVM_ISACSX_INDEX);
        outl(value, adapter->io + AVM_ISACSX_DATA);
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
 }
 
-static void fcpci2_read_isac_fifo(struct isac *isac, unsigned char * data, 
+static void fcpci2_read_isac_fifo(struct isac *isac, unsigned char *data,
                                  int size)
 {
        struct fritz_adapter *adapter = isac->priv;
@@ -286,10 +286,10 @@ static void fcpci2_read_isac_fifo(struct isac *isac, unsigned char * data,
        outl(0, adapter->io + AVM_ISACSX_INDEX);
        for (i = 0; i < size; i++)
                data[i] = inl(adapter->io + AVM_ISACSX_DATA);
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
 }
 
-static void fcpci2_write_isac_fifo(struct isac *isac, unsigned char * data, 
+static void fcpci2_write_isac_fifo(struct isac *isac, unsigned char *data,
                                   int size)
 {
        struct fritz_adapter *adapter = isac->priv;
@@ -300,7 +300,7 @@ static void fcpci2_write_isac_fifo(struct isac *isac, unsigned char * data,
        outl(0, adapter->io + AVM_ISACSX_INDEX);
        for (i = 0; i < size; i++)
                outl(data[i], adapter->io + AVM_ISACSX_DATA);
-       spin_unlock_irqrestore(&adapter->hw_lock, flags);
+       spin_unlock_irqrestore(&adapter->hw_lock, flags);
 }
 
 static u32 fcpci2_read_hdlc_status(struct fritz_adapter *adapter, int nr)
@@ -349,10 +349,10 @@ static void __fcpnp_write_ctrl(struct fritz_bcs *bcs, int which)
 
        outb(idx, adapter->io + AVM_INDEX);
        if (which & 4)
-               outb(bcs->ctrl.sr.mode, 
+               outb(bcs->ctrl.sr.mode,
                     adapter->io + AVM_DATA + HDLC_STATUS + 2);
        if (which & 2)
-               outb(bcs->ctrl.sr.xml, 
+               outb(bcs->ctrl.sr.xml,
                     adapter->io + AVM_DATA + HDLC_STATUS + 1);
        if (which & 1)
                outb(bcs->ctrl.sr.cmd,
@@ -416,7 +416,7 @@ static void hdlc_fill_fifo(struct fritz_bcs *bcs)
                break;
        case AVM_FRITZ_PCIV2:
                fcpci2_write_ctrl(bcs, 3);
-               outsl(adapter->io + 
+               outsl(adapter->io +
                      (bcs->channel ? AVM_HDLC_FIFO_2 : AVM_HDLC_FIFO_1),
                      p, (count + 3) / 4);
                break;
@@ -447,12 +447,12 @@ static inline void hdlc_empty_fifo(struct fritz_bcs *bcs, int count)
        case AVM_FRITZ_PCI:
                spin_lock(&adapter->hw_lock);
                outl(idx, adapter->io + AVM_INDEX);
-               insl(adapter->io + AVM_DATA + HDLC_FIFO, 
+               insl(adapter->io + AVM_DATA + HDLC_FIFO,
                     p, (count + 3) / 4);
                spin_unlock(&adapter->hw_lock);
                break;
        case AVM_FRITZ_PCIV2:
-               insl(adapter->io + 
+               insl(adapter->io +
                     (bcs->channel ? AVM_HDLC_FIFO_2 : AVM_HDLC_FIFO_1),
                     p, (count + 3) / 4);
                break;
@@ -489,7 +489,7 @@ static inline void hdlc_rpr_irq(struct fritz_bcs *bcs, u32 stat)
        hdlc_empty_fifo(bcs, len);
 
        if ((stat & HDLC_STAT_RME) || (bcs->mode == L1_MODE_TRANS)) {
-               if (((stat & HDLC_STAT_CRCVFRRAB)== HDLC_STAT_CRCVFR) ||
+               if (((stat & HDLC_STAT_CRCVFRRAB) == HDLC_STAT_CRCVFR) ||
                    (bcs->mode == L1_MODE_TRANS)) {
                        skb = dev_alloc_skb(bcs->rcvidx);
                        if (!skb) {
@@ -512,7 +512,7 @@ static inline void hdlc_rpr_irq(struct fritz_bcs *bcs, u32 stat)
 static inline void hdlc_xdu_irq(struct fritz_bcs *bcs)
 {
        struct fritz_adapter *adapter = bcs->adapter;
-       
+
 
        /* Here we lost an TX interrupt, so
         * restart transmitting the whole frame.
@@ -587,7 +587,7 @@ static inline void hdlc_irq(struct fritz_adapter *adapter)
 static void modehdlc(struct fritz_bcs *bcs, int mode)
 {
        struct fritz_adapter *adapter = bcs->adapter;
-       
+
        DBG(0x40, "hdlc %c mode %d --> %d",
            'A' + bcs->channel, bcs->mode, mode);
 
@@ -638,12 +638,12 @@ static void fritz_b_l2l1(struct hisax_if *ifc, int pr, void *arg)
                break;
        case PH_ACTIVATE | REQUEST:
                mode = (long) arg;
-               DBG(4,"B%d,PH_ACTIVATE_REQUEST %d", bcs->channel + 1, mode);
+               DBG(4, "B%d,PH_ACTIVATE_REQUEST %d", bcs->channel + 1, mode);
                modehdlc(bcs, mode);
                B_L1L2(bcs, PH_ACTIVATE | INDICATION, NULL);
                break;
        case PH_DEACTIVATE | REQUEST:
-               DBG(4,"B%d,PH_DEACTIVATE_REQUEST", bcs->channel + 1);
+               DBG(4, "B%d,PH_DEACTIVATE_REQUEST", bcs->channel + 1);
                modehdlc(bcs, L1_MODE_NULL);
                B_L1L2(bcs, PH_DEACTIVATE | INDICATION, NULL);
                break;
@@ -702,10 +702,10 @@ static inline void fcpci2_init(struct fritz_adapter *adapter)
 
 static inline void fcpci_init(struct fritz_adapter *adapter)
 {
-       outb(AVM_STATUS0_DIS_TIMER | AVM_STATUS0_RES_TIMER | 
+       outb(AVM_STATUS0_DIS_TIMER | AVM_STATUS0_RES_TIMER |
             AVM_STATUS0_ENA_IRQ, adapter->io + AVM_STATUS0);
 
-       outb(AVM_STATUS1_ENA_IOM | adapter->irq, 
+       outb(AVM_STATUS1_ENA_IOM | adapter->irq,
             adapter->io + AVM_STATUS1);
        mdelay(10);
 }
@@ -717,7 +717,7 @@ static int __devinit fcpcipnp_setup(struct fritz_adapter *adapter)
        u32 val = 0;
        int retval;
 
-       DBG(1,"");
+       DBG(1, "");
 
        isac_init(&adapter->isac); // FIXME is this okay now
 
@@ -737,7 +737,7 @@ static int __devinit fcpcipnp_setup(struct fritz_adapter *adapter)
        }
 
        DBG(1, "stat %#x Class %X Rev %d",
-           val, val & 0xff, (val>>8) & 0xff);
+           val, val & 0xff, (val >> 8) & 0xff);
 
        spin_lock_init(&adapter->hw_lock);
        adapter->isac.priv = adapter;
@@ -819,15 +819,15 @@ static int __devinit fcpcipnp_setup(struct fritz_adapter *adapter)
 
        return 0;
 
- err_region:
+err_region:
        release_region(adapter->io, 32);
- err:
+err:
        return retval;
 }
 
 static void __devexit fcpcipnp_release(struct fritz_adapter *adapter)
 {
-       DBG(1,"");
+       DBG(1, "");
 
        outb(0, adapter->io + AVM_STATUS0);
        free_irq(adapter->irq, adapter);
@@ -836,7 +836,7 @@ static void __devexit fcpcipnp_release(struct fritz_adapter *adapter)
 
 // ----------------------------------------------------------------------
 
-static struct fritz_adapter * __devinit 
+static struct fritz_adapter * __devinit
 new_adapter(void)
 {
        struct fritz_adapter *adapter;
@@ -850,7 +850,7 @@ new_adapter(void)
        adapter->isac.hisax_d_if.owner = THIS_MODULE;
        adapter->isac.hisax_d_if.ifc.priv = &adapter->isac;
        adapter->isac.hisax_d_if.ifc.l2l1 = isac_d_l2l1;
-       
+
        for (i = 0; i < 2; i++) {
                adapter->bcs[i].adapter = adapter;
                adapter->bcs[i].channel = i;
@@ -862,7 +862,7 @@ new_adapter(void)
                b_if[i] = &adapter->bcs[i].b_if;
 
        if (hisax_register(&adapter->isac.hisax_d_if, b_if, "fcpcipnp",
-                       protocol) != 0) {
+                          protocol) != 0) {
                kfree(adapter);
                adapter = NULL;
        }
@@ -889,7 +889,7 @@ static int __devinit fcpci_probe(struct pci_dev *pdev,
 
        pci_set_drvdata(pdev, adapter);
 
-       if (pdev->device == PCI_DEVICE_ID_AVM_A1_V2) 
+       if (pdev->device == PCI_DEVICE_ID_AVM_A1_V2)
                adapter->type = AVM_FRITZ_PCIV2;
        else
                adapter->type = AVM_FRITZ_PCI;
@@ -909,10 +909,10 @@ static int __devinit fcpci_probe(struct pci_dev *pdev,
                goto err_free;
 
        return 0;
-       
- err_free:
+
+err_free:
        delete_adapter(adapter);
- err:
+err:
        return retval;
 }
 
@@ -923,7 +923,7 @@ static int __devinit fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_i
        int retval;
 
        if (!pdev)
-               return(-ENODEV);
+               return (-ENODEV);
 
        retval = -ENOMEM;
        adapter = new_adapter();
@@ -938,7 +938,7 @@ static int __devinit fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_i
        retval = pnp_activate_dev(pdev);
        if (retval < 0) {
                printk(KERN_WARNING "%s: pnp_activate_dev(%s) ret(%d)\n", __func__,
-                       (char *)dev_id->driver_data, retval);
+                      (char *)dev_id->driver_data, retval);
                goto err_free;
        }
        adapter->io = pnp_port_start(pdev, 0);
@@ -952,10 +952,10 @@ static int __devinit fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_i
                goto err_free;
 
        return 0;
-       
- err_free:
+
+err_free:
        delete_adapter(adapter);
- err:
+err:
        return retval;
 }
 
index 21fbced..aedef97 100644 (file)
@@ -38,7 +38,7 @@ struct fritz_bcs {
        int rcvidx;
        int fifo_size;
        u_char rcvbuf[HSCX_BUFMAX]; /* B-Channel receive Buffer */
-       
+
        int tx_cnt;                 /* B-Channel transmit counter */
        struct sk_buff *tx_skb;     /* B-Channel transmit Buffer */
 };
@@ -55,4 +55,3 @@ struct fritz_adapter {
        u32  (*read_hdlc_status) (struct fritz_adapter *adapter, int nr);
        void (*write_ctrl) (struct fritz_bcs *bcs, int which);
 };
-
index aa7c940..7098d6b 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Interface between low level (hardware) drivers and 
+ * Interface between low level (hardware) drivers and
  * HiSax protocol stack
  *
  * Author       Kai Germaschewski
  * Copyright    2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
index a8447fa..5154c25 100644 (file)
@@ -1,11 +1,11 @@
 /*
- * Driver for ISAC-S and ISAC-SX 
+ * Driver for ISAC-S and ISAC-SX
  * ISDN Subscriber Access Controller for Terminals
  *
  * Author       Kai Germaschewski
  * Copyright    2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
  *              2001 by Karsten Keil       <keil@isdn4linux.de>
- * 
+ *
  * based upon Karsten Keil's original isac.c driver
  *
  * This software may be used and distributed according to the terms
@@ -36,10 +36,10 @@ static int debug = 1;
 module_param(debug, int, 0);
 
 static char *ISACVer[] = {
-  "2086/2186 V1.1", 
-  "2085 B1", 
-  "2085 B2",
-  "2085 V2.3"
+       "2086/2186 V1.1",
+       "2085 B1",
+       "2085 B2",
+       "2085 V2.3"
 };
 #endif
 
@@ -178,7 +178,7 @@ enum {
        ST_L1_F8,
 };
 
-#define L1_STATE_COUNT (ST_L1_F8+1)
+#define L1_STATE_COUNT (ST_L1_F8 + 1)
 
 static char *strL1State[] =
 {
@@ -382,7 +382,7 @@ static struct FsmNode L1FnList[] __initdata =
        {ST_L1_F3_PDOWN,      EV_PH_AI8,            l1_go_f7_act_ind},
        {ST_L1_F3_PDOWN,      EV_PH_ACTIVATE_REQ,   l1_ar8},
        {ST_L1_F3_PDOWN,      EV_TIMER3,            l1_timer3},
-       
+
        {ST_L1_F3_PEND_DEACT, EV_PH_RES,            l1_di},
        {ST_L1_F3_PEND_DEACT, EV_PH_EI,             l1_di},
        {ST_L1_F3_PEND_DEACT, EV_PH_DC,             l1_go_f3pdown},
@@ -432,7 +432,7 @@ static void l1m_debug(struct FsmInst *fi, char *fmt, ...)
 {
        va_list args;
        char buf[256];
-       
+
        va_start(args, fmt);
        vsnprintf(buf, sizeof(buf), fmt, args);
        DBG(DBG_L1M, "%s", buf);
@@ -522,7 +522,7 @@ static inline void isac_cisq_interrupt(struct isac *isac)
        }
        if (val & ISAC_CIR0_CIC1) {
                val = isac->read_isac(isac, ISAC_CIR1);
-               DBG(DBG_WARN, "ISAC CIR1 %#x", val );
+               DBG(DBG_WARN, "ISAC CIR1 %#x", val);
        }
 }
 
@@ -531,10 +531,10 @@ static inline void isac_rme_interrupt(struct isac *isac)
        unsigned char val;
        int count;
        struct sk_buff *skb;
-       
+
        val = isac->read_isac(isac, ISAC_RSTA);
-       if ((val & (ISAC_RSTA_RDO | ISAC_RSTA_CRC | ISAC_RSTA_RAB) )
-            != ISAC_RSTA_CRC) {
+       if ((val & (ISAC_RSTA_RDO | ISAC_RSTA_CRC | ISAC_RSTA_RAB))
+           != ISAC_RSTA_CRC) {
                DBG(DBG_WARN, "RSTA %#x, dropped", val);
                isac->write_isac(isac, ISAC_CMDR, ISAC_CMDR_RMC);
                goto out;
@@ -560,7 +560,7 @@ static inline void isac_rme_interrupt(struct isac *isac)
        memcpy(skb_put(skb, count), isac->rcvbuf, count);
        DBG_SKB(DBG_RPACKET, skb);
        D_L1L2(isac, PH_DATA | INDICATION, skb);
- out:
+out:
        isac->rcvidx = 0;
 }
 
@@ -659,10 +659,10 @@ static inline void isacsx_rme_interrupt(struct isac *isac)
        unsigned char val;
 
        val = isac->read_isac(isac, ISACSX_RSTAD);
-       if ((val & (ISACSX_RSTAD_VFR | 
-                   ISACSX_RSTAD_RDO | 
-                   ISACSX_RSTAD_CRC | 
-                   ISACSX_RSTAD_RAB)) 
+       if ((val & (ISACSX_RSTAD_VFR |
+                   ISACSX_RSTAD_RDO |
+                   ISACSX_RSTAD_CRC |
+                   ISACSX_RSTAD_RAB))
            != (ISACSX_RSTAD_VFR | ISACSX_RSTAD_CRC)) {
                DBG(DBG_WARN, "RSTAD %#x, dropped", val);
                isac->write_isac(isac, ISACSX_CMDRD, ISACSX_CMDRD_RMC);
@@ -690,7 +690,7 @@ static inline void isacsx_rme_interrupt(struct isac *isac)
        memcpy(skb_put(skb, count), isac->rcvbuf, count);
        DBG_SKB(DBG_RPACKET, skb);
        D_L1L2(isac, PH_DATA | INDICATION, skb);
- out:
+out:
        isac->rcvidx = 0;
 }
 
@@ -778,8 +778,8 @@ void isac_setup(struct isac *isac)
 
        ph_command(isac, ISAC_CMD_RES);
 
-       isac->write_isac(isac, ISAC_MASK, 0xff);
-       isac->mocr = 0xaa;
+       isac->write_isac(isac, ISAC_MASK, 0xff);
+       isac->mocr = 0xaa;
        if (test_bit(ISAC_IOM1, &isac->flags)) {
                /* IOM 1 Mode */
                isac->write_isac(isac, ISAC_ADF2, 0x0);
@@ -832,7 +832,7 @@ void isacsx_setup(struct isac *isac)
        // all HDLC IRQ unmasked
        isac->write_isac(isac, ISACSX_MASKD,    0x03);
        // unmask ICD, CID IRQs
-       isac->write_isac(isac, ISACSX_MASK,            
+       isac->write_isac(isac, ISACSX_MASK,
                         ~(ISACSX_ISTA_ICD | ISACSX_ISTA_CIC));
 }
 
index 904b910..3e305fe 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -54,7 +54,7 @@ modehscx(struct BCState *bcs, int mode, int bc)
        cs->BC_Write_Reg(cs, hscx, HSCX_XBCH, 0x0);
        cs->BC_Write_Reg(cs, hscx, HSCX_RLCR, 0x0);
        cs->BC_Write_Reg(cs, hscx, HSCX_CCR1,
-               test_bit(HW_IPAC, &cs->HW_Flags) ? 0x82 : 0x85);
+                        test_bit(HW_IPAC, &cs->HW_Flags) ? 0x82 : 0x85);
        cs->BC_Write_Reg(cs, hscx, HSCX_CCR2, 0x30);
        cs->BC_Write_Reg(cs, hscx, HSCX_XCCR, 7);
        cs->BC_Write_Reg(cs, hscx, HSCX_RCCR, 7);
@@ -65,27 +65,27 @@ modehscx(struct BCState *bcs, int mode, int bc)
 
        if (bc == 0) {
                cs->BC_Write_Reg(cs, hscx, HSCX_TSAX,
-                             test_bit(HW_IOM1, &cs->HW_Flags) ? 0x7 : bcs->hw.hscx.tsaxr0);
+                                test_bit(HW_IOM1, &cs->HW_Flags) ? 0x7 : bcs->hw.hscx.tsaxr0);
                cs->BC_Write_Reg(cs, hscx, HSCX_TSAR,
-                             test_bit(HW_IOM1, &cs->HW_Flags) ? 0x7 : bcs->hw.hscx.tsaxr0);
+                                test_bit(HW_IOM1, &cs->HW_Flags) ? 0x7 : bcs->hw.hscx.tsaxr0);
        } else {
                cs->BC_Write_Reg(cs, hscx, HSCX_TSAX, bcs->hw.hscx.tsaxr1);
                cs->BC_Write_Reg(cs, hscx, HSCX_TSAR, bcs->hw.hscx.tsaxr1);
        }
        switch (mode) {
-               case (L1_MODE_NULL):
-                       cs->BC_Write_Reg(cs, hscx, HSCX_TSAX, 0x1f);
-                       cs->BC_Write_Reg(cs, hscx, HSCX_TSAR, 0x1f);
-                       cs->BC_Write_Reg(cs, hscx, HSCX_MODE, 0x84);
-                       break;
-               case (L1_MODE_TRANS):
-                       cs->BC_Write_Reg(cs, hscx, HSCX_MODE, 0xe4);
-                       break;
-               case (L1_MODE_HDLC):
-                       cs->BC_Write_Reg(cs, hscx, HSCX_CCR1,
-                               test_bit(HW_IPAC, &cs->HW_Flags) ? 0x8a : 0x8d);
-                       cs->BC_Write_Reg(cs, hscx, HSCX_MODE, 0x8c);
-                       break;
+       case (L1_MODE_NULL):
+               cs->BC_Write_Reg(cs, hscx, HSCX_TSAX, 0x1f);
+               cs->BC_Write_Reg(cs, hscx, HSCX_TSAR, 0x1f);
+               cs->BC_Write_Reg(cs, hscx, HSCX_MODE, 0x84);
+               break;
+       case (L1_MODE_TRANS):
+               cs->BC_Write_Reg(cs, hscx, HSCX_MODE, 0xe4);
+               break;
+       case (L1_MODE_HDLC):
+               cs->BC_Write_Reg(cs, hscx, HSCX_CCR1,
+                                test_bit(HW_IPAC, &cs->HW_Flags) ? 0x8a : 0x8d);
+               cs->BC_Write_Reg(cs, hscx, HSCX_MODE, 0x8c);
+               break;
        }
        if (mode)
                cs->BC_Write_Reg(cs, hscx, HSCX_CMDR, 0x41);
@@ -100,55 +100,55 @@ hscx_l2l1(struct PStack *st, int pr, void *arg)
        struct sk_buff *skb = arg;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->hw.hscx.count = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "hscx_l2l1: this shouldn't happen\n");
-                       } else {
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->tx_skb = skb;
-                               bcs->hw.hscx.count = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       modehscx(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       modehscx(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->hw.hscx.count = 0;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "hscx_l2l1: this shouldn't happen\n");
+               } else {
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->tx_skb = skb;
+                       bcs->hw.hscx.count = 0;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               modehscx(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               modehscx(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -177,13 +177,13 @@ open_hscxstate(struct IsdnCardState *cs, struct BCState *bcs)
        if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) {
                if (!(bcs->hw.hscx.rcvbuf = kmalloc(HSCX_BUFMAX, GFP_ATOMIC))) {
                        printk(KERN_WARNING
-                               "HiSax: No memory for hscx.rcvbuf\n");
+                              "HiSax: No memory for hscx.rcvbuf\n");
                        test_and_clear_bit(BC_FLG_INIT, &bcs->Flag);
                        return (1);
                }
                if (!(bcs->blog = kmalloc(MAX_BLOG_SPACE, GFP_ATOMIC))) {
                        printk(KERN_WARNING
-                               "HiSax: No memory for bcs->blog\n");
+                              "HiSax: No memory for bcs->blog\n");
                        test_and_clear_bit(BC_FLG_INIT, &bcs->Flag);
                        kfree(bcs->hw.hscx.rcvbuf);
                        bcs->hw.hscx.rcvbuf = NULL;
index 268bfd3..1148b4b 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
index 2387d76..f398d48 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -84,7 +84,7 @@ hscx_fill_fifo(struct BCState *bcs)
 {
        struct IsdnCardState *cs = bcs->cs;
        int more, count;
-       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags)? 64: 32;
+       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags) ? 64 : 32;
        u_char *ptr;
 
        if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
@@ -125,7 +125,7 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
        u_char r;
        struct BCState *bcs = cs->bcs + hscx;
        struct sk_buff *skb;
-       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags)? 64: 32;
+       int fifo_size = test_bit(HW_IPAC, &cs->HW_Flags) ? 64 : 32;
        int count;
 
        if (!test_bit(BC_FLG_INIT, &bcs->Flag))
@@ -159,7 +159,7 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
                        WriteHSCXCMDR(cs, hscx, 0x80);
                } else {
                        count = READHSCX(cs, hscx, HSCX_RBCL) & (
-                               test_bit(HW_IPAC, &cs->HW_Flags)? 0x3f: 0x1f);
+                               test_bit(HW_IPAC, &cs->HW_Flags) ? 0x3f : 0x1f);
                        if (count == 0)
                                count = fifo_size;
                        hscx_empty_fifo(bcs, count);
@@ -197,8 +197,8 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
                                hscx_fill_fifo(bcs);
                                return;
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                        u_long  flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->hw.hscx.count;
@@ -206,7 +206,7 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
                                        schedule_event(bcs, B_ACKPENDING);
                                }
                                dev_kfree_skb_irq(bcs->tx_skb);
-                               bcs->hw.hscx.count = 0; 
+                               bcs->hw.hscx.count = 0;
                                bcs->tx_skb = NULL;
                        }
                }
@@ -239,7 +239,7 @@ hscx_int_main(struct IsdnCardState *cs, u_char val)
                                bcs->err_tx++;
 #endif
                                /* Here we lost an TX interrupt, so
-                                  * restart transmitting the whole frame.
+                                * restart transmitting the whole frame.
                                 */
                                if (bcs->tx_skb) {
                                        skb_push(bcs->tx_skb, bcs->hw.hscx.count);
@@ -266,7 +266,7 @@ hscx_int_main(struct IsdnCardState *cs, u_char val)
                                hscx_fill_fifo(bcs);
                        else {
                                /* Here we lost an TX interrupt, so
-                                  * restart transmitting the whole frame.
+                                * restart transmitting the whole frame.
                                 */
 #ifdef ERROR_STATISTIC
                                bcs->err_tx++;
index 6305726..7be762b 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Matt Henderson & Guy Ellis
  * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -50,30 +50,30 @@ static void
 icc_new_ph(struct IsdnCardState *cs)
 {
        switch (cs->dc.icc.ph_state) {
-               case (ICC_IND_EI1):
-                       ph_command(cs, ICC_CMD_DI);
-                       l1_msg(cs, HW_RESET | INDICATION, NULL);
-                       break;
-               case (ICC_IND_DC):
-                       l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
-                       break;
-               case (ICC_IND_DR):
-                       l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                       break;
-               case (ICC_IND_PU):
-                       l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                       break;
-               case (ICC_IND_FJ):
-                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                       break;
-               case (ICC_IND_AR):
-                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                       break;
-               case (ICC_IND_AI):
-                       l1_msg(cs, HW_INFO4 | INDICATION, NULL);
-                       break;
-               default:
-                       break;
+       case (ICC_IND_EI1):
+               ph_command(cs, ICC_CMD_DI);
+               l1_msg(cs, HW_RESET | INDICATION, NULL);
+               break;
+       case (ICC_IND_DC):
+               l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
+               break;
+       case (ICC_IND_DR):
+               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+               break;
+       case (ICC_IND_PU):
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               break;
+       case (ICC_IND_FJ):
+               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+               break;
+       case (ICC_IND_AR):
+               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+               break;
+       case (ICC_IND_AI):
+               l1_msg(cs, HW_INFO4 | INDICATION, NULL);
+               break;
+       default:
+               break;
        }
 }
 
@@ -83,7 +83,7 @@ icc_bh(struct work_struct *work)
        struct IsdnCardState *cs =
                container_of(work, struct IsdnCardState, tqueue);
        struct PStack *stptr;
-       
+
        if (test_and_clear_bit(D_CLEARBUSY, &cs->event)) {
                if (cs->debug)
                        debugl1(cs, "D-Channel Busy cleared");
@@ -94,7 +94,7 @@ icc_bh(struct work_struct *work)
                }
        }
        if (test_and_clear_bit(D_L1STATECHANGE, &cs->event))
-               icc_new_ph(cs);         
+               icc_new_ph(cs);
        if (test_and_clear_bit(D_RCVBUFREADY, &cs->event))
                DChannel_proc_rcv(cs);
        if (test_and_clear_bit(D_XMTBUFREADY, &cs->event))
@@ -254,11 +254,11 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                } else
                        schedule_event(cs, D_XMTBUFREADY);
        }
-      afterXPR:
+afterXPR:
        if (val & 0x04) {       /* CISQ */
                exval = cs->readisac(cs, ICC_CIR0);
                if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "ICC CIR0 %02X", exval );
+                       debugl1(cs, "ICC CIR0 %02X", exval);
                if (exval & 2) {
                        cs->dc.icc.ph_state = (exval >> 2) & 0xf;
                        if (cs->debug & L1_DEB_ISAC)
@@ -268,7 +268,7 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                if (exval & 1) {
                        exval = cs->readisac(cs, ICC_CIR1);
                        if (cs->debug & L1_DEB_ISAC)
-                               debugl1(cs, "ICC CIR1 %02X", exval );
+                               debugl1(cs, "ICC CIR1 %02X", exval);
                }
        }
        if (val & 0x02) {       /* SIN */
@@ -331,13 +331,13 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                                }
                                cs->dc.icc.mon_rx[cs->dc.icc.mon_rxp++] = cs->readisac(cs, ICC_MOR0);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ICC MOR0 %02x", cs->dc.icc.mon_rx[cs->dc.icc.mon_rxp -1]);
+                                       debugl1(cs, "ICC MOR0 %02x", cs->dc.icc.mon_rx[cs->dc.icc.mon_rxp - 1]);
                                if (cs->dc.icc.mon_rxp == 1) {
                                        cs->dc.icc.mocr |= 0x04;
                                        cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
                                }
                        }
-                     afterMONR0:
+               afterMONR0:
                        if (v1 & 0x80) {
                                if (!cs->dc.icc.mon_rx) {
                                        if (!(cs->dc.icc.mon_rx = kmalloc(MAX_MON_FRAME, GFP_ATOMIC))) {
@@ -361,11 +361,11 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                                }
                                cs->dc.icc.mon_rx[cs->dc.icc.mon_rxp++] = cs->readisac(cs, ICC_MOR1);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ICC MOR1 %02x", cs->dc.icc.mon_rx[cs->dc.icc.mon_rxp -1]);
+                                       debugl1(cs, "ICC MOR1 %02x", cs->dc.icc.mon_rx[cs->dc.icc.mon_rxp - 1]);
                                cs->dc.icc.mocr |= 0x40;
                                cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
                        }
-                     afterMONR1:
+               afterMONR1:
                        if (v1 & 0x04) {
                                cs->dc.icc.mocr &= 0xf0;
                                cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
@@ -381,15 +381,15 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                                schedule_event(cs, D_RX_MON1);
                        }
                        if (v1 & 0x02) {
-                               if ((!cs->dc.icc.mon_tx) || (cs->dc.icc.mon_txc && 
-                                       (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc) && 
-                                       !(v1 & 0x08))) {
+                               if ((!cs->dc.icc.mon_tx) || (cs->dc.icc.mon_txc &&
+                                                            (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc) &&
+                                                            !(v1 & 0x08))) {
                                        cs->dc.icc.mocr &= 0xf0;
                                        cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
                                        cs->dc.icc.mocr |= 0x0a;
                                        cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
                                        if (cs->dc.icc.mon_txc &&
-                                               (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc))
+                                           (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc))
                                                schedule_event(cs, D_TX_MON0);
                                        goto AfterMOX0;
                                }
@@ -398,21 +398,21 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                                        goto AfterMOX0;
                                }
                                cs->writeisac(cs, ICC_MOX0,
-                                       cs->dc.icc.mon_tx[cs->dc.icc.mon_txp++]);
+                                             cs->dc.icc.mon_tx[cs->dc.icc.mon_txp++]);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ICC %02x -> MOX0", cs->dc.icc.mon_tx[cs->dc.icc.mon_txp -1]);
+                                       debugl1(cs, "ICC %02x -> MOX0", cs->dc.icc.mon_tx[cs->dc.icc.mon_txp - 1]);
                        }
-                     AfterMOX0:
+               AfterMOX0:
                        if (v1 & 0x20) {
-                               if ((!cs->dc.icc.mon_tx) || (cs->dc.icc.mon_txc && 
-                                       (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc) && 
-                                       !(v1 & 0x80))) {
+                               if ((!cs->dc.icc.mon_tx) || (cs->dc.icc.mon_txc &&
+                                                            (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc) &&
+                                                            !(v1 & 0x80))) {
                                        cs->dc.icc.mocr &= 0x0f;
                                        cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
                                        cs->dc.icc.mocr |= 0xa0;
                                        cs->writeisac(cs, ICC_MOCR, cs->dc.icc.mocr);
                                        if (cs->dc.icc.mon_txc &&
-                                               (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc))
+                                           (cs->dc.icc.mon_txp >= cs->dc.icc.mon_txc))
                                                schedule_event(cs, D_TX_MON1);
                                        goto AfterMOX1;
                                }
@@ -421,11 +421,11 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
                                        goto AfterMOX1;
                                }
                                cs->writeisac(cs, ICC_MOX1,
-                                       cs->dc.icc.mon_tx[cs->dc.icc.mon_txp++]);
+                                             cs->dc.icc.mon_tx[cs->dc.icc.mon_txp++]);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ICC %02x -> MOX1", cs->dc.icc.mon_tx[cs->dc.icc.mon_txp -1]);
+                                       debugl1(cs, "ICC %02x -> MOX1", cs->dc.icc.mon_tx[cs->dc.icc.mon_txp - 1]);
                        }
-                     AfterMOX1:
+               AfterMOX1:
 #endif
                }
        }
@@ -440,128 +440,128 @@ ICC_l1hw(struct PStack *st, int pr, void *arg)
        int  val;
 
        switch (pr) {
-               case (PH_DATA |REQUEST):
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
-#ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                               icc_fill_fifo(cs);
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL |INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
                        if (cs->debug & L1_DEB_LAPD)
-                               Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                               Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
                        icc_fill_fifo(cs);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        break;
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD)
+                       Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if ((cs->dc.icc.ph_state == ICC_IND_EI1) ||
-                               (cs->dc.icc.ph_state == ICC_IND_DR))
-                               ph_command(cs, ICC_CMD_DI);
-                       else
-                               ph_command(cs, ICC_CMD_RES);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_ENABLE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
+               icc_fill_fifo(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG           /* psa */
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "-> PH_REQUEST_PULL");
+#endif
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               if ((cs->dc.icc.ph_state == ICC_IND_EI1) ||
+                   (cs->dc.icc.ph_state == ICC_IND_DR))
                        ph_command(cs, ICC_CMD_DI);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO1 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       ph_command(cs, ICC_CMD_AR);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       ph_command(cs, ICC_CMD_AI);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_TESTLOOP | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       val = 0;
-                       if (1 & (long) arg)
-                               val |= 0x0c;
-                       if (2 & (long) arg)
-                               val |= 0x3;
-                       if (test_bit(HW_IOM1, &cs->HW_Flags)) {
-                               /* IOM 1 Mode */
-                               if (!val) {
-                                       cs->writeisac(cs, ICC_SPCR, 0xa);
-                                       cs->writeisac(cs, ICC_ADF1, 0x2);
-                               } else {
-                                       cs->writeisac(cs, ICC_SPCR, val);
-                                       cs->writeisac(cs, ICC_ADF1, 0xa);
-                               }
+               else
+                       ph_command(cs, ICC_CMD_RES);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_ENABLE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, ICC_CMD_DI);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO1 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, ICC_CMD_AR);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO3 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, ICC_CMD_AI);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_TESTLOOP | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               val = 0;
+               if (1 & (long) arg)
+                       val |= 0x0c;
+               if (2 & (long) arg)
+                       val |= 0x3;
+               if (test_bit(HW_IOM1, &cs->HW_Flags)) {
+                       /* IOM 1 Mode */
+                       if (!val) {
+                               cs->writeisac(cs, ICC_SPCR, 0xa);
+                               cs->writeisac(cs, ICC_ADF1, 0x2);
                        } else {
-                               /* IOM 2 Mode */
                                cs->writeisac(cs, ICC_SPCR, val);
-                               if (val)
-                                       cs->writeisac(cs, ICC_ADF1, 0x8);
-                               else
-                                       cs->writeisac(cs, ICC_ADF1, 0x0);
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_DEACTIVATE | RESPONSE):
-                       skb_queue_purge(&cs->rq);
-                       skb_queue_purge(&cs->sq);
-                       if (cs->tx_skb) {
-                               dev_kfree_skb_any(cs->tx_skb);
-                               cs->tx_skb = NULL;
+                               cs->writeisac(cs, ICC_ADF1, 0xa);
                        }
-                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                               del_timer(&cs->dbusytimer);
-                       if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                               schedule_event(cs, D_CLEARBUSY);
-                       break;
-               default:
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "icc_l1hw unknown %04x", pr);
-                       break;
+               } else {
+                       /* IOM 2 Mode */
+                       cs->writeisac(cs, ICC_SPCR, val);
+                       if (val)
+                               cs->writeisac(cs, ICC_ADF1, 0x8);
+                       else
+                               cs->writeisac(cs, ICC_ADF1, 0x0);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_DEACTIVATE | RESPONSE):
+               skb_queue_purge(&cs->rq);
+               skb_queue_purge(&cs->sq);
+               if (cs->tx_skb) {
+                       dev_kfree_skb_any(cs->tx_skb);
+                       cs->tx_skb = NULL;
+               }
+               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                       del_timer(&cs->dbusytimer);
+               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                       schedule_event(cs, D_CLEARBUSY);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "icc_l1hw unknown %04x", pr);
+               break;
        }
 }
 
@@ -588,7 +588,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
        if (test_bit(FLG_DBUSY_TIMER, &cs->HW_Flags)) {
                rbch = cs->readisac(cs, ICC_RBCH);
                star = cs->readisac(cs, ICC_STAR);
-               if (cs->debug) 
+               if (cs->debug)
                        debugl1(cs, "D-Channel Busy RBCH %02x STAR %02x",
                                rbch, star);
                if (rbch & ICC_RBCH_XAC) { /* D-Channel Busy */
@@ -622,8 +622,8 @@ initicc(struct IsdnCardState *cs)
        cs->DC_Close = DC_Close_icc;
        cs->dc.icc.mon_tx = NULL;
        cs->dc.icc.mon_rx = NULL;
-       cs->writeisac(cs, ICC_MASK, 0xff);
-       cs->dc.icc.mocr = 0xaa;
+       cs->writeisac(cs, ICC_MASK, 0xff);
+       cs->dc.icc.mocr = 0xaa;
        if (test_bit(HW_IOM1, &cs->HW_Flags)) {
                /* IOM 1 Mode */
                cs->writeisac(cs, ICC_ADF2, 0x0);
index e7f5939..f367df5 100644 (file)
@@ -4,12 +4,12 @@
  *
  * Author       Matt Henderson & Guy Ellis
  * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
- * 1999.7.14 Initial implementation of routines for Siemens ISDN 
- * Communication Controller PEB 2070 based on the ISAC routines 
+ * 1999.7.14 Initial implementation of routines for Siemens ISDN
+ * Communication Controller PEB 2070 based on the ISAC routines
  * written by Karsten Keil.
  */
 
index f92a04a..4f937f0 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
index 6908404..74feb5c 100644 (file)
@@ -1,10 +1,10 @@
-/* 
+/*
  *
  * IPACX specific routines
  *
  * Author       Joerg Petersohn
  * Derived from hisax_isac.c, isac.c, hscx.c and others
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -24,7 +24,7 @@
 #define D_FIFO_SIZE       32
 
 
-// ipacx interrupt mask values    
+// ipacx interrupt mask values
 #define _MASK_IMASK     0x2E  // global mask
 #define _MASKB_IMASK    0x0B
 #define _MASKD_IMASK    0x03  // all on
@@ -55,33 +55,33 @@ static void clear_pending_ints(struct IsdnCardState *cs);
 //----------------------------------------------------------
 // Issue Layer 1 command to chip
 //----------------------------------------------------------
-static void 
+static void
 ph_command(struct IsdnCardState *cs, unsigned int command)
 {
-       if (cs->debug &L1_DEB_ISAC)
+       if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "ph_command (%#x) in (%#x)", command,
                        cs->dc.isac.ph_state);
-//###################################  
+//###################################
 //     printk(KERN_INFO "ph_command (%#x)\n", command);
-//###################################  
+//###################################
        cs->writeisac(cs, IPACX_CIX0, (command << 4) | 0x0E);
 }
 
 //----------------------------------------------------------
 // Transceiver interrupt handler
 //----------------------------------------------------------
-static inline void 
+static inline void
 cic_int(struct IsdnCardState *cs)
 {
        u_char event;
 
        event = cs->readisac(cs, IPACX_CIR0) >> 4;
-       if (cs->debug &L1_DEB_ISAC) debugl1(cs, "cic_int(event=%#x)", event);
-//#########################################  
+       if (cs->debug & L1_DEB_ISAC) debugl1(cs, "cic_int(event=%#x)", event);
+//#########################################
 //     printk(KERN_INFO "cic_int(%x)\n", event);
-//#########################################  
-  cs->dc.isac.ph_state = event;
-  schedule_event(cs, D_L1STATECHANGE);
+//#########################################
+       cs->dc.isac.ph_state = event;
+       schedule_event(cs, D_L1STATECHANGE);
 }
 
 //==========================================================
@@ -99,99 +99,99 @@ dch_l2l1(struct PStack *st, int pr, void *arg)
        u_char cda1_cr;
 
        switch (pr) {
-               case (PH_DATA |REQUEST):
-                       if (cs->debug &DEB_DLOG_HEX)     LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug &DEB_DLOG_VERBOSE) dlogframe(cs, skb, 0);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
-#ifdef L2FRAME_DEBUG
-                               if (cs->debug &L1_DEB_LAPD) Logl2Frame(cs, skb, "PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX) LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE) dlogframe(cs, skb, 0);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG
-                               if (cs->debug &L1_DEB_LAPD) Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD) Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                               dch_fill_fifo(cs);
-                       }
-                       break;
-      
-               case (PH_PULL |INDICATION):
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)     LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE) dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG
-                       if (cs->debug & L1_DEB_LAPD) Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                       if (cs->debug & L1_DEB_LAPD) Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
                        dch_fill_fifo(cs);
+               }
+               break;
+
+       case (PH_PULL | INDICATION):
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        break;
-      
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)     LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE) dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG
-                       if (cs->debug & L1_DEB_LAPD) debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD) Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-
-               case (HW_RESET | REQUEST):
-               case (HW_ENABLE | REQUEST):
-                       if ((cs->dc.isac.ph_state == IPACX_IND_RES) ||
-                               (cs->dc.isac.ph_state == IPACX_IND_DR) ||
-                               (cs->dc.isac.ph_state == IPACX_IND_DC))
-                               ph_command(cs, IPACX_CMD_TIM);
-                       else
-                               ph_command(cs, IPACX_CMD_RES);
-                       break;
-
-               case (HW_INFO3 | REQUEST):
-                       ph_command(cs, IPACX_CMD_AR8);
-                       break;
-
-               case (HW_TESTLOOP | REQUEST):
-      cs->writeisac(cs, IPACX_CDA_TSDP10, 0x80); // Timeslot 0 is B1
-      cs->writeisac(cs, IPACX_CDA_TSDP11, 0x81); // Timeslot 0 is B1
-      cda1_cr = cs->readisac(cs, IPACX_CDA1_CR);
-      (void) cs->readisac(cs, IPACX_CDA2_CR);
-                       if ((long)arg &1) { // loop B1
-        cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr |0x0a); 
-      }
-      else {  // B1 off
-        cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr &~0x0a); 
-      }
-                       if ((long)arg &2) { // loop B2
-        cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr |0x14); 
-      }
-      else {  // B2 off
-        cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr &~0x14); 
-      }
-                       break;
+               dch_fill_fifo(cs);
+               break;
 
-               case (HW_DEACTIVATE | RESPONSE):
-                       skb_queue_purge(&cs->rq);
-                       skb_queue_purge(&cs->sq);
-                       if (cs->tx_skb) {
-                               dev_kfree_skb_any(cs->tx_skb);
-                               cs->tx_skb = NULL;
-                       }
-                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                               del_timer(&cs->dbusytimer);
-                       break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG
+               if (cs->debug & L1_DEB_LAPD) debugl1(cs, "-> PH_REQUEST_PULL");
+#endif
+               if (!cs->tx_skb) {
+                       clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+
+       case (HW_RESET | REQUEST):
+       case (HW_ENABLE | REQUEST):
+               if ((cs->dc.isac.ph_state == IPACX_IND_RES) ||
+                   (cs->dc.isac.ph_state == IPACX_IND_DR) ||
+                   (cs->dc.isac.ph_state == IPACX_IND_DC))
+                       ph_command(cs, IPACX_CMD_TIM);
+               else
+                       ph_command(cs, IPACX_CMD_RES);
+               break;
+
+       case (HW_INFO3 | REQUEST):
+               ph_command(cs, IPACX_CMD_AR8);
+               break;
+
+       case (HW_TESTLOOP | REQUEST):
+               cs->writeisac(cs, IPACX_CDA_TSDP10, 0x80); // Timeslot 0 is B1
+               cs->writeisac(cs, IPACX_CDA_TSDP11, 0x81); // Timeslot 0 is B1
+               cda1_cr = cs->readisac(cs, IPACX_CDA1_CR);
+               (void) cs->readisac(cs, IPACX_CDA2_CR);
+               if ((long)arg & 1) { // loop B1
+                       cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr | 0x0a);
+               }
+               else {  // B1 off
+                       cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr & ~0x0a);
+               }
+               if ((long)arg & 2) { // loop B2
+                       cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr | 0x14);
+               }
+               else {  // B2 off
+                       cs->writeisac(cs, IPACX_CDA1_CR, cda1_cr & ~0x14);
+               }
+               break;
+
+       case (HW_DEACTIVATE | RESPONSE):
+               skb_queue_purge(&cs->rq);
+               skb_queue_purge(&cs->sq);
+               if (cs->tx_skb) {
+                       dev_kfree_skb_any(cs->tx_skb);
+                       cs->tx_skb = NULL;
+               }
+               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                       del_timer(&cs->dbusytimer);
+               break;
 
-               default:
-                       if (cs->debug &L1_DEB_WARN) debugl1(cs, "dch_l2l1 unknown %04x", pr);
-                       break;
+       default:
+               if (cs->debug & L1_DEB_WARN) debugl1(cs, "dch_l2l1 unknown %04x", pr);
+               break;
        }
 }
 
@@ -206,11 +206,11 @@ dbusy_timer_handler(struct IsdnCardState *cs)
        if (test_bit(FLG_DBUSY_TIMER, &cs->HW_Flags)) {
                rbchd = cs->readisac(cs, IPACX_RBCHD);
                stard = cs->readisac(cs, IPACX_STARD);
-               if (cs->debug) 
-      debugl1(cs, "D-Channel Busy RBCHD %02x STARD %02x", rbchd, stard);
-               if (!(stard &0x40)) { // D-Channel Busy
+               if (cs->debug)
+                       debugl1(cs, "D-Channel Busy RBCHD %02x STARD %02x", rbchd, stard);
+               if (!(stard & 0x40)) { // D-Channel Busy
                        set_bit(FLG_L1_DBUSY, &cs->HW_Flags);
-      for (st = cs->stlist; st; st = st->next) {
+                       for (st = cs->stlist; st; st = st->next) {
                                st->l1.l1l2(st, PH_PAUSE | INDICATION, NULL); // flow control on
                        }
                } else {
@@ -232,30 +232,30 @@ dbusy_timer_handler(struct IsdnCardState *cs)
 //----------------------------------------------------------
 // Fill buffer from receive FIFO
 //----------------------------------------------------------
-static void 
+static void
 dch_empty_fifo(struct IsdnCardState *cs, int count)
 {
        u_char *ptr;
 
-       if ((cs->debug &L1_DEB_ISAC) && !(cs->debug &L1_DEB_ISAC_FIFO))
+       if ((cs->debug & L1_DEB_ISAC) && !(cs->debug & L1_DEB_ISAC_FIFO))
                debugl1(cs, "dch_empty_fifo()");
 
-  // message too large, remove
+       // message too large, remove
        if ((cs->rcvidx + count) >= MAX_DFRAME_LEN_L1) {
-               if (cs->debug &L1_DEB_WARN)
+               if (cs->debug & L1_DEB_WARN)
                        debugl1(cs, "dch_empty_fifo() incoming message too large");
-         cs->writeisac(cs, IPACX_CMDRD, 0x80); // RMC
+               cs->writeisac(cs, IPACX_CMDRD, 0x80); // RMC
                cs->rcvidx = 0;
                return;
        }
-  
+
        ptr = cs->rcvbuf + cs->rcvidx;
        cs->rcvidx += count;
-  
+
        cs->readisacfifo(cs, ptr, count);
        cs->writeisac(cs, IPACX_CMDRD, 0x80); // RMC
-  
-       if (cs->debug &L1_DEB_ISAC_FIFO) {
+
+       if (cs->debug & L1_DEB_ISAC_FIFO) {
                char *t = cs->dlog;
 
                t += sprintf(t, "dch_empty_fifo() cnt %d", count);
@@ -267,15 +267,15 @@ dch_empty_fifo(struct IsdnCardState *cs, int count)
 //----------------------------------------------------------
 // Fill transmit FIFO
 //----------------------------------------------------------
-static void 
+static void
 dch_fill_fifo(struct IsdnCardState *cs)
 {
        int count;
        u_char cmd, *ptr;
 
-       if ((cs->debug &L1_DEB_ISAC) && !(cs->debug &L1_DEB_ISAC_FIFO))
+       if ((cs->debug & L1_DEB_ISAC) && !(cs->debug & L1_DEB_ISAC_FIFO))
                debugl1(cs, "dch_fill_fifo()");
-    
+
        if (!cs->tx_skb) return;
        count = cs->tx_skb->len;
        if (count <= 0) return;
@@ -286,14 +286,14 @@ dch_fill_fifo(struct IsdnCardState *cs)
        } else {
                cmd   = 0x0A; // XTF | XME
        }
-  
+
        ptr = cs->tx_skb->data;
        skb_pull(cs->tx_skb, count);
        cs->tx_cnt += count;
        cs->writeisacfifo(cs, ptr, count);
        cs->writeisac(cs, IPACX_CMDRD, cmd);
-  
-  // set timeout for transmission contol
+
+       // set timeout for transmission contol
        if (test_and_set_bit(FLG_DBUSY_TIMER, &cs->HW_Flags)) {
                debugl1(cs, "dch_fill_fifo dbusytimer running");
                del_timer(&cs->dbusytimer);
@@ -301,8 +301,8 @@ dch_fill_fifo(struct IsdnCardState *cs)
        init_timer(&cs->dbusytimer);
        cs->dbusytimer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ)/1000);
        add_timer(&cs->dbusytimer);
-  
-       if (cs->debug &L1_DEB_ISAC_FIFO) {
+
+       if (cs->debug & L1_DEB_ISAC_FIFO) {
                char *t = cs->dlog;
 
                t += sprintf(t, "dch_fill_fifo() cnt %d", count);
@@ -314,7 +314,7 @@ dch_fill_fifo(struct IsdnCardState *cs)
 //----------------------------------------------------------
 // D channel interrupt handler
 //----------------------------------------------------------
-static inline void 
+static inline void
 dch_int(struct IsdnCardState *cs)
 {
        struct sk_buff *skb;
@@ -322,31 +322,31 @@ dch_int(struct IsdnCardState *cs)
        int count;
 
        istad = cs->readisac(cs, IPACX_ISTAD);
-//##############################################  
+//##############################################
 //     printk(KERN_WARNING "dch_int(istad=%02x)\n", istad);
-//##############################################  
-  
-       if (istad &0x80) {  // RME
-         rstad = cs->readisac(cs, IPACX_RSTAD);
-               if ((rstad &0xf0) != 0xa0) { // !(VFR && !RDO && CRC && !RAB)
-                       if (!(rstad &0x80))
-                               if (cs->debug &L1_DEB_WARN) 
-          debugl1(cs, "dch_int(): invalid frame");
-                       if ((rstad &0x40))
-                               if (cs->debug &L1_DEB_WARN) 
-          debugl1(cs, "dch_int(): RDO");
-                       if (!(rstad &0x20))
-                               if (cs->debug &L1_DEB_WARN) 
-          debugl1(cs, "dch_int(): CRC error");
-           cs->writeisac(cs, IPACX_CMDRD, 0x80);  // RMC
+//##############################################
+
+       if (istad & 0x80) {  // RME
+               rstad = cs->readisac(cs, IPACX_RSTAD);
+               if ((rstad & 0xf0) != 0xa0) { // !(VFR && !RDO && CRC && !RAB)
+                       if (!(rstad & 0x80))
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "dch_int(): invalid frame");
+                       if ((rstad & 0x40))
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "dch_int(): RDO");
+                       if (!(rstad & 0x20))
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "dch_int(): CRC error");
+                       cs->writeisac(cs, IPACX_CMDRD, 0x80);  // RMC
                } else {  // received frame ok
                        count = cs->readisac(cs, IPACX_RBCLD);
-      if (count) count--; // RSTAB is last byte
-                       count &= D_FIFO_SIZE-1;
+                       if (count) count--; // RSTAB is last byte
+                       count &= D_FIFO_SIZE - 1;
                        if (count == 0) count = D_FIFO_SIZE;
                        dch_empty_fifo(cs, count);
                        if ((count = cs->rcvidx) > 0) {
-             cs->rcvidx = 0;
+                               cs->rcvidx = 0;
                                if (!(skb = dev_alloc_skb(count)))
                                        printk(KERN_WARNING "HiSax dch_int(): receive out of memory\n");
                                else {
@@ -354,57 +354,57 @@ dch_int(struct IsdnCardState *cs)
                                        skb_queue_tail(&cs->rq, skb);
                                }
                        }
-    }
-         cs->rcvidx = 0;
+               }
+               cs->rcvidx = 0;
                schedule_event(cs, D_RCVBUFREADY);
        }
 
-       if (istad &0x40) {  // RPF
+       if (istad & 0x40) {  // RPF
                dch_empty_fifo(cs, D_FIFO_SIZE);
        }
 
-       if (istad &0x20) {  // RFO
-               if (cs->debug &L1_DEB_WARN) debugl1(cs, "dch_int(): RFO");
-         cs->writeisac(cs, IPACX_CMDRD, 0x40); //RRES
+       if (istad & 0x20) {  // RFO
+               if (cs->debug & L1_DEB_WARN) debugl1(cs, "dch_int(): RFO");
+               cs->writeisac(cs, IPACX_CMDRD, 0x40); //RRES
        }
-  
-  if (istad &0x10) {  // XPR
+
+       if (istad & 0x10) {  // XPR
                if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
                        del_timer(&cs->dbusytimer);
                if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
                        schedule_event(cs, D_CLEARBUSY);
-    if (cs->tx_skb) {
-      if (cs->tx_skb->len) {
-        dch_fill_fifo(cs);
-        goto afterXPR;
-      }
-      else {
-        dev_kfree_skb_irq(cs->tx_skb);
-        cs->tx_skb = NULL;
-        cs->tx_cnt = 0;
-      }
-    }
-    if ((cs->tx_skb = skb_dequeue(&cs->sq))) {
-      cs->tx_cnt = 0;
-      dch_fill_fifo(cs);
-    } 
-    else {
-      schedule_event(cs, D_XMTBUFREADY);
-    }  
-  }  
-  afterXPR:
-
-       if (istad &0x0C) {  // XDU or XMR
-               if (cs->debug &L1_DEB_WARN) debugl1(cs, "dch_int(): XDU");
-         if (cs->tx_skb) {
-           skb_push(cs->tx_skb, cs->tx_cnt); // retransmit
-           cs->tx_cnt = 0;
+               if (cs->tx_skb) {
+                       if (cs->tx_skb->len) {
+                               dch_fill_fifo(cs);
+                               goto afterXPR;
+                       }
+                       else {
+                               dev_kfree_skb_irq(cs->tx_skb);
+                               cs->tx_skb = NULL;
+                               cs->tx_cnt = 0;
+                       }
+               }
+               if ((cs->tx_skb = skb_dequeue(&cs->sq))) {
+                       cs->tx_cnt = 0;
+                       dch_fill_fifo(cs);
+               }
+               else {
+                       schedule_event(cs, D_XMTBUFREADY);
+               }
+       }
+afterXPR:
+
+       if (istad & 0x0C) {  // XDU or XMR
+               if (cs->debug & L1_DEB_WARN) debugl1(cs, "dch_int(): XDU");
+               if (cs->tx_skb) {
+                       skb_push(cs->tx_skb, cs->tx_cnt); // retransmit
+                       cs->tx_cnt = 0;
                        dch_fill_fifo(cs);
                } else {
                        printk(KERN_WARNING "HiSax: ISAC XDU no skb\n");
                        debugl1(cs, "ISAC XDU no skb");
                }
-  }
+       }
 }
 
 //----------------------------------------------------------
@@ -423,15 +423,15 @@ dch_init(struct IsdnCardState *cs)
        printk(KERN_INFO "HiSax: IPACX ISDN driver v0.1.0\n");
 
        cs->setstack_d      = dch_setstack;
-  
+
        cs->dbusytimer.function = (void *) dbusy_timer_handler;
        cs->dbusytimer.data = (long) cs;
        init_timer(&cs->dbusytimer);
 
-  cs->writeisac(cs, IPACX_TR_CONF0, 0x00);  // clear LDD
-  cs->writeisac(cs, IPACX_TR_CONF2, 0x00);  // enable transmitter
-  cs->writeisac(cs, IPACX_MODED,    0xC9);  // transparent mode 0, RAC, stop/go
-  cs->writeisac(cs, IPACX_MON_CR,   0x00);  // disable monitor channel
+       cs->writeisac(cs, IPACX_TR_CONF0, 0x00);  // clear LDD
+       cs->writeisac(cs, IPACX_TR_CONF2, 0x00);  // enable transmitter
+       cs->writeisac(cs, IPACX_MODED,    0xC9);  // transparent mode 0, RAC, stop/go
+       cs->writeisac(cs, IPACX_MON_CR,   0x00);  // disable monitor channel
 }
 
 
@@ -450,55 +450,55 @@ bch_l2l1(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->hw.hscx.count = 0;
-                               bch_fill_fifo(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "HiSax bch_l2l1(): this shouldn't happen\n");
-                       } else {
-                               set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->tx_skb = skb;
-                               bcs->hw.hscx.count = 0;
-                               bch_fill_fifo(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       bch_mode(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       bch_mode(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
+                       set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->hw.hscx.count = 0;
+                       bch_fill_fifo(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "HiSax bch_l2l1(): this shouldn't happen\n");
+               } else {
+                       set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       bcs->tx_skb = skb;
+                       bcs->hw.hscx.count = 0;
+                       bch_fill_fifo(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               bch_mode(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               bch_mode(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -513,28 +513,28 @@ bch_empty_fifo(struct BCState *bcs, int count)
        int cnt;
 
        cs = bcs->cs;
-  hscx = bcs->hw.hscx.hscx;
-       if ((cs->debug &L1_DEB_HSCX) && !(cs->debug &L1_DEB_HSCX_FIFO))
+       hscx = bcs->hw.hscx.hscx;
+       if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
                debugl1(cs, "bch_empty_fifo()");
 
-  // message too large, remove
+       // message too large, remove
        if (bcs->hw.hscx.rcvidx + count > HSCX_BUFMAX) {
-               if (cs->debug &L1_DEB_WARN)
+               if (cs->debug & L1_DEB_WARN)
                        debugl1(cs, "bch_empty_fifo() incoming packet too large");
-         cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x80);  // RMC
+               cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x80);  // RMC
                bcs->hw.hscx.rcvidx = 0;
                return;
        }
-  
+
        ptr = bcs->hw.hscx.rcvbuf + bcs->hw.hscx.rcvidx;
        cnt = count;
-       while (cnt--) *ptr++ = cs->BC_Read_Reg(cs, hscx, IPACX_RFIFOB); 
+       while (cnt--) *ptr++ = cs->BC_Read_Reg(cs, hscx, IPACX_RFIFOB);
        cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x80);  // RMC
-  
+
        ptr = bcs->hw.hscx.rcvbuf + bcs->hw.hscx.rcvidx;
        bcs->hw.hscx.rcvidx += count;
-  
-       if (cs->debug &L1_DEB_HSCX_FIFO) {
+
+       if (cs->debug & L1_DEB_HSCX_FIFO) {
                char *t = bcs->blog;
 
                t += sprintf(t, "bch_empty_fifo() B-%d cnt %d", hscx, count);
@@ -554,7 +554,7 @@ bch_fill_fifo(struct BCState *bcs)
        u_char *ptr, *p, hscx;
 
        cs = bcs->cs;
-       if ((cs->debug &L1_DEB_HSCX) && !(cs->debug &L1_DEB_HSCX_FIFO))
+       if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
                debugl1(cs, "bch_fill_fifo()");
 
        if (!bcs->tx_skb)           return;
@@ -567,17 +567,17 @@ bch_fill_fifo(struct BCState *bcs)
                count = B_FIFO_SIZE;
        } else {
                count = bcs->tx_skb->len;
-       }  
+       }
        cnt = count;
-    
+
        p = ptr = bcs->tx_skb->data;
        skb_pull(bcs->tx_skb, count);
        bcs->tx_cnt -= count;
        bcs->hw.hscx.count += count;
-       while (cnt--) cs->BC_Write_Reg(cs, hscx, IPACX_XFIFOB, *p++); 
+       while (cnt--) cs->BC_Write_Reg(cs, hscx, IPACX_XFIFOB, *p++);
        cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, (more ? 0x08 : 0x0a));
-  
-       if (cs->debug &L1_DEB_HSCX_FIFO) {
+
+       if (cs->debug & L1_DEB_HSCX_FIFO) {
                char *t = bcs->blog;
 
                t += sprintf(t, "chb_fill_fifo() B-%d cnt %d", hscx, count);
@@ -600,31 +600,31 @@ bch_int(struct IsdnCardState *cs, u_char hscx)
 
        bcs = cs->bcs + hscx;
        istab = cs->BC_Read_Reg(cs, hscx, IPACX_ISTAB);
-//##############################################  
+//##############################################
 //     printk(KERN_WARNING "bch_int(istab=%02x)\n", istab);
-//##############################################  
+//##############################################
        if (!test_bit(BC_FLG_INIT, &bcs->Flag)) return;
 
-       if (istab &0x80) {      // RME
+       if (istab & 0x80) {     // RME
                rstab = cs->BC_Read_Reg(cs, hscx, IPACX_RSTAB);
-               if ((rstab &0xf0) != 0xa0) { // !(VFR && !RDO && CRC && !RAB)
-                       if (!(rstab &0x80))
-                               if (cs->debug &L1_DEB_WARN) 
-          debugl1(cs, "bch_int() B-%d: invalid frame", hscx);
-                       if ((rstab &0x40) && (bcs->mode != L1_MODE_NULL))
-                               if (cs->debug &L1_DEB_WARN) 
-          debugl1(cs, "bch_int() B-%d: RDO mode=%d", hscx, bcs->mode);
-                       if (!(rstab &0x20))
-                               if (cs->debug &L1_DEB_WARN) 
-          debugl1(cs, "bch_int() B-%d: CRC error", hscx);
-           cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x80);  // RMC
-               } 
-    else {  // received frame ok
-                       count = cs->BC_Read_Reg(cs, hscx, IPACX_RBCLB) &(B_FIFO_SIZE-1);
+               if ((rstab & 0xf0) != 0xa0) { // !(VFR && !RDO && CRC && !RAB)
+                       if (!(rstab & 0x80))
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "bch_int() B-%d: invalid frame", hscx);
+                       if ((rstab & 0x40) && (bcs->mode != L1_MODE_NULL))
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "bch_int() B-%d: RDO mode=%d", hscx, bcs->mode);
+                       if (!(rstab & 0x20))
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "bch_int() B-%d: CRC error", hscx);
+                       cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x80);  // RMC
+               }
+               else {  // received frame ok
+                       count = cs->BC_Read_Reg(cs, hscx, IPACX_RBCLB) & (B_FIFO_SIZE - 1);
                        if (count == 0) count = B_FIFO_SIZE;
                        bch_empty_fifo(bcs, count);
                        if ((count = bcs->hw.hscx.rcvidx - 1) > 0) {
-                               if (cs->debug &L1_DEB_HSCX_FIFO)
+                               if (cs->debug & L1_DEB_HSCX_FIFO)
                                        debugl1(cs, "bch_int Frame %d", count);
                                if (!(skb = dev_alloc_skb(count)))
                                        printk(KERN_WARNING "HiSax bch_int(): receive frame out of memory\n");
@@ -637,8 +637,8 @@ bch_int(struct IsdnCardState *cs, u_char hscx)
                bcs->hw.hscx.rcvidx = 0;
                schedule_event(bcs, B_RCVBUFREADY);
        }
-  
-       if (istab &0x40) {      // RPF
+
+       if (istab & 0x40) {     // RPF
                bch_empty_fifo(bcs, B_FIFO_SIZE);
 
                if (bcs->mode == L1_MODE_TRANS) { // queue every chunk
@@ -653,21 +653,21 @@ bch_int(struct IsdnCardState *cs, u_char hscx)
                        schedule_event(bcs, B_RCVBUFREADY);
                }
        }
-  
-       if (istab &0x20) {      // RFO
-               if (cs->debug &L1_DEB_WARN) 
+
+       if (istab & 0x20) {     // RFO
+               if (cs->debug & L1_DEB_WARN)
                        debugl1(cs, "bch_int() B-%d: RFO error", hscx);
                cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x40);  // RRES
        }
 
-       if (istab &0x10) {      // XPR
+       if (istab & 0x10) {     // XPR
                if (bcs->tx_skb) {
                        if (bcs->tx_skb->len) {
                                bch_fill_fifo(bcs);
                                goto afterXPR;
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                        u_long  flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->hw.hscx.count;
@@ -678,7 +678,7 @@ bch_int(struct IsdnCardState *cs, u_char hscx)
                        dev_kfree_skb_irq(bcs->tx_skb);
                        bcs->hw.hscx.count = 0;
                        bcs->tx_skb = NULL;
-               }
+               }
                if ((bcs->tx_skb = skb_dequeue(&bcs->squeue))) {
                        bcs->hw.hscx.count = 0;
                        set_bit(BC_FLG_BUSY, &bcs->Flag);
@@ -688,22 +688,22 @@ bch_int(struct IsdnCardState *cs, u_char hscx)
                        schedule_event(bcs, B_XMTBUFREADY);
                }
        }
-  afterXPR:
+afterXPR:
 
-       if (istab &0x04) {      // XDU
-    if (bcs->mode == L1_MODE_TRANS) {
+       if (istab & 0x04) {     // XDU
+               if (bcs->mode == L1_MODE_TRANS) {
                        bch_fill_fifo(bcs);
-    }  
-    else {
-      if (bcs->tx_skb) {  // restart transmitting the whole frame
-        skb_push(bcs->tx_skb, bcs->hw.hscx.count);
-        bcs->tx_cnt += bcs->hw.hscx.count;
-        bcs->hw.hscx.count = 0;
-      }
-           cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x01);  // XRES
-      if (cs->debug &L1_DEB_WARN)
-        debugl1(cs, "bch_int() B-%d XDU error", hscx);
-    }
+               }
+               else {
+                       if (bcs->tx_skb) {  // restart transmitting the whole frame
+                               skb_push(bcs->tx_skb, bcs->hw.hscx.count);
+                               bcs->tx_cnt += bcs->hw.hscx.count;
+                               bcs->hw.hscx.count = 0;
+                       }
+                       cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x01);  // XRES
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "bch_int() B-%d XDU error", hscx);
+               }
        }
 }
 
@@ -715,43 +715,43 @@ bch_mode(struct BCState *bcs, int mode, int bc)
        struct IsdnCardState *cs = bcs->cs;
        int hscx = bcs->hw.hscx.hscx;
 
-        bc = bc ? 1 : 0;  // in case bc is greater than 1
+       bc = bc ? 1 : 0;  // in case bc is greater than 1
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "mode_bch() switch B-%d mode %d chan %d", hscx, mode, bc);
        bcs->mode = mode;
        bcs->channel = bc;
-  
-  // map controller to according timeslot
-  if (!hscx)
-  {
-    cs->writeisac(cs, IPACX_BCHA_TSDP_BC1, 0x80 | bc);
-    cs->writeisac(cs, IPACX_BCHA_CR,       0x88); 
-  }
-  else
-  {
-    cs->writeisac(cs, IPACX_BCHB_TSDP_BC1, 0x80 | bc);
-    cs->writeisac(cs, IPACX_BCHB_CR,       0x88); 
-  }
+
+       // map controller to according timeslot
+       if (!hscx)
+       {
+               cs->writeisac(cs, IPACX_BCHA_TSDP_BC1, 0x80 | bc);
+               cs->writeisac(cs, IPACX_BCHA_CR,       0x88);
+       }
+       else
+       {
+               cs->writeisac(cs, IPACX_BCHB_TSDP_BC1, 0x80 | bc);
+               cs->writeisac(cs, IPACX_BCHB_CR,       0x88);
+       }
 
        switch (mode) {
-               case (L1_MODE_NULL):
-                   cs->BC_Write_Reg(cs, hscx, IPACX_MODEB, 0xC0);  // rec off
-                   cs->BC_Write_Reg(cs, hscx, IPACX_EXMB,  0x30);  // std adj.
-                   cs->BC_Write_Reg(cs, hscx, IPACX_MASKB, 0xFF);  // ints off
-                   cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x41);  // validate adjustments
-                   break;
-               case (L1_MODE_TRANS):
-                   cs->BC_Write_Reg(cs, hscx, IPACX_MODEB, 0x88);  // ext transp mode
-                   cs->BC_Write_Reg(cs, hscx, IPACX_EXMB,  0x00);  // xxx00000
-                   cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x41);  // validate adjustments
-                   cs->BC_Write_Reg(cs, hscx, IPACX_MASKB, _MASKB_IMASK);
-                   break;
-               case (L1_MODE_HDLC):
-                   cs->BC_Write_Reg(cs, hscx, IPACX_MODEB, 0xC8);  // transp mode 0
-                   cs->BC_Write_Reg(cs, hscx, IPACX_EXMB,  0x01);  // idle=hdlc flags crc enabled
-                   cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x41);  // validate adjustments
-                   cs->BC_Write_Reg(cs, hscx, IPACX_MASKB, _MASKB_IMASK);
-                   break;
+       case (L1_MODE_NULL):
+               cs->BC_Write_Reg(cs, hscx, IPACX_MODEB, 0xC0);  // rec off
+               cs->BC_Write_Reg(cs, hscx, IPACX_EXMB,  0x30);  // std adj.
+               cs->BC_Write_Reg(cs, hscx, IPACX_MASKB, 0xFF);  // ints off
+               cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x41);  // validate adjustments
+               break;
+       case (L1_MODE_TRANS):
+               cs->BC_Write_Reg(cs, hscx, IPACX_MODEB, 0x88);  // ext transp mode
+               cs->BC_Write_Reg(cs, hscx, IPACX_EXMB,  0x00);  // xxx00000
+               cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x41);  // validate adjustments
+               cs->BC_Write_Reg(cs, hscx, IPACX_MASKB, _MASKB_IMASK);
+               break;
+       case (L1_MODE_HDLC):
+               cs->BC_Write_Reg(cs, hscx, IPACX_MODEB, 0xC8);  // transp mode 0
+               cs->BC_Write_Reg(cs, hscx, IPACX_EXMB,  0x01);  // idle=hdlc flags crc enabled
+               cs->BC_Write_Reg(cs, hscx, IPACX_CMDRB, 0x41);  // validate adjustments
+               cs->BC_Write_Reg(cs, hscx, IPACX_MASKB, _MASKB_IMASK);
+               break;
        }
 }
 
@@ -784,13 +784,13 @@ bch_open_state(struct IsdnCardState *cs, struct BCState *bcs)
        if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) {
                if (!(bcs->hw.hscx.rcvbuf = kmalloc(HSCX_BUFMAX, GFP_ATOMIC))) {
                        printk(KERN_WARNING
-                               "HiSax open_bchstate(): No memory for hscx.rcvbuf\n");
+                              "HiSax open_bchstate(): No memory for hscx.rcvbuf\n");
                        clear_bit(BC_FLG_INIT, &bcs->Flag);
                        return (1);
                }
                if (!(bcs->blog = kmalloc(MAX_BLOG_SPACE, GFP_ATOMIC))) {
                        printk(KERN_WARNING
-                               "HiSax open_bchstate: No memory for bcs->blog\n");
+                              "HiSax open_bchstate: No memory for bcs->blog\n");
                        clear_bit(BC_FLG_INIT, &bcs->Flag);
                        kfree(bcs->hw.hscx.rcvbuf);
                        bcs->hw.hscx.rcvbuf = NULL;
@@ -842,21 +842,21 @@ bch_init(struct IsdnCardState *cs, int hscx)
 //----------------------------------------------------------
 // Main interrupt handler
 //----------------------------------------------------------
-void 
+void
 interrupt_ipacx(struct IsdnCardState *cs)
 {
        u_char ista;
-  
+
        while ((ista = cs->readisac(cs, IPACX_ISTA))) {
-//#################################################  
+//#################################################
 //             printk(KERN_WARNING "interrupt_ipacx(ista=%02x)\n", ista);
-//#################################################  
-    if (ista &0x80) bch_int(cs, 0); // B channel interrupts
-    if (ista &0x40) bch_int(cs, 1);
-    
-    if (ista &0x01) dch_int(cs);    // D channel
-    if (ista &0x10) cic_int(cs);    // Layer 1 state
-  }  
+//#################################################
+               if (ista & 0x80) bch_int(cs, 0); // B channel interrupts
+               if (ista & 0x40) bch_int(cs, 1);
+
+               if (ista & 0x01) dch_int(cs);    // D channel
+               if (ista & 0x10) cic_int(cs);    // Layer 1 state
+       }
 }
 
 //----------------------------------------------------------
@@ -867,17 +867,17 @@ clear_pending_ints(struct IsdnCardState *cs)
 {
        int ista;
 
-  // all interrupts off
-  cs->writeisac(cs, IPACX_MASK, 0xff);
+       // all interrupts off
+       cs->writeisac(cs, IPACX_MASK, 0xff);
        cs->writeisac(cs, IPACX_MASKD, 0xff);
        cs->BC_Write_Reg(cs, 0, IPACX_MASKB, 0xff);
        cs->BC_Write_Reg(cs, 1, IPACX_MASKB, 0xff);
-  
-  ista = cs->readisac(cs, IPACX_ISTA); 
-  if (ista &0x80) cs->BC_Read_Reg(cs, 0, IPACX_ISTAB);
-  if (ista &0x40) cs->BC_Read_Reg(cs, 1, IPACX_ISTAB);
-  if (ista &0x10) cs->readisac(cs, IPACX_CIR0);
-  if (ista &0x01) cs->readisac(cs, IPACX_ISTAD); 
+
+       ista = cs->readisac(cs, IPACX_ISTA);
+       if (ista & 0x80) cs->BC_Read_Reg(cs, 0, IPACX_ISTAB);
+       if (ista & 0x40) cs->BC_Read_Reg(cs, 1, IPACX_ISTAB);
+       if (ista & 0x10) cs->readisac(cs, IPACX_CIR0);
+       if (ista & 0x01) cs->readisac(cs, IPACX_ISTAD);
 }
 
 //----------------------------------------------------------
@@ -887,23 +887,23 @@ clear_pending_ints(struct IsdnCardState *cs)
 void
 init_ipacx(struct IsdnCardState *cs, int part)
 {
-       if (part &1) {  // initialise chip
-//##################################################  
+       if (part & 1) {  // initialise chip
+//##################################################
 //     printk(KERN_INFO "init_ipacx(%x)\n", part);
-//##################################################  
+//##################################################
                clear_pending_ints(cs);
                bch_init(cs, 0);
                bch_init(cs, 1);
                dch_init(cs);
        }
-       if (part &2) {  // reenable all interrupts and start chip
+       if (part & 2) {  // reenable all interrupts and start chip
                cs->BC_Write_Reg(cs, 0, IPACX_MASKB, _MASKB_IMASK);
                cs->BC_Write_Reg(cs, 1, IPACX_MASKB, _MASKB_IMASK);
                cs->writeisac(cs, IPACX_MASKD, _MASKD_IMASK);
                cs->writeisac(cs, IPACX_MASK, _MASK_IMASK); // global mask register
 
                // reset HDLC Transmitters/receivers
-               cs->writeisac(cs, IPACX_CMDRD, 0x41); 
+               cs->writeisac(cs, IPACX_CMDRD, 0x41);
                cs->BC_Write_Reg(cs, 0, IPACX_CMDRB, 0x41);
                cs->BC_Write_Reg(cs, 1, IPACX_CMDRB, 0x41);
                ph_command(cs, IPACX_CMD_RES);
@@ -911,4 +911,3 @@ init_ipacx(struct IsdnCardState *cs, int part)
 }
 
 //----------------- end of file -----------------------
-
index 2b66728..bcd70a3 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -49,34 +49,34 @@ static void
 isac_new_ph(struct IsdnCardState *cs)
 {
        switch (cs->dc.isac.ph_state) {
-               case (ISAC_IND_RS):
-               case (ISAC_IND_EI):
-                       ph_command(cs, ISAC_CMD_DUI);
-                       l1_msg(cs, HW_RESET | INDICATION, NULL);
-                       break;
-               case (ISAC_IND_DID):
-                       l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
-                       break;
-               case (ISAC_IND_DR):
-                       l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                       break;
-               case (ISAC_IND_PU):
-                       l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                       break;
-               case (ISAC_IND_RSY):
-                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                       break;
-               case (ISAC_IND_ARD):
-                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                       break;
-               case (ISAC_IND_AI8):
-                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                       break;
-               case (ISAC_IND_AI10):
-                       l1_msg(cs, HW_INFO4_P10 | INDICATION, NULL);
-                       break;
-               default:
-                       break;
+       case (ISAC_IND_RS):
+       case (ISAC_IND_EI):
+               ph_command(cs, ISAC_CMD_DUI);
+               l1_msg(cs, HW_RESET | INDICATION, NULL);
+               break;
+       case (ISAC_IND_DID):
+               l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
+               break;
+       case (ISAC_IND_DR):
+               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+               break;
+       case (ISAC_IND_PU):
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               break;
+       case (ISAC_IND_RSY):
+               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+               break;
+       case (ISAC_IND_ARD):
+               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+               break;
+       case (ISAC_IND_AI8):
+               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+               break;
+       case (ISAC_IND_AI10):
+               l1_msg(cs, HW_INFO4_P10 | INDICATION, NULL);
+               break;
+       default:
+               break;
        }
 }
 
@@ -86,7 +86,7 @@ isac_bh(struct work_struct *work)
        struct IsdnCardState *cs =
                container_of(work, struct IsdnCardState, tqueue);
        struct PStack *stptr;
-       
+
        if (test_and_clear_bit(D_CLEARBUSY, &cs->event)) {
                if (cs->debug)
                        debugl1(cs, "D-Channel Busy cleared");
@@ -97,7 +97,7 @@ isac_bh(struct work_struct *work)
                }
        }
        if (test_and_clear_bit(D_L1STATECHANGE, &cs->event))
-               isac_new_ph(cs);                
+               isac_new_ph(cs);
        if (test_and_clear_bit(D_RCVBUFREADY, &cs->event))
                DChannel_proc_rcv(cs);
        if (test_and_clear_bit(D_XMTBUFREADY, &cs->event))
@@ -257,11 +257,11 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                } else
                        schedule_event(cs, D_XMTBUFREADY);
        }
-      afterXPR:
+afterXPR:
        if (val & 0x04) {       /* CISQ */
                exval = cs->readisac(cs, ISAC_CIR0);
                if (cs->debug & L1_DEB_ISAC)
-                       debugl1(cs, "ISAC CIR0 %02X", exval );
+                       debugl1(cs, "ISAC CIR0 %02X", exval);
                if (exval & 2) {
                        cs->dc.isac.ph_state = (exval >> 2) & 0xf;
                        if (cs->debug & L1_DEB_ISAC)
@@ -271,7 +271,7 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                if (exval & 1) {
                        exval = cs->readisac(cs, ISAC_CIR1);
                        if (cs->debug & L1_DEB_ISAC)
-                               debugl1(cs, "ISAC CIR1 %02X", exval );
+                               debugl1(cs, "ISAC CIR1 %02X", exval);
                }
        }
        if (val & 0x02) {       /* SIN */
@@ -334,13 +334,13 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                                }
                                cs->dc.isac.mon_rx[cs->dc.isac.mon_rxp++] = cs->readisac(cs, ISAC_MOR0);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ISAC MOR0 %02x", cs->dc.isac.mon_rx[cs->dc.isac.mon_rxp -1]);
+                                       debugl1(cs, "ISAC MOR0 %02x", cs->dc.isac.mon_rx[cs->dc.isac.mon_rxp - 1]);
                                if (cs->dc.isac.mon_rxp == 1) {
                                        cs->dc.isac.mocr |= 0x04;
                                        cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
                                }
                        }
-                     afterMONR0:
+               afterMONR0:
                        if (v1 & 0x80) {
                                if (!cs->dc.isac.mon_rx) {
                                        if (!(cs->dc.isac.mon_rx = kmalloc(MAX_MON_FRAME, GFP_ATOMIC))) {
@@ -364,11 +364,11 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                                }
                                cs->dc.isac.mon_rx[cs->dc.isac.mon_rxp++] = cs->readisac(cs, ISAC_MOR1);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ISAC MOR1 %02x", cs->dc.isac.mon_rx[cs->dc.isac.mon_rxp -1]);
+                                       debugl1(cs, "ISAC MOR1 %02x", cs->dc.isac.mon_rx[cs->dc.isac.mon_rxp - 1]);
                                cs->dc.isac.mocr |= 0x40;
                                cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
                        }
-                     afterMONR1:
+               afterMONR1:
                        if (v1 & 0x04) {
                                cs->dc.isac.mocr &= 0xf0;
                                cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
@@ -384,15 +384,15 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                                schedule_event(cs, D_RX_MON1);
                        }
                        if (v1 & 0x02) {
-                               if ((!cs->dc.isac.mon_tx) || (cs->dc.isac.mon_txc && 
-                                       (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc) && 
-                                       !(v1 & 0x08))) {
+                               if ((!cs->dc.isac.mon_tx) || (cs->dc.isac.mon_txc &&
+                                                             (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc) &&
+                                                             !(v1 & 0x08))) {
                                        cs->dc.isac.mocr &= 0xf0;
                                        cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
                                        cs->dc.isac.mocr |= 0x0a;
                                        cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
                                        if (cs->dc.isac.mon_txc &&
-                                               (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc))
+                                           (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc))
                                                schedule_event(cs, D_TX_MON0);
                                        goto AfterMOX0;
                                }
@@ -401,21 +401,21 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                                        goto AfterMOX0;
                                }
                                cs->writeisac(cs, ISAC_MOX0,
-                                       cs->dc.isac.mon_tx[cs->dc.isac.mon_txp++]);
+                                             cs->dc.isac.mon_tx[cs->dc.isac.mon_txp++]);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ISAC %02x -> MOX0", cs->dc.isac.mon_tx[cs->dc.isac.mon_txp -1]);
+                                       debugl1(cs, "ISAC %02x -> MOX0", cs->dc.isac.mon_tx[cs->dc.isac.mon_txp - 1]);
                        }
-                     AfterMOX0:
+               AfterMOX0:
                        if (v1 & 0x20) {
-                               if ((!cs->dc.isac.mon_tx) || (cs->dc.isac.mon_txc && 
-                                       (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc) && 
-                                       !(v1 & 0x80))) {
+                               if ((!cs->dc.isac.mon_tx) || (cs->dc.isac.mon_txc &&
+                                                             (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc) &&
+                                                             !(v1 & 0x80))) {
                                        cs->dc.isac.mocr &= 0x0f;
                                        cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
                                        cs->dc.isac.mocr |= 0xa0;
                                        cs->writeisac(cs, ISAC_MOCR, cs->dc.isac.mocr);
                                        if (cs->dc.isac.mon_txc &&
-                                               (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc))
+                                           (cs->dc.isac.mon_txp >= cs->dc.isac.mon_txc))
                                                schedule_event(cs, D_TX_MON1);
                                        goto AfterMOX1;
                                }
@@ -424,11 +424,11 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
                                        goto AfterMOX1;
                                }
                                cs->writeisac(cs, ISAC_MOX1,
-                                       cs->dc.isac.mon_tx[cs->dc.isac.mon_txp++]);
+                                             cs->dc.isac.mon_tx[cs->dc.isac.mon_txp++]);
                                if (cs->debug & L1_DEB_MONITOR)
-                                       debugl1(cs, "ISAC %02x -> MOX1", cs->dc.isac.mon_tx[cs->dc.isac.mon_txp -1]);
+                                       debugl1(cs, "ISAC %02x -> MOX1", cs->dc.isac.mon_tx[cs->dc.isac.mon_txp - 1]);
                        }
-                     AfterMOX1:;
+               AfterMOX1:;
 #endif
                }
        }
@@ -443,123 +443,123 @@ ISAC_l1hw(struct PStack *st, int pr, void *arg)
        int  val;
 
        switch (pr) {
-               case (PH_DATA |REQUEST):
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA Queued", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+               } else {
+                       cs->tx_skb = skb;
+                       cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
-                               isac_fill_fifo(cs);
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL |INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                       } else {
-                               if (cs->debug & DEB_DLOG_HEX)
-                                       LogFrame(cs, skb->data, skb->len);
-                               if (cs->debug & DEB_DLOG_VERBOSE)
-                                       dlogframe(cs, skb, 0);
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+                       isac_fill_fifo(cs);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
+               } else {
+                       if (cs->debug & DEB_DLOG_HEX)
+                               LogFrame(cs, skb->data, skb->len);
+                       if (cs->debug & DEB_DLOG_VERBOSE)
+                               dlogframe(cs, skb, 0);
+                       cs->tx_skb = skb;
+                       cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                               isac_fill_fifo(cs);
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
+                       isac_fill_fifo(cs);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "-> PH_REQUEST_PULL");
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if ((cs->dc.isac.ph_state == ISAC_IND_EI) ||
-                               (cs->dc.isac.ph_state == ISAC_IND_DR) ||
-                               (cs->dc.isac.ph_state == ISAC_IND_RS))
-                               ph_command(cs, ISAC_CMD_TIM);
-                       else
-                               ph_command(cs, ISAC_CMD_RS);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_ENABLE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               if ((cs->dc.isac.ph_state == ISAC_IND_EI) ||
+                   (cs->dc.isac.ph_state == ISAC_IND_DR) ||
+                   (cs->dc.isac.ph_state == ISAC_IND_RS))
                        ph_command(cs, ISAC_CMD_TIM);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       ph_command(cs, ISAC_CMD_AR8);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_TESTLOOP | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       val = 0;
-                       if (1 & (long) arg)
-                               val |= 0x0c;
-                       if (2 & (long) arg)
-                               val |= 0x3;
-                       if (test_bit(HW_IOM1, &cs->HW_Flags)) {
-                               /* IOM 1 Mode */
-                               if (!val) {
-                                       cs->writeisac(cs, ISAC_SPCR, 0xa);
-                                       cs->writeisac(cs, ISAC_ADF1, 0x2);
-                               } else {
-                                       cs->writeisac(cs, ISAC_SPCR, val);
-                                       cs->writeisac(cs, ISAC_ADF1, 0xa);
-                               }
+               else
+                       ph_command(cs, ISAC_CMD_RS);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_ENABLE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, ISAC_CMD_TIM);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO3 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, ISAC_CMD_AR8);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_TESTLOOP | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               val = 0;
+               if (1 & (long) arg)
+                       val |= 0x0c;
+               if (2 & (long) arg)
+                       val |= 0x3;
+               if (test_bit(HW_IOM1, &cs->HW_Flags)) {
+                       /* IOM 1 Mode */
+                       if (!val) {
+                               cs->writeisac(cs, ISAC_SPCR, 0xa);
+                               cs->writeisac(cs, ISAC_ADF1, 0x2);
                        } else {
-                               /* IOM 2 Mode */
                                cs->writeisac(cs, ISAC_SPCR, val);
-                               if (val)
-                                       cs->writeisac(cs, ISAC_ADF1, 0x8);
-                               else
-                                       cs->writeisac(cs, ISAC_ADF1, 0x0);
+                               cs->writeisac(cs, ISAC_ADF1, 0xa);
                        }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_DEACTIVATE | RESPONSE):
-                       skb_queue_purge(&cs->rq);
-                       skb_queue_purge(&cs->sq);
-                       if (cs->tx_skb) {
-                               dev_kfree_skb_any(cs->tx_skb);
-                               cs->tx_skb = NULL;
-                       }
-                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                               del_timer(&cs->dbusytimer);
-                       if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                               schedule_event(cs, D_CLEARBUSY);
-                       break;
-               default:
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "isac_l1hw unknown %04x", pr);
-                       break;
+               } else {
+                       /* IOM 2 Mode */
+                       cs->writeisac(cs, ISAC_SPCR, val);
+                       if (val)
+                               cs->writeisac(cs, ISAC_ADF1, 0x8);
+                       else
+                               cs->writeisac(cs, ISAC_ADF1, 0x0);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_DEACTIVATE | RESPONSE):
+               skb_queue_purge(&cs->rq);
+               skb_queue_purge(&cs->sq);
+               if (cs->tx_skb) {
+                       dev_kfree_skb_any(cs->tx_skb);
+                       cs->tx_skb = NULL;
+               }
+               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                       del_timer(&cs->dbusytimer);
+               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                       schedule_event(cs, D_CLEARBUSY);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "isac_l1hw unknown %04x", pr);
+               break;
        }
 }
 
@@ -587,7 +587,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
        if (test_bit(FLG_DBUSY_TIMER, &cs->HW_Flags)) {
                rbch = cs->readisac(cs, ISAC_RBCH);
                star = cs->readisac(cs, ISAC_STAR);
-               if (cs->debug) 
+               if (cs->debug)
                        debugl1(cs, "D-Channel Busy RBCH %02x STAR %02x",
                                rbch, star);
                if (rbch & ISAC_RBCH_XAC) { /* D-Channel Busy */
@@ -620,8 +620,8 @@ void initisac(struct IsdnCardState *cs)
        cs->DC_Close = DC_Close_isac;
        cs->dc.isac.mon_tx = NULL;
        cs->dc.isac.mon_rx = NULL;
-       cs->writeisac(cs, ISAC_MASK, 0xff);
-       cs->dc.isac.mocr = 0xaa;
+       cs->writeisac(cs, ISAC_MASK, 0xff);
+       cs->dc.isac.mocr = 0xaa;
        if (test_bit(HW_IOM1, &cs->HW_Flags)) {
                /* IOM 1 Mode */
                cs->writeisac(cs, ISAC_ADF2, 0x0);
index 8f8331e..04f16b9 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
index d4cce33..ff5e139 100644 (file)
 #define ETX    0x03
 
 #define FAXMODCNT      13
-static const   u_char  faxmodulation[] = {3,24,48,72,73,74,96,97,98,121,122,145,146};
-static u_int   modmask = 0x1fff;
-static int     frm_extra_delay = 2;
-static int     para_TOA = 6;
-static const   u_char  *FC1_CMD[] = {"FAE", "FTS", "FRS", "FTM", "FRM", "FTH", "FRH", "CTRL" };
+static const u_char faxmodulation[] = {3, 24, 48, 72, 73, 74, 96, 97, 98, 121, 122, 145, 146};
+static u_int modmask = 0x1fff;
+static int frm_extra_delay = 2;
+static int para_TOA = 6;
+static const u_char *FC1_CMD[] = {"FAE", "FTS", "FRS", "FTM", "FRM", "FTH", "FRH", "CTRL"};
 
 static void isar_setup(struct IsdnCardState *cs);
 static void isar_pump_cmd(struct BCState *bcs, u_char cmd, u_char para);
@@ -42,7 +42,7 @@ waitforHIA(struct IsdnCardState *cs, int timeout)
        }
        if (!timeout)
                printk(KERN_WARNING "HiSax: ISAR waitforHIA timeout\n");
-       return(timeout);
+       return (timeout);
 }
 
 
@@ -51,9 +51,9 @@ sendmsg(struct IsdnCardState *cs, u_char his, u_char creg, u_char len,
        u_char *msg)
 {
        int i;
-       
+
        if (!waitforHIA(cs, 4000))
-               return(0);
+               return (0);
 #if DUMP_MBOXFRAME
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "sendmsg(%02x,%02x,%d)", his, creg, len);
@@ -63,17 +63,17 @@ sendmsg(struct IsdnCardState *cs, u_char his, u_char creg, u_char len,
        cs->BC_Write_Reg(cs, 0, ISAR_WADR, 0);
        if (msg && len) {
                cs->BC_Write_Reg(cs, 1, ISAR_MBOX, msg[0]);
-               for (i=1; i<len; i++)
+               for (i = 1; i < len; i++)
                        cs->BC_Write_Reg(cs, 2, ISAR_MBOX, msg[i]);
-#if DUMP_MBOXFRAME>1
+#if DUMP_MBOXFRAME > 1
                if (cs->debug & L1_DEB_HSCX_FIFO) {
                        char tmp[256], *t;
-                       
+
                        i = len;
-                       while (i>0) {
+                       while (i > 0) {
                                t = tmp;
                                t += sprintf(t, "sendmbox cnt %d", len);
-                               QuickHex(t, &msg[len-i], (i>64) ? 64:i);
+                               QuickHex(t, &msg[len-i], (i > 64) ? 64 : i);
                                debugl1(cs, tmp);
                                i -= 64;
                        }
@@ -82,7 +82,7 @@ sendmsg(struct IsdnCardState *cs, u_char his, u_char creg, u_char len,
        }
        cs->BC_Write_Reg(cs, 1, ISAR_HIS, his);
        waitforHIA(cs, 10000);
-       return(1);
+       return (1);
 }
 
 /* Call only with IRQ disabled !!! */
@@ -94,17 +94,17 @@ rcv_mbox(struct IsdnCardState *cs, struct isar_reg *ireg, u_char *msg)
        cs->BC_Write_Reg(cs, 1, ISAR_RADR, 0);
        if (msg && ireg->clsb) {
                msg[0] = cs->BC_Read_Reg(cs, 1, ISAR_MBOX);
-               for (i=1; i < ireg->clsb; i++)
-                        msg[i] = cs->BC_Read_Reg(cs, 2, ISAR_MBOX);
-#if DUMP_MBOXFRAME>1
+               for (i = 1; i < ireg->clsb; i++)
+                       msg[i] = cs->BC_Read_Reg(cs, 2, ISAR_MBOX);
+#if DUMP_MBOXFRAME > 1
                if (cs->debug & L1_DEB_HSCX_FIFO) {
                        char tmp[256], *t;
-                       
+
                        i = ireg->clsb;
-                       while (i>0) {
+                       while (i > 0) {
                                t = tmp;
                                t += sprintf(t, "rcv_mbox cnt %d", ireg->clsb);
-                               QuickHex(t, &msg[ireg->clsb-i], (i>64) ? 64:i);
+                               QuickHex(t, &msg[ireg->clsb - i], (i > 64) ? 64 : i);
                                debugl1(cs, tmp);
                                i -= 64;
                        }
@@ -130,23 +130,23 @@ get_irq_infos(struct IsdnCardState *cs, struct isar_reg *ireg)
 
 static int
 waitrecmsg(struct IsdnCardState *cs, u_char *len,
-       u_char *msg, int maxdelay)
+          u_char *msg, int maxdelay)
 {
        int timeout = 0;
        struct isar_reg *ir = cs->bcs[0].hw.isar.reg;
-       
-       
-       while((!(cs->BC_Read_Reg(cs, 0, ISAR_IRQBIT) & ISAR_IRQSTA)) &&
-               (timeout++ < maxdelay))
+
+
+       while ((!(cs->BC_Read_Reg(cs, 0, ISAR_IRQBIT) & ISAR_IRQSTA)) &&
+             (timeout++ < maxdelay))
                udelay(1);
        if (timeout > maxdelay) {
                printk(KERN_WARNING"isar recmsg IRQSTA timeout\n");
-               return(0);
+               return (0);
        }
        get_irq_infos(cs, ir);
        rcv_mbox(cs, ir, msg);
        *len = ir->clsb;
-       return(1);
+       return (1);
 }
 
 int
@@ -167,11 +167,11 @@ ISARVersion(struct IsdnCardState *cs, char *s)
        cs->debug &= ~(L1_DEB_HSCX | L1_DEB_HSCX_FIFO);
        if (!sendmsg(cs, ISAR_HIS_VNR, 0, 3, msg)) {
                spin_unlock_irqrestore(&cs->lock, flags);
-               return(-1);
+               return (-1);
        }
        if (!waitrecmsg(cs, &len, tmp, 100000)) {
                spin_unlock_irqrestore(&cs->lock, flags);
-               return(-2);
+               return (-2);
        }
        cs->debug = debug;
        if (cs->bcs[0].hw.isar.reg->iis == ISAR_IIS_VNR) {
@@ -183,7 +183,7 @@ ISARVersion(struct IsdnCardState *cs, char *s)
        } else
                ver = -4;
        spin_unlock_irqrestore(&cs->lock, flags);
-       return(ver);
+       return (ver);
 }
 
 static int
@@ -196,25 +196,25 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
        u_char *msg, *tmpmsg, *mp, tmp[64];
        u_long flags;
        struct isar_reg *ireg = cs->bcs[0].hw.isar.reg;
-       
+
        struct {u_short sadr;
                u_short len;
                u_short d_key;
        } blk_head;
-               
+
 #define        BLK_HEAD_SIZE 6
        if (1 != (ret = ISARVersion(cs, "Testing"))) {
                printk(KERN_ERR"isar_load_firmware wrong isar version %d\n", ret);
-               return(1);
+               return (1);
        }
        debug = cs->debug;
-#if DBG_LOADFIRM<2
+#if DBG_LOADFIRM < 2
        cs->debug &= ~(L1_DEB_HSCX | L1_DEB_HSCX_FIFO);
 #endif
-       
+
        cfu_ret = copy_from_user(&size, p, sizeof(int));
        if (cfu_ret) {
-               printk(KERN_ERR"isar_load_firmware copy_from_user ret %d\n", cfu_ret);
+               printk(KERN_ERR "isar_load_firmware copy_from_user ret %d\n", cfu_ret);
                return -EFAULT;
        }
        p += sizeof(int);
@@ -241,40 +241,40 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
                        goto reterror;
                }
 #ifdef __BIG_ENDIAN
-               sadr = (blk_head.sadr & 0xff)*256 + blk_head.sadr/256;
+               sadr = (blk_head.sadr & 0xff) * 256 + blk_head.sadr / 256;
                blk_head.sadr = sadr;
-               sadr = (blk_head.len & 0xff)*256 + blk_head.len/256;
+               sadr = (blk_head.len & 0xff) * 256 + blk_head.len / 256;
                blk_head.len = sadr;
-               sadr = (blk_head.d_key & 0xff)*256 + blk_head.d_key/256;
+               sadr = (blk_head.d_key & 0xff) * 256 + blk_head.d_key / 256;
                blk_head.d_key = sadr;
 #endif /* __BIG_ENDIAN */
                cnt += BLK_HEAD_SIZE;
                p += BLK_HEAD_SIZE;
                printk(KERN_DEBUG"isar firmware block (%#x,%5d,%#x)\n",
-                       blk_head.sadr, blk_head.len, blk_head.d_key & 0xff);
+                      blk_head.sadr, blk_head.len, blk_head.d_key & 0xff);
                sadr = blk_head.sadr;
                left = blk_head.len;
                spin_lock_irqsave(&cs->lock, flags);
                if (!sendmsg(cs, ISAR_HIS_DKEY, blk_head.d_key & 0xff, 0, NULL)) {
                        printk(KERN_ERR"isar sendmsg dkey failed\n");
-                       ret = 1;goto reterr_unlock;
+                       ret = 1; goto reterr_unlock;
                }
                if (!waitrecmsg(cs, &len, tmp, 100000)) {
                        printk(KERN_ERR"isar waitrecmsg dkey failed\n");
-                       ret = 1;goto reterr_unlock;
+                       ret = 1; goto reterr_unlock;
                }
                if ((ireg->iis != ISAR_IIS_DKEY) || ireg->cmsb || len) {
                        printk(KERN_ERR"isar wrong dkey response (%x,%x,%x)\n",
-                               ireg->iis, ireg->cmsb, len);
-                       ret = 1;goto reterr_unlock;
+                              ireg->iis, ireg->cmsb, len);
+                       ret = 1; goto reterr_unlock;
                }
                spin_unlock_irqrestore(&cs->lock, flags);
-               while (left>0) {
+               while (left > 0) {
                        if (left > 126)
                                noc = 126;
                        else
                                noc = left;
-                       nom = 2*noc;
+                       nom = 2 * noc;
                        mp  = msg;
                        *mp++ = sadr / 256;
                        *mp++ = sadr % 256;
@@ -290,10 +290,10 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
                        sp = (u_short *)tmpmsg;
 #if DBG_LOADFIRM
                        printk(KERN_DEBUG"isar: load %3d words at %04x left %d\n",
-                                noc, sadr, left);
+                              noc, sadr, left);
 #endif
                        sadr += noc;
-                       while(noc) {
+                       while (noc) {
 #ifdef __BIG_ENDIAN
                                *mp++ = *sp % 256;
                                *mp++ = *sp / 256;
@@ -307,21 +307,21 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
                        spin_lock_irqsave(&cs->lock, flags);
                        if (!sendmsg(cs, ISAR_HIS_FIRM, 0, nom, msg)) {
                                printk(KERN_ERR"isar sendmsg prog failed\n");
-                               ret = 1;goto reterr_unlock;
+                               ret = 1; goto reterr_unlock;
                        }
                        if (!waitrecmsg(cs, &len, tmp, 100000)) {
                                printk(KERN_ERR"isar waitrecmsg prog failed\n");
-                               ret = 1;goto reterr_unlock;
+                               ret = 1; goto reterr_unlock;
                        }
                        if ((ireg->iis != ISAR_IIS_FIRM) || ireg->cmsb || len) {
                                printk(KERN_ERR"isar wrong prog response (%x,%x,%x)\n",
-                                       ireg->iis, ireg->cmsb, len);
-                               ret = 1;goto reterr_unlock;
+                                      ireg->iis, ireg->cmsb, len);
+                               ret = 1; goto reterr_unlock;
                        }
                        spin_unlock_irqrestore(&cs->lock, flags);
                }
                printk(KERN_DEBUG"isar firmware block %5d words loaded\n",
-                       blk_head.len);
+                      blk_head.len);
        }
        /* 10ms delay */
        cnt = 10;
@@ -333,16 +333,16 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
        spin_lock_irqsave(&cs->lock, flags);
        if (!sendmsg(cs, ISAR_HIS_STDSP, 0, 2, msg)) {
                printk(KERN_ERR"isar sendmsg start dsp failed\n");
-               ret = 1;goto reterr_unlock;
+               ret = 1; goto reterr_unlock;
        }
        if (!waitrecmsg(cs, &len, tmp, 100000)) {
                printk(KERN_ERR"isar waitrecmsg start dsp failed\n");
-               ret = 1;goto reterr_unlock;
+               ret = 1; goto reterr_unlock;
        }
        if ((ireg->iis != ISAR_IIS_STDSP) || ireg->cmsb || len) {
                printk(KERN_ERR"isar wrong start dsp response (%x,%x,%x)\n",
-                       ireg->iis, ireg->cmsb, len);
-               ret = 1;goto reterr_unlock;
+                      ireg->iis, ireg->cmsb, len);
+               ret = 1; goto reterr_unlock;
        } else
                printk(KERN_DEBUG"isar start dsp success\n");
        /* NORMAL mode entered */
@@ -356,10 +356,10 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
        }
        if (!cnt) {
                printk(KERN_ERR"isar no general status event received\n");
-               ret = 1;goto reterror;
+               ret = 1; goto reterror;
        } else {
                printk(KERN_DEBUG"isar general status event %x\n",
-                       ireg->bstat);
+                      ireg->bstat);
        }
        /* 10ms delay */
        cnt = 10;
@@ -369,7 +369,7 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
        ireg->iis = 0;
        if (!sendmsg(cs, ISAR_HIS_DIAG, ISAR_CTRL_STST, 0, NULL)) {
                printk(KERN_ERR"isar sendmsg self tst failed\n");
-               ret = 1;goto reterr_unlock;
+               ret = 1; goto reterr_unlock;
        }
        cnt = 10000; /* max 100 ms */
        spin_unlock_irqrestore(&cs->lock, flags);
@@ -380,21 +380,21 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
        udelay(1000);
        if (!cnt) {
                printk(KERN_ERR"isar no self tst response\n");
-               ret = 1;goto reterror;
+               ret = 1; goto reterror;
        }
        if ((ireg->cmsb == ISAR_CTRL_STST) && (ireg->clsb == 1)
-               && (ireg->par[0] == 0)) {
+           && (ireg->par[0] == 0)) {
                printk(KERN_DEBUG"isar selftest OK\n");
        } else {
                printk(KERN_DEBUG"isar selftest not OK %x/%x/%x\n",
-                       ireg->cmsb, ireg->clsb, ireg->par[0]);
-               ret = 1;goto reterror;
+                      ireg->cmsb, ireg->clsb, ireg->par[0]);
+               ret = 1; goto reterror;
        }
        spin_lock_irqsave(&cs->lock, flags);
        ireg->iis = 0;
        if (!sendmsg(cs, ISAR_HIS_DIAG, ISAR_CTRL_SWVER, 0, NULL)) {
                printk(KERN_ERR"isar RQST SVN failed\n");
-               ret = 1;goto reterr_unlock;
+               ret = 1; goto reterr_unlock;
        }
        spin_unlock_irqrestore(&cs->lock, flags);
        cnt = 30000; /* max 300 ms */
@@ -405,15 +405,15 @@ isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf)
        udelay(1000);
        if (!cnt) {
                printk(KERN_ERR"isar no SVN response\n");
-               ret = 1;goto reterror;
+               ret = 1; goto reterror;
        } else {
                if ((ireg->cmsb == ISAR_CTRL_SWVER) && (ireg->clsb == 1))
                        printk(KERN_DEBUG"isar software version %#x\n",
-                               ireg->par[0]);
+                              ireg->par[0]);
                else {
                        printk(KERN_ERR"isar wrong swver response (%x,%x) cnt(%d)\n",
-                               ireg->cmsb, ireg->clsb, cnt);
-                       ret = 1;goto reterror;
+                              ireg->cmsb, ireg->clsb, cnt);
+                       ret = 1; goto reterror;
                }
        }
        spin_lock_irqsave(&cs->lock, flags);
@@ -430,7 +430,7 @@ reterror:
                cs->BC_Write_Reg(cs, 0, ISAR_IRQBIT, 0);
        kfree(msg);
        kfree(tmpmsg);
-       return(ret);
+       return (ret);
 }
 
 #define B_LL_NOCARRIER 8
@@ -454,9 +454,9 @@ isar_bh(struct work_struct *work)
 static void
 send_DLE_ETX(struct BCState *bcs)
 {
-       u_char dleetx[2] = {DLE,ETX};
+       u_char dleetx[2] = {DLE, ETX};
        struct sk_buff *skb;
-       
+
        if ((skb = dev_alloc_skb(2))) {
                memcpy(skb_put(skb, 2), dleetx, 2);
                skb_queue_tail(&bcs->rqueue, skb);
@@ -486,14 +486,14 @@ insert_dle(unsigned char *dest, unsigned char *src, int count) {
                        *dest++ = DLE;
        }
 }
+
 static void
 isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs)
 {
        u_char *ptr;
        struct sk_buff *skb;
        struct isar_reg *ireg = bcs->hw.isar.reg;
-       
+
        if (!ireg->clsb) {
                debugl1(cs, "isar zero len frame");
                cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
@@ -504,7 +504,7 @@ isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs)
                debugl1(cs, "isar mode 0 spurious IIS_RDATA %x/%x/%x",
                        ireg->iis, ireg->cmsb, ireg->clsb);
                printk(KERN_WARNING"isar mode 0 spurious IIS_RDATA %x/%x/%x\n",
-                       ireg->iis, ireg->cmsb, ireg->clsb);
+                      ireg->iis, ireg->cmsb, ireg->clsb);
                cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
                break;
        case L1_MODE_TRANS:
@@ -547,11 +547,11 @@ isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs)
                                        if (cs->debug & L1_DEB_WARN)
                                                debugl1(cs, "isar frame to short %d",
                                                        bcs->hw.isar.rcvidx);
-                               } else if (!(skb = dev_alloc_skb(bcs->hw.isar.rcvidx-2))) {
+                               } else if (!(skb = dev_alloc_skb(bcs->hw.isar.rcvidx - 2))) {
                                        printk(KERN_WARNING "ISAR: receive out of memory\n");
                                } else {
-                                       memcpy(skb_put(skb, bcs->hw.isar.rcvidx-2),
-                                               bcs->hw.isar.rcvbuf, bcs->hw.isar.rcvidx-2);
+                                       memcpy(skb_put(skb, bcs->hw.isar.rcvidx - 2),
+                                              bcs->hw.isar.rcvbuf, bcs->hw.isar.rcvidx - 2);
                                        skb_queue_tail(&bcs->rqueue, skb);
                                        schedule_event(bcs, B_RCVBUFREADY);
                                }
@@ -576,7 +576,7 @@ isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs)
                                        ireg->clsb, bcs->hw.isar.rcvidx);
                        if ((skb = dev_alloc_skb(bcs->hw.isar.rcvidx))) {
                                insert_dle((u_char *)skb_put(skb, bcs->hw.isar.rcvidx),
-                                       bcs->hw.isar.rcvbuf, ireg->clsb);
+                                          bcs->hw.isar.rcvbuf, ireg->clsb);
                                skb_queue_tail(&bcs->rqueue, skb);
                                schedule_event(bcs, B_RCVBUFREADY);
                                if (ireg->cmsb & SART_NMD) { /* ABORT */
@@ -630,13 +630,13 @@ isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs)
                                                debugl1(cs, "isar frame to short %d",
                                                        bcs->hw.isar.rcvidx);
                                        printk(KERN_WARNING "ISAR: frame to short %d\n",
-                                               bcs->hw.isar.rcvidx);
+                                              bcs->hw.isar.rcvidx);
                                } else if (!(skb = dev_alloc_skb(len))) {
                                        printk(KERN_WARNING "ISAR: receive out of memory\n");
                                } else {
                                        insert_dle((u_char *)skb_put(skb, len),
-                                               bcs->hw.isar.rcvbuf,
-                                               bcs->hw.isar.rcvidx);
+                                                  bcs->hw.isar.rcvbuf,
+                                                  bcs->hw.isar.rcvidx);
                                        skb_queue_tail(&bcs->rqueue, skb);
                                        schedule_event(bcs, B_RCVBUFREADY);
                                        send_DLE_ETX(bcs);
@@ -680,8 +680,8 @@ isar_fill_fifo(struct BCState *bcs)
                return;
        if (bcs->tx_skb->len <= 0)
                return;
-       if (!(bcs->hw.isar.reg->bstat & 
-               (bcs->hw.isar.dpath == 1 ? BSTAT_RDM1 : BSTAT_RDM2)))
+       if (!(bcs->hw.isar.reg->bstat &
+             (bcs->hw.isar.dpath == 1 ? BSTAT_RDM1 : BSTAT_RDM2)))
                return;
        if (bcs->tx_skb->len > bcs->hw.isar.mml) {
                msb = 0;
@@ -694,51 +694,51 @@ isar_fill_fifo(struct BCState *bcs)
        if (!bcs->hw.isar.txcnt) {
                msb |= HDLC_FST;
                if ((bcs->mode == L1_MODE_FAX) &&
-                       (bcs->hw.isar.cmd == PCTRL_CMD_FTH)) {
+                   (bcs->hw.isar.cmd == PCTRL_CMD_FTH)) {
                        if (bcs->tx_skb->len > 1) {
-                               if ((ptr[0]== 0xff) && (ptr[1] == 0x13))
+                               if ((ptr[0] == 0xff) && (ptr[1] == 0x13))
                                        /* last frame */
                                        test_and_set_bit(BC_FLG_LASTDATA,
-                                               &bcs->Flag);
-                       }  
+                                                        &bcs->Flag);
+                       }
                }
        }
        skb_pull(bcs->tx_skb, count);
        bcs->tx_cnt -= count;
        bcs->hw.isar.txcnt += count;
        switch (bcs->mode) {
-               case L1_MODE_NULL:
-                       printk(KERN_ERR"isar_fill_fifo wrong mode 0\n");
-                       break;
-               case L1_MODE_TRANS:
-               case L1_MODE_V32:
-                       sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
-                               0, count, ptr);
-                       break;
-               case L1_MODE_HDLC:
+       case L1_MODE_NULL:
+               printk(KERN_ERR"isar_fill_fifo wrong mode 0\n");
+               break;
+       case L1_MODE_TRANS:
+       case L1_MODE_V32:
+               sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
+                       0, count, ptr);
+               break;
+       case L1_MODE_HDLC:
+               sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
+                       msb, count, ptr);
+               break;
+       case L1_MODE_FAX:
+               if (bcs->hw.isar.state != STFAX_ACTIV) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "isar_fill_fifo: not ACTIV");
+               } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) {
                        sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
                                msb, count, ptr);
-                       break;
-               case L1_MODE_FAX:
-                       if (bcs->hw.isar.state != STFAX_ACTIV) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "isar_fill_fifo: not ACTIV");
-                       } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) { 
-                               sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
-                                       msb, count, ptr);
-                       } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTM) {
-                               sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
-                                       0, count, ptr);
-                       } else {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "isar_fill_fifo: not FTH/FTM");
-                       }
-                       break;
-               default:
-                       if (cs->debug)
-                               debugl1(cs, "isar_fill_fifo mode(%x) error", bcs->mode);
-                       printk(KERN_ERR"isar_fill_fifo mode(%x) error\n", bcs->mode);
-                       break;
+               } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTM) {
+                       sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA,
+                               0, count, ptr);
+               } else {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "isar_fill_fifo: not FTH/FTM");
+               }
+               break;
+       default:
+               if (cs->debug)
+                       debugl1(cs, "isar_fill_fifo mode(%x) error", bcs->mode);
+               printk(KERN_ERR"isar_fill_fifo mode(%x) error\n", bcs->mode);
+               break;
        }
 }
 
@@ -746,12 +746,12 @@ static inline
 struct BCState *sel_bcs_isar(struct IsdnCardState *cs, u_char dpath)
 {
        if ((!dpath) || (dpath == 3))
-               return(NULL);
+               return (NULL);
        if (cs->bcs[0].hw.isar.dpath == dpath)
-               return(&cs->bcs[0]);
+               return (&cs->bcs[0]);
        if (cs->bcs[1].hw.isar.dpath == dpath)
-               return(&cs->bcs[1]);
-       return(NULL);
+               return (&cs->bcs[1]);
+       return (NULL);
 }
 
 static void
@@ -762,8 +762,8 @@ send_frames(struct BCState *bcs)
                        isar_fill_fifo(bcs);
                        return;
                } else {
-                       if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                               (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                       if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                           (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                u_long  flags;
                                spin_lock_irqsave(&bcs->aclock, flags);
                                bcs->ackcnt += bcs->hw.isar.txcnt;
@@ -783,7 +783,7 @@ send_frames(struct BCState *bcs)
                                }
                        }
                        dev_kfree_skb_any(bcs->tx_skb);
-                       bcs->hw.isar.txcnt = 0; 
+                       bcs->hw.isar.txcnt = 0;
                        bcs->tx_skb = NULL;
                }
        }
@@ -813,7 +813,7 @@ static inline void
 check_send(struct IsdnCardState *cs, u_char rdm)
 {
        struct BCState *bcs;
-       
+
        if (rdm & BSTAT_RDM1) {
                if ((bcs = sel_bcs_isar(cs, 1))) {
                        if (bcs->mode) {
@@ -828,16 +828,16 @@ check_send(struct IsdnCardState *cs, u_char rdm)
                        }
                }
        }
-       
+
 }
 
 static const char *dmril[] = {"NO SPEED", "1200/75", "NODEF2", "75/1200",
-                               "NODEF4", "300", "600", "1200", "2400",
-                               "4800", "7200", "9600nt", "9600t", "12000",
-                               "14400", "WRONG"};
+                             "NODEF4", "300", "600", "1200", "2400",
+                             "4800", "7200", "9600nt", "9600t", "12000",
+                             "14400", "WRONG"};
 static const char *dmrim[] = {"NO MOD", "NO DEF", "V32/V32b", "V22", "V21",
-                               "Bell103", "V23", "Bell202", "V17", "V29",
-                               "V27ter"};
+                             "Bell103", "V23", "Bell202", "V17", "V29",
+                             "V27ter"};
 
 static void
 isar_pump_status_rsp(struct BCState *bcs, struct isar_reg *ireg) {
@@ -846,48 +846,48 @@ isar_pump_status_rsp(struct BCState *bcs, struct isar_reg *ireg) {
        u_char rim;
 
        if (!test_and_clear_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags))
-               return; 
+               return;
        if (ril > 14) {
                if (cs->debug & L1_DEB_WARN)
-                       debugl1(cs, "wrong pstrsp ril=%d",ril);
+                       debugl1(cs, "wrong pstrsp ril=%d", ril);
                ril = 15;
        }
-       switch(ireg->par[1]) {
-               case 0:
-                       rim = 0;
-                       break;
-               case 0x20:
-                       rim = 2;
-                       break;
-               case 0x40:
-                       rim = 3;
-                       break;
-               case 0x41:
-                       rim = 4;
-                       break;
-               case 0x51:
-                       rim = 5;
-                       break;
-               case 0x61:
-                       rim = 6;
-                       break;
-               case 0x71:
-                       rim = 7;
-                       break;
-               case 0x82:
-                       rim = 8;
-                       break;
-               case 0x92:
-                       rim = 9;
-                       break;
-               case 0xa2:
-                       rim = 10;
-                       break;
-               default:
-                       rim = 1;
-                       break;
+       switch (ireg->par[1]) {
+       case 0:
+               rim = 0;
+               break;
+       case 0x20:
+               rim = 2;
+               break;
+       case 0x40:
+               rim = 3;
+               break;
+       case 0x41:
+               rim = 4;
+               break;
+       case 0x51:
+               rim = 5;
+               break;
+       case 0x61:
+               rim = 6;
+               break;
+       case 0x71:
+               rim = 7;
+               break;
+       case 0x82:
+               rim = 8;
+               break;
+       case 0x92:
+               rim = 9;
+               break;
+       case 0xa2:
+               rim = 10;
+               break;
+       default:
+               rim = 1;
+               break;
        }
-       sprintf(bcs->hw.isar.conmsg,"%s %s", dmril[ril], dmrim[rim]);
+       sprintf(bcs->hw.isar.conmsg, "%s %s", dmril[ril], dmrim[rim]);
        bcs->conmsg = bcs->hw.isar.conmsg;
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "pump strsp %s", bcs->conmsg);
@@ -898,77 +898,77 @@ isar_pump_statev_modem(struct BCState *bcs, u_char devt) {
        struct IsdnCardState *cs = bcs->cs;
        u_char dps = SET_DPS(bcs->hw.isar.dpath);
 
-       switch(devt) {
-               case PSEV_10MS_TIMER:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev TIMER");
-                       break;
-               case PSEV_CON_ON:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev CONNECT");
-                       l1_msg_b(bcs->st, PH_ACTIVATE | REQUEST, NULL);
-                       break;
-               case PSEV_CON_OFF:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev NO CONNECT");
-                       sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
-                       l1_msg_b(bcs->st, PH_DEACTIVATE | REQUEST, NULL);
-                       break;
-               case PSEV_V24_OFF:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev V24 OFF");
-                       break;
-               case PSEV_CTS_ON:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev CTS ON");
-                       break;
-               case PSEV_CTS_OFF:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev CTS OFF");
-                       break;
-               case PSEV_DCD_ON:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev CARRIER ON");
-                       test_and_set_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags); 
-                       sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
-                       break;
-               case PSEV_DCD_OFF:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev CARRIER OFF");
-                       break;
-               case PSEV_DSR_ON:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev DSR ON");
-                       break;
-               case PSEV_DSR_OFF:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev DSR_OFF");
-                       break;
-               case PSEV_REM_RET:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev REMOTE RETRAIN");
-                       break;
-               case PSEV_REM_REN:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev REMOTE RENEGOTIATE");
-                       break;
-               case PSEV_GSTN_CLR:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev GSTN CLEAR");
-                       break;
-               default:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "unknown pump stev %x", devt);
-                       break;
+       switch (devt) {
+       case PSEV_10MS_TIMER:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev TIMER");
+               break;
+       case PSEV_CON_ON:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev CONNECT");
+               l1_msg_b(bcs->st, PH_ACTIVATE | REQUEST, NULL);
+               break;
+       case PSEV_CON_OFF:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev NO CONNECT");
+               sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
+               l1_msg_b(bcs->st, PH_DEACTIVATE | REQUEST, NULL);
+               break;
+       case PSEV_V24_OFF:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev V24 OFF");
+               break;
+       case PSEV_CTS_ON:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev CTS ON");
+               break;
+       case PSEV_CTS_OFF:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev CTS OFF");
+               break;
+       case PSEV_DCD_ON:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev CARRIER ON");
+               test_and_set_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags);
+               sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
+               break;
+       case PSEV_DCD_OFF:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev CARRIER OFF");
+               break;
+       case PSEV_DSR_ON:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev DSR ON");
+               break;
+       case PSEV_DSR_OFF:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev DSR_OFF");
+               break;
+       case PSEV_REM_RET:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev REMOTE RETRAIN");
+               break;
+       case PSEV_REM_REN:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev REMOTE RENEGOTIATE");
+               break;
+       case PSEV_GSTN_CLR:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev GSTN CLEAR");
+               break;
+       default:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "unknown pump stev %x", devt);
+               break;
        }
 }
 
 static void
 ll_deliver_faxstat(struct BCState *bcs, u_char status)
 {
-        isdn_ctrl ic;
+       isdn_ctrl ic;
        struct Channel *chanp = (struct Channel *) bcs->st->lli.userdata;
+
        if (bcs->cs->debug & L1_DEB_HSCX)
                debugl1(bcs->cs, "HL->LL FAXIND %x", status);
        ic.driver = bcs->cs->myid;
@@ -984,153 +984,120 @@ isar_pump_statev_fax(struct BCState *bcs, u_char devt) {
        u_char dps = SET_DPS(bcs->hw.isar.dpath);
        u_char p1;
 
-       switch(devt) {
-               case PSEV_10MS_TIMER:
+       switch (devt) {
+       case PSEV_10MS_TIMER:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev TIMER");
+               break;
+       case PSEV_RSP_READY:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev RSP_READY");
+               bcs->hw.isar.state = STFAX_READY;
+               l1_msg_b(bcs->st, PH_ACTIVATE | REQUEST, NULL);
+               if (test_bit(BC_FLG_ORIG, &bcs->Flag)) {
+                       isar_pump_cmd(bcs, ISDN_FAX_CLASS1_FRH, 3);
+               } else {
+                       isar_pump_cmd(bcs, ISDN_FAX_CLASS1_FTH, 3);
+               }
+               break;
+       case PSEV_LINE_TX_H:
+               if (bcs->hw.isar.state == STFAX_LINE) {
                        if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev TIMER");
-                       break;
-               case PSEV_RSP_READY:
+                               debugl1(cs, "pump stev LINE_TX_H");
+                       bcs->hw.isar.state = STFAX_CONT;
+                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
+               } else {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "pump stev LINE_TX_H wrong st %x",
+                                       bcs->hw.isar.state);
+               }
+               break;
+       case PSEV_LINE_RX_H:
+               if (bcs->hw.isar.state == STFAX_LINE) {
                        if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev RSP_READY");
-                       bcs->hw.isar.state = STFAX_READY;
-                       l1_msg_b(bcs->st, PH_ACTIVATE | REQUEST, NULL);
-                       if (test_bit(BC_FLG_ORIG, &bcs->Flag)) {
-                               isar_pump_cmd(bcs, ISDN_FAX_CLASS1_FRH, 3);
-                       } else {
-                               isar_pump_cmd(bcs, ISDN_FAX_CLASS1_FTH, 3);
-                       }
-                       break;
-               case PSEV_LINE_TX_H:
-                       if (bcs->hw.isar.state == STFAX_LINE) {
-                               if (cs->debug & L1_DEB_HSCX)
-                                       debugl1(cs, "pump stev LINE_TX_H");
-                               bcs->hw.isar.state = STFAX_CONT;
-                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
-                       } else {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "pump stev LINE_TX_H wrong st %x",
-                                               bcs->hw.isar.state);
-                       }
-                       break;
-               case PSEV_LINE_RX_H:
-                       if (bcs->hw.isar.state == STFAX_LINE) {
-                               if (cs->debug & L1_DEB_HSCX)
-                                       debugl1(cs, "pump stev LINE_RX_H");
-                               bcs->hw.isar.state = STFAX_CONT;
-                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
-                       } else {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "pump stev LINE_RX_H wrong st %x",
-                                               bcs->hw.isar.state);
-                       }
-                       break;
-               case PSEV_LINE_TX_B:
-                       if (bcs->hw.isar.state == STFAX_LINE) {
-                               if (cs->debug & L1_DEB_HSCX)
-                                       debugl1(cs, "pump stev LINE_TX_B");
-                               bcs->hw.isar.state = STFAX_CONT;
-                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
-                       } else {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "pump stev LINE_TX_B wrong st %x",
-                                               bcs->hw.isar.state);
-                       }
-                       break;
-               case PSEV_LINE_RX_B:
-                       if (bcs->hw.isar.state == STFAX_LINE) {
-                               if (cs->debug & L1_DEB_HSCX)
-                                       debugl1(cs, "pump stev LINE_RX_B");
-                               bcs->hw.isar.state = STFAX_CONT;
-                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
-                       } else {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "pump stev LINE_RX_B wrong st %x",
-                                               bcs->hw.isar.state);
-                       }
-                       break;
-               case PSEV_RSP_CONN:
-                       if (bcs->hw.isar.state == STFAX_CONT) {
-                               if (cs->debug & L1_DEB_HSCX)
-                                       debugl1(cs, "pump stev RSP_CONN");
-                               bcs->hw.isar.state = STFAX_ACTIV;
-                               test_and_set_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags);
-                               sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
-                               if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) {
-                                       /* 1s Flags before data */
-                                       if (test_and_set_bit(BC_FLG_FTI_RUN, &bcs->Flag))
-                                               del_timer(&bcs->hw.isar.ftimer);
-                                       /* 1000 ms */
-                                       bcs->hw.isar.ftimer.expires =
-                                               jiffies + ((1000 * HZ)/1000);
-                                       test_and_set_bit(BC_FLG_LL_CONN,
-                                               &bcs->Flag);
-                                       add_timer(&bcs->hw.isar.ftimer);
-                               } else {
-                                       schedule_event(bcs, B_LL_CONNECT);
-                               }
-                       } else {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "pump stev RSP_CONN wrong st %x",
-                                               bcs->hw.isar.state);
-                       }
-                       break;
-               case PSEV_FLAGS_DET:
+                               debugl1(cs, "pump stev LINE_RX_H");
+                       bcs->hw.isar.state = STFAX_CONT;
+                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
+               } else {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "pump stev LINE_RX_H wrong st %x",
+                                       bcs->hw.isar.state);
+               }
+               break;
+       case PSEV_LINE_TX_B:
+               if (bcs->hw.isar.state == STFAX_LINE) {
                        if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev FLAGS_DET");
-                       break;
-               case PSEV_RSP_DISC:
+                               debugl1(cs, "pump stev LINE_TX_B");
+                       bcs->hw.isar.state = STFAX_CONT;
+                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
+               } else {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "pump stev LINE_TX_B wrong st %x",
+                                       bcs->hw.isar.state);
+               }
+               break;
+       case PSEV_LINE_RX_B:
+               if (bcs->hw.isar.state == STFAX_LINE) {
                        if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev RSP_DISC");
-                       if (bcs->hw.isar.state == STFAX_ESCAPE) {
-                               p1 = 5;
-                               switch(bcs->hw.isar.newcmd) {
-                                       case 0:
-                                               bcs->hw.isar.state = STFAX_READY;
-                                               break;
-                                       case PCTRL_CMD_FTM:
-                                               p1 = 2;
-                                       case PCTRL_CMD_FTH:
-                                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL,
-                                                       PCTRL_CMD_SILON, 1, &p1);
-                                               bcs->hw.isar.state = STFAX_SILDET;
-                                               break;
-                                       case PCTRL_CMD_FRM:
-                                               if (frm_extra_delay)
-                                                       mdelay(frm_extra_delay);
-                                       case PCTRL_CMD_FRH:
-                                               p1 = bcs->hw.isar.mod = bcs->hw.isar.newmod;
-                                               bcs->hw.isar.newmod = 0;
-                                               bcs->hw.isar.cmd = bcs->hw.isar.newcmd;
-                                               bcs->hw.isar.newcmd = 0;
-                                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL,
-                                                       bcs->hw.isar.cmd, 1, &p1);
-                                               bcs->hw.isar.state = STFAX_LINE;
-                                               bcs->hw.isar.try_mod = 3;
-                                               break;
-                                       default:
-                                               if (cs->debug & L1_DEB_HSCX)
-                                                       debugl1(cs, "RSP_DISC unknown newcmd %x", bcs->hw.isar.newcmd);
-                                               break;
-                               }
-                       } else if (bcs->hw.isar.state == STFAX_ACTIV) {
-                               if (test_and_clear_bit(BC_FLG_LL_OK, &bcs->Flag)) {
-                                       schedule_event(bcs, B_LL_OK);
-                               } else if (bcs->hw.isar.cmd == PCTRL_CMD_FRM) {
-                                       send_DLE_ETX(bcs);
-                                       schedule_event(bcs, B_LL_NOCARRIER);
-                               } else {
-                                       ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_FCERROR);
-                               }
-                               bcs->hw.isar.state = STFAX_READY;
+                               debugl1(cs, "pump stev LINE_RX_B");
+                       bcs->hw.isar.state = STFAX_CONT;
+                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL);
+               } else {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "pump stev LINE_RX_B wrong st %x",
+                                       bcs->hw.isar.state);
+               }
+               break;
+       case PSEV_RSP_CONN:
+               if (bcs->hw.isar.state == STFAX_CONT) {
+                       if (cs->debug & L1_DEB_HSCX)
+                               debugl1(cs, "pump stev RSP_CONN");
+                       bcs->hw.isar.state = STFAX_ACTIV;
+                       test_and_set_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags);
+                       sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
+                       if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) {
+                               /* 1s Flags before data */
+                               if (test_and_set_bit(BC_FLG_FTI_RUN, &bcs->Flag))
+                                       del_timer(&bcs->hw.isar.ftimer);
+                               /* 1000 ms */
+                               bcs->hw.isar.ftimer.expires =
+                                       jiffies + ((1000 * HZ) / 1000);
+                               test_and_set_bit(BC_FLG_LL_CONN,
+                                                &bcs->Flag);
+                               add_timer(&bcs->hw.isar.ftimer);
                        } else {
-                               bcs->hw.isar.state = STFAX_READY;
-                               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_FCERROR);
+                               schedule_event(bcs, B_LL_CONNECT);
                        }
-                       break;
-               case PSEV_RSP_SILDET:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev RSP_SILDET");
-                       if (bcs->hw.isar.state == STFAX_SILDET) {
+               } else {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, "pump stev RSP_CONN wrong st %x",
+                                       bcs->hw.isar.state);
+               }
+               break;
+       case PSEV_FLAGS_DET:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev FLAGS_DET");
+               break;
+       case PSEV_RSP_DISC:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev RSP_DISC");
+               if (bcs->hw.isar.state == STFAX_ESCAPE) {
+                       p1 = 5;
+                       switch (bcs->hw.isar.newcmd) {
+                       case 0:
+                               bcs->hw.isar.state = STFAX_READY;
+                               break;
+                       case PCTRL_CMD_FTM:
+                               p1 = 2;
+                       case PCTRL_CMD_FTH:
+                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL,
+                                       PCTRL_CMD_SILON, 1, &p1);
+                               bcs->hw.isar.state = STFAX_SILDET;
+                               break;
+                       case PCTRL_CMD_FRM:
+                               if (frm_extra_delay)
+                                       mdelay(frm_extra_delay);
+                       case PCTRL_CMD_FRH:
                                p1 = bcs->hw.isar.mod = bcs->hw.isar.newmod;
                                bcs->hw.isar.newmod = 0;
                                bcs->hw.isar.cmd = bcs->hw.isar.newcmd;
@@ -1139,32 +1106,65 @@ isar_pump_statev_fax(struct BCState *bcs, u_char devt) {
                                        bcs->hw.isar.cmd, 1, &p1);
                                bcs->hw.isar.state = STFAX_LINE;
                                bcs->hw.isar.try_mod = 3;
-                       }
-                       break;
-               case PSEV_RSP_SILOFF:
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev RSP_SILOFF");
-                       break;
-               case PSEV_RSP_FCERR:
-                       if (bcs->hw.isar.state == STFAX_LINE) {
+                               break;
+                       default:
                                if (cs->debug & L1_DEB_HSCX)
-                                       debugl1(cs, "pump stev RSP_FCERR try %d",
-                                               bcs->hw.isar.try_mod);
-                               if (bcs->hw.isar.try_mod--) {
-                                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL,
-                                               bcs->hw.isar.cmd, 1,
-                                               &bcs->hw.isar.mod);
-                                       break;
-                               }
+                                       debugl1(cs, "RSP_DISC unknown newcmd %x", bcs->hw.isar.newcmd);
+                               break;
                        }
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "pump stev RSP_FCERR");
-                       bcs->hw.isar.state = STFAX_ESCAPE;
-                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC, 0, NULL);
+               } else if (bcs->hw.isar.state == STFAX_ACTIV) {
+                       if (test_and_clear_bit(BC_FLG_LL_OK, &bcs->Flag)) {
+                               schedule_event(bcs, B_LL_OK);
+                       } else if (bcs->hw.isar.cmd == PCTRL_CMD_FRM) {
+                               send_DLE_ETX(bcs);
+                               schedule_event(bcs, B_LL_NOCARRIER);
+                       } else {
+                               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_FCERROR);
+                       }
+                       bcs->hw.isar.state = STFAX_READY;
+               } else {
+                       bcs->hw.isar.state = STFAX_READY;
                        ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_FCERROR);
-                       break;
-               default:
-                       break;
+               }
+               break;
+       case PSEV_RSP_SILDET:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev RSP_SILDET");
+               if (bcs->hw.isar.state == STFAX_SILDET) {
+                       p1 = bcs->hw.isar.mod = bcs->hw.isar.newmod;
+                       bcs->hw.isar.newmod = 0;
+                       bcs->hw.isar.cmd = bcs->hw.isar.newcmd;
+                       bcs->hw.isar.newcmd = 0;
+                       sendmsg(cs, dps | ISAR_HIS_PUMPCTRL,
+                               bcs->hw.isar.cmd, 1, &p1);
+                       bcs->hw.isar.state = STFAX_LINE;
+                       bcs->hw.isar.try_mod = 3;
+               }
+               break;
+       case PSEV_RSP_SILOFF:
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev RSP_SILOFF");
+               break;
+       case PSEV_RSP_FCERR:
+               if (bcs->hw.isar.state == STFAX_LINE) {
+                       if (cs->debug & L1_DEB_HSCX)
+                               debugl1(cs, "pump stev RSP_FCERR try %d",
+                                       bcs->hw.isar.try_mod);
+                       if (bcs->hw.isar.try_mod--) {
+                               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL,
+                                       bcs->hw.isar.cmd, 1,
+                                       &bcs->hw.isar.mod);
+                               break;
+                       }
+               }
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "pump stev RSP_FCERR");
+               bcs->hw.isar.state = STFAX_ESCAPE;
+               sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC, 0, NULL);
+               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_FCERROR);
+               break;
+       default:
+               break;
        }
 }
 
@@ -1178,91 +1178,91 @@ isar_int_main(struct IsdnCardState *cs)
 
        get_irq_infos(cs, ireg);
        switch (ireg->iis & ISAR_IIS_MSCMSD) {
-               case ISAR_IIS_RDATA:
-                       if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
-                               isar_rcv_frame(cs, bcs);
-                       } else {
-                               debugl1(cs, "isar spurious IIS_RDATA %x/%x/%x",
-                                       ireg->iis, ireg->cmsb, ireg->clsb);
-                               cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
-                       }
-                       break;
-               case ISAR_IIS_GSTEV:
+       case ISAR_IIS_RDATA:
+               if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
+                       isar_rcv_frame(cs, bcs);
+               } else {
+                       debugl1(cs, "isar spurious IIS_RDATA %x/%x/%x",
+                               ireg->iis, ireg->cmsb, ireg->clsb);
                        cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
-                       ireg->bstat |= ireg->cmsb;
-                       check_send(cs, ireg->cmsb);
-                       break;
-               case ISAR_IIS_BSTEV:
+               }
+               break;
+       case ISAR_IIS_GSTEV:
+               cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
+               ireg->bstat |= ireg->cmsb;
+               check_send(cs, ireg->cmsb);
+               break;
+       case ISAR_IIS_BSTEV:
 #ifdef ERROR_STATISTIC
-                       if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
-                               if (ireg->cmsb == BSTEV_TBO)
-                                       bcs->err_tx++;
-                               if (ireg->cmsb == BSTEV_RBO)
-                                       bcs->err_rdo++;
-                       }
+               if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
+                       if (ireg->cmsb == BSTEV_TBO)
+                               bcs->err_tx++;
+                       if (ireg->cmsb == BSTEV_RBO)
+                               bcs->err_rdo++;
+               }
 #endif
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "Buffer STEV dpath%d msb(%x)",
-                                       ireg->iis>>6, ireg->cmsb);
-                       cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
-                       break;
-               case ISAR_IIS_PSTEV:
-                       if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
-                               rcv_mbox(cs, ireg, (u_char *)ireg->par);
-                               if (bcs->mode == L1_MODE_V32) {
-                                       isar_pump_statev_modem(bcs, ireg->cmsb);
-                               } else if (bcs->mode == L1_MODE_FAX) {
-                                       isar_pump_statev_fax(bcs, ireg->cmsb);
-                               } else if (ireg->cmsb == PSEV_10MS_TIMER) {
-                                       if (cs->debug & L1_DEB_HSCX)
-                                               debugl1(cs, "pump stev TIMER");
-                               } else {
-                                       if (cs->debug & L1_DEB_WARN)
-                                               debugl1(cs, "isar IIS_PSTEV pmode %d stat %x",
-                                                       bcs->mode, ireg->cmsb);
-                               }
-                       } else {
-                               debugl1(cs, "isar spurious IIS_PSTEV %x/%x/%x",
-                                       ireg->iis, ireg->cmsb, ireg->clsb);
-                               cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
-                       }
-                       break;
-               case ISAR_IIS_PSTRSP:
-                       if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
-                               rcv_mbox(cs, ireg, (u_char *)ireg->par);
-                               isar_pump_status_rsp(bcs, ireg);
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "Buffer STEV dpath%d msb(%x)",
+                               ireg->iis >> 6, ireg->cmsb);
+               cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
+               break;
+       case ISAR_IIS_PSTEV:
+               if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
+                       rcv_mbox(cs, ireg, (u_char *)ireg->par);
+                       if (bcs->mode == L1_MODE_V32) {
+                               isar_pump_statev_modem(bcs, ireg->cmsb);
+                       } else if (bcs->mode == L1_MODE_FAX) {
+                               isar_pump_statev_fax(bcs, ireg->cmsb);
+                       } else if (ireg->cmsb == PSEV_10MS_TIMER) {
+                               if (cs->debug & L1_DEB_HSCX)
+                                       debugl1(cs, "pump stev TIMER");
                        } else {
-                               debugl1(cs, "isar spurious IIS_PSTRSP %x/%x/%x",
-                                       ireg->iis, ireg->cmsb, ireg->clsb);
-                               cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
+                               if (cs->debug & L1_DEB_WARN)
+                                       debugl1(cs, "isar IIS_PSTEV pmode %d stat %x",
+                                               bcs->mode, ireg->cmsb);
                        }
-                       break;
-               case ISAR_IIS_DIAG:
-               case ISAR_IIS_BSTRSP:
-               case ISAR_IIS_IOM2RSP:
+               } else {
+                       debugl1(cs, "isar spurious IIS_PSTEV %x/%x/%x",
+                               ireg->iis, ireg->cmsb, ireg->clsb);
+                       cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
+               }
+               break;
+       case ISAR_IIS_PSTRSP:
+               if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) {
                        rcv_mbox(cs, ireg, (u_char *)ireg->par);
-                       if ((cs->debug & (L1_DEB_HSCX | L1_DEB_HSCX_FIFO))
-                               == L1_DEB_HSCX) {
-                               u_char *tp=debbuf;
-
-                               tp += sprintf(debbuf, "msg iis(%x) msb(%x)",
-                                       ireg->iis, ireg->cmsb);
-                               QuickHex(tp, (u_char *)ireg->par, ireg->clsb);
-                               debugl1(cs, debbuf);
-                       }
-                       break;
-               case ISAR_IIS_INVMSG:
-                       rcv_mbox(cs, ireg, debbuf);
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "invalid msg his:%x",
-                                       ireg->cmsb);
-                       break;
-               default:
-                       rcv_mbox(cs, ireg, debbuf);
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "unhandled msg iis(%x) ctrl(%x/%x)",
-                                       ireg->iis, ireg->cmsb, ireg->clsb);
-                       break;
+                       isar_pump_status_rsp(bcs, ireg);
+               } else {
+                       debugl1(cs, "isar spurious IIS_PSTRSP %x/%x/%x",
+                               ireg->iis, ireg->cmsb, ireg->clsb);
+                       cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0);
+               }
+               break;
+       case ISAR_IIS_DIAG:
+       case ISAR_IIS_BSTRSP:
+       case ISAR_IIS_IOM2RSP:
+               rcv_mbox(cs, ireg, (u_char *)ireg->par);
+               if ((cs->debug & (L1_DEB_HSCX | L1_DEB_HSCX_FIFO))
+                   == L1_DEB_HSCX) {
+                       u_char *tp = debbuf;
+
+                       tp += sprintf(debbuf, "msg iis(%x) msb(%x)",
+                                     ireg->iis, ireg->cmsb);
+                       QuickHex(tp, (u_char *)ireg->par, ireg->clsb);
+                       debugl1(cs, debbuf);
+               }
+               break;
+       case ISAR_IIS_INVMSG:
+               rcv_mbox(cs, ireg, debbuf);
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "invalid msg his:%x",
+                               ireg->cmsb);
+               break;
+       default:
+               rcv_mbox(cs, ireg, debbuf);
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "unhandled msg iis(%x) ctrl(%x/%x)",
+                               ireg->iis, ireg->cmsb, ireg->clsb);
+               break;
        }
 }
 
@@ -1287,42 +1287,42 @@ setup_pump(struct BCState *bcs) {
        u_char ctrl, param[6];
 
        switch (bcs->mode) {
-               case L1_MODE_NULL:
-               case L1_MODE_TRANS:
-               case L1_MODE_HDLC:
-                       sendmsg(cs, dps | ISAR_HIS_PUMPCFG, PMOD_BYPASS, 0, NULL);
-                       break;
-               case L1_MODE_V32:
-                       ctrl = PMOD_DATAMODEM;
-                       if (test_bit(BC_FLG_ORIG, &bcs->Flag)) {
-                               ctrl |= PCTRL_ORIG;
-                               param[5] = PV32P6_CTN;
-                       } else {
-                               param[5] = PV32P6_ATN;
-                       }
-                       param[0] = para_TOA; /* 6 db */
-                       param[1] = PV32P2_V23R | PV32P2_V22A | PV32P2_V22B |
-                                  PV32P2_V22C | PV32P2_V21 | PV32P2_BEL; 
-                       param[2] = PV32P3_AMOD | PV32P3_V32B | PV32P3_V23B;
-                       param[3] = PV32P4_UT144;
-                       param[4] = PV32P5_UT144;
-                       sendmsg(cs, dps | ISAR_HIS_PUMPCFG, ctrl, 6, param);
-                       break;
-               case L1_MODE_FAX:
-                       ctrl = PMOD_FAX;
-                       if (test_bit(BC_FLG_ORIG, &bcs->Flag)) {
-                               ctrl |= PCTRL_ORIG;
-                               param[1] = PFAXP2_CTN;
-                       } else {
-                               param[1] = PFAXP2_ATN;
-                       }
-                       param[0] = para_TOA; /* 6 db */
-                       sendmsg(cs, dps | ISAR_HIS_PUMPCFG, ctrl, 2, param);
-                       bcs->hw.isar.state = STFAX_NULL;
-                       bcs->hw.isar.newcmd = 0;
-                       bcs->hw.isar.newmod = 0;
-                       test_and_set_bit(BC_FLG_FTI_RUN, &bcs->Flag);
-                       break;
+       case L1_MODE_NULL:
+       case L1_MODE_TRANS:
+       case L1_MODE_HDLC:
+               sendmsg(cs, dps | ISAR_HIS_PUMPCFG, PMOD_BYPASS, 0, NULL);
+               break;
+       case L1_MODE_V32:
+               ctrl = PMOD_DATAMODEM;
+               if (test_bit(BC_FLG_ORIG, &bcs->Flag)) {
+                       ctrl |= PCTRL_ORIG;
+                       param[5] = PV32P6_CTN;
+               } else {
+                       param[5] = PV32P6_ATN;
+               }
+               param[0] = para_TOA; /* 6 db */
+               param[1] = PV32P2_V23R | PV32P2_V22A | PV32P2_V22B |
+                       PV32P2_V22C | PV32P2_V21 | PV32P2_BEL;
+               param[2] = PV32P3_AMOD | PV32P3_V32B | PV32P3_V23B;
+               param[3] = PV32P4_UT144;
+               param[4] = PV32P5_UT144;
+               sendmsg(cs, dps | ISAR_HIS_PUMPCFG, ctrl, 6, param);
+               break;
+       case L1_MODE_FAX:
+               ctrl = PMOD_FAX;
+               if (test_bit(BC_FLG_ORIG, &bcs->Flag)) {
+                       ctrl |= PCTRL_ORIG;
+                       param[1] = PFAXP2_CTN;
+               } else {
+                       param[1] = PFAXP2_ATN;
+               }
+               param[0] = para_TOA; /* 6 db */
+               sendmsg(cs, dps | ISAR_HIS_PUMPCFG, ctrl, 2, param);
+               bcs->hw.isar.state = STFAX_NULL;
+               bcs->hw.isar.newcmd = 0;
+               bcs->hw.isar.newmod = 0;
+               test_and_set_bit(BC_FLG_FTI_RUN, &bcs->Flag);
+               break;
        }
        udelay(1000);
        sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL);
@@ -1334,31 +1334,31 @@ setup_sart(struct BCState *bcs) {
        struct IsdnCardState *cs = bcs->cs;
        u_char dps = SET_DPS(bcs->hw.isar.dpath);
        u_char ctrl, param[2];
-       
+
        switch (bcs->mode) {
-               case L1_MODE_NULL:
-                       sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_DISABLE, 0,
-                               NULL);
-                       break;
-               case L1_MODE_TRANS:
-                       sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_BINARY, 2,
-                               "\0\0");
-                       break;
-               case L1_MODE_HDLC:
-                       param[0] = 0;
-                       sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_HDLC, 1,
-                               param);
-                       break;
-               case L1_MODE_V32:
-                       ctrl = SMODE_V14 | SCTRL_HDMC_BOTH;
-                       param[0] = S_P1_CHS_8;
-                       param[1] = S_P2_BFT_DEF;
-                       sendmsg(cs, dps | ISAR_HIS_SARTCFG, ctrl, 2,
-                               param);
-                       break;
-               case L1_MODE_FAX:
-                       /* SART must not configured with FAX */
-                       break;
+       case L1_MODE_NULL:
+               sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_DISABLE, 0,
+                       NULL);
+               break;
+       case L1_MODE_TRANS:
+               sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_BINARY, 2,
+                       "\0\0");
+               break;
+       case L1_MODE_HDLC:
+               param[0] = 0;
+               sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_HDLC, 1,
+                       param);
+               break;
+       case L1_MODE_V32:
+               ctrl = SMODE_V14 | SCTRL_HDMC_BOTH;
+               param[0] = S_P1_CHS_8;
+               param[1] = S_P2_BFT_DEF;
+               sendmsg(cs, dps | ISAR_HIS_SARTCFG, ctrl, 2,
+                       param);
+               break;
+       case L1_MODE_FAX:
+               /* SART must not configured with FAX */
+               break;
        }
        udelay(1000);
        sendmsg(cs, dps | ISAR_HIS_BSTREQ, 0, 0, NULL);
@@ -1369,23 +1369,23 @@ static void
 setup_iom2(struct BCState *bcs) {
        struct IsdnCardState *cs = bcs->cs;
        u_char dps = SET_DPS(bcs->hw.isar.dpath);
-       u_char cmsb = IOM_CTRL_ENA, msg[5] = {IOM_P1_TXD,0,0,0,0};
-       
+       u_char cmsb = IOM_CTRL_ENA, msg[5] = {IOM_P1_TXD, 0, 0, 0, 0};
+
        if (bcs->channel)
                msg[1] = msg[3] = 1;
        switch (bcs->mode) {
-               case L1_MODE_NULL:
-                       cmsb = 0;
-                       /* dummy slot */
-                       msg[1] = msg[3] = bcs->hw.isar.dpath + 2;
-                       break;
-               case L1_MODE_TRANS:
-               case L1_MODE_HDLC:
-                       break;
-               case L1_MODE_V32:
-               case L1_MODE_FAX:
-                       cmsb |= IOM_CTRL_ALAW | IOM_CTRL_RCV;
-                       break;
+       case L1_MODE_NULL:
+               cmsb = 0;
+               /* dummy slot */
+               msg[1] = msg[3] = bcs->hw.isar.dpath + 2;
+               break;
+       case L1_MODE_TRANS:
+       case L1_MODE_HDLC:
+               break;
+       case L1_MODE_V32:
+       case L1_MODE_FAX:
+               cmsb |= IOM_CTRL_ALAW | IOM_CTRL_RCV;
+               break;
        }
        sendmsg(cs, dps | ISAR_HIS_IOM2CFG, cmsb, 5, msg);
        udelay(1000);
@@ -1399,40 +1399,40 @@ modeisar(struct BCState *bcs, int mode, int bc)
        struct IsdnCardState *cs = bcs->cs;
 
        /* Here we are selecting the best datapath for requested mode */
-       if(bcs->mode == L1_MODE_NULL) { /* New Setup */
+       if (bcs->mode == L1_MODE_NULL) { /* New Setup */
                bcs->channel = bc;
                switch (mode) {
-                       case L1_MODE_NULL: /* init */
-                               if (!bcs->hw.isar.dpath)
-                                       /* no init for dpath 0 */
-                                       return(0);
-                               break;
-                       case L1_MODE_TRANS:
-                       case L1_MODE_HDLC:
-                               /* best is datapath 2 */
-                               if (!test_and_set_bit(ISAR_DP2_USE, 
-                                       &bcs->hw.isar.reg->Flags))
-                                       bcs->hw.isar.dpath = 2;
-                               else if (!test_and_set_bit(ISAR_DP1_USE,
-                                       &bcs->hw.isar.reg->Flags))
-                                       bcs->hw.isar.dpath = 1;
-                               else {
-                                       printk(KERN_WARNING"isar modeisar both pathes in use\n");
-                                       return(1);
-                               }
-                               break;
-                       case L1_MODE_V32:
-                       case L1_MODE_FAX:
-                               /* only datapath 1 */
-                               if (!test_and_set_bit(ISAR_DP1_USE, 
-                                       &bcs->hw.isar.reg->Flags))
-                                       bcs->hw.isar.dpath = 1;
-                               else {
-                                       printk(KERN_WARNING"isar modeisar analog functions only with DP1\n");
-                                       debugl1(cs, "isar modeisar analog functions only with DP1");
-                                       return(1);
-                               }
-                               break;
+               case L1_MODE_NULL: /* init */
+                       if (!bcs->hw.isar.dpath)
+                               /* no init for dpath 0 */
+                               return (0);
+                       break;
+               case L1_MODE_TRANS:
+               case L1_MODE_HDLC:
+                       /* best is datapath 2 */
+                       if (!test_and_set_bit(ISAR_DP2_USE,
+                                             &bcs->hw.isar.reg->Flags))
+                               bcs->hw.isar.dpath = 2;
+                       else if (!test_and_set_bit(ISAR_DP1_USE,
+                                                  &bcs->hw.isar.reg->Flags))
+                               bcs->hw.isar.dpath = 1;
+                       else {
+                               printk(KERN_WARNING"isar modeisar both pathes in use\n");
+                               return (1);
+                       }
+                       break;
+               case L1_MODE_V32:
+               case L1_MODE_FAX:
+                       /* only datapath 1 */
+                       if (!test_and_set_bit(ISAR_DP1_USE,
+                                             &bcs->hw.isar.reg->Flags))
+                               bcs->hw.isar.dpath = 1;
+                       else {
+                               printk(KERN_WARNING"isar modeisar analog functions only with DP1\n");
+                               debugl1(cs, "isar modeisar analog functions only with DP1");
+                               return (1);
+                       }
+                       break;
                }
        }
        if (cs->debug & L1_DEB_HSCX)
@@ -1450,118 +1450,118 @@ modeisar(struct BCState *bcs, int mode, int bc)
                        test_and_clear_bit(ISAR_DP2_USE, &bcs->hw.isar.reg->Flags);
                bcs->hw.isar.dpath = 0;
        }
-       return(0);
+       return (0);
 }
 
 static void
-isar_pump_cmd(struct BCState *bcs, u_char cmd, u_char para) 
+isar_pump_cmd(struct BCState *bcs, u_char cmd, u_char para)
 {
        struct IsdnCardState *cs = bcs->cs;
        u_char dps = SET_DPS(bcs->hw.isar.dpath);
        u_char ctrl = 0, nom = 0, p1 = 0;
 
-       switch(cmd) {
-               case ISDN_FAX_CLASS1_FTM:
-                       test_and_clear_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
-                       if (bcs->hw.isar.state == STFAX_READY) {
-                               p1 = para;
-                               ctrl = PCTRL_CMD_FTM;
-                               nom = 1;
-                               bcs->hw.isar.state = STFAX_LINE;
-                               bcs->hw.isar.cmd = ctrl;
-                               bcs->hw.isar.mod = para;
-                               bcs->hw.isar.newmod = 0;
-                               bcs->hw.isar.newcmd = 0;
-                               bcs->hw.isar.try_mod = 3; 
-                       } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
-                               (bcs->hw.isar.cmd == PCTRL_CMD_FTM) &&
-                               (bcs->hw.isar.mod == para)) {
-                               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
-                       } else {
-                               bcs->hw.isar.newmod = para;
-                               bcs->hw.isar.newcmd = PCTRL_CMD_FTM;
-                               nom = 0;
-                               ctrl = PCTRL_CMD_ESC;
-                               bcs->hw.isar.state = STFAX_ESCAPE; 
-                       }
-                       break;
-               case ISDN_FAX_CLASS1_FTH:
-                       test_and_clear_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
-                       if (bcs->hw.isar.state == STFAX_READY) {
-                               p1 = para;
-                               ctrl = PCTRL_CMD_FTH;
-                               nom = 1;
-                               bcs->hw.isar.state = STFAX_LINE;
-                               bcs->hw.isar.cmd = ctrl;
-                               bcs->hw.isar.mod = para;
-                               bcs->hw.isar.newmod = 0;
-                               bcs->hw.isar.newcmd = 0;
-                               bcs->hw.isar.try_mod = 3; 
-                       } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
-                               (bcs->hw.isar.cmd == PCTRL_CMD_FTH) &&
-                               (bcs->hw.isar.mod == para)) {
-                               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
-                       } else {
-                               bcs->hw.isar.newmod = para;
-                               bcs->hw.isar.newcmd = PCTRL_CMD_FTH;
-                               nom = 0;
-                               ctrl = PCTRL_CMD_ESC;
-                               bcs->hw.isar.state = STFAX_ESCAPE; 
-                       }
-                       break;
-               case ISDN_FAX_CLASS1_FRM:
-                       test_and_clear_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
-                       if (bcs->hw.isar.state == STFAX_READY) {
-                               p1 = para;
-                               ctrl = PCTRL_CMD_FRM;
-                               nom = 1;
-                               bcs->hw.isar.state = STFAX_LINE;
-                               bcs->hw.isar.cmd = ctrl;
-                               bcs->hw.isar.mod = para;
-                               bcs->hw.isar.newmod = 0;
-                               bcs->hw.isar.newcmd = 0;
-                               bcs->hw.isar.try_mod = 3; 
-                       } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
-                               (bcs->hw.isar.cmd == PCTRL_CMD_FRM) &&
-                               (bcs->hw.isar.mod == para)) {
-                               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
-                       } else {
-                               bcs->hw.isar.newmod = para;
-                               bcs->hw.isar.newcmd = PCTRL_CMD_FRM;
-                               nom = 0;
-                               ctrl = PCTRL_CMD_ESC;
-                               bcs->hw.isar.state = STFAX_ESCAPE; 
-                       }
-                       break;
-               case ISDN_FAX_CLASS1_FRH:
-                       test_and_set_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
-                       if (bcs->hw.isar.state == STFAX_READY) {
-                               p1 = para;
-                               ctrl = PCTRL_CMD_FRH;
-                               nom = 1;
-                               bcs->hw.isar.state = STFAX_LINE;
-                               bcs->hw.isar.cmd = ctrl;
-                               bcs->hw.isar.mod = para;
-                               bcs->hw.isar.newmod = 0;
-                               bcs->hw.isar.newcmd = 0;
-                               bcs->hw.isar.try_mod = 3; 
-                       } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
-                               (bcs->hw.isar.cmd == PCTRL_CMD_FRH) &&
-                               (bcs->hw.isar.mod == para)) {
-                               ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
-                       } else {
-                               bcs->hw.isar.newmod = para;
-                               bcs->hw.isar.newcmd = PCTRL_CMD_FRH;
-                               nom = 0;
-                               ctrl = PCTRL_CMD_ESC;
-                               bcs->hw.isar.state = STFAX_ESCAPE; 
-                       }
-                       break;
-               case ISDN_FAXPUMP_HALT:
-                       bcs->hw.isar.state = STFAX_NULL;
+       switch (cmd) {
+       case ISDN_FAX_CLASS1_FTM:
+               test_and_clear_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
+               if (bcs->hw.isar.state == STFAX_READY) {
+                       p1 = para;
+                       ctrl = PCTRL_CMD_FTM;
+                       nom = 1;
+                       bcs->hw.isar.state = STFAX_LINE;
+                       bcs->hw.isar.cmd = ctrl;
+                       bcs->hw.isar.mod = para;
+                       bcs->hw.isar.newmod = 0;
+                       bcs->hw.isar.newcmd = 0;
+                       bcs->hw.isar.try_mod = 3;
+               } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
+                          (bcs->hw.isar.cmd == PCTRL_CMD_FTM) &&
+                          (bcs->hw.isar.mod == para)) {
+                       ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
+               } else {
+                       bcs->hw.isar.newmod = para;
+                       bcs->hw.isar.newcmd = PCTRL_CMD_FTM;
                        nom = 0;
-                       ctrl = PCTRL_CMD_HALT;
-                       break;
+                       ctrl = PCTRL_CMD_ESC;
+                       bcs->hw.isar.state = STFAX_ESCAPE;
+               }
+               break;
+       case ISDN_FAX_CLASS1_FTH:
+               test_and_clear_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
+               if (bcs->hw.isar.state == STFAX_READY) {
+                       p1 = para;
+                       ctrl = PCTRL_CMD_FTH;
+                       nom = 1;
+                       bcs->hw.isar.state = STFAX_LINE;
+                       bcs->hw.isar.cmd = ctrl;
+                       bcs->hw.isar.mod = para;
+                       bcs->hw.isar.newmod = 0;
+                       bcs->hw.isar.newcmd = 0;
+                       bcs->hw.isar.try_mod = 3;
+               } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
+                          (bcs->hw.isar.cmd == PCTRL_CMD_FTH) &&
+                          (bcs->hw.isar.mod == para)) {
+                       ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
+               } else {
+                       bcs->hw.isar.newmod = para;
+                       bcs->hw.isar.newcmd = PCTRL_CMD_FTH;
+                       nom = 0;
+                       ctrl = PCTRL_CMD_ESC;
+                       bcs->hw.isar.state = STFAX_ESCAPE;
+               }
+               break;
+       case ISDN_FAX_CLASS1_FRM:
+               test_and_clear_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
+               if (bcs->hw.isar.state == STFAX_READY) {
+                       p1 = para;
+                       ctrl = PCTRL_CMD_FRM;
+                       nom = 1;
+                       bcs->hw.isar.state = STFAX_LINE;
+                       bcs->hw.isar.cmd = ctrl;
+                       bcs->hw.isar.mod = para;
+                       bcs->hw.isar.newmod = 0;
+                       bcs->hw.isar.newcmd = 0;
+                       bcs->hw.isar.try_mod = 3;
+               } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
+                          (bcs->hw.isar.cmd == PCTRL_CMD_FRM) &&
+                          (bcs->hw.isar.mod == para)) {
+                       ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
+               } else {
+                       bcs->hw.isar.newmod = para;
+                       bcs->hw.isar.newcmd = PCTRL_CMD_FRM;
+                       nom = 0;
+                       ctrl = PCTRL_CMD_ESC;
+                       bcs->hw.isar.state = STFAX_ESCAPE;
+               }
+               break;
+       case ISDN_FAX_CLASS1_FRH:
+               test_and_set_bit(BC_FLG_FRH_WAIT, &bcs->Flag);
+               if (bcs->hw.isar.state == STFAX_READY) {
+                       p1 = para;
+                       ctrl = PCTRL_CMD_FRH;
+                       nom = 1;
+                       bcs->hw.isar.state = STFAX_LINE;
+                       bcs->hw.isar.cmd = ctrl;
+                       bcs->hw.isar.mod = para;
+                       bcs->hw.isar.newmod = 0;
+                       bcs->hw.isar.newcmd = 0;
+                       bcs->hw.isar.try_mod = 3;
+               } else if ((bcs->hw.isar.state == STFAX_ACTIV) &&
+                          (bcs->hw.isar.cmd == PCTRL_CMD_FRH) &&
+                          (bcs->hw.isar.mod == para)) {
+                       ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_CONNECT);
+               } else {
+                       bcs->hw.isar.newmod = para;
+                       bcs->hw.isar.newcmd = PCTRL_CMD_FRH;
+                       nom = 0;
+                       ctrl = PCTRL_CMD_ESC;
+                       bcs->hw.isar.state = STFAX_ESCAPE;
+               }
+               break;
+       case ISDN_FAXPUMP_HALT:
+               bcs->hw.isar.state = STFAX_NULL;
+               nom = 0;
+               ctrl = PCTRL_CMD_HALT;
+               break;
        }
        if (ctrl)
                sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, ctrl, nom, &p1);
@@ -1572,10 +1572,10 @@ isar_setup(struct IsdnCardState *cs)
 {
        u_char msg;
        int i;
-       
+
        /* Dpath 1, 2 */
        msg = 61;
-       for (i=0; i<2; i++) {
+       for (i = 0; i < 2; i++) {
                /* Buffer Config */
                sendmsg(cs, (i ? ISAR_HIS_DPS2 : ISAR_HIS_DPS1) |
                        ISAR_HIS_P12CFG, 4, 1, &msg);
@@ -1596,93 +1596,93 @@ isar_l2l1(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               if (bcs->cs->debug & L1_DEB_HSCX)
-                                       debugl1(bcs->cs, "DRQ set BC_FLG_BUSY");
-                               bcs->hw.isar.txcnt = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       if (bcs->cs->debug & L1_DEB_HSCX)
+                               debugl1(bcs->cs, "DRQ set BC_FLG_BUSY");
+                       bcs->hw.isar.txcnt = 0;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "isar_l2l1: this shouldn't happen\n");
+               } else {
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+                       if (bcs->cs->debug & L1_DEB_HSCX)
+                               debugl1(bcs->cs, "PUI set BC_FLG_BUSY");
+                       bcs->tx_skb = skb;
+                       bcs->hw.isar.txcnt = 0;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               bcs->hw.isar.conmsg[0] = 0;
+               if (test_bit(FLG_ORIG, &st->l2.flag))
+                       test_and_set_bit(BC_FLG_ORIG, &bcs->Flag);
+               else
+                       test_and_clear_bit(BC_FLG_ORIG, &bcs->Flag);
+               switch (st->l1.mode) {
+               case L1_MODE_TRANS:
+               case L1_MODE_HDLC:
+                       ret = modeisar(bcs, st->l1.mode, st->l1.bc);
                        spin_unlock_irqrestore(&bcs->cs->lock, flags);
+                       if (ret)
+                               l1_msg_b(st, PH_DEACTIVATE | REQUEST, arg);
+                       else
+                               l1_msg_b(st, PH_ACTIVATE | REQUEST, arg);
                        break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "isar_l2l1: this shouldn't happen\n");
-                       } else {
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               if (bcs->cs->debug & L1_DEB_HSCX)
-                                       debugl1(bcs->cs, "PUI set BC_FLG_BUSY");
-                               bcs->tx_skb = skb;
-                               bcs->hw.isar.txcnt = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
+               case L1_MODE_V32:
+               case L1_MODE_FAX:
+                       ret = modeisar(bcs, st->l1.mode, st->l1.bc);
                        spin_unlock_irqrestore(&bcs->cs->lock, flags);
+                       if (ret)
+                               l1_msg_b(st, PH_DEACTIVATE | REQUEST, arg);
                        break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       bcs->hw.isar.conmsg[0] = 0;
-                       if (test_bit(FLG_ORIG, &st->l2.flag))
-                               test_and_set_bit(BC_FLG_ORIG, &bcs->Flag);
-                       else
-                               test_and_clear_bit(BC_FLG_ORIG, &bcs->Flag);
-                       switch(st->l1.mode) {
-                               case L1_MODE_TRANS:
-                               case L1_MODE_HDLC:
-                                       ret = modeisar(bcs, st->l1.mode, st->l1.bc);
-                                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                                       if (ret)
-                                               l1_msg_b(st, PH_DEACTIVATE | REQUEST, arg);
-                                       else
-                                               l1_msg_b(st, PH_ACTIVATE | REQUEST, arg);
-                                       break;
-                               case L1_MODE_V32:
-                               case L1_MODE_FAX:
-                                       ret = modeisar(bcs, st->l1.mode, st->l1.bc);
-                                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                                       if (ret)
-                                               l1_msg_b(st, PH_DEACTIVATE | REQUEST, arg);
-                                       break;
-                               default:
-                                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                                       break;
-                       }
+               default:
+                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
                        break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
+               }
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               switch (st->l1.mode) {
+               case L1_MODE_TRANS:
+               case L1_MODE_HDLC:
+               case L1_MODE_V32:
                        break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       switch(st->l1.mode) {
-                               case L1_MODE_TRANS:
-                               case L1_MODE_HDLC:
-                               case L1_MODE_V32:
-                                       break;
-                               case L1_MODE_FAX:
-                                       isar_pump_cmd(bcs, ISDN_FAXPUMP_HALT, 0);
-                                       break;
-                       }
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       if (bcs->cs->debug & L1_DEB_HSCX)
-                               debugl1(bcs->cs, "PDAC clear BC_FLG_BUSY");
-                       modeisar(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               case L1_MODE_FAX:
+                       isar_pump_cmd(bcs, ISDN_FAXPUMP_HALT, 0);
                        break;
+               }
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               if (bcs->cs->debug & L1_DEB_HSCX)
+                       debugl1(bcs->cs, "PDAC clear BC_FLG_BUSY");
+               modeisar(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -1751,149 +1751,149 @@ isar_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) {
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "isar_auxcmd cmd/ch %x/%ld", ic->command, ic->arg);
        switch (ic->command) {
-               case (ISDN_CMD_FAXCMD):
-                       bcs = cs->channel[ic->arg].bcs;
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "isar_auxcmd cmd/subcmd %d/%d",
-                                       ic->parm.aux.cmd, ic->parm.aux.subcmd);
-                       switch(ic->parm.aux.cmd) {
-                               case ISDN_FAX_CLASS1_CTRL:
-                                       if (ic->parm.aux.subcmd == ETX)
-                                               test_and_set_bit(BC_FLG_DLEETX,
-                                                       &bcs->Flag);
-                                       break;
-                               case ISDN_FAX_CLASS1_FTS:
-                                       if (ic->parm.aux.subcmd == AT_QUERY) {
+       case (ISDN_CMD_FAXCMD):
+               bcs = cs->channel[ic->arg].bcs;
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "isar_auxcmd cmd/subcmd %d/%d",
+                               ic->parm.aux.cmd, ic->parm.aux.subcmd);
+               switch (ic->parm.aux.cmd) {
+               case ISDN_FAX_CLASS1_CTRL:
+                       if (ic->parm.aux.subcmd == ETX)
+                               test_and_set_bit(BC_FLG_DLEETX,
+                                                &bcs->Flag);
+                       break;
+               case ISDN_FAX_CLASS1_FTS:
+                       if (ic->parm.aux.subcmd == AT_QUERY) {
+                               ic->command = ISDN_STAT_FAXIND;
+                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_OK;
+                               cs->iif.statcallb(ic);
+                               return (0);
+                       } else if (ic->parm.aux.subcmd == AT_EQ_QUERY) {
+                               strcpy(ic->parm.aux.para, "0-255");
+                               ic->command = ISDN_STAT_FAXIND;
+                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_QUERY;
+                               cs->iif.statcallb(ic);
+                               return (0);
+                       } else if (ic->parm.aux.subcmd == AT_EQ_VALUE) {
+                               if (cs->debug & L1_DEB_HSCX)
+                                       debugl1(cs, "isar_auxcmd %s=%d",
+                                               FC1_CMD[ic->parm.aux.cmd], ic->parm.aux.para[0]);
+                               if (bcs->hw.isar.state == STFAX_READY) {
+                                       if (!ic->parm.aux.para[0]) {
                                                ic->command = ISDN_STAT_FAXIND;
                                                ic->parm.aux.cmd = ISDN_FAX_CLASS1_OK;
                                                cs->iif.statcallb(ic);
-                                               return(0);
-                                       } else if (ic->parm.aux.subcmd == AT_EQ_QUERY) {
-                                               strcpy(ic->parm.aux.para, "0-255");
-                                               ic->command = ISDN_STAT_FAXIND;
-                                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_QUERY;
-                                               cs->iif.statcallb(ic);
-                                               return(0);
-                                       } else if (ic->parm.aux.subcmd == AT_EQ_VALUE) {
-                                               if (cs->debug & L1_DEB_HSCX)
-                                                       debugl1(cs, "isar_auxcmd %s=%d",
-                                                               FC1_CMD[ic->parm.aux.cmd], ic->parm.aux.para[0]);
-                                               if (bcs->hw.isar.state == STFAX_READY) {
-                                                       if (! ic->parm.aux.para[0]) {
-                                                               ic->command = ISDN_STAT_FAXIND;
-                                                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_OK;
-                                                               cs->iif.statcallb(ic);
-                                                               return(0);
-                                                       }
-                                                       if (! test_and_set_bit(BC_FLG_FTI_RUN, &bcs->Flag)) {
-                                                               /* n*10 ms */
-                                                               bcs->hw.isar.ftimer.expires =
-                                                                       jiffies + ((ic->parm.aux.para[0] * 10 * HZ)/1000);
-                                                               test_and_set_bit(BC_FLG_FTI_FTS, &bcs->Flag);
-                                                               add_timer(&bcs->hw.isar.ftimer);
-                                                               return(0);
-                                                       } else {
-                                                               if (cs->debug)
-                                                                       debugl1(cs, "isar FTS=%d and FTI busy",
-                                                                               ic->parm.aux.para[0]);
-                                                       }
-                                               } else {
-                                                       if (cs->debug)
-                                                               debugl1(cs, "isar FTS=%d and isar.state not ready(%x)",
-                                                                       ic->parm.aux.para[0],bcs->hw.isar.state);
-                                               }
-                                               ic->command = ISDN_STAT_FAXIND;
-                                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_ERROR;
-                                               cs->iif.statcallb(ic);
+                                               return (0);
                                        }
-                                       break;
-                               case ISDN_FAX_CLASS1_FRM:
-                               case ISDN_FAX_CLASS1_FRH:
-                               case ISDN_FAX_CLASS1_FTM:
-                               case ISDN_FAX_CLASS1_FTH:
-                                       if (ic->parm.aux.subcmd == AT_QUERY) {
-                                               sprintf(ic->parm.aux.para,
-                                                       "%d", bcs->hw.isar.mod);
-                                               ic->command = ISDN_STAT_FAXIND;
-                                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_QUERY;
-                                               cs->iif.statcallb(ic);
-                                               return(0);
-                                       } else if (ic->parm.aux.subcmd == AT_EQ_QUERY) {
-                                               char *p = ic->parm.aux.para;
-                                               for(i=0;i<FAXMODCNT;i++)
-                                                       if ((1<<i) & modmask)
-                                                               p += sprintf(p, "%d,", faxmodulation[i]);
-                                               p--;
-                                               *p=0;
-                                               ic->command = ISDN_STAT_FAXIND;
-                                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_QUERY;
-                                               cs->iif.statcallb(ic);
-                                               return(0);
-                                       } else if (ic->parm.aux.subcmd == AT_EQ_VALUE) {
-                                               if (cs->debug & L1_DEB_HSCX)
-                                                       debugl1(cs, "isar_auxcmd %s=%d",
-                                                               FC1_CMD[ic->parm.aux.cmd], ic->parm.aux.para[0]);
-                                               for(i=0;i<FAXMODCNT;i++)
-                                                       if (faxmodulation[i]==ic->parm.aux.para[0])
-                                                               break;
-                                               if ((i < FAXMODCNT) && ((1<<i) & modmask) && 
-                                                       test_bit(BC_FLG_INIT, &bcs->Flag)) {
-                                                       isar_pump_cmd(bcs,
-                                                               ic->parm.aux.cmd,
+                                       if (!test_and_set_bit(BC_FLG_FTI_RUN, &bcs->Flag)) {
+                                               /* n*10 ms */
+                                               bcs->hw.isar.ftimer.expires =
+                                                       jiffies + ((ic->parm.aux.para[0] * 10 * HZ) / 1000);
+                                               test_and_set_bit(BC_FLG_FTI_FTS, &bcs->Flag);
+                                               add_timer(&bcs->hw.isar.ftimer);
+                                               return (0);
+                                       } else {
+                                               if (cs->debug)
+                                                       debugl1(cs, "isar FTS=%d and FTI busy",
                                                                ic->parm.aux.para[0]);
-                                                       return(0);
-                                               }
                                        }
-                                       /* wrong modulation or not activ */
-                                       /* fall through */
-                               default:
-                                       ic->command = ISDN_STAT_FAXIND;
-                                       ic->parm.aux.cmd = ISDN_FAX_CLASS1_ERROR;
-                                       cs->iif.statcallb(ic);
+                               } else {
+                                       if (cs->debug)
+                                               debugl1(cs, "isar FTS=%d and isar.state not ready(%x)",
+                                                       ic->parm.aux.para[0], bcs->hw.isar.state);
+                               }
+                               ic->command = ISDN_STAT_FAXIND;
+                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_ERROR;
+                               cs->iif.statcallb(ic);
                        }
                        break;
-               case (ISDN_CMD_IOCTL):
-                       switch (ic->arg) {
-                               case 9: /* load firmware */
-                                       features = ISDN_FEATURE_L2_MODEM |
-                                               ISDN_FEATURE_L2_FAX |
-                                               ISDN_FEATURE_L3_FCLASS1;
-                                       memcpy(&adr, ic->parm.num, sizeof(ulong));
-                                       if (isar_load_firmware(cs, (u_char __user *)adr))
-                                               return(1);
-                                       else 
-                                               ll_run(cs, features);
-                                       break;
-                               case 20:
-                                       features = *(unsigned int *) ic->parm.num;
-                                       printk(KERN_DEBUG "HiSax: max modulation old(%04x) new(%04x)\n",
-                                               modmask, features);
-                                       modmask = features;
-                                       break;
-                               case 21:
-                                       features = *(unsigned int *) ic->parm.num;
-                                       printk(KERN_DEBUG "HiSax: FRM extra delay old(%d) new(%d) ms\n",
-                                               frm_extra_delay, features);
-                                       if (features >= 0)
-                                               frm_extra_delay = features;
-                                       break;
-                               case 22:
-                                       features = *(unsigned int *) ic->parm.num;
-                                       printk(KERN_DEBUG "HiSax: TOA old(%d) new(%d) db\n",
-                                               para_TOA, features);
-                                       if (features >= 0 && features < 32)
-                                               para_TOA = features;
-                                       break;
-                               default:
-                                       printk(KERN_DEBUG "HiSax: invalid ioctl %d\n",
-                                              (int) ic->arg);
-                                       return(-EINVAL);
+               case ISDN_FAX_CLASS1_FRM:
+               case ISDN_FAX_CLASS1_FRH:
+               case ISDN_FAX_CLASS1_FTM:
+               case ISDN_FAX_CLASS1_FTH:
+                       if (ic->parm.aux.subcmd == AT_QUERY) {
+                               sprintf(ic->parm.aux.para,
+                                       "%d", bcs->hw.isar.mod);
+                               ic->command = ISDN_STAT_FAXIND;
+                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_QUERY;
+                               cs->iif.statcallb(ic);
+                               return (0);
+                       } else if (ic->parm.aux.subcmd == AT_EQ_QUERY) {
+                               char *p = ic->parm.aux.para;
+                               for (i = 0; i < FAXMODCNT; i++)
+                                       if ((1 << i) & modmask)
+                                               p += sprintf(p, "%d,", faxmodulation[i]);
+                               p--;
+                               *p = 0;
+                               ic->command = ISDN_STAT_FAXIND;
+                               ic->parm.aux.cmd = ISDN_FAX_CLASS1_QUERY;
+                               cs->iif.statcallb(ic);
+                               return (0);
+                       } else if (ic->parm.aux.subcmd == AT_EQ_VALUE) {
+                               if (cs->debug & L1_DEB_HSCX)
+                                       debugl1(cs, "isar_auxcmd %s=%d",
+                                               FC1_CMD[ic->parm.aux.cmd], ic->parm.aux.para[0]);
+                               for (i = 0; i < FAXMODCNT; i++)
+                                       if (faxmodulation[i] == ic->parm.aux.para[0])
+                                               break;
+                               if ((i < FAXMODCNT) && ((1 << i) & modmask) &&
+                                   test_bit(BC_FLG_INIT, &bcs->Flag)) {
+                                       isar_pump_cmd(bcs,
+                                                     ic->parm.aux.cmd,
+                                                     ic->parm.aux.para[0]);
+                                       return (0);
+                               }
                        }
+                       /* wrong modulation or not activ */
+                       /* fall through */
+               default:
+                       ic->command = ISDN_STAT_FAXIND;
+                       ic->parm.aux.cmd = ISDN_FAX_CLASS1_ERROR;
+                       cs->iif.statcallb(ic);
+               }
+               break;
+       case (ISDN_CMD_IOCTL):
+               switch (ic->arg) {
+               case 9: /* load firmware */
+                       features = ISDN_FEATURE_L2_MODEM |
+                               ISDN_FEATURE_L2_FAX |
+                               ISDN_FEATURE_L3_FCLASS1;
+                       memcpy(&adr, ic->parm.num, sizeof(ulong));
+                       if (isar_load_firmware(cs, (u_char __user *)adr))
+                               return (1);
+                       else
+                               ll_run(cs, features);
+                       break;
+               case 20:
+                       features = *(unsigned int *) ic->parm.num;
+                       printk(KERN_DEBUG "HiSax: max modulation old(%04x) new(%04x)\n",
+                              modmask, features);
+                       modmask = features;
+                       break;
+               case 21:
+                       features = *(unsigned int *) ic->parm.num;
+                       printk(KERN_DEBUG "HiSax: FRM extra delay old(%d) new(%d) ms\n",
+                              frm_extra_delay, features);
+                       if (features >= 0)
+                               frm_extra_delay = features;
+                       break;
+               case 22:
+                       features = *(unsigned int *) ic->parm.num;
+                       printk(KERN_DEBUG "HiSax: TOA old(%d) new(%d) db\n",
+                              para_TOA, features);
+                       if (features >= 0 && features < 32)
+                               para_TOA = features;
                        break;
                default:
-                       return(-EINVAL);
+                       printk(KERN_DEBUG "HiSax: invalid ioctl %d\n",
+                              (int) ic->arg);
+                       return (-EINVAL);
+               }
+               break;
+       default:
+               return (-EINVAL);
        }
-       return(0);
+       return (0);
 }
 
 void initisar(struct IsdnCardState *cs)
index bf76765..0f4d101 100644 (file)
@@ -4,12 +4,12 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
+
 #define ISAR_IRQMSK    0x04
 #define ISAR_IRQSTA    0x04
 #define ISAR_IRQBIT    0x75
@@ -21,7 +21,7 @@
 #define ISAR_HIA       0x50
 #define ISAR_MBOX      0x4c
 #define ISAR_WADR      0x4a
-#define ISAR_RADR      0x48 
+#define ISAR_RADR      0x48
 
 #define ISAR_HIS_VNR           0x14
 #define ISAR_HIS_DKEY          0x02
@@ -32,9 +32,9 @@
 #define ISAR_HIS_TIMERIRQ      0x25
 #define ISAR_HIS_P0CFG         0x3c
 #define ISAR_HIS_P12CFG                0x24
-#define ISAR_HIS_SARTCFG       0x25    
-#define ISAR_HIS_PUMPCFG       0x26    
-#define ISAR_HIS_PUMPCTRL      0x2a    
+#define ISAR_HIS_SARTCFG       0x25
+#define ISAR_HIS_PUMPCFG       0x26
+#define ISAR_HIS_PUMPCTRL      0x2a
 #define ISAR_HIS_IOM2CFG       0x27
 #define ISAR_HIS_IOM2REQ       0x07
 #define ISAR_HIS_IOM2CTRL      0x2b
@@ -43,7 +43,7 @@
 #define ISAR_HIS_SDATA         0x20
 #define ISAR_HIS_DPS1          0x40
 #define ISAR_HIS_DPS2          0x80
-#define SET_DPS(x)             ((x<<6) & 0xc0)
+#define SET_DPS(x)             ((x << 6) & 0xc0)
 
 #define ISAR_CMD_TIMERIRQ_OFF  0x20
 #define ISAR_CMD_TIMERIRQ_ON   0x21
index d5eeacf..8000957 100644 (file)
@@ -5,7 +5,7 @@
  * Author       Karsten Keil
  *              based on the teles driver from Jan den Ouden
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -40,7 +40,7 @@ enum {
        ST_L1_F8,
 };
 
-#define L1S_STATE_COUNT (ST_L1_F8+1)
+#define L1S_STATE_COUNT (ST_L1_F8 + 1)
 
 static char *strL1SState[] =
 {
@@ -65,7 +65,7 @@ enum {
        ST_L1_TRANS,
 };
 
-#define L1U_STATE_COUNT (ST_L1_TRANS+1)
+#define L1U_STATE_COUNT (ST_L1_TRANS + 1)
 
 static char *strL1UState[] =
 {
@@ -83,7 +83,7 @@ enum {
        ST_L1_ACTIV,
 };
 
-#define L1B_STATE_COUNT (ST_L1_ACTIV+1)
+#define L1B_STATE_COUNT (ST_L1_ACTIV + 1)
 
 static char *strL1BState[] =
 {
@@ -100,7 +100,7 @@ enum {
        EV_DEACT_CNF,
        EV_DEACT_IND,
        EV_POWER_UP,
-       EV_RSYNC_IND, 
+       EV_RSYNC_IND,
        EV_INFO2_IND,
        EV_INFO4_IND,
        EV_TIMER_DEACT,
@@ -118,7 +118,7 @@ static char *strL1Event[] =
        "EV_DEACT_CNF",
        "EV_DEACT_IND",
        "EV_POWER_UP",
-       "EV_RSYNC_IND", 
+       "EV_RSYNC_IND",
        "EV_INFO2_IND",
        "EV_INFO4_IND",
        "EV_TIMER_DEACT",
@@ -131,7 +131,7 @@ debugl1(struct IsdnCardState *cs, char *fmt, ...)
 {
        va_list args;
        char tmp[8];
-       
+
        va_start(args, fmt);
        sprintf(tmp, "Card%d ", cs->cardnr + 1);
        VHiSax_putstatus(cs, tmp, fmt, args);
@@ -145,7 +145,7 @@ l1m_debug(struct FsmInst *fi, char *fmt, ...)
        struct PStack *st = fi->userdata;
        struct IsdnCardState *cs = st->l1.hardware;
        char tmp[8];
-       
+
        va_start(args, fmt);
        sprintf(tmp, "Card%d ", cs->cardnr + 1);
        VHiSax_putstatus(cs, tmp, fmt, args);
@@ -209,19 +209,19 @@ DChannel_proc_rcv(struct IsdnCardState *cs)
 
        if (stptr)
                if (test_bit(FLG_L1_ACTTIMER, &stptr->l1.Flags))
-                       FsmEvent(&stptr->l1.l1m, EV_TIMER_ACT, NULL);   
+                       FsmEvent(&stptr->l1.l1m, EV_TIMER_ACT, NULL);
        while ((skb = skb_dequeue(&cs->rq))) {
 #ifdef L2FRAME_DEBUG           /* psa */
                if (cs->debug & L1_DEB_LAPD)
                        Logl2Frame(cs, skb, "PH_DATA", 1);
 #endif
                stptr = cs->stlist;
-               if (skb->len<3) {
-                       debugl1(cs, "D-channel frame too short(%d)",skb->len);
+               if (skb->len < 3) {
+                       debugl1(cs, "D-channel frame too short(%d)", skb->len);
                        dev_kfree_skb(skb);
                        return;
                }
-               if ((skb->data[0] & 1) || !(skb->data[1] &1)) {
+               if ((skb->data[0] & 1) || !(skb->data[1] & 1)) {
                        debugl1(cs, "D-channel frame wrong EA0/EA1");
                        dev_kfree_skb(skb);
                        return;
@@ -378,60 +378,60 @@ static char *
 l2cmd(u_char cmd)
 {
        switch (cmd & ~0x10) {
-               case 1:
-                       return "RR";
-               case 5:
-                       return "RNR";
-               case 9:
-                       return "REJ";
-               case 0x6f:
-                       return "SABME";
-               case 0x0f:
-                       return "DM";
-               case 3:
-                       return "UI";
-               case 0x43:
-                       return "DISC";
-               case 0x63:
-                       return "UA";
-               case 0x87:
-                       return "FRMR";
-               case 0xaf:
-                       return "XID";
-               default:
-                       if (!(cmd & 1))
-                               return "I";
-                       else
-                               return "invalid command";
+       case 1:
+               return "RR";
+       case 5:
+               return "RNR";
+       case 9:
+               return "REJ";
+       case 0x6f:
+               return "SABME";
+       case 0x0f:
+               return "DM";
+       case 3:
+               return "UI";
+       case 0x43:
+               return "DISC";
+       case 0x63:
+               return "UA";
+       case 0x87:
+               return "FRMR";
+       case 0xaf:
+               return "XID";
+       default:
+               if (!(cmd & 1))
+                       return "I";
+               else
+                       return "invalid command";
        }
 }
 
 static char tmpdeb[32];
 
 static char *
-l2frames(u_char * ptr)
+l2frames(u_char *ptr)
 {
        switch (ptr[2] & ~0x10) {
-               case 1:
-               case 5:
-               case 9:
-                       sprintf(tmpdeb, "%s[%d](nr %d)", l2cmd(ptr[2]), ptr[3] & 1, ptr[3] >> 1);
-                       break;
-               case 0x6f:
-               case 0x0f:
-               case 3:
-               case 0x43:
-               case 0x63:
-               case 0x87:
-               case 0xaf:
-                       sprintf(tmpdeb, "%s[%d]", l2cmd(ptr[2]), (ptr[2] & 0x10) >> 4);
+       case 1:
+       case 5:
+       case 9:
+               sprintf(tmpdeb, "%s[%d](nr %d)", l2cmd(ptr[2]), ptr[3] & 1, ptr[3] >> 1);
+               break;
+       case 0x6f:
+       case 0x0f:
+       case 3:
+       case 0x43:
+       case 0x63:
+       case 0x87:
+       case 0xaf:
+               sprintf(tmpdeb, "%s[%d]", l2cmd(ptr[2]), (ptr[2] & 0x10) >> 4);
+               break;
+       default:
+               if (!(ptr[2] & 1)) {
+                       sprintf(tmpdeb, "I[%d](ns %d, nr %d)", ptr[3] & 1, ptr[2] >> 1, ptr[3] >> 1);
                        break;
-               default:
-                       if (!(ptr[2] & 1)) {
-                               sprintf(tmpdeb, "I[%d](ns %d, nr %d)", ptr[3] & 1, ptr[2] >> 1, ptr[3] >> 1);
-                               break;
-                       } else
-                               return "invalid command";
+               } else
+                       return "invalid command";
        }
 
 
@@ -547,24 +547,24 @@ l1_timer3(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
 
-       test_and_clear_bit(FLG_L1_T3RUN, &st->l1.Flags);        
+       test_and_clear_bit(FLG_L1_T3RUN, &st->l1.Flags);
        if (test_and_clear_bit(FLG_L1_ACTIVATING, &st->l1.Flags))
                L1deactivated(st->l1.hardware);
 
 #ifdef HISAX_UINTERFACE
        if (!test_bit(FLG_L1_UINT, &st->l1.Flags))
 #endif
-       if (st->l1.l1m.state != ST_L1_F6) {
-               FsmChangeState(fi, ST_L1_F3);
-               st->l1.l1hw(st, HW_ENABLE | REQUEST, NULL);
-       }
+               if (st->l1.l1m.state != ST_L1_F6) {
+                       FsmChangeState(fi, ST_L1_F3);
+                       st->l1.l1hw(st, HW_ENABLE | REQUEST, NULL);
+               }
 }
 
 static void
 l1_timer_act(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
-       
+
        test_and_clear_bit(FLG_L1_ACTTIMER, &st->l1.Flags);
        test_and_set_bit(FLG_L1_ACTIVATED, &st->l1.Flags);
        L1activated(st->l1.hardware);
@@ -574,7 +574,7 @@ static void
 l1_timer_deact(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
-       
+
        test_and_clear_bit(FLG_L1_DEACTTIMER, &st->l1.Flags);
        test_and_clear_bit(FLG_L1_ACTIVATED, &st->l1.Flags);
        L1deactivated(st->l1.hardware);
@@ -585,7 +585,7 @@ static void
 l1_activate_s(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
-                
+
        st->l1.l1hw(st, HW_RESET | REQUEST, NULL);
 }
 
@@ -679,7 +679,7 @@ static void
 l1_activate_u(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
-                
+
        st->l1.l1hw(st, HW_INFO1 | REQUEST, NULL);
 }
 
@@ -751,7 +751,7 @@ static struct FsmNode L1BFnList[] __initdata =
        {ST_L1_WAIT_DEACT, EV_TIMER_DEACT, l1b_timer_deact},
 };
 
-int __init 
+int __init
 Isdnl1New(void)
 {
        int retval;
@@ -803,35 +803,35 @@ dch_l2l1(struct PStack *st, int pr, void *arg)
        struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-               case (PH_PULL | REQUEST):
-               case (PH_PULL |INDICATION):
-                       st->l1.l1hw(st, pr, arg);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       if (cs->debug)
-                               debugl1(cs, "PH_ACTIVATE_REQ %s",
-                                       st->l1.l1m.fsm->strState[st->l1.l1m.state]);
-                       if (test_bit(FLG_L1_ACTIVATED, &st->l1.Flags))
-                               st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL);
-                       else {
-                               test_and_set_bit(FLG_L1_ACTIVATING, &st->l1.Flags);
-                               FsmEvent(&st->l1.l1m, EV_PH_ACTIVATE, arg);
-                       }
-                       break;
-               case (PH_TESTLOOP | REQUEST):
-                       if (1 & (long) arg)
-                               debugl1(cs, "PH_TEST_LOOP B1");
-                       if (2 & (long) arg)
-                               debugl1(cs, "PH_TEST_LOOP B2");
-                       if (!(3 & (long) arg))
-                               debugl1(cs, "PH_TEST_LOOP DISABLED");
-                       st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg);
-                       break;
-               default:
-                       if (cs->debug)
-                               debugl1(cs, "dch_l2l1 msg %04X unhandled", pr);
-                       break;
+       case (PH_DATA | REQUEST):
+       case (PH_PULL | REQUEST):
+       case (PH_PULL | INDICATION):
+               st->l1.l1hw(st, pr, arg);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               if (cs->debug)
+                       debugl1(cs, "PH_ACTIVATE_REQ %s",
+                               st->l1.l1m.fsm->strState[st->l1.l1m.state]);
+               if (test_bit(FLG_L1_ACTIVATED, &st->l1.Flags))
+                       st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL);
+               else {
+                       test_and_set_bit(FLG_L1_ACTIVATING, &st->l1.Flags);
+                       FsmEvent(&st->l1.l1m, EV_PH_ACTIVATE, arg);
+               }
+               break;
+       case (PH_TESTLOOP | REQUEST):
+               if (1 & (long) arg)
+                       debugl1(cs, "PH_TEST_LOOP B1");
+               if (2 & (long) arg)
+                       debugl1(cs, "PH_TEST_LOOP B2");
+               if (!(3 & (long) arg))
+                       debugl1(cs, "PH_TEST_LOOP DISABLED");
+               st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg);
+               break;
+       default:
+               if (cs->debug)
+                       debugl1(cs, "dch_l2l1 msg %04X unhandled", pr);
+               break;
        }
 }
 
@@ -840,35 +840,35 @@ l1_msg(struct IsdnCardState *cs, int pr, void *arg) {
        struct PStack *st;
 
        st = cs->stlist;
-       
+
        while (st) {
-               switch(pr) {
-                       case (HW_RESET | INDICATION):
-                               FsmEvent(&st->l1.l1m, EV_RESET_IND, arg);
-                               break;
-                       case (HW_DEACTIVATE | CONFIRM):
-                               FsmEvent(&st->l1.l1m, EV_DEACT_CNF, arg);
-                               break;
-                       case (HW_DEACTIVATE | INDICATION):
-                               FsmEvent(&st->l1.l1m, EV_DEACT_IND, arg);
-                               break;
-                       case (HW_POWERUP | CONFIRM):
-                               FsmEvent(&st->l1.l1m, EV_POWER_UP, arg);
-                               break;
-                       case (HW_RSYNC | INDICATION):
-                               FsmEvent(&st->l1.l1m, EV_RSYNC_IND, arg);
-                               break;
-                       case (HW_INFO2 | INDICATION):
-                               FsmEvent(&st->l1.l1m, EV_INFO2_IND, arg);
-                               break;
-                       case (HW_INFO4_P8 | INDICATION):
-                       case (HW_INFO4_P10 | INDICATION):
-                               FsmEvent(&st->l1.l1m, EV_INFO4_IND, arg);
-                               break;
-                       default:
-                               if (cs->debug)
-                                       debugl1(cs, "l1msg %04X unhandled", pr);
-                               break;
+               switch (pr) {
+               case (HW_RESET | INDICATION):
+                       FsmEvent(&st->l1.l1m, EV_RESET_IND, arg);
+                       break;
+               case (HW_DEACTIVATE | CONFIRM):
+                       FsmEvent(&st->l1.l1m, EV_DEACT_CNF, arg);
+                       break;
+               case (HW_DEACTIVATE | INDICATION):
+                       FsmEvent(&st->l1.l1m, EV_DEACT_IND, arg);
+                       break;
+               case (HW_POWERUP | CONFIRM):
+                       FsmEvent(&st->l1.l1m, EV_POWER_UP, arg);
+                       break;
+               case (HW_RSYNC | INDICATION):
+                       FsmEvent(&st->l1.l1m, EV_RSYNC_IND, arg);
+                       break;
+               case (HW_INFO2 | INDICATION):
+                       FsmEvent(&st->l1.l1m, EV_INFO2_IND, arg);
+                       break;
+               case (HW_INFO4_P8 | INDICATION):
+               case (HW_INFO4_P10 | INDICATION):
+                       FsmEvent(&st->l1.l1m, EV_INFO4_IND, arg);
+                       break;
+               default:
+                       if (cs->debug)
+                               debugl1(cs, "l1msg %04X unhandled", pr);
+                       break;
                }
                st = st->next;
        }
@@ -876,13 +876,13 @@ l1_msg(struct IsdnCardState *cs, int pr, void *arg) {
 
 void
 l1_msg_b(struct PStack *st, int pr, void *arg) {
-       switch(pr) {
-               case (PH_ACTIVATE | REQUEST):
-                       FsmEvent(&st->l1.l1m, EV_PH_ACTIVATE, NULL);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       FsmEvent(&st->l1.l1m, EV_PH_DEACTIVATE, NULL);
-                       break;
+       switch (pr) {
+       case (PH_ACTIVATE | REQUEST):
+               FsmEvent(&st->l1.l1m, EV_PH_ACTIVATE, NULL);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               FsmEvent(&st->l1.l1m, EV_PH_DEACTIVATE, NULL);
+               break;
        }
 }
 
index cfff0c4..18accb0 100644 (file)
@@ -3,7 +3,7 @@
  * Author       Karsten Keil
  *              based on the teles driver from Jan den Ouden
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -37,7 +37,7 @@ enum {
        ST_L2_8,
 };
 
-#define L2_STATE_COUNT (ST_L2_8+1)
+#define L2_STATE_COUNT (ST_L2_8 + 1)
 
 static char *strL2State[] =
 {
@@ -76,7 +76,7 @@ enum {
        EV_L2_FRAME_ERROR,
 };
 
-#define L2_EVENT_COUNT (EV_L2_FRAME_ERROR+1)
+#define L2_EVENT_COUNT (EV_L2_FRAME_ERROR + 1)
 
 static char *strL2Event[] =
 {
@@ -155,7 +155,7 @@ ReleaseWin(struct Layer2 *l2)
 {
        int cnt;
 
-       if((cnt = freewin1(l2)))
+       if ((cnt = freewin1(l2)))
                printk(KERN_WARNING "isdl2 freed %d skbuffs in release\n", cnt);
 }
 
@@ -164,7 +164,7 @@ cansend(struct PStack *st)
 {
        unsigned int p1;
 
-       if(test_bit(FLG_MOD128, &st->l2.flag))
+       if (test_bit(FLG_MOD128, &st->l2.flag))
                p1 = (st->l2.vs - st->l2.va) % 128;
        else
                p1 = (st->l2.vs - st->l2.va) % 8;
@@ -194,7 +194,7 @@ l2addrsize(struct Layer2 *l2)
 }
 
 static int
-sethdraddr(struct Layer2 *l2, u_char * header, int rsp)
+sethdraddr(struct Layer2 *l2, u_char *header, int rsp)
 {
        u_char *ptr = header;
        int crbit = rsp;
@@ -226,41 +226,41 @@ enqueue_super(struct PStack *st,
 #define enqueue_ui(a, b) enqueue_super(a, b)
 
 static inline int
-IsUI(u_char * data)
+IsUI(u_char *data)
 {
        return ((data[0] & 0xef) == UI);
 }
 
 static inline int
-IsUA(u_char * data)
+IsUA(u_char *data)
 {
        return ((data[0] & 0xef) == UA);
 }
 
 static inline int
-IsDM(u_char * data)
+IsDM(u_char *data)
 {
        return ((data[0] & 0xef) == DM);
 }
 
 static inline int
-IsDISC(u_char * data)
+IsDISC(u_char *data)
 {
        return ((data[0] & 0xef) == DISC);
 }
 
 static inline int
-IsSFrame(u_char * data, struct PStack *st)
+IsSFrame(u_char *data, struct PStack *st)
 {
        register u_char d = *data;
-       
+
        if (!test_bit(FLG_MOD128, &st->l2.flag))
                d &= 0xf;
-       return(((d & 0xf3) == 1) && ((d & 0x0c) != 0x0c));
+       return (((d & 0xf3) == 1) && ((d & 0x0c) != 0x0c));
 }
 
 static inline int
-IsSABME(u_char * data, struct PStack *st)
+IsSABME(u_char *data, struct PStack *st)
 {
        u_char d = data[0] & ~0x10;
 
@@ -268,19 +268,19 @@ IsSABME(u_char * data, struct PStack *st)
 }
 
 static inline int
-IsREJ(u_char * data, struct PStack *st)
+IsREJ(u_char *data, struct PStack *st)
 {
        return (test_bit(FLG_MOD128, &st->l2.flag) ? data[0] == REJ : (data[0] & 0xf) == REJ);
 }
 
 static inline int
-IsFRMR(u_char * data)
+IsFRMR(u_char *data)
 {
        return ((data[0] & 0xef) == FRMR);
 }
 
 static inline int
-IsRNR(u_char * data, struct PStack *st)
+IsRNR(u_char *data, struct PStack *st)
 {
        return (test_bit(FLG_MOD128, &st->l2.flag) ? data[0] == RNR : (data[0] & 0xf) == RNR);
 }
@@ -368,14 +368,14 @@ FRMR_error(struct PStack *st, struct sk_buff *skb)
                        return 'N';
                else
                        l2m_debug(&st->l2.l2m, "FRMR information %2x %2x %2x %2x %2x",
-                               datap[0], datap[1], datap[2],
-                               datap[3], datap[4]);
+                                 datap[0], datap[1], datap[2],
+                                 datap[3], datap[4]);
        } else {
                if (skb->len < headers + 3)
                        return 'N';
                else
                        l2m_debug(&st->l2.l2m, "FRMR information %2x %2x %2x",
-                               datap[0], datap[1], datap[2]);
+                                 datap[0], datap[1], datap[2]);
        }
 
        return 0;
@@ -384,9 +384,9 @@ FRMR_error(struct PStack *st, struct sk_buff *skb)
 static unsigned int
 legalnr(struct PStack *st, unsigned int nr)
 {
-        struct Layer2 *l2 = &st->l2;
+       struct Layer2 *l2 = &st->l2;
 
-       if(test_bit(FLG_MOD128, &l2->flag))
+       if (test_bit(FLG_MOD128, &l2->flag))
                return ((nr - l2->va) % 128) <= ((l2->vs - l2->va) % 128);
        else
                return ((nr - l2->va) % 8) <= ((l2->vs - l2->va) % 8);
@@ -402,7 +402,7 @@ setva(struct PStack *st, unsigned int nr)
        spin_lock_irqsave(&l2->lock, flags);
        while (l2->va != nr) {
                (l2->va)++;
-               if(test_bit(FLG_MOD128, &l2->flag))
+               if (test_bit(FLG_MOD128, &l2->flag))
                        l2->va %= 128;
                else
                        l2->va %= 8;
@@ -413,7 +413,7 @@ setva(struct PStack *st, unsigned int nr)
                l2->windowar[l2->sow] = NULL;
                l2->sow = (l2->sow + 1) % l2->window;
                spin_unlock_irqrestore(&l2->lock, flags);
-               if (test_bit(FLG_LLI_L2WAKEUP, &st->lli.flag) && (len >=0))
+               if (test_bit(FLG_LLI_L2WAKEUP, &st->lli.flag) && (len >= 0))
                        lli_writewakeup(st, len);
                spin_lock_irqsave(&l2->lock, flags);
        }
@@ -438,7 +438,7 @@ send_uframe(struct PStack *st, u_char cmd, u_char cr)
 }
 
 static inline u_char
-get_PollFlag(struct PStack * st, struct sk_buff * skb)
+get_PollFlag(struct PStack *st, struct sk_buff *skb)
 {
        return (skb->data[l2addrsize(&(st->l2))] & 0x10);
 }
@@ -470,29 +470,29 @@ restart_t200(struct PStack *st, int i)
 static inline void
 stop_t200(struct PStack *st, int i)
 {
-       if(test_and_clear_bit(FLG_T200_RUN, &st->l2.flag))
+       if (test_and_clear_bit(FLG_T200_RUN, &st->l2.flag))
                FsmDelTimer(&st->l2.t200, i);
 }
 
 static inline void
 st5_dl_release_l2l3(struct PStack *st)
 {
-               int pr;
+       int pr;
 
-               if(test_and_clear_bit(FLG_PEND_REL, &st->l2.flag))
-                       pr = DL_RELEASE | CONFIRM;
-               else
-                       pr = DL_RELEASE | INDICATION;
+       if (test_and_clear_bit(FLG_PEND_REL, &st->l2.flag))
+               pr = DL_RELEASE | CONFIRM;
+       else
+               pr = DL_RELEASE | INDICATION;
 
-               st->l2.l2l3(st, pr, NULL);
+       st->l2.l2l3(st, pr, NULL);
 }
 
 static inline void
 lapb_dl_release_l2l3(struct PStack *st, int f)
 {
-               if (test_bit(FLG_LAPB, &st->l2.flag))
-                       st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL);
-               st->l2.l2l3(st, DL_RELEASE | f, NULL);
+       if (test_bit(FLG_LAPB, &st->l2.flag))
+               st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL);
+       st->l2.l2l3(st, DL_RELEASE | f, NULL);
 }
 
 static void
@@ -557,7 +557,7 @@ l2_st8_mdl_error_dm(struct FsmInst *fi, int event, void *arg)
 static void
 l2_go_st3(struct FsmInst *fi, int event, void *arg)
 {
-       FsmChangeState(fi, ST_L2_3); 
+       FsmChangeState(fi, ST_L2_3);
 }
 
 static void
@@ -565,7 +565,7 @@ l2_mdl_assign(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
 
-       FsmChangeState(fi, ST_L2_3); 
+       FsmChangeState(fi, ST_L2_3);
        st->l2.l2tei(st, MDL_ASSIGN | INDICATION, NULL);
 }
 
@@ -755,7 +755,7 @@ l2_restart_multi(struct FsmInst *fi, int event, void *arg)
        if (est)
                st->l2.l2l3(st, DL_ESTABLISH | INDICATION, NULL);
 
-       if ((ST_L2_7==state) || (ST_L2_8 == state))
+       if ((ST_L2_7 == state) || (ST_L2_8 == state))
                if (!skb_queue_empty(&st->l2.i_queue) && cansend(st))
                        st->l2.l2l1(st, PH_PULL | REQUEST, NULL);
 }
@@ -782,7 +782,7 @@ l2_connected(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
        struct sk_buff *skb = arg;
-       int pr=-1;
+       int pr = -1;
 
        if (!get_PollFlag(st, skb)) {
                l2_mdl_error_ua(fi, event, arg);
@@ -853,7 +853,7 @@ l2_st5_dm_release(struct FsmInst *fi, int event, void *arg)
 
        if (get_PollFlagFree(st, skb)) {
                stop_t200(st, 7);
-               if (!test_bit(FLG_L3_INIT, &st->l2.flag))
+               if (!test_bit(FLG_L3_INIT, &st->l2.flag))
                        skb_queue_purge(&st->l2.i_queue);
                if (test_bit(FLG_LAPB, &st->l2.flag))
                        st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL);
@@ -941,7 +941,7 @@ invoke_retransmission(struct PStack *st, unsigned int nr)
        if (l2->vs != nr) {
                while (l2->vs != nr) {
                        (l2->vs)--;
-                       if(test_bit(FLG_MOD128, &l2->flag)) {
+                       if (test_bit(FLG_MOD128, &l2->flag)) {
                                l2->vs %= 128;
                                p1 = (l2->vs - l2->va) % 128;
                        } else {
@@ -1013,7 +1013,7 @@ l2_st7_got_super(struct FsmInst *fi, int event, void *arg)
                                        EV_L2_T203, NULL, 7);
                } else if ((l2->va != nr) || (typ == RNR)) {
                        setva(st, nr);
-                       if(typ != RR) FsmDelTimer(&st->l2.t203, 9);
+                       if (typ != RR) FsmDelTimer(&st->l2.t203, 9);
                        restart_t200(st, 12);
                }
                if (!skb_queue_empty(&st->l2.i_queue) && (typ == RR))
@@ -1080,10 +1080,10 @@ l2_got_iframe(struct FsmInst *fi, int event, void *arg)
        }
        if (test_bit(FLG_OWN_BUSY, &l2->flag)) {
                dev_kfree_skb(skb);
-               if(PollFlag) enquiry_response(st);
+               if (PollFlag) enquiry_response(st);
        } else if (l2->vr == ns) {
                (l2->vr)++;
-               if(test_bit(FLG_MOD128, &l2->flag))
+               if (test_bit(FLG_MOD128, &l2->flag))
                        l2->vr %= 128;
                else
                        l2->vr %= 8;
@@ -1150,7 +1150,7 @@ l2_st5_tout_200(struct FsmInst *fi, int event, void *arg)
        struct PStack *st = fi->userdata;
 
        if (test_bit(FLG_LAPD, &st->l2.flag) &&
-               test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
+           test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
                FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9);
        } else if (st->l2.rc == st->l2.N200) {
                FsmChangeState(fi, ST_L2_4);
@@ -1174,7 +1174,7 @@ l2_st6_tout_200(struct FsmInst *fi, int event, void *arg)
        struct PStack *st = fi->userdata;
 
        if (test_bit(FLG_LAPD, &st->l2.flag) &&
-               test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
+           test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
                FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9);
        } else if (st->l2.rc == st->l2.N200) {
                FsmChangeState(fi, ST_L2_4);
@@ -1195,7 +1195,7 @@ l2_st7_tout_200(struct FsmInst *fi, int event, void *arg)
        struct PStack *st = fi->userdata;
 
        if (test_bit(FLG_LAPD, &st->l2.flag) &&
-               test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
+           test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
                FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9);
                return;
        }
@@ -1213,7 +1213,7 @@ l2_st8_tout_200(struct FsmInst *fi, int event, void *arg)
        struct PStack *st = fi->userdata;
 
        if (test_bit(FLG_LAPD, &st->l2.flag) &&
-               test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
+           test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
                FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9);
                return;
        }
@@ -1234,7 +1234,7 @@ l2_st7_tout_203(struct FsmInst *fi, int event, void *arg)
        struct PStack *st = fi->userdata;
 
        if (test_bit(FLG_LAPD, &st->l2.flag) &&
-               test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
+           test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) {
                FsmAddTimer(&st->l2.t203, st->l2.T203, EV_L2_T203, NULL, 9);
                return;
        }
@@ -1272,7 +1272,7 @@ l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
                }
        }
        spin_lock_irqsave(&l2->lock, flags);
-       if(test_bit(FLG_MOD128, &l2->flag))
+       if (test_bit(FLG_MOD128, &l2->flag))
                p1 = (l2->vs - l2->va) % 128;
        else
                p1 = (l2->vs - l2->va) % 8;
@@ -1445,7 +1445,7 @@ static void
 l2_st14_persistent_da(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
-       
+
        skb_queue_purge(&st->l2.i_queue);
        skb_queue_purge(&st->l2.ui_queue);
        if (test_and_clear_bit(FLG_ESTAB_PEND, &st->l2.flag))
@@ -1495,7 +1495,7 @@ l2_set_own_busy(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
 
-       if(!test_and_set_bit(FLG_OWN_BUSY, &st->l2.flag)) {
+       if (!test_and_set_bit(FLG_OWN_BUSY, &st->l2.flag)) {
                enquiry_cr(st, RNR, RSP, 0);
                test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag);
        }
@@ -1506,7 +1506,7 @@ l2_clear_own_busy(struct FsmInst *fi, int event, void *arg)
 {
        struct PStack *st = fi->userdata;
 
-       if(!test_and_clear_bit(FLG_OWN_BUSY, &st->l2.flag)) {
+       if (!test_and_clear_bit(FLG_OWN_BUSY, &st->l2.flag)) {
                enquiry_cr(st, RR, RSP, 0);
                test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag);
        }
@@ -1631,76 +1631,76 @@ isdnl2_l1l2(struct PStack *st, int pr, void *arg)
        int c = 0;
 
        switch (pr) {
-               case (PH_DATA | INDICATION):
-                       datap = skb->data;
-                       len = l2addrsize(&st->l2);
-                       if (skb->len > len)
-                               datap += len;
-                       else {
-                               FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *) 'N');
-                               dev_kfree_skb(skb);
-                               return;
-                       }
-                       if (!(*datap & 1)) {    /* I-Frame */
-                               if(!(c = iframe_error(st, skb)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_I, skb);
-                       } else if (IsSFrame(datap, st)) {       /* S-Frame */
-                               if(!(c = super_error(st, skb)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_SUPER, skb);
-                       } else if (IsUI(datap)) {
-                               if(!(c = UI_error(st, skb)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_UI, skb);
-                       } else if (IsSABME(datap, st)) {
-                               if(!(c = unnum_error(st, skb, CMD)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_SABME, skb);
-                       } else if (IsUA(datap)) {
-                               if(!(c = unnum_error(st, skb, RSP)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_UA, skb);
-                       } else if (IsDISC(datap)) {
-                               if(!(c = unnum_error(st, skb, CMD)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_DISC, skb);
-                       } else if (IsDM(datap)) {
-                               if(!(c = unnum_error(st, skb, RSP)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_DM, skb);
-                       } else if (IsFRMR(datap)) {
-                               if(!(c = FRMR_error(st,skb)))
-                                       ret = FsmEvent(&st->l2.l2m, EV_L2_FRMR, skb);
-                       } else {
-                               FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *) 'L');
-                               dev_kfree_skb(skb);
-                               ret = 0;
-                       }
-                       if(c) {
-                               dev_kfree_skb(skb);
-                               FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *)(long)c);
-                               ret = 0;
-                       }
-                       if (ret)
-                               dev_kfree_skb(skb);
-                       break;
-               case (PH_PULL | CONFIRM):
-                       FsmEvent(&st->l2.l2m, EV_L2_ACK_PULL, arg);
-                       break;
-               case (PH_PAUSE | INDICATION):
-                       test_and_set_bit(FLG_DCHAN_BUSY, &st->l2.flag);
-                       break;
-               case (PH_PAUSE | CONFIRM):
-                       test_and_clear_bit(FLG_DCHAN_BUSY, &st->l2.flag);
-                       break;
-               case (PH_ACTIVATE | CONFIRM):
-               case (PH_ACTIVATE | INDICATION):
-                       test_and_set_bit(FLG_L1_ACTIV, &st->l2.flag);
-                       if (test_and_clear_bit(FLG_ESTAB_PEND, &st->l2.flag))
-                               FsmEvent(&st->l2.l2m, EV_L2_DL_ESTABLISH_REQ, arg);
-                       break;
-               case (PH_DEACTIVATE | INDICATION):
-               case (PH_DEACTIVATE | CONFIRM):
-                       test_and_clear_bit(FLG_L1_ACTIV, &st->l2.flag);
-                       FsmEvent(&st->l2.l2m, EV_L1_DEACTIVATE, arg);
-                       break;
-               default:
-                       l2m_debug(&st->l2.l2m, "l2 unknown pr %04x", pr);
-                       break;
+       case (PH_DATA | INDICATION):
+               datap = skb->data;
+               len = l2addrsize(&st->l2);
+               if (skb->len > len)
+                       datap += len;
+               else {
+                       FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *) 'N');
+                       dev_kfree_skb(skb);
+                       return;
+               }
+               if (!(*datap & 1)) {    /* I-Frame */
+                       if (!(c = iframe_error(st, skb)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_I, skb);
+               } else if (IsSFrame(datap, st)) {       /* S-Frame */
+                       if (!(c = super_error(st, skb)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_SUPER, skb);
+               } else if (IsUI(datap)) {
+                       if (!(c = UI_error(st, skb)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_UI, skb);
+               } else if (IsSABME(datap, st)) {
+                       if (!(c = unnum_error(st, skb, CMD)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_SABME, skb);
+               } else if (IsUA(datap)) {
+                       if (!(c = unnum_error(st, skb, RSP)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_UA, skb);
+               } else if (IsDISC(datap)) {
+                       if (!(c = unnum_error(st, skb, CMD)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_DISC, skb);
+               } else if (IsDM(datap)) {
+                       if (!(c = unnum_error(st, skb, RSP)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_DM, skb);
+               } else if (IsFRMR(datap)) {
+                       if (!(c = FRMR_error(st, skb)))
+                               ret = FsmEvent(&st->l2.l2m, EV_L2_FRMR, skb);
+               } else {
+                       FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *) 'L');
+                       dev_kfree_skb(skb);
+                       ret = 0;
+               }
+               if (c) {
+                       dev_kfree_skb(skb);
+                       FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *)(long)c);
+                       ret = 0;
+               }
+               if (ret)
+                       dev_kfree_skb(skb);
+               break;
+       case (PH_PULL | CONFIRM):
+               FsmEvent(&st->l2.l2m, EV_L2_ACK_PULL, arg);
+               break;
+       case (PH_PAUSE | INDICATION):
+               test_and_set_bit(FLG_DCHAN_BUSY, &st->l2.flag);
+               break;
+       case (PH_PAUSE | CONFIRM):
+               test_and_clear_bit(FLG_DCHAN_BUSY, &st->l2.flag);
+               break;
+       case (PH_ACTIVATE | CONFIRM):
+       case (PH_ACTIVATE | INDICATION):
+               test_and_set_bit(FLG_L1_ACTIV, &st->l2.flag);
+               if (test_and_clear_bit(FLG_ESTAB_PEND, &st->l2.flag))
+                       FsmEvent(&st->l2.l2m, EV_L2_DL_ESTABLISH_REQ, arg);
+               break;
+       case (PH_DEACTIVATE | INDICATION):
+       case (PH_DEACTIVATE | CONFIRM):
+               test_and_clear_bit(FLG_L1_ACTIV, &st->l2.flag);
+               FsmEvent(&st->l2.l2m, EV_L1_DEACTIVATE, arg);
+               break;
+       default:
+               l2m_debug(&st->l2.l2m, "l2 unknown pr %04x", pr);
+               break;
        }
 }
 
@@ -1708,45 +1708,45 @@ static void
 isdnl2_l3l2(struct PStack *st, int pr, void *arg)
 {
        switch (pr) {
-               case (DL_DATA | REQUEST):
-                       if (FsmEvent(&st->l2.l2m, EV_L2_DL_DATA, arg)) {
-                               dev_kfree_skb((struct sk_buff *) arg);
-                       }
-                       break;
-               case (DL_UNIT_DATA | REQUEST):
-                       if (FsmEvent(&st->l2.l2m, EV_L2_DL_UNIT_DATA, arg)) {
-                               dev_kfree_skb((struct sk_buff *) arg);
-                       }
-                       break;
-               case (DL_ESTABLISH | REQUEST):
-                       if (test_bit(FLG_L1_ACTIV, &st->l2.flag)) {
-                               if (test_bit(FLG_LAPD, &st->l2.flag) ||
-                                       test_bit(FLG_ORIG, &st->l2.flag)) {
-                                       FsmEvent(&st->l2.l2m, EV_L2_DL_ESTABLISH_REQ, arg);
-                               }
-                       } else {
-                               if (test_bit(FLG_LAPD, &st->l2.flag) ||
-                                       test_bit(FLG_ORIG, &st->l2.flag)) {
-                                       test_and_set_bit(FLG_ESTAB_PEND, &st->l2.flag);
-                               }
-                               st->l2.l2l1(st, PH_ACTIVATE, NULL);
+       case (DL_DATA | REQUEST):
+               if (FsmEvent(&st->l2.l2m, EV_L2_DL_DATA, arg)) {
+                       dev_kfree_skb((struct sk_buff *) arg);
+               }
+               break;
+       case (DL_UNIT_DATA | REQUEST):
+               if (FsmEvent(&st->l2.l2m, EV_L2_DL_UNIT_DATA, arg)) {
+                       dev_kfree_skb((struct sk_buff *) arg);
+               }
+               break;
+       case (DL_ESTABLISH | REQUEST):
+               if (test_bit(FLG_L1_ACTIV, &st->l2.flag)) {
+                       if (test_bit(FLG_LAPD, &st->l2.flag) ||
+                           test_bit(FLG_ORIG, &st->l2.flag)) {
+                               FsmEvent(&st->l2.l2m, EV_L2_DL_ESTABLISH_REQ, arg);
                        }
-                       break;
-               case (DL_RELEASE | REQUEST):
-                       if (test_bit(FLG_LAPB, &st->l2.flag)) {
-                               st->l2.l2l1(st, PH_DEACTIVATE, NULL);
+               } else {
+                       if (test_bit(FLG_LAPD, &st->l2.flag) ||
+                           test_bit(FLG_ORIG, &st->l2.flag)) {
+                               test_and_set_bit(FLG_ESTAB_PEND, &st->l2.flag);
                        }
-                       FsmEvent(&st->l2.l2m, EV_L2_DL_RELEASE_REQ, arg);
-                       break;
-               case (MDL_ASSIGN | REQUEST):
-                       FsmEvent(&st->l2.l2m, EV_L2_MDL_ASSIGN, arg);
-                       break;
-               case (MDL_REMOVE | REQUEST):
-                       FsmEvent(&st->l2.l2m, EV_L2_MDL_REMOVE, arg);
-                       break;
-               case (MDL_ERROR | RESPONSE):
-                       FsmEvent(&st->l2.l2m, EV_L2_MDL_ERROR, arg);
-                       break;
+                       st->l2.l2l1(st, PH_ACTIVATE, NULL);
+               }
+               break;
+       case (DL_RELEASE | REQUEST):
+               if (test_bit(FLG_LAPB, &st->l2.flag)) {
+                       st->l2.l2l1(st, PH_DEACTIVATE, NULL);
+               }
+               FsmEvent(&st->l2.l2m, EV_L2_DL_RELEASE_REQ, arg);
+               break;
+       case (MDL_ASSIGN | REQUEST):
+               FsmEvent(&st->l2.l2m, EV_L2_MDL_ASSIGN, arg);
+               break;
+       case (MDL_REMOVE | REQUEST):
+               FsmEvent(&st->l2.l2m, EV_L2_MDL_REMOVE, arg);
+               break;
+       case (MDL_ERROR | RESPONSE):
+               FsmEvent(&st->l2.l2m, EV_L2_MDL_ERROR, arg);
+               break;
        }
 }
 
@@ -1787,7 +1787,7 @@ setstack_isdnl2(struct PStack *st, char *debug_id)
        if (test_bit(FLG_LAPB, &st->l2.flag))
                st->l2.l2m.state = ST_L2_4;
        else
-       st->l2.l2m.state = ST_L2_1;
+               st->l2.l2m.state = ST_L2_1;
        st->l2.l2m.debug = 0;
        st->l2.l2m.userdata = st;
        st->l2.l2m.userint = 0;
@@ -1802,16 +1802,16 @@ static void
 transl2_l3l2(struct PStack *st, int pr, void *arg)
 {
        switch (pr) {
-               case (DL_DATA | REQUEST):
-               case (DL_UNIT_DATA | REQUEST):
-                       st->l2.l2l1(st, PH_DATA | REQUEST, arg);
-                       break;
-               case (DL_ESTABLISH | REQUEST):
-                       st->l2.l2l1(st, PH_ACTIVATE | REQUEST, NULL);
-                       break;
-               case (DL_RELEASE | REQUEST):
-                       st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL);
-                       break;
+       case (DL_DATA | REQUEST):
+       case (DL_UNIT_DATA | REQUEST):
+               st->l2.l2l1(st, PH_DATA | REQUEST, arg);
+               break;
+       case (DL_ESTABLISH | REQUEST):
+               st->l2.l2l1(st, PH_ACTIVATE | REQUEST, NULL);
+               break;
+       case (DL_RELEASE | REQUEST):
+               st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL);
+               break;
        }
 }
 
index 0cdab1b..7e447fb 100644 (file)
@@ -23,4 +23,3 @@
 #define RSP    1
 
 #define LC_FLUSH_WAIT 1
-
index 1c24e44..45b0384 100644 (file)
@@ -3,7 +3,7 @@
  * Author       Karsten Keil
  *              based on the teles driver from Jan den Ouden
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -27,12 +27,12 @@ static struct Fsm l3fsm;
 enum {
        ST_L3_LC_REL,
        ST_L3_LC_ESTAB_WAIT,
-       ST_L3_LC_REL_DELAY, 
+       ST_L3_LC_REL_DELAY,
        ST_L3_LC_REL_WAIT,
        ST_L3_LC_ESTAB,
 };
 
-#define L3_STATE_COUNT (ST_L3_LC_ESTAB+1)
+#define L3_STATE_COUNT (ST_L3_LC_ESTAB + 1)
 
 static char *strL3State[] =
 {
@@ -53,7 +53,7 @@ enum {
        EV_TIMEOUT,
 };
 
-#define L3_EVENT_COUNT (EV_TIMEOUT+1)
+#define L3_EVENT_COUNT (EV_TIMEOUT + 1)
 
 static char *strL3Event[] =
 {
@@ -67,7 +67,7 @@ static char *strL3Event[] =
 };
 
 static __printf(2, 3) void
-l3m_debug(struct FsmInst *fi, char *fmt, ...)
+       l3m_debug(struct FsmInst *fi, char *fmt, ...)
 {
        va_list args;
        struct PStack *st = fi->userdata;
@@ -78,7 +78,7 @@ l3m_debug(struct FsmInst *fi, char *fmt, ...)
 }
 
 u_char *
-findie(u_char * p, int size, u_char ie, int wanted_set)
+findie(u_char *p, int size, u_char ie, int wanted_set)
 {
        int l, codeset, maincodeset;
        u_char *pend = p + size;
@@ -102,14 +102,14 @@ findie(u_char * p, int size, u_char ie, int wanted_set)
                else {
                        if (codeset == wanted_set) {
                                if (*p == ie)
-                                  { /* improved length check (Werner Cornelius) */
-                                    if ((pend - p) < 2) 
-                                      return(NULL); 
-                                    if (*(p+1) > (pend - (p+2))) 
-                                      return(NULL); 
-                                    return (p);
-                                  }           
-                                  
+                               { /* improved length check (Werner Cornelius) */
+                                       if ((pend - p) < 2)
+                                               return (NULL);
+                                       if (*(p + 1) > (pend - (p + 2)))
+                                               return (NULL);
+                                       return (p);
+                               }
+
                                if (*p > ie)
                                        return (NULL);
                        }
@@ -123,16 +123,16 @@ findie(u_char * p, int size, u_char ie, int wanted_set)
 }
 
 int
-getcallref(u_char * p)
+getcallref(u_char *p)
 {
        int l, cr = 0;
 
        p++;                    /* prot discr */
        if (*p & 0xfe)          /* wrong callref BRI only 1 octet*/
-               return(-2);
+               return (-2);
        l = 0xf & *p++;         /* callref length */
        if (!l)                 /* dummy CallRef */
-               return(-1);
+               return (-1);
        cr = *p++;
        return (cr);
 }
@@ -153,7 +153,7 @@ void
 newl3state(struct l3_process *pc, int state)
 {
        if (pc->debug & L3_DEB_STATE)
-               l3_debug(pc->st, "newstate cr %d %d --> %d", 
+               l3_debug(pc->st, "newstate cr %d %d --> %d",
                         pc->callref & 0x7F,
                         pc->state, state);
        pc->state = state;
@@ -228,8 +228,8 @@ no_l3_proto(struct PStack *st, int pr, void *arg)
 static int
 no_l3_proto_spec(struct PStack *st, isdn_ctrl *ic)
 {
-       printk(KERN_WARNING "HiSax: no specific protocol handler for proto %lu\n",ic->arg & 0xFF);
-       return(-1);
+       printk(KERN_WARNING "HiSax: no specific protocol handler for proto %lu\n", ic->arg & 0xFF);
+       return (-1);
 }
 
 struct l3_process
@@ -287,7 +287,7 @@ release_l3_process(struct l3_process *p)
                        if (pp)
                                pp->next = np->next;
                        else if (!(p->st->l3.proc = np->next) &&
-                               !test_bit(FLG_PTP, &p->st->l2.flag)) {
+                                !test_bit(FLG_PTP, &p->st->l2.flag)) {
                                if (p->debug)
                                        l3_debug(p->st, "release_l3_process: last process");
                                if (skb_queue_empty(&p->st->l3.squeue)) {
@@ -301,7 +301,7 @@ release_l3_process(struct l3_process *p)
                                        if (p->debug)
                                                l3_debug(p->st, "release_l3_process: not release link");
                                }
-                       } 
+                       }
                        kfree(p);
                        return;
                }
@@ -340,42 +340,42 @@ setstack_l3dc(struct PStack *st, struct Channel *chanp)
        st->l3.l3m.userdata = st;
        st->l3.l3m.userint = 0;
        st->l3.l3m.printdebug = l3m_debug;
-        FsmInitTimer(&st->l3.l3m, &st->l3.l3m_timer);
+       FsmInitTimer(&st->l3.l3m, &st->l3.l3m_timer);
        strcpy(st->l3.debug_id, "L3DC ");
        st->lli.l4l3_proto = no_l3_proto_spec;
 
-#ifdef CONFIG_HISAX_EURO
+#ifdef CONFIG_HISAX_EURO
        if (st->protocol == ISDN_PTYPE_EURO) {
                setstack_dss1(st);
        } else
 #endif
-#ifdef  CONFIG_HISAX_NI1
-       if (st->protocol == ISDN_PTYPE_NI1) {
-               setstack_ni1(st);
-       } else
+#ifdef CONFIG_HISAX_NI1
+               if (st->protocol == ISDN_PTYPE_NI1) {
+                       setstack_ni1(st);
+               } else
 #endif
-#ifdef CONFIG_HISAX_1TR6
-       if (st->protocol == ISDN_PTYPE_1TR6) {
-               setstack_1tr6(st);
-       } else
+#ifdef CONFIG_HISAX_1TR6
+                       if (st->protocol == ISDN_PTYPE_1TR6) {
+                               setstack_1tr6(st);
+                       } else
 #endif
-       if (st->protocol == ISDN_PTYPE_LEASED) {
-               st->lli.l4l3 = no_l3_proto;
-               st->l2.l2l3 = no_l3_proto;
-                st->l3.l3ml3 = no_l3_proto;
-               printk(KERN_INFO "HiSax: Leased line mode\n");
-       } else {
-               st->lli.l4l3 = no_l3_proto;
-               st->l2.l2l3 = no_l3_proto;
-                st->l3.l3ml3 = no_l3_proto;
-               sprintf(tmp, "protocol %s not supported",
-                       (st->protocol == ISDN_PTYPE_1TR6) ? "1tr6" :
-                       (st->protocol == ISDN_PTYPE_EURO) ? "euro" :
-                       (st->protocol == ISDN_PTYPE_NI1) ? "ni1" :
-                       "unknown");
-               printk(KERN_WARNING "HiSax: %s\n", tmp);
-               st->protocol = -1;
-       }
+                               if (st->protocol == ISDN_PTYPE_LEASED) {
+                                       st->lli.l4l3 = no_l3_proto;
+                                       st->l2.l2l3 = no_l3_proto;
+                                       st->l3.l3ml3 = no_l3_proto;
+                                       printk(KERN_INFO "HiSax: Leased line mode\n");
+                               } else {
+                                       st->lli.l4l3 = no_l3_proto;
+                                       st->l2.l2l3 = no_l3_proto;
+                                       st->l3.l3ml3 = no_l3_proto;
+                                       sprintf(tmp, "protocol %s not supported",
+                                               (st->protocol == ISDN_PTYPE_1TR6) ? "1tr6" :
+                                               (st->protocol == ISDN_PTYPE_EURO) ? "euro" :
+                                               (st->protocol == ISDN_PTYPE_NI1) ? "ni1" :
+                                               "unknown");
+                                       printk(KERN_WARNING "HiSax: %s\n", tmp);
+                                       st->protocol = -1;
+                               }
 }
 
 static void
@@ -469,22 +469,22 @@ lc_connected(struct FsmInst *fi, int event, void *arg)
 static void
 lc_start_delay(struct FsmInst *fi, int event, void *arg)
 {
-       struct PStack *st = fi->userdata;
+       struct PStack *st = fi->userdata;
 
-       FsmChangeState(fi, ST_L3_LC_REL_DELAY);
-       FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50);
+       FsmChangeState(fi, ST_L3_LC_REL_DELAY);
+       FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50);
 }
 
 static void
 lc_start_delay_check(struct FsmInst *fi, int event, void *arg)
 /* 20/09/00 - GE timer not user for NI-1 as layer 2 should stay up */
 {
-       struct PStack *st = fi->userdata;
+       struct PStack *st = fi->userdata;
 
-       FsmChangeState(fi, ST_L3_LC_REL_DELAY);
-       /* 19/09/00 - GE timer not user for NI-1 */
-       if (st->protocol != ISDN_PTYPE_NI1) 
-                       FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50);
+       FsmChangeState(fi, ST_L3_LC_REL_DELAY);
+       /* 19/09/00 - GE timer not user for NI-1 */
+       if (st->protocol != ISDN_PTYPE_NI1)
+               FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50);
 }
 
 static void
@@ -536,9 +536,9 @@ static struct FsmNode L3FnList[] __initdata =
        {ST_L3_LC_ESTAB_WAIT,   EV_RELEASE_IND,         lc_release_ind},
        {ST_L3_LC_ESTAB,        EV_RELEASE_IND,         lc_release_ind},
        {ST_L3_LC_ESTAB,        EV_RELEASE_REQ,         lc_start_delay_check},
-        {ST_L3_LC_REL_DELAY,    EV_RELEASE_IND,         lc_release_ind},
-        {ST_L3_LC_REL_DELAY,    EV_ESTABLISH_REQ,       lc_connected},
-        {ST_L3_LC_REL_DELAY,    EV_TIMEOUT,             lc_release_req},
+       {ST_L3_LC_REL_DELAY,    EV_RELEASE_IND,         lc_release_ind},
+       {ST_L3_LC_REL_DELAY,    EV_ESTABLISH_REQ,       lc_connected},
+       {ST_L3_LC_REL_DELAY,    EV_TIMEOUT,             lc_release_req},
        {ST_L3_LC_REL_WAIT,     EV_RELEASE_CNF,         lc_release_cnf},
        {ST_L3_LC_REL_WAIT,     EV_ESTABLISH_REQ,       lc_activate},
 };
@@ -548,34 +548,34 @@ void
 l3_msg(struct PStack *st, int pr, void *arg)
 {
        switch (pr) {
-               case (DL_DATA | REQUEST):
-                       if (st->l3.l3m.state == ST_L3_LC_ESTAB) {
-                               st->l3.l3l2(st, pr, arg);
-                       } else {
-                               struct sk_buff *skb = arg;
-
-                               skb_queue_tail(&st->l3.squeue, skb);
-                               FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); 
-                       }
-                       break;
-               case (DL_ESTABLISH | REQUEST):
+       case (DL_DATA | REQUEST):
+               if (st->l3.l3m.state == ST_L3_LC_ESTAB) {
+                       st->l3.l3l2(st, pr, arg);
+               } else {
+                       struct sk_buff *skb = arg;
+
+                       skb_queue_tail(&st->l3.squeue, skb);
                        FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL);
-                       break;
-               case (DL_ESTABLISH | CONFIRM):
-                       FsmEvent(&st->l3.l3m, EV_ESTABLISH_CNF, NULL);
-                       break;
-               case (DL_ESTABLISH | INDICATION):
-                       FsmEvent(&st->l3.l3m, EV_ESTABLISH_IND, NULL);
-                       break;
-               case (DL_RELEASE | INDICATION):
-                       FsmEvent(&st->l3.l3m, EV_RELEASE_IND, NULL);
-                       break;
-               case (DL_RELEASE | CONFIRM):
-                       FsmEvent(&st->l3.l3m, EV_RELEASE_CNF, NULL);
-                       break;
-               case (DL_RELEASE | REQUEST):
-                       FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL);
-                       break;
+               }
+               break;
+       case (DL_ESTABLISH | REQUEST):
+               FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL);
+               break;
+       case (DL_ESTABLISH | CONFIRM):
+               FsmEvent(&st->l3.l3m, EV_ESTABLISH_CNF, NULL);
+               break;
+       case (DL_ESTABLISH | INDICATION):
+               FsmEvent(&st->l3.l3m, EV_ESTABLISH_IND, NULL);
+               break;
+       case (DL_RELEASE | INDICATION):
+               FsmEvent(&st->l3.l3m, EV_RELEASE_IND, NULL);
+               break;
+       case (DL_RELEASE | CONFIRM):
+               FsmEvent(&st->l3.l3m, EV_RELEASE_CNF, NULL);
+               break;
+       case (DL_RELEASE | REQUEST):
+               FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL);
+               break;
        }
 }
 
index 749498f..0edc99d 100644 (file)
@@ -5,7 +5,7 @@
  *
  */
 
-#define SBIT(state) (1<<state)
+#define SBIT(state) (1 << state)
 #define ALL_STATES  0x03ffffff
 
 #define PROTO_DIS_EURO 0x08
@@ -40,4 +40,3 @@ void l3_msg(struct PStack *st, int pr, void *arg);
 void setstack_dss1(struct PStack *st);
 void setstack_ni1(struct PStack *st);
 void setstack_1tr6(struct PStack *st);
-
index ca41617..ea27172 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -19,7 +19,7 @@
 
 static const char *ISurf_revision = "$Revision: 1.12.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define ISURF_ISAR_RESET       1
@@ -46,7 +46,7 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        register int i;
        for (i = 0; i < size; i++)
@@ -54,11 +54,11 @@ ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        register int i;
-       for (i = 0; i < size; i++){
-               writeb(data[i], cs->hw.isurf.isac);mb();
+       for (i = 0; i < size; i++) {
+               writeb(data[i], cs->hw.isurf.isac); mb();
        }
 }
 
@@ -67,17 +67,17 @@ WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
  * mode = 1 access with IRQ off
  * mode = 2 access with IRQ off and using last offset
  */
-  
+
 static u_char
 ReadISAR(struct IsdnCardState *cs, int mode, u_char offset)
-{      
-       return(readb(cs->hw.isurf.isar + offset));
+{
+       return (readb(cs->hw.isurf.isar + offset));
 }
 
 static void
 WriteISAR(struct IsdnCardState *cs, int mode, u_char offset, u_char value)
 {
-       writeb(value, cs->hw.isurf.isar + offset);mb();
+       writeb(value, cs->hw.isurf.isar + offset); mb();
 }
 
 static irqreturn_t
@@ -90,11 +90,11 @@ isurf_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readb(cs->hw.isurf.isar + ISAR_IRQBIT);
-      Start_ISAR:
+Start_ISAR:
        if (val & ISAR_IRQSTA)
                isar_int_main(cs);
        val = readb(cs->hw.isurf.isac + ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readb(cs->hw.isurf.isar + ISAR_IRQBIT);
@@ -113,8 +113,8 @@ isurf_interrupt(int intno, void *dev_id)
                printk(KERN_WARNING "ISurf IRQ LOOP\n");
 
        writeb(0, cs->hw.isurf.isar + ISAR_IRQBIT); mb();
-       writeb(0xFF, cs->hw.isurf.isac + ISAC_MASK);mb();
-       writeb(0, cs->hw.isurf.isac + ISAC_MASK);mb();
+       writeb(0xFF, cs->hw.isurf.isac + ISAC_MASK); mb();
+       writeb(0, cs->hw.isurf.isac + ISAC_MASK); mb();
        writeb(ISAR_IRQMSK, cs->hw.isurf.isar + ISAR_IRQBIT); mb();
        spin_unlock_irqrestore(&cs->lock, flags);
        return IRQ_HANDLED;
@@ -145,31 +145,31 @@ ISurf_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_isurf(cs, ISURF_RESET);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_isurf(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_isurf(cs, ISURF_RESET);
-                       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);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_isurf(cs, ISURF_RESET);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_isurf(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_isurf(cs, ISURF_RESET);
+               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);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 static int
@@ -182,15 +182,15 @@ isurf_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) {
                spin_lock_irqsave(&cs->lock, flags);
                if (!ret) {
                        reset_isurf(cs, ISURF_ISAR_EA | ISURF_ISAC_RESET |
-                               ISURF_ARCOFI_RESET);
+                                   ISURF_ARCOFI_RESET);
                        initisac(cs);
                        cs->writeisac(cs, ISAC_MASK, 0);
                        cs->writeisac(cs, ISAC_CMDR, 0x41);
                }
                spin_unlock_irqrestore(&cs->lock, flags);
-               return(ret);
+               return (ret);
        }
-       return(isar_auxcmd(cs, ic));
+       return (isar_auxcmd(cs, ic));
 }
 
 #ifdef __ISAPNP__
@@ -206,9 +206,9 @@ setup_isurf(struct IsdnCard *card)
 
        strcpy(tmp, ISurf_revision);
        printk(KERN_INFO "HiSax: ISurf driver Rev. %s\n", HiSax_getrev(tmp));
-       
-       if (cs->typ != ISDN_CTYPE_ISURF)
-               return(0);
+
+       if (cs->typ != ISDN_CTYPE_ISURF)
+               return (0);
        if (card->para[1] && card->para[2]) {
                cs->hw.isurf.reset = card->para[1];
                cs->hw.isurf.phymem = card->para[2];
@@ -221,11 +221,11 @@ setup_isurf(struct IsdnCard *card)
 
                        cs->subtyp = 0;
                        if ((pnp_c = pnp_find_card(
-                               ISAPNP_VENDOR('S', 'I', 'E'),
-                               ISAPNP_FUNCTION(0x0010), pnp_c))) {
+                                    ISAPNP_VENDOR('S', 'I', 'E'),
+                                    ISAPNP_FUNCTION(0x0010), pnp_c))) {
                                if (!(pnp_d = pnp_find_dev(pnp_c,
-                                       ISAPNP_VENDOR('S', 'I', 'E'),
-                                       ISAPNP_FUNCTION(0x0010), pnp_d))) {
+                                                          ISAPNP_VENDOR('S', 'I', 'E'),
+                                                          ISAPNP_FUNCTION(0x0010), pnp_d))) {
                                        printk(KERN_ERR "ISurfPnP: PnP error card found, no device\n");
                                        return (0);
                                }
@@ -236,17 +236,17 @@ setup_isurf(struct IsdnCard *card)
                                cs->irq = pnp_irq(pnp_d, 0);
                                if (!cs->irq || !cs->hw.isurf.reset || !cs->hw.isurf.phymem) {
                                        printk(KERN_ERR "ISurfPnP:some resources are missing %d/%x/%lx\n",
-                                               cs->irq, cs->hw.isurf.reset, cs->hw.isurf.phymem);
+                                              cs->irq, cs->hw.isurf.reset, cs->hw.isurf.phymem);
                                        pnp_disable_dev(pnp_d);
-                                       return(0);
+                                       return (0);
                                }
                        } else {
                                printk(KERN_INFO "ISurfPnP: no ISAPnP card found\n");
-                               return(0);
+                               return (0);
                        }
                } else {
                        printk(KERN_INFO "ISurfPnP: no ISAPnP bus found\n");
-                       return(0);
+                       return (0);
                }
 #else
                printk(KERN_WARNING "HiSax: Siemens I-Surf port/mem not set\n");
@@ -255,15 +255,15 @@ setup_isurf(struct IsdnCard *card)
        }
        if (!request_region(cs->hw.isurf.reset, 1, "isurf isdn")) {
                printk(KERN_WARNING
-                       "HiSax: Siemens I-Surf config port %x already in use\n",
-                       cs->hw.isurf.reset);
-                       return (0);
+                      "HiSax: Siemens I-Surf config port %x already in use\n",
+                      cs->hw.isurf.reset);
+               return (0);
        }
        if (!request_region(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE, "isurf iomem")) {
                printk(KERN_WARNING "HiSax: Siemens I-Surf memory region "
-                       "%lx-%lx already in use\n",
-                       cs->hw.isurf.phymem,
-                       cs->hw.isurf.phymem + ISURF_IOMEM_SIZE);
+                      "%lx-%lx already in use\n",
+                      cs->hw.isurf.phymem,
+                      cs->hw.isurf.phymem + ISURF_IOMEM_SIZE);
                release_region(cs->hw.isurf.reset, 1);
                return (0);
        }
@@ -293,7 +293,7 @@ setup_isurf(struct IsdnCard *card)
        ver = ISARVersion(cs, "ISurf:");
        if (ver < 0) {
                printk(KERN_WARNING
-                       "ISurf: wrong ISAR version (ret = %d)\n", ver);
+                      "ISurf: wrong ISAR version (ret = %d)\n", ver);
                release_io_isurf(cs);
                return (0);
        }
index a92bf0d..5f299f8 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright    by Klaus-Peter Nischke, ITK AG
  *                                   <klaus@nischke.do.eunet.de>
  *              by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -26,7 +26,7 @@
 
 static const char *ix1_revision = "$Revision: 2.12.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define SPECIAL_PORT_OFFSET 3
@@ -49,7 +49,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -64,7 +64,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -85,13 +85,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.ix1.isac_ale, cs->hw.ix1.isac, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.ix1.isac_ale, cs->hw.ix1.isac, 0, data, size);
 }
@@ -110,16 +110,16 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
                 cs->hw.ix1.hscx, offset + (hscx ? 0x40 : 0), value);
 }
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.ix1.hscx_ale, \
-               cs->hw.ix1.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.ix1.hscx_ale, \
-               cs->hw.ix1.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.ix1.hscx_ale,             \
+                                     cs->hw.ix1.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.ix1.hscx_ale,     \
+                                             cs->hw.ix1.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.ix1.hscx_ale, \
-               cs->hw.ix1.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.ix1.hscx_ale,   \
+                                               cs->hw.ix1.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.ix1.hscx_ale, \
-               cs->hw.ix1.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.ix1.hscx_ale, \
+                                                 cs->hw.ix1.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -132,11 +132,11 @@ ix1micro_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.ix1.hscx_ale, cs->hw.ix1.hscx, HSCX_ISTA + 0x40);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.ix1.isac_ale, cs->hw.ix1.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.ix1.hscx_ale, cs->hw.ix1.hscx, HSCX_ISTA + 0x40);
@@ -188,33 +188,33 @@ ix1_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       ix1_reset(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_ix1micro(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       ix1_reset(cs);
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               ix1_reset(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_ix1micro(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               ix1_reset(cs);
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 #ifdef __ISAPNP__
 static struct isapnp_device_id itk_ids[] __devinitdata = {
        { ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25),
-         ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), 
+         ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25),
          (unsigned long) "ITK micro 2" },
        { ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x29),
-         ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x29), 
+         ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x29),
          (unsigned long) "ITK micro 2." },
        { 0, }
 };
@@ -238,30 +238,30 @@ setup_ix1micro(struct IsdnCard *card)
 #ifdef __ISAPNP__
        if (!card->para[1] && isapnp_present()) {
                struct pnp_dev *pnp_d;
-               while(ipid->card_vendor) {
+               while (ipid->card_vendor) {
                        if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                               ipid->card_device, pnp_c))) {
+                                                  ipid->card_device, pnp_c))) {
                                pnp_d = NULL;
                                if ((pnp_d = pnp_find_dev(pnp_c,
-                                       ipid->vendor, ipid->function, pnp_d))) {
+                                                         ipid->vendor, ipid->function, pnp_d))) {
                                        int err;
 
                                        printk(KERN_INFO "HiSax: %s detected\n",
-                                               (char *)ipid->driver_data);
+                                              (char *)ipid->driver_data);
                                        pnp_disable_dev(pnp_d);
                                        err = pnp_activate_dev(pnp_d);
-                                       if (err<0) {
+                                       if (err < 0) {
                                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                                       __func__, err);
-                                               return(0);
+                                                      __func__, err);
+                                               return (0);
                                        }
                                        card->para[1] = pnp_port_start(pnp_d, 0);
                                        card->para[0] = pnp_irq(pnp_d, 0);
                                        if (!card->para[0] || !card->para[1]) {
                                                printk(KERN_ERR "ITK PnP:some resources are missing %ld/%lx\n",
-                                                       card->para[0], card->para[1]);
+                                                      card->para[0], card->para[1]);
                                                pnp_disable_dev(pnp_d);
-                                               return(0);
+                                               return (0);
                                        }
                                        break;
                                } else {
@@ -270,10 +270,10 @@ setup_ix1micro(struct IsdnCard *card)
                        }
                        ipid++;
                        pnp_c = NULL;
-               } 
+               }
                if (!ipid->card_vendor) {
                        printk(KERN_INFO "ITK PnP: no ISAPnP card found\n");
-                       return(0);
+                       return (0);
                }
        }
 #endif
@@ -287,15 +287,15 @@ setup_ix1micro(struct IsdnCard *card)
        if (cs->hw.ix1.cfg_reg) {
                if (!request_region(cs->hw.ix1.cfg_reg, 4, "ix1micro cfg")) {
                        printk(KERN_WARNING
-                         "HiSax: ITK ix1-micro Rev.2 config port "
-                         "%x-%x already in use\n",
+                              "HiSax: ITK ix1-micro Rev.2 config port "
+                              "%x-%x already in use\n",
                               cs->hw.ix1.cfg_reg,
                               cs->hw.ix1.cfg_reg + 4);
                        return (0);
                }
        }
        printk(KERN_INFO "HiSax: ITK ix1-micro Rev.2 config irq:%d io:0x%X\n",
-               cs->irq, cs->hw.ix1.cfg_reg);
+              cs->irq, cs->hw.ix1.cfg_reg);
        setup_isac(cs);
        cs->readisac = &ReadISAC;
        cs->writeisac = &WriteISAC;
@@ -309,7 +309,7 @@ setup_ix1micro(struct IsdnCard *card)
        ISACVersion(cs, "ix1-Micro:");
        if (HscxVersion(cs, "ix1-Micro:")) {
                printk(KERN_WARNING
-                   "ix1-Micro: wrong HSCX versions check IO address\n");
+                      "ix1-Micro: wrong HSCX versions check IO address\n");
                release_io_ix1micro(cs);
                return (0);
        }
index a06cea0..f946c58 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Roland Klabunde
  * Copyright    by Roland Klabunde   <R.Klabunde@Berkom.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 int
 JadeVersion(struct IsdnCardState *cs, char *s)
 {
-    int ver;
-    int to = 50;
-    cs->BC_Write_Reg(cs, -1, 0x50, 0x19);
-    while (to) {
-       udelay(1);
+       int ver;
+       int to = 50;
+       cs->BC_Write_Reg(cs, -1, 0x50, 0x19);
+       while (to) {
+               udelay(1);
+               ver = cs->BC_Read_Reg(cs, -1, 0x60);
+               to--;
+               if (ver)
+                       break;
+               if (!to) {
+                       printk(KERN_INFO "%s JADE version not obtainable\n", s);
+                       return (0);
+               }
+       }
+       /* Wait for the JADE */
+       udelay(10);
+       /* Read version */
        ver = cs->BC_Read_Reg(cs, -1, 0x60);
-       to--;
-       if (ver)
-           break;
-       if (!to) {
-           printk(KERN_INFO "%s JADE version not obtainable\n", s);
-           return (0);
-        }
-    }
-    /* Wait for the JADE */
-    udelay(10);
-    /* Read version */
-    ver = cs->BC_Read_Reg(cs, -1, 0x60);
-    printk(KERN_INFO "%s JADE version: %d\n", s, ver);
-    return (1);
+       printk(KERN_INFO "%s JADE version: %d\n", s, ver);
+       return (1);
 }
 
 /* Write to indirect accessible jade register set */
 static void
 jade_write_indirect(struct IsdnCardState *cs, u_char reg, u_char value)
 {
-    int to = 50;
-    u_char ret;
+       int to = 50;
+       u_char ret;
 
-    /* Write the data */
-    cs->BC_Write_Reg(cs, -1, COMM_JADE+1, value);
-    /* Say JADE we wanna write indirect reg 'reg' */
-    cs->BC_Write_Reg(cs, -1, COMM_JADE, reg);
-    to = 50;
-    /* Wait for RDY goes high */
-    while (to) {
-       udelay(1);
-       ret = cs->BC_Read_Reg(cs, -1, COMM_JADE);
-       to--;
-       if (ret & 1)
-           /* Got acknowledge */
-           break;
-       if (!to) {
-           printk(KERN_INFO "Can not see ready bit from JADE DSP (reg=0x%X, value=0x%X)\n", reg, value);
-           return;
+       /* Write the data */
+       cs->BC_Write_Reg(cs, -1, COMM_JADE + 1, value);
+       /* Say JADE we wanna write indirect reg 'reg' */
+       cs->BC_Write_Reg(cs, -1, COMM_JADE, reg);
+       to = 50;
+       /* Wait for RDY goes high */
+       while (to) {
+               udelay(1);
+               ret = cs->BC_Read_Reg(cs, -1, COMM_JADE);
+               to--;
+               if (ret & 1)
+                       /* Got acknowledge */
+                       break;
+               if (!to) {
+                       printk(KERN_INFO "Can not see ready bit from JADE DSP (reg=0x%X, value=0x%X)\n", reg, value);
+                       return;
+               }
        }
-    }
 }
 
 
@@ -77,67 +77,67 @@ jade_write_indirect(struct IsdnCardState *cs, u_char reg, u_char value)
 static void
 modejade(struct BCState *bcs, int mode, int bc)
 {
-    struct IsdnCardState *cs = bcs->cs;
-    int jade = bcs->hw.hscx.hscx;
+       struct IsdnCardState *cs = bcs->cs;
+       int jade = bcs->hw.hscx.hscx;
 
-    if (cs->debug & L1_DEB_HSCX) {
-       char tmp[40];
-       sprintf(tmp, "jade %c mode %d ichan %d",
-               'A' + jade, mode, bc);
-       debugl1(cs, tmp);
-    }
-    bcs->mode = mode;
-    bcs->channel = bc;
-       
-    cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, (mode == L1_MODE_TRANS ? jadeMODE_TMO:0x00));
-    cs->BC_Write_Reg(cs, jade, jade_HDLC_CCR0, (jadeCCR0_PU|jadeCCR0_ITF));
-    cs->BC_Write_Reg(cs, jade, jade_HDLC_CCR1, 0x00);
+       if (cs->debug & L1_DEB_HSCX) {
+               char tmp[40];
+               sprintf(tmp, "jade %c mode %d ichan %d",
+                       'A' + jade, mode, bc);
+               debugl1(cs, tmp);
+       }
+       bcs->mode = mode;
+       bcs->channel = bc;
 
-    jade_write_indirect(cs, jade_HDLC1SERRXPATH, 0x08);
-    jade_write_indirect(cs, jade_HDLC2SERRXPATH, 0x08);
-    jade_write_indirect(cs, jade_HDLC1SERTXPATH, 0x00);
-    jade_write_indirect(cs, jade_HDLC2SERTXPATH, 0x00);
+       cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, (mode == L1_MODE_TRANS ? jadeMODE_TMO : 0x00));
+       cs->BC_Write_Reg(cs, jade, jade_HDLC_CCR0, (jadeCCR0_PU | jadeCCR0_ITF));
+       cs->BC_Write_Reg(cs, jade, jade_HDLC_CCR1, 0x00);
 
-    cs->BC_Write_Reg(cs, jade, jade_HDLC_XCCR, 0x07);
-    cs->BC_Write_Reg(cs, jade, jade_HDLC_RCCR, 0x07);
+       jade_write_indirect(cs, jade_HDLC1SERRXPATH, 0x08);
+       jade_write_indirect(cs, jade_HDLC2SERRXPATH, 0x08);
+       jade_write_indirect(cs, jade_HDLC1SERTXPATH, 0x00);
+       jade_write_indirect(cs, jade_HDLC2SERTXPATH, 0x00);
 
-    if (bc == 0) {
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAX, 0x00);
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAR, 0x00);
-    } else {
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAX, 0x04);
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAR, 0x04);
-    }
-    switch (mode) {
+       cs->BC_Write_Reg(cs, jade, jade_HDLC_XCCR, 0x07);
+       cs->BC_Write_Reg(cs, jade, jade_HDLC_RCCR, 0x07);
+
+       if (bc == 0) {
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAX, 0x00);
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAR, 0x00);
+       } else {
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAX, 0x04);
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_TSAR, 0x04);
+       }
+       switch (mode) {
        case (L1_MODE_NULL):
                cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, jadeMODE_TMO);
                break;
        case (L1_MODE_TRANS):
-               cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, (jadeMODE_TMO|jadeMODE_RAC|jadeMODE_XAC));
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, (jadeMODE_TMO | jadeMODE_RAC | jadeMODE_XAC));
                break;
        case (L1_MODE_HDLC):
-               cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, (jadeMODE_RAC|jadeMODE_XAC));
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_MODE, (jadeMODE_RAC | jadeMODE_XAC));
                break;
-    }
-    if (mode) {
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_RCMD, (jadeRCMD_RRES|jadeRCMD_RMC));
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_XCMD, jadeXCMD_XRES);
-       /* Unmask ints */
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_IMR, 0xF8);
-    }
-    else
-       /* Mask ints */
-       cs->BC_Write_Reg(cs, jade, jade_HDLC_IMR, 0x00);
+       }
+       if (mode) {
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_RCMD, (jadeRCMD_RRES | jadeRCMD_RMC));
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_XCMD, jadeXCMD_XRES);
+               /* Unmask ints */
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_IMR, 0xF8);
+       }
+       else
+               /* Mask ints */
+               cs->BC_Write_Reg(cs, jade, jade_HDLC_IMR, 0x00);
 }
 
 static void
 jade_l2l1(struct PStack *st, int pr, void *arg)
 {
-    struct BCState *bcs = st->l1.bcs;
-    struct sk_buff *skb = arg;
-    u_long flags;
+       struct BCState *bcs = st->l1.bcs;
+       struct sk_buff *skb = arg;
+       u_long flags;
 
-    switch (pr) {
+       switch (pr) {
        case (PH_DATA | REQUEST):
                spin_lock_irqsave(&bcs->cs->lock, flags);
                if (bcs->tx_skb) {
@@ -164,10 +164,10 @@ jade_l2l1(struct PStack *st, int pr, void *arg)
                break;
        case (PH_PULL | REQUEST):
                if (!bcs->tx_skb) {
-                   test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                   st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
                } else
-                   test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
                break;
        case (PH_ACTIVATE | REQUEST):
                spin_lock_irqsave(&bcs->cs->lock, flags);
@@ -187,26 +187,26 @@ jade_l2l1(struct PStack *st, int pr, void *arg)
                spin_unlock_irqrestore(&bcs->cs->lock, flags);
                st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
                break;
-    }
+       }
 }
 
 static void
 close_jadestate(struct BCState *bcs)
 {
-    modejade(bcs, 0, bcs->channel);
-    if (test_and_clear_bit(BC_FLG_INIT, &bcs->Flag)) {
-       kfree(bcs->hw.hscx.rcvbuf);
-       bcs->hw.hscx.rcvbuf = NULL;
-       kfree(bcs->blog);
-       bcs->blog = NULL;
-       skb_queue_purge(&bcs->rqueue);
-       skb_queue_purge(&bcs->squeue);
-       if (bcs->tx_skb) {
-               dev_kfree_skb_any(bcs->tx_skb);
-               bcs->tx_skb = NULL;
-               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+       modejade(bcs, 0, bcs->channel);
+       if (test_and_clear_bit(BC_FLG_INIT, &bcs->Flag)) {
+               kfree(bcs->hw.hscx.rcvbuf);
+               bcs->hw.hscx.rcvbuf = NULL;
+               kfree(bcs->blog);
+               bcs->blog = NULL;
+               skb_queue_purge(&bcs->rqueue);
+               skb_queue_purge(&bcs->squeue);
+               if (bcs->tx_skb) {
+                       dev_kfree_skb_any(bcs->tx_skb);
+                       bcs->tx_skb = NULL;
+                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               }
        }
-    }
 }
 
 static int
@@ -221,7 +221,7 @@ open_jadestate(struct IsdnCardState *cs, struct BCState *bcs)
                }
                if (!(bcs->blog = kmalloc(MAX_BLOG_SPACE, GFP_ATOMIC))) {
                        printk(KERN_WARNING
-                               "HiSax: No memory for bcs->blog\n");
+                              "HiSax: No memory for bcs->blog\n");
                        test_and_clear_bit(BC_FLG_INIT, &bcs->Flag);
                        kfree(bcs->hw.hscx.rcvbuf);
                        bcs->hw.hscx.rcvbuf = NULL;
@@ -303,12 +303,11 @@ initjade(struct IsdnCardState *cs)
        cs->BC_Write_Reg(cs, 0, jade_HDLC_IMR,  0x00);
        cs->BC_Write_Reg(cs, 1, jade_HDLC_IMR,  0x00);
        /* Setup host access to hdlc controller */
-       jade_write_indirect(cs, jade_HDLCCNTRACCESS, (jadeINDIRECT_HAH1|jadeINDIRECT_HAH2));
+       jade_write_indirect(cs, jade_HDLCCNTRACCESS, (jadeINDIRECT_HAH1 | jadeINDIRECT_HAH2));
        /* Unmask HDLC int (don't forget DSP int later on)*/
-       cs->BC_Write_Reg(cs, -1,jade_INT, (jadeINT_HDLC1|jadeINT_HDLC2));
+       cs->BC_Write_Reg(cs, -1, jade_INT, (jadeINT_HDLC1 | jadeINT_HDLC2));
 
-       /* once again TRANSPARENT */    
+       /* once again TRANSPARENT */
        modejade(cs->bcs, 0, 0);
        modejade(cs->bcs + 1, 0, 0);
 }
-
index 29055e1..4b98096 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Roland Klabunde
  * Copyright    by Roland Klabunde   <R.Klabunde@Berkom.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 
 /* Special registers for access to indirect accessible JADE regs */
 #define        DIRECT_IO_JADE  0x0000  /* Jade direct io access area */
-#define        COMM_JADE       0x0040  /* Jade communication area */           
+#define        COMM_JADE       0x0040  /* Jade communication area */
 
 /********************************************************************/
-/* JADE-HDLC registers                                                                                     */
+/* JADE-HDLC registers                                                                             */
 /********************************************************************/
-#define jade_HDLC_RFIFO                                        0x00                               /* R */
-#define jade_HDLC_XFIFO                                        0x00                               /* W */
-
-#define        jade_HDLC_STAR                                  0x20                               /* R */
-       #define jadeSTAR_XDOV                           0x80
-       #define jadeSTAR_XFW                            0x40 /* Does not work*/
-       #define jadeSTAR_XCEC                           0x20
-       #define jadeSTAR_RCEC                           0x10
-       #define jadeSTAR_BSY                            0x08
-       #define jadeSTAR_RNA                            0x04
-       #define jadeSTAR_STR                            0x02
-       #define jadeSTAR_STX                            0x01
-
-#define        jade_HDLC_XCMD                                  0x20                               /* W */
-       #define jadeXCMD_XF                             0x80
-       #define jadeXCMD_XME                            0x40
-       #define jadeXCMD_XRES                           0x20
-       #define jadeXCMD_STX                            0x01
-
-#define        jade_HDLC_RSTA                                  0x21                               /* R */
-    #define    jadeRSTA_VFR                            0x80
-    #define    jadeRSTA_RDO                            0x40
-    #define    jadeRSTA_CRC                            0x20
-    #define    jadeRSTA_RAB                            0x10
-    #define    jadeRSTA_MASK                           0xF0
+#define jade_HDLC_RFIFO                                        0x00                               /* R */
+#define jade_HDLC_XFIFO                                        0x00                               /* W */
+
+#define        jade_HDLC_STAR                                  0x20                               /* R */
+#define        jadeSTAR_XDOV                           0x80
+#define        jadeSTAR_XFW                            0x40 /* Does not work*/
+#define        jadeSTAR_XCEC                           0x20
+#define        jadeSTAR_RCEC                           0x10
+#define        jadeSTAR_BSY                            0x08
+#define        jadeSTAR_RNA                            0x04
+#define        jadeSTAR_STR                            0x02
+#define        jadeSTAR_STX                            0x01
+
+#define        jade_HDLC_XCMD                                  0x20                               /* W */
+#define        jadeXCMD_XF                             0x80
+#define        jadeXCMD_XME                            0x40
+#define        jadeXCMD_XRES                           0x20
+#define        jadeXCMD_STX                            0x01
+
+#define        jade_HDLC_RSTA                                  0x21                               /* R */
+#define        jadeRSTA_VFR                            0x80
+#define        jadeRSTA_RDO                            0x40
+#define        jadeRSTA_CRC                            0x20
+#define        jadeRSTA_RAB                            0x10
+#define        jadeRSTA_MASK                           0xF0
 
 #define        jade_HDLC_MODE                                  0x22                               /* RW*/
-    #define    jadeMODE_TMO                            0x80
-    #define    jadeMODE_RAC                            0x40
-    #define    jadeMODE_XAC                            0x20
-    #define    jadeMODE_TLP                            0x10
-    #define    jadeMODE_ERFS                           0x02
-    #define    jadeMODE_ETFS                           0x01
+#define        jadeMODE_TMO                            0x80
+#define        jadeMODE_RAC                            0x40
+#define        jadeMODE_XAC                            0x20
+#define        jadeMODE_TLP                            0x10
+#define        jadeMODE_ERFS                           0x02
+#define        jadeMODE_ETFS                           0x01
 
 #define        jade_HDLC_RBCH                                  0x24                               /* R */
 
-#define        jade_HDLC_RBCL                                  0x25                               /* R */
-#define        jade_HDLC_RCMD                                  0x25                               /* W */
-       #define jadeRCMD_RMC                            0x80
-       #define jadeRCMD_RRES                           0x40
-       #define jadeRCMD_RMD                            0x20
-       #define jadeRCMD_STR                            0x02
+#define        jade_HDLC_RBCL                                  0x25                               /* R */
+#define        jade_HDLC_RCMD                                  0x25                               /* W */
+#define        jadeRCMD_RMC                            0x80
+#define        jadeRCMD_RRES                           0x40
+#define        jadeRCMD_RMD                            0x20
+#define        jadeRCMD_STR                            0x02
 
 #define        jade_HDLC_CCR0                                  0x26                               /* RW*/
-       #define jadeCCR0_PU                             0x80
-       #define jadeCCR0_ITF                            0x40
-       #define jadeCCR0_C32                            0x20
-       #define jadeCCR0_CRL                            0x10
-       #define jadeCCR0_RCRC                           0x08
-       #define jadeCCR0_XCRC                           0x04
-       #define jadeCCR0_RMSB                           0x02
-       #define jadeCCR0_XMSB                           0x01
+#define        jadeCCR0_PU                             0x80
+#define        jadeCCR0_ITF                            0x40
+#define        jadeCCR0_C32                            0x20
+#define        jadeCCR0_CRL                            0x10
+#define        jadeCCR0_RCRC                           0x08
+#define        jadeCCR0_XCRC                           0x04
+#define        jadeCCR0_RMSB                           0x02
+#define        jadeCCR0_XMSB                           0x01
 
 #define        jade_HDLC_CCR1                                  0x27                               /* RW*/
-    #define    jadeCCR1_RCS0                           0x80
-    #define    jadeCCR1_RCONT                          0x40
-    #define    jadeCCR1_RFDIS                          0x20
-    #define    jadeCCR1_XCS0                           0x10
-    #define    jadeCCR1_XCONT                          0x08
-    #define    jadeCCR1_XFDIS                          0x04
+#define        jadeCCR1_RCS0                           0x80
+#define        jadeCCR1_RCONT                          0x40
+#define        jadeCCR1_RFDIS                          0x20
+#define        jadeCCR1_XCS0                           0x10
+#define        jadeCCR1_XCONT                          0x08
+#define        jadeCCR1_XFDIS                          0x04
 
 #define        jade_HDLC_TSAR                                  0x28                               /* RW*/
 #define        jade_HDLC_TSAX                                  0x29                               /* RW*/
 #define        jade_HDLC_RCCR                                  0x2A                               /* RW*/
 #define        jade_HDLC_XCCR                                  0x2B                               /* RW*/
 
-#define        jade_HDLC_ISR                                   0x2C                               /* R */
-#define        jade_HDLC_IMR                                   0x2C                               /* W */
-       #define jadeISR_RME                                     0x80
-       #define jadeISR_RPF                                     0x40
-       #define jadeISR_RFO                                     0x20
-       #define jadeISR_XPR                                     0x10
-       #define jadeISR_XDU                                     0x08
-       #define jadeISR_ALLS                            0x04
-
-#define jade_INT                               0x75
-    #define jadeINT_HDLC1                      0x02
-    #define jadeINT_HDLC2                      0x01
-    #define jadeINT_DSP                                0x04
-#define jade_INTR                              0x70
+#define        jade_HDLC_ISR                                   0x2C                               /* R */
+#define        jade_HDLC_IMR                                   0x2C                               /* W */
+#define        jadeISR_RME                                     0x80
+#define        jadeISR_RPF                                     0x40
+#define        jadeISR_RFO                                     0x20
+#define        jadeISR_XPR                                     0x10
+#define        jadeISR_XDU                                     0x08
+#define        jadeISR_ALLS                            0x04
+
+#define jade_INT                               0x75
+#define jadeINT_HDLC1                          0x02
+#define jadeINT_HDLC2                          0x01
+#define jadeINT_DSP                            0x04
+#define jade_INTR                              0x70
 
 /********************************************************************/
-/* Indirect accessible JADE registers of common interest                       */
+/* Indirect accessible JADE registers of common interest                       */
 /********************************************************************/
 #define        jade_CHIPVERSIONNR                              0x00 /* Does not work*/
 
-#define        jade_HDLCCNTRACCESS                             0x10            
-       #define jadeINDIRECT_HAH1                       0x02
-       #define jadeINDIRECT_HAH2                       0x01
+#define        jade_HDLCCNTRACCESS                             0x10
+#define        jadeINDIRECT_HAH1                       0x02
+#define        jadeINDIRECT_HAH2                       0x01
 
 #define        jade_HDLC1SERRXPATH                             0x1D
 #define        jade_HDLC1SERTXPATH                             0x1E
 #define        jade_HDLC2SERRXPATH                             0x1F
 #define        jade_HDLC2SERTXPATH                             0x20
-       #define jadeINDIRECT_SLIN1                      0x10
-       #define jadeINDIRECT_SLIN0                      0x08
-       #define jadeINDIRECT_LMOD1                      0x04
-       #define jadeINDIRECT_LMOD0                      0x02
-       #define jadeINDIRECT_HHR                        0x01
-       #define jadeINDIRECT_HHX                        0x01
+#define        jadeINDIRECT_SLIN1                      0x10
+#define        jadeINDIRECT_SLIN0                      0x08
+#define        jadeINDIRECT_LMOD1                      0x04
+#define        jadeINDIRECT_LMOD0                      0x02
+#define        jadeINDIRECT_HHR                        0x01
+#define        jadeINDIRECT_HHX                        0x01
 
 #define        jade_RXAUDIOCH1CFG                              0x11
 #define        jade_RXAUDIOCH2CFG                              0x14
index 1f201af..f521fc8 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Roland Klabunde
  * Copyright    by Roland Klabunde   <R.Klabunde@Berkom.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 static inline void
 waitforCEC(struct IsdnCardState *cs, int jade, int reg)
 {
-       int to = 50;
-       int mask = (reg == jade_HDLC_XCMD ? jadeSTAR_XCEC : jadeSTAR_RCEC);
-       while ((READJADE(cs, jade, jade_HDLC_STAR) & mask) && to) {
-               udelay(1);
-               to--;
-       }
-       if (!to)
-               printk(KERN_WARNING "HiSax: waitforCEC (jade) timeout\n");
+       int to = 50;
+       int mask = (reg == jade_HDLC_XCMD ? jadeSTAR_XCEC : jadeSTAR_RCEC);
+       while ((READJADE(cs, jade, jade_HDLC_STAR) & mask) && to) {
+               udelay(1);
+               to--;
+       }
+       if (!to)
+               printk(KERN_WARNING "HiSax: waitforCEC (jade) timeout\n");
 }
 
 
 static inline void
 waitforXFW(struct IsdnCardState *cs, int jade)
 {
-       /* Does not work on older jade versions, don't care */
+       /* Does not work on older jade versions, don't care */
 }
 
 static inline void
@@ -98,7 +98,7 @@ jade_fill_fifo(struct BCState *bcs)
        bcs->tx_cnt -= count;
        bcs->hw.hscx.count += count;
        WRITEJADEFIFO(cs, bcs->hw.hscx.hscx, ptr, count);
-       WriteJADECMDR(cs, bcs->hw.hscx.hscx, jade_HDLC_XCMD, more ? jadeXCMD_XF : (jadeXCMD_XF|jadeXCMD_XME));
+       WriteJADECMDR(cs, bcs->hw.hscx.hscx, jade_HDLC_XCMD, more ? jadeXCMD_XF : (jadeXCMD_XF | jadeXCMD_XME));
        if (cs->debug & L1_DEB_HSCX_FIFO) {
                char *t = bcs->blog;
 
@@ -119,7 +119,7 @@ jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade)
        int fifo_size = 32;
        int count;
        int i_jade = (int) jade; /* To satisfy the compiler */
-       
+
        if (!test_bit(BC_FLG_INIT, &bcs->Flag))
                return;
 
@@ -128,13 +128,13 @@ jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade)
                if ((r & 0xf0) != 0xa0) {
                        if (!(r & 0x80))
                                if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "JADE %s invalid frame", (jade ? "B":"A"));
+                                       debugl1(cs, "JADE %s invalid frame", (jade ? "B" : "A"));
                        if ((r & 0x40) && bcs->mode)
                                if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "JADE %c RDO mode=%d", 'A'+jade, bcs->mode);
+                                       debugl1(cs, "JADE %c RDO mode=%d", 'A' + jade, bcs->mode);
                        if (!(r & 0x20))
                                if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, "JADE %c CRC error", 'A'+jade);
+                                       debugl1(cs, "JADE %c CRC error", 'A' + jade);
                        WriteJADECMDR(cs, jade, jade_HDLC_RCMD, jadeRCMD_RMC);
                } else {
                        count = READJADE(cs, i_jade, jade_HDLC_RBCL) & 0x1F;
@@ -145,7 +145,7 @@ jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade)
                                if (cs->debug & L1_DEB_HSCX_FIFO)
                                        debugl1(cs, "HX Frame %d", count);
                                if (!(skb = dev_alloc_skb(count)))
-                                       printk(KERN_WARNING "JADE %s receive out of memory\n", (jade ? "B":"A"));
+                                       printk(KERN_WARNING "JADE %s receive out of memory\n", (jade ? "B" : "A"));
                                else {
                                        memcpy(skb_put(skb, count), bcs->hw.hscx.rcvbuf, count);
                                        skb_queue_tail(&bcs->rqueue, skb);
@@ -175,8 +175,8 @@ jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade)
                                jade_fill_fifo(bcs);
                                return;
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                        u_long  flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->hw.hscx.count;
@@ -204,7 +204,7 @@ jade_int_main(struct IsdnCardState *cs, u_char val, int jade)
 {
        struct BCState *bcs;
        bcs = cs->bcs + jade;
-       
+
        if (val & jadeISR_RFO) {
                /* handled with RDO */
                val &= ~jadeISR_RFO;
@@ -216,21 +216,21 @@ jade_int_main(struct IsdnCardState *cs, u_char val, int jade)
                        jade_fill_fifo(bcs);
                else {
                        /* Here we lost an TX interrupt, so
-                          * restart transmitting the whole frame.
+                        * restart transmitting the whole frame.
                         */
                        if (bcs->tx_skb) {
-                               skb_push(bcs->tx_skb, bcs->hw.hscx.count);
+                               skb_push(bcs->tx_skb, bcs->hw.hscx.count);
                                bcs->tx_cnt += bcs->hw.hscx.count;
                                bcs->hw.hscx.count = 0;
                        }
                        WriteJADECMDR(cs, bcs->hw.hscx.hscx, jade_HDLC_XCMD, jadeXCMD_XRES);
                        if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "JADE %c EXIR %x Lost TX", 'A'+jade, val);
+                               debugl1(cs, "JADE %c EXIR %x Lost TX", 'A' + jade, val);
                }
        }
-       if (val & (jadeISR_RME|jadeISR_RPF|jadeISR_XPR)) {
+       if (val & (jadeISR_RME | jadeISR_RPF | jadeISR_XPR)) {
                if (cs->debug & L1_DEB_HSCX)
-                       debugl1(cs, "JADE %c interrupt %x", 'A'+jade, val);
+                       debugl1(cs, "JADE %c interrupt %x", 'A' + jade, val);
                jade_interrupt(cs, val, jade);
        }
 }
index ee4dae1..4c1bca5 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 extern char *HiSax_getrev(const char *revision);
 static const char *l3_1tr6_revision = "$Revision: 2.15.2.3 $";
 
-#define MsgHead(ptr, cref, mty, dis) \
-       *ptr++ = dis; \
-       *ptr++ = 0x1; \
-       *ptr++ = cref ^ 0x80; \
+#define MsgHead(ptr, cref, mty, dis)           \
+       *ptr++ = dis;                           \
+       *ptr++ = 0x1;                           \
+       *ptr++ = cref ^ 0x80;                   \
        *ptr++ = mty
 
 static void
@@ -83,23 +83,23 @@ l3_1tr6_setup_req(struct l3_process *pc, u_char pr, void *arg)
        pc->para.spv = 0;
        if (!isdigit(*teln)) {
                switch (0x5f & *teln) {
-                       case 'S':
-                               pc->para.spv = 1;
-                               break;
-                       case 'C':
-                               channel = 0x08;
-                       case 'P':
-                               channel |= 0x80;
-                               teln++;
-                               if (*teln == '1')
-                                       channel |= 0x01;
-                               else
-                                       channel |= 0x02;
-                               break;
-                       default:
-                               if (pc->st->l3.debug & L3_DEB_WARN)
-                                       l3_debug(pc->st, "Wrong MSN Code");
-                               break;
+               case 'S':
+                       pc->para.spv = 1;
+                       break;
+               case 'C':
+                       channel = 0x08;
+               case 'P':
+                       channel |= 0x80;
+                       teln++;
+                       if (*teln == '1')
+                               channel |= 0x01;
+                       else
+                               channel |= 0x02;
+                       break;
+               default:
+                       if (pc->st->l3.debug & L3_DEB_WARN)
+                               l3_debug(pc->st, "Wrong MSN Code");
+                       break;
                }
                teln++;
        }
@@ -176,7 +176,7 @@ l3_1tr6_setup(struct l3_process *pc, u_char pr, void *arg)
                        return;
                }
                if ((pc->para.bchannel = p[2] & 0x3))
-                               bcfound++;
+                       bcfound++;
        } else {
                l3_1tr6_error(pc, "missing setup chanID", skb);
                return;
@@ -525,15 +525,15 @@ l3_1tr6_disconnect_req(struct l3_process *pc, u_char pr, void *arg)
                cause = pc->para.cause;
        /* Map DSS1 causes */
        switch (cause & 0x7f) {
-               case 0x10:
-                       clen = 0;
-                       break;
-                case 0x11:
-                        cause = CAUSE_UserBusy;
-                        break;
-               case 0x15:
-                       cause = CAUSE_CallRejected;
-                       break;
+       case 0x10:
+               clen = 0;
+               break;
+       case 0x11:
+               cause = CAUSE_UserBusy;
+               break;
+       case 0x15:
+               cause = CAUSE_CallRejected;
+               break;
        }
        StopAllL3Timer(pc);
        MsgHead(p, pc->callref, MT_N1_DISC, PROTO_DIS_N1);
@@ -588,12 +588,12 @@ l3_1tr6_t305(struct l3_process *pc, u_char pr, void *arg)
                cause = pc->para.cause;
        /* Map DSS1 causes */
        switch (cause & 0x7f) {
-               case 0x10:
-                       clen = 0;
-                       break;
-               case 0x15:
-                       cause = CAUSE_CallRejected;
-                       break;
+       case 0x10:
+               clen = 0;
+               break;
+       case 0x15:
+               cause = CAUSE_CallRejected;
+               break;
        }
        MsgHead(p, pc->callref, MT_N1_REL, PROTO_DIS_N1);
        *p++ = WE0_cause;
@@ -647,19 +647,19 @@ l3_1tr6_t308_2(struct l3_process *pc, u_char pr, void *arg)
 static void
 l3_1tr6_dl_reset(struct l3_process *pc, u_char pr, void *arg)
 {
-        pc->para.cause = CAUSE_LocalProcErr;
-        l3_1tr6_disconnect_req(pc, pr, NULL);
-        pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc);
+       pc->para.cause = CAUSE_LocalProcErr;
+       l3_1tr6_disconnect_req(pc, pr, NULL);
+       pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc);
 }
 
 static void
 l3_1tr6_dl_release(struct l3_process *pc, u_char pr, void *arg)
 {
-        newl3state(pc, 0);
-        pc->para.cause = 0x1b;          /* Destination out of order */
-        pc->para.loc = 0;
-        pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
-        release_l3_process(pc);
+       newl3state(pc, 0);
+       pc->para.cause = 0x1b;          /* Destination out of order */
+       pc->para.loc = 0;
+       pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
+       release_l3_process(pc);
 }
 
 /* *INDENT-OFF* */
@@ -667,9 +667,9 @@ static struct stateentry downstl[] =
 {
        {SBIT(0),
         CC_SETUP | REQUEST, l3_1tr6_setup_req},
-       {SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(6) | SBIT(7) | SBIT(8) |
-        SBIT(10),
-        CC_DISCONNECT | REQUEST, l3_1tr6_disconnect_req},
+       {SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(6) | SBIT(7) | SBIT(8) |
+        SBIT(10),
+        CC_DISCONNECT | REQUEST, l3_1tr6_disconnect_req},
        {SBIT(12),
         CC_RELEASE | REQUEST, l3_1tr6_release_req},
        {SBIT(6),
@@ -732,12 +732,12 @@ static struct stateentry datastln1[] =
 
 static struct stateentry manstatelist[] =
 {
-        {SBIT(2),
-         DL_ESTABLISH | INDICATION, l3_1tr6_dl_reset},
-        {ALL_STATES,
-         DL_RELEASE | INDICATION, l3_1tr6_dl_release},
+       {SBIT(2),
+        DL_ESTABLISH | INDICATION, l3_1tr6_dl_reset},
+       {ALL_STATES,
+        DL_RELEASE | INDICATION, l3_1tr6_dl_release},
 };
+
 /* *INDENT-ON* */
 
 static void
@@ -749,16 +749,16 @@ up1tr6(struct PStack *st, int pr, void *arg)
        char tmp[80];
 
        switch (pr) {
-               case (DL_DATA | INDICATION):
-               case (DL_UNIT_DATA | INDICATION):
-                       break;
-               case (DL_ESTABLISH | CONFIRM):
-               case (DL_ESTABLISH | INDICATION):
-               case (DL_RELEASE | INDICATION):
-               case (DL_RELEASE | CONFIRM):
-                       l3_msg(st, pr, arg);
-                       return;
-                       break;
+       case (DL_DATA | INDICATION):
+       case (DL_UNIT_DATA | INDICATION):
+               break;
+       case (DL_ESTABLISH | CONFIRM):
+       case (DL_ESTABLISH | INDICATION):
+       case (DL_RELEASE | INDICATION):
+       case (DL_RELEASE | CONFIRM):
+               l3_msg(st, pr, arg);
+               return;
+               break;
        }
        if (skb->len < 4) {
                if (st->l3.debug & L3_DEB_PROTERR) {
@@ -792,12 +792,12 @@ up1tr6(struct PStack *st, int pr, void *arg)
                dev_kfree_skb(skb);
                if (st->l3.debug & L3_DEB_STATE) {
                        sprintf(tmp, "up1tr6%s N0 mt %x unhandled",
-                            (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ", mt);
+                               (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ", mt);
                        l3_debug(st, tmp);
                }
        } else if (skb->data[0] == PROTO_DIS_N1) {
                if (!(proc = getl3proc(st, cr))) {
-                       if (mt == MT_N1_SETUP) { 
+                       if (mt == MT_N1_SETUP) {
                                if (cr < 128) {
                                        if (!(proc = new_l3_process(st, cr))) {
                                                if (st->l3.debug & L3_DEB_PROTERR) {
@@ -812,10 +812,10 @@ up1tr6(struct PStack *st, int pr, void *arg)
                                        return;
                                }
                        } else if ((mt == MT_N1_REL) || (mt == MT_N1_REL_ACK) ||
-                               (mt == MT_N1_CANC_ACK) || (mt == MT_N1_CANC_REJ) ||
-                               (mt == MT_N1_REG_ACK) || (mt == MT_N1_REG_REJ) ||
-                               (mt == MT_N1_SUSP_ACK) || (mt == MT_N1_RES_REJ) ||
-                               (mt == MT_N1_INFO)) {
+                                  (mt == MT_N1_CANC_ACK) || (mt == MT_N1_CANC_REJ) ||
+                                  (mt == MT_N1_REG_ACK) || (mt == MT_N1_REG_REJ) ||
+                                  (mt == MT_N1_SUSP_ACK) || (mt == MT_N1_RES_REJ) ||
+                                  (mt == MT_N1_INFO)) {
                                dev_kfree_skb(skb);
                                return;
                        } else {
@@ -838,7 +838,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
                        dev_kfree_skb(skb);
                        if (st->l3.debug & L3_DEB_STATE) {
                                sprintf(tmp, "up1tr6%sstate %d mt %x unhandled",
-                                 (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
+                                       (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
                                        proc->state, mt);
                                l3_debug(st, tmp);
                        }
@@ -846,7 +846,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
                } else {
                        if (st->l3.debug & L3_DEB_STATE) {
                                sprintf(tmp, "up1tr6%sstate %d mt %x",
-                                 (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
+                                       (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
                                        proc->state, mt);
                                l3_debug(st, tmp);
                        }
@@ -863,7 +863,7 @@ down1tr6(struct PStack *st, int pr, void *arg)
        struct Channel *chan;
        char tmp[80];
 
-       if ((DL_ESTABLISH | REQUEST)== pr) {
+       if ((DL_ESTABLISH | REQUEST) == pr) {
                l3_msg(st, pr, NULL);
                return;
        } else if ((CC_SETUP | REQUEST) == pr) {
@@ -905,31 +905,31 @@ down1tr6(struct PStack *st, int pr, void *arg)
 static void
 man1tr6(struct PStack *st, int pr, void *arg)
 {
-        int i;
-        struct l3_process *proc = arg;
-        if (!proc) {
-                printk(KERN_ERR "HiSax man1tr6 without proc pr=%04x\n", pr);
-                return;
-        }
-        for (i = 0; i < ARRAY_SIZE(manstatelist); i++)
-                if ((pr == manstatelist[i].primitive) &&
-                    ((1 << proc->state) & manstatelist[i].state))
-                        break;
-        if (i == ARRAY_SIZE(manstatelist)) {
-                if (st->l3.debug & L3_DEB_STATE) {
-                        l3_debug(st, "cr %d man1tr6 state %d prim %d unhandled",
-                                proc->callref & 0x7f, proc->state, pr);
-                }
-        } else {
-                if (st->l3.debug & L3_DEB_STATE) {
-                        l3_debug(st, "cr %d man1tr6 state %d prim %d",
-                                proc->callref & 0x7f, proc->state, pr);
-                }
-                manstatelist[i].rout(proc, pr, arg);
-        }
-}
+       int i;
+       struct l3_process *proc = arg;
+
+       if (!proc) {
+               printk(KERN_ERR "HiSax man1tr6 without proc pr=%04x\n", pr);
+               return;
+       }
+       for (i = 0; i < ARRAY_SIZE(manstatelist); i++)
+               if ((pr == manstatelist[i].primitive) &&
+                   ((1 << proc->state) & manstatelist[i].state))
+                       break;
+       if (i == ARRAY_SIZE(manstatelist)) {
+               if (st->l3.debug & L3_DEB_STATE) {
+                       l3_debug(st, "cr %d man1tr6 state %d prim %d unhandled",
+                                proc->callref & 0x7f, proc->state, pr);
+               }
+       } else {
+               if (st->l3.debug & L3_DEB_STATE) {
+                       l3_debug(st, "cr %d man1tr6 state %d prim %d",
+                                proc->callref & 0x7f, proc->state, pr);
+               }
+               manstatelist[i].rout(proc, pr, arg);
+       }
+}
+
 void
 setstack_1tr6(struct PStack *st)
 {
index 6a8acf6..cda7006 100644 (file)
@@ -7,7 +7,7 @@
  * Author       Karsten Keil
  *              based on the teles driver from Jan den Ouden
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -30,14 +30,14 @@ static const char *dss1_revision = "$Revision: 2.32.2.3 $";
 
 #define EXT_BEARER_CAPS 1
 
-#define        MsgHead(ptr, cref, mty) \
-       *ptr++ = 0x8; \
-       if (cref == -1) { \
-               *ptr++ = 0x0; \
-       } else { \
-               *ptr++ = 0x1; \
-               *ptr++ = cref^0x80; \
-       } \
+#define        MsgHead(ptr, cref, mty)                 \
+       *ptr++ = 0x8;                           \
+       if (cref == -1) {                       \
+               *ptr++ = 0x0;                   \
+       } else {                                \
+               *ptr++ = 0x1;                   \
+               *ptr++ = cref^0x80;             \
+       }                                       \
        *ptr++ = mty
 
 
@@ -49,22 +49,22 @@ static unsigned char new_invoke_id(struct PStack *p)
 {
        unsigned char retval;
        int i;
-  
+
        i = 32; /* maximum search depth */
 
        retval = p->prot.dss1.last_invoke_id + 1; /* try new id */
        while ((i) && (p->prot.dss1.invoke_used[retval >> 3] == 0xFF)) {
                p->prot.dss1.last_invoke_id = (retval & 0xF8) + 8;
                i--;
-       }  
+       }
        if (i) {
                while (p->prot.dss1.invoke_used[retval >> 3] & (1 << (retval & 7)))
-               retval++; 
+                       retval++;
        } else
                retval = 0;
        p->prot.dss1.last_invoke_id = retval;
        p->prot.dss1.invoke_used[retval >> 3] |= (1 << (retval & 7));
-       return(retval);  
+       return (retval);
 } /* new_invoke_id */
 
 /*************************/
@@ -73,10 +73,10 @@ static unsigned char new_invoke_id(struct PStack *p)
 static void free_invoke_id(struct PStack *p, unsigned char id)
 {
 
-  if (!id) return; /* 0 = invalid value */
+       if (!id) return; /* 0 = invalid value */
 
-  p->prot.dss1.invoke_used[id >> 3] &= ~(1 << (id & 7));
-} /* free_invoke_id */  
+       p->prot.dss1.invoke_used[id >> 3] &= ~(1 << (id & 7));
+} /* free_invoke_id */
 
 
 /**********************************************************/
@@ -86,26 +86,26 @@ static struct l3_process
 *dss1_new_l3_process(struct PStack *st, int cr)
 {  struct l3_process *proc;
 
-   if (!(proc = new_l3_process(st, cr))) 
-     return(NULL);
+       if (!(proc = new_l3_process(st, cr)))
+               return (NULL);
 
-   proc->prot.dss1.invoke_id = 0;
-   proc->prot.dss1.remote_operation = 0;
-   proc->prot.dss1.uus1_data[0] = '\0';
-   
-   return(proc);
+       proc->prot.dss1.invoke_id = 0;
+       proc->prot.dss1.remote_operation = 0;
+       proc->prot.dss1.uus1_data[0] = '\0';
+
+       return (proc);
 } /* dss1_new_l3_process */
 
 /************************************************/
 /* free a l3 process and all dss1 specific data */
-/************************************************/ 
+/************************************************/
 static void
 dss1_release_l3_process(struct l3_process *p)
 {
-   free_invoke_id(p->st,p->prot.dss1.invoke_id);
-   release_l3_process(p);
+       free_invoke_id(p->st, p->prot.dss1.invoke_id);
+       release_l3_process(p);
 } /* dss1_release_l3_process */
+
 /********************************************************/
 /* search a process with invoke id id and dummy callref */
 /********************************************************/
@@ -113,120 +113,120 @@ static struct l3_process *
 l3dss1_search_dummy_proc(struct PStack *st, int id)
 { struct l3_process *pc = st->l3.proc; /* start of processes */
 
-  if (!id) return(NULL);
+       if (!id) return (NULL);
 
-  while (pc)
-   { if ((pc->callref == -1) && (pc->prot.dss1.invoke_id == id))
-       return(pc);
-     pc = pc->next;
-   } 
-  return(NULL);
+       while (pc)
+       { if ((pc->callref == -1) && (pc->prot.dss1.invoke_id == id))
+                       return (pc);
+               pc = pc->next;
+       }
+       return (NULL);
 } /* l3dss1_search_dummy_proc */
 
 /*******************************************************************/
 /* called when a facility message with a dummy callref is received */
 /* and a return result is delivered. id specifies the invoke id.   */
-/*******************************************************************/ 
-static void 
+/*******************************************************************/
+static void
 l3dss1_dummy_return_result(struct PStack *st, int id, u_char *p, u_char nlen)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs;
-  struct l3_process *pc = NULL; 
-
-  if ((pc = l3dss1_search_dummy_proc(st, id)))
-   { L3DelTimer(&pc->timer); /* remove timer */
-
-     cs = pc->st->l1.hardware;
-     ic.driver = cs->myid;
-     ic.command = ISDN_STAT_PROT;
-     ic.arg = DSS1_STAT_INVOKE_RES;
-     ic.parm.dss1_io.hl_id = pc->prot.dss1.invoke_id;
-     ic.parm.dss1_io.ll_id = pc->prot.dss1.ll_id;
-     ic.parm.dss1_io.proc = pc->prot.dss1.proc;
-     ic.parm.dss1_io.timeout= 0;
-     ic.parm.dss1_io.datalen = nlen;
-     ic.parm.dss1_io.data = p;
-     free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
-     pc->prot.dss1.invoke_id = 0; /* reset id */
-
-     cs->iif.statcallb(&ic);
-     dss1_release_l3_process(pc); 
-   }
-  else
-   l3_debug(st, "dummy return result id=0x%x result len=%d",id,nlen);
+       struct IsdnCardState *cs;
+       struct l3_process *pc = NULL;
+
+       if ((pc = l3dss1_search_dummy_proc(st, id)))
+       { L3DelTimer(&pc->timer); /* remove timer */
+
+               cs = pc->st->l1.hardware;
+               ic.driver = cs->myid;
+               ic.command = ISDN_STAT_PROT;
+               ic.arg = DSS1_STAT_INVOKE_RES;
+               ic.parm.dss1_io.hl_id = pc->prot.dss1.invoke_id;
+               ic.parm.dss1_io.ll_id = pc->prot.dss1.ll_id;
+               ic.parm.dss1_io.proc = pc->prot.dss1.proc;
+               ic.parm.dss1_io.timeout = 0;
+               ic.parm.dss1_io.datalen = nlen;
+               ic.parm.dss1_io.data = p;
+               free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
+               pc->prot.dss1.invoke_id = 0; /* reset id */
+
+               cs->iif.statcallb(&ic);
+               dss1_release_l3_process(pc);
+       }
+       else
+               l3_debug(st, "dummy return result id=0x%x result len=%d", id, nlen);
 } /* l3dss1_dummy_return_result */
 
 /*******************************************************************/
 /* called when a facility message with a dummy callref is received */
 /* and a return error is delivered. id specifies the invoke id.    */
-/*******************************************************************/ 
-static void 
+/*******************************************************************/
+static void
 l3dss1_dummy_error_return(struct PStack *st, int id, ulong error)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs;
-  struct l3_process *pc = NULL; 
-
-  if ((pc = l3dss1_search_dummy_proc(st, id)))
-   { L3DelTimer(&pc->timer); /* remove timer */
-
-     cs = pc->st->l1.hardware;
-     ic.driver = cs->myid;
-     ic.command = ISDN_STAT_PROT;
-     ic.arg = DSS1_STAT_INVOKE_ERR;
-     ic.parm.dss1_io.hl_id = pc->prot.dss1.invoke_id;
-     ic.parm.dss1_io.ll_id = pc->prot.dss1.ll_id;
-     ic.parm.dss1_io.proc = pc->prot.dss1.proc;
-     ic.parm.dss1_io.timeout= error;
-     ic.parm.dss1_io.datalen = 0;
-     ic.parm.dss1_io.data = NULL;
-     free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
-     pc->prot.dss1.invoke_id = 0; /* reset id */
-
-     cs->iif.statcallb(&ic);
-     dss1_release_l3_process(pc); 
-   }
-  else
-   l3_debug(st, "dummy return error id=0x%x error=0x%lx",id,error);
+       struct IsdnCardState *cs;
+       struct l3_process *pc = NULL;
+
+       if ((pc = l3dss1_search_dummy_proc(st, id)))
+       { L3DelTimer(&pc->timer); /* remove timer */
+
+               cs = pc->st->l1.hardware;
+               ic.driver = cs->myid;
+               ic.command = ISDN_STAT_PROT;
+               ic.arg = DSS1_STAT_INVOKE_ERR;
+               ic.parm.dss1_io.hl_id = pc->prot.dss1.invoke_id;
+               ic.parm.dss1_io.ll_id = pc->prot.dss1.ll_id;
+               ic.parm.dss1_io.proc = pc->prot.dss1.proc;
+               ic.parm.dss1_io.timeout = error;
+               ic.parm.dss1_io.datalen = 0;
+               ic.parm.dss1_io.data = NULL;
+               free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
+               pc->prot.dss1.invoke_id = 0; /* reset id */
+
+               cs->iif.statcallb(&ic);
+               dss1_release_l3_process(pc);
+       }
+       else
+               l3_debug(st, "dummy return error id=0x%x error=0x%lx", id, error);
 } /* l3dss1_error_return */
 
 /*******************************************************************/
 /* called when a facility message with a dummy callref is received */
 /* and a invoke is delivered. id specifies the invoke id.          */
-/*******************************************************************/ 
-static void 
-l3dss1_dummy_invoke(struct PStack *st, int cr, int id, 
-                    int ident, u_char *p, u_char nlen)
+/*******************************************************************/
+static void
+l3dss1_dummy_invoke(struct PStack *st, int cr, int id,
+                   int ident, u_char *p, u_char nlen)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs;
-  
-  l3_debug(st, "dummy invoke %s id=0x%x ident=0x%x datalen=%d",
-               (cr == -1) ? "local" : "broadcast",id,ident,nlen);
-  if (cr >= -1) return; /* ignore local data */
-
-  cs = st->l1.hardware;
-  ic.driver = cs->myid;
-  ic.command = ISDN_STAT_PROT;
-  ic.arg = DSS1_STAT_INVOKE_BRD;
-  ic.parm.dss1_io.hl_id = id;
-  ic.parm.dss1_io.ll_id = 0;
-  ic.parm.dss1_io.proc = ident;
-  ic.parm.dss1_io.timeout= 0;
-  ic.parm.dss1_io.datalen = nlen;
-  ic.parm.dss1_io.data = p;
-
-  cs->iif.statcallb(&ic);
+       struct IsdnCardState *cs;
+
+       l3_debug(st, "dummy invoke %s id=0x%x ident=0x%x datalen=%d",
+                (cr == -1) ? "local" : "broadcast", id, ident, nlen);
+       if (cr >= -1) return; /* ignore local data */
+
+       cs = st->l1.hardware;
+       ic.driver = cs->myid;
+       ic.command = ISDN_STAT_PROT;
+       ic.arg = DSS1_STAT_INVOKE_BRD;
+       ic.parm.dss1_io.hl_id = id;
+       ic.parm.dss1_io.ll_id = 0;
+       ic.parm.dss1_io.proc = ident;
+       ic.parm.dss1_io.timeout = 0;
+       ic.parm.dss1_io.datalen = nlen;
+       ic.parm.dss1_io.data = p;
+
+       cs->iif.statcallb(&ic);
 } /* l3dss1_dummy_invoke */
 
 static void
 l3dss1_parse_facility(struct PStack *st, struct l3_process *pc,
-                      int cr, u_char * p)
+                     int cr, u_char *p)
 {
        int qd_len = 0;
        unsigned char nlen = 0, ilen, cp_tag;
        int ident, id;
        ulong err_ret;
 
-       if (pc) 
+       if (pc)
                st = pc->st; /* valid Stack */
        else
                if ((!st) || (cr >= 0)) return; /* neither pc nor st specified */
@@ -255,243 +255,243 @@ l3dss1_parse_facility(struct PStack *st, struct l3_process *pc,
                l3_debug(st, "class and form != 0xA0");
                return;
        }
-       
-        cp_tag = *p & 0x1F; /* remember tag value */
 
-        p++;
+       cp_tag = *p & 0x1F; /* remember tag value */
+
+       p++;
        qd_len--;
-       if (qd_len < 1) 
-          { l3_debug(st, "qd_len < 1");
-           return;
-         }
-       if (*p & 0x80) 
-          { /* length format indefinite or limited */
-           nlen = *p++ & 0x7F; /* number of len bytes or indefinite */
-            if ((qd_len-- < ((!nlen) ? 3 : (1 + nlen))) ||
-                (nlen > 1))   
-            { l3_debug(st, "length format error or not implemented");
-              return;
-             }
-            if (nlen == 1)
-            { nlen = *p++; /* complete length */
-               qd_len--;
-             } 
-            else
-            { qd_len -= 2; /* trailing null bytes */
-               if ((*(p+qd_len)) || (*(p+qd_len+1)))
-               { l3_debug(st,"length format indefinite error");
-                  return;
-                }
-               nlen = qd_len;
-             }
-         }
-        else
-         { nlen = *p++;
-           qd_len--;
-          } 
-       if (qd_len < nlen) 
-          { l3_debug(st, "qd_len < nlen");
-           return;
-         }
+       if (qd_len < 1)
+       { l3_debug(st, "qd_len < 1");
+               return;
+       }
+       if (*p & 0x80)
+       { /* length format indefinite or limited */
+               nlen = *p++ & 0x7F; /* number of len bytes or indefinite */
+               if ((qd_len-- < ((!nlen) ? 3 : (1 + nlen))) ||
+                   (nlen > 1))
+               { l3_debug(st, "length format error or not implemented");
+                       return;
+               }
+               if (nlen == 1)
+               { nlen = *p++; /* complete length */
+                       qd_len--;
+               }
+               else
+               { qd_len -= 2; /* trailing null bytes */
+                       if ((*(p + qd_len)) || (*(p + qd_len + 1)))
+                       { l3_debug(st, "length format indefinite error");
+                               return;
+                       }
+                       nlen = qd_len;
+               }
+       }
+       else
+       { nlen = *p++;
+               qd_len--;
+       }
+       if (qd_len < nlen)
+       { l3_debug(st, "qd_len < nlen");
+               return;
+       }
        qd_len -= nlen;
 
-       if (nlen < 2) 
-          { l3_debug(st, "nlen < 2");
-           return;
-         }
-        if (*p != 0x02) 
-          {  /* invoke identifier tag */
-            l3_debug(st, "invoke identifier tag !=0x02");
-            return;
-         }
+       if (nlen < 2)
+       { l3_debug(st, "nlen < 2");
+               return;
+       }
+       if (*p != 0x02)
+       {  /* invoke identifier tag */
+               l3_debug(st, "invoke identifier tag !=0x02");
+               return;
+       }
        p++;
        nlen--;
-       if (*p & 0x80) 
-          { /* length format */
-           l3_debug(st, "invoke id length format 2");
-           return;
-         }
+       if (*p & 0x80)
+       { /* length format */
+               l3_debug(st, "invoke id length format 2");
+               return;
+       }
        ilen = *p++;
        nlen--;
-       if (ilen > nlen || ilen == 0) 
-          { l3_debug(st, "ilen > nlen || ilen == 0");
-           return;
-         }
+       if (ilen > nlen || ilen == 0)
+       { l3_debug(st, "ilen > nlen || ilen == 0");
+               return;
+       }
        nlen -= ilen;
        id = 0;
-       while (ilen > 0) 
-          { id = (id << 8) | (*p++ & 0xFF);    /* invoke identifier */
-           ilen--;
-         }
+       while (ilen > 0)
+       { id = (id << 8) | (*p++ & 0xFF);       /* invoke identifier */
+               ilen--;
+       }
 
        switch (cp_tag) {       /* component tag */
-               case 1: /* invoke */
-                               if (nlen < 2) {
-                                       l3_debug(st, "nlen < 2 22");
-                                       return;
-                               }
-                               if (*p != 0x02) {       /* operation value */
-                                       l3_debug(st, "operation value !=0x02");
-                                       return;
-                               }
-                               p++;
-                               nlen--;
-                               ilen = *p++;
-                               nlen--;
-                               if (ilen > nlen || ilen == 0) {
-                                       l3_debug(st, "ilen > nlen || ilen == 0 22");
-                                       return;
-                               }
-                               nlen -= ilen;
-                               ident = 0;
-                               while (ilen > 0) {
-                                       ident = (ident << 8) | (*p++ & 0xFF);
-                                       ilen--;
-                               }
+       case 1: /* invoke */
+               if (nlen < 2) {
+                       l3_debug(st, "nlen < 2 22");
+                       return;
+               }
+               if (*p != 0x02) {       /* operation value */
+                       l3_debug(st, "operation value !=0x02");
+                       return;
+               }
+               p++;
+               nlen--;
+               ilen = *p++;
+               nlen--;
+               if (ilen > nlen || ilen == 0) {
+                       l3_debug(st, "ilen > nlen || ilen == 0 22");
+                       return;
+               }
+               nlen -= ilen;
+               ident = 0;
+               while (ilen > 0) {
+                       ident = (ident << 8) | (*p++ & 0xFF);
+                       ilen--;
+               }
 
-                                if (!pc) 
-                                { l3dss1_dummy_invoke(st, cr, id, ident, p, nlen);
-                                   return;
-                                 } 
+               if (!pc)
+               { l3dss1_dummy_invoke(st, cr, id, ident, p, nlen);
+                       return;
+               }
 #ifdef CONFIG_DE_AOC
-                       {
-
-#define FOO1(s,a,b) \
-           while(nlen > 1) {           \
-                   int ilen = p[1];    \
-                   if(nlen < ilen+2) { \
-                           l3_debug(st, "FOO1  nlen < ilen+2"); \
-                           return;             \
-                   }                   \
-                   nlen -= ilen+2;             \
-                   if((*p & 0xFF) == (a)) {    \
-                           int nlen = ilen;    \
-                           p += 2;             \
-                           b;          \
-                   } else {            \
-                           p += ilen+2;        \
-                   }                   \
-           }
-
-                               switch (ident) {
-                                       case 0x22:      /* during */
-                                               FOO1("1A", 0x30, FOO1("1C", 0xA1, FOO1("1D", 0x30, FOO1("1E", 0x02, ( {
-                                                              ident = 0;
-                                                       nlen = (nlen)?nlen:0; /* Make gcc happy */
-                                                       while (ilen > 0) {
-                                                                                                                    ident = (ident << 8) | *p++;
-                                                                 ilen--;
-                                                                       }
-                                                                                                                    if (ident > pc->para.chargeinfo) {
-                                                                                                                    pc->para.chargeinfo = ident;
-                                                                                                                    st->l3.l3l4(st, CC_CHARGE | INDICATION, pc);
-                                                                       }
-                                                                                                                    if (st->l3.debug & L3_DEB_CHARGE) {
-                                                                                                                    if (*(p + 2) == 0) {
-                                                                                                                    l3_debug(st, "charging info during %d", pc->para.chargeinfo);
-                                                                       }
-                                                                  else {
-                                                                                                                    l3_debug(st, "charging info final %d", pc->para.chargeinfo);
-                                                                       }
-                                                                       }
-                                                                       }
-                                                                   )))))
-                                                       break;
-                                       case 0x24:      /* final */
-                                               FOO1("2A", 0x30, FOO1("2B", 0x30, FOO1("2C", 0xA1, FOO1("2D", 0x30, FOO1("2E", 0x02, ( {
-                                                              ident = 0;
-                                                       nlen = (nlen)?nlen:0; /* Make gcc happy */
-                                                       while (ilen > 0) {
-                                                                                                                                     ident = (ident << 8) | *p++;
-                                                                 ilen--;
-                                                                       }
-                                                                                                                                     if (ident > pc->para.chargeinfo) {
-                                                                                                                                     pc->para.chargeinfo = ident;
-                                                                                                                                     st->l3.l3l4(st, CC_CHARGE | INDICATION, pc);
-                                                                       }
-                                                                                                                                     if (st->l3.debug & L3_DEB_CHARGE) {
-                                                                                                                                     l3_debug(st, "charging info final %d", pc->para.chargeinfo);
-                                                                       }
+               {
+
+#define FOO1(s, a, b)                                                  \
+                       while (nlen > 1) {                              \
+                               int ilen = p[1];                        \
+                               if (nlen < ilen + 2) {                  \
+                                       l3_debug(st, "FOO1  nlen < ilen+2"); \
+                                       return;                         \
+                               }                                       \
+                               nlen -= ilen + 2;                       \
+                               if ((*p & 0xFF) == (a)) {               \
+                                       int nlen = ilen;                \
+                                       p += 2;                         \
+                                       b;                              \
+                               } else {                                \
+                                       p += ilen + 2;                  \
+                               }                                       \
+                       }
+
+                       switch (ident) {
+                       case 0x22:      /* during */
+                               FOO1("1A", 0x30, FOO1("1C", 0xA1, FOO1("1D", 0x30, FOO1("1E", 0x02, ( {
+                                                                               ident = 0;
+                                                                               nlen = (nlen) ? nlen : 0; /* Make gcc happy */
+                                                                               while (ilen > 0) {
+                                                                                       ident = (ident << 8) | *p++;
+                                                                                       ilen--;
+                                                                               }
+                                                                               if (ident > pc->para.chargeinfo) {
+                                                                                       pc->para.chargeinfo = ident;
+                                                                                       st->l3.l3l4(st, CC_CHARGE | INDICATION, pc);
+                                                                               }
+                                                                               if (st->l3.debug & L3_DEB_CHARGE) {
+                                                                                       if (*(p + 2) == 0) {
+                                                                                               l3_debug(st, "charging info during %d", pc->para.chargeinfo);
+                                                                                       }
+                                                                                       else {
+                                                                                               l3_debug(st, "charging info final %d", pc->para.chargeinfo);
+                                                                                       }
+                                                                               }
                                                                        }
-                                                                  ))))))
-                                                       break;
-                                       default:
-                                                       l3_debug(st, "invoke break invalid ident %02x",ident);
-                                               break;
-                               }
+                                                                       )))))
+                                       break;
+                       case 0x24:      /* final */
+                               FOO1("2A", 0x30, FOO1("2B", 0x30, FOO1("2C", 0xA1, FOO1("2D", 0x30, FOO1("2E", 0x02, ( {
+                                                                                       ident = 0;
+                                                                                       nlen = (nlen) ? nlen : 0; /* Make gcc happy */
+                                                                                       while (ilen > 0) {
+                                                                                               ident = (ident << 8) | *p++;
+                                                                                               ilen--;
+                                                                                       }
+                                                                                       if (ident > pc->para.chargeinfo) {
+                                                                                               pc->para.chargeinfo = ident;
+                                                                                               st->l3.l3l4(st, CC_CHARGE | INDICATION, pc);
+                                                                                       }
+                                                                                       if (st->l3.debug & L3_DEB_CHARGE) {
+                                                                                               l3_debug(st, "charging info final %d", pc->para.chargeinfo);
+                                                                                       }
+                                                                               }
+                                                                               ))))))
+                                       break;
+                       default:
+                               l3_debug(st, "invoke break invalid ident %02x", ident);
+                               break;
+                       }
 #undef FOO1
 
-                       }
+               }
 #else  /* not CONFIG_DE_AOC */
-                        l3_debug(st, "invoke break");
+               l3_debug(st, "invoke break");
 #endif /* not CONFIG_DE_AOC */
-                       break;
-               case 2: /* return result */
-                        /* if no process available handle separately */ 
-                        if (!pc)
-                        { if (cr == -1) 
-                             l3dss1_dummy_return_result(st, id, p, nlen);
-                           return; 
-                         }   
-                        if ((pc->prot.dss1.invoke_id) && (pc->prot.dss1.invoke_id == id))
-                          { /* Diversion successful */
-                            free_invoke_id(st,pc->prot.dss1.invoke_id);
-                            pc->prot.dss1.remote_result = 0; /* success */     
-                            pc->prot.dss1.invoke_id = 0;
-                            pc->redir_result = pc->prot.dss1.remote_result; 
-                            st->l3.l3l4(st, CC_REDIR | INDICATION, pc);                                  } /* Diversion successful */
-                        else
-                          l3_debug(st,"return error unknown identifier");
-                       break;
-               case 3: /* return error */
-                            err_ret = 0;
-                           if (nlen < 2) 
-                              { l3_debug(st, "return error nlen < 2");
-                               return;
-                             }
-                            if (*p != 0x02) 
-                              { /* result tag */
-                               l3_debug(st, "invoke error tag !=0x02");
-                               return;
-                             }
-                           p++;
-                           nlen--;
-                           if (*p > 4) 
-                              { /* length format */
-                               l3_debug(st, "invoke return errlen > 4 ");
-                               return;
-                             }
-                           ilen = *p++;
-                           nlen--;
-                           if (ilen > nlen || ilen == 0) 
-                              { l3_debug(st, "error return ilen > nlen || ilen == 0");
-                               return;
-                              }
-                           nlen -= ilen;
-                           while (ilen > 0) 
-                             { err_ret = (err_ret << 8) | (*p++ & 0xFF);       /* error value */
-                              ilen--;
-                            }
-                        /* if no process available handle separately */ 
-                        if (!pc)
-                        { if (cr == -1)
-                             l3dss1_dummy_error_return(st, id, err_ret);
-                           return; 
-                         }   
-                        if ((pc->prot.dss1.invoke_id) && (pc->prot.dss1.invoke_id == id))
-                          { /* Deflection error */
-                            free_invoke_id(st,pc->prot.dss1.invoke_id);
-                            pc->prot.dss1.remote_result = err_ret; /* result */
-                            pc->prot.dss1.invoke_id = 0; 
-                            pc->redir_result = pc->prot.dss1.remote_result; 
-                            st->l3.l3l4(st, CC_REDIR | INDICATION, pc);  
-                          } /* Deflection error */
-                        else
-                          l3_debug(st,"return result unknown identifier");
-                       break;
-               default:
-                       l3_debug(st, "facility default break tag=0x%02x",cp_tag);
-                       break;
+               break;
+       case 2: /* return result */
+               /* if no process available handle separately */
+               if (!pc)
+               { if (cr == -1)
+                               l3dss1_dummy_return_result(st, id, p, nlen);
+                       return;
+               }
+               if ((pc->prot.dss1.invoke_id) && (pc->prot.dss1.invoke_id == id))
+               { /* Diversion successful */
+                       free_invoke_id(st, pc->prot.dss1.invoke_id);
+                       pc->prot.dss1.remote_result = 0; /* success */
+                       pc->prot.dss1.invoke_id = 0;
+                       pc->redir_result = pc->prot.dss1.remote_result;
+                       st->l3.l3l4(st, CC_REDIR | INDICATION, pc);                                  } /* Diversion successful */
+               else
+                       l3_debug(st, "return error unknown identifier");
+               break;
+       case 3: /* return error */
+               err_ret = 0;
+               if (nlen < 2)
+               { l3_debug(st, "return error nlen < 2");
+                       return;
+               }
+               if (*p != 0x02)
+               { /* result tag */
+                       l3_debug(st, "invoke error tag !=0x02");
+                       return;
+               }
+               p++;
+               nlen--;
+               if (*p > 4)
+               { /* length format */
+                       l3_debug(st, "invoke return errlen > 4 ");
+                       return;
+               }
+               ilen = *p++;
+               nlen--;
+               if (ilen > nlen || ilen == 0)
+               { l3_debug(st, "error return ilen > nlen || ilen == 0");
+                       return;
+               }
+               nlen -= ilen;
+               while (ilen > 0)
+               { err_ret = (err_ret << 8) | (*p++ & 0xFF);     /* error value */
+                       ilen--;
+               }
+               /* if no process available handle separately */
+               if (!pc)
+               { if (cr == -1)
+                               l3dss1_dummy_error_return(st, id, err_ret);
+                       return;
+               }
+               if ((pc->prot.dss1.invoke_id) && (pc->prot.dss1.invoke_id == id))
+               { /* Deflection error */
+                       free_invoke_id(st, pc->prot.dss1.invoke_id);
+                       pc->prot.dss1.remote_result = err_ret; /* result */
+                       pc->prot.dss1.invoke_id = 0;
+                       pc->redir_result = pc->prot.dss1.remote_result;
+                       st->l3.l3l4(st, CC_REDIR | INDICATION, pc);
+               } /* Deflection error */
+               else
+                       l3_debug(st, "return result unknown identifier");
+               break;
+       default:
+               l3_debug(st, "facility default break tag=0x%02x", cp_tag);
+               break;
        }
 }
 
@@ -568,21 +568,21 @@ l3dss1_msg_without_setup(struct l3_process *pc, u_char pr, void *arg)
        struct sk_buff *skb;
 
        switch (pc->para.cause) {
-               case 81:        /* invalid callreference */
-               case 88:        /* incomp destination */
-               case 96:        /* mandory IE missing */
-               case 100:       /* invalid IE contents */
-               case 101:       /* incompatible Callstate */
-                       MsgHead(p, pc->callref, MT_RELEASE_COMPLETE);
-                       *p++ = IE_CAUSE;
-                       *p++ = 0x2;
-                       *p++ = 0x80;
-                       *p++ = pc->para.cause | 0x80;
-                       break;
-               default:
-                       printk(KERN_ERR "HiSax l3dss1_msg_without_setup wrong cause %d\n",
-                               pc->para.cause);
-                       return;
+       case 81:        /* invalid callreference */
+       case 88:        /* incomp destination */
+       case 96:        /* mandory IE missing */
+       case 100:       /* invalid IE contents */
+       case 101:       /* incompatible Callstate */
+               MsgHead(p, pc->callref, MT_RELEASE_COMPLETE);
+               *p++ = IE_CAUSE;
+               *p++ = 0x2;
+               *p++ = 0x80;
+               *p++ = pc->para.cause | 0x80;
+               break;
+       default:
+               printk(KERN_ERR "HiSax l3dss1_msg_without_setup wrong cause %d\n",
+                      pc->para.cause);
+               return;
        }
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
@@ -593,42 +593,42 @@ l3dss1_msg_without_setup(struct l3_process *pc, u_char pr, void *arg)
 }
 
 static int ie_ALERTING[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
-               IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_HLC,
-               IE_USER_USER, -1};
+                           IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_HLC,
+                           IE_USER_USER, -1};
 static int ie_CALL_PROCEEDING[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
-               IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_HLC, -1};
-static int ie_CONNECT[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1, 
-               IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_DATE, IE_SIGNAL,
-               IE_CONNECT_PN, IE_CONNECT_SUB, IE_LLC, IE_HLC, IE_USER_USER, -1};
+                                  IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_HLC, -1};
+static int ie_CONNECT[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
+                          IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_DATE, IE_SIGNAL,
+                          IE_CONNECT_PN, IE_CONNECT_SUB, IE_LLC, IE_HLC, IE_USER_USER, -1};
 static int ie_CONNECT_ACKNOWLEDGE[] = {IE_CHANNEL_ID, IE_DISPLAY, IE_SIGNAL, -1};
 static int ie_DISCONNECT[] = {IE_CAUSE | IE_MANDATORY, IE_FACILITY,
-               IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
+                             IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
 static int ie_INFORMATION[] = {IE_COMPLETE, IE_DISPLAY, IE_KEYPAD, IE_SIGNAL,
-               IE_CALLED_PN, -1};
+                              IE_CALLED_PN, -1};
 static int ie_NOTIFY[] = {IE_BEARER, IE_NOTIFY | IE_MANDATORY, IE_DISPLAY, -1};
 static int ie_PROGRESS[] = {IE_BEARER, IE_CAUSE, IE_FACILITY, IE_PROGRESS |
-               IE_MANDATORY, IE_DISPLAY, IE_HLC, IE_USER_USER, -1};
+                           IE_MANDATORY, IE_DISPLAY, IE_HLC, IE_USER_USER, -1};
 static int ie_RELEASE[] = {IE_CAUSE | IE_MANDATORY_1, IE_FACILITY, IE_DISPLAY,
-               IE_SIGNAL, IE_USER_USER, -1};
-/* a RELEASE_COMPLETE with errors don't require special actions 
-static int ie_RELEASE_COMPLETE[] = {IE_CAUSE | IE_MANDATORY_1, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
+                          IE_SIGNAL, IE_USER_USER, -1};
+/* a RELEASE_COMPLETE with errors don't require special actions
+   static int ie_RELEASE_COMPLETE[] = {IE_CAUSE | IE_MANDATORY_1, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
 */
-static int ie_RESUME_ACKNOWLEDGE[] = {IE_CHANNEL_ID| IE_MANDATORY, IE_FACILITY,
-               IE_DISPLAY, -1};
+static int ie_RESUME_ACKNOWLEDGE[] = {IE_CHANNEL_ID | IE_MANDATORY, IE_FACILITY,
+                                     IE_DISPLAY, -1};
 static int ie_RESUME_REJECT[] = {IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
 static int ie_SETUP[] = {IE_COMPLETE, IE_BEARER  | IE_MANDATORY,
-               IE_CHANNEL_ID| IE_MANDATORY, IE_FACILITY, IE_PROGRESS,
-               IE_NET_FAC, IE_DISPLAY, IE_KEYPAD, IE_SIGNAL, IE_CALLING_PN,
-               IE_CALLING_SUB, IE_CALLED_PN, IE_CALLED_SUB, IE_REDIR_NR,
-               IE_LLC, IE_HLC, IE_USER_USER, -1};
+                        IE_CHANNEL_ID | IE_MANDATORY, IE_FACILITY, IE_PROGRESS,
+                        IE_NET_FAC, IE_DISPLAY, IE_KEYPAD, IE_SIGNAL, IE_CALLING_PN,
+                        IE_CALLING_SUB, IE_CALLED_PN, IE_CALLED_SUB, IE_REDIR_NR,
+                        IE_LLC, IE_HLC, IE_USER_USER, -1};
 static int ie_SETUP_ACKNOWLEDGE[] = {IE_CHANNEL_ID | IE_MANDATORY, IE_FACILITY,
-               IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, -1};
+                                    IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, -1};
 static int ie_STATUS[] = {IE_CAUSE | IE_MANDATORY, IE_CALL_STATE |
-               IE_MANDATORY, IE_DISPLAY, -1};
+                         IE_MANDATORY, IE_DISPLAY, -1};
 static int ie_STATUS_ENQUIRY[] = {IE_DISPLAY, -1};
 static int ie_SUSPEND_ACKNOWLEDGE[] = {IE_DISPLAY, IE_FACILITY, -1};
 static int ie_SUSPEND_REJECT[] = {IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
-/* not used 
+/* not used
  * static int ie_CONGESTION_CONTROL[] = {IE_CONGESTION | IE_MANDATORY,
  *             IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
  * static int ie_USER_INFORMATION[] = {IE_MORE_DATA, IE_USER_USER | IE_MANDATORY, -1};
@@ -636,8 +636,8 @@ static int ie_SUSPEND_REJECT[] = {IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
  *             IE_MANDATORY, -1};
  */
 static int ie_FACILITY[] = {IE_FACILITY | IE_MANDATORY, IE_DISPLAY, -1};
-static int comp_required[] = {1,2,3,5,6,7,9,10,11,14,15,-1};
-static int l3_valid_states[] = {0,1,2,3,4,6,7,8,9,10,11,12,15,17,19,25,-1};
+static int comp_required[] = {1, 2, 3, 5, 6, 7, 9, 10, 11, 14, 15, -1};
+static int l3_valid_states[] = {0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 15, 17, 19, 25, -1};
 
 struct ie_len {
        int ie;
@@ -678,7 +678,7 @@ struct ie_len max_ie_len[] = {
        {IE_LLC, 18},
        {IE_HLC, 5},
        {IE_USER_USER, 131},
-       {-1,0},
+       {-1, 0},
 };
 
 static int
@@ -686,10 +686,10 @@ getmax_ie_len(u_char ie) {
        int i = 0;
        while (max_ie_len[i].ie != -1) {
                if (max_ie_len[i].ie == ie)
-                       return(max_ie_len[i].len);
+                       return (max_ie_len[i].len);
                i++;
        }
-       return(255);
+       return (255);
 }
 
 static int
@@ -699,14 +699,14 @@ ie_in_set(struct l3_process *pc, u_char ie, int *checklist) {
        while (*checklist != -1) {
                if ((*checklist & 0xff) == ie) {
                        if (ie & 0x80)
-                               return(-ret);
+                               return (-ret);
                        else
-                               return(ret);
+                               return (ret);
                }
                ret++;
                checklist++;
        }
-       return(0);
+       return (0);
 }
 
 static int
@@ -720,7 +720,7 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
        u_char codeset = 0;
        u_char old_codeset = 0;
        u_char codelock = 1;
-       
+
        p = skb->data;
        /* skip cr */
        p++;
@@ -738,7 +738,7 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
                                codelock = 1;
                        if (pc->debug & L3_DEB_CHECK)
                                l3_debug(pc->st, "check IE shift%scodeset %d->%d",
-                                       codelock ? " locking ": " ", old_codeset, codeset);
+                                        codelock ? " locking " : " ", old_codeset, codeset);
                        p++;
                        continue;
                }
@@ -770,7 +770,7 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
                if (!codelock) {
                        if (pc->debug & L3_DEB_CHECK)
                                l3_debug(pc->st, "check IE shift back codeset %d->%d",
-                                       codeset, old_codeset);
+                                        codeset, old_codeset);
                        codeset = old_codeset;
                        codelock = 1;
                }
@@ -778,17 +778,17 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
        if (err_compr | err_ureg | err_len | err_seq) {
                if (pc->debug & L3_DEB_CHECK)
                        l3_debug(pc->st, "check IE MT(%x) %d/%d/%d/%d",
-                               mt, err_compr, err_ureg, err_len, err_seq);
+                                mt, err_compr, err_ureg, err_len, err_seq);
                if (err_compr)
-                       return(ERR_IE_COMPREHENSION);
+                       return (ERR_IE_COMPREHENSION);
                if (err_ureg)
-                       return(ERR_IE_UNRECOGNIZED);
+                       return (ERR_IE_UNRECOGNIZED);
                if (err_len)
-                       return(ERR_IE_LENGTH);
+                       return (ERR_IE_LENGTH);
                if (err_seq)
-                       return(ERR_IE_SEQUENCE);
-       } 
-       return(0);
+                       return (ERR_IE_SEQUENCE);
+       }
+       return (0);
 }
 
 /* verify if a message type exists and contain no IE error */
@@ -796,42 +796,42 @@ static int
 l3dss1_check_messagetype_validity(struct l3_process *pc, int mt, void *arg)
 {
        switch (mt) {
-               case MT_ALERTING:
-               case MT_CALL_PROCEEDING:
-               case MT_CONNECT:
-               case MT_CONNECT_ACKNOWLEDGE:
-               case MT_DISCONNECT:
-               case MT_INFORMATION:
-               case MT_FACILITY:
-               case MT_NOTIFY:
-               case MT_PROGRESS:
-               case MT_RELEASE:
-               case MT_RELEASE_COMPLETE:
-               case MT_SETUP:
-               case MT_SETUP_ACKNOWLEDGE:
-               case MT_RESUME_ACKNOWLEDGE:
-               case MT_RESUME_REJECT:
-               case MT_SUSPEND_ACKNOWLEDGE:
-               case MT_SUSPEND_REJECT:
-               case MT_USER_INFORMATION:
-               case MT_RESTART:
-               case MT_RESTART_ACKNOWLEDGE:
-               case MT_CONGESTION_CONTROL:
-               case MT_STATUS:
-               case MT_STATUS_ENQUIRY:
-                       if (pc->debug & L3_DEB_CHECK)
-                               l3_debug(pc->st, "l3dss1_check_messagetype_validity mt(%x) OK", mt);
-                       break;
-               case MT_RESUME: /* RESUME only in user->net */
-               case MT_SUSPEND: /* SUSPEND only in user->net */
-               default:
-                       if (pc->debug & (L3_DEB_CHECK | L3_DEB_WARN))
-                               l3_debug(pc->st, "l3dss1_check_messagetype_validity mt(%x) fail", mt);
-                       pc->para.cause = 97;
-                       l3dss1_status_send(pc, 0, NULL);
-                       return(1);
+       case MT_ALERTING:
+       case MT_CALL_PROCEEDING:
+       case MT_CONNECT:
+       case MT_CONNECT_ACKNOWLEDGE:
+       case MT_DISCONNECT:
+       case MT_INFORMATION:
+       case MT_FACILITY:
+       case MT_NOTIFY:
+       case MT_PROGRESS:
+       case MT_RELEASE:
+       case MT_RELEASE_COMPLETE:
+       case MT_SETUP:
+       case MT_SETUP_ACKNOWLEDGE:
+       case MT_RESUME_ACKNOWLEDGE:
+       case MT_RESUME_REJECT:
+       case MT_SUSPEND_ACKNOWLEDGE:
+       case MT_SUSPEND_REJECT:
+       case MT_USER_INFORMATION:
+       case MT_RESTART:
+       case MT_RESTART_ACKNOWLEDGE:
+       case MT_CONGESTION_CONTROL:
+       case MT_STATUS:
+       case MT_STATUS_ENQUIRY:
+               if (pc->debug & L3_DEB_CHECK)
+                       l3_debug(pc->st, "l3dss1_check_messagetype_validity mt(%x) OK", mt);
+               break;
+       case MT_RESUME: /* RESUME only in user->net */
+       case MT_SUSPEND: /* SUSPEND only in user->net */
+       default:
+               if (pc->debug & (L3_DEB_CHECK | L3_DEB_WARN))
+                       l3_debug(pc->st, "l3dss1_check_messagetype_validity mt(%x) fail", mt);
+               pc->para.cause = 97;
+               l3dss1_status_send(pc, 0, NULL);
+               return (1);
        }
-       return(0);
+       return (0);
 }
 
 static void
@@ -839,24 +839,24 @@ l3dss1_std_ie_err(struct l3_process *pc, int ret) {
 
        if (pc->debug & L3_DEB_CHECK)
                l3_debug(pc->st, "check_infoelements ret %d", ret);
-       switch(ret) {
-               case 0: 
-                       break;
-               case ERR_IE_COMPREHENSION:
-                       pc->para.cause = 96;
-                       l3dss1_status_send(pc, 0, NULL);
-                       break;
-               case ERR_IE_UNRECOGNIZED:
-                       pc->para.cause = 99;
-                       l3dss1_status_send(pc, 0, NULL);
-                       break;
-               case ERR_IE_LENGTH:
-                       pc->para.cause = 100;
-                       l3dss1_status_send(pc, 0, NULL);
-                       break;
-               case ERR_IE_SEQUENCE:
-               default:
-                       break;
+       switch (ret) {
+       case 0:
+               break;
+       case ERR_IE_COMPREHENSION:
+               pc->para.cause = 96;
+               l3dss1_status_send(pc, 0, NULL);
+               break;
+       case ERR_IE_UNRECOGNIZED:
+               pc->para.cause = 99;
+               l3dss1_status_send(pc, 0, NULL);
+               break;
+       case ERR_IE_LENGTH:
+               pc->para.cause = 100;
+               l3dss1_status_send(pc, 0, NULL);
+               break;
+       case ERR_IE_SEQUENCE:
+       default:
+               break;
        }
 }
 
@@ -878,14 +878,14 @@ l3dss1_get_channel_id(struct l3_process *pc, struct sk_buff *skb) {
                                l3_debug(pc->st, "wrong chid %x", *p);
                        return (-3);
                }
-               return(*p & 0x3);
+               return (*p & 0x3);
        } else
-               return(-1);
+               return (-1);
 }
 
 static int
 l3dss1_get_cause(struct l3_process *pc, struct sk_buff *skb) {
-       u_char l, i=0;
+       u_char l, i = 0;
        u_char *p;
 
        p = skb->data;
@@ -894,13 +894,13 @@ l3dss1_get_cause(struct l3_process *pc, struct sk_buff *skb) {
        if ((p = findie(p, skb->len, IE_CAUSE, 0))) {
                p++;
                l = *p++;
-               if (l>30)
-                       return(1);
+               if (l > 30)
+                       return (1);
                if (l) {
                        pc->para.loc = *p++;
                        l--;
                } else {
-                       return(2);
+                       return (2);
                }
                if (l && !(pc->para.loc & 0x80)) {
                        l--;
@@ -910,36 +910,36 @@ l3dss1_get_cause(struct l3_process *pc, struct sk_buff *skb) {
                        pc->para.cause = *p++;
                        l--;
                        if (!(pc->para.cause & 0x80))
-                               return(3);
+                               return (3);
                } else
-                       return(4);
-               while (l && (i<6)) {
+                       return (4);
+               while (l && (i < 6)) {
                        pc->para.diag[i++] = *p++;
                        l--;
                }
        } else
-               return(-1);
-       return(0);
+               return (-1);
+       return (0);
 }
 
 static void
 l3dss1_msg_with_uus(struct l3_process *pc, u_char cmd)
 {
        struct sk_buff *skb;
-       u_char tmp[16+40];
+       u_char tmp[16 + 40];
        u_char *p = tmp;
        int l;
 
        MsgHead(p, pc->callref, cmd);
 
-        if (pc->prot.dss1.uus1_data[0])
-        { *p++ = IE_USER_USER; /* UUS info element */
-           *p++ = strlen(pc->prot.dss1.uus1_data) + 1;
-           *p++ = 0x04; /* IA5 chars */
-           strcpy(p,pc->prot.dss1.uus1_data);
-           p += strlen(pc->prot.dss1.uus1_data);
-           pc->prot.dss1.uus1_data[0] = '\0';   
-         } 
+       if (pc->prot.dss1.uus1_data[0])
+       { *p++ = IE_USER_USER; /* UUS info element */
+               *p++ = strlen(pc->prot.dss1.uus1_data) + 1;
+               *p++ = 0x04; /* IA5 chars */
+               strcpy(p, pc->prot.dss1.uus1_data);
+               p += strlen(pc->prot.dss1.uus1_data);
+               pc->prot.dss1.uus1_data[0] = '\0';
+       }
 
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
@@ -953,7 +953,7 @@ l3dss1_release_req(struct l3_process *pc, u_char pr, void *arg)
 {
        StopAllL3Timer(pc);
        newl3state(pc, 19);
-       if (!pc->prot.dss1.uus1_data[0]) 
+       if (!pc->prot.dss1.uus1_data[0])
                l3dss1_message(pc, MT_RELEASE);
        else
                l3dss1_msg_with_uus(pc, MT_RELEASE);
@@ -966,9 +966,9 @@ l3dss1_release_cmpl(struct l3_process *pc, u_char pr, void *arg)
        struct sk_buff *skb = arg;
        int ret;
 
-       if ((ret = l3dss1_get_cause(pc, skb))>0) {
+       if ((ret = l3dss1_get_cause(pc, skb)) > 0) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "RELCMPL get_cause ret(%d)",ret);
+                       l3_debug(pc->st, "RELCMPL get_cause ret(%d)", ret);
        } else if (ret < 0)
                pc->para.cause = NO_CAUSE;
        StopAllL3Timer(pc);
@@ -980,7 +980,7 @@ l3dss1_release_cmpl(struct l3_process *pc, u_char pr, void *arg)
 #ifdef EXT_BEARER_CAPS
 
 static u_char *
-EncodeASyncParams(u_char * p, u_char si2)
+EncodeASyncParams(u_char *p, u_char si2)
 {                              // 7c 06 88  90 21 42 00 bb
 
        p[0] = 0;
@@ -1008,38 +1008,38 @@ EncodeASyncParams(u_char * p, u_char si2)
                p[2] += 3;
 
        switch (si2 & 0x07) {
-               case 0:
-                       p[0] = 66;      // 1200 bit/s
+       case 0:
+               p[0] = 66;      // 1200 bit/s
 
-                       break;
-               case 1:
-                       p[0] = 88;      // 1200/75 bit/s
+               break;
+       case 1:
+               p[0] = 88;      // 1200/75 bit/s
 
-                       break;
-               case 2:
-                       p[0] = 87;      // 75/1200 bit/s
+               break;
+       case 2:
+               p[0] = 87;      // 75/1200 bit/s
 
-                       break;
-               case 3:
-                       p[0] = 67;      // 2400 bit/s
+               break;
+       case 3:
+               p[0] = 67;      // 2400 bit/s
 
-                       break;
-               case 4:
-                       p[0] = 69;      // 4800 bit/s
+               break;
+       case 4:
+               p[0] = 69;      // 4800 bit/s
 
-                       break;
-               case 5:
-                       p[0] = 72;      // 9600 bit/s
+               break;
+       case 5:
+               p[0] = 72;      // 9600 bit/s
 
-                       break;
-               case 6:
-                       p[0] = 73;      // 14400 bit/s
+               break;
+       case 6:
+               p[0] = 73;      // 14400 bit/s
 
-                       break;
-               case 7:
-                       p[0] = 75;      // 19200 bit/s
+               break;
+       case 7:
+               p[0] = 75;      // 19200 bit/s
 
-                       break;
+               break;
        }
        return p + 3;
 }
@@ -1049,84 +1049,84 @@ EncodeSyncParams(u_char si2, u_char ai)
 {
 
        switch (si2) {
-               case 0:
-                       return ai + 2;  // 1200 bit/s
+       case 0:
+               return ai + 2;  // 1200 bit/s
 
-               case 1:
-                       return ai + 24;         // 1200/75 bit/s
+       case 1:
+               return ai + 24;         // 1200/75 bit/s
 
-               case 2:
-                       return ai + 23;         // 75/1200 bit/s
+       case 2:
+               return ai + 23;         // 75/1200 bit/s
 
-               case 3:
-                       return ai + 3;  // 2400 bit/s
+       case 3:
+               return ai + 3;  // 2400 bit/s
 
-               case 4:
-                       return ai + 5;  // 4800 bit/s
+       case 4:
+               return ai + 5;  // 4800 bit/s
 
-               case 5:
-                       return ai + 8;  // 9600 bit/s
+       case 5:
+               return ai + 8;  // 9600 bit/s
 
-               case 6:
-                       return ai + 9;  // 14400 bit/s
+       case 6:
+               return ai + 9;  // 14400 bit/s
 
-               case 7:
-                       return ai + 11;         // 19200 bit/s
+       case 7:
+               return ai + 11;         // 19200 bit/s
 
-               case 8:
-                       return ai + 14;         // 48000 bit/s
+       case 8:
+               return ai + 14;         // 48000 bit/s
 
-               case 9:
-                       return ai + 15;         // 56000 bit/s
+       case 9:
+               return ai + 15;         // 56000 bit/s
 
-               case 15:
-                       return ai + 40;         // negotiate bit/s
+       case 15:
+               return ai + 40;         // negotiate bit/s
 
-               default:
-                       break;
+       default:
+               break;
        }
        return ai;
 }
 
 
 static u_char
-DecodeASyncParams(u_char si2, u_char * p)
+DecodeASyncParams(u_char si2, u_char *p)
 {
        u_char info;
 
        switch (p[5]) {
-               case 66:        // 1200 bit/s
+       case 66:        // 1200 bit/s
 
-                       break;  // si2 don't change
+               break;  // si2 don't change
 
-               case 88:        // 1200/75 bit/s
+       case 88:        // 1200/75 bit/s
 
-                       si2 += 1;
-                       break;
-               case 87:        // 75/1200 bit/s
+               si2 += 1;
+               break;
+       case 87:        // 75/1200 bit/s
 
-                       si2 += 2;
-                       break;
-               case 67:        // 2400 bit/s
+               si2 += 2;
+               break;
+       case 67:        // 2400 bit/s
 
-                       si2 += 3;
-                       break;
-               case 69:        // 4800 bit/s
+               si2 += 3;
+               break;
+       case 69:        // 4800 bit/s
 
-                       si2 += 4;
-                       break;
-               case 72:        // 9600 bit/s
+               si2 += 4;
+               break;
+       case 72:        // 9600 bit/s
 
-                       si2 += 5;
-                       break;
-               case 73:        // 14400 bit/s
+               si2 += 5;
+               break;
+       case 73:        // 14400 bit/s
 
-                       si2 += 6;
-                       break;
-               case 75:        // 19200 bit/s
+               si2 += 6;
+               break;
+       case 75:        // 19200 bit/s
 
-                       si2 += 7;
-                       break;
+               si2 += 7;
+               break;
        }
 
        info = p[7] & 0x7f;
@@ -1151,39 +1151,39 @@ DecodeSyncParams(u_char si2, u_char info)
 {
        info &= 0x7f;
        switch (info) {
-               case 40:        // bit/s negotiation failed  ai := 165 not 175!
+       case 40:        // bit/s negotiation failed  ai := 165 not 175!
 
-                       return si2 + 15;
-               case 15:        // 56000 bit/s failed, ai := 0 not 169 !
+               return si2 + 15;
+       case 15:        // 56000 bit/s failed, ai := 0 not 169 !
 
-                       return si2 + 9;
-               case 14:        // 48000 bit/s
+               return si2 + 9;
+       case 14:        // 48000 bit/s
 
-                       return si2 + 8;
-               case 11:        // 19200 bit/s
+               return si2 + 8;
+       case 11:        // 19200 bit/s
 
-                       return si2 + 7;
-               case 9: // 14400 bit/s
+               return si2 + 7;
+       case 9: // 14400 bit/s
 
-                       return si2 + 6;
-               case 8: // 9600  bit/s
+               return si2 + 6;
+       case 8: // 9600  bit/s
 
-                       return si2 + 5;
-               case 5: // 4800  bit/s
+               return si2 + 5;
+       case 5: // 4800  bit/s
 
-                       return si2 + 4;
-               case 3: // 2400  bit/s
+               return si2 + 4;
+       case 3: // 2400  bit/s
 
-                       return si2 + 3;
-               case 23:        // 75/1200 bit/s
+               return si2 + 3;
+       case 23:        // 75/1200 bit/s
 
-                       return si2 + 2;
-               case 24:        // 1200/75 bit/s
+               return si2 + 2;
+       case 24:        // 1200/75 bit/s
 
-                       return si2 + 1;
-               default:        // 1200 bit/s
+               return si2 + 1;
+       default:        // 1200 bit/s
 
-                       return si2;
+               return si2;
        }
 }
 
@@ -1194,20 +1194,20 @@ DecodeSI2(struct sk_buff *skb)
 
        if ((p = findie(skb->data, skb->len, 0x7c, 0))) {
                switch (p[4] & 0x0f) {
-                       case 0x01:
-                               if (p[1] == 0x04)       // sync. Bitratenadaption
+               case 0x01:
+                       if (p[1] == 0x04)       // sync. Bitratenadaption
 
-                                       return DecodeSyncParams(160, p[5]);     // V.110/X.30
+                               return DecodeSyncParams(160, p[5]);     // V.110/X.30
 
-                               else if (p[1] == 0x06)  // async. Bitratenadaption
+                       else if (p[1] == 0x06)  // async. Bitratenadaption
 
-                                       return DecodeASyncParams(192, p);       // V.110/X.30
+                               return DecodeASyncParams(192, p);       // V.110/X.30
 
-                               break;
-                       case 0x08:      // if (p[5] == 0x02) // sync. Bitratenadaption
-                               if (p[1] > 3) 
-                                       return DecodeSyncParams(176, p[5]);     // V.120
-                               break;
+                       break;
+               case 0x08:      // if (p[5] == 0x02) // sync. Bitratenadaption
+                       if (p[1] > 3)
+                               return DecodeSyncParams(176, p[5]);     // V.120
+                       break;
                }
        }
        return 0;
@@ -1225,7 +1225,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
        u_char *p = tmp;
        u_char channel = 0;
 
-        u_char send_keypad;
+       u_char send_keypad;
        u_char screen = 0x80;
        u_char *teln;
        u_char *msn;
@@ -1237,7 +1237,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
 
        teln = pc->para.setup.phone;
 #ifndef CONFIG_HISAX_NO_KEYPAD
-        send_keypad = (strchr(teln,'*') || strchr(teln,'#')) ? 1 : 0; 
+       send_keypad = (strchr(teln, '*') || strchr(teln, '#')) ? 1 : 0;
 #else
        send_keypad = 0;
 #endif
@@ -1272,7 +1272,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
                while (*teln)
                        *p++ = (*teln++) & 0x7F;
        }
-         
+
        /*
         * What about info2? Mapping to High-Layer-Compatibility?
         */
@@ -1280,27 +1280,27 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
                /* parse number for special things */
                if (!isdigit(*teln)) {
                        switch (0x5f & *teln) {
-                               case 'C':
-                                       channel = 0x08;
-                               case 'P':
-                                       channel |= 0x80;
-                                       teln++;
-                                       if (*teln == '1')
-                                               channel |= 0x01;
-                                       else
-                                               channel |= 0x02;
-                                       break;
-                               case 'R':
-                                       screen = 0xA0;
-                                       break;
-                               case 'D':
-                                       screen = 0x80;
-                                       break;
-                               
-                               default:
-                                       if (pc->debug & L3_DEB_WARN)
-                                               l3_debug(pc->st, "Wrong MSN Code");
-                                       break;
+                       case 'C':
+                               channel = 0x08;
+                       case 'P':
+                               channel |= 0x80;
+                               teln++;
+                               if (*teln == '1')
+                                       channel |= 0x01;
+                               else
+                                       channel |= 0x02;
+                               break;
+                       case 'R':
+                               screen = 0xA0;
+                               break;
+                       case 'D':
+                               screen = 0x80;
+                               break;
+
+                       default:
+                               if (pc->debug & L3_DEB_WARN)
+                                       l3_debug(pc->st, "Wrong MSN Code");
+                               break;
                        }
                        teln++;
                }
@@ -1350,15 +1350,15 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
                } else
                        sp++;
        }
-       
-        if (!send_keypad) {      
+
+       if (!send_keypad) {
                *p++ = IE_CALLED_PN;
                *p++ = strlen(teln) + 1;
                /* Classify as AnyPref. */
                *p++ = 0x81;            /* Ext = '1'B, Type = '000'B, Plan = '0001'B. */
                while (*teln)
                        *p++ = *teln++ & 0x7f;
-               
+
                if (sub) {
                        *sub++ = '.';
                        *p++ = IE_CALLED_SUB;
@@ -1368,7 +1368,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
                        while (*sub)
                                *p++ = *sub++ & 0x7f;
                }
-        }
+       }
 #ifdef EXT_BEARER_CAPS
        if ((pc->para.setup.si2 >= 160) && (pc->para.setup.si2 <= 175)) {       // sync. Bitratenadaption, V.110/X.30
 
@@ -1397,7 +1397,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
                p = EncodeASyncParams(p, pc->para.setup.si2 - 192);
 #ifndef CONFIG_HISAX_NO_LLC
        } else {
-         switch (pc->para.setup.si1) {
+               switch (pc->para.setup.si1) {
                case 1:                 /* Telephony                                */
                        *p++ = IE_LLC;
                        *p++ = 0x3;     /* Length                                   */
@@ -1413,7 +1413,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr,
                        *p++ = 0x88;    /* Coding Std. CCITT, unrestr. dig. Inform. */
                        *p++ = 0x90;    /* Circuit-Mode 64kbps                      */
                        break;
-         }
+               }
 #endif
        }
 #endif
@@ -1521,7 +1521,7 @@ l3dss1_disconnect(struct l3_process *pc, u_char pr, void *arg)
                        cause = 96;
                else if (ret > 0)
                        cause = 100;
-       } 
+       }
        if ((p = findie(skb->data, skb->len, IE_FACILITY, 0)))
                l3dss1_parse_facility(pc->st, pc, pc->callref, p);
        ret = check_infoelements(pc, skb, ie_DISCONNECT);
@@ -1533,10 +1533,10 @@ l3dss1_disconnect(struct l3_process *pc, u_char pr, void *arg)
        newl3state(pc, 12);
        if (cause)
                newl3state(pc, 19);
-               if (11 != ret)
+       if (11 != ret)
                pc->st->l3.l3l4(pc->st, CC_DISCONNECT | INDICATION, pc);
-               else if (!cause)
-                  l3dss1_release_req(pc, pr, NULL);
+       else if (!cause)
+               l3dss1_release_req(pc, pr, NULL);
        if (cause) {
                l3dss1_message_cause(pc, MT_RELEASE, cause);
                L3AddTimer(&pc->timer, T308, CC_T308_1);
@@ -1602,56 +1602,56 @@ l3dss1_setup(struct l3_process *pc, u_char pr, void *arg)
                else {
                        pc->para.setup.si2 = 0;
                        switch (p[2] & 0x7f) {
-                               case 0x00: /* Speech */
-                               case 0x10: /* 3.1 Khz audio */
-                                       pc->para.setup.si1 = 1;
-                                       break;
-                               case 0x08: /* Unrestricted digital information */
-                                       pc->para.setup.si1 = 7;
+                       case 0x00: /* Speech */
+                       case 0x10: /* 3.1 Khz audio */
+                               pc->para.setup.si1 = 1;
+                               break;
+                       case 0x08: /* Unrestricted digital information */
+                               pc->para.setup.si1 = 7;
 /* JIM, 05.11.97 I wanna set service indicator 2 */
 #ifdef EXT_BEARER_CAPS
-                                       pc->para.setup.si2 = DecodeSI2(skb);
+                               pc->para.setup.si2 = DecodeSI2(skb);
 #endif
-                                       break;
-                               case 0x09: /* Restricted digital information */
-                                       pc->para.setup.si1 = 2;
-                                       break;
-                               case 0x11:
-                                       /* Unrestr. digital information  with 
-                                        * tones/announcements ( or 7 kHz audio
-                                        */
-                                       pc->para.setup.si1 = 3;
-                                       break;
-                               case 0x18: /* Video */
-                                       pc->para.setup.si1 = 4;
-                                       break;
-                               default:
-                                       err = 2;
-                                       break;
+                               break;
+                       case 0x09: /* Restricted digital information */
+                               pc->para.setup.si1 = 2;
+                               break;
+                       case 0x11:
+                               /* Unrestr. digital information  with
+                                * tones/announcements ( or 7 kHz audio
+                                */
+                               pc->para.setup.si1 = 3;
+                               break;
+                       case 0x18: /* Video */
+                               pc->para.setup.si1 = 4;
+                               break;
+                       default:
+                               err = 2;
+                               break;
                        }
                        switch (p[3] & 0x7f) {
-                               case 0x40: /* packed mode */
-                                       pc->para.setup.si1 = 8;
-                                       break;
-                               case 0x10: /* 64 kbit */
-                               case 0x11: /* 2*64 kbit */
-                               case 0x13: /* 384 kbit */
-                               case 0x15: /* 1536 kbit */
-                               case 0x17: /* 1920 kbit */
-                                       pc->para.moderate = p[3] & 0x7f;
-                                       break;
-                               default:
-                                       err = 3;
-                                       break;
+                       case 0x40: /* packed mode */
+                               pc->para.setup.si1 = 8;
+                               break;
+                       case 0x10: /* 64 kbit */
+                       case 0x11: /* 2*64 kbit */
+                       case 0x13: /* 384 kbit */
+                       case 0x15: /* 1536 kbit */
+                       case 0x17: /* 1920 kbit */
+                               pc->para.moderate = p[3] & 0x7f;
+                               break;
+                       default:
+                               err = 3;
+                               break;
                        }
                }
                if (pc->debug & L3_DEB_SI)
                        l3_debug(pc->st, "SI=%d, AI=%d",
-                               pc->para.setup.si1, pc->para.setup.si2);
+                                pc->para.setup.si1, pc->para.setup.si2);
                if (err) {
                        if (pc->debug & L3_DEB_WARN)
                                l3_debug(pc->st, "setup with wrong bearer(l=%d:%x,%x)",
-                                       p[1], p[2], p[3]);
+                                        p[1], p[2], p[3]);
                        pc->para.cause = 100;
                        l3dss1_msg_without_setup(pc, pr, NULL);
                        return;
@@ -1672,17 +1672,17 @@ l3dss1_setup(struct l3_process *pc, u_char pr, void *arg)
                        if ((3 == id) && (0x10 == pc->para.moderate)) {
                                if (pc->debug & L3_DEB_WARN)
                                        l3_debug(pc->st, "setup with wrong chid %x",
-                                               id);
+                                                id);
                                pc->para.cause = 100;
                                l3dss1_msg_without_setup(pc, pr, NULL);
                                return;
                        }
                        bcfound++;
-               } else 
-                   { if (pc->debug & L3_DEB_WARN)
-                        l3_debug(pc->st, "setup without bchannel, call waiting");
-                     bcfound++;
-                   } 
+               } else
+               { if (pc->debug & L3_DEB_WARN)
+                               l3_debug(pc->st, "setup without bchannel, call waiting");
+                       bcfound++;
+               }
        } else {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "setup with wrong chid ret %d", id);
@@ -1757,7 +1757,7 @@ static void
 l3dss1_disconnect_req(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb;
-       u_char tmp[16+40];
+       u_char tmp[16 + 40];
        u_char *p = tmp;
        int l;
        u_char cause = 16;
@@ -1774,14 +1774,14 @@ l3dss1_disconnect_req(struct l3_process *pc, u_char pr, void *arg)
        *p++ = 0x80;
        *p++ = cause | 0x80;
 
-        if (pc->prot.dss1.uus1_data[0])
-        { *p++ = IE_USER_USER; /* UUS info element */
-           *p++ = strlen(pc->prot.dss1.uus1_data) + 1;
-           *p++ = 0x04; /* IA5 chars */
-           strcpy(p,pc->prot.dss1.uus1_data);
-           p += strlen(pc->prot.dss1.uus1_data);
-           pc->prot.dss1.uus1_data[0] = '\0';   
-         } 
+       if (pc->prot.dss1.uus1_data[0])
+       { *p++ = IE_USER_USER; /* UUS info element */
+               *p++ = strlen(pc->prot.dss1.uus1_data) + 1;
+               *p++ = 0x04; /* IA5 chars */
+               strcpy(p, pc->prot.dss1.uus1_data);
+               p += strlen(pc->prot.dss1.uus1_data);
+               pc->prot.dss1.uus1_data[0] = '\0';
+       }
 
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
@@ -1796,12 +1796,12 @@ static void
 l3dss1_setup_rsp(struct l3_process *pc, u_char pr,
                 void *arg)
 {
-        if (!pc->para.bchannel) 
-        { if (pc->debug & L3_DEB_WARN)
-              l3_debug(pc->st, "D-chan connect for waiting call");
-           l3dss1_disconnect_req(pc, pr, arg);
-           return;
-         }
+       if (!pc->para.bchannel)
+       { if (pc->debug & L3_DEB_WARN)
+                       l3_debug(pc->st, "D-chan connect for waiting call");
+               l3dss1_disconnect_req(pc, pr, arg);
+               return;
+       }
        newl3state(pc, 8);
        l3dss1_message(pc, MT_CONNECT);
        L3DelTimer(&pc->timer);
@@ -1860,26 +1860,26 @@ l3dss1_release(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb = arg;
        u_char *p;
-       int ret, cause=0;
+       int ret, cause = 0;
 
        StopAllL3Timer(pc);
-       if ((ret = l3dss1_get_cause(pc, skb))>0) {
+       if ((ret = l3dss1_get_cause(pc, skb)) > 0) {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "REL get_cause ret(%d)", ret);
-       } else if (ret<0)
+       } else if (ret < 0)
                pc->para.cause = NO_CAUSE;
        if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) {
                l3dss1_parse_facility(pc->st, pc, pc->callref, p);
        }
-       if ((ret<0) && (pc->state != 11))
+       if ((ret < 0) && (pc->state != 11))
                cause = 96;
-       else if (ret>0)
+       else if (ret > 0)
                cause = 100;
        ret = check_infoelements(pc, skb, ie_RELEASE);
        if (ERR_IE_COMPREHENSION == ret)
                cause = 96;
        else if ((ERR_IE_UNRECOGNIZED == ret) && (!cause))
-               cause = 99;  
+               cause = 99;
        if (cause)
                l3dss1_message_cause(pc, MT_RELEASE_COMPLETE, cause);
        else
@@ -1894,10 +1894,10 @@ l3dss1_alert_req(struct l3_process *pc, u_char pr,
                 void *arg)
 {
        newl3state(pc, 7);
-       if (!pc->prot.dss1.uus1_data[0]) 
+       if (!pc->prot.dss1.uus1_data[0])
                l3dss1_message(pc, MT_ALERTING);
        else
-               l3dss1_msg_with_uus(pc, MT_ALERTING); 
+               l3dss1_msg_with_uus(pc, MT_ALERTING);
 }
 
 static void
@@ -1906,12 +1906,12 @@ l3dss1_proceed_req(struct l3_process *pc, u_char pr,
 {
        newl3state(pc, 9);
        l3dss1_message(pc, MT_CALL_PROCEEDING);
-       pc->st->l3.l3l4(pc->st, CC_PROCEED_SEND | INDICATION, pc); 
+       pc->st->l3.l3l4(pc->st, CC_PROCEED_SEND | INDICATION, pc);
 }
 
 static void
 l3dss1_setup_ack_req(struct l3_process *pc, u_char pr,
-                  void *arg)
+                    void *arg)
 {
        newl3state(pc, 25);
        L3DelTimer(&pc->timer);
@@ -1925,22 +1925,22 @@ l3dss1_setup_ack_req(struct l3_process *pc, u_char pr,
 static void
 l3dss1_deliver_display(struct l3_process *pc, int pr, u_char *infp)
 {       u_char len;
-        isdn_ctrl ic; 
+       isdn_ctrl ic;
        struct IsdnCardState *cs;
-        char *p; 
+       char *p;
 
-        if (*infp++ != IE_DISPLAY) return;
-        if ((len = *infp++) > 80) return; /* total length <= 82 */
+       if (*infp++ != IE_DISPLAY) return;
+       if ((len = *infp++) > 80) return; /* total length <= 82 */
        if (!pc->chan) return;
 
-       p = ic.parm.display; 
-        while (len--)
-         *p++ = *infp++;
+       p = ic.parm.display;
+       while (len--)
+               *p++ = *infp++;
        *p = '\0';
        ic.command = ISDN_STAT_DISPLAY;
        cs = pc->st->l1.hardware;
        ic.driver = cs->myid;
-       ic.arg = pc->chan->chan; 
+       ic.arg = pc->chan->chan;
        cs->iif.statcallb(&ic);
 } /* l3dss1_deliver_display */
 
@@ -1958,37 +1958,37 @@ l3dss1_progress(struct l3_process *pc, u_char pr, void *arg)
                        pc->para.cause = 100;
                } else if (!(p[2] & 0x70)) {
                        switch (p[2]) {
-                               case 0x80:
+                       case 0x80:
+                       case 0x81:
+                       case 0x82:
+                       case 0x84:
+                       case 0x85:
+                       case 0x87:
+                       case 0x8a:
+                               switch (p[3]) {
                                case 0x81:
                                case 0x82:
+                               case 0x83:
                                case 0x84:
-                               case 0x85:
-                               case 0x87:
-                               case 0x8a:
-                                       switch (p[3]) {
-                                               case 0x81:
-                                               case 0x82:
-                                               case 0x83:
-                                               case 0x84:
-                                               case 0x88:
-                                                       break;
-                                               default:
-                                                       err = 2;
-                                                       pc->para.cause = 100;
-                                                       break;
-                                       }
+                               case 0x88:
                                        break;
                                default:
-                                       err = 3;
+                                       err = 2;
                                        pc->para.cause = 100;
                                        break;
+                               }
+                               break;
+                       default:
+                               err = 3;
+                               pc->para.cause = 100;
+                               break;
                        }
                }
        } else {
                pc->para.cause = 96;
                err = 4;
        }
-       if (err) {      
+       if (err) {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "progress error %d", err);
                l3dss1_status_send(pc, pr, NULL);
@@ -2015,21 +2015,21 @@ l3dss1_notify(struct l3_process *pc, u_char pr, void *arg)
                        pc->para.cause = 100;
                } else {
                        switch (p[2]) {
-                               case 0x80:
-                               case 0x81:
-                               case 0x82:
-                                       break;
-                               default:
-                                       pc->para.cause = 100;
-                                       err = 2;
-                                       break;
+                       case 0x80:
+                       case 0x81:
+                       case 0x82:
+                               break;
+                       default:
+                               pc->para.cause = 100;
+                               err = 2;
+                               break;
                        }
                }
        } else {
                pc->para.cause = 96;
                err = 3;
        }
-       if (err) {      
+       if (err) {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "notify error %d", err);
                l3dss1_status_send(pc, pr, NULL);
@@ -2052,7 +2052,7 @@ l3dss1_status_enq(struct l3_process *pc, u_char pr, void *arg)
        ret = check_infoelements(pc, skb, ie_STATUS_ENQUIRY);
        l3dss1_std_ie_err(pc, ret);
        pc->para.cause = 30; /* response to STATUS_ENQUIRY */
-        l3dss1_status_send(pc, pr, NULL);
+       l3dss1_status_send(pc, pr, NULL);
 }
 
 static void
@@ -2086,68 +2086,68 @@ static void l3dss1_redir_req(struct l3_process *pc, u_char pr, void *arg)
        struct sk_buff *skb;
        u_char tmp[128];
        u_char *p = tmp;
-        u_char *subp;
-        u_char len_phone = 0;
-        u_char len_sub = 0;
-       int l; 
-
-
-        strcpy(pc->prot.dss1.uus1_data,pc->chan->setup.eazmsn); /* copy uus element if available */
-        if (!pc->chan->setup.phone[0])
-          { pc->para.cause = -1;
-            l3dss1_disconnect_req(pc,pr,arg); /* disconnect immediately */
-            return;
-          } /* only uus */
-        if (pc->prot.dss1.invoke_id) 
-          free_invoke_id(pc->st,pc->prot.dss1.invoke_id);
-        if (!(pc->prot.dss1.invoke_id = new_invoke_id(pc->st))) 
-          return;
-
-        MsgHead(p, pc->callref, MT_FACILITY);
-
-        for (subp = pc->chan->setup.phone; (*subp) && (*subp != '.'); subp++) len_phone++; /* len of phone number */
-        if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subaddress element */ 
+       u_char *subp;
+       u_char len_phone = 0;
+       u_char len_sub = 0;
+       int l;
+
+
+       strcpy(pc->prot.dss1.uus1_data, pc->chan->setup.eazmsn); /* copy uus element if available */
+       if (!pc->chan->setup.phone[0])
+       { pc->para.cause = -1;
+               l3dss1_disconnect_req(pc, pr, arg); /* disconnect immediately */
+               return;
+       } /* only uus */
+
+       if (pc->prot.dss1.invoke_id)
+               free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
+
+       if (!(pc->prot.dss1.invoke_id = new_invoke_id(pc->st)))
+               return;
+
+       MsgHead(p, pc->callref, MT_FACILITY);
+
+       for (subp = pc->chan->setup.phone; (*subp) && (*subp != '.'); subp++) len_phone++; /* len of phone number */
+       if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subaddress element */
 
        *p++ = 0x1c;   /* Facility info element */
-        *p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */
-        *p++ = 0x91;  /* remote operations protocol */
-        *p++ = 0xa1;  /* invoke component */
-         
-        *p++ = len_phone + len_sub + 2 + 2 + 8 + 3; /* length of data */
-        *p++ = 0x02;  /* invoke id tag, integer */
+       *p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */
+       *p++ = 0x91;  /* remote operations protocol */
+       *p++ = 0xa1;  /* invoke component */
+
+       *p++ = len_phone + len_sub + 2 + 2 + 8 + 3; /* length of data */
+       *p++ = 0x02;  /* invoke id tag, integer */
        *p++ = 0x01;  /* length */
-        *p++ = pc->prot.dss1.invoke_id;  /* invoke id */ 
-        *p++ = 0x02;  /* operation value tag, integer */
+       *p++ = pc->prot.dss1.invoke_id;  /* invoke id */
+       *p++ = 0x02;  /* operation value tag, integer */
        *p++ = 0x01;  /* length */
-        *p++ = 0x0D;  /* Call Deflect */
-         
-        *p++ = 0x30;  /* sequence phone number */
-        *p++ = len_phone + 2 + 2 + 3 + len_sub; /* length */
-         
-        *p++ = 0x30;  /* Deflected to UserNumber */
-        *p++ = len_phone+2+len_sub; /* length */
-        *p++ = 0x80; /* NumberDigits */
+       *p++ = 0x0D;  /* Call Deflect */
+
+       *p++ = 0x30;  /* sequence phone number */
+       *p++ = len_phone + 2 + 2 + 3 + len_sub; /* length */
+
+       *p++ = 0x30;  /* Deflected to UserNumber */
+       *p++ = len_phone + 2 + len_sub; /* length */
+       *p++ = 0x80; /* NumberDigits */
        *p++ = len_phone; /* length */
-        for (l = 0; l < len_phone; l++)
-        *p++ = pc->chan->setup.phone[l];
+       for (l = 0; l < len_phone; l++)
+               *p++ = pc->chan->setup.phone[l];
 
-        if (len_sub)
-         { *p++ = 0x04; /* called party subaddress */
-            *p++ = len_sub - 2;
-            while (*subp) *p++ = *subp++;
-          }
+       if (len_sub)
+       { *p++ = 0x04; /* called party subaddress */
+               *p++ = len_sub - 2;
+               while (*subp) *p++ = *subp++;
+       }
 
-        *p++ = 0x01; /* screening identifier */
-        *p++ = 0x01;
-        *p++ = pc->chan->setup.screen;
+       *p++ = 0x01; /* screening identifier */
+       *p++ = 0x01;
+       *p++ = pc->chan->setup.screen;
 
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l))) return;
        memcpy(skb_put(skb, l), tmp, l);
 
-        l3_msg(pc->st, DL_DATA | REQUEST, skb);
+       l3_msg(pc->st, DL_DATA | REQUEST, skb);
 } /* l3dss1_redir_req */
 
 /********************************************/
@@ -2155,8 +2155,8 @@ static void l3dss1_redir_req(struct l3_process *pc, u_char pr, void *arg)
 /********************************************/
 static void l3dss1_redir_req_early(struct l3_process *pc, u_char pr, void *arg)
 {
-  l3dss1_proceed_req(pc,pr,arg);
-  l3dss1_redir_req(pc,pr,arg);
+       l3dss1_proceed_req(pc, pr, arg);
+       l3dss1_redir_req(pc, pr, arg);
 } /* l3dss1_redir_req_early */
 
 /***********************************************/
@@ -2166,108 +2166,108 @@ static void l3dss1_redir_req_early(struct l3_process *pc, u_char pr, void *arg)
 /***********************************************/
 static int l3dss1_cmd_global(struct PStack *st, isdn_ctrl *ic)
 { u_char id;
-  u_char temp[265];
-  u_char *p = temp;
-  int i, l, proc_len; 
-  struct sk_buff *skb;
-  struct l3_process *pc = NULL;
-
-  switch (ic->arg)
-   { case DSS1_CMD_INVOKE:
-       if (ic->parm.dss1_io.datalen < 0) return(-2); /* invalid parameter */ 
-
-       for (proc_len = 1, i = ic->parm.dss1_io.proc >> 8; i; i++) 
-         i = i >> 8; /* add one byte */    
-       l = ic->parm.dss1_io.datalen + proc_len + 8; /* length excluding ie header */
-       if (l > 255) 
-         return(-2); /* too long */
-
-       if (!(id = new_invoke_id(st))) 
-         return(0); /* first get a invoke id -> return if no available */
-       
-       i = -1; 
-       MsgHead(p, i, MT_FACILITY); /* build message head */
-       *p++ = 0x1C; /* Facility IE */
-       *p++ = l; /* length of ie */
-       *p++ = 0x91; /* remote operations */
-       *p++ = 0xA1; /* invoke */
-       *p++ = l - 3; /* length of invoke */
-       *p++ = 0x02; /* invoke id tag */
-       *p++ = 0x01; /* length is 1 */
-       *p++ = id; /* invoke id */
-       *p++ = 0x02; /* operation */
-       *p++ = proc_len; /* length of operation */
-       
-       for (i = proc_len; i; i--)
-         *p++ = (ic->parm.dss1_io.proc >> (i-1)) & 0xFF;
-       memcpy(p, ic->parm.dss1_io.data, ic->parm.dss1_io.datalen); /* copy data */
-       l = (p - temp) + ic->parm.dss1_io.datalen; /* total length */         
-
-       if (ic->parm.dss1_io.timeout > 0)
-        if (!(pc = dss1_new_l3_process(st, -1)))
-          { free_invoke_id(st, id);
-            return(-2);
-          } 
-       pc->prot.dss1.ll_id = ic->parm.dss1_io.ll_id; /* remember id */ 
-       pc->prot.dss1.proc = ic->parm.dss1_io.proc; /* and procedure */
-
-       if (!(skb = l3_alloc_skb(l))) 
-         { free_invoke_id(st, id);
-           if (pc) dss1_release_l3_process(pc);
-           return(-2);
-         }
-       memcpy(skb_put(skb, l), temp, l);
-       
-       if (pc)
-        { pc->prot.dss1.invoke_id = id; /* remember id */
-          L3AddTimer(&pc->timer, ic->parm.dss1_io.timeout, CC_TDSS1_IO | REQUEST);
-        }
-       
-       l3_msg(st, DL_DATA | REQUEST, skb);
-       ic->parm.dss1_io.hl_id = id; /* return id */
-       return(0);
-
-     case DSS1_CMD_INVOKE_ABORT:
-       if ((pc = l3dss1_search_dummy_proc(st, ic->parm.dss1_io.hl_id)))
-       { L3DelTimer(&pc->timer); /* remove timer */
-          dss1_release_l3_process(pc);
-          return(0); 
-        } 
-       else
-       { l3_debug(st, "l3dss1_cmd_global abort unknown id");
-          return(-2);
-        } 
-       break;
-    
-     default: 
-       l3_debug(st, "l3dss1_cmd_global unknown cmd 0x%lx", ic->arg);
-       return(-1);  
-   } /* switch ic-> arg */
-  return(-1);
+       u_char temp[265];
+       u_char *p = temp;
+       int i, l, proc_len;
+       struct sk_buff *skb;
+       struct l3_process *pc = NULL;
+
+       switch (ic->arg)
+       { case DSS1_CMD_INVOKE:
+                       if (ic->parm.dss1_io.datalen < 0) return (-2); /* invalid parameter */
+
+                       for (proc_len = 1, i = ic->parm.dss1_io.proc >> 8; i; i++)
+                               i = i >> 8; /* add one byte */
+                       l = ic->parm.dss1_io.datalen + proc_len + 8; /* length excluding ie header */
+                       if (l > 255)
+                               return (-2); /* too long */
+
+                       if (!(id = new_invoke_id(st)))
+                               return (0); /* first get a invoke id -> return if no available */
+
+                       i = -1;
+                       MsgHead(p, i, MT_FACILITY); /* build message head */
+                       *p++ = 0x1C; /* Facility IE */
+                       *p++ = l; /* length of ie */
+                       *p++ = 0x91; /* remote operations */
+                       *p++ = 0xA1; /* invoke */
+                       *p++ = l - 3; /* length of invoke */
+                       *p++ = 0x02; /* invoke id tag */
+                       *p++ = 0x01; /* length is 1 */
+                       *p++ = id; /* invoke id */
+                       *p++ = 0x02; /* operation */
+                       *p++ = proc_len; /* length of operation */
+
+                       for (i = proc_len; i; i--)
+                               *p++ = (ic->parm.dss1_io.proc >> (i - 1)) & 0xFF;
+                       memcpy(p, ic->parm.dss1_io.data, ic->parm.dss1_io.datalen); /* copy data */
+                       l = (p - temp) + ic->parm.dss1_io.datalen; /* total length */
+
+                       if (ic->parm.dss1_io.timeout > 0)
+                               if (!(pc = dss1_new_l3_process(st, -1)))
+                               { free_invoke_id(st, id);
+                                       return (-2);
+                               }
+                       pc->prot.dss1.ll_id = ic->parm.dss1_io.ll_id; /* remember id */
+                       pc->prot.dss1.proc = ic->parm.dss1_io.proc; /* and procedure */
+
+                       if (!(skb = l3_alloc_skb(l)))
+                       { free_invoke_id(st, id);
+                               if (pc) dss1_release_l3_process(pc);
+                               return (-2);
+                       }
+                       memcpy(skb_put(skb, l), temp, l);
+
+                       if (pc)
+                       { pc->prot.dss1.invoke_id = id; /* remember id */
+                               L3AddTimer(&pc->timer, ic->parm.dss1_io.timeout, CC_TDSS1_IO | REQUEST);
+                       }
+
+                       l3_msg(st, DL_DATA | REQUEST, skb);
+                       ic->parm.dss1_io.hl_id = id; /* return id */
+                       return (0);
+
+       case DSS1_CMD_INVOKE_ABORT:
+               if ((pc = l3dss1_search_dummy_proc(st, ic->parm.dss1_io.hl_id)))
+               { L3DelTimer(&pc->timer); /* remove timer */
+                       dss1_release_l3_process(pc);
+                       return (0);
+               }
+               else
+               { l3_debug(st, "l3dss1_cmd_global abort unknown id");
+                       return (-2);
+               }
+               break;
+
+       default:
+               l3_debug(st, "l3dss1_cmd_global unknown cmd 0x%lx", ic->arg);
+               return (-1);
+       } /* switch ic-> arg */
+       return (-1);
 } /* l3dss1_cmd_global */
 
-static void 
+static void
 l3dss1_io_timer(struct l3_process *pc)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs = pc->st->l1.hardware;
+       struct IsdnCardState *cs = pc->st->l1.hardware;
 
-  L3DelTimer(&pc->timer); /* remove timer */
+       L3DelTimer(&pc->timer); /* remove timer */
 
-  ic.driver = cs->myid;
-  ic.command = ISDN_STAT_PROT;
-  ic.arg = DSS1_STAT_INVOKE_ERR;
-  ic.parm.dss1_io.hl_id = pc->prot.dss1.invoke_id;
-  ic.parm.dss1_io.ll_id = pc->prot.dss1.ll_id;
-  ic.parm.dss1_io.proc = pc->prot.dss1.proc;
-  ic.parm.dss1_io.timeout= -1;
-  ic.parm.dss1_io.datalen = 0;
-  ic.parm.dss1_io.data = NULL;
-  free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
-  pc->prot.dss1.invoke_id = 0; /* reset id */
+       ic.driver = cs->myid;
+       ic.command = ISDN_STAT_PROT;
+       ic.arg = DSS1_STAT_INVOKE_ERR;
+       ic.parm.dss1_io.hl_id = pc->prot.dss1.invoke_id;
+       ic.parm.dss1_io.ll_id = pc->prot.dss1.ll_id;
+       ic.parm.dss1_io.proc = pc->prot.dss1.proc;
+       ic.parm.dss1_io.timeout = -1;
+       ic.parm.dss1_io.datalen = 0;
+       ic.parm.dss1_io.data = NULL;
+       free_invoke_id(pc->st, pc->prot.dss1.invoke_id);
+       pc->prot.dss1.invoke_id = 0; /* reset id */
 
-  cs->iif.statcallb(&ic);
+       cs->iif.statcallb(&ic);
 
-  dss1_release_l3_process(pc); 
+       dss1_release_l3_process(pc);
 } /* l3dss1_io_timer */
 
 static void
@@ -2437,12 +2437,12 @@ l3dss1_status(struct l3_process *pc, u_char pr, void *arg)
 {
        u_char *p;
        struct sk_buff *skb = arg;
-       int ret; 
+       int ret;
        u_char cause = 0, callState = 0;
-       
+
        if ((ret = l3dss1_get_cause(pc, skb))) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "STATUS get_cause ret(%d)",ret);
+                       l3_debug(pc->st, "STATUS get_cause ret(%d)", ret);
                if (ret < 0)
                        cause = 96;
                else if (ret > 0)
@@ -2467,9 +2467,9 @@ l3dss1_status(struct l3_process *pc, u_char pr, void *arg)
        }
        if (cause) {
                u_char tmp;
-               
+
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "STATUS error(%d/%d)",ret,cause);
+                       l3_debug(pc->st, "STATUS error(%d/%d)", ret, cause);
                tmp = pc->para.cause;
                pc->para.cause = cause;
                l3dss1_status_send(pc, 0, NULL);
@@ -2495,10 +2495,10 @@ l3dss1_facility(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb = arg;
        int ret;
-       
+
        ret = check_infoelements(pc, skb, ie_FACILITY);
        l3dss1_std_ie_err(pc, ret);
-         {
+       {
                u_char *p;
                if ((p = findie(skb->data, skb->len, IE_FACILITY, 0)))
                        l3dss1_parse_facility(pc->st, pc, pc->callref, p);
@@ -2547,7 +2547,7 @@ l3dss1_suspend_ack(struct l3_process *pc, u_char pr, void *arg)
        /* We don't handle suspend_ack for IE errors now */
        if ((ret = check_infoelements(pc, skb, ie_SUSPEND_ACKNOWLEDGE)))
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "SUSPACK check ie(%d)",ret);
+                       l3_debug(pc->st, "SUSPACK check ie(%d)", ret);
        dss1_release_l3_process(pc);
 }
 
@@ -2559,8 +2559,8 @@ l3dss1_suspend_rej(struct l3_process *pc, u_char pr, void *arg)
 
        if ((ret = l3dss1_get_cause(pc, skb))) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "SUSP_REJ get_cause ret(%d)",ret);
-               if (ret < 0) 
+                       l3_debug(pc->st, "SUSP_REJ get_cause ret(%d)", ret);
+               if (ret < 0)
                        pc->para.cause = 96;
                else
                        pc->para.cause = 100;
@@ -2651,8 +2651,8 @@ l3dss1_resume_rej(struct l3_process *pc, u_char pr, void *arg)
 
        if ((ret = l3dss1_get_cause(pc, skb))) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "RES_REJ get_cause ret(%d)",ret);
-               if (ret < 0) 
+                       l3_debug(pc->st, "RES_REJ get_cause ret(%d)", ret);
+               if (ret < 0)
                        pc->para.cause = 96;
                else
                        pc->para.cause = 100;
@@ -2729,36 +2729,36 @@ l3dss1_global_restart(struct l3_process *pc, u_char pr, void *arg)
 static void
 l3dss1_dl_reset(struct l3_process *pc, u_char pr, void *arg)
 {
-        pc->para.cause = 0x29;          /* Temporary failure */
-        pc->para.loc = 0;
-        l3dss1_disconnect_req(pc, pr, NULL);
-        pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc);
+       pc->para.cause = 0x29;          /* Temporary failure */
+       pc->para.loc = 0;
+       l3dss1_disconnect_req(pc, pr, NULL);
+       pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc);
 }
 
 static void
 l3dss1_dl_release(struct l3_process *pc, u_char pr, void *arg)
 {
-        newl3state(pc, 0);
-        pc->para.cause = 0x1b;          /* Destination out of order */
-        pc->para.loc = 0;
-        pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
-        release_l3_process(pc);
+       newl3state(pc, 0);
+       pc->para.cause = 0x1b;          /* Destination out of order */
+       pc->para.loc = 0;
+       pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
+       release_l3_process(pc);
 }
 
 static void
 l3dss1_dl_reestablish(struct l3_process *pc, u_char pr, void *arg)
 {
-        L3DelTimer(&pc->timer);
-        L3AddTimer(&pc->timer, T309, CC_T309);
-        l3_msg(pc->st, DL_ESTABLISH | REQUEST, NULL);
+       L3DelTimer(&pc->timer);
+       L3AddTimer(&pc->timer, T309, CC_T309);
+       l3_msg(pc->st, DL_ESTABLISH | REQUEST, NULL);
 }
+
 static void
 l3dss1_dl_reest_status(struct l3_process *pc, u_char pr, void *arg)
 {
        L3DelTimer(&pc->timer);
-       pc->para.cause = 0x1F; /* normal, unspecified */
+
+       pc->para.cause = 0x1F; /* normal, unspecified */
        l3dss1_status_send(pc, 0, NULL);
 }
 
@@ -2791,12 +2791,12 @@ static struct stateentry downstatelist[] =
         CC_SETUP | RESPONSE, l3dss1_setup_rsp},
        {SBIT(10),
         CC_SUSPEND | REQUEST, l3dss1_suspend_req},
-        {SBIT(7) | SBIT(9) | SBIT(25),
-         CC_REDIR | REQUEST, l3dss1_redir_req},
-        {SBIT(6),
-         CC_REDIR | REQUEST, l3dss1_redir_req_early},
-        {SBIT(9) | SBIT(25),
-         CC_DISCONNECT | REQUEST, l3dss1_disconnect_req},
+       {SBIT(7) | SBIT(9) | SBIT(25),
+        CC_REDIR | REQUEST, l3dss1_redir_req},
+       {SBIT(6),
+        CC_REDIR | REQUEST, l3dss1_redir_req_early},
+       {SBIT(9) | SBIT(25),
+        CC_DISCONNECT | REQUEST, l3dss1_disconnect_req},
        {SBIT(25),
         CC_T302, l3dss1_t302},
        {SBIT(1),
@@ -2880,20 +2880,20 @@ static struct stateentry globalmes_list[] =
        {SBIT(0),
         MT_RESTART, l3dss1_global_restart},
 /*     {SBIT(1),
-        MT_RESTART_ACKNOWLEDGE, l3dss1_restart_ack},
+       MT_RESTART_ACKNOWLEDGE, l3dss1_restart_ack},
 */
 };
 
 static struct stateentry manstatelist[] =
 {
-        {SBIT(2),
-         DL_ESTABLISH | INDICATION, l3dss1_dl_reset},
-        {SBIT(10),
-         DL_ESTABLISH | CONFIRM, l3dss1_dl_reest_status},
-        {SBIT(10),
-         DL_RELEASE | INDICATION, l3dss1_dl_reestablish},
-        {ALL_STATES,
-         DL_RELEASE | INDICATION, l3dss1_dl_release},
+       {SBIT(2),
+        DL_ESTABLISH | INDICATION, l3dss1_dl_reset},
+       {SBIT(10),
+        DL_ESTABLISH | CONFIRM, l3dss1_dl_reest_status},
+       {SBIT(10),
+        DL_RELEASE | INDICATION, l3dss1_dl_reestablish},
+       {ALL_STATES,
+        DL_RELEASE | INDICATION, l3dss1_dl_release},
 };
 
 /* *INDENT-ON* */
@@ -2916,13 +2916,13 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb)
        if (i == ARRAY_SIZE(globalmes_list)) {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "dss1 global state %d mt %x unhandled",
-                               proc->state, mt);
+                                proc->state, mt);
                }
                MsgHead(p, proc->callref, MT_STATUS);
                *p++ = IE_CAUSE;
                *p++ = 0x2;
                *p++ = 0x80;
-               *p++ = 81 |0x80;        /* invalid cr */
+               *p++ = 81 | 0x80;       /* invalid cr */
                *p++ = 0x14;            /* CallState */
                *p++ = 0x1;
                *p++ = proc->state & 0x3f;
@@ -2934,7 +2934,7 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb)
        } else {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "dss1 global %d mt %x",
-                               proc->state, mt);
+                                proc->state, mt);
                }
                globalmes_list[i].rout(proc, mt, skb);
        }
@@ -2950,19 +2950,19 @@ dss1up(struct PStack *st, int pr, void *arg)
        struct l3_process *proc;
 
        switch (pr) {
-               case (DL_DATA | INDICATION):
-               case (DL_UNIT_DATA | INDICATION):
-                       break;
-               case (DL_ESTABLISH | CONFIRM):
-               case (DL_ESTABLISH | INDICATION):
-               case (DL_RELEASE | INDICATION):
-               case (DL_RELEASE | CONFIRM):
-                       l3_msg(st, pr, arg);
-                       return;
-                       break;
-                default:
-                        printk(KERN_ERR "HiSax dss1up unknown pr=%04x\n", pr);
-                        return;
+       case (DL_DATA | INDICATION):
+       case (DL_UNIT_DATA | INDICATION):
+               break;
+       case (DL_ESTABLISH | CONFIRM):
+       case (DL_ESTABLISH | INDICATION):
+       case (DL_RELEASE | INDICATION):
+       case (DL_RELEASE | CONFIRM):
+               l3_msg(st, pr, arg);
+               return;
+               break;
+       default:
+               printk(KERN_ERR "HiSax dss1up unknown pr=%04x\n", pr);
+               return;
        }
        if (skb->len < 3) {
                l3_debug(st, "dss1up frame too short(%d)", skb->len);
@@ -2996,17 +2996,17 @@ dss1up(struct PStack *st, int pr, void *arg)
        } else if (cr == -1) {  /* Dummy Callref */
                if (mt == MT_FACILITY)
                        if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) {
-                               l3dss1_parse_facility(st, NULL, 
-                                       (pr == (DL_DATA | INDICATION)) ? -1 : -2, p); 
+                               l3dss1_parse_facility(st, NULL,
+                                                     (pr == (DL_DATA | INDICATION)) ? -1 : -2, p);
                                dev_kfree_skb(skb);
-                               return;  
+                               return;
                        }
                if (st->l3.debug & L3_DEB_WARN)
                        l3_debug(st, "dss1up dummy Callref (no facility msg or ie)");
                dev_kfree_skb(skb);
                return;
-       } else if ((((skb->data[1] & 0x0f) == 1) && (0==(cr & 0x7f))) ||
-               (((skb->data[1] & 0x0f) == 2) && (0==(cr & 0x7fff)))) { /* Global CallRef */
+       } else if ((((skb->data[1] & 0x0f) == 1) && (0 == (cr & 0x7f))) ||
+                  (((skb->data[1] & 0x0f) == 2) && (0 == (cr & 0x7fff)))) {    /* Global CallRef */
                if (st->l3.debug & L3_DEB_STATE)
                        l3_debug(st, "dss1up Global CallRef");
                global_handler(st, mt, skb);
@@ -3084,8 +3084,8 @@ dss1up(struct PStack *st, int pr, void *arg)
                dev_kfree_skb(skb);
                return;
        }
-       if ((p = findie(skb->data, skb->len, IE_DISPLAY, 0)) != NULL) 
-         l3dss1_deliver_display(proc, pr, p); /* Display IE included */
+       if ((p = findie(skb->data, skb->len, IE_DISPLAY, 0)) != NULL)
+               l3dss1_deliver_display(proc, pr, p); /* Display IE included */
        for (i = 0; i < ARRAY_SIZE(datastatelist); i++)
                if ((mt == datastatelist[i].primitive) &&
                    ((1 << proc->state) & datastatelist[i].state))
@@ -3093,8 +3093,8 @@ dss1up(struct PStack *st, int pr, void *arg)
        if (i == ARRAY_SIZE(datastatelist)) {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "dss1up%sstate %d mt %#x unhandled",
-                               (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
-                               proc->state, mt);
+                                (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
+                                proc->state, mt);
                }
                if ((MT_RELEASE_COMPLETE != mt) && (MT_RELEASE != mt)) {
                        proc->para.cause = 101;
@@ -3103,8 +3103,8 @@ dss1up(struct PStack *st, int pr, void *arg)
        } else {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "dss1up%sstate %d mt %x",
-                               (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
-                               proc->state, mt);
+                                (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
+                                proc->state, mt);
                }
                datastatelist[i].rout(proc, pr, skb);
        }
@@ -3140,10 +3140,10 @@ dss1down(struct PStack *st, int pr, void *arg)
                return;
        }
 
-       if ( pr == (CC_TDSS1_IO | REQUEST)) {
-               l3dss1_io_timer(proc); /* timer expires */ 
+       if (pr == (CC_TDSS1_IO | REQUEST)) {
+               l3dss1_io_timer(proc); /* timer expires */
                return;
-       }  
+       }
 
        for (i = 0; i < ARRAY_SIZE(downstatelist); i++)
                if ((pr == downstatelist[i].primitive) &&
@@ -3152,12 +3152,12 @@ dss1down(struct PStack *st, int pr, void *arg)
        if (i == ARRAY_SIZE(downstatelist)) {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "dss1down state %d prim %#x unhandled",
-                               proc->state, pr);
+                                proc->state, pr);
                }
        } else {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "dss1down state %d prim %#x",
-                               proc->state, pr);
+                                proc->state, pr);
                }
                downstatelist[i].rout(proc, pr, arg);
        }
@@ -3166,31 +3166,31 @@ dss1down(struct PStack *st, int pr, void *arg)
 static void
 dss1man(struct PStack *st, int pr, void *arg)
 {
-        int i;
-        struct l3_process *proc = arg;
-        if (!proc) {
-                printk(KERN_ERR "HiSax dss1man without proc pr=%04x\n", pr);
-                return;
-        }
-        for (i = 0; i < ARRAY_SIZE(manstatelist); i++)
-                if ((pr == manstatelist[i].primitive) &&
-                    ((1 << proc->state) & manstatelist[i].state))
-                        break;
-        if (i == ARRAY_SIZE(manstatelist)) {
-                if (st->l3.debug & L3_DEB_STATE) {
-                        l3_debug(st, "cr %d dss1man state %d prim %#x unhandled",
-                                proc->callref & 0x7f, proc->state, pr);
-                }
-        } else {
-                if (st->l3.debug & L3_DEB_STATE) {
-                        l3_debug(st, "cr %d dss1man state %d prim %#x",
-                                proc->callref & 0x7f, proc->state, pr);
-                }
-                manstatelist[i].rout(proc, pr, arg);
-        }
-}
+       int i;
+       struct l3_process *proc = arg;
+
+       if (!proc) {
+               printk(KERN_ERR "HiSax dss1man without proc pr=%04x\n", pr);
+               return;
+       }
+       for (i = 0; i < ARRAY_SIZE(manstatelist); i++)
+               if ((pr == manstatelist[i].primitive) &&
+                   ((1 << proc->state) & manstatelist[i].state))
+                       break;
+       if (i == ARRAY_SIZE(manstatelist)) {
+               if (st->l3.debug & L3_DEB_STATE) {
+                       l3_debug(st, "cr %d dss1man state %d prim %#x unhandled",
+                                proc->callref & 0x7f, proc->state, pr);
+               }
+       } else {
+               if (st->l3.debug & L3_DEB_STATE) {
+                       l3_debug(st, "cr %d dss1man state %d prim %#x",
+                                proc->callref & 0x7f, proc->state, pr);
+               }
+               manstatelist[i].rout(proc, pr, arg);
+       }
+}
+
 void
 setstack_dss1(struct PStack *st)
 {
@@ -3205,8 +3205,8 @@ setstack_dss1(struct PStack *st)
        st->prot.dss1.last_invoke_id = 0;
        st->prot.dss1.invoke_used[0] = 1; /* Bit 0 must always be set to 1 */
        i = 1;
-       while (i < 32) 
-               st->prot.dss1.invoke_used[i++] = 0;   
+       while (i < 32)
+               st->prot.dss1.invoke_used[i++] = 0;
 
        if (!(st->l3.global = kmalloc(sizeof(struct l3_process), GFP_ATOMIC))) {
                printk(KERN_ERR "HiSax can't get memory for dss1 global CR\n");
@@ -3217,7 +3217,7 @@ setstack_dss1(struct PStack *st)
                st->l3.global->debug = L3_DEB_WARN;
                st->l3.global->st = st;
                st->l3.global->N303 = 1;
-               st->l3.global->prot.dss1.invoke_id = 0; 
+               st->l3.global->prot.dss1.invoke_id = 0;
 
                L3InitTimer(st->l3.global, &st->l3.global->timer);
        }
index 6da47f0..a7807e8 100644 (file)
 
 /* l3dss1 specific data in l3 process */
 typedef struct
-  { unsigned char invoke_id; /* used invoke id in remote ops, 0 = not active */
-    ulong ll_id; /* remebered ll id */
-    u8 remote_operation; /* handled remote operation, 0 = not active */ 
-    int proc; /* rememered procedure */  
-    ulong remote_result; /* result of remote operation for statcallb */
-    char uus1_data[35]; /* data send during alerting or disconnect */
-  } dss1_proc_priv;
+{ unsigned char invoke_id; /* used invoke id in remote ops, 0 = not active */
+       ulong ll_id; /* remebered ll id */
+       u8 remote_operation; /* handled remote operation, 0 = not active */
+       int proc; /* rememered procedure */
+       ulong remote_result; /* result of remote operation for statcallb */
+       char uus1_data[35]; /* data send during alerting or disconnect */
+} dss1_proc_priv;
 
 /* l3dss1 specific data in protocol stack */
 typedef struct
-  { unsigned char last_invoke_id; /* last used value for invoking */
-    unsigned char invoke_used[32]; /* 256 bits for 256 values */
-  } dss1_stk_priv;        
+{ unsigned char last_invoke_id; /* last used value for invoking */
+       unsigned char invoke_used[32]; /* 256 bits for 256 values */
+} dss1_stk_priv;
 
 #endif /* only l3dss1_process */
index 092dcbb..0df6691 100644 (file)
@@ -4,14 +4,14 @@
  *
  * Author       Matt Henderson & Guy Ellis
  * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
- * 2000.6.6 Initial implementation of routines for US NI1 
- * Layer 3 protocol based on the EURO/DSS1 D-channel protocol 
- * driver written by Karsten Keil et al.  
- * NI-1 Hall of Fame - Thanks to.... 
+ * 2000.6.6 Initial implementation of routines for US NI1
+ * Layer 3 protocol based on the EURO/DSS1 D-channel protocol
+ * driver written by Karsten Keil et al.
+ * NI-1 Hall of Fame - Thanks to....
  * Ragnar Paulson - for some handy code fragments
  * Will Scales - beta tester extraordinaire
  * Brett Whittacre - beta tester and remote devel system in Vegas
@@ -29,14 +29,14 @@ static const char *ni1_revision = "$Revision: 2.8.2.3 $";
 
 #define EXT_BEARER_CAPS 1
 
-#define        MsgHead(ptr, cref, mty) \
-       *ptr++ = 0x8; \
-       if (cref == -1) { \
-               *ptr++ = 0x0; \
-       } else { \
-               *ptr++ = 0x1; \
-               *ptr++ = cref^0x80; \
-       } \
+#define        MsgHead(ptr, cref, mty)                 \
+       *ptr++ = 0x8;                           \
+       if (cref == -1) {                       \
+               *ptr++ = 0x0;                   \
+       } else {                                \
+               *ptr++ = 0x1;                   \
+               *ptr++ = cref^0x80;             \
+       }                                       \
        *ptr++ = mty
 
 
@@ -48,22 +48,22 @@ static unsigned char new_invoke_id(struct PStack *p)
 {
        unsigned char retval;
        int i;
-  
+
        i = 32; /* maximum search depth */
 
        retval = p->prot.ni1.last_invoke_id + 1; /* try new id */
        while ((i) && (p->prot.ni1.invoke_used[retval >> 3] == 0xFF)) {
                p->prot.ni1.last_invoke_id = (retval & 0xF8) + 8;
                i--;
-       }  
+       }
        if (i) {
                while (p->prot.ni1.invoke_used[retval >> 3] & (1 << (retval & 7)))
-               retval++; 
+                       retval++;
        } else
                retval = 0;
        p->prot.ni1.last_invoke_id = retval;
        p->prot.ni1.invoke_used[retval >> 3] |= (1 << (retval & 7));
-       return(retval);  
+       return (retval);
 } /* new_invoke_id */
 
 /*************************/
@@ -72,10 +72,10 @@ static unsigned char new_invoke_id(struct PStack *p)
 static void free_invoke_id(struct PStack *p, unsigned char id)
 {
 
-  if (!id) return; /* 0 = invalid value */
+       if (!id) return; /* 0 = invalid value */
 
-  p->prot.ni1.invoke_used[id >> 3] &= ~(1 << (id & 7));
-} /* free_invoke_id */  
+       p->prot.ni1.invoke_used[id >> 3] &= ~(1 << (id & 7));
+} /* free_invoke_id */
 
 
 /**********************************************************/
@@ -85,26 +85,26 @@ static struct l3_process
 *ni1_new_l3_process(struct PStack *st, int cr)
 {  struct l3_process *proc;
 
-   if (!(proc = new_l3_process(st, cr))) 
-     return(NULL);
+       if (!(proc = new_l3_process(st, cr)))
+               return (NULL);
 
-   proc->prot.ni1.invoke_id = 0;
-   proc->prot.ni1.remote_operation = 0;
-   proc->prot.ni1.uus1_data[0] = '\0';
-   
-   return(proc);
+       proc->prot.ni1.invoke_id = 0;
+       proc->prot.ni1.remote_operation = 0;
+       proc->prot.ni1.uus1_data[0] = '\0';
+
+       return (proc);
 } /* ni1_new_l3_process */
 
 /************************************************/
 /* free a l3 process and all ni1 specific data */
-/************************************************/ 
+/************************************************/
 static void
 ni1_release_l3_process(struct l3_process *p)
 {
-   free_invoke_id(p->st,p->prot.ni1.invoke_id);
-   release_l3_process(p);
+       free_invoke_id(p->st, p->prot.ni1.invoke_id);
+       release_l3_process(p);
 } /* ni1_release_l3_process */
+
 /********************************************************/
 /* search a process with invoke id id and dummy callref */
 /********************************************************/
@@ -112,120 +112,120 @@ static struct l3_process *
 l3ni1_search_dummy_proc(struct PStack *st, int id)
 { struct l3_process *pc = st->l3.proc; /* start of processes */
 
-  if (!id) return(NULL);
+       if (!id) return (NULL);
 
-  while (pc)
-   { if ((pc->callref == -1) && (pc->prot.ni1.invoke_id == id))
-       return(pc);
-     pc = pc->next;
-   } 
-  return(NULL);
+       while (pc)
+       { if ((pc->callref == -1) && (pc->prot.ni1.invoke_id == id))
+                       return (pc);
+               pc = pc->next;
+       }
+       return (NULL);
 } /* l3ni1_search_dummy_proc */
 
 /*******************************************************************/
 /* called when a facility message with a dummy callref is received */
 /* and a return result is delivered. id specifies the invoke id.   */
-/*******************************************************************/ 
-static void 
+/*******************************************************************/
+static void
 l3ni1_dummy_return_result(struct PStack *st, int id, u_char *p, u_char nlen)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs;
-  struct l3_process *pc = NULL; 
-
-  if ((pc = l3ni1_search_dummy_proc(st, id)))
-   { L3DelTimer(&pc->timer); /* remove timer */
-
-     cs = pc->st->l1.hardware;
-     ic.driver = cs->myid;
-     ic.command = ISDN_STAT_PROT;
-     ic.arg = NI1_STAT_INVOKE_RES;
-     ic.parm.ni1_io.hl_id = pc->prot.ni1.invoke_id;
-     ic.parm.ni1_io.ll_id = pc->prot.ni1.ll_id;
-     ic.parm.ni1_io.proc = pc->prot.ni1.proc;
-     ic.parm.ni1_io.timeout= 0;
-     ic.parm.ni1_io.datalen = nlen;
-     ic.parm.ni1_io.data = p;
-     free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
-     pc->prot.ni1.invoke_id = 0; /* reset id */
-
-     cs->iif.statcallb(&ic);
-     ni1_release_l3_process(pc); 
-   }
-  else
-   l3_debug(st, "dummy return result id=0x%x result len=%d",id,nlen);
+       struct IsdnCardState *cs;
+       struct l3_process *pc = NULL;
+
+       if ((pc = l3ni1_search_dummy_proc(st, id)))
+       { L3DelTimer(&pc->timer); /* remove timer */
+
+               cs = pc->st->l1.hardware;
+               ic.driver = cs->myid;
+               ic.command = ISDN_STAT_PROT;
+               ic.arg = NI1_STAT_INVOKE_RES;
+               ic.parm.ni1_io.hl_id = pc->prot.ni1.invoke_id;
+               ic.parm.ni1_io.ll_id = pc->prot.ni1.ll_id;
+               ic.parm.ni1_io.proc = pc->prot.ni1.proc;
+               ic.parm.ni1_io.timeout = 0;
+               ic.parm.ni1_io.datalen = nlen;
+               ic.parm.ni1_io.data = p;
+               free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
+               pc->prot.ni1.invoke_id = 0; /* reset id */
+
+               cs->iif.statcallb(&ic);
+               ni1_release_l3_process(pc);
+       }
+       else
+               l3_debug(st, "dummy return result id=0x%x result len=%d", id, nlen);
 } /* l3ni1_dummy_return_result */
 
 /*******************************************************************/
 /* called when a facility message with a dummy callref is received */
 /* and a return error is delivered. id specifies the invoke id.    */
-/*******************************************************************/ 
-static void 
+/*******************************************************************/
+static void
 l3ni1_dummy_error_return(struct PStack *st, int id, ulong error)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs;
-  struct l3_process *pc = NULL; 
-
-  if ((pc = l3ni1_search_dummy_proc(st, id)))
-   { L3DelTimer(&pc->timer); /* remove timer */
-
-     cs = pc->st->l1.hardware;
-     ic.driver = cs->myid;
-     ic.command = ISDN_STAT_PROT;
-     ic.arg = NI1_STAT_INVOKE_ERR;
-     ic.parm.ni1_io.hl_id = pc->prot.ni1.invoke_id;
-     ic.parm.ni1_io.ll_id = pc->prot.ni1.ll_id;
-     ic.parm.ni1_io.proc = pc->prot.ni1.proc;
-     ic.parm.ni1_io.timeout= error;
-     ic.parm.ni1_io.datalen = 0;
-     ic.parm.ni1_io.data = NULL;
-     free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
-     pc->prot.ni1.invoke_id = 0; /* reset id */
-
-     cs->iif.statcallb(&ic);
-     ni1_release_l3_process(pc); 
-   }
-  else
-   l3_debug(st, "dummy return error id=0x%x error=0x%lx",id,error);
+       struct IsdnCardState *cs;
+       struct l3_process *pc = NULL;
+
+       if ((pc = l3ni1_search_dummy_proc(st, id)))
+       { L3DelTimer(&pc->timer); /* remove timer */
+
+               cs = pc->st->l1.hardware;
+               ic.driver = cs->myid;
+               ic.command = ISDN_STAT_PROT;
+               ic.arg = NI1_STAT_INVOKE_ERR;
+               ic.parm.ni1_io.hl_id = pc->prot.ni1.invoke_id;
+               ic.parm.ni1_io.ll_id = pc->prot.ni1.ll_id;
+               ic.parm.ni1_io.proc = pc->prot.ni1.proc;
+               ic.parm.ni1_io.timeout = error;
+               ic.parm.ni1_io.datalen = 0;
+               ic.parm.ni1_io.data = NULL;
+               free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
+               pc->prot.ni1.invoke_id = 0; /* reset id */
+
+               cs->iif.statcallb(&ic);
+               ni1_release_l3_process(pc);
+       }
+       else
+               l3_debug(st, "dummy return error id=0x%x error=0x%lx", id, error);
 } /* l3ni1_error_return */
 
 /*******************************************************************/
 /* called when a facility message with a dummy callref is received */
 /* and a invoke is delivered. id specifies the invoke id.          */
-/*******************************************************************/ 
-static void 
-l3ni1_dummy_invoke(struct PStack *st, int cr, int id, 
-                    int ident, u_char *p, u_char nlen)
+/*******************************************************************/
+static void
+l3ni1_dummy_invoke(struct PStack *st, int cr, int id,
+                  int ident, u_char *p, u_char nlen)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs;
-
-  l3_debug(st, "dummy invoke %s id=0x%x ident=0x%x datalen=%d",
-               (cr == -1) ? "local" : "broadcast",id,ident,nlen);
-  if (cr >= -1) return; /* ignore local data */
-
-  cs = st->l1.hardware;
-  ic.driver = cs->myid;
-  ic.command = ISDN_STAT_PROT;
-  ic.arg = NI1_STAT_INVOKE_BRD;
-  ic.parm.ni1_io.hl_id = id;
-  ic.parm.ni1_io.ll_id = 0;
-  ic.parm.ni1_io.proc = ident;
-  ic.parm.ni1_io.timeout= 0;
-  ic.parm.ni1_io.datalen = nlen;
-  ic.parm.ni1_io.data = p;
-
-  cs->iif.statcallb(&ic);
+       struct IsdnCardState *cs;
+
+       l3_debug(st, "dummy invoke %s id=0x%x ident=0x%x datalen=%d",
+                (cr == -1) ? "local" : "broadcast", id, ident, nlen);
+       if (cr >= -1) return; /* ignore local data */
+
+       cs = st->l1.hardware;
+       ic.driver = cs->myid;
+       ic.command = ISDN_STAT_PROT;
+       ic.arg = NI1_STAT_INVOKE_BRD;
+       ic.parm.ni1_io.hl_id = id;
+       ic.parm.ni1_io.ll_id = 0;
+       ic.parm.ni1_io.proc = ident;
+       ic.parm.ni1_io.timeout = 0;
+       ic.parm.ni1_io.datalen = nlen;
+       ic.parm.ni1_io.data = p;
+
+       cs->iif.statcallb(&ic);
 } /* l3ni1_dummy_invoke */
 
 static void
 l3ni1_parse_facility(struct PStack *st, struct l3_process *pc,
-                      int cr, u_char * p)
+                    int cr, u_char *p)
 {
        int qd_len = 0;
        unsigned char nlen = 0, ilen, cp_tag;
        int ident, id;
        ulong err_ret;
 
-       if (pc) 
+       if (pc)
                st = pc->st; /* valid Stack */
        else
                if ((!st) || (cr >= 0)) return; /* neither pc nor st specified */
@@ -254,173 +254,173 @@ l3ni1_parse_facility(struct PStack *st, struct l3_process *pc,
                l3_debug(st, "class and form != 0xA0");
                return;
        }
-       
-        cp_tag = *p & 0x1F; /* remember tag value */
 
-        p++;
+       cp_tag = *p & 0x1F; /* remember tag value */
+
+       p++;
        qd_len--;
-       if (qd_len < 1) 
-          { l3_debug(st, "qd_len < 1");
-           return;
-         }
-       if (*p & 0x80) 
-          { /* length format indefinite or limited */
-           nlen = *p++ & 0x7F; /* number of len bytes or indefinite */
-            if ((qd_len-- < ((!nlen) ? 3 : (1 + nlen))) ||
-                (nlen > 1))   
-            { l3_debug(st, "length format error or not implemented");
-              return;
-             }
-            if (nlen == 1)
-            { nlen = *p++; /* complete length */
-               qd_len--;
-             } 
-            else
-            { qd_len -= 2; /* trailing null bytes */
-               if ((*(p+qd_len)) || (*(p+qd_len+1)))
-               { l3_debug(st,"length format indefinite error");
-                  return;
-                }
-               nlen = qd_len;
-             }
-         }
-        else
-         { nlen = *p++;
-           qd_len--;
-          } 
-       if (qd_len < nlen) 
-          { l3_debug(st, "qd_len < nlen");
-           return;
-         }
+       if (qd_len < 1)
+       { l3_debug(st, "qd_len < 1");
+               return;
+       }
+       if (*p & 0x80)
+       { /* length format indefinite or limited */
+               nlen = *p++ & 0x7F; /* number of len bytes or indefinite */
+               if ((qd_len-- < ((!nlen) ? 3 : (1 + nlen))) ||
+                   (nlen > 1))
+               { l3_debug(st, "length format error or not implemented");
+                       return;
+               }
+               if (nlen == 1)
+               { nlen = *p++; /* complete length */
+                       qd_len--;
+               }
+               else
+               { qd_len -= 2; /* trailing null bytes */
+                       if ((*(p + qd_len)) || (*(p + qd_len + 1)))
+                       { l3_debug(st, "length format indefinite error");
+                               return;
+                       }
+                       nlen = qd_len;
+               }
+       }
+       else
+       { nlen = *p++;
+               qd_len--;
+       }
+       if (qd_len < nlen)
+       { l3_debug(st, "qd_len < nlen");
+               return;
+       }
        qd_len -= nlen;
 
-       if (nlen < 2) 
-          { l3_debug(st, "nlen < 2");
-           return;
-         }
-        if (*p != 0x02) 
-          {  /* invoke identifier tag */
-            l3_debug(st, "invoke identifier tag !=0x02");
-            return;
-         }
+       if (nlen < 2)
+       { l3_debug(st, "nlen < 2");
+               return;
+       }
+       if (*p != 0x02)
+       {  /* invoke identifier tag */
+               l3_debug(st, "invoke identifier tag !=0x02");
+               return;
+       }
        p++;
        nlen--;
-       if (*p & 0x80) 
-          { /* length format */
-           l3_debug(st, "invoke id length format 2");
-           return;
-         }
+       if (*p & 0x80)
+       { /* length format */
+               l3_debug(st, "invoke id length format 2");
+               return;
+       }
        ilen = *p++;
        nlen--;
-       if (ilen > nlen || ilen == 0) 
-          { l3_debug(st, "ilen > nlen || ilen == 0");
-           return;
-         }
+       if (ilen > nlen || ilen == 0)
+       { l3_debug(st, "ilen > nlen || ilen == 0");
+               return;
+       }
        nlen -= ilen;
        id = 0;
-       while (ilen > 0) 
-          { id = (id << 8) | (*p++ & 0xFF);    /* invoke identifier */
-           ilen--;
-         }
+       while (ilen > 0)
+       { id = (id << 8) | (*p++ & 0xFF);       /* invoke identifier */
+               ilen--;
+       }
 
        switch (cp_tag) {       /* component tag */
-               case 1: /* invoke */
-                               if (nlen < 2) {
-                                       l3_debug(st, "nlen < 2 22");
-                                       return;
-                               }
-                               if (*p != 0x02) {       /* operation value */
-                                       l3_debug(st, "operation value !=0x02");
-                                       return;
-                               }
-                               p++;
-                               nlen--;
-                               ilen = *p++;
-                               nlen--;
-                               if (ilen > nlen || ilen == 0) {
-                                       l3_debug(st, "ilen > nlen || ilen == 0 22");
-                                       return;
-                               }
-                               nlen -= ilen;
-                               ident = 0;
-                               while (ilen > 0) {
-                                       ident = (ident << 8) | (*p++ & 0xFF);
-                                       ilen--;
-                               }
+       case 1: /* invoke */
+               if (nlen < 2) {
+                       l3_debug(st, "nlen < 2 22");
+                       return;
+               }
+               if (*p != 0x02) {       /* operation value */
+                       l3_debug(st, "operation value !=0x02");
+                       return;
+               }
+               p++;
+               nlen--;
+               ilen = *p++;
+               nlen--;
+               if (ilen > nlen || ilen == 0) {
+                       l3_debug(st, "ilen > nlen || ilen == 0 22");
+                       return;
+               }
+               nlen -= ilen;
+               ident = 0;
+               while (ilen > 0) {
+                       ident = (ident << 8) | (*p++ & 0xFF);
+                       ilen--;
+               }
 
-                               if (!pc) 
-                               {
-                                       l3ni1_dummy_invoke(st, cr, id, ident, p, nlen);
-                                       return;
-                               } 
-                               l3_debug(st, "invoke break");
-                               break;
-               case 2: /* return result */
-                        /* if no process available handle separately */ 
-                        if (!pc)
-                        { if (cr == -1) 
-                             l3ni1_dummy_return_result(st, id, p, nlen);
-                           return; 
-                         }   
-                        if ((pc->prot.ni1.invoke_id) && (pc->prot.ni1.invoke_id == id))
-                          { /* Diversion successful */
-                            free_invoke_id(st,pc->prot.ni1.invoke_id);
-                            pc->prot.ni1.remote_result = 0; /* success */     
-                            pc->prot.ni1.invoke_id = 0;
-                            pc->redir_result = pc->prot.ni1.remote_result; 
-                            st->l3.l3l4(st, CC_REDIR | INDICATION, pc);                                  } /* Diversion successful */
-                        else
-                          l3_debug(st,"return error unknown identifier");
-                       break;
-               case 3: /* return error */
-                            err_ret = 0;
-                           if (nlen < 2) 
-                              { l3_debug(st, "return error nlen < 2");
-                               return;
-                             }
-                            if (*p != 0x02) 
-                              { /* result tag */
-                               l3_debug(st, "invoke error tag !=0x02");
-                               return;
-                             }
-                           p++;
-                           nlen--;
-                           if (*p > 4) 
-                              { /* length format */
-                               l3_debug(st, "invoke return errlen > 4 ");
-                               return;
-                             }
-                           ilen = *p++;
-                           nlen--;
-                           if (ilen > nlen || ilen == 0) 
-                              { l3_debug(st, "error return ilen > nlen || ilen == 0");
-                               return;
-                              }
-                           nlen -= ilen;
-                           while (ilen > 0) 
-                             { err_ret = (err_ret << 8) | (*p++ & 0xFF);       /* error value */
-                              ilen--;
-                            }
-                        /* if no process available handle separately */ 
-                        if (!pc)
-                        { if (cr == -1)
-                             l3ni1_dummy_error_return(st, id, err_ret);
-                           return; 
-                         }   
-                        if ((pc->prot.ni1.invoke_id) && (pc->prot.ni1.invoke_id == id))
-                          { /* Deflection error */
-                            free_invoke_id(st,pc->prot.ni1.invoke_id);
-                            pc->prot.ni1.remote_result = err_ret; /* result */
-                            pc->prot.ni1.invoke_id = 0; 
-                            pc->redir_result = pc->prot.ni1.remote_result; 
-                            st->l3.l3l4(st, CC_REDIR | INDICATION, pc);  
-                          } /* Deflection error */
-                        else
-                          l3_debug(st,"return result unknown identifier");
-                       break;
-               default:
-                       l3_debug(st, "facility default break tag=0x%02x",cp_tag);
-                       break;
+               if (!pc)
+               {
+                       l3ni1_dummy_invoke(st, cr, id, ident, p, nlen);
+                       return;
+               }
+               l3_debug(st, "invoke break");
+               break;
+       case 2: /* return result */
+               /* if no process available handle separately */
+               if (!pc)
+               { if (cr == -1)
+                               l3ni1_dummy_return_result(st, id, p, nlen);
+                       return;
+               }
+               if ((pc->prot.ni1.invoke_id) && (pc->prot.ni1.invoke_id == id))
+               { /* Diversion successful */
+                       free_invoke_id(st, pc->prot.ni1.invoke_id);
+                       pc->prot.ni1.remote_result = 0; /* success */
+                       pc->prot.ni1.invoke_id = 0;
+                       pc->redir_result = pc->prot.ni1.remote_result;
+                       st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successful */
+               else
+                       l3_debug(st, "return error unknown identifier");
+               break;
+       case 3: /* return error */
+               err_ret = 0;
+               if (nlen < 2)
+               { l3_debug(st, "return error nlen < 2");
+                       return;
+               }
+               if (*p != 0x02)
+               { /* result tag */
+                       l3_debug(st, "invoke error tag !=0x02");
+                       return;
+               }
+               p++;
+               nlen--;
+               if (*p > 4)
+               { /* length format */
+                       l3_debug(st, "invoke return errlen > 4 ");
+                       return;
+               }
+               ilen = *p++;
+               nlen--;
+               if (ilen > nlen || ilen == 0)
+               { l3_debug(st, "error return ilen > nlen || ilen == 0");
+                       return;
+               }
+               nlen -= ilen;
+               while (ilen > 0)
+               { err_ret = (err_ret << 8) | (*p++ & 0xFF);     /* error value */
+                       ilen--;
+               }
+               /* if no process available handle separately */
+               if (!pc)
+               { if (cr == -1)
+                               l3ni1_dummy_error_return(st, id, err_ret);
+                       return;
+               }
+               if ((pc->prot.ni1.invoke_id) && (pc->prot.ni1.invoke_id == id))
+               { /* Deflection error */
+                       free_invoke_id(st, pc->prot.ni1.invoke_id);
+                       pc->prot.ni1.remote_result = err_ret; /* result */
+                       pc->prot.ni1.invoke_id = 0;
+                       pc->redir_result = pc->prot.ni1.remote_result;
+                       st->l3.l3l4(st, CC_REDIR | INDICATION, pc);
+               } /* Deflection error */
+               else
+                       l3_debug(st, "return result unknown identifier");
+               break;
+       default:
+               l3_debug(st, "facility default break tag=0x%02x", cp_tag);
+               break;
        }
 }
 
@@ -518,21 +518,21 @@ l3ni1_msg_without_setup(struct l3_process *pc, u_char pr, void *arg)
        struct sk_buff *skb;
 
        switch (pc->para.cause) {
-               case 81:        /* invalid callreference */
-               case 88:        /* incomp destination */
-               case 96:        /* mandory IE missing */
-               case 100:       /* invalid IE contents */
-               case 101:       /* incompatible Callstate */
-                       MsgHead(p, pc->callref, MT_RELEASE_COMPLETE);
-                       *p++ = IE_CAUSE;
-                       *p++ = 0x2;
-                       *p++ = 0x80;
-                       *p++ = pc->para.cause | 0x80;
-                       break;
-               default:
-                       printk(KERN_ERR "HiSax l3ni1_msg_without_setup wrong cause %d\n",
-                               pc->para.cause);
-                       return;
+       case 81:        /* invalid callreference */
+       case 88:        /* incomp destination */
+       case 96:        /* mandory IE missing */
+       case 100:       /* invalid IE contents */
+       case 101:       /* incompatible Callstate */
+               MsgHead(p, pc->callref, MT_RELEASE_COMPLETE);
+               *p++ = IE_CAUSE;
+               *p++ = 0x2;
+               *p++ = 0x80;
+               *p++ = pc->para.cause | 0x80;
+               break;
+       default:
+               printk(KERN_ERR "HiSax l3ni1_msg_without_setup wrong cause %d\n",
+                      pc->para.cause);
+               return;
        }
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
@@ -543,42 +543,42 @@ l3ni1_msg_without_setup(struct l3_process *pc, u_char pr, void *arg)
 }
 
 static int ie_ALERTING[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
-               IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_HLC,
-               IE_USER_USER, -1};
+                           IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_HLC,
+                           IE_USER_USER, -1};
 static int ie_CALL_PROCEEDING[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
-               IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_HLC, -1};
-static int ie_CONNECT[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1, 
-               IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_DATE, IE_SIGNAL,
-               IE_CONNECT_PN, IE_CONNECT_SUB, IE_LLC, IE_HLC, IE_USER_USER, -1};
+                                  IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_HLC, -1};
+static int ie_CONNECT[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
+                          IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_DATE, IE_SIGNAL,
+                          IE_CONNECT_PN, IE_CONNECT_SUB, IE_LLC, IE_HLC, IE_USER_USER, -1};
 static int ie_CONNECT_ACKNOWLEDGE[] = {IE_CHANNEL_ID, IE_DISPLAY, IE_SIGNAL, -1};
 static int ie_DISCONNECT[] = {IE_CAUSE | IE_MANDATORY, IE_FACILITY,
-               IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
+                             IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
 static int ie_INFORMATION[] = {IE_COMPLETE, IE_DISPLAY, IE_KEYPAD, IE_SIGNAL,
-               IE_CALLED_PN, -1};
+                              IE_CALLED_PN, -1};
 static int ie_NOTIFY[] = {IE_BEARER, IE_NOTIFY | IE_MANDATORY, IE_DISPLAY, -1};
 static int ie_PROGRESS[] = {IE_BEARER, IE_CAUSE, IE_FACILITY, IE_PROGRESS |
-               IE_MANDATORY, IE_DISPLAY, IE_HLC, IE_USER_USER, -1};
+                           IE_MANDATORY, IE_DISPLAY, IE_HLC, IE_USER_USER, -1};
 static int ie_RELEASE[] = {IE_CAUSE | IE_MANDATORY_1, IE_FACILITY, IE_DISPLAY,
-               IE_SIGNAL, IE_USER_USER, -1};
-/* a RELEASE_COMPLETE with errors don't require special actions 
-static int ie_RELEASE_COMPLETE[] = {IE_CAUSE | IE_MANDATORY_1, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
+                          IE_SIGNAL, IE_USER_USER, -1};
+/* a RELEASE_COMPLETE with errors don't require special actions
+   static int ie_RELEASE_COMPLETE[] = {IE_CAUSE | IE_MANDATORY_1, IE_DISPLAY, IE_SIGNAL, IE_USER_USER, -1};
 */
-static int ie_RESUME_ACKNOWLEDGE[] = {IE_CHANNEL_ID| IE_MANDATORY, IE_FACILITY,
-               IE_DISPLAY, -1};
+static int ie_RESUME_ACKNOWLEDGE[] = {IE_CHANNEL_ID | IE_MANDATORY, IE_FACILITY,
+                                     IE_DISPLAY, -1};
 static int ie_RESUME_REJECT[] = {IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
 static int ie_SETUP[] = {IE_COMPLETE, IE_BEARER  | IE_MANDATORY,
-               IE_CHANNEL_ID| IE_MANDATORY, IE_FACILITY, IE_PROGRESS,
-               IE_NET_FAC, IE_DISPLAY, IE_KEYPAD, IE_SIGNAL, IE_CALLING_PN,
-               IE_CALLING_SUB, IE_CALLED_PN, IE_CALLED_SUB, IE_REDIR_NR,
-               IE_LLC, IE_HLC, IE_USER_USER, -1};
+                        IE_CHANNEL_ID | IE_MANDATORY, IE_FACILITY, IE_PROGRESS,
+                        IE_NET_FAC, IE_DISPLAY, IE_KEYPAD, IE_SIGNAL, IE_CALLING_PN,
+                        IE_CALLING_SUB, IE_CALLED_PN, IE_CALLED_SUB, IE_REDIR_NR,
+                        IE_LLC, IE_HLC, IE_USER_USER, -1};
 static int ie_SETUP_ACKNOWLEDGE[] = {IE_CHANNEL_ID | IE_MANDATORY, IE_FACILITY,
-               IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, -1};
+                                    IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, -1};
 static int ie_STATUS[] = {IE_CAUSE | IE_MANDATORY, IE_CALL_STATE |
-               IE_MANDATORY, IE_DISPLAY, -1};
+                         IE_MANDATORY, IE_DISPLAY, -1};
 static int ie_STATUS_ENQUIRY[] = {IE_DISPLAY, -1};
 static int ie_SUSPEND_ACKNOWLEDGE[] = {IE_DISPLAY, IE_FACILITY, -1};
 static int ie_SUSPEND_REJECT[] = {IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
-/* not used 
+/* not used
  * static int ie_CONGESTION_CONTROL[] = {IE_CONGESTION | IE_MANDATORY,
  *             IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
  * static int ie_USER_INFORMATION[] = {IE_MORE_DATA, IE_USER_USER | IE_MANDATORY, -1};
@@ -586,8 +586,8 @@ static int ie_SUSPEND_REJECT[] = {IE_CAUSE | IE_MANDATORY, IE_DISPLAY, -1};
  *             IE_MANDATORY, -1};
  */
 static int ie_FACILITY[] = {IE_FACILITY | IE_MANDATORY, IE_DISPLAY, -1};
-static int comp_required[] = {1,2,3,5,6,7,9,10,11,14,15,-1};
-static int l3_valid_states[] = {0,1,2,3,4,6,7,8,9,10,11,12,15,17,19,25,-1};
+static int comp_required[] = {1, 2, 3, 5, 6, 7, 9, 10, 11, 14, 15, -1};
+static int l3_valid_states[] = {0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 15, 17, 19, 25, -1};
 
 struct ie_len {
        int ie;
@@ -628,7 +628,7 @@ struct ie_len max_ie_len[] = {
        {IE_LLC, 18},
        {IE_HLC, 5},
        {IE_USER_USER, 131},
-       {-1,0},
+       {-1, 0},
 };
 
 static int
@@ -636,10 +636,10 @@ getmax_ie_len(u_char ie) {
        int i = 0;
        while (max_ie_len[i].ie != -1) {
                if (max_ie_len[i].ie == ie)
-                       return(max_ie_len[i].len);
+                       return (max_ie_len[i].len);
                i++;
        }
-       return(255);
+       return (255);
 }
 
 static int
@@ -649,14 +649,14 @@ ie_in_set(struct l3_process *pc, u_char ie, int *checklist) {
        while (*checklist != -1) {
                if ((*checklist & 0xff) == ie) {
                        if (ie & 0x80)
-                               return(-ret);
+                               return (-ret);
                        else
-                               return(ret);
+                               return (ret);
                }
                ret++;
                checklist++;
        }
-       return(0);
+       return (0);
 }
 
 static int
@@ -670,7 +670,7 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
        u_char codeset = 0;
        u_char old_codeset = 0;
        u_char codelock = 1;
-       
+
        p = skb->data;
        /* skip cr */
        p++;
@@ -688,7 +688,7 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
                                codelock = 1;
                        if (pc->debug & L3_DEB_CHECK)
                                l3_debug(pc->st, "check IE shift%scodeset %d->%d",
-                                       codelock ? " locking ": " ", old_codeset, codeset);
+                                        codelock ? " locking " : " ", old_codeset, codeset);
                        p++;
                        continue;
                }
@@ -720,7 +720,7 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
                if (!codelock) {
                        if (pc->debug & L3_DEB_CHECK)
                                l3_debug(pc->st, "check IE shift back codeset %d->%d",
-                                       codeset, old_codeset);
+                                        codeset, old_codeset);
                        codeset = old_codeset;
                        codelock = 1;
                }
@@ -728,17 +728,17 @@ check_infoelements(struct l3_process *pc, struct sk_buff *skb, int *checklist)
        if (err_compr | err_ureg | err_len | err_seq) {
                if (pc->debug & L3_DEB_CHECK)
                        l3_debug(pc->st, "check IE MT(%x) %d/%d/%d/%d",
-                               mt, err_compr, err_ureg, err_len, err_seq);
+                                mt, err_compr, err_ureg, err_len, err_seq);
                if (err_compr)
-                       return(ERR_IE_COMPREHENSION);
+                       return (ERR_IE_COMPREHENSION);
                if (err_ureg)
-                       return(ERR_IE_UNRECOGNIZED);
+                       return (ERR_IE_UNRECOGNIZED);
                if (err_len)
-                       return(ERR_IE_LENGTH);
+                       return (ERR_IE_LENGTH);
                if (err_seq)
-                       return(ERR_IE_SEQUENCE);
-       } 
-       return(0);
+                       return (ERR_IE_SEQUENCE);
+       }
+       return (0);
 }
 
 /* verify if a message type exists and contain no IE error */
@@ -746,42 +746,42 @@ static int
 l3ni1_check_messagetype_validity(struct l3_process *pc, int mt, void *arg)
 {
        switch (mt) {
-               case MT_ALERTING:
-               case MT_CALL_PROCEEDING:
-               case MT_CONNECT:
-               case MT_CONNECT_ACKNOWLEDGE:
-               case MT_DISCONNECT:
-               case MT_INFORMATION:
-               case MT_FACILITY:
-               case MT_NOTIFY:
-               case MT_PROGRESS:
-               case MT_RELEASE:
-               case MT_RELEASE_COMPLETE:
-               case MT_SETUP:
-               case MT_SETUP_ACKNOWLEDGE:
-               case MT_RESUME_ACKNOWLEDGE:
-               case MT_RESUME_REJECT:
-               case MT_SUSPEND_ACKNOWLEDGE:
-               case MT_SUSPEND_REJECT:
-               case MT_USER_INFORMATION:
-               case MT_RESTART:
-               case MT_RESTART_ACKNOWLEDGE:
-               case MT_CONGESTION_CONTROL:
-               case MT_STATUS:
-               case MT_STATUS_ENQUIRY:
-                       if (pc->debug & L3_DEB_CHECK)
-                               l3_debug(pc->st, "l3ni1_check_messagetype_validity mt(%x) OK", mt);
-                       break;
-               case MT_RESUME: /* RESUME only in user->net */
-               case MT_SUSPEND: /* SUSPEND only in user->net */
-               default:
-                       if (pc->debug & (L3_DEB_CHECK | L3_DEB_WARN))
-                               l3_debug(pc->st, "l3ni1_check_messagetype_validity mt(%x) fail", mt);
-                       pc->para.cause = 97;
-                       l3ni1_status_send(pc, 0, NULL);
-                       return(1);
+       case MT_ALERTING:
+       case MT_CALL_PROCEEDING:
+       case MT_CONNECT:
+       case MT_CONNECT_ACKNOWLEDGE:
+       case MT_DISCONNECT:
+       case MT_INFORMATION:
+       case MT_FACILITY:
+       case MT_NOTIFY:
+       case MT_PROGRESS:
+       case MT_RELEASE:
+       case MT_RELEASE_COMPLETE:
+       case MT_SETUP:
+       case MT_SETUP_ACKNOWLEDGE:
+       case MT_RESUME_ACKNOWLEDGE:
+       case MT_RESUME_REJECT:
+       case MT_SUSPEND_ACKNOWLEDGE:
+       case MT_SUSPEND_REJECT:
+       case MT_USER_INFORMATION:
+       case MT_RESTART:
+       case MT_RESTART_ACKNOWLEDGE:
+       case MT_CONGESTION_CONTROL:
+       case MT_STATUS:
+       case MT_STATUS_ENQUIRY:
+               if (pc->debug & L3_DEB_CHECK)
+                       l3_debug(pc->st, "l3ni1_check_messagetype_validity mt(%x) OK", mt);
+               break;
+       case MT_RESUME: /* RESUME only in user->net */
+       case MT_SUSPEND: /* SUSPEND only in user->net */
+       default:
+               if (pc->debug & (L3_DEB_CHECK | L3_DEB_WARN))
+                       l3_debug(pc->st, "l3ni1_check_messagetype_validity mt(%x) fail", mt);
+               pc->para.cause = 97;
+               l3ni1_status_send(pc, 0, NULL);
+               return (1);
        }
-       return(0);
+       return (0);
 }
 
 static void
@@ -789,24 +789,24 @@ l3ni1_std_ie_err(struct l3_process *pc, int ret) {
 
        if (pc->debug & L3_DEB_CHECK)
                l3_debug(pc->st, "check_infoelements ret %d", ret);
-       switch(ret) {
-               case 0: 
-                       break;
-               case ERR_IE_COMPREHENSION:
-                       pc->para.cause = 96;
-                       l3ni1_status_send(pc, 0, NULL);
-                       break;
-               case ERR_IE_UNRECOGNIZED:
-                       pc->para.cause = 99;
-                       l3ni1_status_send(pc, 0, NULL);
-                       break;
-               case ERR_IE_LENGTH:
-                       pc->para.cause = 100;
-                       l3ni1_status_send(pc, 0, NULL);
-                       break;
-               case ERR_IE_SEQUENCE:
-               default:
-                       break;
+       switch (ret) {
+       case 0:
+               break;
+       case ERR_IE_COMPREHENSION:
+               pc->para.cause = 96;
+               l3ni1_status_send(pc, 0, NULL);
+               break;
+       case ERR_IE_UNRECOGNIZED:
+               pc->para.cause = 99;
+               l3ni1_status_send(pc, 0, NULL);
+               break;
+       case ERR_IE_LENGTH:
+               pc->para.cause = 100;
+               l3ni1_status_send(pc, 0, NULL);
+               break;
+       case ERR_IE_SEQUENCE:
+       default:
+               break;
        }
 }
 
@@ -828,14 +828,14 @@ l3ni1_get_channel_id(struct l3_process *pc, struct sk_buff *skb) {
                                l3_debug(pc->st, "wrong chid %x", *p);
                        return (-3);
                }
-               return(*p & 0x3);
+               return (*p & 0x3);
        } else
-               return(-1);
+               return (-1);
 }
 
 static int
 l3ni1_get_cause(struct l3_process *pc, struct sk_buff *skb) {
-       u_char l, i=0;
+       u_char l, i = 0;
        u_char *p;
 
        p = skb->data;
@@ -844,13 +844,13 @@ l3ni1_get_cause(struct l3_process *pc, struct sk_buff *skb) {
        if ((p = findie(p, skb->len, IE_CAUSE, 0))) {
                p++;
                l = *p++;
-               if (l>30)
-                       return(1);
+               if (l > 30)
+                       return (1);
                if (l) {
                        pc->para.loc = *p++;
                        l--;
                } else {
-                       return(2);
+                       return (2);
                }
                if (l && !(pc->para.loc & 0x80)) {
                        l--;
@@ -860,36 +860,36 @@ l3ni1_get_cause(struct l3_process *pc, struct sk_buff *skb) {
                        pc->para.cause = *p++;
                        l--;
                        if (!(pc->para.cause & 0x80))
-                               return(3);
+                               return (3);
                } else
-                       return(4);
-               while (l && (i<6)) {
+                       return (4);
+               while (l && (i < 6)) {
                        pc->para.diag[i++] = *p++;
                        l--;
                }
        } else
-               return(-1);
-       return(0);
+               return (-1);
+       return (0);
 }
 
 static void
 l3ni1_msg_with_uus(struct l3_process *pc, u_char cmd)
 {
        struct sk_buff *skb;
-       u_char tmp[16+40];
+       u_char tmp[16 + 40];
        u_char *p = tmp;
        int l;
 
        MsgHead(p, pc->callref, cmd);
 
-        if (pc->prot.ni1.uus1_data[0])
-        { *p++ = IE_USER_USER; /* UUS info element */
-           *p++ = strlen(pc->prot.ni1.uus1_data) + 1;
-           *p++ = 0x04; /* IA5 chars */
-           strcpy(p,pc->prot.ni1.uus1_data);
-           p += strlen(pc->prot.ni1.uus1_data);
-           pc->prot.ni1.uus1_data[0] = '\0';   
-         } 
+       if (pc->prot.ni1.uus1_data[0])
+       { *p++ = IE_USER_USER; /* UUS info element */
+               *p++ = strlen(pc->prot.ni1.uus1_data) + 1;
+               *p++ = 0x04; /* IA5 chars */
+               strcpy(p, pc->prot.ni1.uus1_data);
+               p += strlen(pc->prot.ni1.uus1_data);
+               pc->prot.ni1.uus1_data[0] = '\0';
+       }
 
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
@@ -903,7 +903,7 @@ l3ni1_release_req(struct l3_process *pc, u_char pr, void *arg)
 {
        StopAllL3Timer(pc);
        newl3state(pc, 19);
-       if (!pc->prot.ni1.uus1_data[0]) 
+       if (!pc->prot.ni1.uus1_data[0])
                l3ni1_message(pc, MT_RELEASE);
        else
                l3ni1_msg_with_uus(pc, MT_RELEASE);
@@ -916,9 +916,9 @@ l3ni1_release_cmpl(struct l3_process *pc, u_char pr, void *arg)
        struct sk_buff *skb = arg;
        int ret;
 
-       if ((ret = l3ni1_get_cause(pc, skb))>0) {
+       if ((ret = l3ni1_get_cause(pc, skb)) > 0) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "RELCMPL get_cause ret(%d)",ret);
+                       l3_debug(pc->st, "RELCMPL get_cause ret(%d)", ret);
        } else if (ret < 0)
                pc->para.cause = NO_CAUSE;
        StopAllL3Timer(pc);
@@ -930,7 +930,7 @@ l3ni1_release_cmpl(struct l3_process *pc, u_char pr, void *arg)
 #if EXT_BEARER_CAPS
 
 static u_char *
-EncodeASyncParams(u_char * p, u_char si2)
+EncodeASyncParams(u_char *p, u_char si2)
 {                              // 7c 06 88  90 21 42 00 bb
 
        p[0] = 0;
@@ -958,38 +958,38 @@ EncodeASyncParams(u_char * p, u_char si2)
                p[2] += 3;
 
        switch (si2 & 0x07) {
-               case 0:
-                       p[0] = 66;      // 1200 bit/s
+       case 0:
+               p[0] = 66;      // 1200 bit/s
 
-                       break;
-               case 1:
-                       p[0] = 88;      // 1200/75 bit/s
+               break;
+       case 1:
+               p[0] = 88;      // 1200/75 bit/s
 
-                       break;
-               case 2:
-                       p[0] = 87;      // 75/1200 bit/s
+               break;
+       case 2:
+               p[0] = 87;      // 75/1200 bit/s
 
-                       break;
-               case 3:
-                       p[0] = 67;      // 2400 bit/s
+               break;
+       case 3:
+               p[0] = 67;      // 2400 bit/s
 
-                       break;
-               case 4:
-                       p[0] = 69;      // 4800 bit/s
+               break;
+       case 4:
+               p[0] = 69;      // 4800 bit/s
 
-                       break;
-               case 5:
-                       p[0] = 72;      // 9600 bit/s
+               break;
+       case 5:
+               p[0] = 72;      // 9600 bit/s
 
-                       break;
-               case 6:
-                       p[0] = 73;      // 14400 bit/s
+               break;
+       case 6:
+               p[0] = 73;      // 14400 bit/s
 
-                       break;
-               case 7:
-                       p[0] = 75;      // 19200 bit/s
+               break;
+       case 7:
+               p[0] = 75;      // 19200 bit/s
 
-                       break;
+               break;
        }
        return p + 3;
 }
@@ -999,84 +999,84 @@ EncodeSyncParams(u_char si2, u_char ai)
 {
 
        switch (si2) {
-               case 0:
-                       return ai + 2;  // 1200 bit/s
+       case 0:
+               return ai + 2;  // 1200 bit/s
 
-               case 1:
-                       return ai + 24;         // 1200/75 bit/s
+       case 1:
+               return ai + 24;         // 1200/75 bit/s
 
-               case 2:
-                       return ai + 23;         // 75/1200 bit/s
+       case 2:
+               return ai + 23;         // 75/1200 bit/s
 
-               case 3:
-                       return ai + 3;  // 2400 bit/s
+       case 3:
+               return ai + 3;  // 2400 bit/s
 
-               case 4:
-                       return ai + 5;  // 4800 bit/s
+       case 4:
+               return ai + 5;  // 4800 bit/s
 
-               case 5:
-                       return ai + 8;  // 9600 bit/s
+       case 5:
+               return ai + 8;  // 9600 bit/s
 
-               case 6:
-                       return ai + 9;  // 14400 bit/s
+       case 6:
+               return ai + 9;  // 14400 bit/s
 
-               case 7:
-                       return ai + 11;         // 19200 bit/s
+       case 7:
+               return ai + 11;         // 19200 bit/s
 
-               case 8:
-                       return ai + 14;         // 48000 bit/s
+       case 8:
+               return ai + 14;         // 48000 bit/s
 
-               case 9:
-                       return ai + 15;         // 56000 bit/s
+       case 9:
+               return ai + 15;         // 56000 bit/s
 
-               case 15:
-                       return ai + 40;         // negotiate bit/s
+       case 15:
+               return ai + 40;         // negotiate bit/s
 
-               default:
-                       break;
+       default:
+               break;
        }
        return ai;
 }
 
 
 static u_char
-DecodeASyncParams(u_char si2, u_char * p)
+DecodeASyncParams(u_char si2, u_char *p)
 {
        u_char info;
 
        switch (p[5]) {
-               case 66:        // 1200 bit/s
+       case 66:        // 1200 bit/s
 
-                       break;  // si2 don't change
+               break;  // si2 don't change
 
-               case 88:        // 1200/75 bit/s
+       case 88:        // 1200/75 bit/s
 
-                       si2 += 1;
-                       break;
-               case 87:        // 75/1200 bit/s
+               si2 += 1;
+               break;
+       case 87:        // 75/1200 bit/s
 
-                       si2 += 2;
-                       break;
-               case 67:        // 2400 bit/s
+               si2 += 2;
+               break;
+       case 67:        // 2400 bit/s
 
-                       si2 += 3;
-                       break;
-               case 69:        // 4800 bit/s
+               si2 += 3;
+               break;
+       case 69:        // 4800 bit/s
 
-                       si2 += 4;
-                       break;
-               case 72:        // 9600 bit/s
+               si2 += 4;
+               break;
+       case 72:        // 9600 bit/s
 
-                       si2 += 5;
-                       break;
-               case 73:        // 14400 bit/s
+               si2 += 5;
+               break;
+       case 73:        // 14400 bit/s
 
-                       si2 += 6;
-                       break;
-               case 75:        // 19200 bit/s
+               si2 += 6;
+               break;
+       case 75:        // 19200 bit/s
 
-                       si2 += 7;
-                       break;
+               si2 += 7;
+               break;
        }
 
        info = p[7] & 0x7f;
@@ -1101,39 +1101,39 @@ DecodeSyncParams(u_char si2, u_char info)
 {
        info &= 0x7f;
        switch (info) {
-               case 40:        // bit/s negotiation failed  ai := 165 not 175!
+       case 40:        // bit/s negotiation failed  ai := 165 not 175!
 
-                       return si2 + 15;
-               case 15:        // 56000 bit/s failed, ai := 0 not 169 !
+               return si2 + 15;
+       case 15:        // 56000 bit/s failed, ai := 0 not 169 !
 
-                       return si2 + 9;
-               case 14:        // 48000 bit/s
+               return si2 + 9;
+       case 14:        // 48000 bit/s
 
-                       return si2 + 8;
-               case 11:        // 19200 bit/s
+               return si2 + 8;
+       case 11:        // 19200 bit/s
 
-                       return si2 + 7;
-               case 9: // 14400 bit/s
+               return si2 + 7;
+       case 9: // 14400 bit/s
 
-                       return si2 + 6;
-               case 8: // 9600  bit/s
+               return si2 + 6;
+       case 8: // 9600  bit/s
 
-                       return si2 + 5;
-               case 5: // 4800  bit/s
+               return si2 + 5;
+       case 5: // 4800  bit/s
 
-                       return si2 + 4;
-               case 3: // 2400  bit/s
+               return si2 + 4;
+       case 3: // 2400  bit/s
 
-                       return si2 + 3;
-               case 23:        // 75/1200 bit/s
+               return si2 + 3;
+       case 23:        // 75/1200 bit/s
 
-                       return si2 + 2;
-               case 24:        // 1200/75 bit/s
+               return si2 + 2;
+       case 24:        // 1200/75 bit/s
 
-                       return si2 + 1;
-               default:        // 1200 bit/s
+               return si2 + 1;
+       default:        // 1200 bit/s
 
-                       return si2;
+               return si2;
        }
 }
 
@@ -1144,20 +1144,20 @@ DecodeSI2(struct sk_buff *skb)
 
        if ((p = findie(skb->data, skb->len, 0x7c, 0))) {
                switch (p[4] & 0x0f) {
-                       case 0x01:
-                               if (p[1] == 0x04)       // sync. Bitratenadaption
+               case 0x01:
+                       if (p[1] == 0x04)       // sync. Bitratenadaption
 
-                                       return DecodeSyncParams(160, p[5]);     // V.110/X.30
+                               return DecodeSyncParams(160, p[5]);     // V.110/X.30
 
-                               else if (p[1] == 0x06)  // async. Bitratenadaption
+                       else if (p[1] == 0x06)  // async. Bitratenadaption
 
-                                       return DecodeASyncParams(192, p);       // V.110/X.30
+                               return DecodeASyncParams(192, p);       // V.110/X.30
 
-                               break;
-                       case 0x08:      // if (p[5] == 0x02) // sync. Bitratenadaption
-                               if (p[1] > 3) 
-                                       return DecodeSyncParams(176, p[5]);     // V.120
-                               break;
+                       break;
+               case 0x08:      // if (p[5] == 0x02) // sync. Bitratenadaption
+                       if (p[1] > 3)
+                               return DecodeSyncParams(176, p[5]);     // V.120
+                       break;
                }
        }
        return 0;
@@ -1168,7 +1168,7 @@ DecodeSI2(struct sk_buff *skb)
 
 static void
 l3ni1_setup_req(struct l3_process *pc, u_char pr,
-                void *arg)
+               void *arg)
 {
        struct sk_buff *skb;
        u_char tmp[128];
@@ -1191,7 +1191,7 @@ l3ni1_setup_req(struct l3_process *pc, u_char pr,
        case 1:                   /* Telephony                                */
                *p++ = IE_BEARER;
                *p++ = 0x3;       /* Length                                   */
-               *p++ = 0x90;      /* 3.1khz Audio                             */
+               *p++ = 0x90;      /* 3.1khz Audio                             */
                *p++ = 0x90;      /* Circuit-Mode 64kbps                      */
                *p++ = 0xa2;      /* u-Law Audio                              */
                break;
@@ -1214,7 +1214,7 @@ l3ni1_setup_req(struct l3_process *pc, u_char pr,
                } else
                        sp++;
        }
-       
+
        *p++ = IE_KEYPAD;
        *p++ = strlen(teln);
        while (*teln)
@@ -1222,7 +1222,7 @@ l3ni1_setup_req(struct l3_process *pc, u_char pr,
 
        if (sub)
                *sub++ = '.';
-       
+
 #if EXT_BEARER_CAPS
        if ((pc->para.setup.si2 >= 160) && (pc->para.setup.si2 <= 175)) {       // sync. Bitratenadaption, V.110/X.30
 
@@ -1250,7 +1250,7 @@ l3ni1_setup_req(struct l3_process *pc, u_char pr,
                *p++ = 0x21;
                p = EncodeASyncParams(p, pc->para.setup.si2 - 192);
        } else {
-         switch (pc->para.setup.si1) {
+               switch (pc->para.setup.si1) {
                case 1:                 /* Telephony                                */
                        *p++ = IE_LLC;
                        *p++ = 0x3;     /* Length                                   */
@@ -1266,14 +1266,14 @@ l3ni1_setup_req(struct l3_process *pc, u_char pr,
                        *p++ = 0x88;    /* Coding Std. CCITT, unrestr. dig. Inform. */
                        *p++ = 0x90;    /* Circuit-Mode 64kbps                      */
                        break;
-         }
+               }
        }
 #endif
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
-{
+       {
                return;
-}
+       }
        memcpy(skb_put(skb, l), tmp, l);
        L3DelTimer(&pc->timer);
        L3AddTimer(&pc->timer, T303, CC_T303);
@@ -1375,7 +1375,7 @@ l3ni1_disconnect(struct l3_process *pc, u_char pr, void *arg)
                        cause = 96;
                else if (ret > 0)
                        cause = 100;
-       } 
+       }
        if ((p = findie(skb->data, skb->len, IE_FACILITY, 0)))
                l3ni1_parse_facility(pc->st, pc, pc->callref, p);
        ret = check_infoelements(pc, skb, ie_DISCONNECT);
@@ -1387,10 +1387,10 @@ l3ni1_disconnect(struct l3_process *pc, u_char pr, void *arg)
        newl3state(pc, 12);
        if (cause)
                newl3state(pc, 19);
-               if (11 != ret)
+       if (11 != ret)
                pc->st->l3.l3l4(pc->st, CC_DISCONNECT | INDICATION, pc);
-               else if (!cause)
-                  l3ni1_release_req(pc, pr, NULL);
+       else if (!cause)
+               l3ni1_release_req(pc, pr, NULL);
        if (cause) {
                l3ni1_message_cause(pc, MT_RELEASE, cause);
                L3AddTimer(&pc->timer, T308, CC_T308_1);
@@ -1456,56 +1456,56 @@ l3ni1_setup(struct l3_process *pc, u_char pr, void *arg)
                else {
                        pc->para.setup.si2 = 0;
                        switch (p[2] & 0x7f) {
-                               case 0x00: /* Speech */
-                               case 0x10: /* 3.1 Khz audio */
-                                       pc->para.setup.si1 = 1;
-                                       break;
-                               case 0x08: /* Unrestricted digital information */
-                                       pc->para.setup.si1 = 7;
+                       case 0x00: /* Speech */
+                       case 0x10: /* 3.1 Khz audio */
+                               pc->para.setup.si1 = 1;
+                               break;
+                       case 0x08: /* Unrestricted digital information */
+                               pc->para.setup.si1 = 7;
 /* JIM, 05.11.97 I wanna set service indicator 2 */
 #if EXT_BEARER_CAPS
-                                       pc->para.setup.si2 = DecodeSI2(skb);
+                               pc->para.setup.si2 = DecodeSI2(skb);
 #endif
-                                       break;
-                               case 0x09: /* Restricted digital information */
-                                       pc->para.setup.si1 = 2;
-                                       break;
-                               case 0x11:
-                                       /* Unrestr. digital information  with 
-                                        * tones/announcements ( or 7 kHz audio
-                                        */
-                                       pc->para.setup.si1 = 3;
-                                       break;
-                               case 0x18: /* Video */
-                                       pc->para.setup.si1 = 4;
-                                       break;
-                               default:
-                                       err = 2;
-                                       break;
+                               break;
+                       case 0x09: /* Restricted digital information */
+                               pc->para.setup.si1 = 2;
+                               break;
+                       case 0x11:
+                               /* Unrestr. digital information  with
+                                * tones/announcements ( or 7 kHz audio
+                                */
+                               pc->para.setup.si1 = 3;
+                               break;
+                       case 0x18: /* Video */
+                               pc->para.setup.si1 = 4;
+                               break;
+                       default:
+                               err = 2;
+                               break;
                        }
                        switch (p[3] & 0x7f) {
-                               case 0x40: /* packed mode */
-                                       pc->para.setup.si1 = 8;
-                                       break;
-                               case 0x10: /* 64 kbit */
-                               case 0x11: /* 2*64 kbit */
-                               case 0x13: /* 384 kbit */
-                               case 0x15: /* 1536 kbit */
-                               case 0x17: /* 1920 kbit */
-                                       pc->para.moderate = p[3] & 0x7f;
-                                       break;
-                               default:
-                                       err = 3;
-                                       break;
+                       case 0x40: /* packed mode */
+                               pc->para.setup.si1 = 8;
+                               break;
+                       case 0x10: /* 64 kbit */
+                       case 0x11: /* 2*64 kbit */
+                       case 0x13: /* 384 kbit */
+                       case 0x15: /* 1536 kbit */
+                       case 0x17: /* 1920 kbit */
+                               pc->para.moderate = p[3] & 0x7f;
+                               break;
+                       default:
+                               err = 3;
+                               break;
                        }
                }
                if (pc->debug & L3_DEB_SI)
                        l3_debug(pc->st, "SI=%d, AI=%d",
-                               pc->para.setup.si1, pc->para.setup.si2);
+                                pc->para.setup.si1, pc->para.setup.si2);
                if (err) {
                        if (pc->debug & L3_DEB_WARN)
                                l3_debug(pc->st, "setup with wrong bearer(l=%d:%x,%x)",
-                                       p[1], p[2], p[3]);
+                                        p[1], p[2], p[3]);
                        pc->para.cause = 100;
                        l3ni1_msg_without_setup(pc, pr, NULL);
                        return;
@@ -1526,17 +1526,17 @@ l3ni1_setup(struct l3_process *pc, u_char pr, void *arg)
                        if ((3 == id) && (0x10 == pc->para.moderate)) {
                                if (pc->debug & L3_DEB_WARN)
                                        l3_debug(pc->st, "setup with wrong chid %x",
-                                               id);
+                                                id);
                                pc->para.cause = 100;
                                l3ni1_msg_without_setup(pc, pr, NULL);
                                return;
                        }
                        bcfound++;
-               } else 
-                   { if (pc->debug & L3_DEB_WARN)
-                        l3_debug(pc->st, "setup without bchannel, call waiting");
-                     bcfound++;
-                   } 
+               } else
+               { if (pc->debug & L3_DEB_WARN)
+                               l3_debug(pc->st, "setup without bchannel, call waiting");
+                       bcfound++;
+               }
        } else {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "setup with wrong chid ret %d", id);
@@ -1611,7 +1611,7 @@ static void
 l3ni1_disconnect_req(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb;
-       u_char tmp[16+40];
+       u_char tmp[16 + 40];
        u_char *p = tmp;
        int l;
        u_char cause = 16;
@@ -1628,14 +1628,14 @@ l3ni1_disconnect_req(struct l3_process *pc, u_char pr, void *arg)
        *p++ = 0x80;
        *p++ = cause | 0x80;
 
-        if (pc->prot.ni1.uus1_data[0])
-        { *p++ = IE_USER_USER; /* UUS info element */
-           *p++ = strlen(pc->prot.ni1.uus1_data) + 1;
-           *p++ = 0x04; /* IA5 chars */
-           strcpy(p,pc->prot.ni1.uus1_data);
-           p += strlen(pc->prot.ni1.uus1_data);
-           pc->prot.ni1.uus1_data[0] = '\0';   
-         } 
+       if (pc->prot.ni1.uus1_data[0])
+       { *p++ = IE_USER_USER; /* UUS info element */
+               *p++ = strlen(pc->prot.ni1.uus1_data) + 1;
+               *p++ = 0x04; /* IA5 chars */
+               strcpy(p, pc->prot.ni1.uus1_data);
+               p += strlen(pc->prot.ni1.uus1_data);
+               pc->prot.ni1.uus1_data[0] = '\0';
+       }
 
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l)))
@@ -1648,18 +1648,18 @@ l3ni1_disconnect_req(struct l3_process *pc, u_char pr, void *arg)
 
 static void
 l3ni1_setup_rsp(struct l3_process *pc, u_char pr,
-                void *arg)
-{
-        if (!pc->para.bchannel) 
-        { if (pc->debug & L3_DEB_WARN)
-              l3_debug(pc->st, "D-chan connect for waiting call");
-           l3ni1_disconnect_req(pc, pr, arg);
-           return;
-         }
+               void *arg)
+{
+       if (!pc->para.bchannel)
+       { if (pc->debug & L3_DEB_WARN)
+                       l3_debug(pc->st, "D-chan connect for waiting call");
+               l3ni1_disconnect_req(pc, pr, arg);
+               return;
+       }
        newl3state(pc, 8);
        if (pc->debug & L3_DEB_WARN)
                l3_debug(pc->st, "D-chan connect for waiting call");
-       l3ni1_message_plus_chid(pc, MT_CONNECT); /* GE 05/09/00 */ 
+       l3ni1_message_plus_chid(pc, MT_CONNECT); /* GE 05/09/00 */
        L3DelTimer(&pc->timer);
        L3AddTimer(&pc->timer, T313, CC_T313);
 }
@@ -1716,26 +1716,26 @@ l3ni1_release(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb = arg;
        u_char *p;
-       int ret, cause=0;
+       int ret, cause = 0;
 
        StopAllL3Timer(pc);
-       if ((ret = l3ni1_get_cause(pc, skb))>0) {
+       if ((ret = l3ni1_get_cause(pc, skb)) > 0) {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "REL get_cause ret(%d)", ret);
-       } else if (ret<0)
+       } else if (ret < 0)
                pc->para.cause = NO_CAUSE;
        if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) {
                l3ni1_parse_facility(pc->st, pc, pc->callref, p);
        }
-       if ((ret<0) && (pc->state != 11))
+       if ((ret < 0) && (pc->state != 11))
                cause = 96;
-       else if (ret>0)
+       else if (ret > 0)
                cause = 100;
        ret = check_infoelements(pc, skb, ie_RELEASE);
        if (ERR_IE_COMPREHENSION == ret)
                cause = 96;
        else if ((ERR_IE_UNRECOGNIZED == ret) && (!cause))
-               cause = 99;  
+               cause = 99;
        if (cause)
                l3ni1_message_cause(pc, MT_RELEASE_COMPLETE, cause);
        else
@@ -1747,27 +1747,27 @@ l3ni1_release(struct l3_process *pc, u_char pr, void *arg)
 
 static void
 l3ni1_alert_req(struct l3_process *pc, u_char pr,
-                void *arg)
+               void *arg)
 {
        newl3state(pc, 7);
-       if (!pc->prot.ni1.uus1_data[0]) 
+       if (!pc->prot.ni1.uus1_data[0])
                l3ni1_message(pc, MT_ALERTING);
        else
-               l3ni1_msg_with_uus(pc, MT_ALERTING); 
+               l3ni1_msg_with_uus(pc, MT_ALERTING);
 }
 
 static void
 l3ni1_proceed_req(struct l3_process *pc, u_char pr,
-                  void *arg)
+                 void *arg)
 {
        newl3state(pc, 9);
        l3ni1_message(pc, MT_CALL_PROCEEDING);
-       pc->st->l3.l3l4(pc->st, CC_PROCEED_SEND | INDICATION, pc); 
+       pc->st->l3.l3l4(pc->st, CC_PROCEED_SEND | INDICATION, pc);
 }
 
 static void
 l3ni1_setup_ack_req(struct l3_process *pc, u_char pr,
-                  void *arg)
+                   void *arg)
 {
        newl3state(pc, 25);
        L3DelTimer(&pc->timer);
@@ -1781,22 +1781,22 @@ l3ni1_setup_ack_req(struct l3_process *pc, u_char pr,
 static void
 l3ni1_deliver_display(struct l3_process *pc, int pr, u_char *infp)
 {       u_char len;
-        isdn_ctrl ic; 
+       isdn_ctrl ic;
        struct IsdnCardState *cs;
-        char *p; 
+       char *p;
 
-        if (*infp++ != IE_DISPLAY) return;
-        if ((len = *infp++) > 80) return; /* total length <= 82 */
+       if (*infp++ != IE_DISPLAY) return;
+       if ((len = *infp++) > 80) return; /* total length <= 82 */
        if (!pc->chan) return;
 
-       p = ic.parm.display; 
-        while (len--)
-         *p++ = *infp++;
+       p = ic.parm.display;
+       while (len--)
+               *p++ = *infp++;
        *p = '\0';
        ic.command = ISDN_STAT_DISPLAY;
        cs = pc->st->l1.hardware;
        ic.driver = cs->myid;
-       ic.arg = pc->chan->chan; 
+       ic.arg = pc->chan->chan;
        cs->iif.statcallb(&ic);
 } /* l3ni1_deliver_display */
 
@@ -1814,37 +1814,37 @@ l3ni1_progress(struct l3_process *pc, u_char pr, void *arg)
                        pc->para.cause = 100;
                } else if (!(p[2] & 0x70)) {
                        switch (p[2]) {
-                               case 0x80:
+                       case 0x80:
+                       case 0x81:
+                       case 0x82:
+                       case 0x84:
+                       case 0x85:
+                       case 0x87:
+                       case 0x8a:
+                               switch (p[3]) {
                                case 0x81:
                                case 0x82:
+                               case 0x83:
                                case 0x84:
-                               case 0x85:
-                               case 0x87:
-                               case 0x8a:
-                                       switch (p[3]) {
-                                               case 0x81:
-                                               case 0x82:
-                                               case 0x83:
-                                               case 0x84:
-                                               case 0x88:
-                                                       break;
-                                               default:
-                                                       err = 2;
-                                                       pc->para.cause = 100;
-                                                       break;
-                                       }
+                               case 0x88:
                                        break;
                                default:
-                                       err = 3;
+                                       err = 2;
                                        pc->para.cause = 100;
                                        break;
+                               }
+                               break;
+                       default:
+                               err = 3;
+                               pc->para.cause = 100;
+                               break;
                        }
                }
        } else {
                pc->para.cause = 96;
                err = 4;
        }
-       if (err) {      
+       if (err) {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "progress error %d", err);
                l3ni1_status_send(pc, pr, NULL);
@@ -1871,21 +1871,21 @@ l3ni1_notify(struct l3_process *pc, u_char pr, void *arg)
                        pc->para.cause = 100;
                } else {
                        switch (p[2]) {
-                               case 0x80:
-                               case 0x81:
-                               case 0x82:
-                                       break;
-                               default:
-                                       pc->para.cause = 100;
-                                       err = 2;
-                                       break;
+                       case 0x80:
+                       case 0x81:
+                       case 0x82:
+                               break;
+                       default:
+                               pc->para.cause = 100;
+                               err = 2;
+                               break;
                        }
                }
        } else {
                pc->para.cause = 96;
                err = 3;
        }
-       if (err) {      
+       if (err) {
                if (pc->debug & L3_DEB_WARN)
                        l3_debug(pc->st, "notify error %d", err);
                l3ni1_status_send(pc, pr, NULL);
@@ -1908,7 +1908,7 @@ l3ni1_status_enq(struct l3_process *pc, u_char pr, void *arg)
        ret = check_infoelements(pc, skb, ie_STATUS_ENQUIRY);
        l3ni1_std_ie_err(pc, ret);
        pc->para.cause = 30; /* response to STATUS_ENQUIRY */
-        l3ni1_status_send(pc, pr, NULL);
+       l3ni1_status_send(pc, pr, NULL);
 }
 
 static void
@@ -1942,68 +1942,68 @@ static void l3ni1_redir_req(struct l3_process *pc, u_char pr, void *arg)
        struct sk_buff *skb;
        u_char tmp[128];
        u_char *p = tmp;
-        u_char *subp;
-        u_char len_phone = 0;
-        u_char len_sub = 0;
-       int l; 
-
-
-        strcpy(pc->prot.ni1.uus1_data,pc->chan->setup.eazmsn); /* copy uus element if available */
-        if (!pc->chan->setup.phone[0])
-          { pc->para.cause = -1;
-            l3ni1_disconnect_req(pc,pr,arg); /* disconnect immediately */
-            return;
-          } /* only uus */
-        if (pc->prot.ni1.invoke_id) 
-          free_invoke_id(pc->st,pc->prot.ni1.invoke_id);
-        if (!(pc->prot.ni1.invoke_id = new_invoke_id(pc->st))) 
-          return;
-
-        MsgHead(p, pc->callref, MT_FACILITY);
-
-        for (subp = pc->chan->setup.phone; (*subp) && (*subp != '.'); subp++) len_phone++; /* len of phone number */
-        if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subaddress element */ 
+       u_char *subp;
+       u_char len_phone = 0;
+       u_char len_sub = 0;
+       int l;
+
+
+       strcpy(pc->prot.ni1.uus1_data, pc->chan->setup.eazmsn); /* copy uus element if available */
+       if (!pc->chan->setup.phone[0])
+       { pc->para.cause = -1;
+               l3ni1_disconnect_req(pc, pr, arg); /* disconnect immediately */
+               return;
+       } /* only uus */
+
+       if (pc->prot.ni1.invoke_id)
+               free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
+
+       if (!(pc->prot.ni1.invoke_id = new_invoke_id(pc->st)))
+               return;
+
+       MsgHead(p, pc->callref, MT_FACILITY);
+
+       for (subp = pc->chan->setup.phone; (*subp) && (*subp != '.'); subp++) len_phone++; /* len of phone number */
+       if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subaddress element */
 
        *p++ = 0x1c;   /* Facility info element */
-        *p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */
-        *p++ = 0x91;  /* remote operations protocol */
-        *p++ = 0xa1;  /* invoke component */
-         
-        *p++ = len_phone + len_sub + 2 + 2 + 8 + 3; /* length of data */
-        *p++ = 0x02;  /* invoke id tag, integer */
+       *p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */
+       *p++ = 0x91;  /* remote operations protocol */
+       *p++ = 0xa1;  /* invoke component */
+
+       *p++ = len_phone + len_sub + 2 + 2 + 8 + 3; /* length of data */
+       *p++ = 0x02;  /* invoke id tag, integer */
        *p++ = 0x01;  /* length */
-        *p++ = pc->prot.ni1.invoke_id;  /* invoke id */ 
-        *p++ = 0x02;  /* operation value tag, integer */
+       *p++ = pc->prot.ni1.invoke_id;  /* invoke id */
+       *p++ = 0x02;  /* operation value tag, integer */
        *p++ = 0x01;  /* length */
-        *p++ = 0x0D;  /* Call Deflect */
-         
-        *p++ = 0x30;  /* sequence phone number */
-        *p++ = len_phone + 2 + 2 + 3 + len_sub; /* length */
-         
-        *p++ = 0x30;  /* Deflected to UserNumber */
-        *p++ = len_phone+2+len_sub; /* length */
-        *p++ = 0x80; /* NumberDigits */
+       *p++ = 0x0D;  /* Call Deflect */
+
+       *p++ = 0x30;  /* sequence phone number */
+       *p++ = len_phone + 2 + 2 + 3 + len_sub; /* length */
+
+       *p++ = 0x30;  /* Deflected to UserNumber */
+       *p++ = len_phone + 2 + len_sub; /* length */
+       *p++ = 0x80; /* NumberDigits */
        *p++ = len_phone; /* length */
-        for (l = 0; l < len_phone; l++)
-        *p++ = pc->chan->setup.phone[l];
+       for (l = 0; l < len_phone; l++)
+               *p++ = pc->chan->setup.phone[l];
 
-        if (len_sub)
-         { *p++ = 0x04; /* called party subaddress */
-            *p++ = len_sub - 2;
-            while (*subp) *p++ = *subp++;
-          }
+       if (len_sub)
+       { *p++ = 0x04; /* called party subaddress */
+               *p++ = len_sub - 2;
+               while (*subp) *p++ = *subp++;
+       }
 
-        *p++ = 0x01; /* screening identifier */
-        *p++ = 0x01;
-        *p++ = pc->chan->setup.screen;
+       *p++ = 0x01; /* screening identifier */
+       *p++ = 0x01;
+       *p++ = pc->chan->setup.screen;
 
        l = p - tmp;
        if (!(skb = l3_alloc_skb(l))) return;
        memcpy(skb_put(skb, l), tmp, l);
 
-        l3_msg(pc->st, DL_DATA | REQUEST, skb);
+       l3_msg(pc->st, DL_DATA | REQUEST, skb);
 } /* l3ni1_redir_req */
 
 /********************************************/
@@ -2011,8 +2011,8 @@ static void l3ni1_redir_req(struct l3_process *pc, u_char pr, void *arg)
 /********************************************/
 static void l3ni1_redir_req_early(struct l3_process *pc, u_char pr, void *arg)
 {
-  l3ni1_proceed_req(pc,pr,arg);
-  l3ni1_redir_req(pc,pr,arg);
+       l3ni1_proceed_req(pc, pr, arg);
+       l3ni1_redir_req(pc, pr, arg);
 } /* l3ni1_redir_req_early */
 
 /***********************************************/
@@ -2022,108 +2022,108 @@ static void l3ni1_redir_req_early(struct l3_process *pc, u_char pr, void *arg)
 /***********************************************/
 static int l3ni1_cmd_global(struct PStack *st, isdn_ctrl *ic)
 { u_char id;
-  u_char temp[265];
-  u_char *p = temp;
-  int i, l, proc_len; 
-  struct sk_buff *skb;
-  struct l3_process *pc = NULL;
-
-  switch (ic->arg)
-   { case NI1_CMD_INVOKE:
-       if (ic->parm.ni1_io.datalen < 0) return(-2); /* invalid parameter */ 
-
-       for (proc_len = 1, i = ic->parm.ni1_io.proc >> 8; i; i++) 
-         i = i >> 8; /* add one byte */    
-       l = ic->parm.ni1_io.datalen + proc_len + 8; /* length excluding ie header */
-       if (l > 255) 
-         return(-2); /* too long */
-
-       if (!(id = new_invoke_id(st))) 
-         return(0); /* first get a invoke id -> return if no available */
-       
-       i = -1; 
-       MsgHead(p, i, MT_FACILITY); /* build message head */
-       *p++ = 0x1C; /* Facility IE */
-       *p++ = l; /* length of ie */
-       *p++ = 0x91; /* remote operations */
-       *p++ = 0xA1; /* invoke */
-       *p++ = l - 3; /* length of invoke */
-       *p++ = 0x02; /* invoke id tag */
-       *p++ = 0x01; /* length is 1 */
-       *p++ = id; /* invoke id */
-       *p++ = 0x02; /* operation */
-       *p++ = proc_len; /* length of operation */
-       
-       for (i = proc_len; i; i--)
-         *p++ = (ic->parm.ni1_io.proc >> (i-1)) & 0xFF;
-       memcpy(p, ic->parm.ni1_io.data, ic->parm.ni1_io.datalen); /* copy data */
-       l = (p - temp) + ic->parm.ni1_io.datalen; /* total length */         
-
-       if (ic->parm.ni1_io.timeout > 0)
-        if (!(pc = ni1_new_l3_process(st, -1)))
-          { free_invoke_id(st, id);
-            return(-2);
-          } 
-       pc->prot.ni1.ll_id = ic->parm.ni1_io.ll_id; /* remember id */ 
-       pc->prot.ni1.proc = ic->parm.ni1_io.proc; /* and procedure */
-
-       if (!(skb = l3_alloc_skb(l))) 
-         { free_invoke_id(st, id);
-           if (pc) ni1_release_l3_process(pc);
-           return(-2);
-         }
-       memcpy(skb_put(skb, l), temp, l);
-       
-       if (pc)
-        { pc->prot.ni1.invoke_id = id; /* remember id */
-          L3AddTimer(&pc->timer, ic->parm.ni1_io.timeout, CC_TNI1_IO | REQUEST);
-        }
-       
-       l3_msg(st, DL_DATA | REQUEST, skb);
-       ic->parm.ni1_io.hl_id = id; /* return id */
-       return(0);
-
-     case NI1_CMD_INVOKE_ABORT:
-       if ((pc = l3ni1_search_dummy_proc(st, ic->parm.ni1_io.hl_id)))
-       { L3DelTimer(&pc->timer); /* remove timer */
-          ni1_release_l3_process(pc);
-          return(0); 
-        } 
-       else
-       { l3_debug(st, "l3ni1_cmd_global abort unknown id");
-          return(-2);
-        } 
-       break;
-    
-     default: 
-       l3_debug(st, "l3ni1_cmd_global unknown cmd 0x%lx", ic->arg);
-       return(-1);  
-   } /* switch ic-> arg */
-  return(-1);
+       u_char temp[265];
+       u_char *p = temp;
+       int i, l, proc_len;
+       struct sk_buff *skb;
+       struct l3_process *pc = NULL;
+
+       switch (ic->arg)
+       { case NI1_CMD_INVOKE:
+                       if (ic->parm.ni1_io.datalen < 0) return (-2); /* invalid parameter */
+
+                       for (proc_len = 1, i = ic->parm.ni1_io.proc >> 8; i; i++)
+                               i = i >> 8; /* add one byte */
+                       l = ic->parm.ni1_io.datalen + proc_len + 8; /* length excluding ie header */
+                       if (l > 255)
+                               return (-2); /* too long */
+
+                       if (!(id = new_invoke_id(st)))
+                               return (0); /* first get a invoke id -> return if no available */
+
+                       i = -1;
+                       MsgHead(p, i, MT_FACILITY); /* build message head */
+                       *p++ = 0x1C; /* Facility IE */
+                       *p++ = l; /* length of ie */
+                       *p++ = 0x91; /* remote operations */
+                       *p++ = 0xA1; /* invoke */
+                       *p++ = l - 3; /* length of invoke */
+                       *p++ = 0x02; /* invoke id tag */
+                       *p++ = 0x01; /* length is 1 */
+                       *p++ = id; /* invoke id */
+                       *p++ = 0x02; /* operation */
+                       *p++ = proc_len; /* length of operation */
+
+                       for (i = proc_len; i; i--)
+                               *p++ = (ic->parm.ni1_io.proc >> (i - 1)) & 0xFF;
+                       memcpy(p, ic->parm.ni1_io.data, ic->parm.ni1_io.datalen); /* copy data */
+                       l = (p - temp) + ic->parm.ni1_io.datalen; /* total length */
+
+                       if (ic->parm.ni1_io.timeout > 0)
+                               if (!(pc = ni1_new_l3_process(st, -1)))
+                               { free_invoke_id(st, id);
+                                       return (-2);
+                               }
+                       pc->prot.ni1.ll_id = ic->parm.ni1_io.ll_id; /* remember id */
+                       pc->prot.ni1.proc = ic->parm.ni1_io.proc; /* and procedure */
+
+                       if (!(skb = l3_alloc_skb(l)))
+                       { free_invoke_id(st, id);
+                               if (pc) ni1_release_l3_process(pc);
+                               return (-2);
+                       }
+                       memcpy(skb_put(skb, l), temp, l);
+
+                       if (pc)
+                       { pc->prot.ni1.invoke_id = id; /* remember id */
+                               L3AddTimer(&pc->timer, ic->parm.ni1_io.timeout, CC_TNI1_IO | REQUEST);
+                       }
+
+                       l3_msg(st, DL_DATA | REQUEST, skb);
+                       ic->parm.ni1_io.hl_id = id; /* return id */
+                       return (0);
+
+       case NI1_CMD_INVOKE_ABORT:
+               if ((pc = l3ni1_search_dummy_proc(st, ic->parm.ni1_io.hl_id)))
+               { L3DelTimer(&pc->timer); /* remove timer */
+                       ni1_release_l3_process(pc);
+                       return (0);
+               }
+               else
+               { l3_debug(st, "l3ni1_cmd_global abort unknown id");
+                       return (-2);
+               }
+               break;
+
+       default:
+               l3_debug(st, "l3ni1_cmd_global unknown cmd 0x%lx", ic->arg);
+               return (-1);
+       } /* switch ic-> arg */
+       return (-1);
 } /* l3ni1_cmd_global */
 
-static void 
+static void
 l3ni1_io_timer(struct l3_process *pc)
 { isdn_ctrl ic;
-  struct IsdnCardState *cs = pc->st->l1.hardware;
+       struct IsdnCardState *cs = pc->st->l1.hardware;
 
-  L3DelTimer(&pc->timer); /* remove timer */
+       L3DelTimer(&pc->timer); /* remove timer */
 
-  ic.driver = cs->myid;
-  ic.command = ISDN_STAT_PROT;
-  ic.arg = NI1_STAT_INVOKE_ERR;
-  ic.parm.ni1_io.hl_id = pc->prot.ni1.invoke_id;
-  ic.parm.ni1_io.ll_id = pc->prot.ni1.ll_id;
-  ic.parm.ni1_io.proc = pc->prot.ni1.proc;
-  ic.parm.ni1_io.timeout= -1;
-  ic.parm.ni1_io.datalen = 0;
-  ic.parm.ni1_io.data = NULL;
-  free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
-  pc->prot.ni1.invoke_id = 0; /* reset id */
+       ic.driver = cs->myid;
+       ic.command = ISDN_STAT_PROT;
+       ic.arg = NI1_STAT_INVOKE_ERR;
+       ic.parm.ni1_io.hl_id = pc->prot.ni1.invoke_id;
+       ic.parm.ni1_io.ll_id = pc->prot.ni1.ll_id;
+       ic.parm.ni1_io.proc = pc->prot.ni1.proc;
+       ic.parm.ni1_io.timeout = -1;
+       ic.parm.ni1_io.datalen = 0;
+       ic.parm.ni1_io.data = NULL;
+       free_invoke_id(pc->st, pc->prot.ni1.invoke_id);
+       pc->prot.ni1.invoke_id = 0; /* reset id */
 
-  cs->iif.statcallb(&ic);
+       cs->iif.statcallb(&ic);
 
-  ni1_release_l3_process(pc); 
+       ni1_release_l3_process(pc);
 } /* l3ni1_io_timer */
 
 static void
@@ -2293,12 +2293,12 @@ l3ni1_status(struct l3_process *pc, u_char pr, void *arg)
 {
        u_char *p;
        struct sk_buff *skb = arg;
-       int ret; 
+       int ret;
        u_char cause = 0, callState = 0;
-       
+
        if ((ret = l3ni1_get_cause(pc, skb))) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "STATUS get_cause ret(%d)",ret);
+                       l3_debug(pc->st, "STATUS get_cause ret(%d)", ret);
                if (ret < 0)
                        cause = 96;
                else if (ret > 0)
@@ -2323,9 +2323,9 @@ l3ni1_status(struct l3_process *pc, u_char pr, void *arg)
        }
        if (cause) {
                u_char tmp;
-               
+
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "STATUS error(%d/%d)",ret,cause);
+                       l3_debug(pc->st, "STATUS error(%d/%d)", ret, cause);
                tmp = pc->para.cause;
                pc->para.cause = cause;
                l3ni1_status_send(pc, 0, NULL);
@@ -2351,10 +2351,10 @@ l3ni1_facility(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb = arg;
        int ret;
-       
+
        ret = check_infoelements(pc, skb, ie_FACILITY);
        l3ni1_std_ie_err(pc, ret);
-         {
+       {
                u_char *p;
                if ((p = findie(skb->data, skb->len, IE_FACILITY, 0)))
                        l3ni1_parse_facility(pc->st, pc, pc->callref, p);
@@ -2403,7 +2403,7 @@ l3ni1_suspend_ack(struct l3_process *pc, u_char pr, void *arg)
        /* We don't handle suspend_ack for IE errors now */
        if ((ret = check_infoelements(pc, skb, ie_SUSPEND_ACKNOWLEDGE)))
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "SUSPACK check ie(%d)",ret);
+                       l3_debug(pc->st, "SUSPACK check ie(%d)", ret);
        ni1_release_l3_process(pc);
 }
 
@@ -2415,8 +2415,8 @@ l3ni1_suspend_rej(struct l3_process *pc, u_char pr, void *arg)
 
        if ((ret = l3ni1_get_cause(pc, skb))) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "SUSP_REJ get_cause ret(%d)",ret);
-               if (ret < 0) 
+                       l3_debug(pc->st, "SUSP_REJ get_cause ret(%d)", ret);
+               if (ret < 0)
                        pc->para.cause = 96;
                else
                        pc->para.cause = 100;
@@ -2507,8 +2507,8 @@ l3ni1_resume_rej(struct l3_process *pc, u_char pr, void *arg)
 
        if ((ret = l3ni1_get_cause(pc, skb))) {
                if (pc->debug & L3_DEB_WARN)
-                       l3_debug(pc->st, "RES_REJ get_cause ret(%d)",ret);
-               if (ret < 0) 
+                       l3_debug(pc->st, "RES_REJ get_cause ret(%d)", ret);
+               if (ret < 0)
                        pc->para.cause = 96;
                else
                        pc->para.cause = 100;
@@ -2562,7 +2562,7 @@ l3ni1_global_restart(struct l3_process *pc, u_char pr, void *arg)
                        up->st->lli.l4l3(up->st, CC_RESTART | REQUEST, up);
                else if (up->para.bchannel == chan)
                        up->st->lli.l4l3(up->st, CC_RESTART | REQUEST, up);
-               
+
                up = up->next;
        }
        p = tmp;
@@ -2586,112 +2586,112 @@ l3ni1_global_restart(struct l3_process *pc, u_char pr, void *arg)
 static void
 l3ni1_dl_reset(struct l3_process *pc, u_char pr, void *arg)
 {
-        pc->para.cause = 0x29;          /* Temporary failure */
-        pc->para.loc = 0;
-        l3ni1_disconnect_req(pc, pr, NULL);
-        pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc);
+       pc->para.cause = 0x29;          /* Temporary failure */
+       pc->para.loc = 0;
+       l3ni1_disconnect_req(pc, pr, NULL);
+       pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc);
 }
 
 static void
 l3ni1_dl_release(struct l3_process *pc, u_char pr, void *arg)
 {
-        newl3state(pc, 0);
-        pc->para.cause = 0x1b;          /* Destination out of order */
-        pc->para.loc = 0;
-        pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
-        release_l3_process(pc);
+       newl3state(pc, 0);
+       pc->para.cause = 0x1b;          /* Destination out of order */
+       pc->para.loc = 0;
+       pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc);
+       release_l3_process(pc);
 }
 
 static void
 l3ni1_dl_reestablish(struct l3_process *pc, u_char pr, void *arg)
 {
-        L3DelTimer(&pc->timer);
-        L3AddTimer(&pc->timer, T309, CC_T309);
-        l3_msg(pc->st, DL_ESTABLISH | REQUEST, NULL);
+       L3DelTimer(&pc->timer);
+       L3AddTimer(&pc->timer, T309, CC_T309);
+       l3_msg(pc->st, DL_ESTABLISH | REQUEST, NULL);
 }
+
 static void
 l3ni1_dl_reest_status(struct l3_process *pc, u_char pr, void *arg)
 {
        L3DelTimer(&pc->timer);
-       pc->para.cause = 0x1F; /* normal, unspecified */
+
+       pc->para.cause = 0x1F; /* normal, unspecified */
        l3ni1_status_send(pc, 0, NULL);
 }
 
-static void l3ni1_SendSpid( struct l3_process *pc, u_char pr, struct sk_buff *skb, int iNewState )
+static void l3ni1_SendSpid(struct l3_process *pc, u_char pr, struct sk_buff *skb, int iNewState)
 {
-       u_char         * p;
-       char           * pSPID;
-       struct Channel * pChan = pc->st->lli.userdata;
-       int              l;
+       u_char *p;
+       char *pSPID;
+       struct Channel *pChan = pc->st->lli.userdata;
+       int l;
 
-       if ( skb )
-               dev_kfree_skb( skb);
+       if (skb)
+               dev_kfree_skb(skb);
 
-       if ( !( pSPID = strchr( pChan->setup.eazmsn, ':' ) ) )
+       if (!(pSPID = strchr(pChan->setup.eazmsn, ':')))
        {
-               printk( KERN_ERR "SPID not supplied in EAZMSN %s\n", pChan->setup.eazmsn );
-               newl3state( pc, 0 );
-               pc->st->l3.l3l2( pc->st, DL_RELEASE | REQUEST, NULL );
+               printk(KERN_ERR "SPID not supplied in EAZMSN %s\n", pChan->setup.eazmsn);
+               newl3state(pc, 0);
+               pc->st->l3.l3l2(pc->st, DL_RELEASE | REQUEST, NULL);
                return;
        }
 
-       l = strlen( ++pSPID );
-       if ( !( skb = l3_alloc_skb( 5+l ) ) )
+       l = strlen(++pSPID);
+       if (!(skb = l3_alloc_skb(5 + l)))
        {
-               printk( KERN_ERR "HiSax can't get memory to send SPID\n" );
+               printk(KERN_ERR "HiSax can't get memory to send SPID\n");
                return;
        }
 
-       p = skb_put( skb, 5 );
+       p = skb_put(skb, 5);
        *p++ = PROTO_DIS_EURO;
        *p++ = 0;
        *p++ = MT_INFORMATION;
        *p++ = IE_SPID;
        *p++ = l;
 
-       memcpy( skb_put( skb, l ), pSPID, l );
+       memcpy(skb_put(skb, l), pSPID, l);
 
-       newl3state( pc, iNewState );
+       newl3state(pc, iNewState);
 
-       L3DelTimer( &pc->timer );
-       L3AddTimer( &pc->timer, TSPID, CC_TSPID );
+       L3DelTimer(&pc->timer);
+       L3AddTimer(&pc->timer, TSPID, CC_TSPID);
 
-       pc->st->l3.l3l2( pc->st, DL_DATA | REQUEST, skb );
+       pc->st->l3.l3l2(pc->st, DL_DATA | REQUEST, skb);
 }
 
-static void l3ni1_spid_send( struct l3_process *pc, u_char pr, void *arg )
+static void l3ni1_spid_send(struct l3_process *pc, u_char pr, void *arg)
 {
-       l3ni1_SendSpid( pc, pr, arg, 20 );
+       l3ni1_SendSpid(pc, pr, arg, 20);
 }
 
-static void l3ni1_spid_epid( struct l3_process *pc, u_char pr, void *arg )
+static void l3ni1_spid_epid(struct l3_process *pc, u_char pr, void *arg)
 {
        struct sk_buff *skb = arg;
 
-       if ( skb->data[ 1 ] == 0 )
-               if ( skb->data[ 3 ] == IE_ENDPOINT_ID )
+       if (skb->data[1] == 0)
+               if (skb->data[3] == IE_ENDPOINT_ID)
                {
-                       L3DelTimer( &pc->timer );
-                       newl3state( pc, 0 );
-                       l3_msg( pc->st, DL_ESTABLISH | CONFIRM, NULL );
+                       L3DelTimer(&pc->timer);
+                       newl3state(pc, 0);
+                       l3_msg(pc->st, DL_ESTABLISH | CONFIRM, NULL);
                }
-       dev_kfree_skb( skb);
+       dev_kfree_skb(skb);
 }
 
-static void l3ni1_spid_tout( struct l3_process *pc, u_char pr, void *arg )
+static void l3ni1_spid_tout(struct l3_process *pc, u_char pr, void *arg)
 {
-       if ( pc->state < 22 )
-               l3ni1_SendSpid( pc, pr, arg, pc->state+1 );
+       if (pc->state < 22)
+               l3ni1_SendSpid(pc, pr, arg, pc->state + 1);
        else
        {
-               L3DelTimer( &pc->timer );
-               dev_kfree_skb( arg);
+               L3DelTimer(&pc->timer);
+               dev_kfree_skb(arg);
 
-               printk( KERN_ERR "SPID not accepted\n" );
-               newl3state( pc, 0 );
-               pc->st->l3.l3l2( pc->st, DL_RELEASE | REQUEST, NULL );
+               printk(KERN_ERR "SPID not accepted\n");
+               newl3state(pc, 0);
+               pc->st->l3.l3l2(pc->st, DL_RELEASE | REQUEST, NULL);
        }
 }
 
@@ -2724,12 +2724,12 @@ static struct stateentry downstatelist[] =
         CC_SETUP | RESPONSE, l3ni1_setup_rsp},
        {SBIT(10),
         CC_SUSPEND | REQUEST, l3ni1_suspend_req},
-        {SBIT(7) | SBIT(9) | SBIT(25),
-         CC_REDIR | REQUEST, l3ni1_redir_req},
-        {SBIT(6),
-         CC_REDIR | REQUEST, l3ni1_redir_req_early},
-        {SBIT(9) | SBIT(25),
-         CC_DISCONNECT | REQUEST, l3ni1_disconnect_req},
+       {SBIT(7) | SBIT(9) | SBIT(25),
+        CC_REDIR | REQUEST, l3ni1_redir_req},
+       {SBIT(6),
+        CC_REDIR | REQUEST, l3ni1_redir_req_early},
+       {SBIT(9) | SBIT(25),
+        CC_DISCONNECT | REQUEST, l3ni1_disconnect_req},
        {SBIT(25),
         CC_T302, l3ni1_t302},
        {SBIT(1),
@@ -2752,8 +2752,8 @@ static struct stateentry downstatelist[] =
         CC_T308_2, l3ni1_t308_2},
        {SBIT(10),
         CC_T309, l3ni1_dl_release},
-       { SBIT( 20 ) | SBIT( 21 ) | SBIT( 22 ),
-        CC_TSPID, l3ni1_spid_tout },
+       { SBIT(20) | SBIT(21) | SBIT(22),
+         CC_TSPID, l3ni1_spid_tout },
 };
 
 static struct stateentry datastatelist[] =
@@ -2815,22 +2815,22 @@ static struct stateentry globalmes_list[] =
        {SBIT(0),
         MT_RESTART, l3ni1_global_restart},
 /*     {SBIT(1),
-        MT_RESTART_ACKNOWLEDGE, l3ni1_restart_ack},
+       MT_RESTART_ACKNOWLEDGE, l3ni1_restart_ack},
 */
-       { SBIT( 0 ), MT_DL_ESTABLISHED, l3ni1_spid_send },
-       { SBIT( 20 ) | SBIT( 21 ) | SBIT( 22 ), MT_INFORMATION, l3ni1_spid_epid },
+       { SBIT(0), MT_DL_ESTABLISHED, l3ni1_spid_send },
+       { SBIT(20) | SBIT(21) | SBIT(22), MT_INFORMATION, l3ni1_spid_epid },
 };
 
 static struct stateentry manstatelist[] =
 {
-        {SBIT(2),
-         DL_ESTABLISH | INDICATION, l3ni1_dl_reset},
-        {SBIT(10),
-         DL_ESTABLISH | CONFIRM, l3ni1_dl_reest_status},
-        {SBIT(10),
-         DL_RELEASE | INDICATION, l3ni1_dl_reestablish},
-        {ALL_STATES,
-         DL_RELEASE | INDICATION, l3ni1_dl_release},
+       {SBIT(2),
+        DL_ESTABLISH | INDICATION, l3ni1_dl_reset},
+       {SBIT(10),
+        DL_ESTABLISH | CONFIRM, l3ni1_dl_reest_status},
+       {SBIT(10),
+        DL_RELEASE | INDICATION, l3ni1_dl_reestablish},
+       {ALL_STATES,
+        DL_RELEASE | INDICATION, l3ni1_dl_release},
 };
 
 /* *INDENT-ON* */
@@ -2845,7 +2845,7 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb)
        int i;
        struct l3_process *proc = st->l3.global;
 
-       if ( skb )      
+       if (skb)
                proc->callref = skb->data[2]; /* cr flag */
        else
                proc->callref = 0;
@@ -2856,13 +2856,13 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb)
        if (i == ARRAY_SIZE(globalmes_list)) {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "ni1 global state %d mt %x unhandled",
-                               proc->state, mt);
+                                proc->state, mt);
                }
                MsgHead(p, proc->callref, MT_STATUS);
                *p++ = IE_CAUSE;
                *p++ = 0x2;
                *p++ = 0x80;
-               *p++ = 81 |0x80;        /* invalid cr */
+               *p++ = 81 | 0x80;       /* invalid cr */
                *p++ = 0x14;            /* CallState */
                *p++ = 0x1;
                *p++ = proc->state & 0x3f;
@@ -2874,7 +2874,7 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb)
        } else {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "ni1 global %d mt %x",
-                               proc->state, mt);
+                                proc->state, mt);
                }
                globalmes_list[i].rout(proc, mt, skb);
        }
@@ -2890,23 +2890,23 @@ ni1up(struct PStack *st, int pr, void *arg)
        struct l3_process *proc;
 
        switch (pr) {
-               case (DL_DATA | INDICATION):
-               case (DL_UNIT_DATA | INDICATION):
-                       break;
-               case (DL_ESTABLISH | INDICATION):
-               case (DL_RELEASE | INDICATION):
-               case (DL_RELEASE | CONFIRM):
-                       l3_msg(st, pr, arg);
-                       return;
-                       break;
+       case (DL_DATA | INDICATION):
+       case (DL_UNIT_DATA | INDICATION):
+               break;
+       case (DL_ESTABLISH | INDICATION):
+       case (DL_RELEASE | INDICATION):
+       case (DL_RELEASE | CONFIRM):
+               l3_msg(st, pr, arg);
+               return;
+               break;
 
-               case (DL_ESTABLISH | CONFIRM):
-                       global_handler( st, MT_DL_ESTABLISHED, NULL );
-                       return;
+       case (DL_ESTABLISH | CONFIRM):
+               global_handler(st, MT_DL_ESTABLISHED, NULL);
+               return;
 
-               default:
-                       printk(KERN_ERR "HiSax ni1up unknown pr=%04x\n", pr);
-                       return;
+       default:
+               printk(KERN_ERR "HiSax ni1up unknown pr=%04x\n", pr);
+               return;
        }
        if (skb->len < 3) {
                l3_debug(st, "ni1up frame too short(%d)", skb->len);
@@ -2941,10 +2941,10 @@ ni1up(struct PStack *st, int pr, void *arg)
                if (mt == MT_FACILITY)
                {
                        if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) {
-                               l3ni1_parse_facility(st, NULL, 
-                                       (pr == (DL_DATA | INDICATION)) ? -1 : -2, p); 
+                               l3ni1_parse_facility(st, NULL,
+                                                    (pr == (DL_DATA | INDICATION)) ? -1 : -2, p);
                                dev_kfree_skb(skb);
-                               return;  
+                               return;
                        }
                }
                else
@@ -2952,13 +2952,13 @@ ni1up(struct PStack *st, int pr, void *arg)
                        global_handler(st, mt, skb);
                        return;
                }
-                               
+
                if (st->l3.debug & L3_DEB_WARN)
                        l3_debug(st, "ni1up dummy Callref (no facility msg or ie)");
                dev_kfree_skb(skb);
                return;
-       } else if ((((skb->data[1] & 0x0f) == 1) && (0==(cr & 0x7f))) ||
-               (((skb->data[1] & 0x0f) == 2) && (0==(cr & 0x7fff)))) { /* Global CallRef */
+       } else if ((((skb->data[1] & 0x0f) == 1) && (0 == (cr & 0x7f))) ||
+                  (((skb->data[1] & 0x0f) == 2) && (0 == (cr & 0x7fff)))) {    /* Global CallRef */
                if (st->l3.debug & L3_DEB_STATE)
                        l3_debug(st, "ni1up Global CallRef");
                global_handler(st, mt, skb);
@@ -3036,8 +3036,8 @@ ni1up(struct PStack *st, int pr, void *arg)
                dev_kfree_skb(skb);
                return;
        }
-       if ((p = findie(skb->data, skb->len, IE_DISPLAY, 0)) != NULL) 
-         l3ni1_deliver_display(proc, pr, p); /* Display IE included */
+       if ((p = findie(skb->data, skb->len, IE_DISPLAY, 0)) != NULL)
+               l3ni1_deliver_display(proc, pr, p); /* Display IE included */
        for (i = 0; i < ARRAY_SIZE(datastatelist); i++)
                if ((mt == datastatelist[i].primitive) &&
                    ((1 << proc->state) & datastatelist[i].state))
@@ -3045,8 +3045,8 @@ ni1up(struct PStack *st, int pr, void *arg)
        if (i == ARRAY_SIZE(datastatelist)) {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "ni1up%sstate %d mt %#x unhandled",
-                               (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
-                               proc->state, mt);
+                                (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
+                                proc->state, mt);
                }
                if ((MT_RELEASE_COMPLETE != mt) && (MT_RELEASE != mt)) {
                        proc->para.cause = 101;
@@ -3055,8 +3055,8 @@ ni1up(struct PStack *st, int pr, void *arg)
        } else {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "ni1up%sstate %d mt %x",
-                               (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
-                               proc->state, mt);
+                                (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
+                                proc->state, mt);
                }
                datastatelist[i].rout(proc, pr, skb);
        }
@@ -3092,10 +3092,10 @@ ni1down(struct PStack *st, int pr, void *arg)
                return;
        }
 
-       if ( pr == (CC_TNI1_IO | REQUEST)) {
-               l3ni1_io_timer(proc); /* timer expires */ 
+       if (pr == (CC_TNI1_IO | REQUEST)) {
+               l3ni1_io_timer(proc); /* timer expires */
                return;
-       }  
+       }
 
        for (i = 0; i < ARRAY_SIZE(downstatelist); i++)
                if ((pr == downstatelist[i].primitive) &&
@@ -3104,12 +3104,12 @@ ni1down(struct PStack *st, int pr, void *arg)
        if (i == ARRAY_SIZE(downstatelist)) {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "ni1down state %d prim %#x unhandled",
-                               proc->state, pr);
+                                proc->state, pr);
                }
        } else {
                if (st->l3.debug & L3_DEB_STATE) {
                        l3_debug(st, "ni1down state %d prim %#x",
-                               proc->state, pr);
+                                proc->state, pr);
                }
                downstatelist[i].rout(proc, pr, arg);
        }
@@ -3118,31 +3118,31 @@ ni1down(struct PStack *st, int pr, void *arg)
 static void
 ni1man(struct PStack *st, int pr, void *arg)
 {
-        int i;
-        struct l3_process *proc = arg;
-
-        if (!proc) {
-                printk(KERN_ERR "HiSax ni1man without proc pr=%04x\n", pr);
-                return;
-        }
-        for (i = 0; i < ARRAY_SIZE(manstatelist); i++)
-                if ((pr == manstatelist[i].primitive) &&
-                    ((1 << proc->state) & manstatelist[i].state))
-                        break;
-        if (i == ARRAY_SIZE(manstatelist)) {
-                if (st->l3.debug & L3_DEB_STATE) {
-                        l3_debug(st, "cr %d ni1man state %d prim %#x unhandled",
-                                proc->callref & 0x7f, proc->state, pr);
-                }
-        } else {
-                if (st->l3.debug & L3_DEB_STATE) {
-                        l3_debug(st, "cr %d ni1man state %d prim %#x",
-                                proc->callref & 0x7f, proc->state, pr);
-                }
-                manstatelist[i].rout(proc, pr, arg);
-        }
-}
+       int i;
+       struct l3_process *proc = arg;
+
+       if (!proc) {
+               printk(KERN_ERR "HiSax ni1man without proc pr=%04x\n", pr);
+               return;
+       }
+       for (i = 0; i < ARRAY_SIZE(manstatelist); i++)
+               if ((pr == manstatelist[i].primitive) &&
+                   ((1 << proc->state) & manstatelist[i].state))
+                       break;
+       if (i == ARRAY_SIZE(manstatelist)) {
+               if (st->l3.debug & L3_DEB_STATE) {
+                       l3_debug(st, "cr %d ni1man state %d prim %#x unhandled",
+                                proc->callref & 0x7f, proc->state, pr);
+               }
+       } else {
+               if (st->l3.debug & L3_DEB_STATE) {
+                       l3_debug(st, "cr %d ni1man state %d prim %#x",
+                                proc->callref & 0x7f, proc->state, pr);
+               }
+               manstatelist[i].rout(proc, pr, arg);
+       }
+}
+
 void
 setstack_ni1(struct PStack *st)
 {
@@ -3157,8 +3157,8 @@ setstack_ni1(struct PStack *st)
        st->prot.ni1.last_invoke_id = 0;
        st->prot.ni1.invoke_used[0] = 1; /* Bit 0 must always be set to 1 */
        i = 1;
-       while (i < 32) 
-               st->prot.ni1.invoke_used[i++] = 0;   
+       while (i < 32)
+               st->prot.ni1.invoke_used[i++] = 0;
 
        if (!(st->l3.global = kmalloc(sizeof(struct l3_process), GFP_ATOMIC))) {
                printk(KERN_ERR "HiSax can't get memory for ni1 global CR\n");
@@ -3169,7 +3169,7 @@ setstack_ni1(struct PStack *st)
                st->l3.global->debug = L3_DEB_WARN;
                st->l3.global->st = st;
                st->l3.global->N303 = 1;
-               st->l3.global->prot.ni1.invoke_id = 0; 
+               st->l3.global->prot.ni1.invoke_id = 0;
 
                L3InitTimer(st->l3.global, &st->l3.global->timer);
        }
index 4066da2..99d37d2 100644 (file)
@@ -4,13 +4,13 @@
  *
  * Author       Matt Henderson & Guy Ellis
  * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
- * 2000.6.6 Initial implementation of routines for US NI1 
- * Layer 3 protocol based on the EURO/DSS1 D-channel protocol 
- * driver written by Karsten Keil et al.  Thanks also for the 
+ * 2000.6.6 Initial implementation of routines for US NI1
+ * Layer 3 protocol based on the EURO/DSS1 D-channel protocol
+ * driver written by Karsten Keil et al.  Thanks also for the
  * code provided by Ragnar Paulson.
  *
  */
 
 /* l3ni1 specific data in l3 process */
 typedef struct
-  { unsigned char invoke_id; /* used invoke id in remote ops, 0 = not active */
-    ulong ll_id; /* remebered ll id */
-    u8 remote_operation; /* handled remote operation, 0 = not active */ 
-    int proc; /* rememered procedure */  
-    ulong remote_result; /* result of remote operation for statcallb */
-    char uus1_data[35]; /* data send during alerting or disconnect */
-  } ni1_proc_priv;
+{ unsigned char invoke_id; /* used invoke id in remote ops, 0 = not active */
+       ulong ll_id; /* remebered ll id */
+       u8 remote_operation; /* handled remote operation, 0 = not active */
+       int proc; /* rememered procedure */
+       ulong remote_result; /* result of remote operation for statcallb */
+       char uus1_data[35]; /* data send during alerting or disconnect */
+} ni1_proc_priv;
 
 /* l3dni1 specific data in protocol stack */
 typedef struct
-  { unsigned char last_invoke_id; /* last used value for invoking */
-    unsigned char invoke_used[32]; /* 256 bits for 256 values */
-  } ni1_stk_priv;        
+{ unsigned char last_invoke_id; /* last used value for invoking */
+       unsigned char invoke_used[32]; /* 256 bits for 256 values */
+} ni1_stk_priv;
 
 #endif /* only l3dni1_process */
index d4f86d6..5b63eb6 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -16,12 +16,12 @@ static void
 error_handling_dchan(struct PStack *st, int Error)
 {
        switch (Error) {
-               case 'C':
-               case 'D':
-               case 'G':
-               case 'H':
-                       st->l2.l2tei(st, MDL_ERROR | REQUEST, NULL);
-                       break;
+       case 'C':
+       case 'D':
+       case 'G':
+       case 'H':
+               st->l2.l2tei(st, MDL_ERROR | REQUEST, NULL);
+               break;
        }
 }
 
@@ -31,15 +31,15 @@ hisax_manager(struct PStack *st, int pr, void *arg)
        long Code;
 
        switch (pr) {
-               case (MDL_ERROR | INDICATION):
-                       Code = (long) arg;
-                       HiSax_putstatus(st->l1.hardware, "manager: MDL_ERROR",
-                               " %c %s", (char)Code, 
+       case (MDL_ERROR | INDICATION):
+               Code = (long) arg;
+               HiSax_putstatus(st->l1.hardware, "manager: MDL_ERROR",
+                               " %c %s", (char)Code,
                                test_bit(FLG_LAPD, &st->l2.flag) ?
                                "D-channel" : "B-channel");
-                       if (test_bit(FLG_LAPD, &st->l2.flag))
-                               error_handling_dchan(st, Code);
-                       break;
+               if (test_bit(FLG_LAPD, &st->l2.flag))
+                       error_handling_dchan(st, Code);
+               break;
        }
 }
 
index 2539430..08a6b7f 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Stephan von Krawczynski
  * Copyright    by Stephan von Krawczynski <skraw@ithnet.com>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -18,7 +18,7 @@
 
 static const char *mic_revision = "$Revision: 1.12.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define MIC_ISAC       2
@@ -39,7 +39,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -54,7 +54,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -75,13 +75,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.mic.adr, cs->hw.mic.isac, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.mic.adr, cs->hw.mic.isac, 0, data, size);
 }
@@ -104,16 +104,16 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
  * fast interrupt HSCX stuff goes here
  */
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.mic.adr, \
-               cs->hw.mic.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.mic.adr, \
-               cs->hw.mic.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.mic.adr,                  \
+                                     cs->hw.mic.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.mic.adr,          \
+                                             cs->hw.mic.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.mic.adr, \
-               cs->hw.mic.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.mic.adr,                \
+                                               cs->hw.mic.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.mic.adr, \
-               cs->hw.mic.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.mic.adr,      \
+                                                 cs->hw.mic.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -126,11 +126,11 @@ mic_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.mic.adr, cs->hw.mic.hscx, HSCX_ISTA + 0x40);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.mic.adr, cs->hw.mic.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.mic.adr, cs->hw.mic.hscx, HSCX_ISTA + 0x40);
@@ -170,21 +170,21 @@ mic_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_mic(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscx(cs); /* /RTSA := ISAC RST */
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               return (0);
+       case CARD_RELEASE:
+               release_io_mic(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscx(cs); /* /RTSA := ISAC RST */
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 int __devinit
@@ -214,7 +214,7 @@ setup_mic(struct IsdnCard *card)
                return (0);
        }
        printk(KERN_INFO "mic: defined at 0x%x IRQ %d\n",
-               cs->hw.mic.cfg_reg, cs->irq);
+              cs->hw.mic.cfg_reg, cs->irq);
        setup_isac(cs);
        cs->readisac = &ReadISAC;
        cs->writeisac = &WriteISAC;
@@ -228,7 +228,7 @@ setup_mic(struct IsdnCard *card)
        ISACVersion(cs, "mic:");
        if (HscxVersion(cs, "mic:")) {
                printk(KERN_WARNING
-                   "mic: wrong HSCX versions check IO address\n");
+                      "mic: wrong HSCX versions check IO address\n");
                release_io_mic(cs);
                return (0);
        }
index 644891e..b646eed 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -31,21 +31,21 @@ u_char
 NETjet_ReadIC(struct IsdnCardState *cs, u_char offset)
 {
        u_char ret;
-       
+
        cs->hw.njet.auxd &= 0xfc;
-       cs->hw.njet.auxd |= (offset>>4) & 3;
+       cs->hw.njet.auxd |= (offset >> 4) & 3;
        byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
-       ret = bytein(cs->hw.njet.isac + ((offset & 0xf)<<2));
-       return(ret);
+       ret = bytein(cs->hw.njet.isac + ((offset & 0xf) << 2));
+       return (ret);
 }
 
 void
 NETjet_WriteIC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
        cs->hw.njet.auxd &= 0xfc;
-       cs->hw.njet.auxd |= (offset>>4) & 3;
+       cs->hw.njet.auxd |= (offset >> 4) & 3;
        byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
-       byteout(cs->hw.njet.isac + ((offset & 0xf)<<2), value);
+       byteout(cs->hw.njet.isac + ((offset & 0xf) << 2), value);
 }
 
 void
@@ -56,7 +56,7 @@ NETjet_ReadICfifo(struct IsdnCardState *cs, u_char *data, int size)
        insb(cs->hw.njet.isac, data, size);
 }
 
-void 
+void
 NETjet_WriteICfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        cs->hw.njet.auxd &= 0xfc;
@@ -66,17 +66,17 @@ NETjet_WriteICfifo(struct IsdnCardState *cs, u_char *data, int size)
 
 static void fill_mem(struct BCState *bcs, u_int *pos, u_int cnt, int chan, u_char fill)
 {
-       u_int mask=0x000000ff, val = 0, *p=pos;
+       u_int mask = 0x000000ff, val = 0, *p = pos;
        u_int i;
-       
+
        val |= fill;
        if (chan) {
                val  <<= 8;
                mask <<= 8;
        }
        mask ^= 0xffffffff;
-       for (i=0; i<cnt; i++) {
-               *p   &= mask;
+       for (i = 0; i < cnt; i++) {
+               *p &= mask;
                *p++ |= val;
                if (p > bcs->hw.tiger.s_end)
                        p = bcs->hw.tiger.send;
@@ -87,7 +87,7 @@ static void
 mode_tiger(struct BCState *bcs, int mode, int bc)
 {
        struct IsdnCardState *cs = bcs->cs;
-        u_char led;
+       u_char led;
 
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "Tiger mode %d bchan %d/%d",
@@ -95,63 +95,63 @@ mode_tiger(struct BCState *bcs, int mode, int bc)
        bcs->mode = mode;
        bcs->channel = bc;
        switch (mode) {
-               case (L1_MODE_NULL):
-                       fill_mem(bcs, bcs->hw.tiger.send,
-                               NETJET_DMA_TXSIZE, bc, 0xff);
-                       if (cs->debug & L1_DEB_HSCX)
-                               debugl1(cs, "Tiger stat rec %d/%d send %d",
-                                       bcs->hw.tiger.r_tot, bcs->hw.tiger.r_err,
-                                       bcs->hw.tiger.s_tot); 
-                       if ((cs->bcs[0].mode == L1_MODE_NULL) &&
-                               (cs->bcs[1].mode == L1_MODE_NULL)) {
-                               cs->hw.njet.dmactrl = 0;
-                               byteout(cs->hw.njet.base + NETJET_DMACTRL,
-                                       cs->hw.njet.dmactrl);
-                               byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0);
-                       }
-                        if (cs->typ == ISDN_CTYPE_NETJET_S)
-                        {
-                                // led off
-                                led = bc & 0x01;
-                                led = 0x01 << (6 + led); // convert to mask
-                                led = ~led;
-                                cs->hw.njet.auxd &= led;
-                                byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
-                        }
-                       break;
-               case (L1_MODE_TRANS):
-                       break;
-               case (L1_MODE_HDLC_56K):
-               case (L1_MODE_HDLC):
+       case (L1_MODE_NULL):
+               fill_mem(bcs, bcs->hw.tiger.send,
+                        NETJET_DMA_TXSIZE, bc, 0xff);
+               if (cs->debug & L1_DEB_HSCX)
+                       debugl1(cs, "Tiger stat rec %d/%d send %d",
+                               bcs->hw.tiger.r_tot, bcs->hw.tiger.r_err,
+                               bcs->hw.tiger.s_tot);
+               if ((cs->bcs[0].mode == L1_MODE_NULL) &&
+                   (cs->bcs[1].mode == L1_MODE_NULL)) {
+                       cs->hw.njet.dmactrl = 0;
+                       byteout(cs->hw.njet.base + NETJET_DMACTRL,
+                               cs->hw.njet.dmactrl);
+                       byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0);
+               }
+               if (cs->typ == ISDN_CTYPE_NETJET_S)
+               {
+                       // led off
+                       led = bc & 0x01;
+                       led = 0x01 << (6 + led); // convert to mask
+                       led = ~led;
+                       cs->hw.njet.auxd &= led;
+                       byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
+               }
+               break;
+       case (L1_MODE_TRANS):
+               break;
+       case (L1_MODE_HDLC_56K):
+       case (L1_MODE_HDLC):
+               fill_mem(bcs, bcs->hw.tiger.send,
+                        NETJET_DMA_TXSIZE, bc, 0xff);
+               bcs->hw.tiger.r_state = HDLC_ZERO_SEARCH;
+               bcs->hw.tiger.r_tot = 0;
+               bcs->hw.tiger.r_bitcnt = 0;
+               bcs->hw.tiger.r_one = 0;
+               bcs->hw.tiger.r_err = 0;
+               bcs->hw.tiger.s_tot = 0;
+               if (!cs->hw.njet.dmactrl) {
                        fill_mem(bcs, bcs->hw.tiger.send,
-                               NETJET_DMA_TXSIZE, bc, 0xff);
-                       bcs->hw.tiger.r_state = HDLC_ZERO_SEARCH;
-                       bcs->hw.tiger.r_tot = 0;
-                       bcs->hw.tiger.r_bitcnt = 0;
-                       bcs->hw.tiger.r_one = 0;
-                       bcs->hw.tiger.r_err = 0;
-                       bcs->hw.tiger.s_tot = 0;
-                       if (! cs->hw.njet.dmactrl) {
-                               fill_mem(bcs, bcs->hw.tiger.send,
-                                       NETJET_DMA_TXSIZE, !bc, 0xff);
-                               cs->hw.njet.dmactrl = 1;
-                               byteout(cs->hw.njet.base + NETJET_DMACTRL,
-                                       cs->hw.njet.dmactrl);
-                               byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0x0f);
+                                NETJET_DMA_TXSIZE, !bc, 0xff);
+                       cs->hw.njet.dmactrl = 1;
+                       byteout(cs->hw.njet.base + NETJET_DMACTRL,
+                               cs->hw.njet.dmactrl);
+                       byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0x0f);
                        /* was 0x3f now 0x0f for TJ300 and TJ320  GE 13/07/00 */
-                       }
-                       bcs->hw.tiger.sendp = bcs->hw.tiger.send;
-                       bcs->hw.tiger.free = NETJET_DMA_TXSIZE;
-                       test_and_set_bit(BC_FLG_EMPTY, &bcs->Flag);
-                        if (cs->typ == ISDN_CTYPE_NETJET_S)
-                        {
-                                // led on
-                                led = bc & 0x01;
-                                led = 0x01 << (6 + led); // convert to mask
-                                cs->hw.njet.auxd |= led;
-                                byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
-                        }
-                       break;
+               }
+               bcs->hw.tiger.sendp = bcs->hw.tiger.send;
+               bcs->hw.tiger.free = NETJET_DMA_TXSIZE;
+               test_and_set_bit(BC_FLG_EMPTY, &bcs->Flag);
+               if (cs->typ == ISDN_CTYPE_NETJET_S)
+               {
+                       // led on
+                       led = bc & 0x01;
+                       led = 0x01 << (6 + led); // convert to mask
+                       cs->hw.njet.auxd |= led;
+                       byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
+               }
+               break;
        }
        if (cs->debug & L1_DEB_HSCX)
                debugl1(cs, "tiger: set %x %x %x  %x/%x  pulse=%d",
@@ -166,15 +166,15 @@ mode_tiger(struct BCState *bcs, int mode, int bc)
 static void printframe(struct IsdnCardState *cs, u_char *buf, int count, char *s) {
        char tmp[128];
        char *t = tmp;
-       int i=count,j;
+       int i = count, j;
        u_char *p = buf;
 
        t += sprintf(t, "tiger %s(%4d)", s, count);
-       while (i>0) {
-               if (i>16)
-                       j=16;
+       while (i > 0) {
+               if (i > 16)
+                       j = 16;
                else
-                       j=i;
+                       j = i;
                QuickHex(t, p, j);
                debugl1(cs, tmp);
                p += j;
@@ -186,78 +186,78 @@ static void printframe(struct IsdnCardState *cs, u_char *buf, int count, char *s
 
 // macro for 64k
 
-#define MAKE_RAW_BYTE for (j=0; j<8; j++) { \
-                       bitcnt++;\
-                       s_val >>= 1;\
-                       if (val & 1) {\
-                               s_one++;\
-                               s_val |= 0x80;\
-                       } else {\
-                               s_one = 0;\
-                               s_val &= 0x7f;\
-                       }\
-                       if (bitcnt==8) {\
-                               bcs->hw.tiger.sendbuf[s_cnt++] = s_val;\
-                               bitcnt = 0;\
-                       }\
-                       if (s_one == 5) {\
-                               s_val >>= 1;\
-                               s_val &= 0x7f;\
-                               bitcnt++;\
-                               s_one = 0;\
-                       }\
-                       if (bitcnt==8) {\
-                               bcs->hw.tiger.sendbuf[s_cnt++] = s_val;\
-                               bitcnt = 0;\
-                       }\
-                       val >>= 1;\
-               }
+#define MAKE_RAW_BYTE for (j = 0; j < 8; j++) {                        \
+               bitcnt++;                                       \
+               s_val >>= 1;                                    \
+               if (val & 1) {                                  \
+                       s_one++;                                \
+                       s_val |= 0x80;                          \
+               } else {                                        \
+                       s_one = 0;                              \
+                       s_val &= 0x7f;                          \
+               }                                               \
+               if (bitcnt == 8) {                              \
+                       bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
+                       bitcnt = 0;                             \
+               }                                               \
+               if (s_one == 5) {                               \
+                       s_val >>= 1;                            \
+                       s_val &= 0x7f;                          \
+                       bitcnt++;                               \
+                       s_one = 0;                              \
+               }                                               \
+               if (bitcnt == 8) {                              \
+                       bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
+                       bitcnt = 0;                             \
+               }                                               \
+               val >>= 1;                                      \
+       }
 
 static int make_raw_data(struct BCState *bcs) {
 // this make_raw is for 64k
-       register u_int i,s_cnt=0;
+       register u_int i, s_cnt = 0;
        register u_char j;
        register u_char val;
        register u_char s_one = 0;
        register u_char s_val = 0;
        register u_char bitcnt = 0;
        u_int fcs;
-       
+
        if (!bcs->tx_skb) {
                debugl1(bcs->cs, "tiger make_raw: NULL skb");
-               return(1);
+               return (1);
        }
        bcs->hw.tiger.sendbuf[s_cnt++] = HDLC_FLAG_VALUE;
        fcs = PPP_INITFCS;
-       for (i=0; i<bcs->tx_skb->len; i++) {
+       for (i = 0; i < bcs->tx_skb->len; i++) {
                val = bcs->tx_skb->data[i];
-               fcs = PPP_FCS (fcs, val);
+               fcs = PPP_FCS(fcs, val);
                MAKE_RAW_BYTE;
        }
        fcs ^= 0xffff;
        val = fcs & 0xff;
        MAKE_RAW_BYTE;
-       val = (fcs>>8) & 0xff;
+       val = (fcs >> 8) & 0xff;
        MAKE_RAW_BYTE;
        val = HDLC_FLAG_VALUE;
-       for (j=0; j<8; j++) { 
+       for (j = 0; j < 8; j++) {
                bitcnt++;
                s_val >>= 1;
                if (val & 1)
                        s_val |= 0x80;
                else
                        s_val &= 0x7f;
-               if (bitcnt==8) {
+               if (bitcnt == 8) {
                        bcs->hw.tiger.sendbuf[s_cnt++] = s_val;
                        bitcnt = 0;
                }
                val >>= 1;
        }
        if (bcs->cs->debug & L1_DEB_HSCX)
-               debugl1(bcs->cs,"tiger make_raw: in %u out %d.%d",
+               debugl1(bcs->cs, "tiger make_raw: in %u out %d.%d",
                        bcs->tx_skb->len, s_cnt, bitcnt);
        if (bitcnt) {
-               while (8>bitcnt++) {
+               while (8 > bitcnt++) {
                        s_val >>= 1;
                        s_val |= 0x80;
                }
@@ -267,65 +267,65 @@ static int make_raw_data(struct BCState *bcs) {
        bcs->hw.tiger.sendcnt = s_cnt;
        bcs->tx_cnt -= bcs->tx_skb->len;
        bcs->hw.tiger.sp = bcs->hw.tiger.sendbuf;
-       return(0);
+       return (0);
 }
 
 // macro for 56k
 
-#define MAKE_RAW_BYTE_56K for (j=0; j<8; j++) { \
-                       bitcnt++;\
-                       s_val >>= 1;\
-                       if (val & 1) {\
-                               s_one++;\
-                               s_val |= 0x80;\
-                       } else {\
-                               s_one = 0;\
-                               s_val &= 0x7f;\
-                       }\
-                       if (bitcnt==7) {\
-                               s_val >>= 1;\
-                               s_val |= 0x80;\
-                               bcs->hw.tiger.sendbuf[s_cnt++] = s_val;\
-                               bitcnt = 0;\
-                       }\
-                       if (s_one == 5) {\
-                               s_val >>= 1;\
-                               s_val &= 0x7f;\
-                               bitcnt++;\
-                               s_one = 0;\
-                       }\
-                       if (bitcnt==7) {\
-                               s_val >>= 1;\
-                               s_val |= 0x80;\
-                               bcs->hw.tiger.sendbuf[s_cnt++] = s_val;\
-                               bitcnt = 0;\
-                       }\
-                       val >>= 1;\
-               }
+#define MAKE_RAW_BYTE_56K for (j = 0; j < 8; j++) {                    \
+               bitcnt++;                                       \
+               s_val >>= 1;                                    \
+               if (val & 1) {                                  \
+                       s_one++;                                \
+                       s_val |= 0x80;                          \
+               } else {                                        \
+                       s_one = 0;                              \
+                       s_val &= 0x7f;                          \
+               }                                               \
+               if (bitcnt == 7) {                              \
+                       s_val >>= 1;                            \
+                       s_val |= 0x80;                          \
+                       bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
+                       bitcnt = 0;                             \
+               }                                               \
+               if (s_one == 5) {                               \
+                       s_val >>= 1;                            \
+                       s_val &= 0x7f;                          \
+                       bitcnt++;                               \
+                       s_one = 0;                              \
+               }                                               \
+               if (bitcnt == 7) {                              \
+                       s_val >>= 1;                            \
+                       s_val |= 0x80;                          \
+                       bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
+                       bitcnt = 0;                             \
+               }                                               \
+               val >>= 1;                                      \
+       }
 
 static int make_raw_data_56k(struct BCState *bcs) {
 // this make_raw is for 56k
-       register u_int i,s_cnt=0;
+       register u_int i, s_cnt = 0;
        register u_char j;
        register u_char val;
        register u_char s_one = 0;
        register u_char s_val = 0;
        register u_char bitcnt = 0;
        u_int fcs;
-       
+
        if (!bcs->tx_skb) {
                debugl1(bcs->cs, "tiger make_raw_56k: NULL skb");
-               return(1);
+               return (1);
        }
        val = HDLC_FLAG_VALUE;
-       for (j=0; j<8; j++) { 
+       for (j = 0; j < 8; j++) {
                bitcnt++;
                s_val >>= 1;
                if (val & 1)
                        s_val |= 0x80;
                else
                        s_val &= 0x7f;
-               if (bitcnt==7) {
+               if (bitcnt == 7) {
                        s_val >>= 1;
                        s_val |= 0x80;
                        bcs->hw.tiger.sendbuf[s_cnt++] = s_val;
@@ -334,25 +334,25 @@ static int make_raw_data_56k(struct BCState *bcs) {
                val >>= 1;
        };
        fcs = PPP_INITFCS;
-       for (i=0; i<bcs->tx_skb->len; i++) {
+       for (i = 0; i < bcs->tx_skb->len; i++) {
                val = bcs->tx_skb->data[i];
-               fcs = PPP_FCS (fcs, val);
+               fcs = PPP_FCS(fcs, val);
                MAKE_RAW_BYTE_56K;
        }
        fcs ^= 0xffff;
        val = fcs & 0xff;
        MAKE_RAW_BYTE_56K;
-       val = (fcs>>8) & 0xff;
+       val = (fcs >> 8) & 0xff;
        MAKE_RAW_BYTE_56K;
        val = HDLC_FLAG_VALUE;
-       for (j=0; j<8; j++) { 
+       for (j = 0; j < 8; j++) {
                bitcnt++;
                s_val >>= 1;
                if (val & 1)
                        s_val |= 0x80;
                else
                        s_val &= 0x7f;
-               if (bitcnt==7) {
+               if (bitcnt == 7) {
                        s_val >>= 1;
                        s_val |= 0x80;
                        bcs->hw.tiger.sendbuf[s_cnt++] = s_val;
@@ -361,10 +361,10 @@ static int make_raw_data_56k(struct BCState *bcs) {
                val >>= 1;
        }
        if (bcs->cs->debug & L1_DEB_HSCX)
-               debugl1(bcs->cs,"tiger make_raw_56k: in %u out %d.%d",
+               debugl1(bcs->cs, "tiger make_raw_56k: in %u out %d.%d",
                        bcs->tx_skb->len, s_cnt, bitcnt);
        if (bitcnt) {
-               while (8>bitcnt++) {
+               while (8 > bitcnt++) {
                        s_val >>= 1;
                        s_val |= 0x80;
                }
@@ -374,12 +374,12 @@ static int make_raw_data_56k(struct BCState *bcs) {
        bcs->hw.tiger.sendcnt = s_cnt;
        bcs->tx_cnt -= bcs->tx_skb->len;
        bcs->hw.tiger.sp = bcs->hw.tiger.sendbuf;
-       return(0);
+       return (0);
 }
 
 static void got_frame(struct BCState *bcs, int count) {
        struct sk_buff *skb;
-               
+
        if (!(skb = dev_alloc_skb(count)))
                printk(KERN_WARNING "TIGER: receive out of memory\n");
        else {
@@ -388,18 +388,18 @@ static void got_frame(struct BCState *bcs, int count) {
        }
        test_and_set_bit(B_RCVBUFREADY, &bcs->event);
        schedule_work(&bcs->tqueue);
-       
+
        if (bcs->cs->debug & L1_DEB_RECEIVE_FRAME)
                printframe(bcs->cs, bcs->hw.tiger.rcvbuf, count, "rec");
 }
 
 
 
-static void read_raw(struct BCState *bcs, u_int *buf, int cnt){
+static void read_raw(struct BCState *bcs, u_int *buf, int cnt) {
        int i;
        register u_char j;
        register u_char val;
-       u_int  *pend = bcs->hw.tiger.rec +NETJET_DMA_RXSIZE -1;
+       u_int *pend = bcs->hw.tiger.rec + NETJET_DMA_RXSIZE - 1;
        register u_char state = bcs->hw.tiger.r_state;
        register u_char r_one = bcs->hw.tiger.r_one;
        register u_char r_val = bcs->hw.tiger.r_val;
@@ -408,7 +408,7 @@ static void read_raw(struct BCState *bcs, u_int *buf, int cnt){
        int bits;
        u_char mask;
 
-        if (bcs->mode == L1_MODE_HDLC) { // it's 64k
+       if (bcs->mode == L1_MODE_HDLC) { // it's 64k
                mask = 0xff;
                bits = 8;
        }
@@ -416,8 +416,8 @@ static void read_raw(struct BCState *bcs, u_int *buf, int cnt){
                mask = 0x7f;
                bits = 7;
        };
-       for (i=0;i<cnt;i++) {
-               val = bcs->channel ? ((*p>>8) & 0xff) : (*p & 0xff);
+       for (i = 0; i < cnt; i++) {
+               val = bcs->channel ? ((*p >> 8) & 0xff) : (*p & 0xff);
                p++;
                if (p > pend)
                        p = bcs->hw.tiger.rec;
@@ -428,137 +428,137 @@ static void read_raw(struct BCState *bcs, u_int *buf, int cnt){
                        r_one = 0;
                        continue;
                }
-               for (j=0;j<bits;j++) {
+               for (j = 0; j < bits; j++) {
                        if (state == HDLC_ZERO_SEARCH) {
                                if (val & 1) {
                                        r_one++;
                                } else {
-                                       r_one=0;
-                                       state= HDLC_FLAG_SEARCH;
+                                       r_one = 0;
+                                       state = HDLC_FLAG_SEARCH;
                                        if (bcs->cs->debug & L1_DEB_HSCX)
-                                               debugl1(bcs->cs,"tiger read_raw: zBit(%d,%d,%d) %x",
-                                                       bcs->hw.tiger.r_tot,i,j,val);
+                                               debugl1(bcs->cs, "tiger read_raw: zBit(%d,%d,%d) %x",
+                                                       bcs->hw.tiger.r_tot, i, j, val);
                                }
-                       } else if (state == HDLC_FLAG_SEARCH) { 
+                       } else if (state == HDLC_FLAG_SEARCH) {
                                if (val & 1) {
                                        r_one++;
-                                       if (r_one>6) {
-                                               state=HDLC_ZERO_SEARCH;
+                                       if (r_one > 6) {
+                                               state = HDLC_ZERO_SEARCH;
                                        }
                                } else {
-                                       if (r_one==6) {
-                                               bitcnt=0;
-                                               r_val=0;
-                                               state=HDLC_FLAG_FOUND;
+                                       if (r_one == 6) {
+                                               bitcnt = 0;
+                                               r_val = 0;
+                                               state = HDLC_FLAG_FOUND;
                                                if (bcs->cs->debug & L1_DEB_HSCX)
-                                                       debugl1(bcs->cs,"tiger read_raw: flag(%d,%d,%d) %x",
-                                                               bcs->hw.tiger.r_tot,i,j,val);
+                                                       debugl1(bcs->cs, "tiger read_raw: flag(%d,%d,%d) %x",
+                                                               bcs->hw.tiger.r_tot, i, j, val);
                                        }
-                                       r_one=0;
+                                       r_one = 0;
                                }
-                       } else if (state ==  HDLC_FLAG_FOUND) {
+                       } else if (state == HDLC_FLAG_FOUND) {
                                if (val & 1) {
                                        r_one++;
-                                       if (r_one>6) {
-                                               state=HDLC_ZERO_SEARCH;
+                                       if (r_one > 6) {
+                                               state = HDLC_ZERO_SEARCH;
                                        } else {
                                                r_val >>= 1;
                                                r_val |= 0x80;
                                                bitcnt++;
                                        }
                                } else {
-                                       if (r_one==6) {
-                                               bitcnt=0;
-                                               r_val=0;
-                                               r_one=0;
+                                       if (r_one == 6) {
+                                               bitcnt = 0;
+                                               r_val = 0;
+                                               r_one = 0;
                                                val >>= 1;
                                                continue;
-                                       } else if (r_one!=5) {
+                                       } else if (r_one != 5) {
                                                r_val >>= 1;
                                                r_val &= 0x7f;
                                                bitcnt++;
                                        }
-                                       r_one=0;        
+                                       r_one = 0;
                                }
                                if ((state != HDLC_ZERO_SEARCH) &&
-                                       !(bitcnt & 7)) {
-                                       state=HDLC_FRAME_FOUND;
+                                   !(bitcnt & 7)) {
+                                       state = HDLC_FRAME_FOUND;
                                        bcs->hw.tiger.r_fcs = PPP_INITFCS;
                                        bcs->hw.tiger.rcvbuf[0] = r_val;
-                                       bcs->hw.tiger.r_fcs = PPP_FCS (bcs->hw.tiger.r_fcs, r_val);
+                                       bcs->hw.tiger.r_fcs = PPP_FCS(bcs->hw.tiger.r_fcs, r_val);
                                        if (bcs->cs->debug & L1_DEB_HSCX)
-                                               debugl1(bcs->cs,"tiger read_raw: byte1(%d,%d,%d) rval %x val %x i %x",
-                                                       bcs->hw.tiger.r_tot,i,j,r_val,val,
+                                               debugl1(bcs->cs, "tiger read_raw: byte1(%d,%d,%d) rval %x val %x i %x",
+                                                       bcs->hw.tiger.r_tot, i, j, r_val, val,
                                                        bcs->cs->hw.njet.irqstat0);
                                }
                        } else if (state ==  HDLC_FRAME_FOUND) {
                                if (val & 1) {
                                        r_one++;
-                                       if (r_one>6) {
-                                               state=HDLC_ZERO_SEARCH;
-                                               bitcnt=0;
+                                       if (r_one > 6) {
+                                               state = HDLC_ZERO_SEARCH;
+                                               bitcnt = 0;
                                        } else {
                                                r_val >>= 1;
                                                r_val |= 0x80;
                                                bitcnt++;
                                        }
                                } else {
-                                       if (r_one==6) {
-                                               r_val=0; 
-                                               r_one=0;
+                                       if (r_one == 6) {
+                                               r_val = 0;
+                                               r_one = 0;
                                                bitcnt++;
                                                if (bitcnt & 7) {
                                                        debugl1(bcs->cs, "tiger: frame not byte aligned");
-                                                       state=HDLC_FLAG_SEARCH;
+                                                       state = HDLC_FLAG_SEARCH;
                                                        bcs->hw.tiger.r_err++;
 #ifdef ERROR_STATISTIC
                                                        bcs->err_inv++;
 #endif
                                                } else {
                                                        if (bcs->cs->debug & L1_DEB_HSCX)
-                                                               debugl1(bcs->cs,"tiger frame end(%d,%d): fcs(%x) i %x",
-                                                                       i,j,bcs->hw.tiger.r_fcs, bcs->cs->hw.njet.irqstat0);
+                                                               debugl1(bcs->cs, "tiger frame end(%d,%d): fcs(%x) i %x",
+                                                                       i, j, bcs->hw.tiger.r_fcs, bcs->cs->hw.njet.irqstat0);
                                                        if (bcs->hw.tiger.r_fcs == PPP_GOODFCS) {
-                                                               got_frame(bcs, (bitcnt>>3)-3);
+                                                               got_frame(bcs, (bitcnt >> 3) - 3);
                                                        } else {
                                                                if (bcs->cs->debug) {
                                                                        debugl1(bcs->cs, "tiger FCS error");
                                                                        printframe(bcs->cs, bcs->hw.tiger.rcvbuf,
-                                                                               (bitcnt>>3)-1, "rec");
+                                                                                  (bitcnt >> 3) - 1, "rec");
                                                                        bcs->hw.tiger.r_err++;
                                                                }
 #ifdef ERROR_STATISTIC
-                                                       bcs->err_crc++;
+                                                               bcs->err_crc++;
 #endif
                                                        }
-                                                       state=HDLC_FLAG_FOUND;
+                                                       state = HDLC_FLAG_FOUND;
                                                }
-                                               bitcnt=0;
-                                       } else if (r_one==5) {
+                                               bitcnt = 0;
+                                       } else if (r_one == 5) {
                                                val >>= 1;
-                                               r_one=0;
+                                               r_one = 0;
                                                continue;
                                        } else {
                                                r_val >>= 1;
                                                r_val &= 0x7f;
                                                bitcnt++;
                                        }
-                                       r_one=0;        
+                                       r_one = 0;
                                }
                                if ((state == HDLC_FRAME_FOUND) &&
-                                       !(bitcnt & 7)) {
-                                       if ((bitcnt>>3)>=HSCX_BUFMAX) {
+                                   !(bitcnt & 7)) {
+                                       if ((bitcnt >> 3) >= HSCX_BUFMAX) {
                                                debugl1(bcs->cs, "tiger: frame too big");
-                                               r_val=0; 
-                                               state=HDLC_FLAG_SEARCH;
+                                               r_val = 0;
+                                               state = HDLC_FLAG_SEARCH;
                                                bcs->hw.tiger.r_err++;
 #ifdef ERROR_STATISTIC
                                                bcs->err_inv++;
 #endif
                                        } else {
-                                               bcs->hw.tiger.rcvbuf[(bitcnt>>3)-1] = r_val;
-                                               bcs->hw.tiger.r_fcs = 
-                                                       PPP_FCS (bcs->hw.tiger.r_fcs, r_val);
+                                               bcs->hw.tiger.rcvbuf[(bitcnt >> 3) - 1] = r_val;
+                                               bcs->hw.tiger.r_fcs =
+                                                       PPP_FCS(bcs->hw.tiger.r_fcs, r_val);
                                        }
                                }
                        }
@@ -574,10 +574,10 @@ static void read_raw(struct BCState *bcs, u_int *buf, int cnt){
 
 void read_tiger(struct IsdnCardState *cs) {
        u_int *p;
-       int cnt = NETJET_DMA_RXSIZE/2;
-       
+       int cnt = NETJET_DMA_RXSIZE / 2;
+
        if ((cs->hw.njet.irqstat0 & cs->hw.njet.last_is0) & NETJET_IRQM0_READ) {
-               debugl1(cs,"tiger warn read double dma %x/%x",
+               debugl1(cs, "tiger warn read double dma %x/%x",
                        cs->hw.njet.irqstat0, cs->hw.njet.last_is0);
 #ifdef ERROR_STATISTIC
                if (cs->bcs[0].mode)
@@ -589,7 +589,7 @@ void read_tiger(struct IsdnCardState *cs) {
        } else {
                cs->hw.njet.last_is0 &= ~NETJET_IRQM0_READ;
                cs->hw.njet.last_is0 |= (cs->hw.njet.irqstat0 & NETJET_IRQM0_READ);
-       }       
+       }
        if (cs->hw.njet.irqstat0 & NETJET_IRQM0_READ_1)
                p = cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1;
        else
@@ -612,20 +612,20 @@ void netjet_fill_dma(struct BCState *bcs)
        if (!bcs->tx_skb)
                return;
        if (bcs->cs->debug & L1_DEB_HSCX)
-               debugl1(bcs->cs,"tiger fill_dma1: c%d %4lx", bcs->channel,
+               debugl1(bcs->cs, "tiger fill_dma1: c%d %4lx", bcs->channel,
                        bcs->Flag);
        if (test_and_set_bit(BC_FLG_BUSY, &bcs->Flag))
                return;
        if (bcs->mode == L1_MODE_HDLC) { // it's 64k
                if (make_raw_data(bcs))
-                       return;         
+                       return;
        }
        else { // it's 56k
                if (make_raw_data_56k(bcs))
-                       return;         
+                       return;
        };
        if (bcs->cs->debug & L1_DEB_HSCX)
-               debugl1(bcs->cs,"tiger fill_dma2: c%d %4lx", bcs->channel,
+               debugl1(bcs->cs, "tiger fill_dma2: c%d %4lx", bcs->channel,
                        bcs->Flag);
        if (test_and_clear_bit(BC_FLG_NOFRAME, &bcs->Flag)) {
                write_raw(bcs, bcs->hw.tiger.sendp, bcs->hw.tiger.free);
@@ -633,11 +633,11 @@ void netjet_fill_dma(struct BCState *bcs)
                p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR));
                sp = bcs->hw.tiger.sendp;
                if (p == bcs->hw.tiger.s_end)
-                       p = bcs->hw.tiger.send -1;
+                       p = bcs->hw.tiger.send - 1;
                if (sp == bcs->hw.tiger.s_end)
-                       sp = bcs->hw.tiger.send -1;
+                       sp = bcs->hw.tiger.send - 1;
                cnt = p - sp;
-               if (cnt <0) {
+               if (cnt < 0) {
                        write_raw(bcs, bcs->hw.tiger.sendp, bcs->hw.tiger.free);
                } else {
                        p++;
@@ -655,30 +655,30 @@ void netjet_fill_dma(struct BCState *bcs)
                cnt = bcs->hw.tiger.s_end - p;
                if (cnt < 2) {
                        p = bcs->hw.tiger.send + 1;
-                       cnt = NETJET_DMA_TXSIZE/2 - 2;
+                       cnt = NETJET_DMA_TXSIZE / 2 - 2;
                } else {
                        p++;
                        p++;
-                       if (cnt <= (NETJET_DMA_TXSIZE/2))
-                               cnt += NETJET_DMA_TXSIZE/2;
+                       if (cnt <= (NETJET_DMA_TXSIZE / 2))
+                               cnt += NETJET_DMA_TXSIZE / 2;
                        cnt--;
                        cnt--;
                }
                write_raw(bcs, p, cnt);
        }
        if (bcs->cs->debug & L1_DEB_HSCX)
-               debugl1(bcs->cs,"tiger fill_dma3: c%d %4lx", bcs->channel,
+               debugl1(bcs->cs, "tiger fill_dma3: c%d %4lx", bcs->channel,
                        bcs->Flag);
 }
 
 static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
-       u_int mask, val, *p=buf;
+       u_int mask, val, *p = buf;
        u_int i, s_cnt;
-        
-        if (cnt <= 0)
-               return;
+
+       if (cnt <= 0)
+               return;
        if (test_bit(BC_FLG_BUSY, &bcs->Flag)) {
-               if (bcs->hw.tiger.sendcnt> cnt) {
+               if (bcs->hw.tiger.sendcnt > cnt) {
                        s_cnt = cnt;
                        bcs->hw.tiger.sendcnt -= cnt;
                } else {
@@ -689,17 +689,17 @@ static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
                        mask = 0xffff00ff;
                else
                        mask = 0xffffff00;
-               for (i=0; i<s_cnt; i++) {
-                       val = bcs->channel ? ((bcs->hw.tiger.sp[i] <<8) & 0xff00) :
+               for (i = 0; i < s_cnt; i++) {
+                       val = bcs->channel ? ((bcs->hw.tiger.sp[i] << 8) & 0xff00) :
                                (bcs->hw.tiger.sp[i]);
-                       *p   &= mask;
+                       *p &= mask;
                        *p++ |= val;
-                       if (p>bcs->hw.tiger.s_end)
+                       if (p > bcs->hw.tiger.s_end)
                                p = bcs->hw.tiger.send;
                }
                bcs->hw.tiger.s_tot += s_cnt;
                if (bcs->cs->debug & L1_DEB_HSCX)
-                       debugl1(bcs->cs,"tiger write_raw: c%d %p-%p %d/%d %d %x", bcs->channel,
+                       debugl1(bcs->cs, "tiger write_raw: c%d %p-%p %d/%d %d %x", bcs->channel,
                                buf, p, s_cnt, cnt,
                                bcs->hw.tiger.sendcnt, bcs->cs->hw.njet.irqstat0);
                if (bcs->cs->debug & L1_DEB_HSCX_FIFO)
@@ -708,10 +708,10 @@ static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
                bcs->hw.tiger.sendp = p;
                if (!bcs->hw.tiger.sendcnt) {
                        if (!bcs->tx_skb) {
-                               debugl1(bcs->cs,"tiger write_raw: NULL skb s_cnt %d", s_cnt);
+                               debugl1(bcs->cs, "tiger write_raw: NULL skb s_cnt %d", s_cnt);
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
                                        u_long  flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->tx_skb->len;
@@ -723,7 +723,7 @@ static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
                        }
                        test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
                        bcs->hw.tiger.free = cnt - s_cnt;
-                       if (bcs->hw.tiger.free > (NETJET_DMA_TXSIZE/2))
+                       if (bcs->hw.tiger.free > (NETJET_DMA_TXSIZE / 2))
                                test_and_set_bit(BC_FLG_HALF, &bcs->Flag);
                        else {
                                test_and_clear_bit(BC_FLG_HALF, &bcs->Flag);
@@ -734,9 +734,9 @@ static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
                        } else {
                                mask ^= 0xffffffff;
                                if (s_cnt < cnt) {
-                                       for (i=s_cnt; i<cnt;i++) {
+                                       for (i = s_cnt; i < cnt; i++) {
                                                *p++ |= mask;
-                                               if (p>bcs->hw.tiger.s_end)
+                                               if (p > bcs->hw.tiger.s_end)
                                                        p = bcs->hw.tiger.send;
                                        }
                                        if (bcs->cs->debug & L1_DEB_HSCX)
@@ -752,20 +752,20 @@ static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
                fill_mem(bcs, buf, cnt, bcs->channel, 0xff);
                bcs->hw.tiger.free += cnt;
                if (bcs->cs->debug & L1_DEB_HSCX)
-                       debugl1(bcs->cs,"tiger write_raw: fill half");
+                       debugl1(bcs->cs, "tiger write_raw: fill half");
        } else if (test_and_clear_bit(BC_FLG_HALF, &bcs->Flag)) {
                test_and_set_bit(BC_FLG_EMPTY, &bcs->Flag);
                fill_mem(bcs, buf, cnt, bcs->channel, 0xff);
                if (bcs->cs->debug & L1_DEB_HSCX)
-                       debugl1(bcs->cs,"tiger write_raw: fill full");
+                       debugl1(bcs->cs, "tiger write_raw: fill full");
        }
 }
 
 void write_tiger(struct IsdnCardState *cs) {
-       u_int *p, cnt = NETJET_DMA_TXSIZE/2;
-       
+       u_int *p, cnt = NETJET_DMA_TXSIZE / 2;
+
        if ((cs->hw.njet.irqstat0 & cs->hw.njet.last_is0) & NETJET_IRQM0_WRITE) {
-               debugl1(cs,"tiger warn write double dma %x/%x",
+               debugl1(cs, "tiger warn write double dma %x/%x",
                        cs->hw.njet.irqstat0, cs->hw.njet.last_is0);
 #ifdef ERROR_STATISTIC
                if (cs->bcs[0].mode)
@@ -777,7 +777,7 @@ void write_tiger(struct IsdnCardState *cs) {
        } else {
                cs->hw.njet.last_is0 &= ~NETJET_IRQM0_WRITE;
                cs->hw.njet.last_is0 |= (cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE);
-       }       
+       }
        if (cs->hw.njet.irqstat0  & NETJET_IRQM0_WRITE_1)
                p = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1;
        else
@@ -797,55 +797,55 @@ tiger_l2l1(struct PStack *st, int pr, void *arg)
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "tiger_l2l1: this shouldn't happen\n");
-                       } else {
-                               bcs->tx_skb = skb;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       mode_tiger(bcs, st->l1.mode, st->l1.bc);
-                       /* 2001/10/04 Christoph Ersfeld, Formula-n Europe AG */
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       bcs->cs->cardmsg(bcs->cs, MDL_BC_ASSIGN, (void *)(&st->l1.bc));
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       /* 2001/10/04 Christoph Ersfeld, Formula-n Europe AG */
-                       bcs->cs->cardmsg(bcs->cs, MDL_BC_RELEASE, (void *)(&st->l1.bc));
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       mode_tiger(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
-                       break;
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
+                       bcs->tx_skb = skb;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "tiger_l2l1: this shouldn't happen\n");
+               } else {
+                       bcs->tx_skb = skb;
+                       bcs->cs->BC_Send_Data(bcs);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               mode_tiger(bcs, st->l1.mode, st->l1.bc);
+               /* 2001/10/04 Christoph Ersfeld, Formula-n Europe AG */
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               bcs->cs->cardmsg(bcs->cs, MDL_BC_ASSIGN, (void *)(&st->l1.bc));
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               /* 2001/10/04 Christoph Ersfeld, Formula-n Europe AG */
+               bcs->cs->cardmsg(bcs->cs, MDL_BC_RELEASE, (void *)(&st->l1.bc));
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               mode_tiger(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -908,33 +908,33 @@ setstack_tiger(struct PStack *st, struct BCState *bcs)
        return (0);
 }
 
+
 void
 inittiger(struct IsdnCardState *cs)
 {
        if (!(cs->bcs[0].hw.tiger.send = kmalloc(NETJET_DMA_TXSIZE * sizeof(unsigned int),
-               GFP_KERNEL | GFP_DMA))) {
+                                                GFP_KERNEL | GFP_DMA))) {
                printk(KERN_WARNING
                       "HiSax: No memory for tiger.send\n");
                return;
        }
-       cs->bcs[0].hw.tiger.s_irq = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE/2 - 1;
+       cs->bcs[0].hw.tiger.s_irq = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE / 2 - 1;
        cs->bcs[0].hw.tiger.s_end = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1;
        cs->bcs[1].hw.tiger.send = cs->bcs[0].hw.tiger.send;
        cs->bcs[1].hw.tiger.s_irq = cs->bcs[0].hw.tiger.s_irq;
        cs->bcs[1].hw.tiger.s_end = cs->bcs[0].hw.tiger.s_end;
-       
+
        memset(cs->bcs[0].hw.tiger.send, 0xff, NETJET_DMA_TXSIZE * sizeof(unsigned int));
        debugl1(cs, "tiger: send buf %p - %p", cs->bcs[0].hw.tiger.send,
                cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1);
        outl(virt_to_bus(cs->bcs[0].hw.tiger.send),
-               cs->hw.njet.base + NETJET_DMA_READ_START);
+            cs->hw.njet.base + NETJET_DMA_READ_START);
        outl(virt_to_bus(cs->bcs[0].hw.tiger.s_irq),
-               cs->hw.njet.base + NETJET_DMA_READ_IRQ);
+            cs->hw.njet.base + NETJET_DMA_READ_IRQ);
        outl(virt_to_bus(cs->bcs[0].hw.tiger.s_end),
-               cs->hw.njet.base + NETJET_DMA_READ_END);
+            cs->hw.njet.base + NETJET_DMA_READ_END);
        if (!(cs->bcs[0].hw.tiger.rec = kmalloc(NETJET_DMA_RXSIZE * sizeof(unsigned int),
-               GFP_KERNEL | GFP_DMA))) {
+                                               GFP_KERNEL | GFP_DMA))) {
                printk(KERN_WARNING
                       "HiSax: No memory for tiger.rec\n");
                return;
@@ -944,11 +944,11 @@ inittiger(struct IsdnCardState *cs)
        cs->bcs[1].hw.tiger.rec = cs->bcs[0].hw.tiger.rec;
        memset(cs->bcs[0].hw.tiger.rec, 0xff, NETJET_DMA_RXSIZE * sizeof(unsigned int));
        outl(virt_to_bus(cs->bcs[0].hw.tiger.rec),
-               cs->hw.njet.base + NETJET_DMA_WRITE_START);
-       outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE/2 - 1),
-               cs->hw.njet.base + NETJET_DMA_WRITE_IRQ);
+            cs->hw.njet.base + NETJET_DMA_WRITE_START);
+       outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE / 2 - 1),
+            cs->hw.njet.base + NETJET_DMA_WRITE_IRQ);
        outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1),
-               cs->hw.njet.base + NETJET_DMA_WRITE_END);
+            cs->hw.njet.base + NETJET_DMA_WRITE_END);
        debugl1(cs, "tiger: dmacfg  %x/%x  pulse=%d",
                inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR),
                inl(cs->hw.njet.base + NETJET_DMA_READ_ADR),
@@ -979,4 +979,3 @@ release_io_netjet(struct IsdnCardState *cs)
        releasetiger(cs);
        release_region(cs->hw.njet.base, 256);
 }
-
index 68e504d..70590d5 100644 (file)
@@ -6,13 +6,13 @@
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
  *              by Matt Henderson,
  *                 Traverse Technologies P/L www.traverse.com.au
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define NETJET_CTRL    0x00
@@ -67,4 +67,3 @@ void netjet_fill_dma(struct BCState *bcs);
 void netjet_interrupt(int intno, void *dev_id);
 void inittiger(struct IsdnCardState *cs);
 void release_io_netjet(struct IsdnCardState *cs);
-
index ccaa6e1..6569e03 100644 (file)
@@ -5,10 +5,10 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
- * 
+ *
  * Thanks to Dr. Neuhaus and SAGEM for information
  *
  */
@@ -23,7 +23,7 @@
 
 static const char *niccy_revision = "$Revision: 1.21.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define ISAC_PCI_DATA  0
@@ -53,21 +53,21 @@ static inline u_char readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void readfifo(unsigned int ale, unsigned int adr, u_char off,
-               u_char *data, int size)
+                           u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
 }
 
 static inline void writereg(unsigned int ale, unsigned int adr, u_char off,
-               u_char data)
+                           u_char data)
 {
        byteout(ale, off);
        byteout(adr, data);
 }
 
 static inline void writefifo(unsigned int ale, unsigned int adr, u_char off,
-               u_char *data, int size)
+                            u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -85,12 +85,12 @@ static void WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
        writereg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, offset, value);
 }
 
-static void ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+static void ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, 0, data, size);
 }
 
-static void WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+static void WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, 0, data, size);
 }
@@ -98,26 +98,26 @@ static void WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
 static u_char ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset)
 {
        return readreg(cs->hw.niccy.hscx_ale,
-                       cs->hw.niccy.hscx, offset + (hscx ? 0x40 : 0));
+                      cs->hw.niccy.hscx, offset + (hscx ? 0x40 : 0));
 }
 
 static void WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset,
-               u_char value)
+                     u_char value)
 {
        writereg(cs->hw.niccy.hscx_ale,
                 cs->hw.niccy.hscx, offset + (hscx ? 0x40 : 0), value);
 }
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.niccy.hscx_ale, \
-               cs->hw.niccy.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.niccy.hscx_ale, \
-               cs->hw.niccy.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.niccy.hscx_ale,           \
+                                     cs->hw.niccy.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.niccy.hscx_ale,   \
+                                             cs->hw.niccy.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.niccy.hscx_ale, \
-               cs->hw.niccy.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.niccy.hscx_ale, \
+                                               cs->hw.niccy.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.niccy.hscx_ale, \
-               cs->hw.niccy.hscx, (nr ? 0x40 : 0), ptr, cnt)
+                                                 cs->hw.niccy.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -138,7 +138,7 @@ static irqreturn_t niccy_interrupt(int intno, void *dev_id)
                outl(ival, cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG);
        }
        val = readreg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx,
-                       HSCX_ISTA + 0x40);
+                     HSCX_ISTA + 0x40);
 Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
@@ -147,7 +147,7 @@ Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx,
-                       HSCX_ISTA + 0x40);
+                     HSCX_ISTA + 0x40);
        if (val) {
                if (cs->debug & L1_DEB_HSCX)
                        debugl1(cs, "HSCX IntStat after IntRoutine");
@@ -165,7 +165,7 @@ Start_ISAC:
        writereg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, ISAC_MASK, 0xFF);
        writereg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, ISAC_MASK, 0);
        writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK, 0);
-       writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK + 0x40,0);
+       writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK + 0x40, 0);
        spin_unlock_irqrestore(&cs->lock, flags);
        return IRQ_HANDLED;
 }
@@ -241,32 +241,32 @@ int __devinit setup_niccy(struct IsdnCard *card)
                int err;
 
                pnp_c = pnp_find_card(ISAPNP_VENDOR('S', 'D', 'A'),
-                               ISAPNP_FUNCTION(0x0150), pnp_c);
+                                     ISAPNP_FUNCTION(0x0150), pnp_c);
                if (pnp_c) {
                        pnp_d = pnp_find_dev(pnp_c,
-                                       ISAPNP_VENDOR('S', 'D', 'A'),
-                                       ISAPNP_FUNCTION(0x0150), pnp_d);
+                                            ISAPNP_VENDOR('S', 'D', 'A'),
+                                            ISAPNP_FUNCTION(0x0150), pnp_d);
                        if (!pnp_d) {
                                printk(KERN_ERR "NiccyPnP: PnP error card "
-                                       "found, no device\n");
+                                      "found, no device\n");
                                return 0;
                        }
                        pnp_disable_dev(pnp_d);
                        err = pnp_activate_dev(pnp_d);
                        if (err < 0) {
                                printk(KERN_WARNING "%s: pnp_activate_dev "
-                                       "ret(%d)\n", __func__, err);
+                                      "ret(%d)\n", __func__, err);
                                return 0;
                        }
                        card->para[1] = pnp_port_start(pnp_d, 0);
                        card->para[2] = pnp_port_start(pnp_d, 1);
                        card->para[0] = pnp_irq(pnp_d, 0);
                        if (!card->para[0] || !card->para[1] ||
-                                       !card->para[2]) {
+                           !card->para[2]) {
                                printk(KERN_ERR "NiccyPnP:some resources are "
-                                       "missing %ld/%lx/%lx\n",
-                                       card->para[0], card->para[1],
-                                       card->para[2]);
+                                      "missing %ld/%lx/%lx\n",
+                                      card->para[0], card->para[1],
+                                      card->para[2]);
                                pnp_disable_dev(pnp_d);
                                return 0;
                        }
@@ -284,15 +284,15 @@ int __devinit setup_niccy(struct IsdnCard *card)
                cs->irq = card->para[0];
                if (!request_region(cs->hw.niccy.isac, 2, "niccy data")) {
                        printk(KERN_WARNING "HiSax: NICCY data port %x-%x "
-                               "already in use\n",
-                               cs->hw.niccy.isac, cs->hw.niccy.isac + 1);
+                              "already in use\n",
+                              cs->hw.niccy.isac, cs->hw.niccy.isac + 1);
                        return 0;
                }
                if (!request_region(cs->hw.niccy.isac_ale, 2, "niccy addr")) {
                        printk(KERN_WARNING "HiSax: NICCY address port %x-%x "
-                               "already in use\n",
-                               cs->hw.niccy.isac_ale,
-                               cs->hw.niccy.isac_ale + 1);
+                              "already in use\n",
+                              cs->hw.niccy.isac_ale,
+                              cs->hw.niccy.isac_ale + 1);
                        release_region(cs->hw.niccy.isac, 2);
                        return 0;
                }
@@ -303,8 +303,8 @@ int __devinit setup_niccy(struct IsdnCard *card)
                u_int pci_ioaddr;
                cs->subtyp = 0;
                if ((niccy_dev = hisax_find_pci_device(PCI_VENDOR_ID_SATSAGEM,
-                                                PCI_DEVICE_ID_SATSAGEM_NICCY,
-                                                niccy_dev))) {
+                                                      PCI_DEVICE_ID_SATSAGEM_NICCY,
+                                                      niccy_dev))) {
                        if (pci_enable_device(niccy_dev))
                                return 0;
                        /* get IRQ */
@@ -357,8 +357,8 @@ int __devinit setup_niccy(struct IsdnCard *card)
 #endif                         /* CONFIG_PCI */
        }
        printk(KERN_INFO "HiSax: NICCY %s config irq:%d data:0x%X ale:0x%X\n",
-               (cs->subtyp == 1) ? "PnP" : "PCI",
-               cs->irq, cs->hw.niccy.isac, cs->hw.niccy.isac_ale);
+              (cs->subtyp == 1) ? "PnP" : "PCI",
+              cs->irq, cs->hw.niccy.isac, cs->hw.niccy.isac_ale);
        setup_isac(cs);
        cs->readisac = &ReadISAC;
        cs->writeisac = &WriteISAC;
@@ -372,7 +372,7 @@ int __devinit setup_niccy(struct IsdnCard *card)
        ISACVersion(cs, "Niccy:");
        if (HscxVersion(cs, "Niccy:")) {
                printk(KERN_WARNING "Niccy: wrong HSCX versions check IO "
-                       "address\n");
+                      "address\n");
                release_io_niccy(cs);
                return 0;
        }
index a1b8952..f36ff69 100644 (file)
@@ -18,7 +18,7 @@ static const char *NETjet_S_revision = "$Revision: 2.13.2.4 $";
 
 static u_char dummyrr(struct IsdnCardState *cs, int chan, u_char off)
 {
-       return(5);
+       return (5);
 }
 
 static void dummywr(struct IsdnCardState *cs, int chan, u_char off, u_char value)
@@ -46,48 +46,48 @@ netjet_s_interrupt(int intno, void *dev_id)
                s1val = 1;
        } else
                s1val = 0;
-       /* 
+       /*
         * read/write stat0 is better, because lower IRQ rate
         * Note the IRQ is on for 125 us if a condition match
         * thats long on modern CPU and so the IRQ is reentered
         * all the time.
         */
        s0val = bytein(cs->hw.njet.base + NETJET_IRQSTAT0);
-       if ((s0val | s1val)==0) { // shared IRQ
+       if ((s0val | s1val) == 0) { // shared IRQ
                spin_unlock_irqrestore(&cs->lock, flags);
                return IRQ_NONE;
-       } 
+       }
        if (s0val)
                byteout(cs->hw.njet.base + NETJET_IRQSTAT0, s0val);
        /* start new code 13/07/00 GE */
        /* set bits in sval to indicate which page is free */
        if (inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR) <
-               inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ))
+           inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ))
                /* the 2nd write page is free */
                s0val = 0x08;
        else    /* the 1st write page is free */
-               s0val = 0x04;   
+               s0val = 0x04;
        if (inl(cs->hw.njet.base + NETJET_DMA_READ_ADR) <
-               inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ))
+           inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ))
                /* the 2nd read page is free */
                s0val |= 0x02;
        else    /* the 1st read page is free */
-               s0val |= 0x01;  
+               s0val |= 0x01;
        if (s0val != cs->hw.njet.last_is0) /* we have a DMA interrupt */
        {
                if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
                        printk(KERN_WARNING "nj LOCK_ATOMIC s0val %x->%x\n",
-                               cs->hw.njet.last_is0, s0val);
+                              cs->hw.njet.last_is0, s0val);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        return IRQ_HANDLED;
                }
                cs->hw.njet.irqstat0 = s0val;
-               if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) != 
-                       (cs->hw.njet.last_is0 & NETJET_IRQM0_READ))
+               if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) !=
+                   (cs->hw.njet.last_is0 & NETJET_IRQM0_READ))
                        /* we have a read dma int */
                        read_tiger(cs);
                if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE) !=
-                       (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE))
+                   (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE))
                        /* we have a write dma int */
                        write_tiger(cs);
                /* end new code 13/07/00 GE */
@@ -124,28 +124,28 @@ NETjet_S_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_netjet_s(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_netjet(cs);
-                       return(0);
-               case CARD_INIT:
-                       reset_netjet_s(cs);
-                       inittiger(cs);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       clear_pending_isac_ints(cs);
-                       initisac(cs);
-                       /* Reenable all IRQ */
-                       cs->writeisac(cs, ISAC_MASK, 0);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_netjet_s(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_netjet(cs);
+               return (0);
+       case CARD_INIT:
+               reset_netjet_s(cs);
+               inittiger(cs);
+               spin_lock_irqsave(&cs->lock, flags);
+               clear_pending_isac_ints(cs);
+               initisac(cs);
+               /* Reenable all IRQ */
+               cs->writeisac(cs, ISAC_MASK, 0);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 static int __devinit njs_pci_probe(struct pci_dev *dev_netjet,
@@ -154,17 +154,17 @@ static int __devinit njs_pci_probe(struct pci_dev *dev_netjet,
        u32 cfg;
 
        if (pci_enable_device(dev_netjet))
-               return(0);
+               return (0);
        pci_set_master(dev_netjet);
        cs->irq = dev_netjet->irq;
        if (!cs->irq) {
                printk(KERN_WARNING "NETjet-S: No IRQ for PCI card found\n");
-               return(0);
+               return (0);
        }
        cs->hw.njet.base = pci_resource_start(dev_netjet, 0);
        if (!cs->hw.njet.base) {
                printk(KERN_WARNING "NETjet-S: No IO-Adr for PCI card found\n");
-               return(0);
+               return (0);
        }
        /* the TJ300 and TJ320 must be detected, the IRQ handling is different
         * unfortunately the chips use the same device ID, but the TJ320 has
@@ -177,14 +177,14 @@ static int __devinit njs_pci_probe(struct pci_dev *dev_netjet,
                cs->subtyp = 0; /* TJ300 */
        /* 2001/10/04 Christoph Ersfeld, Formula-n Europe AG www.formula-n.com */
        if ((dev_netjet->subsystem_vendor == 0x55) &&
-               (dev_netjet->subsystem_device == 0x02)) {
+           (dev_netjet->subsystem_device == 0x02)) {
                printk(KERN_WARNING "Netjet: You tried to load this driver with an incompatible TigerJet-card\n");
                printk(KERN_WARNING "Use type=41 for Formula-n enter:now ISDN PCI and compatible\n");
-               return(0);
+               return (0);
        }
        /* end new code */
 
-       return(1);
+       return (1);
 }
 
 static int __devinit njs_cs_init(struct IsdnCard *card,
@@ -209,18 +209,18 @@ static int __devinit njs_cs_init(struct IsdnCard *card,
        byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ);
        byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
 
-       switch ( ( ( NETjet_ReadIC( cs, ISAC_RBCH ) >> 5 ) & 3 ) )
+       switch (((NETjet_ReadIC(cs, ISAC_RBCH) >> 5) & 3))
        {
-               case 0 :
-                       return 1;       /* end loop */
+       case 0:
+               return 1;       /* end loop */
 
-               case 3 :
-                       printk( KERN_WARNING "NETjet-S: NETspider-U PCI card found\n" );
-                       return -1;      /* continue looping */
+       case 3:
+               printk(KERN_WARNING "NETjet-S: NETspider-U PCI card found\n");
+               return -1;      /* continue looping */
 
-               default :
-                       printk( KERN_WARNING "NETjet-S: No PCI card found\n" );
-                       return 0;       /* end loop & function */
+       default:
+               printk(KERN_WARNING "NETjet-S: No PCI card found\n");
+               return 0;       /* end loop & function */
        }
        return 1;                       /* end loop */
 }
@@ -231,8 +231,8 @@ static int __devinit njs_cs_init_rest(struct IsdnCard *card,
        const int bytecnt = 256;
 
        printk(KERN_INFO
-               "NETjet-S: %s card configured at %#lx IRQ %d\n",
-               cs->subtyp ? "TJ320" : "TJ300", cs->hw.njet.base, cs->irq);
+              "NETjet-S: %s card configured at %#lx IRQ %d\n",
+              cs->subtyp ? "TJ320" : "TJ300", cs->hw.njet.base, cs->irq);
        if (!request_region(cs->hw.njet.base, bytecnt, "netjet-s isdn")) {
                printk(KERN_WARNING
                       "HiSax: NETjet-S config port %#lx-%#lx already in use\n",
@@ -271,24 +271,24 @@ setup_netjet_s(struct IsdnCard *card)
        strcpy(tmp, NETjet_S_revision);
        printk(KERN_INFO "HiSax: Traverse Tech. NETjet-S driver Rev. %s\n", HiSax_getrev(tmp));
        if (cs->typ != ISDN_CTYPE_NETJET_S)
-               return(0);
+               return (0);
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
 
-       for ( ;; )
+       for (;;)
        {
                if ((dev_netjet = hisax_find_pci_device(PCI_VENDOR_ID_TIGERJET,
-                       PCI_DEVICE_ID_TIGERJET_300,  dev_netjet))) {
+                                                       PCI_DEVICE_ID_TIGERJET_300,  dev_netjet))) {
                        ret = njs_pci_probe(dev_netjet, cs);
                        if (!ret)
-                               return(0);
+                               return (0);
                } else {
                        printk(KERN_WARNING "NETjet-S: No PCI card found\n");
-                       return(0);
+                       return (0);
                }
 
                ret = njs_cs_init(card, cs);
                if (!ret)
-                       return(0);
+                       return (0);
                if (ret > 0)
                        break;
                /* otherwise, ret < 0, continue looping */
index 095e974..333484a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: nj_u.c,v 2.14.2.3 2004/01/13 14:31:26 keil Exp $ 
+/* $Id: nj_u.c,v 2.14.2.3 2004/01/13 14:31:26 keil Exp $
  *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
@@ -18,7 +18,7 @@ static const char *NETjet_U_revision = "$Revision: 2.14.2.3 $";
 
 static u_char dummyrr(struct IsdnCardState *cs, int chan, u_char off)
 {
-       return(5);
+       return (5);
 }
 
 static void dummywr(struct IsdnCardState *cs, int chan, u_char off, u_char value)
@@ -34,7 +34,7 @@ netjet_u_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        if (!((sval = bytein(cs->hw.njet.base + NETJET_IRQSTAT1)) &
-               NETJET_ISACIRQ)) {
+             NETJET_ISACIRQ)) {
                val = NETjet_ReadIC(cs, ICC_ISTA);
                if (cs->debug & L1_DEB_ISAC)
                        debugl1(cs, "tiger: i1 %x %x", sval, val);
@@ -47,17 +47,17 @@ netjet_u_interrupt(int intno, void *dev_id)
        /* start new code 13/07/00 GE */
        /* set bits in sval to indicate which page is free */
        if (inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR) <
-               inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ))
+           inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ))
                /* the 2nd write page is free */
                sval = 0x08;
        else    /* the 1st write page is free */
-               sval = 0x04;    
+               sval = 0x04;
        if (inl(cs->hw.njet.base + NETJET_DMA_READ_ADR) <
-               inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ))
+           inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ))
                /* the 2nd read page is free */
                sval = sval | 0x02;
        else    /* the 1st read page is free */
-               sval = sval | 0x01;     
+               sval = sval | 0x01;
        if (sval != cs->hw.njet.last_is0) /* we have a DMA interrupt */
        {
                if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) {
@@ -65,12 +65,12 @@ netjet_u_interrupt(int intno, void *dev_id)
                        return IRQ_HANDLED;
                }
                cs->hw.njet.irqstat0 = sval;
-               if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) != 
-                       (cs->hw.njet.last_is0 & NETJET_IRQM0_READ))
+               if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) !=
+                   (cs->hw.njet.last_is0 & NETJET_IRQM0_READ))
                        /* we have a read dma int */
                        read_tiger(cs);
                if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE) !=
-                       (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE))
+                   (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE))
                        /* we have a write dma int */
                        write_tiger(cs);
                /* end new code 13/07/00 GE */
@@ -104,45 +104,45 @@ NETjet_U_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_netjet_u(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_netjet(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inittiger(cs);
-                       reset_netjet_u(cs);
-                       clear_pending_icc_ints(cs);
-                       initicc(cs);
-                       /* Reenable all IRQ */
-                       cs->writeisac(cs, ICC_MASK, 0);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_netjet_u(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_netjet(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inittiger(cs);
+               reset_netjet_u(cs);
+               clear_pending_icc_ints(cs);
+               initicc(cs);
+               /* Reenable all IRQ */
+               cs->writeisac(cs, ICC_MASK, 0);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 static int __devinit nju_pci_probe(struct pci_dev *dev_netjet,
                                   struct IsdnCardState *cs)
 {
        if (pci_enable_device(dev_netjet))
-               return(0);
+               return (0);
        pci_set_master(dev_netjet);
        cs->irq = dev_netjet->irq;
        if (!cs->irq) {
                printk(KERN_WARNING "NETspider-U: No IRQ for PCI card found\n");
-               return(0);
+               return (0);
        }
        cs->hw.njet.base = pci_resource_start(dev_netjet, 0);
        if (!cs->hw.njet.base) {
                printk(KERN_WARNING "NETspider-U: No IO-Adr for PCI card found\n");
-               return(0);
+               return (0);
        }
 
        return (1);
@@ -171,18 +171,18 @@ static int __devinit nju_cs_init(struct IsdnCard *card,
        byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ);
        byteout(cs->hw.njet.auxa, cs->hw.njet.auxd);
 
-       switch ( ( ( NETjet_ReadIC( cs, ICC_RBCH ) >> 5 ) & 3 ) )
+       switch (((NETjet_ReadIC(cs, ICC_RBCH) >> 5) & 3))
        {
-               case 3 :
-                       return 1;       /* end loop */
+       case 3:
+               return 1;       /* end loop */
 
-               case 0 :
-                       printk( KERN_WARNING "NETspider-U: NETjet-S PCI card found\n" );
-                       return -1;      /* continue looping */
+       case 0:
+               printk(KERN_WARNING "NETspider-U: NETjet-S PCI card found\n");
+               return -1;      /* continue looping */
 
-               default :
-                       printk( KERN_WARNING "NETspider-U: No PCI card found\n" );
-                       return 0;       /* end loop & function */
+       default:
+               printk(KERN_WARNING "NETspider-U: No PCI card found\n");
+               return 0;       /* end loop & function */
        }
        return 1;                       /* end loop */
 }
@@ -193,8 +193,8 @@ static int __devinit nju_cs_init_rest(struct IsdnCard *card,
        const int bytecnt = 256;
 
        printk(KERN_INFO
-               "NETspider-U: PCI card configured at %#lx IRQ %d\n",
-               cs->hw.njet.base, cs->irq);
+              "NETspider-U: PCI card configured at %#lx IRQ %d\n",
+              cs->hw.njet.base, cs->irq);
        if (!request_region(cs->hw.njet.base, bytecnt, "netspider-u isdn")) {
                printk(KERN_WARNING
                       "HiSax: NETspider-U config port %#lx-%#lx "
@@ -235,19 +235,19 @@ setup_netjet_u(struct IsdnCard *card)
        strcpy(tmp, NETjet_U_revision);
        printk(KERN_INFO "HiSax: Traverse Tech. NETspider-U driver Rev. %s\n", HiSax_getrev(tmp));
        if (cs->typ != ISDN_CTYPE_NETJET_U)
-               return(0);
+               return (0);
        test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);
 
-       for ( ;; )
+       for (;;)
        {
                if ((dev_netjet = hisax_find_pci_device(PCI_VENDOR_ID_TIGERJET,
-                       PCI_DEVICE_ID_TIGERJET_300,  dev_netjet))) {
+                                                       PCI_DEVICE_ID_TIGERJET_300,  dev_netjet))) {
                        ret = nju_pci_probe(dev_netjet, cs);
                        if (!ret)
-                               return(0);
+                               return (0);
                } else {
                        printk(KERN_WARNING "NETspider-U: No PCI card found\n");
-                       return(0);
+                       return (0);
                }
 
                ret = nju_cs_init(card, cs);
index c0771f9..041bf52 100644 (file)
@@ -21,7 +21,7 @@
 #include "l3_1tr6.h"
 
 void
-iecpy(u_char * dest, u_char * iestart, int ieoffset)
+iecpy(u_char *dest, u_char *iestart, int ieoffset)
 {
        u_char *p;
        int l;
@@ -215,7 +215,7 @@ prbits(char *dest, u_char b, int start, int len)
 
 static
 u_char *
-skipext(u_char * p)
+skipext(u_char *p)
 {
        while (!(*p++ & 0x80));
        return (p);
@@ -442,7 +442,7 @@ struct CauseValue {
 
 static
 int
-prcause(char *dest, u_char * p)
+prcause(char *dest, u_char *p)
 {
        u_char *end;
        char *dp = dest;
@@ -519,7 +519,7 @@ struct MessageType cause_1tr6[] =
 static int cause_1tr6_len = ARRAY_SIZE(cause_1tr6);
 
 static int
-prcause_1tr6(char *dest, u_char * p)
+prcause_1tr6(char *dest, u_char *p)
 {
        char *dp = dest;
        int i, cause;
@@ -554,7 +554,7 @@ prcause_1tr6(char *dest, u_char * p)
 }
 
 static int
-prchident(char *dest, u_char * p)
+prchident(char *dest, u_char *p)
 {
        char *dp = dest;
 
@@ -566,7 +566,7 @@ prchident(char *dest, u_char * p)
 }
 
 static int
-prcalled(char *dest, u_char * p)
+prcalled(char *dest, u_char *p)
 {
        int l;
        char *dp = dest;
@@ -583,7 +583,7 @@ prcalled(char *dest, u_char * p)
        return (dp - dest);
 }
 static int
-prcalling(char *dest, u_char * p)
+prcalling(char *dest, u_char *p)
 {
        int l;
        char *dp = dest;
@@ -610,7 +610,7 @@ prcalling(char *dest, u_char * p)
 
 static
 int
-prbearer(char *dest, u_char * p)
+prbearer(char *dest, u_char *p)
 {
        char *dp = dest, ch;
 
@@ -658,7 +658,7 @@ prbearer(char *dest, u_char * p)
 
 static
 int
-prbearer_ni1(char *dest, u_char * p)
+prbearer_ni1(char *dest, u_char *p)
 {
        char *dp = dest;
        u_char len;
@@ -668,46 +668,46 @@ prbearer_ni1(char *dest, u_char * p)
        dp += sprintf(dp, "    octet 3  ");
        dp += prbits(dp, *p, 8, 8);
        switch (*p++) {
-               case 0x80:
-                       dp += sprintf(dp, " Speech");
-                       break;
-               case 0x88:
-                       dp += sprintf(dp, " Unrestricted digital information");
-                       break;
-               case 0x90:
-                       dp += sprintf(dp, " 3.1 kHz audio");
-                       break;
-               default:
-                       dp += sprintf(dp, " Unknown information-transfer capability");
+       case 0x80:
+               dp += sprintf(dp, " Speech");
+               break;
+       case 0x88:
+               dp += sprintf(dp, " Unrestricted digital information");
+               break;
+       case 0x90:
+               dp += sprintf(dp, " 3.1 kHz audio");
+               break;
+       default:
+               dp += sprintf(dp, " Unknown information-transfer capability");
        }
        *dp++ = '\n';
        dp += sprintf(dp, "    octet 4  ");
        dp += prbits(dp, *p, 8, 8);
        switch (*p++) {
-               case 0x90:
-                       dp += sprintf(dp, " 64 kbps, circuit mode");
-                       break;
-               case 0xc0:
-                       dp += sprintf(dp, " Packet mode");
-                       break;
-               default:
-                       dp += sprintf(dp, " Unknown transfer mode");
+       case 0x90:
+               dp += sprintf(dp, " 64 kbps, circuit mode");
+               break;
+       case 0xc0:
+               dp += sprintf(dp, " Packet mode");
+               break;
+       default:
+               dp += sprintf(dp, " Unknown transfer mode");
        }
        *dp++ = '\n';
        if (len > 2) {
                dp += sprintf(dp, "    octet 5  ");
                dp += prbits(dp, *p, 8, 8);
                switch (*p++) {
-                       case 0x21:
-                               dp += sprintf(dp, " Rate adaption\n");
-                               dp += sprintf(dp, "    octet 5a ");
-                               dp += prbits(dp, *p, 8, 8);
-                               break;
-                       case 0xa2:
-                               dp += sprintf(dp, " u-law");
-                               break;
-                       default:
-                               dp += sprintf(dp, " Unknown UI layer 1 protocol");
+               case 0x21:
+                       dp += sprintf(dp, " Rate adaption\n");
+                       dp += sprintf(dp, "    octet 5a ");
+                       dp += prbits(dp, *p, 8, 8);
+                       break;
+               case 0xa2:
+                       dp += sprintf(dp, " u-law");
+                       break;
+               default:
+                       dp += sprintf(dp, " Unknown UI layer 1 protocol");
                }
                *dp++ = '\n';
        }
@@ -715,7 +715,7 @@ prbearer_ni1(char *dest, u_char * p)
 }
 
 static int
-general(char *dest, u_char * p)
+general(char *dest, u_char *p)
 {
        char *dp = dest;
        char ch = ' ';
@@ -742,7 +742,7 @@ general(char *dest, u_char * p)
 }
 
 static int
-general_ni1(char *dest, u_char * p)
+general_ni1(char *dest, u_char *p)
 {
        char *dp = dest;
        char ch = ' ';
@@ -769,7 +769,7 @@ general_ni1(char *dest, u_char * p)
 }
 
 static int
-prcharge(char *dest, u_char * p)
+prcharge(char *dest, u_char *p)
 {
        char *dp = dest;
        int l;
@@ -786,7 +786,7 @@ prcharge(char *dest, u_char * p)
        return (dp - dest);
 }
 static int
-prtext(char *dest, u_char * p)
+prtext(char *dest, u_char *p)
 {
        char *dp = dest;
        int l;
@@ -802,7 +802,7 @@ prtext(char *dest, u_char * p)
 }
 
 static int
-prfeatureind(char *dest, u_char * p)
+prfeatureind(char *dest, u_char *p)
 {
        char *dp = dest;
 
@@ -817,21 +817,21 @@ prfeatureind(char *dest, u_char * p)
        }
        dp += sprintf(dp, "    Status:  ");
        switch (*p) {
-               case 0:
-                       dp += sprintf(dp, "Idle");
-                       break;
-               case 1:
-                       dp += sprintf(dp, "Active");
-                       break;
-               case 2:
-                       dp += sprintf(dp, "Prompt");
-                       break;
-               case 3:
-                       dp += sprintf(dp, "Pending");
-                       break;
-               default:
-                       dp += sprintf(dp, "(Reserved)");
-                       break;
+       case 0:
+               dp += sprintf(dp, "Idle");
+               break;
+       case 1:
+               dp += sprintf(dp, "Active");
+               break;
+       case 2:
+               dp += sprintf(dp, "Prompt");
+               break;
+       case 3:
+               dp += sprintf(dp, "Pending");
+               break;
+       default:
+               dp += sprintf(dp, "(Reserved)");
+               break;
        }
        *dp++ = '\n';
        return (dp - dest);
@@ -868,7 +868,7 @@ struct DTag { /* Display tags */
 #define DTAGSIZE ARRAY_SIZE(dtaglist)
 
 static int
-disptext_ni1(char *dest, u_char * p)
+disptext_ni1(char *dest, u_char *p)
 {
        char *dp = dest;
        int l, tag, len, i;
@@ -902,12 +902,12 @@ disptext_ni1(char *dest, u_char * p)
                                        *dp++ = *p++;
                        }
                        dp += sprintf(dp, "\n");
-                }
+               }
        }
        return (dp - dest);
 }
 static int
-display(char *dest, u_char * p)
+display(char *dest, u_char *p)
 {
        char *dp = dest;
        char ch = ' ';
@@ -936,7 +936,7 @@ display(char *dest, u_char * p)
 }
 
 static int
-prfacility(char *dest, u_char * p)
+prfacility(char *dest, u_char *p)
 {
        char *dp = dest;
        int l, l2;
@@ -1148,7 +1148,7 @@ static struct InformationElement we_6[] =
 #define WE_6_LEN ARRAY_SIZE(we_6)
 
 int
-QuickHex(char *txt, u_char * p, int cnt)
+QuickHex(char *txt, u_char *p, int cnt)
 {
        register int i;
        register char *t = txt;
@@ -1163,7 +1163,7 @@ QuickHex(char *txt, u_char * p, int cnt)
 }
 
 void
-LogFrame(struct IsdnCardState *cs, u_char * buf, int size)
+LogFrame(struct IsdnCardState *cs, u_char *buf, int size)
 {
        char *dp;
 
@@ -1206,7 +1206,7 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
        buf = skb->data;
        dp += sprintf(dp, "frame %s ", dir ? "network->user" : "user->network");
        size = skb->len;
-       
+
        if (tei == GROUP_TEI) {
                if (sapi == CTRL_SAPI) { /* sapi 0 */
                        if (ftyp == 3) {
@@ -1291,28 +1291,28 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
                        /* Is it a single octet information element? */
                        if (*buf & 0x80) {
                                switch ((*buf >> 4) & 7) {
-                                       case 1:
-                                               dp += sprintf(dp, "  Shift %x\n", *buf & 0xf);
-                                               cs_old = cset;
-                                               cset = *buf & 7;
-                                               cs_fest = *buf & 8;
-                                               break;
-                                       case 3:
-                                               dp += sprintf(dp, "  Congestion level %x\n", *buf & 0xf);
-                                               break;
-                                       case 2:
-                                               if (*buf == 0xa0) {
-                                                       dp += sprintf(dp, "  More data\n");
-                                                       break;
-                                               }
-                                               if (*buf == 0xa1) {
-                                                       dp += sprintf(dp, "  Sending complete\n");
-                                               }
-                                               break;
-                                               /* fall through */
-                                       default:
-                                               dp += sprintf(dp, "  Reserved %x\n", *buf);
+                               case 1:
+                                       dp += sprintf(dp, "  Shift %x\n", *buf & 0xf);
+                                       cs_old = cset;
+                                       cset = *buf & 7;
+                                       cs_fest = *buf & 8;
+                                       break;
+                               case 3:
+                                       dp += sprintf(dp, "  Congestion level %x\n", *buf & 0xf);
+                                       break;
+                               case 2:
+                                       if (*buf == 0xa0) {
+                                               dp += sprintf(dp, "  More data\n");
                                                break;
+                                       }
+                                       if (*buf == 0xa1) {
+                                               dp += sprintf(dp, "  Sending complete\n");
+                                       }
+                                       break;
+                                       /* fall through */
+                               default:
+                                       dp += sprintf(dp, "  Reserved %x\n", *buf);
+                                       break;
                                }
                                buf++;
                                continue;
@@ -1366,11 +1366,11 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
                /* display message type if it exists */
                if (i == MTSIZE)
                        dp += sprintf(dp, "callref %d %s size %d unknown message type %x!\n",
-                           cr & 0x7f, (cr & 0x80) ? "called" : "caller",
+                                     cr & 0x7f, (cr & 0x80) ? "called" : "caller",
                                      size, mt);
                else
                        dp += sprintf(dp, "callref %d %s size %d message type %s\n",
-                           cr & 0x7f, (cr & 0x80) ? "called" : "caller",
+                                     cr & 0x7f, (cr & 0x80) ? "called" : "caller",
                                      size, mtlist[i].descr);
 
                /* display each information element */
@@ -1378,15 +1378,15 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
                        /* Is it a single octet information element? */
                        if (*buf & 0x80) {
                                switch ((*buf >> 4) & 7) {
-                                       case 1:
-                                               dp += sprintf(dp, "  Shift %x\n", *buf & 0xf);
-                                               cs_old = cset;
-                                               cset = *buf & 7;
-                                               cs_fest = *buf & 8;
-                                               break;
-                                       default:
-                                               dp += sprintf(dp, "  Unknown single-octet IE %x\n", *buf);
-                                               break;
+                               case 1:
+                                       dp += sprintf(dp, "  Shift %x\n", *buf & 0xf);
+                                       cs_old = cset;
+                                       cset = *buf & 7;
+                                       cs_fest = *buf & 8;
+                                       break;
+                               default:
+                                       dp += sprintf(dp, "  Unknown single-octet IE %x\n", *buf);
+                                       break;
                                }
                                buf++;
                                continue;
@@ -1452,11 +1452,11 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
                /* display message type if it exists */
                if (i == MTSIZE)
                        dp += sprintf(dp, "callref %d %s size %d unknown message type %x!\n",
-                           cr & 0x7f, (cr & 0x80) ? "called" : "caller",
+                                     cr & 0x7f, (cr & 0x80) ? "called" : "caller",
                                      size, mt);
                else
                        dp += sprintf(dp, "callref %d %s size %d message type %s\n",
-                           cr & 0x7f, (cr & 0x80) ? "called" : "caller",
+                                     cr & 0x7f, (cr & 0x80) ? "called" : "caller",
                                      size, mtlist[i].descr);
 
                /* display each information element */
@@ -1464,28 +1464,28 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
                        /* Is it a single octet information element? */
                        if (*buf & 0x80) {
                                switch ((*buf >> 4) & 7) {
-                                       case 1:
-                                               dp += sprintf(dp, "  Shift %x\n", *buf & 0xf);
-                                               break;
-                                       case 3:
-                                               dp += sprintf(dp, "  Congestion level %x\n", *buf & 0xf);
-                                               break;
-                                       case 5:
-                                               dp += sprintf(dp, "  Repeat indicator %x\n", *buf & 0xf);
-                                               break;
-                                       case 2:
-                                               if (*buf == 0xa0) {
-                                                       dp += sprintf(dp, "  More data\n");
-                                                       break;
-                                               }
-                                               if (*buf == 0xa1) {
-                                                       dp += sprintf(dp, "  Sending complete\n");
-                                               }
-                                               break;
-                                               /* fall through */
-                                       default:
-                                               dp += sprintf(dp, "  Reserved %x\n", *buf);
+                               case 1:
+                                       dp += sprintf(dp, "  Shift %x\n", *buf & 0xf);
+                                       break;
+                               case 3:
+                                       dp += sprintf(dp, "  Congestion level %x\n", *buf & 0xf);
+                                       break;
+                               case 5:
+                                       dp += sprintf(dp, "  Repeat indicator %x\n", *buf & 0xf);
+                                       break;
+                               case 2:
+                                       if (*buf == 0xa0) {
+                                               dp += sprintf(dp, "  More data\n");
                                                break;
+                                       }
+                                       if (*buf == 0xa1) {
+                                               dp += sprintf(dp, "  Sending complete\n");
+                                       }
+                                       break;
+                                       /* fall through */
+                               default:
+                                       dp += sprintf(dp, "  Reserved %x\n", *buf);
+                                       break;
                                }
                                buf++;
                                continue;
index 16d00b5..383c4e7 100644 (file)
@@ -20,73 +20,73 @@ static const char *s0box_revision = "$Revision: 2.6.2.4 $";
 
 static inline void
 writereg(unsigned int padr, signed int addr, u_char off, u_char val) {
-       outb_p(0x1c,padr+2);
-       outb_p(0x14,padr+2);
-       outb_p((addr+off)&0x7f,padr);
-       outb_p(0x16,padr+2);
-       outb_p(val,padr);
-       outb_p(0x17,padr+2);
-       outb_p(0x14,padr+2);
-       outb_p(0x1c,padr+2);
+       outb_p(0x1c, padr + 2);
+       outb_p(0x14, padr + 2);
+       outb_p((addr + off) & 0x7f, padr);
+       outb_p(0x16, padr + 2);
+       outb_p(val, padr);
+       outb_p(0x17, padr + 2);
+       outb_p(0x14, padr + 2);
+       outb_p(0x1c, padr + 2);
 }
 
 static u_char nibtab[] = { 1, 9, 5, 0xd, 3, 0xb, 7, 0xf,
-                        0, 0, 0, 0, 0, 0, 0, 0,
-                        0, 8, 4, 0xc, 2, 0xa, 6, 0xe } ;
+                          0, 0, 0, 0, 0, 0, 0, 0,
+                          0, 8, 4, 0xc, 2, 0xa, 6, 0xe };
 
 static inline u_char
 readreg(unsigned int padr, signed int addr, u_char off) {
        register u_char n1, n2;
 
-       outb_p(0x1c,padr+2);
-       outb_p(0x14,padr+2);
-       outb_p((addr+off)|0x80,padr);
-       outb_p(0x16,padr+2);
-       outb_p(0x17,padr+2);
-       n1 = (inb_p(padr+1) >> 3) & 0x17;
-       outb_p(0x16,padr+2);
-       n2 = (inb_p(padr+1) >> 3) & 0x17;
-       outb_p(0x14,padr+2);
-       outb_p(0x1c,padr+2);
+       outb_p(0x1c, padr + 2);
+       outb_p(0x14, padr + 2);
+       outb_p((addr + off) | 0x80, padr);
+       outb_p(0x16, padr + 2);
+       outb_p(0x17, padr + 2);
+       n1 = (inb_p(padr + 1) >> 3) & 0x17;
+       outb_p(0x16, padr + 2);
+       n2 = (inb_p(padr + 1) >> 3) & 0x17;
+       outb_p(0x14, padr + 2);
+       outb_p(0x1c, padr + 2);
        return nibtab[n1] | (nibtab[n2] << 4);
 }
 
 static inline void
-read_fifo(unsigned int padr, signed int adr, u_char * data, int size)
+read_fifo(unsigned int padr, signed int adr, u_char *data, int size)
 {
        int i;
        register u_char n1, n2;
-       
-       outb_p(0x1c, padr+2);
-       outb_p(0x14, padr+2);
-       outb_p(adr|0x80, padr);
-       outb_p(0x16, padr+2);
-       for (i=0; i<size; i++) {
-               outb_p(0x17, padr+2);
-               n1 = (inb_p(padr+1) >> 3) & 0x17;
-               outb_p(0x16,padr+2);
-               n2 = (inb_p(padr+1) >> 3) & 0x17;
-               *(data++)=nibtab[n1] | (nibtab[n2] << 4);
+
+       outb_p(0x1c, padr + 2);
+       outb_p(0x14, padr + 2);
+       outb_p(adr | 0x80, padr);
+       outb_p(0x16, padr + 2);
+       for (i = 0; i < size; i++) {
+               outb_p(0x17, padr + 2);
+               n1 = (inb_p(padr + 1) >> 3) & 0x17;
+               outb_p(0x16, padr + 2);
+               n2 = (inb_p(padr + 1) >> 3) & 0x17;
+               *(data++) = nibtab[n1] | (nibtab[n2] << 4);
        }
-       outb_p(0x14,padr+2);
-       outb_p(0x1c,padr+2);
+       outb_p(0x14, padr + 2);
+       outb_p(0x1c, padr + 2);
        return;
 }
 
 static inline void
-write_fifo(unsigned int padr, signed int adr, u_char * data, int size)
+write_fifo(unsigned int padr, signed int adr, u_char *data, int size)
 {
        int i;
-       outb_p(0x1c, padr+2);
-       outb_p(0x14, padr+2);
-       outb_p(adr&0x7f, padr);
-       for (i=0; i<size; i++) {
-               outb_p(0x16, padr+2);
+       outb_p(0x1c, padr + 2);
+       outb_p(0x14, padr + 2);
+       outb_p(adr & 0x7f, padr);
+       for (i = 0; i < size; i++) {
+               outb_p(0x16, padr + 2);
                outb_p(*(data++), padr);
-               outb_p(0x17, padr+2);
+               outb_p(0x17, padr + 2);
        }
-       outb_p(0x14,padr+2);
-       outb_p(0x1c,padr+2);
+       outb_p(0x14, padr + 2);
+       outb_p(0x1c, padr + 2);
        return;
 }
 
@@ -105,13 +105,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        read_fifo(cs->hw.teles3.cfg_reg, cs->hw.teles3.isacfifo, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        write_fifo(cs->hw.teles3.cfg_reg, cs->hw.teles3.isacfifo, data, size);
 }
@@ -150,11 +150,11 @@ s0box_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.teles3.cfg_reg, cs->hw.teles3.hscx[1], HSCX_ISTA);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.teles3.cfg_reg, cs->hw.teles3.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        count++;
@@ -194,20 +194,20 @@ S0Box_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       break;
-               case CARD_RELEASE:
-                       release_io_s0box(cs);
-                       break;
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case CARD_TEST:
-                       break;
+       case CARD_RESET:
+               break;
+       case CARD_RELEASE:
+               release_io_s0box(cs);
+               break;
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case CARD_TEST:
+               break;
        }
-       return(0);
+       return (0);
 }
 
 int __devinit
@@ -229,17 +229,17 @@ setup_s0box(struct IsdnCard *card)
        cs->hw.teles3.hscxfifo[0] = cs->hw.teles3.hscx[0] + 0x3e;
        cs->hw.teles3.hscxfifo[1] = cs->hw.teles3.hscx[1] + 0x3e;
        cs->irq = card->para[0];
-       if (!request_region(cs->hw.teles3.cfg_reg,8, "S0Box parallel I/O")) {
+       if (!request_region(cs->hw.teles3.cfg_reg, 8, "S0Box parallel I/O")) {
                printk(KERN_WARNING "HiSax: S0Box ports %x-%x already in use\n",
-                       cs->hw.teles3.cfg_reg,
-                       cs->hw.teles3.cfg_reg + 7);
+                      cs->hw.teles3.cfg_reg,
+                      cs->hw.teles3.cfg_reg + 7);
                return 0;
        }
        printk(KERN_INFO "HiSax: S0Box config irq:%d isac:0x%x  cfg:0x%x\n",
-               cs->irq,
-               cs->hw.teles3.isac, cs->hw.teles3.cfg_reg);
+              cs->irq,
+              cs->hw.teles3.isac, cs->hw.teles3.cfg_reg);
        printk(KERN_INFO "HiSax: hscx A:0x%x  hscx B:0x%x\n",
-               cs->hw.teles3.hscx[0], cs->hw.teles3.hscx[1]);
+              cs->hw.teles3.hscx[0], cs->hw.teles3.hscx[1]);
        setup_isac(cs);
        cs->readisac = &ReadISAC;
        cs->writeisac = &WriteISAC;
index b34a81d..75dcae6 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -20,7 +20,7 @@
 
 static char *saphir_rev = "$Revision: 1.10.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define ISAC_DATA      0
@@ -41,7 +41,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -56,7 +56,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -77,13 +77,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.saphir.ale, cs->hw.saphir.isac, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.saphir.ale, cs->hw.saphir.isac, 0, data, size);
 }
@@ -92,26 +92,26 @@ static u_char
 ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset)
 {
        return (readreg(cs->hw.saphir.ale, cs->hw.saphir.hscx,
-               offset + (hscx ? 0x40 : 0)));
+                       offset + (hscx ? 0x40 : 0)));
 }
 
 static void
 WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
 {
        writereg(cs->hw.saphir.ale, cs->hw.saphir.hscx,
-               offset + (hscx ? 0x40 : 0), value);
+                offset + (hscx ? 0x40 : 0), value);
 }
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.saphir.ale, \
-               cs->hw.saphir.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.saphir.ale, \
-               cs->hw.saphir.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.saphir.ale,               \
+                                     cs->hw.saphir.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.saphir.ale,       \
+                                             cs->hw.saphir.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.saphir.ale, \
-               cs->hw.saphir.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.saphir.ale,     \
+                                               cs->hw.saphir.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.saphir.ale, \
-               cs->hw.saphir.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.saphir.ale,   \
+                                                 cs->hw.saphir.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -124,11 +124,11 @@ saphir_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.saphir.ale, cs->hw.saphir.hscx, HSCX_ISTA + 0x40);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.saphir.ale, cs->hw.saphir.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.saphir.ale, cs->hw.saphir.hscx, HSCX_ISTA + 0x40);
@@ -144,8 +144,8 @@ saphir_interrupt(int intno, void *dev_id)
                goto Start_ISAC;
        }
        /* Watchdog */
-       if (cs->hw.saphir.timer.function) 
-               mod_timer(&cs->hw.saphir.timer, jiffies+1*HZ);
+       if (cs->hw.saphir.timer.function)
+               mod_timer(&cs->hw.saphir.timer, jiffies + 1 * HZ);
        else
                printk(KERN_WARNING "saphir: Spurious timer!\n");
        writereg(cs->hw.saphir.ale, cs->hw.saphir.hscx, HSCX_MASK, 0xFF);
@@ -164,10 +164,10 @@ SaphirWatchDog(struct IsdnCardState *cs)
        u_long flags;
 
        spin_lock_irqsave(&cs->lock, flags);
-        /* 5 sec WatchDog, so read at least every 4 sec */
+       /* 5 sec WatchDog, so read at least every 4 sec */
        cs->readisac(cs, ISAC_RBCH);
        spin_unlock_irqrestore(&cs->lock, flags);
-       mod_timer(&cs->hw.saphir.timer, jiffies+1*HZ);
+       mod_timer(&cs->hw.saphir.timer, jiffies + 1 * HZ);
 }
 
 static void
@@ -185,24 +185,24 @@ saphir_reset(struct IsdnCardState *cs)
 {
        u_char irq_val;
 
-       switch(cs->irq) {
-               case 5: irq_val = 0;
-                       break;
-               case 3: irq_val = 1;
-                       break;
-               case 11:
-                       irq_val = 2;
-                       break;
-               case 12:
-                       irq_val = 3;
-                       break;
-               case 15:
-                       irq_val = 4;
-                       break;
-               default:
-                       printk(KERN_WARNING "HiSax: saphir wrong IRQ %d\n",
-                               cs->irq);
-                       return (1);
+       switch (cs->irq) {
+       case 5: irq_val = 0;
+               break;
+       case 3: irq_val = 1;
+               break;
+       case 11:
+               irq_val = 2;
+               break;
+       case 12:
+               irq_val = 3;
+               break;
+       case 15:
+               irq_val = 4;
+               break;
+       default:
+               printk(KERN_WARNING "HiSax: saphir wrong IRQ %d\n",
+                      cs->irq);
+               return (1);
        }
        byteout(cs->hw.saphir.cfg_reg + IRQ_REG, irq_val);
        byteout(cs->hw.saphir.cfg_reg + RESET_REG, 1);
@@ -220,23 +220,23 @@ saphir_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       saphir_reset(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_saphir(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               saphir_reset(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_saphir(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 
@@ -259,9 +259,9 @@ setup_saphir(struct IsdnCard *card)
        cs->irq = card->para[0];
        if (!request_region(cs->hw.saphir.cfg_reg, 6, "saphir")) {
                printk(KERN_WARNING
-                       "HiSax: HST Saphir config port %x-%x already in use\n",
-                       cs->hw.saphir.cfg_reg,
-                       cs->hw.saphir.cfg_reg + 5);
+                      "HiSax: HST Saphir config port %x-%x already in use\n",
+                      cs->hw.saphir.cfg_reg,
+                      cs->hw.saphir.cfg_reg + 5);
                return (0);
        }
 
@@ -272,7 +272,7 @@ setup_saphir(struct IsdnCard *card)
        cs->hw.saphir.timer.function = (void *) SaphirWatchDog;
        cs->hw.saphir.timer.data = (long) cs;
        init_timer(&cs->hw.saphir.timer);
-       cs->hw.saphir.timer.expires = jiffies + 4*HZ;
+       cs->hw.saphir.timer.expires = jiffies + 4 * HZ;
        add_timer(&cs->hw.saphir.timer);
        if (saphir_reset(cs)) {
                release_io_saphir(cs);
@@ -290,7 +290,7 @@ setup_saphir(struct IsdnCard *card)
        ISACVersion(cs, "saphir:");
        if (HscxVersion(cs, "saphir:")) {
                printk(KERN_WARNING
-                   "saphir: wrong HSCX versions check IO address\n");
+                      "saphir: wrong HSCX versions check IO address\n");
                release_io_saphir(cs);
                return (0);
        }
index 69dfc8d..1ee531b 100644 (file)
@@ -9,7 +9,7 @@
  *
  * Author       Marcus Niemann
  * Copyright    by Marcus Niemann    <niemann@www-bib.fh-bielefeld.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  * ISDN PC/104 IPAC            DIP-SWITCH
  * Speed Star2 IPAC            CARDMGR
  * Speed PCI   IPAC            PCI PNP
- * Speed Fax+  ISAC_ISAR       PCI PNP         Full analog support
+ * Speed Fax+  ISAC_ISAR       PCI PNP         Full analog support
  *
  * Important:
  * For the sedlbauer speed fax+ to work properly you have to download
  * the firmware onto the card.
  * For example: hisaxctrl <DriverID> 9 ISAR.BIN
-*/
+ */
 
 #include <linux/init.h>
 #include "hisax.h"
@@ -51,9 +51,9 @@
 static const char *Sedlbauer_revision = "$Revision: 1.34.2.6 $";
 
 static const char *Sedlbauer_Types[] =
-       {"None", "speed card/win", "speed star", "speed fax+",
      "speed win II / ISDN PC/104", "speed star II", "speed pci",
      "speed fax+ pyramid", "speed fax+ pci", "HST Saphir III"};
+{"None", "speed card/win", "speed star", "speed fax+",
+ "speed win II / ISDN PC/104", "speed star II", "speed pci",
+ "speed fax+ pyramid", "speed fax+ pci", "HST Saphir III"};
 
 #define PCI_SUBVENDOR_SPEEDFAX_PYRAMID 0x51
 #define PCI_SUBVENDOR_HST_SAPHIR3      0x52
@@ -62,11 +62,11 @@ static const char *Sedlbauer_Types[] =
 #define PCI_SUB_ID_SEDLBAUER           0x01
 
 #define SEDL_SPEED_CARD_WIN    1
-#define SEDL_SPEED_STAR        2
+#define SEDL_SPEED_STAR                2
 #define SEDL_SPEED_FAX         3
-#define SEDL_SPEED_WIN2_PC104  4
-#define SEDL_SPEED_STAR2       5
-#define SEDL_SPEED_PCI         6
+#define SEDL_SPEED_WIN2_PC104  4
+#define SEDL_SPEED_STAR2       5
+#define SEDL_SPEED_PCI         6
 #define SEDL_SPEEDFAX_PYRAMID  7
 #define SEDL_SPEEDFAX_PCI      8
 #define HST_SAPHIR3            9
@@ -80,7 +80,7 @@ static const char *Sedlbauer_Types[] =
 #define SEDL_BUS_PCI           2
 #define        SEDL_BUS_PCMCIA         3
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define SEDL_HSCX_ISA_RESET_ON 0
@@ -127,7 +127,7 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        insb(adr, data, size);
@@ -142,7 +142,7 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        byteout(ale, off);
        outsb(adr, data, size);
@@ -163,13 +163,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0, data, size);
 }
@@ -177,23 +177,23 @@ WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
 static u_char
 ReadISAC_IPAC(struct IsdnCardState *cs, u_char offset)
 {
-       return (readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset|0x80));
+       return (readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset | 0x80));
 }
 
 static void
 WriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value)
 {
-       writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset|0x80, value);
+       writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset | 0x80, value);
 }
 
 static void
-ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        readfifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0x80, data, size);
 }
 
 static void
-WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size)
 {
        writefifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0x80, data, size);
 }
@@ -220,12 +220,12 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
 
 static u_char
 ReadISAR(struct IsdnCardState *cs, int mode, u_char offset)
-{      
+{
        if (mode == 0)
                return (readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, offset));
        else if (mode == 1)
                byteout(cs->hw.sedl.adr, offset);
-       return(bytein(cs->hw.sedl.hscx));
+       return (bytein(cs->hw.sedl.hscx));
 }
 
 static void
@@ -244,16 +244,16 @@ WriteISAR(struct IsdnCardState *cs, int mode, u_char offset, u_char value)
  * fast interrupt HSCX stuff goes here
  */
 
-#define READHSCX(cs, nr, reg) readreg(cs->hw.sedl.adr, \
-               cs->hw.sedl.hscx, reg + (nr ? 0x40 : 0))
-#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.sedl.adr, \
-               cs->hw.sedl.hscx, reg + (nr ? 0x40 : 0), data)
+#define READHSCX(cs, nr, reg) readreg(cs->hw.sedl.adr,                 \
+                                     cs->hw.sedl.hscx, reg + (nr ? 0x40 : 0))
+#define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.sedl.adr,         \
+                                             cs->hw.sedl.hscx, reg + (nr ? 0x40 : 0), data)
 
-#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.sedl.adr, \
-               cs->hw.sedl.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.sedl.adr,       \
+                                               cs->hw.sedl.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
-#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.sedl.adr, \
-               cs->hw.sedl.hscx, (nr ? 0x40 : 0), ptr, cnt)
+#define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.sedl.adr,     \
+                                                 cs->hw.sedl.hscx, (nr ? 0x40 : 0), ptr, cnt)
 
 #include "hscx_irq.c"
 
@@ -274,11 +274,11 @@ sedlbauer_interrupt(int intno, void *dev_id)
        }
 
        val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_ISTA + 0x40);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_ISTA + 0x40);
@@ -360,11 +360,11 @@ sedlbauer_interrupt_isar(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, ISAR_IRQBIT);
-      Start_ISAR:
+Start_ISAR:
        if (val & ISAR_IRQSTA)
                isar_int_main(cs);
        val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, ISAR_IRQBIT);
@@ -411,7 +411,7 @@ reset_sedlbauer(struct IsdnCardState *cs)
        printk(KERN_INFO "Sedlbauer: resetting card\n");
 
        if (!((cs->hw.sedl.bus == SEDL_BUS_PCMCIA) &&
-          (cs->hw.sedl.chip == SEDL_CHIP_ISAC_HSCX))) {
+             (cs->hw.sedl.chip == SEDL_CHIP_ISAC_HSCX))) {
                if (cs->hw.sedl.chip == SEDL_CHIP_IPAC) {
                        writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_POTA2, 0x20);
                        mdelay(2);
@@ -423,12 +423,12 @@ reset_sedlbauer(struct IsdnCardState *cs)
                        writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_MASK, 0xc0);
                        writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_PCFG, 0x12);
                } else if ((cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) &&
-                       (cs->hw.sedl.bus == SEDL_BUS_PCI)) {
-                       byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on);
+                          (cs->hw.sedl.bus == SEDL_BUS_PCI)) {
+                       byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_on);
                        mdelay(2);
-                       byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off);
+                       byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off);
                        mdelay(10);
-               } else {                
+               } else {
                        byteout(cs->hw.sedl.reset_on, SEDL_RESET);      /* Reset On */
                        mdelay(2);
                        byteout(cs->hw.sedl.reset_off, 0);      /* Reset Off */
@@ -443,86 +443,86 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_sedlbauer(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       if (cs->hw.sedl.bus == SEDL_BUS_PCI)
-                               /* disable all IRQ */
-                               byteout(cs->hw.sedl.cfg_reg+ 5, 0);
-                       if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) {
-                               spin_lock_irqsave(&cs->lock, flags);
-                               writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx,
-                                       ISAR_IRQBIT, 0);
-                               writereg(cs->hw.sedl.adr, cs->hw.sedl.isac,
-                                       ISAC_MASK, 0xFF);
-                               reset_sedlbauer(cs);
-                               writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx,
-                                       ISAR_IRQBIT, 0);
-                               writereg(cs->hw.sedl.adr, cs->hw.sedl.isac,
-                                       ISAC_MASK, 0xFF);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                       }
-                       release_io_sedlbauer(cs);
-                       return(0);
-               case CARD_INIT:
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_sedlbauer(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               if (cs->hw.sedl.bus == SEDL_BUS_PCI)
+                       /* disable all IRQ */
+                       byteout(cs->hw.sedl.cfg_reg + 5, 0);
+               if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) {
                        spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->hw.sedl.bus == SEDL_BUS_PCI)
-                               /* enable all IRQ */
-                               byteout(cs->hw.sedl.cfg_reg+ 5, 0x02);
+                       writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx,
+                                ISAR_IRQBIT, 0);
+                       writereg(cs->hw.sedl.adr, cs->hw.sedl.isac,
+                                ISAC_MASK, 0xFF);
                        reset_sedlbauer(cs);
-                       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);
-                       }
+                       writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx,
+                                ISAR_IRQBIT, 0);
+                       writereg(cs->hw.sedl.adr, cs->hw.sedl.isac,
+                                ISAC_MASK, 0xFF);
                        spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
-               case MDL_INFO_CONN:
-                       if (cs->subtyp != SEDL_SPEEDFAX_PYRAMID)
-                               return(0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if ((long) arg)
-                               cs->hw.sedl.reset_off &= ~SEDL_ISAR_PCI_LED2;
-                       else
-                               cs->hw.sedl.reset_off &= ~SEDL_ISAR_PCI_LED1;
-                       byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case MDL_INFO_REL:
-                       if (cs->subtyp != SEDL_SPEEDFAX_PYRAMID)
-                               return(0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if ((long) arg)
-                               cs->hw.sedl.reset_off |= SEDL_ISAR_PCI_LED2;
-                       else
-                               cs->hw.sedl.reset_off |= SEDL_ISAR_PCI_LED1;
-                       byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
+               }
+               release_io_sedlbauer(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->hw.sedl.bus == SEDL_BUS_PCI)
+                       /* enable all IRQ */
+                       byteout(cs->hw.sedl.cfg_reg + 5, 0x02);
+               reset_sedlbauer(cs);
+               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);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
+       case MDL_INFO_CONN:
+               if (cs->subtyp != SEDL_SPEEDFAX_PYRAMID)
+                       return (0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if ((long) arg)
+                       cs->hw.sedl.reset_off &= ~SEDL_ISAR_PCI_LED2;
+               else
+                       cs->hw.sedl.reset_off &= ~SEDL_ISAR_PCI_LED1;
+               byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case MDL_INFO_REL:
+               if (cs->subtyp != SEDL_SPEEDFAX_PYRAMID)
+                       return (0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if ((long) arg)
+                       cs->hw.sedl.reset_off |= SEDL_ISAR_PCI_LED2;
+               else
+                       cs->hw.sedl.reset_off |= SEDL_ISAR_PCI_LED1;
+               byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
        }
-       return(0);
+       return (0);
 }
 
 #ifdef __ISAPNP__
 static struct isapnp_device_id sedl_ids[] __devinitdata = {
        { ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01),
-         ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), 
+         ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01),
          (unsigned long) "Speed win" },
        { ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x02),
-         ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x02), 
+         ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x02),
          (unsigned long) "Speed Fax+" },
        { 0, }
 };
@@ -539,31 +539,31 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
        if (!isapnp_present())
                return -1;
 
-       while(ipid->card_vendor) {
+       while (ipid->card_vendor) {
                if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                       ipid->card_device, pnp_c))) {
+                                          ipid->card_device, pnp_c))) {
                        pnp_d = NULL;
                        if ((pnp_d = pnp_find_dev(pnp_c,
-                               ipid->vendor, ipid->function, pnp_d))) {
+                                                 ipid->vendor, ipid->function, pnp_d))) {
                                int err;
 
                                printk(KERN_INFO "HiSax: %s detected\n",
-                                       (char *)ipid->driver_data);
+                                      (char *)ipid->driver_data);
                                pnp_disable_dev(pnp_d);
                                err = pnp_activate_dev(pnp_d);
-                               if (err<0) {
+                               if (err < 0) {
                                        printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                               __func__, err);
-                                       return(0);
+                                              __func__, err);
+                                       return (0);
                                }
                                card->para[1] = pnp_port_start(pnp_d, 0);
                                card->para[0] = pnp_irq(pnp_d, 0);
 
                                if (!card->para[0] || !card->para[1]) {
                                        printk(KERN_ERR "Sedlbauer PnP:some resources are missing %ld/%lx\n",
-                                               card->para[0], card->para[1]);
+                                              card->para[0], card->para[1]);
                                        pnp_disable_dev(pnp_d);
-                                       return(0);
+                                       return (0);
                                }
                                cs->hw.sedl.cfg_reg = card->para[1];
                                cs->irq = card->para[0];
@@ -579,12 +579,12 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
                                return (1);
                        } else {
                                printk(KERN_ERR "Sedlbauer PnP: PnP error card found, no device\n");
-                               return(0);
+                               return (0);
                        }
                }
                ipid++;
                pnp_c = NULL;
-       } 
+       }
 
        printk(KERN_INFO "Sedlbauer PnP: no ISAPnP card found\n");
        return -1;
@@ -608,30 +608,30 @@ setup_sedlbauer_pci(struct IsdnCard *card)
        u16 sub_vendor_id, sub_id;
 
        if ((dev_sedl = hisax_find_pci_device(PCI_VENDOR_ID_TIGERJET,
-                       PCI_DEVICE_ID_TIGERJET_100, dev_sedl))) {
+                                             PCI_DEVICE_ID_TIGERJET_100, dev_sedl))) {
                if (pci_enable_device(dev_sedl))
-                       return(0);
+                       return (0);
                cs->irq = dev_sedl->irq;
                if (!cs->irq) {
                        printk(KERN_WARNING "Sedlbauer: No IRQ for PCI card found\n");
-                       return(0);
+                       return (0);
                }
                cs->hw.sedl.cfg_reg = pci_resource_start(dev_sedl, 0);
        } else {
                printk(KERN_WARNING "Sedlbauer: No PCI card found\n");
-               return(0);
+               return (0);
        }
        cs->irq_flags |= IRQF_SHARED;
        cs->hw.sedl.bus = SEDL_BUS_PCI;
        sub_vendor_id = dev_sedl->subsystem_vendor;
        sub_id = dev_sedl->subsystem_device;
        printk(KERN_INFO "Sedlbauer: PCI subvendor:%x subid %x\n",
-               sub_vendor_id, sub_id);
+              sub_vendor_id, sub_id);
        printk(KERN_INFO "Sedlbauer: PCI base adr %#x\n",
-               cs->hw.sedl.cfg_reg);
+              cs->hw.sedl.cfg_reg);
        if (sub_id != PCI_SUB_ID_SEDLBAUER) {
                printk(KERN_ERR "Sedlbauer: unknown sub id %#x\n", sub_id);
-               return(0);
+               return (0);
        }
        if (sub_vendor_id == PCI_SUBVENDOR_SPEEDFAX_PYRAMID) {
                cs->hw.sedl.chip = SEDL_CHIP_ISAC_ISAR;
@@ -647,19 +647,19 @@ setup_sedlbauer_pci(struct IsdnCard *card)
                cs->subtyp = SEDL_SPEED_PCI;
        } else {
                printk(KERN_ERR "Sedlbauer: unknown sub vendor id %#x\n",
-                       sub_vendor_id);
-               return(0);
+                      sub_vendor_id);
+               return (0);
        }
 
        cs->hw.sedl.reset_on = SEDL_ISAR_PCI_ISAR_RESET_ON;
        cs->hw.sedl.reset_off = SEDL_ISAR_PCI_ISAR_RESET_OFF;
        byteout(cs->hw.sedl.cfg_reg, 0xff);
        byteout(cs->hw.sedl.cfg_reg, 0x00);
-       byteout(cs->hw.sedl.cfg_reg+ 2, 0xdd);
-       byteout(cs->hw.sedl.cfg_reg+ 5, 0); /* disable all IRQ */
-       byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on);
+       byteout(cs->hw.sedl.cfg_reg + 2, 0xdd);
+       byteout(cs->hw.sedl.cfg_reg + 5, 0); /* disable all IRQ */
+       byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_on);
        mdelay(2);
-       byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off);
+       byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off);
        mdelay(10);
 
        return (1);
@@ -684,20 +684,20 @@ setup_sedlbauer(struct IsdnCard *card)
 
        strcpy(tmp, Sedlbauer_revision);
        printk(KERN_INFO "HiSax: Sedlbauer driver Rev. %s\n", HiSax_getrev(tmp));
-       
-       if (cs->typ == ISDN_CTYPE_SEDLBAUER) {
-               cs->subtyp = SEDL_SPEED_CARD_WIN;
+
+       if (cs->typ == ISDN_CTYPE_SEDLBAUER) {
+               cs->subtyp = SEDL_SPEED_CARD_WIN;
                cs->hw.sedl.bus = SEDL_BUS_ISA;
                cs->hw.sedl.chip = SEDL_CHIP_TEST;
-       } else if (cs->typ == ISDN_CTYPE_SEDLBAUER_PCMCIA) {    
-               cs->subtyp = SEDL_SPEED_STAR;
+       } else if (cs->typ == ISDN_CTYPE_SEDLBAUER_PCMCIA) {
+               cs->subtyp = SEDL_SPEED_STAR;
                cs->hw.sedl.bus = SEDL_BUS_PCMCIA;
                cs->hw.sedl.chip = SEDL_CHIP_TEST;
-       } else if (cs->typ == ISDN_CTYPE_SEDLBAUER_FAX) {       
-               cs->subtyp = SEDL_SPEED_FAX;
+       } else if (cs->typ == ISDN_CTYPE_SEDLBAUER_FAX) {
+               cs->subtyp = SEDL_SPEED_FAX;
                cs->hw.sedl.bus = SEDL_BUS_ISA;
                cs->hw.sedl.chip = SEDL_CHIP_ISAC_ISAR;
-       } else
+       } else
                return (0);
 
        bytecnt = 8;
@@ -720,22 +720,22 @@ setup_sedlbauer(struct IsdnCard *card)
                        return (0);
 
                bytecnt = 256;
-       }       
+       }
 
-ready: 
+ready:
 
        /* In case of the sedlbauer pcmcia card, this region is in use,
         * reserved for us by the card manager. So we do not check it
         * here, it would fail.
         */
        if (cs->hw.sedl.bus != SEDL_BUS_PCMCIA &&
-               !request_region(cs->hw.sedl.cfg_reg, bytecnt, "sedlbauer isdn")) {
+           !request_region(cs->hw.sedl.cfg_reg, bytecnt, "sedlbauer isdn")) {
                printk(KERN_WARNING
-                       "HiSax: %s config port %x-%x already in use\n",
-                       CardType[card->typ],
-                       cs->hw.sedl.cfg_reg,
-                       cs->hw.sedl.cfg_reg + bytecnt);
-                       return (0);
+                      "HiSax: %s config port %x-%x already in use\n",
+                      CardType[card->typ],
+                      cs->hw.sedl.cfg_reg,
+                      cs->hw.sedl.cfg_reg + bytecnt);
+               return (0);
        }
 
        printk(KERN_INFO
@@ -753,12 +753,12 @@ ready:
  * testing ISA and PCMCIA Cards for IPAC, default is ISAC
  * do not test for PCI card, because ports are different
  * and PCI card uses only IPAC (for the moment)
- */    
+ */
        if (cs->hw.sedl.bus != SEDL_BUS_PCI) {
                val = readreg(cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_ADR,
-                       cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC, IPAC_ID);
+                             cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC, IPAC_ID);
                printk(KERN_DEBUG "Sedlbauer: testing IPAC version %x\n", val);
-               if ((val == 1) || (val == 2)) {
+               if ((val == 1) || (val == 2)) {
                        /* IPAC */
                        cs->subtyp = SEDL_SPEED_WIN2_PC104;
                        if (cs->hw.sedl.bus == SEDL_BUS_PCMCIA) {
@@ -777,16 +777,16 @@ ready:
  * hw.sedl.chip is now properly set
  */
        printk(KERN_INFO "Sedlbauer: %s detected\n",
-               Sedlbauer_Types[cs->subtyp]);
+              Sedlbauer_Types[cs->subtyp]);
 
        setup_isac(cs);
        if (cs->hw.sedl.chip == SEDL_CHIP_IPAC) {
                if (cs->hw.sedl.bus == SEDL_BUS_PCI) {
-                       cs->hw.sedl.adr  = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_ADR;
+                       cs->hw.sedl.adr  = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_ADR;
                        cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_IPAC;
                        cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_IPAC;
                } else {
-                       cs->hw.sedl.adr  = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_ADR;
+                       cs->hw.sedl.adr  = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_ADR;
                        cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC;
                        cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC;
                }
@@ -807,22 +807,22 @@ ready:
                if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) {
                        if (cs->hw.sedl.bus == SEDL_BUS_PCI) {
                                cs->hw.sedl.adr = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_PCI_ADR;
+                                       SEDL_ISAR_PCI_ADR;
                                cs->hw.sedl.isac = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_PCI_ISAC;
+                                       SEDL_ISAR_PCI_ISAC;
                                cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_PCI_ISAR;
+                                       SEDL_ISAR_PCI_ISAR;
                        } else {
                                cs->hw.sedl.adr = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_ISA_ADR;
+                                       SEDL_ISAR_ISA_ADR;
                                cs->hw.sedl.isac = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_ISA_ISAC;
+                                       SEDL_ISAR_ISA_ISAC;
                                cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_ISA_ISAR;
+                                       SEDL_ISAR_ISA_ISAR;
                                cs->hw.sedl.reset_on = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_ISA_ISAR_RESET_ON;
+                                       SEDL_ISAR_ISA_ISAR_RESET_ON;
                                cs->hw.sedl.reset_off = cs->hw.sedl.cfg_reg +
-                                                       SEDL_ISAR_ISA_ISAR_RESET_OFF;
+                                       SEDL_ISAR_ISA_ISAR_RESET_OFF;
                        }
                        cs->bcs[0].hw.isar.reg = &cs->hw.sedl.isar;
                        cs->bcs[1].hw.isar.reg = &cs->hw.sedl.isar;
@@ -838,7 +838,7 @@ ready:
                                ver = ISARVersion(cs, "Sedlbauer:");
                                if (ver < 0)
                                        printk(KERN_WARNING
-                                               "Sedlbauer: wrong ISAR version (ret = %d)\n", ver);
+                                              "Sedlbauer: wrong ISAR version (ret = %d)\n", ver);
                                else
                                        break;
                                reset_sedlbauer(cs);
@@ -865,10 +865,10 @@ ready:
                        }
                        cs->irq_func = &sedlbauer_interrupt;
                        ISACVersion(cs, "Sedlbauer:");
-               
+
                        if (HscxVersion(cs, "Sedlbauer:")) {
                                printk(KERN_WARNING
-                                       "Sedlbauer: wrong HSCX versions check IO address\n");
+                                      "Sedlbauer: wrong HSCX versions check IO address\n");
                                release_io_sedlbauer(cs);
                                return (0);
                        }
index 06473f8..68f5049 100644 (file)
@@ -1,39 +1,39 @@
 /*======================================================================
 
-    A Sedlbauer PCMCIA client driver
-
-    This driver is for the Sedlbauer Speed Star and Speed Star II, 
-    which are ISDN PCMCIA Cards.
-    
-    The contents of this file are subject to the Mozilla Public
-    License Version 1.1 (the "License"); you may not use this file
-    except in compliance with the License. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-    Software distributed under the License is distributed on an "AS
-    IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-    implied. See the License for the specific language governing
-    rights and limitations under the License.
-
-    The initial developer of the original code is David A. Hinds
-    <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
-    are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
-
-    Modifications from dummy_cs.c are Copyright (C) 1999-2001 Marcus Niemann
-    <maniemann@users.sourceforge.net>. All Rights Reserved.
-
-    Alternatively, the contents of this file may be used under the
-    terms of the GNU General Public License version 2 (the "GPL"), in
-    which case the provisions of the GPL are applicable instead of the
-    above.  If you wish to allow the use of your version of this file
-    only under the terms of the GPL and not to allow others to use
-    your version of this file under the MPL, indicate your decision
-    by deleting the provisions above and replace them with the notice
-    and other provisions required by the GPL.  If you do not delete
-    the provisions above, a recipient may use your version of this
-    file under either the MPL or the GPL.
-    
-======================================================================*/
+  A Sedlbauer PCMCIA client driver
+
+  This driver is for the Sedlbauer Speed Star and Speed Star II,
+  which are ISDN PCMCIA Cards.
+
+  The contents of this file are subject to the Mozilla Public
+  License Version 1.1 (the "License"); you may not use this file
+  except in compliance with the License. You may obtain a copy of
+  the License at http://www.mozilla.org/MPL/
+
+  Software distributed under the License is distributed on an "AS
+  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+  implied. See the License for the specific language governing
+  rights and limitations under the License.
+
+  The initial developer of the original code is David A. Hinds
+  <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
+  are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
+
+  Modifications from dummy_cs.c are Copyright (C) 1999-2001 Marcus Niemann
+  <maniemann@users.sourceforge.net>. All Rights Reserved.
+
+  Alternatively, the contents of this file may be used under the
+  terms of the GNU General Public License version 2 (the "GPL"), in
+  which case the provisions of the GPL are applicable instead of the
+  above.  If you wish to allow the use of your version of this file
+  only under the terms of the GPL and not to allow others to use
+  your version of this file under the MPL, indicate your decision
+  by deleting the provisions above and replace them with the notice
+  and other provisions required by the GPL.  If you do not delete
+  the provisions above, a recipient may use your version of this
+  file under either the MPL or the GPL.
+
+  ======================================================================*/
 
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -63,32 +63,32 @@ MODULE_LICENSE("Dual MPL/GPL");
 static int protocol = 2;        /* EURO-ISDN Default */
 module_param(protocol, int, 0);
 
-static int sedlbauer_config(struct pcmcia_device *link) __devinit ;
+static int sedlbauer_config(struct pcmcia_device *link) __devinit;
 static void sedlbauer_release(struct pcmcia_device *link);
 
 static void sedlbauer_detach(struct pcmcia_device *p_dev) __devexit;
 
 typedef struct local_info_t {
        struct pcmcia_device    *p_dev;
-    int                        stop;
-    int                        cardnr;
+       int                     stop;
+       int                     cardnr;
 } local_info_t;
 
 static int __devinit sedlbauer_probe(struct pcmcia_device *link)
 {
-    local_info_t *local;
+       local_info_t *local;
 
-    dev_dbg(&link->dev, "sedlbauer_attach()\n");
+       dev_dbg(&link->dev, "sedlbauer_attach()\n");
 
-    /* Allocate space for private device-specific data */
-    local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
-    if (!local) return -ENOMEM;
-    local->cardnr = -1;
+       /* Allocate space for private device-specific data */
+       local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
+       if (!local) return -ENOMEM;
+       local->cardnr = -1;
 
-    local->p_dev = link;
-    link->priv = local;
+       local->p_dev = link;
+       link->priv = local;
 
-    return sedlbauer_config(link);
+       return sedlbauer_config(link);
 } /* sedlbauer_attach */
 
 static void __devexit sedlbauer_detach(struct pcmcia_device *link)
@@ -113,58 +113,58 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev, void *priv_data)
 
 static int __devinit sedlbauer_config(struct pcmcia_device *link)
 {
-    int ret;
-    IsdnCard_t  icard;
-
-    dev_dbg(&link->dev, "sedlbauer_config(0x%p)\n", link);
-
-    link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_CHECK_VCC |
-           CONF_AUTO_SET_VPP | CONF_AUTO_AUDIO | CONF_AUTO_SET_IO;
-
-    ret = pcmcia_loop_config(link, sedlbauer_config_check, NULL);
-    if (ret)
-           goto failed;
-
-    ret = pcmcia_enable_device(link);
-    if (ret)
-           goto failed;
-
-    icard.para[0] = link->irq;
-    icard.para[1] = link->resource[0]->start;
-    icard.protocol = protocol;
-    icard.typ = ISDN_CTYPE_SEDLBAUER_PCMCIA;
-    
-    ret = hisax_init_pcmcia(link, 
-                           &(((local_info_t *)link->priv)->stop), &icard);
-    if (ret < 0) {
-       printk(KERN_ERR "sedlbauer_cs: failed to initialize SEDLBAUER PCMCIA %d with %pR\n",
-               ret, link->resource[0]);
-       sedlbauer_release(link);
-       return -ENODEV;
-    } else
-       ((local_info_t *)link->priv)->cardnr = ret;
+       int ret;
+       IsdnCard_t  icard;
+
+       dev_dbg(&link->dev, "sedlbauer_config(0x%p)\n", link);
 
-    return 0;
+       link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_CHECK_VCC |
+               CONF_AUTO_SET_VPP | CONF_AUTO_AUDIO | CONF_AUTO_SET_IO;
+
+       ret = pcmcia_loop_config(link, sedlbauer_config_check, NULL);
+       if (ret)
+               goto failed;
+
+       ret = pcmcia_enable_device(link);
+       if (ret)
+               goto failed;
+
+       icard.para[0] = link->irq;
+       icard.para[1] = link->resource[0]->start;
+       icard.protocol = protocol;
+       icard.typ = ISDN_CTYPE_SEDLBAUER_PCMCIA;
+
+       ret = hisax_init_pcmcia(link,
+                               &(((local_info_t *)link->priv)->stop), &icard);
+       if (ret < 0) {
+               printk(KERN_ERR "sedlbauer_cs: failed to initialize SEDLBAUER PCMCIA %d with %pR\n",
+                      ret, link->resource[0]);
+               sedlbauer_release(link);
+               return -ENODEV;
+       } else
+               ((local_info_t *)link->priv)->cardnr = ret;
+
+       return 0;
 
 failed:
-    sedlbauer_release(link);
-    return -ENODEV;
+       sedlbauer_release(link);
+       return -ENODEV;
 
 } /* sedlbauer_config */
 
 static void sedlbauer_release(struct pcmcia_device *link)
 {
-    local_info_t *local = link->priv;
-    dev_dbg(&link->dev, "sedlbauer_release(0x%p)\n", link);
-
-    if (local) {
-       if (local->cardnr >= 0) {
-           /* no unregister function with hisax */
-           HiSax_closecard(local->cardnr);
+       local_info_t *local = link->priv;
+       dev_dbg(&link->dev, "sedlbauer_release(0x%p)\n", link);
+
+       if (local) {
+               if (local->cardnr >= 0) {
+                       /* no unregister function with hisax */
+                       HiSax_closecard(local->cardnr);
+               }
        }
-    }
 
-    pcmcia_disable_device(link);
+       pcmcia_disable_device(link);
 } /* sedlbauer_release */
 
 static int sedlbauer_suspend(struct pcmcia_device *link)
index 0a53759..1267298 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -20,7 +20,7 @@
 
 static const char *sportster_revision = "$Revision: 1.16.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 #define         SPORTSTER_ISAC         0xC000
@@ -33,17 +33,17 @@ static const char *sportster_revision = "$Revision: 1.16.2.4 $";
 static inline int
 calc_off(unsigned int base, unsigned int off)
 {
-       return(base + ((off & 0xfc)<<8) + ((off & 3)<<1));
+       return (base + ((off & 0xfc) << 8) + ((off & 3) << 1));
 }
 
 static inline void
-read_fifo(unsigned int adr, u_char * data, int size)
+read_fifo(unsigned int adr, u_char *data, int size)
 {
        insb(adr, data, size);
 }
 
 static void
-write_fifo(unsigned int adr, u_char * data, int size)
+write_fifo(unsigned int adr, u_char *data, int size)
 {
        outsb(adr, data, size);
 }
@@ -63,13 +63,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        read_fifo(cs->hw.spt.isac, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        write_fifo(cs->hw.spt.isac, data, size);
 }
@@ -106,11 +106,11 @@ sportster_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = READHSCX(cs, 1, HSCX_ISTA);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = ReadISAC(cs, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = READHSCX(cs, 1, HSCX_ISTA);
@@ -126,7 +126,7 @@ sportster_interrupt(int intno, void *dev_id)
                goto Start_ISAC;
        }
        /* get a new irq impulse if there any pending */
-       bytein(cs->hw.spt.cfg_reg + SPORTSTER_RES_IRQ +1);
+       bytein(cs->hw.spt.cfg_reg + SPORTSTER_RES_IRQ + 1);
        spin_unlock_irqrestore(&cs->lock, flags);
        return IRQ_HANDLED;
 }
@@ -137,8 +137,8 @@ release_io_sportster(struct IsdnCardState *cs)
        int i, adr;
 
        byteout(cs->hw.spt.cfg_reg + SPORTSTER_RES_IRQ, 0);
-       for (i=0; i<64; i++) {
-               adr = cs->hw.spt.cfg_reg + i *1024;
+       for (i = 0; i < 64; i++) {
+               adr = cs->hw.spt.cfg_reg + i * 1024;
                release_region(adr, 8);
        }
 }
@@ -160,51 +160,51 @@ Sportster_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_sportster(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_sportster(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_sportster(cs);
-                       inithscxisac(cs, 1);
-                       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);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_sportster(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_sportster(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_sportster(cs);
+               inithscxisac(cs, 1);
+               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);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 static int __devinit
 get_io_range(struct IsdnCardState *cs)
 {
        int i, j, adr;
-       
-       for (i=0;i<64;i++) {
-               adr = cs->hw.spt.cfg_reg + i *1024;
+
+       for (i = 0; i < 64; i++) {
+               adr = cs->hw.spt.cfg_reg + i * 1024;
                if (!request_region(adr, 8, "sportster")) {
                        printk(KERN_WARNING "HiSax: USR Sportster config port "
-                               "%x-%x already in use\n",
-                               adr, adr + 8);
+                              "%x-%x already in use\n",
+                              adr, adr + 8);
                        break;
-               } 
+               }
        }
-       if (i==64)
-               return(1);
+       if (i == 64)
+               return (1);
        else {
-               for (j=0; j<i; j++) {
-                       adr = cs->hw.spt.cfg_reg + j *1024;
+               for (j = 0; j < i; j++) {
+                       adr = cs->hw.spt.cfg_reg + j * 1024;
                        release_region(adr, 8);
                }
-               return(0);
+               return (0);
        }
 }
 
@@ -226,28 +226,28 @@ setup_sportster(struct IsdnCard *card)
        cs->hw.spt.isac = cs->hw.spt.cfg_reg + SPORTSTER_ISAC;
        cs->hw.spt.hscx[0] = cs->hw.spt.cfg_reg + SPORTSTER_HSCXA;
        cs->hw.spt.hscx[1] = cs->hw.spt.cfg_reg + SPORTSTER_HSCXB;
-       
-       switch(cs->irq) {
-               case 5: cs->hw.spt.res_irq = 1;
-                       break;
-               case 7: cs->hw.spt.res_irq = 2;
-                       break;
-               case 10:cs->hw.spt.res_irq = 3;
-                       break;
-               case 11:cs->hw.spt.res_irq = 4;
-                       break;
-               case 12:cs->hw.spt.res_irq = 5;
-                       break;
-               case 14:cs->hw.spt.res_irq = 6;
-                       break;
-               case 15:cs->hw.spt.res_irq = 7;
-                       break;
-               default:release_io_sportster(cs);
-                       printk(KERN_WARNING "Sportster: wrong IRQ\n");
-                       return(0);
+
+       switch (cs->irq) {
+       case 5: cs->hw.spt.res_irq = 1;
+               break;
+       case 7: cs->hw.spt.res_irq = 2;
+               break;
+       case 10:cs->hw.spt.res_irq = 3;
+               break;
+       case 11:cs->hw.spt.res_irq = 4;
+               break;
+       case 12:cs->hw.spt.res_irq = 5;
+               break;
+       case 14:cs->hw.spt.res_irq = 6;
+               break;
+       case 15:cs->hw.spt.res_irq = 7;
+               break;
+       default:release_io_sportster(cs);
+               printk(KERN_WARNING "Sportster: wrong IRQ\n");
+               return (0);
        }
        printk(KERN_INFO "HiSax: USR Sportster config irq:%d cfg:0x%X\n",
-               cs->irq, cs->hw.spt.cfg_reg);
+              cs->irq, cs->hw.spt.cfg_reg);
        setup_isac(cs);
        cs->readisac = &ReadISAC;
        cs->writeisac = &WriteISAC;
index b9054cb..8cd2d82 100644 (file)
@@ -4,7 +4,7 @@
  * Author       Frode Isaksen
  * Copyright    2001 by Frode Isaksen      <fisaksen@bewan.com>
  *              2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -31,7 +31,7 @@
 #define EP_B2_IN  0x05U /* B2 channel in */
 #define EP_D_OUT  0x06U /* D channel out */
 #define EP_D_IN   0x07U /* D channel in */
-  
+
 // Number of isochronous packets. With 20 packets we get
 // 50 interrupts/sec for each endpoint.
 
@@ -51,7 +51,7 @@
 #define B_FLOW_ADJUST 2
 
 // Registers that are written using vendor specific device request
-// on endpoint 0. 
+// on endpoint 0.
 
 #define LBA                    0x02 /* S loopback */
 #define SET_DEFAULT            0x06 /* Soft reset */
@@ -84,7 +84,7 @@
 #define        FFMSK_B2                0x50 /* B2 fifo interrupt MASK register */
 #define GPIO_DIR               0x52 /* GPIO pins direction registers */
 #define GPIO_OUT               0x53 /* GPIO pins output register */
-#define GPIO_IN                        0x54 /* GPIO pins input register */ 
+#define GPIO_IN                        0x54 /* GPIO pins input register */
 #define TXCI                   0x56 /* CI command to be transmitted */
 
 
 #define IN_COUNTER_ZEROED      0x02 /* In down-counter reached 0 */
 #define OUT_COUNTER_ZEROED     0x01 /* Out down-counter reached 0 */
 
-#define ANY_REC_INT    (IN_OVERRUN+IN_UP+IN_DOWN+IN_COUNTER_ZEROED)
-#define ANY_XMIT_INT   (OUT_UNDERRUN+OUT_UP+OUT_DOWN+OUT_COUNTER_ZEROED)
+#define ANY_REC_INT    (IN_OVERRUN + IN_UP + IN_DOWN + IN_COUNTER_ZEROED)
+#define ANY_XMIT_INT   (OUT_UNDERRUN + OUT_UP + OUT_DOWN + OUT_COUNTER_ZEROED)
 
 
 // Level 1 commands that are sent using the TXCI device request
@@ -158,7 +158,7 @@ enum {
        ST_DOUT_NORMAL,
 
        ST_DOUT_WAIT_FOR_UNDERRUN,
-        ST_DOUT_WAIT_FOR_NOT_BUSY,
+       ST_DOUT_WAIT_FOR_NOT_BUSY,
        ST_DOUT_WAIT_FOR_STOP,
        ST_DOUT_WAIT_FOR_RESET,
 };
@@ -188,9 +188,9 @@ enum {
        ST_L1_F8,
 };
 
-#define L1_STATE_COUNT (ST_L1_F8+1)
+#define L1_STATE_COUNT (ST_L1_F8 + 1)
 
-// The first 16 entries match the Level 1 indications that 
+// The first 16 entries match the Level 1 indications that
 // are found at offset 4 (CCIST) in the interrupt packet
 
 enum {
@@ -217,14 +217,14 @@ enum {
 
 #define L1_EVENT_COUNT (EV_TIMER3 + 1)
 
-#define ERR(format, arg...) \
-printk(KERN_ERR "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
+#define ERR(format, arg...)                                            \
+       printk(KERN_ERR "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
 
-#define WARNING(format, arg...) \
-printk(KERN_WARNING "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
+#define WARNING(format, arg...)                                                \
+       printk(KERN_WARNING "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
 
-#define INFO(format, arg...) \
-printk(KERN_INFO "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
+#define INFO(format, arg...)                                           \
+       printk(KERN_INFO "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
 
 #include <linux/isdn/hdlc.h>
 #include "fsm.h"
@@ -237,7 +237,7 @@ printk(KERN_INFO "%s:%s: " format "\n" , __FILE__,  __func__ , ## arg)
 
 /* Generic FIFO structure */
 struct fifo {
-       u_char r,w,count,size;
+       u_char r, w, count, size;
        spinlock_t lock;
 };
 
@@ -269,7 +269,7 @@ static inline int fifo_add(struct fifo *fifo)
                index = -1;
        } else {
                // Return index where to get the next data to add to the FIFO
-               index = fifo->w++ & (fifo->size-1);
+               index = fifo->w++ & (fifo->size - 1);
                fifo->count++;
        }
        spin_unlock_irqrestore(&fifo->lock, flags);
@@ -294,7 +294,7 @@ static inline int fifo_remove(struct fifo *fifo)
                index = -1;
        } else {
                // Return index where to get the next data from the FIFO
-               index = fifo->r++ & (fifo->size-1);
+               index = fifo->r++ & (fifo->size - 1);
                fifo->count--;
        }
        spin_unlock_irqrestore(&fifo->lock, flags);
@@ -311,14 +311,14 @@ typedef struct ctrl_msg {
        struct usb_ctrlrequest dr;
        ctrl_complete_t complete;
        void *context;
-} ctrl_msg; 
+} ctrl_msg;
 
 /* FIFO of ctrl messages waiting to be sent */
 #define MAX_EP0_MSG 16
 struct ctrl_msg_fifo {
        struct fifo f;
        struct ctrl_msg data[MAX_EP0_MSG];
-};     
+};
 
 #define MAX_DFRAME_LEN_L1      300
 #define HSCX_BUFMAX    4096
@@ -330,7 +330,7 @@ struct st5481_ctrl {
 };
 
 struct st5481_intr {
-  //   struct evt_fifo evt_fifo;
+       //      struct evt_fifo evt_fifo;
        struct urb *urb;
 };
 
@@ -407,21 +407,21 @@ struct st5481_adapter {
  * Submit an URB with error reporting. This is a macro so
  * the __func__ returns the caller function name.
  */
-#define SUBMIT_URB(urb, mem_flags) \
-({ \
-       int status; \
-       if ((status = usb_submit_urb(urb, mem_flags)) < 0) { \
-               WARNING("usb_submit_urb failed,status=%d", status); \
-       } \
-        status; \
-})
+#define SUBMIT_URB(urb, mem_flags)                                     \
+       ({                                                              \
+               int status;                                             \
+               if ((status = usb_submit_urb(urb, mem_flags)) < 0) {    \
+                       WARNING("usb_submit_urb failed,status=%d", status); \
+               }                                                       \
+               status;                                                 \
+       })
 
 /*
  * USB double buffering, return the URB index (0 or 1).
  */
 static inline int get_buf_nr(struct urb *urbs[], struct urb *urb)
 {
-        return (urbs[0]==urb ? 0 : 1); 
+       return (urbs[0] == urb ? 0 : 1);
 }
 
 /* ---------------------------------------------------------------------- */
@@ -442,17 +442,17 @@ void st5481_d_exit(void);
 
 /* USB */
 void st5481_ph_command(struct st5481_adapter *adapter, unsigned int command);
-int st5481_setup_isocpipes(struct urb* urb[2], struct usb_device *dev, 
+int st5481_setup_isocpipes(struct urb *urb[2], struct usb_device *dev,
                           unsigned int pipe, int num_packets,
                           int packet_size, int buf_size,
                           usb_complete_t complete, void *context);
-void st5481_release_isocpipes(struct urburb[2]);
+void st5481_release_isocpipes(struct urb *urb[2]);
 
 void st5481_usb_pipe_reset(struct st5481_adapter *adapter,
-                   u_char pipe, ctrl_complete_t complete, void *context);
+                          u_char pipe, ctrl_complete_t complete, void *context);
 void st5481_usb_device_ctrl_msg(struct st5481_adapter *adapter,
-                        u8 request, u16 value,
-                        ctrl_complete_t complete, void *context);
+                               u8 request, u16 value,
+                               ctrl_complete_t complete, void *context);
 int  st5481_setup_usb(struct st5481_adapter *adapter);
 void st5481_release_usb(struct st5481_adapter *adapter);
 void st5481_start(struct st5481_adapter *adapter);
@@ -468,18 +468,18 @@ extern int st5481_debug;
 
 #ifdef CONFIG_HISAX_DEBUG
 
-#define DBG_ISO_PACKET(level,urb) \
-  if (level & __debug_variable) dump_iso_packet(__func__,urb)
+#define DBG_ISO_PACKET(level, urb)                                     \
+       if (level & __debug_variable) dump_iso_packet(__func__, urb)
 
 static void __attribute__((unused))
 dump_iso_packet(const char *name, struct urb *urb)
 {
-       int i,j;
-       int len,ofs;
+       int i, j;
+       int len, ofs;
        u_char *data;
 
        printk(KERN_DEBUG "%s: packets=%d,errors=%d\n",
-              name,urb->number_of_packets,urb->error_count);
+              name, urb->number_of_packets, urb->error_count);
        for (i = 0; i  < urb->number_of_packets; ++i) {
                if (urb->pipe & USB_DIR_IN) {
                        len = urb->iso_frame_desc[i].actual_length;
@@ -487,11 +487,11 @@ dump_iso_packet(const char *name, struct urb *urb)
                        len = urb->iso_frame_desc[i].length;
                }
                ofs = urb->iso_frame_desc[i].offset;
-               printk(KERN_DEBUG "len=%.2d,ofs=%.3d ",len,ofs);
+               printk(KERN_DEBUG "len=%.2d,ofs=%.3d ", len, ofs);
                if (len) {
-                       data = urb->transfer_buffer+ofs;
-                       for (j=0; j < len; j++) {
-                               printk ("%.2x", data[j]);
+                       data = urb->transfer_buffer + ofs;
+                       for (j = 0; j < len; j++) {
+                               printk("%.2x", data[j]);
                        }
                }
                printk("\n");
@@ -513,17 +513,17 @@ static inline const char *ST5481_CMD_string(int evt)
        case ST5481_CMD_ARL: return "ARL";
        case ST5481_CMD_PDN: return "PDN";
        };
-       
-       sprintf(s,"0x%x",evt);
+
+       sprintf(s, "0x%x", evt);
        return s;
-}      
+}
 
 #else
 
-#define DBG_ISO_PACKET(level,urb) do {} while (0)
+#define DBG_ISO_PACKET(level, urb) do {} while (0)
 
 #endif
 
 
 
-#endif 
+#endif
index ed4bc56..4098491 100644 (file)
@@ -4,7 +4,7 @@
  * Author       Frode Isaksen
  * Copyright    2001 by Frode Isaksen      <fisaksen@bewan.com>
  *              2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -27,33 +27,33 @@ static inline void B_L1L2(struct st5481_bcs *bcs, int pr, void *arg)
 /*
  * Encode and transmit next frame.
  */
-static void usb_b_out(struct st5481_bcs *bcs,int buf_nr)
+static void usb_b_out(struct st5481_bcs *bcs, int buf_nr)
 {
        struct st5481_b_out *b_out = &bcs->b_out;
        struct st5481_adapter *adapter = bcs->adapter;
        struct urb *urb;
-       unsigned int packet_size,offset;
-       int len,buf_size,bytes_sent;
+       unsigned int packet_size, offset;
+       int len, buf_size, bytes_sent;
        int i;
        struct sk_buff *skb;
-       
+
        if (test_and_set_bit(buf_nr, &b_out->busy)) {
-               DBG(4,"ep %d urb %d busy",(bcs->channel+1)*2,buf_nr);
+               DBG(4, "ep %d urb %d busy", (bcs->channel + 1) * 2, buf_nr);
                return;
        }
        urb = b_out->urb[buf_nr];
 
        // Adjust isoc buffer size according to flow state
-       if(b_out->flow_event & (OUT_DOWN | OUT_UNDERRUN)) {
-               buf_size = NUM_ISO_PACKETS_B*SIZE_ISO_PACKETS_B_OUT + B_FLOW_ADJUST;
+       if (b_out->flow_event & (OUT_DOWN | OUT_UNDERRUN)) {
+               buf_size = NUM_ISO_PACKETS_B * SIZE_ISO_PACKETS_B_OUT + B_FLOW_ADJUST;
                packet_size = SIZE_ISO_PACKETS_B_OUT + B_FLOW_ADJUST;
-               DBG(4,"B%d,adjust flow,add %d bytes",bcs->channel+1,B_FLOW_ADJUST);
-       } else if(b_out->flow_event & OUT_UP){
-               buf_size = NUM_ISO_PACKETS_B*SIZE_ISO_PACKETS_B_OUT - B_FLOW_ADJUST;
+               DBG(4, "B%d,adjust flow,add %d bytes", bcs->channel + 1, B_FLOW_ADJUST);
+       } else if (b_out->flow_event & OUT_UP) {
+               buf_size = NUM_ISO_PACKETS_B * SIZE_ISO_PACKETS_B_OUT - B_FLOW_ADJUST;
                packet_size = SIZE_ISO_PACKETS_B_OUT - B_FLOW_ADJUST;
-               DBG(4,"B%d,adjust flow,remove %d bytes",bcs->channel+1,B_FLOW_ADJUST);
+               DBG(4, "B%d,adjust flow,remove %d bytes", bcs->channel + 1, B_FLOW_ADJUST);
        } else {
-               buf_size = NUM_ISO_PACKETS_B*SIZE_ISO_PACKETS_B_OUT;
+               buf_size = NUM_ISO_PACKETS_B * SIZE_ISO_PACKETS_B_OUT;
                packet_size = 8;
        }
        b_out->flow_event = 0;
@@ -62,15 +62,15 @@ static void usb_b_out(struct st5481_bcs *bcs,int buf_nr)
        while (len < buf_size) {
                if ((skb = b_out->tx_skb)) {
                        DBG_SKB(0x100, skb);
-                       DBG(4,"B%d,len=%d",bcs->channel+1,skb->len);
-                       
-                       if (bcs->mode == L1_MODE_TRANS) {       
+                       DBG(4, "B%d,len=%d", bcs->channel + 1, skb->len);
+
+                       if (bcs->mode == L1_MODE_TRANS) {
                                bytes_sent = buf_size - len;
                                if (skb->len < bytes_sent)
                                        bytes_sent = skb->len;
                                {       /* swap tx bytes to get hearable audio data */
                                        register unsigned char *src  = skb->data;
-                                       register unsigned char *dest = urb->transfer_buffer+len;
+                                       register unsigned char *dest = urb->transfer_buffer + len;
                                        register unsigned int count;
                                        for (count = 0; count < bytes_sent; count++)
                                                *dest++ = bitrev8(*src++);
@@ -79,7 +79,7 @@ static void usb_b_out(struct st5481_bcs *bcs,int buf_nr)
                        } else {
                                len += isdnhdlc_encode(&b_out->hdlc_state,
                                                       skb->data, skb->len, &bytes_sent,
-                                                      urb->transfer_buffer+len, buf_size-len);
+                                                      urb->transfer_buffer + len, buf_size-len);
                        }
 
                        skb_pull(skb, bytes_sent);
@@ -90,21 +90,21 @@ static void usb_b_out(struct st5481_bcs *bcs,int buf_nr)
                                B_L1L2(bcs, PH_DATA | CONFIRM, (void *)(unsigned long) skb->truesize);
                                dev_kfree_skb_any(skb);
 
-/*                             if (!(bcs->tx_skb = skb_dequeue(&bcs->sq))) { */
-/*                                     st5481B_sched_event(bcs, B_XMTBUFREADY); */
-/*                             } */
+/*                             if (!(bcs->tx_skb = skb_dequeue(&bcs->sq))) { */
+/*                                     st5481B_sched_event(bcs, B_XMTBUFREADY); */
+/*                             } */
                        }
                } else {
                        if (bcs->mode == L1_MODE_TRANS) {
-                               memset(urb->transfer_buffer+len, 0xff, buf_size-len);
+                               memset(urb->transfer_buffer + len, 0xff, buf_size-len);
                                len = buf_size;
                        } else {
                                // Send flags
                                len += isdnhdlc_encode(&b_out->hdlc_state,
                                                       NULL, 0, &bytes_sent,
-                                                      urb->transfer_buffer+len, buf_size-len);
+                                                      urb->transfer_buffer + len, buf_size-len);
                        }
-               }       
+               }
        }
 
        // Prepare the URB
@@ -118,7 +118,7 @@ static void usb_b_out(struct st5481_bcs *bcs,int buf_nr)
        urb->number_of_packets = i;
        urb->dev = adapter->usb_dev;
 
-       DBG_ISO_PACKET(0x200,urb);
+       DBG_ISO_PACKET(0x200, urb);
 
        SUBMIT_URB(urb, GFP_NOIO);
 }
@@ -131,12 +131,12 @@ static void st5481B_start_xfer(void *context)
 {
        struct st5481_bcs *bcs = context;
 
-       DBG(4,"B%d",bcs->channel+1);
+       DBG(4, "B%d", bcs->channel + 1);
 
        // Start transmitting (flags or data) on B channel
 
-       usb_b_out(bcs,0);
-       usb_b_out(bcs,1);
+       usb_b_out(bcs, 0);
+       usb_b_out(bcs, 1);
 }
 
 /*
@@ -158,7 +158,7 @@ static void led_blink(struct st5481_adapter *adapter)
        } else {
                leds &= ~GREEN_LED;
        }
-       
+
        st5481_usb_device_ctrl_msg(adapter, GPIO_OUT, leds, NULL, NULL);
 }
 
@@ -168,27 +168,27 @@ static void usb_b_out_complete(struct urb *urb)
        struct st5481_b_out *b_out = &bcs->b_out;
        struct st5481_adapter *adapter = bcs->adapter;
        int buf_nr;
-       
+
        buf_nr = get_buf_nr(b_out->urb, urb);
        test_and_clear_bit(buf_nr, &b_out->busy);
 
        if (unlikely(urb->status < 0)) {
                switch (urb->status) {
-                       case -ENOENT:
-                       case -ESHUTDOWN:
-                       case -ECONNRESET:
-                               DBG(4,"urb killed status %d", urb->status);
-                               return; // Give up
-                       default: 
-                               WARNING("urb status %d",urb->status);
-                               if (b_out->busy == 0) {
-                                       st5481_usb_pipe_reset(adapter, (bcs->channel+1)*2 | USB_DIR_OUT, NULL, NULL);
-                               }
-                               break;
+               case -ENOENT:
+               case -ESHUTDOWN:
+               case -ECONNRESET:
+                       DBG(4, "urb killed status %d", urb->status);
+                       return; // Give up
+               default:
+                       WARNING("urb status %d", urb->status);
+                       if (b_out->busy == 0) {
+                               st5481_usb_pipe_reset(adapter, (bcs->channel + 1) * 2 | USB_DIR_OUT, NULL, NULL);
+                       }
+                       break;
                }
        }
 
-       usb_b_out(bcs,buf_nr);
+       usb_b_out(bcs, buf_nr);
 
        if (adapter->number_of_leds == 2)
                led_blink(adapter);
@@ -202,7 +202,7 @@ static void st5481B_mode(struct st5481_bcs *bcs, int mode)
        struct st5481_b_out *b_out = &bcs->b_out;
        struct st5481_adapter *adapter = bcs->adapter;
 
-       DBG(4,"B%d,mode=%d", bcs->channel + 1, mode);
+       DBG(4, "B%d,mode=%d", bcs->channel + 1, mode);
 
        if (bcs->mode == mode)
                return;
@@ -223,14 +223,14 @@ static void st5481B_mode(struct st5481_bcs *bcs, int mode)
                                features |= HDLC_56KBIT;
                        isdnhdlc_out_init(&b_out->hdlc_state, features);
                }
-               st5481_usb_pipe_reset(adapter, (bcs->channel+1)*2, NULL, NULL);
-       
+               st5481_usb_pipe_reset(adapter, (bcs->channel + 1) * 2, NULL, NULL);
+
                // Enable B channel interrupts
-               st5481_usb_device_ctrl_msg(adapter, FFMSK_B1+(bcs->channel*2), 
-                                   OUT_UP+OUT_DOWN+OUT_UNDERRUN, NULL, NULL);
+               st5481_usb_device_ctrl_msg(adapter, FFMSK_B1 + (bcs->channel * 2),
+                                          OUT_UP + OUT_DOWN + OUT_UNDERRUN, NULL, NULL);
 
                // Enable B channel FIFOs
-               st5481_usb_device_ctrl_msg(adapter, OUT_B1_COUNTER+(bcs->channel*2), 32, st5481B_start_xfer, bcs);
+               st5481_usb_device_ctrl_msg(adapter, OUT_B1_COUNTER+(bcs->channel * 2), 32, st5481B_start_xfer, bcs);
                if (adapter->number_of_leds == 4) {
                        if (bcs->channel == 0) {
                                adapter->leds |= B1_LED;
@@ -240,10 +240,10 @@ static void st5481B_mode(struct st5481_bcs *bcs, int mode)
                }
        } else {
                // Disble B channel interrupts
-               st5481_usb_device_ctrl_msg(adapter, FFMSK_B1+(bcs->channel*2), 0, NULL, NULL);
+               st5481_usb_device_ctrl_msg(adapter, FFMSK_B1+(bcs->channel * 2), 0, NULL, NULL);
 
                // Disable B channel FIFOs
-               st5481_usb_device_ctrl_msg(adapter, OUT_B1_COUNTER+(bcs->channel*2), 0, NULL, NULL);
+               st5481_usb_device_ctrl_msg(adapter, OUT_B1_COUNTER+(bcs->channel * 2), 0, NULL, NULL);
 
                if (adapter->number_of_leds == 4) {
                        if (bcs->channel == 0) {
@@ -258,7 +258,7 @@ static void st5481B_mode(struct st5481_bcs *bcs, int mode)
                        dev_kfree_skb_any(b_out->tx_skb);
                        b_out->tx_skb = NULL;
                }
-               
+
        }
 }
 
@@ -268,9 +268,9 @@ static int st5481_setup_b_out(struct st5481_bcs *bcs)
        struct usb_interface *intf;
        struct usb_host_interface *altsetting = NULL;
        struct usb_host_endpoint *endpoint;
-       struct st5481_b_out *b_out = &bcs->b_out;
+       struct st5481_b_out *b_out = &bcs->b_out;
 
-       DBG(4,"");
+       DBG(4, "");
 
        intf = usb_ifnum_to_if(dev, 0);
        if (intf)
@@ -281,11 +281,11 @@ static int st5481_setup_b_out(struct st5481_bcs *bcs)
        // Allocate URBs and buffers for the B channel out
        endpoint = &altsetting->endpoint[EP_B1_OUT - 1 + bcs->channel * 2];
 
-       DBG(4,"endpoint address=%02x,packet size=%d",
+       DBG(4, "endpoint address=%02x,packet size=%d",
            endpoint->desc.bEndpointAddress, le16_to_cpu(endpoint->desc.wMaxPacketSize));
 
        // Allocate memory for 8000bytes/sec + extra bytes if underrun
-       return st5481_setup_isocpipes(b_out->urb, dev, 
+       return st5481_setup_isocpipes(b_out->urb, dev,
                                      usb_sndisocpipe(dev, endpoint->desc.bEndpointAddress),
                                      NUM_ISO_PACKETS_B, SIZE_ISO_PACKETS_B_OUT,
                                      NUM_ISO_PACKETS_B * SIZE_ISO_PACKETS_B_OUT + B_FLOW_ADJUST,
@@ -296,7 +296,7 @@ static void st5481_release_b_out(struct st5481_bcs *bcs)
 {
        struct st5481_b_out *b_out = &bcs->b_out;
 
-       DBG(4,"");
+       DBG(4, "");
 
        st5481_release_isocpipes(b_out->urb);
 }
@@ -305,7 +305,7 @@ int st5481_setup_b(struct st5481_bcs *bcs)
 {
        int retval;
 
-       DBG(4,"");
+       DBG(4, "");
 
        retval = st5481_setup_b_out(bcs);
        if (retval)
@@ -324,9 +324,9 @@ int st5481_setup_b(struct st5481_bcs *bcs)
 
        return 0;
 
- err_b_out:
+err_b_out:
        st5481_release_b_out(bcs);
- err:
+err:
        return retval;
 }
 
@@ -335,7 +335,7 @@ int st5481_setup_b(struct st5481_bcs *bcs)
  */
 void st5481_release_b(struct st5481_bcs *bcs)
 {
-       DBG(4,"");
+       DBG(4, "");
 
        st5481_release_in(&bcs->b_in);
        st5481_release_b_out(bcs);
@@ -365,12 +365,12 @@ void st5481_b_l2l1(struct hisax_if *ifc, int pr, void *arg)
                break;
        case PH_ACTIVATE | REQUEST:
                mode = (long) arg;
-               DBG(4,"B%d,PH_ACTIVATE_REQUEST %ld", bcs->channel + 1, mode);
+               DBG(4, "B%d,PH_ACTIVATE_REQUEST %ld", bcs->channel + 1, mode);
                st5481B_mode(bcs, mode);
                B_L1L2(bcs, PH_ACTIVATE | INDICATION, NULL);
                break;
        case PH_DEACTIVATE | REQUEST:
-               DBG(4,"B%d,PH_DEACTIVATE_REQUEST", bcs->channel + 1);
+               DBG(4, "B%d,PH_DEACTIVATE_REQUEST", bcs->channel + 1);
                st5481B_mode(bcs, L1_MODE_NULL);
                B_L1L2(bcs, PH_DEACTIVATE | INDICATION, NULL);
                break;
index db247b7..e88c5c7 100644 (file)
@@ -4,7 +4,7 @@
  * Author       Frode Isaksen
  * Copyright    2001 by Frode Isaksen      <fisaksen@bewan.com>
  *              2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -32,22 +32,22 @@ static char *strL1State[] =
 
 static char *strL1Event[] =
 {
-       "EV_IND_DP",  
-       "EV_IND_1",   
-       "EV_IND_2",   
-       "EV_IND_3",   
-       "EV_IND_RSY", 
-       "EV_IND_5",   
-       "EV_IND_6",   
-       "EV_IND_7",   
-       "EV_IND_AP",  
-       "EV_IND_9",   
-       "EV_IND_10",  
-       "EV_IND_11",  
+       "EV_IND_DP",
+       "EV_IND_1",
+       "EV_IND_2",
+       "EV_IND_3",
+       "EV_IND_RSY",
+       "EV_IND_5",
+       "EV_IND_6",
+       "EV_IND_7",
+       "EV_IND_AP",
+       "EV_IND_9",
+       "EV_IND_10",
+       "EV_IND_11",
        "EV_IND_AI8",
        "EV_IND_AI10",
        "EV_IND_AIL",
-       "EV_IND_DI",  
+       "EV_IND_DI",
        "EV_PH_ACTIVATE_REQ",
        "EV_PH_DEACTIVATE_REQ",
        "EV_TIMER3",
@@ -67,7 +67,7 @@ l1_go_f3(struct FsmInst *fi, int event, void *arg)
 
        if (fi->state == ST_L1_F7)
                ph_disconnect(adapter);
-       
+
        FsmChangeState(fi, ST_L1_F3);
        D_L1L2(adapter, PH_DEACTIVATE | INDICATION, NULL);
 }
@@ -168,11 +168,11 @@ static struct FsmNode L1FnList[] __initdata =
 };
 
 static __printf(2, 3)
-void l1m_debug(struct FsmInst *fi, char *fmt, ...)
+       void l1m_debug(struct FsmInst *fi, char *fmt, ...)
 {
        va_list args;
        char buf[256];
-       
+
        va_start(args, fmt);
        vsnprintf(buf, sizeof(buf), fmt, args);
        DBG(8, "%s", buf);
@@ -191,54 +191,54 @@ void l1m_debug(struct FsmInst *fi, char *fmt, ...)
 
   L1 FRAME    D_OUT_STATE           USB                  D CHANNEL
   --------    -----------           ---                  ---------
-              FIXME
-
- -> [xx..xx]  SHORT_INIT            -> [7Exx..xxC1C27EFF]
-              SHORT_WAIT_DEN        <> OUT_D_COUNTER=16 
-                                                 
-              END_OF_SHORT          <- DEN_EVENT         -> 7Exx
-                                                          xxxx 
-                                                          xxxx
-                                                         xxxx 
-                                                         xxxx
-                                                         xxxx
-                                                         C1C1 
-                                                         7EFF 
-              WAIT_FOR_RESET_IDLE   <- D_UNDERRUN        <- (8ms)                        
-              IDLE                  <> Reset pipe
-
-              
+
+  FIXME
+
 -> [xx..xx]  SHORT_INIT            -> [7Exx..xxC1C27EFF]
+  SHORT_WAIT_DEN        <> OUT_D_COUNTER=16
+
+  END_OF_SHORT          <- DEN_EVENT         -> 7Exx
+  xxxx
+  xxxx
+  xxxx
+  xxxx
+  xxxx
+  C1C1
+  7EFF
+  WAIT_FOR_RESET_IDLE   <- D_UNDERRUN        <- (8ms)
+  IDLE                  <> Reset pipe
+
+
 
   Transmit long frame (>= 16 bytes of encoded data):
 
   L1 FRAME    D_OUT_STATE           USB                  D CHANNEL
   --------    -----------           ---                  ---------
 
- -> [xx...xx] IDLE
-              WAIT_FOR_STOP         <> OUT_D_COUNTER=0
-              WAIT_FOR_RESET        <> Reset pipe
-             STOP
-             INIT_LONG_FRAME       -> [7Exx..xx]
-              WAIT_DEN              <> OUT_D_COUNTER=16 
-              OUT_NORMAL            <- DEN_EVENT       -> 7Exx
-              END_OF_FRAME_BUSY     -> [xxxx]             xxxx 
-              END_OF_FRAME_NOT_BUSY -> [xxxx]             xxxx
-                                   -> [xxxx]             xxxx 
-                                   -> [C1C2]             xxxx
-                                   -> [7EFF]             xxxx
-                                                         xxxx 
-                                                         xxxx 
-                                                          ....
-                                                         xxxx
-                                                         C1C2
-                                                         7EFF
-                                   <- D_UNDERRUN      <- (> 8ms)                        
-              WAIT_FOR_STOP         <> OUT_D_COUNTER=0
-              WAIT_FOR_RESET        <> Reset pipe
-             STOP
-
-*/          
 -> [xx...xx] IDLE
+  WAIT_FOR_STOP         <> OUT_D_COUNTER=0
+  WAIT_FOR_RESET        <> Reset pipe
+  STOP
+  INIT_LONG_FRAME       -> [7Exx..xx]
+  WAIT_DEN              <> OUT_D_COUNTER=16
+  OUT_NORMAL            <- DEN_EVENT       -> 7Exx
+  END_OF_FRAME_BUSY     -> [xxxx]             xxxx
+  END_OF_FRAME_NOT_BUSY -> [xxxx]             xxxx
+  -> [xxxx]              xxxx
+  -> [C1C2]              xxxx
+  -> [7EFF]              xxxx
+  xxxx
+  xxxx
+  ....
+  xxxx
+  C1C2
+  7EFF
+  <- D_UNDERRUN      <- (> 8ms)
+  WAIT_FOR_STOP         <> OUT_D_COUNTER=0
+  WAIT_FOR_RESET        <> Reset pipe
+  STOP
+
+*/
 
 static struct Fsm dout_fsm;
 
@@ -254,7 +254,7 @@ static char *strDoutState[] =
        "ST_DOUT_NORMAL",
 
        "ST_DOUT_WAIT_FOR_UNDERRUN",
-        "ST_DOUT_WAIT_FOR_NOT_BUSY",
+       "ST_DOUT_WAIT_FOR_NOT_BUSY",
        "ST_DOUT_WAIT_FOR_STOP",
        "ST_DOUT_WAIT_FOR_RESET",
 };
@@ -271,11 +271,11 @@ static char *strDoutEvent[] =
 };
 
 static __printf(2, 3)
-void dout_debug(struct FsmInst *fi, char *fmt, ...)
+       void dout_debug(struct FsmInst *fi, char *fmt, ...)
 {
        va_list args;
        char buf[256];
-       
+
        va_start(args, fmt);
        vsnprintf(buf, sizeof(buf), fmt, args);
        DBG(0x2, "%s", buf);
@@ -313,19 +313,19 @@ static void usb_d_out(struct st5481_adapter *adapter, int buf_nr)
        skb = d_out->tx_skb;
 
        buf_size = NUM_ISO_PACKETS_D * SIZE_ISO_PACKETS_D_OUT;
-       
+
        if (skb) {
                len = isdnhdlc_encode(&d_out->hdlc_state,
                                      skb->data, skb->len, &bytes_sent,
                                      urb->transfer_buffer, buf_size);
-               skb_pull(skb,bytes_sent);
+               skb_pull(skb, bytes_sent);
        } else {
                // Send flags or idle
                len = isdnhdlc_encode(&d_out->hdlc_state,
                                      NULL, 0, &bytes_sent,
                                      urb->transfer_buffer, buf_size);
        }
-       
+
        if (len < buf_size) {
                FsmChangeState(&d_out->fsm, ST_DOUT_WAIT_FOR_UNDERRUN);
        }
@@ -354,15 +354,15 @@ static void usb_d_out(struct st5481_adapter *adapter, int buf_nr)
        urb->dev = adapter->usb_dev;
        // Need to transmit the next buffer 2ms after the DEN_EVENT
        urb->transfer_flags = 0;
-       urb->start_frame = usb_get_current_frame_number(adapter->usb_dev)+2;
+       urb->start_frame = usb_get_current_frame_number(adapter->usb_dev) + 2;
 
-       DBG_ISO_PACKET(0x20,urb);
+       DBG_ISO_PACKET(0x20, urb);
 
        if (usb_submit_urb(urb, GFP_KERNEL) < 0) {
                // There is another URB queued up
                urb->transfer_flags = URB_ISO_ASAP;
                SUBMIT_URB(urb, GFP_KERNEL);
-       }       
+       }
 }
 
 static void fifo_reseted(void *context)
@@ -377,7 +377,7 @@ static void usb_d_out_complete(struct urb *urb)
        struct st5481_adapter *adapter = urb->context;
        struct st5481_d_out *d_out = &adapter->d_out;
        long buf_nr;
-       
+
        DBG(2, "");
 
        buf_nr = get_buf_nr(d_out->urb, urb);
@@ -385,17 +385,17 @@ static void usb_d_out_complete(struct urb *urb)
 
        if (unlikely(urb->status < 0)) {
                switch (urb->status) {
-                       case -ENOENT:
-                       case -ESHUTDOWN:
-                       case -ECONNRESET:
-                               DBG(1,"urb killed status %d", urb->status);
-                               break;
-                       default: 
-                               WARNING("urb status %d",urb->status);
-                               if (d_out->busy == 0) {
-                                       st5481_usb_pipe_reset(adapter, EP_D_OUT | USB_DIR_OUT, fifo_reseted, adapter);
-                               }
-                               break;
+               case -ENOENT:
+               case -ESHUTDOWN:
+               case -ECONNRESET:
+                       DBG(1, "urb killed status %d", urb->status);
+                       break;
+               default:
+                       WARNING("urb status %d", urb->status);
+                       if (d_out->busy == 0) {
+                               st5481_usb_pipe_reset(adapter, EP_D_OUT | USB_DIR_OUT, fifo_reseted, adapter);
+                       }
+                       break;
                }
                return; // Give up
        }
@@ -417,7 +417,7 @@ static void dout_start_xmit(struct FsmInst *fsm, int event, void *arg)
 
        skb = d_out->tx_skb;
 
-       DBG(2,"len=%d",skb->len);
+       DBG(2, "len=%d", skb->len);
 
        isdnhdlc_out_init(&d_out->hdlc_state, HDLC_DCHANNEL | HDLC_BITREVERSE);
 
@@ -433,7 +433,7 @@ static void dout_start_xmit(struct FsmInst *fsm, int event, void *arg)
                              urb->transfer_buffer, 16);
        skb_pull(skb, bytes_sent);
 
-       if(len < 16)
+       if (len < 16)
                FsmChangeState(&d_out->fsm, ST_DOUT_SHORT_INIT);
        else
                FsmChangeState(&d_out->fsm, ST_DOUT_LONG_INIT);
@@ -455,7 +455,7 @@ static void dout_start_xmit(struct FsmInst *fsm, int event, void *arg)
        urb->dev = adapter->usb_dev;
        urb->transfer_flags = URB_ISO_ASAP;
 
-       DBG_ISO_PACKET(0x20,urb);
+       DBG_ISO_PACKET(0x20, urb);
        SUBMIT_URB(urb, GFP_KERNEL);
 }
 
@@ -480,7 +480,7 @@ static void dout_long_enable_fifo(struct FsmInst *fsm, int event, void *arg)
 {
        struct st5481_adapter *adapter = fsm->userdata;
        struct st5481_d_out *d_out = &adapter->d_out;
-    
+
        st5481_usb_device_ctrl_msg(adapter, OUT_D_COUNTER, 16, NULL, NULL);
        FsmChangeState(&d_out->fsm, ST_DOUT_LONG_WAIT_DEN);
 }
@@ -619,8 +619,8 @@ static void ph_connect(struct st5481_adapter *adapter)
        struct st5481_d_out *d_out = &adapter->d_out;
        struct st5481_in *d_in = &adapter->d_in;
 
-       DBG(8,"");
-               
+       DBG(8, "");
+
        FsmChangeState(&d_out->fsm, ST_DOUT_NONE);
 
        //      st5481_usb_device_ctrl_msg(adapter, FFMSK_D, OUT_UNDERRUN, NULL, NULL);
@@ -644,7 +644,7 @@ static void ph_connect(struct st5481_adapter *adapter)
  */
 static void ph_disconnect(struct st5481_adapter *adapter)
 {
-       DBG(8,"");
+       DBG(8, "");
 
        st5481_in_mode(&adapter->d_in, L1_MODE_NULL);
 
@@ -661,7 +661,7 @@ static int st5481_setup_d_out(struct st5481_adapter *adapter)
        struct usb_host_endpoint *endpoint;
        struct st5481_d_out *d_out = &adapter->d_out;
 
-       DBG(2,"");
+       DBG(2, "");
 
        intf = usb_ifnum_to_if(dev, 0);
        if (intf)
@@ -672,10 +672,10 @@ static int st5481_setup_d_out(struct st5481_adapter *adapter)
        // Allocate URBs and buffers for the D channel out
        endpoint = &altsetting->endpoint[EP_D_OUT-1];
 
-       DBG(2,"endpoint address=%02x,packet size=%d",
+       DBG(2, "endpoint address=%02x,packet size=%d",
            endpoint->desc.bEndpointAddress, le16_to_cpu(endpoint->desc.wMaxPacketSize));
 
-       return st5481_setup_isocpipes(d_out->urb, dev, 
+       return st5481_setup_isocpipes(d_out->urb, dev,
                                      usb_sndisocpipe(dev, endpoint->desc.bEndpointAddress),
                                      NUM_ISO_PACKETS_D, SIZE_ISO_PACKETS_D_OUT,
                                      NUM_ISO_PACKETS_D * SIZE_ISO_PACKETS_D_OUT,
@@ -686,7 +686,7 @@ static void st5481_release_d_out(struct st5481_adapter *adapter)
 {
        struct st5481_d_out *d_out = &adapter->d_out;
 
-       DBG(2,"");
+       DBG(2, "");
 
        st5481_release_isocpipes(d_out->urb);
 }
@@ -695,7 +695,7 @@ int st5481_setup_d(struct st5481_adapter *adapter)
 {
        int retval;
 
-       DBG(2,"");
+       DBG(2, "");
 
        retval = st5481_setup_d_out(adapter);
        if (retval)
@@ -726,15 +726,15 @@ int st5481_setup_d(struct st5481_adapter *adapter)
 
        return 0;
 
- err_d_out:
+err_d_out:
        st5481_release_d_out(adapter);
- err:
+err:
        return retval;
 }
 
 void st5481_release_d(struct st5481_adapter *adapter)
 {
-       DBG(2,"");
+       DBG(2, "");
 
        st5481_release_in(&adapter->d_in);
        st5481_release_d_out(adapter);
@@ -766,9 +766,9 @@ int __init st5481_d_init(void)
 
        return 0;
 
- err_l1:
+err_l1:
        FsmFree(&l1fsm);
- err:
+err:
        return retval;
 }
 
index 9f7fd18..100296e 100644 (file)
@@ -4,13 +4,13 @@
  * Author       Frode Isaksen
  * Copyright    2001 by Frode Isaksen      <fisaksen@bewan.com>
  *              2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
 
-/* 
+/*
  * TODO:
  *
  * b layer1 delay?
@@ -63,9 +63,9 @@ static int probe_st5481(struct usb_interface *intf,
        int retval, i;
 
        printk(KERN_INFO "st541: found adapter VendorId %04x, ProductId %04x, LEDs %d\n",
-            le16_to_cpu(dev->descriptor.idVendor),
-            le16_to_cpu(dev->descriptor.idProduct),
-            number_of_leds);
+              le16_to_cpu(dev->descriptor.idVendor),
+              le16_to_cpu(dev->descriptor.idProduct),
+              number_of_leds);
 
        adapter = kzalloc(sizeof(struct st5481_adapter), GFP_KERNEL);
        if (!adapter)
@@ -105,7 +105,7 @@ static int probe_st5481(struct usb_interface *intf,
                b_if[i] = &adapter->bcs[i].b_if;
 
        if (hisax_register(&adapter->hisax_d_if, b_if, "st5481_usb",
-                       protocol) != 0)
+                          protocol) != 0)
                goto err_b1;
 
        st5481_start(adapter);
@@ -113,15 +113,15 @@ static int probe_st5481(struct usb_interface *intf,
        usb_set_intfdata(intf, adapter);
        return 0;
 
- err_b1:
+err_b1:
        st5481_release_b(&adapter->bcs[1]);
- err_b:
+err_b:
        st5481_release_b(&adapter->bcs[0]);
- err_d:
+err_d:
        st5481_release_d(adapter);
- err_usb:
+err_usb:
        st5481_release_usb(adapter);
- err:
+err:
        kfree(adapter);
        return -EIO;
 }
@@ -134,12 +134,12 @@ static void disconnect_st5481(struct usb_interface *intf)
 {
        struct st5481_adapter *adapter = usb_get_intfdata(intf);
 
-       DBG(1,"");
+       DBG(1, "");
 
        usb_set_intfdata(intf, NULL);
        if (!adapter)
                return;
-       
+
        st5481_stop(adapter);
        st5481_release_b(&adapter->bcs[1]);
        st5481_release_b(&adapter->bcs[0]);
@@ -157,25 +157,25 @@ static void disconnect_st5481(struct usb_interface *intf)
  * The last 4 bits in the Product Id is set with 4 pins on the chip.
  */
 static struct usb_device_id st5481_ids[] = {
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x0) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x1) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x2) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x3) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x4) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x5) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x6) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x7) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x8) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0x9) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xA) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xB) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xC) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xD) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xE) },
-       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID+0xF) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x0) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x1) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x2) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x3) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x4) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x5) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x6) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x7) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x8) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0x9) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xA) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xB) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xC) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xD) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xE) },
+       { USB_DEVICE(ST_VENDOR_ID, ST5481_PRODUCT_ID + 0xF) },
        { }
 };
-MODULE_DEVICE_TABLE (usb, st5481_ids);
+MODULE_DEVICE_TABLE(usb, st5481_ids);
 
 static struct usb_driver st5481_usb_driver = {
        .name =         "st5481_usb",
@@ -204,9 +204,9 @@ static int __init st5481_usb_init(void)
 
        return 0;
 
- out_d_exit:
+out_d_exit:
        st5481_d_exit();
- out:
+out:
        return retval;
 }
 
index 159e8fa..017c67e 100644 (file)
@@ -4,7 +4,7 @@
  * Author       Frode Isaksen
  * Copyright    2001 by Frode Isaksen      <fisaksen@bewan.com>
  *              2001 by Kai Germaschewski  <kai.germaschewski@gmx.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -36,13 +36,13 @@ static void usb_next_ctrl_msg(struct urb *urb,
        }
 
        if ((r_index = fifo_remove(&ctrl->msg_fifo.f)) < 0) {
-               test_and_clear_bit(0,&ctrl->busy);
+               test_and_clear_bit(0, &ctrl->busy);
                return;
-       } 
-       urb->setup_packet = 
+       }
+       urb->setup_packet =
                (unsigned char *)&ctrl->msg_fifo.data[r_index];
-       
-       DBG(1,"request=0x%02x,value=0x%04x,index=%x",
+
+       DBG(1, "request=0x%02x,value=0x%04x,index=%x",
            ((struct ctrl_msg *)urb->setup_packet)->dr.bRequest,
            ((struct ctrl_msg *)urb->setup_packet)->dr.wValue,
            ((struct ctrl_msg *)urb->setup_packet)->dr.wIndex);
@@ -64,13 +64,13 @@ static void usb_ctrl_msg(struct st5481_adapter *adapter,
        struct st5481_ctrl *ctrl = &adapter->ctrl;
        int w_index;
        struct ctrl_msg *ctrl_msg;
-       
+
        if ((w_index = fifo_add(&ctrl->msg_fifo.f)) < 0) {
                WARNING("control msg FIFO full");
                return;
        }
-       ctrl_msg = &ctrl->msg_fifo.data[w_index]; 
-   
+       ctrl_msg = &ctrl->msg_fifo.data[w_index];
+
        ctrl_msg->dr.bRequestType = requesttype;
        ctrl_msg->dr.bRequest = request;
        ctrl_msg->dr.wValue = cpu_to_le16p(&value);
@@ -86,11 +86,11 @@ static void usb_ctrl_msg(struct st5481_adapter *adapter,
  * Asynchronous endpoint 0 device request.
  */
 void st5481_usb_device_ctrl_msg(struct st5481_adapter *adapter,
-                        u8 request, u16 value,
-                        ctrl_complete_t complete, void *context)
+                               u8 request, u16 value,
+                               ctrl_complete_t complete, void *context)
 {
-       usb_ctrl_msg(adapter, request, 
-                    USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 
+       usb_ctrl_msg(adapter, request,
+                    USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
                     value, 0, complete, context);
 }
 
@@ -98,10 +98,10 @@ void st5481_usb_device_ctrl_msg(struct st5481_adapter *adapter,
  * Asynchronous pipe reset (async version of usb_clear_halt).
  */
 void st5481_usb_pipe_reset(struct st5481_adapter *adapter,
-                   u_char pipe,
-                   ctrl_complete_t complete, void *context)
+                          u_char pipe,
+                          ctrl_complete_t complete, void *context)
 {
-       DBG(1,"pipe=%02x",pipe);
+       DBG(1, "pipe=%02x", pipe);
 
        usb_ctrl_msg(adapter,
                     USB_REQ_CLEAR_FEATURE, USB_DIR_OUT | USB_RECIP_ENDPOINT,
@@ -115,7 +115,7 @@ void st5481_usb_pipe_reset(struct st5481_adapter *adapter,
 
 void st5481_ph_command(struct st5481_adapter *adapter, unsigned int command)
 {
-       DBG(8,"command=%s", ST5481_CMD_string(command));
+       DBG(8, "command=%s", ST5481_CMD_string(command));
 
        st5481_usb_device_ctrl_msg(adapter, TXCI, command, NULL, NULL);
 }
@@ -130,33 +130,33 @@ static void usb_ctrl_complete(struct urb *urb)
        struct st5481_adapter *adapter = urb->context;
        struct st5481_ctrl *ctrl = &adapter->ctrl;
        struct ctrl_msg *ctrl_msg;
-       
+
        if (unlikely(urb->status < 0)) {
                switch (urb->status) {
-                       case -ENOENT:
-                       case -ESHUTDOWN:
-                       case -ECONNRESET:
-                               DBG(1,"urb killed status %d", urb->status);
-                               return; // Give up
-                       default: 
-                               WARNING("urb status %d",urb->status);
-                               break;
+               case -ENOENT:
+               case -ESHUTDOWN:
+               case -ECONNRESET:
+                       DBG(1, "urb killed status %d", urb->status);
+                       return; // Give up
+               default:
+                       WARNING("urb status %d", urb->status);
+                       break;
                }
        }
 
        ctrl_msg = (struct ctrl_msg *)urb->setup_packet;
-       
+
        if (ctrl_msg->dr.bRequest == USB_REQ_CLEAR_FEATURE) {
-               /* Special case handling for pipe reset */
+               /* Special case handling for pipe reset */
                le16_to_cpus(&ctrl_msg->dr.wIndex);
                usb_reset_endpoint(adapter->usb_dev, ctrl_msg->dr.wIndex);
        }
-       
+
        if (ctrl_msg->complete)
                ctrl_msg->complete(ctrl_msg->context);
 
        clear_bit(0, &ctrl->busy);
-       
+
        // Try to send next control message
        usb_next_ctrl_msg(urb, adapter);
        return;
@@ -181,23 +181,23 @@ static void usb_int_complete(struct urb *urb)
        int status;
 
        switch (urb->status) {
-               case 0:
-                       /* success */
-                       break;
-               case -ECONNRESET:
-               case -ENOENT:
-               case -ESHUTDOWN:
-                       /* this urb is terminated, clean up */
-                       DBG(2, "urb shutting down with status: %d", urb->status);
-                       return;
-               default:
-                       WARNING("nonzero urb status received: %d", urb->status);
-                       goto exit;
+       case 0:
+               /* success */
+               break;
+       case -ECONNRESET:
+       case -ENOENT:
+       case -ESHUTDOWN:
+               /* this urb is terminated, clean up */
+               DBG(2, "urb shutting down with status: %d", urb->status);
+               return;
+       default:
+               WARNING("nonzero urb status received: %d", urb->status);
+               goto exit;
        }
 
-       
+
        DBG_PACKET(2, data, INT_PKT_SIZE);
-               
+
        if (urb->actual_length == 0) {
                goto exit;
        }
@@ -214,7 +214,7 @@ static void usb_int_complete(struct urb *urb)
                FsmEvent(&adapter->d_out.fsm, EV_DOUT_UNDERRUN, NULL);
 
        if (irqbyte & OUT_DOWN)
-;//            printk("OUT_DOWN\n");
+               ;//             printk("OUT_DOWN\n");
 
        irqbyte = data[MPINT];
        if (irqbyte & RXCI_INT)
@@ -226,7 +226,7 @@ static void usb_int_complete(struct urb *urb)
        urb->actual_length = 0;
 
 exit:
-       status = usb_submit_urb (urb, GFP_ATOMIC);
+       status = usb_submit_urb(urb, GFP_ATOMIC);
        if (status)
                WARNING("usb_submit_urb failed with result %d", status);
 }
@@ -246,11 +246,11 @@ int st5481_setup_usb(struct st5481_adapter *adapter)
        int status;
        struct urb *urb;
        u8 *buf;
-       
-       DBG(2,"");
-       
-       if ((status = usb_reset_configuration (dev)) < 0) {
-               WARNING("reset_configuration failed,status=%d",status);
+
+       DBG(2, "");
+
+       if ((status = usb_reset_configuration(dev)) < 0) {
+               WARNING("reset_configuration failed,status=%d", status);
                return status;
        }
 
@@ -261,7 +261,7 @@ int st5481_setup_usb(struct st5481_adapter *adapter)
                return -ENXIO;
 
        // Check if the config is sane
-       if ( altsetting->desc.bNumEndpoints != 7 ) {
+       if (altsetting->desc.bNumEndpoints != 7) {
                WARNING("expecting 7 got %d endpoints!", altsetting->desc.bNumEndpoints);
                return -EINVAL;
        }
@@ -271,8 +271,8 @@ int st5481_setup_usb(struct st5481_adapter *adapter)
        altsetting->endpoint[4].desc.wMaxPacketSize = __constant_cpu_to_le16(32);
 
        // Use alternative setting 3 on interface 0 to have 2B+D
-       if ((status = usb_set_interface (dev, 0, 3)) < 0) {
-               WARNING("usb_set_interface failed,status=%d",status);
+       if ((status = usb_set_interface(dev, 0, 3)) < 0) {
+               WARNING("usb_set_interface failed,status=%d", status);
                return status;
        }
 
@@ -282,36 +282,36 @@ int st5481_setup_usb(struct st5481_adapter *adapter)
                return -ENOMEM;
        }
        ctrl->urb = urb;
-       
+
        // Fill the control URB
-       usb_fill_control_urb (urb, dev, 
-                         usb_sndctrlpipe(dev, 0),
-                         NULL, NULL, 0, usb_ctrl_complete, adapter);
+       usb_fill_control_urb(urb, dev,
+                            usb_sndctrlpipe(dev, 0),
+                            NULL, NULL, 0, usb_ctrl_complete, adapter);
+
 
-               
        fifo_init(&ctrl->msg_fifo.f, ARRAY_SIZE(ctrl->msg_fifo.data));
 
        // Allocate URBs and buffers for interrupt endpoint
        urb = usb_alloc_urb(0, GFP_KERNEL);
-       if (!urb) { 
+       if (!urb) {
                return -ENOMEM;
        }
        intr->urb = urb;
-       
+
        buf = kmalloc(INT_PKT_SIZE, GFP_KERNEL);
        if (!buf) {
                return -ENOMEM;
        }
 
        endpoint = &altsetting->endpoint[EP_INT-1];
-                               
+
        // Fill the interrupt URB
        usb_fill_int_urb(urb, dev,
-                    usb_rcvintpipe(dev, endpoint->desc.bEndpointAddress),
-                    buf, INT_PKT_SIZE,
-                    usb_int_complete, adapter,
-                    endpoint->desc.bInterval);
-               
+                        usb_rcvintpipe(dev, endpoint->desc.bEndpointAddress),
+                        buf, INT_PKT_SIZE,
+                        usb_int_complete, adapter,
+                        endpoint->desc.bInterval);
+
        return 0;
 }
 
@@ -324,7 +324,7 @@ void st5481_release_usb(struct st5481_adapter *adapter)
        struct st5481_intr *intr = &adapter->intr;
        struct st5481_ctrl *ctrl = &adapter->ctrl;
 
-       DBG(1,"");
+       DBG(1, "");
 
        // Stop and free Control and Interrupt URBs
        usb_kill_urb(ctrl->urb);
@@ -343,33 +343,33 @@ void st5481_release_usb(struct st5481_adapter *adapter)
  */
 void st5481_start(struct st5481_adapter *adapter)
 {
-       static const u8 init_cmd_table[]={
-               SET_DEFAULT,0,
-               STT,0,
-               SDA_MIN,0x0d,
-               SDA_MAX,0x29,
-               SDELAY_VALUE,0x14,
-               GPIO_DIR,0x01,          
-               GPIO_OUT,RED_LED,
+       static const u8 init_cmd_table[] = {
+               SET_DEFAULT, 0,
+               STT, 0,
+               SDA_MIN, 0x0d,
+               SDA_MAX, 0x29,
+               SDELAY_VALUE, 0x14,
+               GPIO_DIR, 0x01,
+               GPIO_OUT, RED_LED,
 //             FFCTRL_OUT_D,4,
 //             FFCTRH_OUT_D,12,
-               FFCTRL_OUT_B1,6,
-               FFCTRH_OUT_B1,20,
-               FFCTRL_OUT_B2,6,
-               FFCTRH_OUT_B2,20,
-               MPMSK,RXCI_INT+DEN_INT+DCOLL_INT,
+               FFCTRL_OUT_B1, 6,
+               FFCTRH_OUT_B1, 20,
+               FFCTRL_OUT_B2, 6,
+               FFCTRH_OUT_B2, 20,
+               MPMSK, RXCI_INT + DEN_INT + DCOLL_INT,
                0
-       };      
+       };
        struct st5481_intr *intr = &adapter->intr;
        int i = 0;
-       u8 request,value;
+       u8 request, value;
 
-       DBG(8,"");
+       DBG(8, "");
 
-       adapter->leds = RED_LED; 
+       adapter->leds = RED_LED;
 
        // Start receiving on the interrupt endpoint
-       SUBMIT_URB(intr->urb, GFP_KERNEL); 
+       SUBMIT_URB(intr->urb, GFP_KERNEL);
 
        while ((request = init_cmd_table[i++])) {
                value = init_cmd_table[i++];
@@ -383,7 +383,7 @@ void st5481_start(struct st5481_adapter *adapter)
  */
 void st5481_stop(struct st5481_adapter *adapter)
 {
-       DBG(8,"");
+       DBG(8, "");
 
        st5481_usb_device_ctrl_msg(adapter, SET_DEFAULT, 0, NULL, NULL);
 }
@@ -394,22 +394,22 @@ void st5481_stop(struct st5481_adapter *adapter)
 
 static void
 fill_isoc_urb(struct urb *urb, struct usb_device *dev,
-             unsigned int pipe, void *buf, int num_packets, 
+             unsigned int pipe, void *buf, int num_packets,
              int packet_size, usb_complete_t complete,
-             void *context) 
+             void *context)
 {
        int k;
 
-       urb->dev=dev;
-       urb->pipe=pipe;
+       urb->dev = dev;
+       urb->pipe = pipe;
        urb->interval = 1;
-       urb->transfer_buffer=buf;
+       urb->transfer_buffer = buf;
        urb->number_of_packets = num_packets;
-       urb->transfer_buffer_length=num_packets*packet_size;
+       urb->transfer_buffer_length = num_packets * packet_size;
        urb->actual_length = 0;
-       urb->complete=complete;
-       urb->context=context;
-       urb->transfer_flags=URB_ISO_ASAP;
+       urb->complete = complete;
+       urb->context = context;
+       urb->transfer_flags = URB_ISO_ASAP;
        for (k = 0; k < num_packets; k++) {
                urb->iso_frame_desc[k].offset = packet_size * k;
                urb->iso_frame_desc[k].length = packet_size;
@@ -418,10 +418,10 @@ fill_isoc_urb(struct urb *urb, struct usb_device *dev,
 }
 
 int
-st5481_setup_isocpipes(struct urb* urb[2], struct usb_device *dev, 
-                          unsigned int pipe, int num_packets,
-                          int packet_size, int buf_size,
-                          usb_complete_t complete, void *context)
+st5481_setup_isocpipes(struct urb *urb[2], struct usb_device *dev,
+                      unsigned int pipe, int num_packets,
+                      int packet_size, int buf_size,
+                      usb_complete_t complete, void *context)
 {
        int j, retval;
        unsigned char *buf;
@@ -436,15 +436,15 @@ st5481_setup_isocpipes(struct urb* urb[2], struct usb_device *dev,
                buf = kmalloc(buf_size, GFP_KERNEL);
                if (!buf)
                        goto err;
-                       
+
                // Fill the isochronous URB
-               fill_isoc_urb(urb[j], dev, pipe, buf, 
+               fill_isoc_urb(urb[j], dev, pipe, buf,
                              num_packets, packet_size, complete,
                              context);
        }
        return 0;
 
- err:
+err:
        for (j = 0; j < 2; j++) {
                if (urb[j]) {
                        kfree(urb[j]->transfer_buffer);
@@ -456,7 +456,7 @@ st5481_setup_isocpipes(struct urb* urb[2], struct usb_device *dev,
        return retval;
 }
 
-void st5481_release_isocpipes(struct urburb[2])
+void st5481_release_isocpipes(struct urb *urb[2])
 {
        int j;
 
@@ -471,8 +471,8 @@ void st5481_release_isocpipes(struct urb* urb[2])
 /*
  * Decode frames received on the B/D channel.
  * Note that this function will be called continuously
- * with 64Kbit/s / 16Kbit/s of data and hence it will be 
- * called 50 times per second with 20 ISOC descriptors. 
+ * with 64Kbit/s / 16Kbit/s of data and hence it will be
+ * called 50 times per second with 20 ISOC descriptors.
  * Called at interrupt.
  */
 static void usb_in_complete(struct urb *urb)
@@ -484,18 +484,18 @@ static void usb_in_complete(struct urb *urb)
 
        if (unlikely(urb->status < 0)) {
                switch (urb->status) {
-                       case -ENOENT:
-                       case -ESHUTDOWN:
-                       case -ECONNRESET:
-                               DBG(1,"urb killed status %d", urb->status);
-                               return; // Give up
-                       default: 
-                               WARNING("urb status %d",urb->status);
-                               break;
+               case -ENOENT:
+               case -ESHUTDOWN:
+               case -ECONNRESET:
+                       DBG(1, "urb killed status %d", urb->status);
+                       return; // Give up
+               default:
+                       WARNING("urb status %d", urb->status);
+                       break;
                }
        }
 
-       DBG_ISO_PACKET(0x80,urb);
+       DBG_ISO_PACKET(0x80, urb);
 
        len = st5481_isoc_flatten(urb);
        ptr = urb->transfer_buffer;
@@ -506,14 +506,14 @@ static void usb_in_complete(struct urb *urb)
                        len = 0;
                } else {
                        status = isdnhdlc_decode(&in->hdlc_state, ptr, len, &count,
-                               in->rcvbuf, in->bufsize);
+                                                in->rcvbuf, in->bufsize);
                        ptr += count;
                        len -= count;
                }
-               
+
                if (status > 0) {
                        // Good frame received
-                       DBG(4,"count=%d",status);
+                       DBG(4, "count=%d", status);
                        DBG_PACKET(0x400, in->rcvbuf, status);
                        if (!(skb = dev_alloc_skb(status))) {
                                WARNING("receive out of memory\n");
@@ -542,14 +542,14 @@ int st5481_setup_in(struct st5481_in *in)
        struct usb_device *dev = in->adapter->usb_dev;
        int retval;
 
-       DBG(4,"");
+       DBG(4, "");
 
        in->rcvbuf = kmalloc(in->bufsize, GFP_KERNEL);
        retval = -ENOMEM;
        if (!in->rcvbuf)
                goto err;
 
-       retval = st5481_setup_isocpipes(in->urb, dev, 
+       retval = st5481_setup_isocpipes(in->urb, dev,
                                        usb_rcvisocpipe(dev, in->ep),
                                        in->num_packets,  in->packet_size,
                                        in->num_packets * in->packet_size,
@@ -558,51 +558,51 @@ int st5481_setup_in(struct st5481_in *in)
                goto err_free;
        return 0;
 
- err_free:
+err_free:
        kfree(in->rcvbuf);
- err:
+err:
        return retval;
 }
 
 void st5481_release_in(struct st5481_in *in)
 {
-       DBG(2,"");
+       DBG(2, "");
 
        st5481_release_isocpipes(in->urb);
 }
 
 /*
  * Make the transfer_buffer contiguous by
- * copying from the iso descriptors if necessary. 
+ * copying from the iso descriptors if necessary.
  */
 static int st5481_isoc_flatten(struct urb *urb)
 {
-       struct usb_iso_packet_descriptor *pipd,*pend;
-       unsigned char *src,*dst;
+       struct usb_iso_packet_descriptor *pipd, *pend;
+       unsigned char *src, *dst;
        unsigned int len;
-       
+
        if (urb->status < 0) {
                return urb->status;
        }
        for (pipd = &urb->iso_frame_desc[0],
                     pend = &urb->iso_frame_desc[urb->number_of_packets],
-                    dst = urb->transfer_buffer; 
-            pipd < pend; 
+                    dst = urb->transfer_buffer;
+            pipd < pend;
             pipd++) {
-               
+
                if (pipd->status < 0) {
                        return (pipd->status);
                }
-       
+
                len = pipd->actual_length;
                pipd->actual_length = 0;
-               src = urb->transfer_buffer+pipd->offset;
+               src = urb->transfer_buffer + pipd->offset;
 
                if (src != dst) {
                        // Need to copy since isoc buffers not full
                        while (len--) {
                                *dst++ = *src++;
-                       }                       
+                       }
                } else {
                        // No need to copy, just update destination buffer
                        dst += len;
@@ -617,7 +617,7 @@ static void st5481_start_rcv(void *context)
        struct st5481_in *in = context;
        struct st5481_adapter *adapter = in->adapter;
 
-       DBG(4,"");
+       DBG(4, "");
 
        in->urb[0]->dev = adapter->usb_dev;
        SUBMIT_URB(in->urb[0], GFP_KERNEL);
@@ -654,4 +654,3 @@ void st5481_in_mode(struct st5481_in *in, int mode)
                                           0, NULL, NULL);
        }
 }
-
index 9b6db9c..9195f9f 100644 (file)
@@ -3,7 +3,7 @@
  * Author       Karsten Keil
  *              based on the teles driver from Jan den Ouden
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -43,7 +43,7 @@ enum {
        ST_TEI_IDVERIFY,
 };
 
-#define TEI_STATE_COUNT (ST_TEI_IDVERIFY+1)
+#define TEI_STATE_COUNT (ST_TEI_IDVERIFY + 1)
 
 static char *strTeiState[] =
 {
@@ -62,7 +62,7 @@ enum {
        EV_T202,
 };
 
-#define TEI_EVENT_COUNT (EV_T202+1)
+#define TEI_EVENT_COUNT (EV_T202 + 1)
 
 static char *strTeiEvent[] =
 {
@@ -130,14 +130,14 @@ tei_id_request(struct FsmInst *fi, int event, void *arg)
 
        if (st->l2.tei != -1) {
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "assign request for already assigned tei %d",
-                       st->l2.tei);
+                                       "assign request for already assigned tei %d",
+                                       st->l2.tei);
                return;
        }
        st->ma.ri = random_ri();
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "assign request ri %d", st->ma.ri);
+                                       "assign request ri %d", st->ma.ri);
        put_tei_msg(st, ID_REQUEST, st->ma.ri, 127);
        FsmChangeState(&st->ma.tei_m, ST_TEI_IDREQ);
        FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 1);
@@ -156,11 +156,11 @@ tei_id_assign(struct FsmInst *fi, int event, void *arg)
        tei = skb->data[4] >> 1;
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "identity assign ri %d tei %d", ri, tei);
+                                       "identity assign ri %d tei %d", ri, tei);
        if ((ost = findtei(st, tei))) { /* same tei is in use */
                if (ri != ost->ma.ri) {
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "possible duplicate assignment tei %d", tei);
+                                               "possible duplicate assignment tei %d", tei);
                        ost->l2.l2tei(ost, MDL_ERROR | RESPONSE, NULL);
                }
        } else if (ri == st->ma.ri) {
@@ -183,14 +183,14 @@ tei_id_test_dup(struct FsmInst *fi, int event, void *arg)
        tei = skb->data[4] >> 1;
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "foreign identity assign ri %d tei %d", ri, tei);
+                                       "foreign identity assign ri %d tei %d", ri, tei);
        if ((ost = findtei(st, tei))) { /* same tei is in use */
                if (ri != ost->ma.ri) { /* and it wasn't our request */
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "possible duplicate assignment tei %d", tei);
+                                               "possible duplicate assignment tei %d", tei);
                        FsmEvent(&ost->ma.tei_m, EV_VERIFY, NULL);
                }
-       } 
+       }
 }
 
 static void
@@ -204,7 +204,7 @@ tei_id_denied(struct FsmInst *fi, int event, void *arg)
        tei = skb->data[4] >> 1;
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "identity denied ri %d tei %d", ri, tei);
+                                       "identity denied ri %d tei %d", ri, tei);
 }
 
 static void
@@ -217,7 +217,7 @@ tei_id_chk_req(struct FsmInst *fi, int event, void *arg)
        tei = skb->data[4] >> 1;
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "identity check req tei %d", tei);
+                                       "identity check req tei %d", tei);
        if ((st->l2.tei != -1) && ((tei == GROUP_TEI) || (tei == st->l2.tei))) {
                FsmDelTimer(&st->ma.t202, 4);
                FsmChangeState(&st->ma.tei_m, ST_TEI_NOP);
@@ -236,7 +236,7 @@ tei_id_remove(struct FsmInst *fi, int event, void *arg)
        tei = skb->data[4] >> 1;
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "identity remove tei %d", tei);
+                                       "identity remove tei %d", tei);
        if ((st->l2.tei != -1) && ((tei == GROUP_TEI) || (tei == st->l2.tei))) {
                FsmDelTimer(&st->ma.t202, 5);
                FsmChangeState(&st->ma.tei_m, ST_TEI_NOP);
@@ -253,7 +253,7 @@ tei_id_verify(struct FsmInst *fi, int event, void *arg)
 
        if (st->ma.debug)
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "id verify request for tei %d", st->l2.tei);
+                                       "id verify request for tei %d", st->l2.tei);
        put_tei_msg(st, ID_VERIFY, 0, st->l2.tei);
        FsmChangeState(&st->ma.tei_m, ST_TEI_IDVERIFY);
        FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 2);
@@ -270,8 +270,8 @@ tei_id_req_tout(struct FsmInst *fi, int event, void *arg)
                st->ma.ri = random_ri();
                if (st->ma.debug)
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "assign req(%d) ri %d", 4 - st->ma.N202,
-                               st->ma.ri);
+                                               "assign req(%d) ri %d", 4 - st->ma.N202,
+                                               st->ma.ri);
                put_tei_msg(st, ID_REQUEST, st->ma.ri, 127);
                FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 3);
        } else {
@@ -292,13 +292,13 @@ tei_id_ver_tout(struct FsmInst *fi, int event, void *arg)
        if (--st->ma.N202) {
                if (st->ma.debug)
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "id verify req(%d) for tei %d",
-                               3 - st->ma.N202, st->l2.tei);
+                                               "id verify req(%d) for tei %d",
+                                               3 - st->ma.N202, st->l2.tei);
                put_tei_msg(st, ID_VERIFY, 0, st->l2.tei);
                FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 4);
        } else {
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "verify req for tei %d failed", st->l2.tei);
+                                       "verify req for tei %d failed", st->l2.tei);
                st->l3.l3l2(st, MDL_REMOVE | REQUEST, NULL);
                cs = (struct IsdnCardState *) st->l1.hardware;
                cs->cardmsg(cs, MDL_REMOVE | REQUEST, NULL);
@@ -320,25 +320,25 @@ tei_l1l2(struct PStack *st, int pr, void *arg)
        if (pr == (PH_DATA | INDICATION)) {
                if (skb->len < 3) {
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "short mgr frame %ld/3", skb->len);
+                                               "short mgr frame %ld/3", skb->len);
                } else if ((skb->data[0] != ((TEI_SAPI << 2) | 2)) ||
                           (skb->data[1] != ((GROUP_TEI << 1) | 1))) {
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "wrong mgr sapi/tei %x/%x",
-                               skb->data[0], skb->data[1]);
+                                               "wrong mgr sapi/tei %x/%x",
+                                               skb->data[0], skb->data[1]);
                } else if ((skb->data[2] & 0xef) != UI) {
                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                               "mgr frame is not ui %x", skb->data[2]);
+                                               "mgr frame is not ui %x", skb->data[2]);
                } else {
                        skb_pull(skb, 3);
                        if (skb->len < 5) {
                                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                                       "short mgr frame %ld/5", skb->len);
+                                                       "short mgr frame %ld/5", skb->len);
                        } else if (skb->data[0] != TEI_ENTITY_ID) {
                                /* wrong management entity identifier, ignore */
                                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                                       "tei handler wrong entity id %x",
-                                       skb->data[0]);
+                                                       "tei handler wrong entity id %x",
+                                                       skb->data[0]);
                        } else {
                                mt = skb->data[3];
                                if (mt == ID_ASSIGNED)
@@ -351,13 +351,13 @@ tei_l1l2(struct PStack *st, int pr, void *arg)
                                        FsmEvent(&st->ma.tei_m, EV_REMOVE, skb);
                                else {
                                        st->ma.tei_m.printdebug(&st->ma.tei_m,
-                                               "tei handler wrong mt %x\n", mt);
+                                                               "tei handler wrong mt %x\n", mt);
                                }
                        }
                }
        } else {
                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                       "tei handler wrong pr %x\n", pr);
+                                       "tei handler wrong pr %x\n", pr);
        }
        dev_kfree_skb(skb);
 }
@@ -371,7 +371,7 @@ tei_l2tei(struct PStack *st, int pr, void *arg)
                if (pr == (MDL_ASSIGN | INDICATION)) {
                        if (st->ma.debug)
                                st->ma.tei_m.printdebug(&st->ma.tei_m,
-                                       "fixed assign tei %d", st->l2.tei);
+                                                       "fixed assign tei %d", st->l2.tei);
                        st->l3.l3l2(st, MDL_ASSIGN | REQUEST, (void *) (long) st->l2.tei);
                        cs = (struct IsdnCardState *) st->l1.hardware;
                        cs->cardmsg(cs, MDL_ASSIGN | REQUEST, NULL);
@@ -379,14 +379,14 @@ tei_l2tei(struct PStack *st, int pr, void *arg)
                return;
        }
        switch (pr) {
-               case (MDL_ASSIGN | INDICATION):
-                       FsmEvent(&st->ma.tei_m, EV_IDREQ, arg);
-                       break;
-               case (MDL_ERROR | REQUEST):
-                       FsmEvent(&st->ma.tei_m, EV_VERIFY, arg);
-                       break;
-               default:
-                       break;
+       case (MDL_ASSIGN | INDICATION):
+               FsmEvent(&st->ma.tei_m, EV_IDREQ, arg);
+               break;
+       case (MDL_ERROR | REQUEST):
+               FsmEvent(&st->ma.tei_m, EV_VERIFY, arg);
+               break;
+       default:
+               break;
        }
 }
 
index b0ce4ae..fa329e2 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -18,7 +18,7 @@
 
 static const char *TeleInt_revision = "$Revision: 1.16.2.5 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static inline u_char
@@ -40,14 +40,14 @@ readreg(unsigned int ale, unsigned int adr, u_char off)
 }
 
 static inline void
-readfifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+readfifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        register u_char ret;
        register int max_delay = 20000;
        register int i;
-       
+
        byteout(ale, off);
-       for (i = 0; i<size; i++) {
+       for (i = 0; i < size; i++) {
                ret = HFC_BUSY & bytein(ale);
                while (ret && --max_delay)
                        ret = HFC_BUSY & bytein(ale);
@@ -78,14 +78,14 @@ writereg(unsigned int ale, unsigned int adr, u_char off, u_char data)
 }
 
 static inline void
-writefifo(unsigned int ale, unsigned int adr, u_char off, u_char * data, int size)
+writefifo(unsigned int ale, unsigned int adr, u_char off, u_char *data, int size)
 {
        register u_char ret;
        register int max_delay = 20000;
        register int i;
-       
+
        byteout(ale, off);
-       for (i = 0; i<size; i++) {
+       for (i = 0; i < size; i++) {
                ret = HFC_BUSY & bytein(ale);
                while (ret && --max_delay)
                        ret = HFC_BUSY & bytein(ale);
@@ -114,14 +114,14 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        cs->hw.hfc.cip = 0;
        readfifo(cs->hw.hfc.addr | 1, cs->hw.hfc.addr, 0, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        cs->hw.hfc.cip = 0;
        writefifo(cs->hw.hfc.addr | 1, cs->hw.hfc.addr, 0, data, size);
@@ -163,7 +163,7 @@ TeleInt_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.hfc.addr | 1, cs->hw.hfc.addr, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        val = readreg(cs->hw.hfc.addr | 1, cs->hw.hfc.addr, ISAC_ISTA);
@@ -183,7 +183,7 @@ TeleInt_Timer(struct IsdnCardState *cs)
 {
        int stat = 0;
        u_long flags;
-       
+
        spin_lock_irqsave(&cs->lock, flags);
        if (cs->bcs[0].mode) {
                stat |= 1;
@@ -194,7 +194,7 @@ TeleInt_Timer(struct IsdnCardState *cs)
                main_irq_hfc(&cs->bcs[1]);
        }
        spin_unlock_irqrestore(&cs->lock, flags);
-       stat = HZ/100;
+       stat = HZ / 100;
        if (!stat)
                stat = 1;
        cs->hw.hfc.timer.expires = jiffies + stat;
@@ -229,34 +229,34 @@ TeleInt_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        int delay;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_TeleInt(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_TeleInt(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_TeleInt(cs);
-                       inithfc(cs);
-                       clear_pending_isac_ints(cs);
-                       initisac(cs);
-                       /* Reenable all IRQ */
-                       cs->writeisac(cs, ISAC_MASK, 0);
-                       cs->writeisac(cs, ISAC_CMDR, 0x41);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       delay = HZ/100;
-                       if (!delay)
-                               delay = 1;
-                       cs->hw.hfc.timer.expires = jiffies + delay;
-                       add_timer(&cs->hw.hfc.timer);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_TeleInt(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_TeleInt(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_TeleInt(cs);
+               inithfc(cs);
+               clear_pending_isac_ints(cs);
+               initisac(cs);
+               /* Reenable all IRQ */
+               cs->writeisac(cs, ISAC_MASK, 0);
+               cs->writeisac(cs, ISAC_CMDR, 0x41);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               delay = HZ / 100;
+               if (!delay)
+                       delay = 1;
+               cs->hw.hfc.timer.expires = jiffies + delay;
+               add_timer(&cs->hw.hfc.timer);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 int __devinit
@@ -293,34 +293,34 @@ setup_TeleInt(struct IsdnCard *card)
        byteout(cs->hw.hfc.addr, cs->hw.hfc.addr & 0xff);
        byteout(cs->hw.hfc.addr | 1, ((cs->hw.hfc.addr & 0x300) >> 8) | 0x54);
        switch (cs->irq) {
-               case 3:
-                       cs->hw.hfc.cirm |= HFC_INTA;
-                       break;
-               case 4:
-                       cs->hw.hfc.cirm |= HFC_INTB;
-                       break;
-               case 5:
-                       cs->hw.hfc.cirm |= HFC_INTC;
-                       break;
-               case 7:
-                       cs->hw.hfc.cirm |= HFC_INTD;
-                       break;
-               case 10:
-                       cs->hw.hfc.cirm |= HFC_INTE;
-                       break;
-               case 11:
-                       cs->hw.hfc.cirm |= HFC_INTF;
-                       break;
-               default:
-                       printk(KERN_WARNING "TeleInt: wrong IRQ\n");
-                       release_io_TeleInt(cs);
-                       return (0);
+       case 3:
+               cs->hw.hfc.cirm |= HFC_INTA;
+               break;
+       case 4:
+               cs->hw.hfc.cirm |= HFC_INTB;
+               break;
+       case 5:
+               cs->hw.hfc.cirm |= HFC_INTC;
+               break;
+       case 7:
+               cs->hw.hfc.cirm |= HFC_INTD;
+               break;
+       case 10:
+               cs->hw.hfc.cirm |= HFC_INTE;
+               break;
+       case 11:
+               cs->hw.hfc.cirm |= HFC_INTF;
+               break;
+       default:
+               printk(KERN_WARNING "TeleInt: wrong IRQ\n");
+               release_io_TeleInt(cs);
+               return (0);
        }
        byteout(cs->hw.hfc.addr | 1, cs->hw.hfc.cirm);
        byteout(cs->hw.hfc.addr | 1, cs->hw.hfc.ctmt);
 
        printk(KERN_INFO "TeleInt: defined at 0x%x IRQ %d\n",
-               cs->hw.hfc.addr, cs->irq);
+              cs->hw.hfc.addr, cs->irq);
 
        setup_isac(cs);
        cs->readisac = &ReadISAC;
index 3ca0bed..49b4a26 100644 (file)
@@ -5,7 +5,7 @@
  * Author       Karsten Keil
  *              based on the teles driver from Jan den Ouden
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -24,7 +24,7 @@
 static const char *teles0_revision = "$Revision: 2.15.2.4 $";
 
 #define TELES_IOMEM_SIZE       0x400
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static inline u_char
@@ -55,7 +55,7 @@ writehscx(void __iomem *adr, int hscx, u_char off, u_char data)
 }
 
 static inline void
-read_fifo_isac(void __iomem *adr, u_char * data, int size)
+read_fifo_isac(void __iomem *adr, u_char *data, int size)
 {
        register int i;
        register u_char __iomem *ad = adr + 0x100;
@@ -64,7 +64,7 @@ read_fifo_isac(void __iomem *adr, u_char * data, int size)
 }
 
 static inline void
-write_fifo_isac(void __iomem *adr, u_char * data, int size)
+write_fifo_isac(void __iomem *adr, u_char *data, int size)
 {
        register int i;
        register u_char __iomem *ad = adr + 0x100;
@@ -74,7 +74,7 @@ write_fifo_isac(void __iomem *adr, u_char * data, int size)
 }
 
 static inline void
-read_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
+read_fifo_hscx(void __iomem *adr, int hscx, u_char *data, int size)
 {
        register int i;
        register u_char __iomem *ad = adr + (hscx ? 0x1c0 : 0x180);
@@ -83,7 +83,7 @@ read_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
 }
 
 static inline void
-write_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
+write_fifo_hscx(void __iomem *adr, int hscx, u_char *data, int size)
 {
        int i;
        register u_char __iomem *ad = adr + (hscx ? 0x1c0 : 0x180);
@@ -107,13 +107,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        read_fifo_isac(cs->hw.teles0.membase, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        write_fifo_isac(cs->hw.teles0.membase, data, size);
 }
@@ -151,11 +151,11 @@ teles0_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readhscx(cs->hw.teles0.membase, 1, HSCX_ISTA);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readisac(cs->hw.teles0.membase, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        count++;
@@ -197,33 +197,33 @@ reset_teles0(struct IsdnCardState *cs)
 
        if (cs->hw.teles0.cfg_reg) {
                switch (cs->irq) {
-                       case 2:
-                       case 9:
-                               cfval = 0x00;
-                               break;
-                       case 3:
-                               cfval = 0x02;
-                               break;
-                       case 4:
-                               cfval = 0x04;
-                               break;
-                       case 5:
-                               cfval = 0x06;
-                               break;
-                       case 10:
-                               cfval = 0x08;
-                               break;
-                       case 11:
-                               cfval = 0x0A;
-                               break;
-                       case 12:
-                               cfval = 0x0C;
-                               break;
-                       case 15:
-                               cfval = 0x0E;
-                               break;
-                       default:
-                               return(1);
+               case 2:
+               case 9:
+                       cfval = 0x00;
+                       break;
+               case 3:
+                       cfval = 0x02;
+                       break;
+               case 4:
+                       cfval = 0x04;
+                       break;
+               case 5:
+                       cfval = 0x06;
+                       break;
+               case 10:
+                       cfval = 0x08;
+                       break;
+               case 11:
+                       cfval = 0x0A;
+                       break;
+               case 12:
+                       cfval = 0x0C;
+                       break;
+               case 15:
+                       cfval = 0x0E;
+                       break;
+               default:
+                       return (1);
                }
                cfval |= ((cs->hw.teles0.phymem >> 9) & 0xF0);
                byteout(cs->hw.teles0.cfg_reg + 4, cfval);
@@ -235,7 +235,7 @@ reset_teles0(struct IsdnCardState *cs)
        HZDELAY(HZ / 5 + 1);
        writeb(1, cs->hw.teles0.membase + 0x80); mb();
        HZDELAY(HZ / 5 + 1);
-       return(0);
+       return (0);
 }
 
 static int
@@ -244,23 +244,23 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_teles0(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_teles0(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_teles0(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_teles0(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 int __devinit
@@ -283,14 +283,14 @@ setup_teles0(struct IsdnCard *card)
        if (card->para[1] < 0x10000) {
                card->para[1] <<= 4;
                printk(KERN_INFO
-                  "Teles0: membase configured DOSish, assuming 0x%lx\n",
+                      "Teles0: membase configured DOSish, assuming 0x%lx\n",
                       (unsigned long) card->para[1]);
        }
        cs->irq = card->para[0];
        if (cs->hw.teles0.cfg_reg) {
                if (!request_region(cs->hw.teles0.cfg_reg, 8, "teles cfg")) {
                        printk(KERN_WARNING
-                         "HiSax: %s config port %x-%x already in use\n",
+                              "HiSax: %s config port %x-%x already in use\n",
                               CardType[card->typ],
                               cs->hw.teles0.cfg_reg,
                               cs->hw.teles0.cfg_reg + 8);
@@ -311,8 +311,8 @@ setup_teles0(struct IsdnCard *card)
                        return (0);
                }
                val = bytein(cs->hw.teles0.cfg_reg + 2);        /* 0x1e=without AB
-                                                                  * 0x1f=with AB
-                                                                  * 0x1c 16.3 ???
+                                                                * 0x1f=with AB
+                                                                * 0x1c 16.3 ???
                                                                 */
                if (val != 0x1e && val != 0x1f) {
                        printk(KERN_WARNING "Teles0: 16.0 Byte at %x is %x\n",
@@ -326,10 +326,10 @@ setup_teles0(struct IsdnCard *card)
        cs->hw.teles0.phymem = card->para[1];
        if (!request_mem_region(cs->hw.teles0.phymem, TELES_IOMEM_SIZE, "teles iomem")) {
                printk(KERN_WARNING
-                       "HiSax: %s memory region %lx-%lx already in use\n",
-                       CardType[card->typ],
-                       cs->hw.teles0.phymem,
-                       cs->hw.teles0.phymem + TELES_IOMEM_SIZE);
+                      "HiSax: %s memory region %lx-%lx already in use\n",
+                      CardType[card->typ],
+                      cs->hw.teles0.phymem,
+                      cs->hw.teles0.phymem + TELES_IOMEM_SIZE);
                if (cs->hw.teles0.cfg_reg)
                        release_region(cs->hw.teles0.cfg_reg, 8);
                return (0);
@@ -357,7 +357,7 @@ setup_teles0(struct IsdnCard *card)
        ISACVersion(cs, "Teles0:");
        if (HscxVersion(cs, "Teles0:")) {
                printk(KERN_WARNING
-                "Teles0: wrong HSCX versions check IO/MEM addresses\n");
+                      "Teles0: wrong HSCX versions check IO/MEM addresses\n");
                release_io_teles0(cs);
                return (0);
        }
index e9f5bb4..220b919 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Karsten Keil
  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -22,7 +22,7 @@
 
 static const char *teles3_revision = "$Revision: 2.19.2.4 $";
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 static inline u_char
@@ -39,13 +39,13 @@ writereg(unsigned int adr, u_char off, u_char data)
 
 
 static inline void
-read_fifo(unsigned int adr, u_char * data, int size)
+read_fifo(unsigned int adr, u_char *data, int size)
 {
        insb(adr, data, size);
 }
 
 static void
-write_fifo(unsigned int adr, u_char * data, int size)
+write_fifo(unsigned int adr, u_char *data, int size)
 {
        outsb(adr, data, size);
 }
@@ -65,13 +65,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        read_fifo(cs->hw.teles3.isacfifo, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        write_fifo(cs->hw.teles3.isacfifo, data, size);
 }
@@ -110,11 +110,11 @@ teles3_interrupt(int intno, void *dev_id)
 
        spin_lock_irqsave(&cs->lock, flags);
        val = readreg(cs->hw.teles3.hscx[1], HSCX_ISTA);
-      Start_HSCX:
+Start_HSCX:
        if (val)
                hscx_int_main(cs, val);
        val = readreg(cs->hw.teles3.isac, ISAC_ISTA);
-      Start_ISAC:
+Start_ISAC:
        if (val)
                isac_interrupt(cs, val);
        count++;
@@ -178,33 +178,33 @@ reset_teles3(struct IsdnCardState *cs)
        if (cs->typ != ISDN_CTYPE_TELESPCMCIA) {
                if ((cs->hw.teles3.cfg_reg) && (cs->typ != ISDN_CTYPE_COMPAQ_ISA)) {
                        switch (cs->irq) {
-                               case 2:
-                               case 9:
-                                       irqcfg = 0x00;
-                                       break;
-                               case 3:
-                                       irqcfg = 0x02;
-                                       break;
-                               case 4:
-                                       irqcfg = 0x04;
-                                       break;
-                               case 5:
-                                       irqcfg = 0x06;
-                                       break;
-                               case 10:
-                                       irqcfg = 0x08;
-                                       break;
-                               case 11:
-                                       irqcfg = 0x0A;
-                                       break;
-                               case 12:
-                                       irqcfg = 0x0C;
-                                       break;
-                               case 15:
-                                       irqcfg = 0x0E;
-                                       break;
-                               default:
-                                       return(1);
+                       case 2:
+                       case 9:
+                               irqcfg = 0x00;
+                               break;
+                       case 3:
+                               irqcfg = 0x02;
+                               break;
+                       case 4:
+                               irqcfg = 0x04;
+                               break;
+                       case 5:
+                               irqcfg = 0x06;
+                               break;
+                       case 10:
+                               irqcfg = 0x08;
+                               break;
+                       case 11:
+                               irqcfg = 0x0A;
+                               break;
+                       case 12:
+                               irqcfg = 0x0C;
+                               break;
+                       case 15:
+                               irqcfg = 0x0E;
+                               break;
+                       default:
+                               return (1);
                        }
                        byteout(cs->hw.teles3.cfg_reg + 4, irqcfg);
                        HZDELAY(HZ / 10 + 1);
@@ -223,7 +223,7 @@ reset_teles3(struct IsdnCardState *cs)
                        HZDELAY(2);
                }
        }
-       return(0);
+       return (0);
 }
 
 static int
@@ -232,36 +232,36 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       reset_teles3(cs);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_teles3(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               spin_lock_irqsave(&cs->lock, flags);
+               reset_teles3(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_RELEASE:
+               release_io_teles3(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 #ifdef __ISAPNP__
 
 static struct isapnp_device_id teles_ids[] __devinitdata = {
        { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110),
-         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), 
+         ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110),
          (unsigned long) "Teles 16.3 PnP" },
        { ISAPNP_VENDOR('C', 'T', 'X'), ISAPNP_FUNCTION(0x0),
-         ISAPNP_VENDOR('C', 'T', 'X'), ISAPNP_FUNCTION(0x0), 
+         ISAPNP_VENDOR('C', 'T', 'X'), ISAPNP_FUNCTION(0x0),
          (unsigned long) "Creatix 16.3 PnP" },
        { ISAPNP_VENDOR('C', 'P', 'Q'), ISAPNP_FUNCTION(0x1002),
-         ISAPNP_VENDOR('C', 'P', 'Q'), ISAPNP_FUNCTION(0x1002), 
+         ISAPNP_VENDOR('C', 'P', 'Q'), ISAPNP_FUNCTION(0x1002),
          (unsigned long) "Compaq ISDN S0" },
        { 0, }
 };
@@ -286,22 +286,22 @@ setup_teles3(struct IsdnCard *card)
 #ifdef __ISAPNP__
        if (!card->para[1] && isapnp_present()) {
                struct pnp_dev *pnp_d;
-               while(ipid->card_vendor) {
+               while (ipid->card_vendor) {
                        if ((pnp_c = pnp_find_card(ipid->card_vendor,
-                               ipid->card_device, pnp_c))) {
+                                                  ipid->card_device, pnp_c))) {
                                pnp_d = NULL;
                                if ((pnp_d = pnp_find_dev(pnp_c,
-                                       ipid->vendor, ipid->function, pnp_d))) {
+                                                         ipid->vendor, ipid->function, pnp_d))) {
                                        int err;
 
                                        printk(KERN_INFO "HiSax: %s detected\n",
-                                               (char *)ipid->driver_data);
+                                              (char *)ipid->driver_data);
                                        pnp_disable_dev(pnp_d);
                                        err = pnp_activate_dev(pnp_d);
-                                       if (err<0) {
+                                       if (err < 0) {
                                                printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)\n",
-                                                       __func__, err);
-                                               return(0);
+                                                      __func__, err);
+                                               return (0);
                                        }
                                        card->para[3] = pnp_port_start(pnp_d, 2);
                                        card->para[2] = pnp_port_start(pnp_d, 1);
@@ -309,9 +309,9 @@ setup_teles3(struct IsdnCard *card)
                                        card->para[0] = pnp_irq(pnp_d, 0);
                                        if (!card->para[0] || !card->para[1] || !card->para[2]) {
                                                printk(KERN_ERR "Teles PnP:some resources are missing %ld/%lx/%lx\n",
-                                                       card->para[0], card->para[1], card->para[2]);
+                                                      card->para[0], card->para[1], card->para[2]);
                                                pnp_disable_dev(pnp_d);
-                                               return(0);
+                                               return (0);
                                        }
                                        break;
                                } else {
@@ -320,21 +320,21 @@ setup_teles3(struct IsdnCard *card)
                        }
                        ipid++;
                        pnp_c = NULL;
-               } 
+               }
                if (!ipid->card_vendor) {
                        printk(KERN_INFO "Teles PnP: no ISAPnP card found\n");
-                       return(0);
+                       return (0);
                }
        }
 #endif
        if (cs->typ == ISDN_CTYPE_16_3) {
                cs->hw.teles3.cfg_reg = card->para[1];
                switch (cs->hw.teles3.cfg_reg) {
-                       case 0x180:
-                       case 0x280:
-                       case 0x380:
-                               cs->hw.teles3.cfg_reg |= 0xc00;
-                               break;
+               case 0x180:
+               case 0x280:
+               case 0x380:
+                       cs->hw.teles3.cfg_reg |= 0xc00;
+                       break;
                }
                cs->hw.teles3.isac = cs->hw.teles3.cfg_reg - 0x420;
                cs->hw.teles3.hscx[0] = cs->hw.teles3.cfg_reg - 0xc20;
@@ -374,9 +374,9 @@ setup_teles3(struct IsdnCard *card)
                        if (cs->typ == ISDN_CTYPE_COMPAQ_ISA) {
                                if (!request_region(cs->hw.teles3.cfg_reg, 1, "teles3 cfg")) {
                                        printk(KERN_WARNING
-                                               "HiSax: %s config port %x already in use\n",
-                                               CardType[card->typ],
-                                               cs->hw.teles3.cfg_reg);
+                                              "HiSax: %s config port %x already in use\n",
+                                              CardType[card->typ],
+                                              cs->hw.teles3.cfg_reg);
                                        return (0);
                                }
                        } else {
@@ -385,14 +385,14 @@ setup_teles3(struct IsdnCard *card)
                                               "HiSax: %s config port %x-%x already in use\n",
                                               CardType[card->typ],
                                               cs->hw.teles3.cfg_reg,
-                                               cs->hw.teles3.cfg_reg + 8);
+                                              cs->hw.teles3.cfg_reg + 8);
                                        return (0);
                                }
                        }
                }
                if (!request_region(cs->hw.teles3.isac + 32, 32, "HiSax isac")) {
                        printk(KERN_WARNING
-                          "HiSax: %s isac ports %x-%x already in use\n",
+                              "HiSax: %s isac ports %x-%x already in use\n",
                               CardType[cs->typ],
                               cs->hw.teles3.isac + 32,
                               cs->hw.teles3.isac + 64);
@@ -407,7 +407,7 @@ setup_teles3(struct IsdnCard *card)
                }
                if (!request_region(cs->hw.teles3.hscx[0] + 32, 32, "HiSax hscx A")) {
                        printk(KERN_WARNING
-                        "HiSax: %s hscx A ports %x-%x already in use\n",
+                              "HiSax: %s hscx A ports %x-%x already in use\n",
                               CardType[cs->typ],
                               cs->hw.teles3.hscx[0] + 32,
                               cs->hw.teles3.hscx[0] + 64);
@@ -423,7 +423,7 @@ setup_teles3(struct IsdnCard *card)
                }
                if (!request_region(cs->hw.teles3.hscx[1] + 32, 32, "HiSax hscx B")) {
                        printk(KERN_WARNING
-                        "HiSax: %s hscx B ports %x-%x already in use\n",
+                              "HiSax: %s hscx B ports %x-%x already in use\n",
                               CardType[cs->typ],
                               cs->hw.teles3.hscx[1] + 32,
                               cs->hw.teles3.hscx[1] + 64);
index 161a193..bfe9428 100644 (file)
@@ -1,20 +1,20 @@
 /* $Id: teles_cs.c,v 1.1.2.2 2004/01/25 15:07:06 keil Exp $ */
 /*======================================================================
 
-    A teles S0 PCMCIA client driver
+  A teles S0 PCMCIA client driver
 
-    Based on skeleton by David Hinds, dhinds@allegro.stanford.edu
-    Written by Christof Petig, christof.petig@wtal.de
-    
-    Also inspired by ELSA PCMCIA driver 
-    by Klaus Lichtenwalder <Lichtenwalder@ACM.org>
-    
-    Extensions to new hisax_pcmcia by Karsten Keil
+  Based on skeleton by David Hinds, dhinds@allegro.stanford.edu
+  Written by Christof Petig, christof.petig@wtal.de
 
-    minor changes to be compatible with kernel 2.4.x
-    by Jan.Schubert@GMX.li
+  Also inspired by ELSA PCMCIA driver
+  by Klaus Lichtenwalder <Lichtenwalder@ACM.org>
 
-======================================================================*/
+  Extensions to new hisax_pcmcia by Karsten Keil
+
+  minor changes to be compatible with kernel 2.4.x
+  by Jan.Schubert@GMX.li
+
+  ======================================================================*/
 
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -44,33 +44,33 @@ MODULE_LICENSE("GPL");
 static int protocol = 2;        /* EURO-ISDN Default */
 module_param(protocol, int, 0);
 
-static int teles_cs_config(struct pcmcia_device *link) __devinit ;
+static int teles_cs_config(struct pcmcia_device *link) __devinit;
 static void teles_cs_release(struct pcmcia_device *link);
-static void teles_detach(struct pcmcia_device *p_dev) __devexit ;
+static void teles_detach(struct pcmcia_device *p_dev) __devexit;
 
 typedef struct local_info_t {
        struct pcmcia_device    *p_dev;
-    int                 busy;
-    int                        cardnr;
+       int                 busy;
+       int                     cardnr;
 } local_info_t;
 
 static int __devinit teles_probe(struct pcmcia_device *link)
 {
-    local_info_t *local;
+       local_info_t *local;
 
-    dev_dbg(&link->dev, "teles_attach()\n");
+       dev_dbg(&link->dev, "teles_attach()\n");
 
-    /* Allocate space for private device-specific data */
-    local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
-    if (!local) return -ENOMEM;
-    local->cardnr = -1;
+       /* Allocate space for private device-specific data */
+       local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
+       if (!local) return -ENOMEM;
+       local->cardnr = -1;
 
-    local->p_dev = link;
-    link->priv = local;
+       local->p_dev = link;
+       link->priv = local;
 
-    link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
+       link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
 
-    return teles_cs_config(link);
+       return teles_cs_config(link);
 } /* teles_attach */
 
 static void __devexit teles_detach(struct pcmcia_device *link)
@@ -111,64 +111,64 @@ static int teles_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
 
 static int __devinit teles_cs_config(struct pcmcia_device *link)
 {
-    int i;
-    IsdnCard_t icard;
-
-    dev_dbg(&link->dev, "teles_config(0x%p)\n", link);
-
-    i = pcmcia_loop_config(link, teles_cs_configcheck, NULL);
-    if (i != 0)
-       goto cs_failed;
-
-    if (!link->irq)
-        goto cs_failed;
-
-    i = pcmcia_enable_device(link);
-    if (i != 0)
-      goto cs_failed;
-
-    icard.para[0] = link->irq;
-    icard.para[1] = link->resource[0]->start;
-    icard.protocol = protocol;
-    icard.typ = ISDN_CTYPE_TELESPCMCIA;
-    
-    i = hisax_init_pcmcia(link, &(((local_info_t*)link->priv)->busy), &icard);
-    if (i < 0) {
-       printk(KERN_ERR "teles_cs: failed to initialize Teles PCMCIA %d at i/o %#x\n",
-                       i, (unsigned int) link->resource[0]->start);
-       teles_cs_release(link);
-       return -ENODEV;
-    }
+       int i;
+       IsdnCard_t icard;
+
+       dev_dbg(&link->dev, "teles_config(0x%p)\n", link);
+
+       i = pcmcia_loop_config(link, teles_cs_configcheck, NULL);
+       if (i != 0)
+               goto cs_failed;
+
+       if (!link->irq)
+               goto cs_failed;
+
+       i = pcmcia_enable_device(link);
+       if (i != 0)
+               goto cs_failed;
 
-    ((local_info_t*)link->priv)->cardnr = i;
-    return 0;
+       icard.para[0] = link->irq;
+       icard.para[1] = link->resource[0]->start;
+       icard.protocol = protocol;
+       icard.typ = ISDN_CTYPE_TELESPCMCIA;
+
+       i = hisax_init_pcmcia(link, &(((local_info_t *)link->priv)->busy), &icard);
+       if (i < 0) {
+               printk(KERN_ERR "teles_cs: failed to initialize Teles PCMCIA %d at i/o %#x\n",
+                      i, (unsigned int) link->resource[0]->start);
+               teles_cs_release(link);
+               return -ENODEV;
+       }
+
+       ((local_info_t *)link->priv)->cardnr = i;
+       return 0;
 
 cs_failed:
-    teles_cs_release(link);
-    return -ENODEV;
+       teles_cs_release(link);
+       return -ENODEV;
 } /* teles_cs_config */
 
 static void teles_cs_release(struct pcmcia_device *link)
 {
-    local_info_t *local = link->priv;
+       local_info_t *local = link->priv;
 
-    dev_dbg(&link->dev, "teles_cs_release(0x%p)\n", link);
+       dev_dbg(&link->dev, "teles_cs_release(0x%p)\n", link);
 
-    if (local) {
-       if (local->cardnr >= 0) {
-           /* no unregister function with hisax */
-           HiSax_closecard(local->cardnr);
+       if (local) {
+               if (local->cardnr >= 0) {
+                       /* no unregister function with hisax */
+                       HiSax_closecard(local->cardnr);
+               }
        }
-    }
 
-    pcmcia_disable_device(link);
+       pcmcia_disable_device(link);
 } /* teles_cs_release */
 
 static int teles_suspend(struct pcmcia_device *link)
 {
        local_info_t *dev = link->priv;
 
-        dev->busy = 1;
+       dev->busy = 1;
 
        return 0;
 }
@@ -177,7 +177,7 @@ static int teles_resume(struct pcmcia_device *link)
 {
        local_info_t *dev = link->priv;
 
-        dev->busy = 0;
+       dev->busy = 0;
 
        return 0;
 }
index b85ceb3..9c002c9 100644 (file)
@@ -6,7 +6,7 @@
  *              Karsten Keil
  * Copyright    by Ton van Rosmalen
  *              by Karsten Keil      <keil@isdn4linux.de>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -36,9 +36,9 @@ static const char *telespci_revision = "$Revision: 2.23.2.3 $";
 #define READ_DATA_HSCX (ZORAN_PO_GID1 | ZORAN_PO_GREG1)
 #define WRITE_DATA_HSCX        (ZORAN_PO_WR | ZORAN_PO_GID1 | ZORAN_PO_GREG1)
 
-#define ZORAN_WAIT_NOBUSY      do { \
-                                       portdata = readl(adr + 0x200); \
-                               } while (portdata & ZORAN_PO_RQ_PEN)
+#define ZORAN_WAIT_NOBUSY      do {            \
+               portdata = readl(adr + 0x200);  \
+       } while (portdata & ZORAN_PO_RQ_PEN)
 
 static inline u_char
 readisac(void __iomem *adr, u_char off)
@@ -46,15 +46,15 @@ readisac(void __iomem *adr, u_char off)
        register unsigned int portdata;
 
        ZORAN_WAIT_NOBUSY;
-       
+
        /* set address for ISAC */
        writel(WRITE_ADDR_ISAC | off, adr + 0x200);
        ZORAN_WAIT_NOBUSY;
-       
+
        /* read data from ISAC */
        writel(READ_DATA_ISAC, adr + 0x200);
        ZORAN_WAIT_NOBUSY;
-       return((u_char)(portdata & ZORAN_PO_DMASK));
+       return ((u_char)(portdata & ZORAN_PO_DMASK));
 }
 
 static inline void
@@ -63,7 +63,7 @@ writeisac(void __iomem *adr, u_char off, u_char data)
        register unsigned int portdata;
 
        ZORAN_WAIT_NOBUSY;
-       
+
        /* set address for ISAC */
        writel(WRITE_ADDR_ISAC | off, adr + 0x200);
        ZORAN_WAIT_NOBUSY;
@@ -80,9 +80,9 @@ readhscx(void __iomem *adr, int hscx, u_char off)
 
        ZORAN_WAIT_NOBUSY;
        /* set address for HSCX */
-       writel(WRITE_ADDR_HSCX | ((hscx ? 0x40:0) + off), adr + 0x200);
+       writel(WRITE_ADDR_HSCX | ((hscx ? 0x40 : 0) + off), adr + 0x200);
        ZORAN_WAIT_NOBUSY;
-       
+
        /* read data from HSCX */
        writel(READ_DATA_HSCX, adr + 0x200);
        ZORAN_WAIT_NOBUSY;
@@ -96,7 +96,7 @@ writehscx(void __iomem *adr, int hscx, u_char off, u_char data)
 
        ZORAN_WAIT_NOBUSY;
        /* set address for HSCX */
-       writel(WRITE_ADDR_HSCX | ((hscx ? 0x40:0) + off), adr + 0x200);
+       writel(WRITE_ADDR_HSCX | ((hscx ? 0x40 : 0) + off), adr + 0x200);
        ZORAN_WAIT_NOBUSY;
 
        /* write data to HSCX */
@@ -105,7 +105,7 @@ writehscx(void __iomem *adr, int hscx, u_char off, u_char data)
 }
 
 static inline void
-read_fifo_isac(void __iomem *adr, u_char * data, int size)
+read_fifo_isac(void __iomem *adr, u_char *data, int size)
 {
        register unsigned int portdata;
        register int i;
@@ -123,7 +123,7 @@ read_fifo_isac(void __iomem *adr, u_char * data, int size)
 }
 
 static void
-write_fifo_isac(void __iomem *adr, u_char * data, int size)
+write_fifo_isac(void __iomem *adr, u_char *data, int size)
 {
        register unsigned int portdata;
        register int i;
@@ -140,7 +140,7 @@ write_fifo_isac(void __iomem *adr, u_char * data, int size)
 }
 
 static inline void
-read_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
+read_fifo_hscx(void __iomem *adr, int hscx, u_char *data, int size)
 {
        register unsigned int portdata;
        register int i;
@@ -149,7 +149,7 @@ read_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
        /* read data from HSCX */
        for (i = 0; i < size; i++) {
                /* set address for HSCX fifo */
-               writel(WRITE_ADDR_HSCX |(hscx ? 0x5F:0x1F), adr + 0x200);
+               writel(WRITE_ADDR_HSCX | (hscx ? 0x5F : 0x1F), adr + 0x200);
                ZORAN_WAIT_NOBUSY;
                writel(READ_DATA_HSCX, adr + 0x200);
                ZORAN_WAIT_NOBUSY;
@@ -158,7 +158,7 @@ read_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
 }
 
 static inline void
-write_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
+write_fifo_hscx(void __iomem *adr, int hscx, u_char *data, int size)
 {
        unsigned int portdata;
        register int i;
@@ -167,7 +167,7 @@ write_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
        /* write data to HSCX */
        for (i = 0; i < size; i++) {
                /* set address for HSCX fifo */
-               writel(WRITE_ADDR_HSCX |(hscx ? 0x5F:0x1F), adr + 0x200);
+               writel(WRITE_ADDR_HSCX | (hscx ? 0x5F : 0x1F), adr + 0x200);
                ZORAN_WAIT_NOBUSY;
                writel(WRITE_DATA_HSCX | data[i], adr + 0x200);
                ZORAN_WAIT_NOBUSY;
@@ -190,13 +190,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        read_fifo_isac(cs->hw.teles0.membase, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        write_fifo_isac(cs->hw.teles0.membase, data, size);
 }
@@ -267,20 +267,20 @@ TelesPCI_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        u_long flags;
 
        switch (mt) {
-               case CARD_RESET:
-                       return(0);
-               case CARD_RELEASE:
-                       release_io_telespci(cs);
-                       return(0);
-               case CARD_INIT:
-                       spin_lock_irqsave(&cs->lock, flags);
-                       inithscxisac(cs, 3);
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       return(0);
-               case CARD_TEST:
-                       return(0);
+       case CARD_RESET:
+               return (0);
+       case CARD_RELEASE:
+               release_io_telespci(cs);
+               return (0);
+       case CARD_INIT:
+               spin_lock_irqsave(&cs->lock, flags);
+               inithscxisac(cs, 3);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
-       return(0);
+       return (0);
 }
 
 static struct pci_dev *dev_tel __devinitdata = NULL;
@@ -300,22 +300,22 @@ setup_telespci(struct IsdnCard *card)
        if (cs->typ != ISDN_CTYPE_TELESPCI)
                return (0);
 
-       if ((dev_tel = hisax_find_pci_device (PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36120, dev_tel))) {
+       if ((dev_tel = hisax_find_pci_device(PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36120, dev_tel))) {
                if (pci_enable_device(dev_tel))
-                       return(0);
+                       return (0);
                cs->irq = dev_tel->irq;
                if (!cs->irq) {
                        printk(KERN_WARNING "Teles: No IRQ for PCI card found\n");
-                       return(0);
+                       return (0);
                }
                cs->hw.teles0.membase = ioremap(pci_resource_start(dev_tel, 0),
-                       PAGE_SIZE);
+                                               PAGE_SIZE);
                printk(KERN_INFO "Found: Zoran, base-address: 0x%llx, irq: 0x%x\n",
-                       (unsigned long long)pci_resource_start(dev_tel, 0),
-                       dev_tel->irq);
+                      (unsigned long long)pci_resource_start(dev_tel, 0),
+                      dev_tel->irq);
        } else {
                printk(KERN_WARNING "TelesPCI: No PCI card found\n");
-               return(0);
+               return (0);
        }
 
        /* Initialize Zoran PCI controller */
@@ -346,7 +346,7 @@ setup_telespci(struct IsdnCard *card)
        ISACVersion(cs, "TelesPCI:");
        if (HscxVersion(cs, "TelesPCI:")) {
                printk(KERN_WARNING
-                "TelesPCI: wrong HSCX versions check IO/MEM addresses\n");
+                      "TelesPCI: wrong HSCX versions check IO/MEM addresses\n");
                release_io_telespci(cs);
                return (0);
        }
index e2cfb6f..0f0d094 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Petr Novak
  * Copyright    by Petr Novak        <petr.novak@i.cz>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
@@ -69,33 +69,33 @@ static void
 W6692_new_ph(struct IsdnCardState *cs)
 {
        switch (cs->dc.w6692.ph_state) {
-               case (W_L1CMD_RST):
-                       ph_command(cs, W_L1CMD_DRC);
-                       l1_msg(cs, HW_RESET | INDICATION, NULL);
-                       /* fallthru */
-               case (W_L1IND_CD):
-                       l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
-                       break;
-               case (W_L1IND_DRD):
-                       l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
-                       break;
-               case (W_L1IND_CE):
-                       l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
-                       break;
-               case (W_L1IND_LD):
-                       l1_msg(cs, HW_RSYNC | INDICATION, NULL);
-                       break;
-               case (W_L1IND_ARD):
-                       l1_msg(cs, HW_INFO2 | INDICATION, NULL);
-                       break;
-               case (W_L1IND_AI8):
-                       l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
-                       break;
-               case (W_L1IND_AI10):
-                       l1_msg(cs, HW_INFO4_P10 | INDICATION, NULL);
-                       break;
-               default:
-                       break;
+       case (W_L1CMD_RST):
+               ph_command(cs, W_L1CMD_DRC);
+               l1_msg(cs, HW_RESET | INDICATION, NULL);
+               /* fallthru */
+       case (W_L1IND_CD):
+               l1_msg(cs, HW_DEACTIVATE | CONFIRM, NULL);
+               break;
+       case (W_L1IND_DRD):
+               l1_msg(cs, HW_DEACTIVATE | INDICATION, NULL);
+               break;
+       case (W_L1IND_CE):
+               l1_msg(cs, HW_POWERUP | CONFIRM, NULL);
+               break;
+       case (W_L1IND_LD):
+               l1_msg(cs, HW_RSYNC | INDICATION, NULL);
+               break;
+       case (W_L1IND_ARD):
+               l1_msg(cs, HW_INFO2 | INDICATION, NULL);
+               break;
+       case (W_L1IND_AI8):
+               l1_msg(cs, HW_INFO4_P8 | INDICATION, NULL);
+               break;
+       case (W_L1IND_AI10):
+               l1_msg(cs, HW_INFO4_P10 | INDICATION, NULL);
+               break;
+       default:
+               break;
        }
 }
 
@@ -122,11 +122,11 @@ W6692_bh(struct work_struct *work)
        if (test_and_clear_bit(D_XMTBUFREADY, &cs->event))
                DChannel_proc_xmt(cs);
 /*
-   if (test_and_clear_bit(D_RX_MON1, &cs->event))
-   arcofi_fsm(cs, ARCOFI_RX_END, NULL);
-   if (test_and_clear_bit(D_TX_MON1, &cs->event))
-   arcofi_fsm(cs, ARCOFI_TX_END, NULL);
- */
+  if (test_and_clear_bit(D_RX_MON1, &cs->event))
+  arcofi_fsm(cs, ARCOFI_RX_END, NULL);
+  if (test_and_clear_bit(D_TX_MON1, &cs->event))
+  arcofi_fsm(cs, ARCOFI_TX_END, NULL);
+*/
 }
 
 static void
@@ -250,7 +250,7 @@ W6692B_fill_fifo(struct BCState *bcs)
                count = bcs->tx_skb->len;
 
        if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO))
-               debugl1(cs, "W6692B_fill_fifo%s%d", (more ? " ": " last "), count);
+               debugl1(cs, "W6692B_fill_fifo%s%d", (more ? " " : " last "), count);
 
        ptr = bcs->tx_skb->data;
        skb_pull(bcs->tx_skb, count);
@@ -277,7 +277,7 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan)
        struct sk_buff *skb;
        int count;
 
-       bcs = (cs->bcs->channel == bchan) ? cs->bcs : (cs->bcs+1);
+       bcs = (cs->bcs->channel == bchan) ? cs->bcs : (cs->bcs + 1);
        val = cs->BC_Read_Reg(cs, bchan, W_B_EXIR);
        debugl1(cs, "W6692B chan %d B_EXIR 0x%02X", bchan, val);
 
@@ -322,7 +322,7 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan)
                r = cs->BC_Read_Reg(cs, bchan, W_B_STAR);
                if (r & W_B_STAR_RDOV) {
                        if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "W6692 B RDOV(RMR) mode=%d",bcs->mode);
+                               debugl1(cs, "W6692 B RDOV(RMR) mode=%d", bcs->mode);
                        cs->BC_Write_Reg(cs, bchan, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RRST | W_B_CMDR_RACT);
                        if (bcs->mode != L1_MODE_TRANS)
                                bcs->hw.w6692.rcvidx = 0;
@@ -347,7 +347,7 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan)
                        W6692B_fill_fifo(bcs);
                else {
                        /* Here we lost an TX interrupt, so
-                          * restart transmitting the whole frame.
+                        * restart transmitting the whole frame.
                         */
                        if (bcs->tx_skb) {
                                skb_push(bcs->tx_skb, bcs->hw.w6692.count);
@@ -374,9 +374,9 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan)
                                W6692B_fill_fifo(bcs);
                                return;
                        } else {
-                               if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
-                                       (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
-                                       u_long  flags;
+                               if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) &&
+                                   (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
+                                       u_long flags;
                                        spin_lock_irqsave(&bcs->aclock, flags);
                                        bcs->ackcnt += bcs->hw.w6692.count;
                                        spin_unlock_irqrestore(&bcs->aclock, flags);
@@ -414,7 +414,7 @@ W6692_interrupt(int intno, void *dev_id)
                spin_unlock_irqrestore(&cs->lock, flags);
                return IRQ_NONE;
        }
-      StartW6692:
+StartW6692:
        if (cs->debug & L1_DEB_ISAC)
                debugl1(cs, "W6692 ISTA %x", val);
 
@@ -473,7 +473,7 @@ W6692_interrupt(int intno, void *dev_id)
                } else
                        schedule_event(cs, D_XMTBUFREADY);
        }
-      afterXFR:
+afterXFR:
        if (val & (W_INT_XINT0 | W_INT_XINT1)) {        /* XINT0/1 - never */
                if (cs->debug & L1_DEB_ISAC)
                        debugl1(cs, "W6692 spurious XINT!");
@@ -564,108 +564,108 @@ W6692_l1hw(struct PStack *st, int pr, void *arg)
        int val;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               skb_queue_tail(&cs->sq, skb);
-#ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA Queued", 0);
-#endif
-                       } else {
-                               cs->tx_skb = skb;
-                               cs->tx_cnt = 0;
+       case (PH_DATA | REQUEST):
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       skb_queue_tail(&cs->sq, skb);
 #ifdef L2FRAME_DEBUG           /* psa */
-                               if (cs->debug & L1_DEB_LAPD)
-                                       Logl2Frame(cs, skb, "PH_DATA", 0);
+                       if (cs->debug & L1_DEB_LAPD)
+                               Logl2Frame(cs, skb, "PH_DATA Queued", 0);
 #endif
-                               W6692_fill_fifo(cs);
-                       }
-                       spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if (cs->tx_skb) {
-                               if (cs->debug & L1_DEB_WARN)
-                                       debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
-                               skb_queue_tail(&cs->sq, skb);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               break;
-                       }
-                       if (cs->debug & DEB_DLOG_HEX)
-                               LogFrame(cs, skb->data, skb->len);
-                       if (cs->debug & DEB_DLOG_VERBOSE)
-                               dlogframe(cs, skb, 0);
+               } else {
                        cs->tx_skb = skb;
                        cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
                        if (cs->debug & L1_DEB_LAPD)
-                               Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
+                               Logl2Frame(cs, skb, "PH_DATA", 0);
 #endif
                        W6692_fill_fifo(cs);
+               }
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               spin_lock_irqsave(&cs->lock, flags);
+               if (cs->tx_skb) {
+                       if (cs->debug & L1_DEB_WARN)
+                               debugl1(cs, " l2l1 tx_skb exist this shouldn't happen");
+                       skb_queue_tail(&cs->sq, skb);
                        spin_unlock_irqrestore(&cs->lock, flags);
                        break;
-               case (PH_PULL | REQUEST):
+               }
+               if (cs->debug & DEB_DLOG_HEX)
+                       LogFrame(cs, skb->data, skb->len);
+               if (cs->debug & DEB_DLOG_VERBOSE)
+                       dlogframe(cs, skb, 0);
+               cs->tx_skb = skb;
+               cs->tx_cnt = 0;
 #ifdef L2FRAME_DEBUG           /* psa */
-                       if (cs->debug & L1_DEB_LAPD)
-                               debugl1(cs, "-> PH_REQUEST_PULL");
+               if (cs->debug & L1_DEB_LAPD)
+                       Logl2Frame(cs, skb, "PH_DATA_PULLED", 0);
 #endif
-                       if (!cs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (HW_RESET | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       if ((cs->dc.w6692.ph_state == W_L1IND_DRD)) {
-                               ph_command(cs, W_L1CMD_ECK);
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                       } else {
-                               ph_command(cs, W_L1CMD_RST);
-                               cs->dc.w6692.ph_state = W_L1CMD_RST;
-                               spin_unlock_irqrestore(&cs->lock, flags);
-                               W6692_new_ph(cs);
-                       }
-                       break;
-               case (HW_ENABLE | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
+               W6692_fill_fifo(cs);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+#ifdef L2FRAME_DEBUG           /* psa */
+               if (cs->debug & L1_DEB_LAPD)
+                       debugl1(cs, "-> PH_REQUEST_PULL");
+#endif
+               if (!cs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (HW_RESET | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               if ((cs->dc.w6692.ph_state == W_L1IND_DRD)) {
                        ph_command(cs, W_L1CMD_ECK);
                        spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_INFO3 | REQUEST):
-                       spin_lock_irqsave(&cs->lock, flags);
-                       ph_command(cs, W_L1CMD_AR8);
+               } else {
+                       ph_command(cs, W_L1CMD_RST);
+                       cs->dc.w6692.ph_state = W_L1CMD_RST;
                        spin_unlock_irqrestore(&cs->lock, flags);
-                       break;
-               case (HW_TESTLOOP | REQUEST):
-                       val = 0;
-                       if (1 & (long) arg)
-                               val |= 0x0c;
-                       if (2 & (long) arg)
-                               val |= 0x3;
-                       /* !!! not implemented yet */
-                       break;
-               case (HW_DEACTIVATE | RESPONSE):
-                       skb_queue_purge(&cs->rq);
-                       skb_queue_purge(&cs->sq);
-                       if (cs->tx_skb) {
-                               dev_kfree_skb_any(cs->tx_skb);
-                               cs->tx_skb = NULL;
-                       }
-                       if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
-                               del_timer(&cs->dbusytimer);
-                       if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
-                               schedule_event(cs, D_CLEARBUSY);
-                       break;
-               default:
-                       if (cs->debug & L1_DEB_WARN)
-                               debugl1(cs, "W6692_l1hw unknown %04x", pr);
-                       break;
+                       W6692_new_ph(cs);
+               }
+               break;
+       case (HW_ENABLE | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, W_L1CMD_ECK);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_INFO3 | REQUEST):
+               spin_lock_irqsave(&cs->lock, flags);
+               ph_command(cs, W_L1CMD_AR8);
+               spin_unlock_irqrestore(&cs->lock, flags);
+               break;
+       case (HW_TESTLOOP | REQUEST):
+               val = 0;
+               if (1 & (long) arg)
+                       val |= 0x0c;
+               if (2 & (long) arg)
+                       val |= 0x3;
+               /* !!! not implemented yet */
+               break;
+       case (HW_DEACTIVATE | RESPONSE):
+               skb_queue_purge(&cs->rq);
+               skb_queue_purge(&cs->sq);
+               if (cs->tx_skb) {
+                       dev_kfree_skb_any(cs->tx_skb);
+                       cs->tx_skb = NULL;
+               }
+               if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
+                       del_timer(&cs->dbusytimer);
+               if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
+                       schedule_event(cs, D_CLEARBUSY);
+               break;
+       default:
+               if (cs->debug & L1_DEB_WARN)
+                       debugl1(cs, "W6692_l1hw unknown %04x", pr);
+               break;
        }
 }
 
@@ -734,17 +734,17 @@ W6692Bmode(struct BCState *bcs, int mode, int bchan)
        bcs->hw.w6692.bchan = bchan;
 
        switch (mode) {
-               case (L1_MODE_NULL):
-                       cs->BC_Write_Reg(cs, bchan, W_B_MODE, 0);
-                       break;
-               case (L1_MODE_TRANS):
-                       cs->BC_Write_Reg(cs, bchan, W_B_MODE, W_B_MODE_MMS);
-                       break;
-               case (L1_MODE_HDLC):
-                       cs->BC_Write_Reg(cs, bchan, W_B_MODE, W_B_MODE_ITF);
-                       cs->BC_Write_Reg(cs, bchan, W_B_ADM1, 0xff);
-                       cs->BC_Write_Reg(cs, bchan, W_B_ADM2, 0xff);
-                       break;
+       case (L1_MODE_NULL):
+               cs->BC_Write_Reg(cs, bchan, W_B_MODE, 0);
+               break;
+       case (L1_MODE_TRANS):
+               cs->BC_Write_Reg(cs, bchan, W_B_MODE, W_B_MODE_MMS);
+               break;
+       case (L1_MODE_HDLC):
+               cs->BC_Write_Reg(cs, bchan, W_B_MODE, W_B_MODE_ITF);
+               cs->BC_Write_Reg(cs, bchan, W_B_ADM1, 0xff);
+               cs->BC_Write_Reg(cs, bchan, W_B_ADM2, 0xff);
+               break;
        }
        if (mode)
                cs->BC_Write_Reg(cs, bchan, W_B_CMDR, W_B_CMDR_RRST |
@@ -756,59 +756,59 @@ static void
 W6692_l2l1(struct PStack *st, int pr, void *arg)
 {
        struct sk_buff *skb = arg;
-       struct BCState *bcs = st->l1.bcs; 
+       struct BCState *bcs = st->l1.bcs;
        u_long flags;
 
        switch (pr) {
-               case (PH_DATA | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       if (bcs->tx_skb) {
-                               skb_queue_tail(&bcs->squeue, skb);
-                       } else {
-                               bcs->tx_skb = skb;
-                               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
-                               bcs->hw.w6692.count = 0;
-                               bcs->cs->BC_Send_Data(bcs);
-                       }
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | INDICATION):
-                       if (bcs->tx_skb) {
-                               printk(KERN_WARNING "W6692_l2l1: this shouldn't happen\n");
-                               break;
-                       }
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+       case (PH_DATA | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               if (bcs->tx_skb) {
+                       skb_queue_tail(&bcs->squeue, skb);
+               } else {
                        bcs->tx_skb = skb;
+                       test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
                        bcs->hw.w6692.count = 0;
                        bcs->cs->BC_Send_Data(bcs);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       break;
-               case (PH_PULL | REQUEST):
-                       if (!bcs->tx_skb) {
-                               test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                               st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
-                       } else
-                               test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
-                       break;
-               case (PH_ACTIVATE | REQUEST):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       W6692Bmode(bcs, st->l1.mode, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | REQUEST):
-                       l1_msg_b(st, pr, arg);
-                       break;
-               case (PH_DEACTIVATE | CONFIRM):
-                       spin_lock_irqsave(&bcs->cs->lock, flags);
-                       test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
-                       test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
-                       W6692Bmode(bcs, 0, st->l1.bc);
-                       spin_unlock_irqrestore(&bcs->cs->lock, flags);
-                       st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               }
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | INDICATION):
+               if (bcs->tx_skb) {
+                       printk(KERN_WARNING "W6692_l2l1: this shouldn't happen\n");
                        break;
+               }
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
+               bcs->tx_skb = skb;
+               bcs->hw.w6692.count = 0;
+               bcs->cs->BC_Send_Data(bcs);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               break;
+       case (PH_PULL | REQUEST):
+               if (!bcs->tx_skb) {
+                       test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+                       st->l1.l1l2(st, PH_PULL | CONFIRM, NULL);
+               } else
+                       test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags);
+               break;
+       case (PH_ACTIVATE | REQUEST):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
+               W6692Bmode(bcs, st->l1.mode, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | REQUEST):
+               l1_msg_b(st, pr, arg);
+               break;
+       case (PH_DEACTIVATE | CONFIRM):
+               spin_lock_irqsave(&bcs->cs->lock, flags);
+               test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
+               test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
+               W6692Bmode(bcs, 0, st->l1.bc);
+               spin_unlock_irqrestore(&bcs->cs->lock, flags);
+               st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL);
+               break;
        }
 }
 
@@ -943,13 +943,13 @@ WriteW6692(struct IsdnCardState *cs, u_char offset, u_char value)
 }
 
 static void
-ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        insb(cs->hw.w6692.iobase + W_D_RFIFO, data, size);
 }
 
 static void
-WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size)
+WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size)
 {
        outsb(cs->hw.w6692.iobase + W_D_XFIFO, data, size);
 }
@@ -970,26 +970,26 @@ static int
 w6692_card_msg(struct IsdnCardState *cs, int mt, void *arg)
 {
        switch (mt) {
-               case CARD_RESET:
-                       resetW6692(cs);
-                       return (0);
-               case CARD_RELEASE:
-                       cs->writeW6692(cs, W_IMASK, 0xff);
-                       release_region(cs->hw.w6692.iobase, 256);
-                       if (cs->subtyp == W6692_USR) {
-                               cs->writeW6692(cs, W_XDATA, 0x04);
-                       }
-                       return (0);
-               case CARD_INIT:
-                       initW6692(cs, 3);
-                       return (0);
-               case CARD_TEST:
-                       return (0);
+       case CARD_RESET:
+               resetW6692(cs);
+               return (0);
+       case CARD_RELEASE:
+               cs->writeW6692(cs, W_IMASK, 0xff);
+               release_region(cs->hw.w6692.iobase, 256);
+               if (cs->subtyp == W6692_USR) {
+                       cs->writeW6692(cs, W_XDATA, 0x04);
+               }
+               return (0);
+       case CARD_INIT:
+               initW6692(cs, 3);
+               return (0);
+       case CARD_TEST:
+               return (0);
        }
        return (0);
 }
 
-static int id_idx ;
+static int id_idx;
 
 static struct pci_dev *dev_w6692 __devinitdata = NULL;
 
@@ -1009,8 +1009,8 @@ setup_w6692(struct IsdnCard *card)
 
        while (id_list[id_idx].vendor_id) {
                dev_w6692 = hisax_find_pci_device(id_list[id_idx].vendor_id,
-                                           id_list[id_idx].device_id,
-                                           dev_w6692);
+                                                 id_list[id_idx].device_id,
+                                                 dev_w6692);
                if (dev_w6692) {
                        if (pci_enable_device(dev_w6692))
                                continue;
index c79c81e..024b04d 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Author       Petr Novak
  * Copyright    by Petr Novak        <petr.novak@i.cz>
- * 
+ *
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
 
 /* B-channel FIFO read/write routines */
 
-#define READW6692BFIFO(cs,bchan,ptr,count) \
-       insb(cs->hw.w6692.iobase+W_B_RFIFO+(bchan?0x40:0),ptr,count)
+#define READW6692BFIFO(cs, bchan, ptr, count)                          \
+       insb(cs->hw.w6692.iobase + W_B_RFIFO + (bchan ? 0x40 : 0), ptr, count)
 
-#define WRITEW6692BFIFO(cs,bchan,ptr,count) \
-       outsb(cs->hw.w6692.iobase+W_B_XFIFO+(bchan?0x40:0),ptr,count)
+#define WRITEW6692BFIFO(cs, bchan, ptr, count)                         \
+       outsb(cs->hw.w6692.iobase + W_B_XFIFO + (bchan ? 0x40 : 0), ptr, count)
 
 /* Specifications of W6692 registers */
 
index 3eb096f..2aa2a0e 100644 (file)
@@ -25,7 +25,7 @@
 #include "hysdn_defs.h"
 #include "boardergo.h"
 
-#define byteout(addr,val) outb(val,addr)
+#define byteout(addr, val) outb(val, addr)
 #define bytein(addr) inb(addr)
 
 /***************************************************/
@@ -73,7 +73,7 @@ ergo_interrupt(int intno, void *dev_id)
 static void
 ergo_irq_bh(struct work_struct *ugli_api)
 {
-       hysdn_card * card = container_of(ugli_api, hysdn_card, irq_queue);
+       hysdn_card *card = container_of(ugli_api, hysdn_card, irq_queue);
        tErgDpram *dpr;
        int again;
        unsigned long flags;
@@ -125,7 +125,7 @@ ergo_irq_bh(struct work_struct *ugli_api)
 /* stop the card (hardware reset) and disable interrupts */
 /*********************************************************/
 static void
-ergo_stopcard(hysdn_card * card)
+ergo_stopcard(hysdn_card *card)
 {
        unsigned long flags;
        unsigned char val;
@@ -150,7 +150,7 @@ ergo_stopcard(hysdn_card * card)
 /* enable or disable the cards error log. The event is queued if possible */
 /**************************************************************************/
 static void
-ergo_set_errlog_state(hysdn_card * card, int on)
+ergo_set_errlog_state(hysdn_card *card, int on)
 {
        unsigned long flags;
 
@@ -180,7 +180,7 @@ ergo_set_errlog_state(hysdn_card * card, int on)
 static const char TestText[36] = "This Message is filler, why read it";
 
 static int
-ergo_testram(hysdn_card * card)
+ergo_testram(hysdn_card *card)
 {
        tErgDpram *dpr = card->dpram;
 
@@ -212,12 +212,12 @@ ergo_testram(hysdn_card * card)
 /*****************************************************************************/
 static int
 ergo_writebootimg(struct HYSDN_CARD *card, unsigned char *buf,
-                       unsigned long offs)
+                 unsigned long offs)
 {
        unsigned char *dst;
        tErgDpram *dpram;
        int cnt = (BOOT_IMG_SIZE >> 2);         /* number of words to move and swap (byte order!) */
-       
+
        if (card->debug_flags & LOG_POF_CARD)
                hysdn_addlog(card, "ERGO: write bootldr offs=0x%lx ", offs);
 
@@ -355,7 +355,7 @@ ergo_waitpofready(struct HYSDN_CARD *card)
                        /* enable the cards interrupt */
                        byteout(card->iobase + PCI9050_INTR_REG,
                                bytein(card->iobase + PCI9050_INTR_REG) |
-                       (PCI9050_INTR_REG_ENPCI | PCI9050_INTR_REG_EN1));
+                               (PCI9050_INTR_REG_ENPCI | PCI9050_INTR_REG_EN1));
                        card->irq_enabled = 1;  /* we are ready to receive interrupts */
 
                        dpr->ToPcFlag = 0;      /* reset data indicator */
@@ -363,15 +363,15 @@ ergo_waitpofready(struct HYSDN_CARD *card)
                        dpr->ToPcInt = 1;       /* interrupt to E1 for all cards */
 
                        spin_unlock_irqrestore(&card->hysdn_lock, flags);
-                       if ((hynet_enable & (1 << card->myid)) 
-                           && (i = hysdn_net_create(card))) 
+                       if ((hynet_enable & (1 << card->myid))
+                           && (i = hysdn_net_create(card)))
                        {
                                ergo_stopcard(card);
                                card->state = CARD_STATE_BOOTERR;
                                return (i);
                        }
 #ifdef CONFIG_HYSDN_CAPI
-                       if((i = hycapi_capi_create(card))) {
+                       if ((i = hycapi_capi_create(card))) {
                                printk(KERN_WARNING "HYSDN: failed to create capi-interface.\n");
                        }
 #endif /* CONFIG_HYSDN_CAPI */
@@ -393,7 +393,7 @@ ergo_waitpofready(struct HYSDN_CARD *card)
 /* Use only during module release.                                                  */
 /************************************************************************************/
 static void
-ergo_releasehardware(hysdn_card * card)
+ergo_releasehardware(hysdn_card *card)
 {
        ergo_stopcard(card);    /* first stop the card if not already done */
        free_irq(card->irq, card);      /* release interrupt */
@@ -410,9 +410,9 @@ ergo_releasehardware(hysdn_card * card)
 /* Use only during module init.                                                  */
 /*********************************************************************************/
 int
-ergo_inithardware(hysdn_card * card)
+ergo_inithardware(hysdn_card *card)
 {
-       if (!request_region(card->iobase + PCI9050_INTR_REG, 1, "HYSDN")) 
+       if (!request_region(card->iobase + PCI9050_INTR_REG, 1, "HYSDN"))
                return (-1);
        if (!request_region(card->iobase + PCI9050_USER_IO, 1, "HYSDN")) {
                release_region(card->iobase + PCI9050_INTR_REG, 1);
index c59422a..e99bd81 100644 (file)
@@ -23,8 +23,8 @@
 
 /* following DPRAM layout copied from OS2-driver boarderg.h */
 typedef struct ErgDpram_tag {
-/*0000 */ unsigned char ToHyBuf[ERG_TO_HY_BUF_SIZE];
-/*0E00 */ unsigned char ToPcBuf[ERG_TO_PC_BUF_SIZE];
+       /*0000 */ unsigned char ToHyBuf[ERG_TO_HY_BUF_SIZE];
+       /*0E00 */ unsigned char ToPcBuf[ERG_TO_PC_BUF_SIZE];
 
        /*1C00 */ unsigned char bSoftUart[SIZE_RSV_SOFT_UART];
        /* size 0x1B0 */
@@ -37,22 +37,22 @@ typedef struct ErgDpram_tag {
        /*1DB9  unsigned long ucText[ERRLOG_TEXT_SIZE]; *//* ASCIIZ of len ucTextSize-1 */
        /*1DF0 */
 
-/*1DF0 */ unsigned short volatile ToHyChannel;
-/*1DF2 */ unsigned short volatile ToHySize;
+       /*1DF0 */ unsigned short volatile ToHyChannel;
+       /*1DF2 */ unsigned short volatile ToHySize;
        /*1DF4 */ unsigned char volatile ToHyFlag;
        /* !=0: msg for Hy waiting */
        /*1DF5 */ unsigned char volatile ToPcFlag;
        /* !=0: msg for PC waiting */
-/*1DF6 */ unsigned short volatile ToPcChannel;
-/*1DF8 */ unsigned short volatile ToPcSize;
+       /*1DF6 */ unsigned short volatile ToPcChannel;
+       /*1DF8 */ unsigned short volatile ToPcSize;
        /*1DFA */ unsigned char bRes1DBA[0x1E00 - 0x1DFA];
        /* 6 bytes */
 
-/*1E00 */ unsigned char bRestOfEntryTbl[0x1F00 - 0x1E00];
-/*1F00 */ unsigned long TrapTable[62];
+       /*1E00 */ unsigned char bRestOfEntryTbl[0x1F00 - 0x1E00];
+       /*1F00 */ unsigned long TrapTable[62];
        /*1FF8 */ unsigned char bRes1FF8[0x1FFB - 0x1FF8];
        /* low part of reset vetor */
-/*1FFB */ unsigned char ToPcIntMetro;
+       /*1FFB */ unsigned char ToPcIntMetro;
        /* notes:
         * - metro has 32-bit boot ram - accessing
         *   ToPcInt and ToHyInt would be the same;
@@ -65,13 +65,13 @@ typedef struct ErgDpram_tag {
         *   so E1 side should NOT change this byte
         *   when writing!
         */
-/*1FFC */ unsigned char volatile ToHyNoDpramErrLog;
+       /*1FFC */ unsigned char volatile ToHyNoDpramErrLog;
        /* note: ToHyNoDpramErrLog is used to inform
         *       boot loader, not to use DPRAM based
         *       ErrLog; when DOS driver is rewritten
         *       this becomes obsolete
         */
-/*1FFD */ unsigned char bRes1FFD;
+       /*1FFD */ unsigned char bRes1FFD;
        /*1FFE */ unsigned char ToPcInt;
        /* E1_intclear; on CHAMP2: E1_intset   */
        /*1FFF */ unsigned char ToHyInt;
@@ -85,16 +85,16 @@ typedef struct ErgDpram_tag {
 #define PCI9050_INTR_REG    0x4C       /* Interrupt register */
 #define PCI9050_USER_IO     0x51       /* User I/O  register */
 
-                                   /* bitmask for PCI9050_INTR_REG: */
+/* bitmask for PCI9050_INTR_REG: */
 #define PCI9050_INTR_REG_EN1    0x01   /* 1= enable (def.), 0= disable */
 #define PCI9050_INTR_REG_POL1   0x02   /* 1= active high (def.), 0= active low */
 #define PCI9050_INTR_REG_STAT1  0x04   /* 1= intr. active, 0= intr. not active (def.) */
 #define PCI9050_INTR_REG_ENPCI  0x40   /* 1= PCI interrupts enable (def.) */
 
-                                   /* bitmask for PCI9050_USER_IO: */
+/* bitmask for PCI9050_USER_IO: */
 #define PCI9050_USER_IO_EN3     0x02   /* 1= disable      , 0= enable (def.) */
 #define PCI9050_USER_IO_DIR3    0x04   /* 1= output (def.), 0= input         */
 #define PCI9050_USER_IO_DAT3    0x08   /* 1= high (def.)  , 0= low           */
 
-#define PCI9050_E1_RESET    (                     PCI9050_USER_IO_DIR3)                /* 0x04 */
-#define PCI9050_E1_RUN      (PCI9050_USER_IO_DAT3|PCI9050_USER_IO_DIR3)                /* 0x0C */
+#define PCI9050_E1_RESET    (PCI9050_USER_IO_DIR3)             /* 0x04 */
+#define PCI9050_E1_RUN      (PCI9050_USER_IO_DAT3 | PCI9050_USER_IO_DIR3)              /* 0x0C */
index 6299b06..931f916 100644 (file)
@@ -31,9 +31,9 @@
 #include "hysdn_defs.h"
 #include <linux/kernelcapi.h>
 
-static char hycapi_revision[]="$Revision: 1.8.6.4 $";
+static char hycapi_revision[] = "$Revision: 1.8.6.4 $";
 
-unsigned int hycapi_enable = 0xffffffff; 
+unsigned int hycapi_enable = 0xffffffff;
 module_param(hycapi_enable, uint, 0);
 
 typedef struct _hycapi_appl {
@@ -48,18 +48,18 @@ static u16 hycapi_send_message(struct capi_ctr *ctrl, struct sk_buff *skb);
 
 static inline int _hycapi_appCheck(int app_id, int ctrl_no)
 {
-       if((ctrl_no <= 0) || (ctrl_no > CAPI_MAXCONTR) || (app_id <= 0) ||
+       if ((ctrl_no <= 0) || (ctrl_no > CAPI_MAXCONTR) || (app_id <= 0) ||
           (app_id > CAPI_MAXAPPL))
        {
                printk(KERN_ERR "HYCAPI: Invalid request app_id %d for controller %d", app_id, ctrl_no);
                return -1;
        }
-       return ((hycapi_applications[app_id-1].ctrl_mask & (1 << (ctrl_no-1))) != 0);
+       return ((hycapi_applications[app_id - 1].ctrl_mask & (1 << (ctrl_no-1))) != 0);
 }
 
 /******************************
 Kernel-Capi callback reset_ctr
-******************************/     
+******************************/
 
 static void
 hycapi_reset_ctr(struct capi_ctr *ctrl)
@@ -75,7 +75,7 @@ hycapi_reset_ctr(struct capi_ctr *ctrl)
 
 /******************************
 Kernel-Capi callback remove_ctr
-******************************/     
+******************************/
 
 static void
 hycapi_remove_ctr(struct capi_ctr *ctrl)
@@ -85,25 +85,25 @@ hycapi_remove_ctr(struct capi_ctr *ctrl)
        hysdn_card *card = NULL;
 #ifdef HYCAPI_PRINTFNAMES
        printk(KERN_NOTICE "HYCAPI hycapi_remove_ctr\n");
-#endif 
+#endif
        cinfo = (hycapictrl_info *)(ctrl->driverdata);
-       if(!cinfo) {
+       if (!cinfo) {
                printk(KERN_ERR "No hycapictrl_info set!");
                return;
-       }    
+       }
        card = cinfo->card;
        capi_ctr_suspend_output(ctrl);
-       for(i=0; i<CAPI_MAXAPPL;i++) {
-               if(hycapi_applications[i].listen_req[ctrl->cnr-1]) {
-                       kfree_skb(hycapi_applications[i].listen_req[ctrl->cnr-1]);
-                       hycapi_applications[i].listen_req[ctrl->cnr-1] = NULL;
+       for (i = 0; i < CAPI_MAXAPPL; i++) {
+               if (hycapi_applications[i].listen_req[ctrl->cnr - 1]) {
+                       kfree_skb(hycapi_applications[i].listen_req[ctrl->cnr - 1]);
+                       hycapi_applications[i].listen_req[ctrl->cnr - 1] = NULL;
                }
        }
        detach_capi_ctr(ctrl);
        ctrl->driverdata = NULL;
        kfree(card->hyctrlinfo);
 
-               
+
        card->hyctrlinfo = NULL;
 }
 
@@ -121,7 +121,7 @@ hycapi_sendmsg_internal(struct capi_ctr *ctrl, struct sk_buff *skb)
 
        spin_lock_irq(&cinfo->lock);
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_send_message\n");    
+       printk(KERN_NOTICE "hycapi_send_message\n");
 #endif
        cinfo->skbs[cinfo->in_idx++] = skb;     /* add to buffer list */
        if (cinfo->in_idx >= HYSDN_MAX_CAPI_SKB)
@@ -130,7 +130,7 @@ hycapi_sendmsg_internal(struct capi_ctr *ctrl, struct sk_buff *skb)
        if (cinfo->sk_count >= HYSDN_MAX_CAPI_SKB) {
                /* inform upper layers we're full */
                printk(KERN_ERR "HYSDN Card%d: CAPI-buffer overrun!\n",
-                      card->myid);     
+                      card->myid);
                capi_ctr_suspend_output(ctrl);
        }
        cinfo->tx_skb = skb;
@@ -147,7 +147,7 @@ re-register any applications in the private list.
 
 ************************************************************/
 
-static void 
+static void
 hycapi_register_internal(struct capi_ctr *ctrl, __u16 appl,
                         capi_register_params *rp)
 {
@@ -161,9 +161,9 @@ hycapi_register_internal(struct capi_ctr *ctrl, __u16 appl,
        __u16 MessageBufferSize = 0;
        int slen = strlen(ExtFeatureDefaults);
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_register_appl\n"); 
+       printk(KERN_NOTICE "hycapi_register_appl\n");
 #endif
-       MessageBufferSize = rp->level3cnt * rp->datablkcnt * rp->datablklen; 
+       MessageBufferSize = rp->level3cnt * rp->datablkcnt * rp->datablklen;
 
        len = CAPI_MSG_BASELEN + 8 + slen + 1;
        if (!(skb = alloc_skb(len, GFP_ATOMIC))) {
@@ -171,18 +171,18 @@ hycapi_register_internal(struct capi_ctr *ctrl, __u16 appl,
                       card->myid);
                return;
        }
-       memcpy(skb_put(skb,sizeof(__u16)), &len, sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u16)), &appl, sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u8)), &_command, sizeof(_command));
-       memcpy(skb_put(skb,sizeof(__u8)), &_subcommand, sizeof(_subcommand));
-       memcpy(skb_put(skb,sizeof(__u16)), &MessageNumber, sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u16)), &MessageBufferSize, sizeof(__u16)); 
-       memcpy(skb_put(skb,sizeof(__u16)), &(rp->level3cnt), sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u16)), &(rp->datablkcnt), sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u16)), &(rp->datablklen), sizeof(__u16));
-       memcpy(skb_put(skb,slen), ExtFeatureDefaults, slen);
-       hycapi_applications[appl-1].ctrl_mask |= (1 << (ctrl->cnr-1));    
-       hycapi_send_message(ctrl, skb);    
+       memcpy(skb_put(skb, sizeof(__u16)), &len, sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u16)), &appl, sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u8)), &_command, sizeof(_command));
+       memcpy(skb_put(skb, sizeof(__u8)), &_subcommand, sizeof(_subcommand));
+       memcpy(skb_put(skb, sizeof(__u16)), &MessageNumber, sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u16)), &MessageBufferSize, sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u16)), &(rp->level3cnt), sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u16)), &(rp->datablkcnt), sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u16)), &(rp->datablklen), sizeof(__u16));
+       memcpy(skb_put(skb, slen), ExtFeatureDefaults, slen);
+       hycapi_applications[appl - 1].ctrl_mask |= (1 << (ctrl->cnr - 1));
+       hycapi_send_message(ctrl, skb);
 }
 
 /************************************************************
@@ -200,12 +200,12 @@ static void hycapi_restart_internal(struct capi_ctr *ctrl)
 #ifdef HYCAPI_PRINTFNAMES
        printk(KERN_WARNING "HYSDN: hycapi_restart_internal");
 #endif
-       for(i=0; i<CAPI_MAXAPPL; i++) {
-               if(_hycapi_appCheck(i+1, ctrl->cnr) == 1) {
-                       hycapi_register_internal(ctrl, i+1, 
+       for (i = 0; i < CAPI_MAXAPPL; i++) {
+               if (_hycapi_appCheck(i + 1, ctrl->cnr) == 1) {
+                       hycapi_register_internal(ctrl, i + 1,
                                                 &hycapi_applications[i].rp);
-                       if(hycapi_applications[i].listen_req[ctrl->cnr-1]) {
-                               skb = skb_copy(hycapi_applications[i].listen_req[ctrl->cnr-1], GFP_ATOMIC);
+                       if (hycapi_applications[i].listen_req[ctrl->cnr - 1]) {
+                               skb = skb_copy(hycapi_applications[i].listen_req[ctrl->cnr - 1], GFP_ATOMIC);
                                hycapi_sendmsg_internal(ctrl, skb);
                        }
                }
@@ -220,35 +220,35 @@ The application is recorded in the internal list.
 *************************************************************/
 
 static void
-hycapi_register_appl(struct capi_ctr *ctrl, __u16 appl, 
+hycapi_register_appl(struct capi_ctr *ctrl, __u16 appl,
                     capi_register_params *rp)
 {
        int MaxLogicalConnections = 0, MaxBDataBlocks = 0, MaxBDataLen = 0;
        hycapictrl_info *cinfo = (hycapictrl_info *)(ctrl->driverdata);
        hysdn_card *card = cinfo->card;
        int chk = _hycapi_appCheck(appl, ctrl->cnr);
-       if(chk < 0) {
+       if (chk < 0) {
                return;
        }
-       if(chk == 1) {
+       if (chk == 1) {
                printk(KERN_INFO "HYSDN: apl %d already registered\n", appl);
                return;
        }
        MaxBDataBlocks = rp->datablkcnt > CAPI_MAXDATAWINDOW ? CAPI_MAXDATAWINDOW : rp->datablkcnt;
        rp->datablkcnt = MaxBDataBlocks;
-       MaxBDataLen = rp->datablklen < 1024 ? 1024 : rp->datablklen ;
+       MaxBDataLen = rp->datablklen < 1024 ? 1024 : rp->datablklen;
        rp->datablklen = MaxBDataLen;
-       
+
        MaxLogicalConnections = rp->level3cnt;
        if (MaxLogicalConnections < 0) {
-               MaxLogicalConnections = card->bchans * -MaxLogicalConnections; 
+               MaxLogicalConnections = card->bchans * -MaxLogicalConnections;
        }
        if (MaxLogicalConnections == 0) {
                MaxLogicalConnections = card->bchans;
        }
-       
+
        rp->level3cnt = MaxLogicalConnections;
-       memcpy(&hycapi_applications[appl-1].rp, 
+       memcpy(&hycapi_applications[appl - 1].rp,
               rp, sizeof(capi_register_params));
 }
 
@@ -279,19 +279,19 @@ static void hycapi_release_internal(struct capi_ctr *ctrl, __u16 appl)
                       card->myid);
                return;
        }
-       memcpy(skb_put(skb,sizeof(__u16)), &len, sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u16)), &appl, sizeof(__u16));
-       memcpy(skb_put(skb,sizeof(__u8)), &_command, sizeof(_command));
-       memcpy(skb_put(skb,sizeof(__u8)), &_subcommand, sizeof(_subcommand));
-       memcpy(skb_put(skb,sizeof(__u16)), &MessageNumber, sizeof(__u16));    
-       hycapi_send_message(ctrl, skb);    
-       hycapi_applications[appl-1].ctrl_mask &= ~(1 << (ctrl->cnr-1));    
+       memcpy(skb_put(skb, sizeof(__u16)), &len, sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u16)), &appl, sizeof(__u16));
+       memcpy(skb_put(skb, sizeof(__u8)), &_command, sizeof(_command));
+       memcpy(skb_put(skb, sizeof(__u8)), &_subcommand, sizeof(_subcommand));
+       memcpy(skb_put(skb, sizeof(__u16)), &MessageNumber, sizeof(__u16));
+       hycapi_send_message(ctrl, skb);
+       hycapi_applications[appl - 1].ctrl_mask &= ~(1 << (ctrl->cnr - 1));
 }
 
 /******************************************************************
 hycapi_release_appl
 
-Release the application from the internal list an remove it's 
+Release the application from the internal list an remove it's
 registration at controller-level
 ******************************************************************/
 
@@ -301,15 +301,15 @@ hycapi_release_appl(struct capi_ctr *ctrl, __u16 appl)
        int chk;
 
        chk = _hycapi_appCheck(appl, ctrl->cnr);
-       if(chk<0) {
+       if (chk < 0) {
                printk(KERN_ERR "HYCAPI: Releasing invalid appl %d on controller %d\n", appl, ctrl->cnr);
                return;
        }
-       if(hycapi_applications[appl-1].listen_req[ctrl->cnr-1]) {
-               kfree_skb(hycapi_applications[appl-1].listen_req[ctrl->cnr-1]);
-               hycapi_applications[appl-1].listen_req[ctrl->cnr-1] = NULL;
+       if (hycapi_applications[appl - 1].listen_req[ctrl->cnr - 1]) {
+               kfree_skb(hycapi_applications[appl - 1].listen_req[ctrl->cnr - 1]);
+               hycapi_applications[appl - 1].listen_req[ctrl->cnr - 1] = NULL;
        }
-       if(chk == 1)
+       if (chk == 1)
        {
                hycapi_release_internal(ctrl, appl);
        }
@@ -327,7 +327,7 @@ int hycapi_capi_release(hysdn_card *card)
 #ifdef HYCAPI_PRINTFNAMES
        printk(KERN_NOTICE "hycapi_capi_release\n");
 #endif
-       if(cinfo) {
+       if (cinfo) {
                ctrl = &cinfo->capi_ctrl;
                hycapi_remove_ctr(ctrl);
        }
@@ -347,7 +347,7 @@ int hycapi_capi_stop(hysdn_card *card)
 #ifdef HYCAPI_PRINTFNAMES
        printk(KERN_NOTICE "hycapi_capi_stop\n");
 #endif
-       if(cinfo) {
+       if (cinfo) {
                ctrl = &cinfo->capi_ctrl;
 /*             ctrl->suspend_output(ctrl); */
                capi_ctr_down(ctrl);
@@ -377,59 +377,59 @@ static u16 hycapi_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
        u16 retval = CAPI_NOERROR;
 
        appl_id = CAPIMSG_APPID(skb->data);
-       switch(_hycapi_appCheck(appl_id, ctrl->cnr))
+       switch (_hycapi_appCheck(appl_id, ctrl->cnr))
        {
-               case 0:
+       case 0:
 /*                     printk(KERN_INFO "Need to register\n"); */
-                       hycapi_register_internal(ctrl, 
-                                                appl_id,
-                                                &(hycapi_applications[appl_id-1].rp));
-                       break;
-               case 1:
-                       break;
-               default:
-                       printk(KERN_ERR "HYCAPI: Controller mixup!\n");
-                       retval = CAPI_ILLAPPNR;
-                       goto out;
+               hycapi_register_internal(ctrl,
+                                        appl_id,
+                                        &(hycapi_applications[appl_id - 1].rp));
+               break;
+       case 1:
+               break;
+       default:
+               printk(KERN_ERR "HYCAPI: Controller mixup!\n");
+               retval = CAPI_ILLAPPNR;
+               goto out;
        }
-       switch(CAPIMSG_CMD(skb->data)) {                
-               case CAPI_DISCONNECT_B3_RESP:
-                       capilib_free_ncci(&cinfo->ncci_head, appl_id, 
-                                         CAPIMSG_NCCI(skb->data));
-                       break;
-               case CAPI_DATA_B3_REQ:
-                       _len = CAPIMSG_LEN(skb->data);
-                       if (_len > 22) {
-                               _len2 = _len - 22;
-                               skb_copy_from_linear_data(skb, msghead, 22);
-                               skb_copy_to_linear_data_offset(skb, _len2,
-                                                              msghead, 22);
-                               skb_pull(skb, _len2);
-                               CAPIMSG_SETLEN(skb->data, 22);
-                               retval = capilib_data_b3_req(&cinfo->ncci_head,
-                                                            CAPIMSG_APPID(skb->data),
-                                                            CAPIMSG_NCCI(skb->data),
-                                                            CAPIMSG_MSGID(skb->data));
-                       }
-                       break;
-               case CAPI_LISTEN_REQ:
-                       if(hycapi_applications[appl_id-1].listen_req[ctrl->cnr-1])
-                       {
-                               kfree_skb(hycapi_applications[appl_id-1].listen_req[ctrl->cnr-1]);
-                               hycapi_applications[appl_id-1].listen_req[ctrl->cnr-1] = NULL;
-                       }
-                       if (!(hycapi_applications[appl_id-1].listen_req[ctrl->cnr-1] = skb_copy(skb, GFP_ATOMIC))) 
-                       {
-                               printk(KERN_ERR "HYSDN: memory squeeze in private_listen\n");
-                       } 
-                       break;
-               default:
-                       break;
+       switch (CAPIMSG_CMD(skb->data)) {
+       case CAPI_DISCONNECT_B3_RESP:
+               capilib_free_ncci(&cinfo->ncci_head, appl_id,
+                                 CAPIMSG_NCCI(skb->data));
+               break;
+       case CAPI_DATA_B3_REQ:
+               _len = CAPIMSG_LEN(skb->data);
+               if (_len > 22) {
+                       _len2 = _len - 22;
+                       skb_copy_from_linear_data(skb, msghead, 22);
+                       skb_copy_to_linear_data_offset(skb, _len2,
+                                                      msghead, 22);
+                       skb_pull(skb, _len2);
+                       CAPIMSG_SETLEN(skb->data, 22);
+                       retval = capilib_data_b3_req(&cinfo->ncci_head,
+                                                    CAPIMSG_APPID(skb->data),
+                                                    CAPIMSG_NCCI(skb->data),
+                                                    CAPIMSG_MSGID(skb->data));
+               }
+               break;
+       case CAPI_LISTEN_REQ:
+               if (hycapi_applications[appl_id - 1].listen_req[ctrl->cnr - 1])
+               {
+                       kfree_skb(hycapi_applications[appl_id - 1].listen_req[ctrl->cnr - 1]);
+                       hycapi_applications[appl_id - 1].listen_req[ctrl->cnr - 1] = NULL;
+               }
+               if (!(hycapi_applications[appl_id  -1].listen_req[ctrl->cnr - 1] = skb_copy(skb, GFP_ATOMIC)))
+               {
+                       printk(KERN_ERR "HYSDN: memory squeeze in private_listen\n");
+               }
+               break;
+       default:
+               break;
        }
- out:
+out:
        if (retval == CAPI_NOERROR)
                hycapi_sendmsg_internal(ctrl, skb);
-       else 
+       else
                dev_kfree_skb_any(skb);
 
        return retval;
@@ -445,14 +445,14 @@ static int hycapi_proc_show(struct seq_file *m, void *v)
        seq_printf(m, "%-16s %s\n", "name", cinfo->cardname);
        seq_printf(m, "%-16s 0x%x\n", "io", card->iobase);
        seq_printf(m, "%-16s %d\n", "irq", card->irq);
-    
+
        switch (card->brdtype) {
-               case BD_PCCARD:  s = "HYSDN Hycard"; break;
-               case BD_ERGO: s = "HYSDN Ergo2"; break;
-               case BD_METRO: s = "HYSDN Metro4"; break;
-               case BD_CHAMP2: s = "HYSDN Champ2";     break;
-               case BD_PLEXUS: s = "HYSDN Plexus30"; break;
-               default: s = "???"; break;
+       case BD_PCCARD:  s = "HYSDN Hycard"; break;
+       case BD_ERGO: s = "HYSDN Ergo2"; break;
+       case BD_METRO: s = "HYSDN Metro4"; break;
+       case BD_CHAMP2: s = "HYSDN Champ2";     break;
+       case BD_PLEXUS: s = "HYSDN Plexus30"; break;
+       default: s = "???"; break;
        }
        seq_printf(m, "%-16s %s\n", "type", s);
        if ((s = cinfo->version[VER_DRIVER]) != NULL)
@@ -461,9 +461,9 @@ static int hycapi_proc_show(struct seq_file *m, void *v)
                seq_printf(m, "%-16s %s\n", "ver_cardtype", s);
        if ((s = cinfo->version[VER_SERIAL]) != NULL)
                seq_printf(m, "%-16s %s\n", "ver_serial", s);
-    
+
        seq_printf(m, "%-16s %s\n", "cardname", cinfo->cardname);
-    
+
        return 0;
 }
 
@@ -491,7 +491,7 @@ on capi-interface registration.
 static int hycapi_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
 {
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_load_firmware\n");    
+       printk(KERN_NOTICE "hycapi_load_firmware\n");
 #endif
        return 0;
 }
@@ -501,7 +501,7 @@ static char *hycapi_procinfo(struct capi_ctr *ctrl)
 {
        hycapictrl_info *cinfo = (hycapictrl_info *)(ctrl->driverdata);
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_proc_info\n");    
+       printk(KERN_NOTICE "hycapi_proc_info\n");
 #endif
        if (!cinfo)
                return "";
@@ -525,7 +525,7 @@ New nccis are created if necessary.
 *******************************************************************/
 
 void
-hycapi_rx_capipkt(hysdn_card * card, unsigned char *buf, unsigned short len)
+hycapi_rx_capipkt(hysdn_card *card, unsigned char *buf, unsigned short len)
 {
        struct sk_buff *skb;
        hycapictrl_info *cinfo = card->hyctrlinfo;
@@ -533,24 +533,24 @@ hycapi_rx_capipkt(hysdn_card * card, unsigned char *buf, unsigned short len)
        __u16 ApplId;
        __u16 MsgLen, info;
        __u16 len2, CapiCmd;
-       __u32 CP64[2] = {0,0};
+       __u32 CP64[2] = {0, 0};
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_rx_capipkt\n");    
+       printk(KERN_NOTICE "hycapi_rx_capipkt\n");
 #endif
-       if(!cinfo) {
+       if (!cinfo) {
                return;
        }
        ctrl = &cinfo->capi_ctrl;
-       if(len < CAPI_MSG_BASELEN) {
+       if (len < CAPI_MSG_BASELEN) {
                printk(KERN_ERR "HYSDN Card%d: invalid CAPI-message, length %d!\n",
                       card->myid, len);
                return;
-       }       
+       }
        MsgLen = CAPIMSG_LEN(buf);
        ApplId = CAPIMSG_APPID(buf);
        CapiCmd = CAPIMSG_CMD(buf);
-       
-       if((CapiCmd == CAPI_DATA_B3_IND) && (MsgLen < 30)) {
+
+       if ((CapiCmd == CAPI_DATA_B3_IND) && (MsgLen < 30)) {
                len2 = len + (30 - MsgLen);
                if (!(skb = alloc_skb(len2, GFP_ATOMIC))) {
                        printk(KERN_ERR "HYSDN Card%d: incoming packet dropped\n",
@@ -558,7 +558,7 @@ hycapi_rx_capipkt(hysdn_card * card, unsigned char *buf, unsigned short len)
                        return;
                }
                memcpy(skb_put(skb, MsgLen), buf, MsgLen);
-               memcpy(skb_put(skb, 2*sizeof(__u32)), CP64, 2* sizeof(__u32));
+               memcpy(skb_put(skb, 2 * sizeof(__u32)), CP64, 2 * sizeof(__u32));
                memcpy(skb_put(skb, len - MsgLen), buf + MsgLen,
                       len - MsgLen);
                CAPIMSG_SETLEN(skb->data, 30);
@@ -570,54 +570,54 @@ hycapi_rx_capipkt(hysdn_card * card, unsigned char *buf, unsigned short len)
                }
                memcpy(skb_put(skb, len), buf, len);
        }
-       switch(CAPIMSG_CMD(skb->data)) 
+       switch (CAPIMSG_CMD(skb->data))
        {
-               case CAPI_CONNECT_B3_CONF:
+       case CAPI_CONNECT_B3_CONF:
 /* Check info-field for error-indication: */
-                       info = CAPIMSG_U16(skb->data, 12);
-                       switch(info)
-                       {
-                               case 0:
-                                       capilib_new_ncci(&cinfo->ncci_head, ApplId, CAPIMSG_NCCI(skb->data), 
-                                                        hycapi_applications[ApplId-1].rp.datablkcnt); 
-                                       
-                                       break;
-                               case 0x0001:
-                                       printk(KERN_ERR "HYSDN Card%d: NCPI not supported by current "
-                                              "protocol. NCPI ignored.\n", card->myid);
-                                       break;
-                               case 0x2001:
-                                       printk(KERN_ERR "HYSDN Card%d: Message not supported in"
-                                              " current state\n", card->myid);
-                                       break;
-                               case 0x2002:
-                                       printk(KERN_ERR "HYSDN Card%d: invalid PLCI\n", card->myid);
-                                       break;          
-                               case 0x2004:
-                                       printk(KERN_ERR "HYSDN Card%d: out of NCCI\n", card->myid);
-                                       break;                          
-                               case 0x3008:
-                                       printk(KERN_ERR "HYSDN Card%d: NCPI not supported\n", 
-                                              card->myid);
-                                       break;  
-                               default:
-                                       printk(KERN_ERR "HYSDN Card%d: Info in CONNECT_B3_CONF: %d\n", 
-                                              card->myid, info);
-                                       break;                  
-                       }
+               info = CAPIMSG_U16(skb->data, 12);
+               switch (info)
+               {
+               case 0:
+                       capilib_new_ncci(&cinfo->ncci_head, ApplId, CAPIMSG_NCCI(skb->data),
+                                        hycapi_applications[ApplId - 1].rp.datablkcnt);
+
+                       break;
+               case 0x0001:
+                       printk(KERN_ERR "HYSDN Card%d: NCPI not supported by current "
+                              "protocol. NCPI ignored.\n", card->myid);
                        break;
-               case CAPI_CONNECT_B3_IND:
-                       capilib_new_ncci(&cinfo->ncci_head, ApplId, 
-                                        CAPIMSG_NCCI(skb->data), 
-                                        hycapi_applications[ApplId-1].rp.datablkcnt);
+               case 0x2001:
+                       printk(KERN_ERR "HYSDN Card%d: Message not supported in"
+                              " current state\n", card->myid);
                        break;
-               case CAPI_DATA_B3_CONF:
-                       capilib_data_b3_conf(&cinfo->ncci_head, ApplId,
-                                            CAPIMSG_NCCI(skb->data),
-                                            CAPIMSG_MSGID(skb->data));
+               case 0x2002:
+                       printk(KERN_ERR "HYSDN Card%d: invalid PLCI\n", card->myid);
+                       break;
+               case 0x2004:
+                       printk(KERN_ERR "HYSDN Card%d: out of NCCI\n", card->myid);
+                       break;
+               case 0x3008:
+                       printk(KERN_ERR "HYSDN Card%d: NCPI not supported\n",
+                              card->myid);
                        break;
                default:
+                       printk(KERN_ERR "HYSDN Card%d: Info in CONNECT_B3_CONF: %d\n",
+                              card->myid, info);
                        break;
+               }
+               break;
+       case CAPI_CONNECT_B3_IND:
+               capilib_new_ncci(&cinfo->ncci_head, ApplId,
+                                CAPIMSG_NCCI(skb->data),
+                                hycapi_applications[ApplId - 1].rp.datablkcnt);
+               break;
+       case CAPI_DATA_B3_CONF:
+               capilib_data_b3_conf(&cinfo->ncci_head, ApplId,
+                                    CAPIMSG_NCCI(skb->data),
+                                    CAPIMSG_MSGID(skb->data));
+               break;
+       default:
+               break;
        }
        capi_ctr_handle_message(ctrl, ApplId, skb);
 }
@@ -630,13 +630,13 @@ internal queue.
 
 *******************************************************************/
 
-void hycapi_tx_capiack(hysdn_card * card)
+void hycapi_tx_capiack(hysdn_card *card)
 {
        hycapictrl_info *cinfo = card->hyctrlinfo;
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_tx_capiack\n");    
+       printk(KERN_NOTICE "hycapi_tx_capiack\n");
 #endif
-       if(!cinfo) {
+       if (!cinfo) {
                return;
        }
        spin_lock_irq(&cinfo->lock);
@@ -661,7 +661,7 @@ struct sk_buff *
 hycapi_tx_capiget(hysdn_card *card)
 {
        hycapictrl_info *cinfo = card->hyctrlinfo;
-       if(!cinfo) {
+       if (!cinfo) {
                return (struct sk_buff *)NULL;
        }
        if (!cinfo->sk_count)
@@ -681,10 +681,10 @@ attach the capi-driver to the kernel-capi.
 int hycapi_init(void)
 {
        int i;
-       for(i=0;i<CAPI_MAXAPPL;i++) {
+       for (i = 0; i < CAPI_MAXAPPL; i++) {
                memset(&(hycapi_applications[i]), 0, sizeof(hycapi_appl));
        }
-       return(0);
+       return (0);
 }
 
 /**************************************************************
@@ -694,7 +694,7 @@ detach the capi-driver to the kernel-capi. Actually this should
 free some more ressources. Do that later.
 **************************************************************/
 
-void 
+void
 hycapi_cleanup(void)
 {
 }
@@ -710,9 +710,9 @@ static void hycapi_fill_profile(hysdn_card *card)
        hycapictrl_info *cinfo = NULL;
        struct capi_ctr *ctrl = NULL;
        cinfo = card->hyctrlinfo;
-       if(!cinfo) return;
+       if (!cinfo) return;
        ctrl = &cinfo->capi_ctrl;
-       strcpy(ctrl->manu, "Hypercope");        
+       strcpy(ctrl->manu, "Hypercope");
        ctrl->version.majorversion = 2;
        ctrl->version.minorversion = 0;
        ctrl->version.majormanuversion = 3;
@@ -732,18 +732,18 @@ static void hycapi_fill_profile(hysdn_card *card)
                (card->faxchans ? B3_PROT_T30 : 0) |
                (card->faxchans ? B3_PROT_T30EXT : 0) |
                B3_PROT_ISO8208;
-}      
+}
 
-int 
+int
 hycapi_capi_create(hysdn_card *card)
 {
        hycapictrl_info *cinfo = NULL;
        struct capi_ctr *ctrl = NULL;
        int retval;
 #ifdef HYCAPI_PRINTFNAMES
-       printk(KERN_NOTICE "hycapi_capi_create\n");        
+       printk(KERN_NOTICE "hycapi_capi_create\n");
 #endif
-       if((hycapi_enable & (1 << card->myid)) == 0) {
+       if ((hycapi_enable & (1 << card->myid)) == 0) {
                return 1;
        }
        if (!card->hyctrlinfo) {
@@ -758,12 +758,12 @@ hycapi_capi_create(hysdn_card *card)
                INIT_LIST_HEAD(&cinfo->ncci_head);
 
                switch (card->brdtype) {
-                       case BD_PCCARD:  strcpy(cinfo->cardname,"HYSDN Hycard"); break;
-                       case BD_ERGO: strcpy(cinfo->cardname,"HYSDN Ergo2"); break;
-                       case BD_METRO: strcpy(cinfo->cardname,"HYSDN Metro4"); break;
-                       case BD_CHAMP2: strcpy(cinfo->cardname,"HYSDN Champ2"); break;
-                       case BD_PLEXUS: strcpy(cinfo->cardname,"HYSDN Plexus30"); break;
-                       default: strcpy(cinfo->cardname,"HYSDN ???"); break;
+               case BD_PCCARD:  strcpy(cinfo->cardname, "HYSDN Hycard"); break;
+               case BD_ERGO: strcpy(cinfo->cardname, "HYSDN Ergo2"); break;
+               case BD_METRO: strcpy(cinfo->cardname, "HYSDN Metro4"); break;
+               case BD_CHAMP2: strcpy(cinfo->cardname, "HYSDN Champ2"); break;
+               case BD_PLEXUS: strcpy(cinfo->cardname, "HYSDN Plexus30"); break;
+               default: strcpy(cinfo->cardname, "HYSDN ???"); break;
                }
 
                ctrl = &cinfo->capi_ctrl;
@@ -792,7 +792,7 @@ hycapi_capi_create(hysdn_card *card)
                ctrl = &card->hyctrlinfo->capi_ctrl;
                hycapi_fill_profile(card);
                capi_ctr_ready(ctrl);
-               hycapi_restart_internal(ctrl); 
+               hycapi_restart_internal(ctrl);
 /*             ctrl->resume_output(ctrl); */
        }
        return 0;
index 4f541ef..eda4741 100644 (file)
@@ -82,7 +82,7 @@ DecryptBuf(struct boot_data *boot, int cnt)
 /* id. If successful 0 is returned, a negative value shows an error.           */
 /********************************************************************************/
 static int
-pof_handle_data(hysdn_card * card, int datlen)
+pof_handle_data(hysdn_card *card, int datlen)
 {
        struct boot_data *boot = card->boot;    /* pointer to boot specific data */
        long l;
@@ -92,71 +92,71 @@ pof_handle_data(hysdn_card * card, int datlen)
        /* handle the different record types */
        switch (boot->pof_recid) {
 
-               case TAG_TIMESTMP:
-                       if (card->debug_flags & LOG_POF_RECORD)
-                               hysdn_addlog(card, "POF created %s", boot->buf.PofTime.DateTimeText);
-                       break;
+       case TAG_TIMESTMP:
+               if (card->debug_flags & LOG_POF_RECORD)
+                       hysdn_addlog(card, "POF created %s", boot->buf.PofTime.DateTimeText);
+               break;
+
+       case TAG_CBOOTDTA:
+               DecryptBuf(boot, datlen);       /* we need to encrypt the buffer */
+       case TAG_BOOTDTA:
+               if (card->debug_flags & LOG_POF_RECORD)
+                       hysdn_addlog(card, "POF got %s len=%d offs=0x%lx",
+                                    (boot->pof_recid == TAG_CBOOTDTA) ? "CBOOTDATA" : "BOOTDTA",
+                                    datlen, boot->pof_recoffset);
+
+               if (boot->pof_reclen != POF_BOOT_LOADER_TOTAL_SIZE) {
+                       boot->last_error = EPOF_BAD_IMG_SIZE;   /* invalid length */
+                       return (boot->last_error);
+               }
+               imgp = boot->buf.BootBuf;       /* start of buffer */
+               img_len = datlen;       /* maximum length to transfer */
+
+               l = POF_BOOT_LOADER_OFF_IN_PAGE -
+                       (boot->pof_recoffset & (POF_BOOT_LOADER_PAGE_SIZE - 1));
+               if (l > 0) {
+                       /* buffer needs to be truncated */
+                       imgp += l;      /* advance pointer */
+                       img_len -= l;   /* adjust len */
+               }
+               /* at this point no special handling for data wrapping over buffer */
+               /* is necessary, because the boot image always will be adjusted to */
+               /* match a page boundary inside the buffer.                        */
+               /* The buffer for the boot image on the card is filled in 2 cycles */
+               /* first the 1024 hi-words are put in the buffer, then the low 1024 */
+               /* word are handled in the same way with different offset.         */
+
+               if (img_len > 0) {
+                       /* data available for copy */
+                       if ((boot->last_error =
+                            card->writebootimg(card, imgp,
+                                               (boot->pof_recoffset > POF_BOOT_LOADER_PAGE_SIZE) ? 2 : 0)) < 0)
+                               return (boot->last_error);
+               }
+               break;  /* end of case boot image hi/lo */
 
-               case TAG_CBOOTDTA:
-                       DecryptBuf(boot, datlen);       /* we need to encrypt the buffer */
-               case TAG_BOOTDTA:
-                       if (card->debug_flags & LOG_POF_RECORD)
-                               hysdn_addlog(card, "POF got %s len=%d offs=0x%lx",
-                                            (boot->pof_recid == TAG_CBOOTDTA) ? "CBOOTDATA" : "BOOTDTA",
-                                            datlen, boot->pof_recoffset);
+       case TAG_CABSDATA:
+               DecryptBuf(boot, datlen);       /* we need to encrypt the buffer */
+       case TAG_ABSDATA:
+               if (card->debug_flags & LOG_POF_RECORD)
+                       hysdn_addlog(card, "POF got %s len=%d offs=0x%lx",
+                                    (boot->pof_recid == TAG_CABSDATA) ? "CABSDATA" : "ABSDATA",
+                                    datlen, boot->pof_recoffset);
 
-                       if (boot->pof_reclen != POF_BOOT_LOADER_TOTAL_SIZE) {
-                               boot->last_error = EPOF_BAD_IMG_SIZE;   /* invalid length */
-                               return (boot->last_error);
-                       }
-                       imgp = boot->buf.BootBuf;       /* start of buffer */
-                       img_len = datlen;       /* maximum length to transfer */
-
-                       l = POF_BOOT_LOADER_OFF_IN_PAGE -
-                           (boot->pof_recoffset & (POF_BOOT_LOADER_PAGE_SIZE - 1));
-                       if (l > 0) {
-                               /* buffer needs to be truncated */
-                               imgp += l;      /* advance pointer */
-                               img_len -= l;   /* adjust len */
-                       }
-                       /* at this point no special handling for data wrapping over buffer */
-                       /* is necessary, because the boot image always will be adjusted to */
-                       /* match a page boundary inside the buffer.                        */
-                       /* The buffer for the boot image on the card is filled in 2 cycles */
-                       /* first the 1024 hi-words are put in the buffer, then the low 1024 */
-                       /* word are handled in the same way with different offset.         */
-
-                       if (img_len > 0) {
-                               /* data available for copy */
-                               if ((boot->last_error =
-                                    card->writebootimg(card, imgp,
-                                                       (boot->pof_recoffset > POF_BOOT_LOADER_PAGE_SIZE) ? 2 : 0)) < 0)
-                                       return (boot->last_error);
-                       }
-                       break;  /* end of case boot image hi/lo */
-
-               case TAG_CABSDATA:
-                       DecryptBuf(boot, datlen);       /* we need to encrypt the buffer */
-               case TAG_ABSDATA:
-                       if (card->debug_flags & LOG_POF_RECORD)
-                               hysdn_addlog(card, "POF got %s len=%d offs=0x%lx",
-                                            (boot->pof_recid == TAG_CABSDATA) ? "CABSDATA" : "ABSDATA",
-                                            datlen, boot->pof_recoffset);
-
-                       if ((boot->last_error = card->writebootseq(card, boot->buf.BootBuf, datlen)) < 0)
-                               return (boot->last_error);      /* error writing data */
-
-                       if (boot->pof_recoffset + datlen >= boot->pof_reclen)
-                               return (card->waitpofready(card));      /* data completely spooled, wait for ready */
-
-                       break;  /* end of case boot seq data */
+               if ((boot->last_error = card->writebootseq(card, boot->buf.BootBuf, datlen)) < 0)
+                       return (boot->last_error);      /* error writing data */
 
-               default:
-                       if (card->debug_flags & LOG_POF_RECORD)
-                               hysdn_addlog(card, "POF got data(id=0x%lx) len=%d offs=0x%lx", boot->pof_recid,
-                                            datlen, boot->pof_recoffset);
+               if (boot->pof_recoffset + datlen >= boot->pof_reclen)
+                       return (card->waitpofready(card));      /* data completely spooled, wait for ready */
+
+               break;  /* end of case boot seq data */
+
+       default:
+               if (card->debug_flags & LOG_POF_RECORD)
+                       hysdn_addlog(card, "POF got data(id=0x%lx) len=%d offs=0x%lx", boot->pof_recid,
+                                    datlen, boot->pof_recoffset);
 
-                       break;  /* simply skip record */
+               break;  /* simply skip record */
        }                       /* switch boot->pof_recid */
 
        return (0);
@@ -171,7 +171,7 @@ pof_handle_data(hysdn_card * card, int datlen)
 /* occurred and booting must be aborted.                                       */
 /******************************************************************************/
 int
-pof_write_buffer(hysdn_card * card, int datlen)
+pof_write_buffer(hysdn_card *card, int datlen)
 {
        struct boot_data *boot = card->boot;    /* pointer to boot specific data */
 
@@ -184,77 +184,77 @@ pof_write_buffer(hysdn_card * card, int datlen)
                hysdn_addlog(card, "POF write: got %d bytes ", datlen);
 
        switch (boot->pof_state) {
-               case POF_READ_FILE_HEAD:
-                       if (card->debug_flags & LOG_POF_WRITE)
-                               hysdn_addlog(card, "POF write: checking file header");
-
-                       if (datlen != sizeof(tPofFileHdr)) {
-                               boot->last_error = -EPOF_INTERNAL;
-                               break;
-                       }
-                       if (boot->buf.PofFileHdr.Magic != TAGFILEMAGIC) {
-                               boot->last_error = -EPOF_BAD_MAGIC;
-                               break;
-                       }
-                       /* Setup the new state and vars */
-                       boot->Nrecs = (unsigned short)(boot->buf.PofFileHdr.N_PofRecs); /* limited to 65535 */
-                       boot->pof_state = POF_READ_TAG_HEAD;    /* now start with single tags */
-                       boot->last_error = sizeof(tPofRecHdr);  /* new length */
+       case POF_READ_FILE_HEAD:
+               if (card->debug_flags & LOG_POF_WRITE)
+                       hysdn_addlog(card, "POF write: checking file header");
+
+               if (datlen != sizeof(tPofFileHdr)) {
+                       boot->last_error = -EPOF_INTERNAL;
+                       break;
+               }
+               if (boot->buf.PofFileHdr.Magic != TAGFILEMAGIC) {
+                       boot->last_error = -EPOF_BAD_MAGIC;
+                       break;
+               }
+               /* Setup the new state and vars */
+               boot->Nrecs = (unsigned short)(boot->buf.PofFileHdr.N_PofRecs); /* limited to 65535 */
+               boot->pof_state = POF_READ_TAG_HEAD;    /* now start with single tags */
+               boot->last_error = sizeof(tPofRecHdr);  /* new length */
+               break;
+
+       case POF_READ_TAG_HEAD:
+               if (card->debug_flags & LOG_POF_WRITE)
+                       hysdn_addlog(card, "POF write: checking tag header");
+
+               if (datlen != sizeof(tPofRecHdr)) {
+                       boot->last_error = -EPOF_INTERNAL;
                        break;
+               }
+               boot->pof_recid = boot->buf.PofRecHdr.PofRecId;         /* actual pof recid */
+               boot->pof_reclen = boot->buf.PofRecHdr.PofRecDataLen;   /* total length */
+               boot->pof_recoffset = 0;        /* no starting offset */
 
-               case POF_READ_TAG_HEAD:
-                       if (card->debug_flags & LOG_POF_WRITE)
-                               hysdn_addlog(card, "POF write: checking tag header");
-
-                       if (datlen != sizeof(tPofRecHdr)) {
-                               boot->last_error = -EPOF_INTERNAL;
-                               break;
-                       }
-                       boot->pof_recid = boot->buf.PofRecHdr.PofRecId;         /* actual pof recid */
-                       boot->pof_reclen = boot->buf.PofRecHdr.PofRecDataLen;   /* total length */
-                       boot->pof_recoffset = 0;        /* no starting offset */
-
-                       if (card->debug_flags & LOG_POF_RECORD)
-                               hysdn_addlog(card, "POF: got record id=0x%lx length=%ld ",
-                                     boot->pof_recid, boot->pof_reclen);
-
-                       boot->pof_state = POF_READ_TAG_DATA;    /* now start with tag data */
-                       if (boot->pof_reclen < BOOT_BUF_SIZE)
-                               boot->last_error = boot->pof_reclen;    /* limit size */
-                       else
-                               boot->last_error = BOOT_BUF_SIZE;       /* maximum */
+               if (card->debug_flags & LOG_POF_RECORD)
+                       hysdn_addlog(card, "POF: got record id=0x%lx length=%ld ",
+                                    boot->pof_recid, boot->pof_reclen);
 
-                       if (!boot->last_error) {        /* no data inside record */
-                               boot->pof_state = POF_READ_TAG_HEAD;    /* now start with single tags */
-                               boot->last_error = sizeof(tPofRecHdr);  /* new length */
-                       }
-                       break;
+               boot->pof_state = POF_READ_TAG_DATA;    /* now start with tag data */
+               if (boot->pof_reclen < BOOT_BUF_SIZE)
+                       boot->last_error = boot->pof_reclen;    /* limit size */
+               else
+                       boot->last_error = BOOT_BUF_SIZE;       /* maximum */
 
-               case POF_READ_TAG_DATA:
-                       if (card->debug_flags & LOG_POF_WRITE)
-                               hysdn_addlog(card, "POF write: getting tag data");
-
-                       if (datlen != boot->last_error) {
-                               boot->last_error = -EPOF_INTERNAL;
-                               break;
-                       }
-                       if ((boot->last_error = pof_handle_data(card, datlen)) < 0)
-                               return (boot->last_error);      /* an error occurred */
-                       boot->pof_recoffset += datlen;
-                       if (boot->pof_recoffset >= boot->pof_reclen) {
-                               boot->pof_state = POF_READ_TAG_HEAD;    /* now start with single tags */
-                               boot->last_error = sizeof(tPofRecHdr);  /* new length */
-                       } else {
-                               if (boot->pof_reclen - boot->pof_recoffset < BOOT_BUF_SIZE)
-                                       boot->last_error = boot->pof_reclen - boot->pof_recoffset;      /* limit size */
-                               else
-                                       boot->last_error = BOOT_BUF_SIZE;       /* maximum */
-                       }
-                       break;
+               if (!boot->last_error) {        /* no data inside record */
+                       boot->pof_state = POF_READ_TAG_HEAD;    /* now start with single tags */
+                       boot->last_error = sizeof(tPofRecHdr);  /* new length */
+               }
+               break;
 
-               default:
-                       boot->last_error = -EPOF_INTERNAL;      /* unknown state */
+       case POF_READ_TAG_DATA:
+               if (card->debug_flags & LOG_POF_WRITE)
+                       hysdn_addlog(card, "POF write: getting tag data");
+
+               if (datlen != boot->last_error) {
+                       boot->last_error = -EPOF_INTERNAL;
                        break;
+               }
+               if ((boot->last_error = pof_handle_data(card, datlen)) < 0)
+                       return (boot->last_error);      /* an error occurred */
+               boot->pof_recoffset += datlen;
+               if (boot->pof_recoffset >= boot->pof_reclen) {
+                       boot->pof_state = POF_READ_TAG_HEAD;    /* now start with single tags */
+                       boot->last_error = sizeof(tPofRecHdr);  /* new length */
+               } else {
+                       if (boot->pof_reclen - boot->pof_recoffset < BOOT_BUF_SIZE)
+                               boot->last_error = boot->pof_reclen - boot->pof_recoffset;      /* limit size */
+                       else
+                               boot->last_error = BOOT_BUF_SIZE;       /* maximum */
+               }
+               break;
+
+       default:
+               boot->last_error = -EPOF_INTERNAL;      /* unknown state */
+               break;
        }                       /* switch (boot->pof_state) */
 
        return (boot->last_error);
@@ -268,7 +268,7 @@ pof_write_buffer(hysdn_card * card, int datlen)
 /* occurred. Additionally the pointer to the buffer data area is set on success */
 /*******************************************************************************/
 int
-pof_write_open(hysdn_card * card, unsigned char **bufp)
+pof_write_open(hysdn_card *card, unsigned char **bufp)
 {
        struct boot_data *boot; /* pointer to boot specific data */
 
@@ -310,7 +310,7 @@ pof_write_open(hysdn_card * card, unsigned char **bufp)
 /* The return value must be 0 if everything has happened as desired.            */
 /********************************************************************************/
 int
-pof_write_close(hysdn_card * card)
+pof_write_close(hysdn_card *card)
 {
        struct boot_data *boot = card->boot;    /* pointer to boot specific data */
 
@@ -367,27 +367,27 @@ EvalSysrTokData(hysdn_card *card, unsigned char *cp, int len)
                        return (1);
                }
                switch (*cp) {
-                       case SYSR_TOK_B_CHAN:   /* 1 */
-                               if (*(cp + 1) != 1)
-                                       return (1);     /* length invalid */
-                               card->bchans = *(cp + 2);
-                               break;
-
-                       case SYSR_TOK_FAX_CHAN: /* 2 */
-                               if (*(cp + 1) != 1)
-                                       return (1);     /* length invalid */
-                               card->faxchans = *(cp + 2);
-                               break;
-
-                       case SYSR_TOK_MAC_ADDR: /* 3 */
-                               if (*(cp + 1) != 6)
-                                       return (1);     /* length invalid */
-                               memcpy(card->mac_addr, cp + 2, 6);
-                               break;
-
-                       default:
-                               hysdn_addlog(card, "unknown token 0x%02x length %d", *cp, *(cp + 1));
-                               break;
+               case SYSR_TOK_B_CHAN:   /* 1 */
+                       if (*(cp + 1) != 1)
+                               return (1);     /* length invalid */
+                       card->bchans = *(cp + 2);
+                       break;
+
+               case SYSR_TOK_FAX_CHAN: /* 2 */
+                       if (*(cp + 1) != 1)
+                               return (1);     /* length invalid */
+                       card->faxchans = *(cp + 2);
+                       break;
+
+               case SYSR_TOK_MAC_ADDR: /* 3 */
+                       if (*(cp + 1) != 6)
+                               return (1);     /* length invalid */
+                       memcpy(card->mac_addr, cp + 2, 6);
+                       break;
+
+               default:
+                       hysdn_addlog(card, "unknown token 0x%02x length %d", *cp, *(cp + 1));
+                       break;
                }
                len -= (*(cp + 1) + 2);         /* adjust len */
                cp += (*(cp + 1) + 2);  /* and pointer */
index 18b801a..cdac46a 100644 (file)
@@ -41,7 +41,7 @@
 
 #define B1_PROT_64KBIT_HDLC        0x0001
 #define B1_PROT_64KBIT_TRANSPARENT 0x0002
-#define B1_PROT_V110_ASYNCH        0x0004 
+#define B1_PROT_V110_ASYNCH        0x0004
 #define B1_PROT_V110_SYNCH         0x0008
 #define B1_PROT_T30                0x0010
 #define B1_PROT_64KBIT_INV_HDLC    0x0020
@@ -199,14 +199,14 @@ typedef struct HYSDN_CARD {
                char *version[HYSDN_MAXVERSION];
 
                char infobuf[128];      /* for function procinfo */
-               
+
                struct HYSDN_CARD  *card;
                struct capi_ctr capi_ctrl;
                struct sk_buff *skbs[HYSDN_MAX_CAPI_SKB];
                int in_idx, out_idx;    /* indexes to buffer ring */
                int sk_count;           /* number of buffers currently in ring */
                struct sk_buff *tx_skb; /* buffer for tx operation */
-         
+
                struct list_head ncci_head;
        } *hyctrlinfo;
 #endif /* CONFIG_HYSDN_CAPI */
@@ -235,11 +235,11 @@ extern void hysdn_procconf_release(void); /* deinit proc config filesys */
 /* hysdn_proclog.c */
 extern int hysdn_proclog_init(hysdn_card *);   /* init proc log entry */
 extern void hysdn_proclog_release(hysdn_card *);       /* deinit proc log entry */
-extern void hysdn_addlog(hysdn_card *, char *,...);    /* output data to log */
+extern void hysdn_addlog(hysdn_card *, char *, ...);   /* output data to log */
 extern void hysdn_card_errlog(hysdn_card *, tErrLogEntry *, int);      /* output card log */
 
 /* boardergo.c */
-extern int ergo_inithardware(hysdn_card * card);       /* get hardware -> module init */
+extern int ergo_inithardware(hysdn_card *card);        /* get hardware -> module init */
 
 /* hysdn_boot.c */
 extern int pof_write_close(hysdn_card *);      /* close proc file after writing pof */
@@ -249,31 +249,31 @@ extern int EvalSysrTokData(hysdn_card *, unsigned char *, int);           /* Check Sysrea
 
 /* hysdn_sched.c */
 extern int hysdn_sched_tx(hysdn_card *, unsigned char *,
-                       unsigned short volatile *, unsigned short volatile *,
-                       unsigned short);
+                         unsigned short volatile *, unsigned short volatile *,
+                         unsigned short);
 extern int hysdn_sched_rx(hysdn_card *, unsigned char *, unsigned short,
-                       unsigned short);
+                         unsigned short);
 extern int hysdn_tx_cfgline(hysdn_card *, unsigned char *,
-                       unsigned short);        /* send one cfg line */
+                           unsigned short);    /* send one cfg line */
 
 /* hysdn_net.c */
-extern unsigned int hynet_enable; 
+extern unsigned int hynet_enable;
 extern int hysdn_net_create(hysdn_card *);     /* create a new net device */
 extern int hysdn_net_release(hysdn_card *);    /* delete the device */
 extern char *hysdn_net_getname(hysdn_card *);  /* get name of net interface */
 extern void hysdn_tx_netack(hysdn_card *);     /* acknowledge a packet tx */
 extern struct sk_buff *hysdn_tx_netget(hysdn_card *);  /* get next network packet */
 extern void hysdn_rx_netpkt(hysdn_card *, unsigned char *,
-                       unsigned short);        /* rxed packet from network */
+                           unsigned short);    /* rxed packet from network */
 
 #ifdef CONFIG_HYSDN_CAPI
-extern unsigned int hycapi_enable; 
+extern unsigned int hycapi_enable;
 extern int hycapi_capi_create(hysdn_card *);   /* create a new capi device */
 extern int hycapi_capi_release(hysdn_card *);  /* delete the device */
 extern int hycapi_capi_stop(hysdn_card *card);   /* suspend */
-extern void hycapi_rx_capipkt(hysdn_card * card, unsigned char * buf,
-                               unsigned short len);
-extern void hycapi_tx_capiack(hysdn_card * card);
+extern void hycapi_rx_capipkt(hysdn_card *card, unsigned char *buf,
+                             unsigned short len);
+extern void hycapi_tx_capiack(hysdn_card *card);
 extern struct sk_buff *hycapi_tx_capiget(hysdn_card *card);
 extern int hycapi_init(void);
 extern void hycapi_cleanup(void);
index 0ab42ac..b61bbb4 100644 (file)
@@ -169,8 +169,8 @@ hysdn_init(void)
                hysdn_have_procfs = 1;
 
 #ifdef CONFIG_HYSDN_CAPI
-       if(cardmax > 0) {
-               if(hycapi_init()) {
+       if (cardmax > 0) {
+               if (hycapi_init()) {
                        printk(KERN_ERR "HYCAPI: init failed\n");
 
                        if (hysdn_have_procfs)
index 11f2cce..a0efb4c 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "hysdn_defs.h"
 
-unsigned int hynet_enable = 0xffffffff; 
+unsigned int hynet_enable = 0xffffffff;
 module_param(hynet_enable, uint, 0);
 
 #define MAX_SKB_BUFFERS 20     /* number of buffers for keeping TX-data */
@@ -155,7 +155,7 @@ net_send_packet(struct sk_buff *skb, struct net_device *dev)
 /* completion                                                          */
 /***********************************************************************/
 void
-hysdn_tx_netack(hysdn_card * card)
+hysdn_tx_netack(hysdn_card *card)
 {
        struct net_local *lp = card->netif;
 
@@ -181,7 +181,7 @@ hysdn_tx_netack(hysdn_card * card)
 /* we got a packet from the network, go and queue it */
 /*****************************************************/
 void
-hysdn_rx_netpkt(hysdn_card * card, unsigned char *buf, unsigned short len)
+hysdn_rx_netpkt(hysdn_card *card, unsigned char *buf, unsigned short len)
 {
        struct net_local *lp = card->netif;
        struct net_device *dev;
@@ -215,7 +215,7 @@ hysdn_rx_netpkt(hysdn_card * card, unsigned char *buf, unsigned short len)
 /* return the pointer to a network packet to be send */
 /*****************************************************/
 struct sk_buff *
-hysdn_tx_netget(hysdn_card * card)
+hysdn_tx_netget(hysdn_card *card)
 {
        struct net_local *lp = card->netif;
 
@@ -229,11 +229,11 @@ hysdn_tx_netget(hysdn_card * card)
 }                              /* hysdn_tx_netget */
 
 static const struct net_device_ops hysdn_netdev_ops = {
-       .ndo_open               = net_open,
+       .ndo_open               = net_open,
        .ndo_stop               = net_close,
        .ndo_start_xmit         = net_send_packet,
        .ndo_change_mtu         = eth_change_mtu,
-       .ndo_set_mac_address    = eth_mac_addr,
+       .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
@@ -244,13 +244,13 @@ static const struct net_device_ops hysdn_netdev_ops = {
 /* 0 announces success, else a negative error code will be returned.         */
 /*****************************************************************************/
 int
-hysdn_net_create(hysdn_card * card)
+hysdn_net_create(hysdn_card *card)
 {
        struct net_device *dev;
        int i;
        struct net_local *lp;
 
-       if(!card) {
+       if (!card) {
                printk(KERN_WARNING "No card-pt in hysdn_net_create!\n");
                return (-ENOMEM);
        }
@@ -291,7 +291,7 @@ hysdn_net_create(hysdn_card * card)
 /* value 0 announces success, else a negative error code will be returned. */
 /***************************************************************************/
 int
-hysdn_net_release(hysdn_card * card)
+hysdn_net_release(hysdn_card *card)
 {
        struct net_device *dev = card->netif;
 
@@ -316,7 +316,7 @@ hysdn_net_release(hysdn_card * card)
 /* if the interface is not existing, a "-" is returned.                      */
 /*****************************************************************************/
 char *
-hysdn_net_getname(hysdn_card * card)
+hysdn_net_getname(hysdn_card *card)
 {
        struct net_device *dev = card->netif;
 
index 3a72b90..f63f5fa 100644 (file)
@@ -16,9 +16,9 @@
 #define BOOT_BUF_SIZE   0x1000 /* =4096, maybe moved to other h file */
 #define CRYPT_FEEDTERM  0x8142
 #define CRYPT_STARTTERM 0x81a5
-                                   /*  max. timeout time in seconds
                                   *  from end of booting to POF is ready
                                   */
+/*  max. timeout time in seconds
+ *  from end of booting to POF is ready
+ */
 #define POF_READY_TIME_OUT_SEC  10
 
 /**********************************/
  */
 
 #define POF_BOOT_LOADER_PAGE_SIZE   0x4000     /* =16384U */
-#define POF_BOOT_LOADER_TOTAL_SIZE  (2U*POF_BOOT_LOADER_PAGE_SIZE)
+#define POF_BOOT_LOADER_TOTAL_SIZE  (2U * POF_BOOT_LOADER_PAGE_SIZE)
 
 #define POF_BOOT_LOADER_CODE_SIZE   0x0800     /* =2KB =2048U */
 
-                   /* offset in boot page, where loader code may start */
-                                           /* =0x3800= 14336U */
+/* offset in boot page, where loader code may start */
+/* =0x3800= 14336U */
 #define POF_BOOT_LOADER_OFF_IN_PAGE (POF_BOOT_LOADER_PAGE_SIZE-POF_BOOT_LOADER_CODE_SIZE)
 
 
 /*--------------------------------------POF file record structs------------*/
 typedef struct PofFileHdr_tag {        /* Pof file header */
-/*00 */ unsigned long Magic __attribute__((packed));
-/*04 */ unsigned long N_PofRecs __attribute__((packed));
+       /*00 */ unsigned long Magic __attribute__((packed));
+       /*04 */ unsigned long N_PofRecs __attribute__((packed));
 /*08 */
 } tPofFileHdr;
 
 typedef struct PofRecHdr_tag { /* Pof record header */
-/*00 */ unsigned short PofRecId __attribute__((packed));
-/*02 */ unsigned long PofRecDataLen __attribute__((packed));
+       /*00 */ unsigned short PofRecId __attribute__((packed));
+       /*02 */ unsigned long PofRecDataLen __attribute__((packed));
 /*06 */
 } tPofRecHdr;
 
 typedef struct PofTimeStamp_tag {
-/*00 */ unsigned long UnixTime __attribute__((packed));
+       /*00 */ unsigned long UnixTime __attribute__((packed));
        /*04 */ unsigned char DateTimeText[0x28];
        /* =40 */
 /*2C */
 } tPofTimeStamp;
 
-                                   /* tPofFileHdr.Magic value: */
+/* tPofFileHdr.Magic value: */
 #define TAGFILEMAGIC 0x464F501AUL
-                                   /* tPofRecHdr.PofRecId values: */
+/* tPofRecHdr.PofRecId values: */
 #define TAG_ABSDATA  0x1000    /* abs. data */
 #define TAG_BOOTDTA  0x1001    /* boot data */
 #define TAG_COMMENT  0x0020
index 5fe83bd..8023d25 100644 (file)
@@ -91,7 +91,7 @@ process_line(struct conf_writedata *cnf)
 /* write conf file -> boot or send cfg line to card */
 /****************************************************/
 static ssize_t
-hysdn_conf_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
+hysdn_conf_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
 {
        struct conf_writedata *cnf;
        int i;
@@ -366,7 +366,7 @@ static const struct file_operations conf_fops =
        .read           = hysdn_conf_read,
        .write          = hysdn_conf_write,
        .open           = hysdn_conf_open,
-       .release        = hysdn_conf_close,                                       
+       .release        = hysdn_conf_close,
 };
 
 /*****************************/
@@ -395,9 +395,9 @@ hysdn_procconf_init(void)
 
                sprintf(conf_name, "%s%d", PROC_CONF_BASENAME, card->myid);
                if ((card->procconf = (void *) proc_create(conf_name,
-                                               S_IFREG | S_IRUGO | S_IWUSR,
-                                               hysdn_proc_entry,
-                                               &conf_fops)) != NULL) {
+                                                          S_IFREG | S_IRUGO | S_IWUSR,
+                                                          hysdn_proc_entry,
+                                                          &conf_fops)) != NULL) {
                        hysdn_proclog_init(card);       /* init the log file entry */
                }
                card = card->next;      /* next entry */
index 236cc7d..ba91333 100644 (file)
@@ -24,7 +24,7 @@
 extern struct proc_dir_entry *hysdn_proc_entry;
 
 static DEFINE_MUTEX(hysdn_log_mutex);
-static void put_log_buffer(hysdn_card * card, char *cp);
+static void put_log_buffer(hysdn_card *card, char *cp);
 
 /*************************************************/
 /* structure keeping ascii log for device output */
@@ -54,7 +54,7 @@ struct procdata {
 /* log function for cards error log interface */
 /**********************************************/
 void
-hysdn_card_errlog(hysdn_card * card, tErrLogEntry * logp, int maxsize)
+hysdn_card_errlog(hysdn_card *card, tErrLogEntry *logp, int maxsize)
 {
        char buf[ERRLOG_TEXT_SIZE + 40];
 
@@ -66,7 +66,7 @@ hysdn_card_errlog(hysdn_card * card, tErrLogEntry * logp, int maxsize)
 /* Log function using format specifiers for output */
 /***************************************************/
 void
-hysdn_addlog(hysdn_card * card, char *fmt,...)
+hysdn_addlog(hysdn_card *card, char *fmt, ...)
 {
        struct procdata *pd = card->proclog;
        char *cp;
@@ -98,7 +98,7 @@ hysdn_addlog(hysdn_card * card, char *fmt,...)
 /* Flushes buffers not longer in use.       */
 /********************************************/
 static void
-put_log_buffer(hysdn_card * card, char *cp)
+put_log_buffer(hysdn_card *card, char *cp)
 {
        struct log_data *ib;
        struct procdata *pd = card->proclog;
@@ -115,7 +115,7 @@ put_log_buffer(hysdn_card * card, char *cp)
                return;         /* no open file for read */
 
        if (!(ib = kmalloc(sizeof(struct log_data) + strlen(cp), GFP_ATOMIC)))
-                return;        /* no memory */
+               return; /* no memory */
        strcpy(ib->log_start, cp);      /* set output string */
        ib->next = NULL;
        ib->proc_ctrl = pd;     /* point to own control structure */
@@ -153,7 +153,7 @@ put_log_buffer(hysdn_card * card, char *cp)
 /* write log file -> set log level bits */
 /****************************************/
 static ssize_t
-hysdn_log_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
+hysdn_log_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
 {
        int rc;
        unsigned char valbuf[128];
@@ -177,7 +177,7 @@ hysdn_log_write(struct file *file, const char __user *buf, size_t count, loff_t
 /* read log file */
 /******************/
 static ssize_t
-hysdn_log_read(struct file *file, char __user *buf, size_t count, loff_t * off)
+hysdn_log_read(struct file *file, char __user *buf, size_t count, loff_t *off)
 {
        struct log_data *inf;
        int len;
@@ -324,7 +324,7 @@ hysdn_log_close(struct inode *ino, struct file *filep)
 /* select/poll routine to be able using select() */
 /*************************************************/
 static unsigned int
-hysdn_log_poll(struct file *file, poll_table * wait)
+hysdn_log_poll(struct file *file, poll_table *wait)
 {
        unsigned int mask = 0;
        struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
@@ -364,7 +364,7 @@ static const struct file_operations log_fops =
        .write          = hysdn_log_write,
        .poll           = hysdn_log_poll,
        .open           = hysdn_log_open,
-       .release        = hysdn_log_close,                                        
+       .release        = hysdn_log_close,
 };
 
 
@@ -373,7 +373,7 @@ static const struct file_operations log_fops =
 /* conf files.                                                                     */
 /***********************************************************************************/
 int
-hysdn_proclog_init(hysdn_card * card)
+hysdn_proclog_init(hysdn_card *card)
 {
        struct procdata *pd;
 
@@ -382,8 +382,8 @@ hysdn_proclog_init(hysdn_card * card)
        if ((pd = kzalloc(sizeof(struct procdata), GFP_KERNEL)) != NULL) {
                sprintf(pd->log_name, "%s%d", PROC_LOG_BASENAME, card->myid);
                pd->log = proc_create(pd->log_name,
-                               S_IFREG | S_IRUGO | S_IWUSR, hysdn_proc_entry,
-                               &log_fops);
+                                     S_IFREG | S_IRUGO | S_IWUSR, hysdn_proc_entry,
+                                     &log_fops);
 
                init_waitqueue_head(&(pd->rd_queue));
 
@@ -398,7 +398,7 @@ hysdn_proclog_init(hysdn_card * card)
 /* The module counter is assumed to be 0 !                                          */
 /************************************************************************************/
 void
-hysdn_proclog_release(hysdn_card * card)
+hysdn_proclog_release(hysdn_card *card)
 {
        struct procdata *pd;
 
index 3674d30..31d7c14 100644 (file)
 /*****************************************************************************/
 int
 hysdn_sched_rx(hysdn_card *card, unsigned char *buf, unsigned short len,
-                       unsigned short chan)
+              unsigned short chan)
 {
 
        switch (chan) {
-               case CHAN_NDIS_DATA:
-                       if (hynet_enable & (1 << card->myid)) {
-                          /* give packet to network handler */
-                               hysdn_rx_netpkt(card, buf, len);
-                       }
-                       break;
-
-               case CHAN_ERRLOG:
-                       hysdn_card_errlog(card, (tErrLogEntry *) buf, len);
-                       if (card->err_log_state == ERRLOG_STATE_ON)
-                               card->err_log_state = ERRLOG_STATE_START;       /* start new fetch */
-                       break;
+       case CHAN_NDIS_DATA:
+               if (hynet_enable & (1 << card->myid)) {
+                       /* give packet to network handler */
+                       hysdn_rx_netpkt(card, buf, len);
+               }
+               break;
+
+       case CHAN_ERRLOG:
+               hysdn_card_errlog(card, (tErrLogEntry *) buf, len);
+               if (card->err_log_state == ERRLOG_STATE_ON)
+                       card->err_log_state = ERRLOG_STATE_START;       /* start new fetch */
+               break;
 #ifdef CONFIG_HYSDN_CAPI
-               case CHAN_CAPI:
+       case CHAN_CAPI:
 /* give packet to CAPI handler */
-                       if (hycapi_enable & (1 << card->myid)) {
-                               hycapi_rx_capipkt(card, buf, len);
-                       }
-                       break;
+               if (hycapi_enable & (1 << card->myid)) {
+                       hycapi_rx_capipkt(card, buf, len);
+               }
+               break;
 #endif /* CONFIG_HYSDN_CAPI */
-               default:
-                       printk(KERN_INFO "irq message channel %d len %d unhandled \n", chan, len);
-                       break;
+       default:
+               printk(KERN_INFO "irq message channel %d len %d unhandled \n", chan, len);
+               break;
 
        }                       /* switch rx channel */
 
@@ -72,8 +72,8 @@ hysdn_sched_rx(hysdn_card *card, unsigned char *buf, unsigned short len,
 /*****************************************************************************/
 int
 hysdn_sched_tx(hysdn_card *card, unsigned char *buf,
-               unsigned short volatile *len, unsigned short volatile *chan,
-               unsigned short maxlen)
+              unsigned short volatile *len, unsigned short volatile *chan,
+              unsigned short maxlen)
 {
        struct sk_buff *skb;
 
@@ -109,8 +109,8 @@ hysdn_sched_tx(hysdn_card *card, unsigned char *buf,
                return (1);     /* tell that data should be send */
        }                       /* error log start and able to send */
        /* now handle network interface packets */
-       if ((hynet_enable & (1 << card->myid)) && 
-           (skb = hysdn_tx_netget(card)) != NULL) 
+       if ((hynet_enable & (1 << card->myid)) &&
+           (skb = hysdn_tx_netget(card)) != NULL)
        {
                if (skb->len <= maxlen) {
                        /* copy the packet to the buffer */
@@ -123,8 +123,8 @@ hysdn_sched_tx(hysdn_card *card, unsigned char *buf,
                        hysdn_tx_netack(card);  /* aknowledge packet -> throw away */
        }                       /* send a network packet if available */
 #ifdef CONFIG_HYSDN_CAPI
-       if( ((hycapi_enable & (1 << card->myid))) && 
-           ((skb = hycapi_tx_capiget(card)) != NULL) )
+       if (((hycapi_enable & (1 << card->myid))) &&
+           ((skb = hycapi_tx_capiget(card)) != NULL))
        {
                if (skb->len <= maxlen) {
                        skb_copy_from_linear_data(skb, buf, skb->len);
index 7a36694..cab6836 100644 (file)
 
 /*  basic scalar definitions have same meanning,
  *  but their declaration location depends on environment
- */ 
+ */
 
-/*--------------------------------------channel numbers---------------------*/ 
+/*--------------------------------------channel numbers---------------------*/
 #define CHAN_SYSTEM     0x0001      /* system channel (spooler to spooler) */
 #define CHAN_ERRLOG     0x0005      /* error logger */
 #define CHAN_CAPI       0x0064      /* CAPI interface */
 #define CHAN_NDIS_DATA  0x1001      /* NDIS data transfer */
 
-/*--------------------------------------POF ready msg-----------------------*/ 
-           /* NOTE: after booting POF sends system ready message to PC: */ 
+/*--------------------------------------POF ready msg-----------------------*/
+/* NOTE: after booting POF sends system ready message to PC: */
 #define RDY_MAGIC       0x52535953UL    /* 'SYSR' reversed */
 #define RDY_MAGIC_SIZE  4               /* size in bytes */
 
 #define MAX_N_TOK_BYTES 255
 
 #define MIN_RDY_MSG_SIZE    RDY_MAGIC_SIZE
-#define MAX_RDY_MSG_SIZE    (RDY_MAGIC_SIZE+MAX_N_TOK_BYTES)
+#define MAX_RDY_MSG_SIZE    (RDY_MAGIC_SIZE + MAX_N_TOK_BYTES)
 
 #define SYSR_TOK_END            0
 #define SYSR_TOK_B_CHAN         1   /* nr. of B-Channels;   DataLen=1; def: 2 */
 #define SYSR_TOK_FAX_CHAN       2   /* nr. of FAX Channels; DataLen=1; def: 0 */
 #define SYSR_TOK_MAC_ADDR       3   /* MAC-Address; DataLen=6; def: auto */
 #define SYSR_TOK_ESC            255 /* undefined data size yet */
-                           /* default values, if not corrected by token: */ 
+/* default values, if not corrected by token: */
 #define SYSR_TOK_B_CHAN_DEF     2   /* assume 2 B-Channels */
 #define SYSR_TOK_FAX_CHAN_DEF   1   /* assume 1 FAX Channel */
 
  *
  *  note:
  *  - for 16-bit FIFO add padding 0 byte to achieve even token data bytes!
- */ 
+ */
 
-/*--------------------------------------error logger------------------------*/ 
-                                           /* note: pof needs final 0 ! */ 
+/*--------------------------------------error logger------------------------*/
+/* note: pof needs final 0 ! */
 #define ERRLOG_CMD_REQ          "ERRLOG ON"
 #define ERRLOG_CMD_REQ_SIZE     10              /* with final 0 byte ! */
 #define ERRLOG_CMD_STOP         "ERRLOG OFF"
 #define ERRLOG_CMD_STOP_SIZE    11              /* with final 0 byte ! */
 
 #define ERRLOG_ENTRY_SIZE       64      /* sizeof(tErrLogEntry) */
-                                       /* remaining text size = 55 */ 
-#define ERRLOG_TEXT_SIZE    (ERRLOG_ENTRY_SIZE-2*4-1)
+                                       /* remaining text size = 55 */
+#define ERRLOG_TEXT_SIZE    (ERRLOG_ENTRY_SIZE - 2 * 4 - 1)
 
 typedef struct ErrLogEntry_tag {
-       
-/*00 */ unsigned long ulErrType;
-       
-/*04 */ unsigned long ulErrSubtype;
-       
-/*08 */ unsigned char ucTextSize;
-       
+
+       /*00 */ unsigned long ulErrType;
+
+       /*04 */ unsigned long ulErrSubtype;
+
+       /*08 */ unsigned char ucTextSize;
+
        /*09 */ unsigned char ucText[ERRLOG_TEXT_SIZE];
        /* ASCIIZ of len ucTextSize-1 */
-       
-/*40 */ 
+
+/*40 */
 } tErrLogEntry;
 
 
@@ -104,30 +104,30 @@ typedef struct ErrLogEntry_tag {
 #endif                         /*  */
 #endif                         /*  */
 
-/*--------------------------------------DPRAM boot spooler------------------*/ 
-                               /*  this is the struture used between pc and
                               *  hyperstone to exchange boot data
-                                */ 
+/*--------------------------------------DPRAM boot spooler------------------*/
+/*  this is the struture used between pc and
+ *  hyperstone to exchange boot data
+ */
 #define DPRAM_SPOOLER_DATA_SIZE 0x20
 typedef struct DpramBootSpooler_tag {
-       
-/*00 */ unsigned char Len;
-       
-/*01 */ volatile unsigned char RdPtr;
-       
-/*02 */ unsigned char WrPtr;
-       
-/*03 */ unsigned char Data[DPRAM_SPOOLER_DATA_SIZE];
-       
-/*23 */ 
+
+       /*00 */ unsigned char Len;
+
+       /*01 */ volatile unsigned char RdPtr;
+
+       /*02 */ unsigned char WrPtr;
+
+       /*03 */ unsigned char Data[DPRAM_SPOOLER_DATA_SIZE];
+
+/*23 */
 } tDpramBootSpooler;
 
 
 #define DPRAM_SPOOLER_MIN_SIZE  5       /* Len+RdPtr+Wrptr+2*data */
 #define DPRAM_SPOOLER_DEF_SIZE  0x23    /* current default size   */
 
-/*--------------------------------------HYCARD/ERGO DPRAM SoftUart----------*/ 
-                                   /* at DPRAM offset 0x1C00: */ 
+/*--------------------------------------HYCARD/ERGO DPRAM SoftUart----------*/
+/* at DPRAM offset 0x1C00: */
 #define SIZE_RSV_SOFT_UART  0x1B0   /* 432 bytes reserved for SoftUart */
 
 
index d501393..78ce422 100644 (file)
@@ -204,9 +204,9 @@ isdn_audio_tlookup(const u_char *table, u_char *buff, unsigned long n)
                "xlatb\n\t"
                "stosb\n\t"
                "loop 1b\n\t"
-       :       "=&b"(d0), "=&c"(d1), "=&D"(d2), "=&S"(d3)
-       :       "0"((long) table), "1"(n), "2"((long) buff), "3"((long) buff)
-       :       "memory", "ax");
+               :       "=&b"(d0), "=&c"(d1), "=&D"(d2), "=&S"(d3)
+               :       "0"((long) table), "1"(n), "2"((long) buff), "3"((long) buff)
+               :       "memory", "ax");
 #else
        while (n--)
                *buff = table[*(unsigned char *)buff], buff++;
@@ -242,27 +242,27 @@ static unsigned char
 isdn_audio_linear2ulaw(int sample)
 {
        static int exp_lut[256] =
-       {
-               0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
-               4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-               5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-               5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-               6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-               6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-               6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-               6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-               7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-       };
+               {
+                       0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
+                       4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+                       5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+                       5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+                       6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+                       6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+                       6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+                       6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+                       7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
+               };
        int sign,
-        exponent,
-        mantissa;
+               exponent,
+               mantissa;
        unsigned char ulawbyte;
 
        /* Get the sample into sign-magnitude. */
@@ -299,7 +299,7 @@ static int bitmask[9] =
 };
 
 static int
-isdn_audio_get_bits(adpcm_state * s, unsigned char **in, int *len)
+isdn_audio_get_bits(adpcm_state *s, unsigned char **in, int *len)
 {
        while (s->nleft < s->nbits) {
                int d = *((*in)++);
@@ -312,7 +312,7 @@ isdn_audio_get_bits(adpcm_state * s, unsigned char **in, int *len)
 }
 
 static void
-isdn_audio_put_bits(int data, int nbits, adpcm_state * s,
+isdn_audio_put_bits(int data, int nbits, adpcm_state *s,
                    unsigned char **out, int *len)
 {
        s->word = (s->word << nbits) | (data & bitmask[nbits]);
@@ -326,7 +326,7 @@ isdn_audio_put_bits(int data, int nbits, adpcm_state * s,
 }
 
 adpcm_state *
-isdn_audio_adpcm_init(adpcm_state * s, int nbits)
+isdn_audio_adpcm_init(adpcm_state *s, int nbits)
 {
        if (!s)
                s = kmalloc(sizeof(adpcm_state), GFP_ATOMIC);
@@ -341,7 +341,7 @@ isdn_audio_adpcm_init(adpcm_state * s, int nbits)
 }
 
 dtmf_state *
-isdn_audio_dtmf_init(dtmf_state * s)
+isdn_audio_dtmf_init(dtmf_state *s)
 {
        if (!s)
                s = kmalloc(sizeof(dtmf_state), GFP_ATOMIC);
@@ -358,7 +358,7 @@ isdn_audio_dtmf_init(dtmf_state * s)
  */
 
 int
-isdn_audio_adpcm2xlaw(adpcm_state * s, int fmt, unsigned char *in,
+isdn_audio_adpcm2xlaw(adpcm_state *s, int fmt, unsigned char *in,
                      unsigned char *out, int len)
 {
        int a = s->a;
@@ -379,7 +379,7 @@ isdn_audio_adpcm2xlaw(adpcm_state * s, int fmt, unsigned char *in,
                        a++;
                if (fmt)
                        *out++ = isdn_audio_ulaw_to_alaw[
-                                        isdn_audio_linear2ulaw(a << 2)];
+                               isdn_audio_linear2ulaw(a << 2)];
                else
                        *out++ = isdn_audio_linear2ulaw(a << 2);
                olen++;
@@ -393,7 +393,7 @@ isdn_audio_adpcm2xlaw(adpcm_state * s, int fmt, unsigned char *in,
 }
 
 int
-isdn_audio_xlaw2adpcm(adpcm_state * s, int fmt, unsigned char *in,
+isdn_audio_xlaw2adpcm(adpcm_state *s, int fmt, unsigned char *in,
                      unsigned char *out, int len)
 {
        int a = s->a;
@@ -403,9 +403,9 @@ isdn_audio_xlaw2adpcm(adpcm_state * s, int fmt, unsigned char *in,
 
        while (len--) {
                int e = 0,
-                nmax = 1 << (nbits - 1);
+                       nmax = 1 << (nbits - 1);
                int sign,
-                delta;
+                       delta;
 
                if (fmt)
                        delta = (isdn_audio_alaw_to_s16[*in++] >> 2) - a;
@@ -439,26 +439,26 @@ isdn_audio_xlaw2adpcm(adpcm_state * s, int fmt, unsigned char *in,
 
 /*
  * Goertzel algorithm.
- * See http://ptolemy.eecs.berkeley.edu/papers/96/dtmf_ict/ 
+ * See http://ptolemy.eecs.berkeley.edu/papers/96/dtmf_ict/
  * for more info.
  * Result is stored into an sk_buff and queued up for later
  * evaluation.
  */
 static void
-isdn_audio_goertzel(int *sample, modem_info * info)
+isdn_audio_goertzel(int *sample, modem_info *info)
 {
        int sk,
-        sk1,
-        sk2;
+               sk1,
+               sk2;
        int k,
-        n;
+               n;
        struct sk_buff *skb;
        int *result;
 
        skb = dev_alloc_skb(sizeof(int) * NCOEFF);
        if (!skb) {
                printk(KERN_WARNING
-                 "isdn_audio: Could not alloc DTMF result for ttyI%d\n",
+                      "isdn_audio: Could not alloc DTMF result for ttyI%d\n",
                       info->line);
                return;
        }
@@ -483,16 +483,16 @@ isdn_audio_goertzel(int *sample, modem_info * info)
                        printk(KERN_DEBUG
                               "isdn_audio: dtmf goertzel overflow, sk2=%d\n", sk2);
                result[k] =
-                   ((sk * sk) >> AMP_BITS) -
-                   ((((cos2pik[k] * sk) >> 15) * sk2) >> AMP_BITS) +
-                   ((sk2 * sk2) >> AMP_BITS);
+                       ((sk * sk) >> AMP_BITS) -
+                       ((((cos2pik[k] * sk) >> 15) * sk2) >> AMP_BITS) +
+                       ((sk2 * sk2) >> AMP_BITS);
        }
        skb_queue_tail(&info->dtmf_queue, skb);
        isdn_timer_ctrl(ISDN_TIMER_MODEMREAD, 1);
 }
 
 void
-isdn_audio_eval_dtmf(modem_info * info)
+isdn_audio_eval_dtmf(modem_info *info)
 {
        struct sk_buff *skb;
        int *result;
@@ -590,7 +590,7 @@ isdn_audio_eval_dtmf(modem_info * info)
  *   fmt  = audio data format (0 = ulaw, 1 = alaw)
  */
 void
-isdn_audio_calc_dtmf(modem_info * info, unsigned char *buf, int len, int fmt)
+isdn_audio_calc_dtmf(modem_info *info, unsigned char *buf, int len, int fmt)
 {
        dtmf_state *s = info->dtmf_state;
        int i;
@@ -605,10 +605,10 @@ isdn_audio_calc_dtmf(modem_info * info, unsigned char *buf, int len, int fmt)
                for (i = 0; i < c; i++) {
                        if (fmt)
                                s->buf[s->idx++] =
-                                   isdn_audio_alaw_to_s16[*buf++] >> (15 - AMP_BITS);
+                                       isdn_audio_alaw_to_s16[*buf++] >> (15 - AMP_BITS);
                        else
                                s->buf[s->idx++] =
-                                   isdn_audio_ulaw_to_s16[*buf++] >> (15 - AMP_BITS);
+                                       isdn_audio_ulaw_to_s16[*buf++] >> (15 - AMP_BITS);
                }
                if (s->idx == DTMF_NPOINTS) {
                        isdn_audio_goertzel(s->buf, info);
@@ -619,7 +619,7 @@ isdn_audio_calc_dtmf(modem_info * info, unsigned char *buf, int len, int fmt)
 }
 
 silence_state *
-isdn_audio_silence_init(silence_state * s)
+isdn_audio_silence_init(silence_state *s)
 {
        if (!s)
                s = kmalloc(sizeof(silence_state), GFP_ATOMIC);
@@ -631,7 +631,7 @@ isdn_audio_silence_init(silence_state * s)
 }
 
 void
-isdn_audio_calc_silence(modem_info * info, unsigned char *buf, int len, int fmt)
+isdn_audio_calc_silence(modem_info *info, unsigned char *buf, int len, int fmt)
 {
        silence_state *s = info->silence_state;
        int i;
@@ -641,24 +641,24 @@ isdn_audio_calc_silence(modem_info * info, unsigned char *buf, int len, int fmt)
 
        for (i = 0; i < len; i++) {
                if (fmt)
-                   c = isdn_audio_alaw_to_ulaw[*buf++];
-                       else
-                   c = *buf++;
+                       c = isdn_audio_alaw_to_ulaw[*buf++];
+               else
+                       c = *buf++;
 
                if (c > 0) c -= 128;
                c = abs(c);
 
-               if (c > (info->emu.vpar[1] * 4)) { 
+               if (c > (info->emu.vpar[1] * 4)) {
                        s->idx = 0;
-                       s->state = 1; 
+                       s->state = 1;
                } else {
-                       if (s->idx < 210000) s->idx++; 
+                       if (s->idx < 210000) s->idx++;
                }
        }
 }
 
 void
-isdn_audio_put_dle_code(modem_info * info, u_char code)
+isdn_audio_put_dle_code(modem_info *info, u_char code)
 {
        struct sk_buff *skb;
        int di;
@@ -668,7 +668,7 @@ isdn_audio_put_dle_code(modem_info * info, u_char code)
        skb = dev_alloc_skb(2);
        if (!skb) {
                printk(KERN_WARNING
-                 "isdn_audio: Could not alloc skb for ttyI%d\n",
+                      "isdn_audio: Could not alloc skb for ttyI%d\n",
                       info->line);
                return;
        }
@@ -688,24 +688,24 @@ isdn_audio_put_dle_code(modem_info * info, u_char code)
 }
 
 void
-isdn_audio_eval_silence(modem_info * info)
+isdn_audio_eval_silence(modem_info *info)
 {
        silence_state *s = info->silence_state;
        char what;
 
        what = ' ';
 
-       if (s->idx > (info->emu.vpar[2] * 800)) { 
+       if (s->idx > (info->emu.vpar[2] * 800)) {
                s->idx = 0;
-               if (!s->state) {        /* silence from beginning of rec */ 
+               if (!s->state) {        /* silence from beginning of rec */
                        what = 's';
                } else {
                        what = 'q';
                }
        }
-               if ((what == 's') || (what == 'q')) {
-                       printk(KERN_DEBUG "ttyI%d: %s\n", info->line,
-                               (what=='s') ? "silence":"quiet");
-                       isdn_audio_put_dle_code(info, what);
-               } 
+       if ((what == 's') || (what == 'q')) {
+               printk(KERN_DEBUG "ttyI%d: %s\n", info->line,
+                      (what == 's') ? "silence" : "quiet");
+               isdn_audio_put_dle_code(info, what);
+       }
 }
index aa0b6a6..7f3c54d 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 /*
- * Update: The Berkeley copyright was changed, and the change 
+ * Update: The Berkeley copyright was changed, and the change
  * is retroactive to all "true" BSD software (ie everything
  * from UCB as opposed to other peoples code that just carried
  * the same license). The new copyright doesn't clash with the
@@ -121,7 +121,7 @@ struct bsd_db {
        unsigned char  maxbits;         /* maximum bits/code */
        unsigned char  debug;           /* non-zero if debug desired */
        unsigned char  unit;            /* ppp unit number */
-       u16 seqno;                      /* sequence # of next packet */
+       u16 seqno;                      /* sequence # of next packet */
        unsigned int   mru;             /* size of receive (decompress) bufr */
        unsigned int   maxmaxcode;      /* largest valid code */
        unsigned int   max_ent;         /* largest code in use */
@@ -157,16 +157,16 @@ struct bsd_db {
 #define MAXCODE(b)     ((1 << (b)) - 1)
 #define BADCODEM1      MAXCODE(MAX_BSD_BITS)
 
-#define BSD_HASH(prefix,suffix,hshift) ((((unsigned long)(suffix))<<(hshift)) \
-                                        ^ (unsigned long)(prefix))
-#define BSD_KEY(prefix,suffix)         ((((unsigned long)(suffix)) << 16) \
+#define BSD_HASH(prefix, suffix, hshift) ((((unsigned long)(suffix)) << (hshift)) \
+                                         ^ (unsigned long)(prefix))
+#define BSD_KEY(prefix, suffix)                ((((unsigned long)(suffix)) << 16) \
                                         + (unsigned long)(prefix))
 
 #define CHECK_GAP      10000           /* Ratio check interval */
 
 #define RATIO_SCALE_LOG        8
-#define RATIO_SCALE    (1<<RATIO_SCALE_LOG)
-#define RATIO_MAX      (0x7fffffff>>RATIO_SCALE_LOG)
+#define RATIO_SCALE    (1 << RATIO_SCALE_LOG)
+#define RATIO_MAX      (0x7fffffff >> RATIO_SCALE_LOG)
 
 /*
  * clear the dictionary
@@ -175,7 +175,7 @@ struct bsd_db {
 static void bsd_clear(struct bsd_db *db)
 {
        db->clear_count++;
-       db->max_ent      = FIRST-1;
+       db->max_ent      = FIRST - 1;
        db->n_bits       = BSD_INIT_BITS;
        db->bytes_out    = 0;
        db->in_count     = 0;
@@ -197,56 +197,56 @@ static void bsd_clear(struct bsd_db *db)
  * the absence of CLEAR codes (while packets are incompressible), they
  * must compute the same ratio.
  */
-static int bsd_check (struct bsd_db *db)       /* 1=output CLEAR */
+static int bsd_check(struct bsd_db *db)        /* 1=output CLEAR */
 {
-    unsigned int new_ratio;
-
-    if (db->in_count >= db->checkpoint)
-      {
-       /* age the ratio by limiting the size of the counts */
-       if (db->in_count >= RATIO_MAX || db->bytes_out >= RATIO_MAX)
-         {
-           db->in_count  -= (db->in_count  >> 2);
-           db->bytes_out -= (db->bytes_out >> 2);
-         }
-       
-       db->checkpoint = db->in_count + CHECK_GAP;
-       
-       if (db->max_ent >= db->maxmaxcode)
-         {
-           /* Reset the dictionary only if the ratio is worse,
-            * or if it looks as if it has been poisoned
-            * by incompressible data.
-            *
-            * This does not overflow, because
-            *  db->in_count <= RATIO_MAX.
-            */
-
-           new_ratio = db->in_count << RATIO_SCALE_LOG;
-           if (db->bytes_out != 0)
-             {
-               new_ratio /= db->bytes_out;
-             }
-           
-           if (new_ratio < db->ratio || new_ratio < 1 * RATIO_SCALE)
-             {
-               bsd_clear (db);
-               return 1;
-             }
-           db->ratio = new_ratio;
-         }
-      }
-    return 0;
+       unsigned int new_ratio;
+
+       if (db->in_count >= db->checkpoint)
+       {
+               /* age the ratio by limiting the size of the counts */
+               if (db->in_count >= RATIO_MAX || db->bytes_out >= RATIO_MAX)
+               {
+                       db->in_count  -= (db->in_count  >> 2);
+                       db->bytes_out -= (db->bytes_out >> 2);
+               }
+
+               db->checkpoint = db->in_count + CHECK_GAP;
+
+               if (db->max_ent >= db->maxmaxcode)
+               {
+                       /* Reset the dictionary only if the ratio is worse,
+                        * or if it looks as if it has been poisoned
+                        * by incompressible data.
+                        *
+                        * This does not overflow, because
+                        *      db->in_count <= RATIO_MAX.
+                        */
+
+                       new_ratio = db->in_count << RATIO_SCALE_LOG;
+                       if (db->bytes_out != 0)
+                       {
+                               new_ratio /= db->bytes_out;
+                       }
+
+                       if (new_ratio < db->ratio || new_ratio < 1 * RATIO_SCALE)
+                       {
+                               bsd_clear(db);
+                               return 1;
+                       }
+                       db->ratio = new_ratio;
+               }
+       }
+       return 0;
 }
 
 /*
  * Return statistics.
  */
 
-static void bsd_stats (void *state, struct compstat *stats)
+static void bsd_stats(void *state, struct compstat *stats)
 {
        struct bsd_db *db = (struct bsd_db *) state;
-    
+
        stats->unc_bytes    = db->uncomp_bytes;
        stats->unc_packets  = db->uncomp_count;
        stats->comp_bytes   = db->comp_bytes;
@@ -260,9 +260,9 @@ static void bsd_stats (void *state, struct compstat *stats)
 /*
  * Reset state, as on a CCP ResetReq.
  */
-static void bsd_reset (void *state,unsigned char code, unsigned char id,
-                       unsigned char *data, unsigned len,
-                       struct isdn_ppp_resetparams *rsparm)
+static void bsd_reset(void *state, unsigned char code, unsigned char id,
+                     unsigned char *data, unsigned len,
+                     struct isdn_ppp_resetparams *rsparm)
 {
        struct bsd_db *db = (struct bsd_db *) state;
 
@@ -274,7 +274,7 @@ static void bsd_reset (void *state,unsigned char code, unsigned char id,
 /*
  * Release the compression structure
  */
-static void bsd_free (void *state)
+static void bsd_free(void *state)
 {
        struct bsd_db *db = (struct bsd_db *) state;
 
@@ -302,7 +302,7 @@ static void bsd_free (void *state)
 /*
  * Allocate space for a (de) compressor.
  */
-static void *bsd_alloc (struct isdn_ppp_comp_data *data)
+static void *bsd_alloc(struct isdn_ppp_comp_data *data)
 {
        int bits;
        unsigned int hsize, hshift, maxmaxcode;
@@ -310,27 +310,27 @@ static void *bsd_alloc (struct isdn_ppp_comp_data *data)
        int decomp;
 
        static unsigned int htab[][2] = {
-               { 5003 , 4 } , { 5003 , 4 } , { 5003 , 4 } , { 5003 , 4 } , 
-               { 9001 , 5 } , { 18013 , 6 } , { 35023 , 7 } , { 69001 , 8 } 
+               { 5003 , 4 } , { 5003 , 4 } , { 5003 , 4 } , { 5003 , 4 } ,
+               { 9001 , 5 } , { 18013 , 6 } , { 35023 , 7 } , { 69001 , 8 }
        };
-               
+
        if (data->optlen != 1 || data->num != CI_BSD_COMPRESS
-               || BSD_VERSION(data->options[0]) != BSD_CURRENT_VERSION)
+           || BSD_VERSION(data->options[0]) != BSD_CURRENT_VERSION)
                return NULL;
 
        bits = BSD_NBITS(data->options[0]);
 
-       if(bits < 9 || bits > 15)
+       if (bits < 9 || bits > 15)
                return NULL;
 
-       hsize = htab[bits-9][0];
-       hshift = htab[bits-9][1];
-       
+       hsize = htab[bits - 9][0];
+       hshift = htab[bits - 9][1];
+
        /*
         * Allocate the main control structure for this instance.
         */
        maxmaxcode = MAXCODE(bits);
-       db = kzalloc (sizeof (struct bsd_db),GFP_KERNEL);
+       db = kzalloc(sizeof(struct bsd_db), GFP_KERNEL);
        if (!db)
                return NULL;
 
@@ -343,7 +343,7 @@ static void *bsd_alloc (struct isdn_ppp_comp_data *data)
         */
        db->dict = vmalloc(hsize * sizeof(struct bsd_dict));
        if (!db->dict) {
-               bsd_free (db);
+               bsd_free(db);
                return NULL;
        }
 
@@ -356,7 +356,7 @@ static void *bsd_alloc (struct isdn_ppp_comp_data *data)
        else {
                db->lens = vmalloc((maxmaxcode + 1) * sizeof(db->lens[0]));
                if (!db->lens) {
-                       bsd_free (db);
+                       bsd_free(db);
                        return (NULL);
                }
        }
@@ -364,41 +364,41 @@ static void *bsd_alloc (struct isdn_ppp_comp_data *data)
        /*
         * Initialize the data information for the compression code
         */
-       db->totlen     = sizeof (struct bsd_db) + (sizeof (struct bsd_dict) * hsize);
-       db->hsize      = hsize;
-       db->hshift     = hshift;
+       db->totlen = sizeof(struct bsd_db) + (sizeof(struct bsd_dict) * hsize);
+       db->hsize = hsize;
+       db->hshift = hshift;
        db->maxmaxcode = maxmaxcode;
-       db->maxbits    = bits;
+       db->maxbits = bits;
 
-       return (void *) db;
+       return (void *)db;
 }
 
 /*
  * Initialize the database.
  */
-static int bsd_init (void *state, struct isdn_ppp_comp_data *data, int unit, int debug)
+static int bsd_init(void *state, struct isdn_ppp_comp_data *data, int unit, int debug)
 {
        struct bsd_db *db = state;
        int indx;
        int decomp;
 
-       if(!state || !data) {
-               printk(KERN_ERR "isdn_bsd_init: [%d] ERR, state %lx data %lx\n",unit,(long)state,(long)data);
+       if (!state || !data) {
+               printk(KERN_ERR "isdn_bsd_init: [%d] ERR, state %lx data %lx\n", unit, (long)state, (long)data);
                return 0;
        }
 
        decomp = db->xmit ? 0 : 1;
-    
+
        if (data->optlen != 1 || data->num != CI_BSD_COMPRESS
-               || (BSD_VERSION(data->options[0]) != BSD_CURRENT_VERSION)
-               || (BSD_NBITS(data->options[0]) != db->maxbits)
-               || (decomp && db->lens == NULL)) {
-               printk(KERN_ERR "isdn_bsd: %d %d %d %d %lx\n",data->optlen,data->num,data->options[0],decomp,(unsigned long)db->lens);
+           || (BSD_VERSION(data->options[0]) != BSD_CURRENT_VERSION)
+           || (BSD_NBITS(data->options[0]) != db->maxbits)
+           || (decomp && db->lens == NULL)) {
+               printk(KERN_ERR "isdn_bsd: %d %d %d %d %lx\n", data->optlen, data->num, data->options[0], decomp, (unsigned long)db->lens);
                return 0;
        }
 
        if (decomp)
-               for(indx=LAST;indx>=0;indx--)
+               for (indx = LAST; indx >= 0; indx--)
                        db->lens[indx] = 1;
 
        indx = db->hsize;
@@ -411,9 +411,9 @@ static int bsd_init (void *state, struct isdn_ppp_comp_data *data, int unit, int
        db->mru  = 0;
 
        db->debug = 1;
-    
-       bsd_reset(db,0,0,NULL,0,NULL);
-    
+
+       bsd_reset(db, 0, 0, NULL, 0, NULL);
+
        return 1;
 }
 
@@ -421,37 +421,37 @@ static int bsd_init (void *state, struct isdn_ppp_comp_data *data, int unit, int
  * Obtain pointers to the various structures in the compression tables
  */
 
-#define dict_ptrx(p,idx) &(p->dict[idx])
-#define lens_ptrx(p,idx) &(p->lens[idx])
+#define dict_ptrx(p, idx) &(p->dict[idx])
+#define lens_ptrx(p, idx) &(p->lens[idx])
 
 #ifdef DEBUG
 static unsigned short *lens_ptr(struct bsd_db *db, int idx)
 {
        if ((unsigned int) idx > (unsigned int) db->maxmaxcode) {
-               printk (KERN_DEBUG "<9>ppp: lens_ptr(%d) > max\n", idx);
+               printk(KERN_DEBUG "<9>ppp: lens_ptr(%d) > max\n", idx);
                idx = 0;
        }
-       return lens_ptrx (db, idx);
+       return lens_ptrx(db, idx);
 }
 
 static struct bsd_dict *dict_ptr(struct bsd_db *db, int idx)
 {
        if ((unsigned int) idx >= (unsigned int) db->hsize) {
-               printk (KERN_DEBUG "<9>ppp: dict_ptr(%d) > max\n", idx);
+               printk(KERN_DEBUG "<9>ppp: dict_ptr(%d) > max\n", idx);
                idx = 0;
        }
-       return dict_ptrx (db, idx);
+       return dict_ptrx(db, idx);
 }
 
 #else
-#define lens_ptr(db,idx) lens_ptrx(db,idx)
-#define dict_ptr(db,idx) dict_ptrx(db,idx)
+#define lens_ptr(db, idx) lens_ptrx(db, idx)
+#define dict_ptr(db, idx) dict_ptrx(db, idx)
 #endif
 
 /*
  * compress a packet
  */
-static int bsd_compress (void *state, struct sk_buff *skb_in, struct sk_buff *skb_out,int proto)
+static int bsd_compress(void *state, struct sk_buff *skb_in, struct sk_buff *skb_out, int proto)
 {
        struct bsd_db *db;
        int hshift;
@@ -463,31 +463,31 @@ static int bsd_compress (void *state, struct sk_buff *skb_in, struct sk_buff *sk
        unsigned long fcode;
        struct bsd_dict *dictp;
        unsigned char c;
-       int hval,disp,ilen,mxcode;
+       int hval, disp, ilen, mxcode;
        unsigned char *rptr = skb_in->data;
        int isize = skb_in->len;
 
-#define OUTPUT(ent)                    \
-  {                                    \
-    bitno -= n_bits;                   \
-    accm |= ((ent) << bitno);          \
-    do {                               \
-        if(skb_out && skb_tailroom(skb_out) > 0)       \
-               *(skb_put(skb_out,1)) = (unsigned char) (accm>>24); \
-       accm <<= 8;                     \
-       bitno += 8;                     \
-    } while (bitno <= 24);             \
-  }
+#define OUTPUT(ent)                                                    \
+       {                                                               \
+               bitno -= n_bits;                                        \
+               accm |= ((ent) << bitno);                               \
+               do      {                                               \
+                       if (skb_out && skb_tailroom(skb_out) > 0)       \
+                               *(skb_put(skb_out, 1)) = (unsigned char)(accm >> 24); \
+                       accm <<= 8;                                     \
+                       bitno += 8;                                     \
+               } while (bitno <= 24);                                  \
+       }
 
        /*
         * If the protocol is not in the range we're interested in,
         * just return without compressing the packet.  If it is,
         * the protocol becomes the first byte to compress.
         */
-       printk(KERN_DEBUG "bsd_compress called with %x\n",proto);
-       
+       printk(KERN_DEBUG "bsd_compress called with %x\n", proto);
+
        ent = proto;
-       if (proto < 0x21 || proto > 0xf9 || !(proto & 0x1) )
+       if (proto < 0x21 || proto > 0xf9 || !(proto & 0x1))
                return 0;
 
        db      = (struct bsd_db *) state;
@@ -496,25 +496,25 @@ static int bsd_compress (void *state, struct sk_buff *skb_in, struct sk_buff *sk
        n_bits  = db->n_bits;
        bitno   = 32;
        accm    = 0;
-       mxcode  = MAXCODE (n_bits);
-       
+       mxcode  = MAXCODE(n_bits);
+
        /* This is the PPP header information */
-       if(skb_out && skb_tailroom(skb_out) >= 2) {
-               char *v = skb_put(skb_out,2);
+       if (skb_out && skb_tailroom(skb_out) >= 2) {
+               char *v = skb_put(skb_out, 2);
                /* we only push our own data on the header,
-                 AC,PC and protos is pushed by caller  */
+                  AC,PC and protos is pushed by caller  */
                v[0] = db->seqno >> 8;
                v[1] = db->seqno;
        }
 
-       ilen   = ++isize; /* This is off by one, but that is what is in draft! */
+       ilen = ++isize; /* This is off by one, but that is what is in draft! */
 
        while (--ilen > 0) {
-               c     = *rptr++;
-               fcode = BSD_KEY  (ent, c);
-               hval  = BSD_HASH (ent, c, hshift);
-               dictp = dict_ptr (db, hval);
-       
+               c = *rptr++;
+               fcode = BSD_KEY(ent, c);
+               hval = BSD_HASH(ent, c, hshift);
+               dictp = dict_ptr(db, hval);
+
                /* Validate and then check the entry. */
                if (dictp->codem1 >= max_ent)
                        goto nomatch;
@@ -523,7 +523,7 @@ static int bsd_compress (void *state, struct sk_buff *skb_in, struct sk_buff *sk
                        ent = dictp->codem1 + 1;
                        continue;       /* found (prefix,suffix) */
                }
-       
+
                /* continue probing until a match or invalid entry */
                disp = (hval == 0) ? 1 : hval;
 
@@ -531,17 +531,17 @@ static int bsd_compress (void *state, struct sk_buff *skb_in, struct sk_buff *sk
                        hval += disp;
                        if (hval >= db->hsize)
                                hval -= db->hsize;
-                       dictp = dict_ptr (db, hval);
+                       dictp = dict_ptr(db, hval);
                        if (dictp->codem1 >= max_ent)
                                goto nomatch;
                } while (dictp->fcode != fcode);
 
                ent = dictp->codem1 + 1;        /* finally found (prefix,suffix) */
                continue;
-       
-nomatch:
+
+       nomatch:
                OUTPUT(ent);            /* output the prefix */
-       
+
                /* code -> hashtable */
                if (max_ent < db->maxmaxcode) {
                        struct bsd_dict *dictp2;
@@ -551,16 +551,16 @@ nomatch:
                        /* expand code size if needed */
                        if (max_ent >= mxcode) {
                                db->n_bits = ++n_bits;
-                               mxcode = MAXCODE (n_bits);
+                               mxcode = MAXCODE(n_bits);
                        }
-           
-                       /* 
+
+                       /*
                         * Invalidate old hash table entry using
                         * this code, and then take it over.
                         */
-                       dictp2 = dict_ptr (db, max_ent + 1);
+                       dictp2 = dict_ptr(db, max_ent + 1);
                        indx   = dictp2->cptr;
-                       dictp3 = dict_ptr (db, indx);
+                       dictp3 = dict_ptr(db, indx);
 
                        if (dictp3->codem1 == max_ent)
                                dictp3->codem1 = BADCODEM1;
@@ -571,17 +571,17 @@ nomatch:
                        db->max_ent    = ++max_ent;
 
                        if (db->lens) {
-                               unsigned short *len1 = lens_ptr (db, max_ent);
-                               unsigned short *len2 = lens_ptr (db, ent);
+                               unsigned short *len1 = lens_ptr(db, max_ent);
+                               unsigned short *len2 = lens_ptr(db, ent);
                                *len1 = *len2 + 1;
                        }
                }
                ent = c;
        }
-    
+
        OUTPUT(ent);            /* output the last code */
 
-       if(skb_out)
+       if (skb_out)
                db->bytes_out    += skb_out->len; /* Do not count bytes from here */
        db->uncomp_bytes += isize;
        db->in_count     += isize;
@@ -596,15 +596,15 @@ nomatch:
         */
 
        if (bsd_check(db))
-               OUTPUT (CLEAR);
+               OUTPUT(CLEAR);
 
        /*
         * Pad dribble bits of last code with ones.
         * Do not emit a completely useless byte of ones.
         */
-       if (bitno < 32 && skb_out && skb_tailroom(skb_out) > 0) 
-               *(skb_put(skb_out,1)) = (unsigned char) ((accm | (0xff << (bitno-8))) >> 24);
-    
+       if (bitno < 32 && skb_out && skb_tailroom(skb_out) > 0)
+               *(skb_put(skb_out, 1)) = (unsigned char)((accm | (0xff << (bitno - 8))) >> 24);
+
        /*
         * Increase code size if we would have without the packet
         * boundary because the decompressor will do so.
@@ -613,7 +613,7 @@ nomatch:
                db->n_bits++;
 
        /* If output length is too large then this is an incompressible frame. */
-       if (!skb_out || (skb_out && skb_out->len >= skb_in->len) ) {
+       if (!skb_out || (skb_out && skb_out->len >= skb_in->len)) {
                ++db->incomp_count;
                db->incomp_bytes += isize;
                return 0;
@@ -631,16 +631,16 @@ nomatch:
  * Update the "BSD Compress" dictionary on the receiver for
  * incompressible data by pretending to compress the incoming data.
  */
-static void bsd_incomp (void *state, struct sk_buff *skb_in,int proto)
+static void bsd_incomp(void *state, struct sk_buff *skb_in, int proto)
 {
-       bsd_compress (state, skb_in, NULL, proto);
+       bsd_compress(state, skb_in, NULL, proto);
 }
 
 /*
  * Decompress "BSD Compress".
  */
-static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *skb_out,
-                          struct isdn_ppp_resetparams *rsparm)
+static int bsd_decompress(void *state, struct sk_buff *skb_in, struct sk_buff *skb_out,
+                         struct isdn_ppp_resetparams *rsparm)
 {
        struct bsd_db *db;
        unsigned int max_ent;
@@ -653,7 +653,7 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
        unsigned int incode;
        unsigned int oldcode;
        unsigned int finchar;
-       unsigned char *p,*ibuf;
+       unsigned char *p, *ibuf;
        int ilen;
        int codelen;
        int extra;
@@ -667,20 +667,20 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
 
        printk(KERN_DEBUG "bsd_decompress called\n");
 
-       if(!skb_in || !skb_out) {
+       if (!skb_in || !skb_out) {
                printk(KERN_ERR "bsd_decompress called with NULL parameter\n");
                return DECOMP_ERROR;
        }
-    
+
        /*
         * Get the sequence number.
         */
-       if( (p = skb_pull(skb_in,2)) == NULL) {
+       if ((p = skb_pull(skb_in, 2)) == NULL) {
                return DECOMP_ERROR;
        }
-       p-=2;
-       seq   = (p[0] << 8) + p[1];
-       ilen  = skb_in->len;
+       p -= 2;
+       seq = (p[0] << 8) + p[1];
+       ilen = skb_in->len;
        ibuf = skb_in->data;
 
        /*
@@ -690,7 +690,7 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
        if (seq != db->seqno) {
                if (db->debug) {
                        printk(KERN_DEBUG "bsd_decomp%d: bad sequence # %d, expected %d\n",
-                               db->unit, seq, db->seqno - 1);
+                              db->unit, seq, db->seqno - 1);
                }
                return DECOMP_ERROR;
        }
@@ -698,11 +698,11 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
        ++db->seqno;
        db->bytes_out += ilen;
 
-       if(skb_tailroom(skb_out) > 0)
-               *(skb_put(skb_out,1)) = 0;
+       if (skb_tailroom(skb_out) > 0)
+               *(skb_put(skb_out, 1)) = 0;
        else
                return DECOMP_ERR_NOMEM;
-    
+
        oldcode = CLEAR;
 
        /*
@@ -734,7 +734,7 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                /*
                 * The dictionary must only be cleared at the end of a packet.
                 */
-       
+
                if (incode == CLEAR) {
                        if (ilen > 0) {
                                if (db->debug)
@@ -746,16 +746,16 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                }
 
                if ((incode > max_ent + 2) || (incode > db->maxmaxcode)
-                       || (incode > max_ent && oldcode == CLEAR)) {
+                   || (incode > max_ent && oldcode == CLEAR)) {
                        if (db->debug) {
                                printk(KERN_DEBUG "bsd_decomp%d: bad code 0x%x oldcode=0x%x ",
-                                       db->unit, incode, oldcode);
+                                      db->unit, incode, oldcode);
                                printk(KERN_DEBUG "max_ent=0x%x skb->Len=%d seqno=%d\n",
-                                       max_ent, skb_out->len, db->seqno);
+                                      max_ent, skb_out->len, db->seqno);
                        }
                        return DECOMP_FATALERROR;       /* probably a bug */
                }
-       
+
                /* Special case for KwKwK string. */
                if (incode > max_ent) {
                        finchar = oldcode;
@@ -765,13 +765,13 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                        extra   = 0;
                }
 
-               codelen = *(lens_ptr (db, finchar));
-               ifskb_tailroom(skb_out) < codelen + extra) {
+               codelen = *(lens_ptr(db, finchar));
+               if (skb_tailroom(skb_out) < codelen + extra) {
                        if (db->debug) {
                                printk(KERN_DEBUG "bsd_decomp%d: ran out of mru\n", db->unit);
 #ifdef DEBUG
                                printk(KERN_DEBUG "  len=%d, finchar=0x%x, codelen=%d,skblen=%d\n",
-                                       ilen, finchar, codelen, skb_out->len);
+                                      ilen, finchar, codelen, skb_out->len);
 #endif
                        }
                        return DECOMP_FATALERROR;
@@ -781,21 +781,21 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                 * Decode this code and install it in the decompressed buffer.
                 */
 
-               p     = skb_put(skb_out,codelen);
+               p = skb_put(skb_out, codelen);
                p += codelen;
                while (finchar > LAST) {
-                       struct bsd_dict *dictp2 = dict_ptr (db, finchar);
-           
-                       dictp = dict_ptr (db, dictp2->cptr);
+                       struct bsd_dict *dictp2 = dict_ptr(db, finchar);
+
+                       dictp = dict_ptr(db, dictp2->cptr);
 
 #ifdef DEBUG
-                       if (--codelen <= 0 || dictp->codem1 != finchar-1) {
+                       if (--codelen <= 0 || dictp->codem1 != finchar - 1) {
                                if (codelen <= 0) {
                                        printk(KERN_ERR "bsd_decomp%d: fell off end of chain ", db->unit);
                                        printk(KERN_ERR "0x%x at 0x%x by 0x%x, max_ent=0x%x\n", incode, finchar, dictp2->cptr, max_ent);
                                } else {
-                                       if (dictp->codem1 != finchar-1) {
-                                               printk(KERN_ERR "bsd_decomp%d: bad code chain 0x%x finchar=0x%x ",db->unit, incode, finchar);
+                                       if (dictp->codem1 != finchar - 1) {
+                                               printk(KERN_ERR "bsd_decomp%d: bad code chain 0x%x finchar=0x%x ", db->unit, incode, finchar);
                                                printk(KERN_ERR "oldcode=0x%x cptr=0x%x codem1=0x%x\n", oldcode, dictp2->cptr, dictp->codem1);
                                        }
                                }
@@ -810,15 +810,15 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                        }
                }
                *--p = finchar;
-       
+
 #ifdef DEBUG
                if (--codelen != 0)
                        printk(KERN_ERR "bsd_decomp%d: short by %d after code 0x%x, max_ent=0x%x\n", db->unit, codelen, incode, max_ent);
 #endif
-       
+
                if (extra)              /* the KwKwK case again */
-                       *(skb_put(skb_out,1)) = finchar;
-       
+                       *(skb_put(skb_out, 1)) = finchar;
+
                /*
                 * If not first code in a packet, and
                 * if not out of code space, then allocate a new code.
@@ -828,14 +828,14 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                 */
                if (oldcode != CLEAR && max_ent < db->maxmaxcode) {
                        struct bsd_dict *dictp2, *dictp3;
-                       u16  *lens1,  *lens2;
+                       u16 *lens1, *lens2;
                        unsigned long fcode;
                        int hval, disp, indx;
-           
-                       fcode = BSD_KEY(oldcode,finchar);
-                       hval  = BSD_HASH(oldcode,finchar,db->hshift);
-                       dictp = dict_ptr (db, hval);
-           
+
+                       fcode = BSD_KEY(oldcode, finchar);
+                       hval  = BSD_HASH(oldcode, finchar, db->hshift);
+                       dictp = dict_ptr(db, hval);
+
                        /* look for a free hash table entry */
                        if (dictp->codem1 < max_ent) {
                                disp = (hval == 0) ? 1 : hval;
@@ -843,18 +843,18 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                                        hval += disp;
                                        if (hval >= db->hsize)
                                                hval -= db->hsize;
-                                       dictp = dict_ptr (db, hval);
+                                       dictp = dict_ptr(db, hval);
                                } while (dictp->codem1 < max_ent);
                        }
-           
+
                        /*
                         * Invalidate previous hash table entry
                         * assigned this code, and then take it over
                         */
 
-                       dictp2 = dict_ptr (db, max_ent + 1);
+                       dictp2 = dict_ptr(db, max_ent + 1);
                        indx   = dictp2->cptr;
-                       dictp3 = dict_ptr (db, indx);
+                       dictp3 = dict_ptr(db, indx);
 
                        if (dictp3->codem1 == max_ent)
                                dictp3->codem1 = BADCODEM1;
@@ -865,10 +865,10 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
                        db->max_ent    = ++max_ent;
 
                        /* Update the length of this string. */
-                       lens1  = lens_ptr (db, max_ent);
-                       lens2  = lens_ptr (db, oldcode);
+                       lens1  = lens_ptr(db, max_ent);
+                       lens2  = lens_ptr(db, oldcode);
                        *lens1 = *lens2 + 1;
-           
+
                        /* Expand code size if needed. */
                        if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode) {
                                db->n_bits = ++n_bits;
@@ -886,7 +886,7 @@ static int bsd_decompress (void *state, struct sk_buff *skb_in, struct sk_buff *
        if (bsd_check(db)) {
                if (db->debug)
                        printk(KERN_DEBUG "bsd_decomp%d: peer should have cleared dictionary on %d\n",
-                               db->unit, db->seqno - 1);
+                              db->unit, db->seqno - 1);
        }
        return skb_out->len;
 }
@@ -914,15 +914,15 @@ static struct isdn_ppp_compressor ippp_bsd_compress = {
 
 static int __init isdn_bsdcomp_init(void)
 {
-       int answer = isdn_ppp_register_compressor (&ippp_bsd_compress);
+       int answer = isdn_ppp_register_compressor(&ippp_bsd_compress);
        if (answer == 0)
-               printk (KERN_INFO "PPP BSD Compression module registered\n");
+               printk(KERN_INFO "PPP BSD Compression module registered\n");
        return answer;
 }
 
 static void __exit isdn_bsdcomp_exit(void)
 {
-       isdn_ppp_unregister_compressor (&ippp_bsd_compress);
+       isdn_ppp_unregister_compressor(&ippp_bsd_compress);
 }
 
 module_init(isdn_bsdcomp_init);
index 6ddb795..d9f5524 100644 (file)
@@ -111,7 +111,7 @@ isdn_unlock_drivers(void)
 
 #if defined(ISDN_DEBUG_NET_DUMP) || defined(ISDN_DEBUG_MODEM_DUMP)
 void
-isdn_dumppkt(char *s, u_char * p, int len, int dumplen)
+isdn_dumppkt(char *s, u_char *p, int len, int dumplen)
 {
        int dumpc;
 
@@ -163,58 +163,58 @@ isdn_wildmat(char *s, char *p)
        register int nostar = 1;
 
        if (!(*s) && !(*p))
-               return(1);
+               return (1);
        for (; *p; s++, p++)
                switch (*p) {
-                       case '\\':
-                               /*
-                                * Literal match with following character,
-                                * fall through.
-                                */
+               case '\\':
+                       /*
+                        * Literal match with following character,
+                        * fall through.
+                        */
+                       p++;
+               default:
+                       if (*s != *p)
+                               return (*s == '\0') ? 2 : 1;
+                                       continue;
+               case '?':
+                       /* Match anything. */
+                       if (*s == '\0')
+                               return (2);
+                       continue;
+               case '*':
+                       nostar = 0;
+                       /* Trailing star matches everything. */
+                       return (*++p ? isdn_star(s, p) : 0);
+               case '[':
+                       /* [^....] means inverse character class. */
+                       if ((reverse = (p[1] == '^')))
                                p++;
-                       default:
-                               if (*s != *p)
-                                       return (*s == '\0')?2:1;
-                               continue;
-                       case '?':
-                               /* Match anything. */
-                               if (*s == '\0')
-                                       return (2);
-                               continue;
-                       case '*':
-                               nostar = 0;     
-                               /* Trailing star matches everything. */
-                               return (*++p ? isdn_star(s, p) : 0);
-                       case '[':
-                               /* [^....] means inverse character class. */
-                               if ((reverse = (p[1] == '^')))
-                                       p++;
-                               for (last = 0, matched = 0; *++p && (*p != ']'); last = *p)
-                                       /* This next line requires a good C compiler. */
-                                       if (*p == '-' ? *s <= *++p && *s >= last : *s == *p)
-                                               matched = 1;
-                               if (matched == reverse)
-                                       return (1);
-                               continue;
+                       for (last = 0, matched = 0; *++p && (*p != ']'); last = *p)
+                               /* This next line requires a good C compiler. */
+                               if (*p == '-' ? *s <= *++p && *s >= last : *s == *p)
+                                       matched = 1;
+                       if (matched == reverse)
+                               return (1);
+                       continue;
                }
-       return (*s == '\0')?0:nostar;
+       return (*s == '\0') ? 0 : nostar;
 }
 
-int isdn_msncmp( const char * msn1, const char * msn2 )
+int isdn_msncmp(const char *msn1, const char *msn2)
 {
-       char TmpMsn1[ ISDN_MSNLEN ];
-       char TmpMsn2[ ISDN_MSNLEN ];
+       char TmpMsn1[ISDN_MSNLEN];
+       char TmpMsn2[ISDN_MSNLEN];
        char *p;
 
-       for ( p = TmpMsn1; *msn1 && *msn1 != ':'; )  // Strip off a SPID
+       for (p = TmpMsn1; *msn1 && *msn1 != ':';)  // Strip off a SPID
                *p++ = *msn1++;
        *p = '\0';
 
-       for ( p = TmpMsn2; *msn2 && *msn2 != ':'; )  // Strip off a SPID
+       for (p = TmpMsn2; *msn2 && *msn2 != ':';)  // Strip off a SPID
                *p++ = *msn2++;
        *p = '\0';
 
-       return isdn_wildmat( TmpMsn1, TmpMsn2 );
+       return isdn_wildmat(TmpMsn1, TmpMsn2);
 }
 
 int
@@ -262,8 +262,8 @@ isdn_timer_funct(ulong dummy)
                                isdn_tty_carrier_timeout();
                }
        }
-       if (tf) 
-               mod_timer(&dev->timer, jiffies+ISDN_TIMER_RES);
+       if (tf)
+               mod_timer(&dev->timer, jiffies + ISDN_TIMER_RES);
 }
 
 void
@@ -284,7 +284,7 @@ isdn_timer_ctrl(int tf, int onoff)
        else
                dev->tflags &= ~tf;
        if (dev->tflags && !old_tflags)
-               mod_timer(&dev->timer, jiffies+ISDN_TIMER_RES);
+               mod_timer(&dev->timer, jiffies + ISDN_TIMER_RES);
        spin_unlock_irqrestore(&dev->timerlock, flags);
 }
 
@@ -302,7 +302,7 @@ isdn_receive_skb_callback(int di, int channel, struct sk_buff *skb)
        }
        /* Update statistics */
        dev->ibytes[i] += skb->len;
-       
+
        /* First, try to deliver data to network-device */
        if (isdn_net_rcv_skb(i, skb))
                return;
@@ -339,40 +339,40 @@ isdn_command(isdn_ctrl *cmd)
 {
        if (cmd->driver == -1) {
                printk(KERN_WARNING "isdn_command command(%x) driver -1\n", cmd->command);
-               return(1);
+               return (1);
        }
        if (!dev->drv[cmd->driver]) {
                printk(KERN_WARNING "isdn_command command(%x) dev->drv[%d] NULL\n",
-                       cmd->command, cmd->driver);
-               return(1);
+                      cmd->command, cmd->driver);
+               return (1);
        }
        if (!dev->drv[cmd->driver]->interface) {
                printk(KERN_WARNING "isdn_command command(%x) dev->drv[%d]->interface NULL\n",
-                       cmd->command, cmd->driver);
-               return(1);
+                      cmd->command, cmd->driver);
+               return (1);
        }
        if (cmd->command == ISDN_CMD_SETL2) {
                int idx = isdn_dc2minor(cmd->driver, cmd->arg & 255);
                unsigned long l2prot = (cmd->arg >> 8) & 255;
                unsigned long features = (dev->drv[cmd->driver]->interface->features
-                                               >> ISDN_FEATURE_L2_SHIFT) &
-                                               ISDN_FEATURE_L2_MASK;
+                                         >> ISDN_FEATURE_L2_SHIFT) &
+                       ISDN_FEATURE_L2_MASK;
                unsigned long l2_feature = (1 << l2prot);
 
                switch (l2prot) {
-                       case ISDN_PROTO_L2_V11096:
-                       case ISDN_PROTO_L2_V11019:
-                       case ISDN_PROTO_L2_V11038:
+               case ISDN_PROTO_L2_V11096:
+               case ISDN_PROTO_L2_V11019:
+               case ISDN_PROTO_L2_V11038:
                        /* If V.110 requested, but not supported by
                         * HL-driver, set emulator-flag and change
                         * Layer-2 to transparent
                         */
-                               if (!(features & l2_feature)) {
-                                       dev->v110emu[idx] = l2prot;
-                                       cmd->arg = (cmd->arg & 255) |
-                                               (ISDN_PROTO_L2_TRANS << 8);
-                               } else
-                                       dev->v110emu[idx] = 0;
+                       if (!(features & l2_feature)) {
+                               dev->v110emu[idx] = l2prot;
+                               cmd->arg = (cmd->arg & 255) |
+                                       (ISDN_PROTO_L2_TRANS << 8);
+                       } else
+                               dev->v110emu[idx] = 0;
                }
        }
        return dev->drv[cmd->driver]->interface->command(cmd);
@@ -393,7 +393,7 @@ isdn_all_eaz(int di, int ch)
 }
 
 /*
- * Begin of a CAPI like LL<->HL interface, currently used only for 
+ * Begin of a CAPI like LL<->HL interface, currently used only for
  * supplementary service (CAPI 2.0 part III)
  */
 #include <linux/isdn/capicmd.h>
@@ -401,17 +401,17 @@ isdn_all_eaz(int di, int ch)
 static int
 isdn_capi_rec_hl_msg(capi_msg *cm)
 {
-       switch(cm->Command) {
-               case CAPI_FACILITY:
-                       /* in the moment only handled in tty */
-                       return(isdn_tty_capi_facility(cm));
-               default:
-                       return(-1);
+       switch (cm->Command) {
+       case CAPI_FACILITY:
+               /* in the moment only handled in tty */
+               return (isdn_tty_capi_facility(cm));
+       default:
+               return (-1);
        }
 }
 
 static int
-isdn_status_callback(isdn_ctrl * c)
+isdn_status_callback(isdn_ctrl *c)
 {
        int di;
        u_long flags;
@@ -424,314 +424,314 @@ isdn_status_callback(isdn_ctrl * c)
        di = c->driver;
        i = isdn_dc2minor(di, c->arg);
        switch (c->command) {
-               case ISDN_STAT_BSENT:
-                       if (i < 0)
-                               return -1;
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       if (isdn_net_stat_callback(i, c))
-                               return 0;
-                       if (isdn_v110_stat_callback(i, c))
-                               return 0;
-                       if (isdn_tty_stat_callback(i, c))
-                               return 0;
-                       wake_up_interruptible(&dev->drv[di]->snd_waitq[c->arg]);
-                       break;
-               case ISDN_STAT_STAVAIL:
-                       dev->drv[di]->stavail += c->arg;
-                       wake_up_interruptible(&dev->drv[di]->st_waitq);
-                       break;
-               case ISDN_STAT_RUN:
-                       dev->drv[di]->flags |= DRV_FLAG_RUNNING;
-                       for (i = 0; i < ISDN_MAX_CHANNELS; i++)
-                               if (dev->drvmap[i] == di)
-                                       isdn_all_eaz(di, dev->chanmap[i]);
-                       set_global_features();
-                       break;
-               case ISDN_STAT_STOP:
-                       dev->drv[di]->flags &= ~DRV_FLAG_RUNNING;
-                       break;
-               case ISDN_STAT_ICALL:
-                       if (i < 0)
-                               return -1;
+       case ISDN_STAT_BSENT:
+               if (i < 0)
+                       return -1;
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               if (isdn_net_stat_callback(i, c))
+                       return 0;
+               if (isdn_v110_stat_callback(i, c))
+                       return 0;
+               if (isdn_tty_stat_callback(i, c))
+                       return 0;
+               wake_up_interruptible(&dev->drv[di]->snd_waitq[c->arg]);
+               break;
+       case ISDN_STAT_STAVAIL:
+               dev->drv[di]->stavail += c->arg;
+               wake_up_interruptible(&dev->drv[di]->st_waitq);
+               break;
+       case ISDN_STAT_RUN:
+               dev->drv[di]->flags |= DRV_FLAG_RUNNING;
+               for (i = 0; i < ISDN_MAX_CHANNELS; i++)
+                       if (dev->drvmap[i] == di)
+                               isdn_all_eaz(di, dev->chanmap[i]);
+               set_global_features();
+               break;
+       case ISDN_STAT_STOP:
+               dev->drv[di]->flags &= ~DRV_FLAG_RUNNING;
+               break;
+       case ISDN_STAT_ICALL:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "ICALL (net): %d %ld %s\n", di, c->arg, c->parm.num);
+               printk(KERN_DEBUG "ICALL (net): %d %ld %s\n", di, c->arg, c->parm.num);
 #endif
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED) {
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED) {
+                       cmd.driver = di;
+                       cmd.arg = c->arg;
+                       cmd.command = ISDN_CMD_HANGUP;
+                       isdn_command(&cmd);
+                       return 0;
+               }
+               /* Try to find a network-interface which will accept incoming call */
+               r = ((c->command == ISDN_STAT_ICALLW) ? 0 : isdn_net_find_icall(di, c->arg, i, &c->parm.setup));
+               switch (r) {
+               case 0:
+                       /* No network-device replies.
+                        * Try ttyI's.
+                        * These return 0 on no match, 1 on match and
+                        * 3 on eventually match, if CID is longer.
+                        */
+                       if (c->command == ISDN_STAT_ICALL)
+                               if ((retval = isdn_tty_find_icall(di, c->arg, &c->parm.setup))) return (retval);
+#ifdef CONFIG_ISDN_DIVERSION
+                       if (divert_if)
+                               if ((retval = divert_if->stat_callback(c)))
+                                       return (retval); /* processed */
+#endif /* CONFIG_ISDN_DIVERSION */
+                       if ((!retval) && (dev->drv[di]->flags & DRV_FLAG_REJBUS)) {
+                               /* No tty responding */
                                cmd.driver = di;
                                cmd.arg = c->arg;
                                cmd.command = ISDN_CMD_HANGUP;
                                isdn_command(&cmd);
-                               return 0;
+                               retval = 2;
                        }
-                       /* Try to find a network-interface which will accept incoming call */
-                       r = ((c->command == ISDN_STAT_ICALLW) ? 0 : isdn_net_find_icall(di, c->arg, i, &c->parm.setup));
-                       switch (r) {
-                               case 0:
-                                       /* No network-device replies.
-                                        * Try ttyI's.
-                                        * These return 0 on no match, 1 on match and
-                                        * 3 on eventually match, if CID is longer.
-                                        */
-                                        if (c->command == ISDN_STAT_ICALL)
-                                         if ((retval = isdn_tty_find_icall(di, c->arg, &c->parm.setup))) return(retval);
-#ifdef CONFIG_ISDN_DIVERSION 
-                                         if (divert_if)
-                                         if ((retval = divert_if->stat_callback(c))) 
-                                           return(retval); /* processed */
-#endif /* CONFIG_ISDN_DIVERSION */                       
-                                       if ((!retval) && (dev->drv[di]->flags & DRV_FLAG_REJBUS)) {
-                                               /* No tty responding */
-                                               cmd.driver = di;
-                                               cmd.arg = c->arg;
-                                               cmd.command = ISDN_CMD_HANGUP;
-                                               isdn_command(&cmd);
-                                               retval = 2;
-                                       }
-                                       break;
-                               case 1:
-                                       /* Schedule connection-setup */
-                                       isdn_net_dial();
-                                       cmd.driver = di;
-                                       cmd.arg = c->arg;
-                                       cmd.command = ISDN_CMD_ACCEPTD;
-                                       for ( p = dev->netdev; p; p = p->next )
-                                               if ( p->local->isdn_channel == cmd.arg )
-                                               {
-                                                       strcpy( cmd.parm.setup.eazmsn, p->local->msn );
-                                                       isdn_command(&cmd);
-                                                       retval = 1;
-                                                       break;
-                                               }
-                                       break;
-
-                               case 2: /* For calling back, first reject incoming call ... */
-                               case 3: /* Interface found, but down, reject call actively  */
-                                       retval = 2;
-                                       printk(KERN_INFO "isdn: Rejecting Call\n");
-                                       cmd.driver = di;
-                                       cmd.arg = c->arg;
-                                       cmd.command = ISDN_CMD_HANGUP;
+                       break;
+               case 1:
+                       /* Schedule connection-setup */
+                       isdn_net_dial();
+                       cmd.driver = di;
+                       cmd.arg = c->arg;
+                       cmd.command = ISDN_CMD_ACCEPTD;
+                       for (p = dev->netdev; p; p = p->next)
+                               if (p->local->isdn_channel == cmd.arg)
+                               {
+                                       strcpy(cmd.parm.setup.eazmsn, p->local->msn);
                                        isdn_command(&cmd);
-                                       if (r == 3)
-                                               break;
-                                       /* Fall through */
-                               case 4:
-                                       /* ... then start callback. */
-                                       isdn_net_dial();
-                                       break;
-                               case 5:
-                                       /* Number would eventually match, if longer */
-                                       retval = 3;
+                                       retval = 1;
                                        break;
-                       }
+                               }
+                       break;
+
+               case 2: /* For calling back, first reject incoming call ... */
+               case 3: /* Interface found, but down, reject call actively  */
+                       retval = 2;
+                       printk(KERN_INFO "isdn: Rejecting Call\n");
+                       cmd.driver = di;
+                       cmd.arg = c->arg;
+                       cmd.command = ISDN_CMD_HANGUP;
+                       isdn_command(&cmd);
+                       if (r == 3)
+                               break;
+                       /* Fall through */
+               case 4:
+                       /* ... then start callback. */
+                       isdn_net_dial();
+                       break;
+               case 5:
+                       /* Number would eventually match, if longer */
+                       retval = 3;
+                       break;
+               }
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "ICALL: ret=%d\n", retval);
+               printk(KERN_DEBUG "ICALL: ret=%d\n", retval);
 #endif
-                       return retval;
-                       break;
-               case ISDN_STAT_CINF:
-                       if (i < 0)
-                               return -1;
+               return retval;
+               break;
+       case ISDN_STAT_CINF:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "CINF: %ld %s\n", c->arg, c->parm.num);
+               printk(KERN_DEBUG "CINF: %ld %s\n", c->arg, c->parm.num);
 #endif
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       if (strcmp(c->parm.num, "0"))
-                               isdn_net_stat_callback(i, c);
-                       isdn_tty_stat_callback(i, c);
-                       break;
-               case ISDN_STAT_CAUSE:
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               if (strcmp(c->parm.num, "0"))
+                       isdn_net_stat_callback(i, c);
+               isdn_tty_stat_callback(i, c);
+               break;
+       case ISDN_STAT_CAUSE:
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "CAUSE: %ld %s\n", c->arg, c->parm.num);
+               printk(KERN_DEBUG "CAUSE: %ld %s\n", c->arg, c->parm.num);
 #endif
-                       printk(KERN_INFO "isdn: %s,ch%ld cause: %s\n",
-                              dev->drvid[di], c->arg, c->parm.num);
-                       isdn_tty_stat_callback(i, c);
+               printk(KERN_INFO "isdn: %s,ch%ld cause: %s\n",
+                      dev->drvid[di], c->arg, c->parm.num);
+               isdn_tty_stat_callback(i, c);
 #ifdef CONFIG_ISDN_DIVERSION
-                        if (divert_if)
-                         divert_if->stat_callback(c); 
+               if (divert_if)
+                       divert_if->stat_callback(c);
 #endif /* CONFIG_ISDN_DIVERSION */
-                       break;
-               case ISDN_STAT_DISPLAY:
+               break;
+       case ISDN_STAT_DISPLAY:
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "DISPLAY: %ld %s\n", c->arg, c->parm.display);
+               printk(KERN_DEBUG "DISPLAY: %ld %s\n", c->arg, c->parm.display);
 #endif
-                       isdn_tty_stat_callback(i, c);
+               isdn_tty_stat_callback(i, c);
 #ifdef CONFIG_ISDN_DIVERSION
-                        if (divert_if)
-                         divert_if->stat_callback(c); 
+               if (divert_if)
+                       divert_if->stat_callback(c);
 #endif /* CONFIG_ISDN_DIVERSION */
-                       break;
-               case ISDN_STAT_DCONN:
-                       if (i < 0)
-                               return -1;
+               break;
+       case ISDN_STAT_DCONN:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "DCONN: %ld\n", c->arg);
+               printk(KERN_DEBUG "DCONN: %ld\n", c->arg);
 #endif
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       /* Find any net-device, waiting for D-channel setup */
-                       if (isdn_net_stat_callback(i, c))
-                               break;
-                       isdn_v110_stat_callback(i, c);
-                       /* Find any ttyI, waiting for D-channel setup */
-                       if (isdn_tty_stat_callback(i, c)) {
-                               cmd.driver = di;
-                               cmd.arg = c->arg;
-                               cmd.command = ISDN_CMD_ACCEPTB;
-                               isdn_command(&cmd);
-                               break;
-                       }
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               /* Find any net-device, waiting for D-channel setup */
+               if (isdn_net_stat_callback(i, c))
                        break;
-               case ISDN_STAT_DHUP:
-                       if (i < 0)
-                               return -1;
+               isdn_v110_stat_callback(i, c);
+               /* Find any ttyI, waiting for D-channel setup */
+               if (isdn_tty_stat_callback(i, c)) {
+                       cmd.driver = di;
+                       cmd.arg = c->arg;
+                       cmd.command = ISDN_CMD_ACCEPTB;
+                       isdn_command(&cmd);
+                       break;
+               }
+               break;
+       case ISDN_STAT_DHUP:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "DHUP: %ld\n", c->arg);
+               printk(KERN_DEBUG "DHUP: %ld\n", c->arg);
 #endif
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       dev->drv[di]->online &= ~(1 << (c->arg));
-                       isdn_info_update();
-                       /* Signal hangup to network-devices */
-                       if (isdn_net_stat_callback(i, c))
-                               break;
-                       isdn_v110_stat_callback(i, c);
-                       if (isdn_tty_stat_callback(i, c))
-                               break;
-#ifdef CONFIG_ISDN_DIVERSION
-                        if (divert_if)
-                         divert_if->stat_callback(c); 
-#endif /* CONFIG_ISDN_DIVERSION */
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               dev->drv[di]->online &= ~(1 << (c->arg));
+               isdn_info_update();
+               /* Signal hangup to network-devices */
+               if (isdn_net_stat_callback(i, c))
                        break;
+               isdn_v110_stat_callback(i, c);
+               if (isdn_tty_stat_callback(i, c))
                        break;
-               case ISDN_STAT_BCONN:
-                       if (i < 0)
-                               return -1;
+#ifdef CONFIG_ISDN_DIVERSION
+               if (divert_if)
+                       divert_if->stat_callback(c);
+#endif /* CONFIG_ISDN_DIVERSION */
+               break;
+               break;
+       case ISDN_STAT_BCONN:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "BCONN: %ld\n", c->arg);
+               printk(KERN_DEBUG "BCONN: %ld\n", c->arg);
 #endif
-                       /* Signal B-channel-connect to network-devices */
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       dev->drv[di]->online |= (1 << (c->arg));
-                       isdn_info_update();
-                       if (isdn_net_stat_callback(i, c))
-                               break;
-                       isdn_v110_stat_callback(i, c);
-                       if (isdn_tty_stat_callback(i, c))
-                               break;
+               /* Signal B-channel-connect to network-devices */
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               dev->drv[di]->online |= (1 << (c->arg));
+               isdn_info_update();
+               if (isdn_net_stat_callback(i, c))
+                       break;
+               isdn_v110_stat_callback(i, c);
+               if (isdn_tty_stat_callback(i, c))
                        break;
-               case ISDN_STAT_BHUP:
-                       if (i < 0)
-                               return -1;
+               break;
+       case ISDN_STAT_BHUP:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "BHUP: %ld\n", c->arg);
+               printk(KERN_DEBUG "BHUP: %ld\n", c->arg);
 #endif
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       dev->drv[di]->online &= ~(1 << (c->arg));
-                       isdn_info_update();
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               dev->drv[di]->online &= ~(1 << (c->arg));
+               isdn_info_update();
 #ifdef CONFIG_ISDN_X25
-                       /* Signal hangup to network-devices */
-                       if (isdn_net_stat_callback(i, c))
-                               break;
+               /* Signal hangup to network-devices */
+               if (isdn_net_stat_callback(i, c))
+                       break;
 #endif
-                       isdn_v110_stat_callback(i, c);
-                       if (isdn_tty_stat_callback(i, c))
-                               break;
+               isdn_v110_stat_callback(i, c);
+               if (isdn_tty_stat_callback(i, c))
                        break;
-               case ISDN_STAT_NODCH:
-                       if (i < 0)
-                               return -1;
+               break;
+       case ISDN_STAT_NODCH:
+               if (i < 0)
+                       return -1;
 #ifdef ISDN_DEBUG_STATCALLB
-                       printk(KERN_DEBUG "NODCH: %ld\n", c->arg);
+               printk(KERN_DEBUG "NODCH: %ld\n", c->arg);
 #endif
-                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                               return 0;
-                       if (isdn_net_stat_callback(i, c))
-                               break;
-                       if (isdn_tty_stat_callback(i, c))
-                               break;
+               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                       return 0;
+               if (isdn_net_stat_callback(i, c))
                        break;
-               case ISDN_STAT_ADDCH:
-                       spin_lock_irqsave(&dev->lock, flags);
-                       if (isdn_add_channels(dev->drv[di], di, c->arg, 1)) {
-                               spin_unlock_irqrestore(&dev->lock, flags);
-                               return -1;
-                       }
-                       spin_unlock_irqrestore(&dev->lock, flags);
-                       isdn_info_update();
+               if (isdn_tty_stat_callback(i, c))
                        break;
-               case ISDN_STAT_DISCH:
-                       spin_lock_irqsave(&dev->lock, flags);
-                       for (i = 0; i < ISDN_MAX_CHANNELS; i++)
-                               if ((dev->drvmap[i] == di) &&
-                                   (dev->chanmap[i] == c->arg)) {
-                                   if (c->parm.num[0])
-                                     dev->usage[i] &= ~ISDN_USAGE_DISABLED;
-                                   else
-                                     if (USG_NONE(dev->usage[i])) {
-                                       dev->usage[i] |= ISDN_USAGE_DISABLED;
-                                     }
-                                     else 
-                                       retval = -1;
-                                   break;
-                               }
+               break;
+       case ISDN_STAT_ADDCH:
+               spin_lock_irqsave(&dev->lock, flags);
+               if (isdn_add_channels(dev->drv[di], di, c->arg, 1)) {
                        spin_unlock_irqrestore(&dev->lock, flags);
-                       isdn_info_update();
-                       break;
-               case ISDN_STAT_UNLOAD:
-                       while (dev->drv[di]->locks > 0) {
-                               isdn_unlock_driver(dev->drv[di]);
-                       }
-                       spin_lock_irqsave(&dev->lock, flags);
-                       isdn_tty_stat_callback(i, c);
-                       for (i = 0; i < ISDN_MAX_CHANNELS; i++)
-                               if (dev->drvmap[i] == di) {
-                                       dev->drvmap[i] = -1;
-                                       dev->chanmap[i] = -1;
+                       return -1;
+               }
+               spin_unlock_irqrestore(&dev->lock, flags);
+               isdn_info_update();
+               break;
+       case ISDN_STAT_DISCH:
+               spin_lock_irqsave(&dev->lock, flags);
+               for (i = 0; i < ISDN_MAX_CHANNELS; i++)
+                       if ((dev->drvmap[i] == di) &&
+                           (dev->chanmap[i] == c->arg)) {
+                               if (c->parm.num[0])
                                        dev->usage[i] &= ~ISDN_USAGE_DISABLED;
-                               }
-                       dev->drivers--;
-                       dev->channels -= dev->drv[di]->channels;
-                       kfree(dev->drv[di]->rcverr);
-                       kfree(dev->drv[di]->rcvcount);
-                       for (i = 0; i < dev->drv[di]->channels; i++)
-                               skb_queue_purge(&dev->drv[di]->rpqueue[i]);
-                       kfree(dev->drv[di]->rpqueue);
-                       kfree(dev->drv[di]->rcv_waitq);
-                       kfree(dev->drv[di]);
-                       dev->drv[di] = NULL;
-                       dev->drvid[di][0] = '\0';
-                       isdn_info_update();
-                       set_global_features();
-                       spin_unlock_irqrestore(&dev->lock, flags);
-                       return 0;
-               case ISDN_STAT_L1ERR:
-                       break;
-               case CAPI_PUT_MESSAGE:
-                       return(isdn_capi_rec_hl_msg(&c->parm.cmsg));
+                               else
+                                       if (USG_NONE(dev->usage[i])) {
+                                               dev->usage[i] |= ISDN_USAGE_DISABLED;
+                                       }
+                                       else
+                                               retval = -1;
+                               break;
+                       }
+               spin_unlock_irqrestore(&dev->lock, flags);
+               isdn_info_update();
+               break;
+       case ISDN_STAT_UNLOAD:
+               while (dev->drv[di]->locks > 0) {
+                       isdn_unlock_driver(dev->drv[di]);
+               }
+               spin_lock_irqsave(&dev->lock, flags);
+               isdn_tty_stat_callback(i, c);
+               for (i = 0; i < ISDN_MAX_CHANNELS; i++)
+                       if (dev->drvmap[i] == di) {
+                               dev->drvmap[i] = -1;
+                               dev->chanmap[i] = -1;
+                               dev->usage[i] &= ~ISDN_USAGE_DISABLED;
+                       }
+               dev->drivers--;
+               dev->channels -= dev->drv[di]->channels;
+               kfree(dev->drv[di]->rcverr);
+               kfree(dev->drv[di]->rcvcount);
+               for (i = 0; i < dev->drv[di]->channels; i++)
+                       skb_queue_purge(&dev->drv[di]->rpqueue[i]);
+               kfree(dev->drv[di]->rpqueue);
+               kfree(dev->drv[di]->rcv_waitq);
+               kfree(dev->drv[di]);
+               dev->drv[di] = NULL;
+               dev->drvid[di][0] = '\0';
+               isdn_info_update();
+               set_global_features();
+               spin_unlock_irqrestore(&dev->lock, flags);
+               return 0;
+       case ISDN_STAT_L1ERR:
+               break;
+       case CAPI_PUT_MESSAGE:
+               return (isdn_capi_rec_hl_msg(&c->parm.cmsg));
 #ifdef CONFIG_ISDN_TTY_FAX
-               case ISDN_STAT_FAXIND:
-                       isdn_tty_stat_callback(i, c);
-                       break;
+       case ISDN_STAT_FAXIND:
+               isdn_tty_stat_callback(i, c);
+               break;
 #endif
 #ifdef CONFIG_ISDN_AUDIO
-               case ISDN_STAT_AUDIO:
-                       isdn_tty_stat_callback(i, c);
-                       break;
+       case ISDN_STAT_AUDIO:
+               isdn_tty_stat_callback(i, c);
+               break;
 #endif
 #ifdef CONFIG_ISDN_DIVERSION
-               case ISDN_STAT_PROT:
-               case ISDN_STAT_REDIR:
-                        if (divert_if)
-                          return(divert_if->stat_callback(c));
+       case ISDN_STAT_PROT:
+       case ISDN_STAT_REDIR:
+               if (divert_if)
+                       return (divert_if->stat_callback(c));
 #endif /* CONFIG_ISDN_DIVERSION */
-               default:
-                       return -1;
+       default:
+               return -1;
        }
        return 0;
 }
@@ -755,17 +755,17 @@ isdn_getnum(char **p)
  * isdn_readbchan() tries to get data from the read-queue.
  * It MUST be called with interrupts off.
  *
- * Be aware that this is not an atomic operation when sleep != 0, even though 
+ * Be aware that this is not an atomic operation when sleep != 0, even though
  * interrupts are turned off! Well, like that we are currently only called
  * on behalf of a read system call on raw device files (which are documented
  * to be dangerous and for debugging purpose only). The inode semaphore
  * takes care that this is not called for the same minor device number while
  * we are sleeping, but access is not serialized against simultaneous read()
  * from the corresponding ttyI device. Can other ugly events, like changes
- * of the mapping (di,ch)<->minor, happen during the sleep? --he 
+ * of the mapping (di,ch)<->minor, happen during the sleep? --he
  */
 int
-isdn_readbchan(int di, int channel, u_char * buf, u_char * fp, int len, wait_queue_head_t *sleep)
+isdn_readbchan(int di, int channel, u_char *buf, u_char *fp, int len, wait_queue_head_t *sleep)
 {
        int count;
        int count_pull;
@@ -890,10 +890,10 @@ isdn_readbchan_tty(int di, int channel, struct tty_struct *tty, int cisco_hack)
        if (!dev->drv[di])
                return 0;
        if (skb_queue_empty(&dev->drv[di]->rpqueue[channel]))
-                       return 0;
+               return 0;
 
        len = tty_buffer_request_room(tty, dev->drv[di]->rcvcount[channel]);
-       if(len == 0)
+       if (len == 0)
                return len;
 
        count = 0;
@@ -912,7 +912,7 @@ isdn_readbchan_tty(int di, int channel, struct tty_struct *tty, int cisco_hack)
                        count_pull = count_put = 0;
                        while ((count_pull < skb->len) && (len > 0)) {
                                /* push every character but the last to the tty buffer directly */
-                               if ( count_put )
+                               if (count_put)
                                        tty_insert_flip_char(tty, last, TTY_NORMAL);
                                len--;
                                if (dev->drv[di]->DLEflag & DLEmask) {
@@ -940,7 +940,7 @@ isdn_readbchan_tty(int di, int channel, struct tty_struct *tty, int cisco_hack)
                                dflag = 0;
                        }
                        count_put = count_pull;
-                       if(count_put > 1)
+                       if (count_put > 1)
                                tty_insert_flip_string(tty, skb->data, count_put - 1);
                        last = skb->data[count_put - 1];
                        len -= count_put;
@@ -952,7 +952,7 @@ isdn_readbchan_tty(int di, int channel, struct tty_struct *tty, int cisco_hack)
                        /* We got all the data in this buff.
                         * Now we can dequeue it.
                         */
-                       if(cisco_hack)
+                       if (cisco_hack)
                                tty_insert_flip_char(tty, last, 0xFF);
                        else
                                tty_insert_flip_char(tty, last, TTY_NORMAL);
@@ -1057,7 +1057,7 @@ isdn_info_update(void)
 }
 
 static ssize_t
-isdn_read(struct file *file, char __user *buf, size_t count, loff_t * off)
+isdn_read(struct file *file, char __user *buf, size_t count, loff_t *off)
 {
        uint minor = iminor(file->f_path.dentry->d_inode);
        int len = 0;
@@ -1112,7 +1112,7 @@ isdn_read(struct file *file, char __user *buf, size_t count, loff_t * off)
                len = isdn_readbchan(drvidx, chidx, p, NULL, count,
                                     &dev->drv[drvidx]->rcv_waitq[chidx]);
                *off += len;
-               if (copy_to_user(buf,p,len)) 
+               if (copy_to_user(buf, p, len))
                        len = -EFAULT;
                kfree(p);
                retval = len;
@@ -1135,7 +1135,7 @@ isdn_read(struct file *file, char __user *buf, size_t count, loff_t * off)
                        if (count > dev->drv[drvidx]->stavail)
                                count = dev->drv[drvidx]->stavail;
                        len = dev->drv[drvidx]->interface->readstat(buf, count,
-                               drvidx, isdn_minor2chan(minor - ISDN_MINOR_CTRL));
+                                                                   drvidx, isdn_minor2chan(minor - ISDN_MINOR_CTRL));
                        if (len < 0) {
                                retval = len;
                                goto out;
@@ -1158,13 +1158,13 @@ isdn_read(struct file *file, char __user *buf, size_t count, loff_t * off)
        }
 #endif
        retval = -ENODEV;
- out:
+out:
        mutex_unlock(&isdn_mutex);
        return retval;
 }
 
 static ssize_t
-isdn_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
+isdn_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
 {
        uint minor = iminor(file->f_path.dentry->d_inode);
        int drvidx;
@@ -1204,11 +1204,11 @@ isdn_write(struct file *file, const char __user *buf, size_t count, loff_t * off
                 *
                 if (!(dev->drv[drvidx]->flags & DRV_FLAG_RUNNING))
                 return -ENODEV;
-                */
+               */
                if (dev->drv[drvidx]->interface->writecmd)
                        retval = dev->drv[drvidx]->interface->
                                writecmd(buf, count, drvidx,
-                               isdn_minor2chan(minor - ISDN_MINOR_CTRL));
+                                        isdn_minor2chan(minor - ISDN_MINOR_CTRL));
                else
                        retval = count;
                goto out;
@@ -1220,13 +1220,13 @@ isdn_write(struct file *file, const char __user *buf, size_t count, loff_t * off
        }
 #endif
        retval = -ENODEV;
- out:
+out:
        mutex_unlock(&isdn_mutex);
        return retval;
 }
 
 static unsigned int
-isdn_poll(struct file *file, poll_table * wait)
+isdn_poll(struct file *file, poll_table *wait)
 {
        unsigned int mask = 0;
        unsigned int minor = iminor(file->f_path.dentry->d_inode);
@@ -1261,7 +1261,7 @@ isdn_poll(struct file *file, poll_table * wait)
        }
 #endif
        mask = POLLERR;
- out:
+out:
        mutex_unlock(&isdn_mutex);
        return mask;
 }
@@ -1294,38 +1294,38 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
 
        if (minor == ISDN_MINOR_STATUS) {
                switch (cmd) {
-                       case IIOCGETDVR:
-                               return (TTY_DV +
-                                       (NET_DV << 8) +
-                                       (INF_DV << 16));
-                       case IIOCGETCPS:
-                               if (arg) {
-                                       ulong __user *p = argp;
-                                       int i;
-                                       if (!access_ok(VERIFY_WRITE, p,
-                                                       sizeof(ulong) * ISDN_MAX_CHANNELS * 2))
-                                               return -EFAULT;
-                                       for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
-                                               put_user(dev->ibytes[i], p++);
-                                               put_user(dev->obytes[i], p++);
-                                       }
-                                       return 0;
-                               } else
-                                       return -EINVAL;
-                               break;
+               case IIOCGETDVR:
+                       return (TTY_DV +
+                               (NET_DV << 8) +
+                               (INF_DV << 16));
+               case IIOCGETCPS:
+                       if (arg) {
+                               ulong __user *p = argp;
+                               int i;
+                               if (!access_ok(VERIFY_WRITE, p,
+                                              sizeof(ulong) * ISDN_MAX_CHANNELS * 2))
+                                       return -EFAULT;
+                               for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
+                                       put_user(dev->ibytes[i], p++);
+                                       put_user(dev->obytes[i], p++);
+                               }
+                               return 0;
+                       } else
+                               return -EINVAL;
+                       break;
 #ifdef CONFIG_NETDEVICES
-                       case IIOCNETGPN:
-                               /* Get peer phone number of a connected 
-                                * isdn network interface */
-                               if (arg) {
-                                       if (copy_from_user(&phone, argp, sizeof(phone)))
-                                               return -EFAULT;
-                                       return isdn_net_getpeer(&phone, argp);
-                               } else
-                                       return -EINVAL;
-#endif
-                       default:
+               case IIOCNETGPN:
+                       /* Get peer phone number of a connected
+                        * isdn network interface */
+                       if (arg) {
+                               if (copy_from_user(&phone, argp, sizeof(phone)))
+                                       return -EFAULT;
+                               return isdn_net_getpeer(&phone, argp);
+                       } else
                                return -EINVAL;
+#endif
+               default:
+                       return -EINVAL;
                }
        }
        if (!dev->drivers)
@@ -1347,360 +1347,360 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
  * are serialized by means of a semaphore.
  */
                switch (cmd) {
-                       case IIOCNETDWRSET:
-                               printk(KERN_INFO "INFO: ISDN_DW_ABC_EXTENSION not enabled\n");
-                               return(-EINVAL);
-                       case IIOCNETLCR:
-                               printk(KERN_INFO "INFO: ISDN_ABC_LCR_SUPPORT not enabled\n");
-                               return -ENODEV;
+               case IIOCNETDWRSET:
+                       printk(KERN_INFO "INFO: ISDN_DW_ABC_EXTENSION not enabled\n");
+                       return (-EINVAL);
+               case IIOCNETLCR:
+                       printk(KERN_INFO "INFO: ISDN_ABC_LCR_SUPPORT not enabled\n");
+                       return -ENODEV;
 #ifdef CONFIG_NETDEVICES
-                       case IIOCNETAIF:
-                               /* Add a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(name, argp, sizeof(name)))
-                                               return -EFAULT;
-                                       s = name;
+               case IIOCNETAIF:
+                       /* Add a network-interface */
+                       if (arg) {
+                               if (copy_from_user(name, argp, sizeof(name)))
+                                       return -EFAULT;
+                               s = name;
+                       } else {
+                               s = NULL;
+                       }
+                       ret = mutex_lock_interruptible(&dev->mtx);
+                       if (ret) return ret;
+                       if ((s = isdn_net_new(s, NULL))) {
+                               if (copy_to_user(argp, s, strlen(s) + 1)) {
+                                       ret = -EFAULT;
+                               } else {
+                                       ret = 0;
+                               }
+                       } else
+                               ret = -ENODEV;
+                       mutex_unlock(&dev->mtx);
+                       return ret;
+               case IIOCNETASL:
+                       /* Add a slave to a network-interface */
+                       if (arg) {
+                               if (copy_from_user(bname, argp, sizeof(bname) - 1))
+                                       return -EFAULT;
+                       } else
+                               return -EINVAL;
+                       ret = mutex_lock_interruptible(&dev->mtx);
+                       if (ret) return ret;
+                       if ((s = isdn_net_newslave(bname))) {
+                               if (copy_to_user(argp, s, strlen(s) + 1)) {
+                                       ret = -EFAULT;
                                } else {
-                                       s = NULL;
+                                       ret = 0;
                                }
+                       } else
+                               ret = -ENODEV;
+                       mutex_unlock(&dev->mtx);
+                       return ret;
+               case IIOCNETDIF:
+                       /* Delete a network-interface */
+                       if (arg) {
+                               if (copy_from_user(name, argp, sizeof(name)))
+                                       return -EFAULT;
                                ret = mutex_lock_interruptible(&dev->mtx);
-                               if( ret ) return ret;
-                               if ((s = isdn_net_new(s, NULL))) {
-                                       if (copy_to_user(argp, s, strlen(s) + 1)){
-                                               ret = -EFAULT;
-                                       } else {
-                                               ret = 0;
-                                       }
-                               } else
-                                       ret = -ENODEV;
+                               if (ret) return ret;
+                               ret = isdn_net_rm(name);
                                mutex_unlock(&dev->mtx);
                                return ret;
-                       case IIOCNETASL:
-                               /* Add a slave to a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(bname, argp, sizeof(bname) - 1))
+                       } else
+                               return -EINVAL;
+               case IIOCNETSCF:
+                       /* Set configurable parameters of a network-interface */
+                       if (arg) {
+                               if (copy_from_user(&cfg, argp, sizeof(cfg)))
+                                       return -EFAULT;
+                               return isdn_net_setcfg(&cfg);
+                       } else
+                               return -EINVAL;
+               case IIOCNETGCF:
+                       /* Get configurable parameters of a network-interface */
+                       if (arg) {
+                               if (copy_from_user(&cfg, argp, sizeof(cfg)))
+                                       return -EFAULT;
+                               if (!(ret = isdn_net_getcfg(&cfg))) {
+                                       if (copy_to_user(argp, &cfg, sizeof(cfg)))
                                                return -EFAULT;
-                               } else
-                                       return -EINVAL;
+                               }
+                               return ret;
+                       } else
+                               return -EINVAL;
+               case IIOCNETANM:
+                       /* Add a phone-number to a network-interface */
+                       if (arg) {
+                               if (copy_from_user(&phone, argp, sizeof(phone)))
+                                       return -EFAULT;
                                ret = mutex_lock_interruptible(&dev->mtx);
-                               if( ret ) return ret;
-                               if ((s = isdn_net_newslave(bname))) {
-                                       if (copy_to_user(argp, s, strlen(s) + 1)){
-                                               ret = -EFAULT;
-                                       } else {
-                                               ret = 0;
-                                       }
-                               } else
-                                       ret = -ENODEV;
+                               if (ret) return ret;
+                               ret = isdn_net_addphone(&phone);
                                mutex_unlock(&dev->mtx);
                                return ret;
-                       case IIOCNETDIF:
-                               /* Delete a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(name, argp, sizeof(name)))
-                                               return -EFAULT;
-                                       ret = mutex_lock_interruptible(&dev->mtx);
-                                       if( ret ) return ret;
-                                       ret = isdn_net_rm(name);
-                                       mutex_unlock(&dev->mtx);
-                                       return ret;
-                               } else
-                                       return -EINVAL;
-                       case IIOCNETSCF:
-                               /* Set configurable parameters of a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(&cfg, argp, sizeof(cfg)))
-                                               return -EFAULT;
-                                       return isdn_net_setcfg(&cfg);
-                               } else
-                                       return -EINVAL;
-                       case IIOCNETGCF:
-                               /* Get configurable parameters of a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(&cfg, argp, sizeof(cfg)))
-                                               return -EFAULT;
-                                       if (!(ret = isdn_net_getcfg(&cfg))) {
-                                               if (copy_to_user(argp, &cfg, sizeof(cfg)))
-                                                       return -EFAULT;
-                                       }
-                                       return ret;
-                               } else
-                                       return -EINVAL;
-                       case IIOCNETANM:
-                               /* Add a phone-number to a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(&phone, argp, sizeof(phone)))
-                                               return -EFAULT;
-                                       ret = mutex_lock_interruptible(&dev->mtx);
-                                       if( ret ) return ret;
-                                       ret = isdn_net_addphone(&phone);
-                                       mutex_unlock(&dev->mtx);
-                                       return ret;
-                               } else
-                                       return -EINVAL;
-                       case IIOCNETGNM:
-                               /* Get list of phone-numbers of a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(&phone, argp, sizeof(phone)))
-                                               return -EFAULT;
-                                       ret = mutex_lock_interruptible(&dev->mtx);
-                                       if( ret ) return ret;
-                                       ret = isdn_net_getphones(&phone, argp);
-                                       mutex_unlock(&dev->mtx);
-                                       return ret;
-                               } else
-                                       return -EINVAL;
-                       case IIOCNETDNM:
-                               /* Delete a phone-number of a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(&phone, argp, sizeof(phone)))
-                                               return -EFAULT;
-                                       ret = mutex_lock_interruptible(&dev->mtx);
-                                       if( ret ) return ret;
-                                       ret = isdn_net_delphone(&phone);
-                                       mutex_unlock(&dev->mtx);
-                                       return ret;
-                               } else
-                                       return -EINVAL;
-                       case IIOCNETDIL:
-                               /* Force dialing of a network-interface */
-                               if (arg) {
-                                       if (copy_from_user(name, argp, sizeof(name)))
-                                               return -EFAULT;
-                                       return isdn_net_force_dial(name);
-                               } else
-                                       return -EINVAL;
-#ifdef CONFIG_ISDN_PPP
-                       case IIOCNETALN:
-                               if (!arg)
-                                       return -EINVAL;
-                               if (copy_from_user(name, argp, sizeof(name)))
+                       } else
+                               return -EINVAL;
+               case IIOCNETGNM:
+                       /* Get list of phone-numbers of a network-interface */
+                       if (arg) {
+                               if (copy_from_user(&phone, argp, sizeof(phone)))
                                        return -EFAULT;
-                               return isdn_ppp_dial_slave(name);
-                       case IIOCNETDLN:
-                               if (!arg)
-                                       return -EINVAL;
-                               if (copy_from_user(name, argp, sizeof(name)))
+                               ret = mutex_lock_interruptible(&dev->mtx);
+                               if (ret) return ret;
+                               ret = isdn_net_getphones(&phone, argp);
+                               mutex_unlock(&dev->mtx);
+                               return ret;
+                       } else
+                               return -EINVAL;
+               case IIOCNETDNM:
+                       /* Delete a phone-number of a network-interface */
+                       if (arg) {
+                               if (copy_from_user(&phone, argp, sizeof(phone)))
                                        return -EFAULT;
-                               return isdn_ppp_hangup_slave(name);
-#endif
-                       case IIOCNETHUP:
-                               /* Force hangup of a network-interface */
-                               if (!arg)
-                                       return -EINVAL;
+                               ret = mutex_lock_interruptible(&dev->mtx);
+                               if (ret) return ret;
+                               ret = isdn_net_delphone(&phone);
+                               mutex_unlock(&dev->mtx);
+                               return ret;
+                       } else
+                               return -EINVAL;
+               case IIOCNETDIL:
+                       /* Force dialing of a network-interface */
+                       if (arg) {
                                if (copy_from_user(name, argp, sizeof(name)))
                                        return -EFAULT;
-                               return isdn_net_force_hangup(name);
-                               break;
+                               return isdn_net_force_dial(name);
+                       } else
+                               return -EINVAL;
+#ifdef CONFIG_ISDN_PPP
+               case IIOCNETALN:
+                       if (!arg)
+                               return -EINVAL;
+                       if (copy_from_user(name, argp, sizeof(name)))
+                               return -EFAULT;
+                       return isdn_ppp_dial_slave(name);
+               case IIOCNETDLN:
+                       if (!arg)
+                               return -EINVAL;
+                       if (copy_from_user(name, argp, sizeof(name)))
+                               return -EFAULT;
+                       return isdn_ppp_hangup_slave(name);
+#endif
+               case IIOCNETHUP:
+                       /* Force hangup of a network-interface */
+                       if (!arg)
+                               return -EINVAL;
+                       if (copy_from_user(name, argp, sizeof(name)))
+                               return -EFAULT;
+                       return isdn_net_force_hangup(name);
+                       break;
 #endif                          /* CONFIG_NETDEVICES */
-                       case IIOCSETVER:
-                               dev->net_verbose = arg;
-                               printk(KERN_INFO "isdn: Verbose-Level is %d\n", dev->net_verbose);
-                               return 0;
-                       case IIOCSETGST:
-                               if (arg)
-                                       dev->global_flags |= ISDN_GLOBAL_STOPPED;
-                               else
-                                       dev->global_flags &= ~ISDN_GLOBAL_STOPPED;
-                               printk(KERN_INFO "isdn: Global Mode %s\n",
-                                      (dev->global_flags & ISDN_GLOBAL_STOPPED) ? "stopped" : "running");
-                               return 0;
-                       case IIOCSETBRJ:
-                               drvidx = -1;
-                               if (arg) {
-                                       int i;
-                                       char *p;
-                                       if (copy_from_user(&iocts, argp,
-                                            sizeof(isdn_ioctl_struct)))
-                                               return -EFAULT;
-                                       iocts.drvid[sizeof(iocts.drvid)-1] = 0;
-                                       if (strlen(iocts.drvid)) {
-                                               if ((p = strchr(iocts.drvid, ',')))
-                                                       *p = 0;
-                                               drvidx = -1;
-                                               for (i = 0; i < ISDN_MAX_DRIVERS; i++)
-                                                       if (!(strcmp(dev->drvid[i], iocts.drvid))) {
-                                                               drvidx = i;
-                                                               break;
-                                                       }
-                                       }
+               case IIOCSETVER:
+                       dev->net_verbose = arg;
+                       printk(KERN_INFO "isdn: Verbose-Level is %d\n", dev->net_verbose);
+                       return 0;
+               case IIOCSETGST:
+                       if (arg)
+                               dev->global_flags |= ISDN_GLOBAL_STOPPED;
+                       else
+                               dev->global_flags &= ~ISDN_GLOBAL_STOPPED;
+                       printk(KERN_INFO "isdn: Global Mode %s\n",
+                              (dev->global_flags & ISDN_GLOBAL_STOPPED) ? "stopped" : "running");
+                       return 0;
+               case IIOCSETBRJ:
+                       drvidx = -1;
+                       if (arg) {
+                               int i;
+                               char *p;
+                               if (copy_from_user(&iocts, argp,
+                                                  sizeof(isdn_ioctl_struct)))
+                                       return -EFAULT;
+                               iocts.drvid[sizeof(iocts.drvid) - 1] = 0;
+                               if (strlen(iocts.drvid)) {
+                                       if ((p = strchr(iocts.drvid, ',')))
+                                               *p = 0;
+                                       drvidx = -1;
+                                       for (i = 0; i < ISDN_MAX_DRIVERS; i++)
+                                               if (!(strcmp(dev->drvid[i], iocts.drvid))) {
+                                                       drvidx = i;
+                                                       break;
+                                               }
                                }
-                               if (drvidx == -1)
-                                       return -ENODEV;
-                               if (iocts.arg)
-                                       dev->drv[drvidx]->flags |= DRV_FLAG_REJBUS;
-                               else
-                                       dev->drv[drvidx]->flags &= ~DRV_FLAG_REJBUS;
-                               return 0;
-                       case IIOCSIGPRF:
-                               dev->profd = current;
-                               return 0;
-                               break;
-                       case IIOCGETPRF:
-                               /* Get all Modem-Profiles */
-                               if (arg) {
-                                       char __user *p = argp;
-                                       int i;
-
-                                       if (!access_ok(VERIFY_WRITE, argp,
-                                       (ISDN_MODEM_NUMREG + ISDN_MSNLEN + ISDN_LMSNLEN)
-                                                  * ISDN_MAX_CHANNELS))
+                       }
+                       if (drvidx == -1)
+                               return -ENODEV;
+                       if (iocts.arg)
+                               dev->drv[drvidx]->flags |= DRV_FLAG_REJBUS;
+                       else
+                               dev->drv[drvidx]->flags &= ~DRV_FLAG_REJBUS;
+                       return 0;
+               case IIOCSIGPRF:
+                       dev->profd = current;
+                       return 0;
+                       break;
+               case IIOCGETPRF:
+                       /* Get all Modem-Profiles */
+                       if (arg) {
+                               char __user *p = argp;
+                               int i;
+
+                               if (!access_ok(VERIFY_WRITE, argp,
+                                              (ISDN_MODEM_NUMREG + ISDN_MSNLEN + ISDN_LMSNLEN)
+                                              * ISDN_MAX_CHANNELS))
+                                       return -EFAULT;
+
+                               for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
+                                       if (copy_to_user(p, dev->mdm.info[i].emu.profile,
+                                                        ISDN_MODEM_NUMREG))
+                                               return -EFAULT;
+                                       p += ISDN_MODEM_NUMREG;
+                                       if (copy_to_user(p, dev->mdm.info[i].emu.pmsn, ISDN_MSNLEN))
                                                return -EFAULT;
+                                       p += ISDN_MSNLEN;
+                                       if (copy_to_user(p, dev->mdm.info[i].emu.plmsn, ISDN_LMSNLEN))
+                                               return -EFAULT;
+                                       p += ISDN_LMSNLEN;
+                               }
+                               return (ISDN_MODEM_NUMREG + ISDN_MSNLEN + ISDN_LMSNLEN) * ISDN_MAX_CHANNELS;
+                       } else
+                               return -EINVAL;
+                       break;
+               case IIOCSETPRF:
+                       /* Set all Modem-Profiles */
+                       if (arg) {
+                               char __user *p = argp;
+                               int i;
+
+                               if (!access_ok(VERIFY_READ, argp,
+                                              (ISDN_MODEM_NUMREG + ISDN_MSNLEN + ISDN_LMSNLEN)
+                                              * ISDN_MAX_CHANNELS))
+                                       return -EFAULT;
 
-                                       for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
-                                               if (copy_to_user(p, dev->mdm.info[i].emu.profile,
-                                                     ISDN_MODEM_NUMREG))
-                                                       return -EFAULT;
-                                               p += ISDN_MODEM_NUMREG;
-                                               if (copy_to_user(p, dev->mdm.info[i].emu.pmsn, ISDN_MSNLEN))
-                                                       return -EFAULT;
-                                               p += ISDN_MSNLEN;
-                                               if (copy_to_user(p, dev->mdm.info[i].emu.plmsn, ISDN_LMSNLEN))
-                                                       return -EFAULT;
-                                               p += ISDN_LMSNLEN;
-                                       }
-                                       return (ISDN_MODEM_NUMREG + ISDN_MSNLEN + ISDN_LMSNLEN) * ISDN_MAX_CHANNELS;
-                               } else
-                                       return -EINVAL;
-                               break;
-                       case IIOCSETPRF:
-                               /* Set all Modem-Profiles */
-                               if (arg) {
-                                       char __user *p = argp;
-                                       int i;
-
-                                       if (!access_ok(VERIFY_READ, argp,
-                                       (ISDN_MODEM_NUMREG + ISDN_MSNLEN + ISDN_LMSNLEN)
-                                                  * ISDN_MAX_CHANNELS))
+                               for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
+                                       if (copy_from_user(dev->mdm.info[i].emu.profile, p,
+                                                          ISDN_MODEM_NUMREG))
+                                               return -EFAULT;
+                                       p += ISDN_MODEM_NUMREG;
+                                       if (copy_from_user(dev->mdm.info[i].emu.plmsn, p, ISDN_LMSNLEN))
                                                return -EFAULT;
+                                       p += ISDN_LMSNLEN;
+                                       if (copy_from_user(dev->mdm.info[i].emu.pmsn, p, ISDN_MSNLEN))
+                                               return -EFAULT;
+                                       p += ISDN_MSNLEN;
+                               }
+                               return 0;
+                       } else
+                               return -EINVAL;
+                       break;
+               case IIOCSETMAP:
+               case IIOCGETMAP:
+                       /* Set/Get MSN->EAZ-Mapping for a driver */
+                       if (arg) {
 
-                                       for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
-                                               if (copy_from_user(dev->mdm.info[i].emu.profile, p,
-                                                    ISDN_MODEM_NUMREG))
-                                                       return -EFAULT;
-                                               p += ISDN_MODEM_NUMREG;
-                                               if (copy_from_user(dev->mdm.info[i].emu.plmsn, p, ISDN_LMSNLEN))
-                                                       return -EFAULT;
-                                               p += ISDN_LMSNLEN;
-                                               if (copy_from_user(dev->mdm.info[i].emu.pmsn, p, ISDN_MSNLEN))
-                                                       return -EFAULT;
-                                               p += ISDN_MSNLEN;
-                                       }
-                                       return 0;
+                               if (copy_from_user(&iocts, argp,
+                                                  sizeof(isdn_ioctl_struct)))
+                                       return -EFAULT;
+                               iocts.drvid[sizeof(iocts.drvid) - 1] = 0;
+                               if (strlen(iocts.drvid)) {
+                                       drvidx = -1;
+                                       for (i = 0; i < ISDN_MAX_DRIVERS; i++)
+                                               if (!(strcmp(dev->drvid[i], iocts.drvid))) {
+                                                       drvidx = i;
+                                                       break;
+                                               }
                                } else
-                                       return -EINVAL;
-                               break;
-                       case IIOCSETMAP:
-                       case IIOCGETMAP:
-                               /* Set/Get MSN->EAZ-Mapping for a driver */
-                               if (arg) {
+                                       drvidx = 0;
+                               if (drvidx == -1)
+                                       return -ENODEV;
+                               if (cmd == IIOCSETMAP) {
+                                       int loop = 1;
 
-                                       if (copy_from_user(&iocts, argp,
-                                            sizeof(isdn_ioctl_struct)))
-                                               return -EFAULT;
-                                       iocts.drvid[sizeof(iocts.drvid)-1] = 0;
-                                       if (strlen(iocts.drvid)) {
-                                               drvidx = -1;
-                                               for (i = 0; i < ISDN_MAX_DRIVERS; i++)
-                                                       if (!(strcmp(dev->drvid[i], iocts.drvid))) {
-                                                               drvidx = i;
+                                       p = (char __user *) iocts.arg;
+                                       i = 0;
+                                       while (loop) {
+                                               int j = 0;
+
+                                               while (1) {
+                                                       if (!access_ok(VERIFY_READ, p, 1))
+                                                               return -EFAULT;
+                                                       get_user(bname[j], p++);
+                                                       switch (bname[j]) {
+                                                       case '\0':
+                                                               loop = 0;
+                                                               /* Fall through */
+                                                       case ',':
+                                                               bname[j] = '\0';
+                                                               strcpy(dev->drv[drvidx]->msn2eaz[i], bname);
+                                                               j = ISDN_MSNLEN;
                                                                break;
+                                                       default:
+                                                               j++;
                                                        }
-                                       } else
-                                               drvidx = 0;
-                                       if (drvidx == -1)
-                                               return -ENODEV;
-                                       if (cmd == IIOCSETMAP) {
-                                               int loop = 1;
-
-                                               p = (char __user *) iocts.arg;
-                                               i = 0;
-                                               while (loop) {
-                                                       int j = 0;
-
-                                                       while (1) {
-                                                               if (!access_ok(VERIFY_READ, p, 1))
-                                                                       return -EFAULT;
-                                                               get_user(bname[j], p++);
-                                                               switch (bname[j]) {
-                                                                       case '\0':
-                                                                               loop = 0;
-                                                                               /* Fall through */
-                                                                       case ',':
-                                                                               bname[j] = '\0';
-                                                                               strcpy(dev->drv[drvidx]->msn2eaz[i], bname);
-                                                                               j = ISDN_MSNLEN;
-                                                                               break;
-                                                                       default:
-                                                                               j++;
-                                                               }
-                                                               if (j >= ISDN_MSNLEN)
-                                                                       break;
-                                                       }
-                                                       if (++i > 9)
+                                                       if (j >= ISDN_MSNLEN)
                                                                break;
                                                }
-                                       } else {
-                                               p = (char __user *) iocts.arg;
-                                               for (i = 0; i < 10; i++) {
-                                                       snprintf(bname, sizeof(bname), "%s%s",
-                                                               strlen(dev->drv[drvidx]->msn2eaz[i]) ?
-                                                               dev->drv[drvidx]->msn2eaz[i] : "_",
-                                                               (i < 9) ? "," : "\0");
-                                                       if (copy_to_user(p, bname, strlen(bname) + 1))
-                                                               return -EFAULT;
-                                                       p += strlen(bname);
-                                               }
+                                               if (++i > 9)
+                                                       break;
                                        }
-                                       return 0;
-                               } else
-                                       return -EINVAL;
-                       case IIOCDBGVAR:
-                               if (arg) {
-                                       if (copy_to_user(argp, &dev, sizeof(ulong)))
-                                               return -EFAULT;
-                                       return 0;
-                               } else
-                                       return -EINVAL;
-                               break;
-                       default:
-                               if ((cmd & IIOCDRVCTL) == IIOCDRVCTL)
-                                       cmd = ((cmd >> _IOC_NRSHIFT) & _IOC_NRMASK) & ISDN_DRVIOCTL_MASK;
-                               else
-                                       return -EINVAL;
-                               if (arg) {
-                                       int i;
-                                       char *p;
-                                       if (copy_from_user(&iocts, argp, sizeof(isdn_ioctl_struct)))
-                                               return -EFAULT;
-                                       iocts.drvid[sizeof(iocts.drvid)-1] = 0;
-                                       if (strlen(iocts.drvid)) {
-                                               if ((p = strchr(iocts.drvid, ',')))
-                                                       *p = 0;
-                                               drvidx = -1;
-                                               for (i = 0; i < ISDN_MAX_DRIVERS; i++)
-                                                       if (!(strcmp(dev->drvid[i], iocts.drvid))) {
-                                                               drvidx = i;
-                                                               break;
-                                                       }
-                                       } else
-                                               drvidx = 0;
-                                       if (drvidx == -1)
-                                               return -ENODEV;
-                                       if (!access_ok(VERIFY_WRITE, argp,
-                                            sizeof(isdn_ioctl_struct)))
-                                               return -EFAULT;
-                                       c.driver = drvidx;
-                                       c.command = ISDN_CMD_IOCTL;
-                                       c.arg = cmd;
-                                       memcpy(c.parm.num, &iocts.arg, sizeof(ulong));
-                                       ret = isdn_command(&c);
-                                       memcpy(&iocts.arg, c.parm.num, sizeof(ulong));
-                                       if (copy_to_user(argp, &iocts, sizeof(isdn_ioctl_struct)))
-                                               return -EFAULT;
-                                       return ret;
+                               } else {
+                                       p = (char __user *) iocts.arg;
+                                       for (i = 0; i < 10; i++) {
+                                               snprintf(bname, sizeof(bname), "%s%s",
+                                                        strlen(dev->drv[drvidx]->msn2eaz[i]) ?
+                                                        dev->drv[drvidx]->msn2eaz[i] : "_",
+                                                        (i < 9) ? "," : "\0");
+                                               if (copy_to_user(p, bname, strlen(bname) + 1))
+                                                       return -EFAULT;
+                                               p += strlen(bname);
+                                       }
+                               }
+                               return 0;
+                       } else
+                               return -EINVAL;
+               case IIOCDBGVAR:
+                       if (arg) {
+                               if (copy_to_user(argp, &dev, sizeof(ulong)))
+                                       return -EFAULT;
+                               return 0;
+                       } else
+                               return -EINVAL;
+                       break;
+               default:
+                       if ((cmd & IIOCDRVCTL) == IIOCDRVCTL)
+                               cmd = ((cmd >> _IOC_NRSHIFT) & _IOC_NRMASK) & ISDN_DRVIOCTL_MASK;
+                       else
+                               return -EINVAL;
+                       if (arg) {
+                               int i;
+                               char *p;
+                               if (copy_from_user(&iocts, argp, sizeof(isdn_ioctl_struct)))
+                                       return -EFAULT;
+                               iocts.drvid[sizeof(iocts.drvid) - 1] = 0;
+                               if (strlen(iocts.drvid)) {
+                                       if ((p = strchr(iocts.drvid, ',')))
+                                               *p = 0;
+                                       drvidx = -1;
+                                       for (i = 0; i < ISDN_MAX_DRIVERS; i++)
+                                               if (!(strcmp(dev->drvid[i], iocts.drvid))) {
+                                                       drvidx = i;
+                                                       break;
+                                               }
                                } else
-                                       return -EINVAL;
+                                       drvidx = 0;
+                               if (drvidx == -1)
+                                       return -ENODEV;
+                               if (!access_ok(VERIFY_WRITE, argp,
+                                              sizeof(isdn_ioctl_struct)))
+                                       return -EFAULT;
+                               c.driver = drvidx;
+                               c.command = ISDN_CMD_IOCTL;
+                               c.arg = cmd;
+                               memcpy(c.parm.num, &iocts.arg, sizeof(ulong));
+                               ret = isdn_command(&c);
+                               memcpy(&iocts.arg, c.parm.num, sizeof(ulong));
+                               if (copy_to_user(argp, &iocts, sizeof(isdn_ioctl_struct)))
+                                       return -EFAULT;
+                               return ret;
+                       } else
+                               return -EINVAL;
                }
        }
 #ifdef CONFIG_ISDN_PPP
@@ -1788,7 +1788,7 @@ isdn_open(struct inode *ino, struct file *filep)
                goto out;
        }
 #endif
- out:
+out:
        nonseekable_open(ino, filep);
        mutex_unlock(&isdn_mutex);
        return retval;
@@ -1832,7 +1832,7 @@ isdn_close(struct inode *ino, struct file *filep)
                isdn_ppp_release(minor - ISDN_MINOR_PPP, filep);
 #endif
 
- out:
+out:
        mutex_unlock(&isdn_mutex);
        return 0;
 }
@@ -1868,14 +1868,14 @@ isdn_map_eaz2msn(char *msn, int di)
  * Find an unused ISDN-channel, whose feature-flags match the
  * given L2- and L3-protocols.
  */
-#define L2V (~(ISDN_FEATURE_L2_V11096|ISDN_FEATURE_L2_V11019|ISDN_FEATURE_L2_V11038))
+#define L2V (~(ISDN_FEATURE_L2_V11096 | ISDN_FEATURE_L2_V11019 | ISDN_FEATURE_L2_V11038))
 
 /*
  * This function must be called with holding the dev->lock.
  */
 int
 isdn_get_free_channel(int usage, int l2_proto, int l3_proto, int pre_dev
-                     ,int pre_chan, char *msn)
+                     , int pre_chan, char *msn)
 {
        int i;
        ulong features;
@@ -1883,7 +1883,7 @@ isdn_get_free_channel(int usage, int l2_proto, int l3_proto, int pre_dev
 
        features = ((1 << l2_proto) | (0x10000 << l3_proto));
        vfeatures = (((1 << l2_proto) | (0x10000 << l3_proto)) &
-                    ~(ISDN_FEATURE_L2_V11096|ISDN_FEATURE_L2_V11019|ISDN_FEATURE_L2_V11038));
+                    ~(ISDN_FEATURE_L2_V11096 | ISDN_FEATURE_L2_V11019 | ISDN_FEATURE_L2_V11038));
        /* If Layer-2 protocol is V.110, accept drivers with
         * transparent feature even if these don't support V.110
         * because we can emulate this in linklevel.
@@ -1893,12 +1893,12 @@ isdn_get_free_channel(int usage, int l2_proto, int l3_proto, int pre_dev
                    (dev->drvmap[i] != -1)) {
                        int d = dev->drvmap[i];
                        if ((dev->usage[i] & ISDN_USAGE_EXCLUSIVE) &&
-                       ((pre_dev != d) || (pre_chan != dev->chanmap[i])))
+                           ((pre_dev != d) || (pre_chan != dev->chanmap[i])))
                                continue;
                        if (!strcmp(isdn_map_eaz2msn(msn, d), "-"))
                                continue;
                        if (dev->usage[i] & ISDN_USAGE_DISABLED)
-                               continue; /* usage not allowed */
+                               continue; /* usage not allowed */
                        if (dev->drv[d]->flags & DRV_FLAG_RUNNING) {
                                if (((dev->drv[d]->interface->features & features) == features) ||
                                    (((dev->drv[d]->interface->features & vfeatures) == vfeatures) &&
@@ -1932,7 +1932,7 @@ isdn_free_channel(int di, int ch, int usage)
 
        if ((di < 0) || (ch < 0)) {
                printk(KERN_WARNING "%s: called with invalid drv(%d) or channel(%d)\n",
-                       __func__, di, ch);
+                      __func__, di, ch);
                return;
        }
        for (i = 0; i < ISDN_MAX_CHANNELS; i++)
@@ -1976,7 +1976,7 @@ isdn_unexclusive_channel(int di, int ch)
  *  writebuf replacement for SKB_ABLE drivers
  */
 static int
-isdn_writebuf_stub(int drvidx, int chan, const u_char __user * buf, int len)
+isdn_writebuf_stub(int drvidx, int chan, const u_char __user *buf, int len)
 {
        int ret;
        int hl = dev->drv[drvidx]->interface->hl_hdrlen;
@@ -2026,8 +2026,8 @@ isdn_writebuf_skb_stub(int drvidx, int chan, int ack, struct sk_buff *skb)
        } else {
                int hl = dev->drv[drvidx]->interface->hl_hdrlen;
 
-               if( skb_headroom(skb) < hl ){
-                       /* 
+               if (skb_headroom(skb) < hl) {
+                       /*
                         * This should only occur when new HL driver with
                         * increased hl_hdrlen was loaded after netdevice
                         * was created and connected to the new driver.
@@ -2035,13 +2035,13 @@ isdn_writebuf_skb_stub(int drvidx, int chan, int ack, struct sk_buff *skb)
                         * The V.110 branch (re-allocates on its own) does
                         * not need this
                         */
-                       struct sk_buff * skb_tmp;
+                       struct sk_buff *skb_tmp;
 
                        skb_tmp = skb_realloc_headroom(skb, hl);
                        printk(KERN_DEBUG "isdn_writebuf_skb_stub: reallocating headroom%s\n", skb_tmp ? "" : " failed");
                        if (!skb_tmp) return -ENOMEM; /* 0 better? */
                        ret = dev->drv[drvidx]->interface->writebuf_skb(drvidx, chan, ack, skb_tmp);
-                       if( ret > 0 ){
+                       if (ret > 0) {
                                dev_kfree_skb(skb);
                        } else {
                                dev_kfree_skb(skb_tmp);
@@ -2059,7 +2059,7 @@ isdn_writebuf_skb_stub(int drvidx, int chan, int ack, struct sk_buff *skb)
                        /* For V.110 return unencoded data length */
                        ret = v110_ret;
                        /* if the complete frame was send we free the skb;
-                          if not upper function will requeue the skb */ 
+                          if not upper function will requeue the skb */
                        if (ret == skb->len)
                                dev_kfree_skb(skb);
                }
@@ -2077,7 +2077,7 @@ isdn_add_channels(isdn_driver_t *d, int drvidx, int n, int adding)
        init_waitqueue_head(&d->st_waitq);
        if (d->flags & DRV_FLAG_RUNNING)
                return -1;
-               if (n < 1) return 0;
+       if (n < 1) return 0;
 
        m = (adding) ? d->channels + n : n;
 
@@ -2114,7 +2114,7 @@ isdn_add_channels(isdn_driver_t *d, int drvidx, int n, int adding)
                        kfree(d->rcvcount);
                        kfree(d->rcverr);
                }
-               return -1; 
+               return -1;
        }
        for (j = 0; j < m; j++) {
                skb_queue_head_init(&d->rpqueue[j]);
@@ -2172,45 +2172,45 @@ set_global_features(void)
 
 static char *map_drvname(int di)
 {
-  if ((di < 0) || (di >= ISDN_MAX_DRIVERS)) 
-    return(NULL);
-  return(dev->drvid[di]); /* driver name */
+       if ((di < 0) || (di >= ISDN_MAX_DRIVERS))
+               return (NULL);
+       return (dev->drvid[di]); /* driver name */
 } /* map_drvname */
 
 static int map_namedrv(char *id)
 {  int i;
 
-   for (i = 0; i < ISDN_MAX_DRIVERS; i++)
-    { if (!strcmp(dev->drvid[i],id)) 
-        return(i);
-    }
-   return(-1);
+       for (i = 0; i < ISDN_MAX_DRIVERS; i++)
+       { if (!strcmp(dev->drvid[i], id))
+                       return (i);
+       }
+       return (-1);
 } /* map_namedrv */
 
 int DIVERT_REG_NAME(isdn_divert_if *i_div)
 {
-  if (i_div->if_magic != DIVERT_IF_MAGIC) 
-    return(DIVERT_VER_ERR);
-  switch (i_div->cmd)
-    {
-      case DIVERT_CMD_REL:
-        if (divert_if != i_div) 
-          return(DIVERT_REL_ERR);
-        divert_if = NULL; /* free interface */
-        return(DIVERT_NO_ERR);
-
-      case DIVERT_CMD_REG:
-        if (divert_if) 
-          return(DIVERT_REG_ERR);
-        i_div->ll_cmd = isdn_command; /* set command function */
-        i_div->drv_to_name = map_drvname; 
-        i_div->name_to_drv = map_namedrv; 
-        divert_if = i_div; /* remember interface */
-        return(DIVERT_NO_ERR);
-
-      default:
-        return(DIVERT_CMD_ERR);   
-    }
+       if (i_div->if_magic != DIVERT_IF_MAGIC)
+               return (DIVERT_VER_ERR);
+       switch (i_div->cmd)
+       {
+       case DIVERT_CMD_REL:
+               if (divert_if != i_div)
+                       return (DIVERT_REL_ERR);
+               divert_if = NULL; /* free interface */
+               return (DIVERT_NO_ERR);
+
+       case DIVERT_CMD_REG:
+               if (divert_if)
+                       return (DIVERT_REG_ERR);
+               i_div->ll_cmd = isdn_command; /* set command function */
+               i_div->drv_to_name = map_drvname;
+               i_div->name_to_drv = map_namedrv;
+               divert_if = i_div; /* remember interface */
+               return (DIVERT_NO_ERR);
+
+       default:
+               return (DIVERT_CMD_ERR);
+       }
 } /* DIVERT_REG_NAME */
 
 EXPORT_SYMBOL(DIVERT_REG_NAME);
@@ -2225,7 +2225,7 @@ EXPORT_SYMBOL(isdn_ppp_unregister_compressor);
 #endif
 
 int
-register_isdn(isdn_if * i)
+register_isdn(isdn_if *i)
 {
        isdn_driver_t *d;
        int j;
@@ -2280,10 +2280,10 @@ register_isdn(isdn_if * i)
 }
 
 /*
- *****************************************************************************
- * And now the modules code.
- *****************************************************************************
- */
+*****************************************************************************
+* And now the modules code.
+*****************************************************************************
+*/
 
 static char *
 isdn_getrev(const char *revision)
index 082735d..9a471f6 100644 (file)
@@ -29,19 +29,19 @@ extern void isdn_lock_drivers(void);
 extern void isdn_unlock_drivers(void);
 extern void isdn_free_channel(int di, int ch, int usage);
 extern void isdn_all_eaz(int di, int ch);
-extern int  isdn_command(isdn_ctrl *);
-extern int  isdn_dc2minor(int di, int ch);
+extern int isdn_command(isdn_ctrl *);
+extern int isdn_dc2minor(int di, int ch);
 extern void isdn_info_update(void);
 extern char *isdn_map_eaz2msn(char *msn, int di);
 extern void isdn_timer_ctrl(int tf, int onoff);
 extern void isdn_unexclusive_channel(int di, int ch);
-extern int  isdn_getnum(char **);
-extern int  isdn_readbchan(int, int, u_char *, u_char *, int, wait_queue_head_t *);
-extern int  isdn_readbchan_tty(int, int, struct tty_struct *, int);
-extern int  isdn_get_free_channel(int, int, int, int, int, char *);
-extern int  isdn_writebuf_skb_stub(int, int, int, struct sk_buff *);
-extern int  register_isdn(isdn_if * i);
-extern int  isdn_msncmp( const char *,  const char *);
+extern int isdn_getnum(char **);
+extern int isdn_readbchan(int, int, u_char *, u_char *, int, wait_queue_head_t *);
+extern int isdn_readbchan_tty(int, int, struct tty_struct *, int);
+extern int isdn_get_free_channel(int, int, int, int, int, char *);
+extern int isdn_writebuf_skb_stub(int, int, int, struct sk_buff *);
+extern int register_isdn(isdn_if *i);
+extern int isdn_msncmp(const char *,  const char *);
 #if defined(ISDN_DEBUG_NET_DUMP) || defined(ISDN_DEBUG_MODEM_DUMP)
 extern void isdn_dumppkt(char *, u_char *, int, int);
 #endif
index d568689..91d5730 100644 (file)
@@ -1,5 +1,5 @@
 /* $Id: isdn_concap.c,v 1.1.2.2 2004/01/12 22:37:19 keil Exp $
- * 
+ *
  * Linux ISDN subsystem, protocol encapsulation
  *
  * This software may be used and distributed according to the terms
    protocols that require for reliable datalink semantics. That means:
 
    - before any data is to be submitted the connection must explicitly
-     be set up.
+   be set up.
    - after the successful set up of the connection is signalled the
-     connection is considered to be reliably up.
+   connection is considered to be reliably up.
 
-   Auto-dialing ist not compatible with this requirements. Thus, auto-dialing 
+   Auto-dialing ist not compatible with this requirements. Thus, auto-dialing
    is completely bypassed.
 
    It might be possible to implement a (non standardized) datalink protocol
    that provides a reliable data link service while using some auto dialing
    mechanism. Such a protocol would need an auxiliary channel (i.e. user-user-
    signaling on the D-channel) while the B-channel is down.
-   */
+*/
 
 
 static int isdn_concap_dl_data_req(struct concap_proto *concap, struct sk_buff *skb)
 {
-       struct net_device *ndev = concap -> net_dev;
+       struct net_device *ndev = concap->net_dev;
        isdn_net_dev *nd = ((isdn_net_local *) netdev_priv(ndev))->netdev;
        isdn_net_local *lp = isdn_net_get_locked_lp(nd);
 
-       IX25DEBUG( "isdn_concap_dl_data_req: %s \n", concap->net_dev->name);
+       IX25DEBUG("isdn_concap_dl_data_req: %s \n", concap->net_dev->name);
        if (!lp) {
-               IX25DEBUG( "isdn_concap_dl_data_req: %s : isdn_net_send_skb returned %d\n", concap -> net_dev -> name, 1);
+               IX25DEBUG("isdn_concap_dl_data_req: %s : isdn_net_send_skb returned %d\n", concap->net_dev->name, 1);
                return 1;
        }
        lp->huptimer = 0;
        isdn_net_writebuf_skb(lp, skb);
        spin_unlock_bh(&lp->xmit_lock);
-       IX25DEBUG( "isdn_concap_dl_data_req: %s : isdn_net_send_skb returned %d\n", concap -> net_dev -> name, 0);
+       IX25DEBUG("isdn_concap_dl_data_req: %s : isdn_net_send_skb returned %d\n", concap->net_dev->name, 0);
        return 0;
 }
 
 
 static int isdn_concap_dl_connect_req(struct concap_proto *concap)
 {
-       struct net_device *ndev = concap -> net_dev;
+       struct net_device *ndev = concap->net_dev;
        isdn_net_local *lp = netdev_priv(ndev);
        int ret;
-       IX25DEBUG( "isdn_concap_dl_connect_req: %s \n", ndev -> name);
+       IX25DEBUG("isdn_concap_dl_connect_req: %s \n", ndev->name);
 
        /* dial ... */
-       ret = isdn_net_dial_req( lp );
-       if ( ret ) IX25DEBUG("dialing failed\n");
+       ret = isdn_net_dial_req(lp);
+       if (ret) IX25DEBUG("dialing failed\n");
        return ret;
 }
 
 static int isdn_concap_dl_disconn_req(struct concap_proto *concap)
 {
-       IX25DEBUG( "isdn_concap_dl_disconn_req: %s \n", concap -> net_dev -> name);
+       IX25DEBUG("isdn_concap_dl_disconn_req: %s \n", concap->net_dev->name);
 
-       isdn_net_hangup( concap -> net_dev );
+       isdn_net_hangup(concap->net_dev);
        return 0;
 }
 
@@ -88,10 +88,10 @@ struct concap_device_ops isdn_concap_reliable_dl_dops = {
 /* The following should better go into a dedicated source file such that
    this sourcefile does not need to include any protocol specific header
    files. For now:
-   */
-struct concap_proto * isdn_concap_new( int encap )
+*/
+struct concap_proto *isdn_concap_new(int encap)
 {
-       switch ( encap ) {
+       switch (encap) {
        case ISDN_NET_ENCAP_X25IFACE:
                return isdn_x25iface_proto_new();
        }
index 6ac7e04..cd7e3ba 100644 (file)
@@ -8,6 +8,4 @@
  */
 
 extern struct concap_device_ops isdn_concap_reliable_dl_dops;
-extern struct concap_proto * isdn_concap_new( int );
-
-
+extern struct concap_proto *isdn_concap_new(int);
index 802ab87..babc621 100644 (file)
@@ -9,7 +9,7 @@
  * This software may be used and distributed according to the terms
  * of the GNU General Public License, incorporated herein by reference.
  *
- * Data Over Voice (DOV) support added - Guy Ellis 23-Mar-02 
+ * Data Over Voice (DOV) support added - Guy Ellis 23-Mar-02
  *                                       guy@traverse.com.au
  * Outgoing calls - looks for a 'V' in first char of dialed number
  * Incoming calls - checks first character of eaz as follows:
@@ -18,7 +18,7 @@
  *   'B'     - accept BOTH DATA and DOV types
  *
  * Jan 2001: fix CISCO HDLC      Bjoern A. Zeeb <i4l@zabbadoz.net>
- *           for info on the protocol, see 
+ *           for info on the protocol, see
  *           http://i4l.zabbadoz.net/i4l/cisco-hdlc.txt
  */
 
@@ -40,7 +40,7 @@
 
 
 /*
- * Outline of new tbusy handling: 
+ * Outline of new tbusy handling:
  *
  * Old method, roughly spoken, consisted of setting tbusy when entering
  * isdn_net_start_xmit() and at several other locations and clearing
  * Most of the changes were pretty obvious and basically done by HE already.
  *
  * One problem of the isdn net device code is that is uses struct net_device
- * for masters and slaves. However, only master interface are registered to 
- * the network layer, and therefore, it only makes sense to call netif_* 
+ * for masters and slaves. However, only master interface are registered to
+ * the network layer, and therefore, it only makes sense to call netif_*
  * functions on them.
  *
  * --KG
  */
 
-/* 
+/*
  * Find out if the netdevice has been ifup-ed yet.
  * For slaves, look at the corresponding master.
  */
@@ -74,8 +74,8 @@ static __inline__ int isdn_net_device_started(isdn_net_dev *n)
 {
        isdn_net_local *lp = n->local;
        struct net_device *dev;
-       
-       if (lp->master) 
+
+       if (lp->master)
                dev = lp->master;
        else
                dev = n->dev;
@@ -88,7 +88,7 @@ static __inline__ int isdn_net_device_started(isdn_net_dev *n)
  */
 static __inline__ void isdn_net_device_wake_queue(isdn_net_local *lp)
 {
-       if (lp->master) 
+       if (lp->master)
                netif_wake_queue(lp->master);
        else
                netif_wake_queue(lp->netdev->dev);
@@ -108,7 +108,7 @@ static __inline__ void isdn_net_device_stop_queue(isdn_net_local *lp)
 
 /*
  * find out if the net_device which this lp belongs to (lp can be
- * master or slave) is busy. It's busy iff all (master and slave) 
+ * master or slave) is busy. It's busy iff all (master and slave)
  * queues are busy
  */
 static __inline__ int isdn_net_device_busy(isdn_net_local *lp)
@@ -124,7 +124,7 @@ static __inline__ int isdn_net_device_busy(isdn_net_local *lp)
                nd = ISDN_MASTER_PRIV(lp)->netdev;
        else
                nd = lp->netdev;
-       
+
        spin_lock_irqsave(&nd->queue_lock, flags);
        nlp = lp->next;
        while (nlp != lp) {
@@ -155,7 +155,7 @@ static __inline__ void isdn_net_dec_frame_cnt(isdn_net_local *lp)
                } else {
                        isdn_net_device_wake_queue(lp);
                }
-       }                                                                      
+       }
 }
 
 static __inline__ void isdn_net_zero_frame_cnt(isdn_net_local *lp)
@@ -163,36 +163,36 @@ static __inline__ void isdn_net_zero_frame_cnt(isdn_net_local *lp)
        atomic_set(&lp->frame_cnt, 0);
 }
 
-/* For 2.2.x we leave the transmitter busy timeout at 2 secs, just 
+/* For 2.2.x we leave the transmitter busy timeout at 2 secs, just
  * to be safe.
  * For 2.3.x we push it up to 20 secs, because call establishment
- * (in particular callback) may take such a long time, and we 
+ * (in particular callback) may take such a long time, and we
  * don't want confusing messages in the log. However, there is a slight
  * possibility that this large timeout will break other things like MPPP,
  * which might rely on the tx timeout. If so, we'll find out this way...
  */
 
-#define ISDN_NET_TX_TIMEOUT (20*HZ) 
+#define ISDN_NET_TX_TIMEOUT (20 * HZ)
 
 /* Prototypes */
 
 static int isdn_net_force_dial_lp(isdn_net_local *);
 static netdev_tx_t isdn_net_start_xmit(struct sk_buff *,
-                                            struct net_device *);
+                                      struct net_device *);
 
 static void isdn_net_ciscohdlck_connected(isdn_net_local *lp);
 static void isdn_net_ciscohdlck_disconnected(isdn_net_local *lp);
 
 char *isdn_net_revision = "$Revision: 1.1.2.2 $";
 
- /*
 * Code for raw-networking over ISDN
 */
+/*
+ * Code for raw-networking over ISDN
+ */
 
 static void
 isdn_net_unreachable(struct net_device *dev, struct sk_buff *skb, char *reason)
 {
-       if(skb) {
+       if (skb) {
 
                u_short proto = ntohs(skb->protocol);
 
@@ -200,13 +200,13 @@ isdn_net_unreachable(struct net_device *dev, struct sk_buff *skb, char *reason)
                       dev->name,
                       (reason != NULL) ? reason : "unknown",
                       (proto != ETH_P_IP) ? "Protocol != ETH_P_IP" : "");
-               
+
                dst_link_failure(skb);
        }
        else {  /* dial not triggered by rawIP packet */
                printk(KERN_DEBUG "isdn_net: %s: %s\n",
-                          dev->name,
-                          (reason != NULL) ? reason : "reason unknown");
+                      dev->name,
+                      (reason != NULL) ? reason : "reason unknown");
        }
 }
 
@@ -214,14 +214,14 @@ static void
 isdn_net_reset(struct net_device *dev)
 {
 #ifdef CONFIG_ISDN_X25
-       struct concap_device_ops * dops =
-               ((isdn_net_local *) netdev_priv(dev))->dops;
-       struct concap_proto * cprot =
-               ((isdn_net_local *) netdev_priv(dev))->netdev->cprot;
+       struct concap_device_ops *dops =
+               ((isdn_net_local *)netdev_priv(dev))->dops;
+       struct concap_proto *cprot =
+               ((isdn_net_local *)netdev_priv(dev))->netdev->cprot;
 #endif
 #ifdef CONFIG_ISDN_X25
-       if( cprot && cprot -> pops && dops )
-               cprot -> pops -> restart ( cprot, dev, dops );
+       if (cprot && cprot->pops && dops)
+               cprot->pops->restart(cprot, dev, dops);
 #endif
 }
 
@@ -248,7 +248,7 @@ isdn_net_open(struct net_device *dev)
                 */
                struct in_ifaddr *ifa = in_dev->ifa_list;
                if (ifa != NULL)
-                       memcpy(dev->dev_addr+2, &ifa->ifa_local, 4);
+                       memcpy(dev->dev_addr + 2, &ifa->ifa_local, 4);
        }
 
        /* If this interface has slaves, start them also */
@@ -267,7 +267,7 @@ isdn_net_open(struct net_device *dev)
  * Assign an ISDN-channel to a net-interface
  */
 static void
-isdn_net_bind_channel(isdn_net_local * lp, int idx)
+isdn_net_bind_channel(isdn_net_local *lp, int idx)
 {
        lp->flags |= ISDN_NET_CONNECTED;
        lp->isdn_device = dev->drvmap[idx];
@@ -280,7 +280,7 @@ isdn_net_bind_channel(isdn_net_local * lp, int idx)
  * unbind a net-interface (resets interface after an error)
  */
 static void
-isdn_net_unbind_channel(isdn_net_local * lp)
+isdn_net_unbind_channel(isdn_net_local *lp)
 {
        skb_queue_purge(&lp->super_tx_queue);
 
@@ -288,7 +288,7 @@ isdn_net_unbind_channel(isdn_net_local * lp)
                /* Moral equivalent of dev_purge_queues():
                   BEWARE! This chunk of code cannot be called from hardware
                   interrupt handler. I hope it is true. --ANK
-                */
+               */
                qdisc_reset_all_tx(lp->netdev->dev);
        }
        lp->dialstate = 0;
@@ -368,7 +368,7 @@ isdn_net_autohup(void)
                                        isdn_net_hangup(p->dev);
                        }
 
-                       if(dev->global_flags & ISDN_GLOBAL_STOPPED || (ISDN_NET_DIALMODE(*l) == ISDN_NET_DM_OFF)) {
+                       if (dev->global_flags & ISDN_GLOBAL_STOPPED || (ISDN_NET_DIALMODE(*l) == ISDN_NET_DM_OFF)) {
                                isdn_net_hangup(p->dev);
                                break;
                        }
@@ -403,143 +403,143 @@ isdn_net_stat_callback(int idx, isdn_ctrl *c)
                struct concap_proto_ops *pops = cprot ? cprot->pops : NULL;
 #endif
                switch (cmd) {
-                       case ISDN_STAT_BSENT:
-                               /* A packet has successfully been sent out */
-                               if ((lp->flags & ISDN_NET_CONNECTED) &&
-                                   (!lp->dialstate)) {
-                                       isdn_net_dec_frame_cnt(lp);
-                                       lp->stats.tx_packets++;
-                                       lp->stats.tx_bytes += c->parm.length;
-                               }
+               case ISDN_STAT_BSENT:
+                       /* A packet has successfully been sent out */
+                       if ((lp->flags & ISDN_NET_CONNECTED) &&
+                           (!lp->dialstate)) {
+                               isdn_net_dec_frame_cnt(lp);
+                               lp->stats.tx_packets++;
+                               lp->stats.tx_bytes += c->parm.length;
+                       }
+                       return 1;
+               case ISDN_STAT_DCONN:
+                       /* D-Channel is up */
+                       switch (lp->dialstate) {
+                       case 4:
+                       case 7:
+                       case 8:
+                               lp->dialstate++;
                                return 1;
-                       case ISDN_STAT_DCONN:
-                               /* D-Channel is up */
-                               switch (lp->dialstate) {
-                                       case 4:
-                                       case 7:
-                                       case 8:
-                                               lp->dialstate++;
-                                               return 1;
-                                       case 12:
-                                               lp->dialstate = 5;
-                                               return 1;
-                               }
-                               break;
-                       case ISDN_STAT_DHUP:
-                               /* Either D-Channel-hangup or error during dialout */
+                       case 12:
+                               lp->dialstate = 5;
+                               return 1;
+                       }
+                       break;
+               case ISDN_STAT_DHUP:
+                       /* Either D-Channel-hangup or error during dialout */
 #ifdef CONFIG_ISDN_X25
-                               /* If we are not connencted then dialing had
-                                  failed. If there are generic encap protocol
-                                  receiver routines signal the closure of
-                                  the link*/
-
-                               if( !(lp->flags & ISDN_NET_CONNECTED)
-                                   && pops && pops -> disconn_ind )
-                                       pops -> disconn_ind(cprot);
+                       /* If we are not connencted then dialing had
+                          failed. If there are generic encap protocol
+                          receiver routines signal the closure of
+                          the link*/
+
+                       if (!(lp->flags & ISDN_NET_CONNECTED)
+                           && pops && pops->disconn_ind)
+                               pops->disconn_ind(cprot);
 #endif /* CONFIG_ISDN_X25 */
-                               if ((!lp->dialstate) && (lp->flags & ISDN_NET_CONNECTED)) {
-                                       if (lp->p_encap == ISDN_NET_ENCAP_CISCOHDLCK)
-                                               isdn_net_ciscohdlck_disconnected(lp);
+                       if ((!lp->dialstate) && (lp->flags & ISDN_NET_CONNECTED)) {
+                               if (lp->p_encap == ISDN_NET_ENCAP_CISCOHDLCK)
+                                       isdn_net_ciscohdlck_disconnected(lp);
 #ifdef CONFIG_ISDN_PPP
-                                       if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP)
-                                               isdn_ppp_free(lp);
+                               if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP)
+                                       isdn_ppp_free(lp);
 #endif
-                                       isdn_net_lp_disconnected(lp);
-                                       isdn_all_eaz(lp->isdn_device, lp->isdn_channel);
-                                       printk(KERN_INFO "%s: remote hangup\n", p->dev->name);
-                                       printk(KERN_INFO "%s: Chargesum is %d\n", p->dev->name,
-                                              lp->charge);
-                                       isdn_net_unbind_channel(lp);
-                                       return 1;
-                               }
-                               break;
+                               isdn_net_lp_disconnected(lp);
+                               isdn_all_eaz(lp->isdn_device, lp->isdn_channel);
+                               printk(KERN_INFO "%s: remote hangup\n", p->dev->name);
+                               printk(KERN_INFO "%s: Chargesum is %d\n", p->dev->name,
+                                      lp->charge);
+                               isdn_net_unbind_channel(lp);
+                               return 1;
+                       }
+                       break;
 #ifdef CONFIG_ISDN_X25
-                       case ISDN_STAT_BHUP:
-                               /* B-Channel-hangup */
-                               /* try if there are generic encap protocol
-                                  receiver routines and signal the closure of
-                                  the link */
-                               if( pops  &&  pops -> disconn_ind ){
-                                               pops -> disconn_ind(cprot);
-                                               return 1;
-                                       }
-                               break;
+               case ISDN_STAT_BHUP:
+                       /* B-Channel-hangup */
+                       /* try if there are generic encap protocol
+                          receiver routines and signal the closure of
+                          the link */
+                       if (pops && pops->disconn_ind) {
+                               pops->disconn_ind(cprot);
+                               return 1;
+                       }
+                       break;
 #endif /* CONFIG_ISDN_X25 */
-                       case ISDN_STAT_BCONN:
-                               /* B-Channel is up */
-                               isdn_net_zero_frame_cnt(lp);
-                               switch (lp->dialstate) {
-                                       case 5:
-                                       case 6:
-                                       case 7:
-                                       case 8:
-                                       case 9:
-                                       case 10:
-                                       case 12:
-                                               if (lp->dialstate <= 6) {
-                                                       dev->usage[idx] |= ISDN_USAGE_OUTGOING;
-                                                       isdn_info_update();
-                                               } else
-                                                       dev->rx_netdev[idx] = p;
-                                               lp->dialstate = 0;
-                                               isdn_timer_ctrl(ISDN_TIMER_NETHANGUP, 1);
-                                               if (lp->p_encap == ISDN_NET_ENCAP_CISCOHDLCK)
-                                                       isdn_net_ciscohdlck_connected(lp);
-                                               if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP) {
-                                                       if (lp->master) { /* is lp a slave? */
-                                                               isdn_net_dev *nd = ISDN_MASTER_PRIV(lp)->netdev;
-                                                               isdn_net_add_to_bundle(nd, lp);
-                                                       }
-                                               }
-                                               printk(KERN_INFO "isdn_net: %s connected\n", p->dev->name);
-                                               /* If first Chargeinfo comes before B-Channel connect,
-                                                * we correct the timestamp here.
-                                                */
-                                               lp->chargetime = jiffies;
+               case ISDN_STAT_BCONN:
+                       /* B-Channel is up */
+                       isdn_net_zero_frame_cnt(lp);
+                       switch (lp->dialstate) {
+                       case 5:
+                       case 6:
+                       case 7:
+                       case 8:
+                       case 9:
+                       case 10:
+                       case 12:
+                               if (lp->dialstate <= 6) {
+                                       dev->usage[idx] |= ISDN_USAGE_OUTGOING;
+                                       isdn_info_update();
+                               } else
+                                       dev->rx_netdev[idx] = p;
+                               lp->dialstate = 0;
+                               isdn_timer_ctrl(ISDN_TIMER_NETHANGUP, 1);
+                               if (lp->p_encap == ISDN_NET_ENCAP_CISCOHDLCK)
+                                       isdn_net_ciscohdlck_connected(lp);
+                               if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP) {
+                                       if (lp->master) { /* is lp a slave? */
+                                               isdn_net_dev *nd = ISDN_MASTER_PRIV(lp)->netdev;
+                                               isdn_net_add_to_bundle(nd, lp);
+                                       }
+                               }
+                               printk(KERN_INFO "isdn_net: %s connected\n", p->dev->name);
+                               /* If first Chargeinfo comes before B-Channel connect,
+                                * we correct the timestamp here.
+                                */
+                               lp->chargetime = jiffies;
 
-                                               /* reset dial-timeout */
-                                               lp->dialstarted = 0;
-                                               lp->dialwait_timer = 0;
+                               /* reset dial-timeout */
+                               lp->dialstarted = 0;
+                               lp->dialwait_timer = 0;
 
 #ifdef CONFIG_ISDN_PPP
-                                               if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP)
-                                                       isdn_ppp_wakeup_daemon(lp);
+                               if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP)
+                                       isdn_ppp_wakeup_daemon(lp);
 #endif
 #ifdef CONFIG_ISDN_X25
-                                               /* try if there are generic concap receiver routines */
-                                               if( pops )
-                                                       if( pops->connect_ind)
-                                                               pops->connect_ind(cprot);
+                               /* try if there are generic concap receiver routines */
+                               if (pops)
+                                       if (pops->connect_ind)
+                                               pops->connect_ind(cprot);
 #endif /* CONFIG_ISDN_X25 */
-                                               /* ppp needs to do negotiations first */
-                                               if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP)
-                                                       isdn_net_device_wake_queue(lp);
-                                               return 1;
-                               }
-                               break;
-                       case ISDN_STAT_NODCH:
-                               /* No D-Channel avail. */
-                               if (lp->dialstate == 4) {
-                                       lp->dialstate--;
-                                       return 1;
-                               }
-                               break;
-                       case ISDN_STAT_CINF:
-                               /* Charge-info from TelCo. Calculate interval between
-                                * charge-infos and set timestamp for last info for
-                                * usage by isdn_net_autohup()
-                                */
-                               lp->charge++;
-                               if (lp->hupflags & ISDN_HAVECHARGE) {
-                                       lp->hupflags &= ~ISDN_WAITCHARGE;
-                                       lp->chargeint = jiffies - lp->chargetime - (2 * HZ);
-                               }
-                               if (lp->hupflags & ISDN_WAITCHARGE)
-                                       lp->hupflags |= ISDN_HAVECHARGE;
-                               lp->chargetime = jiffies;
-                               printk(KERN_DEBUG "isdn_net: Got CINF chargetime of %s now %lu\n",
-                                      p->dev->name, lp->chargetime);
+                               /* ppp needs to do negotiations first */
+                               if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP)
+                                       isdn_net_device_wake_queue(lp);
                                return 1;
+                       }
+                       break;
+               case ISDN_STAT_NODCH:
+                       /* No D-Channel avail. */
+                       if (lp->dialstate == 4) {
+                               lp->dialstate--;
+                               return 1;
+                       }
+                       break;
+               case ISDN_STAT_CINF:
+                       /* Charge-info from TelCo. Calculate interval between
+                        * charge-infos and set timestamp for last info for
+                        * usage by isdn_net_autohup()
+                        */
+                       lp->charge++;
+                       if (lp->hupflags & ISDN_HAVECHARGE) {
+                               lp->hupflags &= ~ISDN_WAITCHARGE;
+                               lp->chargeint = jiffies - lp->chargetime - (2 * HZ);
+                       }
+                       if (lp->hupflags & ISDN_WAITCHARGE)
+                               lp->hupflags |= ISDN_HAVECHARGE;
+                       lp->chargetime = jiffies;
+                       printk(KERN_DEBUG "isdn_net: Got CINF chargetime of %s now %lu\n",
+                              p->dev->name, lp->chargetime);
+                       return 1;
                }
        }
        return 0;
@@ -562,7 +562,7 @@ isdn_net_dial(void)
        int anymore = 0;
        int i;
        isdn_ctrl cmd;
-        u_char *phone_number;
+       u_char *phone_number;
 
        while (p) {
                isdn_net_local *lp = p->local;
@@ -572,249 +572,249 @@ isdn_net_dial(void)
                        printk(KERN_DEBUG "%s: dialstate=%d\n", p->dev->name, lp->dialstate);
 #endif
                switch (lp->dialstate) {
-                       case 0:
-                               /* Nothing to do for this interface */
+               case 0:
+                       /* Nothing to do for this interface */
+                       break;
+               case 1:
+                       /* Initiate dialout. Set phone-number-pointer to first number
+                        * of interface.
+                        */
+                       lp->dial = lp->phone[1];
+                       if (!lp->dial) {
+                               printk(KERN_WARNING "%s: phone number deleted?\n",
+                                      p->dev->name);
+                               isdn_net_hangup(p->dev);
                                break;
-                       case 1:
-                               /* Initiate dialout. Set phone-number-pointer to first number
-                                * of interface.
-                                */
-                               lp->dial = lp->phone[1];
-                               if (!lp->dial) {
-                                       printk(KERN_WARNING "%s: phone number deleted?\n",
-                                              p->dev->name);
-                                       isdn_net_hangup(p->dev);
-                                       break;
+                       }
+                       anymore = 1;
+
+                       if (lp->dialtimeout > 0)
+                               if (lp->dialstarted == 0 || time_after(jiffies, lp->dialstarted + lp->dialtimeout + lp->dialwait)) {
+                                       lp->dialstarted = jiffies;
+                                       lp->dialwait_timer = 0;
                                }
-                               anymore = 1;
 
-                               if(lp->dialtimeout > 0)
-                                       if(lp->dialstarted == 0 || time_after(jiffies, lp->dialstarted + lp->dialtimeout + lp->dialwait)) {
-                                               lp->dialstarted = jiffies;
-                                               lp->dialwait_timer = 0;
+                       lp->dialstate++;
+                       /* Fall through */
+               case 2:
+                       /* Prepare dialing. Clear EAZ, then set EAZ. */
+                       cmd.driver = lp->isdn_device;
+                       cmd.arg = lp->isdn_channel;
+                       cmd.command = ISDN_CMD_CLREAZ;
+                       isdn_command(&cmd);
+                       sprintf(cmd.parm.num, "%s", isdn_map_eaz2msn(lp->msn, cmd.driver));
+                       cmd.command = ISDN_CMD_SETEAZ;
+                       isdn_command(&cmd);
+                       lp->dialretry = 0;
+                       anymore = 1;
+                       lp->dialstate++;
+                       /* Fall through */
+               case 3:
+                       /* Setup interface, dial current phone-number, switch to next number.
+                        * If list of phone-numbers is exhausted, increment
+                        * retry-counter.
+                        */
+                       if (dev->global_flags & ISDN_GLOBAL_STOPPED || (ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_OFF)) {
+                               char *s;
+                               if (dev->global_flags & ISDN_GLOBAL_STOPPED)
+                                       s = "dial suppressed: isdn system stopped";
+                               else
+                                       s = "dial suppressed: dialmode `off'";
+                               isdn_net_unreachable(p->dev, NULL, s);
+                               isdn_net_hangup(p->dev);
+                               break;
+                       }
+                       cmd.driver = lp->isdn_device;
+                       cmd.command = ISDN_CMD_SETL2;
+                       cmd.arg = lp->isdn_channel + (lp->l2_proto << 8);
+                       isdn_command(&cmd);
+                       cmd.driver = lp->isdn_device;
+                       cmd.command = ISDN_CMD_SETL3;
+                       cmd.arg = lp->isdn_channel + (lp->l3_proto << 8);
+                       isdn_command(&cmd);
+                       cmd.driver = lp->isdn_device;
+                       cmd.arg = lp->isdn_channel;
+                       if (!lp->dial) {
+                               printk(KERN_WARNING "%s: phone number deleted?\n",
+                                      p->dev->name);
+                               isdn_net_hangup(p->dev);
+                               break;
+                       }
+                       if (!strncmp(lp->dial->num, "LEASED", strlen("LEASED"))) {
+                               lp->dialstate = 4;
+                               printk(KERN_INFO "%s: Open leased line ...\n", p->dev->name);
+                       } else {
+                               if (lp->dialtimeout > 0)
+                                       if (time_after(jiffies, lp->dialstarted + lp->dialtimeout)) {
+                                               lp->dialwait_timer = jiffies + lp->dialwait;
+                                               lp->dialstarted = 0;
+                                               isdn_net_unreachable(p->dev, NULL, "dial: timed out");
+                                               isdn_net_hangup(p->dev);
+                                               break;
                                        }
 
-                               lp->dialstate++;
-                               /* Fall through */
-                       case 2:
-                               /* Prepare dialing. Clear EAZ, then set EAZ. */
-                               cmd.driver = lp->isdn_device;
-                               cmd.arg = lp->isdn_channel;
-                               cmd.command = ISDN_CMD_CLREAZ;
-                               isdn_command(&cmd);
-                               sprintf(cmd.parm.num, "%s", isdn_map_eaz2msn(lp->msn, cmd.driver));
-                               cmd.command = ISDN_CMD_SETEAZ;
-                               isdn_command(&cmd);
-                               lp->dialretry = 0;
-                               anymore = 1;
-                               lp->dialstate++;
-                               /* Fall through */
-                       case 3:
-                               /* Setup interface, dial current phone-number, switch to next number.
-                                * If list of phone-numbers is exhausted, increment
-                                * retry-counter.
-                                */
-                               if(dev->global_flags & ISDN_GLOBAL_STOPPED || (ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_OFF)) {
-                                       char *s;
-                                       if (dev->global_flags & ISDN_GLOBAL_STOPPED)
-                                               s = "dial suppressed: isdn system stopped";
-                                       else
-                                               s = "dial suppressed: dialmode `off'";
-                                       isdn_net_unreachable(p->dev, NULL, s);
-                                       isdn_net_hangup(p->dev);
-                                       break;
-                               }
-                               cmd.driver = lp->isdn_device;
-                               cmd.command = ISDN_CMD_SETL2;
-                               cmd.arg = lp->isdn_channel + (lp->l2_proto << 8);
-                               isdn_command(&cmd);
-                               cmd.driver = lp->isdn_device;
-                               cmd.command = ISDN_CMD_SETL3;
-                               cmd.arg = lp->isdn_channel + (lp->l3_proto << 8);
-                               isdn_command(&cmd);
                                cmd.driver = lp->isdn_device;
-                               cmd.arg = lp->isdn_channel;
-                               if (!lp->dial) {
-                                       printk(KERN_WARNING "%s: phone number deleted?\n",
-                                              p->dev->name);
-                                       isdn_net_hangup(p->dev);
-                                       break;
+                               cmd.command = ISDN_CMD_DIAL;
+                               cmd.parm.setup.si2 = 0;
+
+                               /* check for DOV */
+                               phone_number = lp->dial->num;
+                               if ((*phone_number == 'v') ||
+                                   (*phone_number == 'V')) { /* DOV call */
+                                       cmd.parm.setup.si1 = 1;
+                               } else { /* DATA call */
+                                       cmd.parm.setup.si1 = 7;
                                }
-                               if (!strncmp(lp->dial->num, "LEASED", strlen("LEASED"))) {
-                                       lp->dialstate = 4;
-                                       printk(KERN_INFO "%s: Open leased line ...\n", p->dev->name);
-                               } else {
-                                       if(lp->dialtimeout > 0)
-                                               if (time_after(jiffies, lp->dialstarted + lp->dialtimeout)) {
-                                                       lp->dialwait_timer = jiffies + lp->dialwait;
-                                                       lp->dialstarted = 0;
-                                                       isdn_net_unreachable(p->dev, NULL, "dial: timed out");
-                                                       isdn_net_hangup(p->dev);
-                                                       break;
-                                               }
 
-                                       cmd.driver = lp->isdn_device;
-                                       cmd.command = ISDN_CMD_DIAL;
-                                       cmd.parm.setup.si2 = 0;
-
-                                        /* check for DOV */
-                                        phone_number = lp->dial->num;
-                                        if ((*phone_number == 'v') ||
-                                           (*phone_number == 'V')) { /* DOV call */
-                                                cmd.parm.setup.si1 = 1;
-                                        } else { /* DATA call */
-                                                cmd.parm.setup.si1 = 7;
-                                       }
+                               strcpy(cmd.parm.setup.phone, phone_number);
+                               /*
+                                * Switch to next number or back to start if at end of list.
+                                */
+                               if (!(lp->dial = (isdn_net_phone *) lp->dial->next)) {
+                                       lp->dial = lp->phone[1];
+                                       lp->dialretry++;
 
-                                       strcpy(cmd.parm.setup.phone, phone_number);
-                                       /*
-                                        * Switch to next number or back to start if at end of list.
-                                        */
-                                       if (!(lp->dial = (isdn_net_phone *) lp->dial->next)) {
-                                               lp->dial = lp->phone[1];
-                                               lp->dialretry++;
-
-                                               if (lp->dialretry > lp->dialmax) {
-                                                       if (lp->dialtimeout == 0) {
-                                                               lp->dialwait_timer = jiffies + lp->dialwait;
-                                                               lp->dialstarted = 0;
-                                                               isdn_net_unreachable(p->dev, NULL, "dial: tried all numbers dialmax times");
-                                                       }
-                                                       isdn_net_hangup(p->dev);
-                                                       break;
+                                       if (lp->dialretry > lp->dialmax) {
+                                               if (lp->dialtimeout == 0) {
+                                                       lp->dialwait_timer = jiffies + lp->dialwait;
+                                                       lp->dialstarted = 0;
+                                                       isdn_net_unreachable(p->dev, NULL, "dial: tried all numbers dialmax times");
                                                }
+                                               isdn_net_hangup(p->dev);
+                                               break;
                                        }
-                                       sprintf(cmd.parm.setup.eazmsn, "%s",
-                                               isdn_map_eaz2msn(lp->msn, cmd.driver));
-                                       i = isdn_dc2minor(lp->isdn_device, lp->isdn_channel);
-                                       if (i >= 0) {
-                                               strcpy(dev->num[i], cmd.parm.setup.phone);
-                                               dev->usage[i] |= ISDN_USAGE_OUTGOING;
-                                               isdn_info_update();
-                                       }
-                                       printk(KERN_INFO "%s: dialing %d %s... %s\n", p->dev->name,
-                                              lp->dialretry, cmd.parm.setup.phone,
-                                              (cmd.parm.setup.si1 == 1) ? "DOV" : "");
-                                       lp->dtimer = 0;
-#ifdef ISDN_DEBUG_NET_DIAL
-                                       printk(KERN_DEBUG "dial: d=%d c=%d\n", lp->isdn_device,
-                                              lp->isdn_channel);
-#endif
-                                       isdn_command(&cmd);
                                }
-                               lp->huptimer = 0;
-                               lp->outgoing = 1;
-                               if (lp->chargeint) {
-                                       lp->hupflags |= ISDN_HAVECHARGE;
-                                       lp->hupflags &= ~ISDN_WAITCHARGE;
-                               } else {
-                                       lp->hupflags |= ISDN_WAITCHARGE;
-                                       lp->hupflags &= ~ISDN_HAVECHARGE;
+                               sprintf(cmd.parm.setup.eazmsn, "%s",
+                                       isdn_map_eaz2msn(lp->msn, cmd.driver));
+                               i = isdn_dc2minor(lp->isdn_device, lp->isdn_channel);
+                               if (i >= 0) {
+                                       strcpy(dev->num[i], cmd.parm.setup.phone);
+                                       dev->usage[i] |= ISDN_USAGE_OUTGOING;
+                                       isdn_info_update();
                                }
-                               anymore = 1;
-                               lp->dialstate =
-                                   (lp->cbdelay &&
-                                    (lp->flags & ISDN_NET_CBOUT)) ? 12 : 4;
-                               break;
-                       case 4:
-                               /* Wait for D-Channel-connect.
-                                * If timeout, switch back to state 3.
-                                * Dialmax-handling moved to state 3.
-                                */
-                               if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10)
-                                       lp->dialstate = 3;
-                               anymore = 1;
-                               break;
-                       case 5:
-                               /* Got D-Channel-Connect, send B-Channel-request */
-                               cmd.driver = lp->isdn_device;
-                               cmd.arg = lp->isdn_channel;
-                               cmd.command = ISDN_CMD_ACCEPTB;
-                               anymore = 1;
+                               printk(KERN_INFO "%s: dialing %d %s... %s\n", p->dev->name,
+                                      lp->dialretry, cmd.parm.setup.phone,
+                                      (cmd.parm.setup.si1 == 1) ? "DOV" : "");
                                lp->dtimer = 0;
-                               lp->dialstate++;
+#ifdef ISDN_DEBUG_NET_DIAL
+                               printk(KERN_DEBUG "dial: d=%d c=%d\n", lp->isdn_device,
+                                      lp->isdn_channel);
+#endif
                                isdn_command(&cmd);
-                               break;
-                       case 6:
-                               /* Wait for B- or D-Channel-connect. If timeout,
-                                * switch back to state 3.
-                                */
+                       }
+                       lp->huptimer = 0;
+                       lp->outgoing = 1;
+                       if (lp->chargeint) {
+                               lp->hupflags |= ISDN_HAVECHARGE;
+                               lp->hupflags &= ~ISDN_WAITCHARGE;
+                       } else {
+                               lp->hupflags |= ISDN_WAITCHARGE;
+                               lp->hupflags &= ~ISDN_HAVECHARGE;
+                       }
+                       anymore = 1;
+                       lp->dialstate =
+                               (lp->cbdelay &&
+                                (lp->flags & ISDN_NET_CBOUT)) ? 12 : 4;
+                       break;
+               case 4:
+                       /* Wait for D-Channel-connect.
+                        * If timeout, switch back to state 3.
+                        * Dialmax-handling moved to state 3.
+                        */
+                       if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10)
+                               lp->dialstate = 3;
+                       anymore = 1;
+                       break;
+               case 5:
+                       /* Got D-Channel-Connect, send B-Channel-request */
+                       cmd.driver = lp->isdn_device;
+                       cmd.arg = lp->isdn_channel;
+                       cmd.command = ISDN_CMD_ACCEPTB;
+                       anymore = 1;
+                       lp->dtimer = 0;
+                       lp->dialstate++;
+                       isdn_command(&cmd);
+                       break;
+               case 6:
+                       /* Wait for B- or D-Channel-connect. If timeout,
+                        * switch back to state 3.
+                        */
 #ifdef ISDN_DEBUG_NET_DIAL
-                               printk(KERN_DEBUG "dialtimer2: %d\n", lp->dtimer);
+                       printk(KERN_DEBUG "dialtimer2: %d\n", lp->dtimer);
 #endif
-                               if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10)
-                                       lp->dialstate = 3;
-                               anymore = 1;
-                               break;
-                       case 7:
-                               /* Got incoming Call, setup L2 and L3 protocols,
-                                * then wait for D-Channel-connect
-                                */
+                       if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10)
+                               lp->dialstate = 3;
+                       anymore = 1;
+                       break;
+               case 7:
+                       /* Got incoming Call, setup L2 and L3 protocols,
+                        * then wait for D-Channel-connect
+                        */
 #ifdef ISDN_DEBUG_NET_DIAL
-                               printk(KERN_DEBUG "dialtimer4: %d\n", lp->dtimer);
+                       printk(KERN_DEBUG "dialtimer4: %d\n", lp->dtimer);
 #endif
-                               cmd.driver = lp->isdn_device;
-                               cmd.command = ISDN_CMD_SETL2;
-                               cmd.arg = lp->isdn_channel + (lp->l2_proto << 8);
-                               isdn_command(&cmd);
-                               cmd.driver = lp->isdn_device;
-                               cmd.command = ISDN_CMD_SETL3;
-                               cmd.arg = lp->isdn_channel + (lp->l3_proto << 8);
-                               isdn_command(&cmd);
-                               if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT15)
-                                       isdn_net_hangup(p->dev);
-                               else {
-                                       anymore = 1;
-                                       lp->dialstate++;
-                               }
-                               break;
-                       case 9:
-                               /* Got incoming D-Channel-Connect, send B-Channel-request */
-                               cmd.driver = lp->isdn_device;
-                               cmd.arg = lp->isdn_channel;
-                               cmd.command = ISDN_CMD_ACCEPTB;
-                               isdn_command(&cmd);
+                       cmd.driver = lp->isdn_device;
+                       cmd.command = ISDN_CMD_SETL2;
+                       cmd.arg = lp->isdn_channel + (lp->l2_proto << 8);
+                       isdn_command(&cmd);
+                       cmd.driver = lp->isdn_device;
+                       cmd.command = ISDN_CMD_SETL3;
+                       cmd.arg = lp->isdn_channel + (lp->l3_proto << 8);
+                       isdn_command(&cmd);
+                       if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT15)
+                               isdn_net_hangup(p->dev);
+                       else {
                                anymore = 1;
-                               lp->dtimer = 0;
                                lp->dialstate++;
-                               break;
-                       case 8:
-                       case 10:
-                               /*  Wait for B- or D-channel-connect */
+                       }
+                       break;
+               case 9:
+                       /* Got incoming D-Channel-Connect, send B-Channel-request */
+                       cmd.driver = lp->isdn_device;
+                       cmd.arg = lp->isdn_channel;
+                       cmd.command = ISDN_CMD_ACCEPTB;
+                       isdn_command(&cmd);
+                       anymore = 1;
+                       lp->dtimer = 0;
+                       lp->dialstate++;
+                       break;
+               case 8:
+               case 10:
+                       /*  Wait for B- or D-channel-connect */
 #ifdef ISDN_DEBUG_NET_DIAL
-                               printk(KERN_DEBUG "dialtimer4: %d\n", lp->dtimer);
+                       printk(KERN_DEBUG "dialtimer4: %d\n", lp->dtimer);
 #endif
-                               if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10)
-                                       isdn_net_hangup(p->dev);
-                               else
-                                       anymore = 1;
-                               break;
-                       case 11:
-                               /* Callback Delay */
-                               if (lp->dtimer++ > lp->cbdelay)
-                                       lp->dialstate = 1;
-                               anymore = 1;
-                               break;
-                       case 12:
-                               /* Remote does callback. Hangup after cbdelay, then wait for incoming
-                                * call (in state 4).
-                                */
-                               if (lp->dtimer++ > lp->cbdelay)
-                               {
-                                       printk(KERN_INFO "%s: hangup waiting for callback ...\n", p->dev->name);
-                                       lp->dtimer = 0;
-                                       lp->dialstate = 4;
-                                       cmd.driver = lp->isdn_device;
-                                       cmd.command = ISDN_CMD_HANGUP;
-                                       cmd.arg = lp->isdn_channel;
-                                       isdn_command(&cmd);
-                                       isdn_all_eaz(lp->isdn_device, lp->isdn_channel);
-                               }
+                       if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10)
+                               isdn_net_hangup(p->dev);
+                       else
                                anymore = 1;
-                               break;
-                       default:
-                               printk(KERN_WARNING "isdn_net: Illegal dialstate %d for device %s\n",
-                                      lp->dialstate, p->dev->name);
+                       break;
+               case 11:
+                       /* Callback Delay */
+                       if (lp->dtimer++ > lp->cbdelay)
+                               lp->dialstate = 1;
+                       anymore = 1;
+                       break;
+               case 12:
+                       /* Remote does callback. Hangup after cbdelay, then wait for incoming
+                        * call (in state 4).
+                        */
+                       if (lp->dtimer++ > lp->cbdelay)
+                       {
+                               printk(KERN_INFO "%s: hangup waiting for callback ...\n", p->dev->name);
+                               lp->dtimer = 0;
+                               lp->dialstate = 4;
+                               cmd.driver = lp->isdn_device;
+                               cmd.command = ISDN_CMD_HANGUP;
+                               cmd.arg = lp->isdn_channel;
+                               isdn_command(&cmd);
+                               isdn_all_eaz(lp->isdn_device, lp->isdn_channel);
+                       }
+                       anymore = 1;
+                       break;
+               default:
+                       printk(KERN_WARNING "isdn_net: Illegal dialstate %d for device %s\n",
+                              lp->dialstate, p->dev->name);
                }
                p = (isdn_net_dev *) p->next;
        }
@@ -839,8 +839,8 @@ isdn_net_hangup(struct net_device *d)
                        isdn_net_local *slp = ISDN_SLAVE_PRIV(lp);
                        if (slp->flags & ISDN_NET_CONNECTED) {
                                printk(KERN_INFO
-                                       "isdn_net: hang up slave %s before %s\n",
-                                       lp->slave->name, d->name);
+                                      "isdn_net: hang up slave %s before %s\n",
+                                      lp->slave->name, d->name);
                                isdn_net_hangup(lp->slave);
                        }
                }
@@ -854,8 +854,8 @@ isdn_net_hangup(struct net_device *d)
                /* try if there are generic encap protocol
                   receiver routines and signal the closure of
                   the link */
-               if( pops && pops -> disconn_ind )
-                 pops -> disconn_ind(cprot);
+               if (pops && pops->disconn_ind)
+                       pops->disconn_ind(cprot);
 #endif /* CONFIG_ISDN_X25 */
 
                cmd.driver = lp->isdn_device;
@@ -874,7 +874,7 @@ typedef struct {
 } ip_ports;
 
 static void
-isdn_net_log_skb(struct sk_buff * skb, isdn_net_local * lp)
+isdn_net_log_skb(struct sk_buff *skb, isdn_net_local *lp)
 {
        /* hopefully, this was set correctly */
        const u_char *p = skb_network_header(skb);
@@ -887,72 +887,72 @@ isdn_net_log_skb(struct sk_buff * skb, isdn_net_local * lp)
        /* This check stolen from 2.1.72 dev_queue_xmit_nit() */
        if (p < skb->data || skb->network_header >= skb->tail) {
                /* fall back to old isdn_net_log_packet method() */
-               char * buf = skb->data;
+               char *buf = skb->data;
 
                printk(KERN_DEBUG "isdn_net: protocol %04x is buggy, dev %s\n", skb->protocol, lp->netdev->dev->name);
                p = buf;
                proto = ETH_P_IP;
                switch (lp->p_encap) {
-                       case ISDN_NET_ENCAP_IPTYP:
-                               proto = ntohs(*(__be16 *)&buf[0]);
-                               p = &buf[2];
-                               break;
-                       case ISDN_NET_ENCAP_ETHER:
-                               proto = ntohs(*(__be16 *)&buf[12]);
-                               p = &buf[14];
-                               break;
-                       case ISDN_NET_ENCAP_CISCOHDLC:
-                               proto = ntohs(*(__be16 *)&buf[2]);
-                               p = &buf[4];
-                               break;
+               case ISDN_NET_ENCAP_IPTYP:
+                       proto = ntohs(*(__be16 *)&buf[0]);
+                       p = &buf[2];
+                       break;
+               case ISDN_NET_ENCAP_ETHER:
+                       proto = ntohs(*(__be16 *)&buf[12]);
+                       p = &buf[14];
+                       break;
+               case ISDN_NET_ENCAP_CISCOHDLC:
+                       proto = ntohs(*(__be16 *)&buf[2]);
+                       p = &buf[4];
+                       break;
 #ifdef CONFIG_ISDN_PPP
-                       case ISDN_NET_ENCAP_SYNCPPP:
-                               proto = ntohs(skb->protocol);
-                               p = &buf[IPPP_MAX_HEADER];
-                               break;
+               case ISDN_NET_ENCAP_SYNCPPP:
+                       proto = ntohs(skb->protocol);
+                       p = &buf[IPPP_MAX_HEADER];
+                       break;
 #endif
                }
        }
        data_ofs = ((p[0] & 15) * 4);
        switch (proto) {
-               case ETH_P_IP:
-                       switch (p[9]) {
-                               case 1:
-                                       strcpy(addinfo, " ICMP");
-                                       break;
-                               case 2:
-                                       strcpy(addinfo, " IGMP");
-                                       break;
-                               case 4:
-                                       strcpy(addinfo, " IPIP");
-                                       break;
-                               case 6:
-                                       ipp = (ip_ports *) (&p[data_ofs]);
-                                       sprintf(addinfo, " TCP, port: %d -> %d", ntohs(ipp->source),
-                                               ntohs(ipp->dest));
-                                       break;
-                               case 8:
-                                       strcpy(addinfo, " EGP");
-                                       break;
-                               case 12:
-                                       strcpy(addinfo, " PUP");
-                                       break;
-                               case 17:
-                                       ipp = (ip_ports *) (&p[data_ofs]);
-                                       sprintf(addinfo, " UDP, port: %d -> %d", ntohs(ipp->source),
-                                               ntohs(ipp->dest));
-                                       break;
-                               case 22:
-                                       strcpy(addinfo, " IDP");
-                                       break;
-                       }
-                       printk(KERN_INFO "OPEN: %pI4 -> %pI4%s\n",
-                              p + 12, p + 16, addinfo);
+       case ETH_P_IP:
+               switch (p[9]) {
+               case 1:
+                       strcpy(addinfo, " ICMP");
+                       break;
+               case 2:
+                       strcpy(addinfo, " IGMP");
+                       break;
+               case 4:
+                       strcpy(addinfo, " IPIP");
+                       break;
+               case 6:
+                       ipp = (ip_ports *) (&p[data_ofs]);
+                       sprintf(addinfo, " TCP, port: %d -> %d", ntohs(ipp->source),
+                               ntohs(ipp->dest));
+                       break;
+               case 8:
+                       strcpy(addinfo, " EGP");
+                       break;
+               case 12:
+                       strcpy(addinfo, " PUP");
+                       break;
+               case 17:
+                       ipp = (ip_ports *) (&p[data_ofs]);
+                       sprintf(addinfo, " UDP, port: %d -> %d", ntohs(ipp->source),
+                               ntohs(ipp->dest));
                        break;
-               case ETH_P_ARP:
-                       printk(KERN_INFO "OPEN: ARP %pI4 -> *.*.*.* ?%pI4\n",
-                              p + 14, p + 24);
+               case 22:
+                       strcpy(addinfo, " IDP");
                        break;
+               }
+               printk(KERN_INFO "OPEN: %pI4 -> %pI4%s\n",
+                      p + 12, p + 16, addinfo);
+               break;
+       case ETH_P_ARP:
+               printk(KERN_INFO "OPEN: ARP %pI4 -> *.*.*.* ?%pI4\n",
+                      p + 14, p + 24);
+               break;
        }
 }
 
@@ -964,7 +964,7 @@ isdn_net_log_skb(struct sk_buff * skb, isdn_net_local * lp)
 void isdn_net_write_super(isdn_net_local *lp, struct sk_buff *skb)
 {
        if (in_irq()) {
-               // we can't grab the lock from irq context, 
+               // we can't grab the lock from irq context,
                // so we just queue the packet
                skb_queue_tail(&lp->super_tx_queue, skb);
                schedule_work(&lp->tqueue);
@@ -993,12 +993,12 @@ static void isdn_net_softint(struct work_struct *work)
                skb = skb_dequeue(&lp->super_tx_queue);
                if (!skb)
                        break;
-               isdn_net_writebuf_skb(lp, skb);                                
+               isdn_net_writebuf_skb(lp, skb);
        }
        spin_unlock_bh(&lp->xmit_lock);
 }
 
-/* 
+/*
  * all frames sent from the (net) LL to a HL driver should go via this function
  * it's serialized by the caller holding the lp->xmit_lock spinlock
  */
@@ -1024,12 +1024,12 @@ void isdn_net_writebuf_skb(isdn_net_local *lp, struct sk_buff *skb)
                printk(KERN_WARNING "%s: HL driver queue full\n", lp->netdev->dev->name);
                goto error;
        }
-       
+
        lp->transcount += len;
        isdn_net_inc_frame_cnt(lp);
        return;
 
- error:
+error:
        dev_kfree_skb(skb);
        lp->stats.tx_errors++;
 
@@ -1129,14 +1129,14 @@ isdn_net_adjust_hdr(struct sk_buff *skb, struct net_device *dev)
 }
 
 
-static void isdn_net_tx_timeout(struct net_device * ndev)
+static void isdn_net_tx_timeout(struct net_device *ndev)
 {
        isdn_net_local *lp = netdev_priv(ndev);
 
        printk(KERN_WARNING "isdn_tx_timeout dev %s dialstate %d\n", ndev->name, lp->dialstate);
-       if (!lp->dialstate){
+       if (!lp->dialstate) {
                lp->stats.tx_errors++;
-                /*
+               /*
                 * There is a certain probability that this currently
                 * works at all because if we always wake up the interface,
                 * then upper layer will try to send the next packet
@@ -1149,7 +1149,7 @@ static void isdn_net_tx_timeout(struct net_device * ndev)
                 *
                 * actually, this may not matter at all, because ISDN hardware
                 * should not see transmitter hangs at all IMO
-                * changed KERN_DEBUG to KERN_WARNING to find out if this is 
+                * changed KERN_DEBUG to KERN_WARNING to find out if this is
                 * ever called   --KG
                 */
        }
@@ -1167,27 +1167,27 @@ isdn_net_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
        isdn_net_local *lp = netdev_priv(ndev);
 #ifdef CONFIG_ISDN_X25
-       struct concap_proto * cprot = lp -> netdev -> cprot;
+       struct concap_proto *cprot = lp->netdev->cprot;
 /* At this point hard_start_xmit() passes control to the encapsulation
    protocol (if present).
    For X.25 auto-dialing is completly bypassed because:
    - It does not conform with the semantics of a reliable datalink
-     service as needed by X.25 PLP.
+   service as needed by X.25 PLP.
    - I don't want that the interface starts dialing when the network layer
-     sends a message which requests to disconnect the lapb link (or if it
-     sends any other message not resulting in data transmission).
+   sends a message which requests to disconnect the lapb link (or if it
+   sends any other message not resulting in data transmission).
    Instead, dialing will be initiated by the encapsulation protocol entity
    when a dl_establish request is received from the upper layer.
 */
-       if (cprot && cprot -> pops) {
-               int ret = cprot -> pops -> encap_and_xmit ( cprot , skb);
+       if (cprot && cprot->pops) {
+               int ret = cprot->pops->encap_and_xmit(cprot, skb);
 
                if (ret)
                        netif_stop_queue(ndev);
                return ret;
        } else
 #endif
-       /* auto-dialing xmit function */
+               /* auto-dialing xmit function */
        {
 #ifdef ISDN_DEBUG_NET_DUMP
                u_char *buf;
@@ -1209,12 +1209,12 @@ isdn_net_start_xmit(struct sk_buff *skb, struct net_device *ndev)
                        if (lp->phone[1]) {
                                ulong flags;
 
-                               if(lp->dialwait_timer <= 0)
-                                       if(lp->dialstarted > 0 && lp->dialtimeout > 0 && time_before(jiffies, lp->dialstarted + lp->dialtimeout + lp->dialwait))
+                               if (lp->dialwait_timer <= 0)
+                                       if (lp->dialstarted > 0 && lp->dialtimeout > 0 && time_before(jiffies, lp->dialstarted + lp->dialtimeout + lp->dialwait))
                                                lp->dialwait_timer = lp->dialstarted + lp->dialtimeout + lp->dialwait;
 
-                               if(lp->dialwait_timer > 0) {
-                                       if(time_before(jiffies, lp->dialwait_timer)) {
+                               if (lp->dialwait_timer > 0) {
+                                       if (time_before(jiffies, lp->dialwait_timer)) {
                                                isdn_net_unreachable(ndev, skb, "dial rejected: retry-time not reached");
                                                dev_kfree_skb(skb);
                                                return NETDEV_TX_OK;
@@ -1224,26 +1224,26 @@ isdn_net_start_xmit(struct sk_buff *skb, struct net_device *ndev)
                                /* Grab a free ISDN-Channel */
                                spin_lock_irqsave(&dev->lock, flags);
                                if (((chi =
-                                    isdn_get_free_channel(
-                                                       ISDN_USAGE_NET,
-                                                       lp->l2_proto,
-                                                       lp->l3_proto,
-                                                       lp->pre_device,
-                                                       lp->pre_channel,
-                                                       lp->msn)
-                                                       ) < 0) &&
-                                       ((chi =
-                                    isdn_get_free_channel(
-                                                       ISDN_USAGE_NET,
-                                                       lp->l2_proto,
-                                                       lp->l3_proto,
-                                                       lp->pre_device,
-                                                       lp->pre_channel^1,
-                                                       lp->msn)
-                                                       ) < 0)) {
+                                     isdn_get_free_channel(
+                                             ISDN_USAGE_NET,
+                                             lp->l2_proto,
+                                             lp->l3_proto,
+                                             lp->pre_device,
+                                             lp->pre_channel,
+                                             lp->msn)
+                                            ) < 0) &&
+                                   ((chi =
+                                     isdn_get_free_channel(
+                                             ISDN_USAGE_NET,
+                                             lp->l2_proto,
+                                             lp->l3_proto,
+                                             lp->pre_device,
+                                             lp->pre_channel^1,
+                                             lp->msn)
+                                           ) < 0)) {
                                        spin_unlock_irqrestore(&dev->lock, flags);
                                        isdn_net_unreachable(ndev, skb,
-                                                          "No channel");
+                                                            "No channel");
                                        dev_kfree_skb(skb);
                                        return NETDEV_TX_OK;
                                }
@@ -1290,13 +1290,13 @@ isdn_net_start_xmit(struct sk_buff *skb, struct net_device *ndev)
                                return NETDEV_TX_OK;
                        }
                } else {
-                       /* Device is connected to an ISDN channel */ 
+                       /* Device is connected to an ISDN channel */
                        ndev->trans_start = jiffies;
                        if (!lp->dialstate) {
                                /* ISDN connection is established, try sending */
                                int ret;
                                ret = (isdn_net_xmit(ndev, skb));
-                               if(ret) netif_stop_queue(ndev);
+                               if (ret) netif_stop_queue(ndev);
                                return ret;
                        } else
                                netif_stop_queue(ndev);
@@ -1313,13 +1313,13 @@ isdn_net_close(struct net_device *dev)
 {
        struct net_device *p;
 #ifdef CONFIG_ISDN_X25
-       struct concap_proto * cprot =
-               ((isdn_net_local *) netdev_priv(dev))->netdev->cprot;
-       /* printk(KERN_DEBUG "isdn_net_close %s\n" , dev-> name ); */
+       struct concap_proto *cprot =
+               ((isdn_net_local *)netdev_priv(dev))->netdev->cprot;
+       /* printk(KERN_DEBUG "isdn_net_close %s\n" , dev-> name); */
 #endif
 
 #ifdef CONFIG_ISDN_X25
-       if( cprot && cprot -> pops ) cprot -> pops -> close( cprot );
+       if (cprot && cprot->pops) cprot->pops->close(cprot);
 #endif
        netif_stop_queue(dev);
        p = MASTER_TO_SLAVE(dev);
@@ -1327,10 +1327,10 @@ isdn_net_close(struct net_device *dev)
                /* If this interface has slaves, stop them also */
                while (p) {
 #ifdef CONFIG_ISDN_X25
-                       cprot = ((isdn_net_local *) netdev_priv(p))
-                               -> netdev -> cprot;
-                       if( cprot && cprot -> pops )
-                               cprot -> pops -> close( cprot );
+                       cprot = ((isdn_net_local *)netdev_priv(p))
+                               ->netdev->cprot;
+                       if (cprot && cprot->pops)
+                               cprot->pops->close(cprot);
 #endif
                        isdn_net_hangup(p);
                        p = MASTER_TO_SLAVE(p);
@@ -1405,7 +1405,7 @@ isdn_net_type_trans(struct sk_buff *skb, struct net_device *dev)
 }
 
 
-/* 
+/*
  * CISCO HDLC keepalive specific stuff
  */
 static struct sk_buff*
@@ -1417,7 +1417,7 @@ isdn_net_ciscohdlck_alloc_skb(isdn_net_local *lp, int len)
        skb = alloc_skb(hl + len, GFP_ATOMIC);
        if (skb)
                skb_reserve(skb, hl);
-       else 
+       else
                printk("isdn out of mem at %s:%d!\n", __FILE__, __LINE__);
        return skb;
 }
@@ -1439,52 +1439,52 @@ isdn_ciscohdlck_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
        switch (cmd) {
                /* get/set keepalive period */
-               case SIOCGKEEPPERIOD:
-                       len = (unsigned long)sizeof(lp->cisco_keepalive_period);
-                       if (copy_to_user(ifr->ifr_data,
-                               &lp->cisco_keepalive_period, len))
-                               rc = -EFAULT;
-                       break;
-               case SIOCSKEEPPERIOD:
-                       tmp = lp->cisco_keepalive_period;
-                       len = (unsigned long)sizeof(lp->cisco_keepalive_period);
-                       if (copy_from_user(&period, ifr->ifr_data, len))
-                               rc = -EFAULT;
-                       if ((period > 0) && (period <= 32767))
-                               lp->cisco_keepalive_period = period;
-                       else
-                               rc = -EINVAL;
-                       if (!rc && (tmp != lp->cisco_keepalive_period)) {
-                               expires = (unsigned long)(jiffies +
-                                       lp->cisco_keepalive_period * HZ);
-                               mod_timer(&lp->cisco_timer, expires);
-                               printk(KERN_INFO "%s: Keepalive period set "
-                                       "to %d seconds.\n",
-                                       dev->name, lp->cisco_keepalive_period);
-                       }
-                       break;
+       case SIOCGKEEPPERIOD:
+               len = (unsigned long)sizeof(lp->cisco_keepalive_period);
+               if (copy_to_user(ifr->ifr_data,
+                                &lp->cisco_keepalive_period, len))
+                       rc = -EFAULT;
+               break;
+       case SIOCSKEEPPERIOD:
+               tmp = lp->cisco_keepalive_period;
+               len = (unsigned long)sizeof(lp->cisco_keepalive_period);
+               if (copy_from_user(&period, ifr->ifr_data, len))
+                       rc = -EFAULT;
+               if ((period > 0) && (period <= 32767))
+                       lp->cisco_keepalive_period = period;
+               else
+                       rc = -EINVAL;
+               if (!rc && (tmp != lp->cisco_keepalive_period)) {
+                       expires = (unsigned long)(jiffies +
+                                                 lp->cisco_keepalive_period * HZ);
+                       mod_timer(&lp->cisco_timer, expires);
+                       printk(KERN_INFO "%s: Keepalive period set "
+                              "to %d seconds.\n",
+                              dev->name, lp->cisco_keepalive_period);
+               }
+               break;
 
                /* get/set debugging */
-               case SIOCGDEBSERINT:
-                       len = (unsigned long)sizeof(lp->cisco_debserint);
-                       if (copy_to_user(ifr->ifr_data,
-                               &lp->cisco_debserint, len))
-                               rc = -EFAULT;
-                       break;
-               case SIOCSDEBSERINT:
-                       len = (unsigned long)sizeof(lp->cisco_debserint);
-                       if (copy_from_user(&debserint,
-                               ifr->ifr_data, len))
-                               rc = -EFAULT;
-                       if ((debserint >= 0) && (debserint <= 64))
-                               lp->cisco_debserint = debserint;
-                       else
-                               rc = -EINVAL;
-                       break;
-
-               default:
+       case SIOCGDEBSERINT:
+               len = (unsigned long)sizeof(lp->cisco_debserint);
+               if (copy_to_user(ifr->ifr_data,
+                                &lp->cisco_debserint, len))
+                       rc = -EFAULT;
+               break;
+       case SIOCSDEBSERINT:
+               len = (unsigned long)sizeof(lp->cisco_debserint);
+               if (copy_from_user(&debserint,
+                                  ifr->ifr_data, len))
+                       rc = -EFAULT;
+               if ((debserint >= 0) && (debserint <= 64))
+                       lp->cisco_debserint = debserint;
+               else
                        rc = -EINVAL;
-                       break;
+               break;
+
+       default:
+               rc = -EINVAL;
+               break;
        }
        return (rc);
 }
@@ -1524,30 +1524,30 @@ isdn_net_ciscohdlck_slarp_send_keepalive(unsigned long data)
        lp->cisco_myseq++;
 
        myseq_diff = (lp->cisco_myseq - lp->cisco_mineseen);
-       if ((lp->cisco_line_state) && ((myseq_diff >= 3)||(myseq_diff <= -3))) {
+       if ((lp->cisco_line_state) && ((myseq_diff >= 3) || (myseq_diff <= -3))) {
                /* line up -> down */
                lp->cisco_line_state = 0;
-               printk (KERN_WARNING
-                               "UPDOWN: Line protocol on Interface %s,"
-                               " changed state to down\n", lp->netdev->dev->name);
+               printk(KERN_WARNING
+                      "UPDOWN: Line protocol on Interface %s,"
+                      " changed state to down\n", lp->netdev->dev->name);
                /* should stop routing higher-level data across */
        } else if ((!lp->cisco_line_state) &&
-               (myseq_diff >= 0) && (myseq_diff <= 2)) {
+                  (myseq_diff >= 0) && (myseq_diff <= 2)) {
                /* line down -> up */
                lp->cisco_line_state = 1;
-               printk (KERN_WARNING
-                               "UPDOWN: Line protocol on Interface %s,"
-                               " changed state to up\n", lp->netdev->dev->name);
+               printk(KERN_WARNING
+                      "UPDOWN: Line protocol on Interface %s,"
+                      " changed state to up\n", lp->netdev->dev->name);
                /* restart routing higher-level data across */
        }
 
        if (lp->cisco_debserint)
-               printk (KERN_DEBUG "%s: HDLC "
-                       "myseq %lu, mineseen %lu%c, yourseen %lu, %s\n",
-                       lp->netdev->dev->name, last_cisco_myseq, lp->cisco_mineseen,
-                       ((last_cisco_myseq == lp->cisco_mineseen) ? '*' : 040),
-                       lp->cisco_yourseq,
-                       ((lp->cisco_line_state) ? "line up" : "line down"));
+               printk(KERN_DEBUG "%s: HDLC "
+                      "myseq %lu, mineseen %lu%c, yourseen %lu, %s\n",
+                      lp->netdev->dev->name, last_cisco_myseq, lp->cisco_mineseen,
+                      ((last_cisco_myseq == lp->cisco_mineseen) ? '*' : 040),
+                      lp->cisco_yourseq,
+                      ((lp->cisco_line_state) ? "line up" : "line down"));
 
        skb = isdn_net_ciscohdlck_alloc_skb(lp, 4 + 14);
        if (!skb)
@@ -1570,7 +1570,7 @@ isdn_net_ciscohdlck_slarp_send_keepalive(unsigned long data)
        isdn_net_write_super(lp, skb);
 
        lp->cisco_timer.expires = jiffies + lp->cisco_keepalive_period * HZ;
-       
+
        add_timer(&lp->cisco_timer);
 }
 
@@ -1601,7 +1601,7 @@ isdn_net_ciscohdlck_slarp_send_request(isdn_net_local *lp)
        isdn_net_write_super(lp, skb);
 }
 
-static void 
+static void
 isdn_net_ciscohdlck_connected(isdn_net_local *lp)
 {
        lp->cisco_myseq = 0;
@@ -1622,7 +1622,7 @@ isdn_net_ciscohdlck_connected(isdn_net_local *lp)
        add_timer(&lp->cisco_timer);
 }
 
-static void 
+static void
 isdn_net_ciscohdlck_disconnected(isdn_net_local *lp)
 {
        del_timer(&lp->cisco_timer);
@@ -1703,20 +1703,20 @@ isdn_net_ciscohdlck_slarp_in(isdn_net_local *lp, struct sk_buff *skb)
                printk(KERN_INFO "%s: got slarp reply: remote ip: %pI4, local ip: %pI4 mask: %pI4\n",
                       lp->netdev->dev->name, addr, &local, mask);
                break;
-  slarp_reply_out:
+       slarp_reply_out:
                printk(KERN_INFO "%s: got invalid slarp reply (%pI4/%pI4) - ignored\n",
                       lp->netdev->dev->name, addr, mask);
                break;
        case CISCO_SLARP_KEEPALIVE:
                period = (int)((jiffies - lp->cisco_last_slarp_in
-                               + HZ/2 - 1) / HZ);
+                               + HZ / 2 - 1) / HZ);
                if (lp->cisco_debserint &&
-                               (period != lp->cisco_keepalive_period) &&
-                               lp->cisco_last_slarp_in) {
+                   (period != lp->cisco_keepalive_period) &&
+                   lp->cisco_last_slarp_in) {
                        printk(KERN_DEBUG "%s: Keepalive period mismatch - "
-                               "is %d but should be %d.\n",
-                               lp->netdev->dev->name, period,
-                               lp->cisco_keepalive_period);
+                              "is %d but should be %d.\n",
+                              lp->netdev->dev->name, period,
+                              lp->cisco_keepalive_period);
                }
                lp->cisco_last_slarp_in = jiffies;
                my_seq = be32_to_cpup((__be32 *)(p + 0));
@@ -1732,10 +1732,10 @@ static void
 isdn_net_ciscohdlck_receive(isdn_net_local *lp, struct sk_buff *skb)
 {
        unsigned char *p;
-       u8 addr;
-       u8 ctrl;
-       u16 type;
-       
+       u8 addr;
+       u8 ctrl;
+       u16 type;
+
        if (skb->len < 4)
                goto out_free;
 
@@ -1745,7 +1745,7 @@ isdn_net_ciscohdlck_receive(isdn_net_local *lp, struct sk_buff *skb)
        type = be16_to_cpup((__be16 *)(p + 2));
        p += 4;
        skb_pull(skb, 4);
-       
+
        if (addr != CISCO_ADDR_UNICAST && addr != CISCO_ADDR_BROADCAST) {
                printk(KERN_WARNING "%s: Unknown Cisco addr 0x%02x\n",
                       lp->netdev->dev->name, addr);
@@ -1764,8 +1764,8 @@ isdn_net_ciscohdlck_receive(isdn_net_local *lp, struct sk_buff *skb)
        case CISCO_TYPE_CDP:
                if (lp->cisco_debserint)
                        printk(KERN_DEBUG "%s: Received CDP packet. use "
-                               "\"no cdp enable\" on cisco.\n",
-                               lp->netdev->dev->name);
+                              "\"no cdp enable\" on cisco.\n",
+                              lp->netdev->dev->name);
                goto out_free;
        default:
                /* no special cisco protocol */
@@ -1774,7 +1774,7 @@ isdn_net_ciscohdlck_receive(isdn_net_local *lp, struct sk_buff *skb)
                return;
        }
 
- out_free:
+out_free:
        kfree_skb(skb);
 }
 
@@ -1787,7 +1787,7 @@ isdn_net_receive(struct net_device *ndev, struct sk_buff *skb)
        isdn_net_local *lp = netdev_priv(ndev);
        isdn_net_local *olp = lp;       /* original 'lp' */
 #ifdef CONFIG_ISDN_X25
-       struct concap_proto *cprot = lp -> netdev -> cprot;
+       struct concap_proto *cprot = lp->netdev->cprot;
 #endif
        lp->transcount += skb->len;
 
@@ -1809,60 +1809,60 @@ isdn_net_receive(struct net_device *ndev, struct sk_buff *skb)
        isdn_dumppkt("R:", skb->data, skb->len, 40);
 #endif
        switch (lp->p_encap) {
-               case ISDN_NET_ENCAP_ETHER:
-                       /* Ethernet over ISDN */
-                       olp->huptimer = 0;
-                       lp->huptimer = 0;
-                       skb->protocol = isdn_net_type_trans(skb, ndev);
-                       break;
-               case ISDN_NET_ENCAP_UIHDLC:
-                       /* HDLC with UI-frame (for ispa with -h1 option) */
-                       olp->huptimer = 0;
-                       lp->huptimer = 0;
-                       skb_pull(skb, 2);
-                       /* Fall through */
-               case ISDN_NET_ENCAP_RAWIP:
-                       /* RAW-IP without MAC-Header */
-                       olp->huptimer = 0;
-                       lp->huptimer = 0;
-                       skb->protocol = htons(ETH_P_IP);
-                       break;
-               case ISDN_NET_ENCAP_CISCOHDLCK:
-                       isdn_net_ciscohdlck_receive(lp, skb);
-                       return;
-               case ISDN_NET_ENCAP_CISCOHDLC:
-                       /* CISCO-HDLC IP with type field and  fake I-frame-header */
-                       skb_pull(skb, 2);
-                       /* Fall through */
-               case ISDN_NET_ENCAP_IPTYP:
-                       /* IP with type field */
-                       olp->huptimer = 0;
-                       lp->huptimer = 0;
-                       skb->protocol = *(__be16 *)&(skb->data[0]);
-                       skb_pull(skb, 2);
-                       if (*(unsigned short *) skb->data == 0xFFFF)
-                               skb->protocol = htons(ETH_P_802_3);
-                       break;
+       case ISDN_NET_ENCAP_ETHER:
+               /* Ethernet over ISDN */
+               olp->huptimer = 0;
+               lp->huptimer = 0;
+               skb->protocol = isdn_net_type_trans(skb, ndev);
+               break;
+       case ISDN_NET_ENCAP_UIHDLC:
+               /* HDLC with UI-frame (for ispa with -h1 option) */
+               olp->huptimer = 0;
+               lp->huptimer = 0;
+               skb_pull(skb, 2);
+               /* Fall through */
+       case ISDN_NET_ENCAP_RAWIP:
+               /* RAW-IP without MAC-Header */
+               olp->huptimer = 0;
+               lp->huptimer = 0;
+               skb->protocol = htons(ETH_P_IP);
+               break;
+       case ISDN_NET_ENCAP_CISCOHDLCK:
+               isdn_net_ciscohdlck_receive(lp, skb);
+               return;
+       case ISDN_NET_ENCAP_CISCOHDLC:
+               /* CISCO-HDLC IP with type field and  fake I-frame-header */
+               skb_pull(skb, 2);
+               /* Fall through */
+       case ISDN_NET_ENCAP_IPTYP:
+               /* IP with type field */
+               olp->huptimer = 0;
+               lp->huptimer = 0;
+               skb->protocol = *(__be16 *)&(skb->data[0]);
+               skb_pull(skb, 2);
+               if (*(unsigned short *) skb->data == 0xFFFF)
+                       skb->protocol = htons(ETH_P_802_3);
+               break;
 #ifdef CONFIG_ISDN_PPP
-               case ISDN_NET_ENCAP_SYNCPPP:
-                       /* huptimer is done in isdn_ppp_push_higher */
-                       isdn_ppp_receive(lp->netdev, olp, skb);
-                       return;
+       case ISDN_NET_ENCAP_SYNCPPP:
+               /* huptimer is done in isdn_ppp_push_higher */
+               isdn_ppp_receive(lp->netdev, olp, skb);
+               return;
 #endif
 
-               default:
+       default:
 #ifdef CONFIG_ISDN_X25
-                 /* try if there are generic sync_device receiver routines */
-                       if(cprot) if(cprot -> pops)
-                               if( cprot -> pops -> data_ind){
-                                       cprot -> pops -> data_ind(cprot,skb);
-                                       return;
-                               };
+               /* try if there are generic sync_device receiver routines */
+               if (cprot) if (cprot->pops)
+                                  if (cprot->pops->data_ind) {
+                                          cprot->pops->data_ind(cprot, skb);
+                                          return;
+                                  };
 #endif /* CONFIG_ISDN_X25 */
-                       printk(KERN_WARNING "%s: unknown encapsulation, dropping\n",
-                              lp->netdev->dev->name);
-                       kfree_skb(skb);
-                       return;
+               printk(KERN_WARNING "%s: unknown encapsulation, dropping\n",
+                      lp->netdev->dev->name);
+               kfree_skb(skb);
+               return;
        }
 
        netif_rx(skb);
@@ -1904,48 +1904,48 @@ static int isdn_net_header(struct sk_buff *skb, struct net_device *dev,
        int len = 0;
 
        switch (lp->p_encap) {
-               case ISDN_NET_ENCAP_ETHER:
-                       len = eth_header(skb, dev, type, daddr, saddr, plen);
-                       break;
+       case ISDN_NET_ENCAP_ETHER:
+               len = eth_header(skb, dev, type, daddr, saddr, plen);
+               break;
 #ifdef CONFIG_ISDN_PPP
-               case ISDN_NET_ENCAP_SYNCPPP:
-                       /* stick on a fake header to keep fragmentation code happy. */
-                       len = IPPP_MAX_HEADER;
-                       skb_push(skb,len);
-                       break;
+       case ISDN_NET_ENCAP_SYNCPPP:
+               /* stick on a fake header to keep fragmentation code happy. */
+               len = IPPP_MAX_HEADER;
+               skb_push(skb, len);
+               break;
 #endif
-               case ISDN_NET_ENCAP_RAWIP:
-                       printk(KERN_WARNING "isdn_net_header called with RAW_IP!\n");
-                       len = 0;
-                       break;
-               case ISDN_NET_ENCAP_IPTYP:
-                       /* ethernet type field */
-                       *((__be16 *)skb_push(skb, 2)) = htons(type);
-                       len = 2;
-                       break;
-               case ISDN_NET_ENCAP_UIHDLC:
-                       /* HDLC with UI-Frames (for ispa with -h1 option) */
-                       *((__be16 *)skb_push(skb, 2)) = htons(0x0103);
-                       len = 2;
-                       break;
-               case ISDN_NET_ENCAP_CISCOHDLC:
-               case ISDN_NET_ENCAP_CISCOHDLCK:
-                       p = skb_push(skb, 4);
-                       *(u8 *)(p + 0) = CISCO_ADDR_UNICAST;
-                       *(u8 *)(p + 1) = CISCO_CTRL;
-                       *(__be16 *)(p + 2) = cpu_to_be16(type);
-                       p += 4;
-                       len = 4;
-                       break;
+       case ISDN_NET_ENCAP_RAWIP:
+               printk(KERN_WARNING "isdn_net_header called with RAW_IP!\n");
+               len = 0;
+               break;
+       case ISDN_NET_ENCAP_IPTYP:
+               /* ethernet type field */
+               *((__be16 *)skb_push(skb, 2)) = htons(type);
+               len = 2;
+               break;
+       case ISDN_NET_ENCAP_UIHDLC:
+               /* HDLC with UI-Frames (for ispa with -h1 option) */
+               *((__be16 *)skb_push(skb, 2)) = htons(0x0103);
+               len = 2;
+               break;
+       case ISDN_NET_ENCAP_CISCOHDLC:
+       case ISDN_NET_ENCAP_CISCOHDLCK:
+               p = skb_push(skb, 4);
+               *(u8 *)(p + 0) = CISCO_ADDR_UNICAST;
+               *(u8 *)(p + 1) = CISCO_CTRL;
+               *(__be16 *)(p + 2) = cpu_to_be16(type);
+               p += 4;
+               len = 4;
+               break;
 #ifdef CONFIG_ISDN_X25
-               default:
-                 /* try if there are generic concap protocol routines */
-                       if( lp-> netdev -> cprot ){
-                               printk(KERN_WARNING "isdn_net_header called with concap_proto!\n");
-                               len = 0;
-                               break;
-                       }
+       default:
+               /* try if there are generic concap protocol routines */
+               if (lp->netdev->cprot) {
+                       printk(KERN_WARNING "isdn_net_header called with concap_proto!\n");
+                       len = 0;
                        break;
+               }
+               break;
 #endif /* CONFIG_ISDN_X25 */
        }
        return len;
@@ -2045,12 +2045,12 @@ isdn_net_swapbind(int drvidx)
        while (p) {
                if (p->local->pre_device == drvidx)
                        switch (p->local->pre_channel) {
-                               case 0:
-                                       p->local->pre_channel = 1;
-                                       break;
-                               case 1:
-                                       p->local->pre_channel = 0;
-                                       break;
+                       case 0:
+                               p->local->pre_channel = 1;
+                               break;
+                       case 1:
+                               p->local->pre_channel = 0;
+                               break;
                        }
                p = (isdn_net_dev *) p->next;
        }
@@ -2134,7 +2134,7 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
        ematch = wret = swapped = 0;
 #ifdef ISDN_DEBUG_NET_ICALL
        printk(KERN_DEBUG "n_fi: di=%d ch=%d idx=%d usg=%d\n", di, ch, idx,
-               dev->usage[idx]);
+              dev->usage[idx]);
 #endif
        while (p) {
                int matchret;
@@ -2142,32 +2142,32 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
 
                /* If last check has triggered as binding-swap, revert it */
                switch (swapped) {
-                       case 2:
-                               isdn_net_swap_usage(idx, sidx);
-                               /* fall through */
-                       case 1:
-                               isdn_net_swapbind(di);
-                               break;
+               case 2:
+                       isdn_net_swap_usage(idx, sidx);
+                       /* fall through */
+               case 1:
+                       isdn_net_swapbind(di);
+                       break;
                }
                swapped = 0;
-                /* check acceptable call types for DOV */
-                my_eaz = isdn_map_eaz2msn(lp->msn, di);
-                if (si1 == 1) { /* it's a DOV call, check if we allow it */
-                        if (*my_eaz == 'v' || *my_eaz == 'V' ||
+               /* check acceptable call types for DOV */
+               my_eaz = isdn_map_eaz2msn(lp->msn, di);
+               if (si1 == 1) { /* it's a DOV call, check if we allow it */
+                       if (*my_eaz == 'v' || *my_eaz == 'V' ||
                            *my_eaz == 'b' || *my_eaz == 'B')
-                                my_eaz++; /* skip to allow a match */
-                        else
-                                my_eaz = NULL; /* force non match */
-                } else { /* it's a DATA call, check if we allow it */
-                        if (*my_eaz == 'b' || *my_eaz == 'B')
-                                my_eaz++; /* skip to allow a match */
-                }
-                if (my_eaz)
-                        matchret = isdn_msncmp(eaz, my_eaz);
-                else
-                        matchret = 1;
-                if (!matchret)
-                        ematch = 1;
+                               my_eaz++; /* skip to allow a match */
+                       else
+                               my_eaz = NULL; /* force non match */
+               } else { /* it's a DATA call, check if we allow it */
+                       if (*my_eaz == 'b' || *my_eaz == 'B')
+                               my_eaz++; /* skip to allow a match */
+               }
+               if (my_eaz)
+                       matchret = isdn_msncmp(eaz, my_eaz);
+               else
+                       matchret = 1;
+               if (!matchret)
+                       ematch = 1;
 
                /* Remember if more numbers eventually can match */
                if (matchret > wret)
@@ -2181,8 +2181,8 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
                      (USG_NONE(dev->usage[idx]))) ||                     /* and ch. unused or */
                     ((((lp->dialstate == 4) || (lp->dialstate == 12)) && /* if dialing        */
                       (!(lp->flags & ISDN_NET_CALLBACK)))                /* but no callback   */
-                    )))
-                        {
+                            )))
+               {
 #ifdef ISDN_DEBUG_NET_ICALL
                        printk(KERN_DEBUG "n_fi: match1, pdev=%d pch=%d\n",
                               lp->pre_device, lp->pre_channel);
@@ -2312,7 +2312,7 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
                                                p = (isdn_net_dev *) p->next;
                                                continue;
                                        }
-                               } 
+                               }
                                if (lp->flags & ISDN_NET_CALLBACK) {
                                        int chi;
                                        /*
@@ -2330,18 +2330,18 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
                                        if (lp->phone[1]) {
                                                /* Grab a free ISDN-Channel */
                                                spin_lock_irqsave(&dev->lock, flags);
-                                               if ((chi = 
-                                                       isdn_get_free_channel(
-                                                               ISDN_USAGE_NET,
-                                                               lp->l2_proto,
-                                                               lp->l3_proto,
-                                                               lp->pre_device,
-                                                               lp->pre_channel,
-                                                               lp->msn)
-                                                               ) < 0) {
+                                               if ((chi =
+                                                    isdn_get_free_channel(
+                                                            ISDN_USAGE_NET,
+                                                            lp->l2_proto,
+                                                            lp->l3_proto,
+                                                            lp->pre_device,
+                                                            lp->pre_channel,
+                                                            lp->msn)
+                                                           ) < 0) {
 
                                                        printk(KERN_WARNING "isdn_net_find_icall: No channel for %s\n",
-                                                               p->dev->name);
+                                                              p->dev->name);
                                                        spin_unlock_irqrestore(&dev->lock, flags);
                                                        return 0;
                                                }
@@ -2363,11 +2363,11 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
                                                return (lp->flags & ISDN_NET_CBHUP) ? 2 : 4;
                                        } else
                                                printk(KERN_WARNING "isdn_net: %s: No phone number\n",
-                                                       p->dev->name);
+                                                      p->dev->name);
                                        return 0;
                                } else {
                                        printk(KERN_DEBUG "%s: call from %s -> %s accepted\n",
-                                               p->dev->name, nr, eaz);
+                                              p->dev->name, nr, eaz);
                                        /* if this interface is dialing, it does it probably on a different
                                           device, so free this device */
                                        if ((lp->dialstate == 4) || (lp->dialstate == 12)) {
@@ -2377,7 +2377,7 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
 #endif
                                                isdn_net_lp_disconnected(lp);
                                                isdn_free_channel(lp->isdn_device, lp->isdn_channel,
-                                                        ISDN_USAGE_NET);
+                                                                 ISDN_USAGE_NET);
                                        }
                                        spin_lock_irqsave(&dev->lock, flags);
                                        dev->usage[idx] &= ISDN_USAGE_EXCLUSIVE;
@@ -2414,7 +2414,7 @@ isdn_net_find_icall(int di, int ch, int idx, setup_parm *setup)
        /* If none of configured EAZ/MSN matched and not verbose, be silent */
        if (!ematch || dev->net_verbose)
                printk(KERN_INFO "isdn_net: call from %s -> %d %s ignored\n", nr, di, eaz);
-       return (wret == 2)?5:0;
+       return (wret == 2) ? 5 : 0;
 }
 
 /*
@@ -2439,7 +2439,7 @@ isdn_net_findif(char *name)
  * from isdn_net_start_xmit().
  */
 static int
-isdn_net_force_dial_lp(isdn_net_local * lp)
+isdn_net_force_dial_lp(isdn_net_local *lp)
 {
        if ((!(lp->flags & ISDN_NET_CONNECTED)) && !lp->dialstate) {
                int chi;
@@ -2449,14 +2449,14 @@ isdn_net_force_dial_lp(isdn_net_local * lp)
                        /* Grab a free ISDN-Channel */
                        spin_lock_irqsave(&dev->lock, flags);
                        if ((chi = isdn_get_free_channel(
-                                       ISDN_USAGE_NET,
-                                       lp->l2_proto,
-                                       lp->l3_proto,
-                                       lp->pre_device,
-                                       lp->pre_channel,
-                                       lp->msn)) < 0) {
+                                    ISDN_USAGE_NET,
+                                    lp->l2_proto,
+                                    lp->l3_proto,
+                                    lp->pre_device,
+                                    lp->pre_channel,
+                                    lp->msn)) < 0) {
                                printk(KERN_WARNING "isdn_net_force_dial: No channel for %s\n",
-                                       lp->netdev->dev->name);
+                                      lp->netdev->dev->name);
                                spin_unlock_irqrestore(&dev->lock, flags);
                                return -EAGAIN;
                        }
@@ -2487,7 +2487,7 @@ isdn_net_force_dial_lp(isdn_net_local * lp)
  * themselves.
  */
 int
-isdn_net_dial_req(isdn_net_local * lp)
+isdn_net_dial_req(isdn_net_local *lp)
 {
        /* is there a better error code? */
        if (!(ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_AUTO)) return -EBUSY;
@@ -2531,7 +2531,7 @@ static void _isdn_setup(struct net_device *dev)
        ether_setup(dev);
 
        /* Setup the generic properties */
-       dev->flags = IFF_NOARP|IFF_POINTOPOINT;
+       dev->flags = IFF_NOARP | IFF_POINTOPOINT;
 
        /* isdn prepends a header in the tx path, can't share skbs */
        dev->priv_flags &= ~IFF_TX_SKB_SHARING;
@@ -2655,7 +2655,7 @@ isdn_net_newslave(char *parm)
                if (n->local->master)
                        return NULL;
                /* Master must not be started yet */
-               if (isdn_net_device_started(n)) 
+               if (isdn_net_device_started(n))
                        return NULL;
                return (isdn_net_new(newname, n->dev));
        }
@@ -2669,7 +2669,7 @@ isdn_net_newslave(char *parm)
  * setup first, if only selected parameters are to be changed.
  */
 int
-isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
+isdn_net_setcfg(isdn_net_ioctl_cfg *cfg)
 {
        isdn_net_dev *p = isdn_net_findif(cfg->name);
        ulong features;
@@ -2692,9 +2692,9 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                        printk(KERN_WARNING "isdn_net: No driver with selected features\n");
                        return -ENODEV;
                }
-               if (lp->p_encap != cfg->p_encap){
+               if (lp->p_encap != cfg->p_encap) {
 #ifdef CONFIG_ISDN_X25
-                       struct concap_proto * cprot = p -> cprot;
+                       struct concap_proto *cprot = p->cprot;
 #endif
                        if (isdn_net_device_started(p)) {
                                printk(KERN_WARNING "%s: cannot change encap when if is up\n",
@@ -2702,24 +2702,24 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                                return -EBUSY;
                        }
 #ifdef CONFIG_ISDN_X25
-                       if( cprot && cprot -> pops )
-                               cprot -> pops -> proto_del ( cprot );
-                       p -> cprot = NULL;
-                       lp -> dops = NULL;
+                       if (cprot && cprot->pops)
+                               cprot->pops->proto_del(cprot);
+                       p->cprot = NULL;
+                       lp->dops = NULL;
                        /* ... ,  prepare for configuration of new one ... */
-                       switch ( cfg -> p_encap ){
+                       switch (cfg->p_encap) {
                        case ISDN_NET_ENCAP_X25IFACE:
-                               lp -> dops = &isdn_concap_reliable_dl_dops;
+                               lp->dops = &isdn_concap_reliable_dl_dops;
                        }
                        /* ... and allocate new one ... */
-                       p -> cprot = isdn_concap_new( cfg -> p_encap );
+                       p->cprot = isdn_concap_new(cfg->p_encap);
                        /* p -> cprot == NULL now if p_encap is not supported
                           by means of the concap_proto mechanism */
                        /* the protocol is not configured yet; this will
                           happen later when isdn_net_reset() is called */
 #endif
                }
-               switch ( cfg->p_encap ) {
+               switch (cfg->p_encap) {
                case ISDN_NET_ENCAP_SYNCPPP:
 #ifndef CONFIG_ISDN_PPP
                        printk(KERN_WARNING "%s: SyncPPP support not configured\n",
@@ -2743,8 +2743,8 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                case ISDN_NET_ENCAP_CISCOHDLCK:
                        break;
                default:
-                       ifcfg->p_encap >= 0 &&
-                           cfg->p_encap <= ISDN_NET_ENCAP_MAX_ENCAP )
+                       if (cfg->p_encap >= 0 &&
+                           cfg->p_encap <= ISDN_NET_ENCAP_MAX_ENCAP)
                                break;
                        printk(KERN_WARNING
                               "%s: encapsulation protocol %d not supported\n",
@@ -2754,10 +2754,10 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                if (strlen(cfg->drvid)) {
                        /* A bind has been requested ... */
                        char *c,
-                       *e;
+                               *e;
 
                        if (strnlen(cfg->drvid, sizeof(cfg->drvid)) ==
-                                       sizeof(cfg->drvid))
+                           sizeof(cfg->drvid))
                                return -EINVAL;
                        drvidx = -1;
                        chidx = -1;
@@ -2789,8 +2789,8 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                        /* If binding is exclusive, try to grab the channel */
                        spin_lock_irqsave(&dev->lock, flags);
                        if ((i = isdn_get_free_channel(ISDN_USAGE_NET,
-                               lp->l2_proto, lp->l3_proto, drvidx,
-                               chidx, lp->msn)) < 0) {
+                                                      lp->l2_proto, lp->l3_proto, drvidx,
+                                                      chidx, lp->msn)) < 0) {
                                /* Grab failed, because desired channel is in use */
                                lp->exclusive = -1;
                                spin_unlock_irqrestore(&dev->lock, flags);
@@ -2834,23 +2834,23 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                else
                        lp->flags &= ~ISDN_NET_CBHUP;
                switch (cfg->callback) {
-                       case 0:
-                               lp->flags &= ~(ISDN_NET_CALLBACK | ISDN_NET_CBOUT);
-                               break;
-                       case 1:
-                               lp->flags |= ISDN_NET_CALLBACK;
-                               lp->flags &= ~ISDN_NET_CBOUT;
-                               break;
-                       case 2:
-                               lp->flags |= ISDN_NET_CBOUT;
-                               lp->flags &= ~ISDN_NET_CALLBACK;
-                               break;
+               case 0:
+                       lp->flags &= ~(ISDN_NET_CALLBACK | ISDN_NET_CBOUT);
+                       break;
+               case 1:
+                       lp->flags |= ISDN_NET_CALLBACK;
+                       lp->flags &= ~ISDN_NET_CBOUT;
+                       break;
+               case 2:
+                       lp->flags |= ISDN_NET_CBOUT;
+                       lp->flags &= ~ISDN_NET_CALLBACK;
+                       break;
                }
                lp->flags &= ~ISDN_NET_DIALMODE_MASK;   /* first all bits off */
                if (cfg->dialmode && !(cfg->dialmode & ISDN_NET_DIALMODE_MASK)) {
                        /* old isdnctrl version, where only 0 or 1 is given */
                        printk(KERN_WARNING
-                            "Old isdnctrl version detected! Please update.\n");
+                              "Old isdnctrl version detected! Please update.\n");
                        lp->flags |= ISDN_NET_DM_OFF; /* turn on `off' bit */
                }
                else {
@@ -2871,13 +2871,13 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
                if (cfg->p_encap != lp->p_encap) {
                        if (cfg->p_encap == ISDN_NET_ENCAP_RAWIP) {
                                p->dev->header_ops = NULL;
-                               p->dev->flags = IFF_NOARP|IFF_POINTOPOINT;
+                               p->dev->flags = IFF_NOARP | IFF_POINTOPOINT;
                        } else {
                                p->dev->header_ops = &isdn_header_ops;
                                if (cfg->p_encap == ISDN_NET_ENCAP_ETHER)
                                        p->dev->flags = IFF_BROADCAST | IFF_MULTICAST;
                                else
-                                       p->dev->flags = IFF_NOARP|IFF_POINTOPOINT;
+                                       p->dev->flags = IFF_NOARP | IFF_POINTOPOINT;
                        }
                }
                lp->p_encap = cfg->p_encap;
@@ -2890,7 +2890,7 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
  * Perform get-interface-parameters.ioctl
  */
 int
-isdn_net_getcfg(isdn_net_ioctl_cfg * cfg)
+isdn_net_getcfg(isdn_net_ioctl_cfg *cfg)
 {
        isdn_net_dev *p = isdn_net_findif(cfg->name);
 
@@ -2924,7 +2924,7 @@ isdn_net_getcfg(isdn_net_ioctl_cfg * cfg)
                cfg->triggercps = lp->triggercps;
                cfg->slavedelay = lp->slavedelay / HZ;
                cfg->chargeint = (lp->hupflags & ISDN_CHARGEHUP) ?
-                   (lp->chargeint / HZ) : 0;
+                       (lp->chargeint / HZ) : 0;
                cfg->pppbind = lp->pppbind;
                cfg->dialtimeout = lp->dialtimeout >= 0 ? lp->dialtimeout / HZ : -1;
                cfg->dialwait = lp->dialwait / HZ;
@@ -2951,7 +2951,7 @@ isdn_net_getcfg(isdn_net_ioctl_cfg * cfg)
  * Add a phone-number to an interface.
  */
 int
-isdn_net_addphone(isdn_net_ioctl_phone * phone)
+isdn_net_addphone(isdn_net_ioctl_phone *phone)
 {
        isdn_net_dev *p = isdn_net_findif(phone->name);
        isdn_net_phone *n;
@@ -2972,7 +2972,7 @@ isdn_net_addphone(isdn_net_ioctl_phone * phone)
  * This might sleep and must be called with the isdn semaphore down.
  */
 int
-isdn_net_getphones(isdn_net_ioctl_phone * phone, char __user *phones)
+isdn_net_getphones(isdn_net_ioctl_phone *phone, char __user *phones)
 {
        isdn_net_dev *p = isdn_net_findif(phone->name);
        int inout = phone->outgoing & 1;
@@ -3015,15 +3015,15 @@ isdn_net_getpeer(isdn_net_ioctl_phone *phone, isdn_net_ioctl_phone __user *peer)
        /*
         * Theoretical race: while this executes, the remote number might
         * become invalid (hang up) or change (new connection), resulting
-         * in (partially) wrong number copied to user. This race
+        * in (partially) wrong number copied to user. This race
         * currently ignored.
         */
        ch = p->local->isdn_channel;
        dv = p->local->isdn_device;
-       if(ch < 0 && dv < 0)
+       if (ch < 0 && dv < 0)
                return -ENOTCONN;
        idx = isdn_dc2minor(dv, ch);
-       if (idx <)
+       if (idx < 0)
                return -ENODEV;
        /* for pre-bound channels, we need this extra check */
        if (strncmp(dev->num[idx], "???", 3) == 0)
@@ -3038,7 +3038,7 @@ isdn_net_getpeer(isdn_net_ioctl_phone *phone, isdn_net_ioctl_phone __user *peer)
  * Delete a phone-number from an interface.
  */
 int
-isdn_net_delphone(isdn_net_ioctl_phone * phone)
+isdn_net_delphone(isdn_net_ioctl_phone *phone)
 {
        isdn_net_dev *p = isdn_net_findif(phone->name);
        int inout = phone->outgoing & 1;
@@ -3071,7 +3071,7 @@ isdn_net_delphone(isdn_net_ioctl_phone * phone)
  * Delete all phone-numbers of an interface.
  */
 static int
-isdn_net_rmallphone(isdn_net_dev * p)
+isdn_net_rmallphone(isdn_net_dev *p)
 {
        isdn_net_phone *n;
        isdn_net_phone *m;
@@ -3118,7 +3118,7 @@ isdn_net_force_hangup(char *name)
  * Helper-function for isdn_net_rm: Do the real work.
  */
 static int
-isdn_net_realrm(isdn_net_dev * p, isdn_net_dev * q)
+isdn_net_realrm(isdn_net_dev *p, isdn_net_dev *q)
 {
        u_long flags;
 
@@ -3126,8 +3126,8 @@ isdn_net_realrm(isdn_net_dev * p, isdn_net_dev * q)
                return -EBUSY;
        }
 #ifdef CONFIG_ISDN_X25
-       if( p -> cprot && p -> cprot -> pops )
-               p -> cprot -> pops -> proto_del ( p -> cprot );
+       if (p->cprot && p->cprot->pops)
+               p->cprot->pops->proto_del(p->cprot);
 #endif
        /* Free all phone-entries */
        isdn_net_rmallphone(p);
index 7511f08..cca6d68 100644 (file)
@@ -11,7 +11,7 @@
  *
  */
 
-                             /* Definitions for hupflags:                */
+/* Definitions for hupflags:                */
 #define ISDN_WAITCHARGE  1      /* did not get a charge info yet            */
 #define ISDN_HAVECHARGE  2      /* We know a charge info                    */
 #define ISDN_CHARGEHUP   4      /* We want to use the charge mechanism      */
@@ -58,8 +58,8 @@ extern void isdn_net_write_super(isdn_net_local *lp, struct sk_buff *skb);
 
 #define ISDN_MASTER_PRIV(lp) ((isdn_net_local *) netdev_priv(lp->master))
 #define ISDN_SLAVE_PRIV(lp) ((isdn_net_local *) netdev_priv(lp->slave))
-#define MASTER_TO_SLAVE(master)        \
-                       (((isdn_net_local *) netdev_priv(master))->slave)
+#define MASTER_TO_SLAVE(master)                                        \
+       (((isdn_net_local *) netdev_priv(master))->slave)
 
 /*
  * is this particular channel busy?
@@ -68,7 +68,7 @@ static __inline__ int isdn_net_lp_busy(isdn_net_local *lp)
 {
        if (atomic_read(&lp->frame_cnt) < ISDN_NET_MAX_QUEUE_LENGTH)
                return 0;
-       else 
+       else
                return 1;
 }
 
@@ -76,7 +76,7 @@ static __inline__ int isdn_net_lp_busy(isdn_net_local *lp)
  * For the given net device, this will get a non-busy channel out of the
  * corresponding bundle. The returned channel is locked.
  */
-static __inline__ isdn_net_local * isdn_net_get_locked_lp(isdn_net_dev *nd)
+static __inline__ isdn_net_local *isdn_net_get_locked_lp(isdn_net_dev *nd)
 {
        unsigned long flags;
        isdn_net_local *lp;
@@ -149,4 +149,3 @@ static __inline__ void isdn_net_rm_from_bundle(isdn_net_local *lp)
 //             __func__, master_lp->netdev->queue);
        spin_unlock_irqrestore(&master_lp->netdev->queue_lock, flags);
 }
-
index e38f674..a1e7601 100644 (file)
 /* Prototypes */
 static int isdn_ppp_fill_rq(unsigned char *buf, int len, int proto, int slot);
 static int isdn_ppp_closewait(int slot);
-static void isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp,
+static void isdn_ppp_push_higher(isdn_net_dev *net_dev, isdn_net_local *lp,
                                 struct sk_buff *skb, int proto);
 static int isdn_ppp_if_get_unit(char *namebuf);
-static int isdn_ppp_set_compressor(struct ippp_struct *is,struct isdn_ppp_comp_data *);
+static int isdn_ppp_set_compressor(struct ippp_struct *is, struct isdn_ppp_comp_data *);
 static struct sk_buff *isdn_ppp_decompress(struct sk_buff *,
-                               struct ippp_struct *,struct ippp_struct *,int *proto);
-static void isdn_ppp_receive_ccp(isdn_net_dev * net_dev, isdn_net_local * lp,
-                               struct sk_buff *skb,int proto);
-static struct sk_buff *isdn_ppp_compress(struct sk_buff *skb_in,int *proto,
-       struct ippp_struct *is,struct ippp_struct *master,int type);
+                                          struct ippp_struct *, struct ippp_struct *, int *proto);
+static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
+                                struct sk_buff *skb, int proto);
+static struct sk_buff *isdn_ppp_compress(struct sk_buff *skb_in, int *proto,
+                                        struct ippp_struct *is, struct ippp_struct *master, int type);
 static void isdn_ppp_send_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
-        struct sk_buff *skb);
+                             struct sk_buff *skb);
 
 /* New CCP stuff */
 static void isdn_ppp_ccp_kickup(struct ippp_struct *is);
@@ -52,7 +52,7 @@ static void isdn_ppp_ccp_reset_free_state(struct ippp_struct *is,
                                          unsigned char id);
 static void isdn_ppp_ccp_timer_callback(unsigned long closure);
 static struct ippp_ccp_reset_state *isdn_ppp_ccp_reset_alloc_state(struct ippp_struct *is,
-                                                     unsigned char id);
+                                                                  unsigned char id);
 static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
                                     struct isdn_ppp_resetparams *rp);
 static void isdn_ppp_ccp_reset_ack_rcvd(struct ippp_struct *is,
@@ -61,17 +61,17 @@ static void isdn_ppp_ccp_reset_ack_rcvd(struct ippp_struct *is,
 
 
 #ifdef CONFIG_ISDN_MPP
-static ippp_bundle * isdn_ppp_bundle_arr = NULL;
+static ippp_bundle *isdn_ppp_bundle_arr = NULL;
+
 static int isdn_ppp_mp_bundle_array_init(void);
-static int isdn_ppp_mp_init( isdn_net_local * lp, ippp_bundle * add_to );
-static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, 
-                                                       struct sk_buff *skb);
-static void isdn_ppp_mp_cleanup( isdn_net_local * lp );
+static int isdn_ppp_mp_init(isdn_net_local *lp, ippp_bundle *add_to);
+static void isdn_ppp_mp_receive(isdn_net_dev *net_dev, isdn_net_local *lp,
+                               struct sk_buff *skb);
+static void isdn_ppp_mp_cleanup(isdn_net_local *lp);
 
 static int isdn_ppp_bundle(struct ippp_struct *, int unit);
 #endif /* CONFIG_ISDN_MPP */
-  
+
 char *isdn_ppp_revision = "$Revision: 1.1.2.3 $";
 
 static struct ippp_struct *ippp_table[ISDN_MAX_CHANNELS];
@@ -82,11 +82,11 @@ static struct isdn_ppp_compressor *ipc_head = NULL;
  * frame log (debug)
  */
 static void
-isdn_ppp_frame_log(char *info, char *data, int len, int maxlen,int unit,int slot)
+isdn_ppp_frame_log(char *info, char *data, int len, int maxlen, int unit, int slot)
 {
        int cnt,
-        j,
-        i;
+               j,
+               i;
        char buf[80];
 
        if (len < maxlen)
@@ -94,8 +94,8 @@ isdn_ppp_frame_log(char *info, char *data, int len, int maxlen,int unit,int slot
 
        for (i = 0, cnt = 0; cnt < maxlen; i++) {
                for (j = 0; j < 16 && cnt < maxlen; j++, cnt++)
-                       sprintf(buf + j * 3, "%02x ", (unsigned char) data[cnt]);
-               printk(KERN_DEBUG "[%d/%d].%s[%d]: %s\n",unit,slot, info, i, buf);
+                       sprintf(buf + j * 3, "%02x ", (unsigned char)data[cnt]);
+               printk(KERN_DEBUG "[%d/%d].%s[%d]: %s\n", unit, slot, info, i, buf);
        }
 }
 
@@ -105,13 +105,13 @@ isdn_ppp_frame_log(char *info, char *data, int len, int maxlen,int unit,int slot
  *       in this case we bind another lp to the master device
  */
 int
-isdn_ppp_free(isdn_net_local * lp)
+isdn_ppp_free(isdn_net_local *lp)
 {
        struct ippp_struct *is;
 
        if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: ppp_slot(%d) out of range\n",
-                       __func__, lp->ppp_slot);
+                      __func__, lp->ppp_slot);
                return 0;
        }
 
@@ -128,7 +128,7 @@ isdn_ppp_free(isdn_net_local * lp)
 #endif /* CONFIG_ISDN_MPP */
        if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: ppp_slot(%d) now invalid\n",
-                       __func__, lp->ppp_slot);
+                      __func__, lp->ppp_slot);
                return 0;
        }
        is = ippp_table[lp->ppp_slot];
@@ -153,7 +153,7 @@ isdn_ppp_free(isdn_net_local * lp)
  * no additional lock is needed
  */
 int
-isdn_ppp_bind(isdn_net_local * lp)
+isdn_ppp_bind(isdn_net_local *lp)
 {
        int i;
        int unit = 0;
@@ -195,11 +195,11 @@ isdn_ppp_bind(isdn_net_local * lp)
        unit = isdn_ppp_if_get_unit(lp->netdev->dev->name);
        if (unit < 0) {
                printk(KERN_ERR "isdn_ppp_bind: illegal interface name %s.\n",
-                       lp->netdev->dev->name);
+                      lp->netdev->dev->name);
                retval = -1;
                goto out;
        }
-       
+
        lp->ppp_slot = i;
        is = ippp_table[i];
        is->lp = lp;
@@ -213,7 +213,7 @@ isdn_ppp_bind(isdn_net_local * lp)
 
        retval = lp->ppp_slot;
 
- out:
+out:
        return retval;
 }
 
@@ -223,11 +223,11 @@ isdn_ppp_bind(isdn_net_local * lp)
  */
 
 void
-isdn_ppp_wakeup_daemon(isdn_net_local * lp)
+isdn_ppp_wakeup_daemon(isdn_net_local *lp)
 {
        if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: ppp_slot(%d) out of range\n",
-                       __func__, lp->ppp_slot);
+                      __func__, lp->ppp_slot);
                return;
        }
        ippp_table[lp->ppp_slot]->state = IPPP_OPEN | IPPP_CONNECT | IPPP_NOBLOCK;
@@ -246,7 +246,7 @@ isdn_ppp_closewait(int slot)
 
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: slot(%d) out of range\n",
-                       __func__, slot);
+                      __func__, slot);
                return 0;
        }
        is = ippp_table[slot];
@@ -289,7 +289,7 @@ isdn_ppp_open(int min, struct file *file)
                return -EBUSY;
        }
        is = file->private_data = ippp_table[slot];
-       
+
        printk(KERN_DEBUG "ippp, open, slot: %d, minor: %d, state: %04x\n",
               slot, min, is->state);
 
@@ -385,21 +385,21 @@ isdn_ppp_release(int min, struct file *file)
 #endif
 
 /* TODO: if this was the previous master: link the stuff to the new master */
-       if(is->comp_stat)
+       if (is->comp_stat)
                is->compressor->free(is->comp_stat);
-       if(is->link_comp_stat)
+       if (is->link_comp_stat)
                is->link_compressor->free(is->link_comp_stat);
-       if(is->link_decomp_stat)
+       if (is->link_decomp_stat)
                is->link_decompressor->free(is->link_decomp_stat);
-       if(is->decomp_stat)
+       if (is->decomp_stat)
                is->decompressor->free(is->decomp_stat);
-        is->compressor   = is->link_compressor   = NULL;
-        is->decompressor = is->link_decompressor = NULL;
+       is->compressor   = is->link_compressor   = NULL;
+       is->decompressor = is->link_decompressor = NULL;
        is->comp_stat    = is->link_comp_stat    = NULL;
-        is->decomp_stat  = is->link_decomp_stat  = NULL;
+       is->decomp_stat  = is->link_decomp_stat  = NULL;
 
        /* Clean up if necessary */
-       if(is->reset)
+       if (is->reset)
                isdn_ppp_ccp_reset_free(is);
 
        /* this slot is ready for new connections */
@@ -423,9 +423,9 @@ get_arg(void __user *b, void *val, int len)
  * set arg .. ioctl helper
  */
 static int
-set_arg(void __user *b, void *val,int len)
+set_arg(void __user *b, void *val, int len)
 {
-       if(len <= 0)
+       if (len <= 0)
                len = sizeof(void *);
        if (copy_to_user(b, val, len))
                return -EFAULT;
@@ -471,7 +471,7 @@ int
 isdn_ppp_ioctl(int min, struct file *file, unsigned int cmd, unsigned long arg)
 {
        unsigned long val;
-       int r,i,j;
+       int r, i, j;
        struct ippp_struct *is;
        isdn_net_local *lp;
        struct isdn_ppp_comp_data data;
@@ -487,177 +487,177 @@ isdn_ppp_ioctl(int min, struct file *file, unsigned int cmd, unsigned long arg)
                return -EINVAL;
 
        switch (cmd) {
-               case PPPIOCBUNDLE:
+       case PPPIOCBUNDLE:
 #ifdef CONFIG_ISDN_MPP
-                       if (!(is->state & IPPP_CONNECT))
-                               return -EINVAL;
-                       if ((r = get_arg(argp, &val, sizeof(val) )))
-                               return r;
-                       printk(KERN_DEBUG "iPPP-bundle: minor: %d, slave unit: %d, master unit: %d\n",
-                              (int) min, (int) is->unit, (int) val);
-                       return isdn_ppp_bundle(is, val);
+               if (!(is->state & IPPP_CONNECT))
+                       return -EINVAL;
+               if ((r = get_arg(argp, &val, sizeof(val))))
+                       return r;
+               printk(KERN_DEBUG "iPPP-bundle: minor: %d, slave unit: %d, master unit: %d\n",
+                      (int) min, (int) is->unit, (int) val);
+               return isdn_ppp_bundle(is, val);
 #else
-                       return -1;
+               return -1;
 #endif
-                       break;
-               case PPPIOCGUNIT:       /* get ppp/isdn unit number */
-                       if ((r = set_arg(argp, &is->unit, sizeof(is->unit) )))
-                               return r;
-                       break;
-               case PPPIOCGIFNAME:
-                       if(!lp)
-                               return -EINVAL;
-                       if ((r = set_arg(argp, lp->netdev->dev->name,
-                               strlen(lp->netdev->dev->name))))
-                               return r;
-                       break;
-               case PPPIOCGMPFLAGS:    /* get configuration flags */
-                       if ((r = set_arg(argp, &is->mpppcfg, sizeof(is->mpppcfg) )))
-                               return r;
-                       break;
-               case PPPIOCSMPFLAGS:    /* set configuration flags */
-                       if ((r = get_arg(argp, &val, sizeof(val) )))
-                               return r;
-                       is->mpppcfg = val;
-                       break;
-               case PPPIOCGFLAGS:      /* get configuration flags */
-                       if ((r = set_arg(argp, &is->pppcfg,sizeof(is->pppcfg) )))
-                               return r;
-                       break;
-               case PPPIOCSFLAGS:      /* set configuration flags */
-                       if ((r = get_arg(argp, &val, sizeof(val) ))) {
-                               return r;
-                       }
-                       if (val & SC_ENABLE_IP && !(is->pppcfg & SC_ENABLE_IP) && (is->state & IPPP_CONNECT)) {
-                               if (lp) {
-                                       /* OK .. we are ready to send buffers */
-                                       is->pppcfg = val; /* isdn_ppp_xmit test for SC_ENABLE_IP !!! */
-                                       netif_wake_queue(lp->netdev->dev);
-                                       break;
-                               }
-                       }
-                       is->pppcfg = val;
-                       break;
-               case PPPIOCGIDLE:       /* get idle time information */
+               break;
+       case PPPIOCGUNIT:       /* get ppp/isdn unit number */
+               if ((r = set_arg(argp, &is->unit, sizeof(is->unit))))
+                       return r;
+               break;
+       case PPPIOCGIFNAME:
+               if (!lp)
+                       return -EINVAL;
+               if ((r = set_arg(argp, lp->netdev->dev->name,
+                                strlen(lp->netdev->dev->name))))
+                       return r;
+               break;
+       case PPPIOCGMPFLAGS:    /* get configuration flags */
+               if ((r = set_arg(argp, &is->mpppcfg, sizeof(is->mpppcfg))))
+                       return r;
+               break;
+       case PPPIOCSMPFLAGS:    /* set configuration flags */
+               if ((r = get_arg(argp, &val, sizeof(val))))
+                       return r;
+               is->mpppcfg = val;
+               break;
+       case PPPIOCGFLAGS:      /* get configuration flags */
+               if ((r = set_arg(argp, &is->pppcfg, sizeof(is->pppcfg))))
+                       return r;
+               break;
+       case PPPIOCSFLAGS:      /* set configuration flags */
+               if ((r = get_arg(argp, &val, sizeof(val)))) {
+                       return r;
+               }
+               if (val & SC_ENABLE_IP && !(is->pppcfg & SC_ENABLE_IP) && (is->state & IPPP_CONNECT)) {
                        if (lp) {
-                               struct ppp_idle pidle;
-                               pidle.xmit_idle = pidle.recv_idle = lp->huptimer;
-                               if ((r = set_arg(argp, &pidle,sizeof(struct ppp_idle))))
-                                        return r;
+                               /* OK .. we are ready to send buffers */
+                               is->pppcfg = val; /* isdn_ppp_xmit test for SC_ENABLE_IP !!! */
+                               netif_wake_queue(lp->netdev->dev);
+                               break;
                        }
-                       break;
-               case PPPIOCSMRU:        /* set receive unit size for PPP */
-                       if ((r = get_arg(argp, &val, sizeof(val) )))
-                               return r;
-                       is->mru = val;
-                       break;
-               case PPPIOCSMPMRU:
-                       break;
-               case PPPIOCSMPMTU:
-                       break;
-               case PPPIOCSMAXCID:     /* set the maximum compression slot id */
-                       if ((r = get_arg(argp, &val, sizeof(val) )))
+               }
+               is->pppcfg = val;
+               break;
+       case PPPIOCGIDLE:       /* get idle time information */
+               if (lp) {
+                       struct ppp_idle pidle;
+                       pidle.xmit_idle = pidle.recv_idle = lp->huptimer;
+                       if ((r = set_arg(argp, &pidle, sizeof(struct ppp_idle))))
                                return r;
-                       val++;
-                       if (is->maxcid != val) {
+               }
+               break;
+       case PPPIOCSMRU:        /* set receive unit size for PPP */
+               if ((r = get_arg(argp, &val, sizeof(val))))
+                       return r;
+               is->mru = val;
+               break;
+       case PPPIOCSMPMRU:
+               break;
+       case PPPIOCSMPMTU:
+               break;
+       case PPPIOCSMAXCID:     /* set the maximum compression slot id */
+               if ((r = get_arg(argp, &val, sizeof(val))))
+                       return r;
+               val++;
+               if (is->maxcid != val) {
 #ifdef CONFIG_ISDN_PPP_VJ
-                               struct slcompress *sltmp;
+                       struct slcompress *sltmp;
 #endif
-                               if (is->debug & 0x1)
-                                       printk(KERN_DEBUG "ippp, ioctl: changed MAXCID to %ld\n", val);
-                               is->maxcid = val;
+                       if (is->debug & 0x1)
+                               printk(KERN_DEBUG "ippp, ioctl: changed MAXCID to %ld\n", val);
+                       is->maxcid = val;
 #ifdef CONFIG_ISDN_PPP_VJ
-                               sltmp = slhc_init(16, val);
-                               if (!sltmp) {
-                                       printk(KERN_ERR "ippp, can't realloc slhc struct\n");
-                                       return -ENOMEM;
-                               }
-                               if (is->slcomp)
-                                       slhc_free(is->slcomp);
-                               is->slcomp = sltmp;
-#endif
-                       }
-                       break;
-               case PPPIOCGDEBUG:
-                       if ((r = set_arg(argp, &is->debug, sizeof(is->debug) )))
-                               return r;
-                       break;
-               case PPPIOCSDEBUG:
-                       if ((r = get_arg(argp, &val, sizeof(val) )))
-                               return r;
-                       is->debug = val;
-                       break;
-               case PPPIOCGCOMPRESSORS:
-                       {
-                               unsigned long protos[8] = {0,};
-                               struct isdn_ppp_compressor *ipc = ipc_head;
-                               while(ipc) {
-                                       j = ipc->num / (sizeof(long)*8);
-                                       i = ipc->num % (sizeof(long)*8);
-                                       if(j < 8)
-                                               protos[j] |= (0x1<<i);
-                                       ipc = ipc->next;
-                               }
-                               if ((r = set_arg(argp,protos,8*sizeof(long) )))
-                                       return r;
+                       sltmp = slhc_init(16, val);
+                       if (!sltmp) {
+                               printk(KERN_ERR "ippp, can't realloc slhc struct\n");
+                               return -ENOMEM;
                        }
-                       break;
-               case PPPIOCSCOMPRESSOR:
-                       if ((r = get_arg(argp, &data, sizeof(struct isdn_ppp_comp_data))))
-                               return r;
-                       return isdn_ppp_set_compressor(is, &data);
-               case PPPIOCGCALLINFO:
-                       {
-                               struct pppcallinfo pci;
-                               memset((char *) &pci,0,sizeof(struct pppcallinfo));
-                               if(lp)
-                               {
-                                       strncpy(pci.local_num,lp->msn,63);
-                                       if(lp->dial) {
-                                               strncpy(pci.remote_num,lp->dial->num,63);
-                                       }
-                                       pci.charge_units = lp->charge;
-                                       if(lp->outgoing)
-                                               pci.calltype = CALLTYPE_OUTGOING;
-                                       else
-                                               pci.calltype = CALLTYPE_INCOMING;
-                                       if(lp->flags & ISDN_NET_CALLBACK)
-                                               pci.calltype |= CALLTYPE_CALLBACK;
-                               }
-                               return set_arg(argp,&pci,sizeof(struct pppcallinfo));
+                       if (is->slcomp)
+                               slhc_free(is->slcomp);
+                       is->slcomp = sltmp;
+#endif
+               }
+               break;
+       case PPPIOCGDEBUG:
+               if ((r = set_arg(argp, &is->debug, sizeof(is->debug))))
+                       return r;
+               break;
+       case PPPIOCSDEBUG:
+               if ((r = get_arg(argp, &val, sizeof(val))))
+                       return r;
+               is->debug = val;
+               break;
+       case PPPIOCGCOMPRESSORS:
+       {
+               unsigned long protos[8] = {0,};
+               struct isdn_ppp_compressor *ipc = ipc_head;
+               while (ipc) {
+                       j = ipc->num / (sizeof(long) * 8);
+                       i = ipc->num % (sizeof(long) * 8);
+                       if (j < 8)
+                               protos[j] |= (0x1 << i);
+                       ipc = ipc->next;
+               }
+               if ((r = set_arg(argp, protos, 8 * sizeof(long))))
+                       return r;
+       }
+       break;
+       case PPPIOCSCOMPRESSOR:
+               if ((r = get_arg(argp, &data, sizeof(struct isdn_ppp_comp_data))))
+                       return r;
+               return isdn_ppp_set_compressor(is, &data);
+       case PPPIOCGCALLINFO:
+       {
+               struct pppcallinfo pci;
+               memset((char *)&pci, 0, sizeof(struct pppcallinfo));
+               if (lp)
+               {
+                       strncpy(pci.local_num, lp->msn, 63);
+                       if (lp->dial) {
+                               strncpy(pci.remote_num, lp->dial->num, 63);
                        }
+                       pci.charge_units = lp->charge;
+                       if (lp->outgoing)
+                               pci.calltype = CALLTYPE_OUTGOING;
+                       else
+                               pci.calltype = CALLTYPE_INCOMING;
+                       if (lp->flags & ISDN_NET_CALLBACK)
+                               pci.calltype |= CALLTYPE_CALLBACK;
+               }
+               return set_arg(argp, &pci, sizeof(struct pppcallinfo));
+       }
 #ifdef CONFIG_IPPP_FILTER
-               case PPPIOCSPASS:
-                       {
-                               struct sock_filter *code;
-                               int len = get_filter(argp, &code);
-                               if (len < 0)
-                                       return len;
-                               kfree(is->pass_filter);
-                               is->pass_filter = code;
-                               is->pass_len = len;
-                               break;
-                       }
-               case PPPIOCSACTIVE:
-                       {
-                               struct sock_filter *code;
-                               int len = get_filter(argp, &code);
-                               if (len < 0)
-                                       return len;
-                               kfree(is->active_filter);
-                               is->active_filter = code;
-                               is->active_len = len;
-                               break;
-                       }
+       case PPPIOCSPASS:
+       {
+               struct sock_filter *code;
+               int len = get_filter(argp, &code);
+               if (len < 0)
+                       return len;
+               kfree(is->pass_filter);
+               is->pass_filter = code;
+               is->pass_len = len;
+               break;
+       }
+       case PPPIOCSACTIVE:
+       {
+               struct sock_filter *code;
+               int len = get_filter(argp, &code);
+               if (len < 0)
+                       return len;
+               kfree(is->active_filter);
+               is->active_filter = code;
+               is->active_len = len;
+               break;
+       }
 #endif /* CONFIG_IPPP_FILTER */
-               default:
-                       break;
+       default:
+               break;
        }
        return 0;
 }
 
 unsigned int
-isdn_ppp_poll(struct file *file, poll_table * wait)
+isdn_ppp_poll(struct file *file, poll_table *wait)
 {
        u_int mask;
        struct ippp_buf_queue *bf, *bl;
@@ -668,13 +668,13 @@ isdn_ppp_poll(struct file *file, poll_table * wait)
 
        if (is->debug & 0x2)
                printk(KERN_DEBUG "isdn_ppp_poll: minor: %d\n",
-                               iminor(file->f_path.dentry->d_inode));
+                      iminor(file->f_path.dentry->d_inode));
 
        /* just registers wait_queue hook. This doesn't really wait. */
        poll_wait(file, &is->wq, wait);
 
        if (!(is->state & IPPP_OPEN)) {
-               if(is->state == IPPP_CLOSEWAIT)
+               if (is->state == IPPP_CLOSEWAIT)
                        return POLLHUP;
                printk(KERN_DEBUG "isdn_ppp: device not open\n");
                return POLLERR;
@@ -827,7 +827,7 @@ isdn_ppp_write(int min, struct file *file, const char __user *buf, int count)
                        return 0;
 
                if ((dev->drv[lp->isdn_device]->flags & DRV_FLAG_RUNNING) &&
-                       lp->dialstate == 0 &&
+                   lp->dialstate == 0 &&
                    (lp->flags & ISDN_NET_CONNECTED)) {
                        unsigned short hl;
                        struct sk_buff *skb;
@@ -837,7 +837,7 @@ isdn_ppp_write(int min, struct file *file, const char __user *buf, int count)
                         * 16 bytes, now we are looking what the driver want
                         */
                        hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen;
-                       skb = alloc_skb(hl+count, GFP_ATOMIC);
+                       skb = alloc_skb(hl + count, GFP_ATOMIC);
                        if (!skb) {
                                printk(KERN_WARNING "isdn_ppp_write: out of memory!\n");
                                return count;
@@ -850,10 +850,10 @@ isdn_ppp_write(int min, struct file *file, const char __user *buf, int count)
                        }
                        if (is->debug & 0x40) {
                                printk(KERN_DEBUG "ppp xmit: len %d\n", (int) skb->len);
-                               isdn_ppp_frame_log("xmit", skb->data, skb->len, 32,is->unit,lp->ppp_slot);
+                               isdn_ppp_frame_log("xmit", skb->data, skb->len, 32, is->unit, lp->ppp_slot);
                        }
 
-                       isdn_ppp_send_ccp(lp->netdev,lp,skb); /* keeps CCP/compression states in sync */
+                       isdn_ppp_send_ccp(lp->netdev, lp, skb); /* keeps CCP/compression states in sync */
 
                        isdn_net_write_super(lp, skb);
                }
@@ -869,10 +869,10 @@ int
 isdn_ppp_init(void)
 {
        int i,
-        j;
-        
+               j;
+
 #ifdef CONFIG_ISDN_MPP
-       if( isdn_ppp_mp_bundle_array_init() < 0 )
+       if (isdn_ppp_mp_bundle_array_init() < 0)
                return -ENOMEM;
 #endif /* CONFIG_ISDN_MPP */
 
@@ -891,7 +891,7 @@ isdn_ppp_init(void)
                for (j = 0; j < NUM_RCV_BUFFS; j++) {
                        ippp_table[i]->rq[j].buf = NULL;
                        ippp_table[i]->rq[j].last = ippp_table[i]->rq +
-                           (NUM_RCV_BUFFS + j - 1) % NUM_RCV_BUFFS;
+                               (NUM_RCV_BUFFS + j - 1) % NUM_RCV_BUFFS;
                        ippp_table[i]->rq[j].next = ippp_table[i]->rq + (j + 1) % NUM_RCV_BUFFS;
                }
        }
@@ -916,7 +916,7 @@ isdn_ppp_cleanup(void)
  * check for address/control field and skip if allowed
  * retval != 0 -> discard packet silently
  */
-static int isdn_ppp_skip_ac(struct ippp_struct *is, struct sk_buff *skb) 
+static int isdn_ppp_skip_ac(struct ippp_struct *is, struct sk_buff *skb)
 {
        if (skb->len < 1)
                return -1;
@@ -930,7 +930,7 @@ static int isdn_ppp_skip_ac(struct ippp_struct *is, struct sk_buff *skb)
 
                // skip address/control (AC) field
                skb_pull(skb, 2);
-       } else { 
+       } else {
                if (is->pppcfg & SC_REJ_COMP_AC)
                        // if AC compression was not negotiated, but used, discard packet
                        return -1;
@@ -942,10 +942,10 @@ static int isdn_ppp_skip_ac(struct ippp_struct *is, struct sk_buff *skb)
  * get the PPP protocol header and pull skb
  * retval < 0 -> discard packet silently
  */
-static int isdn_ppp_strip_proto(struct sk_buff *skb) 
+static int isdn_ppp_strip_proto(struct sk_buff *skb)
 {
        int proto;
-       
+
        if (skb->len < 1)
                return -1;
 
@@ -966,7 +966,7 @@ static int isdn_ppp_strip_proto(struct sk_buff *skb)
 /*
  * handler for incoming packets on a syncPPP interface
  */
-void isdn_ppp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff *skb)
+void isdn_ppp_receive(isdn_net_dev *net_dev, isdn_net_local *lp, struct sk_buff *skb)
 {
        struct ippp_struct *is;
        int slot;
@@ -977,7 +977,7 @@ void isdn_ppp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buf
        slot = lp->ppp_slot;
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "isdn_ppp_receive: lp->ppp_slot(%d)\n",
-                       lp->ppp_slot);
+                      lp->ppp_slot);
                kfree_skb(skb);
                return;
        }
@@ -985,35 +985,35 @@ void isdn_ppp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buf
 
        if (is->debug & 0x4) {
                printk(KERN_DEBUG "ippp_receive: is:%08lx lp:%08lx slot:%d unit:%d len:%d\n",
-                      (long)is,(long)lp,lp->ppp_slot,is->unit,(int) skb->len);
-               isdn_ppp_frame_log("receive", skb->data, skb->len, 32,is->unit,lp->ppp_slot);
-       }
-
-       if (isdn_ppp_skip_ac(is, skb) < 0) {
-               kfree_skb(skb);
-               return;
-       }
-       proto = isdn_ppp_strip_proto(skb);
-       if (proto < 0) {
-               kfree_skb(skb);
-               return;
-       }
-  
+                      (long)is, (long)lp, lp->ppp_slot, is->unit, (int)skb->len);
+               isdn_ppp_frame_log("receive", skb->data, skb->len, 32, is->unit, lp->ppp_slot);
+       }
+
+       if (isdn_ppp_skip_ac(is, skb) < 0) {
+               kfree_skb(skb);
+               return;
+       }
+       proto = isdn_ppp_strip_proto(skb);
+       if (proto < 0) {
+               kfree_skb(skb);
+               return;
+       }
+
 #ifdef CONFIG_ISDN_MPP
-       if (is->compflags & SC_LINK_DECOMP_ON) {
-               skb = isdn_ppp_decompress(skb, is, NULL, &proto);
-               if (!skb) // decompression error
-                       return;
-       }
-       
-       if (!(is->mpppcfg & SC_REJ_MP_PROT)) { // we agreed to receive MPPP
-               if (proto == PPP_MP) {
-                       isdn_ppp_mp_receive(net_dev, lp, skb);
-                       return;
-               }
-       } 
+       if (is->compflags & SC_LINK_DECOMP_ON) {
+               skb = isdn_ppp_decompress(skb, is, NULL, &proto);
+               if (!skb) // decompression error
+                       return;
+       }
+
+       if (!(is->mpppcfg & SC_REJ_MP_PROT)) { // we agreed to receive MPPP
+               if (proto == PPP_MP) {
+                       isdn_ppp_mp_receive(net_dev, lp, skb);
+                       return;
+               }
+       }
 #endif
-       isdn_ppp_push_higher(net_dev, lp, skb, proto);
+       isdn_ppp_push_higher(net_dev, lp, skb, proto);
 }
 
 /*
@@ -1022,116 +1022,116 @@ void isdn_ppp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buf
  * note: net_dev has to be master net_dev
  */
 static void
-isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff *skb, int proto)
+isdn_ppp_push_higher(isdn_net_dev *net_dev, isdn_net_local *lp, struct sk_buff *skb, int proto)
 {
        struct net_device *dev = net_dev->dev;
-       struct ippp_struct *is, *mis;
+       struct ippp_struct *is, *mis;
        isdn_net_local *mlp = NULL;
        int slot;
 
        slot = lp->ppp_slot;
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "isdn_ppp_push_higher: lp->ppp_slot(%d)\n",
-                       lp->ppp_slot);
+                      lp->ppp_slot);
                goto drop_packet;
        }
        is = ippp_table[slot];
-       
-       if (lp->master) { // FIXME?
+
+       if (lp->master) { // FIXME?
                mlp = ISDN_MASTER_PRIV(lp);
-               slot = mlp->ppp_slot;
-               if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
-                       printk(KERN_ERR "isdn_ppp_push_higher: master->ppp_slot(%d)\n",
-                               lp->ppp_slot);
+               slot = mlp->ppp_slot;
+               if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
+                       printk(KERN_ERR "isdn_ppp_push_higher: master->ppp_slot(%d)\n",
+                              lp->ppp_slot);
                        goto drop_packet;
-               }
-       }
-       mis = ippp_table[slot];
+               }
+       }
+       mis = ippp_table[slot];
 
        if (is->debug & 0x10) {
                printk(KERN_DEBUG "push, skb %d %04x\n", (int) skb->len, proto);
-               isdn_ppp_frame_log("rpush", skb->data, skb->len, 32,is->unit,lp->ppp_slot);
+               isdn_ppp_frame_log("rpush", skb->data, skb->len, 32, is->unit, lp->ppp_slot);
        }
        if (mis->compflags & SC_DECOMP_ON) {
                skb = isdn_ppp_decompress(skb, is, mis, &proto);
                if (!skb) // decompression error
-                       return;
-       }
+                       return;
+       }
        switch (proto) {
-               case PPP_IPX:  /* untested */
-                       if (is->debug & 0x20)
-                               printk(KERN_DEBUG "isdn_ppp: IPX\n");
-                       skb->protocol = htons(ETH_P_IPX);
-                       break;
-               case PPP_IP:
-                       if (is->debug & 0x20)
-                               printk(KERN_DEBUG "isdn_ppp: IP\n");
-                       skb->protocol = htons(ETH_P_IP);
-                       break;
-               case PPP_COMP:
-               case PPP_COMPFRAG:
-                       printk(KERN_INFO "isdn_ppp: unexpected compressed frame dropped\n");
-                       goto drop_packet;
+       case PPP_IPX:  /* untested */
+               if (is->debug & 0x20)
+                       printk(KERN_DEBUG "isdn_ppp: IPX\n");
+               skb->protocol = htons(ETH_P_IPX);
+               break;
+       case PPP_IP:
+               if (is->debug & 0x20)
+                       printk(KERN_DEBUG "isdn_ppp: IP\n");
+               skb->protocol = htons(ETH_P_IP);
+               break;
+       case PPP_COMP:
+       case PPP_COMPFRAG:
+               printk(KERN_INFO "isdn_ppp: unexpected compressed frame dropped\n");
+               goto drop_packet;
 #ifdef CONFIG_ISDN_PPP_VJ
-               case PPP_VJC_UNCOMP:
-                       if (is->debug & 0x20)
-                               printk(KERN_DEBUG "isdn_ppp: VJC_UNCOMP\n");
+       case PPP_VJC_UNCOMP:
+               if (is->debug & 0x20)
+                       printk(KERN_DEBUG "isdn_ppp: VJC_UNCOMP\n");
+               if (net_dev->local->ppp_slot < 0) {
+                       printk(KERN_ERR "%s: net_dev->local->ppp_slot(%d) out of range\n",
+                              __func__, net_dev->local->ppp_slot);
+                       goto drop_packet;
+               }
+               if (slhc_remember(ippp_table[net_dev->local->ppp_slot]->slcomp, skb->data, skb->len) <= 0) {
+                       printk(KERN_WARNING "isdn_ppp: received illegal VJC_UNCOMP frame!\n");
+                       goto drop_packet;
+               }
+               skb->protocol = htons(ETH_P_IP);
+               break;
+       case PPP_VJC_COMP:
+               if (is->debug & 0x20)
+                       printk(KERN_DEBUG "isdn_ppp: VJC_COMP\n");
+               {
+                       struct sk_buff *skb_old = skb;
+                       int pkt_len;
+                       skb = dev_alloc_skb(skb_old->len + 128);
+
+                       if (!skb) {
+                               printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n", dev->name);
+                               skb = skb_old;
+                               goto drop_packet;
+                       }
+                       skb_put(skb, skb_old->len + 128);
+                       skb_copy_from_linear_data(skb_old, skb->data,
+                                                 skb_old->len);
                        if (net_dev->local->ppp_slot < 0) {
                                printk(KERN_ERR "%s: net_dev->local->ppp_slot(%d) out of range\n",
-                                       __func__, net_dev->local->ppp_slot);
+                                      __func__, net_dev->local->ppp_slot);
                                goto drop_packet;
                        }
-                       if (slhc_remember(ippp_table[net_dev->local->ppp_slot]->slcomp, skb->data, skb->len) <= 0) {
-                               printk(KERN_WARNING "isdn_ppp: received illegal VJC_UNCOMP frame!\n");
+                       pkt_len = slhc_uncompress(ippp_table[net_dev->local->ppp_slot]->slcomp,
+                                                 skb->data, skb_old->len);
+                       kfree_skb(skb_old);
+                       if (pkt_len < 0)
                                goto drop_packet;
-                       }
+
+                       skb_trim(skb, pkt_len);
                        skb->protocol = htons(ETH_P_IP);
-                       break;
-               case PPP_VJC_COMP:
-                       if (is->debug & 0x20)
-                               printk(KERN_DEBUG "isdn_ppp: VJC_COMP\n");
-                       {
-                               struct sk_buff *skb_old = skb;
-                               int pkt_len;
-                               skb = dev_alloc_skb(skb_old->len + 128);
-
-                               if (!skb) {
-                                       printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n", dev->name);
-                                       skb = skb_old;
-                                       goto drop_packet;
-                               }
-                               skb_put(skb, skb_old->len + 128);
-                               skb_copy_from_linear_data(skb_old, skb->data,
-                                                         skb_old->len);
-                               if (net_dev->local->ppp_slot < 0) {
-                                       printk(KERN_ERR "%s: net_dev->local->ppp_slot(%d) out of range\n",
-                                               __func__, net_dev->local->ppp_slot);
-                                       goto drop_packet;
-                               }
-                               pkt_len = slhc_uncompress(ippp_table[net_dev->local->ppp_slot]->slcomp,
-                                               skb->data, skb_old->len);
-                               kfree_skb(skb_old);
-                               if (pkt_len < 0)
-                                       goto drop_packet;
-
-                               skb_trim(skb, pkt_len);
-                               skb->protocol = htons(ETH_P_IP);
-                       }
-                       break;
+               }
+               break;
 #endif
-               case PPP_CCP:
-               case PPP_CCPFRAG:
-                       isdn_ppp_receive_ccp(net_dev,lp,skb,proto);
-                       /* Dont pop up ResetReq/Ack stuff to the daemon any
-                          longer - the job is done already */
-                       if(skb->data[0] == CCP_RESETREQ ||
-                          skb->data[0] == CCP_RESETACK)
-                               break;
-                       /* fall through */
-               default:
-                       isdn_ppp_fill_rq(skb->data, skb->len, proto, lp->ppp_slot);     /* push data to pppd device */
-                       kfree_skb(skb);
-                       return;
+       case PPP_CCP:
+       case PPP_CCPFRAG:
+               isdn_ppp_receive_ccp(net_dev, lp, skb, proto);
+               /* Dont pop up ResetReq/Ack stuff to the daemon any
+                  longer - the job is done already */
+               if (skb->data[0] == CCP_RESETREQ ||
+                   skb->data[0] == CCP_RESETACK)
+                       break;
+               /* fall through */
+       default:
+               isdn_ppp_fill_rq(skb->data, skb->len, proto, lp->ppp_slot);     /* push data to pppd device */
+               kfree_skb(skb);
+               return;
        }
 
 #ifdef CONFIG_IPPP_FILTER
@@ -1173,7 +1173,7 @@ isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff
        /* net_dev->local->stats.rx_packets++; done in isdn_net.c */
        return;
 
- drop_packet:
+drop_packet:
        net_dev->local->stats.rx_dropped++;
        kfree_skb(skb);
 }
@@ -1183,11 +1183,11 @@ isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff
  * checks whether we have enough space at the beginning of the skb
  * and allocs a new SKB if necessary
  */
-static unsigned char *isdn_ppp_skb_push(struct sk_buff **skb_p,int len)
+static unsigned char *isdn_ppp_skb_push(struct sk_buff **skb_p, int len)
 {
        struct sk_buff *skb = *skb_p;
 
-       if(skb_headroom(skb) < len) {
+       if (skb_headroom(skb) < len) {
                struct sk_buff *nskb = skb_realloc_headroom(skb, len);
 
                if (!nskb) {
@@ -1195,12 +1195,12 @@ static unsigned char *isdn_ppp_skb_push(struct sk_buff **skb_p,int len)
                        dev_kfree_skb(skb);
                        return NULL;
                }
-               printk(KERN_DEBUG "isdn_ppp_skb_push:under %d %d\n",skb_headroom(skb),len);
+               printk(KERN_DEBUG "isdn_ppp_skb_push:under %d %d\n", skb_headroom(skb), len);
                dev_kfree_skb(skb);
                *skb_p = nskb;
                return skb_push(nskb, len);
        }
-       return skb_push(skb,len);
+       return skb_push(skb, len);
 }
 
 /*
@@ -1214,10 +1214,10 @@ static unsigned char *isdn_ppp_skb_push(struct sk_buff **skb_p,int len)
 int
 isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
 {
-       isdn_net_local *lp,*mlp;
+       isdn_net_local *lp, *mlp;
        isdn_net_dev *nd;
        unsigned int proto = PPP_IP;     /* 0x21 */
-       struct ippp_struct *ipt,*ipts;
+       struct ippp_struct *ipt, *ipts;
        int slot, retval = NETDEV_TX_OK;
 
        mlp = netdev_priv(netdev);
@@ -1226,7 +1226,7 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
        slot = mlp->ppp_slot;
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "isdn_ppp_xmit: lp->ppp_slot(%d)\n",
-                       mlp->ppp_slot);
+                      mlp->ppp_slot);
                kfree_skb(skb);
                goto out;
        }
@@ -1240,17 +1240,17 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
        }
 
        switch (ntohs(skb->protocol)) {
-               case ETH_P_IP:
-                       proto = PPP_IP;
-                       break;
-               case ETH_P_IPX:
-                       proto = PPP_IPX;        /* untested */
-                       break;
-               default:
-                       printk(KERN_ERR "isdn_ppp: skipped unsupported protocol: %#x.\n", 
-                              skb->protocol);
-                       dev_kfree_skb(skb);
-                       goto out;
+       case ETH_P_IP:
+               proto = PPP_IP;
+               break;
+       case ETH_P_IPX:
+               proto = PPP_IPX;        /* untested */
+               break;
+       default:
+               printk(KERN_ERR "isdn_ppp: skipped unsupported protocol: %#x.\n",
+                      skb->protocol);
+               dev_kfree_skb(skb);
+               goto out;
        }
 
        lp = isdn_net_get_locked_lp(nd);
@@ -1264,7 +1264,7 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
        slot = lp->ppp_slot;
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "isdn_ppp_xmit: lp->ppp_slot(%d)\n",
-                       lp->ppp_slot);
+                      lp->ppp_slot);
                kfree_skb(skb);
                goto unlock;
        }
@@ -1277,7 +1277,7 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
        /* Pull off the fake header we stuck on earlier to keep
         * the fragmentation code happy.
         */
-       skb_pull(skb,IPPP_MAX_HEADER);
+       skb_pull(skb, IPPP_MAX_HEADER);
 
 #ifdef CONFIG_IPPP_FILTER
        /* check if we should pass this packet
@@ -1312,26 +1312,26 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
 
        if (ipt->debug & 0x4)
                printk(KERN_DEBUG "xmit skb, len %d\n", (int) skb->len);
-        if (ipts->debug & 0x40)
-                isdn_ppp_frame_log("xmit0", skb->data, skb->len, 32,ipts->unit,lp->ppp_slot);
+       if (ipts->debug & 0x40)
+               isdn_ppp_frame_log("xmit0", skb->data, skb->len, 32, ipts->unit, lp->ppp_slot);
 
 #ifdef CONFIG_ISDN_PPP_VJ
        if (proto == PPP_IP && ipts->pppcfg & SC_COMP_TCP) {    /* ipts here? probably yes, but check this again */
                struct sk_buff *new_skb;
-               unsigned short hl;
+               unsigned short hl;
                /*
                 * we need to reserve enough space in front of
                 * sk_buff. old call to dev_alloc_skb only reserved
                 * 16 bytes, now we are looking what the driver want.
                 */
                hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen + IPPP_MAX_HEADER;
-               /* 
+               /*
                 * Note: hl might still be insufficient because the method
                 * above does not account for a possibible MPPP slave channel
                 * which had larger HL header space requirements than the
                 * master.
                 */
-               new_skb = alloc_skb(hl+skb->len, GFP_ATOMIC);
+               new_skb = alloc_skb(hl + skb->len, GFP_ATOMIC);
                if (new_skb) {
                        u_char *buf;
                        int pktlen;
@@ -1342,9 +1342,9 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
                        buf = skb->data;
 
                        pktlen = slhc_compress(ipts->slcomp, skb->data, skb->len, new_skb->data,
-                                &buf, !(ipts->pppcfg & SC_NO_TCP_CCID));
+                                              &buf, !(ipts->pppcfg & SC_NO_TCP_CCID));
 
-                       if (buf != skb->data) { 
+                       if (buf != skb->data) {
                                if (new_skb->data != buf)
                                        printk(KERN_ERR "isdn_ppp: FATAL error after slhc_compress!!\n");
                                dev_kfree_skb(skb);
@@ -1369,11 +1369,11 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
        /*
         * normal (single link) or bundle compression
         */
-       if(ipts->compflags & SC_COMP_ON) {
+       if (ipts->compflags & SC_COMP_ON) {
                /* We send compressed only if both down- und upstream
                   compression is negotiated, that means, CCP is up */
-               if(ipts->compflags & SC_DECOMP_ON) {
-                       skb = isdn_ppp_compress(skb,&proto,ipt,ipts,0);
+               if (ipts->compflags & SC_DECOMP_ON) {
+                       skb = isdn_ppp_compress(skb, &proto, ipt, ipts, 0);
                } else {
                        printk(KERN_DEBUG "isdn_ppp: CCP not yet up - sending as-is\n");
                }
@@ -1389,7 +1389,7 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
                ipts->mp_seqno++;
                if (ipt->mpppcfg & SC_OUT_SHORT_SEQ) {
                        unsigned char *data = isdn_ppp_skb_push(&skb, 3);
-                       if(!data)
+                       if (!data)
                                goto unlock;
                        mp_seqno &= 0xfff;
                        data[0] = MP_BEGIN_FRAG | MP_END_FRAG | ((mp_seqno >> 8) & 0xf);        /* (B)egin & (E)ndbit .. */
@@ -1397,7 +1397,7 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
                        data[2] = proto;        /* PID compression */
                } else {
                        unsigned char *data = isdn_ppp_skb_push(&skb, 5);
-                       if(!data)
+                       if (!data)
                                goto unlock;
                        data[0] = MP_BEGIN_FRAG | MP_END_FRAG;  /* (B)egin & (E)ndbit .. */
                        data[1] = (mp_seqno >> 16) & 0xff;      /* sequence number: 24bit */
@@ -1412,25 +1412,25 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
        /*
         * 'link in bundle' compression  ...
         */
-       if(ipt->compflags & SC_LINK_COMP_ON)
-               skb = isdn_ppp_compress(skb,&proto,ipt,ipts,1);
+       if (ipt->compflags & SC_LINK_COMP_ON)
+               skb = isdn_ppp_compress(skb, &proto, ipt, ipts, 1);
 
-       if( (ipt->pppcfg & SC_COMP_PROT) && (proto <= 0xff) ) {
-               unsigned char *data = isdn_ppp_skb_push(&skb,1);
-               if(!data)
+       if ((ipt->pppcfg & SC_COMP_PROT) && (proto <= 0xff)) {
+               unsigned char *data = isdn_ppp_skb_push(&skb, 1);
+               if (!data)
                        goto unlock;
                data[0] = proto & 0xff;
        }
        else {
-               unsigned char *data = isdn_ppp_skb_push(&skb,2);
-               if(!data)
+               unsigned char *data = isdn_ppp_skb_push(&skb, 2);
+               if (!data)
                        goto unlock;
                data[0] = (proto >> 8) & 0xff;
                data[1] = proto & 0xff;
        }
-       if(!(ipt->pppcfg & SC_COMP_AC)) {
-               unsigned char *data = isdn_ppp_skb_push(&skb,2);
-               if(!data)
+       if (!(ipt->pppcfg & SC_COMP_AC)) {
+               unsigned char *data = isdn_ppp_skb_push(&skb, 2);
+               if (!data)
                        goto unlock;
                data[0] = 0xff;    /* All Stations */
                data[1] = 0x03;    /* Unnumbered information */
@@ -1440,14 +1440,14 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
 
        if (ipts->debug & 0x40) {
                printk(KERN_DEBUG "skb xmit: len: %d\n", (int) skb->len);
-               isdn_ppp_frame_log("xmit", skb->data, skb->len, 32,ipt->unit,lp->ppp_slot);
+               isdn_ppp_frame_log("xmit", skb->data, skb->len, 32, ipt->unit, lp->ppp_slot);
        }
-       
+
        isdn_net_writebuf_skb(lp, skb);
 
- unlock:
+unlock:
        spin_unlock_bh(&lp->xmit_lock);
- out:
+out:
        return retval;
 }
 
@@ -1488,12 +1488,12 @@ int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp)
                p++;
                *p = htons(proto);
        }
-       
+
        drop |= is->pass_filter
-               && sk_run_filter(skb, is->pass_filter) == 0;
+               && sk_run_filter(skb, is->pass_filter) == 0;
        drop |= is->active_filter
-               && sk_run_filter(skb, is->active_filter) == 0;
-       
+               && sk_run_filter(skb, is->active_filter) == 0;
+
        skb_push(skb, IPPP_MAX_HEADER - 4);
        return drop;
 }
@@ -1502,8 +1502,8 @@ int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp)
 
 /* this is _not_ rfc1990 header, but something we convert both short and long
  * headers to for convinience's sake:
- *     byte 0 is flags as in rfc1990
- *     bytes 1...4 is 24-bit seqence number converted to host byte order 
+ *     byte 0 is flags as in rfc1990
+ *     bytes 1...4 is 24-bit seqence number converted to host byte order
  */
 #define MP_HEADER_LEN  5
 
@@ -1511,51 +1511,51 @@ int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp)
 #define MP_SHORTSEQ_MASK       0x00000fff
 #define MP_LONGSEQ_MAX         MP_LONGSEQ_MASK
 #define MP_SHORTSEQ_MAX                MP_SHORTSEQ_MASK
-#define MP_LONGSEQ_MAXBIT      ((MP_LONGSEQ_MASK+1)>>1)
-#define MP_SHORTSEQ_MAXBIT     ((MP_SHORTSEQ_MASK+1)>>1)
+#define MP_LONGSEQ_MAXBIT      ((MP_LONGSEQ_MASK + 1) >> 1)
+#define MP_SHORTSEQ_MAXBIT     ((MP_SHORTSEQ_MASK + 1) >> 1)
 
 /* sequence-wrap safe comparisons (for long sequence)*/
-#define MP_LT(a,b)     ((a-b)&MP_LONGSEQ_MAXBIT)
-#define MP_LE(a,b)     !((b-a)&MP_LONGSEQ_MAXBIT)
-#define MP_GT(a,b)     ((b-a)&MP_LONGSEQ_MAXBIT)
-#define MP_GE(a,b)     !((a-b)&MP_LONGSEQ_MAXBIT)
+#define MP_LT(a, b)    ((a - b) & MP_LONGSEQ_MAXBIT)
+#define MP_LE(a, b)    !((b - a) & MP_LONGSEQ_MAXBIT)
+#define MP_GT(a, b)    ((b - a) & MP_LONGSEQ_MAXBIT)
+#define MP_GE(a, b)    !((a - b) & MP_LONGSEQ_MAXBIT)
 
-#define MP_SEQ(f)      ((*(u32*)(f->data+1)))
+#define MP_SEQ(f)      ((*(u32 *)(f->data + 1)))
 #define MP_FLAGS(f)    (f->data[0])
 
 static int isdn_ppp_mp_bundle_array_init(void)
 {
        int i;
-       int sz = ISDN_MAX_CHANNELS*sizeof(ippp_bundle);
-       if( (isdn_ppp_bundle_arr = kzalloc(sz, GFP_KERNEL)) == NULL )
+       int sz = ISDN_MAX_CHANNELS * sizeof(ippp_bundle);
+       if ((isdn_ppp_bundle_arr = kzalloc(sz, GFP_KERNEL)) == NULL)
                return -ENOMEM;
-       for( i = 0; i < ISDN_MAX_CHANNELS; i++ )
+       for (i = 0; i < ISDN_MAX_CHANNELS; i++)
                spin_lock_init(&isdn_ppp_bundle_arr[i].lock);
        return 0;
 }
 
-static ippp_bundle * isdn_ppp_mp_bundle_alloc(void)
+static ippp_bundle *isdn_ppp_mp_bundle_alloc(void)
 {
        int i;
-       for( i = 0; i < ISDN_MAX_CHANNELS; i++ )
+       for (i = 0; i < ISDN_MAX_CHANNELS; i++)
                if (isdn_ppp_bundle_arr[i].ref_ct <= 0)
                        return (isdn_ppp_bundle_arr + i);
        return NULL;
 }
 
-static int isdn_ppp_mp_init( isdn_net_local * lp, ippp_bundle * add_to )
+static int isdn_ppp_mp_init(isdn_net_local *lp, ippp_bundle *add_to)
 {
-       struct ippp_struct * is;
+       struct ippp_struct *is;
 
        if (lp->ppp_slot < 0) {
                printk(KERN_ERR "%s: lp->ppp_slot(%d) out of range\n",
-                       __func__, lp->ppp_slot);
-               return(-EINVAL);
+                      __func__, lp->ppp_slot);
+               return (-EINVAL);
        }
 
        is = ippp_table[lp->ppp_slot];
        if (add_to) {
-               if( lp->netdev->pb )
+               if (lp->netdev->pb)
                        lp->netdev->pb->ref_ct--;
                lp->netdev->pb = add_to;
        } else {                /* first link in a bundle */
@@ -1568,76 +1568,76 @@ static int isdn_ppp_mp_init( isdn_net_local * lp, ippp_bundle * add_to )
                lp->netdev->pb->seq = UINT_MAX;
        }
        lp->netdev->pb->ref_ct++;
-       
+
        is->last_link_seqno = 0;
        return 0;
 }
 
-static u32 isdn_ppp_mp_get_seq( int short_seq, 
-                                       struct sk_buff * skb, u32 last_seq );
-static struct sk_buff * isdn_ppp_mp_discard( ippp_bundle * mp,
-                       struct sk_buff * from, struct sk_buff * to );
-static void isdn_ppp_mp_reassembly( isdn_net_dev * net_dev, isdn_net_local * lp,
-                               struct sk_buff * from, struct sk_buff * to );
-static void isdn_ppp_mp_free_skb( ippp_bundle * mp, struct sk_buff * skb );
-static void isdn_ppp_mp_print_recv_pkt( int slot, struct sk_buff * skb );
-
-static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, 
-                                                       struct sk_buff *skb)
+static u32 isdn_ppp_mp_get_seq(int short_seq,
+                              struct sk_buff *skb, u32 last_seq);
+static struct sk_buff *isdn_ppp_mp_discard(ippp_bundle *mp,
+                                          struct sk_buff *from, struct sk_buff *to);
+static void isdn_ppp_mp_reassembly(isdn_net_dev *net_dev, isdn_net_local *lp,
+                                  struct sk_buff *from, struct sk_buff *to);
+static void isdn_ppp_mp_free_skb(ippp_bundle *mp, struct sk_buff *skb);
+static void isdn_ppp_mp_print_recv_pkt(int slot, struct sk_buff *skb);
+
+static void isdn_ppp_mp_receive(isdn_net_dev *net_dev, isdn_net_local *lp,
+                               struct sk_buff *skb)
 {
        struct ippp_struct *is;
-       isdn_net_local * lpq;
-       ippp_bundle * mp;
-       isdn_mppp_stats * stats;
-       struct sk_buff * newfrag, * frag, * start, *nextf;
+       isdn_net_local *lpq;
+       ippp_bundle *mp;
+       isdn_mppp_stats *stats;
+       struct sk_buff *newfrag, *frag, *start, *nextf;
        u32 newseq, minseq, thisseq;
        unsigned long flags;
        int slot;
 
        spin_lock_irqsave(&net_dev->pb->lock, flags);
-       mp = net_dev->pb;
-        stats = &mp->stats;
+       mp = net_dev->pb;
+       stats = &mp->stats;
        slot = lp->ppp_slot;
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: lp->ppp_slot(%d)\n",
-                       __func__, lp->ppp_slot);
+                      __func__, lp->ppp_slot);
                stats->frame_drops++;
                dev_kfree_skb(skb);
                spin_unlock_irqrestore(&mp->lock, flags);
                return;
        }
        is = ippp_table[slot];
-       if( ++mp->frames > stats->max_queue_len )
+       if (++mp->frames > stats->max_queue_len)
                stats->max_queue_len = mp->frames;
-       
+
        if (is->debug & 0x8)
                isdn_ppp_mp_print_recv_pkt(lp->ppp_slot, skb);
 
-       newseq = isdn_ppp_mp_get_seq(is->mpppcfg & SC_IN_SHORT_SEQ, 
-                                               skb, is->last_link_seqno);
+       newseq = isdn_ppp_mp_get_seq(is->mpppcfg & SC_IN_SHORT_SEQ,
+                                    skb, is->last_link_seqno);
 
 
        /* if this packet seq # is less than last already processed one,
-        * toss it right away, but check for sequence start case first 
+        * toss it right away, but check for sequence start case first
         */
-       if( mp->seq > MP_LONGSEQ_MAX && (newseq & MP_LONGSEQ_MAXBIT) ) {
+       if (mp->seq > MP_LONGSEQ_MAX && (newseq & MP_LONGSEQ_MAXBIT)) {
                mp->seq = newseq;       /* the first packet: required for
                                         * rfc1990 non-compliant clients --
                                         * prevents constant packet toss */
-       } else if( MP_LT(newseq, mp->seq) ) {
+       } else if (MP_LT(newseq, mp->seq)) {
                stats->frame_drops++;
                isdn_ppp_mp_free_skb(mp, skb);
                spin_unlock_irqrestore(&mp->lock, flags);
                return;
        }
-       
+
        /* find the minimum received sequence number over all links */
        is->last_link_seqno = minseq = newseq;
        for (lpq = net_dev->queue;;) {
                slot = lpq->ppp_slot;
                if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                        printk(KERN_ERR "%s: lpq->ppp_slot(%d)\n",
-                               __func__, lpq->ppp_slot);
+                              __func__, lpq->ppp_slot);
                } else {
                        u32 lls = ippp_table[slot]->last_link_seqno;
                        if (MP_LT(lls, minseq))
@@ -1651,17 +1651,17 @@ static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp,
                                         * packets */
        newfrag = skb;
 
-       /* if this new fragment is before the first one, then enqueue it now. */
-       if ((frag = mp->frags) == NULL || MP_LT(newseq, MP_SEQ(frag))) {
+       /* if this new fragment is before the first one, then enqueue it now. */
+       if ((frag = mp->frags) == NULL || MP_LT(newseq, MP_SEQ(frag))) {
                newfrag->next = frag;
-               mp->frags = frag = newfrag;
-               newfrag = NULL;
-       }
+               mp->frags = frag = newfrag;
+               newfrag = NULL;
+       }
 
-       start = MP_FLAGS(frag) & MP_BEGIN_FRAG &&
-                               MP_SEQ(frag) == mp->seq ? frag : NULL;
+       start = MP_FLAGS(frag) & MP_BEGIN_FRAG &&
+               MP_SEQ(frag) == mp->seq ? frag : NULL;
 
-       /* 
+       /*
         * main fragment traversing loop
         *
         * try to accomplish several tasks:
@@ -1675,71 +1675,71 @@ static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp,
         *   come to complete such sequence and it should be discarded
         *
         * loop completes when we accomplished the following tasks:
-        * - new fragment is inserted in the proper sequence ('newfrag' is 
+        * - new fragment is inserted in the proper sequence ('newfrag' is
         *   set to NULL)
-        * - we hit a gap in the sequence, so no reassembly/processing is 
+        * - we hit a gap in the sequence, so no reassembly/processing is
         *   possible ('start' would be set to NULL)
         *
         * algorithm for this code is derived from code in the book
         * 'PPP Design And Debugging' by James Carlson (Addison-Wesley)
         */
-       while (start != NULL || newfrag != NULL) {
-
-               thisseq = MP_SEQ(frag);
-               nextf = frag->next;
-
-               /* drop any duplicate fragments */
-               if (newfrag != NULL && thisseq == newseq) {
-                       isdn_ppp_mp_free_skb(mp, newfrag);
-                       newfrag = NULL;
-               }
-
-               /* insert new fragment before next element if possible. */
-               if (newfrag != NULL && (nextf == NULL || 
-                                               MP_LT(newseq, MP_SEQ(nextf)))) {
-                       newfrag->next = nextf;
-                       frag->next = nextf = newfrag;
-                       newfrag = NULL;
-               }
-
-               if (start != NULL) {
-                       /* check for misplaced start */
-                       if (start != frag && (MP_FLAGS(frag) & MP_BEGIN_FRAG)) {
+       while (start != NULL || newfrag != NULL) {
+
+               thisseq = MP_SEQ(frag);
+               nextf = frag->next;
+
+               /* drop any duplicate fragments */
+               if (newfrag != NULL && thisseq == newseq) {
+                       isdn_ppp_mp_free_skb(mp, newfrag);
+                       newfrag = NULL;
+               }
+
+               /* insert new fragment before next element if possible. */
+               if (newfrag != NULL && (nextf == NULL ||
+                                       MP_LT(newseq, MP_SEQ(nextf)))) {
+                       newfrag->next = nextf;
+                       frag->next = nextf = newfrag;
+                       newfrag = NULL;
+               }
+
+               if (start != NULL) {
+                       /* check for misplaced start */
+                       if (start != frag && (MP_FLAGS(frag) & MP_BEGIN_FRAG)) {
                                printk(KERN_WARNING"isdn_mppp(seq %d): new "
-                                     "BEGIN flag with no prior END", thisseq);
+                                      "BEGIN flag with no prior END", thisseq);
                                stats->seqerrs++;
                                stats->frame_drops++;
-                               start = isdn_ppp_mp_discard(mp, start,frag);
+                               start = isdn_ppp_mp_discard(mp, start, frag);
                                nextf = frag->next;
-                       }
-               } else if (MP_LE(thisseq, minseq)) {            
-                       if (MP_FLAGS(frag) & MP_BEGIN_FRAG)
+                       }
+               } else if (MP_LE(thisseq, minseq)) {
+                       if (MP_FLAGS(frag) & MP_BEGIN_FRAG)
                                start = frag;
-                       else {
+                       else {
                                if (MP_FLAGS(frag) & MP_END_FRAG)
-                                       stats->frame_drops++;
-                               if( mp->frags == frag )
-                                       mp->frags = nextf;      
+                                       stats->frame_drops++;
+                               if (mp->frags == frag)
+                                       mp->frags = nextf;
                                isdn_ppp_mp_free_skb(mp, frag);
                                frag = nextf;
                                continue;
-                       }
+                       }
                }
-               
+
                /* if start is non-null and we have end fragment, then
-                * we have full reassembly sequence -- reassemble 
+                * we have full reassembly sequence -- reassemble
                 * and process packet now
                 */
-               if (start != NULL && (MP_FLAGS(frag) & MP_END_FRAG)) {
-                       minseq = mp->seq = (thisseq+1) & MP_LONGSEQ_MASK;
-                       /* Reassemble the packet then dispatch it */
+               if (start != NULL && (MP_FLAGS(frag) & MP_END_FRAG)) {
+                       minseq = mp->seq = (thisseq + 1) & MP_LONGSEQ_MASK;
+                       /* Reassemble the packet then dispatch it */
                        isdn_ppp_mp_reassembly(net_dev, lp, start, nextf);
-      
-                       start = NULL;
-                       frag = NULL;
 
-                       mp->frags = nextf;
-               }
+                       start = NULL;
+                       frag = NULL;
+
+                       mp->frags = nextf;
+               }
 
                /* check if need to update start pointer: if we just
                 * reassembled the packet and sequence is contiguous
@@ -1749,48 +1749,48 @@ static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp,
                 * if sequence is not contiguous, either clear everything
                 * below low watermark and set start to the next frag or
                 * clear start ptr.
-                */ 
-               if (nextf != NULL && 
-                   ((thisseq+1) & MP_LONGSEQ_MASK) == MP_SEQ(nextf)) {
-                       /* if we just reassembled and the next one is here, 
+                */
+               if (nextf != NULL &&
+                   ((thisseq + 1) & MP_LONGSEQ_MASK) == MP_SEQ(nextf)) {
+                       /* if we just reassembled and the next one is here,
                         * then start another reassembly. */
 
-                       if (frag == NULL) {
+                       if (frag == NULL) {
                                if (MP_FLAGS(nextf) & MP_BEGIN_FRAG)
-                                       start = nextf;
+                                       start = nextf;
                                else
                                {
-                                       printk(KERN_WARNING"isdn_mppp(seq %d):"
-                                               " END flag with no following "
-                                               "BEGIN", thisseq);
+                                       printk(KERN_WARNING"isdn_mppp(seq %d):"
+                                              " END flag with no following "
+                                              "BEGIN", thisseq);
                                        stats->seqerrs++;
                                }
                        }
 
-               } else {
-                       if ( nextf != NULL && frag != NULL &&
-                                               MP_LT(thisseq, minseq)) {
+               } else {
+                       if (nextf != NULL && frag != NULL &&
+                           MP_LT(thisseq, minseq)) {
                                /* we've got a break in the sequence
                                 * and we not at the end yet
                                 * and we did not just reassembled
                                 *(if we did, there wouldn't be anything before)
-                                * and we below the low watermark 
-                                * discard all the frames below low watermark 
+                                * and we below the low watermark
+                                * discard all the frames below low watermark
                                 * and start over */
                                stats->frame_drops++;
-                               mp->frags = isdn_ppp_mp_discard(mp,start,nextf);
+                               mp->frags = isdn_ppp_mp_discard(mp, start, nextf);
                        }
                        /* break in the sequence, no reassembly */
-                       start = NULL;
-               }
-                               
-               frag = nextf;
-       }       /* while -- main loop */
-       
-       if (mp->frags == NULL)
-               mp->frags = frag;
-               
-       /* rather straighforward way to deal with (not very) possible 
+                       start = NULL;
+               }
+
+               frag = nextf;
+       }       /* while -- main loop */
+
+       if (mp->frags == NULL)
+               mp->frags = frag;
+
+       /* rather straighforward way to deal with (not very) possible
         * queue overflow */
        if (mp->frames > MP_MAX_QUEUE_LEN) {
                stats->overflows++;
@@ -1803,11 +1803,11 @@ static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp,
        spin_unlock_irqrestore(&mp->lock, flags);
 }
 
-static void isdn_ppp_mp_cleanup( isdn_net_local * lp )
+static void isdn_ppp_mp_cleanup(isdn_net_local *lp)
 {
-       struct sk_buff * frag = lp->netdev->pb->frags;
-       struct sk_buff * nextfrag;
-       while( frag ) {
+       struct sk_buff *frag = lp->netdev->pb->frags;
+       struct sk_buff *nextfrag;
+       while (frag) {
                nextfrag = frag->next;
                isdn_ppp_mp_free_skb(lp->netdev->pb, frag);
                frag = nextfrag;
@@ -1815,117 +1815,117 @@ static void isdn_ppp_mp_cleanup( isdn_net_local * lp )
        lp->netdev->pb->frags = NULL;
 }
 
-static u32 isdn_ppp_mp_get_seq( int short_seq, 
-                                       struct sk_buff * skb, u32 last_seq )
+static u32 isdn_ppp_mp_get_seq(int short_seq,
+                              struct sk_buff *skb, u32 last_seq)
 {
        u32 seq;
        int flags = skb->data[0] & (MP_BEGIN_FRAG | MP_END_FRAG);
-   
-       if( !short_seq )
+
+       if (!short_seq)
        {
                seq = ntohl(*(__be32 *)skb->data) & MP_LONGSEQ_MASK;
-               skb_push(skb,1);
+               skb_push(skb, 1);
        }
        else
        {
-               /* convert 12-bit short seq number to 24-bit long one 
-               */
+               /* convert 12-bit short seq number to 24-bit long one
+                */
                seq = ntohs(*(__be16 *)skb->data) & MP_SHORTSEQ_MASK;
-       
+
                /* check for seqence wrap */
-               if( !(seq &  MP_SHORTSEQ_MAXBIT) && 
-                    (last_seq &  MP_SHORTSEQ_MAXBIT) && 
-                    (unsigned long)last_seq <= MP_LONGSEQ_MAX )
-                       seq |= (last_seq + MP_SHORTSEQ_MAX+1) & 
-                                       (~MP_SHORTSEQ_MASK & MP_LONGSEQ_MASK);
+               if (!(seq &  MP_SHORTSEQ_MAXBIT) &&
+                   (last_seq &  MP_SHORTSEQ_MAXBIT) &&
+                   (unsigned long)last_seq <= MP_LONGSEQ_MAX)
+                       seq |= (last_seq + MP_SHORTSEQ_MAX + 1) &
+                               (~MP_SHORTSEQ_MASK & MP_LONGSEQ_MASK);
                else
                        seq |= last_seq & (~MP_SHORTSEQ_MASK & MP_LONGSEQ_MASK);
-               
+
                skb_push(skb, 3);       /* put converted seqence back in skb */
        }
-       *(u32*)(skb->data+1) = seq;     /* put seqence back in _host_ byte
+       *(u32 *)(skb->data + 1) = seq;  /* put seqence back in _host_ byte
                                         * order */
        skb->data[0] = flags;           /* restore flags */
        return seq;
 }
 
-struct sk_buff * isdn_ppp_mp_discard( ippp_bundle * mp,
-                       struct sk_buff * from, struct sk_buff * to )
+struct sk_buff *isdn_ppp_mp_discard(ippp_bundle *mp,
+                                   struct sk_buff *from, struct sk_buff *to)
 {
-       if( from )
+       if (from)
                while (from != to) {
-                       struct sk_buff * next = from->next;
+                       struct sk_buff *next = from->next;
                        isdn_ppp_mp_free_skb(mp, from);
-                       from = next;
+                       from = next;
                }
        return from;
 }
 
-void isdn_ppp_mp_reassembly( isdn_net_dev * net_dev, isdn_net_local * lp,
-                               struct sk_buff * from, struct sk_buff * to )
+void isdn_ppp_mp_reassembly(isdn_net_dev *net_dev, isdn_net_local *lp,
+                           struct sk_buff *from, struct sk_buff *to)
 {
-       ippp_bundle * mp = net_dev->pb;
+       ippp_bundle *mp = net_dev->pb;
        int proto;
-       struct sk_buff * skb;
+       struct sk_buff *skb;
        unsigned int tot_len;
 
        if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: lp->ppp_slot(%d) out of range\n",
-                       __func__, lp->ppp_slot);
+                      __func__, lp->ppp_slot);
                return;
        }
-       if( MP_FLAGS(from) == (MP_BEGIN_FRAG | MP_END_FRAG) ) {
-               if( ippp_table[lp->ppp_slot]->debug & 0x40 )
+       if (MP_FLAGS(from) == (MP_BEGIN_FRAG | MP_END_FRAG)) {
+               if (ippp_table[lp->ppp_slot]->debug & 0x40)
                        printk(KERN_DEBUG "isdn_mppp: reassembly: frame %d, "
-                                       "len %d\n", MP_SEQ(from), from->len );
+                              "len %d\n", MP_SEQ(from), from->len);
                skb = from;
                skb_pull(skb, MP_HEADER_LEN);
-               mp->frames--;   
+               mp->frames--;
        } else {
-               struct sk_buff * frag;
+               struct sk_buff *frag;
                int n;
 
-               for(tot_len=n=0, frag=from; frag != to; frag=frag->next, n++)
+               for (tot_len = n = 0, frag = from; frag != to; frag = frag->next, n++)
                        tot_len += frag->len - MP_HEADER_LEN;
 
-               if( ippp_table[lp->ppp_slot]->debug & 0x40 )
+               if (ippp_table[lp->ppp_slot]->debug & 0x40)
                        printk(KERN_DEBUG"isdn_mppp: reassembling frames %d "
-                               "to %d, len %d\n", MP_SEQ(from), 
-                               (MP_SEQ(from)+n-1) & MP_LONGSEQ_MASK, tot_len );
-               if( (skb = dev_alloc_skb(tot_len)) == NULL ) {
+                              "to %d, len %d\n", MP_SEQ(from),
+                              (MP_SEQ(from) + n - 1) & MP_LONGSEQ_MASK, tot_len);
+               if ((skb = dev_alloc_skb(tot_len)) == NULL) {
                        printk(KERN_ERR "isdn_mppp: cannot allocate sk buff "
-                                       "of size %d\n", tot_len);
+                              "of size %d\n", tot_len);
                        isdn_ppp_mp_discard(mp, from, to);
                        return;
                }
 
-               while( from != to ) {
+               while (from != to) {
                        unsigned int len = from->len - MP_HEADER_LEN;
 
                        skb_copy_from_linear_data_offset(from, MP_HEADER_LEN,
-                                                        skb_put(skb,len),
+                                                        skb_put(skb, len),
                                                         len);
                        frag = from->next;
                        isdn_ppp_mp_free_skb(mp, from);
-                       from = frag; 
+                       from = frag;
                }
        }
-       proto = isdn_ppp_strip_proto(skb);
+       proto = isdn_ppp_strip_proto(skb);
        isdn_ppp_push_higher(net_dev, lp, skb, proto);
 }
 
-static void isdn_ppp_mp_free_skb(ippp_bundle * mp, struct sk_buff * skb)
+static void isdn_ppp_mp_free_skb(ippp_bundle *mp, struct sk_buff *skb)
 {
        dev_kfree_skb(skb);
        mp->frames--;
 }
 
-static void isdn_ppp_mp_print_recv_pkt( int slot, struct sk_buff * skb )
+static void isdn_ppp_mp_print_recv_pkt(int slot, struct sk_buff *skb)
 {
-       printk(KERN_DEBUG "mp_recv: %d/%d -> %02x %02x %02x %02x %02x %02x\n", 
-               slot, (int) skb->len, 
-               (int) skb->data[0], (int) skb->data[1], (int) skb->data[2],
-               (int) skb->data[3], (int) skb->data[4], (int) skb->data[5]);
+       printk(KERN_DEBUG "mp_recv: %d/%d -> %02x %02x %02x %02x %02x %02x\n",
+              slot, (int) skb->len,
+              (int) skb->data[0], (int) skb->data[1], (int) skb->data[2],
+              (int) skb->data[3], (int) skb->data[4], (int) skb->data[5]);
 }
 
 static int
@@ -1944,18 +1944,18 @@ isdn_ppp_bundle(struct ippp_struct *is, int unit)
                return -EINVAL;
        }
 
-       spin_lock_irqsave(&p->pb->lock, flags);
+       spin_lock_irqsave(&p->pb->lock, flags);
 
        nlp = is->lp;
        lp = p->queue;
-       ifnlp->ppp_slot < 0 || nlp->ppp_slot >= ISDN_MAX_CHANNELS ||
-               lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS ) {
+       if (nlp->ppp_slot < 0 || nlp->ppp_slot >= ISDN_MAX_CHANNELS ||
+           lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "ippp_bundle: binding to invalid slot %d\n",
-                       nlp->ppp_slot < 0 || nlp->ppp_slot >= ISDN_MAX_CHANNELS ? 
-                       nlp->ppp_slot : lp->ppp_slot );
+                      nlp->ppp_slot < 0 || nlp->ppp_slot >= ISDN_MAX_CHANNELS ?
+                      nlp->ppp_slot : lp->ppp_slot);
                rc = -EINVAL;
                goto out;
-       }
+       }
 
        isdn_net_add_to_bundle(p, nlp);
 
@@ -1971,9 +1971,9 @@ out:
        spin_unlock_irqrestore(&p->pb->lock, flags);
        return rc;
 }
-  
+
 #endif /* CONFIG_ISDN_MPP */
-  
+
 /*
  * network device ioctl handlers
  */
@@ -2020,7 +2020,7 @@ isdn_ppp_dev_ioctl_stats(int slot, struct ifreq *ifr, struct net_device *dev)
 int
 isdn_ppp_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
-       int error=0;
+       int error = 0;
        int len;
        isdn_net_local *lp = netdev_priv(dev);
 
@@ -2030,18 +2030,18 @@ isdn_ppp_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
        switch (cmd) {
 #define PPP_VERSION "2.3.7"
-               case SIOCGPPPVER:
-                       len = strlen(PPP_VERSION) + 1;
-                       if (copy_to_user(ifr->ifr_data, PPP_VERSION, len))
-                               error = -EFAULT;
-                       break;
+       case SIOCGPPPVER:
+               len = strlen(PPP_VERSION) + 1;
+               if (copy_to_user(ifr->ifr_data, PPP_VERSION, len))
+                       error = -EFAULT;
+               break;
 
-               case SIOCGPPPSTATS:
-                       error = isdn_ppp_dev_ioctl_stats(lp->ppp_slot, ifr, dev);
-                       break;
-               default:
-                       error = -EINVAL;
-                       break;
+       case SIOCGPPPSTATS:
+               error = isdn_ppp_dev_ioctl_stats(lp->ppp_slot, ifr, dev);
+               break;
+       default:
+               error = -EINVAL;
+               break;
        }
        return error;
 }
@@ -2050,9 +2050,9 @@ static int
 isdn_ppp_if_get_unit(char *name)
 {
        int len,
-        i,
-        unit = 0,
-        deci;
+               i,
+               unit = 0,
+               deci;
 
        len = strlen(name);
 
@@ -2129,7 +2129,7 @@ isdn_ppp_hangup_slave(char *name)
                                break;
                } else if (mlp->flags & ISDN_NET_CONNECTED)
                        break;
-               
+
                sdev = mlp->slave;
        }
        if (!sdev)
@@ -2202,8 +2202,8 @@ static void isdn_ppp_ccp_xmit_reset(struct ippp_struct *is, int proto,
 
        /* Alloc large enough skb */
        hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen;
-       skb = alloc_skb(len + hl + 16,GFP_ATOMIC);
-       if(!skb) {
+       skb = alloc_skb(len + hl + 16, GFP_ATOMIC);
+       if (!skb) {
                printk(KERN_WARNING
                       "ippp: CCP cannot send reset - out of memory\n");
                return;
@@ -2211,7 +2211,7 @@ static void isdn_ppp_ccp_xmit_reset(struct ippp_struct *is, int proto,
        skb_reserve(skb, hl);
 
        /* We may need to stuff an address and control field first */
-       if(!(is->pppcfg & SC_COMP_AC)) {
+       if (!(is->pppcfg & SC_COMP_AC)) {
                p = skb_put(skb, 2);
                *p++ = 0xff;
                *p++ = 0x03;
@@ -2228,14 +2228,14 @@ static void isdn_ppp_ccp_xmit_reset(struct ippp_struct *is, int proto,
        *p++ = (cnt & 0xff);
 
        /* Now stuff remaining bytes */
-       if(len) {
+       if (len) {
                p = skb_put(skb, len);
                memcpy(p, data, len);
        }
 
        /* skb is now ready for xmit */
        printk(KERN_DEBUG "Sending CCP Frame:\n");
-       isdn_ppp_frame_log("ccp-xmit", skb->data, skb->len, 32, is->unit,lp->ppp_slot);
+       isdn_ppp_frame_log("ccp-xmit", skb->data, skb->len, 32, is->unit, lp->ppp_slot);
 
        isdn_net_write_super(lp, skb);
 }
@@ -2245,7 +2245,7 @@ static struct ippp_ccp_reset *isdn_ppp_ccp_reset_alloc(struct ippp_struct *is)
 {
        struct ippp_ccp_reset *r;
        r = kzalloc(sizeof(struct ippp_ccp_reset), GFP_KERNEL);
-       if(!r) {
+       if (!r) {
                printk(KERN_ERR "ippp_ccp: failed to allocate reset data"
                       " structure - no mem\n");
                return NULL;
@@ -2262,8 +2262,8 @@ static void isdn_ppp_ccp_reset_free(struct ippp_struct *is)
 
        printk(KERN_DEBUG "ippp_ccp: freeing reset data structure %p\n",
               is->reset);
-       for(id = 0; id < 256; id++) {
-               if(is->reset->rs[id]) {
+       for (id = 0; id < 256; id++) {
+               if (is->reset->rs[id]) {
                        isdn_ppp_ccp_reset_free_state(is, (unsigned char)id);
                }
        }
@@ -2277,11 +2277,11 @@ static void isdn_ppp_ccp_reset_free_state(struct ippp_struct *is,
 {
        struct ippp_ccp_reset_state *rs;
 
-       if(is->reset->rs[id]) {
+       if (is->reset->rs[id]) {
                printk(KERN_DEBUG "ippp_ccp: freeing state for id %d\n", id);
                rs = is->reset->rs[id];
                /* Make sure the kernel will not call back later */
-               if(rs->ta)
+               if (rs->ta)
                        del_timer(&rs->timer);
                is->reset->rs[id] = NULL;
                kfree(rs);
@@ -2297,13 +2297,13 @@ static void isdn_ppp_ccp_timer_callback(unsigned long closure)
        struct ippp_ccp_reset_state *rs =
                (struct ippp_ccp_reset_state *)closure;
 
-       if(!rs) {
+       if (!rs) {
                printk(KERN_ERR "ippp_ccp: timer cb with zero closure.\n");
                return;
        }
-       if(rs->ta && rs->state == CCPResetSentReq) {
+       if (rs->ta && rs->state == CCPResetSentReq) {
                /* We are correct here */
-               if(!rs->expra) {
+               if (!rs->expra) {
                        /* Hmm, there is no Ack really expected. We can clean
                           up the state now, it will be reallocated if the
                           decompressor insists on another reset */
@@ -2317,7 +2317,7 @@ static void isdn_ppp_ccp_timer_callback(unsigned long closure)
                isdn_ppp_ccp_xmit_reset(rs->is, PPP_CCP, CCP_RESETREQ, rs->id,
                                        rs->data, rs->dlen);
                /* Restart timer */
-               rs->timer.expires = jiffies + HZ*5;
+               rs->timer.expires = jiffies + HZ * 5;
                add_timer(&rs->timer);
        } else {
                printk(KERN_WARNING "ippp_ccp: timer cb in wrong state %d\n",
@@ -2327,16 +2327,16 @@ static void isdn_ppp_ccp_timer_callback(unsigned long closure)
 
 /* Allocate a new reset transaction state */
 static struct ippp_ccp_reset_state *isdn_ppp_ccp_reset_alloc_state(struct ippp_struct *is,
-                                                     unsigned char id)
+                                                                  unsigned char id)
 {
        struct ippp_ccp_reset_state *rs;
-       if(is->reset->rs[id]) {
+       if (is->reset->rs[id]) {
                printk(KERN_WARNING "ippp_ccp: old state exists for id %d\n",
                       id);
                return NULL;
        } else {
                rs = kzalloc(sizeof(struct ippp_ccp_reset_state), GFP_KERNEL);
-               if(!rs)
+               if (!rs)
                        return NULL;
                rs->state = CCPResetIdle;
                rs->is = is;
@@ -2357,21 +2357,21 @@ static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
 {
        struct ippp_ccp_reset_state *rs;
 
-       if(rp->valid) {
+       if (rp->valid) {
                /* The decompressor defines parameters by itself */
-               if(rp->rsend) {
+               if (rp->rsend) {
                        /* And he wants us to send a request */
-                       if(!(rp->idval)) {
+                       if (!(rp->idval)) {
                                printk(KERN_ERR "ippp_ccp: decompressor must"
                                       " specify reset id\n");
                                return;
                        }
-                       if(is->reset->rs[rp->id]) {
+                       if (is->reset->rs[rp->id]) {
                                /* There is already a transaction in existence
                                   for this id. May be still waiting for a
                                   Ack or may be wrong. */
                                rs = is->reset->rs[rp->id];
-                               if(rs->state == CCPResetSentReq && rs->ta) {
+                               if (rs->state == CCPResetSentReq && rs->ta) {
                                        printk(KERN_DEBUG "ippp_ccp: reset"
                                               " trans still in progress"
                                               " for id %d\n", rp->id);
@@ -2385,14 +2385,14 @@ static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
                                printk(KERN_DEBUG "ippp_ccp: new trans for id"
                                       " %d to be started\n", rp->id);
                                rs = isdn_ppp_ccp_reset_alloc_state(is, rp->id);
-                               if(!rs) {
+                               if (!rs) {
                                        printk(KERN_ERR "ippp_ccp: out of mem"
                                               " allocing ccp trans\n");
                                        return;
                                }
                                rs->state = CCPResetSentReq;
                                rs->expra = rp->expra;
-                               if(rp->dtval) {
+                               if (rp->dtval) {
                                        rs->dlen = rp->dlen;
                                        memcpy(rs->data, rp->data, rp->dlen);
                                }
@@ -2401,7 +2401,7 @@ static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
                                                        CCP_RESETREQ, rs->id,
                                                        rs->data, rs->dlen);
                                /* Start the timer */
-                               rs->timer.expires = jiffies + 5*HZ;
+                               rs->timer.expires = jiffies + 5 * HZ;
                                add_timer(&rs->timer);
                                rs->ta = 1;
                        }
@@ -2413,12 +2413,12 @@ static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
                   care about them, so we just send the minimal requests
                   and increase ids only when an Ack is received for a
                   given id */
-               if(is->reset->rs[is->reset->lastid]) {
+               if (is->reset->rs[is->reset->lastid]) {
                        /* There is already a transaction in existence
                           for this id. May be still waiting for a
                           Ack or may be wrong. */
                        rs = is->reset->rs[is->reset->lastid];
-                       if(rs->state == CCPResetSentReq && rs->ta) {
+                       if (rs->state == CCPResetSentReq && rs->ta) {
                                printk(KERN_DEBUG "ippp_ccp: reset"
                                       " trans still in progress"
                                       " for id %d\n", rp->id);
@@ -2432,7 +2432,7 @@ static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
                               " %d to be started\n", is->reset->lastid);
                        rs = isdn_ppp_ccp_reset_alloc_state(is,
                                                            is->reset->lastid);
-                       if(!rs) {
+                       if (!rs) {
                                printk(KERN_ERR "ippp_ccp: out of mem"
                                       " allocing ccp trans\n");
                                return;
@@ -2446,7 +2446,7 @@ static void isdn_ppp_ccp_reset_trans(struct ippp_struct *is,
                        isdn_ppp_ccp_xmit_reset(is, PPP_CCP, CCP_RESETREQ,
                                                rs->id, NULL, 0);
                        /* Start the timer */
-                       rs->timer.expires = jiffies + 5*HZ;
+                       rs->timer.expires = jiffies + 5 * HZ;
                        add_timer(&rs->timer);
                        rs->ta = 1;
                }
@@ -2460,17 +2460,17 @@ static void isdn_ppp_ccp_reset_ack_rcvd(struct ippp_struct *is,
 {
        struct ippp_ccp_reset_state *rs = is->reset->rs[id];
 
-       if(rs) {
-               if(rs->ta && rs->state == CCPResetSentReq) {
+       if (rs) {
+               if (rs->ta && rs->state == CCPResetSentReq) {
                        /* Great, we are correct */
-                       if(!rs->expra)
+                       if (!rs->expra)
                                printk(KERN_DEBUG "ippp_ccp: ResetAck received"
                                       " for id %d but not expected\n", id);
                } else {
                        printk(KERN_INFO "ippp_ccp: ResetAck received out of"
                               "sync for id %d\n", id);
                }
-               if(rs->ta) {
+               if (rs->ta) {
                        rs->ta = 0;
                        del_timer(&rs->timer);
                }
@@ -2483,7 +2483,7 @@ static void isdn_ppp_ccp_reset_ack_rcvd(struct ippp_struct *is,
        is->reset->lastid++;
 }
 
-/* 
+/*
  * decompress packet
  *
  * if master = 0, we're trying to uncompress an per-link compressed packet,
@@ -2495,8 +2495,8 @@ static void isdn_ppp_ccp_reset_ack_rcvd(struct ippp_struct *is,
  *        NULL if decompression error
  */
 
-static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struct *is,struct ippp_struct *master,
-       int *proto)
+static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb, struct ippp_struct *is, struct ippp_struct *master,
+                                          int *proto)
 {
        void *stat = NULL;
        struct isdn_ppp_compressor *ipc = NULL;
@@ -2506,8 +2506,8 @@ static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struc
        struct isdn_ppp_resetparams rsparm;
        unsigned char rsdata[IPPP_RESET_MAXDATABYTES];
 
-       if(!master) {
-               // per-link decompression 
+       if (!master) {
+               // per-link decompression
                stat = is->link_decomp_stat;
                ipc = is->link_decompressor;
                ri = is;
@@ -2524,28 +2524,28 @@ static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struc
        }
        BUG_ON(!stat); // if we have a compressor, stat has been set as well
 
-       if((master && *proto == PPP_COMP) || (!master && *proto == PPP_COMPFRAG) ) {
+       if ((master && *proto == PPP_COMP) || (!master && *proto == PPP_COMPFRAG)) {
                // compressed packets are compressed by their protocol type
 
                // Set up reset params for the decompressor
-               memset(&rsparm, 0, sizeof(rsparm));
-               rsparm.data = rsdata;
-               rsparm.maxdlen = IPPP_RESET_MAXDATABYTES;
-  
-               skb_out = dev_alloc_skb(is->mru + PPP_HDRLEN);
-               if (!skb_out) {
-                       kfree_skb(skb);
-                       printk(KERN_ERR "ippp: decomp memory allocation failure\n");
+               memset(&rsparm, 0, sizeof(rsparm));
+               rsparm.data = rsdata;
+               rsparm.maxdlen = IPPP_RESET_MAXDATABYTES;
+
+               skb_out = dev_alloc_skb(is->mru + PPP_HDRLEN);
+               if (!skb_out) {
+                       kfree_skb(skb);
+                       printk(KERN_ERR "ippp: decomp memory allocation failure\n");
                        return NULL;
-               }
+               }
                len = ipc->decompress(stat, skb, skb_out, &rsparm);
                kfree_skb(skb);
                if (len <= 0) {
-                       switch(len) {
+                       switch (len) {
                        case DECOMP_ERROR:
                                printk(KERN_INFO "ippp: decomp wants reset %s params\n",
                                       rsparm.valid ? "with" : "without");
-                               
+
                                isdn_ppp_ccp_reset_trans(ri, &rsparm);
                                break;
                        case DECOMP_FATALERROR:
@@ -2563,7 +2563,7 @@ static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struc
                        return NULL;
                }
                return skb_out;
-       } else { 
+       } else {
                // uncompressed packets are fed through the decompressor to
                // update the decompressor state
                ipc->incomp(stat, skb, *proto);
@@ -2572,31 +2572,31 @@ static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struc
 }
 
 /*
- * compress a frame 
+ * compress a frame
  *   type=0: normal/bundle compression
  *       =1: link compression
  * returns original skb if we haven't compressed the frame
  * and a new skb pointer if we've done it
  */
-static struct sk_buff *isdn_ppp_compress(struct sk_buff *skb_in,int *proto,
-       struct ippp_struct *is,struct ippp_struct *master,int type)
+static struct sk_buff *isdn_ppp_compress(struct sk_buff *skb_in, int *proto,
+                                        struct ippp_struct *is, struct ippp_struct *master, int type)
 {
-    int ret;
-    int new_proto;
-    struct isdn_ppp_compressor *compressor;
-    void *stat;
-    struct sk_buff *skb_out;
+       int ret;
+       int new_proto;
+       struct isdn_ppp_compressor *compressor;
+       void *stat;
+       struct sk_buff *skb_out;
 
        /* we do not compress control protocols */
-    if(*proto < 0 || *proto > 0x3fff) {
-           return skb_in;
-    }
+       if (*proto < 0 || *proto > 0x3fff) {
+               return skb_in;
+       }
 
-       if(type) { /* type=1 => Link compression */
+       if (type) { /* type=1 => Link compression */
                return skb_in;
        }
        else {
-               if(!master) {
+               if (!master) {
                        compressor = is->compressor;
                        stat = is->comp_stat;
                }
@@ -2607,90 +2607,90 @@ static struct sk_buff *isdn_ppp_compress(struct sk_buff *skb_in,int *proto,
                new_proto = PPP_COMP;
        }
 
-       if(!compressor) {
+       if (!compressor) {
                printk(KERN_ERR "isdn_ppp: No compressor set!\n");
                return skb_in;
        }
-       if(!stat) {
+       if (!stat) {
                printk(KERN_ERR "isdn_ppp: Compressor not initialized?\n");
                return skb_in;
        }
 
        /* Allow for at least 150 % expansion (for now) */
-       skb_out = alloc_skb(skb_in->len + skb_in->len/2 + 32 +
-               skb_headroom(skb_in), GFP_ATOMIC);
-       if(!skb_out)
+       skb_out = alloc_skb(skb_in->len + skb_in->len / 2 + 32 +
+                           skb_headroom(skb_in), GFP_ATOMIC);
+       if (!skb_out)
                return skb_in;
        skb_reserve(skb_out, skb_headroom(skb_in));
 
-       ret = (compressor->compress)(stat,skb_in,skb_out,*proto);
-       if(!ret) {
+       ret = (compressor->compress)(stat, skb_in, skb_out, *proto);
+       if (!ret) {
                dev_kfree_skb(skb_out);
                return skb_in;
        }
-       
+
        dev_kfree_skb(skb_in);
        *proto = new_proto;
        return skb_out;
 }
 
 /*
- * we received a CCP frame .. 
+ * we received a CCP frame ..
  * not a clean solution, but we MUST handle a few cases in the kernel
  */
 static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
-        struct sk_buff *skb,int proto)
+                                struct sk_buff *skb, int proto)
 {
        struct ippp_struct *is;
        struct ippp_struct *mis;
        int len;
        struct isdn_ppp_resetparams rsparm;
-       unsigned char rsdata[IPPP_RESET_MAXDATABYTES];  
+       unsigned char rsdata[IPPP_RESET_MAXDATABYTES];
 
        printk(KERN_DEBUG "Received CCP frame from peer slot(%d)\n",
-               lp->ppp_slot);
+              lp->ppp_slot);
        if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: lp->ppp_slot(%d) out of range\n",
-                       __func__, lp->ppp_slot);
+                      __func__, lp->ppp_slot);
                return;
        }
        is = ippp_table[lp->ppp_slot];
-       isdn_ppp_frame_log("ccp-rcv", skb->data, skb->len, 32, is->unit,lp->ppp_slot);
+       isdn_ppp_frame_log("ccp-rcv", skb->data, skb->len, 32, is->unit, lp->ppp_slot);
 
-       if(lp->master) {
+       if (lp->master) {
                int slot = ISDN_MASTER_PRIV(lp)->ppp_slot;
                if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                        printk(KERN_ERR "%s: slot(%d) out of range\n",
-                               __func__, slot);
+                              __func__, slot);
                        return;
-               }       
+               }
                mis = ippp_table[slot];
        } else
                mis = is;
 
-       switch(skb->data[0]) {
+       switch (skb->data[0]) {
        case CCP_CONFREQ:
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Disable compression here!\n");
-               if(proto == PPP_CCP)
-                       mis->compflags &= ~SC_COMP_ON;          
+               if (proto == PPP_CCP)
+                       mis->compflags &= ~SC_COMP_ON;
                else
-                       is->compflags &= ~SC_LINK_COMP_ON;              
+                       is->compflags &= ~SC_LINK_COMP_ON;
                break;
        case CCP_TERMREQ:
        case CCP_TERMACK:
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Disable (de)compression here!\n");
-               if(proto == PPP_CCP)
-                       mis->compflags &= ~(SC_DECOMP_ON|SC_COMP_ON);           
+               if (proto == PPP_CCP)
+                       mis->compflags &= ~(SC_DECOMP_ON | SC_COMP_ON);
                else
-                       is->compflags &= ~(SC_LINK_DECOMP_ON|SC_LINK_COMP_ON);          
+                       is->compflags &= ~(SC_LINK_DECOMP_ON | SC_LINK_COMP_ON);
                break;
        case CCP_CONFACK:
                /* if we RECEIVE an ackowledge we enable the decompressor */
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Enable decompression here!\n");
-               if(proto == PPP_CCP) {
+               if (proto == PPP_CCP) {
                        if (!mis->decompressor)
                                break;
                        mis->compflags |= SC_DECOMP_ON;
@@ -2706,11 +2706,11 @@ static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
                len = (skb->data[2] << 8) | skb->data[3];
                len -= 4;
 
-               if(proto == PPP_CCP) {
+               if (proto == PPP_CCP) {
                        /* If a reset Ack was outstanding for this id, then
                           clean up the state engine */
                        isdn_ppp_ccp_reset_ack_rcvd(mis, skb->data[1]);
-                       if(mis->decompressor && mis->decomp_stat)
+                       if (mis->decompressor && mis->decomp_stat)
                                mis->decompressor->
                                        reset(mis->decomp_stat,
                                              skb->data[0],
@@ -2722,7 +2722,7 @@ static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
                }
                else {
                        isdn_ppp_ccp_reset_ack_rcvd(is, skb->data[1]);
-                       if(is->link_decompressor && is->link_decomp_stat)
+                       if (is->link_decompressor && is->link_decomp_stat)
                                is->link_decompressor->
                                        reset(is->link_decomp_stat,
                                              skb->data[0],
@@ -2740,12 +2740,12 @@ static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
                /* Set up reset params for the reset entry */
                memset(&rsparm, 0, sizeof(rsparm));
                rsparm.data = rsdata;
-               rsparm.maxdlen = IPPP_RESET_MAXDATABYTES; 
+               rsparm.maxdlen = IPPP_RESET_MAXDATABYTES;
                /* Isolate data length */
                len = (skb->data[2] << 8) | skb->data[3];
                len -= 4;
-               if(proto == PPP_CCP) {
-                       if(mis->compressor && mis->comp_stat)
+               if (proto == PPP_CCP) {
+                       if (mis->compressor && mis->comp_stat)
                                mis->compressor->
                                        reset(mis->comp_stat,
                                              skb->data[0],
@@ -2754,7 +2754,7 @@ static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
                                              len, &rsparm);
                }
                else {
-                       if(is->link_compressor && is->link_comp_stat)
+                       if (is->link_compressor && is->link_comp_stat)
                                is->link_compressor->
                                        reset(is->link_comp_stat,
                                              skb->data[0],
@@ -2763,9 +2763,9 @@ static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
                                              len, &rsparm);
                }
                /* Ack the Req as specified by rsparm */
-               if(rsparm.valid) {
+               if (rsparm.valid) {
                        /* Compressor reset handler decided how to answer */
-                       if(rsparm.rsend) {
+                       if (rsparm.rsend) {
                                /* We should send a Frame */
                                isdn_ppp_ccp_xmit_reset(is, proto, CCP_RESETACK,
                                                        rsparm.idval ? rsparm.id
@@ -2817,69 +2817,69 @@ static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
 
 static void isdn_ppp_send_ccp(isdn_net_dev *net_dev, isdn_net_local *lp, struct sk_buff *skb)
 {
-       struct ippp_struct *mis,*is;
+       struct ippp_struct *mis, *is;
        int proto, slot = lp->ppp_slot;
        unsigned char *data;
 
-       if(!skb || skb->len < 3)
+       if (!skb || skb->len < 3)
                return;
        if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                printk(KERN_ERR "%s: lp->ppp_slot(%d) out of range\n",
-                       __func__, slot);
+                      __func__, slot);
                return;
-       }       
+       }
        is = ippp_table[slot];
        /* Daemon may send with or without address and control field comp */
        data = skb->data;
-       if(!(is->pppcfg & SC_COMP_AC) && data[0] == 0xff && data[1] == 0x03) {
+       if (!(is->pppcfg & SC_COMP_AC) && data[0] == 0xff && data[1] == 0x03) {
                data += 2;
-               if(skb->len < 5)
+               if (skb->len < 5)
                        return;
        }
 
-       proto = ((int)data[0]<<8)+data[1];
-       if(proto != PPP_CCP && proto != PPP_CCPFRAG)
+       proto = ((int)data[0]<<8) + data[1];
+       if (proto != PPP_CCP && proto != PPP_CCPFRAG)
                return;
 
        printk(KERN_DEBUG "Received CCP frame from daemon:\n");
-       isdn_ppp_frame_log("ccp-xmit", skb->data, skb->len, 32, is->unit,lp->ppp_slot);
+       isdn_ppp_frame_log("ccp-xmit", skb->data, skb->len, 32, is->unit, lp->ppp_slot);
 
        if (lp->master) {
                slot = ISDN_MASTER_PRIV(lp)->ppp_slot;
                if (slot < 0 || slot >= ISDN_MAX_CHANNELS) {
                        printk(KERN_ERR "%s: slot(%d) out of range\n",
-                               __func__, slot);
+                              __func__, slot);
                        return;
-               }       
+               }
                mis = ippp_table[slot];
        } else
                mis = is;
        if (mis != is)
                printk(KERN_DEBUG "isdn_ppp: Ouch! Master CCP sends on slave slot!\n");
-       
-        switch(data[2]) {
+
+       switch (data[2]) {
        case CCP_CONFREQ:
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Disable decompression here!\n");
-               if(proto == PPP_CCP)
+               if (proto == PPP_CCP)
                        is->compflags &= ~SC_DECOMP_ON;
                else
                        is->compflags &= ~SC_LINK_DECOMP_ON;
                break;
        case CCP_TERMREQ:
        case CCP_TERMACK:
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Disable (de)compression here!\n");
-               if(proto == PPP_CCP)
-                       is->compflags &= ~(SC_DECOMP_ON|SC_COMP_ON);
+               if (proto == PPP_CCP)
+                       is->compflags &= ~(SC_DECOMP_ON | SC_COMP_ON);
                else
-                       is->compflags &= ~(SC_LINK_DECOMP_ON|SC_LINK_COMP_ON);
+                       is->compflags &= ~(SC_LINK_DECOMP_ON | SC_LINK_COMP_ON);
                break;
        case CCP_CONFACK:
                /* if we SEND an ackowledge we can/must enable the compressor */
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Enable compression here!\n");
-               if(proto == PPP_CCP) {
+               if (proto == PPP_CCP) {
                        if (!is->compressor)
                                break;
                        is->compflags |= SC_COMP_ON;
@@ -2891,21 +2891,21 @@ static void isdn_ppp_send_ccp(isdn_net_dev *net_dev, isdn_net_local *lp, struct
                break;
        case CCP_RESETACK:
                /* If we send a ACK we should reset our compressor */
-               if(is->debug & 0x10)
+               if (is->debug & 0x10)
                        printk(KERN_DEBUG "Reset decompression state here!\n");
                printk(KERN_DEBUG "ResetAck from daemon passed by\n");
-               if(proto == PPP_CCP) {
+               if (proto == PPP_CCP) {
                        /* link to master? */
-                       if(is->compressor && is->comp_stat)
+                       if (is->compressor && is->comp_stat)
                                is->compressor->reset(is->comp_stat, 0, 0,
                                                      NULL, 0, NULL);
-                       is->compflags &= ~SC_COMP_DISCARD;      
+                       is->compflags &= ~SC_COMP_DISCARD;
                }
                else {
-                       if(is->link_compressor && is->link_comp_stat)
+                       if (is->link_compressor && is->link_comp_stat)
                                is->link_compressor->reset(is->link_comp_stat,
                                                           0, 0, NULL, 0, NULL);
-                       is->compflags &= ~SC_LINK_COMP_DISCARD; 
+                       is->compflags &= ~SC_LINK_COMP_DISCARD;
                }
                break;
        case CCP_RESETREQ:
@@ -2919,7 +2919,7 @@ int isdn_ppp_register_compressor(struct isdn_ppp_compressor *ipc)
 {
        ipc->next = ipc_head;
        ipc->prev = NULL;
-       if(ipc_head) {
+       if (ipc_head) {
                ipc_head->prev = ipc;
        }
        ipc_head = ipc;
@@ -2928,11 +2928,11 @@ int isdn_ppp_register_compressor(struct isdn_ppp_compressor *ipc)
 
 int isdn_ppp_unregister_compressor(struct isdn_ppp_compressor *ipc)
 {
-       if(ipc->prev)
+       if (ipc->prev)
                ipc->prev->next = ipc->next;
        else
                ipc_head = ipc->next;
-       if(ipc->next)
+       if (ipc->next)
                ipc->next->prev = ipc->prev;
        ipc->prev = ipc->next = NULL;
        return 0;
@@ -2945,26 +2945,26 @@ static int isdn_ppp_set_compressor(struct ippp_struct *is, struct isdn_ppp_comp_
        void *stat;
        int num = data->num;
 
-       if(is->debug & 0x10)
-               printk(KERN_DEBUG "[%d] Set %s type %d\n",is->unit,
-                       (data->flags&IPPP_COMP_FLAG_XMIT)?"compressor":"decompressor",num);
+       if (is->debug & 0x10)
+               printk(KERN_DEBUG "[%d] Set %s type %d\n", is->unit,
+                      (data->flags & IPPP_COMP_FLAG_XMIT) ? "compressor" : "decompressor", num);
 
        /* If is has no valid reset state vector, we cannot allocate a
           decompressor. The decompressor would cause reset transactions
           sooner or later, and they need that vector. */
 
-       if(!(data->flags & IPPP_COMP_FLAG_XMIT) && !is->reset) {
+       if (!(data->flags & IPPP_COMP_FLAG_XMIT) && !is->reset) {
                printk(KERN_ERR "ippp_ccp: no reset data structure - can't"
                       " allow decompression.\n");
                return -ENOMEM;
        }
 
-       while(ipc) {
-               if(ipc->num == num) {
+       while (ipc) {
+               if (ipc->num == num) {
                        stat = ipc->alloc(data);
-                       if(stat) {
-                               ret = ipc->init(stat,data,is->unit,0);
-                               if(!ret) {
+                       if (stat) {
+                               ret = ipc->init(stat, data, is->unit, 0);
+                               if (!ret) {
                                        printk(KERN_ERR "Can't init (de)compression!\n");
                                        ipc->free(stat);
                                        stat = NULL;
@@ -2976,32 +2976,32 @@ static int isdn_ppp_set_compressor(struct ippp_struct *is, struct isdn_ppp_comp_
                                break;
                        }
 
-                        if(data->flags & IPPP_COMP_FLAG_XMIT) {
-                               if(data->flags & IPPP_COMP_FLAG_LINK) {
-                                       if(is->link_comp_stat)
+                       if (data->flags & IPPP_COMP_FLAG_XMIT) {
+                               if (data->flags & IPPP_COMP_FLAG_LINK) {
+                                       if (is->link_comp_stat)
                                                is->link_compressor->free(is->link_comp_stat);
                                        is->link_comp_stat = stat;
-                                       is->link_compressor = ipc;
+                                       is->link_compressor = ipc;
                                }
                                else {
-                                       if(is->comp_stat)
+                                       if (is->comp_stat)
                                                is->compressor->free(is->comp_stat);
                                        is->comp_stat = stat;
-                                       is->compressor = ipc;
+                                       is->compressor = ipc;
                                }
                        }
-                        else {
-                               if(data->flags & IPPP_COMP_FLAG_LINK) {
-                                       if(is->link_decomp_stat)
+                       else {
+                               if (data->flags & IPPP_COMP_FLAG_LINK) {
+                                       if (is->link_decomp_stat)
                                                is->link_decompressor->free(is->link_decomp_stat);
                                        is->link_decomp_stat = stat;
-                                       is->link_decompressor = ipc;
+                                       is->link_decompressor = ipc;
                                }
                                else {
-                                       if(is->decomp_stat)
+                                       if (is->decomp_stat)
                                                is->decompressor->free(is->decomp_stat);
                                        is->decomp_stat = stat;
-                                       is->decompressor = ipc;
+                                       is->decompressor = ipc;
                                }
                        }
                        return 0;
index 8cc05c7..4e9b893 100644 (file)
@@ -39,5 +39,3 @@ extern int isdn_ppp_unregister_compressor(struct isdn_ppp_compressor *ipc);
 #define IPPP_ASSIGNED  0x10
 
 #define IPPP_MAX_HEADER 10
-
-
index 2c26b64..89a2887 100644 (file)
@@ -61,7 +61,7 @@ char *isdn_tty_revision = "$Revision: 1.1.2.3 $";
  *      isdn_tty_readmodem().
  */
 static int
-isdn_tty_try_read(modem_info * info, struct sk_buff *skb)
+isdn_tty_try_read(modem_info *info, struct sk_buff *skb)
 {
        int c;
        int len;
@@ -93,7 +93,7 @@ isdn_tty_try_read(modem_info * info, struct sk_buff *skb)
                                                last = *dp;
                                        } else {
 #endif
-                                               if(len > 1)
+                                               if (len > 1)
                                                        tty_insert_flip_string(tty, skb->data, len - 1);
                                                last = skb->data[len - 1];
 #ifdef CONFIG_ISDN_AUDIO
@@ -179,7 +179,7 @@ isdn_tty_rcv_skb(int i, int di, int channel, struct sk_buff *skb)
        info = &dev->mdm.info[midx];
 #ifdef CONFIG_ISDN_AUDIO
        ifmt = 1;
-       
+
        if ((info->vonline) && (!info->emu.vpar[4]))
                isdn_audio_calc_dtmf(info, skb->data, skb->len, ifmt);
        if ((info->vonline & 1) && (info->emu.vpar[1]))
@@ -213,29 +213,29 @@ isdn_tty_rcv_skb(int i, int di, int channel, struct sk_buff *skb)
        if (info->vonline & 1) {
                /* voice conversion/compression */
                switch (info->emu.vpar[3]) {
-                       case 2:
-                       case 3:
-                       case 4:
-                               /* adpcm
-                                * Since compressed data takes less
-                                * space, we can overwrite the buffer.
-                                */
-                               skb_trim(skb, isdn_audio_xlaw2adpcm(info->adpcmr,
-                                                                   ifmt,
-                                                                   skb->data,
-                                                                   skb->data,
-                                                                   skb->len));
-                               break;
-                       case 5:
-                               /* a-law */
-                               if (!ifmt)
-                                       isdn_audio_ulaw2alaw(skb->data, skb->len);
-                               break;
-                       case 6:
-                               /* u-law */
-                               if (ifmt)
-                                       isdn_audio_alaw2ulaw(skb->data, skb->len);
-                               break;
+               case 2:
+               case 3:
+               case 4:
+                       /* adpcm
+                        * Since compressed data takes less
+                        * space, we can overwrite the buffer.
+                        */
+                       skb_trim(skb, isdn_audio_xlaw2adpcm(info->adpcmr,
+                                                           ifmt,
+                                                           skb->data,
+                                                           skb->data,
+                                                           skb->len));
+                       break;
+               case 5:
+                       /* a-law */
+                       if (!ifmt)
+                               isdn_audio_ulaw2alaw(skb->data, skb->len);
+                       break;
+               case 6:
+                       /* u-law */
+                       if (ifmt)
+                               isdn_audio_alaw2ulaw(skb->data, skb->len);
+                       break;
                }
                ISDN_AUDIO_SKB_DLECOUNT(skb) =
                        isdn_tty_countDLE(skb->data, skb->len);
@@ -275,7 +275,7 @@ isdn_tty_rcv_skb(int i, int di, int channel, struct sk_buff *skb)
 }
 
 static void
-isdn_tty_cleanup_xmit(modem_info * info)
+isdn_tty_cleanup_xmit(modem_info *info)
 {
        skb_queue_purge(&info->xmit_queue);
 #ifdef CONFIG_ISDN_AUDIO
@@ -284,7 +284,7 @@ isdn_tty_cleanup_xmit(modem_info * info)
 }
 
 static void
-isdn_tty_tint(modem_info * info)
+isdn_tty_tint(modem_info *info)
 {
        struct sk_buff *skb = skb_dequeue(&info->xmit_queue);
        int len, slen;
@@ -325,7 +325,7 @@ isdn_tty_countDLE(unsigned char *buf, int len)
  * DLE-decoding when sending audio-data.
  */
 static int
-isdn_tty_handleDLEdown(modem_info * info, atemu * m, int len)
+isdn_tty_handleDLEdown(modem_info *info, atemu *m, int len)
 {
        unsigned char *p = &info->xmit_buf[info->xmit_count];
        int count = 0;
@@ -334,42 +334,42 @@ isdn_tty_handleDLEdown(modem_info * info, atemu * m, int len)
                if (m->lastDLE) {
                        m->lastDLE = 0;
                        switch (*p) {
-                               case DLE:
-                                       /* Escape code */
-                                       if (len > 1)
-                                               memmove(p, p + 1, len - 1);
-                                       p--;
-                                       count++;
-                                       break;
-                               case ETX:
-                                       /* End of data */
-                                       info->vonline |= 4;
-                                       return count;
-                               case DC4:
-                                       /* Abort RX */
-                                       info->vonline &= ~1;
+                       case DLE:
+                               /* Escape code */
+                               if (len > 1)
+                                       memmove(p, p + 1, len - 1);
+                               p--;
+                               count++;
+                               break;
+                       case ETX:
+                               /* End of data */
+                               info->vonline |= 4;
+                               return count;
+                       case DC4:
+                               /* Abort RX */
+                               info->vonline &= ~1;
 #ifdef ISDN_DEBUG_MODEM_VOICE
-                                       printk(KERN_DEBUG
-                                              "DLEdown: got DLE-DC4, send DLE-ETX on ttyI%d\n",
-                                              info->line);
+                               printk(KERN_DEBUG
+                                      "DLEdown: got DLE-DC4, send DLE-ETX on ttyI%d\n",
+                                      info->line);
 #endif
-                                       isdn_tty_at_cout("\020\003", info);
-                                       if (!info->vonline) {
+                               isdn_tty_at_cout("\020\003", info);
+                               if (!info->vonline) {
 #ifdef ISDN_DEBUG_MODEM_VOICE
-                                               printk(KERN_DEBUG
-                                                      "DLEdown: send VCON on ttyI%d\n",
-                                                      info->line);
+                                       printk(KERN_DEBUG
+                                              "DLEdown: send VCON on ttyI%d\n",
+                                              info->line);
 #endif
-                                               isdn_tty_at_cout("\r\nVCON\r\n", info);
-                                       }
-                                       /* Fall through */
-                               case 'q':
-                               case 's':
-                                       /* Silence */
-                                       if (len > 1)
-                                               memmove(p, p + 1, len - 1);
-                                       p--;
-                                       break;
+                                       isdn_tty_at_cout("\r\nVCON\r\n", info);
+                               }
+                               /* Fall through */
+                       case 'q':
+                       case 's':
+                               /* Silence */
+                               if (len > 1)
+                                       memmove(p, p + 1, len - 1);
+                               p--;
+                               break;
                        }
                } else {
                        if (*p == DLE)
@@ -416,7 +416,7 @@ static int voice_cf[7] =
  * T.70 if necessary, and finally queues it up for sending via isdn_tty_tint.
  */
 static void
-isdn_tty_senddown(modem_info * info)
+isdn_tty_senddown(modem_info *info)
 {
        int buflen;
        int skb_res;
@@ -440,9 +440,9 @@ isdn_tty_senddown(modem_info * info)
 #endif
        if (!(buflen = info->xmit_count))
                return;
-       if ((info->emu.mdmreg[REG_CTS] & BIT_CTS) != 0)
+       if ((info->emu.mdmreg[REG_CTS] & BIT_CTS) != 0)
                info->msr &= ~UART_MSR_CTS;
-       info->lsr &= ~UART_LSR_TEMT;    
+       info->lsr &= ~UART_LSR_TEMT;
        /* info->xmit_count is modified here and in isdn_tty_write().
         * So we return here if isdn_tty_write() is in the
         * critical section.
@@ -485,32 +485,32 @@ isdn_tty_senddown(modem_info * info)
 
                /* voice conversion/decompression */
                switch (info->emu.vpar[3]) {
-                       case 2:
-                       case 3:
-                       case 4:
-                               /* adpcm, compatible to ZyXel 1496 modem
-                                * with ROM revision 6.01
-                                */
-                               audio_len = isdn_audio_adpcm2xlaw(info->adpcms,
-                                                                 ifmt,
-                                                                 skb->data,
-                                                   skb_put(skb, audio_len),
-                                                                 buflen);
-                               skb_pull(skb, buflen);
-                               skb_trim(skb, audio_len);
-                               break;
-                       case 5:
-                               /* a-law */
-                               if (!ifmt)
-                                       isdn_audio_alaw2ulaw(skb->data,
-                                                            buflen);
-                               break;
-                       case 6:
-                               /* u-law */
-                               if (ifmt)
-                                       isdn_audio_ulaw2alaw(skb->data,
-                                                            buflen);
-                               break;
+               case 2:
+               case 3:
+               case 4:
+                       /* adpcm, compatible to ZyXel 1496 modem
+                        * with ROM revision 6.01
+                        */
+                       audio_len = isdn_audio_adpcm2xlaw(info->adpcms,
+                                                         ifmt,
+                                                         skb->data,
+                                                         skb_put(skb, audio_len),
+                                                         buflen);
+                       skb_pull(skb, buflen);
+                       skb_trim(skb, audio_len);
+                       break;
+               case 5:
+                       /* a-law */
+                       if (!ifmt)
+                               isdn_audio_alaw2ulaw(skb->data,
+                                                    buflen);
+                       break;
+               case 6:
+                       /* u-law */
+                       if (ifmt)
+                               isdn_audio_ulaw2alaw(skb->data,
+                                                    buflen);
+                       break;
                }
        }
 #endif                          /* CONFIG_ISDN_AUDIO */
@@ -550,7 +550,7 @@ isdn_tty_modem_do_ncarrier(unsigned long data)
  * low.
  */
 static void
-isdn_tty_modem_ncarrier(modem_info * info)
+isdn_tty_modem_ncarrier(modem_info *info)
 {
        if (info->ncarrier) {
                info->nc_timer.expires = jiffies + HZ;
@@ -568,30 +568,30 @@ isdn_calc_usage(int si, int l2)
 
 #ifdef CONFIG_ISDN_AUDIO
        if (si == 1) {
-               switch(l2) {
-                       case ISDN_PROTO_L2_MODEM: 
-                               usg = ISDN_USAGE_MODEM;
-                               break;
+               switch (l2) {
+               case ISDN_PROTO_L2_MODEM:
+                       usg = ISDN_USAGE_MODEM;
+                       break;
 #ifdef CONFIG_ISDN_TTY_FAX
-                       case ISDN_PROTO_L2_FAX: 
-                               usg = ISDN_USAGE_FAX;
-                               break;
+               case ISDN_PROTO_L2_FAX:
+                       usg = ISDN_USAGE_FAX;
+                       break;
 #endif
-                       case ISDN_PROTO_L2_TRANS: 
-                       default:
-                               usg = ISDN_USAGE_VOICE;
-                               break;
+               case ISDN_PROTO_L2_TRANS:
+               default:
+                       usg = ISDN_USAGE_VOICE;
+                       break;
                }
        }
 #endif
-       return(usg);
+       return (usg);
 }
 
 /* isdn_tty_dial() performs dialing of a tty an the necessary
  * setup of the lower levels before that.
  */
 static void
-isdn_tty_dial(char *n, modem_info * info, atemu * m)
+isdn_tty_dial(char *n, modem_info *info, atemu *m)
 {
        int usg = ISDN_USAGE_MODEM;
        int si = 7;
@@ -608,10 +608,10 @@ isdn_tty_dial(char *n, modem_info * info, atemu * m)
                }
        usg = isdn_calc_usage(si, l2);
 #ifdef CONFIG_ISDN_AUDIO
-       if ((si == 1) && 
-               (l2 != ISDN_PROTO_L2_MODEM)
+       if ((si == 1) &&
+           (l2 != ISDN_PROTO_L2_MODEM)
 #ifdef CONFIG_ISDN_TTY_FAX
-               && (l2 != ISDN_PROTO_L2_FAX)
+           && (l2 != ISDN_PROTO_L2_FAX)
 #endif
                ) {
                l2 = ISDN_PROTO_L2_TRANS;
@@ -679,7 +679,7 @@ isdn_tty_dial(char *n, modem_info * info, atemu * m)
  * and some cleanup is done also.
  */
 void
-isdn_tty_modem_hup(modem_info * info, int local)
+isdn_tty_modem_hup(modem_info *info, int local)
 {
        isdn_ctrl cmd;
        int di, ch;
@@ -723,7 +723,7 @@ isdn_tty_modem_hup(modem_info * info, int local)
        info->adpcmr = NULL;
 #endif
        if ((info->msr & UART_MSR_RI) &&
-               (info->emu.mdmreg[REG_RUNG] & BIT_RUNG))
+           (info->emu.mdmreg[REG_RUNG] & BIT_RUNG))
                isdn_tty_modem_result(RESULT_RUNG, info);
        info->msr &= ~(UART_MSR_DCD | UART_MSR_RI);
        info->lsr |= UART_LSR_TEMT;
@@ -746,7 +746,7 @@ isdn_tty_modem_hup(modem_info * info, int local)
 }
 
 /*
- * Begin of a CAPI like interface, currently used only for 
+ * Begin of a CAPI like interface, currently used only for
  * supplementary service (CAPI 2.0 part III)
  */
 #include <linux/isdn/capicmd.h>
@@ -754,16 +754,16 @@ isdn_tty_modem_hup(modem_info * info, int local)
 
 int
 isdn_tty_capi_facility(capi_msg *cm) {
-       return(-1); /* dummy */
+       return (-1); /* dummy */
 }
 
 /* isdn_tty_suspend() tries to suspend the current tty connection
  */
 static void
-isdn_tty_suspend(char *id, modem_info * info, atemu * m)
+isdn_tty_suspend(char *id, modem_info *info, atemu *m)
 {
        isdn_ctrl cmd;
-       
+
        int l;
 
        if (!info)
@@ -774,7 +774,7 @@ isdn_tty_suspend(char *id, modem_info * info, atemu * m)
 #endif
        l = strlen(id);
        if ((info->isdn_driver >= 0)) {
-               cmd.parm.cmsg.Length = l+18;
+               cmd.parm.cmsg.Length = l + 18;
                cmd.parm.cmsg.Command = CAPI_FACILITY;
                cmd.parm.cmsg.Subcommand = CAPI_REQ;
                cmd.parm.cmsg.adr.Controller = info->isdn_driver + 1;
@@ -800,7 +800,7 @@ isdn_tty_suspend(char *id, modem_info * info, atemu * m)
  */
 
 static void
-isdn_tty_resume(char *id, modem_info * info, atemu * m)
+isdn_tty_resume(char *id, modem_info *info, atemu *m)
 {
        int usg = ISDN_USAGE_MODEM;
        int si = 7;
@@ -819,10 +819,10 @@ isdn_tty_resume(char *id, modem_info * info, atemu * m)
                }
        usg = isdn_calc_usage(si, l2);
 #ifdef CONFIG_ISDN_AUDIO
-       if ((si == 1) && 
-               (l2 != ISDN_PROTO_L2_MODEM)
+       if ((si == 1) &&
+           (l2 != ISDN_PROTO_L2_MODEM)
 #ifdef CONFIG_ISDN_TTY_FAX
-               && (l2 != ISDN_PROTO_L2_FAX)
+           && (l2 != ISDN_PROTO_L2_FAX)
 #endif
                ) {
                l2 = ISDN_PROTO_L2_TRANS;
@@ -864,18 +864,18 @@ isdn_tty_resume(char *id, modem_info * info, atemu * m)
                isdn_command(&cmd);
                cmd.driver = info->isdn_driver;
                cmd.arg = info->isdn_channel;
-               cmd.parm.cmsg.Length = l+18;
+               cmd.parm.cmsg.Length = l + 18;
                cmd.parm.cmsg.Command = CAPI_FACILITY;
                cmd.parm.cmsg.Subcommand = CAPI_REQ;
                cmd.parm.cmsg.adr.Controller = info->isdn_driver + 1;
                cmd.parm.cmsg.para[0] = 3; /* 16 bit 0x0003 suplementary service */
                cmd.parm.cmsg.para[1] = 0;
-               cmd.parm.cmsg.para[2] = l+3;
+               cmd.parm.cmsg.para[2] = l + 3;
                cmd.parm.cmsg.para[3] = 5; /* 16 bit 0x0005 Resume */
                cmd.parm.cmsg.para[4] = 0;
                cmd.parm.cmsg.para[5] = l;
                strncpy(&cmd.parm.cmsg.para[6], id, l);
-               cmd.command =CAPI_PUT_MESSAGE;
+               cmd.command = CAPI_PUT_MESSAGE;
                info->dialing = 1;
 //             strcpy(dev->num[i], n);
                isdn_info_update();
@@ -889,7 +889,7 @@ isdn_tty_resume(char *id, modem_info * info, atemu * m)
  */
 
 static void
-isdn_tty_send_msg(modem_info * info, atemu * m, char *msg)
+isdn_tty_send_msg(modem_info *info, atemu *m, char *msg)
 {
        int usg = ISDN_USAGE_MODEM;
        int si = 7;
@@ -912,10 +912,10 @@ isdn_tty_send_msg(modem_info * info, atemu * m, char *msg)
                }
        usg = isdn_calc_usage(si, l2);
 #ifdef CONFIG_ISDN_AUDIO
-       if ((si == 1) && 
-               (l2 != ISDN_PROTO_L2_MODEM)
+       if ((si == 1) &&
+           (l2 != ISDN_PROTO_L2_MODEM)
 #ifdef CONFIG_ISDN_TTY_FAX
-               && (l2 != ISDN_PROTO_L2_FAX)
+           && (l2 != ISDN_PROTO_L2_FAX)
 #endif
                ) {
                l2 = ISDN_PROTO_L2_TRANS;
@@ -956,14 +956,14 @@ isdn_tty_send_msg(modem_info * info, atemu * m, char *msg)
                isdn_command(&cmd);
                cmd.driver = info->isdn_driver;
                cmd.arg = info->isdn_channel;
-               cmd.parm.cmsg.Length = l+14;
+               cmd.parm.cmsg.Length = l + 14;
                cmd.parm.cmsg.Command = CAPI_MANUFACTURER;
                cmd.parm.cmsg.Subcommand = CAPI_REQ;
                cmd.parm.cmsg.adr.Controller = info->isdn_driver + 1;
-               cmd.parm.cmsg.para[0] = l+1;
+               cmd.parm.cmsg.para[0] = l + 1;
                strncpy(&cmd.parm.cmsg.para[1], msg, l);
-               cmd.parm.cmsg.para[l+1] = 0xd;
-               cmd.command =CAPI_PUT_MESSAGE;
+               cmd.parm.cmsg.para[l + 1] = 0xd;
+               cmd.command = CAPI_PUT_MESSAGE;
 /*             info->dialing = 1;
                strcpy(dev->num[i], n);
                isdn_info_update();
@@ -978,7 +978,7 @@ isdn_tty_paranoia_check(modem_info *info, char *name, const char *routine)
 #ifdef MODEM_PARANOIA_CHECK
        if (!info) {
                printk(KERN_WARNING "isdn_tty: null info_struct for %s in %s\n",
-                       name, routine);
+                      name, routine);
                return 1;
        }
        if (info->magic != ISDN_ASYNC_MAGIC) {
@@ -995,11 +995,11 @@ isdn_tty_paranoia_check(modem_info *info, char *name, const char *routine)
  * the specified baud rate for a serial port.
  */
 static void
-isdn_tty_change_speed(modem_info * info)
+isdn_tty_change_speed(modem_info *info)
 {
        uint cflag,
-        cval,
-        quot;
+               cval,
+               quot;
        int i;
 
        if (!info->tty || !info->tty->termios)
@@ -1051,7 +1051,7 @@ isdn_tty_change_speed(modem_info * info)
 }
 
 static int
-isdn_tty_startup(modem_info * info)
+isdn_tty_startup(modem_info *info)
 {
        if (info->flags & ISDN_ASYNC_INITIALIZED)
                return 0;
@@ -1081,7 +1081,7 @@ isdn_tty_startup(modem_info * info)
  * DTR is dropped if the hangup on close termio flag is on.
  */
 static void
-isdn_tty_shutdown(modem_info * info)
+isdn_tty_shutdown(modem_info *info)
 {
        if (!(info->flags & ISDN_ASYNC_INITIALIZED))
                return;
@@ -1116,7 +1116,7 @@ isdn_tty_shutdown(modem_info * info)
  *  - If dialing, abort dial.
  */
 static int
-isdn_tty_write(struct tty_struct *tty, const u_char * buf, int count)
+isdn_tty_write(struct tty_struct *tty, const u_char *buf, int count)
 {
        int c;
        int total = 0;
@@ -1176,27 +1176,27 @@ isdn_tty_write(struct tty_struct *tty, const u_char * buf, int count)
                                        }
                                }
                        } else
-                       if (TTY_IS_FCLASS1(info)) {
-                               int cc = isdn_tty_handleDLEdown(info, m, c);
-                               
-                               if (info->vonline & 4) { /* ETX seen */
-                                       isdn_ctrl c;
-
-                                       c.command = ISDN_CMD_FAXCMD;
-                                       c.driver = info->isdn_driver;
-                                       c.arg = info->isdn_channel;
-                                       c.parm.aux.cmd = ISDN_FAX_CLASS1_CTRL;
-                                       c.parm.aux.subcmd = ETX;
-                                       isdn_command(&c);
-                               }
-                               info->vonline = 0;
+                               if (TTY_IS_FCLASS1(info)) {
+                                       int cc = isdn_tty_handleDLEdown(info, m, c);
+
+                                       if (info->vonline & 4) { /* ETX seen */
+                                               isdn_ctrl c;
+
+                                               c.command = ISDN_CMD_FAXCMD;
+                                               c.driver = info->isdn_driver;
+                                               c.arg = info->isdn_channel;
+                                               c.parm.aux.cmd = ISDN_FAX_CLASS1_CTRL;
+                                               c.parm.aux.subcmd = ETX;
+                                               isdn_command(&c);
+                                       }
+                                       info->vonline = 0;
 #ifdef ISDN_DEBUG_MODEM_VOICE
-                               printk(KERN_DEBUG "fax dle cc/c %d/%d\n", cc, c);
+                                       printk(KERN_DEBUG "fax dle cc/c %d/%d\n", cc, c);
 #endif
-                               info->xmit_count += cc;
-                       } else
+                                       info->xmit_count += cc;
+                               } else
 #endif
-                               info->xmit_count += c;
+                                       info->xmit_count += c;
                } else {
                        info->msr |= UART_MSR_CTS;
                        info->lsr |= UART_LSR_TEMT;
@@ -1332,7 +1332,7 @@ isdn_tty_unthrottle(struct tty_struct *tty)
  *          allows RS485 driver to be written in user space.
  */
 static int
-isdn_tty_get_lsr_info(modem_info * info, uint __user * value)
+isdn_tty_get_lsr_info(modem_info *info, uint __user *value)
 {
        u_char status;
        uint result;
@@ -1363,16 +1363,16 @@ isdn_tty_tiocmget(struct tty_struct *tty)
        status = info->msr;
        mutex_unlock(&modem_info_mutex);
        return ((control & UART_MCR_RTS) ? TIOCM_RTS : 0)
-           | ((control & UART_MCR_DTR) ? TIOCM_DTR : 0)
-           | ((status & UART_MSR_DCD) ? TIOCM_CAR : 0)
-           | ((status & UART_MSR_RI) ? TIOCM_RNG : 0)
-           | ((status & UART_MSR_DSR) ? TIOCM_DSR : 0)
-           | ((status & UART_MSR_CTS) ? TIOCM_CTS : 0);
+               | ((control & UART_MCR_DTR) ? TIOCM_DTR : 0)
+               | ((status & UART_MSR_DCD) ? TIOCM_CAR : 0)
+               | ((status & UART_MSR_RI) ? TIOCM_RNG : 0)
+               | ((status & UART_MSR_DSR) ? TIOCM_DSR : 0)
+               | ((status & UART_MSR_CTS) ? TIOCM_CTS : 0);
 }
 
 static int
 isdn_tty_tiocmset(struct tty_struct *tty,
-               unsigned int set, unsigned int clear)
+                 unsigned int set, unsigned int clear)
 {
        modem_info *info = (modem_info *) tty->driver_data;
 
@@ -1422,34 +1422,34 @@ isdn_tty_ioctl(struct tty_struct *tty, uint cmd, ulong arg)
        if (tty->flags & (1 << TTY_IO_ERROR))
                return -EIO;
        switch (cmd) {
-               case TCSBRK:   /* SVID version: non-zero arg --> no break */
+       case TCSBRK:   /* SVID version: non-zero arg --> no break */
 #ifdef ISDN_DEBUG_MODEM_IOCTL
-                       printk(KERN_DEBUG "ttyI%d ioctl TCSBRK\n", info->line);
-#endif
-                       retval = tty_check_change(tty);
-                       if (retval)
-                               return retval;
-                       tty_wait_until_sent(tty, 0);
-                       return 0;
-               case TCSBRKP:  /* support for POSIX tcsendbreak() */
+               printk(KERN_DEBUG "ttyI%d ioctl TCSBRK\n", info->line);
+#endif
+               retval = tty_check_change(tty);
+               if (retval)
+                       return retval;
+               tty_wait_until_sent(tty, 0);
+               return 0;
+       case TCSBRKP:  /* support for POSIX tcsendbreak() */
 #ifdef ISDN_DEBUG_MODEM_IOCTL
-                       printk(KERN_DEBUG "ttyI%d ioctl TCSBRKP\n", info->line);
-#endif
-                       retval = tty_check_change(tty);
-                       if (retval)
-                               return retval;
-                       tty_wait_until_sent(tty, 0);
-                       return 0;
-               case TIOCSERGETLSR:     /* Get line status register */
+               printk(KERN_DEBUG "ttyI%d ioctl TCSBRKP\n", info->line);
+#endif
+               retval = tty_check_change(tty);
+               if (retval)
+                       return retval;
+               tty_wait_until_sent(tty, 0);
+               return 0;
+       case TIOCSERGETLSR:     /* Get line status register */
 #ifdef ISDN_DEBUG_MODEM_IOCTL
-                       printk(KERN_DEBUG "ttyI%d ioctl TIOCSERGETLSR\n", info->line);
+               printk(KERN_DEBUG "ttyI%d ioctl TIOCSERGETLSR\n", info->line);
 #endif
-                       return isdn_tty_get_lsr_info(info, (uint __user *) arg);
-               default:
+               return isdn_tty_get_lsr_info(info, (uint __user *) arg);
+       default:
 #ifdef ISDN_DEBUG_MODEM_IOCTL
-                       printk(KERN_DEBUG "UNKNOWN ioctl 0x%08x on ttyi%d\n", cmd, info->line);
+               printk(KERN_DEBUG "UNKNOWN ioctl 0x%08x on ttyi%d\n", cmd, info->line);
 #endif
-                       return -ENOIOCTLCMD;
+               return -ENOIOCTLCMD;
        }
        return 0;
 }
@@ -1479,7 +1479,7 @@ isdn_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
  * ------------------------------------------------------------
  */
 static int
-isdn_tty_block_til_ready(struct tty_struct *tty, struct file *filp, modem_info * info)
+isdn_tty_block_til_ready(struct tty_struct *tty, struct file *filp, modem_info *info)
 {
        DECLARE_WAITQUEUE(wait, NULL);
        int do_clocal = 0;
@@ -1603,7 +1603,7 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
                return -ENODEV;
        }
 #ifdef ISDN_DEBUG_MODEM_OPEN
-       printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name, 
+       printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name,
               info->count);
 #endif
        info->count++;
@@ -1703,7 +1703,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
                timeout = jiffies + HZ;
                while (!(info->lsr & UART_LSR_TEMT)) {
                        schedule_timeout_interruptible(20);
-                       if (time_after(jiffies,timeout))
+                       if (time_after(jiffies, timeout))
                                break;
                }
        }
@@ -1746,7 +1746,7 @@ isdn_tty_hangup(struct tty_struct *tty)
 /* This routine initializes all emulator-data.
  */
 static void
-isdn_tty_reset_profile(atemu * m)
+isdn_tty_reset_profile(atemu *m)
 {
        m->profile[0] = 0;
        m->profile[1] = 0;
@@ -1776,7 +1776,7 @@ isdn_tty_reset_profile(atemu * m)
 
 #ifdef CONFIG_ISDN_AUDIO
 static void
-isdn_tty_modem_reset_vpar(atemu * m)
+isdn_tty_modem_reset_vpar(atemu *m)
 {
        m->vpar[0] = 2;         /* Voice-device            (2 = phone line) */
        m->vpar[1] = 0;         /* Silence detection level (0 = none      ) */
@@ -1789,7 +1789,7 @@ isdn_tty_modem_reset_vpar(atemu * m)
 
 #ifdef CONFIG_ISDN_TTY_FAX
 static void
-isdn_tty_modem_reset_faxpar(modem_info * info)
+isdn_tty_modem_reset_faxpar(modem_info *info)
 {
        T30_s *f = info->fax;
 
@@ -1822,7 +1822,7 @@ isdn_tty_modem_reset_faxpar(modem_info * info)
 #endif
 
 static void
-isdn_tty_modem_reset_regs(modem_info * info, int force)
+isdn_tty_modem_reset_regs(modem_info *info, int force)
 {
        atemu *m = &info->emu;
        if ((m->mdmreg[REG_DTRR] & BIT_DTRR) || force) {
@@ -1841,7 +1841,7 @@ isdn_tty_modem_reset_regs(modem_info * info, int force)
 }
 
 static void
-modem_write_profile(atemu * m)
+modem_write_profile(atemu *m)
 {
        memcpy(m->profile, m->mdmreg, ISDN_MODEM_NUMREG);
        memcpy(m->pmsn, m->msn, ISDN_MSNLEN);
@@ -1851,7 +1851,7 @@ modem_write_profile(atemu * m)
 }
 
 static const struct tty_operations modem_ops = {
-        .open = isdn_tty_open,
+       .open = isdn_tty_open,
        .close = isdn_tty_close,
        .write = isdn_tty_write,
        .flush_chars = isdn_tty_flush_chars,
@@ -1951,7 +1951,7 @@ err_unregister:
                kfree(info->xmit_buf - 4);
        }
        tty_unregister_driver(m->tty_modem);
- err:
+err:
        put_tty_driver(m->tty_modem);
        m->tty_modem = NULL;
        return retval;
@@ -2021,8 +2021,8 @@ isdn_tty_match_icall(char *cid, atemu *emu, int di)
                int tmp;
                tmp = isdn_msncmp(cid, isdn_map_eaz2msn(emu->msn, di));
 #ifdef ISDN_DEBUG_MODEM_ICALL
-                       printk(KERN_DEBUG "m_fi: mmsn=%s -> tmp=%d\n",
-                              isdn_map_eaz2msn(emu->msn, di), tmp);
+               printk(KERN_DEBUG "m_fi: mmsn=%s -> tmp=%d\n",
+                      isdn_map_eaz2msn(emu->msn, di), tmp);
 #endif
                return tmp;
        }
@@ -2071,8 +2071,8 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
        for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
                modem_info *info = &dev->mdm.info[i];
 
-                if (info->count == 0)
-                    continue;
+               if (info->count == 0)
+                       continue;
                if ((info->emu.mdmreg[REG_SI1] & si2bit[si1]) &&  /* SI1 is matching */
                    (info->emu.mdmreg[REG_SI2] == si2)) {         /* SI2 is matching */
                        idx = isdn_dc2minor(di, ch);
@@ -2099,7 +2099,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
                                        info->drv_index = idx;
                                        dev->m_idx[idx] = info->line;
                                        dev->usage[idx] &= ISDN_USAGE_EXCLUSIVE;
-                                       dev->usage[idx] |= isdn_calc_usage(si1, info->emu.mdmreg[REG_L2PROT]); 
+                                       dev->usage[idx] |= isdn_calc_usage(si1, info->emu.mdmreg[REG_L2PROT]);
                                        strcpy(dev->num[idx], nr);
                                        strcpy(info->emu.cpn, eaz);
                                        info->emu.mdmreg[REG_SI1I] = si2bit[si1];
@@ -2119,11 +2119,11 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
        }
        spin_unlock_irqrestore(&dev->lock, flags);
        printk(KERN_INFO "isdn_tty: call from %s -> %s %s\n", nr, eaz,
-              ((dev->drv[di]->flags & DRV_FLAG_REJBUS) && (wret != 2))? "rejected" : "ignored");
-       return (wret == 2)?3:0;
+              ((dev->drv[di]->flags & DRV_FLAG_REJBUS) && (wret != 2)) ? "rejected" : "ignored");
+       return (wret == 2) ? 3 : 0;
 }
 
-#define TTY_IS_ACTIVE(info) \
+#define TTY_IS_ACTIVE(info)                                            \
        (info->flags & (ISDN_ASYNC_NORMAL_ACTIVE | ISDN_ASYNC_CALLOUT_ACTIVE))
 
 int
@@ -2138,174 +2138,174 @@ isdn_tty_stat_callback(int i, isdn_ctrl *c)
        if ((mi = dev->m_idx[i]) >= 0) {
                info = &dev->mdm.info[mi];
                switch (c->command) {
-                        case ISDN_STAT_CINF:
-                                printk(KERN_DEBUG "CHARGEINFO on ttyI%d: %ld %s\n", info->line, c->arg, c->parm.num);
-                                info->emu.charge = (unsigned) simple_strtoul(c->parm.num, &e, 10);
-                                if (e == (char *)c->parm.num)
-                                       info->emu.charge = 0;
-                               
-                                break;                 
-                       case ISDN_STAT_BSENT:
-#ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_BSENT ttyI%d\n", info->line);
-#endif
-                               if ((info->isdn_driver == c->driver) &&
-                                   (info->isdn_channel == c->arg)) {
-                                       info->msr |= UART_MSR_CTS;
-                                       if (info->send_outstanding)
-                                               if (!(--info->send_outstanding))
-                                                       info->lsr |= UART_LSR_TEMT;
-                                       isdn_tty_tint(info);
-                                       return 1;
-                               }
-                               break;
-                       case ISDN_STAT_CAUSE:
+               case ISDN_STAT_CINF:
+                       printk(KERN_DEBUG "CHARGEINFO on ttyI%d: %ld %s\n", info->line, c->arg, c->parm.num);
+                       info->emu.charge = (unsigned) simple_strtoul(c->parm.num, &e, 10);
+                       if (e == (char *)c->parm.num)
+                               info->emu.charge = 0;
+
+                       break;
+               case ISDN_STAT_BSENT:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_CAUSE ttyI%d\n", info->line);
+                       printk(KERN_DEBUG "tty_STAT_BSENT ttyI%d\n", info->line);
 #endif
-                               /* Signal cause to tty-device */
-                               strncpy(info->last_cause, c->parm.num, 5);
+                       if ((info->isdn_driver == c->driver) &&
+                           (info->isdn_channel == c->arg)) {
+                               info->msr |= UART_MSR_CTS;
+                               if (info->send_outstanding)
+                                       if (!(--info->send_outstanding))
+                                               info->lsr |= UART_LSR_TEMT;
+                               isdn_tty_tint(info);
                                return 1;
-                       case ISDN_STAT_DISPLAY:
+                       }
+                       break;
+               case ISDN_STAT_CAUSE:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_DISPLAY ttyI%d\n", info->line);
-#endif
-                               /* Signal display to tty-device */
-                               if ((info->emu.mdmreg[REG_DISPLAY] & BIT_DISPLAY) && 
-                                       !(info->emu.mdmreg[REG_RESPNUM] & BIT_RESPNUM)) {
-                                 isdn_tty_at_cout("\r\n", info);
-                                 isdn_tty_at_cout("DISPLAY: ", info);
-                                 isdn_tty_at_cout(c->parm.display, info);
-                                 isdn_tty_at_cout("\r\n", info);
-                               }
-                               return 1;
-                       case ISDN_STAT_DCONN:
+                       printk(KERN_DEBUG "tty_STAT_CAUSE ttyI%d\n", info->line);
+#endif
+                       /* Signal cause to tty-device */
+                       strncpy(info->last_cause, c->parm.num, 5);
+                       return 1;
+               case ISDN_STAT_DISPLAY:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_DCONN ttyI%d\n", info->line);
+                       printk(KERN_DEBUG "tty_STAT_DISPLAY ttyI%d\n", info->line);
 #endif
-                               if (TTY_IS_ACTIVE(info)) {
-                                       if (info->dialing == 1) {
-                                               info->dialing = 2;
-                                               return 1;
-                                       }
+                       /* Signal display to tty-device */
+                       if ((info->emu.mdmreg[REG_DISPLAY] & BIT_DISPLAY) &&
+                           !(info->emu.mdmreg[REG_RESPNUM] & BIT_RESPNUM)) {
+                               isdn_tty_at_cout("\r\n", info);
+                               isdn_tty_at_cout("DISPLAY: ", info);
+                               isdn_tty_at_cout(c->parm.display, info);
+                               isdn_tty_at_cout("\r\n", info);
+                       }
+                       return 1;
+               case ISDN_STAT_DCONN:
+#ifdef ISDN_TTY_STAT_DEBUG
+                       printk(KERN_DEBUG "tty_STAT_DCONN ttyI%d\n", info->line);
+#endif
+                       if (TTY_IS_ACTIVE(info)) {
+                               if (info->dialing == 1) {
+                                       info->dialing = 2;
+                                       return 1;
                                }
-                               break;
-                       case ISDN_STAT_DHUP:
+                       }
+                       break;
+               case ISDN_STAT_DHUP:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_DHUP ttyI%d\n", info->line);
+                       printk(KERN_DEBUG "tty_STAT_DHUP ttyI%d\n", info->line);
 #endif
-                               if (TTY_IS_ACTIVE(info)) {
-                                       if (info->dialing == 1) 
-                                               isdn_tty_modem_result(RESULT_BUSY, info);
-                                       if (info->dialing > 1) 
-                                               isdn_tty_modem_result(RESULT_NO_CARRIER, info);
-                                       info->dialing = 0;
+                       if (TTY_IS_ACTIVE(info)) {
+                               if (info->dialing == 1)
+                                       isdn_tty_modem_result(RESULT_BUSY, info);
+                               if (info->dialing > 1)
+                                       isdn_tty_modem_result(RESULT_NO_CARRIER, info);
+                               info->dialing = 0;
 #ifdef ISDN_DEBUG_MODEM_HUP
-                                       printk(KERN_DEBUG "Mhup in ISDN_STAT_DHUP\n");
+                               printk(KERN_DEBUG "Mhup in ISDN_STAT_DHUP\n");
 #endif
-                                       isdn_tty_modem_hup(info, 0);
-                                       return 1;
-                               }
-                               break;
-                       case ISDN_STAT_BCONN:
+                               isdn_tty_modem_hup(info, 0);
+                               return 1;
+                       }
+                       break;
+               case ISDN_STAT_BCONN:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_BCONN ttyI%d\n", info->line);
-#endif
-                               /* Wake up any processes waiting
-                                * for incoming call of this device when
-                                * DCD follow the state of incoming carrier
-                                */
-                               if (info->blocked_open &&
-                                  (info->emu.mdmreg[REG_DCD] & BIT_DCD)) {
-                                       wake_up_interruptible(&info->open_wait);
-                               }
+                       printk(KERN_DEBUG "tty_STAT_BCONN ttyI%d\n", info->line);
+#endif
+                       /* Wake up any processes waiting
+                        * for incoming call of this device when
+                        * DCD follow the state of incoming carrier
+                        */
+                       if (info->blocked_open &&
+                           (info->emu.mdmreg[REG_DCD] & BIT_DCD)) {
+                               wake_up_interruptible(&info->open_wait);
+                       }
 
-                               /* Schedule CONNECT-Message to any tty
-                                * waiting for it and
-                                * set DCD-bit of its modem-status.
-                                */
-                               if (TTY_IS_ACTIVE(info) ||
-                                   (info->blocked_open && (info->emu.mdmreg[REG_DCD] & BIT_DCD))) {
-                                       info->msr |= UART_MSR_DCD;
-                                       info->emu.charge = 0;
-                                       if (info->dialing & 0xf)
-                                               info->last_dir = 1;
-                                       else
-                                               info->last_dir = 0;
-                                       info->dialing = 0;
-                                       info->rcvsched = 1;
-                                       if (USG_MODEM(dev->usage[i])) {
-                                               if (info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM) {
-                                                       strcpy(info->emu.connmsg, c->parm.num);
-                                                       isdn_tty_modem_result(RESULT_CONNECT, info);
-                                               } else
-                                                       isdn_tty_modem_result(RESULT_CONNECT64000, info);
-                                       }
-                                       if (USG_VOICE(dev->usage[i]))
-                                               isdn_tty_modem_result(RESULT_VCON, info);
-                                       return 1;
+                       /* Schedule CONNECT-Message to any tty
+                        * waiting for it and
+                        * set DCD-bit of its modem-status.
+                        */
+                       if (TTY_IS_ACTIVE(info) ||
+                           (info->blocked_open && (info->emu.mdmreg[REG_DCD] & BIT_DCD))) {
+                               info->msr |= UART_MSR_DCD;
+                               info->emu.charge = 0;
+                               if (info->dialing & 0xf)
+                                       info->last_dir = 1;
+                               else
+                                       info->last_dir = 0;
+                               info->dialing = 0;
+                               info->rcvsched = 1;
+                               if (USG_MODEM(dev->usage[i])) {
+                                       if (info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM) {
+                                               strcpy(info->emu.connmsg, c->parm.num);
+                                               isdn_tty_modem_result(RESULT_CONNECT, info);
+                                       } else
+                                               isdn_tty_modem_result(RESULT_CONNECT64000, info);
                                }
-                               break;
-                       case ISDN_STAT_BHUP:
+                               if (USG_VOICE(dev->usage[i]))
+                                       isdn_tty_modem_result(RESULT_VCON, info);
+                               return 1;
+                       }
+                       break;
+               case ISDN_STAT_BHUP:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_BHUP ttyI%d\n", info->line);
+                       printk(KERN_DEBUG "tty_STAT_BHUP ttyI%d\n", info->line);
 #endif
-                               if (TTY_IS_ACTIVE(info)) {
+                       if (TTY_IS_ACTIVE(info)) {
 #ifdef ISDN_DEBUG_MODEM_HUP
-                                       printk(KERN_DEBUG "Mhup in ISDN_STAT_BHUP\n");
+                               printk(KERN_DEBUG "Mhup in ISDN_STAT_BHUP\n");
 #endif
-                                       isdn_tty_modem_hup(info, 0);
-                                       return 1;
-                               }
-                               break;
-                       case ISDN_STAT_NODCH:
+                               isdn_tty_modem_hup(info, 0);
+                               return 1;
+                       }
+                       break;
+               case ISDN_STAT_NODCH:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_NODCH ttyI%d\n", info->line);
-#endif
-                               if (TTY_IS_ACTIVE(info)) {
-                                       if (info->dialing) {
-                                               info->dialing = 0;
-                                               info->last_l2 = -1;
-                                               info->last_si = 0;
-                                               sprintf(info->last_cause, "0000");
-                                               isdn_tty_modem_result(RESULT_NO_DIALTONE, info);
-                                       }
-                                       isdn_tty_modem_hup(info, 0);
-                                       return 1;
+                       printk(KERN_DEBUG "tty_STAT_NODCH ttyI%d\n", info->line);
+#endif
+                       if (TTY_IS_ACTIVE(info)) {
+                               if (info->dialing) {
+                                       info->dialing = 0;
+                                       info->last_l2 = -1;
+                                       info->last_si = 0;
+                                       sprintf(info->last_cause, "0000");
+                                       isdn_tty_modem_result(RESULT_NO_DIALTONE, info);
                                }
-                               break;
-                       case ISDN_STAT_UNLOAD:
+                               isdn_tty_modem_hup(info, 0);
+                               return 1;
+                       }
+                       break;
+               case ISDN_STAT_UNLOAD:
 #ifdef ISDN_TTY_STAT_DEBUG
-                               printk(KERN_DEBUG "tty_STAT_UNLOAD ttyI%d\n", info->line);
+                       printk(KERN_DEBUG "tty_STAT_UNLOAD ttyI%d\n", info->line);
 #endif
-                               for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
-                                       info = &dev->mdm.info[i];
-                                       if (info->isdn_driver == c->driver) {
-                                               if (info->online)
-                                                       isdn_tty_modem_hup(info, 1);
-                                       }
+                       for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
+                               info = &dev->mdm.info[i];
+                               if (info->isdn_driver == c->driver) {
+                                       if (info->online)
+                                               isdn_tty_modem_hup(info, 1);
                                }
-                               return 1;
+                       }
+                       return 1;
 #ifdef CONFIG_ISDN_TTY_FAX
-                       case ISDN_STAT_FAXIND:
-                               if (TTY_IS_ACTIVE(info)) {
-                                       isdn_tty_fax_command(info, c); 
-                               }
-                               break;
+               case ISDN_STAT_FAXIND:
+                       if (TTY_IS_ACTIVE(info)) {
+                               isdn_tty_fax_command(info, c);
+                       }
+                       break;
 #endif
 #ifdef CONFIG_ISDN_AUDIO
-                       case ISDN_STAT_AUDIO:
-                               if (TTY_IS_ACTIVE(info)) {
-                                       switch(c->parm.num[0]) {
-                                               case ISDN_AUDIO_DTMF:
-                                                       if (info->vonline) {
-                                                               isdn_audio_put_dle_code(info,
+               case ISDN_STAT_AUDIO:
+                       if (TTY_IS_ACTIVE(info)) {
+                               switch (c->parm.num[0]) {
+                               case ISDN_AUDIO_DTMF:
+                                       if (info->vonline) {
+                                               isdn_audio_put_dle_code(info,
                                                                        c->parm.num[1]);
-                                                       }
-                                                       break;
                                        }
+                                       break;
                                }
-                               break;
+                       }
+                       break;
 #endif
                }
        }
@@ -2314,16 +2314,16 @@ isdn_tty_stat_callback(int i, isdn_ctrl *c)
 
 /*********************************************************************
  Modem-Emulator-Routines
- *********************************************************************/
+*********************************************************************/
 
-#define cmdchar(c) ((c>=' ')&&(c<=0x7f))
+#define cmdchar(c) ((c >= ' ') && (c <= 0x7f))
 
 /*
  * Put a message from the AT-emulator into receive-buffer of tty,
  * convert CR, LF, and BS to values in modem-registers 3, 4 and 5.
  */
 void
-isdn_tty_at_cout(char *msg, modem_info * info)
+isdn_tty_at_cout(char *msg, modem_info *info)
 {
        struct tty_struct *tty;
        atemu *m = &info->emu;
@@ -2351,7 +2351,7 @@ isdn_tty_at_cout(char *msg, modem_info * info)
        /* use queue instead of direct, if online and */
        /* data is in queue or buffer is full */
        if (info->online && ((tty_buffer_request_room(tty, l) < l) ||
-           !skb_queue_empty(&dev->drv[info->isdn_driver]->rpqueue[info->isdn_channel]))) {
+                            !skb_queue_empty(&dev->drv[info->isdn_driver]->rpqueue[info->isdn_channel]))) {
                skb = alloc_skb(l, GFP_ATOMIC);
                if (!skb) {
                        spin_unlock_irqrestore(&info->readlock, flags);
@@ -2366,22 +2366,22 @@ isdn_tty_at_cout(char *msg, modem_info * info)
 
        for (p = msg; *p; p++) {
                switch (*p) {
-                       case '\r':
-                               c = m->mdmreg[REG_CR];
-                               break;
-                       case '\n':
-                               c = m->mdmreg[REG_LF];
-                               break;
-                       case '\b':
-                               c = m->mdmreg[REG_BS];
-                               break;
-                       default:
-                               c = *p;
+               case '\r':
+                       c = m->mdmreg[REG_CR];
+                       break;
+               case '\n':
+                       c = m->mdmreg[REG_LF];
+                       break;
+               case '\b':
+                       c = m->mdmreg[REG_BS];
+                       break;
+               default:
+                       c = *p;
                }
                if (skb) {
                        *sp++ = c;
                } else {
-                       if(tty_insert_flip_char(tty, c, TTY_NORMAL) == 0)
+                       if (tty_insert_flip_char(tty, c, TTY_NORMAL) == 0)
                                break;
                }
        }
@@ -2403,7 +2403,7 @@ isdn_tty_at_cout(char *msg, modem_info * info)
  * Perform ATH Hangup
  */
 static void
-isdn_tty_on_hook(modem_info * info)
+isdn_tty_on_hook(modem_info *info)
 {
        if (info->isdn_channel >= 0) {
 #ifdef ISDN_DEBUG_MODEM_HUP
@@ -2419,8 +2419,8 @@ isdn_tty_off_hook(void)
        printk(KERN_DEBUG "isdn_tty_off_hook\n");
 }
 
-#define PLUSWAIT1 (HZ/2)        /* 0.5 sec. */
-#define PLUSWAIT2 (HZ*3/2)      /* 1.5 sec */
+#define PLUSWAIT1 (HZ / 2)      /* 0.5 sec. */
+#define PLUSWAIT2 (HZ * 3 / 2)  /* 1.5 sec */
 
 /*
  * Check Buffer for Modem-escape-sequence, activate timer-callback to
@@ -2434,7 +2434,7 @@ isdn_tty_off_hook(void)
  *   lastplus   timestamp of last character
  */
 static void
-isdn_tty_check_esc(const u_char * p, u_char plus, int count, int *pluscount,
+isdn_tty_check_esc(const u_char *p, u_char plus, int count, int *pluscount,
                   u_long *lastplus)
 {
        if (plus > 127)
@@ -2474,69 +2474,69 @@ isdn_tty_check_esc(const u_char * p, u_char plus, int count, int *pluscount,
  */
 
 static void
-isdn_tty_modem_result(int code, modem_info * info)
+isdn_tty_modem_result(int code, modem_info *info)
 {
        atemu *m = &info->emu;
        static char *msg[] =
-       {"OK", "CONNECT", "RING", "NO CARRIER", "ERROR",
-        "CONNECT 64000", "NO DIALTONE", "BUSY", "NO ANSWER",
-        "RINGING", "NO MSN/EAZ", "VCON", "RUNG"};
-       char s[ISDN_MSNLEN+10];
+               {"OK", "CONNECT", "RING", "NO CARRIER", "ERROR",
+                "CONNECT 64000", "NO DIALTONE", "BUSY", "NO ANSWER",
+                "RINGING", "NO MSN/EAZ", "VCON", "RUNG"};
+       char s[ISDN_MSNLEN + 10];
 
        switch (code) {
-               case RESULT_RING:
-                       m->mdmreg[REG_RINGCNT]++;
-                       if (m->mdmreg[REG_RINGCNT] == m->mdmreg[REG_RINGATA])
-                               /* Automatically accept incoming call */
-                               isdn_tty_cmd_ATA(info);
-                       break;
-               case RESULT_NO_CARRIER:
+       case RESULT_RING:
+               m->mdmreg[REG_RINGCNT]++;
+               if (m->mdmreg[REG_RINGCNT] == m->mdmreg[REG_RINGATA])
+                       /* Automatically accept incoming call */
+                       isdn_tty_cmd_ATA(info);
+               break;
+       case RESULT_NO_CARRIER:
 #ifdef ISDN_DEBUG_MODEM_HUP
-                       printk(KERN_DEBUG "modem_result: NO CARRIER %d %d\n",
-                              (info->flags & ISDN_ASYNC_CLOSING),
-                              (!info->tty));
-#endif
-                       m->mdmreg[REG_RINGCNT] = 0;
-                       del_timer(&info->nc_timer);
-                       info->ncarrier = 0;
-                       if ((info->flags & ISDN_ASYNC_CLOSING) || (!info->tty)) {
-                               return;
-                       }
+               printk(KERN_DEBUG "modem_result: NO CARRIER %d %d\n",
+                      (info->flags & ISDN_ASYNC_CLOSING),
+                      (!info->tty));
+#endif
+               m->mdmreg[REG_RINGCNT] = 0;
+               del_timer(&info->nc_timer);
+               info->ncarrier = 0;
+               if ((info->flags & ISDN_ASYNC_CLOSING) || (!info->tty)) {
+                       return;
+               }
 #ifdef CONFIG_ISDN_AUDIO
-                       if (info->vonline & 1) {
+               if (info->vonline & 1) {
 #ifdef ISDN_DEBUG_MODEM_VOICE
-                               printk(KERN_DEBUG "res3: send DLE-ETX on ttyI%d\n",
-                                      info->line);
+                       printk(KERN_DEBUG "res3: send DLE-ETX on ttyI%d\n",
+                              info->line);
 #endif
-                               /* voice-recording, add DLE-ETX */
-                               isdn_tty_at_cout("\020\003", info);
-                       }
-                       if (info->vonline & 2) {
+                       /* voice-recording, add DLE-ETX */
+                       isdn_tty_at_cout("\020\003", info);
+               }
+               if (info->vonline & 2) {
 #ifdef ISDN_DEBUG_MODEM_VOICE
-                               printk(KERN_DEBUG "res3: send DLE-DC4 on ttyI%d\n",
-                                      info->line);
+                       printk(KERN_DEBUG "res3: send DLE-DC4 on ttyI%d\n",
+                              info->line);
 #endif
-                               /* voice-playing, add DLE-DC4 */
-                               isdn_tty_at_cout("\020\024", info);
-                       }
+                       /* voice-playing, add DLE-DC4 */
+                       isdn_tty_at_cout("\020\024", info);
+               }
 #endif
-                       break;
-               case RESULT_CONNECT:
-               case RESULT_CONNECT64000:
-                       sprintf(info->last_cause, "0000");
-                       if (!info->online)
-                               info->online = 2;
-                       break;
-               case RESULT_VCON:
+               break;
+       case RESULT_CONNECT:
+       case RESULT_CONNECT64000:
+               sprintf(info->last_cause, "0000");
+               if (!info->online)
+                       info->online = 2;
+               break;
+       case RESULT_VCON:
 #ifdef ISDN_DEBUG_MODEM_VOICE
-                       printk(KERN_DEBUG "res3: send VCON on ttyI%d\n",
-                              info->line);
+               printk(KERN_DEBUG "res3: send VCON on ttyI%d\n",
+                      info->line);
 #endif
-                       sprintf(info->last_cause, "0000");
-                       if (!info->online)
-                               info->online = 1;
-                       break;
-       } /* switch(code) */
+               sprintf(info->last_cause, "0000");
+               if (!info->online)
+                       info->online = 1;
+               break;
+       } /* switch (code) */
 
        if (m->mdmreg[REG_RESP] & BIT_RESP) {
                /* Show results */
@@ -2546,87 +2546,87 @@ isdn_tty_modem_result(int code, modem_info * info)
                        isdn_tty_at_cout(s, info);
                } else {
                        if (code == RESULT_RING) {
-                           /* return if "show RUNG" and ringcounter>1 */
-                           if ((m->mdmreg[REG_RUNG] & BIT_RUNG) &&
+                               /* return if "show RUNG" and ringcounter>1 */
+                               if ((m->mdmreg[REG_RUNG] & BIT_RUNG) &&
                                    (m->mdmreg[REG_RINGCNT] > 1))
-                                               return;
-                           /* print CID, _before_ _every_ ring */
-                           if (!(m->mdmreg[REG_CIDONCE] & BIT_CIDONCE)) {
-                                   isdn_tty_at_cout("\r\nCALLER NUMBER: ", info);
-                                   isdn_tty_at_cout(dev->num[info->drv_index], info);
-                                   if (m->mdmreg[REG_CDN] & BIT_CDN) {
-                                           isdn_tty_at_cout("\r\nCALLED NUMBER: ", info);
-                                           isdn_tty_at_cout(info->emu.cpn, info);
-                                   }
-                           }
+                                       return;
+                               /* print CID, _before_ _every_ ring */
+                               if (!(m->mdmreg[REG_CIDONCE] & BIT_CIDONCE)) {
+                                       isdn_tty_at_cout("\r\nCALLER NUMBER: ", info);
+                                       isdn_tty_at_cout(dev->num[info->drv_index], info);
+                                       if (m->mdmreg[REG_CDN] & BIT_CDN) {
+                                               isdn_tty_at_cout("\r\nCALLED NUMBER: ", info);
+                                               isdn_tty_at_cout(info->emu.cpn, info);
+                                       }
+                               }
                        }
                        isdn_tty_at_cout("\r\n", info);
                        isdn_tty_at_cout(msg[code], info);
                        switch (code) {
-                               case RESULT_CONNECT:
-                                       switch (m->mdmreg[REG_L2PROT]) {
-                                               case ISDN_PROTO_L2_MODEM:
-                                                       isdn_tty_at_cout(" ", info);
-                                                       isdn_tty_at_cout(m->connmsg, info);
-                                                       break;
-                                       }
+                       case RESULT_CONNECT:
+                               switch (m->mdmreg[REG_L2PROT]) {
+                               case ISDN_PROTO_L2_MODEM:
+                                       isdn_tty_at_cout(" ", info);
+                                       isdn_tty_at_cout(m->connmsg, info);
                                        break;
-                               case RESULT_RING:
-                                       /* Append CPN, if enabled */
-                                       if ((m->mdmreg[REG_CPN] & BIT_CPN)) {
-                                               sprintf(s, "/%s", m->cpn);
-                                               isdn_tty_at_cout(s, info);
-                                       }
-                                       /* Print CID only once, _after_ 1st RING */
-                                       if ((m->mdmreg[REG_CIDONCE] & BIT_CIDONCE) &&
-                                           (m->mdmreg[REG_RINGCNT] == 1)) {
-                                               isdn_tty_at_cout("\r\n", info);
-                                               isdn_tty_at_cout("CALLER NUMBER: ", info);
-                                               isdn_tty_at_cout(dev->num[info->drv_index], info);
-                                               if (m->mdmreg[REG_CDN] & BIT_CDN) {
-                                                       isdn_tty_at_cout("\r\nCALLED NUMBER: ", info);
-                                                       isdn_tty_at_cout(info->emu.cpn, info);
-                                               }
+                               }
+                               break;
+                       case RESULT_RING:
+                               /* Append CPN, if enabled */
+                               if ((m->mdmreg[REG_CPN] & BIT_CPN)) {
+                                       sprintf(s, "/%s", m->cpn);
+                                       isdn_tty_at_cout(s, info);
+                               }
+                               /* Print CID only once, _after_ 1st RING */
+                               if ((m->mdmreg[REG_CIDONCE] & BIT_CIDONCE) &&
+                                   (m->mdmreg[REG_RINGCNT] == 1)) {
+                                       isdn_tty_at_cout("\r\n", info);
+                                       isdn_tty_at_cout("CALLER NUMBER: ", info);
+                                       isdn_tty_at_cout(dev->num[info->drv_index], info);
+                                       if (m->mdmreg[REG_CDN] & BIT_CDN) {
+                                               isdn_tty_at_cout("\r\nCALLED NUMBER: ", info);
+                                               isdn_tty_at_cout(info->emu.cpn, info);
                                        }
+                               }
+                               break;
+                       case RESULT_NO_CARRIER:
+                       case RESULT_NO_DIALTONE:
+                       case RESULT_BUSY:
+                       case RESULT_NO_ANSWER:
+                               m->mdmreg[REG_RINGCNT] = 0;
+                               /* Append Cause-Message if enabled */
+                               if (m->mdmreg[REG_RESPXT] & BIT_RESPXT) {
+                                       sprintf(s, "/%s", info->last_cause);
+                                       isdn_tty_at_cout(s, info);
+                               }
+                               break;
+                       case RESULT_CONNECT64000:
+                               /* Append Protocol to CONNECT message */
+                               switch (m->mdmreg[REG_L2PROT]) {
+                               case ISDN_PROTO_L2_X75I:
+                               case ISDN_PROTO_L2_X75UI:
+                               case ISDN_PROTO_L2_X75BUI:
+                                       isdn_tty_at_cout("/X.75", info);
                                        break;
-                               case RESULT_NO_CARRIER:
-                               case RESULT_NO_DIALTONE:
-                               case RESULT_BUSY:
-                               case RESULT_NO_ANSWER:
-                                       m->mdmreg[REG_RINGCNT] = 0;
-                                       /* Append Cause-Message if enabled */
-                                       if (m->mdmreg[REG_RESPXT] & BIT_RESPXT) {
-                                               sprintf(s, "/%s", info->last_cause);
-                                               isdn_tty_at_cout(s, info);
-                                       }
+                               case ISDN_PROTO_L2_HDLC:
+                                       isdn_tty_at_cout("/HDLC", info);
                                        break;
-                               case RESULT_CONNECT64000:
-                                       /* Append Protocol to CONNECT message */
-                                       switch (m->mdmreg[REG_L2PROT]) {
-                                               case ISDN_PROTO_L2_X75I:
-                                               case ISDN_PROTO_L2_X75UI:
-                                               case ISDN_PROTO_L2_X75BUI:
-                                                       isdn_tty_at_cout("/X.75", info);
-                                                       break;
-                                               case ISDN_PROTO_L2_HDLC:
-                                                       isdn_tty_at_cout("/HDLC", info);
-                                                       break;
-                                               case ISDN_PROTO_L2_V11096:
-                                                       isdn_tty_at_cout("/V110/9600", info);
-                                                       break;
-                                               case ISDN_PROTO_L2_V11019:
-                                                       isdn_tty_at_cout("/V110/19200", info);
-                                                       break;
-                                               case ISDN_PROTO_L2_V11038:
-                                                       isdn_tty_at_cout("/V110/38400", info);
-                                                       break;
-                                       }
-                                       if (m->mdmreg[REG_T70] & BIT_T70) {
-                                               isdn_tty_at_cout("/T.70", info);
-                                               if (m->mdmreg[REG_T70] & BIT_T70_EXT)
-                                                       isdn_tty_at_cout("+", info);
-                                       }
+                               case ISDN_PROTO_L2_V11096:
+                                       isdn_tty_at_cout("/V110/9600", info);
+                                       break;
+                               case ISDN_PROTO_L2_V11019:
+                                       isdn_tty_at_cout("/V110/19200", info);
+                                       break;
+                               case ISDN_PROTO_L2_V11038:
+                                       isdn_tty_at_cout("/V110/38400", info);
                                        break;
+                               }
+                               if (m->mdmreg[REG_T70] & BIT_T70) {
+                                       isdn_tty_at_cout("/T.70", info);
+                                       if (m->mdmreg[REG_T70] & BIT_T70_EXT)
+                                               isdn_tty_at_cout("+", info);
+                               }
+                               break;
                        }
                        isdn_tty_at_cout("\r\n", info);
                }
@@ -2648,7 +2648,7 @@ isdn_tty_modem_result(int code, modem_info * info)
  * Display a modem-register-value.
  */
 static void
-isdn_tty_show_profile(int ridx, modem_info * info)
+isdn_tty_show_profile(int ridx, modem_info *info)
 {
        char v[6];
 
@@ -2667,7 +2667,7 @@ isdn_tty_get_msnstr(char *n, char **p)
        while (((*p[0] >= '0' && *p[0] <= '9') ||
                /* Why a comma ??? */
                (*p[0] == ',') || (*p[0] == ':')) &&
-               (limit--))
+              (limit--))
                *n++ = *p[0]++;
        *n = '\0';
 }
@@ -2676,20 +2676,20 @@ isdn_tty_get_msnstr(char *n, char **p)
  * Get phone-number from modem-commandbuffer
  */
 static void
-isdn_tty_getdial(char *p, char *q,int cnt)
+isdn_tty_getdial(char *p, char *q, int cnt)
 {
        int first = 1;
        int limit = ISDN_MSNLEN - 1;    /* MUST match the size of interface var to avoid
-                                       buffer overflow */
+                                          buffer overflow */
 
-       while (strchr(" 0123456789,#.*WPTSR-", *p) && *p && --cnt>0) {
+       while (strchr(" 0123456789,#.*WPTSR-", *p) && *p && --cnt > 0) {
                if ((*p >= '0' && *p <= '9') || ((*p == 'S') && first) ||
                    ((*p == 'R') && first) ||
                    (*p == '*') || (*p == '#')) {
                        *q++ = *p;
                        limit--;
                }
-               if(!limit)
+               if (!limit)
                        break;
                p++;
                first = 0;
@@ -2701,7 +2701,7 @@ isdn_tty_getdial(char *p, char *q,int cnt)
 #define PARSE_ERROR1 { isdn_tty_modem_result(RESULT_ERROR, info); return 1; }
 
 static void
-isdn_tty_report(modem_info * info)
+isdn_tty_report(modem_info *info)
 {
        atemu *m = &info->emu;
        char s[80];
@@ -2713,39 +2713,39 @@ isdn_tty_report(modem_info * info)
        isdn_tty_at_cout(s, info);
        isdn_tty_at_cout("    Layer-2 Protocol: ", info);
        switch (info->last_l2) {
-               case ISDN_PROTO_L2_X75I:
-                       isdn_tty_at_cout("X.75i", info);
-                       break;
-               case ISDN_PROTO_L2_X75UI:
-                       isdn_tty_at_cout("X.75ui", info);
-                       break;
-               case ISDN_PROTO_L2_X75BUI:
-                       isdn_tty_at_cout("X.75bui", info);
-                       break;
-               case ISDN_PROTO_L2_HDLC:
-                       isdn_tty_at_cout("HDLC", info);
-                       break;
-               case ISDN_PROTO_L2_V11096:
-                       isdn_tty_at_cout("V.110 9600 Baud", info);
-                       break;
-               case ISDN_PROTO_L2_V11019:
-                       isdn_tty_at_cout("V.110 19200 Baud", info);
-                       break;
-               case ISDN_PROTO_L2_V11038:
-                       isdn_tty_at_cout("V.110 38400 Baud", info);
-                       break;
-               case ISDN_PROTO_L2_TRANS:
-                       isdn_tty_at_cout("transparent", info);
-                       break;
-               case ISDN_PROTO_L2_MODEM:
-                       isdn_tty_at_cout("modem", info);
-                       break;
-               case ISDN_PROTO_L2_FAX:
-                       isdn_tty_at_cout("fax", info);
-                       break;
-               default:
-                       isdn_tty_at_cout("unknown", info);
-                       break;
+       case ISDN_PROTO_L2_X75I:
+               isdn_tty_at_cout("X.75i", info);
+               break;
+       case ISDN_PROTO_L2_X75UI:
+               isdn_tty_at_cout("X.75ui", info);
+               break;
+       case ISDN_PROTO_L2_X75BUI:
+               isdn_tty_at_cout("X.75bui", info);
+               break;
+       case ISDN_PROTO_L2_HDLC:
+               isdn_tty_at_cout("HDLC", info);
+               break;
+       case ISDN_PROTO_L2_V11096:
+               isdn_tty_at_cout("V.110 9600 Baud", info);
+               break;
+       case ISDN_PROTO_L2_V11019:
+               isdn_tty_at_cout("V.110 19200 Baud", info);
+               break;
+       case ISDN_PROTO_L2_V11038:
+               isdn_tty_at_cout("V.110 38400 Baud", info);
+               break;
+       case ISDN_PROTO_L2_TRANS:
+               isdn_tty_at_cout("transparent", info);
+               break;
+       case ISDN_PROTO_L2_MODEM:
+               isdn_tty_at_cout("modem", info);
+               break;
+       case ISDN_PROTO_L2_FAX:
+               isdn_tty_at_cout("fax", info);
+               break;
+       default:
+               isdn_tty_at_cout("unknown", info);
+               break;
        }
        if (m->mdmreg[REG_T70] & BIT_T70) {
                isdn_tty_at_cout("/T.70", info);
@@ -2755,19 +2755,19 @@ isdn_tty_report(modem_info * info)
        isdn_tty_at_cout("\r\n", info);
        isdn_tty_at_cout("    Service:          ", info);
        switch (info->last_si) {
-               case 1:
-                       isdn_tty_at_cout("audio\r\n", info);
-                       break;
-               case 5:
-                       isdn_tty_at_cout("btx\r\n", info);
-                       break;
-               case 7:
-                       isdn_tty_at_cout("data\r\n", info);
-                       break;
-               default:
-                       sprintf(s, "%d\r\n", info->last_si);
-                       isdn_tty_at_cout(s, info);
-                       break;
+       case 1:
+               isdn_tty_at_cout("audio\r\n", info);
+               break;
+       case 5:
+               isdn_tty_at_cout("btx\r\n", info);
+               break;
+       case 7:
+               isdn_tty_at_cout("data\r\n", info);
+               break;
+       default:
+               sprintf(s, "%d\r\n", info->last_si);
+               isdn_tty_at_cout(s, info);
+               break;
        }
        sprintf(s, "    Hangup location:  %s\r\n", info->last_lhup ? "local" : "remote");
        isdn_tty_at_cout(s, info);
@@ -2779,7 +2779,7 @@ isdn_tty_report(modem_info * info)
  * Parse AT&.. commands.
  */
 static int
-isdn_tty_cmd_ATand(char **p, modem_info * info)
+isdn_tty_cmd_ATand(char **p, modem_info *info)
 {
        atemu *m = &info->emu;
        int i;
@@ -2788,224 +2788,224 @@ isdn_tty_cmd_ATand(char **p, modem_info * info)
 #define MAXRB (sizeof(rb) - 1)
 
        switch (*p[0]) {
-               case 'B':
-                       /* &B - Set Buffersize */
-                       p[0]++;
-                       i = isdn_getnum(p);
-                       if ((i < 0) || (i > ISDN_SERIAL_XMIT_MAX))
-                               PARSE_ERROR1;
+       case 'B':
+               /* &B - Set Buffersize */
+               p[0]++;
+               i = isdn_getnum(p);
+               if ((i < 0) || (i > ISDN_SERIAL_XMIT_MAX))
+                       PARSE_ERROR1;
 #ifdef CONFIG_ISDN_AUDIO
-                       if ((m->mdmreg[REG_SI1] & 1) && (i > VBUF))
-                               PARSE_ERROR1;
+               if ((m->mdmreg[REG_SI1] & 1) && (i > VBUF))
+                       PARSE_ERROR1;
 #endif
-                       m->mdmreg[REG_PSIZE] = i / 16;
-                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16;
-                       switch (m->mdmreg[REG_L2PROT]) {
-                               case ISDN_PROTO_L2_V11096:
-                               case ISDN_PROTO_L2_V11019:
-                               case ISDN_PROTO_L2_V11038:
-                                       info->xmit_size /= 10;          
-                       }
-                       break;
-               case 'C':
-                       /* &C - DCD Status */
-                       p[0]++;
-                       switch (isdn_getnum(p)) {
-                               case 0:
-                                       m->mdmreg[REG_DCD] &= ~BIT_DCD;
-                                       break;
-                               case 1:
-                                       m->mdmreg[REG_DCD] |= BIT_DCD;
-                                       break;
-                               default:
-                                       PARSE_ERROR1
-                       }
+               m->mdmreg[REG_PSIZE] = i / 16;
+               info->xmit_size = m->mdmreg[REG_PSIZE] * 16;
+               switch (m->mdmreg[REG_L2PROT]) {
+               case ISDN_PROTO_L2_V11096:
+               case ISDN_PROTO_L2_V11019:
+               case ISDN_PROTO_L2_V11038:
+                       info->xmit_size /= 10;
+               }
+               break;
+       case 'C':
+               /* &C - DCD Status */
+               p[0]++;
+               switch (isdn_getnum(p)) {
+               case 0:
+                       m->mdmreg[REG_DCD] &= ~BIT_DCD;
                        break;
-               case 'D':
-                       /* &D - Set DTR-Low-behavior */
-                       p[0]++;
-                       switch (isdn_getnum(p)) {
-                               case 0:
-                                       m->mdmreg[REG_DTRHUP] &= ~BIT_DTRHUP;
-                                       m->mdmreg[REG_DTRR] &= ~BIT_DTRR;
-                                       break;
-                               case 2:
-                                       m->mdmreg[REG_DTRHUP] |= BIT_DTRHUP;
-                                       m->mdmreg[REG_DTRR] &= ~BIT_DTRR;
-                                       break;
-                               case 3:
-                                       m->mdmreg[REG_DTRHUP] |= BIT_DTRHUP;
-                                       m->mdmreg[REG_DTRR] |= BIT_DTRR;
-                                       break;
-                               default:
-                                       PARSE_ERROR1
-                       }
+               case 1:
+                       m->mdmreg[REG_DCD] |= BIT_DCD;
                        break;
-               case 'E':
-                       /* &E -Set EAZ/MSN */
-                       p[0]++;
-                       isdn_tty_get_msnstr(m->msn, p);
+               default:
+                       PARSE_ERROR1
+                               }
+               break;
+       case 'D':
+               /* &D - Set DTR-Low-behavior */
+               p[0]++;
+               switch (isdn_getnum(p)) {
+               case 0:
+                       m->mdmreg[REG_DTRHUP] &= ~BIT_DTRHUP;
+                       m->mdmreg[REG_DTRR] &= ~BIT_DTRR;
                        break;
-               case 'F':
-                       /* &F -Set Factory-Defaults */
-                       p[0]++;
-                       if (info->msr & UART_MSR_DCD)
-                               PARSE_ERROR1;
-                       isdn_tty_reset_profile(m);
-                       isdn_tty_modem_reset_regs(info, 1);
+               case 2:
+                       m->mdmreg[REG_DTRHUP] |= BIT_DTRHUP;
+                       m->mdmreg[REG_DTRR] &= ~BIT_DTRR;
+                       break;
+               case 3:
+                       m->mdmreg[REG_DTRHUP] |= BIT_DTRHUP;
+                       m->mdmreg[REG_DTRR] |= BIT_DTRR;
                        break;
+               default:
+                       PARSE_ERROR1
+                               }
+               break;
+       case 'E':
+               /* &E -Set EAZ/MSN */
+               p[0]++;
+               isdn_tty_get_msnstr(m->msn, p);
+               break;
+       case 'F':
+               /* &F -Set Factory-Defaults */
+               p[0]++;
+               if (info->msr & UART_MSR_DCD)
+                       PARSE_ERROR1;
+               isdn_tty_reset_profile(m);
+               isdn_tty_modem_reset_regs(info, 1);
+               break;
 #ifdef DUMMY_HAYES_AT
-               case 'K':
-                       /* only for be compilant with common scripts */
-                       /* &K Flowcontrol - no function */
-                       p[0]++;
-                       isdn_getnum(p);
+       case 'K':
+               /* only for be compilant with common scripts */
+               /* &K Flowcontrol - no function */
+               p[0]++;
+               isdn_getnum(p);
+               break;
+#endif
+       case 'L':
+               /* &L -Set Numbers to listen on */
+               p[0]++;
+               i = 0;
+               while (*p[0] && (strchr("0123456789,-*[]?;", *p[0])) &&
+                      (i < ISDN_LMSNLEN - 1))
+                       m->lmsn[i++] = *p[0]++;
+               m->lmsn[i] = '\0';
+               break;
+       case 'R':
+               /* &R - Set V.110 bitrate adaption */
+               p[0]++;
+               i = isdn_getnum(p);
+               switch (i) {
+               case 0:
+                       /* Switch off V.110, back to X.75 */
+                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
+                       m->mdmreg[REG_SI2] = 0;
+                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16;
                        break;
-#endif
-               case 'L':
-                       /* &L -Set Numbers to listen on */
-                       p[0]++;
-                       i = 0;
-                       while (*p[0] && (strchr("0123456789,-*[]?;", *p[0])) &&
-                              (i < ISDN_LMSNLEN - 1))
-                               m->lmsn[i++] = *p[0]++;
-                       m->lmsn[i] = '\0';
-                       break;
-               case 'R':
-                       /* &R - Set V.110 bitrate adaption */
-                       p[0]++;
-                       i = isdn_getnum(p);
-                       switch (i) {
-                               case 0:
-                                       /* Switch off V.110, back to X.75 */
-                                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
-                                       m->mdmreg[REG_SI2] = 0;
-                                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16;
-                                       break;
-                               case 9600:
-                                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_V11096;
-                                       m->mdmreg[REG_SI2] = 197;
-                                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16 / 10;
-                                       break;
-                               case 19200:
-                                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_V11019;
-                                       m->mdmreg[REG_SI2] = 199;
-                                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16 / 10;
-                                       break;
-                               case 38400:
-                                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_V11038;
-                                       m->mdmreg[REG_SI2] = 198; /* no existing standard for this */
-                                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16 / 10;
-                                       break;
-                               default:
-                                       PARSE_ERROR1;
-                       }
-                       /* Switch off T.70 */
-                       m->mdmreg[REG_T70] &= ~(BIT_T70 | BIT_T70_EXT);
-                       /* Set Service 7 */
-                       m->mdmreg[REG_SI1] |= 4;
+               case 9600:
+                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_V11096;
+                       m->mdmreg[REG_SI2] = 197;
+                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16 / 10;
                        break;
-               case 'S':
-                       /* &S - Set Windowsize */
-                       p[0]++;
-                       i = isdn_getnum(p);
-                       if ((i > 0) && (i < 9))
-                               m->mdmreg[REG_WSIZE] = i;
-                       else
-                               PARSE_ERROR1;
+               case 19200:
+                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_V11019;
+                       m->mdmreg[REG_SI2] = 199;
+                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16 / 10;
                        break;
-               case 'V':
-                       /* &V - Show registers */
-                       p[0]++;
-                       isdn_tty_at_cout("\r\n", info);
-                       for (i = 0; i < ISDN_MODEM_NUMREG; i++) {
-                               sprintf(rb, "S%02d=%03d%s", i,
-                                       m->mdmreg[i], ((i + 1) % 10) ? " " : "\r\n");
-                               isdn_tty_at_cout(rb, info);
-                       }
-                       sprintf(rb, "\r\nEAZ/MSN: %.50s\r\n",
-                               strlen(m->msn) ? m->msn : "None");
-                       isdn_tty_at_cout(rb, info);
-                       if (strlen(m->lmsn)) {
-                               isdn_tty_at_cout("\r\nListen: ", info);
-                               isdn_tty_at_cout(m->lmsn, info);
-                               isdn_tty_at_cout("\r\n", info);
-                       }
+               case 38400:
+                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_V11038;
+                       m->mdmreg[REG_SI2] = 198; /* no existing standard for this */
+                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16 / 10;
                        break;
-               case 'W':
-                       /* &W - Write Profile */
+               default:
+                       PARSE_ERROR1;
+               }
+               /* Switch off T.70 */
+               m->mdmreg[REG_T70] &= ~(BIT_T70 | BIT_T70_EXT);
+               /* Set Service 7 */
+               m->mdmreg[REG_SI1] |= 4;
+               break;
+       case 'S':
+               /* &S - Set Windowsize */
+               p[0]++;
+               i = isdn_getnum(p);
+               if ((i > 0) && (i < 9))
+                       m->mdmreg[REG_WSIZE] = i;
+               else
+                       PARSE_ERROR1;
+               break;
+       case 'V':
+               /* &V - Show registers */
+               p[0]++;
+               isdn_tty_at_cout("\r\n", info);
+               for (i = 0; i < ISDN_MODEM_NUMREG; i++) {
+                       sprintf(rb, "S%02d=%03d%s", i,
+                               m->mdmreg[i], ((i + 1) % 10) ? " " : "\r\n");
+                       isdn_tty_at_cout(rb, info);
+               }
+               sprintf(rb, "\r\nEAZ/MSN: %.50s\r\n",
+                       strlen(m->msn) ? m->msn : "None");
+               isdn_tty_at_cout(rb, info);
+               if (strlen(m->lmsn)) {
+                       isdn_tty_at_cout("\r\nListen: ", info);
+                       isdn_tty_at_cout(m->lmsn, info);
+                       isdn_tty_at_cout("\r\n", info);
+               }
+               break;
+       case 'W':
+               /* &W - Write Profile */
+               p[0]++;
+               switch (*p[0]) {
+               case '0':
                        p[0]++;
-                       switch (*p[0]) {
-                               case '0':
-                                       p[0]++;
-                                       modem_write_profile(m);
-                                       break;
-                               default:
-                                       PARSE_ERROR1;
-                       }
+                       modem_write_profile(m);
                        break;
-               case 'X':
-                       /* &X - Switch to BTX-Mode and T.70 */
-                       p[0]++;
-                       switch (isdn_getnum(p)) {
-                               case 0:
-                                       m->mdmreg[REG_T70] &= ~(BIT_T70 | BIT_T70_EXT);
-                                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16;
-                                       break;
-                               case 1:
-                                       m->mdmreg[REG_T70] |= BIT_T70;
-                                       m->mdmreg[REG_T70] &= ~BIT_T70_EXT;
-                                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
-                                       info->xmit_size = 112;
-                                       m->mdmreg[REG_SI1] = 4;
-                                       m->mdmreg[REG_SI2] = 0;
-                                       break;
-                               case 2:
-                                       m->mdmreg[REG_T70] |= (BIT_T70 | BIT_T70_EXT);
-                                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
-                                       info->xmit_size = 112;
-                                       m->mdmreg[REG_SI1] = 4;
-                                       m->mdmreg[REG_SI2] = 0;
-                                       break;
-                               default:
-                                       PARSE_ERROR1;
-                       }
+               default:
+                       PARSE_ERROR1;
+               }
+               break;
+       case 'X':
+               /* &X - Switch to BTX-Mode and T.70 */
+               p[0]++;
+               switch (isdn_getnum(p)) {
+               case 0:
+                       m->mdmreg[REG_T70] &= ~(BIT_T70 | BIT_T70_EXT);
+                       info->xmit_size = m->mdmreg[REG_PSIZE] * 16;
+                       break;
+               case 1:
+                       m->mdmreg[REG_T70] |= BIT_T70;
+                       m->mdmreg[REG_T70] &= ~BIT_T70_EXT;
+                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
+                       info->xmit_size = 112;
+                       m->mdmreg[REG_SI1] = 4;
+                       m->mdmreg[REG_SI2] = 0;
+                       break;
+               case 2:
+                       m->mdmreg[REG_T70] |= (BIT_T70 | BIT_T70_EXT);
+                       m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
+                       info->xmit_size = 112;
+                       m->mdmreg[REG_SI1] = 4;
+                       m->mdmreg[REG_SI2] = 0;
                        break;
                default:
                        PARSE_ERROR1;
+               }
+               break;
+       default:
+               PARSE_ERROR1;
        }
        return 0;
 }
 
 static int
-isdn_tty_check_ats(int mreg, int mval, modem_info * info, atemu * m)
+isdn_tty_check_ats(int mreg, int mval, modem_info *info, atemu *m)
 {
        /* Some plausibility checks */
        switch (mreg) {
-               case REG_L2PROT:
-                       if (mval > ISDN_PROTO_L2_MAX)
-                               return 1;
-                       break;
-               case REG_PSIZE:
-                       if ((mval * 16) > ISDN_SERIAL_XMIT_MAX)
-                               return 1;
+       case REG_L2PROT:
+               if (mval > ISDN_PROTO_L2_MAX)
+                       return 1;
+               break;
+       case REG_PSIZE:
+               if ((mval * 16) > ISDN_SERIAL_XMIT_MAX)
+                       return 1;
 #ifdef CONFIG_ISDN_AUDIO
-                       if ((m->mdmreg[REG_SI1] & 1) && (mval > VBUFX))
-                               return 1;
-#endif
-                       info->xmit_size = mval * 16;
-                       switch (m->mdmreg[REG_L2PROT]) {
-                               case ISDN_PROTO_L2_V11096:
-                               case ISDN_PROTO_L2_V11019:
-                               case ISDN_PROTO_L2_V11038:
-                                       info->xmit_size /= 10;          
-                       }
-                       break;
-               case REG_SI1I:
-               case REG_PLAN:
-               case REG_SCREEN:
-                       /* readonly registers */
+               if ((m->mdmreg[REG_SI1] & 1) && (mval > VBUFX))
                        return 1;
+#endif
+               info->xmit_size = mval * 16;
+               switch (m->mdmreg[REG_L2PROT]) {
+               case ISDN_PROTO_L2_V11096:
+               case ISDN_PROTO_L2_V11019:
+               case ISDN_PROTO_L2_V11038:
+                       info->xmit_size /= 10;
+               }
+               break;
+       case REG_SI1I:
+       case REG_PLAN:
+       case REG_SCREEN:
+               /* readonly registers */
+               return 1;
        }
        return 0;
 }
@@ -3014,7 +3014,7 @@ isdn_tty_check_ats(int mreg, int mval, modem_info * info, atemu * m)
  * Perform ATS command
  */
 static int
-isdn_tty_cmd_ATS(char **p, modem_info * info)
+isdn_tty_cmd_ATS(char **p, modem_info *info)
 {
        atemu *m = &info->emu;
        int bitpos;
@@ -3026,52 +3026,52 @@ isdn_tty_cmd_ATS(char **p, modem_info * info)
        if (mreg < 0 || mreg >= ISDN_MODEM_NUMREG)
                PARSE_ERROR1;
        switch (*p[0]) {
+       case '=':
+               p[0]++;
+               mval = isdn_getnum(p);
+               if (mval < 0 || mval > 255)
+                       PARSE_ERROR1;
+               if (isdn_tty_check_ats(mreg, mval, info, m))
+                       PARSE_ERROR1;
+               m->mdmreg[mreg] = mval;
+               break;
+       case '.':
+               /* Set/Clear a single bit */
+               p[0]++;
+               bitpos = isdn_getnum(p);
+               if ((bitpos < 0) || (bitpos > 7))
+                       PARSE_ERROR1;
+               switch (*p[0]) {
                case '=':
                        p[0]++;
-                       mval = isdn_getnum(p);
-                       if (mval < 0 || mval > 255)
+                       bval = isdn_getnum(p);
+                       if (bval < 0 || bval > 1)
                                PARSE_ERROR1;
+                       if (bval)
+                               mval = m->mdmreg[mreg] | (1 << bitpos);
+                       else
+                               mval = m->mdmreg[mreg] & ~(1 << bitpos);
                        if (isdn_tty_check_ats(mreg, mval, info, m))
                                PARSE_ERROR1;
                        m->mdmreg[mreg] = mval;
                        break;
-               case '.':
-                       /* Set/Clear a single bit */
-                       p[0]++;
-                       bitpos = isdn_getnum(p);
-                       if ((bitpos < 0) || (bitpos > 7))
-                               PARSE_ERROR1;
-                       switch (*p[0]) {
-                               case '=':
-                                       p[0]++;
-                                       bval = isdn_getnum(p);
-                                       if (bval < 0 || bval > 1)
-                                               PARSE_ERROR1;
-                                       if (bval)
-                                               mval = m->mdmreg[mreg] | (1 << bitpos);
-                                       else
-                                               mval = m->mdmreg[mreg] & ~(1 << bitpos);
-                                       if (isdn_tty_check_ats(mreg, mval, info, m))
-                                               PARSE_ERROR1;
-                                       m->mdmreg[mreg] = mval;
-                                       break;
-                               case '?':
-                                       p[0]++;
-                                       isdn_tty_at_cout("\r\n", info);
-                                       isdn_tty_at_cout((m->mdmreg[mreg] & (1 << bitpos)) ? "1" : "0",
-                                                        info);
-                                       break;
-                               default:
-                                       PARSE_ERROR1;
-                       }
-                       break;
                case '?':
                        p[0]++;
-                       isdn_tty_show_profile(mreg, info);
+                       isdn_tty_at_cout("\r\n", info);
+                       isdn_tty_at_cout((m->mdmreg[mreg] & (1 << bitpos)) ? "1" : "0",
+                                        info);
                        break;
                default:
                        PARSE_ERROR1;
-                       break;
+               }
+               break;
+       case '?':
+               p[0]++;
+               isdn_tty_show_profile(mreg, info);
+               break;
+       default:
+               PARSE_ERROR1;
+               break;
        }
        return 0;
 }
@@ -3080,7 +3080,7 @@ isdn_tty_cmd_ATS(char **p, modem_info * info)
  * Perform ATA command
  */
 static void
-isdn_tty_cmd_ATA(modem_info * info)
+isdn_tty_cmd_ATA(modem_info *info)
 {
        atemu *m = &info->emu;
        isdn_ctrl cmd;
@@ -3134,7 +3134,7 @@ isdn_tty_cmd_ATA(modem_info * info)
  * Parse AT+F.. commands
  */
 static int
-isdn_tty_cmd_PLUSF(char **p, modem_info * info)
+isdn_tty_cmd_PLUSF(char **p, modem_info *info)
 {
        atemu *m = &info->emu;
        char rs[20];
@@ -3142,81 +3142,81 @@ isdn_tty_cmd_PLUSF(char **p, modem_info * info)
        if (!strncmp(p[0], "CLASS", 5)) {
                p[0] += 5;
                switch (*p[0]) {
-                       case '?':
-                               p[0]++;
-                               sprintf(rs, "\r\n%d",
-                                       (m->mdmreg[REG_SI1] & 1) ? 8 : 0);
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d",
+                               (m->mdmreg[REG_SI1] & 1) ? 8 : 0);
 #ifdef CONFIG_ISDN_TTY_FAX
-                               if (TTY_IS_FCLASS2(info))
-                                               sprintf(rs, "\r\n2");
-                               else if (TTY_IS_FCLASS1(info))
-                                               sprintf(rs, "\r\n1");
+                       if (TTY_IS_FCLASS2(info))
+                               sprintf(rs, "\r\n2");
+                       else if (TTY_IS_FCLASS1(info))
+                               sprintf(rs, "\r\n1");
 #endif
-                               isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       switch (*p[0]) {
+                       case '0':
                                p[0]++;
-                               switch (*p[0]) {
-                                       case '0':
-                                               p[0]++;
-                                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
-                                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_TRANS;
-                                               m->mdmreg[REG_SI1] = 4;
-                                               info->xmit_size =
-                                                   m->mdmreg[REG_PSIZE] * 16;
-                                               break;
+                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
+                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_TRANS;
+                               m->mdmreg[REG_SI1] = 4;
+                               info->xmit_size =
+                                       m->mdmreg[REG_PSIZE] * 16;
+                               break;
 #ifdef CONFIG_ISDN_TTY_FAX
-                                       case '1':
-                                               p[0]++;
-                                               if (!(dev->global_features &
-                                                       ISDN_FEATURE_L3_FCLASS1))
-                                                       PARSE_ERROR1;
-                                               m->mdmreg[REG_SI1] = 1;
-                                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_FAX;
-                                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FCLASS1;
-                                               info->xmit_size =
-                                                   m->mdmreg[REG_PSIZE] * 16;
-                                               break;
-                                       case '2':
-                                               p[0]++;
-                                               if (!(dev->global_features &
-                                                       ISDN_FEATURE_L3_FCLASS2))
-                                                       PARSE_ERROR1;
-                                               m->mdmreg[REG_SI1] = 1;
-                                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_FAX;
-                                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FCLASS2;
-                                               info->xmit_size =
-                                                   m->mdmreg[REG_PSIZE] * 16;
-                                               break;
+                       case '1':
+                               p[0]++;
+                               if (!(dev->global_features &
+                                     ISDN_FEATURE_L3_FCLASS1))
+                                       PARSE_ERROR1;
+                               m->mdmreg[REG_SI1] = 1;
+                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_FAX;
+                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FCLASS1;
+                               info->xmit_size =
+                                       m->mdmreg[REG_PSIZE] * 16;
+                               break;
+                       case '2':
+                               p[0]++;
+                               if (!(dev->global_features &
+                                     ISDN_FEATURE_L3_FCLASS2))
+                                       PARSE_ERROR1;
+                               m->mdmreg[REG_SI1] = 1;
+                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_FAX;
+                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FCLASS2;
+                               info->xmit_size =
+                                       m->mdmreg[REG_PSIZE] * 16;
+                               break;
 #endif
-                                       case '8':
-                                               p[0]++;
-                                               /* L2 will change on dialout with si=1 */
-                                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
-                                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_TRANS;
-                                               m->mdmreg[REG_SI1] = 5;
-                                               info->xmit_size = VBUF;
-                                               break;
-                                       case '?':
-                                               p[0]++;
-                                               strcpy(rs, "\r\n0,");
+                       case '8':
+                               p[0]++;
+                               /* L2 will change on dialout with si=1 */
+                               m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_X75I;
+                               m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_TRANS;
+                               m->mdmreg[REG_SI1] = 5;
+                               info->xmit_size = VBUF;
+                               break;
+                       case '?':
+                               p[0]++;
+                               strcpy(rs, "\r\n0,");
 #ifdef CONFIG_ISDN_TTY_FAX
-                                               if (dev->global_features &
-                                                       ISDN_FEATURE_L3_FCLASS1)
-                                                       strcat(rs, "1,");
-                                               if (dev->global_features &
-                                                       ISDN_FEATURE_L3_FCLASS2)
-                                                       strcat(rs, "2,");
-#endif
-                                               strcat(rs, "8");
-                                               isdn_tty_at_cout(rs, info);
-                                               break;
-                                       default:
-                                               PARSE_ERROR1;
-                               }
+                               if (dev->global_features &
+                                   ISDN_FEATURE_L3_FCLASS1)
+                                       strcat(rs, "1,");
+                               if (dev->global_features &
+                                   ISDN_FEATURE_L3_FCLASS2)
+                                       strcat(rs, "2,");
+#endif
+                               strcat(rs, "8");
+                               isdn_tty_at_cout(rs, info);
                                break;
                        default:
                                PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -3231,12 +3231,12 @@ isdn_tty_cmd_PLUSF(char **p, modem_info * info)
  * Parse AT+V.. commands
  */
 static int
-isdn_tty_cmd_PLUSV(char **p, modem_info * info)
+isdn_tty_cmd_PLUSV(char **p, modem_info *info)
 {
        atemu *m = &info->emu;
        isdn_ctrl cmd;
        static char *vcmd[] =
-       {"NH", "IP", "LS", "RX", "SD", "SM", "TX", "DD", NULL};
+               {"NH", "IP", "LS", "RX", "SD", "SM", "TX", "DD", NULL};
        int i;
        int par1;
        int par2;
@@ -3251,256 +3251,256 @@ isdn_tty_cmd_PLUSV(char **p, modem_info * info)
                i++;
        }
        switch (i) {
-               case 0:
-                       /* AT+VNH - Auto hangup feature */
+       case 0:
+               /* AT+VNH - Auto hangup feature */
+               switch (*p[0]) {
+               case '?':
+                       p[0]++;
+                       isdn_tty_at_cout("\r\n1", info);
+                       break;
+               case '=':
+                       p[0]++;
                        switch (*p[0]) {
-                               case '?':
-                                       p[0]++;
-                                       isdn_tty_at_cout("\r\n1", info);
-                                       break;
-                               case '=':
-                                       p[0]++;
-                                       switch (*p[0]) {
-                                               case '1':
-                                                       p[0]++;
-                                                       break;
-                                               case '?':
-                                                       p[0]++;
-                                                       isdn_tty_at_cout("\r\n1", info);
-                                                       break;
-                                               default:
-                                                       PARSE_ERROR1;
-                                       }
-                                       break;
-                               default:
-                                       PARSE_ERROR1;
+                       case '1':
+                               p[0]++;
+                               break;
+                       case '?':
+                               p[0]++;
+                               isdn_tty_at_cout("\r\n1", info);
+                               break;
+                       default:
+                               PARSE_ERROR1;
                        }
                        break;
-               case 1:
-                       /* AT+VIP - Reset all voice parameters */
-                       isdn_tty_modem_reset_vpar(m);
+               default:
+                       PARSE_ERROR1;
+               }
+               break;
+       case 1:
+               /* AT+VIP - Reset all voice parameters */
+               isdn_tty_modem_reset_vpar(m);
+               break;
+       case 2:
+               /* AT+VLS - Select device, accept incoming call */
+               switch (*p[0]) {
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", m->vpar[0]);
+                       isdn_tty_at_cout(rs, info);
                        break;
-               case 2:
-                       /* AT+VLS - Select device, accept incoming call */
+               case '=':
+                       p[0]++;
                        switch (*p[0]) {
-                               case '?':
-                                       p[0]++;
-                                       sprintf(rs, "\r\n%d", m->vpar[0]);
-                                       isdn_tty_at_cout(rs, info);
-                                       break;
-                               case '=':
-                                       p[0]++;
-                                       switch (*p[0]) {
-                                               case '0':
-                                                       p[0]++;
-                                                       m->vpar[0] = 0;
-                                                       break;
-                                               case '2':
-                                                       p[0]++;
-                                                       m->vpar[0] = 2;
-                                                       break;
-                                               case '?':
-                                                       p[0]++;
-                                                       isdn_tty_at_cout("\r\n0,2", info);
-                                                       break;
-                                               default:
-                                                       PARSE_ERROR1;
-                                       }
-                                       break;
-                               default:
-                                       PARSE_ERROR1;
-                       }
-                       break;
-               case 3:
-                       /* AT+VRX - Start recording */
-                       if (!m->vpar[0])
-                               PARSE_ERROR1;
-                       if (info->online != 1) {
-                               isdn_tty_modem_result(RESULT_NO_ANSWER, info);
-                               return 1;
-                       }
-                       info->dtmf_state = isdn_audio_dtmf_init(info->dtmf_state);
-                       if (!info->dtmf_state) {
-                               printk(KERN_WARNING "isdn_tty: Couldn't malloc dtmf state\n");
+                       case '0':
+                               p[0]++;
+                               m->vpar[0] = 0;
+                               break;
+                       case '2':
+                               p[0]++;
+                               m->vpar[0] = 2;
+                               break;
+                       case '?':
+                               p[0]++;
+                               isdn_tty_at_cout("\r\n0,2", info);
+                               break;
+                       default:
                                PARSE_ERROR1;
                        }
-                       info->silence_state = isdn_audio_silence_init(info->silence_state);
-                       if (!info->silence_state) {
-                               printk(KERN_WARNING "isdn_tty: Couldn't malloc silence state\n");
+                       break;
+               default:
+                       PARSE_ERROR1;
+               }
+               break;
+       case 3:
+               /* AT+VRX - Start recording */
+               if (!m->vpar[0])
+                       PARSE_ERROR1;
+               if (info->online != 1) {
+                       isdn_tty_modem_result(RESULT_NO_ANSWER, info);
+                       return 1;
+               }
+               info->dtmf_state = isdn_audio_dtmf_init(info->dtmf_state);
+               if (!info->dtmf_state) {
+                       printk(KERN_WARNING "isdn_tty: Couldn't malloc dtmf state\n");
+                       PARSE_ERROR1;
+               }
+               info->silence_state = isdn_audio_silence_init(info->silence_state);
+               if (!info->silence_state) {
+                       printk(KERN_WARNING "isdn_tty: Couldn't malloc silence state\n");
+                       PARSE_ERROR1;
+               }
+               if (m->vpar[3] < 5) {
+                       info->adpcmr = isdn_audio_adpcm_init(info->adpcmr, m->vpar[3]);
+                       if (!info->adpcmr) {
+                               printk(KERN_WARNING "isdn_tty: Couldn't malloc adpcm state\n");
                                PARSE_ERROR1;
                        }
-                       if (m->vpar[3] < 5) {
-                               info->adpcmr = isdn_audio_adpcm_init(info->adpcmr, m->vpar[3]);
-                               if (!info->adpcmr) {
-                                       printk(KERN_WARNING "isdn_tty: Couldn't malloc adpcm state\n");
-                                       PARSE_ERROR1;
-                               }
-                       }
+               }
 #ifdef ISDN_DEBUG_AT
-                       printk(KERN_DEBUG "AT: +VRX\n");
+               printk(KERN_DEBUG "AT: +VRX\n");
 #endif
-                       info->vonline |= 1;
-                       isdn_tty_modem_result(RESULT_CONNECT, info);
-                       return 0;
+               info->vonline |= 1;
+               isdn_tty_modem_result(RESULT_CONNECT, info);
+               return 0;
+               break;
+       case 4:
+               /* AT+VSD - Silence detection */
+               switch (*p[0]) {
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n<%d>,<%d>",
+                               m->vpar[1],
+                               m->vpar[2]);
+                       isdn_tty_at_cout(rs, info);
                        break;
-               case 4:
-                       /* AT+VSD - Silence detection */
-                       switch (*p[0]) {
-                               case '?':
-                                       p[0]++;
-                                       sprintf(rs, "\r\n<%d>,<%d>",
-                                               m->vpar[1],
-                                               m->vpar[2]);
-                                       isdn_tty_at_cout(rs, info);
-                                       break;
-                               case '=':
-                                       p[0]++;
-                                       if ((*p[0]>='0') && (*p[0]<='9')) {
-                                               par1 = isdn_getnum(p);
-                                               if ((par1 < 0) || (par1 > 31))
-                                                       PARSE_ERROR1;
-                                               if (*p[0] != ',')
-                                                       PARSE_ERROR1;
-                                               p[0]++;
-                                               par2 = isdn_getnum(p);
-                                               if ((par2 < 0) || (par2 > 255))
-                                                       PARSE_ERROR1;
-                                               m->vpar[1] = par1;
-                                               m->vpar[2] = par2;
-                                               break;
-                                       } else 
-                                       if (*p[0] == '?') {
-                                               p[0]++;
-                                               isdn_tty_at_cout("\r\n<0-31>,<0-255>",
-                                                          info);
-                                               break;
-                                       } else
+               case '=':
+                       p[0]++;
+                       if ((*p[0] >= '0') && (*p[0] <= '9')) {
+                               par1 = isdn_getnum(p);
+                               if ((par1 < 0) || (par1 > 31))
                                        PARSE_ERROR1;
-                                       break;
-                               default:
+                               if (*p[0] != ',')
                                        PARSE_ERROR1;
-                       }
-                       break;
-               case 5:
-                       /* AT+VSM - Select compression */
-                       switch (*p[0]) {
-                               case '?':
-                                       p[0]++;
-                                       sprintf(rs, "\r\n<%d>,<%d><8000>",
-                                               m->vpar[3],
-                                               m->vpar[1]);
-                                       isdn_tty_at_cout(rs, info);
-                                       break;
-                               case '=':
+                               p[0]++;
+                               par2 = isdn_getnum(p);
+                               if ((par2 < 0) || (par2 > 255))
+                                       PARSE_ERROR1;
+                               m->vpar[1] = par1;
+                               m->vpar[2] = par2;
+                               break;
+                       } else
+                               if (*p[0] == '?') {
                                        p[0]++;
-                                       switch (*p[0]) {
-                                               case '2':
-                                               case '3':
-                                               case '4':
-                                               case '5':
-                                               case '6':
-                                                       par1 = isdn_getnum(p);
-                                                       if ((par1 < 2) || (par1 > 6))
-                                                               PARSE_ERROR1;
-                                                       m->vpar[3] = par1;
-                                                       break;
-                                               case '?':
-                                                       p[0]++;
-                                                       isdn_tty_at_cout("\r\n2;ADPCM;2;0;(8000)\r\n",
-                                                                  info);
-                                                       isdn_tty_at_cout("3;ADPCM;3;0;(8000)\r\n",
-                                                                  info);
-                                                       isdn_tty_at_cout("4;ADPCM;4;0;(8000)\r\n",
-                                                                  info);
-                                                       isdn_tty_at_cout("5;ALAW;8;0;(8000)\r\n",
-                                                                  info);
-                                                       isdn_tty_at_cout("6;ULAW;8;0;(8000)\r\n",
-                                                                  info);
-                                                       break;
-                                               default:
-                                                       PARSE_ERROR1;
-                                       }
+                                       isdn_tty_at_cout("\r\n<0-31>,<0-255>",
+                                                        info);
                                        break;
-                               default:
+                               } else
                                        PARSE_ERROR1;
-                       }
                        break;
-               case 6:
-                       /* AT+VTX - Start sending */
-                       if (!m->vpar[0])
+               default:
+                       PARSE_ERROR1;
+               }
+               break;
+       case 5:
+               /* AT+VSM - Select compression */
+               switch (*p[0]) {
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n<%d>,<%d><8000>",
+                               m->vpar[3],
+                               m->vpar[1]);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       switch (*p[0]) {
+                       case '2':
+                       case '3':
+                       case '4':
+                       case '5':
+                       case '6':
+                               par1 = isdn_getnum(p);
+                               if ((par1 < 2) || (par1 > 6))
+                                       PARSE_ERROR1;
+                               m->vpar[3] = par1;
+                               break;
+                       case '?':
+                               p[0]++;
+                               isdn_tty_at_cout("\r\n2;ADPCM;2;0;(8000)\r\n",
+                                                info);
+                               isdn_tty_at_cout("3;ADPCM;3;0;(8000)\r\n",
+                                                info);
+                               isdn_tty_at_cout("4;ADPCM;4;0;(8000)\r\n",
+                                                info);
+                               isdn_tty_at_cout("5;ALAW;8;0;(8000)\r\n",
+                                                info);
+                               isdn_tty_at_cout("6;ULAW;8;0;(8000)\r\n",
+                                                info);
+                               break;
+                       default:
                                PARSE_ERROR1;
-                       if (info->online != 1) {
-                               isdn_tty_modem_result(RESULT_NO_ANSWER, info);
-                               return 1;
                        }
-                       info->dtmf_state = isdn_audio_dtmf_init(info->dtmf_state);
-                       if (!info->dtmf_state) {
-                               printk(KERN_WARNING "isdn_tty: Couldn't malloc dtmf state\n");
+                       break;
+               default:
+                       PARSE_ERROR1;
+               }
+               break;
+       case 6:
+               /* AT+VTX - Start sending */
+               if (!m->vpar[0])
+                       PARSE_ERROR1;
+               if (info->online != 1) {
+                       isdn_tty_modem_result(RESULT_NO_ANSWER, info);
+                       return 1;
+               }
+               info->dtmf_state = isdn_audio_dtmf_init(info->dtmf_state);
+               if (!info->dtmf_state) {
+                       printk(KERN_WARNING "isdn_tty: Couldn't malloc dtmf state\n");
+                       PARSE_ERROR1;
+               }
+               if (m->vpar[3] < 5) {
+                       info->adpcms = isdn_audio_adpcm_init(info->adpcms, m->vpar[3]);
+                       if (!info->adpcms) {
+                               printk(KERN_WARNING "isdn_tty: Couldn't malloc adpcm state\n");
                                PARSE_ERROR1;
                        }
-                       if (m->vpar[3] < 5) {
-                               info->adpcms = isdn_audio_adpcm_init(info->adpcms, m->vpar[3]);
-                               if (!info->adpcms) {
-                                       printk(KERN_WARNING "isdn_tty: Couldn't malloc adpcm state\n");
-                                       PARSE_ERROR1;
-                               }
-                       }
+               }
 #ifdef ISDN_DEBUG_AT
-                       printk(KERN_DEBUG "AT: +VTX\n");
+               printk(KERN_DEBUG "AT: +VTX\n");
 #endif
-                       m->lastDLE = 0;
-                       info->vonline |= 2;
-                       isdn_tty_modem_result(RESULT_CONNECT, info);
-                       return 0;
+               m->lastDLE = 0;
+               info->vonline |= 2;
+               isdn_tty_modem_result(RESULT_CONNECT, info);
+               return 0;
+               break;
+       case 7:
+               /* AT+VDD - DTMF detection */
+               switch (*p[0]) {
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n<%d>,<%d>",
+                               m->vpar[4],
+                               m->vpar[5]);
+                       isdn_tty_at_cout(rs, info);
                        break;
-               case 7:
-                       /* AT+VDD - DTMF detection */
-                       switch (*p[0]) {
-                               case '?':
-                                       p[0]++;
-                                       sprintf(rs, "\r\n<%d>,<%d>",
-                                               m->vpar[4],
-                                               m->vpar[5]);
-                                       isdn_tty_at_cout(rs, info);
-                                       break;
-                               case '=':
-                                       p[0]++;
-                                       if ((*p[0]>='0') && (*p[0]<='9')) {
-                                               if (info->online != 1)
-                                                       PARSE_ERROR1;
-                                               par1 = isdn_getnum(p);
-                                               if ((par1 < 0) || (par1 > 15))
-                                                       PARSE_ERROR1;
-                                               if (*p[0] != ',')
-                                                       PARSE_ERROR1;
-                                               p[0]++;
-                                               par2 = isdn_getnum(p);
-                                               if ((par2 < 0) || (par2 > 255))
-                                                       PARSE_ERROR1;
-                                               m->vpar[4] = par1;
-                                               m->vpar[5] = par2;
-                                               cmd.driver = info->isdn_driver;
-                                               cmd.command = ISDN_CMD_AUDIO;
-                                               cmd.arg = info->isdn_channel + (ISDN_AUDIO_SETDD << 8);
-                                               cmd.parm.num[0] = par1;
-                                               cmd.parm.num[1] = par2;
-                                               isdn_command(&cmd);
-                                               break;
-                                       } else
-                                       if (*p[0] == '?') {
-                                               p[0]++;
-                                               isdn_tty_at_cout("\r\n<0-15>,<0-255>",
-                                                       info);
-                                               break;
-                                       } else
+               case '=':
+                       p[0]++;
+                       if ((*p[0] >= '0') && (*p[0] <= '9')) {
+                               if (info->online != 1)
+                                       PARSE_ERROR1;
+                               par1 = isdn_getnum(p);
+                               if ((par1 < 0) || (par1 > 15))
+                                       PARSE_ERROR1;
+                               if (*p[0] != ',')
                                        PARSE_ERROR1;
+                               p[0]++;
+                               par2 = isdn_getnum(p);
+                               if ((par2 < 0) || (par2 > 255))
+                                       PARSE_ERROR1;
+                               m->vpar[4] = par1;
+                               m->vpar[5] = par2;
+                               cmd.driver = info->isdn_driver;
+                               cmd.command = ISDN_CMD_AUDIO;
+                               cmd.arg = info->isdn_channel + (ISDN_AUDIO_SETDD << 8);
+                               cmd.parm.num[0] = par1;
+                               cmd.parm.num[1] = par2;
+                               isdn_command(&cmd);
+                               break;
+                       } else
+                               if (*p[0] == '?') {
+                                       p[0]++;
+                                       isdn_tty_at_cout("\r\n<0-15>,<0-255>",
+                                                        info);
                                        break;
-                               default:
+                               } else
                                        PARSE_ERROR1;
-                       }
                        break;
                default:
                        PARSE_ERROR1;
+               }
+               break;
+       default:
+               PARSE_ERROR1;
        }
        return 0;
 }
@@ -3510,7 +3510,7 @@ isdn_tty_cmd_PLUSV(char **p, modem_info * info)
  * Parse and perform an AT-command-line.
  */
 static void
-isdn_tty_parse_at(modem_info * info)
+isdn_tty_parse_at(modem_info *info)
 {
        atemu *m = &info->emu;
        char *p;
@@ -3521,188 +3521,188 @@ isdn_tty_parse_at(modem_info * info)
 #endif
        for (p = &m->mdmcmd[2]; *p;) {
                switch (*p) {
-                       case ' ':
-                               p++;
+               case ' ':
+                       p++;
+                       break;
+               case 'A':
+                       /* A - Accept incoming call */
+                       p++;
+                       isdn_tty_cmd_ATA(info);
+                       return;
+                       break;
+               case 'D':
+                       /* D - Dial */
+                       if (info->msr & UART_MSR_DCD)
+                               PARSE_ERROR;
+                       if (info->msr & UART_MSR_RI) {
+                               isdn_tty_modem_result(RESULT_NO_CARRIER, info);
+                               return;
+                       }
+                       isdn_tty_getdial(++p, ds, sizeof ds);
+                       p += strlen(p);
+                       if (!strlen(m->msn))
+                               isdn_tty_modem_result(RESULT_NO_MSN_EAZ, info);
+                       else if (strlen(ds))
+                               isdn_tty_dial(ds, info, m);
+                       else
+                               PARSE_ERROR;
+                       return;
+               case 'E':
+                       /* E - Turn Echo on/off */
+                       p++;
+                       switch (isdn_getnum(&p)) {
+                       case 0:
+                               m->mdmreg[REG_ECHO] &= ~BIT_ECHO;
                                break;
-                       case 'A':
-                               /* A - Accept incoming call */
+                       case 1:
+                               m->mdmreg[REG_ECHO] |= BIT_ECHO;
+                               break;
+                       default:
+                               PARSE_ERROR;
+                       }
+                       break;
+               case 'H':
+                       /* H - On/Off-hook */
+                       p++;
+                       switch (*p) {
+                       case '0':
                                p++;
-                               isdn_tty_cmd_ATA(info);
-                               return;
+                               isdn_tty_on_hook(info);
                                break;
-                       case 'D':
-                               /* D - Dial */
-                               if (info->msr & UART_MSR_DCD)
-                                       PARSE_ERROR;
-                               if (info->msr & UART_MSR_RI) {
-                                       isdn_tty_modem_result(RESULT_NO_CARRIER, info);
-                                       return;
-                               }
-                               isdn_tty_getdial(++p, ds, sizeof ds);
-                               p += strlen(p);
-                               if (!strlen(m->msn))
-                                       isdn_tty_modem_result(RESULT_NO_MSN_EAZ, info);
-                               else if (strlen(ds))
-                                       isdn_tty_dial(ds, info, m);
-                               else
-                                       PARSE_ERROR;
-                               return;
-                       case 'E':
-                               /* E - Turn Echo on/off */
+                       case '1':
                                p++;
-                               switch (isdn_getnum(&p)) {
-                                       case 0:
-                                               m->mdmreg[REG_ECHO] &= ~BIT_ECHO;
-                                               break;
-                                       case 1:
-                                               m->mdmreg[REG_ECHO] |= BIT_ECHO;
-                                               break;
-                                       default:
-                                               PARSE_ERROR;
-                               }
+                               isdn_tty_off_hook();
                                break;
-                       case 'H':
-                               /* H - On/Off-hook */
+                       default:
+                               isdn_tty_on_hook(info);
+                               break;
+                       }
+                       break;
+               case 'I':
+                       /* I - Information */
+                       p++;
+                       isdn_tty_at_cout("\r\nLinux ISDN", info);
+                       switch (*p) {
+                       case '0':
+                       case '1':
                                p++;
-                               switch (*p) {
-                                       case '0':
-                                               p++;
-                                               isdn_tty_on_hook(info);
-                                               break;
-                                       case '1':
-                                               p++;
-                                               isdn_tty_off_hook();
-                                               break;
-                                       default:
-                                               isdn_tty_on_hook(info);
-                                               break;
-                               }
                                break;
-                       case 'I':
-                               /* I - Information */
+                       case '2':
                                p++;
-                               isdn_tty_at_cout("\r\nLinux ISDN", info);
-                               switch (*p) {
-                                       case '0':
-                                       case '1':
-                                               p++;
-                                               break;
-                                       case '2':
-                                               p++;
-                                               isdn_tty_report(info);
-                                               break;
-                                       case '3':
-                                                p++;
-                                                snprintf(ds, sizeof(ds), "\r\n%d", info->emu.charge);
-                                                isdn_tty_at_cout(ds, info);
-                                                break;
-                                       default:;
-                               }
+                               isdn_tty_report(info);
                                break;
-#ifdef DUMMY_HAYES_AT
-                       case 'L':
-                       case 'M':
-                               /* only for be compilant with common scripts */
-                               /* no function */
+                       case '3':
                                p++;
-                               isdn_getnum(&p);
+                               snprintf(ds, sizeof(ds), "\r\n%d", info->emu.charge);
+                               isdn_tty_at_cout(ds, info);
                                break;
+                       default:;
+                       }
+                       break;
+#ifdef DUMMY_HAYES_AT
+               case 'L':
+               case 'M':
+                       /* only for be compilant with common scripts */
+                       /* no function */
+                       p++;
+                       isdn_getnum(&p);
+                       break;
 #endif
-                       case 'O':
-                               /* O - Go online */
-                               p++;
-                               if (info->msr & UART_MSR_DCD)
-                                       /* if B-Channel is up */
-                                       isdn_tty_modem_result((m->mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM) ? RESULT_CONNECT:RESULT_CONNECT64000, info);
-                               else
-                                       isdn_tty_modem_result(RESULT_NO_CARRIER, info);
+               case 'O':
+                       /* O - Go online */
+                       p++;
+                       if (info->msr & UART_MSR_DCD)
+                               /* if B-Channel is up */
+                               isdn_tty_modem_result((m->mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM) ? RESULT_CONNECT : RESULT_CONNECT64000, info);
+                       else
+                               isdn_tty_modem_result(RESULT_NO_CARRIER, info);
+                       return;
+               case 'Q':
+                       /* Q - Turn Emulator messages on/off */
+                       p++;
+                       switch (isdn_getnum(&p)) {
+                       case 0:
+                               m->mdmreg[REG_RESP] |= BIT_RESP;
+                               break;
+                       case 1:
+                               m->mdmreg[REG_RESP] &= ~BIT_RESP;
+                               break;
+                       default:
+                               PARSE_ERROR;
+                       }
+                       break;
+               case 'S':
+                       /* S - Set/Get Register */
+                       p++;
+                       if (isdn_tty_cmd_ATS(&p, info))
                                return;
-                       case 'Q':
-                               /* Q - Turn Emulator messages on/off */
-                               p++;
-                               switch (isdn_getnum(&p)) {
-                                       case 0:
-                                               m->mdmreg[REG_RESP] |= BIT_RESP;
-                                               break;
-                                       case 1:
-                                               m->mdmreg[REG_RESP] &= ~BIT_RESP;
-                                               break;
-                                       default:
-                                               PARSE_ERROR;
-                               }
+                       break;
+               case 'V':
+                       /* V - Numeric or ASCII Emulator-messages */
+                       p++;
+                       switch (isdn_getnum(&p)) {
+                       case 0:
+                               m->mdmreg[REG_RESP] |= BIT_RESPNUM;
+                               break;
+                       case 1:
+                               m->mdmreg[REG_RESP] &= ~BIT_RESPNUM;
                                break;
-                       case 'S':
-                               /* S - Set/Get Register */
+                       default:
+                               PARSE_ERROR;
+                       }
+                       break;
+               case 'Z':
+                       /* Z - Load Registers from Profile */
+                       p++;
+                       if (info->msr & UART_MSR_DCD) {
+                               info->online = 0;
+                               isdn_tty_on_hook(info);
+                       }
+                       isdn_tty_modem_reset_regs(info, 1);
+                       break;
+               case '+':
+                       p++;
+                       switch (*p) {
+#ifdef CONFIG_ISDN_AUDIO
+                       case 'F':
                                p++;
-                               if (isdn_tty_cmd_ATS(&p, info))
+                               if (isdn_tty_cmd_PLUSF(&p, info))
                                        return;
                                break;
                        case 'V':
-                               /* V - Numeric or ASCII Emulator-messages */
+                               if ((!(m->mdmreg[REG_SI1] & 1)) ||
+                                   (m->mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM))
+                                       PARSE_ERROR;
                                p++;
-                               switch (isdn_getnum(&p)) {
-                                       case 0:
-                                               m->mdmreg[REG_RESP] |= BIT_RESPNUM;
-                                               break;
-                                       case 1:
-                                               m->mdmreg[REG_RESP] &= ~BIT_RESPNUM;
-                                               break;
-                                       default:
-                                               PARSE_ERROR;
-                               }
+                               if (isdn_tty_cmd_PLUSV(&p, info))
+                                       return;
                                break;
-                       case 'Z':
-                               /* Z - Load Registers from Profile */
+#endif                          /* CONFIG_ISDN_AUDIO */
+                       case 'S':       /* SUSPEND */
                                p++;
-                               if (info->msr & UART_MSR_DCD) {
-                                       info->online = 0;
-                                       isdn_tty_on_hook(info);
-                               }
-                               isdn_tty_modem_reset_regs(info, 1);
+                               isdn_tty_get_msnstr(ds, &p);
+                               isdn_tty_suspend(ds, info, m);
                                break;
-                       case '+':
+                       case 'R':       /* RESUME */
                                p++;
-                               switch (*p) {
-#ifdef CONFIG_ISDN_AUDIO
-                                       case 'F':
-                                               p++;
-                                               if (isdn_tty_cmd_PLUSF(&p, info))
-                                                       return;
-                                               break;
-                                       case 'V':
-                                               if ((!(m->mdmreg[REG_SI1] & 1)) ||
-                                                       (m->mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM))
-                                                       PARSE_ERROR;
-                                               p++;
-                                               if (isdn_tty_cmd_PLUSV(&p, info))
-                                                       return;
-                                               break;
-#endif                          /* CONFIG_ISDN_AUDIO */
-                                       case 'S':       /* SUSPEND */
-                                               p++;
-                                               isdn_tty_get_msnstr(ds, &p);
-                                               isdn_tty_suspend(ds, info, m);
-                                               break;
-                                       case 'R':       /* RESUME */
-                                               p++;
-                                               isdn_tty_get_msnstr(ds, &p);
-                                               isdn_tty_resume(ds, info, m);
-                                               break;
-                                       case 'M':       /* MESSAGE */
-                                               p++;
-                                               isdn_tty_send_msg(info, m, p);
-                                               break;
-                                       default:
-                                               PARSE_ERROR;
-                               }
+                               isdn_tty_get_msnstr(ds, &p);
+                               isdn_tty_resume(ds, info, m);
                                break;
-                       case '&':
+                       case 'M':       /* MESSAGE */
                                p++;
-                               if (isdn_tty_cmd_ATand(&p, info))
-                                       return;
+                               isdn_tty_send_msg(info, m, p);
                                break;
                        default:
                                PARSE_ERROR;
+                       }
+                       break;
+               case '&':
+                       p++;
+                       if (isdn_tty_cmd_ATand(&p, info))
+                               return;
+                       break;
+               default:
+                       PARSE_ERROR;
                }
        }
 #ifdef CONFIG_ISDN_AUDIO
@@ -3714,7 +3714,7 @@ isdn_tty_parse_at(modem_info * info)
 /* Need own toupper() because standard-toupper is not available
  * within modules.
  */
-#define my_toupper(c) (((c>='a')&&(c<='z'))?(c&0xdf):c)
+#define my_toupper(c) (((c >= 'a') && (c <= 'z')) ? (c & 0xdf) : c)
 
 /*
  * Perform line-editing of AT-commands
@@ -3725,7 +3725,7 @@ isdn_tty_parse_at(modem_info * info)
  *   channel  index to line (minor-device)
  */
 static int
-isdn_tty_edit_at(const char *p, int count, modem_info * info)
+isdn_tty_edit_at(const char *p, int count, modem_info *info)
 {
        atemu *m = &info->emu;
        int total = 0;
@@ -3768,23 +3768,23 @@ isdn_tty_edit_at(const char *p, int count, modem_info * info)
                        if (m->mdmcmdl < 255) {
                                c = my_toupper(c);
                                switch (m->mdmcmdl) {
-                                       case 1:
-                                               if (c == 'T') {
-                                                       m->mdmcmd[m->mdmcmdl] = c;
-                                                       m->mdmcmd[++m->mdmcmdl] = 0;
-                                                       break;
-                                               } else
-                                                       m->mdmcmdl = 0;
-                                               /* Fall through, check for 'A' */
-                                       case 0:
-                                               if (c == 'A') {
-                                                       m->mdmcmd[m->mdmcmdl] = c;
-                                                       m->mdmcmd[++m->mdmcmdl] = 0;
-                                               }
+                               case 1:
+                                       if (c == 'T') {
+                                               m->mdmcmd[m->mdmcmdl] = c;
+                                               m->mdmcmd[++m->mdmcmdl] = 0;
                                                break;
-                                       default:
+                                       } else
+                                               m->mdmcmdl = 0;
+                                       /* Fall through, check for 'A' */
+                               case 0:
+                                       if (c == 'A') {
                                                m->mdmcmd[m->mdmcmdl] = c;
                                                m->mdmcmd[++m->mdmcmdl] = 0;
+                                       }
+                                       break;
+                               default:
+                                       m->mdmcmd[m->mdmcmdl] = c;
+                                       m->mdmcmd[++m->mdmcmdl] = 0;
                                }
                        }
                }
index 692c74d..a6f801d 100644 (file)
 #define RESULT_VCON            11
 #define RESULT_RUNG            12
 
-#define TTY_IS_FCLASS1(info) \
-       ((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
+#define TTY_IS_FCLASS1(info)                                           \
+       ((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) &&         \
         (info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS1))
-#define TTY_IS_FCLASS2(info) \
-       ((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
+#define TTY_IS_FCLASS2(info)                                           \
+       ((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) &&         \
         (info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS2))
 
 extern void isdn_tty_modem_escape(void);
@@ -110,7 +110,7 @@ extern void isdn_tty_readmodem(void);
 extern int  isdn_tty_find_icall(int, int, setup_parm *);
 extern int  isdn_tty_stat_callback(int, isdn_ctrl *);
 extern int  isdn_tty_rcv_skb(int, int, int, struct sk_buff *);
-extern int  isdn_tty_capi_facility(capi_msg *cm); 
+extern int  isdn_tty_capi_facility(capi_msg *cm);
 extern void isdn_tty_at_cout(char *, modem_info *);
 extern void isdn_tty_modem_hup(modem_info *, int);
 #ifdef CONFIG_ISDN_TTY_FAX
index 4c41f19..47aae49 100644 (file)
@@ -45,7 +45,7 @@ isdn_getrev(const char *revision)
  */
 
 static void
-isdn_tty_fax_modem_result(int code, modem_info * info)
+isdn_tty_fax_modem_result(int code, modem_info *info)
 {
        atemu *m = &info->emu;
        T30_s *f = info->fax;
@@ -54,9 +54,9 @@ isdn_tty_fax_modem_result(int code, modem_info * info)
        char *rp;
        int i;
        static char *msg[] =
-       {"OK", "ERROR", "+FCON", "+FCSI:", "+FDIS:",
-        "+FHNG:", "+FDCS:", "CONNECT", "+FTSI:",
-        "+FCFR", "+FPTS:", "+FET:"};
+               {"OK", "ERROR", "+FCON", "+FCSI:", "+FDIS:",
+                "+FHNG:", "+FDCS:", "CONNECT", "+FTSI:",
+                "+FCFR", "+FPTS:", "+FET:"};
 
 
        isdn_tty_at_cout("\r\n", info);
@@ -64,95 +64,95 @@ isdn_tty_fax_modem_result(int code, modem_info * info)
 
 #ifdef ISDN_TTY_FAX_CMD_DEBUG
        printk(KERN_DEBUG "isdn_tty: Fax send %s on ttyI%d\n",
-               msg[code], info->line);
+              msg[code], info->line);
 #endif
        switch (code) {
-               case 0: /* OK */
-                       break;
-               case 1: /* ERROR */
-                       break;
-               case 2: /* +FCON */
-                       /* Append CPN, if enabled */
-                       if ((m->mdmreg[REG_CPNFCON] & BIT_CPNFCON) &&
-                               (!(dev->usage[info->isdn_channel] & ISDN_USAGE_OUTGOING))) {
-                               sprintf(rs, "/%s", m->cpn);
-                               isdn_tty_at_cout(rs, info);
-                       }
-                       info->online = 1;
-                       f->fet = 0;
-                       if (f->phase == ISDN_FAX_PHASE_A)
-                               f->phase = ISDN_FAX_PHASE_B;
-                       break;
-               case 3: /* +FCSI */
-               case 8: /* +FTSI */
-                       sprintf(rs, "\"%s\"", f->r_id);
-                       isdn_tty_at_cout(rs, info);
-                       break;
-               case 4: /* +FDIS */
-                       rs[0] = 0;
-                       rp = &f->r_resolution;
-                       for (i = 0; i < 8; i++) {
-                               sprintf(rss, "%c%s", rp[i] + 48,
-                                       (i < 7) ? "," : "");
-                               strcat(rs, rss);
-                       }
+       case 0: /* OK */
+               break;
+       case 1: /* ERROR */
+               break;
+       case 2: /* +FCON */
+               /* Append CPN, if enabled */
+               if ((m->mdmreg[REG_CPNFCON] & BIT_CPNFCON) &&
+                   (!(dev->usage[info->isdn_channel] & ISDN_USAGE_OUTGOING))) {
+                       sprintf(rs, "/%s", m->cpn);
                        isdn_tty_at_cout(rs, info);
+               }
+               info->online = 1;
+               f->fet = 0;
+               if (f->phase == ISDN_FAX_PHASE_A)
+                       f->phase = ISDN_FAX_PHASE_B;
+               break;
+       case 3: /* +FCSI */
+       case 8: /* +FTSI */
+               sprintf(rs, "\"%s\"", f->r_id);
+               isdn_tty_at_cout(rs, info);
+               break;
+       case 4: /* +FDIS */
+               rs[0] = 0;
+               rp = &f->r_resolution;
+               for (i = 0; i < 8; i++) {
+                       sprintf(rss, "%c%s", rp[i] + 48,
+                               (i < 7) ? "," : "");
+                       strcat(rs, rss);
+               }
+               isdn_tty_at_cout(rs, info);
 #ifdef ISDN_TTY_FAX_CMD_DEBUG
-                       printk(KERN_DEBUG "isdn_tty: Fax DIS=%s on ttyI%d\n",
-                              rs, info->line);
+               printk(KERN_DEBUG "isdn_tty: Fax DIS=%s on ttyI%d\n",
+                      rs, info->line);
 #endif
-                       break;
-               case 5: /* +FHNG */
-                       sprintf(rs, "%d", f->code);
-                       isdn_tty_at_cout(rs, info);
-                       info->faxonline = 0;
-                       break;
-               case 6: /* +FDCS */
-                       rs[0] = 0;
-                       rp = &f->r_resolution;
-                       for (i = 0; i < 8; i++) {
-                               sprintf(rss, "%c%s", rp[i] + 48,
-                                       (i < 7) ? "," : "");
-                               strcat(rs, rss);
-                       }
-                       isdn_tty_at_cout(rs, info);
+               break;
+       case 5: /* +FHNG */
+               sprintf(rs, "%d", f->code);
+               isdn_tty_at_cout(rs, info);
+               info->faxonline = 0;
+               break;
+       case 6: /* +FDCS */
+               rs[0] = 0;
+               rp = &f->r_resolution;
+               for (i = 0; i < 8; i++) {
+                       sprintf(rss, "%c%s", rp[i] + 48,
+                               (i < 7) ? "," : "");
+                       strcat(rs, rss);
+               }
+               isdn_tty_at_cout(rs, info);
 #ifdef ISDN_TTY_FAX_CMD_DEBUG
-                       printk(KERN_DEBUG "isdn_tty: Fax DCS=%s on ttyI%d\n",
-                              rs, info->line);
+               printk(KERN_DEBUG "isdn_tty: Fax DCS=%s on ttyI%d\n",
+                      rs, info->line);
 #endif
-                       break;
-               case 7: /* CONNECT */
-                       info->faxonline |= 2;
-                       break;
-               case 9: /* FCFR */
-                       break;
-               case 10:        /* FPTS */
-                       isdn_tty_at_cout("1", info);
-                       break;
-               case 11:        /* FET */
-                       sprintf(rs, "%d", f->fet);
-                       isdn_tty_at_cout(rs, info);
-                       break;
+               break;
+       case 7: /* CONNECT */
+               info->faxonline |= 2;
+               break;
+       case 9: /* FCFR */
+               break;
+       case 10:        /* FPTS */
+               isdn_tty_at_cout("1", info);
+               break;
+       case 11:        /* FET */
+               sprintf(rs, "%d", f->fet);
+               isdn_tty_at_cout(rs, info);
+               break;
        }
 
        isdn_tty_at_cout("\r\n", info);
 
        switch (code) {
-               case 7: /* CONNECT */
-                       info->online = 2;
-                       if (info->faxonline & 1) {
-                               sprintf(rs, "%c", XON);
-                               isdn_tty_at_cout(rs, info);
-                       }
-                       break;
+       case 7: /* CONNECT */
+               info->online = 2;
+               if (info->faxonline & 1) {
+                       sprintf(rs, "%c", XON);
+                       isdn_tty_at_cout(rs, info);
+               }
+               break;
        }
 }
 
 static int
-isdn_tty_fax_command1(modem_info * info, isdn_ctrl * c)
+isdn_tty_fax_command1(modem_info *info, isdn_ctrl *c)
 {
        static char *msg[] =
-       {"OK", "CONNECT", "NO CARRIER", "ERROR", "FCERROR"};
+               {"OK", "CONNECT", "NO CARRIER", "ERROR", "FCERROR"};
 
 #ifdef ISDN_TTY_FAX_CMD_DEBUG
        printk(KERN_DEBUG "isdn_tty: FCLASS1 cmd(%d)\n", c->parm.aux.cmd);
@@ -165,30 +165,30 @@ isdn_tty_fax_command1(modem_info * info, isdn_ctrl * c)
                isdn_tty_at_cout("\r\n", info);
        }
        switch (c->parm.aux.cmd) {
-               case ISDN_FAX_CLASS1_CONNECT:
-                       info->online = 2;
-                       break;
-               case ISDN_FAX_CLASS1_OK:
-               case ISDN_FAX_CLASS1_FCERROR:
-               case ISDN_FAX_CLASS1_ERROR:
-               case ISDN_FAX_CLASS1_NOCARR:
-                       break;
-               case ISDN_FAX_CLASS1_QUERY:
+       case ISDN_FAX_CLASS1_CONNECT:
+               info->online = 2;
+               break;
+       case ISDN_FAX_CLASS1_OK:
+       case ISDN_FAX_CLASS1_FCERROR:
+       case ISDN_FAX_CLASS1_ERROR:
+       case ISDN_FAX_CLASS1_NOCARR:
+               break;
+       case ISDN_FAX_CLASS1_QUERY:
+               isdn_tty_at_cout("\r\n", info);
+               if (!c->parm.aux.para[0]) {
+                       isdn_tty_at_cout(msg[ISDN_FAX_CLASS1_ERROR], info);
                        isdn_tty_at_cout("\r\n", info);
-                       if (!c->parm.aux.para[0]) {
-                               isdn_tty_at_cout(msg[ISDN_FAX_CLASS1_ERROR], info);
-                               isdn_tty_at_cout("\r\n", info);
-                       } else {
-                               isdn_tty_at_cout(c->parm.aux.para, info);
-                               isdn_tty_at_cout("\r\nOK\r\n", info);
-                       }
-                       break;
+               } else {
+                       isdn_tty_at_cout(c->parm.aux.para, info);
+                       isdn_tty_at_cout("\r\nOK\r\n", info);
+               }
+               break;
        }
        return (0);
 }
 
 int
-isdn_tty_fax_command(modem_info * info, isdn_ctrl * c)
+isdn_tty_fax_command(modem_info *info, isdn_ctrl *c)
 {
        T30_s *f = info->fax;
        char rs[10];
@@ -201,78 +201,78 @@ isdn_tty_fax_command(modem_info * info, isdn_ctrl * c)
               f->r_code, info->line);
 #endif
        switch (f->r_code) {
-               case ISDN_TTY_FAX_FCON:
-                       info->faxonline = 1;
-                       isdn_tty_fax_modem_result(2, info);     /* +FCON */
-                       return (0);
-               case ISDN_TTY_FAX_FCON_I:
-                       info->faxonline = 16;
-                       isdn_tty_fax_modem_result(2, info);     /* +FCON */
-                       return (0);
-               case ISDN_TTY_FAX_RID:
-                       if (info->faxonline & 1)
-                               isdn_tty_fax_modem_result(3, info);     /* +FCSI */
-                       if (info->faxonline & 16)
-                               isdn_tty_fax_modem_result(8, info);     /* +FTSI */
-                       return (0);
-               case ISDN_TTY_FAX_DIS:
-                       isdn_tty_fax_modem_result(4, info);     /* +FDIS */
-                       return (0);
-               case ISDN_TTY_FAX_HNG:
-                       if (f->phase == ISDN_FAX_PHASE_C) {
-                               if (f->direction == ISDN_TTY_FAX_CONN_IN) {
-                                       sprintf(rs, "%c%c", DLE, ETX);
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       sprintf(rs, "%c", 0x18);
-                                       isdn_tty_at_cout(rs, info);
-                               }
-                               info->faxonline &= ~2;  /* leave data mode */
-                               info->online = 1;
-                       }
-                       f->phase = ISDN_FAX_PHASE_E;
-                       isdn_tty_fax_modem_result(5, info);     /* +FHNG */
-                       isdn_tty_fax_modem_result(0, info);     /* OK */
-                       return (0);
-               case ISDN_TTY_FAX_DCS:
-                       isdn_tty_fax_modem_result(6, info);     /* +FDCS */
-                       isdn_tty_fax_modem_result(7, info);     /* CONNECT */
-                       f->phase = ISDN_FAX_PHASE_C;
-                       return (0);
-               case ISDN_TTY_FAX_TRAIN_OK:
-                       isdn_tty_fax_modem_result(6, info);     /* +FDCS */
-                       isdn_tty_fax_modem_result(0, info);     /* OK */
-                       return (0);
-               case ISDN_TTY_FAX_SENT:
-                       isdn_tty_fax_modem_result(0, info);     /* OK */
-                       return (0);
-               case ISDN_TTY_FAX_CFR:
-                       isdn_tty_fax_modem_result(9, info);     /* +FCFR */
-                       return (0);
-               case ISDN_TTY_FAX_ET:
-                       sprintf(rs, "%c%c", DLE, ETX);
-                       isdn_tty_at_cout(rs, info);
-                       isdn_tty_fax_modem_result(10, info);    /* +FPTS */
-                       isdn_tty_fax_modem_result(11, info);    /* +FET */
-                       isdn_tty_fax_modem_result(0, info);     /* OK */
-                       info->faxonline &= ~2;  /* leave data mode */
-                       info->online = 1;
-                       f->phase = ISDN_FAX_PHASE_D;
-                       return (0);
-               case ISDN_TTY_FAX_PTS:
-                       isdn_tty_fax_modem_result(10, info);    /* +FPTS */
-                       if (f->direction == ISDN_TTY_FAX_CONN_OUT) {
-                               if (f->fet == 1)
-                                       f->phase = ISDN_FAX_PHASE_B;
-                               if (f->fet == 0)
-                                       isdn_tty_fax_modem_result(0, info);     /* OK */
+       case ISDN_TTY_FAX_FCON:
+               info->faxonline = 1;
+               isdn_tty_fax_modem_result(2, info);     /* +FCON */
+               return (0);
+       case ISDN_TTY_FAX_FCON_I:
+               info->faxonline = 16;
+               isdn_tty_fax_modem_result(2, info);     /* +FCON */
+               return (0);
+       case ISDN_TTY_FAX_RID:
+               if (info->faxonline & 1)
+                       isdn_tty_fax_modem_result(3, info);     /* +FCSI */
+               if (info->faxonline & 16)
+                       isdn_tty_fax_modem_result(8, info);     /* +FTSI */
+               return (0);
+       case ISDN_TTY_FAX_DIS:
+               isdn_tty_fax_modem_result(4, info);     /* +FDIS */
+               return (0);
+       case ISDN_TTY_FAX_HNG:
+               if (f->phase == ISDN_FAX_PHASE_C) {
+                       if (f->direction == ISDN_TTY_FAX_CONN_IN) {
+                               sprintf(rs, "%c%c", DLE, ETX);
+                               isdn_tty_at_cout(rs, info);
+                       } else {
+                               sprintf(rs, "%c", 0x18);
+                               isdn_tty_at_cout(rs, info);
                        }
-                       return (0);
-               case ISDN_TTY_FAX_EOP:
                        info->faxonline &= ~2;  /* leave data mode */
                        info->online = 1;
-                       f->phase = ISDN_FAX_PHASE_D;
-                       return (0);
+               }
+               f->phase = ISDN_FAX_PHASE_E;
+               isdn_tty_fax_modem_result(5, info);     /* +FHNG */
+               isdn_tty_fax_modem_result(0, info);     /* OK */
+               return (0);
+       case ISDN_TTY_FAX_DCS:
+               isdn_tty_fax_modem_result(6, info);     /* +FDCS */
+               isdn_tty_fax_modem_result(7, info);     /* CONNECT */
+               f->phase = ISDN_FAX_PHASE_C;
+               return (0);
+       case ISDN_TTY_FAX_TRAIN_OK:
+               isdn_tty_fax_modem_result(6, info);     /* +FDCS */
+               isdn_tty_fax_modem_result(0, info);     /* OK */
+               return (0);
+       case ISDN_TTY_FAX_SENT:
+               isdn_tty_fax_modem_result(0, info);     /* OK */
+               return (0);
+       case ISDN_TTY_FAX_CFR:
+               isdn_tty_fax_modem_result(9, info);     /* +FCFR */
+               return (0);
+       case ISDN_TTY_FAX_ET:
+               sprintf(rs, "%c%c", DLE, ETX);
+               isdn_tty_at_cout(rs, info);
+               isdn_tty_fax_modem_result(10, info);    /* +FPTS */
+               isdn_tty_fax_modem_result(11, info);    /* +FET */
+               isdn_tty_fax_modem_result(0, info);     /* OK */
+               info->faxonline &= ~2;  /* leave data mode */
+               info->online = 1;
+               f->phase = ISDN_FAX_PHASE_D;
+               return (0);
+       case ISDN_TTY_FAX_PTS:
+               isdn_tty_fax_modem_result(10, info);    /* +FPTS */
+               if (f->direction == ISDN_TTY_FAX_CONN_OUT) {
+                       if (f->fet == 1)
+                               f->phase = ISDN_FAX_PHASE_B;
+                       if (f->fet == 0)
+                               isdn_tty_fax_modem_result(0, info);     /* OK */
+               }
+               return (0);
+       case ISDN_TTY_FAX_EOP:
+               info->faxonline &= ~2;  /* leave data mode */
+               info->online = 1;
+               f->phase = ISDN_FAX_PHASE_D;
+               return (0);
 
        }
        return (-1);
@@ -280,7 +280,7 @@ isdn_tty_fax_command(modem_info * info, isdn_ctrl * c)
 
 
 void
-isdn_tty_fax_bitorder(modem_info * info, struct sk_buff *skb)
+isdn_tty_fax_bitorder(modem_info *info, struct sk_buff *skb)
 {
        __u8 LeftMask;
        __u8 RightMask;
@@ -292,10 +292,10 @@ isdn_tty_fax_bitorder(modem_info * info, struct sk_buff *skb)
                for (i = 0; i < skb->len; i++) {
                        Data = skb->data[i];
                        for (
-                                   LeftMask = 0x80, RightMask = 0x01;
-                                   LeftMask > RightMask;
-                                   LeftMask >>= 1, RightMask <<= 1
-                           ) {
+                               LeftMask = 0x80, RightMask = 0x01;
+                               LeftMask > RightMask;
+                               LeftMask >>= 1, RightMask <<= 1
+                               ) {
                                fBit = (Data & LeftMask);
                                if (Data & RightMask)
                                        Data |= LeftMask;
@@ -317,10 +317,10 @@ isdn_tty_fax_bitorder(modem_info * info, struct sk_buff *skb)
  */
 
 static int
-isdn_tty_cmd_FCLASS1(char **p, modem_info * info)
+isdn_tty_cmd_FCLASS1(char **p, modem_info *info)
 {
        static char *cmd[] =
-       {"AE", "TS", "RS", "TM", "RM", "TH", "RH"};
+               {"AE", "TS", "RS", "TM", "RM", "TH", "RH"};
        isdn_ctrl c;
        int par, i;
        u_long flags;
@@ -337,28 +337,28 @@ isdn_tty_cmd_FCLASS1(char **p, modem_info * info)
 
        p[0] += 2;
        switch (*p[0]) {
-               case '?':
-                       p[0]++;
-                       c.parm.aux.subcmd = AT_QUERY;
-                       break;
-               case '=':
+       case '?':
+               p[0]++;
+               c.parm.aux.subcmd = AT_QUERY;
+               break;
+       case '=':
+               p[0]++;
+               if (*p[0] == '?') {
                        p[0]++;
-                       if (*p[0] == '?') {
-                               p[0]++;
-                               c.parm.aux.subcmd = AT_EQ_QUERY;
-                       } else {
-                               par = isdn_getnum(p);
-                               if ((par < 0) || (par > 255))
-                                       PARSE_ERROR1;
-                               c.parm.aux.subcmd = AT_EQ_VALUE;
-                               c.parm.aux.para[0] = par;
-                       }
-                       break;
-               case 0:
-                       c.parm.aux.subcmd = AT_COMMAND;
-                       break;
-               default:
-                       PARSE_ERROR1;
+                       c.parm.aux.subcmd = AT_EQ_QUERY;
+               } else {
+                       par = isdn_getnum(p);
+                       if ((par < 0) || (par > 255))
+                               PARSE_ERROR1;
+                       c.parm.aux.subcmd = AT_EQ_VALUE;
+                       c.parm.aux.para[0] = par;
+               }
+               break;
+       case 0:
+               c.parm.aux.subcmd = AT_COMMAND;
+               break;
+       default:
+               PARSE_ERROR1;
        }
        c.command = ISDN_CMD_FAXCMD;
 #ifdef ISDN_TTY_FAX_CMD_DEBUG
@@ -409,7 +409,7 @@ isdn_tty_cmd_FCLASS1(char **p, modem_info * info)
  */
 
 static int
-isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
+isdn_tty_cmd_FCLASS2(char **p, modem_info *info)
 {
        atemu *m = &info->emu;
        T30_s *f = info->fax;
@@ -418,25 +418,25 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        char rs[50];
        char rss[50];
        int maxdccval[] =
-       {1, 5, 2, 2, 3, 2, 0, 7};
+               {1, 5, 2, 2, 3, 2, 0, 7};
 
        /* FAA still unchanged */
        if (!strncmp(p[0], "AA", 2)) {  /* TODO */
                p[0] += 2;
                switch (*p[0]) {
-                       case '?':
-                               p[0]++;
-                               sprintf(rs, "\r\n%d", 0);
-                               isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               par = isdn_getnum(p);
-                               if ((par < 0) || (par > 255))
-                                       PARSE_ERROR1;
-                               break;
-                       default:
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", 0);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       par = isdn_getnum(p);
+                       if ((par < 0) || (par > 255))
                                PARSE_ERROR1;
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -444,29 +444,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "BADLIN", 6)) {
                p[0] += 6;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->badlin);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->badlin);
+                               sprintf(rs, "\r\n0-255");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0-255");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 255))
-                                               PARSE_ERROR1;
-                                       f->badlin = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 255))
+                                       PARSE_ERROR1;
+                               f->badlin = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FBADLIN=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FBADLIN=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -474,29 +474,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "BADMUL", 6)) {
                p[0] += 6;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->badmul);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->badmul);
+                               sprintf(rs, "\r\n0-255");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0-255");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 255))
-                                               PARSE_ERROR1;
-                                       f->badmul = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 255))
+                                       PARSE_ERROR1;
+                               f->badmul = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FBADMUL=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FBADMUL=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -504,29 +504,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "BOR", 3)) {
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->bor);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->bor);
+                               sprintf(rs, "\r\n0,1");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0,1");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 1))
-                                               PARSE_ERROR1;
-                                       f->bor = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 1))
+                                       PARSE_ERROR1;
+                               f->bor = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FBOR=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FBOR=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -534,29 +534,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "NBC", 3)) {
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->nbc);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->nbc);
+                               sprintf(rs, "\r\n0,1");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0,1");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 1))
-                                               PARSE_ERROR1;
-                                       f->nbc = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 1))
+                                       PARSE_ERROR1;
+                               f->nbc = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FNBC=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FNBC=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -576,36 +576,36 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
                int i, r;
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n\"%s\"", f->pollid);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n\"%s\"", f->pollid);
+                               sprintf(rs, "\r\n\"STRING\"");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
+                       } else {
+                               if (*p[0] == '"')
                                        p[0]++;
-                                       sprintf(rs, "\r\n\"STRING\"");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       if (*p[0] == '"')
-                                               p[0]++;
-                                       for (i = 0; (*p[0]) && i < (FAXIDLEN - 1) && (*p[0] != '"'); i++) {
-                                               f->pollid[i] = *p[0]++;
-                                       }
-                                       if (*p[0] == '"')
-                                               p[0]++;
-                                       for (r = i; r < FAXIDLEN; r++) {
-                                               f->pollid[r] = 32;
-                                       }
-                                       f->pollid[FAXIDLEN - 1] = 0;
+                               for (i = 0; (*p[0]) && i < (FAXIDLEN - 1) && (*p[0] != '"'); i++) {
+                                       f->pollid[i] = *p[0]++;
+                               }
+                               if (*p[0] == '"')
+                                       p[0]++;
+                               for (r = i; r < FAXIDLEN; r++) {
+                                       f->pollid[r] = 32;
+                               }
+                               f->pollid[FAXIDLEN - 1] = 0;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax local poll ID rx \"%s\"\n", f->pollid);
+                               printk(KERN_DEBUG "isdn_tty: Fax local poll ID rx \"%s\"\n", f->pollid);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -613,29 +613,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "CQ", 2)) {
                p[0] += 2;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->cq);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->cq);
+                               sprintf(rs, "\r\n0,1,2");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0,1,2");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 2))
-                                               PARSE_ERROR1;
-                                       f->cq = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 2))
+                                       PARSE_ERROR1;
+                               f->cq = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FCQ=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FCQ=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -643,29 +643,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "CR", 2)) {
                p[0] += 2;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->cr);   /* read actual value from struct and print */
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->cr);   /* read actual value from struct and print */
+                               sprintf(rs, "\r\n0,1");         /* display online help */
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0,1");         /* display online help */
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 1))
-                                               PARSE_ERROR1;
-                                       f->cr = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 1))
+                                       PARSE_ERROR1;
+                               f->cr = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FCR=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FCR=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -673,29 +673,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "CTCRTY", 6)) {
                p[0] += 6;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->ctcrty);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->ctcrty);
+                               sprintf(rs, "\r\n0-255");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0-255");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 255))
-                                               PARSE_ERROR1;
-                                       f->ctcrty = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 255))
+                                       PARSE_ERROR1;
+                               f->ctcrty = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FCTCRTY=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FCTCRTY=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -706,42 +706,42 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
-                               p[0]++;
-                               strcpy(rs, "\r\n");
-                               for (i = 0; i < 8; i++) {
-                                       sprintf(rss, "%c%s", rp[i] + 48,
-                                               (i < 7) ? "," : "");
-                                       strcat(rs, rss);
-                               }
-                               isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
+               case '?':
+                       p[0]++;
+                       strcpy(rs, "\r\n");
+                       for (i = 0; i < 8; i++) {
+                               sprintf(rss, "%c%s", rp[i] + 48,
+                                       (i < 7) ? "," : "");
+                               strcat(rs, rss);
+                       }
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
+                               isdn_tty_at_cout("\r\n(0,1),(0-5),(0-2),(0-2),(0-3),(0-2),(0),(0-7)", info);
                                p[0]++;
-                               if (*p[0] == '?') {
-                                       isdn_tty_at_cout("\r\n(0,1),(0-5),(0-2),(0-2),(0-3),(0-2),(0),(0-7)", info);
-                                       p[0]++;
-                               } else {
-                                       for (i = 0; (((*p[0] >= '0') && (*p[0] <= '9')) || (*p[0] == ',')) && (i < 8); i++) {
-                                               if (*p[0] != ',') {
-                                                       if ((*p[0] - 48) > maxdccval[i]) {
-                                                               PARSE_ERROR1;
-                                                       }
-                                                       rp[i] = *p[0] - 48;
-                                                       p[0]++;
-                                                       if (*p[0] == ',')
-                                                               p[0]++;
-                                               } else
+                       } else {
+                               for (i = 0; (((*p[0] >= '0') && (*p[0] <= '9')) || (*p[0] == ',')) && (i < 8); i++) {
+                                       if (*p[0] != ',') {
+                                               if ((*p[0] - 48) > maxdccval[i]) {
+                                                       PARSE_ERROR1;
+                                               }
+                                               rp[i] = *p[0] - 48;
+                                               p[0]++;
+                                               if (*p[0] == ',')
                                                        p[0]++;
-                                       }
+                                       } else
+                                               p[0]++;
+                               }
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FDCC capabilities DCE=%d,%d,%d,%d,%d,%d,%d,%d\n",
-                                              rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7]);
+                               printk(KERN_DEBUG "isdn_tty: Fax FDCC capabilities DCE=%d,%d,%d,%d,%d,%d,%d,%d\n",
+                                      rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7]);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -752,42 +752,42 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
-                               p[0]++;
-                               strcpy(rs, "\r\n");
-                               for (i = 0; i < 8; i++) {
-                                       sprintf(rss, "%c%s", rp[i] + 48,
-                                               (i < 7) ? "," : "");
-                                       strcat(rs, rss);
-                               }
-                               isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
+               case '?':
+                       p[0]++;
+                       strcpy(rs, "\r\n");
+                       for (i = 0; i < 8; i++) {
+                               sprintf(rss, "%c%s", rp[i] + 48,
+                                       (i < 7) ? "," : "");
+                               strcat(rs, rss);
+                       }
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
+                               isdn_tty_at_cout("\r\n(0,1),(0-5),(0-2),(0-2),(0-3),(0-2),(0),(0-7)", info);
                                p[0]++;
-                               if (*p[0] == '?') {
-                                       isdn_tty_at_cout("\r\n(0,1),(0-5),(0-2),(0-2),(0-3),(0-2),(0),(0-7)", info);
-                                       p[0]++;
-                               } else {
-                                       for (i = 0; (((*p[0] >= '0') && (*p[0] <= '9')) || (*p[0] == ',')) && (i < 8); i++) {
-                                               if (*p[0] != ',') {
-                                                       if ((*p[0] - 48) > maxdccval[i]) {
-                                                               PARSE_ERROR1;
-                                                       }
-                                                       rp[i] = *p[0] - 48;
-                                                       p[0]++;
-                                                       if (*p[0] == ',')
-                                                               p[0]++;
-                                               } else
+                       } else {
+                               for (i = 0; (((*p[0] >= '0') && (*p[0] <= '9')) || (*p[0] == ',')) && (i < 8); i++) {
+                                       if (*p[0] != ',') {
+                                               if ((*p[0] - 48) > maxdccval[i]) {
+                                                       PARSE_ERROR1;
+                                               }
+                                               rp[i] = *p[0] - 48;
+                                               p[0]++;
+                                               if (*p[0] == ',')
                                                        p[0]++;
-                                       }
+                                       } else
+                                               p[0]++;
+                               }
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FDIS session parms=%d,%d,%d,%d,%d,%d,%d,%d\n",
-                                              rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7]);
+                               printk(KERN_DEBUG "isdn_tty: Fax FDIS session parms=%d,%d,%d,%d,%d,%d,%d,%d\n",
+                                      rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7]);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -808,18 +808,18 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
                                f->phase = ISDN_FAX_PHASE_C;
                        } else if (f->phase == ISDN_FAX_PHASE_D) {
                                switch (f->fet) {
-                                       case 0: /* next page will be received */
-                                               f->phase = ISDN_FAX_PHASE_C;
-                                               isdn_tty_fax_modem_result(7, info);     /* CONNECT */
-                                               break;
-                                       case 1: /* next doc will be received */
-                                               f->phase = ISDN_FAX_PHASE_B;
-                                               break;
-                                       case 2: /* fax session is terminating */
-                                               f->phase = ISDN_FAX_PHASE_E;
-                                               break;
-                                       default:
-                                               PARSE_ERROR1;
+                               case 0: /* next page will be received */
+                                       f->phase = ISDN_FAX_PHASE_C;
+                                       isdn_tty_fax_modem_result(7, info);     /* CONNECT */
+                                       break;
+                               case 1: /* next doc will be received */
+                                       f->phase = ISDN_FAX_PHASE_B;
+                                       break;
+                               case 2: /* fax session is terminating */
+                                       f->phase = ISDN_FAX_PHASE_E;
+                                       break;
+                               default:
+                                       PARSE_ERROR1;
                                }
                        }
                } else {
@@ -830,7 +830,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        /* DT=df,vr,wd,ln - TX phase C data command (release DCE to proceed with negotiation) */
        if (!strncmp(p[0], "DT", 2)) {
                int i, val[] =
-               {4, 0, 2, 3};
+                       {4, 0, 2, 3};
                char *rp = &f->resolution;
 
                p[0] += 2;
@@ -872,29 +872,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "ECM", 3)) {
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->ecm);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->ecm);
+                               sprintf(rs, "\r\n0,2");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0,2");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par != 0) && (par != 2))
-                                               PARSE_ERROR1;
-                                       f->ecm = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par != 0) && (par != 2))
+                                       PARSE_ERROR1;
+                               f->ecm = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FECM=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FECM=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -938,36 +938,36 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
                int i, r;
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n\"%s\"", f->id);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n\"%s\"", f->id);
+                               sprintf(rs, "\r\n\"STRING\"");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
+                       } else {
+                               if (*p[0] == '"')
                                        p[0]++;
-                                       sprintf(rs, "\r\n\"STRING\"");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       if (*p[0] == '"')
-                                               p[0]++;
-                                       for (i = 0; (*p[0]) && i < (FAXIDLEN - 1) && (*p[0] != '"'); i++) {
-                                               f->id[i] = *p[0]++;
-                                       }
-                                       if (*p[0] == '"')
-                                               p[0]++;
-                                       for (r = i; r < FAXIDLEN; r++) {
-                                               f->id[r] = 32;
-                                       }
-                                       f->id[FAXIDLEN - 1] = 0;
+                               for (i = 0; (*p[0]) && i < (FAXIDLEN - 1) && (*p[0] != '"'); i++) {
+                                       f->id[i] = *p[0]++;
+                               }
+                               if (*p[0] == '"')
+                                       p[0]++;
+                               for (r = i; r < FAXIDLEN; r++) {
+                                       f->id[r] = 32;
+                               }
+                               f->id[FAXIDLEN - 1] = 0;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax local ID \"%s\"\n", f->id);
+                               printk(KERN_DEBUG "isdn_tty: Fax local ID \"%s\"\n", f->id);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -994,29 +994,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "MINSP", 5)) {
                p[0] += 5;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->minsp);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->minsp);
+                               sprintf(rs, "\r\n0-5");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0-5");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 5))
-                                               PARSE_ERROR1;
-                                       f->minsp = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 5))
+                                       PARSE_ERROR1;
+                               f->minsp = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FMINSP=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FMINSP=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -1024,29 +1024,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "PHCTO", 5)) {
                p[0] += 5;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->phcto);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->phcto);
+                               sprintf(rs, "\r\n0-255");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0-255");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 255))
-                                               PARSE_ERROR1;
-                                       f->phcto = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 255))
+                                       PARSE_ERROR1;
+                               f->phcto = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FPHCTO=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FPHCTO=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -1055,29 +1055,29 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
        if (!strncmp(p[0], "REL", 3)) {
                p[0] += 3;
                switch (*p[0]) {
-                       case '?':
+               case '?':
+                       p[0]++;
+                       sprintf(rs, "\r\n%d", f->rel);
+                       isdn_tty_at_cout(rs, info);
+                       break;
+               case '=':
+                       p[0]++;
+                       if (*p[0] == '?') {
                                p[0]++;
-                               sprintf(rs, "\r\n%d", f->rel);
+                               sprintf(rs, "\r\n0,1");
                                isdn_tty_at_cout(rs, info);
-                               break;
-                       case '=':
-                               p[0]++;
-                               if (*p[0] == '?') {
-                                       p[0]++;
-                                       sprintf(rs, "\r\n0,1");
-                                       isdn_tty_at_cout(rs, info);
-                               } else {
-                                       par = isdn_getnum(p);
-                                       if ((par < 0) || (par > 1))
-                                               PARSE_ERROR1;
-                                       f->rel = par;
+                       } else {
+                               par = isdn_getnum(p);
+                               if ((par < 0) || (par > 1))
+                                       PARSE_ERROR1;
+                               f->rel = par;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
-                                       printk(KERN_DEBUG "isdn_tty: Fax FREL=%d\n", par);
+                               printk(KERN_DEBUG "isdn_tty: Fax FREL=%d\n", par);
 #endif
-                               }
-                               break;
-                       default:
-                               PARSE_ERROR1;
+                       }
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -1100,11 +1100,11 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
                printk(KERN_DEBUG "isdn_tty: Fax FTBC=%c\n", *p[0]);
 #endif
                switch (*p[0]) {
-                       case '0':
-                               p[0]++;
-                               break;
-                       default:
-                               PARSE_ERROR1;
+               case '0':
+                       p[0]++;
+                       break;
+               default:
+                       PARSE_ERROR1;
                }
                return 0;
        }
@@ -1113,7 +1113,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 }
 
 int
-isdn_tty_cmd_PLUSF_FAX(char **p, modem_info * info)
+isdn_tty_cmd_PLUSF_FAX(char **p, modem_info *info)
 {
        if (TTY_IS_FCLASS2(info))
                return (isdn_tty_cmd_FCLASS2(p, info));
index 757a890..ccda4fc 100644 (file)
@@ -15,4 +15,3 @@
 #define XON    0x11
 #define XOFF   0x13
 #define DC2    0x12
-
index c5d02b6..52827a8 100644 (file)
@@ -26,8 +26,8 @@ char *isdn_v110_revision = "$Revision: 1.1.2.2 $";
 #define V110_19200  15
 #define V110_9600    3
 
-/* 
- * The following data are precoded matrices, online and offline matrix 
+/*
+ * The following data are precoded matrices, online and offline matrix
  * for 9600, 19200 und 38400, respectively
  */
 static unsigned char V110_OnMatrix_9600[] =
@@ -56,7 +56,7 @@ static unsigned char V110_OnMatrix_38400[] =
 static unsigned char V110_OffMatrix_38400[] =
 {0x00, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff};
 
-/* 
+/*
  * FlipBits reorders sequences of keylen bits in one byte.
  * E.g. source order 7654321 will be converted to 45670123 when keylen = 4,
  * and to 67452301 when keylen = 2. This is necessary because ordering on
@@ -103,18 +103,18 @@ isdn_v110_open(unsigned char key, int hdrlen, int maxsize)
        v->decodelen = 0;
 
        switch (key) {
-               case V110_38400:
-                       v->OnlineFrame = V110_OnMatrix_38400;
-                       v->OfflineFrame = V110_OffMatrix_38400;
-                       break;
-               case V110_19200:
-                       v->OnlineFrame = V110_OnMatrix_19200;
-                       v->OfflineFrame = V110_OffMatrix_19200;
-                       break;
-               default:
-                       v->OnlineFrame = V110_OnMatrix_9600;
-                       v->OfflineFrame = V110_OffMatrix_9600;
-                       break;
+       case V110_38400:
+               v->OnlineFrame = V110_OnMatrix_38400;
+               v->OfflineFrame = V110_OffMatrix_38400;
+               break;
+       case V110_19200:
+               v->OnlineFrame = V110_OnMatrix_19200;
+               v->OfflineFrame = V110_OffMatrix_19200;
+               break;
+       default:
+               v->OnlineFrame = V110_OnMatrix_9600;
+               v->OfflineFrame = V110_OffMatrix_9600;
+               break;
        }
        v->framelen = v->nbytes * 10;
        v->SyncInit = 5;
@@ -132,7 +132,7 @@ isdn_v110_open(unsigned char key, int hdrlen, int maxsize)
 
 /* isdn_v110_close frees private V.110 data structures */
 void
-isdn_v110_close(isdn_v110_stream * v)
+isdn_v110_close(isdn_v110_stream *v)
 {
        if (v == NULL)
                return;
@@ -144,11 +144,11 @@ isdn_v110_close(isdn_v110_stream * v)
 }
 
 
-/* 
- * ValidHeaderBytes return the number of valid bytes in v->decodebuf 
+/*
+ * ValidHeaderBytes return the number of valid bytes in v->decodebuf
  */
 static int
-ValidHeaderBytes(isdn_v110_stream * v)
+ValidHeaderBytes(isdn_v110_stream *v)
 {
        int i;
        for (i = 0; (i < v->decodelen) && (i < v->nbytes); i++)
@@ -157,11 +157,11 @@ ValidHeaderBytes(isdn_v110_stream * v)
        return i;
 }
 
-/* 
- * SyncHeader moves the decodebuf ptr to the next valid header 
+/*
+ * SyncHeader moves the decodebuf ptr to the next valid header
  */
 static void
-SyncHeader(isdn_v110_stream * v)
+SyncHeader(isdn_v110_stream *v)
 {
        unsigned char *rbuf = v->decodebuf;
        int len = v->decodelen;
@@ -185,9 +185,9 @@ SyncHeader(isdn_v110_stream * v)
    only complete matices must be given.
    From these, netto data is extracted and returned in buf. The return-value
    is the bytecount of the decoded data.
- */
+*/
 static int
-DecodeMatrix(isdn_v110_stream * v, unsigned char *m, int len, unsigned char *buf)
+DecodeMatrix(isdn_v110_stream *v, unsigned char *m, int len, unsigned char *buf)
 {
        int line = 0;
        int buflen = 0;
@@ -203,7 +203,7 @@ DecodeMatrix(isdn_v110_stream * v, unsigned char *m, int len, unsigned char *buf
                                printk(KERN_DEBUG "isdn_v110: DecodeMatrix, V110 Bad Header\n");
                                /* returning now is not the right thing, though :-( */
 #endif
-                       } 
+                       }
                        line++; /* next line of matrix */
                        continue;
                } else if ((line % 10) == 5) {  /* in line 5 there's only e-bits ! */
@@ -217,7 +217,7 @@ DecodeMatrix(isdn_v110_stream * v, unsigned char *m, int len, unsigned char *buf
                        continue;
                } else if (!introducer) {       /* every byte starts with 10 (stopbit, startbit) */
                        introducer = (m[line] & mbit) ? 0 : 1;  /* current bit of the matrix */
-                     next_byte:
+               next_byte:
                        if (mbit > 2) { /* was it the last bit in this line ? */
                                mbit >>= 1;     /* no -> take next */
                                continue;
@@ -246,13 +246,13 @@ DecodeMatrix(isdn_v110_stream * v, unsigned char *m, int len, unsigned char *buf
        return buflen;          /* return number of bytes in the output buffer */
 }
 
-/* 
- * DecodeStream receives V.110 coded data from the input stream. It recovers the 
+/*
+ * DecodeStream receives V.110 coded data from the input stream. It recovers the
  * original frames.
  * The input stream doesn't need to be framed
  */
 struct sk_buff *
-isdn_v110_decode(isdn_v110_stream * v, struct sk_buff *skb)
+isdn_v110_decode(isdn_v110_stream *v, struct sk_buff *skb)
 {
        int i;
        int j;
@@ -283,7 +283,7 @@ isdn_v110_decode(isdn_v110_stream * v, struct sk_buff *skb)
        /* copy new data to decode-buffer */
        memcpy(&(v->decodebuf[v->decodelen]), rbuf, len);
        v->decodelen += len;
-      ReSync:
+ReSync:
        if (v->decodelen < v->nbytes) { /* got a new header ? */
                dev_kfree_skb(skb);
                return NULL;    /* no, try later      */
@@ -320,7 +320,7 @@ isdn_v110_decode(isdn_v110_stream * v, struct sk_buff *skb)
 /* EncodeMatrix takes input data in buf, len is the bytecount.
    Data is encoded into v110 frames in m. Return value is the number of
    matrix-lines generated.
- */
+*/
 static int
 EncodeMatrix(unsigned char *buf, int len, unsigned char *m, int mlen)
 {
@@ -333,14 +333,14 @@ EncodeMatrix(unsigned char *buf, int len, unsigned char *m, int mlen)
 
        while ((i < len) && (line < mlen)) {    /* while we still have input data */
                switch (line % 10) {    /* in which line of the matrix are we? */
-                       case 0:
-                               m[line++] = 0x00;       /* line 0 is always 0 */
-                               mbit = 128;     /* go on with the 7th bit */
-                               break;
-                       case 5:
-                               m[line++] = 0xbf;       /* line 5 is always 10111111 */
-                               mbit = 128;     /* go on with the 7th bit */
-                               break;
+               case 0:
+                       m[line++] = 0x00;       /* line 0 is always 0 */
+                       mbit = 128;     /* go on with the 7th bit */
+                       break;
+               case 5:
+                       m[line++] = 0xbf;       /* line 5 is always 10111111 */
+                       mbit = 128;     /* go on with the 7th bit */
+                       break;
                }
                if (line >= mlen) {
                        printk(KERN_WARNING "isdn_v110 (EncodeMatrix): buffer full!\n");
@@ -348,16 +348,16 @@ EncodeMatrix(unsigned char *buf, int len, unsigned char *m, int mlen)
                }
        next_bit:
                switch (mbit) { /* leftmost or rightmost bit ? */
-                       case 1:
-                               line++; /* rightmost -> go to next line */
-                               if (line >= mlen) {
-                                       printk(KERN_WARNING "isdn_v110 (EncodeMatrix): buffer full!\n");
-                                       return line;
-                               }
-                       case 128:
-                               m[line] = 128;  /* leftmost -> set byte to 1000000 */
-                               mbit = 64;      /* current bit in the matrix line */
-                               continue;
+               case 1:
+                       line++; /* rightmost -> go to next line */
+                       if (line >= mlen) {
+                               printk(KERN_WARNING "isdn_v110 (EncodeMatrix): buffer full!\n");
+                               return line;
+                       }
+               case 128:
+                       m[line] = 128;  /* leftmost -> set byte to 1000000 */
+                       mbit = 64;      /* current bit in the matrix line */
+                       continue;
                }
                if (introducer) {       /* set 110 sequence ? */
                        introducer--;   /* set on digit less */
@@ -384,24 +384,24 @@ EncodeMatrix(unsigned char *buf, int len, unsigned char *m, int mlen)
        /* if necessary, generate remaining lines of the matrix... */
        if ((line) && ((line + 10) < mlen))
                switch (++line % 10) {
-                       case 1:
-                               m[line++] = 0xfe;
-                       case 2:
-                               m[line++] = 0xfe;
-                       case 3:
-                               m[line++] = 0xfe;
-                       case 4:
-                               m[line++] = 0xfe;
-                       case 5:
-                               m[line++] = 0xbf;
-                       case 6:
-                               m[line++] = 0xfe;
-                       case 7:
-                               m[line++] = 0xfe;
-                       case 8:
-                               m[line++] = 0xfe;
-                       case 9:
-                               m[line++] = 0xfe;
+               case 1:
+                       m[line++] = 0xfe;
+               case 2:
+                       m[line++] = 0xfe;
+               case 3:
+                       m[line++] = 0xfe;
+               case 4:
+                       m[line++] = 0xfe;
+               case 5:
+                       m[line++] = 0xbf;
+               case 6:
+                       m[line++] = 0xfe;
+               case 7:
+                       m[line++] = 0xfe;
+               case 8:
+                       m[line++] = 0xfe;
+               case 9:
+                       m[line++] = 0xfe;
                }
        return line;            /* that's how many lines we have */
 }
@@ -447,7 +447,7 @@ isdn_v110_idle(isdn_v110_stream *v)
 }
 
 struct sk_buff *
-isdn_v110_encode(isdn_v110_stream * v, struct sk_buff *skb)
+isdn_v110_encode(isdn_v110_stream *v, struct sk_buff *skb)
 {
        int i;
        int j;
@@ -524,93 +524,93 @@ isdn_v110_stat_callback(int idx, isdn_ctrl *c)
        if (idx < 0)
                return 0;
        switch (c->command) {
-               case ISDN_STAT_BSENT:
-                        /* Keep the send-queue of the driver filled
-                        * with frames:
-                        * If number of outstanding frames < 3,
-                        * send down an Idle-Frame (or an Sync-Frame, if
-                        * v->SyncInit != 0). 
-                        */
-                       if (!(v = dev->v110[idx]))
-                               return 0;
-                       atomic_inc(&dev->v110use[idx]);
-                       for (i=0; i * v->framelen < c->parm.length; i++) {
-                               if (v->skbidle > 0) {
-                                       v->skbidle--;
-                                       ret = 1;
+       case ISDN_STAT_BSENT:
+               /* Keep the send-queue of the driver filled
+                * with frames:
+                * If number of outstanding frames < 3,
+                * send down an Idle-Frame (or an Sync-Frame, if
+                * v->SyncInit != 0).
+                */
+               if (!(v = dev->v110[idx]))
+                       return 0;
+               atomic_inc(&dev->v110use[idx]);
+               for (i = 0; i * v->framelen < c->parm.length; i++) {
+                       if (v->skbidle > 0) {
+                               v->skbidle--;
+                               ret = 1;
+                       } else {
+                               if (v->skbuser > 0)
+                                       v->skbuser--;
+                               ret = 0;
+                       }
+               }
+               for (i = v->skbuser + v->skbidle; i < 2; i++) {
+                       struct sk_buff *skb;
+                       if (v->SyncInit > 0)
+                               skb = isdn_v110_sync(v);
+                       else
+                               skb = isdn_v110_idle(v);
+                       if (skb) {
+                               if (dev->drv[c->driver]->interface->writebuf_skb(c->driver, c->arg, 1, skb) <= 0) {
+                                       dev_kfree_skb(skb);
+                                       break;
                                } else {
-                                       if (v->skbuser > 0)
-                                               v->skbuser--;
-                                       ret = 0;
+                                       if (v->SyncInit)
+                                               v->SyncInit--;
+                                       v->skbidle++;
                                }
+                       } else
+                               break;
+               }
+               atomic_dec(&dev->v110use[idx]);
+               return ret;
+       case ISDN_STAT_DHUP:
+       case ISDN_STAT_BHUP:
+               while (1) {
+                       atomic_inc(&dev->v110use[idx]);
+                       if (atomic_dec_and_test(&dev->v110use[idx])) {
+                               isdn_v110_close(dev->v110[idx]);
+                               dev->v110[idx] = NULL;
+                               break;
+                       }
+                       mdelay(1);
+               }
+               break;
+       case ISDN_STAT_BCONN:
+               if (dev->v110emu[idx] && (dev->v110[idx] == NULL)) {
+                       int hdrlen = dev->drv[c->driver]->interface->hl_hdrlen;
+                       int maxsize = dev->drv[c->driver]->interface->maxbufsize;
+                       atomic_inc(&dev->v110use[idx]);
+                       switch (dev->v110emu[idx]) {
+                       case ISDN_PROTO_L2_V11096:
+                               dev->v110[idx] = isdn_v110_open(V110_9600, hdrlen, maxsize);
+                               break;
+                       case ISDN_PROTO_L2_V11019:
+                               dev->v110[idx] = isdn_v110_open(V110_19200, hdrlen, maxsize);
+                               break;
+                       case ISDN_PROTO_L2_V11038:
+                               dev->v110[idx] = isdn_v110_open(V110_38400, hdrlen, maxsize);
+                               break;
+                       default:;
                        }
-                       for (i = v->skbuser + v->skbidle; i < 2; i++) {
-                               struct sk_buff *skb;
-                               if (v->SyncInit > 0)
-                                       skb = isdn_v110_sync(v);
-                               else
-                                       skb = isdn_v110_idle(v);
-                               if (skb) {
+                       if ((v = dev->v110[idx])) {
+                               while (v->SyncInit) {
+                                       struct sk_buff *skb = isdn_v110_sync(v);
                                        if (dev->drv[c->driver]->interface->writebuf_skb(c->driver, c->arg, 1, skb) <= 0) {
                                                dev_kfree_skb(skb);
+                                               /* Unable to send, try later */
                                                break;
-                                       } else {
-                                               if (v->SyncInit)
-                                                       v->SyncInit--;
-                                               v->skbidle++;
                                        }
-                               } else
-                                       break;
-                       }
-                       atomic_dec(&dev->v110use[idx]);
-                       return ret;
-               case ISDN_STAT_DHUP:
-               case ISDN_STAT_BHUP:
-                       while (1) {
-                               atomic_inc(&dev->v110use[idx]);
-                               if (atomic_dec_and_test(&dev->v110use[idx])) {
-                                       isdn_v110_close(dev->v110[idx]);
-                                       dev->v110[idx] = NULL;
-                                       break;
+                                       v->SyncInit--;
+                                       v->skbidle++;
                                }
-                               mdelay(1);
-                       }
-                       break;
-               case ISDN_STAT_BCONN:
-                       if (dev->v110emu[idx] && (dev->v110[idx] == NULL)) {
-                               int hdrlen = dev->drv[c->driver]->interface->hl_hdrlen;
-                               int maxsize = dev->drv[c->driver]->interface->maxbufsize;
-                               atomic_inc(&dev->v110use[idx]);
-                               switch (dev->v110emu[idx]) {
-                                       case ISDN_PROTO_L2_V11096:
-                                               dev->v110[idx] = isdn_v110_open(V110_9600, hdrlen, maxsize);
-                                               break;
-                                       case ISDN_PROTO_L2_V11019:
-                                               dev->v110[idx] = isdn_v110_open(V110_19200, hdrlen, maxsize);
-                                               break;
-                                       case ISDN_PROTO_L2_V11038:
-                                               dev->v110[idx] = isdn_v110_open(V110_38400, hdrlen, maxsize);
-                                               break;
-                                       default:;
-                               }
-                               if ((v = dev->v110[idx])) {
-                                       while (v->SyncInit) {
-                                               struct sk_buff *skb = isdn_v110_sync(v);
-                                               if (dev->drv[c->driver]->interface->writebuf_skb(c->driver, c->arg, 1, skb) <= 0) {
-                                                       dev_kfree_skb(skb);
-                                                       /* Unable to send, try later */
-                                                       break;
-                                               }
-                                               v->SyncInit--;
-                                               v->skbidle++;
-                                       }
-                               } else
-                                       printk(KERN_WARNING "isdn_v110: Couldn't open stream for chan %d\n", idx);
-                               atomic_dec(&dev->v110use[idx]);
-                       }
-                       break;
-               default:
-                       return 0;
+                       } else
+                               printk(KERN_WARNING "isdn_v110: Couldn't open stream for chan %d\n", idx);
+                       atomic_dec(&dev->v110use[idx]);
+               }
+               break;
+       default:
+               return 0;
        }
        return 0;
 }
index 08f274b..de774ab 100644 (file)
 #ifndef _isdn_v110_h_
 #define _isdn_v110_h_
 
-/* 
- * isdn_v110_encode will take raw data and encode it using V.110 
+/*
+ * isdn_v110_encode will take raw data and encode it using V.110
  */
 extern struct sk_buff *isdn_v110_encode(isdn_v110_stream *, struct sk_buff *);
 
-/* 
+/*
  * isdn_v110_decode receives V.110 coded data from the stream and rebuilds
  * frames from them. The source stream doesn't need to be framed.
  */
 extern struct sk_buff *isdn_v110_decode(isdn_v110_stream *, struct sk_buff *);
 
 extern int isdn_v110_stat_callback(int, isdn_ctrl *);
-extern void isdn_v110_close(isdn_v110_stream * v);
+extern void isdn_v110_close(isdn_v110_stream *v);
 
 #endif
index fd10d7c..e2d4e58 100644 (file)
@@ -26,7 +26,7 @@
 #include "isdn_x25iface.h"
 
 /* for debugging messages not to cause an oops when device pointer is NULL*/
-#define MY_DEVNAME(dev)  ( (dev) ? (dev)->name : "DEVICE UNSPECIFIED" )
+#define MY_DEVNAME(dev)  ((dev) ? (dev)->name : "DEVICE UNSPECIFIED")
 
 
 typedef struct isdn_x25iface_proto_data {
@@ -34,22 +34,22 @@ typedef struct isdn_x25iface_proto_data {
        enum wan_states state;
        /* Private stuff, not to be accessed via proto_data. We provide the
           other storage for the concap_proto instance here as well,
-          enabling us to allocate both with just one kmalloc(): */ 
+          enabling us to allocate both with just one kmalloc(): */
        struct concap_proto priv;
 } ix25_pdata_t;
 
 
 
 /* is now in header file (extern): struct concap_proto * isdn_x25iface_proto_new(void); */
-static void isdn_x25iface_proto_del( struct concap_proto * );
-static int isdn_x25iface_proto_close( struct concap_proto * );
-static int isdn_x25iface_proto_restart( struct concap_proto *,
-                                       struct net_device *,
-                                       struct concap_device_ops *);
-static int isdn_x25iface_xmit( struct concap_proto *, struct sk_buff * );
-static int isdn_x25iface_receive( struct concap_proto *, struct sk_buff * );
-static int isdn_x25iface_connect_ind( struct concap_proto * );
-static int isdn_x25iface_disconn_ind( struct concap_proto * );
+static void isdn_x25iface_proto_del(struct concap_proto *);
+static int isdn_x25iface_proto_close(struct concap_proto *);
+static int isdn_x25iface_proto_restart(struct concap_proto *,
+                                      struct net_device *,
+                                      struct concap_device_ops *);
+static int isdn_x25iface_xmit(struct concap_proto *, struct sk_buff *);
+static int isdn_x25iface_receive(struct concap_proto *, struct sk_buff *);
+static int isdn_x25iface_connect_ind(struct concap_proto *);
+static int isdn_x25iface_disconn_ind(struct concap_proto *);
 
 
 static struct concap_proto_ops ix25_pops = {
@@ -64,65 +64,65 @@ static struct concap_proto_ops ix25_pops = {
 };
 
 /* error message helper function */
-static void illegal_state_warn( unsigned state, unsigned char firstbyte) 
+static void illegal_state_warn(unsigned state, unsigned char firstbyte)
 {
-       printk( KERN_WARNING "isdn_x25iface: firstbyte %x illegal in"
-               "current state %d\n",firstbyte, state );
+       printk(KERN_WARNING "isdn_x25iface: firstbyte %x illegal in"
+              "current state %d\n", firstbyte, state);
 }
 
 /* check protocol data field for consistency */
-static int pdata_is_bad( ix25_pdata_t * pda ){
+static int pdata_is_bad(ix25_pdata_t *pda) {
 
-       if( pda  &&  pda -> magic == ISDN_X25IFACE_MAGIC ) return 0;
-       printk( KERN_WARNING
-               "isdn_x25iface_xxx: illegal pointer to proto data\n" );
+       if (pda  &&  pda->magic == ISDN_X25IFACE_MAGIC) return 0;
+       printk(KERN_WARNING
+              "isdn_x25iface_xxx: illegal pointer to proto data\n");
        return 1;
 }
 
 /* create a new x25 interface protocol instance
  */
-struct concap_proto * isdn_x25iface_proto_new(void)
+struct concap_proto *isdn_x25iface_proto_new(void)
 {
-       ix25_pdata_t * tmp = kmalloc(sizeof(ix25_pdata_t),GFP_KERNEL);
+       ix25_pdata_t *tmp = kmalloc(sizeof(ix25_pdata_t), GFP_KERNEL);
        IX25DEBUG("isdn_x25iface_proto_new\n");
-       if( tmp ){
-               tmp -> magic = ISDN_X25IFACE_MAGIC;
-               tmp -> state = WAN_UNCONFIGURED;
+       if (tmp) {
+               tmp->magic = ISDN_X25IFACE_MAGIC;
+               tmp->state = WAN_UNCONFIGURED;
                /* private data space used to hold the concap_proto data.
                   Only to be accessed via the returned pointer */
                spin_lock_init(&tmp->priv.lock);
-               tmp -> priv.dops       = NULL;
-               tmp -> priv.net_dev    = NULL;
-               tmp -> priv.pops       = &ix25_pops;
-               tmp -> priv.flags      = 0;
-               tmp -> priv.proto_data = tmp;
-               return( &(tmp -> priv) );
+               tmp->priv.dops       = NULL;
+               tmp->priv.net_dev    = NULL;
+               tmp->priv.pops       = &ix25_pops;
+               tmp->priv.flags      = 0;
+               tmp->priv.proto_data = tmp;
+               return (&(tmp->priv));
        }
        return NULL;
 };
 
-/* close the x25iface encapsulation protocol 
+/* close the x25iface encapsulation protocol
  */
-static int isdn_x25iface_proto_close(struct concap_proto *cprot){
+static int isdn_x25iface_proto_close(struct concap_proto *cprot) {
 
        ix25_pdata_t *tmp;
-        int ret = 0;
+       int ret = 0;
        ulong flags;
 
-       if( ! cprot ){
-               printk( KERN_ERR "isdn_x25iface_proto_close: "
-                       "invalid concap_proto pointer\n" );
+       if (!cprot) {
+               printk(KERN_ERR "isdn_x25iface_proto_close: "
+                      "invalid concap_proto pointer\n");
                return -1;
        }
-       IX25DEBUG( "isdn_x25iface_proto_close %s \n", MY_DEVNAME(cprot -> net_dev) );
+       IX25DEBUG("isdn_x25iface_proto_close %s \n", MY_DEVNAME(cprot->net_dev));
        spin_lock_irqsave(&cprot->lock, flags);
-       cprot -> dops    = NULL;
-       cprot -> net_dev = NULL;
-       tmp = cprot -> proto_data;
-       if( pdata_is_bad( tmp ) ){
+       cprot->dops    = NULL;
+       cprot->net_dev = NULL;
+       tmp = cprot->proto_data;
+       if (pdata_is_bad(tmp)) {
                ret = -1;
        } else {
-               tmp -> state = WAN_UNCONFIGURED;
+               tmp->state = WAN_UNCONFIGURED;
        }
        spin_unlock_irqrestore(&cprot->lock, flags);
        return ret;
@@ -130,100 +130,100 @@ static int isdn_x25iface_proto_close(struct concap_proto *cprot){
 
 /* Delete the x25iface encapsulation protocol instance
  */
-static void isdn_x25iface_proto_del(struct concap_proto *cprot){
+static void isdn_x25iface_proto_del(struct concap_proto *cprot) {
+
+       ix25_pdata_t *tmp;
 
-       ix25_pdata_t * tmp;
-       IX25DEBUG( "isdn_x25iface_proto_del \n" );
-       if( ! cprot ){
-               printk( KERN_ERR "isdn_x25iface_proto_del: "
-                       "concap_proto pointer is NULL\n" );
+       IX25DEBUG("isdn_x25iface_proto_del \n");
+       if (!cprot) {
+               printk(KERN_ERR "isdn_x25iface_proto_del: "
+                      "concap_proto pointer is NULL\n");
                return;
        }
-       tmp = cprot -> proto_data;
-       if( tmp == NULL ){ 
-               printk( KERN_ERR "isdn_x25iface_proto_del: inconsistent "
-                       "proto_data pointer (maybe already deleted?)\n"); 
+       tmp = cprot->proto_data;
+       if (tmp == NULL) {
+               printk(KERN_ERR "isdn_x25iface_proto_del: inconsistent "
+                      "proto_data pointer (maybe already deleted?)\n");
                return;
        }
        /* close if the protocol is still open */
-       if( cprot -> dops ) isdn_x25iface_proto_close(cprot);
+       if (cprot->dops) isdn_x25iface_proto_close(cprot);
        /* freeing the storage should be sufficient now. But some additional
           settings might help to catch wild pointer bugs */
-       tmp -> magic = 0;
-       cprot -> proto_data = NULL;
+       tmp->magic = 0;
+       cprot->proto_data = NULL;
 
-       kfree( tmp );
+       kfree(tmp);
        return;
 }
 
 /* (re-)initialize the data structures for x25iface encapsulation
  */
 static int isdn_x25iface_proto_restart(struct concap_proto *cprot,
-                                       struct net_device *ndev,
-                                       struct concap_device_ops *dops)
+                                      struct net_device *ndev,
+                                      struct concap_device_ops *dops)
 {
-       ix25_pdata_t * pda = cprot -> proto_data ;
+       ix25_pdata_t *pda = cprot->proto_data;
        ulong flags;
 
-       IX25DEBUG( "isdn_x25iface_proto_restart %s \n", MY_DEVNAME(ndev) );
+       IX25DEBUG("isdn_x25iface_proto_restart %s \n", MY_DEVNAME(ndev));
 
-       if ( pdata_is_bad( pda ) ) return -1;
+       if (pdata_is_bad(pda)) return -1;
 
-       if( !( dops  && dops -> data_req && dops -> connect_req 
-              && dops -> disconn_req )  ){
-               printk( KERN_WARNING "isdn_x25iface_restart: required dops"
-                       " missing\n" );
+       if (!(dops && dops->data_req && dops->connect_req
+             && dops->disconn_req)) {
+               printk(KERN_WARNING "isdn_x25iface_restart: required dops"
+                      " missing\n");
                isdn_x25iface_proto_close(cprot);
                return -1;
        }
        spin_lock_irqsave(&cprot->lock, flags);
-       cprot -> net_dev = ndev;
-       cprot -> pops = &ix25_pops;
-       cprot -> dops = dops;
-       pda -> state = WAN_DISCONNECTED;
+       cprot->net_dev = ndev;
+       cprot->pops = &ix25_pops;
+       cprot->dops = dops;
+       pda->state = WAN_DISCONNECTED;
        spin_unlock_irqrestore(&cprot->lock, flags);
        return 0;
 }
 
-/* deliver a dl_data frame received from i4l HL driver to the network layer 
+/* deliver a dl_data frame received from i4l HL driver to the network layer
  */
 static int isdn_x25iface_receive(struct concap_proto *cprot, struct sk_buff *skb)
 {
-       IX25DEBUG( "isdn_x25iface_receive %s \n", MY_DEVNAME(cprot->net_dev) );
-       if ( ( (ix25_pdata_t*) (cprot->proto_data) ) 
-            -> state == WAN_CONNECTED ){
-               if( skb_push(skb, 1)){
+       IX25DEBUG("isdn_x25iface_receive %s \n", MY_DEVNAME(cprot->net_dev));
+       if (((ix25_pdata_t *)(cprot->proto_data))
+           ->state == WAN_CONNECTED) {
+               if (skb_push(skb, 1)) {
                        skb->data[0] = X25_IFACE_DATA;
                        skb->protocol = x25_type_trans(skb, cprot->net_dev);
                        netif_rx(skb);
                        return 0;
                }
        }
-       printk(KERN_WARNING "isdn_x25iface_receive %s: not connected, skb dropped\n", MY_DEVNAME(cprot->net_dev) );
+       printk(KERN_WARNING "isdn_x25iface_receive %s: not connected, skb dropped\n", MY_DEVNAME(cprot->net_dev));
        dev_kfree_skb(skb);
        return -1;
 }
 
-/* a connection set up is indicated by lower layer 
+/* a connection set up is indicated by lower layer
  */
 static int isdn_x25iface_connect_ind(struct concap_proto *cprot)
 {
-       struct sk_buff * skb;
-       enum wan_states *state_p 
-         = &( ( (ix25_pdata_t*) (cprot->proto_data) ) -> state);
-       IX25DEBUG( "isdn_x25iface_connect_ind %s \n"
-                  , MY_DEVNAME(cprot->net_dev) );
-       if( *state_p == WAN_UNCONFIGURED ){ 
-               printk(KERN_WARNING 
+       struct sk_buff *skb;
+       enum wan_states *state_p
+               = &(((ix25_pdata_t *)(cprot->proto_data))->state);
+       IX25DEBUG("isdn_x25iface_connect_ind %s \n"
+                 , MY_DEVNAME(cprot->net_dev));
+       if (*state_p == WAN_UNCONFIGURED) {
+               printk(KERN_WARNING
                       "isdn_x25iface_connect_ind while unconfigured %s\n"
-                      , MY_DEVNAME(cprot->net_dev) );
+                      , MY_DEVNAME(cprot->net_dev));
                return -1;
        }
        *state_p = WAN_CONNECTED;
 
        skb = dev_alloc_skb(1);
-       if( skb ){
+       if (skb) {
                *(skb_put(skb, 1)) = X25_IFACE_CONNECT;
                skb->protocol = x25_type_trans(skb, cprot->net_dev);
                netif_rx(skb);
@@ -231,28 +231,28 @@ static int isdn_x25iface_connect_ind(struct concap_proto *cprot)
        } else {
                printk(KERN_WARNING "isdn_x25iface_connect_ind: "
                       " out of memory -- disconnecting\n");
-               cprot -> dops -> disconn_req(cprot);
+               cprot->dops->disconn_req(cprot);
                return -1;
        }
 }
-       
-/* a disconnect is indicated by lower layer 
+
+/* a disconnect is indicated by lower layer
  */
 static int isdn_x25iface_disconn_ind(struct concap_proto *cprot)
 {
        struct sk_buff *skb;
-       enum wan_states *state_p 
-         = &( ( (ix25_pdata_t*) (cprot->proto_data) ) -> state);
-       IX25DEBUG( "isdn_x25iface_disconn_ind %s \n", MY_DEVNAME(cprot -> net_dev) );
-       if( *state_p == WAN_UNCONFIGURED ){ 
-               printk(KERN_WARNING 
+       enum wan_states *state_p
+               = &(((ix25_pdata_t *)(cprot->proto_data))->state);
+       IX25DEBUG("isdn_x25iface_disconn_ind %s \n", MY_DEVNAME(cprot->net_dev));
+       if (*state_p == WAN_UNCONFIGURED) {
+               printk(KERN_WARNING
                       "isdn_x25iface_disconn_ind while unconfigured\n");
                return -1;
        }
-       if(! cprot -> net_dev) return -1;
+       if (!cprot->net_dev) return -1;
        *state_p = WAN_DISCONNECTED;
        skb = dev_alloc_skb(1);
-       if( skb ){
+       if (skb) {
                *(skb_put(skb, 1)) = X25_IFACE_DISCONNECT;
                skb->protocol = x25_type_trans(skb, cprot->net_dev);
                netif_rx(skb);
@@ -266,57 +266,57 @@ static int isdn_x25iface_disconn_ind(struct concap_proto *cprot)
 
 /* process a frame handed over to us from linux network layer. First byte
    semantics as defined in Documentation/networking/x25-iface.txt
-   */
+*/
 static int isdn_x25iface_xmit(struct concap_proto *cprot, struct sk_buff *skb)
 {
        unsigned char firstbyte = skb->data[0];
-       enum wan_states *state = &((ix25_pdata_t*)cprot->proto_data)->state;
+       enum wan_states *state = &((ix25_pdata_t *)cprot->proto_data)->state;
        int ret = 0;
        IX25DEBUG("isdn_x25iface_xmit: %s first=%x state=%d\n",
-               MY_DEVNAME(cprot->net_dev), firstbyte, *state);
-       switch ( firstbyte ){
+                 MY_DEVNAME(cprot->net_dev), firstbyte, *state);
+       switch (firstbyte) {
        case X25_IFACE_DATA:
-               if( *state == WAN_CONNECTED ){
+               if (*state == WAN_CONNECTED) {
                        skb_pull(skb, 1);
-                       cprot -> net_dev -> trans_start = jiffies;
-                       ret = ( cprot -> dops -> data_req(cprot, skb) );
+                       cprot->net_dev->trans_start = jiffies;
+                       ret = (cprot->dops->data_req(cprot, skb));
                        /* prepare for future retransmissions */
-                       if( ret ) skb_push(skb,1);
+                       if (ret) skb_push(skb, 1);
                        return ret;
                }
-               illegal_state_warn( *state, firstbyte ); 
+               illegal_state_warn(*state, firstbyte);
                break;
        case X25_IFACE_CONNECT:
-               if( *state == WAN_DISCONNECTED ){
+               if (*state == WAN_DISCONNECTED) {
                        *state = WAN_CONNECTING;
-                       ret = cprot -> dops -> connect_req(cprot);
-                       if(ret){
+                       ret = cprot->dops->connect_req(cprot);
+                       if (ret) {
                                /* reset state and notify upper layer about
                                 * immidiatly failed attempts */
                                isdn_x25iface_disconn_ind(cprot);
                        }
                } else {
-                       illegal_state_warn( *state, firstbyte );
+                       illegal_state_warn(*state, firstbyte);
                }
                break;
        case X25_IFACE_DISCONNECT:
-               switch ( *state ){
-               case WAN_DISCONNECTED: 
+               switch (*state) {
+               case WAN_DISCONNECTED:
                        /* Should not happen. However, give upper layer a
                           chance to recover from inconstistency  but don't
                           trust the lower layer sending the disconn_confirm
                           when already disconnected */
                        printk(KERN_WARNING "isdn_x25iface_xmit: disconnect "
-                              " requested while disconnected\n" );
+                              " requested while disconnected\n");
                        isdn_x25iface_disconn_ind(cprot);
                        break; /* prevent infinite loops */
                case WAN_CONNECTING:
                case WAN_CONNECTED:
                        *state = WAN_DISCONNECTED;
-                       cprot -> dops -> disconn_req(cprot);
+                       cprot->dops->disconn_req(cprot);
                        break;
                default:
-                       illegal_state_warn( *state, firstbyte );
+                       illegal_state_warn(*state, firstbyte);
                }
                break;
        case X25_IFACE_PARAMS:
index 41a3d49..0b26e3b 100644 (file)
@@ -13,9 +13,9 @@
 #define ISDN_X25IFACE_MAGIC 0x1e75a2b9
 /* #define DEBUG_ISDN_X25 if you want isdn_x25 debugging messages */
 #ifdef DEBUG_ISDN_X25
-#   define IX25DEBUG(fmt,args...) printk(KERN_DEBUG fmt , ## args)
+#   define IX25DEBUG(fmt, args...) printk(KERN_DEBUG fmt, ##args)
 #else
-#   define IX25DEBUG(fmt,args...)
+#   define IX25DEBUG(fmt, args...)
 #endif
 
 #include <linux/skbuff.h>
 #include <linux/isdn.h>
 #include <linux/concap.h>
 
-extern struct concap_proto_ops * isdn_x25iface_concap_proto_ops_pt;
-extern struct concap_proto     * isdn_x25iface_proto_new(void);
+extern struct concap_proto_ops *isdn_x25iface_concap_proto_ops_pt;
+extern struct concap_proto *isdn_x25iface_proto_new(void);
 
 
 
 #endif
-
-
-
-
-
-
-
-
index c989aa3..027d1c5 100644 (file)
@@ -88,7 +88,7 @@ check_frame(struct isdnhdlc_vars *hdlc)
 {
        int status;
 
-       if (hdlc->dstpos < 2)   /* too small - framing error */
+       if (hdlc->dstpos < 2)   /* too small - framing error */
                status = -HDLC_FRAMING_ERROR;
        else if (hdlc->crc != 0xf0b8)   /* crc error */
                status = -HDLC_CRC_ERROR;
@@ -127,9 +127,9 @@ check_frame(struct isdnhdlc_vars *hdlc)
   dsize - destination buffer size
   returns - number of decoded bytes in the destination buffer and status
   flag.
- */
+*/
 int isdnhdlc_decode(struct isdnhdlc_vars *hdlc, const u8 *src, int slen,
-       int *count, u8 *dst, int dsize)
+                   int *count, u8 *dst, int dsize)
 {
        int status = 0;
 
@@ -145,28 +145,28 @@ int isdnhdlc_decode(struct isdnhdlc_vars *hdlc, const u8 *src, int slen,
                0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff
        };
 
-#define handle_fast_flag(h) \
-       do {\
-               if (h->cbin == fast_flag[h->bit_shift]) {\
-                       h->ffvalue = fast_flag_value[h->bit_shift];\
-                       h->state = HDLC_FAST_FLAG;\
-                       h->ffbit_shift = h->bit_shift;\
-                       h->bit_shift = 1;\
-               } else {\
-                       h->state = HDLC_GET_DATA;\
-                       h->data_received = 0;\
-               } \
+#define handle_fast_flag(h)                                            \
+       do {                                                            \
+               if (h->cbin == fast_flag[h->bit_shift]) {               \
+                       h->ffvalue = fast_flag_value[h->bit_shift];     \
+                       h->state = HDLC_FAST_FLAG;                      \
+                       h->ffbit_shift = h->bit_shift;                  \
+                       h->bit_shift = 1;                               \
+               } else {                                                \
+                       h->state = HDLC_GET_DATA;                       \
+                       h->data_received = 0;                           \
+               }                                                       \
        } while (0)
 
-#define handle_abort(h) \
-       do {\
-               h->shift_reg = fast_abort[h->ffbit_shift - 1];\
-               h->hdlc_bits1 = h->ffbit_shift - 2;\
-               if (h->hdlc_bits1 < 0)\
-                       h->hdlc_bits1 = 0;\
-               h->data_bits = h->ffbit_shift - 1;\
-               h->state = HDLC_GET_DATA;\
-               h->data_received = 0;\
+#define handle_abort(h)                                                \
+       do {                                                    \
+               h->shift_reg = fast_abort[h->ffbit_shift - 1];  \
+               h->hdlc_bits1 = h->ffbit_shift - 2;             \
+               if (h->hdlc_bits1 < 0)                          \
+                       h->hdlc_bits1 = 0;                      \
+               h->data_bits = h->ffbit_shift - 1;              \
+               h->state = HDLC_GET_DATA;                       \
+               h->data_received = 0;                           \
        } while (0)
 
        *count = slen;
@@ -204,7 +204,7 @@ int isdnhdlc_decode(struct isdnhdlc_vars *hdlc, const u8 *src, int slen,
                                if ((!hdlc->do_adapt56) &&
                                    (++hdlc->hdlc_bits1 >= 8) &&
                                    (hdlc->bit_shift == 1))
-                                               hdlc->state = HDLC_FAST_IDLE;
+                                       hdlc->state = HDLC_FAST_IDLE;
                        }
                        hdlc->cbin <<= 1;
                        hdlc->bit_shift--;
@@ -295,7 +295,7 @@ int isdnhdlc_decode(struct isdnhdlc_vars *hdlc, const u8 *src, int slen,
                                hdlc->data_bits = 0;
                                hdlc->data_received = 1;
                                hdlc->crc = crc_ccitt_byte(hdlc->crc,
-                                               hdlc->shift_reg);
+                                                          hdlc->shift_reg);
 
                                /* good byte received */
                                if (hdlc->dstpos < dsize)
@@ -352,7 +352,7 @@ EXPORT_SYMBOL(isdnhdlc_decode);
   returns - number of encoded bytes in the destination buffer
 */
 int isdnhdlc_encode(struct isdnhdlc_vars *hdlc, const u8 *src, u16 slen,
-       int *count, u8 *dst, int dsize)
+                   int *count, u8 *dst, int dsize)
 {
        static const unsigned char xfast_flag_value[] = {
                0x7e, 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0x7e
@@ -478,7 +478,7 @@ int isdnhdlc_encode(struct isdnhdlc_vars *hdlc, const u8 *src, u16 slen,
                        }
                        if (hdlc->bit_shift == 8)
                                hdlc->crc = crc_ccitt_byte(hdlc->crc,
-                                       hdlc->shift_reg);
+                                                          hdlc->shift_reg);
                        if (hdlc->shift_reg & 0x01) {
                                hdlc->hdlc_bits1++;
                                hdlc->cbin++;
index 1f355bb..e74df7c 100644 (file)
@@ -54,7 +54,7 @@ static int icn_addcard(int, char *, char *);
  *   channel = channel number
  */
 static void
-icn_free_queue(icn_card * card, int channel)
+icn_free_queue(icn_card *card, int channel)
 {
        struct sk_buff_head *queue = &card->spqueue[channel];
        struct sk_buff *skb;
@@ -93,7 +93,7 @@ icn_shiftout(unsigned short port,
  * disable a cards shared memory
  */
 static inline void
-icn_disable_ram(icn_card * card)
+icn_disable_ram(icn_card *card)
 {
        OUTB_P(0, ICN_MAPRAM);
 }
@@ -102,7 +102,7 @@ icn_disable_ram(icn_card * card)
  * enable a cards shared memory
  */
 static inline void
-icn_enable_ram(icn_card * card)
+icn_enable_ram(icn_card *card)
 {
        OUTB_P(0xff, ICN_MAPRAM);
 }
@@ -113,7 +113,7 @@ icn_enable_ram(icn_card * card)
  * must called with holding the devlock
  */
 static inline void
-icn_map_channel(icn_card * card, int channel)
+icn_map_channel(icn_card *card, int channel)
 {
 #ifdef MAP_DEBUG
        printk(KERN_DEBUG "icn_map_channel %d %d\n", dev.channel, channel);
@@ -139,7 +139,7 @@ icn_map_channel(icn_card * card, int channel)
  * must called with holding the devlock
  */
 static inline int
-icn_lock_channel(icn_card * card, int channel)
+icn_lock_channel(icn_card *card, int channel)
 {
        register int retval;
 
@@ -194,7 +194,7 @@ icn_release_channel(void)
  * Return 1 on success, 0 on failure.
  */
 static inline int
-icn_trymaplock_channel(icn_card * card, int channel)
+icn_trymaplock_channel(icn_card *card, int channel)
 {
        ulong flags;
 
@@ -225,7 +225,7 @@ icn_trymaplock_channel(icn_card * card, int channel)
  * then map same or other channel without locking.
  */
 static inline void
-icn_maprelease_channel(icn_card * card, int channel)
+icn_maprelease_channel(icn_card *card, int channel)
 {
        ulong flags;
 
@@ -246,7 +246,7 @@ icn_maprelease_channel(icn_card * card, int channel)
  */
 
 static void
-icn_pollbchan_receive(int channel, icn_card * card)
+icn_pollbchan_receive(int channel, icn_card *card)
 {
        int mch = channel + ((card->secondhalf) ? 2 : 0);
        int eflag;
@@ -297,7 +297,7 @@ icn_pollbchan_receive(int channel, icn_card * card)
  */
 
 static void
-icn_pollbchan_send(int channel, icn_card * card)
+icn_pollbchan_send(int channel, icn_card *card)
 {
        int mch = channel + ((card->secondhalf) ? 2 : 0);
        int cnt;
@@ -309,7 +309,7 @@ icn_pollbchan_send(int channel, icn_card * card)
              !skb_queue_empty(&card->spqueue[channel])))
                return;
        if (icn_trymaplock_channel(card, mch)) {
-               while (sbfree && 
+               while (sbfree &&
                       (card->sndcount[channel] ||
                        !skb_queue_empty(&card->spqueue[channel]) ||
                        card->xskb[channel])) {
@@ -327,7 +327,7 @@ icn_pollbchan_send(int channel, icn_card * card)
                                        /* Pop ACK-flag off skb.
                                         * Store length to xlen.
                                         */
-                                       if (*(skb_pull(skb,1)))
+                                       if (*(skb_pull(skb, 1)))
                                                card->xlen[channel] = skb->len;
                                        else
                                                card->xlen[channel] = 0;
@@ -396,7 +396,7 @@ icn_pollbchan(unsigned long data)
        if (card->flags & (ICN_FLAGS_B1ACTIVE | ICN_FLAGS_B2ACTIVE)) {
                /* schedule b-channel polling again */
                spin_lock_irqsave(&card->lock, flags);
-               mod_timer(&card->rb_timer, jiffies+ICN_TIMER_BCREAD);
+               mod_timer(&card->rb_timer, jiffies + ICN_TIMER_BCREAD);
                card->flags |= ICN_FLAGS_RBTIMER;
                spin_unlock_irqrestore(&card->lock, flags);
        } else
@@ -428,7 +428,7 @@ static icn_stat icn_stat_table[] =
        {"E_L1: ACT FAIL", ISDN_STAT_BHUP,  8}, /* Layer-1 activation failed  */
        {"E_L2: DATA LIN", ISDN_STAT_BHUP,  8}, /* Layer-2 data link lost     */
        {"E_L1: ACTIVATION FAILED",
-                                          ISDN_STAT_BHUP,  8}, /* Layer-1 activation failed  */
+        ISDN_STAT_BHUP,  8},   /* Layer-1 activation failed  */
        {NULL, 0, -1}
 };
 /* *INDENT-ON* */
@@ -445,7 +445,7 @@ static icn_stat icn_stat_table[] =
  */
 
 static void
-icn_parse_status(u_char * status, int channel, icn_card * card)
+icn_parse_status(u_char *status, int channel, icn_card *card)
 {
        icn_stat *s = icn_stat_table;
        int action = -1;
@@ -465,128 +465,128 @@ icn_parse_status(u_char * status, int channel, icn_card * card)
        cmd.driver = card->myid;
        cmd.arg = channel;
        switch (action) {
-               case 11:
-                       spin_lock_irqsave(&card->lock, flags);
-                       icn_free_queue(card,channel);
-                       card->rcvidx[channel] = 0;
-
-                       if (card->flags & 
-                           ((channel)?ICN_FLAGS_B2ACTIVE:ICN_FLAGS_B1ACTIVE)) {
-                               
-                               isdn_ctrl ncmd;
-                               
-                               card->flags &= ~((channel)?
-                                                ICN_FLAGS_B2ACTIVE:ICN_FLAGS_B1ACTIVE);
-                               
-                               memset(&ncmd, 0, sizeof(ncmd));
-                               
-                               ncmd.driver = card->myid;
-                               ncmd.arg = channel;
-                               ncmd.command = ISDN_STAT_BHUP;
-                               spin_unlock_irqrestore(&card->lock, flags);
-                               card->interface.statcallb(&cmd);
-                       } else
-                               spin_unlock_irqrestore(&card->lock, flags);
-                       break;
-               case 1:
-                       spin_lock_irqsave(&card->lock, flags);
-                       icn_free_queue(card,channel);
-                       card->flags |= (channel) ?
-                           ICN_FLAGS_B2ACTIVE : ICN_FLAGS_B1ACTIVE;
-                       spin_unlock_irqrestore(&card->lock, flags);
-                       break;
-               case 2:
-                       spin_lock_irqsave(&card->lock, flags);
+       case 11:
+               spin_lock_irqsave(&card->lock, flags);
+               icn_free_queue(card, channel);
+               card->rcvidx[channel] = 0;
+
+               if (card->flags &
+                   ((channel) ? ICN_FLAGS_B2ACTIVE : ICN_FLAGS_B1ACTIVE)) {
+
+                       isdn_ctrl ncmd;
+
                        card->flags &= ~((channel) ?
-                               ICN_FLAGS_B2ACTIVE : ICN_FLAGS_B1ACTIVE);
-                       icn_free_queue(card, channel);
-                       card->rcvidx[channel] = 0;
-                       spin_unlock_irqrestore(&card->lock, flags);
-                       break;
-               case 3:
-                       {
-                               char *t = status + 6;
-                               char *s = strchr(t, ',');
-
-                               *s++ = '\0';
-                               strlcpy(cmd.parm.setup.phone, t,
-                                       sizeof(cmd.parm.setup.phone));
-                               s = strchr(t = s, ',');
-                               *s++ = '\0';
-                               if (!strlen(t))
-                                       cmd.parm.setup.si1 = 0;
-                               else
-                                       cmd.parm.setup.si1 =
-                                           simple_strtoul(t, NULL, 10);
-                               s = strchr(t = s, ',');
-                               *s++ = '\0';
-                               if (!strlen(t))
-                                       cmd.parm.setup.si2 = 0;
-                               else
-                                       cmd.parm.setup.si2 =
-                                           simple_strtoul(t, NULL, 10);
-                               strlcpy(cmd.parm.setup.eazmsn, s,
-                                       sizeof(cmd.parm.setup.eazmsn));
-                       }
-                       cmd.parm.setup.plan = 0;
-                       cmd.parm.setup.screen = 0;
-                       break;
-               case 4:
-                       sprintf(cmd.parm.setup.phone, "LEASED%d", card->myid);
-                       sprintf(cmd.parm.setup.eazmsn, "%d", channel + 1);
-                       cmd.parm.setup.si1 = 7;
-                       cmd.parm.setup.si2 = 0;
-                       cmd.parm.setup.plan = 0;
-                       cmd.parm.setup.screen = 0;
-                       break;
-               case 5:
-                       strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num));
-                       break;
-               case 6:
-                       snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d",
-                            (int) simple_strtoul(status + 7, NULL, 16));
-                       break;
-               case 7:
-                       status += 3;
-                       if (strlen(status) == 4)
-                               snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c",
-                                    status + 2, *status, *(status + 1));
-                       else
-                               strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num));
-                       break;
-               case 8:
-                       spin_lock_irqsave(&card->lock, flags);
-                       card->flags &= ~ICN_FLAGS_B1ACTIVE;
-                       icn_free_queue(card, 0);
-                       card->rcvidx[0] = 0;
+                                        ICN_FLAGS_B2ACTIVE : ICN_FLAGS_B1ACTIVE);
+
+                       memset(&ncmd, 0, sizeof(ncmd));
+
+                       ncmd.driver = card->myid;
+                       ncmd.arg = channel;
+                       ncmd.command = ISDN_STAT_BHUP;
                        spin_unlock_irqrestore(&card->lock, flags);
-                       cmd.arg = 0;
-                       cmd.driver = card->myid;
-                       card->interface.statcallb(&cmd);
-                       cmd.command = ISDN_STAT_DHUP;
-                       cmd.arg = 0;
-                       cmd.driver = card->myid;
                        card->interface.statcallb(&cmd);
-                       cmd.command = ISDN_STAT_BHUP;
-                       spin_lock_irqsave(&card->lock, flags);
-                       card->flags &= ~ICN_FLAGS_B2ACTIVE;
-                       icn_free_queue(card, 1);
-                       card->rcvidx[1] = 0;
+               } else
                        spin_unlock_irqrestore(&card->lock, flags);
-                       cmd.arg = 1;
-                       cmd.driver = card->myid;
-                       card->interface.statcallb(&cmd);
-                       cmd.command = ISDN_STAT_DHUP;
-                       cmd.arg = 1;
-                       cmd.driver = card->myid;
-                       break;
+               break;
+       case 1:
+               spin_lock_irqsave(&card->lock, flags);
+               icn_free_queue(card, channel);
+               card->flags |= (channel) ?
+                       ICN_FLAGS_B2ACTIVE : ICN_FLAGS_B1ACTIVE;
+               spin_unlock_irqrestore(&card->lock, flags);
+               break;
+       case 2:
+               spin_lock_irqsave(&card->lock, flags);
+               card->flags &= ~((channel) ?
+                                ICN_FLAGS_B2ACTIVE : ICN_FLAGS_B1ACTIVE);
+               icn_free_queue(card, channel);
+               card->rcvidx[channel] = 0;
+               spin_unlock_irqrestore(&card->lock, flags);
+               break;
+       case 3:
+       {
+               char *t = status + 6;
+               char *s = strchr(t, ',');
+
+               *s++ = '\0';
+               strlcpy(cmd.parm.setup.phone, t,
+                       sizeof(cmd.parm.setup.phone));
+               s = strchr(t = s, ',');
+               *s++ = '\0';
+               if (!strlen(t))
+                       cmd.parm.setup.si1 = 0;
+               else
+                       cmd.parm.setup.si1 =
+                               simple_strtoul(t, NULL, 10);
+               s = strchr(t = s, ',');
+               *s++ = '\0';
+               if (!strlen(t))
+                       cmd.parm.setup.si2 = 0;
+               else
+                       cmd.parm.setup.si2 =
+                               simple_strtoul(t, NULL, 10);
+               strlcpy(cmd.parm.setup.eazmsn, s,
+                       sizeof(cmd.parm.setup.eazmsn));
+       }
+       cmd.parm.setup.plan = 0;
+       cmd.parm.setup.screen = 0;
+       break;
+       case 4:
+               sprintf(cmd.parm.setup.phone, "LEASED%d", card->myid);
+               sprintf(cmd.parm.setup.eazmsn, "%d", channel + 1);
+               cmd.parm.setup.si1 = 7;
+               cmd.parm.setup.si2 = 0;
+               cmd.parm.setup.plan = 0;
+               cmd.parm.setup.screen = 0;
+               break;
+       case 5:
+               strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num));
+               break;
+       case 6:
+               snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d",
+                        (int) simple_strtoul(status + 7, NULL, 16));
+               break;
+       case 7:
+               status += 3;
+               if (strlen(status) == 4)
+                       snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c",
+                                status + 2, *status, *(status + 1));
+               else
+                       strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num));
+               break;
+       case 8:
+               spin_lock_irqsave(&card->lock, flags);
+               card->flags &= ~ICN_FLAGS_B1ACTIVE;
+               icn_free_queue(card, 0);
+               card->rcvidx[0] = 0;
+               spin_unlock_irqrestore(&card->lock, flags);
+               cmd.arg = 0;
+               cmd.driver = card->myid;
+               card->interface.statcallb(&cmd);
+               cmd.command = ISDN_STAT_DHUP;
+               cmd.arg = 0;
+               cmd.driver = card->myid;
+               card->interface.statcallb(&cmd);
+               cmd.command = ISDN_STAT_BHUP;
+               spin_lock_irqsave(&card->lock, flags);
+               card->flags &= ~ICN_FLAGS_B2ACTIVE;
+               icn_free_queue(card, 1);
+               card->rcvidx[1] = 0;
+               spin_unlock_irqrestore(&card->lock, flags);
+               cmd.arg = 1;
+               cmd.driver = card->myid;
+               card->interface.statcallb(&cmd);
+               cmd.command = ISDN_STAT_DHUP;
+               cmd.arg = 1;
+               cmd.driver = card->myid;
+               break;
        }
        card->interface.statcallb(&cmd);
        return;
 }
 
 static void
-icn_putmsg(icn_card * card, unsigned char c)
+icn_putmsg(icn_card *card, unsigned char c)
 {
        ulong flags;
 
@@ -688,7 +688,7 @@ icn_polldchan(unsigned long data)
                        add_timer(&card->rb_timer);
                }
        /* schedule again */
-       mod_timer(&card->st_timer, jiffies+ICN_TIMER_DCREAD);
+       mod_timer(&card->st_timer, jiffies + ICN_TIMER_DCREAD);
        spin_unlock_irqrestore(&card->lock, flags);
 }
 
@@ -702,7 +702,7 @@ icn_polldchan(unsigned long data)
  */
 
 static int
-icn_sendbuf(int channel, int ack, struct sk_buff *skb, icn_card * card)
+icn_sendbuf(int channel, int ack, struct sk_buff *skb, icn_card *card)
 {
        int len = skb->len;
        unsigned long flags;
@@ -718,13 +718,13 @@ icn_sendbuf(int channel, int ack, struct sk_buff *skb, icn_card * card)
                        return 0;
                if (card->sndcount[channel] > ICN_MAX_SQUEUE)
                        return 0;
-               #warning TODO test headroom or use skb->nb to flag ACK
+#warning TODO test headroom or use skb->nb to flag ACK
                nskb = skb_clone(skb, GFP_ATOMIC);
                if (nskb) {
                        /* Push ACK flag as one
                         * byte in front of data.
                         */
-                       *(skb_push(nskb, 1)) = ack?1:0;
+                       *(skb_push(nskb, 1)) = ack ? 1 : 0;
                        skb_queue_tail(&card->spqueue[channel], nskb);
                        dev_kfree_skb(skb);
                } else
@@ -785,20 +785,20 @@ icn_check_loader(int cardnumber)
  */
 
 #ifdef BOOT_DEBUG
-#define SLEEP(sec) { \
-int slsec = sec; \
-  printk(KERN_DEBUG "SLEEP(%d)\n",slsec); \
-  while (slsec) { \
-    msleep_interruptible(1000); \
-    slsec--; \
-  } \
-}
+#define SLEEP(sec) {                                           \
+               int slsec = sec;                                \
+               printk(KERN_DEBUG "SLEEP(%d)\n", slsec);        \
+               while (slsec) {                                 \
+                       msleep_interruptible(1000);             \
+                       slsec--;                                \
+               }                                               \
+       }
 #else
 #define SLEEP(sec)
 #endif
 
 static int
-icn_loadboot(u_char __user * buffer, icn_card * card)
+icn_loadboot(u_char __user *buffer, icn_card *card)
 {
        int ret;
        u_char *codebuf;
@@ -896,14 +896,14 @@ icn_loadboot(u_char __user * buffer, icn_card * card)
        SLEEP(1);
        ret = (icn_check_loader(1));
 
- out_kfree:
+out_kfree:
        kfree(codebuf);
- out:
+out:
        return ret;
 }
 
 static int
-icn_loadproto(u_char __user * buffer, icn_card * card)
+icn_loadproto(u_char __user *buffer, icn_card *card)
 {
        register u_char __user *p = buffer;
        u_char codebuf[256];
@@ -1004,7 +1004,7 @@ icn_loadproto(u_char __user * buffer, icn_card * card)
 
 /* Read the Status-replies from the Interface */
 static int
-icn_readstatus(u_char __user *buf, int len, icn_card * card)
+icn_readstatus(u_char __user *buf, int len, icn_card *card)
 {
        int count;
        u_char __user *p;
@@ -1022,7 +1022,7 @@ icn_readstatus(u_char __user *buf, int len, icn_card * card)
 
 /* Put command-strings into the command-queue of the Interface */
 static int
-icn_writecmd(const u_char * buf, int len, int user, icn_card * card)
+icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
 {
        int mch = card->secondhalf ? 2 : 0;
        int pp;
@@ -1057,9 +1057,9 @@ icn_writecmd(const u_char * buf, int len, int user, icn_card * card)
 
                icn_putmsg(card, '>');
                for (p = msg, pp = readb(&cmd_i), i = count; i > 0; i--, p++, pp
-                    ++) {
+                            ++) {
                        writeb((*p == '\n') ? 0xff : *p,
-                          &dev.shmem->comm_buffers.pcio_buf[pp & 0xff]);
+                              &dev.shmem->comm_buffers.pcio_buf[pp & 0xff]);
                        len--;
                        xcount++;
                        icn_putmsg(card, *p);
@@ -1093,7 +1093,7 @@ icn_writecmd(const u_char * buf, int len, int user, icn_card * card)
  * Delete card's pending timers, send STOP to linklevel
  */
 static void
-icn_stopcard(icn_card * card)
+icn_stopcard(icn_card *card)
 {
        unsigned long flags;
        isdn_ctrl cmd;
@@ -1150,7 +1150,7 @@ icn_disable_cards(void)
 }
 
 static int
-icn_command(isdn_ctrl * c, icn_card * card)
+icn_command(isdn_ctrl *c, icn_card *card)
 {
        ulong a;
        ulong flags;
@@ -1161,275 +1161,275 @@ icn_command(isdn_ctrl * c, icn_card * card)
        char __user *arg;
 
        switch (c->command) {
-               case ISDN_CMD_IOCTL:
-                       memcpy(&a, c->parm.num, sizeof(ulong));
-                       arg = (char __user *)a;
-                       switch (c->arg) {
-                               case ICN_IOCTL_SETMMIO:
-                                       if (dev.memaddr != (a & 0x0ffc000)) {
-                                               if (!request_mem_region(a & 0x0ffc000, 0x4000, "icn-isdn (all cards)")) {
-                                                       printk(KERN_WARNING
-                                                              "icn: memory at 0x%08lx in use.\n",
-                                                              a & 0x0ffc000);
-                                                       return -EINVAL;
-                                               }
-                                               release_mem_region(a & 0x0ffc000, 0x4000);
-                                               icn_stopallcards();
-                                               spin_lock_irqsave(&card->lock, flags);
-                                               if (dev.mvalid) {
-                                                       iounmap(dev.shmem);
-                                                       release_mem_region(dev.memaddr, 0x4000);
-                                               }
-                                               dev.mvalid = 0;
-                                               dev.memaddr = a & 0x0ffc000;
-                                               spin_unlock_irqrestore(&card->lock, flags);
-                                               printk(KERN_INFO
-                                                      "icn: (%s) mmio set to 0x%08lx\n",
-                                                      CID,
-                                                      dev.memaddr);
-                                       }
-                                       break;
-                               case ICN_IOCTL_GETMMIO:
-                                       return (long) dev.memaddr;
-                               case ICN_IOCTL_SETPORT:
-                                       if (a == 0x300 || a == 0x310 || a == 0x320 || a == 0x330
-                                           || a == 0x340 || a == 0x350 || a == 0x360 ||
-                                           a == 0x308 || a == 0x318 || a == 0x328 || a == 0x338
-                                           || a == 0x348 || a == 0x358 || a == 0x368) {
-                                               if (card->port != (unsigned short) a) {
-                                                       if (!request_region((unsigned short) a, ICN_PORTLEN, "icn-isdn")) {
-                                                               printk(KERN_WARNING
-                                                                      "icn: (%s) ports 0x%03x-0x%03x in use.\n",
-                                                                      CID, (int) a, (int) a + ICN_PORTLEN);
-                                                               return -EINVAL;
-                                                       }
-                                                       release_region((unsigned short) a, ICN_PORTLEN);
-                                                       icn_stopcard(card);
-                                                       spin_lock_irqsave(&card->lock, flags);
-                                                       if (card->rvalid)
-                                                               release_region(card->port, ICN_PORTLEN);
-                                                       card->port = (unsigned short) a;
-                                                       card->rvalid = 0;
-                                                       if (card->doubleS0) {
-                                                               card->other->port = (unsigned short) a;
-                                                               card->other->rvalid = 0;
-                                                       }
-                                                       spin_unlock_irqrestore(&card->lock, flags);
-                                                       printk(KERN_INFO
-                                                              "icn: (%s) port set to 0x%03x\n",
-                                                       CID, card->port);
-                                               }
-                                       } else
+       case ISDN_CMD_IOCTL:
+               memcpy(&a, c->parm.num, sizeof(ulong));
+               arg = (char __user *)a;
+               switch (c->arg) {
+               case ICN_IOCTL_SETMMIO:
+                       if (dev.memaddr != (a & 0x0ffc000)) {
+                               if (!request_mem_region(a & 0x0ffc000, 0x4000, "icn-isdn (all cards)")) {
+                                       printk(KERN_WARNING
+                                              "icn: memory at 0x%08lx in use.\n",
+                                              a & 0x0ffc000);
+                                       return -EINVAL;
+                               }
+                               release_mem_region(a & 0x0ffc000, 0x4000);
+                               icn_stopallcards();
+                               spin_lock_irqsave(&card->lock, flags);
+                               if (dev.mvalid) {
+                                       iounmap(dev.shmem);
+                                       release_mem_region(dev.memaddr, 0x4000);
+                               }
+                               dev.mvalid = 0;
+                               dev.memaddr = a & 0x0ffc000;
+                               spin_unlock_irqrestore(&card->lock, flags);
+                               printk(KERN_INFO
+                                      "icn: (%s) mmio set to 0x%08lx\n",
+                                      CID,
+                                      dev.memaddr);
+                       }
+                       break;
+               case ICN_IOCTL_GETMMIO:
+                       return (long) dev.memaddr;
+               case ICN_IOCTL_SETPORT:
+                       if (a == 0x300 || a == 0x310 || a == 0x320 || a == 0x330
+                           || a == 0x340 || a == 0x350 || a == 0x360 ||
+                           a == 0x308 || a == 0x318 || a == 0x328 || a == 0x338
+                           || a == 0x348 || a == 0x358 || a == 0x368) {
+                               if (card->port != (unsigned short) a) {
+                                       if (!request_region((unsigned short) a, ICN_PORTLEN, "icn-isdn")) {
+                                               printk(KERN_WARNING
+                                                      "icn: (%s) ports 0x%03x-0x%03x in use.\n",
+                                                      CID, (int) a, (int) a + ICN_PORTLEN);
                                                return -EINVAL;
-                                       break;
-                               case ICN_IOCTL_GETPORT:
-                                       return (int) card->port;
-                               case ICN_IOCTL_GETDOUBLE:
-                                       return (int) card->doubleS0;
-                               case ICN_IOCTL_DEBUGVAR:
-                                       if (copy_to_user(arg,
-                                                        &card,
-                                                        sizeof(ulong)))
-                                               return -EFAULT;
-                                       a += sizeof(ulong);
-                                       {
-                                               ulong l = (ulong) & dev;
-                                               if (copy_to_user(arg,
-                                                                &l,
-                                                                sizeof(ulong)))
-                                                       return -EFAULT;
                                        }
-                                       return 0;
-                               case ICN_IOCTL_LOADBOOT:
-                                       if (dev.firstload) {
-                                               icn_disable_cards();
-                                               dev.firstload = 0;
-                                       }
-                                       icn_stopcard(card);
-                                       return (icn_loadboot(arg, card));
-                               case ICN_IOCTL_LOADPROTO:
+                                       release_region((unsigned short) a, ICN_PORTLEN);
                                        icn_stopcard(card);
-                                       if ((i = (icn_loadproto(arg, card))))
-                                               return i;
-                                       if (card->doubleS0)
-                                               i = icn_loadproto(arg + ICN_CODE_STAGE2, card->other);
-                                       return i;
-                                       break;
-                               case ICN_IOCTL_ADDCARD:
-                                       if (!dev.firstload)
-                                               return -EBUSY;
-                                       if (copy_from_user(&cdef,
-                                                          arg,
-                                                          sizeof(cdef)))
-                                               return -EFAULT;
-                                       return (icn_addcard(cdef.port, cdef.id1, cdef.id2));
-                                       break;
-                               case ICN_IOCTL_LEASEDCFG:
-                                       if (a) {
-                                               if (!card->leased) {
-                                                       card->leased = 1;
-                                                       while (card->ptype == ISDN_PTYPE_UNKNOWN) {
-                                                               msleep_interruptible(ICN_BOOT_TIMEOUT1);
-                                                       }
-                                                       msleep_interruptible(ICN_BOOT_TIMEOUT1);
-                                                       sprintf(cbuf, "00;FV2ON\n01;EAZ%c\n02;EAZ%c\n",
-                                                               (a & 1)?'1':'C', (a & 2)?'2':'C');
-                                                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
-                                                       printk(KERN_INFO
-                                                              "icn: (%s) Leased-line mode enabled\n",
-                                                              CID);
-                                                       cmd.command = ISDN_STAT_RUN;
-                                                       cmd.driver = card->myid;
-                                                       cmd.arg = 0;
-                                                       card->interface.statcallb(&cmd);
-                                               }
-                                       } else {
-                                               if (card->leased) {
-                                                       card->leased = 0;
-                                                       sprintf(cbuf, "00;FV2OFF\n");
-                                                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
-                                                       printk(KERN_INFO
-                                                              "icn: (%s) Leased-line mode disabled\n",
-                                                              CID);
-                                                       cmd.command = ISDN_STAT_RUN;
-                                                       cmd.driver = card->myid;
-                                                       cmd.arg = 0;
-                                                       card->interface.statcallb(&cmd);
-                                               }
+                                       spin_lock_irqsave(&card->lock, flags);
+                                       if (card->rvalid)
+                                               release_region(card->port, ICN_PORTLEN);
+                                       card->port = (unsigned short) a;
+                                       card->rvalid = 0;
+                                       if (card->doubleS0) {
+                                               card->other->port = (unsigned short) a;
+                                               card->other->rvalid = 0;
                                        }
-                                       return 0;
-                               default:
-                                       return -EINVAL;
-                       }
+                                       spin_unlock_irqrestore(&card->lock, flags);
+                                       printk(KERN_INFO
+                                              "icn: (%s) port set to 0x%03x\n",
+                                              CID, card->port);
+                               }
+                       } else
+                               return -EINVAL;
                        break;
-               case ISDN_CMD_DIAL:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (card->leased)
-                               break;
-                       if ((c->arg & 255) < ICN_BCH) {
-                               char *p;
-                               char dial[50];
-                               char dcode[4];
-
-                               a = c->arg;
-                               p = c->parm.setup.phone;
-                               if (*p == 's' || *p == 'S') {
-                                       /* Dial for SPV */
-                                       p++;
-                                       strcpy(dcode, "SCA");
-                               } else
-                                       /* Normal Dial */
-                                       strcpy(dcode, "CAL");
-                               strcpy(dial, p);
-                               sprintf(cbuf, "%02d;D%s_R%s,%02d,%02d,%s\n", (int) (a + 1),
-                                       dcode, dial, c->parm.setup.si1,
-                               c->parm.setup.si2, c->parm.setup.eazmsn);
-                               i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               case ICN_IOCTL_GETPORT:
+                       return (int) card->port;
+               case ICN_IOCTL_GETDOUBLE:
+                       return (int) card->doubleS0;
+               case ICN_IOCTL_DEBUGVAR:
+                       if (copy_to_user(arg,
+                                        &card,
+                                        sizeof(ulong)))
+                               return -EFAULT;
+                       a += sizeof(ulong);
+                       {
+                               ulong l = (ulong)&dev;
+                               if (copy_to_user(arg,
+                                                &l,
+                                                sizeof(ulong)))
+                                       return -EFAULT;
                        }
+                       return 0;
+               case ICN_IOCTL_LOADBOOT:
+                       if (dev.firstload) {
+                               icn_disable_cards();
+                               dev.firstload = 0;
+                       }
+                       icn_stopcard(card);
+                       return (icn_loadboot(arg, card));
+               case ICN_IOCTL_LOADPROTO:
+                       icn_stopcard(card);
+                       if ((i = (icn_loadproto(arg, card))))
+                               return i;
+                       if (card->doubleS0)
+                               i = icn_loadproto(arg + ICN_CODE_STAGE2, card->other);
+                       return i;
+                       break;
+               case ICN_IOCTL_ADDCARD:
+                       if (!dev.firstload)
+                               return -EBUSY;
+                       if (copy_from_user(&cdef,
+                                          arg,
+                                          sizeof(cdef)))
+                               return -EFAULT;
+                       return (icn_addcard(cdef.port, cdef.id1, cdef.id2));
                        break;
-               case ISDN_CMD_ACCEPTD:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (c->arg < ICN_BCH) {
-                               a = c->arg + 1;
-                               if (card->fw_rev >= 300) {
-                                       switch (card->l2_proto[a - 1]) {
-                                               case ISDN_PROTO_L2_X75I:
-                                                       sprintf(cbuf, "%02d;BX75\n", (int) a);
-                                                       break;
-                                               case ISDN_PROTO_L2_HDLC:
-                                                       sprintf(cbuf, "%02d;BTRA\n", (int) a);
-                                                       break;
+               case ICN_IOCTL_LEASEDCFG:
+                       if (a) {
+                               if (!card->leased) {
+                                       card->leased = 1;
+                                       while (card->ptype == ISDN_PTYPE_UNKNOWN) {
+                                               msleep_interruptible(ICN_BOOT_TIMEOUT1);
                                        }
+                                       msleep_interruptible(ICN_BOOT_TIMEOUT1);
+                                       sprintf(cbuf, "00;FV2ON\n01;EAZ%c\n02;EAZ%c\n",
+                                               (a & 1) ? '1' : 'C', (a & 2) ? '2' : 'C');
                                        i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+                                       printk(KERN_INFO
+                                              "icn: (%s) Leased-line mode enabled\n",
+                                              CID);
+                                       cmd.command = ISDN_STAT_RUN;
+                                       cmd.driver = card->myid;
+                                       cmd.arg = 0;
+                                       card->interface.statcallb(&cmd);
+                               }
+                       } else {
+                               if (card->leased) {
+                                       card->leased = 0;
+                                       sprintf(cbuf, "00;FV2OFF\n");
+                                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+                                       printk(KERN_INFO
+                                              "icn: (%s) Leased-line mode disabled\n",
+                                              CID);
+                                       cmd.command = ISDN_STAT_RUN;
+                                       cmd.driver = card->myid;
+                                       cmd.arg = 0;
+                                       card->interface.statcallb(&cmd);
                                }
-                               sprintf(cbuf, "%02d;DCON_R\n", (int) a);
-                               i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
                        }
+                       return 0;
+               default:
+                       return -EINVAL;
+               }
+               break;
+       case ISDN_CMD_DIAL:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (card->leased)
                        break;
-               case ISDN_CMD_ACCEPTB:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (c->arg < ICN_BCH) {
-                               a = c->arg + 1;
-                               if (card->fw_rev >= 300)
-                                       switch (card->l2_proto[a - 1]) {
-                                               case ISDN_PROTO_L2_X75I:
-                                                       sprintf(cbuf, "%02d;BCON_R,BX75\n", (int) a);
-                                                       break;
-                                               case ISDN_PROTO_L2_HDLC:
-                                                       sprintf(cbuf, "%02d;BCON_R,BTRA\n", (int) a);
-                                                       break;
-                               } else
-                                       sprintf(cbuf, "%02d;BCON_R\n", (int) a);
+               if ((c->arg & 255) < ICN_BCH) {
+                       char *p;
+                       char dial[50];
+                       char dcode[4];
+
+                       a = c->arg;
+                       p = c->parm.setup.phone;
+                       if (*p == 's' || *p == 'S') {
+                               /* Dial for SPV */
+                               p++;
+                               strcpy(dcode, "SCA");
+                       } else
+                               /* Normal Dial */
+                               strcpy(dcode, "CAL");
+                       strcpy(dial, p);
+                       sprintf(cbuf, "%02d;D%s_R%s,%02d,%02d,%s\n", (int) (a + 1),
+                               dcode, dial, c->parm.setup.si1,
+                               c->parm.setup.si2, c->parm.setup.eazmsn);
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_ACCEPTD:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (c->arg < ICN_BCH) {
+                       a = c->arg + 1;
+                       if (card->fw_rev >= 300) {
+                               switch (card->l2_proto[a - 1]) {
+                               case ISDN_PROTO_L2_X75I:
+                                       sprintf(cbuf, "%02d;BX75\n", (int) a);
+                                       break;
+                               case ISDN_PROTO_L2_HDLC:
+                                       sprintf(cbuf, "%02d;BTRA\n", (int) a);
+                                       break;
+                               }
                                i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
                        }
+                       sprintf(cbuf, "%02d;DCON_R\n", (int) a);
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_ACCEPTB:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (c->arg < ICN_BCH) {
+                       a = c->arg + 1;
+                       if (card->fw_rev >= 300)
+                               switch (card->l2_proto[a - 1]) {
+                               case ISDN_PROTO_L2_X75I:
+                                       sprintf(cbuf, "%02d;BCON_R,BX75\n", (int) a);
+                                       break;
+                               case ISDN_PROTO_L2_HDLC:
+                                       sprintf(cbuf, "%02d;BCON_R,BTRA\n", (int) a);
+                                       break;
+                               } else
+                               sprintf(cbuf, "%02d;BCON_R\n", (int) a);
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_HANGUP:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (c->arg < ICN_BCH) {
+                       a = c->arg + 1;
+                       sprintf(cbuf, "%02d;BDIS_R\n%02d;DDIS_R\n", (int) a, (int) a);
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_SETEAZ:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (card->leased)
                        break;
-               case ISDN_CMD_HANGUP:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (c->arg < ICN_BCH) {
-                               a = c->arg + 1;
-                               sprintf(cbuf, "%02d;BDIS_R\n%02d;DDIS_R\n", (int) a, (int) a);
-                               i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
-                       }
+               if (c->arg < ICN_BCH) {
+                       a = c->arg + 1;
+                       if (card->ptype == ISDN_PTYPE_EURO) {
+                               sprintf(cbuf, "%02d;MS%s%s\n", (int) a,
+                                       c->parm.num[0] ? "N" : "ALL", c->parm.num);
+                       } else
+                               sprintf(cbuf, "%02d;EAZ%s\n", (int) a,
+                                       c->parm.num[0] ? (char *)(c->parm.num) : "0123456789");
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_CLREAZ:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (card->leased)
                        break;
-               case ISDN_CMD_SETEAZ:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (card->leased)
+               if (c->arg < ICN_BCH) {
+                       a = c->arg + 1;
+                       if (card->ptype == ISDN_PTYPE_EURO)
+                               sprintf(cbuf, "%02d;MSNC\n", (int) a);
+                       else
+                               sprintf(cbuf, "%02d;EAZC\n", (int) a);
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_SETL2:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               if ((c->arg & 255) < ICN_BCH) {
+                       a = c->arg;
+                       switch (a >> 8) {
+                       case ISDN_PROTO_L2_X75I:
+                               sprintf(cbuf, "%02d;BX75\n", (int) (a & 255) + 1);
                                break;
-                       if (c->arg < ICN_BCH) {
-                               a = c->arg + 1;
-                               if (card->ptype == ISDN_PTYPE_EURO) {
-                                       sprintf(cbuf, "%02d;MS%s%s\n", (int) a,
-                                               c->parm.num[0] ? "N" : "ALL", c->parm.num);
-                               } else
-                                       sprintf(cbuf, "%02d;EAZ%s\n", (int) a,
-                                               c->parm.num[0] ? (char *)(c->parm.num) : "0123456789");
-                               i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
-                       }
-                       break;
-               case ISDN_CMD_CLREAZ:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (card->leased)
+                       case ISDN_PROTO_L2_HDLC:
+                               sprintf(cbuf, "%02d;BTRA\n", (int) (a & 255) + 1);
                                break;
-                       if (c->arg < ICN_BCH) {
-                               a = c->arg + 1;
-                               if (card->ptype == ISDN_PTYPE_EURO)
-                                       sprintf(cbuf, "%02d;MSNC\n", (int) a);
-                               else
-                                       sprintf(cbuf, "%02d;EAZC\n", (int) a);
-                               i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
-                       }
-                       break;
-               case ISDN_CMD_SETL2:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if ((c->arg & 255) < ICN_BCH) {
-                               a = c->arg;
-                               switch (a >> 8) {
-                                       case ISDN_PROTO_L2_X75I:
-                                               sprintf(cbuf, "%02d;BX75\n", (int) (a & 255) + 1);
-                                               break;
-                                       case ISDN_PROTO_L2_HDLC:
-                                               sprintf(cbuf, "%02d;BTRA\n", (int) (a & 255) + 1);
-                                               break;
-                                       default:
-                                               return -EINVAL;
-                               }
-                               i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
-                               card->l2_proto[a & 255] = (a >> 8);
+                       default:
+                               return -EINVAL;
                        }
-                       break;
-               case ISDN_CMD_SETL3:
-                       if (!(card->flags & ICN_FLAGS_RUNNING))
-                               return -ENODEV;
-                       return 0;
-               default:
-                       return -EINVAL;
+                       i = icn_writecmd(cbuf, strlen(cbuf), 0, card);
+                       card->l2_proto[a & 255] = (a >> 8);
+               }
+               break;
+       case ISDN_CMD_SETL3:
+               if (!(card->flags & ICN_FLAGS_RUNNING))
+                       return -ENODEV;
+               return 0;
+       default:
+               return -EINVAL;
        }
        return 0;
 }
@@ -1454,7 +1454,7 @@ icn_findcard(int driverid)
  * Wrapper functions for interface to linklevel
  */
 static int
-if_command(isdn_ctrl * c)
+if_command(isdn_ctrl *c)
 {
        icn_card *card = icn_findcard(c->driver);
 
@@ -1537,9 +1537,9 @@ icn_initcard(int port, char *id)
        card->interface.writecmd = if_writecmd;
        card->interface.readstat = if_readstatus;
        card->interface.features = ISDN_FEATURE_L2_X75I |
-           ISDN_FEATURE_L2_HDLC |
-           ISDN_FEATURE_L3_TRANS |
-           ISDN_FEATURE_P_UNKNOWN;
+               ISDN_FEATURE_L2_HDLC |
+               ISDN_FEATURE_L3_TRANS |
+               ISDN_FEATURE_P_UNKNOWN;
        card->ptype = ISDN_PTYPE_UNKNOWN;
        strlcpy(card->interface.id, id, sizeof(card->interface.id));
        card->msg_buf_write = card->msg_buf;
@@ -1619,7 +1619,7 @@ icn_setup(char *line)
                        icn_id2 = sid2;
                }
        }
-       return(1);
+       return (1);
 }
 __setup("icn=", icn_setup);
 #endif /* MODULE */
index 7d7245f..b713466 100644 (file)
@@ -54,7 +54,7 @@ typedef struct icn_cdef {
 
 /* some useful macros for debugging */
 #ifdef ICN_DEBUG_PORT
-#define OUTB_P(v,p) {printk(KERN_DEBUG "icn: outb_p(0x%02x,0x%03x)\n",v,p); outb_p(v,p);}
+#define OUTB_P(v, p) {printk(KERN_DEBUG "icn: outb_p(0x%02x,0x%03x)\n", v, p); outb_p(v, p);}
 #else
 #define OUTB_P outb
 #endif
@@ -71,8 +71,8 @@ typedef struct icn_cdef {
 
 #define ICN_BOOT_TIMEOUT1  1000 /* Delay for Boot-download (msecs)         */
 
-#define ICN_TIMER_BCREAD (HZ/100)      /* B-Channel poll-cycle                    */
-#define ICN_TIMER_DCREAD (HZ/2) /* D-Channel poll-cycle                    */
+#define ICN_TIMER_BCREAD (HZ / 100)    /* B-Channel poll-cycle                    */
+#define ICN_TIMER_DCREAD (HZ / 2) /* D-Channel poll-cycle                    */
 
 #define ICN_CODE_STAGE1 4096    /* Size of bootcode                        */
 #define ICN_CODE_STAGE2 65536   /* Size of protocol-code                   */
@@ -140,7 +140,7 @@ typedef struct icn_card {
        int myid;               /* Driver-Nr. assigned by linklevel */
        int rvalid;             /* IO-portregion has been requested */
        int leased;             /* Flag: This Adapter is connected  */
-                               /*       to a leased line           */
+                               /*       to a leased line           */
        unsigned short flags;   /* Statusflags                      */
        int doubleS0;           /* Flag: ICN4B                      */
        int secondhalf;         /* Flag: Second half of a doubleS0  */
@@ -197,16 +197,16 @@ static icn_dev dev;
 
 /* Macros for accessing ports */
 #define ICN_CFG    (card->port)
-#define ICN_MAPRAM (card->port+1)
-#define ICN_RUN    (card->port+2)
-#define ICN_BANK   (card->port+3)
+#define ICN_MAPRAM (card->port + 1)
+#define ICN_RUN    (card->port + 2)
+#define ICN_BANK   (card->port + 3)
 
 /* Return true, if there is a free transmit-buffer */
-#define sbfree (((readb(&dev.shmem->data_control.scns)+1) & 0xf) != \
+#define sbfree (((readb(&dev.shmem->data_control.scns) + 1) & 0xf) !=  \
                readb(&dev.shmem->data_control.scnr))
 
 /* Switch to next transmit-buffer */
-#define sbnext (writeb((readb(&dev.shmem->data_control.scns)+1) & 0xf, \
+#define sbnext (writeb((readb(&dev.shmem->data_control.scns) + 1) & 0xf,       \
                       &dev.shmem->data_control.scns))
 
 /* Shortcuts for transmit-buffer-access */
@@ -220,7 +220,7 @@ static icn_dev dev;
                readb(&dev.shmem->data_control.ecns))
 
 /* Switch to next receive-buffer */
-#define rbnext (writeb((readb(&dev.shmem->data_control.ecnr)+1) & 0xf, \
+#define rbnext (writeb((readb(&dev.shmem->data_control.ecnr) + 1) & 0xf,       \
                       &dev.shmem->data_control.ecnr))
 
 /* Shortcuts for receive-buffer-access */
@@ -234,18 +234,18 @@ static icn_dev dev;
 #define cmd_i (dev.shmem->comm_control.pcio_i)
 
 /* Return free space in command-buffer */
-#define cmd_free ((readb(&cmd_i)>=readb(&cmd_o))? \
-                 0x100-readb(&cmd_i)+readb(&cmd_o): \
-                 readb(&cmd_o)-readb(&cmd_i))
+#define cmd_free ((readb(&cmd_i) >= readb(&cmd_o)) ?           \
+                 0x100 - readb(&cmd_i) + readb(&cmd_o) :       \
+                 readb(&cmd_o) - readb(&cmd_i))
 
 /* Shortcuts for message-buffer-access */
 #define msg_o (dev.shmem->comm_control.iopc_o)
 #define msg_i (dev.shmem->comm_control.iopc_i)
 
 /* Return length of Message, if avail. */
-#define msg_avail ((readb(&msg_o)>readb(&msg_i))? \
-                  0x100-readb(&msg_o)+readb(&msg_i): \
-                  readb(&msg_i)-readb(&msg_o))
+#define msg_avail ((readb(&msg_o) > readb(&msg_i)) ?           \
+                  0x100 - readb(&msg_o) + readb(&msg_i) :      \
+                  readb(&msg_i) - readb(&msg_o))
 
 #define CID (card->interface.id)
 
index d497db0..5405ec6 100644 (file)
@@ -35,7 +35,7 @@ static int isdnloop_addcard(char *);
  *   channel = channel number
  */
 static void
-isdnloop_free_queue(isdnloop_card * card, int channel)
+isdnloop_free_queue(isdnloop_card *card, int channel)
 {
        struct sk_buff_head *queue = &card->bqueue[channel];
 
@@ -52,7 +52,7 @@ isdnloop_free_queue(isdnloop_card * card, int channel)
  *   ch   = channel number (0-based)
  */
 static void
-isdnloop_bchan_send(isdnloop_card * card, int ch)
+isdnloop_bchan_send(isdnloop_card *card, int ch)
 {
        isdnloop_card *rcard = card->rcard[ch];
        int rch = card->rch[ch], len, ack;
@@ -66,7 +66,7 @@ isdnloop_bchan_send(isdnloop_card * card, int ch)
                        ack = *(skb->head); /* used as scratch area */
                        cmd.driver = card->myid;
                        cmd.arg = ch;
-                       if (rcard){
+                       if (rcard) {
                                rcard->interface.rcvcallb_skb(rcard->myid, rch, skb);
                        } else {
                                printk(KERN_WARNING "isdnloop: no rcard, skb dropped\n");
@@ -119,7 +119,7 @@ isdnloop_pollbchan(unsigned long data)
  *   cmd   = pointer to struct to be filled.
  */
 static void
-isdnloop_parse_setup(char *setup, isdn_ctrl * cmd)
+isdnloop_parse_setup(char *setup, isdn_ctrl *cmd)
 {
        char *t = setup;
        char *s = strchr(t, ',');
@@ -138,7 +138,7 @@ isdnloop_parse_setup(char *setup, isdn_ctrl * cmd)
                cmd->parm.setup.si2 = 0;
        else
                cmd->parm.setup.si2 =
-                   simple_strtoul(t, NULL, 10);
+                       simple_strtoul(t, NULL, 10);
        strlcpy(cmd->parm.setup.eazmsn, s, sizeof(cmd->parm.setup.eazmsn));
        cmd->parm.setup.plan = 0;
        cmd->parm.setup.screen = 0;
@@ -166,7 +166,7 @@ static isdnloop_stat isdnloop_stat_table[] =
        {"E_L1: ACT FAIL", ISDN_STAT_BHUP,  8}, /* Layer-1 activation failed  */
        {"E_L2: DATA LIN", ISDN_STAT_BHUP,  8}, /* Layer-2 data link lost     */
        {"E_L1: ACTIVATION FAILED",
-                          ISDN_STAT_BHUP,  8},         /* Layer-1 activation failed  */
+        ISDN_STAT_BHUP,  8},         /* Layer-1 activation failed  */
        {NULL, 0, -1}
 };
 /* *INDENT-ON* */
@@ -183,7 +183,7 @@ static isdnloop_stat isdnloop_stat_table[] =
  *   card    = card where message comes from.
  */
 static void
-isdnloop_parse_status(u_char * status, int channel, isdnloop_card * card)
+isdnloop_parse_status(u_char *status, int channel, isdnloop_card *card)
 {
        isdnloop_stat *s = isdnloop_stat_table;
        int action = -1;
@@ -202,69 +202,69 @@ isdnloop_parse_status(u_char * status, int channel, isdnloop_card * card)
        cmd.driver = card->myid;
        cmd.arg = channel;
        switch (action) {
-               case 1:
-                       /* BCON_x */
-                       card->flags |= (channel) ?
-                           ISDNLOOP_FLAGS_B2ACTIVE : ISDNLOOP_FLAGS_B1ACTIVE;
-                       break;
-               case 2:
-                       /* BDIS_x */
-                       card->flags &= ~((channel) ?
-                                        ISDNLOOP_FLAGS_B2ACTIVE : ISDNLOOP_FLAGS_B1ACTIVE);
-                       isdnloop_free_queue(card, channel);
-                       break;
-               case 3:
-                       /* DCAL_I and DSCA_I */
-                       isdnloop_parse_setup(status + 6, &cmd);
-                       break;
-               case 4:
-                       /* FCALL */
-                       sprintf(cmd.parm.setup.phone, "LEASED%d", card->myid);
-                       sprintf(cmd.parm.setup.eazmsn, "%d", channel + 1);
-                       cmd.parm.setup.si1 = 7;
-                       cmd.parm.setup.si2 = 0;
-                       cmd.parm.setup.plan = 0;
-                       cmd.parm.setup.screen = 0;
-                       break;
-               case 5:
-                       /* CIF */
-                       strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num));
-                       break;
-               case 6:
-                       /* AOC */
-                       snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d",
-                            (int) simple_strtoul(status + 7, NULL, 16));
-                       break;
-               case 7:
-                       /* CAU */
-                       status += 3;
-                       if (strlen(status) == 4)
-                               snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c",
-                                    status + 2, *status, *(status + 1));
-                       else
-                               strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num));
-                       break;
-               case 8:
-                       /* Misc Errors on L1 and L2 */
-                       card->flags &= ~ISDNLOOP_FLAGS_B1ACTIVE;
-                       isdnloop_free_queue(card, 0);
-                       cmd.arg = 0;
-                       cmd.driver = card->myid;
-                       card->interface.statcallb(&cmd);
-                       cmd.command = ISDN_STAT_DHUP;
-                       cmd.arg = 0;
-                       cmd.driver = card->myid;
-                       card->interface.statcallb(&cmd);
-                       cmd.command = ISDN_STAT_BHUP;
-                       card->flags &= ~ISDNLOOP_FLAGS_B2ACTIVE;
-                       isdnloop_free_queue(card, 1);
-                       cmd.arg = 1;
-                       cmd.driver = card->myid;
-                       card->interface.statcallb(&cmd);
-                       cmd.command = ISDN_STAT_DHUP;
-                       cmd.arg = 1;
-                       cmd.driver = card->myid;
-                       break;
+       case 1:
+               /* BCON_x */
+               card->flags |= (channel) ?
+                       ISDNLOOP_FLAGS_B2ACTIVE : ISDNLOOP_FLAGS_B1ACTIVE;
+               break;
+       case 2:
+               /* BDIS_x */
+               card->flags &= ~((channel) ?
+                                ISDNLOOP_FLAGS_B2ACTIVE : ISDNLOOP_FLAGS_B1ACTIVE);
+               isdnloop_free_queue(card, channel);
+               break;
+       case 3:
+               /* DCAL_I and DSCA_I */
+               isdnloop_parse_setup(status + 6, &cmd);
+               break;
+       case 4:
+               /* FCALL */
+               sprintf(cmd.parm.setup.phone, "LEASED%d", card->myid);
+               sprintf(cmd.parm.setup.eazmsn, "%d", channel + 1);
+               cmd.parm.setup.si1 = 7;
+               cmd.parm.setup.si2 = 0;
+               cmd.parm.setup.plan = 0;
+               cmd.parm.setup.screen = 0;
+               break;
+       case 5:
+               /* CIF */
+               strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num));
+               break;
+       case 6:
+               /* AOC */
+               snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d",
+                        (int) simple_strtoul(status + 7, NULL, 16));
+               break;
+       case 7:
+               /* CAU */
+               status += 3;
+               if (strlen(status) == 4)
+                       snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c",
+                                status + 2, *status, *(status + 1));
+               else
+                       strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num));
+               break;
+       case 8:
+               /* Misc Errors on L1 and L2 */
+               card->flags &= ~ISDNLOOP_FLAGS_B1ACTIVE;
+               isdnloop_free_queue(card, 0);
+               cmd.arg = 0;
+               cmd.driver = card->myid;
+               card->interface.statcallb(&cmd);
+               cmd.command = ISDN_STAT_DHUP;
+               cmd.arg = 0;
+               cmd.driver = card->myid;
+               card->interface.statcallb(&cmd);
+               cmd.command = ISDN_STAT_BHUP;
+               card->flags &= ~ISDNLOOP_FLAGS_B2ACTIVE;
+               isdnloop_free_queue(card, 1);
+               cmd.arg = 1;
+               cmd.driver = card->myid;
+               card->interface.statcallb(&cmd);
+               cmd.command = ISDN_STAT_DHUP;
+               cmd.arg = 1;
+               cmd.driver = card->myid;
+               break;
        }
        card->interface.statcallb(&cmd);
 }
@@ -277,7 +277,7 @@ isdnloop_parse_status(u_char * status, int channel, isdnloop_card * card)
  *   c    = char to store.
  */
 static void
-isdnloop_putmsg(isdnloop_card * card, unsigned char c)
+isdnloop_putmsg(isdnloop_card *card, unsigned char c)
 {
        ulong flags;
 
@@ -335,7 +335,7 @@ isdnloop_polldchan(unsigned long data)
                        card->imsg[card->iptr] = 0;
                        card->iptr = 0;
                        if (card->imsg[0] == '0' && card->imsg[1] >= '0' &&
-                         card->imsg[1] <= '2' && card->imsg[2] == ';') {
+                           card->imsg[1] <= '2' && card->imsg[2] == ';') {
                                ch = (card->imsg[1] - '0') - 1;
                                p = &card->imsg[3];
                                isdnloop_parse_status(p, ch, card);
@@ -397,7 +397,7 @@ isdnloop_polldchan(unsigned long data)
  *   Number of bytes transferred, -E??? on error
  */
 static int
-isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card * card)
+isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card *card)
 {
        int len = skb->len;
        unsigned long flags;
@@ -440,7 +440,7 @@ isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card * card)
  *   number of bytes actually transferred.
  */
 static int
-isdnloop_readstatus(u_char __user *buf, int len, isdnloop_card * card)
+isdnloop_readstatus(u_char __user *buf, int len, isdnloop_card *card)
 {
        int count;
        u_char __user *p;
@@ -468,7 +468,7 @@ isdnloop_readstatus(u_char __user *buf, int len, isdnloop_card * card)
  *   0 on success, 1 on memory squeeze.
  */
 static int
-isdnloop_fake(isdnloop_card * card, char *s, int ch)
+isdnloop_fake(isdnloop_card *card, char *s, int ch)
 {
        struct sk_buff *skb;
        int len = strlen(s) + ((ch >= 0) ? 3 : 0);
@@ -517,7 +517,7 @@ static isdnloop_stat isdnloop_cmd_table[] =
  *   card = pointer to card struct.
  */
 static void
-isdnloop_fake_err(isdnloop_card * card)
+isdnloop_fake_err(isdnloop_card *card)
 {
        char buf[60];
 
@@ -543,19 +543,19 @@ static u_char ctable_1t[] =
  *   Pointer to buffer containing the assembled message.
  */
 static char *
-isdnloop_unicause(isdnloop_card * card, int loc, int cau)
+isdnloop_unicause(isdnloop_card *card, int loc, int cau)
 {
        static char buf[6];
 
        switch (card->ptype) {
-               case ISDN_PTYPE_EURO:
-                       sprintf(buf, "E%02X%02X", (loc) ? 4 : 2, ctable_eu[cau]);
-                       break;
-               case ISDN_PTYPE_1TR6:
-                       sprintf(buf, "%02X44", ctable_1t[cau]);
-                       break;
-               default:
-                       return ("0000");
+       case ISDN_PTYPE_EURO:
+               sprintf(buf, "E%02X%02X", (loc) ? 4 : 2, ctable_eu[cau]);
+               break;
+       case ISDN_PTYPE_1TR6:
+               sprintf(buf, "%02X44", ctable_1t[cau]);
+               break;
+       default:
+               return ("0000");
        }
        return (buf);
 }
@@ -569,7 +569,7 @@ isdnloop_unicause(isdnloop_card * card, int loc, int cau)
  *   ch   = channel (0-based)
  */
 static void
-isdnloop_atimeout(isdnloop_card * card, int ch)
+isdnloop_atimeout(isdnloop_card *card, int ch)
 {
        unsigned long flags;
        char buf[60];
@@ -615,7 +615,7 @@ isdnloop_atimeout1(unsigned long data)
  *   ch   = channel to watch for.
  */
 static void
-isdnloop_start_ctimer(isdnloop_card * card, int ch)
+isdnloop_start_ctimer(isdnloop_card *card, int ch)
 {
        unsigned long flags;
 
@@ -639,7 +639,7 @@ isdnloop_start_ctimer(isdnloop_card * card, int ch)
  *   ch   = channel (0-based).
  */
 static void
-isdnloop_kill_ctimer(isdnloop_card * card, int ch)
+isdnloop_kill_ctimer(isdnloop_card *card, int ch)
 {
        unsigned long flags;
 
@@ -668,7 +668,7 @@ static u_char bit2si[] =
  *   3 = found matching number but SI does not match.
  */
 static int
-isdnloop_try_call(isdnloop_card * card, char *p, int lch, isdn_ctrl * cmd)
+isdnloop_try_call(isdnloop_card *card, char *p, int lch, isdn_ctrl *cmd)
 {
        isdnloop_card *cc = cards;
        unsigned long flags;
@@ -686,19 +686,19 @@ isdnloop_try_call(isdnloop_card * card, char *p, int lch, isdn_ctrl * cmd)
                                continue;
                        num_match = 0;
                        switch (cc->ptype) {
-                               case ISDN_PTYPE_EURO:
-                                       for (i = 0; i < 3; i++)
-                                               if (!(strcmp(cc->s0num[i], cmd->parm.setup.phone)))
-                                                       num_match = 1;
-                                       break;
-                               case ISDN_PTYPE_1TR6:
-                                       e = cc->eazlist[ch];
-                                       while (*e) {
-                                               sprintf(nbuf, "%s%c", cc->s0num[0], *e);
-                                               if (!(strcmp(nbuf, cmd->parm.setup.phone)))
-                                                       num_match = 1;
-                                               e++;
-                                       }
+                       case ISDN_PTYPE_EURO:
+                               for (i = 0; i < 3; i++)
+                                       if (!(strcmp(cc->s0num[i], cmd->parm.setup.phone)))
+                                               num_match = 1;
+                               break;
+                       case ISDN_PTYPE_1TR6:
+                               e = cc->eazlist[ch];
+                               while (*e) {
+                                       sprintf(nbuf, "%s%c", cc->s0num[0], *e);
+                                       if (!(strcmp(nbuf, cmd->parm.setup.phone)))
+                                               num_match = 1;
+                                       e++;
+                               }
                        }
                        if (num_match) {
                                spin_lock_irqsave(&card->isdnloop_lock, flags);
@@ -741,7 +741,7 @@ isdnloop_try_call(isdnloop_card * card, char *p, int lch, isdn_ctrl * cmd)
  *   pointer to new phone number.
  */
 static char *
-isdnloop_vstphone(isdnloop_card * card, char *phone, int caller)
+isdnloop_vstphone(isdnloop_card *card, char *phone, int caller)
 {
        int i;
        static char nphone[30];
@@ -751,22 +751,22 @@ isdnloop_vstphone(isdnloop_card * card, char *phone, int caller)
                return "";
        }
        switch (card->ptype) {
-               case ISDN_PTYPE_EURO:
-                       if (caller) {
-                               for (i = 0; i < 2; i++)
-                                       if (!(strcmp(card->s0num[i], phone)))
-                                               return (phone);
-                               return (card->s0num[0]);
-                       }
-                       return (phone);
-                       break;
-               case ISDN_PTYPE_1TR6:
-                       if (caller) {
-                               sprintf(nphone, "%s%c", card->s0num[0], phone[0]);
-                               return (nphone);
-                       } else
-                               return (&phone[strlen(phone) - 1]);
-                       break;
+       case ISDN_PTYPE_EURO:
+               if (caller) {
+                       for (i = 0; i < 2; i++)
+                               if (!(strcmp(card->s0num[i], phone)))
+                                       return (phone);
+                       return (card->s0num[0]);
+               }
+               return (phone);
+               break;
+       case ISDN_PTYPE_1TR6:
+               if (caller) {
+                       sprintf(nphone, "%s%c", card->s0num[0], phone[0]);
+                       return (nphone);
+               } else
+                       return (&phone[strlen(phone) - 1]);
+               break;
        }
        return "";
 }
@@ -779,7 +779,7 @@ isdnloop_vstphone(isdnloop_card * card, char *phone, int caller)
  *   card = pointer to card struct.
  */
 static void
-isdnloop_parse_cmd(isdnloop_card * card)
+isdnloop_parse_cmd(isdnloop_card *card)
 {
        char *p = card->omsg;
        isdn_ctrl cmd;
@@ -813,141 +813,141 @@ isdnloop_parse_cmd(isdnloop_card * card)
        if (action == -1)
                return;
        switch (action) {
-               case 1:
-                       /* 0x;BCON_R */
-                       if (card->rcard[ch - 1]) {
-                               isdnloop_fake(card->rcard[ch - 1], "BCON_I",
-                                             card->rch[ch - 1] + 1);
-                               isdnloop_fake(card, "BCON_C", ch);
-                       }
-                       break;
-               case 17:
-                       /* 0x;BCON_I */
-                       if (card->rcard[ch - 1]) {
-                               isdnloop_fake(card->rcard[ch - 1], "BCON_C",
-                                             card->rch[ch - 1] + 1);
-                       }
-                       break;
-               case 2:
-                       /* 0x;BDIS_R */
-                       isdnloop_fake(card, "BDIS_C", ch);
-                       if (card->rcard[ch - 1]) {
-                               isdnloop_fake(card->rcard[ch - 1], "BDIS_I",
-                                             card->rch[ch - 1] + 1);
-                       }
-                       break;
-               case 16:
-                       /* 0x;DCON_R */
-                       isdnloop_kill_ctimer(card, ch - 1);
-                       if (card->rcard[ch - 1]) {
-                               isdnloop_kill_ctimer(card->rcard[ch - 1], card->rch[ch - 1]);
-                               isdnloop_fake(card->rcard[ch - 1], "DCON_C",
-                                             card->rch[ch - 1] + 1);
-                               isdnloop_fake(card, "DCON_C", ch);
-                       }
-                       break;
-               case 3:
-                       /* 0x;DDIS_R */
-                       isdnloop_kill_ctimer(card, ch - 1);
-                       if (card->rcard[ch - 1]) {
-                               isdnloop_kill_ctimer(card->rcard[ch - 1], card->rch[ch - 1]);
-                               isdnloop_fake(card->rcard[ch - 1], "DDIS_I",
-                                             card->rch[ch - 1] + 1);
-                               card->rcard[ch - 1] = NULL;
-                       }
-                       isdnloop_fake(card, "DDIS_C", ch);
-                       break;
-               case 4:
-                       /* 0x;DSCA_Rdd,yy,zz,oo */
-                       if (card->ptype != ISDN_PTYPE_1TR6) {
-                               isdnloop_fake_err(card);
-                               return;
-                       }
+       case 1:
+               /* 0x;BCON_R */
+               if (card->rcard[ch - 1]) {
+                       isdnloop_fake(card->rcard[ch - 1], "BCON_I",
+                                     card->rch[ch - 1] + 1);
+                       isdnloop_fake(card, "BCON_C", ch);
+               }
+               break;
+       case 17:
+               /* 0x;BCON_I */
+               if (card->rcard[ch - 1]) {
+                       isdnloop_fake(card->rcard[ch - 1], "BCON_C",
+                                     card->rch[ch - 1] + 1);
+               }
+               break;
+       case 2:
+               /* 0x;BDIS_R */
+               isdnloop_fake(card, "BDIS_C", ch);
+               if (card->rcard[ch - 1]) {
+                       isdnloop_fake(card->rcard[ch - 1], "BDIS_I",
+                                     card->rch[ch - 1] + 1);
+               }
+               break;
+       case 16:
+               /* 0x;DCON_R */
+               isdnloop_kill_ctimer(card, ch - 1);
+               if (card->rcard[ch - 1]) {
+                       isdnloop_kill_ctimer(card->rcard[ch - 1], card->rch[ch - 1]);
+                       isdnloop_fake(card->rcard[ch - 1], "DCON_C",
+                                     card->rch[ch - 1] + 1);
+                       isdnloop_fake(card, "DCON_C", ch);
+               }
+               break;
+       case 3:
+               /* 0x;DDIS_R */
+               isdnloop_kill_ctimer(card, ch - 1);
+               if (card->rcard[ch - 1]) {
+                       isdnloop_kill_ctimer(card->rcard[ch - 1], card->rch[ch - 1]);
+                       isdnloop_fake(card->rcard[ch - 1], "DDIS_I",
+                                     card->rch[ch - 1] + 1);
+                       card->rcard[ch - 1] = NULL;
+               }
+               isdnloop_fake(card, "DDIS_C", ch);
+               break;
+       case 4:
+               /* 0x;DSCA_Rdd,yy,zz,oo */
+               if (card->ptype != ISDN_PTYPE_1TR6) {
+                       isdnloop_fake_err(card);
+                       return;
+               }
+               /* Fall through */
+       case 5:
+               /* 0x;DCAL_Rdd,yy,zz,oo */
+               p += 6;
+               switch (isdnloop_try_call(card, p, ch - 1, &cmd)) {
+               case 0:
+                       /* Alerting */
+                       sprintf(buf, "D%s_I%s,%02d,%02d,%s",
+                               (action == 4) ? "SCA" : "CAL",
+                               isdnloop_vstphone(card, cmd.parm.setup.eazmsn, 1),
+                               cmd.parm.setup.si1,
+                               cmd.parm.setup.si2,
+                               isdnloop_vstphone(card->rcard[ch - 1],
+                                                 cmd.parm.setup.phone, 0));
+                       isdnloop_fake(card->rcard[ch - 1], buf, card->rch[ch - 1] + 1);
                        /* Fall through */
-               case 5:
-                       /* 0x;DCAL_Rdd,yy,zz,oo */
-                       p += 6;
-                       switch (isdnloop_try_call(card, p, ch - 1, &cmd)) {
-                               case 0:
-                                       /* Alerting */
-                                       sprintf(buf, "D%s_I%s,%02d,%02d,%s",
-                                          (action == 4) ? "SCA" : "CAL",
-                                               isdnloop_vstphone(card, cmd.parm.setup.eazmsn, 1),
-                                               cmd.parm.setup.si1,
-                                               cmd.parm.setup.si2,
-                                       isdnloop_vstphone(card->rcard[ch - 1],
-                                              cmd.parm.setup.phone, 0));
-                                       isdnloop_fake(card->rcard[ch - 1], buf, card->rch[ch - 1] + 1);
-                                       /* Fall through */
-                               case 3:
-                                       /* si1 does not match, don't alert but start timer */
-                                       isdnloop_start_ctimer(card, ch - 1);
-                                       break;
-                               case 1:
-                                       /* Remote busy */
-                                       isdnloop_fake(card, "DDIS_I", ch);
-                                       sprintf(buf, "CAU%s", isdnloop_unicause(card, 1, 1));
-                                       isdnloop_fake(card, buf, ch);
-                                       break;
-                               case 2:
-                                       /* No such user */
-                                       isdnloop_fake(card, "DDIS_I", ch);
-                                       sprintf(buf, "CAU%s", isdnloop_unicause(card, 1, 2));
-                                       isdnloop_fake(card, buf, ch);
-                                       break;
-                       }
-                       break;
-               case 6:
-                       /* 0x;EAZC */
-                       card->eazlist[ch - 1][0] = '\0';
-                       break;
-               case 7:
-                       /* 0x;EAZ */
-                       p += 3;
-                       strcpy(card->eazlist[ch - 1], p);
-                       break;
-               case 8:
-                       /* 0x;SEEAZ */
-                       sprintf(buf, "EAZ-LIST: %s", card->eazlist[ch - 1]);
-                       isdnloop_fake(card, buf, ch + 1);
-                       break;
-               case 9:
-                       /* 0x;MSN */
-                       break;
-               case 10:
-                       /* 0x;MSNALL */
-                       break;
-               case 11:
-                       /* 0x;SETSIL */
-                       p += 6;
-                       i = 0;
-                       while (strchr("0157", *p)) {
-                               if (i)
-                                       card->sil[ch - 1] |= si2bit[*p - '0'];
-                               i = (*p++ == '0');
-                       }
-                       if (*p)
-                               isdnloop_fake_err(card);
-                       break;
-               case 12:
-                       /* 0x;SEESIL */
-                       sprintf(buf, "SIN-LIST: ");
-                       p = buf + 10;
-                       for (i = 0; i < 3; i++)
-                               if (card->sil[ch - 1] & (1 << i))
-                                       p += sprintf(p, "%02d", bit2si[i]);
-                       isdnloop_fake(card, buf, ch + 1);
-                       break;
-               case 13:
-                       /* 0x;SILC */
-                       card->sil[ch - 1] = 0;
+               case 3:
+                       /* si1 does not match, don't alert but start timer */
+                       isdnloop_start_ctimer(card, ch - 1);
                        break;
-               case 14:
-                       /* 00;FV2ON */
+               case 1:
+                       /* Remote busy */
+                       isdnloop_fake(card, "DDIS_I", ch);
+                       sprintf(buf, "CAU%s", isdnloop_unicause(card, 1, 1));
+                       isdnloop_fake(card, buf, ch);
                        break;
-               case 15:
-                       /* 00;FV2OFF */
+               case 2:
+                       /* No such user */
+                       isdnloop_fake(card, "DDIS_I", ch);
+                       sprintf(buf, "CAU%s", isdnloop_unicause(card, 1, 2));
+                       isdnloop_fake(card, buf, ch);
                        break;
+               }
+               break;
+       case 6:
+               /* 0x;EAZC */
+               card->eazlist[ch - 1][0] = '\0';
+               break;
+       case 7:
+               /* 0x;EAZ */
+               p += 3;
+               strcpy(card->eazlist[ch - 1], p);
+               break;
+       case 8:
+               /* 0x;SEEAZ */
+               sprintf(buf, "EAZ-LIST: %s", card->eazlist[ch - 1]);
+               isdnloop_fake(card, buf, ch + 1);
+               break;
+       case 9:
+               /* 0x;MSN */
+               break;
+       case 10:
+               /* 0x;MSNALL */
+               break;
+       case 11:
+               /* 0x;SETSIL */
+               p += 6;
+               i = 0;
+               while (strchr("0157", *p)) {
+                       if (i)
+                               card->sil[ch - 1] |= si2bit[*p - '0'];
+                       i = (*p++ == '0');
+               }
+               if (*p)
+                       isdnloop_fake_err(card);
+               break;
+       case 12:
+               /* 0x;SEESIL */
+               sprintf(buf, "SIN-LIST: ");
+               p = buf + 10;
+               for (i = 0; i < 3; i++)
+                       if (card->sil[ch - 1] & (1 << i))
+                               p += sprintf(p, "%02d", bit2si[i]);
+               isdnloop_fake(card, buf, ch + 1);
+               break;
+       case 13:
+               /* 0x;SILC */
+               card->sil[ch - 1] = 0;
+               break;
+       case 14:
+               /* 00;FV2ON */
+               break;
+       case 15:
+               /* 00;FV2OFF */
+               break;
        }
 }
 
@@ -966,7 +966,7 @@ isdnloop_parse_cmd(isdnloop_card * card)
  *   number of bytes transferred (currently always equals len).
  */
 static int
-isdnloop_writecmd(const u_char * buf, int len, int user, isdnloop_card * card)
+isdnloop_writecmd(const u_char *buf, int len, int user, isdnloop_card *card)
 {
        int xcount = 0;
        int ocount = 1;
@@ -1016,7 +1016,7 @@ isdnloop_writecmd(const u_char * buf, int len, int user, isdnloop_card * card)
  * Delete card's pending timers, send STOP to linklevel
  */
 static void
-isdnloop_stopcard(isdnloop_card * card)
+isdnloop_stopcard(isdnloop_card *card)
 {
        unsigned long flags;
        isdn_ctrl cmd;
@@ -1061,7 +1061,7 @@ isdnloop_stopallcards(void)
  *   0 on success, -E??? otherwise.
  */
 static int
-isdnloop_start(isdnloop_card * card, isdnloop_sdef * sdefp)
+isdnloop_start(isdnloop_card *card, isdnloop_sdef *sdefp)
 {
        unsigned long flags;
        isdnloop_sdef sdef;
@@ -1073,40 +1073,40 @@ isdnloop_start(isdnloop_card * card, isdnloop_sdef * sdefp)
                return -EFAULT;
        spin_lock_irqsave(&card->isdnloop_lock, flags);
        switch (sdef.ptype) {
-               case ISDN_PTYPE_EURO:
-                       if (isdnloop_fake(card, "DRV1.23EC-Q.931-CAPI-CNS-BASIS-20.02.96",
-                                         -1)) {
-                               spin_unlock_irqrestore(&card->isdnloop_lock, flags);
-                               return -ENOMEM;
-                       }
-                       card->sil[0] = card->sil[1] = 4;
-                       if (isdnloop_fake(card, "TEI OK", 0)) {
-                               spin_unlock_irqrestore(&card->isdnloop_lock, flags);
-                               return -ENOMEM;
-                       }
-                       for (i = 0; i < 3; i++)
-                               strcpy(card->s0num[i], sdef.num[i]);
-                       break;
-               case ISDN_PTYPE_1TR6:
-                       if (isdnloop_fake(card, "DRV1.04TC-1TR6-CAPI-CNS-BASIS-29.11.95",
-                                         -1)) {
-                               spin_unlock_irqrestore(&card->isdnloop_lock, flags);
-                               return -ENOMEM;
-                       }
-                       card->sil[0] = card->sil[1] = 4;
-                       if (isdnloop_fake(card, "TEI OK", 0)) {
-                               spin_unlock_irqrestore(&card->isdnloop_lock, flags);
-                               return -ENOMEM;
-                       }
-                       strcpy(card->s0num[0], sdef.num[0]);
-                       card->s0num[1][0] = '\0';
-                       card->s0num[2][0] = '\0';
-                       break;
-               default:
+       case ISDN_PTYPE_EURO:
+               if (isdnloop_fake(card, "DRV1.23EC-Q.931-CAPI-CNS-BASIS-20.02.96",
+                                 -1)) {
                        spin_unlock_irqrestore(&card->isdnloop_lock, flags);
-                       printk(KERN_WARNING "isdnloop: Illegal D-channel protocol %d\n",
-                              sdef.ptype);
-                       return -EINVAL;
+                       return -ENOMEM;
+               }
+               card->sil[0] = card->sil[1] = 4;
+               if (isdnloop_fake(card, "TEI OK", 0)) {
+                       spin_unlock_irqrestore(&card->isdnloop_lock, flags);
+                       return -ENOMEM;
+               }
+               for (i = 0; i < 3; i++)
+                       strcpy(card->s0num[i], sdef.num[i]);
+               break;
+       case ISDN_PTYPE_1TR6:
+               if (isdnloop_fake(card, "DRV1.04TC-1TR6-CAPI-CNS-BASIS-29.11.95",
+                                 -1)) {
+                       spin_unlock_irqrestore(&card->isdnloop_lock, flags);
+                       return -ENOMEM;
+               }
+               card->sil[0] = card->sil[1] = 4;
+               if (isdnloop_fake(card, "TEI OK", 0)) {
+                       spin_unlock_irqrestore(&card->isdnloop_lock, flags);
+                       return -ENOMEM;
+               }
+               strcpy(card->s0num[0], sdef.num[0]);
+               card->s0num[1][0] = '\0';
+               card->s0num[2][0] = '\0';
+               break;
+       default:
+               spin_unlock_irqrestore(&card->isdnloop_lock, flags);
+               printk(KERN_WARNING "isdnloop: Illegal D-channel protocol %d\n",
+                      sdef.ptype);
+               return -EINVAL;
        }
        init_timer(&card->st_timer);
        card->st_timer.expires = jiffies + ISDNLOOP_TIMER_DCREAD;
@@ -1122,7 +1122,7 @@ isdnloop_start(isdnloop_card * card, isdnloop_sdef * sdefp)
  * Main handler for commands sent by linklevel.
  */
 static int
-isdnloop_command(isdn_ctrl * c, isdnloop_card * card)
+isdnloop_command(isdn_ctrl *c, isdnloop_card *card)
 {
        ulong a;
        int i;
@@ -1131,215 +1131,215 @@ isdnloop_command(isdn_ctrl * c, isdnloop_card * card)
        isdnloop_cdef cdef;
 
        switch (c->command) {
-               case ISDN_CMD_IOCTL:
-                       memcpy(&a, c->parm.num, sizeof(ulong));
-                       switch (c->arg) {
-                               case ISDNLOOP_IOCTL_DEBUGVAR:
-                                       return (ulong) card;
-                               case ISDNLOOP_IOCTL_STARTUP:
-                                       if (!access_ok(VERIFY_READ, (void *) a, sizeof(isdnloop_sdef)))
-                                               return -EFAULT;
-                                       return (isdnloop_start(card, (isdnloop_sdef *) a));
-                                       break;
-                               case ISDNLOOP_IOCTL_ADDCARD:
-                                       if (copy_from_user((char *)&cdef,
-                                                          (char *)a,
-                                                          sizeof(cdef)))
-                                               return -EFAULT;
-                                       return (isdnloop_addcard(cdef.id1));
-                                       break;
-                               case ISDNLOOP_IOCTL_LEASEDCFG:
-                                       if (a) {
-                                               if (!card->leased) {
-                                                       card->leased = 1;
-                                                       while (card->ptype == ISDN_PTYPE_UNKNOWN)
-                                                               schedule_timeout_interruptible(10);
-                                                       schedule_timeout_interruptible(10);
-                                                       sprintf(cbuf, "00;FV2ON\n01;EAZ1\n02;EAZ2\n");
-                                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                                                       printk(KERN_INFO
-                                                              "isdnloop: (%s) Leased-line mode enabled\n",
-                                                              CID);
-                                                       cmd.command = ISDN_STAT_RUN;
-                                                       cmd.driver = card->myid;
-                                                       cmd.arg = 0;
-                                                       card->interface.statcallb(&cmd);
-                                               }
-                                       } else {
-                                               if (card->leased) {
-                                                       card->leased = 0;
-                                                       sprintf(cbuf, "00;FV2OFF\n");
-                                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                                                       printk(KERN_INFO
-                                                              "isdnloop: (%s) Leased-line mode disabled\n",
-                                                              CID);
-                                                       cmd.command = ISDN_STAT_RUN;
-                                                       cmd.driver = card->myid;
-                                                       cmd.arg = 0;
-                                                       card->interface.statcallb(&cmd);
-                                               }
-                                       }
-                                       return 0;
-                               default:
-                                       return -EINVAL;
+       case ISDN_CMD_IOCTL:
+               memcpy(&a, c->parm.num, sizeof(ulong));
+               switch (c->arg) {
+               case ISDNLOOP_IOCTL_DEBUGVAR:
+                       return (ulong) card;
+               case ISDNLOOP_IOCTL_STARTUP:
+                       if (!access_ok(VERIFY_READ, (void *) a, sizeof(isdnloop_sdef)))
+                               return -EFAULT;
+                       return (isdnloop_start(card, (isdnloop_sdef *) a));
+                       break;
+               case ISDNLOOP_IOCTL_ADDCARD:
+                       if (copy_from_user((char *)&cdef,
+                                          (char *)a,
+                                          sizeof(cdef)))
+                               return -EFAULT;
+                       return (isdnloop_addcard(cdef.id1));
+                       break;
+               case ISDNLOOP_IOCTL_LEASEDCFG:
+                       if (a) {
+                               if (!card->leased) {
+                                       card->leased = 1;
+                                       while (card->ptype == ISDN_PTYPE_UNKNOWN)
+                                               schedule_timeout_interruptible(10);
+                                       schedule_timeout_interruptible(10);
+                                       sprintf(cbuf, "00;FV2ON\n01;EAZ1\n02;EAZ2\n");
+                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+                                       printk(KERN_INFO
+                                              "isdnloop: (%s) Leased-line mode enabled\n",
+                                              CID);
+                                       cmd.command = ISDN_STAT_RUN;
+                                       cmd.driver = card->myid;
+                                       cmd.arg = 0;
+                                       card->interface.statcallb(&cmd);
+                               }
+                       } else {
+                               if (card->leased) {
+                                       card->leased = 0;
+                                       sprintf(cbuf, "00;FV2OFF\n");
+                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+                                       printk(KERN_INFO
+                                              "isdnloop: (%s) Leased-line mode disabled\n",
+                                              CID);
+                                       cmd.command = ISDN_STAT_RUN;
+                                       cmd.driver = card->myid;
+                                       cmd.arg = 0;
+                                       card->interface.statcallb(&cmd);
+                               }
                        }
+                       return 0;
+               default:
+                       return -EINVAL;
+               }
+               break;
+       case ISDN_CMD_DIAL:
+               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (card->leased)
                        break;
-               case ISDN_CMD_DIAL:
-                       if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
-                               return -ENODEV;
-                       if (card->leased)
-                               break;
-                       if ((c->arg & 255) < ISDNLOOP_BCH) {
-                               char *p;
-                               char dial[50];
-                               char dcode[4];
-
-                               a = c->arg;
-                               p = c->parm.setup.phone;
-                               if (*p == 's' || *p == 'S') {
-                                       /* Dial for SPV */
-                                       p++;
-                                       strcpy(dcode, "SCA");
-                               } else
-                                       /* Normal Dial */
-                                       strcpy(dcode, "CAL");
-                               strcpy(dial, p);
-                               sprintf(cbuf, "%02d;D%s_R%s,%02d,%02d,%s\n", (int) (a + 1),
-                                       dcode, dial, c->parm.setup.si1,
+               if ((c->arg & 255) < ISDNLOOP_BCH) {
+                       char *p;
+                       char dial[50];
+                       char dcode[4];
+
+                       a = c->arg;
+                       p = c->parm.setup.phone;
+                       if (*p == 's' || *p == 'S') {
+                               /* Dial for SPV */
+                               p++;
+                               strcpy(dcode, "SCA");
+                       } else
+                               /* Normal Dial */
+                               strcpy(dcode, "CAL");
+                       strcpy(dial, p);
+                       sprintf(cbuf, "%02d;D%s_R%s,%02d,%02d,%s\n", (int) (a + 1),
+                               dcode, dial, c->parm.setup.si1,
                                c->parm.setup.si2, c->parm.setup.eazmsn);
+                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_ACCEPTD:
+               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (c->arg < ISDNLOOP_BCH) {
+                       a = c->arg + 1;
+                       cbuf[0] = 0;
+                       switch (card->l2_proto[a - 1]) {
+                       case ISDN_PROTO_L2_X75I:
+                               sprintf(cbuf, "%02d;BX75\n", (int) a);
+                               break;
+#ifdef CONFIG_ISDN_X25
+                       case ISDN_PROTO_L2_X25DTE:
+                               sprintf(cbuf, "%02d;BX2T\n", (int) a);
+                               break;
+                       case ISDN_PROTO_L2_X25DCE:
+                               sprintf(cbuf, "%02d;BX2C\n", (int) a);
+                               break;
+#endif
+                       case ISDN_PROTO_L2_HDLC:
+                               sprintf(cbuf, "%02d;BTRA\n", (int) a);
+                               break;
+                       }
+                       if (strlen(cbuf))
                                i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+                       sprintf(cbuf, "%02d;DCON_R\n", (int) a);
+                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+               }
+               break;
+       case ISDN_CMD_ACCEPTB:
+               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
+                       return -ENODEV;
+               if (c->arg < ISDNLOOP_BCH) {
+                       a = c->arg + 1;
+                       switch (card->l2_proto[a - 1]) {
+                       case ISDN_PROTO_L2_X75I:
+                               sprintf(cbuf, "%02d;BCON_R,BX75\n", (int) a);
+                               break;
+#ifdef CONFIG_ISDN_X25
+                       case ISDN_PROTO_L2_X25DTE:
+                               sprintf(cbuf, "%02d;BCON_R,BX2T\n", (int) a);
+                               break;
+                       case ISDN_PROTO_L2_X25DCE:
+                               sprintf(cbuf, "%02d;BCON_R,BX2C\n", (int) a);
+                               break;
+#endif
+                       case ISDN_PROTO_L2_HDLC:
+                               sprintf(cbuf, "%02d;BCON_R,BTRA\n", (int) a);
+                               break;
+                       default:
+                               sprintf(cbuf, "%02d;BCON_R\n", (int) a);
                        }
+                       printk(KERN_DEBUG "isdnloop writecmd '%s'\n", cbuf);
+                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
                        break;
-               case ISDN_CMD_ACCEPTD:
+               case ISDN_CMD_HANGUP:
                        if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
                                return -ENODEV;
                        if (c->arg < ISDNLOOP_BCH) {
                                a = c->arg + 1;
-                               cbuf[0] = 0;
-                               switch (card->l2_proto[a - 1]) {
-                                       case ISDN_PROTO_L2_X75I:
-                                               sprintf(cbuf, "%02d;BX75\n", (int) a);
-                                               break;
-#ifdef CONFIG_ISDN_X25
-                                       case ISDN_PROTO_L2_X25DTE:
-                                               sprintf(cbuf, "%02d;BX2T\n", (int) a);
-                                               break;
-                                       case ISDN_PROTO_L2_X25DCE:
-                                               sprintf(cbuf, "%02d;BX2C\n", (int) a);
-                                               break;
-#endif
-                                       case ISDN_PROTO_L2_HDLC:
-                                               sprintf(cbuf, "%02d;BTRA\n", (int) a);
-                                               break;
-                               }
-                               if (strlen(cbuf))
-                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                               sprintf(cbuf, "%02d;DCON_R\n", (int) a);
+                               sprintf(cbuf, "%02d;BDIS_R\n%02d;DDIS_R\n", (int) a, (int) a);
                                i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
                        }
                        break;
-               case ISDN_CMD_ACCEPTB:
+               case ISDN_CMD_SETEAZ:
                        if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
                                return -ENODEV;
+                       if (card->leased)
+                               break;
                        if (c->arg < ISDNLOOP_BCH) {
                                a = c->arg + 1;
-                               switch (card->l2_proto[a - 1]) {
-                                       case ISDN_PROTO_L2_X75I:
-                                               sprintf(cbuf, "%02d;BCON_R,BX75\n", (int) a);
-                                               break;
-#ifdef CONFIG_ISDN_X25
-                                       case ISDN_PROTO_L2_X25DTE:
-                                               sprintf(cbuf, "%02d;BCON_R,BX2T\n", (int) a);
-                                               break;
-                                       case ISDN_PROTO_L2_X25DCE:
-                                               sprintf(cbuf, "%02d;BCON_R,BX2C\n", (int) a);
-                                               break;
-#endif
-                                       case ISDN_PROTO_L2_HDLC:
-                                               sprintf(cbuf, "%02d;BCON_R,BTRA\n", (int) a);
-                                               break;
-                                       default:
-                                               sprintf(cbuf, "%02d;BCON_R\n", (int) a);
-                               }
-                               printk(KERN_DEBUG "isdnloop writecmd '%s'\n", cbuf);
+                               if (card->ptype == ISDN_PTYPE_EURO) {
+                                       sprintf(cbuf, "%02d;MS%s%s\n", (int) a,
+                                               c->parm.num[0] ? "N" : "ALL", c->parm.num);
+                               } else
+                                       sprintf(cbuf, "%02d;EAZ%s\n", (int) a,
+                                               c->parm.num[0] ? c->parm.num : (u_char *) "0123456789");
                                i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                               break;
-               case ISDN_CMD_HANGUP:
-                               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
-                                       return -ENODEV;
-                               if (c->arg < ISDNLOOP_BCH) {
-                                       a = c->arg + 1;
-                                       sprintf(cbuf, "%02d;BDIS_R\n%02d;DDIS_R\n", (int) a, (int) a);
-                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                               }
-                               break;
-               case ISDN_CMD_SETEAZ:
-                               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
-                                       return -ENODEV;
-                               if (card->leased)
-                                       break;
-                               if (c->arg < ISDNLOOP_BCH) {
-                                       a = c->arg + 1;
-                                       if (card->ptype == ISDN_PTYPE_EURO) {
-                                               sprintf(cbuf, "%02d;MS%s%s\n", (int) a,
-                                                       c->parm.num[0] ? "N" : "ALL", c->parm.num);
-                                       } else
-                                               sprintf(cbuf, "%02d;EAZ%s\n", (int) a,
-                                                       c->parm.num[0] ? c->parm.num : (u_char *) "0123456789");
-                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                               }
-                               break;
+                       }
+                       break;
                case ISDN_CMD_CLREAZ:
-                               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
-                                       return -ENODEV;
-                               if (card->leased)
-                                       break;
-                               if (c->arg < ISDNLOOP_BCH) {
-                                       a = c->arg + 1;
-                                       if (card->ptype == ISDN_PTYPE_EURO)
-                                               sprintf(cbuf, "%02d;MSNC\n", (int) a);
-                                       else
-                                               sprintf(cbuf, "%02d;EAZC\n", (int) a);
-                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                               }
+                       if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
+                               return -ENODEV;
+                       if (card->leased)
                                break;
+                       if (c->arg < ISDNLOOP_BCH) {
+                               a = c->arg + 1;
+                               if (card->ptype == ISDN_PTYPE_EURO)
+                                       sprintf(cbuf, "%02d;MSNC\n", (int) a);
+                               else
+                                       sprintf(cbuf, "%02d;EAZC\n", (int) a);
+                               i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+                       }
+                       break;
                case ISDN_CMD_SETL2:
-                               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
-                                       return -ENODEV;
-                               if ((c->arg & 255) < ISDNLOOP_BCH) {
-                                       a = c->arg;
-                                       switch (a >> 8) {
-                                               case ISDN_PROTO_L2_X75I:
-                                                       sprintf(cbuf, "%02d;BX75\n", (int) (a & 255) + 1);
-                                                       break;
+                       if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
+                               return -ENODEV;
+                       if ((c->arg & 255) < ISDNLOOP_BCH) {
+                               a = c->arg;
+                               switch (a >> 8) {
+                               case ISDN_PROTO_L2_X75I:
+                                       sprintf(cbuf, "%02d;BX75\n", (int) (a & 255) + 1);
+                                       break;
 #ifdef CONFIG_ISDN_X25
-                                               case ISDN_PROTO_L2_X25DTE:
-                                                       sprintf(cbuf, "%02d;BX2T\n", (int) (a & 255) + 1);
-                                                       break;
-                                               case ISDN_PROTO_L2_X25DCE:
-                                                       sprintf(cbuf, "%02d;BX2C\n", (int) (a & 255) + 1);
-                                                       break;
+                               case ISDN_PROTO_L2_X25DTE:
+                                       sprintf(cbuf, "%02d;BX2T\n", (int) (a & 255) + 1);
+                                       break;
+                               case ISDN_PROTO_L2_X25DCE:
+                                       sprintf(cbuf, "%02d;BX2C\n", (int) (a & 255) + 1);
+                                       break;
 #endif
-                                               case ISDN_PROTO_L2_HDLC:
-                                                       sprintf(cbuf, "%02d;BTRA\n", (int) (a & 255) + 1);
-                                                       break;
-                                               case ISDN_PROTO_L2_TRANS:
-                                                       sprintf(cbuf, "%02d;BTRA\n", (int) (a & 255) + 1);
-                                                       break;
-                                               default:
-                                                       return -EINVAL;
-                                       }
-                                       i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
-                                       card->l2_proto[a & 255] = (a >> 8);
+                               case ISDN_PROTO_L2_HDLC:
+                                       sprintf(cbuf, "%02d;BTRA\n", (int) (a & 255) + 1);
+                                       break;
+                               case ISDN_PROTO_L2_TRANS:
+                                       sprintf(cbuf, "%02d;BTRA\n", (int) (a & 255) + 1);
+                                       break;
+                               default:
+                                       return -EINVAL;
                                }
-                               break;
+                               i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card);
+                               card->l2_proto[a & 255] = (a >> 8);
+                       }
+                       break;
                case ISDN_CMD_SETL3:
-                               if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
-                                       return -ENODEV;
-                               return 0;
+                       if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
+                               return -ENODEV;
+                       return 0;
                default:
-                               return -EINVAL;
-                       }
+                       return -EINVAL;
+               }
        }
        return 0;
 }
@@ -1364,7 +1364,7 @@ isdnloop_findcard(int driverid)
  * Wrapper functions for interface to linklevel
  */
 static int
-if_command(isdn_ctrl * c)
+if_command(isdn_ctrl *c)
 {
        isdnloop_card *card = isdnloop_findcard(c->driver);
 
@@ -1434,12 +1434,12 @@ isdnloop_initcard(char *id)
 
        if (!(card = kzalloc(sizeof(isdnloop_card), GFP_KERNEL))) {
                printk(KERN_WARNING
-                "isdnloop: (%s) Could not allocate card-struct.\n", id);
+                      "isdnloop: (%s) Could not allocate card-struct.\n", id);
                return (isdnloop_card *) 0;
        }
        card->interface.owner = THIS_MODULE;
        card->interface.channels = ISDNLOOP_BCH;
-       card->interface.hl_hdrlen  = 1; /* scratch area for storing ack flag*/ 
+       card->interface.hl_hdrlen  = 1; /* scratch area for storing ack flag*/
        card->interface.maxbufsize = 4000;
        card->interface.command = if_command;
        card->interface.writebuf_skb = if_sendbuf;
@@ -1447,12 +1447,12 @@ isdnloop_initcard(char *id)
        card->interface.readstat = if_readstatus;
        card->interface.features = ISDN_FEATURE_L2_X75I |
 #ifdef CONFIG_ISDN_X25
-           ISDN_FEATURE_L2_X25DTE |
-           ISDN_FEATURE_L2_X25DCE |
+               ISDN_FEATURE_L2_X25DTE |
+               ISDN_FEATURE_L2_X25DCE |
 #endif
-           ISDN_FEATURE_L2_HDLC |
-           ISDN_FEATURE_L3_TRANS |
-           ISDN_FEATURE_P_UNKNOWN;
+               ISDN_FEATURE_L2_HDLC |
+               ISDN_FEATURE_L3_TRANS |
+               ISDN_FEATURE_P_UNKNOWN;
        card->ptype = ISDN_PTYPE_UNKNOWN;
        strlcpy(card->interface.id, id, sizeof(card->interface.id));
        card->msg_buf_write = card->msg_buf;
index 0d458a8..e9e0355 100644 (file)
@@ -55,7 +55,7 @@ typedef struct isdnloop_sdef {
 #define ISDNLOOP_FLAGS_RBTIMER  8      /* scheduling of B-Channel-poll  */
 #define ISDNLOOP_TIMER_BCREAD 1 /* B-Channel poll-cycle          */
 #define ISDNLOOP_TIMER_DCREAD (HZ/2)   /* D-Channel poll-cycle          */
-#define ISDNLOOP_TIMER_ALERTWAIT (10*HZ)       /* Alert timeout                 */
+#define ISDNLOOP_TIMER_ALERTWAIT (10 * HZ)     /* Alert timeout                 */
 #define ISDNLOOP_MAX_SQUEUE 65536      /* Max. outstanding send-data    */
 #define ISDNLOOP_BCH 2          /* channels per card             */
 
@@ -79,7 +79,7 @@ typedef struct isdnloop_card {
        struct timer_list st_timer;     /* Timer for Status-Polls           */
        struct timer_list rb_timer;     /* Timer for B-Channel-Polls        */
        struct timer_list
-        c_timer[ISDNLOOP_BCH]; /* Timer for Alerting               */
+       c_timer[ISDNLOOP_BCH]; /* Timer for Alerting               */
        int l2_proto[ISDNLOOP_BCH];     /* Current layer-2-protocol         */
        isdn_if interface;      /* Interface to upper layer         */
        int iptr;               /* Index to imsg-buffer             */
@@ -92,7 +92,7 @@ typedef struct isdnloop_card {
        char *msg_buf_end;      /* Pointer to end of statusbuffer   */
        int sndcount[ISDNLOOP_BCH];     /* Byte-counters for B-Ch.-send     */
        struct sk_buff_head
-        bqueue[ISDNLOOP_BCH];  /* B-Channel queues                 */
+       bqueue[ISDNLOOP_BCH];  /* B-Channel queues                 */
        struct sk_buff_head dqueue;     /* D-Channel queue                  */
        spinlock_t isdnloop_lock;
 } isdnloop_card;
index 7418f2d..693fb7c 100644 (file)
  * Quick API description:
  *
  * A clock source registers using mISDN_register_clock:
- *     name = text string to name clock source
+ *     name = text string to name clock source
  *     priority = value to priorize clock sources (0 = default)
  *     ctl = callback function to enable/disable clock source
  *     priv = private pointer of clock source
- *     return = pointer to clock source structure;
+ *     return = pointer to clock source structure;
  *
  * Note: Callback 'ctl' can be called before mISDN_register_clock returns!
  *       Also it can be called during mISDN_unregister_clock.
@@ -74,14 +74,14 @@ select_iclock(void)
                /* last used clock source still exists but changes, disable */
                if (*debug & DEBUG_CLOCK)
                        printk(KERN_DEBUG "Old clock source '%s' disable.\n",
-                               lastclock->name);
+                              lastclock->name);
                lastclock->ctl(lastclock->priv, 0);
        }
        if (bestclock && bestclock != iclock_current) {
                /* new clock source selected, enable */
                if (*debug & DEBUG_CLOCK)
                        printk(KERN_DEBUG "New clock source '%s' enable.\n",
-                               bestclock->name);
+                              bestclock->name);
                bestclock->ctl(bestclock->priv, 1);
        }
        if (bestclock != iclock_current) {
@@ -104,7 +104,7 @@ struct mISDNclock
                printk(KERN_ERR "%s: No memory for clock entry.\n", __func__);
                return NULL;
        }
-       strncpy(iclock->name, name, sizeof(iclock->name)-1);
+       strncpy(iclock->name, name, sizeof(iclock->name) - 1);
        iclock->pri = pri;
        iclock->priv = priv;
        iclock->ctl = ctl;
@@ -123,13 +123,13 @@ mISDN_unregister_clock(struct mISDNclock *iclock)
 
        if (*debug & (DEBUG_CORE | DEBUG_CLOCK))
                printk(KERN_DEBUG "%s: %s %d\n", __func__, iclock->name,
-                       iclock->pri);
+                      iclock->pri);
        write_lock_irqsave(&iclock_lock, flags);
        if (iclock_current == iclock) {
                if (*debug & DEBUG_CLOCK)
                        printk(KERN_DEBUG
-                               "Current clock source '%s' unregisters.\n",
-                               iclock->name);
+                              "Current clock source '%s' unregisters.\n",
+                              iclock->name);
                iclock->ctl(iclock->priv, 0);
        }
        list_del(&iclock->list);
@@ -149,9 +149,9 @@ mISDN_clock_update(struct mISDNclock *iclock, int samples, struct timeval *tv)
        write_lock_irqsave(&iclock_lock, flags);
        if (iclock_current != iclock) {
                printk(KERN_ERR "%s: '%s' sends us clock updates, but we do "
-                       "listen to '%s'. This is a bug!\n", __func__,
-                       iclock->name,
-                       iclock_current ? iclock_current->name : "nothing");
+                      "listen to '%s'. This is a bug!\n", __func__,
+                      iclock->name,
+                      iclock_current ? iclock_current->name : "nothing");
                iclock->ctl(iclock->priv, 0);
                write_unlock_irqrestore(&iclock_lock, flags);
                return;
@@ -185,7 +185,7 @@ mISDN_clock_update(struct mISDNclock *iclock, int samples, struct timeval *tv)
                iclock_tv_valid = 1;
                if (*debug & DEBUG_CLOCK)
                        printk("Received first clock from source '%s'.\n",
-                           iclock_current ? iclock_current->name : "nothing");
+                              iclock_current ? iclock_current->name : "nothing");
        }
        write_unlock_irqrestore(&iclock_lock, flags);
 }
@@ -215,4 +215,3 @@ mISDN_clock_get(void)
        return count;
 }
 EXPORT_SYMBOL(mISDN_clock_get);
-
index afeebb0..a24530f 100644 (file)
@@ -38,7 +38,7 @@ static void mISDN_dev_release(struct device *dev)
 }
 
 static ssize_t _show_id(struct device *dev,
-                               struct device_attribute *attr, char *buf)
+                       struct device_attribute *attr, char *buf)
 {
        struct mISDNdevice *mdev = dev_to_mISDN(dev);
 
@@ -48,7 +48,7 @@ static ssize_t _show_id(struct device *dev,
 }
 
 static ssize_t _show_nrbchan(struct device *dev,
-                               struct device_attribute *attr, char *buf)
+                            struct device_attribute *attr, char *buf)
 {
        struct mISDNdevice *mdev = dev_to_mISDN(dev);
 
@@ -58,7 +58,7 @@ static ssize_t _show_nrbchan(struct device *dev,
 }
 
 static ssize_t _show_d_protocols(struct device *dev,
-                               struct device_attribute *attr, char *buf)
+                                struct device_attribute *attr, char *buf)
 {
        struct mISDNdevice *mdev = dev_to_mISDN(dev);
 
@@ -68,7 +68,7 @@ static ssize_t _show_d_protocols(struct device *dev,
 }
 
 static ssize_t _show_b_protocols(struct device *dev,
-                               struct device_attribute *attr, char *buf)
+                                struct device_attribute *attr, char *buf)
 {
        struct mISDNdevice *mdev = dev_to_mISDN(dev);
 
@@ -78,7 +78,7 @@ static ssize_t _show_b_protocols(struct device *dev,
 }
 
 static ssize_t _show_protocol(struct device *dev,
-                               struct device_attribute *attr, char *buf)
+                             struct device_attribute *attr, char *buf)
 {
        struct mISDNdevice *mdev = dev_to_mISDN(dev);
 
@@ -88,7 +88,7 @@ static ssize_t _show_protocol(struct device *dev,
 }
 
 static ssize_t _show_name(struct device *dev,
-                               struct device_attribute *attr, char *buf)
+                         struct device_attribute *attr, char *buf)
 {
        strcpy(buf, dev_name(dev));
        return strlen(buf);
@@ -96,7 +96,7 @@ static ssize_t _show_name(struct device *dev,
 
 #if 0 /* hangs */
 static ssize_t _set_name(struct device *dev, struct device_attribute *attr,
-                               const char *buf, size_t count)
+                        const char *buf, size_t count)
 {
        int err = 0;
        char *out = kmalloc(count + 1, GFP_KERNEL);
@@ -136,7 +136,7 @@ static struct device_attribute mISDN_dev_attrs[] = {
        __ATTR(channelmap,  S_IRUGO,         _show_channelmap,  NULL),
        __ATTR(nrbchan,     S_IRUGO,         _show_nrbchan,     NULL),
        __ATTR(name,        S_IRUGO,         _show_name,        NULL),
-/*     __ATTR(name,        S_IRUGO|S_IWUSR, _show_name,       _set_name), */
+/*     __ATTR(name,        S_IRUGO | S_IWUSR, _show_name,      _set_name), */
        {}
 };
 
@@ -187,7 +187,7 @@ struct mISDNdevice
 *get_mdevice(u_int id)
 {
        return dev_to_mISDN(class_find_device(&mISDN_class, NULL, &id,
-               _get_mdevice));
+                                             _get_mdevice));
 }
 
 static int
@@ -221,7 +221,7 @@ get_free_devid(void)
 
 int
 mISDN_register_device(struct mISDNdevice *dev,
-                       struct device *parent, char *name)
+                     struct device *parent, char *name)
 {
        int     err;
 
@@ -237,7 +237,7 @@ mISDN_register_device(struct mISDNdevice *dev,
                dev_set_name(&dev->dev, "mISDN%d", dev->id);
        if (debug & DEBUG_CORE)
                printk(KERN_DEBUG "mISDN_register %s %d\n",
-                       dev_name(&dev->dev), dev->id);
+                      dev_name(&dev->dev), dev->id);
        err = create_stack(dev);
        if (err)
                goto error1;
@@ -265,7 +265,7 @@ void
 mISDN_unregister_device(struct mISDNdevice *dev) {
        if (debug & DEBUG_CORE)
                printk(KERN_DEBUG "mISDN_unregister %s %d\n",
-                       dev_name(&dev->dev), dev->id);
+                      dev_name(&dev->dev), dev->id);
        /* sysfs_remove_link(&dev->dev.kobj, "device"); */
        device_del(&dev->dev);
        dev_set_drvdata(&dev->dev, NULL);
@@ -311,7 +311,7 @@ get_Bprotocol4id(u_int id)
 
        if (id < ISDN_P_B_START || id > 63) {
                printk(KERN_WARNING "%s id not in range  %d\n",
-                   __func__, id);
+                      __func__, id);
                return NULL;
        }
        m = 1 << (id & ISDN_P_B_MASK);
@@ -326,12 +326,12 @@ mISDN_register_Bprotocol(struct Bprotocol *bp)
 
        if (debug & DEBUG_CORE)
                printk(KERN_DEBUG "%s: %s/%x\n", __func__,
-                   bp->name, bp->Bprotocols);
+                      bp->name, bp->Bprotocols);
        old = get_Bprotocol4mask(bp->Bprotocols);
        if (old) {
                printk(KERN_WARNING
-                   "register duplicate protocol old %s/%x new %s/%x\n",
-                   old->name, old->Bprotocols, bp->name, bp->Bprotocols);
+                      "register duplicate protocol old %s/%x new %s/%x\n",
+                      old->name, old->Bprotocols, bp->name, bp->Bprotocols);
                return -EBUSY;
        }
        write_lock_irqsave(&bp_lock, flags);
@@ -348,7 +348,7 @@ mISDN_unregister_Bprotocol(struct Bprotocol *bp)
 
        if (debug & DEBUG_CORE)
                printk(KERN_DEBUG "%s: %s/%x\n", __func__, bp->name,
-                       bp->Bprotocols);
+                      bp->Bprotocols);
        write_lock_irqsave(&bp_lock, flags);
        list_del(&bp->list);
        write_unlock_irqrestore(&bp_lock, flags);
@@ -361,7 +361,7 @@ mISDNInit(void)
        int     err;
 
        printk(KERN_INFO "Modular ISDN core version %d.%d.%d\n",
-               MISDN_MAJOR_VERSION, MISDN_MINOR_VERSION, MISDN_RELEASE);
+              MISDN_MAJOR_VERSION, MISDN_MINOR_VERSION, MISDN_RELEASE);
        mISDN_init_clock(&debug);
        mISDN_initstack(&debug);
        err = class_register(&mISDN_class);
@@ -406,4 +406,3 @@ static void mISDN_cleanup(void)
 
 module_init(mISDNInit);
 module_exit(mISDN_cleanup);
-
index 7ac2f81..52695bb 100644 (file)
@@ -45,11 +45,11 @@ extern int                  get_mdevice_count(void);
 #define MGR_OPT_NETWORK                25
 
 extern int     connect_Bstack(struct mISDNdevice *, struct mISDNchannel *,
-                       u_int, struct sockaddr_mISDN *);
+                              u_int, struct sockaddr_mISDN *);
 extern int     connect_layer1(struct mISDNdevice *, struct mISDNchannel *,
-                       u_int, struct sockaddr_mISDN *);
+                              u_int, struct sockaddr_mISDN *);
 extern int     create_l2entity(struct mISDNdevice *, struct mISDNchannel *,
-                       u_int, struct sockaddr_mISDN *);
+                               u_int, struct sockaddr_mISDN *);
 
 extern int     create_stack(struct mISDNdevice *);
 extern int     create_teimanager(struct mISDNdevice *);
@@ -71,7 +71,7 @@ extern void   mISDN_timer_cleanup(void);
 
 extern int     l1_init(u_int *);
 extern void    l1_cleanup(void);
-extern int     Isdnl2_Init(u_int *);
+extern int     Isdnl2_Init(u_int *);
 extern void    Isdnl2_cleanup(void);
 
 extern void    mISDN_init_clock(u_int *);
index 8549431..afe4173 100644 (file)
@@ -24,8 +24,8 @@
  * bit 1 = enable hfc hardware acceleration for all channels
  *
  */
-#define DSP_OPT_ULAW           (1<<0)
-#define DSP_OPT_NOHARDWARE     (1<<1)
+#define DSP_OPT_ULAW           (1 << 0)
+#define DSP_OPT_NOHARDWARE     (1 << 1)
 
 #include <linux/timer.h>
 #include <linux/workqueue.h>
@@ -97,12 +97,12 @@ struct dsp_conf_member {
 struct dsp_conf {
        struct list_head        list;
        u32                     id;
-                               /* all cmx stacks with the same ID are
-                                connected */
+       /* all cmx stacks with the same ID are
+          connected */
        struct list_head        mlist;
        int                     software; /* conf is processed by software */
        int                     hardware; /* conf is processed by hardware */
-                               /* note: if both unset, has only one member */
+       /* note: if both unset, has only one member */
 };
 
 
@@ -122,7 +122,7 @@ struct dsp_dtmf {
        int             hardware; /* dtmf uses hardware decoding */
        int             size; /* number of bytes in buffer */
        signed short    buffer[DSP_DTMF_NPOINTS];
-               /* buffers one full dtmf frame */
+       /* buffers one full dtmf frame */
        u8              lastwhat, lastdigit;
        int             count;
        u8              digits[16]; /* dtmf result */
@@ -189,7 +189,7 @@ struct dsp {
        u32             conf_id;
        struct dsp_conf *conf;
        struct dsp_conf_member
-                       *member;
+       *member;
 
        /* buffer stuff */
        int             rx_W; /* current write pos for data without timestamp */
@@ -203,7 +203,7 @@ struct dsp {
        u8              rx_buff[CMX_BUFF_SIZE];
        int             last_tx; /* if set, we transmitted last poll interval */
        int             cmx_delay; /* initial delay of buffers,
-                               or 0 for dynamic jitter buffer */
+                                     or 0 for dynamic jitter buffer */
        int             tx_dejitter; /* if set, dejitter tx buffer */
        int             tx_data; /* enables tx-data of CMX to upper layer */
 
@@ -231,7 +231,7 @@ struct dsp {
        int             bf_sync;
 
        struct dsp_pipeline
-                       pipeline;
+       pipeline;
 };
 
 /* functions */
@@ -253,7 +253,7 @@ extern int dsp_cmx_del_conf(struct dsp_conf *conf);
 extern void dsp_dtmf_goertzel_init(struct dsp *dsp);
 extern void dsp_dtmf_hardware(struct dsp *dsp);
 extern u8 *dsp_dtmf_goertzel_decode(struct dsp *dsp, u8 *data, int len,
-               int fmt);
+                                   int fmt);
 
 extern int dsp_tone(struct dsp *dsp, int tone);
 extern void dsp_tone_copy(struct dsp *dsp, u8 *data, int len);
@@ -270,7 +270,6 @@ extern int  dsp_pipeline_init(struct dsp_pipeline *pipeline);
 extern void dsp_pipeline_destroy(struct dsp_pipeline *pipeline);
 extern int  dsp_pipeline_build(struct dsp_pipeline *pipeline, const char *cfg);
 extern void dsp_pipeline_process_tx(struct dsp_pipeline *pipeline, u8 *data,
-               int len);
+                                   int len);
 extern void dsp_pipeline_process_rx(struct dsp_pipeline *pipeline, u8 *data,
-               int len, unsigned int txlen);
-
+                                   int len, unsigned int txlen);
index b8f18bd..0602295 100644 (file)
@@ -61,7 +61,7 @@ static inline unsigned char linear2alaw(short int linear)
        }
 
        /* Convert the scaled magnitude to segment number. */
-       for (seg = 0;  seg < 8;  seg++) {
+       for (seg = 0; seg < 8; seg++) {
                if (pcm_val <= seg_end[seg])
                        break;
        }
@@ -263,7 +263,7 @@ dsp_audio_generate_mix_table(void)
                                sample = 32767;
                        if (sample < -32768)
                                sample = -32768;
-                       dsp_audio_mix_law[(i<<8)|j] =
+                       dsp_audio_mix_law[(i << 8) | j] =
                                dsp_audio_s16_to_law[sample & 0xffff];
                        j++;
                }
@@ -431,4 +431,3 @@ dsp_change_volume(struct sk_buff *skb, int volume)
                i++;
        }
 }
-
index 038191b..c0c933a 100644 (file)
@@ -38,7 +38,7 @@ struct biquad2_state {
 };
 
 static inline void biquad2_init(struct biquad2_state *bq,
-    int32_t gain, int32_t a1, int32_t a2, int32_t b1, int32_t b2)
+                               int32_t gain, int32_t a1, int32_t a2, int32_t b1, int32_t b2)
 {
        bq->gain = gain;
        bq->a1 = a1;
@@ -55,8 +55,8 @@ static inline int16_t biquad2(struct biquad2_state *bq, int16_t sample)
        int32_t y;
        int32_t z0;
 
-       z0 = sample*bq->gain + bq->z1*bq->a1 + bq->z2*bq->a2;
-       y = z0 + bq->z1*bq->b1 + bq->z2*bq->b2;
+       z0 = sample * bq->gain + bq->z1 * bq->a1 + bq->z2 * bq->a2;
+       y = z0 + bq->z1 * bq->b1 + bq->z2 * bq->b2;
 
        bq->z2 = bq->z1;
        bq->z1 = z0 >> 15;
index 18e411e..0aa572f 100644 (file)
@@ -354,8 +354,8 @@ static const u32 bf_sbox[256 * 4] = {
 #define GET32_1(x) (((x) >> (16)) & (0xff))
 #define GET32_0(x) (((x) >> (24)) & (0xff))
 
-#define bf_F(x) (((S[GET32_0(x)] + S[256 + GET32_1(x)]) ^ \
-    S[512 + GET32_2(x)]) + S[768 + GET32_3(x)])
+#define bf_F(x) (((S[GET32_0(x)] + S[256 + GET32_1(x)]) ^      \
+                 S[512 + GET32_2(x)]) + S[768 + GET32_3(x)])
 
 #define EROUND(a, b, n)  do { b ^= P[n]; a ^= bf_F(b); } while (0)
 #define DROUND(a, b, n)  do { a ^= bf_F(b); b ^= P[n]; } while (0)
@@ -388,17 +388,17 @@ dsp_bf_encrypt(struct dsp *dsp, u8 *data, int len)
                j = 0;
                /* transcode 9 samples xlaw to 8 bytes */
                yl = dsp_audio_law2seven[bf_data_in[0]];
-               yl = (yl<<7) | dsp_audio_law2seven[bf_data_in[1]];
-               yl = (yl<<7) | dsp_audio_law2seven[bf_data_in[2]];
-               yl = (yl<<7) | dsp_audio_law2seven[bf_data_in[3]];
+               yl = (yl << 7) | dsp_audio_law2seven[bf_data_in[1]];
+               yl = (yl << 7) | dsp_audio_law2seven[bf_data_in[2]];
+               yl = (yl << 7) | dsp_audio_law2seven[bf_data_in[3]];
                nibble = dsp_audio_law2seven[bf_data_in[4]];
                yr = nibble;
-               yl = (yl<<4) | (nibble>>3);
-               yr = (yr<<7) | dsp_audio_law2seven[bf_data_in[5]];
-               yr = (yr<<7) | dsp_audio_law2seven[bf_data_in[6]];
-               yr = (yr<<7) | dsp_audio_law2seven[bf_data_in[7]];
-               yr = (yr<<7) | dsp_audio_law2seven[bf_data_in[8]];
-               yr = (yr<<1) | (bf_data_in[0] & 1);
+               yl = (yl << 4) | (nibble >> 3);
+               yr = (yr << 7) | dsp_audio_law2seven[bf_data_in[5]];
+               yr = (yr << 7) | dsp_audio_law2seven[bf_data_in[6]];
+               yr = (yr << 7) | dsp_audio_law2seven[bf_data_in[7]];
+               yr = (yr << 7) | dsp_audio_law2seven[bf_data_in[8]];
+               yr = (yr << 1) | (bf_data_in[0] & 1);
 
                /* fill unused bit with random noise of audio input */
                /* encrypt */
@@ -423,24 +423,24 @@ dsp_bf_encrypt(struct dsp *dsp, u8 *data, int len)
                yr ^= P[17];
 
                /* calculate 3-bit checksumme */
-               cs = yl ^ (yl>>3) ^ (yl>>6) ^ (yl>>9) ^ (yl>>12) ^ (yl>>15)
-                       ^ (yl>>18) ^ (yl>>21) ^ (yl>>24) ^ (yl>>27) ^ (yl>>30)
-                       ^ (yr<<2) ^ (yr>>1) ^ (yr>>4) ^ (yr>>7) ^ (yr>>10)
-                       ^ (yr>>13) ^ (yr>>16) ^ (yr>>19) ^ (yr>>22) ^ (yr>>25)
-                       ^ (yr>>28) ^ (yr>>31);
+               cs = yl ^ (yl >> 3) ^ (yl >> 6) ^ (yl >> 9) ^ (yl >> 12) ^ (yl >> 15)
+                       ^ (yl >> 18) ^ (yl >> 21) ^ (yl >> 24) ^ (yl >> 27) ^ (yl >> 30)
+                       ^ (yr << 2) ^ (yr >> 1) ^ (yr >> 4) ^ (yr >> 7) ^ (yr >> 10)
+                       ^ (yr >> 13) ^ (yr >> 16) ^ (yr >> 19) ^ (yr >> 22) ^ (yr >> 25)
+                       ^ (yr >> 28) ^ (yr >> 31);
 
                /*
                 * transcode 8 crypted bytes to 9 data bytes with sync
                 * and checksum information
                 */
-               bf_crypt_out[0] = (yl>>25) | 0x80;
-               bf_crypt_out[1] = (yl>>18) & 0x7f;
-               bf_crypt_out[2] = (yl>>11) & 0x7f;
-               bf_crypt_out[3] = (yl>>4) & 0x7f;
-               bf_crypt_out[4] = ((yl<<3) & 0x78) | ((yr>>29) & 0x07);
-               bf_crypt_out[5] = ((yr>>22) & 0x7f) | ((cs<<5) & 0x80);
-               bf_crypt_out[6] = ((yr>>15) & 0x7f) | ((cs<<6) & 0x80);
-               bf_crypt_out[7] = ((yr>>8) & 0x7f) | (cs<<7);
+               bf_crypt_out[0] = (yl >> 25) | 0x80;
+               bf_crypt_out[1] = (yl >> 18) & 0x7f;
+               bf_crypt_out[2] = (yl >> 11) & 0x7f;
+               bf_crypt_out[3] = (yl >> 4) & 0x7f;
+               bf_crypt_out[4] = ((yl << 3) & 0x78) | ((yr >> 29) & 0x07);
+               bf_crypt_out[5] = ((yr >> 22) & 0x7f) | ((cs << 5) & 0x80);
+               bf_crypt_out[6] = ((yr >> 15) & 0x7f) | ((cs << 6) & 0x80);
+               bf_crypt_out[7] = ((yr >> 8) & 0x7f) | (cs << 7);
                bf_crypt_out[8] = yr;
        }
 
@@ -474,45 +474,45 @@ dsp_bf_decrypt(struct dsp *dsp, u8 *data, int len)
                 * shift upper bit and rotate data to buffer ring
                 * send current decrypted data
                 */
-               sync = (sync<<1) | ((*data)>>7);
+               sync = (sync << 1) | ((*data) >> 7);
                bf_crypt_inring[j++ & 15] = *data;
                *data++ = bf_data_out[k++];
                i++;
                if (k == 9)
                        k = 0; /* repeat if no sync has been found */
                /* check if not in sync */
-               if ((sync&0x1f0) != 0x100)
+               if ((sync & 0x1f0) != 0x100)
                        continue;
                j -= 9;
                /* transcode receive data to 64 bit block of encrypted data */
                yl = bf_crypt_inring[j++ & 15];
-               yl = (yl<<7) | bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
-               yl = (yl<<7) | bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
-               yl = (yl<<7) | bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
+               yl = (yl << 7) | bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
+               yl = (yl << 7) | bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
+               yl = (yl << 7) | bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
                nibble = bf_crypt_inring[j++ & 15]; /* bit7 = 0 */
                yr = nibble;
-               yl = (yl<<4) | (nibble>>3);
+               yl = (yl << 4) | (nibble >> 3);
                cs2 = bf_crypt_inring[j++ & 15];
-               yr = (yr<<7) | (cs2 & 0x7f);
+               yr = (yr << 7) | (cs2 & 0x7f);
                cs1 = bf_crypt_inring[j++ & 15];
-               yr = (yr<<7) | (cs1 & 0x7f);
+               yr = (yr << 7) | (cs1 & 0x7f);
                cs0 = bf_crypt_inring[j++ & 15];
-               yr = (yr<<7) | (cs0 & 0x7f);
-               yr = (yr<<8) | bf_crypt_inring[j++ & 15];
+               yr = (yr << 7) | (cs0 & 0x7f);
+               yr = (yr << 8) | bf_crypt_inring[j++ & 15];
 
                /* calculate 3-bit checksumme */
-               cs = yl ^ (yl>>3) ^ (yl>>6) ^ (yl>>9) ^ (yl>>12) ^ (yl>>15)
-                       ^ (yl>>18) ^ (yl>>21) ^ (yl>>24) ^ (yl>>27) ^ (yl>>30)
-                       ^ (yr<<2) ^ (yr>>1) ^ (yr>>4) ^ (yr>>7) ^ (yr>>10)
-                       ^ (yr>>13) ^ (yr>>16) ^ (yr>>19) ^ (yr>>22) ^ (yr>>25)
-                       ^ (yr>>28) ^ (yr>>31);
+               cs = yl ^ (yl >> 3) ^ (yl >> 6) ^ (yl >> 9) ^ (yl >> 12) ^ (yl >> 15)
+                       ^ (yl >> 18) ^ (yl >> 21) ^ (yl >> 24) ^ (yl >> 27) ^ (yl >> 30)
+                       ^ (yr << 2) ^ (yr >> 1) ^ (yr >> 4) ^ (yr >> 7) ^ (yr >> 10)
+                       ^ (yr >> 13) ^ (yr >> 16) ^ (yr >> 19) ^ (yr >> 22) ^ (yr >> 25)
+                       ^ (yr >> 28) ^ (yr >> 31);
 
                /* check if frame is valid */
-               if ((cs&0x7) != (((cs2>>5)&4) | ((cs1>>6)&2) | (cs0 >> 7))) {
+               if ((cs & 0x7) != (((cs2 >> 5) & 4) | ((cs1 >> 6) & 2) | (cs0 >> 7))) {
                        if (dsp_debug & DEBUG_DSP_BLOWFISH)
                                printk(KERN_DEBUG
-                                   "DSP BLOWFISH: received corrupt frame, "
-                                   "checksumme is not correct\n");
+                                      "DSP BLOWFISH: received corrupt frame, "
+                                      "checksumme is not correct\n");
                        continue;
                }
 
@@ -537,17 +537,17 @@ dsp_bf_decrypt(struct dsp *dsp, u8 *data, int len)
                DROUND(yr, yl, 0);
 
                /* transcode 8 crypted bytes to 9 sample bytes */
-               bf_data_out[0] = dsp_audio_seven2law[(yl>>25) & 0x7f];
-               bf_data_out[1] = dsp_audio_seven2law[(yl>>18) & 0x7f];
-               bf_data_out[2] = dsp_audio_seven2law[(yl>>11) & 0x7f];
-               bf_data_out[3] = dsp_audio_seven2law[(yl>>4) & 0x7f];
-               bf_data_out[4] = dsp_audio_seven2law[((yl<<3) & 0x78) |
-                   ((yr>>29) & 0x07)];
-
-               bf_data_out[5] = dsp_audio_seven2law[(yr>>22) & 0x7f];
-               bf_data_out[6] = dsp_audio_seven2law[(yr>>15) & 0x7f];
-               bf_data_out[7] = dsp_audio_seven2law[(yr>>8) & 0x7f];
-               bf_data_out[8] = dsp_audio_seven2law[(yr>>1) & 0x7f];
+               bf_data_out[0] = dsp_audio_seven2law[(yl >> 25) & 0x7f];
+               bf_data_out[1] = dsp_audio_seven2law[(yl >> 18) & 0x7f];
+               bf_data_out[2] = dsp_audio_seven2law[(yl >> 11) & 0x7f];
+               bf_data_out[3] = dsp_audio_seven2law[(yl >> 4) & 0x7f];
+               bf_data_out[4] = dsp_audio_seven2law[((yl << 3) & 0x78) |
+                                                    ((yr >> 29) & 0x07)];
+
+               bf_data_out[5] = dsp_audio_seven2law[(yr >> 22) & 0x7f];
+               bf_data_out[6] = dsp_audio_seven2law[(yr >> 15) & 0x7f];
+               bf_data_out[7] = dsp_audio_seven2law[(yr >> 8) & 0x7f];
+               bf_data_out[8] = dsp_audio_seven2law[(yr >> 1) & 0x7f];
                k = 0; /* start with new decoded frame */
        }
 
@@ -631,9 +631,9 @@ dsp_bf_init(struct dsp *dsp, const u8 *key, uint keylen)
        /* Actual subkey generation */
        for (j = 0, i = 0; i < 16 + 2; i++) {
                temp = (((u32)key[j] << 24) |
-                   ((u32)key[(j + 1) % keylen] << 16) |
-                   ((u32)key[(j + 2) % keylen] << 8) |
-                   ((u32)key[(j + 3) % keylen]));
+                       ((u32)key[(j + 1) % keylen] << 16) |
+                       ((u32)key[(j + 2) % keylen] << 8) |
+                       ((u32)key[(j + 3) % keylen]));
 
                P[i] = P[i] ^ temp;
                j = (j + 4) % keylen;
index 4d395de..334feab 100644 (file)
@@ -165,8 +165,8 @@ dsp_cmx_debug(struct dsp *dsp)
        printk(KERN_DEBUG "-----Current DSP\n");
        list_for_each_entry(odsp, &dsp_ilist, list) {
                printk(KERN_DEBUG "* %s hardecho=%d softecho=%d txmix=%d",
-                   odsp->name, odsp->echo.hardware, odsp->echo.software,
-                   odsp->tx_mix);
+                      odsp->name, odsp->echo.hardware, odsp->echo.software,
+                      odsp->tx_mix);
                if (odsp->conf)
                        printk(" (Conf %d)", odsp->conf->id);
                if (dsp == odsp)
@@ -178,14 +178,14 @@ dsp_cmx_debug(struct dsp *dsp)
                printk(KERN_DEBUG "* Conf %d (%p)\n", conf->id, conf);
                list_for_each_entry(member, &conf->mlist, list) {
                        printk(KERN_DEBUG
-                           "  - member = %s (slot_tx %d, bank_tx %d, "
-                           "slot_rx %d, bank_rx %d hfc_conf %d "
-                           "tx_data %d rx_is_off %d)%s\n",
-                           member->dsp->name, member->dsp->pcm_slot_tx,
-                           member->dsp->pcm_bank_tx, member->dsp->pcm_slot_rx,
-                           member->dsp->pcm_bank_rx, member->dsp->hfc_conf,
-                           member->dsp->tx_data, member->dsp->rx_is_off,
-                           (member->dsp == dsp) ? " *this*" : "");
+                              "  - member = %s (slot_tx %d, bank_tx %d, "
+                              "slot_rx %d, bank_rx %d hfc_conf %d "
+                              "tx_data %d rx_is_off %d)%s\n",
+                              member->dsp->name, member->dsp->pcm_slot_tx,
+                              member->dsp->pcm_bank_tx, member->dsp->pcm_slot_rx,
+                              member->dsp->pcm_bank_rx, member->dsp->hfc_conf,
+                              member->dsp->tx_data, member->dsp->rx_is_off,
+                              (member->dsp == dsp) ? " *this*" : "");
                }
        }
        printk(KERN_DEBUG "-----end\n");
@@ -227,13 +227,13 @@ dsp_cmx_add_conf_member(struct dsp *dsp, struct dsp_conf *conf)
        }
        if (dsp->member) {
                printk(KERN_WARNING "%s: dsp is already member in a conf.\n",
-                       __func__);
+                      __func__);
                return -EINVAL;
        }
 
        if (dsp->conf) {
                printk(KERN_WARNING "%s: dsp is already in a conf.\n",
-                       __func__);
+                      __func__);
                return -EINVAL;
        }
 
@@ -268,19 +268,19 @@ dsp_cmx_del_conf_member(struct dsp *dsp)
 
        if (!dsp) {
                printk(KERN_WARNING "%s: dsp is 0.\n",
-                       __func__);
+                      __func__);
                return -EINVAL;
        }
 
        if (!dsp->conf) {
                printk(KERN_WARNING "%s: dsp is not in a conf.\n",
-                       __func__);
+                      __func__);
                return -EINVAL;
        }
 
        if (list_empty(&dsp->conf->mlist)) {
                printk(KERN_WARNING "%s: dsp has linked an empty conf.\n",
-                       __func__);
+                      __func__);
                return -EINVAL;
        }
 
@@ -295,8 +295,8 @@ dsp_cmx_del_conf_member(struct dsp *dsp)
                }
        }
        printk(KERN_WARNING
-           "%s: dsp is not present in its own conf_meber list.\n",
-           __func__);
+              "%s: dsp is not present in its own conf_meber list.\n",
+              __func__);
 
        return -EINVAL;
 }
@@ -312,7 +312,7 @@ static struct dsp_conf
 
        if (!id) {
                printk(KERN_WARNING "%s: id is 0.\n",
-                   __func__);
+                      __func__);
                return NULL;
        }
 
@@ -338,13 +338,13 @@ dsp_cmx_del_conf(struct dsp_conf *conf)
 {
        if (!conf) {
                printk(KERN_WARNING "%s: conf is null.\n",
-                   __func__);
+                      __func__);
                return -EINVAL;
        }
 
        if (!list_empty(&conf->mlist)) {
                printk(KERN_WARNING "%s: conf not empty.\n",
-                   __func__);
+                      __func__);
                return -EINVAL;
        }
        list_del(&conf->list);
@@ -359,7 +359,7 @@ dsp_cmx_del_conf(struct dsp_conf *conf)
  */
 static void
 dsp_cmx_hw_message(struct dsp *dsp, u32 message, u32 param1, u32 param2,
-    u32 param3, u32 param4)
+                  u32 param3, u32 param4)
 {
        struct mISDN_ctrl_req cq;
 
@@ -389,7 +389,7 @@ dsp_cmx_hardware(struct dsp_conf *conf, struct dsp *dsp)
        int             freeunits[8];
        u_char          freeslots[256];
        int             same_hfc = -1, same_pcm = -1, current_conf = -1,
-           all_conf = 1, tx_data = 0;
+               all_conf = 1, tx_data = 0;
 
        /* dsp gets updated (no conf) */
        if (!conf) {
@@ -397,17 +397,17 @@ dsp_cmx_hardware(struct dsp_conf *conf, struct dsp *dsp)
                        return;
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG "%s checking dsp %s\n",
-                           __func__, dsp->name);
-one_member:
+                              __func__, dsp->name);
+       one_member:
                /* remove HFC conference if enabled */
                if (dsp->hfc_conf >= 0) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s removing %s from HFC conf %d "
-                                   "because dsp is split\n", __func__,
-                                   dsp->name, dsp->hfc_conf);
+                                      "%s removing %s from HFC conf %d "
+                                      "because dsp is split\n", __func__,
+                                      dsp->name, dsp->hfc_conf);
                        dsp_cmx_hw_message(dsp, MISDN_CTRL_HFC_CONF_SPLIT,
-                           0, 0, 0, 0);
+                                          0, 0, 0, 0);
                        dsp->hfc_conf = -1;
                }
                /* process hw echo */
@@ -418,12 +418,12 @@ one_member:
                        if (dsp->pcm_slot_tx >= 0 || dsp->pcm_slot_rx >= 0) {
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG "%s removing %s from"
-                                           " PCM slot %d (TX) %d (RX) because"
-                                           " dsp is split (no echo)\n",
-                                           __func__, dsp->name,
-                                           dsp->pcm_slot_tx, dsp->pcm_slot_rx);
+                                              " PCM slot %d (TX) %d (RX) because"
+                                              " dsp is split (no echo)\n",
+                                              __func__, dsp->name,
+                                              dsp->pcm_slot_tx, dsp->pcm_slot_rx);
                                dsp_cmx_hw_message(dsp, MISDN_CTRL_HFC_PCM_DISC,
-                                   0, 0, 0, 0);
+                                                  0, 0, 0, 0);
                                dsp->pcm_slot_tx = -1;
                                dsp->pcm_bank_tx = -1;
                                dsp->pcm_slot_rx = -1;
@@ -447,11 +447,11 @@ one_member:
                        dsp->pcm_bank_rx = 2;
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s refresh %s for echo using slot %d\n",
-                                   __func__, dsp->name,
-                                   dsp->pcm_slot_tx);
+                                      "%s refresh %s for echo using slot %d\n",
+                                      __func__, dsp->name,
+                                      dsp->pcm_slot_tx);
                        dsp_cmx_hw_message(dsp, MISDN_CTRL_HFC_PCM_CONN,
-                           dsp->pcm_slot_tx, 2, dsp->pcm_slot_rx, 2);
+                                          dsp->pcm_slot_tx, 2, dsp->pcm_slot_rx, 2);
                        dsp->echo.hardware = 1;
                        return;
                }
@@ -479,8 +479,8 @@ one_member:
                if (i == ii) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s no slot available for echo\n",
-                                   __func__);
+                                      "%s no slot available for echo\n",
+                                      __func__);
                        /* no more slots available */
                        dsp->echo.software = 1;
                        return;
@@ -492,10 +492,10 @@ one_member:
                dsp->pcm_bank_rx = 2;
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG
-                           "%s assign echo for %s using slot %d\n",
-                           __func__, dsp->name, dsp->pcm_slot_tx);
+                              "%s assign echo for %s using slot %d\n",
+                              __func__, dsp->name, dsp->pcm_slot_tx);
                dsp_cmx_hw_message(dsp, MISDN_CTRL_HFC_PCM_CONN,
-                   dsp->pcm_slot_tx, 2, dsp->pcm_slot_rx, 2);
+                                  dsp->pcm_slot_tx, 2, dsp->pcm_slot_rx, 2);
                dsp->echo.hardware = 1;
                return;
        }
@@ -503,11 +503,11 @@ one_member:
        /* conf gets updated (all members) */
        if (dsp_debug & DEBUG_DSP_CMX)
                printk(KERN_DEBUG "%s checking conference %d\n",
-                   __func__, conf->id);
+                      __func__, conf->id);
 
        if (list_empty(&conf->mlist)) {
                printk(KERN_ERR "%s: conference whithout members\n",
-                   __func__);
+                      __func__);
                return;
        }
        member = list_entry(conf->mlist.next, struct dsp_conf_member, list);
@@ -519,25 +519,25 @@ one_member:
                if (member->dsp->tx_mix) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "tx_mix is turned on\n", __func__,
-                                   member->dsp->name);
-conf_software:
+                                      "%s dsp %s cannot form a conf, because "
+                                      "tx_mix is turned on\n", __func__,
+                                      member->dsp->name);
+               conf_software:
                        list_for_each_entry(member, &conf->mlist, list) {
                                dsp = member->dsp;
                                /* remove HFC conference if enabled */
                                if (dsp->hfc_conf >= 0) {
                                        if (dsp_debug & DEBUG_DSP_CMX)
                                                printk(KERN_DEBUG
-                                                   "%s removing %s from HFC "
-                                                   "conf %d because not "
-                                                   "possible with hardware\n",
-                                                   __func__,
-                                                   dsp->name,
-                                                   dsp->hfc_conf);
+                                                      "%s removing %s from HFC "
+                                                      "conf %d because not "
+                                                      "possible with hardware\n",
+                                                      __func__,
+                                                      dsp->name,
+                                                      dsp->hfc_conf);
                                        dsp_cmx_hw_message(dsp,
-                                           MISDN_CTRL_HFC_CONF_SPLIT,
-                                           0, 0, 0, 0);
+                                                          MISDN_CTRL_HFC_CONF_SPLIT,
+                                                          0, 0, 0, 0);
                                        dsp->hfc_conf = -1;
                                }
                                /* remove PCM slot if assigned */
@@ -545,16 +545,16 @@ conf_software:
                                    dsp->pcm_slot_rx >= 0) {
                                        if (dsp_debug & DEBUG_DSP_CMX)
                                                printk(KERN_DEBUG "%s removing "
-                                                   "%s from PCM slot %d (TX)"
-                                                   " slot %d (RX) because not"
-                                                   " possible with hardware\n",
-                                                   __func__,
-                                                   dsp->name,
-                                                   dsp->pcm_slot_tx,
-                                                   dsp->pcm_slot_rx);
+                                                      "%s from PCM slot %d (TX)"
+                                                      " slot %d (RX) because not"
+                                                      " possible with hardware\n",
+                                                      __func__,
+                                                      dsp->name,
+                                                      dsp->pcm_slot_tx,
+                                                      dsp->pcm_slot_rx);
                                        dsp_cmx_hw_message(dsp,
-                                           MISDN_CTRL_HFC_PCM_DISC,
-                                           0, 0, 0, 0);
+                                                          MISDN_CTRL_HFC_PCM_DISC,
+                                                          0, 0, 0, 0);
                                        dsp->pcm_slot_tx = -1;
                                        dsp->pcm_bank_tx = -1;
                                        dsp->pcm_slot_rx = -1;
@@ -569,79 +569,79 @@ conf_software:
                if (member->dsp->echo.hardware || member->dsp->echo.software) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "echo is turned on\n", __func__,
-                                   member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "echo is turned on\n", __func__,
+                                      member->dsp->name);
                        goto conf_software;
                }
                /* check if member has tx_mix turned on */
                if (member->dsp->tx_mix) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "tx_mix is turned on\n",
-                                   __func__, member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "tx_mix is turned on\n",
+                                      __func__, member->dsp->name);
                        goto conf_software;
                }
                /* check if member changes volume at an not suppoted level */
                if (member->dsp->tx_volume) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "tx_volume is changed\n",
-                                   __func__, member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "tx_volume is changed\n",
+                                      __func__, member->dsp->name);
                        goto conf_software;
                }
                if (member->dsp->rx_volume) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "rx_volume is changed\n",
-                                   __func__, member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "rx_volume is changed\n",
+                                      __func__, member->dsp->name);
                        goto conf_software;
                }
                /* check if tx-data turned on */
                if (member->dsp->tx_data) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s tx_data is turned on\n",
-                                   __func__, member->dsp->name);
+                                      "%s dsp %s tx_data is turned on\n",
+                                      __func__, member->dsp->name);
                        tx_data = 1;
                }
                /* check if pipeline exists */
                if (member->dsp->pipeline.inuse) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "pipeline exists\n", __func__,
-                                   member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "pipeline exists\n", __func__,
+                                      member->dsp->name);
                        goto conf_software;
                }
                /* check if encryption is enabled */
                if (member->dsp->bf_enable) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG "%s dsp %s cannot form a "
-                                   "conf, because encryption is enabled\n",
-                                   __func__, member->dsp->name);
+                                      "conf, because encryption is enabled\n",
+                                      __func__, member->dsp->name);
                        goto conf_software;
                }
                /* check if member is on a card with PCM support */
                if (member->dsp->features.pcm_id < 0) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "dsp has no PCM bus\n",
-                                   __func__, member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "dsp has no PCM bus\n",
+                                      __func__, member->dsp->name);
                        goto conf_software;
                }
                /* check if relations are on the same PCM bus */
                if (member->dsp->features.pcm_id != same_pcm) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s dsp %s cannot form a conf, because "
-                                   "dsp is on a different PCM bus than the "
-                                   "first dsp\n",
-                                   __func__, member->dsp->name);
+                                      "%s dsp %s cannot form a conf, because "
+                                      "dsp is on a different PCM bus than the "
+                                      "first dsp\n",
+                                      __func__, member->dsp->name);
                        goto conf_software;
                }
                /* determine if members are on the same hfc chip */
@@ -665,12 +665,12 @@ conf_software:
        if (memb == 1) {
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG
-                           "%s conf %d cannot form a HW conference, "
-                           "because dsp is alone\n", __func__, conf->id);
+                              "%s conf %d cannot form a HW conference, "
+                              "because dsp is alone\n", __func__, conf->id);
                conf->hardware = 0;
                conf->software = 0;
                member = list_entry(conf->mlist.next, struct dsp_conf_member,
-                       list);
+                                   list);
                dsp = member->dsp;
                goto one_member;
        }
@@ -684,30 +684,30 @@ conf_software:
        /* if we have only two members */
        if (memb == 2) {
                member = list_entry(conf->mlist.next, struct dsp_conf_member,
-                       list);
+                                   list);
                nextm = list_entry(member->list.next, struct dsp_conf_member,
-                       list);
+                                  list);
                /* remove HFC conference if enabled */
                if (member->dsp->hfc_conf >= 0) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s removing %s from HFC conf %d because "
-                                   "two parties require only a PCM slot\n",
-                                   __func__, member->dsp->name,
-                                   member->dsp->hfc_conf);
+                                      "%s removing %s from HFC conf %d because "
+                                      "two parties require only a PCM slot\n",
+                                      __func__, member->dsp->name,
+                                      member->dsp->hfc_conf);
                        dsp_cmx_hw_message(member->dsp,
-                           MISDN_CTRL_HFC_CONF_SPLIT, 0, 0, 0, 0);
+                                          MISDN_CTRL_HFC_CONF_SPLIT, 0, 0, 0, 0);
                        member->dsp->hfc_conf = -1;
                }
                if (nextm->dsp->hfc_conf >= 0) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s removing %s from HFC conf %d because "
-                                   "two parties require only a PCM slot\n",
-                                   __func__, nextm->dsp->name,
-                                   nextm->dsp->hfc_conf);
+                                      "%s removing %s from HFC conf %d because "
+                                      "two parties require only a PCM slot\n",
+                                      __func__, nextm->dsp->name,
+                                      nextm->dsp->hfc_conf);
                        dsp_cmx_hw_message(nextm->dsp,
-                           MISDN_CTRL_HFC_CONF_SPLIT, 0, 0, 0, 0);
+                                          MISDN_CTRL_HFC_CONF_SPLIT, 0, 0, 0, 0);
                        nextm->dsp->hfc_conf = -1;
                }
                /* if members have two banks (and not on the same chip) */
@@ -733,15 +733,15 @@ conf_software:
                                /* all members have same slot */
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG
-                                           "%s dsp %s & %s stay joined on "
-                                           "PCM slot %d bank %d (TX) bank %d "
-                                           "(RX) (on different chips)\n",
-                                           __func__,
-                                           member->dsp->name,
-                                           nextm->dsp->name,
-                                           member->dsp->pcm_slot_tx,
-                                           member->dsp->pcm_bank_tx,
-                                           member->dsp->pcm_bank_rx);
+                                              "%s dsp %s & %s stay joined on "
+                                              "PCM slot %d bank %d (TX) bank %d "
+                                              "(RX) (on different chips)\n",
+                                              __func__,
+                                              member->dsp->name,
+                                              nextm->dsp->name,
+                                              member->dsp->pcm_slot_tx,
+                                              member->dsp->pcm_bank_tx,
+                                              member->dsp->pcm_bank_rx);
                                conf->hardware = 0;
                                conf->software = 1;
                                return;
@@ -773,10 +773,10 @@ conf_software:
                        if (i == ii) {
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG
-                                           "%s no slot available for "
-                                           "%s & %s\n", __func__,
-                                           member->dsp->name,
-                                           nextm->dsp->name);
+                                              "%s no slot available for "
+                                              "%s & %s\n", __func__,
+                                              member->dsp->name,
+                                              nextm->dsp->name);
                                /* no more slots available */
                                goto conf_software;
                        }
@@ -791,23 +791,23 @@ conf_software:
                        nextm->dsp->pcm_bank_tx = 0;
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s adding %s & %s to new PCM slot %d "
-                                   "(TX and RX on different chips) because "
-                                   "both members have not same slots\n",
-                                   __func__,
-                                   member->dsp->name,
-                                   nextm->dsp->name,
-                                   member->dsp->pcm_slot_tx);
+                                      "%s adding %s & %s to new PCM slot %d "
+                                      "(TX and RX on different chips) because "
+                                      "both members have not same slots\n",
+                                      __func__,
+                                      member->dsp->name,
+                                      nextm->dsp->name,
+                                      member->dsp->pcm_slot_tx);
                        dsp_cmx_hw_message(member->dsp, MISDN_CTRL_HFC_PCM_CONN,
-                           member->dsp->pcm_slot_tx, member->dsp->pcm_bank_tx,
-                           member->dsp->pcm_slot_rx, member->dsp->pcm_bank_rx);
+                                          member->dsp->pcm_slot_tx, member->dsp->pcm_bank_tx,
+                                          member->dsp->pcm_slot_rx, member->dsp->pcm_bank_rx);
                        dsp_cmx_hw_message(nextm->dsp, MISDN_CTRL_HFC_PCM_CONN,
-                           nextm->dsp->pcm_slot_tx, nextm->dsp->pcm_bank_tx,
-                           nextm->dsp->pcm_slot_rx, nextm->dsp->pcm_bank_rx);
+                                          nextm->dsp->pcm_slot_tx, nextm->dsp->pcm_bank_tx,
+                                          nextm->dsp->pcm_slot_rx, nextm->dsp->pcm_bank_rx);
                        conf->hardware = 1;
                        conf->software = tx_data;
                        return;
-               /* if members have one bank (or on the same chip) */
+                       /* if members have one bank (or on the same chip) */
                } else {
                        /* if both members have different crossed slots */
                        if (member->dsp->pcm_slot_tx >= 0 &&
@@ -827,13 +827,13 @@ conf_software:
                                /* all members have same slot */
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG
-                                           "%s dsp %s & %s stay joined on PCM "
-                                           "slot %d (TX) %d (RX) on same chip "
-                                           "or one bank PCM)\n", __func__,
-                                           member->dsp->name,
-                                           nextm->dsp->name,
-                                           member->dsp->pcm_slot_tx,
-                                           member->dsp->pcm_slot_rx);
+                                              "%s dsp %s & %s stay joined on PCM "
+                                              "slot %d (TX) %d (RX) on same chip "
+                                              "or one bank PCM)\n", __func__,
+                                              member->dsp->name,
+                                              nextm->dsp->name,
+                                              member->dsp->pcm_slot_tx,
+                                              member->dsp->pcm_slot_rx);
                                conf->hardware = 0;
                                conf->software = 1;
                                return;
@@ -865,14 +865,14 @@ conf_software:
                        if (i1 == ii) {
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG
-                                           "%s no slot available "
-                                           "for %s & %s\n", __func__,
-                                           member->dsp->name,
-                                           nextm->dsp->name);
+                                              "%s no slot available "
+                                              "for %s & %s\n", __func__,
+                                              member->dsp->name,
+                                              nextm->dsp->name);
                                /* no more slots available */
                                goto conf_software;
                        }
-                       i2 = i1+1;
+                       i2 = i1 + 1;
                        while (i2 < ii) {
                                if (freeslots[i2])
                                        break;
@@ -881,11 +881,11 @@ conf_software:
                        if (i2 == ii) {
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG
-                                           "%s no slot available "
-                                           "for %s & %s\n",
-                                           __func__,
-                                           member->dsp->name,
-                                           nextm->dsp->name);
+                                              "%s no slot available "
+                                              "for %s & %s\n",
+                                              __func__,
+                                              member->dsp->name,
+                                              nextm->dsp->name);
                                /* no more slots available */
                                goto conf_software;
                        }
@@ -900,20 +900,20 @@ conf_software:
                        nextm->dsp->pcm_bank_tx = 0;
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s adding %s & %s to new PCM slot %d "
-                                   "(TX) %d (RX) on same chip or one bank "
-                                   "PCM, because both members have not "
-                                   "crossed slots\n", __func__,
-                                   member->dsp->name,
-                                   nextm->dsp->name,
-                                   member->dsp->pcm_slot_tx,
-                                   member->dsp->pcm_slot_rx);
+                                      "%s adding %s & %s to new PCM slot %d "
+                                      "(TX) %d (RX) on same chip or one bank "
+                                      "PCM, because both members have not "
+                                      "crossed slots\n", __func__,
+                                      member->dsp->name,
+                                      nextm->dsp->name,
+                                      member->dsp->pcm_slot_tx,
+                                      member->dsp->pcm_slot_rx);
                        dsp_cmx_hw_message(member->dsp, MISDN_CTRL_HFC_PCM_CONN,
-                           member->dsp->pcm_slot_tx, member->dsp->pcm_bank_tx,
-                           member->dsp->pcm_slot_rx, member->dsp->pcm_bank_rx);
+                                          member->dsp->pcm_slot_tx, member->dsp->pcm_bank_tx,
+                                          member->dsp->pcm_slot_rx, member->dsp->pcm_bank_rx);
                        dsp_cmx_hw_message(nextm->dsp, MISDN_CTRL_HFC_PCM_CONN,
-                           nextm->dsp->pcm_slot_tx, nextm->dsp->pcm_bank_tx,
-                           nextm->dsp->pcm_slot_rx, nextm->dsp->pcm_bank_rx);
+                                          nextm->dsp->pcm_slot_tx, nextm->dsp->pcm_bank_tx,
+                                          nextm->dsp->pcm_slot_rx, nextm->dsp->pcm_bank_rx);
                        conf->hardware = 1;
                        conf->software = tx_data;
                        return;
@@ -929,10 +929,10 @@ conf_software:
        if (same_hfc < 0) {
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG
-                           "%s conference %d cannot be formed, because "
-                           "members are on different chips or not "
-                           "on HFC chip\n",
-                           __func__, conf->id);
+                              "%s conference %d cannot be formed, because "
+                              "members are on different chips or not "
+                              "on HFC chip\n",
+                              __func__, conf->id);
                goto conf_software;
        }
 
@@ -946,7 +946,7 @@ conf_software:
         * if there is an existing conference, but not all members have joined
         */
        if (current_conf >= 0) {
-join_members:
+       join_members:
                list_for_each_entry(member, &conf->mlist, list) {
                        /* if no conference engine on our chip, change to
                         * software */
@@ -966,10 +966,10 @@ join_members:
                                 * slot will be overwritten.
                                 */
                                if (
-                                   dsp != member->dsp &&
-                               /* dsp must be on the same PCM */
-                                   member->dsp->features.pcm_id ==
-                                   dsp->features.pcm_id) {
+                                       dsp != member->dsp &&
+                                       /* dsp must be on the same PCM */
+                                       member->dsp->features.pcm_id ==
+                                       dsp->features.pcm_id) {
                                        /* dsp must be on a slot */
                                        if (dsp->pcm_slot_tx >= 0 &&
                                            dsp->pcm_slot_tx <
@@ -992,16 +992,16 @@ join_members:
                                /* no more slots available */
                                if (dsp_debug & DEBUG_DSP_CMX)
                                        printk(KERN_DEBUG
-                                           "%s conference %d cannot be formed,"
-                                           " because no slot free\n",
-                                           __func__, conf->id);
+                                              "%s conference %d cannot be formed,"
+                                              " because no slot free\n",
+                                              __func__, conf->id);
                                goto conf_software;
                        }
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "%s changing dsp %s to HW conference "
-                                   "%d slot %d\n", __func__,
-                                   member->dsp->name, current_conf, i);
+                                      "%s changing dsp %s to HW conference "
+                                      "%d slot %d\n", __func__,
+                                      member->dsp->name, current_conf, i);
                        /* assign free slot & set PCM & join conf */
                        member->dsp->pcm_slot_tx = i;
                        member->dsp->pcm_slot_rx = i;
@@ -1009,9 +1009,9 @@ join_members:
                        member->dsp->pcm_bank_rx = 2;
                        member->dsp->hfc_conf = current_conf;
                        dsp_cmx_hw_message(member->dsp, MISDN_CTRL_HFC_PCM_CONN,
-                           i, 2, i, 2);
+                                          i, 2, i, 2);
                        dsp_cmx_hw_message(member->dsp,
-                           MISDN_CTRL_HFC_CONF_JOIN, current_conf, 0, 0, 0);
+                                          MISDN_CTRL_HFC_CONF_JOIN, current_conf, 0, 0, 0);
                }
                return;
        }
@@ -1040,9 +1040,9 @@ join_members:
                /* no more conferences available */
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG
-                           "%s conference %d cannot be formed, because "
-                           "no conference number free\n",
-                           __func__, conf->id);
+                              "%s conference %d cannot be formed, because "
+                              "no conference number free\n",
+                              __func__, conf->id);
                goto conf_software;
        }
        /* join all members */
@@ -1070,7 +1070,7 @@ dsp_cmx_conf(struct dsp *dsp, u32 conf_id)
        if (dsp->conf_id) {
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG "removing us from conference %d\n",
-                               dsp->conf->id);
+                              dsp->conf->id);
                /* remove us from conf */
                conf = dsp->conf;
                err = dsp_cmx_del_conf_member(dsp);
@@ -1085,7 +1085,7 @@ dsp_cmx_conf(struct dsp *dsp, u32 conf_id)
                if (list_empty(&conf->mlist)) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "conference is empty, so we remove it.\n");
+                                      "conference is empty, so we remove it.\n");
                        err = dsp_cmx_del_conf(conf);
                        if (err)
                                return err;
@@ -1102,29 +1102,29 @@ dsp_cmx_conf(struct dsp *dsp, u32 conf_id)
        /* now add us to conf */
        if (dsp_debug & DEBUG_DSP_CMX)
                printk(KERN_DEBUG "searching conference %d\n",
-                       conf_id);
+                      conf_id);
        conf = dsp_cmx_search_conf(conf_id);
        if (!conf) {
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG
-                           "conference doesn't exist yet, creating.\n");
+                              "conference doesn't exist yet, creating.\n");
                /* the conference doesn't exist, so we create */
                conf = dsp_cmx_new_conf(conf_id);
                if (!conf)
                        return -EINVAL;
        } else if (!list_empty(&conf->mlist)) {
                member = list_entry(conf->mlist.next, struct dsp_conf_member,
-                       list);
+                                   list);
                if (dsp->hdlc && !member->dsp->hdlc) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "cannot join transparent conference.\n");
+                                      "cannot join transparent conference.\n");
                        return -EINVAL;
                }
                if (!dsp->hdlc && member->dsp->hdlc) {
                        if (dsp_debug & DEBUG_DSP_CMX)
                                printk(KERN_DEBUG
-                                   "cannot join hdlc conference.\n");
+                                      "cannot join hdlc conference.\n");
                        return -EINVAL;
                }
        }
@@ -1138,7 +1138,7 @@ dsp_cmx_conf(struct dsp *dsp, u32 conf_id)
        if (list_empty(&conf->mlist)) {
                if (dsp_debug & DEBUG_DSP_CMX)
                        printk(KERN_DEBUG
-                           "we are alone in this conference, so exit.\n");
+                              "we are alone in this conference, so exit.\n");
                /* update hardware */
                dsp_cmx_hardware(NULL, dsp);
                return 0;
@@ -1166,7 +1166,7 @@ showdelay(struct dsp *dsp, int samples, int delay)
        sdelay = delay * 50 / (dsp_poll << 2);
 
        printk(KERN_DEBUG "DELAY (%s) %3d >%s\n", dsp->name, delay,
-               sdelay > 50 ? "..." : bar + 50 - sdelay);
+              sdelay > 50 ? "..." : bar + 50 - sdelay);
 }
 #endif
 
@@ -1188,9 +1188,9 @@ dsp_cmx_receive(struct dsp *dsp, struct sk_buff *skb)
        /* half of the buffer should be larger than maximum packet size */
        if (len >= CMX_BUFF_HALF) {
                printk(KERN_ERR
-                   "%s line %d: packet from card is too large (%d bytes). "
-                   "please make card send smaller packets OR increase "
-                   "CMX_BUFF_SIZE\n", __FILE__, __LINE__, len);
+                      "%s line %d: packet from card is too large (%d bytes). "
+                      "please make card send smaller packets OR increase "
+                      "CMX_BUFF_SIZE\n", __FILE__, __LINE__, len);
                return;
        }
 
@@ -1228,9 +1228,9 @@ dsp_cmx_receive(struct dsp *dsp, struct sk_buff *skb)
        if (((dsp->rx_W-dsp->rx_R) & CMX_BUFF_MASK) >= CMX_BUFF_HALF) {
                if (dsp_debug & DEBUG_DSP_CLOCK)
                        printk(KERN_DEBUG
-                           "cmx_receive(dsp=%lx): UNDERRUN (or overrun the "
-                           "maximum delay), adjusting read pointer! "
-                           "(inst %s)\n", (u_long)dsp, dsp->name);
+                              "cmx_receive(dsp=%lx): UNDERRUN (or overrun the "
+                              "maximum delay), adjusting read pointer! "
+                              "(inst %s)\n", (u_long)dsp, dsp->name);
                /* flush rx buffer and set delay to dsp_poll / 2 */
                if (dsp->features.unordered) {
                        dsp->rx_R = (hh->id & CMX_BUFF_MASK);
@@ -1255,27 +1255,27 @@ dsp_cmx_receive(struct dsp *dsp, struct sk_buff *skb)
                    (dsp->cmx_delay << 1)) {
                        if (dsp_debug & DEBUG_DSP_CLOCK)
                                printk(KERN_DEBUG
-                                   "cmx_receive(dsp=%lx): OVERRUN (because "
-                                   "twice the delay is reached), adjusting "
-                                   "read pointer! (inst %s)\n",
-                                   (u_long)dsp, dsp->name);
-               /* flush buffer */
-               if (dsp->features.unordered) {
-                       dsp->rx_R = (hh->id & CMX_BUFF_MASK);
-                       dsp->rx_W = (dsp->rx_R + dsp->cmx_delay)
-                               & CMX_BUFF_MASK;
-               } else {
-                       dsp->rx_R = 0;
-                       dsp->rx_W = dsp->cmx_delay;
+                                      "cmx_receive(dsp=%lx): OVERRUN (because "
+                                      "twice the delay is reached), adjusting "
+                                      "read pointer! (inst %s)\n",
+                                      (u_long)dsp, dsp->name);
+                       /* flush buffer */
+                       if (dsp->features.unordered) {
+                               dsp->rx_R = (hh->id & CMX_BUFF_MASK);
+                               dsp->rx_W = (dsp->rx_R + dsp->cmx_delay)
+                                       & CMX_BUFF_MASK;
+                       } else {
+                               dsp->rx_R = 0;
+                               dsp->rx_W = dsp->cmx_delay;
+                       }
+                       memset(dsp->rx_buff, dsp_silence, sizeof(dsp->rx_buff));
                }
-               memset(dsp->rx_buff, dsp_silence, sizeof(dsp->rx_buff));
-       }
 
        /* show where to write */
 #ifdef CMX_DEBUG
        printk(KERN_DEBUG
-           "cmx_receive(dsp=%lx): rx_R(dsp)=%05x rx_W(dsp)=%05x len=%d %s\n",
-           (u_long)dsp, dsp->rx_R, dsp->rx_W, len, dsp->name);
+              "cmx_receive(dsp=%lx): rx_R(dsp)=%05x rx_W(dsp)=%05x len=%d %s\n",
+              (u_long)dsp, dsp->rx_R, dsp->rx_W, len, dsp->name);
 #endif
 
        /* write data into rx_buffer */
@@ -1290,7 +1290,7 @@ dsp_cmx_receive(struct dsp *dsp, struct sk_buff *skb)
        }
 
        /* increase write-pointer */
-       dsp->rx_W = ((dsp->rx_W+len) & CMX_BUFF_MASK);
+       dsp->rx_W = ((dsp->rx_W + len) & CMX_BUFF_MASK);
 #ifdef CMX_DELAY_DEBUG
        showdelay(dsp, len, (dsp->rx_W-dsp->rx_R) & CMX_BUFF_MASK);
 #endif
@@ -1319,7 +1319,7 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
                return;
        }
        if (((dsp->conf && dsp->conf->hardware) || /* hardware conf */
-           dsp->echo.hardware) && /* OR hardware echo */
+            dsp->echo.hardware) && /* OR hardware echo */
            dsp->tx_R == dsp->tx_W && /* AND no tx-data */
            !(dsp->tone.tone && dsp->tone.software)) { /* AND not soft tones */
                if (!dsp->tx_data) { /* no tx_data for user space required */
@@ -1334,8 +1334,8 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
 
 #ifdef CMX_DEBUG
        printk(KERN_DEBUG
-           "SEND members=%d dsp=%s, conf=%p, rx_R=%05x rx_W=%05x\n",
-           members, dsp->name, conf, dsp->rx_R, dsp->rx_W);
+              "SEND members=%d dsp=%s, conf=%p, rx_R=%05x rx_W=%05x\n",
+              members, dsp->name, conf, dsp->rx_R, dsp->rx_W);
 #endif
 
        /* preload if we have delay set */
@@ -1349,8 +1349,8 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
        nskb = mI_alloc_skb(len + preload, GFP_ATOMIC);
        if (!nskb) {
                printk(KERN_ERR
-                   "FATAL ERROR in mISDN_dsp.o: cannot alloc %d bytes\n",
-                   len + preload);
+                      "FATAL ERROR in mISDN_dsp.o: cannot alloc %d bytes\n",
+                      len + preload);
                return;
        }
        hh = mISDN_HEAD_P(nskb);
@@ -1386,22 +1386,22 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
        if (!dsp->tx_mix && t != tt) {
                /* -> send tx-data and continue when not enough */
 #ifdef CMX_TX_DEBUG
-       sprintf(debugbuf, "TX sending (%04x-%04x)%p: ", t, tt, p);
+               sprintf(debugbuf, "TX sending (%04x-%04x)%p: ", t, tt, p);
 #endif
                while (r != rr && t != tt) {
 #ifdef CMX_TX_DEBUG
                        if (strlen(debugbuf) < 48)
-                               sprintf(debugbuf+strlen(debugbuf), " %02x",
-                                   p[t]);
+                               sprintf(debugbuf + strlen(debugbuf), " %02x",
+                                       p[t]);
 #endif
                        *d++ = p[t]; /* write tx_buff */
-                       t = (t+1) & CMX_BUFF_MASK;
-                       r = (r+1) & CMX_BUFF_MASK;
+                       t = (t + 1) & CMX_BUFF_MASK;
+                       r = (r + 1) & CMX_BUFF_MASK;
                }
                if (r == rr) {
                        dsp->tx_R = t;
 #ifdef CMX_TX_DEBUG
-       printk(KERN_DEBUG "%s\n", debugbuf);
+                       printk(KERN_DEBUG "%s\n", debugbuf);
 #endif
                        goto send_packet;
                }
@@ -1417,29 +1417,29 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
                        /* -> send tx-data if available or use 0-volume */
                        while (r != rr && t != tt) {
                                *d++ = p[t]; /* write tx_buff */
-                               t = (t+1) & CMX_BUFF_MASK;
-                               r = (r+1) & CMX_BUFF_MASK;
+                               t = (t + 1) & CMX_BUFF_MASK;
+                               r = (r + 1) & CMX_BUFF_MASK;
                        }
                        if (r != rr) {
                                if (dsp_debug & DEBUG_DSP_CLOCK)
                                        printk(KERN_DEBUG "%s: RX empty\n",
-                                               __func__);
-                               memset(d, dsp_silence, (rr-r)&CMX_BUFF_MASK);
+                                              __func__);
+                               memset(d, dsp_silence, (rr - r) & CMX_BUFF_MASK);
                        }
-               /* -> if echo is enabled */
+                       /* -> if echo is enabled */
                } else {
                        /*
                         * -> mix tx-data with echo if available,
                         * or use echo only
                         */
                        while (r != rr && t != tt) {
-                               *d++ = dsp_audio_mix_law[(p[t]<<8)|q[r]];
-                               t = (t+1) & CMX_BUFF_MASK;
-                               r = (r+1) & CMX_BUFF_MASK;
+                               *d++ = dsp_audio_mix_law[(p[t] << 8) | q[r]];
+                               t = (t + 1) & CMX_BUFF_MASK;
+                               r = (r + 1) & CMX_BUFF_MASK;
                        }
                        while (r != rr) {
                                *d++ = q[r]; /* echo */
-                               r = (r+1) & CMX_BUFF_MASK;
+                               r = (r + 1) & CMX_BUFF_MASK;
                        }
                }
                dsp->tx_R = t;
@@ -1449,63 +1449,63 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
 #ifdef CMX_CONF_DEBUG
        if (0) {
 #else
-       if (members == 2) {
+               if (members == 2) {
 #endif
-               /* "other" becomes other party */
-               other = (list_entry(conf->mlist.next,
-                   struct dsp_conf_member, list))->dsp;
-               if (other == member)
-                       other = (list_entry(conf->mlist.prev,
-                           struct dsp_conf_member, list))->dsp;
-               o_q = other->rx_buff; /* received data */
-               o_rr = (other->rx_R + len) & CMX_BUFF_MASK;
+                       /* "other" becomes other party */
+                       other = (list_entry(conf->mlist.next,
+                                           struct dsp_conf_member, list))->dsp;
+                       if (other == member)
+                               other = (list_entry(conf->mlist.prev,
+                                                   struct dsp_conf_member, list))->dsp;
+                       o_q = other->rx_buff; /* received data */
+                       o_rr = (other->rx_R + len) & CMX_BUFF_MASK;
                        /* end of rx-pointer */
-               o_r = (o_rr - rr + r) & CMX_BUFF_MASK;
+                       o_r = (o_rr - rr + r) & CMX_BUFF_MASK;
                        /* start rx-pointer at current read position*/
-               /* -> if echo is NOT enabled */
-               if (!dsp->echo.software) {
-                       /*
-                        * -> copy other member's rx-data,
-                        * if tx-data is available, mix
-                        */
-                       while (o_r != o_rr && t != tt) {
-                               *d++ = dsp_audio_mix_law[(p[t]<<8)|o_q[o_r]];
-                               t = (t+1) & CMX_BUFF_MASK;
-                               o_r = (o_r+1) & CMX_BUFF_MASK;
-                       }
-                       while (o_r != o_rr) {
-                               *d++ = o_q[o_r];
-                               o_r = (o_r+1) & CMX_BUFF_MASK;
-                       }
-               /* -> if echo is enabled */
-               } else {
-                       /*
-                        * -> mix other member's rx-data with echo,
-                        * if tx-data is available, mix
-                        */
-                       while (r != rr && t != tt) {
-                               sample = dsp_audio_law_to_s32[p[t]] +
-                                   dsp_audio_law_to_s32[q[r]] +
-                                   dsp_audio_law_to_s32[o_q[o_r]];
-                               if (sample < -32768)
-                                       sample = -32768;
-                               else if (sample > 32767)
-                                       sample = 32767;
-                               *d++ = dsp_audio_s16_to_law[sample & 0xffff];
-                                   /* tx-data + rx_data + echo */
-                               t = (t+1) & CMX_BUFF_MASK;
-                               r = (r+1) & CMX_BUFF_MASK;
-                               o_r = (o_r+1) & CMX_BUFF_MASK;
-                       }
-                       while (r != rr) {
-                               *d++ = dsp_audio_mix_law[(q[r]<<8)|o_q[o_r]];
-                               r = (r+1) & CMX_BUFF_MASK;
-                               o_r = (o_r+1) & CMX_BUFF_MASK;
+                       /* -> if echo is NOT enabled */
+                       if (!dsp->echo.software) {
+                               /*
+                                * -> copy other member's rx-data,
+                                * if tx-data is available, mix
+                                */
+                               while (o_r != o_rr && t != tt) {
+                                       *d++ = dsp_audio_mix_law[(p[t] << 8) | o_q[o_r]];
+                                       t = (t + 1) & CMX_BUFF_MASK;
+                                       o_r = (o_r + 1) & CMX_BUFF_MASK;
+                               }
+                               while (o_r != o_rr) {
+                                       *d++ = o_q[o_r];
+                                       o_r = (o_r + 1) & CMX_BUFF_MASK;
+                               }
+                               /* -> if echo is enabled */
+                       } else {
+                               /*
+                                * -> mix other member's rx-data with echo,
+                                * if tx-data is available, mix
+                                */
+                               while (r != rr && t != tt) {
+                                       sample = dsp_audio_law_to_s32[p[t]] +
+                                               dsp_audio_law_to_s32[q[r]] +
+                                               dsp_audio_law_to_s32[o_q[o_r]];
+                                       if (sample < -32768)
+                                               sample = -32768;
+                                       else if (sample > 32767)
+                                               sample = 32767;
+                                       *d++ = dsp_audio_s16_to_law[sample & 0xffff];
+                                       /* tx-data + rx_data + echo */
+                                       t = (t + 1) & CMX_BUFF_MASK;
+                                       r = (r + 1) & CMX_BUFF_MASK;
+                                       o_r = (o_r + 1) & CMX_BUFF_MASK;
+                               }
+                               while (r != rr) {
+                                       *d++ = dsp_audio_mix_law[(q[r] << 8) | o_q[o_r]];
+                                       r = (r + 1) & CMX_BUFF_MASK;
+                                       o_r = (o_r + 1) & CMX_BUFF_MASK;
+                               }
                        }
+                       dsp->tx_R = t;
+                       goto send_packet;
                }
-               dsp->tx_R = t;
-               goto send_packet;
-       }
 #ifdef DSP_NEVER_DEFINED
        }
 #endif
@@ -1518,15 +1518,15 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
                 */
                while (r != rr && t != tt) {
                        sample = dsp_audio_law_to_s32[p[t]] + *c++ -
-                           dsp_audio_law_to_s32[q[r]];
+                               dsp_audio_law_to_s32[q[r]];
                        if (sample < -32768)
                                sample = -32768;
                        else if (sample > 32767)
                                sample = 32767;
                        *d++ = dsp_audio_s16_to_law[sample & 0xffff];
-                           /* conf-rx+tx */
-                       r = (r+1) & CMX_BUFF_MASK;
-                       t = (t+1) & CMX_BUFF_MASK;
+                       /* conf-rx+tx */
+                       r = (r + 1) & CMX_BUFF_MASK;
+                       t = (t + 1) & CMX_BUFF_MASK;
                }
                while (r != rr) {
                        sample = *c++ - dsp_audio_law_to_s32[q[r]];
@@ -1535,10 +1535,10 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
                        else if (sample > 32767)
                                sample = 32767;
                        *d++ = dsp_audio_s16_to_law[sample & 0xffff];
-                           /* conf-rx */
-                       r = (r+1) & CMX_BUFF_MASK;
+                       /* conf-rx */
+                       r = (r + 1) & CMX_BUFF_MASK;
                }
-       /* -> if echo is enabled */
+               /* -> if echo is enabled */
        } else {
                /*
                 * -> encode conf-data, if tx-data
@@ -1551,9 +1551,9 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
                        else if (sample > 32767)
                                sample = 32767;
                        *d++ = dsp_audio_s16_to_law[sample & 0xffff];
-                           /* conf(echo)+tx */
-                       t = (t+1) & CMX_BUFF_MASK;
-                       r = (r+1) & CMX_BUFF_MASK;
+                       /* conf(echo)+tx */
+                       t = (t + 1) & CMX_BUFF_MASK;
+                       r = (r + 1) & CMX_BUFF_MASK;
                }
                while (r != rr) {
                        sample = *c++;
@@ -1562,8 +1562,8 @@ dsp_cmx_send_member(struct dsp *dsp, int len, s32 *c, int members)
                        else if (sample > 32767)
                                sample = 32767;
                        *d++ = dsp_audio_s16_to_law[sample & 0xffff];
-                           /* conf(echo) */
-                       r = (r+1) & CMX_BUFF_MASK;
+                       /* conf(echo) */
+                       r = (r + 1) & CMX_BUFF_MASK;
                }
        }
        dsp->tx_R = t;
@@ -1587,14 +1587,14 @@ send_packet:
                        txskb = mI_alloc_skb(len, GFP_ATOMIC);
                        if (!txskb) {
                                printk(KERN_ERR
-                                   "FATAL ERROR in mISDN_dsp.o: "
-                                   "cannot alloc %d bytes\n", len);
+                                      "FATAL ERROR in mISDN_dsp.o: "
+                                      "cannot alloc %d bytes\n", len);
                        } else {
                                thh = mISDN_HEAD_P(txskb);
                                thh->prim = DL_DATA_REQ;
                                thh->id = 0;
-                               memcpy(skb_put(txskb, len), nskb->data+preload,
-                                       len);
+                               memcpy(skb_put(txskb, len), nskb->data + preload,
+                                      len);
                                /* queue (trigger later) */
                                skb_queue_tail(&dsp->sendq, txskb);
                        }
@@ -1608,7 +1608,7 @@ send_packet:
        /* pipeline */
        if (dsp->pipeline.inuse)
                dsp_pipeline_process_tx(&dsp->pipeline, nskb->data,
-                       nskb->len);
+                                       nskb->len);
        /* crypt */
        if (dsp->bf_enable)
                dsp_bf_encrypt(dsp, nskb->data, nskb->len);
@@ -1621,7 +1621,7 @@ static u32        jittercount; /* counter for jitter check */
 struct timer_list dsp_spl_tl;
 u32    dsp_spl_jiffies; /* calculate the next time to fire */
 static u16     dsp_count; /* last sample count */
-static int     dsp_count_valid ; /* if we have last sample count */
+static int     dsp_count_valid; /* if we have last sample count */
 
 void
 dsp_cmx_send(void *arg)
@@ -1630,7 +1630,7 @@ dsp_cmx_send(void *arg)
        struct dsp_conf_member *member;
        struct dsp *dsp;
        int mustmix, members;
-       static s32 mixbuffer[MAX_POLL+100];
+       static s32 mixbuffer[MAX_POLL + 100];
        s32 *c;
        u8 *p, *q;
        int r, rr;
@@ -1675,9 +1675,9 @@ dsp_cmx_send(void *arg)
 #ifdef CMX_CONF_DEBUG
                        if (conf->software && members > 1)
 #else
-                       if (conf->software && members > 2)
+                               if (conf->software && members > 2)
 #endif
-                               mustmix = 1;
+                                       mustmix = 1;
                }
 
                /* transmission required */
@@ -1698,265 +1698,263 @@ dsp_cmx_send(void *arg)
 #ifdef CMX_CONF_DEBUG
                if (conf->software && members > 1) {
 #else
-               if (conf->software && members > 2) {
+                       if (conf->software && members > 2) {
 #endif
-                       /* check for hdlc conf */
-                       member = list_entry(conf->mlist.next,
-                               struct dsp_conf_member, list);
-                       if (member->dsp->hdlc)
-                               continue;
-                       /* mix all data */
-                       memset(mixbuffer, 0, length*sizeof(s32));
-                       list_for_each_entry(member, &conf->mlist, list) {
-                               dsp = member->dsp;
-                               /* get range of data to mix */
-                               c = mixbuffer;
-                               q = dsp->rx_buff;
-                               r = dsp->rx_R;
-                               rr = (r + length) & CMX_BUFF_MASK;
-                               /* add member's data */
-                               while (r != rr) {
-                                       *c++ += dsp_audio_law_to_s32[q[r]];
-                                       r = (r+1) & CMX_BUFF_MASK;
+                               /* check for hdlc conf */
+                               member = list_entry(conf->mlist.next,
+                                                   struct dsp_conf_member, list);
+                               if (member->dsp->hdlc)
+                                       continue;
+                               /* mix all data */
+                               memset(mixbuffer, 0, length * sizeof(s32));
+                               list_for_each_entry(member, &conf->mlist, list) {
+                                       dsp = member->dsp;
+                                       /* get range of data to mix */
+                                       c = mixbuffer;
+                                       q = dsp->rx_buff;
+                                       r = dsp->rx_R;
+                                       rr = (r + length) & CMX_BUFF_MASK;
+                                       /* add member's data */
+                                       while (r != rr) {
+                                               *c++ += dsp_audio_law_to_s32[q[r]];
+                                               r = (r + 1) & CMX_BUFF_MASK;
+                                       }
                                }
-                       }
-
-                       /* process each member */
-                       list_for_each_entry(member, &conf->mlist, list) {
-                               /* transmission */
-                               dsp_cmx_send_member(member->dsp, length,
-                                   mixbuffer, members);
-                       }
-               }
-       }
 
-       /* delete rx-data, increment buffers, change pointers */
-       list_for_each_entry(dsp, &dsp_ilist, list) {
-               if (dsp->hdlc)
-                       continue;
-               p = dsp->rx_buff;
-               q = dsp->tx_buff;
-               r = dsp->rx_R;
-               /* move receive pointer when receiving */
-               if (!dsp->rx_is_off) {
-                       rr = (r + length) & CMX_BUFF_MASK;
-                       /* delete rx-data */
-                       while (r != rr) {
-                               p[r] = dsp_silence;
-                               r = (r+1) & CMX_BUFF_MASK;
+                               /* process each member */
+                               list_for_each_entry(member, &conf->mlist, list) {
+                                       /* transmission */
+                                       dsp_cmx_send_member(member->dsp, length,
+                                                           mixbuffer, members);
+                               }
                        }
-                       /* increment rx-buffer pointer */
-                       dsp->rx_R = r; /* write incremented read pointer */
                }
 
-               /* check current rx_delay */
-               delay = (dsp->rx_W-dsp->rx_R) & CMX_BUFF_MASK;
-               if (delay >= CMX_BUFF_HALF)
-                       delay = 0; /* will be the delay before next write */
-               /* check for lower delay */
-               if (delay < dsp->rx_delay[0])
-                       dsp->rx_delay[0] = delay;
-               /* check current tx_delay */
-               delay = (dsp->tx_W-dsp->tx_R) & CMX_BUFF_MASK;
-               if (delay >= CMX_BUFF_HALF)
-                       delay = 0; /* will be the delay before next write */
-               /* check for lower delay */
-               if (delay < dsp->tx_delay[0])
-                       dsp->tx_delay[0] = delay;
-               if (jittercheck) {
-                       /* find the lowest of all rx_delays */
-                       delay = dsp->rx_delay[0];
-                       i = 1;
-                       while (i < MAX_SECONDS_JITTER_CHECK) {
-                               if (delay > dsp->rx_delay[i])
-                                       delay = dsp->rx_delay[i];
-                               i++;
-                       }
-                       /*
-                        * remove rx_delay only if we have delay AND we
-                        * have not preset cmx_delay AND
-                        * the delay is greater dsp_poll
-                        */
-                       if (delay > dsp_poll && !dsp->cmx_delay) {
-                               if (dsp_debug & DEBUG_DSP_CLOCK)
-                                       printk(KERN_DEBUG
-                                           "%s lowest rx_delay of %d bytes for"
-                                           " dsp %s are now removed.\n",
-                                           __func__, delay,
-                                           dsp->name);
-                               r = dsp->rx_R;
-                               rr = (r + delay - (dsp_poll >> 1))
-                                       & CMX_BUFF_MASK;
+               /* delete rx-data, increment buffers, change pointers */
+               list_for_each_entry(dsp, &dsp_ilist, list) {
+                       if (dsp->hdlc)
+                               continue;
+                       p = dsp->rx_buff;
+                       q = dsp->tx_buff;
+                       r = dsp->rx_R;
+                       /* move receive pointer when receiving */
+                       if (!dsp->rx_is_off) {
+                               rr = (r + length) & CMX_BUFF_MASK;
                                /* delete rx-data */
                                while (r != rr) {
                                        p[r] = dsp_silence;
-                                       r = (r+1) & CMX_BUFF_MASK;
+                                       r = (r + 1) & CMX_BUFF_MASK;
                                }
                                /* increment rx-buffer pointer */
-                               dsp->rx_R = r;
-                                   /* write incremented read pointer */
-                       }
-                       /* find the lowest of all tx_delays */
-                       delay = dsp->tx_delay[0];
-                       i = 1;
-                       while (i < MAX_SECONDS_JITTER_CHECK) {
-                               if (delay > dsp->tx_delay[i])
-                                       delay = dsp->tx_delay[i];
-                               i++;
+                               dsp->rx_R = r; /* write incremented read pointer */
                        }
-                       /*
-                        * remove delay only if we have delay AND we
-                        * have enabled tx_dejitter
-                        */
-                       if (delay > dsp_poll && dsp->tx_dejitter) {
-                               if (dsp_debug & DEBUG_DSP_CLOCK)
-                                       printk(KERN_DEBUG
-                                           "%s lowest tx_delay of %d bytes for"
-                                           " dsp %s are now removed.\n",
-                                           __func__, delay,
-                                           dsp->name);
-                               r = dsp->tx_R;
-                               rr = (r + delay - (dsp_poll >> 1))
-                                       & CMX_BUFF_MASK;
-                               /* delete tx-data */
-                               while (r != rr) {
-                                       q[r] = dsp_silence;
-                                       r = (r+1) & CMX_BUFF_MASK;
+
+                       /* check current rx_delay */
+                       delay = (dsp->rx_W-dsp->rx_R) & CMX_BUFF_MASK;
+                       if (delay >= CMX_BUFF_HALF)
+                               delay = 0; /* will be the delay before next write */
+                       /* check for lower delay */
+                       if (delay < dsp->rx_delay[0])
+                               dsp->rx_delay[0] = delay;
+                       /* check current tx_delay */
+                       delay = (dsp->tx_W-dsp->tx_R) & CMX_BUFF_MASK;
+                       if (delay >= CMX_BUFF_HALF)
+                               delay = 0; /* will be the delay before next write */
+                       /* check for lower delay */
+                       if (delay < dsp->tx_delay[0])
+                               dsp->tx_delay[0] = delay;
+                       if (jittercheck) {
+                               /* find the lowest of all rx_delays */
+                               delay = dsp->rx_delay[0];
+                               i = 1;
+                               while (i < MAX_SECONDS_JITTER_CHECK) {
+                                       if (delay > dsp->rx_delay[i])
+                                               delay = dsp->rx_delay[i];
+                                       i++;
                                }
-                               /* increment rx-buffer pointer */
-                               dsp->tx_R = r;
-                                   /* write incremented read pointer */
-                       }
-                       /* scroll up delays */
-                       i = MAX_SECONDS_JITTER_CHECK - 1;
-                       while (i) {
-                               dsp->rx_delay[i] = dsp->rx_delay[i-1];
-                               dsp->tx_delay[i] = dsp->tx_delay[i-1];
-                               i--;
+                               /*
+                                * remove rx_delay only if we have delay AND we
+                                * have not preset cmx_delay AND
+                                * the delay is greater dsp_poll
+                                */
+                               if (delay > dsp_poll && !dsp->cmx_delay) {
+                                       if (dsp_debug & DEBUG_DSP_CLOCK)
+                                               printk(KERN_DEBUG
+                                                      "%s lowest rx_delay of %d bytes for"
+                                                      " dsp %s are now removed.\n",
+                                                      __func__, delay,
+                                                      dsp->name);
+                                       r = dsp->rx_R;
+                                       rr = (r + delay - (dsp_poll >> 1))
+                                               & CMX_BUFF_MASK;
+                                       /* delete rx-data */
+                                       while (r != rr) {
+                                               p[r] = dsp_silence;
+                                               r = (r + 1) & CMX_BUFF_MASK;
+                                       }
+                                       /* increment rx-buffer pointer */
+                                       dsp->rx_R = r;
+                                       /* write incremented read pointer */
+                               }
+                               /* find the lowest of all tx_delays */
+                               delay = dsp->tx_delay[0];
+                               i = 1;
+                               while (i < MAX_SECONDS_JITTER_CHECK) {
+                                       if (delay > dsp->tx_delay[i])
+                                               delay = dsp->tx_delay[i];
+                                       i++;
+                               }
+                               /*
+                                * remove delay only if we have delay AND we
+                                * have enabled tx_dejitter
+                                */
+                               if (delay > dsp_poll && dsp->tx_dejitter) {
+                                       if (dsp_debug & DEBUG_DSP_CLOCK)
+                                               printk(KERN_DEBUG
+                                                      "%s lowest tx_delay of %d bytes for"
+                                                      " dsp %s are now removed.\n",
+                                                      __func__, delay,
+                                                      dsp->name);
+                                       r = dsp->tx_R;
+                                       rr = (r + delay - (dsp_poll >> 1))
+                                               & CMX_BUFF_MASK;
+                                       /* delete tx-data */
+                                       while (r != rr) {
+                                               q[r] = dsp_silence;
+                                               r = (r + 1) & CMX_BUFF_MASK;
+                                       }
+                                       /* increment rx-buffer pointer */
+                                       dsp->tx_R = r;
+                                       /* write incremented read pointer */
+                               }
+                               /* scroll up delays */
+                               i = MAX_SECONDS_JITTER_CHECK - 1;
+                               while (i) {
+                                       dsp->rx_delay[i] = dsp->rx_delay[i - 1];
+                                       dsp->tx_delay[i] = dsp->tx_delay[i - 1];
+                                       i--;
+                               }
+                               dsp->tx_delay[0] = CMX_BUFF_HALF; /* (infinite) delay */
+                               dsp->rx_delay[0] = CMX_BUFF_HALF; /* (infinite) delay */
                        }
-                       dsp->tx_delay[0] = CMX_BUFF_HALF; /* (infinite) delay */
-                       dsp->rx_delay[0] = CMX_BUFF_HALF; /* (infinite) delay */
                }
-       }
 
-       /* if next event would be in the past ... */
-       if ((s32)(dsp_spl_jiffies+dsp_tics-jiffies) <= 0)
-               dsp_spl_jiffies = jiffies + 1;
-       else
-               dsp_spl_jiffies += dsp_tics;
+               /* if next event would be in the past ... */
+               if ((s32)(dsp_spl_jiffies + dsp_tics-jiffies) <= 0)
+                       dsp_spl_jiffies = jiffies + 1;
+               else
+                       dsp_spl_jiffies += dsp_tics;
 
-       dsp_spl_tl.expires = dsp_spl_jiffies;
-       add_timer(&dsp_spl_tl);
+               dsp_spl_tl.expires = dsp_spl_jiffies;
+               add_timer(&dsp_spl_tl);
 
-       /* unlock */
-       spin_unlock_irqrestore(&dsp_lock, flags);
-}
+               /* unlock */
+               spin_unlock_irqrestore(&dsp_lock, flags);
+       }
 
 /*
  * audio data is transmitted from upper layer to the dsp
  */
-void
-dsp_cmx_transmit(struct dsp *dsp, struct sk_buff *skb)
-{
-       u_int w, ww;
-       u8 *d, *p;
-       int space; /* todo: , l = skb->len; */
+       void
+               dsp_cmx_transmit(struct dsp *dsp, struct sk_buff *skb)
+       {
+               u_int w, ww;
+               u8 *d, *p;
+               int space; /* todo: , l = skb->len; */
 #ifdef CMX_TX_DEBUG
-       char debugbuf[256] = "";
+               char debugbuf[256] = "";
 #endif
 
-       /* check if there is enough space, and then copy */
-       w = dsp->tx_W;
-       ww = dsp->tx_R;
-       p = dsp->tx_buff;
-       d = skb->data;
-       space = (ww - w - 1) & CMX_BUFF_MASK;
-       /* write-pointer should not overrun nor reach read pointer */
-       if (space < skb->len) {
-               /* write to the space we have left */
-               ww = (ww - 1) & CMX_BUFF_MASK; /* end one byte prior tx_R */
-               if (dsp_debug & DEBUG_DSP_CLOCK)
-                       printk(KERN_DEBUG "%s: TX overflow space=%d skb->len="
-                           "%d, w=0x%04x, ww=0x%04x\n", __func__, space,
-                           skb->len, w, ww);
-       } else
-               /* write until all byte are copied */
-               ww = (w + skb->len) & CMX_BUFF_MASK;
-       dsp->tx_W = ww;
-
-       /* show current buffer */
+               /* check if there is enough space, and then copy */
+               w = dsp->tx_W;
+               ww = dsp->tx_R;
+               p = dsp->tx_buff;
+               d = skb->data;
+               space = (ww - w - 1) & CMX_BUFF_MASK;
+               /* write-pointer should not overrun nor reach read pointer */
+               if (space < skb->len) {
+                       /* write to the space we have left */
+                       ww = (ww - 1) & CMX_BUFF_MASK; /* end one byte prior tx_R */
+                       if (dsp_debug & DEBUG_DSP_CLOCK)
+                               printk(KERN_DEBUG "%s: TX overflow space=%d skb->len="
+                                      "%d, w=0x%04x, ww=0x%04x\n", __func__, space,
+                                      skb->len, w, ww);
+               } else
+                       /* write until all byte are copied */
+                       ww = (w + skb->len) & CMX_BUFF_MASK;
+               dsp->tx_W = ww;
+
+               /* show current buffer */
 #ifdef CMX_DEBUG
-       printk(KERN_DEBUG
-           "cmx_transmit(dsp=%lx) %d bytes to 0x%x-0x%x. %s\n",
-           (u_long)dsp, (ww-w)&CMX_BUFF_MASK, w, ww, dsp->name);
+               printk(KERN_DEBUG
+                      "cmx_transmit(dsp=%lx) %d bytes to 0x%x-0x%x. %s\n",
+                      (u_long)dsp, (ww - w) & CMX_BUFF_MASK, w, ww, dsp->name);
 #endif
 
-       /* copy transmit data to tx-buffer */
+               /* copy transmit data to tx-buffer */
 #ifdef CMX_TX_DEBUG
-       sprintf(debugbuf, "TX getting (%04x-%04x)%p: ", w, ww, p);
+               sprintf(debugbuf, "TX getting (%04x-%04x)%p: ", w, ww, p);
 #endif
-       while (w != ww) {
+               while (w != ww) {
 #ifdef CMX_TX_DEBUG
-               if (strlen(debugbuf) < 48)
-                       sprintf(debugbuf+strlen(debugbuf), " %02x", *d);
+                       if (strlen(debugbuf) < 48)
+                               sprintf(debugbuf + strlen(debugbuf), " %02x", *d);
 #endif
-               p[w] = *d++;
-               w = (w+1) & CMX_BUFF_MASK;
-       }
+                       p[w] = *d++;
+                       w = (w + 1) & CMX_BUFF_MASK;
+               }
 #ifdef CMX_TX_DEBUG
-       printk(KERN_DEBUG "%s\n", debugbuf);
+               printk(KERN_DEBUG "%s\n", debugbuf);
 #endif
 
-}
+       }
 
 /*
  * hdlc data is received from card and sent to all members.
  */
-void
-dsp_cmx_hdlc(struct dsp *dsp, struct sk_buff *skb)
-{
-       struct sk_buff *nskb = NULL;
-       struct dsp_conf_member *member;
-       struct mISDNhead *hh;
-
-       /* not if not active */
-       if (!dsp->b_active)
-               return;
+       void
+               dsp_cmx_hdlc(struct dsp *dsp, struct sk_buff *skb)
+       {
+               struct sk_buff *nskb = NULL;
+               struct dsp_conf_member *member;
+               struct mISDNhead *hh;
+
+               /* not if not active */
+               if (!dsp->b_active)
+                       return;
 
-       /* check if we have sompen */
-       if (skb->len < 1)
-               return;
+               /* check if we have sompen */
+               if (skb->len < 1)
+                       return;
 
-       /* no conf */
-       if (!dsp->conf) {
-               /* in case of software echo */
-               if (dsp->echo.software) {
-                       nskb = skb_clone(skb, GFP_ATOMIC);
-                       if (nskb) {
-                               hh = mISDN_HEAD_P(nskb);
-                               hh->prim = PH_DATA_REQ;
-                               hh->id = 0;
-                               skb_queue_tail(&dsp->sendq, nskb);
-                               schedule_work(&dsp->workq);
+               /* no conf */
+               if (!dsp->conf) {
+                       /* in case of software echo */
+                       if (dsp->echo.software) {
+                               nskb = skb_clone(skb, GFP_ATOMIC);
+                               if (nskb) {
+                                       hh = mISDN_HEAD_P(nskb);
+                                       hh->prim = PH_DATA_REQ;
+                                       hh->id = 0;
+                                       skb_queue_tail(&dsp->sendq, nskb);
+                                       schedule_work(&dsp->workq);
+                               }
                        }
+                       return;
                }
-               return;
-       }
-       /* in case of hardware conference */
-       if (dsp->conf->hardware)
-               return;
-       list_for_each_entry(member, &dsp->conf->mlist, list) {
-               if (dsp->echo.software || member->dsp != dsp) {
-                       nskb = skb_clone(skb, GFP_ATOMIC);
-                       if (nskb) {
-                               hh = mISDN_HEAD_P(nskb);
-                               hh->prim = PH_DATA_REQ;
-                               hh->id = 0;
-                               skb_queue_tail(&member->dsp->sendq, nskb);
-                               schedule_work(&member->dsp->workq);
+               /* in case of hardware conference */
+               if (dsp->conf->hardware)
+                       return;
+               list_for_each_entry(member, &dsp->conf->mlist, list) {
+                       if (dsp->echo.software || member->dsp != dsp) {
+                               nskb = skb_clone(skb, GFP_ATOMIC);
+                               if (nskb) {
+                                       hh = mISDN_HEAD_P(nskb);
+                                       hh->prim = PH_DATA_REQ;
+                                       hh->id = 0;
+                                       skb_queue_tail(&member->dsp->sendq, nskb);
+                                       schedule_work(&member->dsp->workq);
+                               }
                        }
                }
        }
-}
-
-
index 742f9f4..2ac2d7a 100644 (file)
@@ -218,20 +218,20 @@ dsp_rx_off_member(struct dsp *dsp)
        if (!dsp->ch.peer) {
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: no peer, no rx_off\n",
-                               __func__);
+                              __func__);
                return;
        }
        cq.op = MISDN_CTRL_RX_OFF;
        cq.p1 = rx_off;
        if (dsp->ch.peer->ctrl(dsp->ch.peer, CONTROL_CHANNEL, &cq)) {
                printk(KERN_DEBUG "%s: 2nd CONTROL_CHANNEL failed\n",
-                       __func__);
+                      __func__);
                return;
        }
        dsp->rx_is_off = rx_off;
        if (dsp_debug & DEBUG_DSP_CORE)
                printk(KERN_DEBUG "%s: %s set rx_off = %d\n",
-                       __func__, dsp->name, rx_off);
+                      __func__, dsp->name, rx_off);
 }
 static void
 dsp_rx_off(struct dsp *dsp)
@@ -263,19 +263,19 @@ dsp_fill_empty(struct dsp *dsp)
        if (!dsp->ch.peer) {
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: no peer, no fill_empty\n",
-                               __func__);
+                              __func__);
                return;
        }
        cq.op = MISDN_CTRL_FILL_EMPTY;
        cq.p1 = 1;
        if (dsp->ch.peer->ctrl(dsp->ch.peer, CONTROL_CHANNEL, &cq)) {
                printk(KERN_DEBUG "%s: CONTROL_CHANNEL failed\n",
-                       __func__);
+                      __func__);
                return;
        }
        if (dsp_debug & DEBUG_DSP_CORE)
                printk(KERN_DEBUG "%s: %s set fill_empty = 1\n",
-                       __func__, dsp->name);
+                      __func__, dsp->name);
 }
 
 static int
@@ -304,7 +304,7 @@ dsp_control_req(struct dsp *dsp, struct mISDNhead *hh, struct sk_buff *skb)
                if (len == sizeof(int)) {
                        if (dsp_debug & DEBUG_DSP_CORE)
                                printk(KERN_NOTICE "changing DTMF Threshold "
-                                       "to %d\n", *((int *)data));
+                                      "to %d\n", *((int *)data));
                        dsp->dtmf.treshold = (*(int *)data) * 10000;
                }
                dsp->dtmf.enable = 1;
@@ -331,19 +331,19 @@ dsp_control_req(struct dsp *dsp, struct mISDNhead *hh, struct sk_buff *skb)
                        goto conf_split;
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: join conference %d\n",
-                               __func__, *((u32 *)data));
+                              __func__, *((u32 *)data));
                ret = dsp_cmx_conf(dsp, *((u32 *)data));
-                       /* dsp_cmx_hardware will also be called here */
+               /* dsp_cmx_hardware will also be called here */
                dsp_rx_off(dsp);
                if (dsp_debug & DEBUG_DSP_CMX)
                        dsp_cmx_debug(dsp);
                break;
        case DSP_CONF_SPLIT: /* remove from conference */
-conf_split:
+       conf_split:
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: release conference\n", __func__);
                ret = dsp_cmx_conf(dsp, 0);
-                       /* dsp_cmx_hardware will also be called here */
+               /* dsp_cmx_hardware will also be called here */
                if (dsp_debug & DEBUG_DSP_CMX)
                        dsp_cmx_debug(dsp);
                dsp_rx_off(dsp);
@@ -359,7 +359,7 @@ conf_split:
                }
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: turn tone 0x%x on\n",
-                               __func__, *((int *)skb->data));
+                              __func__, *((int *)skb->data));
                ret = dsp_tone(dsp, *((int *)data));
                if (!ret) {
                        dsp_cmx_hardware(dsp->conf, dsp);
@@ -379,7 +379,7 @@ conf_split:
                dsp_cmx_hardware(dsp->conf, dsp);
                dsp_rx_off(dsp);
                /* reset tx buffers (user space data) */
-tone_off:
+       tone_off:
                dsp->rx_W = 0;
                dsp->rx_R = 0;
                break;
@@ -395,7 +395,7 @@ tone_off:
                dsp->tx_volume = *((int *)data);
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: change tx vol to %d\n",
-                               __func__, dsp->tx_volume);
+                              __func__, dsp->tx_volume);
                dsp_cmx_hardware(dsp->conf, dsp);
                dsp_dtmf_hardware(dsp);
                dsp_rx_off(dsp);
@@ -412,7 +412,7 @@ tone_off:
                dsp->rx_volume = *((int *)data);
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: change rx vol to %d\n",
-                               __func__, dsp->tx_volume);
+                              __func__, dsp->tx_volume);
                dsp_cmx_hardware(dsp->conf, dsp);
                dsp_dtmf_hardware(dsp);
                dsp_rx_off(dsp);
@@ -439,14 +439,14 @@ tone_off:
        case DSP_RECEIVE_ON: /* enable receive to user space */
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: enable receive to user "
-                               "space\n", __func__);
+                              "space\n", __func__);
                dsp->rx_disabled = 0;
                dsp_rx_off(dsp);
                break;
        case DSP_RECEIVE_OFF: /* disable receive to user space */
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: disable receive to "
-                               "user space\n", __func__);
+                              "user space\n", __func__);
                dsp->rx_disabled = 1;
                dsp_rx_off(dsp);
                break;
@@ -457,7 +457,7 @@ tone_off:
                }
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: enable mixing of "
-                               "tx-data with conf mebers\n", __func__);
+                              "tx-data with conf mebers\n", __func__);
                dsp->tx_mix = 1;
                dsp_cmx_hardware(dsp->conf, dsp);
                dsp_rx_off(dsp);
@@ -471,7 +471,7 @@ tone_off:
                }
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: disable mixing of "
-                               "tx-data with conf mebers\n", __func__);
+                              "tx-data with conf mebers\n", __func__);
                dsp->tx_mix = 0;
                dsp_cmx_hardware(dsp->conf, dsp);
                dsp_rx_off(dsp);
@@ -507,18 +507,18 @@ tone_off:
                        break;
                }
                dsp->cmx_delay = (*((int *)data)) << 3;
-                       /* milliseconds to samples */
-               if (dsp->cmx_delay >= (CMX_BUFF_HALF>>1))
+               /* milliseconds to samples */
+               if (dsp->cmx_delay >= (CMX_BUFF_HALF >> 1))
                        /* clip to half of maximum usable buffer
-                       (half of half buffer) */
-                       dsp->cmx_delay = (CMX_BUFF_HALF>>1) - 1;
+                          (half of half buffer) */
+                       dsp->cmx_delay = (CMX_BUFF_HALF >> 1) - 1;
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: use delay algorithm to "
-                               "compensate jitter (%d samples)\n",
-                               __func__, dsp->cmx_delay);
+                              "compensate jitter (%d samples)\n",
+                              __func__, dsp->cmx_delay);
                break;
        case DSP_JITTER: /* use dynamic jitter algorithm instead of
-                   delay algorithm */
+                           delay algorithm */
                if (dsp->hdlc) {
                        ret = -EINVAL;
                        break;
@@ -526,7 +526,7 @@ tone_off:
                dsp->cmx_delay = 0;
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: use jitter algorithm to "
-                               "compensate jitter\n", __func__);
+                              "compensate jitter\n", __func__);
                break;
        case DSP_TX_DEJITTER: /* use dynamic jitter algorithm for tx-buffer */
                if (dsp->hdlc) {
@@ -536,7 +536,7 @@ tone_off:
                dsp->tx_dejitter = 1;
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: use dejitter on TX "
-                               "buffer\n", __func__);
+                              "buffer\n", __func__);
                break;
        case DSP_TX_DEJ_OFF: /* use tx-buffer without dejittering*/
                if (dsp->hdlc) {
@@ -546,7 +546,7 @@ tone_off:
                dsp->tx_dejitter = 0;
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: use TX buffer without "
-                               "dejittering\n", __func__);
+                              "dejittering\n", __func__);
                break;
        case DSP_PIPELINE_CFG:
                if (dsp->hdlc) {
@@ -555,13 +555,13 @@ tone_off:
                }
                if (len > 0 && ((char *)data)[len - 1]) {
                        printk(KERN_DEBUG "%s: pipeline config string "
-                               "is not NULL terminated!\n", __func__);
+                              "is not NULL terminated!\n", __func__);
                        ret = -EINVAL;
                } else {
                        dsp->pipeline.inuse = 1;
                        dsp_cmx_hardware(dsp->conf, dsp);
                        ret = dsp_pipeline_build(&dsp->pipeline,
-                               len > 0 ? data : NULL);
+                                                len > 0 ? data : NULL);
                        dsp_cmx_hardware(dsp->conf, dsp);
                        dsp_rx_off(dsp);
                }
@@ -577,7 +577,7 @@ tone_off:
                }
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: turn blowfish on (key "
-                               "not shown)\n", __func__);
+                              "not shown)\n", __func__);
                ret = dsp_bf_init(dsp, (u8 *)data, len);
                /* set new cont */
                if (!ret)
@@ -586,7 +586,7 @@ tone_off:
                        cont = DSP_BF_REJECT;
                /* send indication if it worked to set it */
                nskb = _alloc_mISDN_skb(PH_CONTROL_IND, MISDN_ID_ANY,
-                       sizeof(int), &cont, GFP_ATOMIC);
+                                       sizeof(int), &cont, GFP_ATOMIC);
                if (nskb) {
                        if (dsp->up) {
                                if (dsp->up->send(dsp->up, nskb))
@@ -615,7 +615,7 @@ tone_off:
        default:
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: ctrl req %x unhandled\n",
-                               __func__, cont);
+                              __func__, cont);
                ret = -EINVAL;
        }
        return ret;
@@ -630,14 +630,14 @@ get_features(struct mISDNchannel *ch)
        if (!ch->peer) {
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: no peer, no features\n",
-                               __func__);
+                              __func__);
                return;
        }
        memset(&cq, 0, sizeof(cq));
        cq.op = MISDN_CTRL_GETOP;
        if (ch->peer->ctrl(ch->peer, CONTROL_CHANNEL, &cq) < 0) {
                printk(KERN_DEBUG "%s: CONTROL_CHANNEL failed\n",
-                       __func__);
+                      __func__);
                return;
        }
        if (cq.op & MISDN_CTRL_RX_OFF)
@@ -651,12 +651,12 @@ get_features(struct mISDNchannel *ch)
                *((u_long *)&cq.p1) = (u_long)&dsp->features;
                if (ch->peer->ctrl(ch->peer, CONTROL_CHANNEL, &cq)) {
                        printk(KERN_DEBUG "%s: 2nd CONTROL_CHANNEL failed\n",
-                               __func__);
+                              __func__);
                }
        } else
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: features not supported for %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
 }
 
 static int
@@ -670,7 +670,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
 
        hh = mISDN_HEAD_P(skb);
        switch (hh->prim) {
-       /* FROM DOWN */
+               /* FROM DOWN */
        case (PH_DATA_CNF):
                dsp->data_pending = 0;
                /* trigger next hdlc frame, if any */
@@ -690,8 +690,8 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                if (dsp->rx_is_off) {
                        if (dsp_debug & DEBUG_DSP_CORE)
                                printk(KERN_DEBUG "%s: rx-data during rx_off"
-                                       " for %s\n",
-                               __func__, dsp->name);
+                                      " for %s\n",
+                                      __func__, dsp->name);
                }
                if (dsp->hdlc) {
                        /* hdlc */
@@ -716,14 +716,14 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                /* pipeline */
                if (dsp->pipeline.inuse)
                        dsp_pipeline_process_rx(&dsp->pipeline, skb->data,
-                               skb->len, hh->id);
+                                               skb->len, hh->id);
                /* change volume if requested */
                if (dsp->rx_volume)
                        dsp_change_volume(skb, dsp->rx_volume);
                /* check if dtmf soft decoding is turned on */
                if (dsp->dtmf.software) {
                        digits = dsp_dtmf_goertzel_decode(dsp, skb->data,
-                               skb->len, (dsp_options&DSP_OPT_ULAW) ? 1 : 0);
+                                                         skb->len, (dsp_options & DSP_OPT_ULAW) ? 1 : 0);
                }
                /* we need to process receive data if software */
                if (dsp->conf && dsp->conf->software) {
@@ -740,16 +740,16 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                                struct sk_buff *nskb;
                                if (dsp_debug & DEBUG_DSP_DTMF)
                                        printk(KERN_DEBUG "%s: digit"
-                                           "(%c) to layer %s\n",
-                                           __func__, *digits, dsp->name);
+                                              "(%c) to layer %s\n",
+                                              __func__, *digits, dsp->name);
                                k = *digits | DTMF_TONE_VAL;
                                nskb = _alloc_mISDN_skb(PH_CONTROL_IND,
-                                       MISDN_ID_ANY, sizeof(int), &k,
-                                       GFP_ATOMIC);
+                                                       MISDN_ID_ANY, sizeof(int), &k,
+                                                       GFP_ATOMIC);
                                if (nskb) {
                                        if (dsp->up) {
                                                if (dsp->up->send(
-                                                   dsp->up, nskb))
+                                                           dsp->up, nskb))
                                                        dev_kfree_skb(nskb);
                                        } else
                                                dev_kfree_skb(nskb);
@@ -768,34 +768,34 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
        case (PH_CONTROL_IND):
                if (dsp_debug & DEBUG_DSP_DTMFCOEFF)
                        printk(KERN_DEBUG "%s: PH_CONTROL INDICATION "
-                               "received: %x (len %d) %s\n", __func__,
-                               hh->id, skb->len, dsp->name);
+                              "received: %x (len %d) %s\n", __func__,
+                              hh->id, skb->len, dsp->name);
                switch (hh->id) {
                case (DTMF_HFC_COEF): /* getting coefficients */
                        if (!dsp->dtmf.hardware) {
                                if (dsp_debug & DEBUG_DSP_DTMFCOEFF)
                                        printk(KERN_DEBUG "%s: ignoring DTMF "
-                                               "coefficients from HFC\n",
-                                               __func__);
+                                              "coefficients from HFC\n",
+                                              __func__);
                                break;
                        }
                        digits = dsp_dtmf_goertzel_decode(dsp, skb->data,
-                               skb->len, 2);
+                                                         skb->len, 2);
                        while (*digits) {
                                int k;
                                struct sk_buff *nskb;
                                if (dsp_debug & DEBUG_DSP_DTMF)
                                        printk(KERN_DEBUG "%s: digit"
-                                           "(%c) to layer %s\n",
-                                           __func__, *digits, dsp->name);
+                                              "(%c) to layer %s\n",
+                                              __func__, *digits, dsp->name);
                                k = *digits | DTMF_TONE_VAL;
                                nskb = _alloc_mISDN_skb(PH_CONTROL_IND,
-                                       MISDN_ID_ANY, sizeof(int), &k,
-                                       GFP_ATOMIC);
+                                                       MISDN_ID_ANY, sizeof(int), &k,
+                                                       GFP_ATOMIC);
                                if (nskb) {
                                        if (dsp->up) {
                                                if (dsp->up->send(
-                                                   dsp->up, nskb))
+                                                           dsp->up, nskb))
                                                        dev_kfree_skb(nskb);
                                        } else
                                                dev_kfree_skb(nskb);
@@ -812,7 +812,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                        dsp->tx_volume = *((int *)skb->data);
                        if (dsp_debug & DEBUG_DSP_CORE)
                                printk(KERN_DEBUG "%s: change tx volume to "
-                                       "%d\n", __func__, dsp->tx_volume);
+                                      "%d\n", __func__, dsp->tx_volume);
                        dsp_cmx_hardware(dsp->conf, dsp);
                        dsp_dtmf_hardware(dsp);
                        dsp_rx_off(dsp);
@@ -821,7 +821,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                default:
                        if (dsp_debug & DEBUG_DSP_CORE)
                                printk(KERN_DEBUG "%s: ctrl ind %x unhandled "
-                                       "%s\n", __func__, hh->id, dsp->name);
+                                      "%s\n", __func__, hh->id, dsp->name);
                        ret = -EINVAL;
                }
                break;
@@ -829,13 +829,13 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
        case (PH_ACTIVATE_CNF):
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: b_channel is now active %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
                /* bchannel now active */
                spin_lock_irqsave(&dsp_lock, flags);
                dsp->b_active = 1;
                dsp->data_pending = 0;
                dsp->rx_init = 1;
-                       /* rx_W and rx_R will be adjusted on first frame */
+               /* rx_W and rx_R will be adjusted on first frame */
                dsp->rx_W = 0;
                dsp->rx_R = 0;
                memset(dsp->rx_buff, 0, sizeof(dsp->rx_buff));
@@ -845,8 +845,8 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                spin_unlock_irqrestore(&dsp_lock, flags);
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: done with activation, sending "
-                               "confirm to user space. %s\n", __func__,
-                               dsp->name);
+                              "confirm to user space. %s\n", __func__,
+                              dsp->name);
                /* send activation to upper layer */
                hh->prim = DL_ESTABLISH_CNF;
                if (dsp->up)
@@ -856,7 +856,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
        case (PH_DEACTIVATE_CNF):
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: b_channel is now inactive %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
                /* bchannel now inactive */
                spin_lock_irqsave(&dsp_lock, flags);
                dsp->b_active = 0;
@@ -868,7 +868,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
                if (dsp->up)
                        return dsp->up->send(dsp->up, skb);
                break;
-       /* FROM UP */
+               /* FROM UP */
        case (DL_DATA_REQ):
        case (PH_DATA_REQ):
                if (skb->len < 1) {
@@ -904,7 +904,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
        case (PH_ACTIVATE_REQ):
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: activating b_channel %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
                if (dsp->dtmf.hardware || dsp->dtmf.software)
                        dsp_dtmf_goertzel_init(dsp);
                get_features(ch);
@@ -920,7 +920,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
        case (PH_DEACTIVATE_REQ):
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: releasing b_channel %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
                spin_lock_irqsave(&dsp_lock, flags);
                dsp->tone.tone = 0;
                dsp->tone.hardware = 0;
@@ -939,7 +939,7 @@ dsp_function(struct mISDNchannel *ch,  struct sk_buff *skb)
        default:
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: msg %x unhandled %s\n",
-                               __func__, hh->prim, dsp->name);
+                              __func__, hh->prim, dsp->name);
                ret = -EINVAL;
        }
        if (!ret)
@@ -978,7 +978,7 @@ dsp_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                skb_queue_purge(&dsp->sendq);
                if (dsp_debug & DEBUG_DSP_CTRL)
                        printk(KERN_DEBUG "%s: releasing member %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
                dsp->b_active = 0;
                dsp_cmx_conf(dsp, 0); /* dsp_cmx_hardware will also be called
                                         here */
@@ -986,13 +986,13 @@ dsp_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
                if (dsp_debug & DEBUG_DSP_CTRL)
                        printk(KERN_DEBUG "%s: remove & destroy object %s\n",
-                               __func__, dsp->name);
+                              __func__, dsp->name);
                list_del(&dsp->list);
                spin_unlock_irqrestore(&dsp_lock, flags);
 
                if (dsp_debug & DEBUG_DSP_CTRL)
                        printk(KERN_DEBUG "%s: dsp instance released\n",
-                               __func__);
+                              __func__);
                vfree(dsp);
                module_put(THIS_MODULE);
                break;
@@ -1016,7 +1016,7 @@ dsp_send_bh(struct work_struct *work)
                if (dsp->data_pending) {
                        if (dsp_debug & DEBUG_DSP_CORE)
                                printk(KERN_DEBUG "%s: fifo full %s, this is "
-                                       "no bug!\n", __func__, dsp->name);
+                                      "no bug!\n", __func__, dsp->name);
                        /* flush transparent data, if not acked */
                        dev_kfree_skb(skb);
                        continue;
@@ -1050,7 +1050,7 @@ dspcreate(struct channel_req *crq)
        u_long          flags;
 
        if (crq->protocol != ISDN_P_B_L2DSP
-        && crq->protocol != ISDN_P_B_L2DSPHDLC)
+           && crq->protocol != ISDN_P_B_L2DSPHDLC)
                return -EPROTONOSUPPORT;
        ndsp = vzalloc(sizeof(struct dsp));
        if (!ndsp) {
@@ -1076,7 +1076,7 @@ dspcreate(struct channel_req *crq)
        }
        if (!try_module_get(THIS_MODULE))
                printk(KERN_WARNING "%s:cannot get module\n",
-                       __func__);
+                      __func__);
 
        sprintf(ndsp->name, "DSP_C%x(0x%p)",
                ndsp->up->st->dev->id + 1, ndsp);
@@ -1095,7 +1095,7 @@ dspcreate(struct channel_req *crq)
 
        if (dtmfthreshold < 20 || dtmfthreshold > 500)
                dtmfthreshold = 200;
-       ndsp->dtmf.treshold = dtmfthreshold*10000;
+       ndsp->dtmf.treshold = dtmfthreshold * 10000;
 
        /* init pipeline append to list */
        spin_lock_irqsave(&dsp_lock, flags);
@@ -1109,7 +1109,7 @@ dspcreate(struct channel_req *crq)
 
 static struct Bprotocol DSP = {
        .Bprotocols = (1 << (ISDN_P_B_L2DSP & ISDN_P_B_MASK))
-               | (1 << (ISDN_P_B_L2DSPHDLC & ISDN_P_B_MASK)),
+       | (1 << (ISDN_P_B_L2DSPHDLC & ISDN_P_B_MASK)),
        .name = "dsp",
        .create = dspcreate
 };
@@ -1129,21 +1129,21 @@ static int __init dsp_init(void)
        if (dsp_poll) {
                if (dsp_poll > MAX_POLL) {
                        printk(KERN_ERR "%s: Wrong poll value (%d), use %d "
-                               "maximum.\n", __func__, poll, MAX_POLL);
+                              "maximum.\n", __func__, poll, MAX_POLL);
                        err = -EINVAL;
                        return err;
                }
                if (dsp_poll < 8) {
                        printk(KERN_ERR "%s: Wrong poll value (%d), use 8 "
-                               "minimum.\n", __func__, dsp_poll);
+                              "minimum.\n", __func__, dsp_poll);
                        err = -EINVAL;
                        return err;
                }
                dsp_tics = poll * HZ / 8000;
                if (dsp_tics * 8000 != poll * HZ) {
                        printk(KERN_INFO "mISDN_dsp: Cannot clock every %d "
-                               "samples (0,125 ms). It is not a multiple of "
-                               "%d HZ.\n", poll, HZ);
+                              "samples (0,125 ms). It is not a multiple of "
+                              "%d HZ.\n", poll, HZ);
                        err = -EINVAL;
                        return err;
                }
@@ -1162,14 +1162,14 @@ static int __init dsp_init(void)
        }
        if (dsp_poll == 0) {
                printk(KERN_INFO "mISDN_dsp: There is no multiple of kernel "
-                       "clock that equals exactly the duration of 8-256 "
-                       "samples. (Choose kernel clock speed like 100, 250, "
-                       "300, 1000)\n");
+                      "clock that equals exactly the duration of 8-256 "
+                      "samples. (Choose kernel clock speed like 100, 250, "
+                      "300, 1000)\n");
                err = -EINVAL;
                return err;
        }
        printk(KERN_INFO "mISDN_dsp: DSP clocks every %d samples. This equals "
-               "%d jiffies.\n", dsp_poll, dsp_tics);
+              "%d jiffies.\n", dsp_poll, dsp_tics);
 
        spin_lock_init(&dsp_lock);
        INIT_LIST_HEAD(&dsp_ilist);
@@ -1177,8 +1177,8 @@ static int __init dsp_init(void)
 
        /* init conversion tables */
        dsp_audio_generate_law_tables();
-       dsp_silence = (dsp_options&DSP_OPT_ULAW) ? 0xff : 0x2a;
-       dsp_audio_law_to_s32 = (dsp_options&DSP_OPT_ULAW) ?
+       dsp_silence = (dsp_options & DSP_OPT_ULAW) ? 0xff : 0x2a;
+       dsp_audio_law_to_s32 = (dsp_options & DSP_OPT_ULAW) ?
                dsp_audio_ulaw_to_s32 : dsp_audio_alaw_to_s32;
        dsp_audio_generate_s2law_table();
        dsp_audio_generate_seven();
@@ -1190,7 +1190,7 @@ static int __init dsp_init(void)
        err = dsp_pipeline_module_init();
        if (err) {
                printk(KERN_ERR "mISDN_dsp: Can't initialize pipeline, "
-                       "error(%d)\n", err);
+                      "error(%d)\n", err);
                return err;
        }
 
@@ -1221,11 +1221,11 @@ static void __exit dsp_cleanup(void)
 
        if (!list_empty(&dsp_ilist)) {
                printk(KERN_ERR "mISDN_dsp: Audio DSP object inst list not "
-                       "empty.\n");
+                      "empty.\n");
        }
        if (!list_empty(&conf_ilist)) {
                printk(KERN_ERR "mISDN_dsp: Conference list not empty. Not "
-                       "all memory freed.\n");
+                      "all memory freed.\n");
        }
 
        dsp_pipeline_module_exit();
@@ -1233,4 +1233,3 @@ static void __exit dsp_cleanup(void)
 
 module_init(dsp_init);
 module_exit(dsp_cleanup);
-
index 5b484c3..887860b 100644 (file)
@@ -61,31 +61,31 @@ void dsp_dtmf_hardware(struct dsp *dsp)
        if (dsp->tx_volume) {
                if (dsp_debug & DEBUG_DSP_DTMF)
                        printk(KERN_DEBUG "%s dsp %s cannot do hardware DTMF, "
-                               "because tx_volume is changed\n",
-                               __func__, dsp->name);
+                              "because tx_volume is changed\n",
+                              __func__, dsp->name);
                hardware = 0;
        }
        if (dsp->rx_volume) {
                if (dsp_debug & DEBUG_DSP_DTMF)
                        printk(KERN_DEBUG "%s dsp %s cannot do hardware DTMF, "
-                               "because rx_volume is changed\n",
-                               __func__, dsp->name);
+                              "because rx_volume is changed\n",
+                              __func__, dsp->name);
                hardware = 0;
        }
        /* check if encryption is enabled */
        if (dsp->bf_enable) {
                if (dsp_debug & DEBUG_DSP_DTMF)
                        printk(KERN_DEBUG "%s dsp %s cannot do hardware DTMF, "
-                               "because encryption is enabled\n",
-                               __func__, dsp->name);
+                              "because encryption is enabled\n",
+                              __func__, dsp->name);
                hardware = 0;
        }
        /* check if pipeline exists */
        if (dsp->pipeline.inuse) {
                if (dsp_debug & DEBUG_DSP_DTMF)
                        printk(KERN_DEBUG "%s dsp %s cannot do hardware DTMF, "
-                               "because pipeline exists.\n",
-                               __func__, dsp->name);
+                              "because pipeline exists.\n",
+                              __func__, dsp->name);
                hardware = 0;
        }
 
@@ -150,23 +150,23 @@ again:
                if (len < 64) {
                        if (len > 0)
                                printk(KERN_ERR "%s: coefficients have invalid "
-                                       "size. (is=%d < must=%d)\n",
-                                       __func__, len, 64);
+                                      "size. (is=%d < must=%d)\n",
+                                      __func__, len, 64);
                        return dsp->dtmf.digits;
                }
                hfccoeff = (s32 *)data;
                for (k = 0; k < NCOEFF; k++) {
-                       sk2 = (*hfccoeff++)>>4;
-                       sk = (*hfccoeff++)>>4;
+                       sk2 = (*hfccoeff++) >> 4;
+                       sk = (*hfccoeff++) >> 4;
                        if (sk > 32767 || sk < -32767 || sk2 > 32767
                            || sk2 < -32767)
                                printk(KERN_WARNING
-                                       "DTMF-Detection overflow\n");
+                                      "DTMF-Detection overflow\n");
                        /* compute |X(k)|**2 */
                        result[k] =
-                                (sk * sk) -
-                                (((cos2pik[k] * sk) >> 15) * sk2) +
-                                (sk2 * sk2);
+                               (sk * sk) -
+                               (((cos2pik[k] * sk) >> 15) * sk2) +
+                               (sk2 * sk2);
                }
                data += 64;
                len -= 64;
@@ -188,7 +188,7 @@ again:
                buf = dsp->dtmf.buffer;
                cos2pik_ = cos2pik[k];
                for (n = 0; n < DSP_DTMF_NPOINTS; n++) {
-                       sk = ((cos2pik_*sk1)>>15) - sk2 + (*buf++);
+                       sk = ((cos2pik_ * sk1) >> 15) - sk2 + (*buf++);
                        sk2 = sk1;
                        sk1 = sk;
                }
@@ -224,14 +224,14 @@ coefficients:
 
        if (dsp_debug & DEBUG_DSP_DTMFCOEFF)
                printk(KERN_DEBUG "a %3d %3d %3d %3d %3d %3d %3d %3d"
-                       " tr:%3d r %3d %3d %3d %3d %3d %3d %3d %3d\n",
-                       result[0]/10000, result[1]/10000, result[2]/10000,
-                       result[3]/10000, result[4]/10000, result[5]/10000,
-                       result[6]/10000, result[7]/10000, tresh/10000,
-                       result[0]/(tresh/100), result[1]/(tresh/100),
-                       result[2]/(tresh/100), result[3]/(tresh/100),
-                       result[4]/(tresh/100), result[5]/(tresh/100),
-                       result[6]/(tresh/100), result[7]/(tresh/100));
+                      " tr:%3d r %3d %3d %3d %3d %3d %3d %3d %3d\n",
+                      result[0] / 10000, result[1] / 10000, result[2] / 10000,
+                      result[3] / 10000, result[4] / 10000, result[5] / 10000,
+                      result[6] / 10000, result[7] / 10000, tresh / 10000,
+                      result[0] / (tresh / 100), result[1] / (tresh / 100),
+                      result[2] / (tresh / 100), result[3] / (tresh / 100),
+                      result[4] / (tresh / 100), result[5] / (tresh / 100),
+                      result[6] / (tresh / 100), result[7] / (tresh / 100));
 
        /* calc digit (lowgroup/highgroup) */
        lowgroup = -1;
@@ -247,7 +247,7 @@ coefficients:
                        break;  /* noise in between */
                }
                /* good level found. This is allowed only one time per group */
-               if (i < NCOEFF/2) {
+               if (i < NCOEFF / 2) {
                        /* lowgroup */
                        if (lowgroup >= 0) {
                                /* Bad. Another tone found. */
@@ -262,7 +262,7 @@ coefficients:
                                highgroup = -1;
                                break;
                        } else
-                               highgroup = i-(NCOEFF/2);
+                               highgroup = i - (NCOEFF / 2);
                }
        }
 
@@ -285,13 +285,13 @@ storedigit:
                        if (what) {
                                if (dsp_debug & DEBUG_DSP_DTMF)
                                        printk(KERN_DEBUG "DTMF digit: %c\n",
-                                               what);
-                               if ((strlen(dsp->dtmf.digits)+1)
-                                       < sizeof(dsp->dtmf.digits)) {
+                                              what);
+                               if ((strlen(dsp->dtmf.digits) + 1)
+                                   < sizeof(dsp->dtmf.digits)) {
                                        dsp->dtmf.digits[strlen(
-                                               dsp->dtmf.digits)+1] = '\0';
+                                                       dsp->dtmf.digits) + 1] = '\0';
                                        dsp->dtmf.digits[strlen(
-                                               dsp->dtmf.digits)] = what;
+                                                       dsp->dtmf.digits)] = what;
                                }
                        }
                }
@@ -302,5 +302,3 @@ storedigit:
 
        goto again;
 }
-
-
index 21dbd15..fed99ac 100644 (file)
@@ -46,15 +46,15 @@ struct ec_disable_detector_state {
 static inline void
 echo_can_disable_detector_init(struct ec_disable_detector_state *det)
 {
-    /* Elliptic notch */
-    /* This is actually centred at 2095Hz, but gets the balance we want, due
-       to the asymmetric walls of the notch */
+       /* Elliptic notch */
+       /* This is actually centred at 2095Hz, but gets the balance we want, due
+          to the asymmetric walls of the notch */
        biquad2_init(&det->notch,
-               (int32_t) (-0.7600000*32768.0),
-               (int32_t) (-0.1183852*32768.0),
-               (int32_t) (-0.5104039*32768.0),
-               (int32_t) (0.1567596*32768.0),
-               (int32_t) (1.0000000*32768.0));
+                    (int32_t)(-0.7600000 * 32768.0),
+                    (int32_t)(-0.1183852 * 32768.0),
+                    (int32_t)(-0.5104039 * 32768.0),
+                    (int32_t)(0.1567596 * 32768.0),
+                    (int32_t)(1.0000000 * 32768.0));
 
        det->channel_level = 0;
        det->notch_level = 0;
@@ -67,7 +67,7 @@ echo_can_disable_detector_init(struct ec_disable_detector_state *det)
 
 static inline int
 echo_can_disable_detector_update(struct ec_disable_detector_state *det,
-int16_t amp)
+                                int16_t amp)
 {
        int16_t notched;
 
@@ -82,13 +82,13 @@ int16_t amp)
        det->notch_level += ((abs(notched) - det->notch_level) >> 4);
        if (det->channel_level > 280) {
                /* There is adequate energy in the channel.
-                Is it mostly at 2100Hz? */
-               if (det->notch_level*6 < det->channel_level) {
+                  Is it mostly at 2100Hz? */
+               if (det->notch_level * 6 < det->channel_level) {
                        /* The notch says yes, so we have the tone. */
                        if (!det->tone_present) {
                                /* Do we get a kick every 450+-25ms? */
-                               if (det->tone_cycle_duration >= 425*8
-                                       && det->tone_cycle_duration <= 475*8) {
+                               if (det->tone_cycle_duration >= 425 * 8
+                                   && det->tone_cycle_duration <= 475 * 8) {
                                        det->good_cycles++;
                                        if (det->good_cycles > 2)
                                                det->hit = TRUE;
index 806a997..a6e8707 100644 (file)
@@ -56,7 +56,7 @@ void dsp_hwec_enable(struct dsp *dsp, const char *arg)
 
        if (!dsp) {
                printk(KERN_ERR "%s: failed to enable hwec: dsp is NULL\n",
-                       __func__);
+                      __func__);
                return;
        }
 
@@ -93,13 +93,13 @@ void dsp_hwec_enable(struct dsp *dsp, const char *arg)
 
 _do:
        printk(KERN_DEBUG "%s: enabling hwec with deftaps=%d\n",
-               __func__, deftaps);
+              __func__, deftaps);
        memset(&cq, 0, sizeof(cq));
        cq.op = MISDN_CTRL_HFC_ECHOCAN_ON;
        cq.p1 = deftaps;
        if (!dsp->ch.peer->ctrl(&dsp->ch, CONTROL_CHANNEL, &cq)) {
                printk(KERN_DEBUG "%s: CONTROL_CHANNEL failed\n",
-                       __func__);
+                      __func__);
                return;
        }
 }
@@ -110,7 +110,7 @@ void dsp_hwec_disable(struct dsp *dsp)
 
        if (!dsp) {
                printk(KERN_ERR "%s: failed to disable hwec: dsp is NULL\n",
-                       __func__);
+                      __func__);
                return;
        }
 
@@ -119,7 +119,7 @@ void dsp_hwec_disable(struct dsp *dsp)
        cq.op = MISDN_CTRL_HFC_ECHOCAN_OFF;
        if (!dsp->ch.peer->ctrl(&dsp->ch, CONTROL_CHANNEL, &cq)) {
                printk(KERN_DEBUG "%s: CONTROL_CHANNEL failed\n",
-                       __func__);
+                      __func__);
                return;
        }
 }
@@ -135,4 +135,3 @@ void dsp_hwec_exit(void)
 {
        mISDN_dsp_element_unregister(dsp_hwec);
 }
-
index eebe80c..bbca1eb 100644 (file)
@@ -7,4 +7,3 @@ extern void dsp_hwec_enable(struct dsp *dsp, const char *arg);
 extern void dsp_hwec_disable(struct dsp *dsp);
 extern int  dsp_hwec_init(void);
 extern void dsp_hwec_exit(void);
-
index b6c9a58..88305c9 100644 (file)
@@ -63,11 +63,11 @@ attr_show_args(struct device *dev, struct device_attribute *attr, char *buf)
        *buf = 0;
        for (i = 0; i < elem->num_args; i++)
                p += sprintf(p, "Name:        %s\n%s%s%sDescription: %s\n\n",
-                         elem->args[i].name,
-                         elem->args[i].def ? "Default:     " : "",
-                         elem->args[i].def ? elem->args[i].def : "",
-                         elem->args[i].def ? "\n" : "",
-                         elem->args[i].desc);
+                            elem->args[i].name,
+                            elem->args[i].def ? "Default:     " : "",
+                            elem->args[i].def ? elem->args[i].def : "",
+                            elem->args[i].def ? "\n" : "",
+                            elem->args[i].desc);
 
        return p - buf;
 }
@@ -106,17 +106,17 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)
        ret = device_register(&entry->dev);
        if (ret) {
                printk(KERN_ERR "%s: failed to register %s\n",
-                       __func__, elem->name);
+                      __func__, elem->name);
                goto err1;
        }
        list_add_tail(&entry->list, &dsp_elements);
 
        for (i = 0; i < ARRAY_SIZE(element_attributes); ++i) {
                ret = device_create_file(&entry->dev,
-                               &element_attributes[i]);
+                                        &element_attributes[i]);
                if (ret) {
                        printk(KERN_ERR "%s: failed to create device file\n",
-                               __func__);
+                              __func__);
                        goto err2;
                }
        }
@@ -148,7 +148,7 @@ void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem)
                        device_unregister(&entry->dev);
 #ifdef PIPELINE_DEBUG
                        printk(KERN_DEBUG "%s: %s unregistered\n",
-                               __func__, elem->name);
+                              __func__, elem->name);
 #endif
                        return;
                }
@@ -182,7 +182,7 @@ void dsp_pipeline_module_exit(void)
        list_for_each_entry_safe(entry, n, &dsp_elements, list) {
                list_del(&entry->list);
                printk(KERN_WARNING "%s: element was still registered: %s\n",
-                       __func__, entry->elem->name);
+                      __func__, entry->elem->name);
                kfree(entry);
        }
 
@@ -213,7 +213,7 @@ static inline void _dsp_pipeline_destroy(struct dsp_pipeline *pipeline)
                list_del(&entry->list);
                if (entry->elem == dsp_hwec)
                        dsp_hwec_disable(container_of(pipeline, struct dsp,
-                               pipeline));
+                                                     pipeline));
                else
                        entry->elem->free(entry->p);
                kfree(entry);
@@ -271,11 +271,11 @@ int dsp_pipeline_build(struct dsp_pipeline *pipeline, const char *cfg)
                                elem = entry->elem;
 
                                pipeline_entry = kmalloc(sizeof(struct
-                                       dsp_pipeline_entry), GFP_ATOMIC);
+                                                               dsp_pipeline_entry), GFP_ATOMIC);
                                if (!pipeline_entry) {
                                        printk(KERN_ERR "%s: failed to add "
-                                           "entry to pipeline: %s (out of "
-                                           "memory)\n", __func__, elem->name);
+                                              "entry to pipeline: %s (out of "
+                                              "memory)\n", __func__, elem->name);
                                        incomplete = 1;
                                        goto _out;
                                }
@@ -285,26 +285,26 @@ int dsp_pipeline_build(struct dsp_pipeline *pipeline, const char *cfg)
                                        /* This is a hack to make the hwec
                                           available as a pipeline module */
                                        dsp_hwec_enable(container_of(pipeline,
-                                               struct dsp, pipeline), args);
+                                                                    struct dsp, pipeline), args);
                                        list_add_tail(&pipeline_entry->list,
-                                               &pipeline->list);
+                                                     &pipeline->list);
                                } else {
                                        pipeline_entry->p = elem->new(args);
                                        if (pipeline_entry->p) {
                                                list_add_tail(&pipeline_entry->
-                                                       list, &pipeline->list);
+                                                             list, &pipeline->list);
 #ifdef PIPELINE_DEBUG
                                                printk(KERN_DEBUG "%s: created "
-                                                   "instance of %s%s%s\n",
-                                                   __func__, name, args ?
-                                                   " with args " : "", args ?
-                                                   args : "");
+                                                      "instance of %s%s%s\n",
+                                                      __func__, name, args ?
+                                                      " with args " : "", args ?
+                                                      args : "");
 #endif
                                        } else {
                                                printk(KERN_ERR "%s: failed "
-                                                 "to add entry to pipeline: "
-                                                 "%s (new() returned NULL)\n",
-                                                 __func__, elem->name);
+                                                      "to add entry to pipeline: "
+                                                      "%s (new() returned NULL)\n",
+                                                      __func__, elem->name);
                                                kfree(pipeline_entry);
                                                incomplete = 1;
                                        }
@@ -317,7 +317,7 @@ int dsp_pipeline_build(struct dsp_pipeline *pipeline, const char *cfg)
                        found = 0;
                else {
                        printk(KERN_ERR "%s: element not found, skipping: "
-                               "%s\n", __func__, name);
+                              "%s\n", __func__, name);
                        incomplete = 1;
                }
        }
@@ -330,7 +330,7 @@ _out:
 
 #ifdef PIPELINE_DEBUG
        printk(KERN_DEBUG "%s: dsp pipeline built%s: %s\n",
-               __func__, incomplete ? " incomplete" : "", cfg);
+              __func__, incomplete ? " incomplete" : "", cfg);
 #endif
        kfree(dup);
        return 0;
@@ -349,7 +349,7 @@ void dsp_pipeline_process_tx(struct dsp_pipeline *pipeline, u8 *data, int len)
 }
 
 void dsp_pipeline_process_rx(struct dsp_pipeline *pipeline, u8 *data, int len,
-       unsigned int txlen)
+                            unsigned int txlen)
 {
        struct dsp_pipeline_entry *entry;
 
@@ -360,5 +360,3 @@ void dsp_pipeline_process_rx(struct dsp_pipeline *pipeline, u8 *data, int len,
                if (entry->elem->process_rx)
                        entry->elem->process_rx(entry->p, data, len, txlen);
 }
-
-
index 4e4440e..057e0d6 100644 (file)
@@ -239,120 +239,120 @@ static struct pattern {
        u32 seq[10];
 } pattern[] = {
        {TONE_GERMAN_DIALTONE,
-       {DATA_GA, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GA, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {1900, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GA, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GA, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {1900, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_OLDDIALTONE,
-       {DATA_GO, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GO, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {1998, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GO, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GO, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {1998, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_AMERICAN_DIALTONE,
-       {DATA_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {8000, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {8000, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_DIALPBX,
-       {DATA_GA, DATA_S, DATA_GA, DATA_S, DATA_GA, DATA_S, NULL, NULL, NULL,
-               NULL},
-       {SIZE_GA, SIZE_S, SIZE_GA, SIZE_S, SIZE_GA, SIZE_S, NULL, NULL, NULL,
-               NULL},
-       {2000, 2000, 2000, 2000, 2000, 12000, 0, 0, 0, 0} },
+        {DATA_GA, DATA_S, DATA_GA, DATA_S, DATA_GA, DATA_S, NULL, NULL, NULL,
+         NULL},
+        {SIZE_GA, SIZE_S, SIZE_GA, SIZE_S, SIZE_GA, SIZE_S, NULL, NULL, NULL,
+         NULL},
+        {2000, 2000, 2000, 2000, 2000, 12000, 0, 0, 0, 0} },
 
        {TONE_GERMAN_OLDDIALPBX,
-       {DATA_GO, DATA_S, DATA_GO, DATA_S, DATA_GO, DATA_S, NULL, NULL, NULL,
-               NULL},
-       {SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, NULL, NULL, NULL,
-               NULL},
-       {2000, 2000, 2000, 2000, 2000, 12000, 0, 0, 0, 0} },
+        {DATA_GO, DATA_S, DATA_GO, DATA_S, DATA_GO, DATA_S, NULL, NULL, NULL,
+         NULL},
+        {SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, NULL, NULL, NULL,
+         NULL},
+        {2000, 2000, 2000, 2000, 2000, 12000, 0, 0, 0, 0} },
 
        {TONE_AMERICAN_DIALPBX,
-       {DATA_DT, DATA_S, DATA_DT, DATA_S, DATA_DT, DATA_S, NULL, NULL, NULL,
-               NULL},
-       {SIZE_DT, SIZE_S, SIZE_DT, SIZE_S, SIZE_DT, SIZE_S, NULL, NULL, NULL,
-               NULL},
-       {2000, 2000, 2000, 2000, 2000, 12000, 0, 0, 0, 0} },
+        {DATA_DT, DATA_S, DATA_DT, DATA_S, DATA_DT, DATA_S, NULL, NULL, NULL,
+         NULL},
+        {SIZE_DT, SIZE_S, SIZE_DT, SIZE_S, SIZE_DT, SIZE_S, NULL, NULL, NULL,
+         NULL},
+        {2000, 2000, 2000, 2000, 2000, 12000, 0, 0, 0, 0} },
 
        {TONE_GERMAN_RINGING,
-       {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {8000, 32000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {8000, 32000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_OLDRINGING,
-       {DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {8000, 40000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {8000, 40000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_AMERICAN_RINGING,
-       {DATA_RI, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_RI, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {8000, 32000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_RI, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_RI, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {8000, 32000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_RINGPBX,
-       {DATA_GA, DATA_S, DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GA, SIZE_S, SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {4000, 4000, 4000, 28000, 0, 0, 0, 0, 0, 0} },
+        {DATA_GA, DATA_S, DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GA, SIZE_S, SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {4000, 4000, 4000, 28000, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_OLDRINGPBX,
-       {DATA_GO, DATA_S, DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {4000, 4000, 4000, 28000, 0, 0, 0, 0, 0, 0} },
+        {DATA_GO, DATA_S, DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {4000, 4000, 4000, 28000, 0, 0, 0, 0, 0, 0} },
 
        {TONE_AMERICAN_RINGPBX,
-       {DATA_RI, DATA_S, DATA_RI, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_RI, SIZE_S, SIZE_RI, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {4000, 4000, 4000, 28000, 0, 0, 0, 0, 0, 0} },
+        {DATA_RI, DATA_S, DATA_RI, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_RI, SIZE_S, SIZE_RI, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {4000, 4000, 4000, 28000, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_BUSY,
-       {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {4000, 4000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {4000, 4000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_OLDBUSY,
-       {DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {1000, 5000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {1000, 5000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_AMERICAN_BUSY,
-       {DATA_BU, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_BU, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {4000, 4000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_BU, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_BU, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {4000, 4000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_HANGUP,
-       {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {4000, 4000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {4000, 4000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_OLDHANGUP,
-       {DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {1000, 5000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {1000, 5000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_AMERICAN_HANGUP,
-       {DATA_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {8000, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_DT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {8000, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_SPECIAL_INFO,
-       {DATA_S1, DATA_S2, DATA_S3, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_S1, SIZE_S2, SIZE_S3, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {2666, 2666, 2666, 8002, 0, 0, 0, 0, 0, 0} },
+        {DATA_S1, DATA_S2, DATA_S3, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_S1, SIZE_S2, SIZE_S3, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {2666, 2666, 2666, 8002, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_GASSENBESETZT,
-       {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {2000, 2000, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {DATA_GA, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GA, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {2000, 2000, 0, 0, 0, 0, 0, 0, 0, 0} },
 
        {TONE_GERMAN_AUFSCHALTTON,
-       {DATA_GO, DATA_S, DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
-       {1000, 5000, 1000, 17000, 0, 0, 0, 0, 0, 0} },
+        {DATA_GO, DATA_S, DATA_GO, DATA_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {SIZE_GO, SIZE_S, SIZE_GO, SIZE_S, NULL, NULL, NULL, NULL, NULL, NULL},
+        {1000, 5000, 1000, 17000, 0, 0, 0, 0, 0, 0} },
 
        {0,
-       {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+        {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 };
 
 /******************
@@ -386,7 +386,7 @@ void dsp_tone_copy(struct dsp *dsp, u8 *data, int len)
 
        /* process pattern */
        pat = (struct pattern *)tone->pattern;
-               /* points to the current pattern */
+       /* points to the current pattern */
        index = tone->index; /* gives current sequence index */
        count = tone->count; /* gives current sample */
 
@@ -404,19 +404,19 @@ void dsp_tone_copy(struct dsp *dsp, u8 *data, int len)
                                break;
                        if (dsp_debug & DEBUG_DSP_TONE)
                                printk(KERN_DEBUG "%s: reaching next sequence "
-                                       "(index=%d)\n", __func__, index);
+                                      "(index=%d)\n", __func__, index);
                        count -= pat->seq[index];
                        index++;
                }
                /* calculate start and number of samples */
                start = count % (*(pat->siz[index]));
                num = len;
-               if (num+count > pat->seq[index])
+               if (num + count > pat->seq[index])
                        num = pat->seq[index] - count;
-               if (num+start > (*(pat->siz[index])))
+               if (num + start > (*(pat->siz[index])))
                        num = (*(pat->siz[index])) - start;
                /* copy memory */
-               memcpy(data, pat->data[index]+start, num);
+               memcpy(data, pat->data[index] + start, num);
                /* reduce length */
                data += num;
                count += num;
@@ -441,8 +441,8 @@ dsp_tone_hw_message(struct dsp *dsp, u8 *sample, int len)
 
        /* unlocking is not required, because we don't expect a response */
        nskb = _alloc_mISDN_skb(PH_CONTROL_REQ,
-               (len) ? HFC_SPL_LOOP_ON : HFC_SPL_LOOP_OFF, len, sample,
-               GFP_ATOMIC);
+                               (len) ? HFC_SPL_LOOP_ON : HFC_SPL_LOOP_OFF, len, sample,
+                               GFP_ATOMIC);
        if (nskb) {
                if (dsp->ch.peer) {
                        if (dsp->ch.recv(dsp->ch.peer, nskb))
@@ -528,7 +528,7 @@ dsp_tone(struct dsp *dsp, int tone)
        }
        if (dsp_debug & DEBUG_DSP_TONE)
                printk(KERN_DEBUG "%s: now starting tone %d (index=%d)\n",
-                       __func__, tone, 0);
+                      __func__, tone, 0);
        tonet->tone = tone;
        tonet->pattern = pat;
        tonet->index = 0;
@@ -550,8 +550,3 @@ dsp_tone(struct dsp *dsp, int tone)
 
        return 0;
 }
-
-
-
-
-
index b5d6553..26477d4 100644 (file)
 
 void
 mISDN_FsmNew(struct Fsm *fsm,
-       struct FsmNode *fnlist, int fncount)
+            struct FsmNode *fnlist, int fncount)
 {
        int i;
 
        fsm->jumpmatrix = kzalloc(sizeof(FSMFNPTR) * fsm->state_count *
-               fsm->event_count, GFP_KERNEL);
+                                 fsm->event_count, GFP_KERNEL);
 
        for (i = 0; i < fncount; i++)
                if ((fnlist[i].state >= fsm->state_count) ||
                    (fnlist[i].event >= fsm->event_count)) {
                        printk(KERN_ERR
-                           "mISDN_FsmNew Error: %d st(%ld/%ld) ev(%ld/%ld)\n",
-                           i, (long)fnlist[i].state, (long)fsm->state_count,
-                           (long)fnlist[i].event, (long)fsm->event_count);
+                              "mISDN_FsmNew Error: %d st(%ld/%ld) ev(%ld/%ld)\n",
+                              i, (long)fnlist[i].state, (long)fsm->state_count,
+                              (long)fnlist[i].event, (long)fsm->event_count);
                } else
                        fsm->jumpmatrix[fsm->state_count * fnlist[i].event +
-                           fnlist[i].state] = (FSMFNPTR) fnlist[i].routine;
+                                       fnlist[i].state] = (FSMFNPTR) fnlist[i].routine;
 }
 EXPORT_SYMBOL(mISDN_FsmNew);
 
@@ -63,24 +63,24 @@ mISDN_FsmEvent(struct FsmInst *fi, int event, void *arg)
        if ((fi->state >= fi->fsm->state_count) ||
            (event >= fi->fsm->event_count)) {
                printk(KERN_ERR
-                   "mISDN_FsmEvent Error st(%ld/%ld) ev(%d/%ld)\n",
-                   (long)fi->state, (long)fi->fsm->state_count, event,
-                   (long)fi->fsm->event_count);
+                      "mISDN_FsmEvent Error st(%ld/%ld) ev(%d/%ld)\n",
+                      (long)fi->state, (long)fi->fsm->state_count, event,
+                      (long)fi->fsm->event_count);
                return 1;
        }
        r = fi->fsm->jumpmatrix[fi->fsm->state_count * event + fi->state];
        if (r) {
                if (fi->debug)
                        fi->printdebug(fi, "State %s Event %s",
-                               fi->fsm->strState[fi->state],
-                               fi->fsm->strEvent[event]);
+                                      fi->fsm->strState[fi->state],
+                                      fi->fsm->strEvent[event]);
                r(fi, event, arg);
                return 0;
        } else {
                if (fi->debug)
                        fi->printdebug(fi, "State %s Event %s no action",
-                               fi->fsm->strState[fi->state],
-                               fi->fsm->strEvent[event]);
+                                      fi->fsm->strState[fi->state],
+                                      fi->fsm->strEvent[event]);
                return 1;
        }
 }
@@ -92,7 +92,7 @@ mISDN_FsmChangeState(struct FsmInst *fi, int newstate)
        fi->state = newstate;
        if (fi->debug)
                fi->printdebug(fi, "ChangeState %s",
-                       fi->fsm->strState[newstate]);
+                              fi->fsm->strState[newstate]);
 }
 EXPORT_SYMBOL(mISDN_FsmChangeState);
 
@@ -126,7 +126,7 @@ mISDN_FsmDelTimer(struct FsmTimer *ft, int where)
 #if FSM_TIMER_DEBUG
        if (ft->fi->debug)
                ft->fi->printdebug(ft->fi, "mISDN_FsmDelTimer %lx %d",
-                       (long) ft, where);
+                                  (long) ft, where);
 #endif
        del_timer(&ft->tl);
 }
@@ -134,21 +134,21 @@ EXPORT_SYMBOL(mISDN_FsmDelTimer);
 
 int
 mISDN_FsmAddTimer(struct FsmTimer *ft,
-           int millisec, int event, void *arg, int where)
+                 int millisec, int event, void *arg, int where)
 {
 
 #if FSM_TIMER_DEBUG
        if (ft->fi->debug)
                ft->fi->printdebug(ft->fi, "mISDN_FsmAddTimer %lx %d %d",
-                       (long) ft, millisec, where);
+                                  (long) ft, millisec, where);
 #endif
 
        if (timer_pending(&ft->tl)) {
                if (ft->fi->debug) {
                        printk(KERN_WARNING
-                               "mISDN_FsmAddTimer: timer already active!\n");
+                              "mISDN_FsmAddTimer: timer already active!\n");
                        ft->fi->printdebug(ft->fi,
-                               "mISDN_FsmAddTimer already active!");
+                                          "mISDN_FsmAddTimer already active!");
                }
                return -1;
        }
@@ -163,13 +163,13 @@ EXPORT_SYMBOL(mISDN_FsmAddTimer);
 
 void
 mISDN_FsmRestartTimer(struct FsmTimer *ft,
-           int millisec, int event, void *arg, int where)
+                     int millisec, int event, void *arg, int where)
 {
 
 #if FSM_TIMER_DEBUG
        if (ft->fi->debug)
                ft->fi->printdebug(ft->fi, "mISDN_FsmRestartTimer %lx %d %d",
-                       (long) ft, millisec, where);
+                                  (long) ft, millisec, where);
 #endif
 
        if (timer_pending(&ft->tl))
index f6e108d..c74c363 100644 (file)
@@ -206,7 +206,7 @@ recv_Bchannel(struct bchannel *bch, unsigned int id)
        hh->id = id;
        if (bch->rcount >= 64) {
                printk(KERN_WARNING "B-channel %p receive queue overflow, "
-                       "flushing!\n", bch);
+                      "flushing!\n", bch);
                skb_queue_purge(&bch->rqueue);
                bch->rcount = 0;
                return;
@@ -231,7 +231,7 @@ recv_Bchannel_skb(struct bchannel *bch, struct sk_buff *skb)
 {
        if (bch->rcount >= 64) {
                printk(KERN_WARNING "B-channel %p receive queue overflow, "
-                       "flushing!\n", bch);
+                      "flushing!\n", bch);
                skb_queue_purge(&bch->rqueue);
                bch->rcount = 0;
        }
@@ -247,10 +247,10 @@ confirm_Dsend(struct dchannel *dch)
        struct sk_buff  *skb;
 
        skb = _alloc_mISDN_skb(PH_DATA_CNF, mISDN_HEAD_ID(dch->tx_skb),
-           0, NULL, GFP_ATOMIC);
+                              0, NULL, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_ERR "%s: no skb id %x\n", __func__,
-                   mISDN_HEAD_ID(dch->tx_skb));
+                      mISDN_HEAD_ID(dch->tx_skb));
                return;
        }
        skb_queue_tail(&dch->rqueue, skb);
@@ -279,15 +279,15 @@ confirm_Bsend(struct bchannel *bch)
 
        if (bch->rcount >= 64) {
                printk(KERN_WARNING "B-channel %p receive queue overflow, "
-                       "flushing!\n", bch);
+                      "flushing!\n", bch);
                skb_queue_purge(&bch->rqueue);
                bch->rcount = 0;
        }
        skb = _alloc_mISDN_skb(PH_DATA_CNF, mISDN_HEAD_ID(bch->tx_skb),
-           0, NULL, GFP_ATOMIC);
+                              0, NULL, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_ERR "%s: no skb id %x\n", __func__,
-                   mISDN_HEAD_ID(bch->tx_skb));
+                      mISDN_HEAD_ID(bch->tx_skb));
                return;
        }
        bch->rcount++;
@@ -349,7 +349,7 @@ dchannel_senddata(struct dchannel *ch, struct sk_buff *skb)
        }
        if (skb->len > ch->maxlen) {
                printk(KERN_WARNING "%s: skb too large(%d/%d)\n",
-                       __func__, skb->len, ch->maxlen);
+                      __func__, skb->len, ch->maxlen);
                return -EINVAL;
        }
        /* HW lock must be obtained */
@@ -376,15 +376,15 @@ bchannel_senddata(struct bchannel *ch, struct sk_buff *skb)
        }
        if (skb->len > ch->maxlen) {
                printk(KERN_WARNING "%s: skb too large(%d/%d)\n",
-                       __func__, skb->len, ch->maxlen);
+                      __func__, skb->len, ch->maxlen);
                return -EINVAL;
        }
        /* HW lock must be obtained */
        /* check for pending next_skb */
        if (ch->next_skb) {
                printk(KERN_WARNING
-                   "%s: next_skb exist ERROR (skb->len=%d next_skb->len=%d)\n",
-                   __func__, skb->len, ch->next_skb->len);
+                      "%s: next_skb exist ERROR (skb->len=%d next_skb->len=%d)\n",
+                      __func__, skb->len, ch->next_skb->len);
                return -EBUSY;
        }
        if (test_and_set_bit(FLG_TX_BUSY, &ch->Flags)) {
index bc26c89..661c060 100644 (file)
@@ -10,7 +10,7 @@
 
 /* enable to disorder received bchannels by sequence 2143658798... */
 /*
-#define REORDER_DEBUG
+  #define REORDER_DEBUG
 */
 
 /* frames */
@@ -29,8 +29,8 @@
 
 /* channel structure */
 struct l1oip_chan {
-       struct dchannel         *dch;
-       struct bchannel         *bch;
+       struct dchannel         *dch;
+       struct bchannel         *bch;
        u32                     tx_counter;     /* counts xmit bytes/packets */
        u32                     rx_counter;     /* counts recv bytes/packets */
        u32                     codecstate;     /* used by codec to save data */
@@ -60,19 +60,19 @@ struct l1oip {
        int                     limit;          /* limit number of bchannels */
 
        /* timer */
-       struct timer_list       keep_tl;
-       struct timer_list       timeout_tl;
+       struct timer_list       keep_tl;
+       struct timer_list       timeout_tl;
        int                     timeout_on;
        struct work_struct      workq;
 
        /* socket */
-       struct socket           *socket;        /* if set, socket is created */
-       struct completion       socket_complete;/* completion of sock thread */
+       struct socket           *socket;        /* if set, socket is created */
+       struct completion       socket_complete;/* completion of sock thread */
        struct task_struct      *socket_thread;
-       spinlock_t              socket_lock;    /* access sock outside thread */
+       spinlock_t              socket_lock;    /* access sock outside thread */
        u32                     remoteip;       /* if all set, ip is assigned */
-       u16                     localport;      /* must always be set */
-       u16                     remoteport;     /* must always be set */
+       u16                     localport;      /* must always be set */
+       u16                     remoteport;     /* must always be set */
        struct sockaddr_in      sin_local;      /* local socket name */
        struct sockaddr_in      sin_remote;     /* remote socket name */
        struct msghdr           sendmsg;        /* ip message to send */
@@ -88,4 +88,3 @@ extern int l1oip_alaw_to_ulaw(u8 *data, int len, u8 *result);
 extern int l1oip_ulaw_to_alaw(u8 *data, int len, u8 *result);
 extern void l1oip_4bit_free(void);
 extern int l1oip_4bit_alloc(int ulaw);
-
index 5a89972..a601c84 100644 (file)
 
 /*
 
-How the codec works:
---------------------
+  How the codec works:
+  --------------------
 
-The volume is increased to increase the dynamic range of the audio signal.
-Each sample is converted to a-LAW with only 16 steps of level resolution.
-A pair of two samples are stored in one byte.
+  The volume is increased to increase the dynamic range of the audio signal.
+  Each sample is converted to a-LAW with only 16 steps of level resolution.
+  A pair of two samples are stored in one byte.
 
-The first byte is stored in the upper bits, the second byte is stored in the
-lower bits.
+  The first byte is stored in the upper bits, the second byte is stored in the
+  lower bits.
 
-To speed up compression and decompression, two lookup tables are formed:
+  To speed up compression and decompression, two lookup tables are formed:
 
-- 16 bits index for two samples (law encoded) with 8 bit compressed result.
-- 8 bits index for one compressed data with 16 bits decompressed result.
+  - 16 bits index for two samples (law encoded) with 8 bit compressed result.
+  - 8 bits index for one compressed data with 16 bits decompressed result.
 
-NOTE: The bytes are handled as they are law-encoded.
+  NOTE: The bytes are handled as they are law-encoded.
 
 */
 
@@ -232,7 +232,7 @@ l1oip_law_to_4bit(u8 *data, int len, u8 *result, u32 *state)
 
        /* send saved byte and first input byte */
        if (*state) {
-               *result++ = table_com[(((*state)<<8)&0xff00) | (*data++)];
+               *result++ = table_com[(((*state) << 8) & 0xff00) | (*data++)];
                len--;
                o++;
        }
@@ -267,7 +267,7 @@ l1oip_4bit_to_law(u8 *data, int len, u8 *result)
 
        while (i < len) {
                r = table_dec[*data++];
-               *result++ = r>>8;
+               *result++ = r >> 8;
                *result++ = r;
                i++;
        }
@@ -345,8 +345,8 @@ l1oip_4bit_alloc(int ulaw)
                        c = alaw_to_4bit[i1];
                i2 = 0;
                while (i2 < 256) {
-                       table_com[(i1<<8) | i2] |= (c<<4);
-                       table_com[(i2<<8) | i1] |= c;
+                       table_com[(i1 << 8) | i2] |= (c << 4);
+                       table_com[(i2 << 8) | i1] |= c;
                        i2++;
                }
                i1++;
@@ -361,8 +361,8 @@ l1oip_4bit_alloc(int ulaw)
                        sample = _4bit_to_alaw[i1];
                i2 = 0;
                while (i2 < 16) {
-                       table_dec[(i1<<4) | i2] |= (sample<<8);
-                       table_dec[(i2<<4) | i1] |= sample;
+                       table_dec[(i1 << 4) | i2] |= (sample << 8);
+                       table_dec[(i2 << 4) | i1] |= sample;
                        i2++;
                }
                i1++;
@@ -370,5 +370,3 @@ l1oip_4bit_alloc(int ulaw)
 
        return 0;
 }
-
-
index 04f115a..0f88acf 100644 (file)
 
 /* module parameters:
  * type:
      Value 1 = BRI
      Value 2 = PRI
      Value 3 = BRI (multi channel frame, not supported yet)
      Value 4 = PRI (multi channel frame, not supported yet)
      A multi channel frame reduces overhead to a single frame for all
      b-channels, but increases delay.
      (NOTE: Multi channel frames are not implemented yet.)
Value 1       = BRI
Value 2       = PRI
+ Value 3 = BRI (multi channel frame, not supported yet)
+ Value 4 = PRI (multi channel frame, not supported yet)
+ A multi channel frame reduces overhead to a single frame for all
+ b-channels, but increases delay.
+ (NOTE: Multi channel frames are not implemented yet.)
 
  * codec:
      Value 0 = transparent (default)
      Value 1 = transfer ALAW
      Value 2 = transfer ULAW
      Value 3 = transfer generic 4 bit compression.
+ Value 0 = transparent (default)
+ Value 1 = transfer ALAW
+ Value 2 = transfer ULAW
+ Value 3 = transfer generic 4 bit compression.
 
  * ulaw:
      0 = we use a-Law (default)
      1 = we use u-Law
+ 0 = we use a-Law (default)
+ 1 = we use u-Law
 
  * limit:
      limitation of B-channels to control bandwidth (1...126)
      BRI: 1 or 2
      PRI: 1-30, 31-126 (126, because dchannel ist not counted here)
      Also limited ressources are used for stack, resulting in less channels.
      It is possible to have more channels than 30 in PRI mode, this must
      be supported by the application.
+ limitation of B-channels to control bandwidth (1...126)
+ BRI: 1 or 2
+ PRI: 1-30, 31-126 (126, because dchannel ist not counted here)
+ Also limited ressources are used for stack, resulting in less channels.
+ It is possible to have more channels than 30 in PRI mode, this must
+ be supported by the application.
 
  * ip:
      byte representation of remote ip address (127.0.0.1 -> 127,0,0,1)
      If not given or four 0, no remote address is set.
      For multiple interfaces, concat ip addresses. (127,0,0,1,127,0,0,1)
+ byte representation of remote ip address (127.0.0.1 -> 127,0,0,1)
+ If not given or four 0, no remote address is set.
+ For multiple interfaces, concat ip addresses. (127,0,0,1,127,0,0,1)
 
  * port:
      port number (local interface)
      If not given or 0, port 931 is used for fist instance, 932 for next...
      For multiple interfaces, different ports must be given.
+ port number (local interface)
+ If not given or 0, port 931 is used for fist instance, 932 for next...
+ For multiple interfaces, different ports must be given.
 
  * remoteport:
      port number (remote interface)
      If not given or 0, remote port equals local port
      For multiple interfaces on equal sites, different ports must be given.
+ port number (remote interface)
+ If not given or 0, remote port equals local port
+ For multiple interfaces on equal sites, different ports must be given.
 
  * ondemand:
      0 = fixed (always transmit packets, even when remote side timed out)
      1 = on demand (only transmit packets, when remote side is detected)
      the default is 0
      NOTE: ID must also be set for on demand.
+ 0 = fixed (always transmit packets, even when remote side timed out)
+ 1 = on demand (only transmit packets, when remote side is detected)
+ the default is 0
+ NOTE: ID must also be set for on demand.
 
  * id:
      optional value to identify frames. This value must be equal on both
      peers and should be random. If omitted or 0, no ID is transmitted.
+ optional value to identify frames. This value must be equal on both
+ peers and should be random. If omitted or 0, no ID is transmitted.
 
  * debug:
      NOTE: only one debug value must be given for all cards
      enable debugging (see l1oip.h for debug options)
+ NOTE: only one debug value must be given for all cards
+ enable debugging (see l1oip.h for debug options)
 
 
-Special mISDN controls:
+ Special mISDN controls:
 
  op = MISDN_CTRL_SETPEER*
  p1 = bytes 0-3 : remote IP address in network order (left element first)
@@ -91,133 +91,133 @@ Special mISDN controls:
  op = MISDN_CTRL_UNSETPEER*
 
  * Use l1oipctrl for comfortable setting or removing ip address.
  (Layer 1 Over IP CTRL)
+ (Layer 1 Over IP CTRL)
 
 
-L1oIP-Protocol
---------------
+ L1oIP-Protocol
+ --------------
 
-Frame Header:
+ Frame Header:
 
  7 6 5 4 3 2 1 0
-+---------------+
-|Ver|T|I|Coding |
-+---------------+
-|  ID byte 3 *  |
-+---------------+
-|  ID byte 2 *  |
-+---------------+
-|  ID byte 1 *  |
-+---------------+
-|  ID byte 0 *  |
-+---------------+
-|M|   Channel   |
-+---------------+
-|    Length *   |
-+---------------+
-| Time Base MSB |
-+---------------+
-| Time Base LSB |
-+---------------+
-| Data....     |
-
-...
-
-|               |
-+---------------+
-|M|   Channel   |
-+---------------+
-|    Length *   |
-+---------------+
-| Time Base MSB |
-+---------------+
-| Time Base LSB |
-+---------------+
-| Data....     |
-
-...
-
-
-* Only included in some cases.
-
-- Ver = Version
-If version is missmatch, the frame must be ignored.
-
-- T = Type of interface
-Must be 0 for S0 or 1 for E1.
-
-- I = Id present
-If bit is set, four ID bytes are included in frame.
-
-- ID = Connection ID
-Additional ID to prevent Denial of Service attacs. Also it prevents hijacking
-connections with dynamic IP. The ID should be random and must not be 0.
-
-- Coding = Type of codec
-Must be 0 for no transcoding. Also for D-channel and other HDLC frames.
+ +---------------+
+ |Ver|T|I|Coding |
+ +---------------+
+ |  ID byte 3 *  |
+ +---------------+
+ |  ID byte 2 *  |
+ +---------------+
+ |  ID byte 1 *  |
+ +---------------+
+ |  ID byte 0 *  |
+ +---------------+
+ |M|   Channel   |
+ +---------------+
+ |    Length *   |
+ +---------------+
+ | Time Base MSB |
+ +---------------+
+ | Time Base LSB |
+ +---------------+
+ | Data....    |
+
+ ...
+
+ |               |
+ +---------------+
+ |M|   Channel   |
+ +---------------+
+ |    Length *   |
+ +---------------+
+ | Time Base MSB |
+ +---------------+
+ | Time Base LSB |
+ +---------------+
+ | Data....    |
+
+ ...
+
+
+ * Only included in some cases.
+
+ - Ver = Version
+ If version is missmatch, the frame must be ignored.
+
+ - T = Type of interface
+ Must be 0 for S0 or 1 for E1.
+
+ - I = Id present
+ If bit is set, four ID bytes are included in frame.
+
+ - ID = Connection ID
+ Additional ID to prevent Denial of Service attacs. Also it prevents hijacking
+ connections with dynamic IP. The ID should be random and must not be 0.
+
+ - Coding = Type of codec
+ Must be 0 for no transcoding. Also for D-channel and other HDLC frames.
  1 and 2 are reserved for explicitly use of a-LAW or u-LAW codec.
  3 is used for generic table compressor.
 
-- M = More channels to come. If this flag is 1, the following byte contains
-the length of the channel data. After the data block, the next channel will
-be defined. The flag for the last channel block (or if only one channel is
-transmitted), must be 0 and no length is given.
+ - M = More channels to come. If this flag is 1, the following byte contains
+ the length of the channel data. After the data block, the next channel will
+ be defined. The flag for the last channel block (or if only one channel is
+ transmitted), must be 0 and no length is given.
 
-- Channel = Channel number
-0 reserved
-1-3 channel data for S0 (3 is D-channel)
-1-31 channel data for E1 (16 is D-channel)
-32-127 channel data for extended E1 (16 is D-channel)
+ - Channel = Channel number
+ 0 reserved
+ 1-3 channel data for S0 (3 is D-channel)
+ 1-31 channel data for E1 (16 is D-channel)
+ 32-127 channel data for extended E1 (16 is D-channel)
 
-- The length is used if the M-flag is 1. It is used to find the next channel
-inside frame.
-NOTE: A value of 0 equals 256 bytes of data.
+ - The length is used if the M-flag is 1. It is used to find the next channel
+ inside frame.
+ NOTE: A value of 0 equals 256 bytes of data.
  -> For larger data blocks, a single frame must be used.
  -> For larger streams, a single frame or multiple blocks with same channel ID
  must be used.
+ must be used.
 
-- Time Base = Timestamp of first sample in frame
-The "Time Base" is used to rearange packets and to detect packet loss.
-The 16 bits are sent in network order (MSB first) and count 1/8000 th of a
-second. This causes a wrap around each 8,192 seconds. There is no requirement
-for the initial "Time Base", but 0 should be used for the first packet.
-In case of HDLC data, this timestamp counts the packet or byte number.
+ - Time Base = Timestamp of first sample in frame
+ The "Time Base" is used to rearange packets and to detect packet loss.
+ The 16 bits are sent in network order (MSB first) and count 1/8000 th of a
+ second. This causes a wrap around each 8,192 seconds. There is no requirement
+ for the initial "Time Base", but 0 should be used for the first packet.
+ In case of HDLC data, this timestamp counts the packet or byte number.
 
 
-Two Timers:
+ Two Timers:
 
-After initialisation, a timer of 15 seconds is started. Whenever a packet is
-transmitted, the timer is reset to 15 seconds again. If the timer expires, an
-empty packet is transmitted. This keep the connection alive.
+ After initialisation, a timer of 15 seconds is started. Whenever a packet is
+ transmitted, the timer is reset to 15 seconds again. If the timer expires, an
+ empty packet is transmitted. This keep the connection alive.
 
-When a valid packet is received, a timer 65 seconds is started. The interface
-become ACTIVE. If the timer expires, the interface becomes INACTIVE.
+ When a valid packet is received, a timer 65 seconds is started. The interface
+ become ACTIVE. If the timer expires, the interface becomes INACTIVE.
 
 
-Dynamic IP handling:
+ Dynamic IP handling:
 
-To allow dynamic IP, the ID must be non 0. In this case, any packet with the
-correct port number and ID will be accepted. If the remote side changes its IP
-the new IP is used for all transmitted packets until it changes again.
+ To allow dynamic IP, the ID must be non 0. In this case, any packet with the
+ correct port number and ID will be accepted. If the remote side changes its IP
+ the new IP is used for all transmitted packets until it changes again.
 
 
-On Demand:
+ On Demand:
 
-If the ondemand parameter is given, the remote IP is set to 0 on timeout.
-This will stop keepalive traffic to remote. If the remote is online again,
-traffic will continue to the remote address. This is useful for road warriors.
-This feature only works with ID set, otherwhise it is highly unsecure.
+ If the ondemand parameter is given, the remote IP is set to 0 on timeout.
+ This will stop keepalive traffic to remote. If the remote is online again,
+ traffic will continue to the remote address. This is useful for road warriors.
+ This feature only works with ID set, otherwhise it is highly unsecure.
 
 
-Socket and Thread
------------------
+ Socket and Thread
+ -----------------
 
-The complete socket opening and closing is done by a thread.
-When the thread opened a socket, the hc->socket descriptor is set. Whenever a
-packet shall be sent to the socket, the hc->socket must be checked wheter not
-NULL. To prevent change in socket descriptor, the hc->socket_lock must be used.
-To change the socket, a recall of l1oip_socket_open() will safely kill the
-socket process and create a new one.
+ The complete socket opening and closing is done by a thread.
+ When the thread opened a socket, the hc->socket descriptor is set. Whenever a
+ packet shall be sent to the socket, the hc->socket must be checked wheter not
+ NULL. To prevent change in socket descriptor, the hc->socket_lock must be used.
+ To change the socket, a recall of l1oip_socket_open() will safely kill the
+ socket process and create a new one.
 
 */
 
@@ -247,7 +247,7 @@ static struct list_head l1oip_ilist;
 #define MAX_CARDS      16
 static u_int type[MAX_CARDS];
 static u_int codec[MAX_CARDS];
-static u_int ip[MAX_CARDS*4];
+static u_int ip[MAX_CARDS * 4];
 static u_int port[MAX_CARDS];
 static u_int remoteport[MAX_CARDS];
 static u_int ondemand[MAX_CARDS];
@@ -274,26 +274,26 @@ module_param(debug, uint, S_IRUGO | S_IWUSR);
  */
 static int
 l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
-       u16 timebase, u8 *buf, int len)
+                 u16 timebase, u8 *buf, int len)
 {
        u8 *p;
        int multi = 0;
-       u8 frame[len+32];
+       u8 frame[len + 32];
        struct socket *socket = NULL;
 
        if (debug & DEBUG_L1OIP_MSG)
                printk(KERN_DEBUG "%s: sending data to socket (len = %d)\n",
-                       __func__, len);
+                      __func__, len);
 
        p = frame;
 
        /* restart timer */
-       if ((int)(hc->keep_tl.expires-jiffies) < 5*HZ) {
+       if ((int)(hc->keep_tl.expires-jiffies) < 5 * HZ) {
                del_timer(&hc->keep_tl);
-               hc->keep_tl.expires = jiffies + L1OIP_KEEPALIVE*HZ;
+               hc->keep_tl.expires = jiffies + L1OIP_KEEPALIVE * HZ;
                add_timer(&hc->keep_tl);
        } else
-               hc->keep_tl.expires = jiffies + L1OIP_KEEPALIVE*HZ;
+               hc->keep_tl.expires = jiffies + L1OIP_KEEPALIVE * HZ;
 
        if (debug & DEBUG_L1OIP_MSG)
                printk(KERN_DEBUG "%s: resetting timer\n", __func__);
@@ -302,25 +302,25 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
        if (!hc->sin_remote.sin_addr.s_addr || !hc->sin_remote.sin_port) {
                if (debug & DEBUG_L1OIP_MSG)
                        printk(KERN_DEBUG "%s: dropping frame, because remote "
-                               "IP is not set.\n", __func__);
+                              "IP is not set.\n", __func__);
                return len;
        }
 
        /* assemble frame */
-       *p++ = (L1OIP_VERSION<<6) /* version and coding */
-            | (hc->pri ? 0x20 : 0x00) /* type */
-            | (hc->id ? 0x10 : 0x00) /* id */
-            | localcodec;
+       *p++ = (L1OIP_VERSION << 6) /* version and coding */
+               | (hc->pri ? 0x20 : 0x00) /* type */
+               | (hc->id ? 0x10 : 0x00) /* id */
+               | localcodec;
        if (hc->id) {
-               *p++ = hc->id>>24; /* id */
-               *p++ = hc->id>>16;
-               *p++ = hc->id>>8;
+               *p++ = hc->id >> 24; /* id */
+               *p++ = hc->id >> 16;
+               *p++ = hc->id >> 8;
                *p++ = hc->id;
        }
        *p++ = (multi == 1) ? 0x80 : 0x00 + channel; /* m-flag, channel */
        if (multi == 1)
                *p++ = len; /* length */
-       *p++ = timebase>>8; /* time base */
+       *p++ = timebase >> 8; /* time base */
        *p++ = timebase;
 
        if (buf && len) { /* add data to frame */
@@ -330,7 +330,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
                        l1oip_alaw_to_ulaw(buf, len, p);
                else if (localcodec == 3)
                        len = l1oip_law_to_4bit(buf, len, p,
-                               &hc->chan[channel].codecstate);
+                                               &hc->chan[channel].codecstate);
                else
                        memcpy(p, buf, len);
        }
@@ -349,7 +349,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
        /* send packet */
        if (debug & DEBUG_L1OIP_MSG)
                printk(KERN_DEBUG "%s: sending packet to socket (len "
-                       "= %d)\n", __func__, len);
+                      "= %d)\n", __func__, len);
        hc->sendiov.iov_base = frame;
        hc->sendiov.iov_len  = len;
        len = kernel_sendmsg(socket, &hc->sendmsg, &hc->sendiov, 1, len);
@@ -365,7 +365,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
  */
 static void
 l1oip_socket_recv(struct l1oip *hc, u8 remotecodec, u8 channel, u16 timebase,
-       u8 *buf, int len)
+                 u8 *buf, int len)
 {
        struct sk_buff *nskb;
        struct bchannel *bch;
@@ -376,34 +376,34 @@ l1oip_socket_recv(struct l1oip *hc, u8 remotecodec, u8 channel, u16 timebase,
        if (len == 0) {
                if (debug & DEBUG_L1OIP_MSG)
                        printk(KERN_DEBUG "%s: received empty keepalive data, "
-                               "ignoring\n", __func__);
+                              "ignoring\n", __func__);
                return;
        }
 
        if (debug & DEBUG_L1OIP_MSG)
                printk(KERN_DEBUG "%s: received data, sending to mISDN (%d)\n",
-                       __func__, len);
+                      __func__, len);
 
        if (channel < 1 || channel > 127) {
                printk(KERN_WARNING "%s: packet error - channel %d out of "
-                       "range\n", __func__, channel);
+                      "range\n", __func__, channel);
                return;
        }
        dch = hc->chan[channel].dch;
        bch = hc->chan[channel].bch;
        if (!dch && !bch) {
                printk(KERN_WARNING "%s: packet error - channel %d not in "
-                       "stack\n", __func__, channel);
+                      "stack\n", __func__, channel);
                return;
        }
 
        /* prepare message */
-       nskb = mI_alloc_skb((remotecodec == 3) ? (len<<1) : len, GFP_ATOMIC);
+       nskb = mI_alloc_skb((remotecodec == 3) ? (len << 1) : len, GFP_ATOMIC);
        if (!nskb) {
                printk(KERN_ERR "%s: No mem for skb.\n", __func__);
                return;
        }
-       p = skb_put(nskb, (remotecodec == 3) ? (len<<1) : len);
+       p = skb_put(nskb, (remotecodec == 3) ? (len << 1) : len);
 
        if (remotecodec == 1 && ulaw)
                l1oip_alaw_to_ulaw(buf, len, p);
@@ -428,7 +428,7 @@ l1oip_socket_recv(struct l1oip *hc, u8 remotecodec, u8 channel, u16 timebase,
                                rx_counter =
                                        (rx_counter & 0xffff0000) | timebase;
                        else
-                               rx_counter = ((rx_counter & 0xffff0000)+0x10000)
+                               rx_counter = ((rx_counter & 0xffff0000) + 0x10000)
                                        | timebase;
                } else {
                        /* time has changed backwards */
@@ -436,7 +436,7 @@ l1oip_socket_recv(struct l1oip *hc, u8 remotecodec, u8 channel, u16 timebase,
                                rx_counter =
                                        (rx_counter & 0xffff0000) | timebase;
                        else
-                               rx_counter = ((rx_counter & 0xffff0000)-0x10000)
+                               rx_counter = ((rx_counter & 0xffff0000) - 0x10000)
                                        | timebase;
                }
                hc->chan[channel].rx_counter = rx_counter;
@@ -476,42 +476,42 @@ l1oip_socket_parse(struct l1oip *hc, struct sockaddr_in *sin, u8 *buf, int len)
 
        if (debug & DEBUG_L1OIP_MSG)
                printk(KERN_DEBUG "%s: received frame, parsing... (%d)\n",
-                       __func__, len);
+                      __func__, len);
 
        /* check length */
-       if (len < 1+1+2) {
+       if (len < 1 + 1 + 2) {
                printk(KERN_WARNING "%s: packet error - length %d below "
-                       "4 bytes\n", __func__, len);
+                      "4 bytes\n", __func__, len);
                return;
        }
 
        /* check version */
-       if (((*buf)>>6) != L1OIP_VERSION) {
+       if (((*buf) >> 6) != L1OIP_VERSION) {
                printk(KERN_WARNING "%s: packet error - unknown version %d\n",
-                       __func__, buf[0]>>6);
+                      __func__, buf[0]>>6);
                return;
        }
 
        /* check type */
-       if (((*buf)&0x20) && !hc->pri) {
+       if (((*buf) & 0x20) && !hc->pri) {
                printk(KERN_WARNING "%s: packet error - received E1 packet "
-                       "on S0 interface\n", __func__);
+                      "on S0 interface\n", __func__);
                return;
        }
-       if (!((*buf)&0x20) && hc->pri) {
+       if (!((*buf) & 0x20) && hc->pri) {
                printk(KERN_WARNING "%s: packet error - received S0 packet "
-                       "on E1 interface\n", __func__);
+                      "on E1 interface\n", __func__);
                return;
        }
 
        /* get id flag */
-       packet_id = (*buf>>4)&1;
+       packet_id = (*buf >> 4) & 1;
 
        /* check coding */
        remotecodec = (*buf) & 0x0f;
        if (remotecodec > 3) {
                printk(KERN_WARNING "%s: packet error - remotecodec %d "
-                       "unsupported\n", __func__, remotecodec);
+                      "unsupported\n", __func__, remotecodec);
                return;
        }
        buf++;
@@ -521,12 +521,12 @@ l1oip_socket_parse(struct l1oip *hc, struct sockaddr_in *sin, u8 *buf, int len)
        if (packet_id) {
                if (!hc->id) {
                        printk(KERN_WARNING "%s: packet error - packet has id "
-                               "0x%x, but we have not\n", __func__, packet_id);
+                              "0x%x, but we have not\n", __func__, packet_id);
                        return;
                }
                if (len < 4) {
                        printk(KERN_WARNING "%s: packet error - packet too "
-                               "short for ID value\n", __func__);
+                              "short for ID value\n", __func__);
                        return;
                }
                packet_id = (*buf++) << 24;
@@ -537,14 +537,14 @@ l1oip_socket_parse(struct l1oip *hc, struct sockaddr_in *sin, u8 *buf, int len)
 
                if (packet_id != hc->id) {
                        printk(KERN_WARNING "%s: packet error - ID mismatch, "
-                               "got 0x%x, we 0x%x\n",
-                               __func__, packet_id, hc->id);
+                              "got 0x%x, we 0x%x\n",
+                              __func__, packet_id, hc->id);
                        return;
                }
        } else {
                if (hc->id) {
                        printk(KERN_WARNING "%s: packet error - packet has no "
-                               "ID, but we have\n", __func__);
+                              "ID, but we have\n", __func__);
                        return;
                }
        }
@@ -552,13 +552,13 @@ l1oip_socket_parse(struct l1oip *hc, struct sockaddr_in *sin, u8 *buf, int len)
 multiframe:
        if (len < 1) {
                printk(KERN_WARNING "%s: packet error - packet too short, "
-                       "channel expected at position %d.\n",
-                       __func__, len-len_start+1);
+                      "channel expected at position %d.\n",
+                      __func__, len-len_start + 1);
                return;
        }
 
        /* get channel and multiframe flag */
-       channel = *buf&0x7f;
+       channel = *buf & 0x7f;
        m = *buf >> 7;
        buf++;
        len--;
@@ -567,8 +567,8 @@ multiframe:
        if (m) {
                if (len < 1) {
                        printk(KERN_WARNING "%s: packet error - packet too "
-                               "short, length expected at position %d.\n",
-                               __func__, len_start-len-1);
+                              "short, length expected at position %d.\n",
+                              __func__, len_start - len - 1);
                        return;
                }
 
@@ -576,26 +576,26 @@ multiframe:
                len--;
                if (mlen == 0)
                        mlen = 256;
-               if (len < mlen+3) {
+               if (len < mlen + 3) {
                        printk(KERN_WARNING "%s: packet error - length %d at "
-                               "position %d exceeds total length %d.\n",
-                               __func__, mlen, len_start-len-1, len_start);
+                              "position %d exceeds total length %d.\n",
+                              __func__, mlen, len_start-len - 1, len_start);
                        return;
                }
-               if (len == mlen+3) {
+               if (len == mlen + 3) {
                        printk(KERN_WARNING "%s: packet error - length %d at "
-                               "position %d will not allow additional "
-                               "packet.\n",
-                               __func__, mlen, len_start-len+1);
+                              "position %d will not allow additional "
+                              "packet.\n",
+                              __func__, mlen, len_start-len + 1);
                        return;
                }
        } else
-               mlen = len-2; /* single frame, subtract timebase */
+               mlen = len - 2; /* single frame, subtract timebase */
 
        if (len < 2) {
                printk(KERN_WARNING "%s: packet error - packet too short, time "
-                       "base expected at position %d.\n",
-                       __func__, len-len_start+1);
+                      "base expected at position %d.\n",
+                      __func__, len-len_start + 1);
                return;
        }
 
@@ -606,12 +606,12 @@ multiframe:
 
        /* if inactive, we send up a PH_ACTIVATE and activate */
        if (!test_bit(FLG_ACTIVE, &dch->Flags)) {
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: interface become active due to "
-                               "received packet\n", __func__);
+                              "received packet\n", __func__);
                test_and_set_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, PH_ACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_ATOMIC);
+                           NULL, GFP_ATOMIC);
        }
 
        /* distribute packet */
@@ -624,24 +624,24 @@ multiframe:
                goto multiframe;
 
        /* restart timer */
-       if ((int)(hc->timeout_tl.expires-jiffies) < 5*HZ || !hc->timeout_on) {
+       if ((int)(hc->timeout_tl.expires-jiffies) < 5 * HZ || !hc->timeout_on) {
                hc->timeout_on = 1;
                del_timer(&hc->timeout_tl);
-               hc->timeout_tl.expires = jiffies + L1OIP_TIMEOUT*HZ;
+               hc->timeout_tl.expires = jiffies + L1OIP_TIMEOUT * HZ;
                add_timer(&hc->timeout_tl);
        } else /* only adjust timer */
-               hc->timeout_tl.expires = jiffies + L1OIP_TIMEOUT*HZ;
+               hc->timeout_tl.expires = jiffies + L1OIP_TIMEOUT * HZ;
 
        /* if ip or source port changes */
        if ((hc->sin_remote.sin_addr.s_addr != sin->sin_addr.s_addr)
-        || (hc->sin_remote.sin_port != sin->sin_port)) {
+           || (hc->sin_remote.sin_port != sin->sin_port)) {
                if (debug & DEBUG_L1OIP_SOCKET)
                        printk(KERN_DEBUG "%s: remote address changes from "
-                               "0x%08x to 0x%08x (port %d to %d)\n", __func__,
-                               ntohl(hc->sin_remote.sin_addr.s_addr),
-                               ntohl(sin->sin_addr.s_addr),
-                               ntohs(hc->sin_remote.sin_port),
-                               ntohs(sin->sin_port));
+                              "0x%08x to 0x%08x (port %d to %d)\n", __func__,
+                              ntohl(hc->sin_remote.sin_addr.s_addr),
+                              ntohl(sin->sin_addr.s_addr),
+                              ntohs(hc->sin_remote.sin_port),
+                              ntohs(sin->sin_port));
                hc->sin_remote.sin_addr.s_addr = sin->sin_addr.s_addr;
                hc->sin_remote.sin_port = sin->sin_port;
        }
@@ -694,9 +694,9 @@ l1oip_socket_thread(void *data)
 
        /* bind to incomming port */
        if (socket->ops->bind(socket, (struct sockaddr *)&hc->sin_local,
-           sizeof(hc->sin_local))) {
+                             sizeof(hc->sin_local))) {
                printk(KERN_ERR "%s: Failed to bind socket to port %d.\n",
-                       __func__, hc->localport);
+                      __func__, hc->localport);
                ret = -EINVAL;
                goto fail;
        }
@@ -728,7 +728,7 @@ l1oip_socket_thread(void *data)
        /* read loop */
        if (debug & DEBUG_L1OIP_SOCKET)
                printk(KERN_DEBUG "%s: socket created and open\n",
-                       __func__);
+                      __func__);
        while (!signal_pending(current)) {
                struct kvec iov = {
                        .iov_base = recvbuf,
@@ -741,7 +741,7 @@ l1oip_socket_thread(void *data)
                } else {
                        if (debug & DEBUG_L1OIP_SOCKET)
                                printk(KERN_WARNING
-                                   "%s: broken pipe on socket\n", __func__);
+                                      "%s: broken pipe on socket\n", __func__);
                }
        }
 
@@ -750,7 +750,7 @@ l1oip_socket_thread(void *data)
        /* if hc->socket is NULL, it is in use until it is given back */
        while (!hc->socket) {
                spin_unlock(&hc->socket_lock);
-               schedule_timeout(HZ/10);
+               schedule_timeout(HZ / 10);
                spin_lock(&hc->socket_lock);
        }
        hc->socket = NULL;
@@ -758,7 +758,7 @@ l1oip_socket_thread(void *data)
 
        if (debug & DEBUG_L1OIP_SOCKET)
                printk(KERN_DEBUG "%s: socket thread terminating\n",
-                       __func__);
+                      __func__);
 
 fail:
        /* free recvbuf */
@@ -774,7 +774,7 @@ fail:
 
        if (debug & DEBUG_L1OIP_SOCKET)
                printk(KERN_DEBUG "%s: socket thread terminated\n",
-                       __func__);
+                      __func__);
        return ret;
 }
 
@@ -787,19 +787,19 @@ l1oip_socket_close(struct l1oip *hc)
        if (hc->socket_thread) {
                if (debug & DEBUG_L1OIP_SOCKET)
                        printk(KERN_DEBUG "%s: socket thread exists, "
-                               "killing...\n", __func__);
+                              "killing...\n", __func__);
                send_sig(SIGTERM, hc->socket_thread, 0);
                wait_for_completion(&hc->socket_complete);
        }
 
        /* if active, we send up a PH_DEACTIVATE and deactivate */
        if (test_bit(FLG_ACTIVE, &dch->Flags)) {
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: interface become deactivated "
-                               "due to timeout\n", __func__);
+                              "due to timeout\n", __func__);
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_ATOMIC);
+                           NULL, GFP_ATOMIC);
        }
 }
 
@@ -813,11 +813,11 @@ l1oip_socket_open(struct l1oip *hc)
 
        /* create receive process */
        hc->socket_thread = kthread_run(l1oip_socket_thread, hc, "l1oip_%s",
-               hc->name);
+                                       hc->name);
        if (IS_ERR(hc->socket_thread)) {
                int err = PTR_ERR(hc->socket_thread);
                printk(KERN_ERR "%s: Failed (%d) to create socket process.\n",
-                       __func__, err);
+                      __func__, err);
                hc->socket_thread = NULL;
                sock_release(hc->socket);
                return err;
@@ -834,9 +834,9 @@ l1oip_send_bh(struct work_struct *work)
 {
        struct l1oip *hc = container_of(work, struct l1oip, workq);
 
-       if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+       if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                printk(KERN_DEBUG "%s: keepalive timer expired, sending empty "
-                       "frame on dchannel\n", __func__);
+                      "frame on dchannel\n", __func__);
 
        /* send an empty l1oip frame at D-channel */
        l1oip_socket_send(hc, 0, hc->d_idx, 0, 0, NULL, 0);
@@ -862,25 +862,25 @@ l1oip_timeout(void *data)
 
        if (debug & DEBUG_L1OIP_MSG)
                printk(KERN_DEBUG "%s: timeout timer expired, turn layer one "
-                       "down.\n", __func__);
+                      "down.\n", __func__);
 
        hc->timeout_on = 0; /* state that timer must be initialized next time */
 
        /* if timeout, we send up a PH_DEACTIVATE and deactivate */
        if (test_bit(FLG_ACTIVE, &dch->Flags)) {
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: interface become deactivated "
-                               "due to timeout\n", __func__);
+                              "due to timeout\n", __func__);
                test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
                _queue_data(&dch->dev.D, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0,
-                       NULL, GFP_ATOMIC);
+                           NULL, GFP_ATOMIC);
        }
 
        /* if we have ondemand set, we remove ip address */
        if (hc->ondemand) {
                if (debug & DEBUG_L1OIP_MSG)
                        printk(KERN_DEBUG "%s: on demand causes ip address to "
-                               "be removed\n", __func__);
+                              "be removed\n", __func__);
                hc->sin_remote.sin_addr.s_addr = 0;
        }
 }
@@ -904,12 +904,12 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_DATA_REQ:
                if (skb->len < 1) {
                        printk(KERN_WARNING "%s: skb too small\n",
-                               __func__);
+                              __func__);
                        break;
                }
                if (skb->len > MAX_DFRAME_LEN_L1 || skb->len > L1OIP_MAX_LEN) {
                        printk(KERN_WARNING "%s: skb too large\n",
-                               __func__);
+                              __func__);
                        break;
                }
                /* send frame */
@@ -918,7 +918,7 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                while (l) {
                        ll = (l < L1OIP_MAX_PERFRAME) ? l : L1OIP_MAX_PERFRAME;
                        l1oip_socket_send(hc, 0, dch->slot, 0,
-                               hc->chan[dch->slot].tx_counter++, p, ll);
+                                         hc->chan[dch->slot].tx_counter++, p, ll);
                        p += ll;
                        l -= ll;
                }
@@ -926,9 +926,9 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                queue_ch_frame(ch, PH_DATA_CNF, hh->id, skb);
                return 0;
        case PH_ACTIVATE_REQ:
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: PH_ACTIVATE channel %d (1..%d)\n"
-                               , __func__, dch->slot, hc->b_num+1);
+                              , __func__, dch->slot, hc->b_num + 1);
                skb_trim(skb, 0);
                if (test_bit(FLG_ACTIVE, &dch->Flags))
                        queue_ch_frame(ch, PH_ACTIVATE_IND, hh->id, skb);
@@ -936,10 +936,10 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                        queue_ch_frame(ch, PH_DEACTIVATE_IND, hh->id, skb);
                return 0;
        case PH_DEACTIVATE_REQ:
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: PH_DEACTIVATE channel %d "
-                               "(1..%d)\n", __func__, dch->slot,
-                               hc->b_num+1);
+                              "(1..%d)\n", __func__, dch->slot,
+                              hc->b_num + 1);
                skb_trim(skb, 0);
                if (test_bit(FLG_ACTIVE, &dch->Flags))
                        queue_ch_frame(ch, PH_ACTIVATE_IND, hh->id, skb);
@@ -971,26 +971,26 @@ channel_dctrl(struct dchannel *dch, struct mISDN_ctrl_req *cq)
                        hc->remoteport = hc->localport;
                if (debug & DEBUG_L1OIP_SOCKET)
                        printk(KERN_DEBUG "%s: got new ip address from user "
-                               "space.\n", __func__);
+                              "space.\n", __func__);
                l1oip_socket_open(hc);
                break;
        case MISDN_CTRL_UNSETPEER:
                if (debug & DEBUG_L1OIP_SOCKET)
                        printk(KERN_DEBUG "%s: removing ip address.\n",
-                               __func__);
+                              __func__);
                hc->remoteip = 0;
                l1oip_socket_open(hc);
                break;
        case MISDN_CTRL_GETPEER:
                if (debug & DEBUG_L1OIP_SOCKET)
                        printk(KERN_DEBUG "%s: getting ip address.\n",
-                               __func__);
+                              __func__);
                cq->p1 = hc->remoteip;
                cq->p2 = hc->remoteport | (hc->localport << 16);
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n",
-                   __func__, cq->op);
+                      __func__, cq->op);
                ret = -EINVAL;
                break;
        }
@@ -1002,21 +1002,21 @@ open_dchannel(struct l1oip *hc, struct dchannel *dch, struct channel_req *rq)
 {
        if (debug & DEBUG_HW_OPEN)
                printk(KERN_DEBUG "%s: dev(%d) open from %p\n", __func__,
-                   dch->dev.id, __builtin_return_address(0));
+                      dch->dev.id, __builtin_return_address(0));
        if (rq->protocol == ISDN_P_NONE)
                return -EINVAL;
        if ((dch->dev.D.protocol != ISDN_P_NONE) &&
            (dch->dev.D.protocol != rq->protocol)) {
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_WARNING "%s: change protocol %x to %x\n",
-                       __func__, dch->dev.D.protocol, rq->protocol);
+                              __func__, dch->dev.D.protocol, rq->protocol);
        }
        if (dch->dev.D.protocol != rq->protocol)
                dch->dev.D.protocol = rq->protocol;
 
        if (test_bit(FLG_ACTIVE, &dch->Flags)) {
                _queue_data(&dch->dev.D, PH_ACTIVATE_IND, MISDN_ID_ANY,
-                   0, NULL, GFP_KERNEL);
+                           0, NULL, GFP_KERNEL);
        }
        rq->ch = &dch->dev.D;
        if (!try_module_get(THIS_MODULE))
@@ -1038,7 +1038,7 @@ open_bchannel(struct l1oip *hc, struct dchannel *dch, struct channel_req *rq)
        bch = hc->chan[ch].bch;
        if (!bch) {
                printk(KERN_ERR "%s:internal error ch %d has no bch\n",
-                   __func__, ch);
+                      __func__, ch);
                return -EINVAL;
        }
        if (test_and_set_bit(FLG_OPEN, &bch->Flags))
@@ -1061,7 +1061,7 @@ l1oip_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
        if (dch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: cmd:%x %p\n",
-                   __func__, cmd, arg);
+                      __func__, cmd, arg);
        switch (cmd) {
        case OPEN_CHANNEL:
                rq = arg;
@@ -1089,8 +1089,8 @@ l1oip_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        case CLOSE_CHANNEL:
                if (debug & DEBUG_HW_OPEN)
                        printk(KERN_DEBUG "%s: dev(%d) close from %p\n",
-                           __func__, dch->dev.id,
-                           __builtin_return_address(0));
+                              __func__, dch->dev.id,
+                              __builtin_return_address(0));
                module_put(THIS_MODULE);
                break;
        case CONTROL_CHANNEL:
@@ -1099,7 +1099,7 @@ l1oip_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
        default:
                if (dch->debug & DEBUG_HW)
                        printk(KERN_DEBUG "%s: unknown command %x\n",
-                           __func__, cmd);
+                              __func__, cmd);
                err = -EINVAL;
        }
        return err;
@@ -1119,12 +1119,12 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
        case PH_DATA_REQ:
                if (skb->len <= 0) {
                        printk(KERN_WARNING "%s: skb too small\n",
-                               __func__);
+                              __func__);
                        break;
                }
                if (skb->len > MAX_DFRAME_LEN_L1 || skb->len > L1OIP_MAX_LEN) {
                        printk(KERN_WARNING "%s: skb too large\n",
-                               __func__);
+                              __func__);
                        break;
                }
                /* check for AIS / ulaw-silence */
@@ -1132,7 +1132,7 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                if (!memchr_inv(skb->data, 0xff, l)) {
                        if (debug & DEBUG_L1OIP_MSG)
                                printk(KERN_DEBUG "%s: got AIS, not sending, "
-                                       "but counting\n", __func__);
+                                      "but counting\n", __func__);
                        hc->chan[bch->slot].tx_counter += l;
                        skb_trim(skb, 0);
                        queue_ch_frame(ch, PH_DATA_CNF, hh->id, skb);
@@ -1143,7 +1143,7 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                if (!memchr_inv(skb->data, 0x2a, l)) {
                        if (debug & DEBUG_L1OIP_MSG)
                                printk(KERN_DEBUG "%s: got silence, not sending"
-                                       ", but counting\n", __func__);
+                                      ", but counting\n", __func__);
                        hc->chan[bch->slot].tx_counter += l;
                        skb_trim(skb, 0);
                        queue_ch_frame(ch, PH_DATA_CNF, hh->id, skb);
@@ -1156,7 +1156,7 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                while (l) {
                        ll = (l < L1OIP_MAX_PERFRAME) ? l : L1OIP_MAX_PERFRAME;
                        l1oip_socket_send(hc, hc->codec, bch->slot, 0,
-                               hc->chan[bch->slot].tx_counter, p, ll);
+                                         hc->chan[bch->slot].tx_counter, p, ll);
                        hc->chan[bch->slot].tx_counter += ll;
                        p += ll;
                        l -= ll;
@@ -1165,19 +1165,19 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
                queue_ch_frame(ch, PH_DATA_CNF, hh->id, skb);
                return 0;
        case PH_ACTIVATE_REQ:
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: PH_ACTIVATE channel %d (1..%d)\n"
-                               , __func__, bch->slot, hc->b_num+1);
+                              , __func__, bch->slot, hc->b_num + 1);
                hc->chan[bch->slot].codecstate = 0;
                test_and_set_bit(FLG_ACTIVE, &bch->Flags);
                skb_trim(skb, 0);
                queue_ch_frame(ch, PH_ACTIVATE_IND, hh->id, skb);
                return 0;
        case PH_DEACTIVATE_REQ:
-               if (debug & (DEBUG_L1OIP_MSG|DEBUG_L1OIP_SOCKET))
+               if (debug & (DEBUG_L1OIP_MSG | DEBUG_L1OIP_SOCKET))
                        printk(KERN_DEBUG "%s: PH_DEACTIVATE channel %d "
-                               "(1..%d)\n", __func__, bch->slot,
-                               hc->b_num+1);
+                              "(1..%d)\n", __func__, bch->slot,
+                              hc->b_num + 1);
                test_and_clear_bit(FLG_ACTIVE, &bch->Flags);
                skb_trim(skb, 0);
                queue_ch_frame(ch, PH_DEACTIVATE_IND, hh->id, skb);
@@ -1202,14 +1202,14 @@ channel_bctrl(struct bchannel *bch, struct mISDN_ctrl_req *cq)
        case MISDN_CTRL_HW_FEATURES: /* fill features structure */
                if (debug & DEBUG_L1OIP_MSG)
                        printk(KERN_DEBUG "%s: HW_FEATURE request\n",
-                           __func__);
+                              __func__);
                /* create confirm */
                features->unclocked = 1;
                features->unordered = 1;
                break;
        default:
                printk(KERN_WARNING "%s: unknown Op %x\n",
-                   __func__, cq->op);
+                      __func__, cq->op);
                ret = -EINVAL;
                break;
        }
@@ -1224,7 +1224,7 @@ l1oip_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
        if (bch->debug & DEBUG_HW)
                printk(KERN_DEBUG "%s: cmd:%x %p\n",
-                   __func__, cmd, arg);
+                      __func__, cmd, arg);
        switch (cmd) {
        case CLOSE_CHANNEL:
                test_and_clear_bit(FLG_OPEN, &bch->Flags);
@@ -1239,7 +1239,7 @@ l1oip_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                break;
        default:
                printk(KERN_WARNING "%s: unknown prim(%x)\n",
-                       __func__, cmd);
+                      __func__, cmd);
        }
        return err;
 }
@@ -1330,18 +1330,18 @@ init_card(struct l1oip *hc, int pri, int bundle)
                break;
        default:
                printk(KERN_ERR "Codec(%d) not supported.\n",
-                       codec[l1oip_cnt]);
+                      codec[l1oip_cnt]);
                return -EINVAL;
        }
        hc->codec = codec[l1oip_cnt];
        if (debug & DEBUG_L1OIP_INIT)
                printk(KERN_DEBUG "%s: using codec %d\n",
-                       __func__, hc->codec);
+                      __func__, hc->codec);
 
        if (id[l1oip_cnt] == 0) {
                printk(KERN_WARNING "Warning: No 'id' value given or "
-                       "0, this is highly unsecure. Please use 32 "
-                       "bit randmom number 0x...\n");
+                      "0, this is highly unsecure. Please use 32 "
+                      "bit randmom number 0x...\n");
        }
        hc->id = id[l1oip_cnt];
        if (debug & DEBUG_L1OIP_INIT)
@@ -1350,7 +1350,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
        hc->ondemand = ondemand[l1oip_cnt];
        if (hc->ondemand && !hc->id) {
                printk(KERN_ERR "%s: ondemand option only allowed in "
-                       "conjunction with non 0 ID\n", __func__);
+                      "conjunction with non 0 ID\n", __func__);
                return -EINVAL;
        }
 
@@ -1358,37 +1358,37 @@ init_card(struct l1oip *hc, int pri, int bundle)
                hc->b_num = limit[l1oip_cnt];
        if (!pri && hc->b_num > 2) {
                printk(KERN_ERR "Maximum limit for BRI interface is 2 "
-                       "channels.\n");
+                      "channels.\n");
                return -EINVAL;
        }
        if (pri && hc->b_num > 126) {
                printk(KERN_ERR "Maximum limit for PRI interface is 126 "
-                       "channels.\n");
+                      "channels.\n");
                return -EINVAL;
        }
        if (pri && hc->b_num > 30) {
                printk(KERN_WARNING "Maximum limit for BRI interface is 30 "
-                       "channels.\n");
+                      "channels.\n");
                printk(KERN_WARNING "Your selection of %d channels must be "
-                       "supported by application.\n", hc->limit);
+                      "supported by application.\n", hc->limit);
        }
 
-       hc->remoteip = ip[l1oip_cnt<<2] << 24
-                    | ip[(l1oip_cnt<<2)+1] << 16
-                    | ip[(l1oip_cnt<<2)+2] << 8
-                    | ip[(l1oip_cnt<<2)+3];
-       hc->localport = port[l1oip_cnt]?:(L1OIP_DEFAULTPORT+l1oip_cnt);
+       hc->remoteip = ip[l1oip_cnt << 2] << 24
+               | ip[(l1oip_cnt << 2) + 1] << 16
+               | ip[(l1oip_cnt << 2) + 2] << 8
+               | ip[(l1oip_cnt << 2) + 3];
+       hc->localport = port[l1oip_cnt]?:(L1OIP_DEFAULTPORT + l1oip_cnt);
        if (remoteport[l1oip_cnt])
                hc->remoteport = remoteport[l1oip_cnt];
        else
                hc->remoteport = hc->localport;
        if (debug & DEBUG_L1OIP_INIT)
                printk(KERN_DEBUG "%s: using local port %d remote ip "
-                       "%d.%d.%d.%d port %d ondemand %d\n", __func__,
-                       hc->localport, hc->remoteip >> 24,
-                       (hc->remoteip >> 16) & 0xff,
-                       (hc->remoteip >> 8) & 0xff, hc->remoteip & 0xff,
-                       hc->remoteport, hc->ondemand);
+                      "%d.%d.%d.%d port %d ondemand %d\n", __func__,
+                      hc->localport, hc->remoteip >> 24,
+                      (hc->remoteip >> 16) & 0xff,
+                      (hc->remoteip >> 8) & 0xff, hc->remoteip & 0xff,
+                      hc->remoteport, hc->ondemand);
 
        dch = kzalloc(sizeof(struct dchannel), GFP_KERNEL);
        if (!dch)
@@ -1401,7 +1401,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
        else
                dch->dev.Dprotocols = (1 << ISDN_P_TE_S0) | (1 << ISDN_P_NT_S0);
        dch->dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
-           (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
+               (1 << (ISDN_P_B_HDLC & ISDN_P_B_MASK));
        dch->dev.D.send = handle_dmsg;
        dch->dev.D.ctrl = l1oip_dctrl;
        dch->dev.nrbchan = hc->b_num;
@@ -1414,7 +1414,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
                bch = kzalloc(sizeof(struct bchannel), GFP_KERNEL);
                if (!bch) {
                        printk(KERN_ERR "%s: no memory for bchannel\n",
-                           __func__);
+                              __func__);
                        return -ENOMEM;
                }
                bch->nr = i + ch;
@@ -1437,7 +1437,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
 
        if (debug & DEBUG_L1OIP_INIT)
                printk(KERN_DEBUG "%s: Setting up network card(%d)\n",
-                       __func__, l1oip_cnt + 1);
+                      __func__, l1oip_cnt + 1);
        ret = l1oip_socket_open(hc);
        if (ret)
                return ret;
@@ -1445,7 +1445,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
        hc->keep_tl.function = (void *)l1oip_keepalive;
        hc->keep_tl.data = (ulong)hc;
        init_timer(&hc->keep_tl);
-       hc->keep_tl.expires = jiffies + 2*HZ; /* two seconds first time */
+       hc->keep_tl.expires = jiffies + 2 * HZ; /* two seconds first time */
        add_timer(&hc->keep_tl);
 
        hc->timeout_tl.function = (void *)l1oip_timeout;
@@ -1464,7 +1464,7 @@ l1oip_init(void)
        int             ret;
 
        printk(KERN_INFO "mISDN: Layer-1-over-IP driver Rev. %s\n",
-               l1oip_revision);
+              l1oip_revision);
 
        INIT_LIST_HEAD(&l1oip_ilist);
        spin_lock_init(&l1oip_lock);
@@ -1493,16 +1493,16 @@ l1oip_init(void)
                        break;
                default:
                        printk(KERN_ERR "Card type(%d) not supported.\n",
-                               type[l1oip_cnt] & 0xff);
+                              type[l1oip_cnt] & 0xff);
                        l1oip_cleanup();
                        return -EINVAL;
                }
 
                if (debug & DEBUG_L1OIP_INIT)
                        printk(KERN_DEBUG "%s: interface %d is %s with %s.\n",
-                           __func__, l1oip_cnt, pri ? "PRI" : "BRI",
-                           bundle ? "bundled IP packet for all B-channels" :
-                           "separate IP packets for every B-channel");
+                              __func__, l1oip_cnt, pri ? "PRI" : "BRI",
+                              bundle ? "bundled IP packet for all B-channels" :
+                              "separate IP packets for every B-channel");
 
                hc = kzalloc(sizeof(struct l1oip), GFP_ATOMIC);
                if (!hc) {
@@ -1530,4 +1530,3 @@ l1oip_init(void)
 
 module_init(l1oip_init);
 module_exit(l1oip_cleanup);
-
index 5cc7c00..0fc49b3 100644 (file)
 static u_int *debug;
 
 struct layer1 {
-       u_long                  Flags;
-       struct FsmInst          l1m;
-       struct FsmTimer         timer;
-       int                     delay;
-       struct dchannel         *dch;
-       dchannel_l1callback     *dcb;
+       u_long Flags;
+       struct FsmInst l1m;
+       struct FsmTimer timer;
+       int delay;
+       struct dchannel *dch;
+       dchannel_l1callback *dcb;
 };
 
 #define TIMER3_VALUE 7000
@@ -49,7 +49,7 @@ enum {
        ST_L1_F8,
 };
 
-#define L1S_STATE_COUNT (ST_L1_F8+1)
+#define L1S_STATE_COUNT (ST_L1_F8 + 1)
 
 static char *strL1SState[] =
 {
@@ -358,7 +358,7 @@ l1_event(struct layer1 *l1, u_int event)
        default:
                if (*debug & DEBUG_L1)
                        printk(KERN_DEBUG "%s %x unhandled\n",
-                           __func__, event);
+                              __func__, event);
                err = -EINVAL;
        }
        return err;
index 9c8125f..d1d332c 100644 (file)
@@ -23,4 +23,3 @@
 #define FLG_L1_PULL_REQ                6
 #define FLG_L1_UINT            7
 #define FLG_L1_DBLOCKED                8
-
index 5bc0015..39d7375 100644 (file)
@@ -63,7 +63,7 @@ enum {
        EV_L2_FRAME_ERROR,
 };
 
-#define L2_EVENT_COUNT (EV_L2_FRAME_ERROR+1)
+#define L2_EVENT_COUNT (EV_L2_FRAME_ERROR + 1)
 
 static char *strL2Event[] =
 {
@@ -281,9 +281,9 @@ l2mgr(struct layer2 *l2, u_int prim, void *arg) {
        long c = (long)arg;
 
        printk(KERN_WARNING
-           "l2mgr: addr:%x prim %x %c\n", l2->id, prim, (char)c);
+              "l2mgr: addr:%x prim %x %c\n", l2->id, prim, (char)c);
        if (test_bit(FLG_LAPD, &l2->flag) &&
-               !test_bit(FLG_FIXED_TEI, &l2->flag)) {
+           !test_bit(FLG_FIXED_TEI, &l2->flag)) {
                switch (c) {
                case 'C':
                case 'D':
@@ -340,7 +340,7 @@ ReleaseWin(struct layer2 *l2)
 
        if (cnt)
                printk(KERN_WARNING
-                   "isdnl2 freed %d skbuffs in release\n", cnt);
+                      "isdnl2 freed %d skbuffs in release\n", cnt);
 }
 
 inline unsigned int
@@ -471,7 +471,7 @@ inline int
 IsRNR(u_char *data, struct layer2 *l2)
 {
        return test_bit(FLG_MOD128, &l2->flag) ?
-           data[0] == RNR : (data[0] & 0xf) == RNR;
+               data[0] == RNR : (data[0] & 0xf) == RNR;
 }
 
 static int
@@ -543,15 +543,15 @@ FRMR_error(struct layer2 *l2, struct sk_buff *skb)
                        return 'N';
                else if (*debug & DEBUG_L2)
                        l2m_debug(&l2->l2m,
-                           "FRMR information %2x %2x %2x %2x %2x",
-                           datap[0], datap[1], datap[2], datap[3], datap[4]);
+                                 "FRMR information %2x %2x %2x %2x %2x",
+                                 datap[0], datap[1], datap[2], datap[3], datap[4]);
        } else {
                if (skb->len < headers + 3)
                        return 'N';
                else if (*debug & DEBUG_L2)
                        l2m_debug(&l2->l2m,
-                           "FRMR information %2x %2x %2x",
-                           datap[0], datap[1], datap[2]);
+                                 "FRMR information %2x %2x %2x",
+                                 datap[0], datap[1], datap[2]);
        }
        return 0;
 }
@@ -604,7 +604,7 @@ send_uframe(struct layer2 *l2, struct sk_buff *skb, u_char cmd, u_char cr)
                skb = mI_alloc_skb(i, GFP_ATOMIC);
                if (!skb) {
                        printk(KERN_WARNING "%s: can't alloc skbuff\n",
-                               __func__);
+                              __func__);
                        return;
                }
        }
@@ -1051,7 +1051,7 @@ l2_st5_dm_release(struct FsmInst *fi, int event, void *arg)
                        skb_queue_purge(&l2->i_queue);
                if (test_bit(FLG_LAPB, &l2->flag))
                        l2down_create(l2, PH_DEACTIVATE_REQ,
-                               l2_newid(l2), 0, NULL);
+                                     l2_newid(l2), 0, NULL);
                st5_dl_release_l2l3(l2);
                mISDN_FsmChangeState(fi, ST_L2_4);
                if (l2->tm)
@@ -1090,7 +1090,7 @@ enquiry_cr(struct layer2 *l2, u_char typ, u_char cr, u_char pf)
        skb = mI_alloc_skb(i, GFP_ATOMIC);
        if (!skb) {
                printk(KERN_WARNING
-                   "isdnl2 can't alloc sbbuff for enquiry_cr\n");
+                      "isdnl2 can't alloc sbbuff for enquiry_cr\n");
                return;
        }
        memcpy(skb_put(skb, i), tmp, i);
@@ -1149,8 +1149,8 @@ invoke_retransmission(struct layer2 *l2, unsigned int nr)
                                skb_queue_head(&l2->i_queue, l2->windowar[p1]);
                        else
                                printk(KERN_WARNING
-                                   "%s: windowar[%d] is NULL\n",
-                                   __func__, p1);
+                                      "%s: windowar[%d] is NULL\n",
+                                      __func__, p1);
                        l2->windowar[p1] = NULL;
                }
                mISDN_FsmEvent(&l2->l2m, EV_L2_ACK_PULL, NULL);
@@ -1199,13 +1199,13 @@ l2_st7_got_super(struct FsmInst *fi, int event, void *arg)
                        invoke_retransmission(l2, nr);
                        stop_t200(l2, 10);
                        if (mISDN_FsmAddTimer(&l2->t203, l2->T203,
-                                       EV_L2_T203, NULL, 6))
+                                             EV_L2_T203, NULL, 6))
                                l2m_debug(&l2->l2m, "Restart T203 ST7 REJ");
                } else if ((nr == l2->vs) && (typ == RR)) {
                        setva(l2, nr);
                        stop_t200(l2, 11);
                        mISDN_FsmRestartTimer(&l2->t203, l2->T203,
-                                       EV_L2_T203, NULL, 7);
+                                             EV_L2_T203, NULL, 7);
                } else if ((l2->va != nr) || (typ == RNR)) {
                        setva(l2, nr);
                        if (typ != RR)
@@ -1303,7 +1303,7 @@ l2_got_iframe(struct FsmInst *fi, int event, void *arg)
                        if (nr == l2->vs) {
                                stop_t200(l2, 13);
                                mISDN_FsmRestartTimer(&l2->t203, l2->T203,
-                                               EV_L2_T203, NULL, 7);
+                                                     EV_L2_T203, NULL, 7);
                        } else if (nr != l2->va)
                                restart_t200(l2, 14);
                }
@@ -1343,7 +1343,7 @@ l2_st5_tout_200(struct FsmInst *fi, int event, void *arg)
        struct layer2 *l2 = fi->userdata;
 
        if (test_bit(FLG_LAPD, &l2->flag) &&
-               test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+           test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
                mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
        } else if (l2->rc == l2->N200) {
                mISDN_FsmChangeState(fi, ST_L2_4);
@@ -1352,7 +1352,7 @@ l2_st5_tout_200(struct FsmInst *fi, int event, void *arg)
                l2mgr(l2, MDL_ERROR_IND, (void *) 'G');
                if (test_bit(FLG_LAPB, &l2->flag))
                        l2down_create(l2, PH_DEACTIVATE_REQ,
-                               l2_newid(l2), 0, NULL);
+                                     l2_newid(l2), 0, NULL);
                st5_dl_release_l2l3(l2);
                if (l2->tm)
                        l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
@@ -1360,7 +1360,7 @@ l2_st5_tout_200(struct FsmInst *fi, int event, void *arg)
                l2->rc++;
                mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
                send_uframe(l2, NULL, (test_bit(FLG_MOD128, &l2->flag) ?
-                       SABME : SABM) | 0x10, CMD);
+                                      SABME : SABM) | 0x10, CMD);
        }
 }
 
@@ -1370,7 +1370,7 @@ l2_st6_tout_200(struct FsmInst *fi, int event, void *arg)
        struct layer2 *l2 = fi->userdata;
 
        if (test_bit(FLG_LAPD, &l2->flag) &&
-               test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+           test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
                mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
        } else if (l2->rc == l2->N200) {
                mISDN_FsmChangeState(fi, ST_L2_4);
@@ -1382,7 +1382,7 @@ l2_st6_tout_200(struct FsmInst *fi, int event, void *arg)
        } else {
                l2->rc++;
                mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200,
-                           NULL, 9);
+                                 NULL, 9);
                send_uframe(l2, NULL, DISC | 0x10, CMD);
        }
 }
@@ -1393,7 +1393,7 @@ l2_st7_tout_200(struct FsmInst *fi, int event, void *arg)
        struct layer2 *l2 = fi->userdata;
 
        if (test_bit(FLG_LAPD, &l2->flag) &&
-               test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+           test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
                mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
                return;
        }
@@ -1410,7 +1410,7 @@ l2_st8_tout_200(struct FsmInst *fi, int event, void *arg)
        struct layer2 *l2 = fi->userdata;
 
        if (test_bit(FLG_LAPD, &l2->flag) &&
-               test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+           test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
                mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
                return;
        }
@@ -1431,7 +1431,7 @@ l2_st7_tout_203(struct FsmInst *fi, int event, void *arg)
        struct layer2 *l2 = fi->userdata;
 
        if (test_bit(FLG_LAPD, &l2->flag) &&
-               test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+           test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
                mISDN_FsmAddTimer(&l2->t203, l2->T203, EV_L2_T203, NULL, 9);
                return;
        }
@@ -1462,7 +1462,7 @@ l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
        p1 = (p1 + l2->sow) % l2->window;
        if (l2->windowar[p1]) {
                printk(KERN_WARNING "isdnl2 try overwrite ack queue entry %d\n",
-                   p1);
+                      p1);
                dev_kfree_skb(l2->windowar[p1]);
        }
        l2->windowar[p1] = skb;
@@ -1482,7 +1482,7 @@ l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
                memcpy(skb_push(nskb, i), header, i);
        else {
                printk(KERN_WARNING
-                   "isdnl2 pull_iqueue skb header(%d/%d) too short\n", i, p1);
+                      "isdnl2 pull_iqueue skb header(%d/%d) too short\n", i, p1);
                oskb = nskb;
                nskb = mI_alloc_skb(oskb->len + i, GFP_ATOMIC);
                if (!nskb) {
@@ -1537,7 +1537,7 @@ l2_st8_got_super(struct FsmInst *fi, int event, void *arg)
                        } else {
                                stop_t200(l2, 16);
                                mISDN_FsmAddTimer(&l2->t203, l2->T203,
-                                           EV_L2_T203, NULL, 5);
+                                                 EV_L2_T203, NULL, 5);
                                setva(l2, nr);
                        }
                        invoke_retransmission(l2, nr);
@@ -1858,7 +1858,7 @@ ph_data_indication(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb)
                ptei = *datap++;
                if ((psapi & 1) || !(ptei & 1)) {
                        printk(KERN_WARNING
-                           "l2 D-channel frame wrong EA0/EA1\n");
+                              "l2 D-channel frame wrong EA0/EA1\n");
                        return ret;
                }
                psapi >>= 2;
@@ -1867,7 +1867,7 @@ ph_data_indication(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb)
                        /* not our business */
                        if (*debug & DEBUG_L2)
                                printk(KERN_DEBUG "%s: sapi %d/%d mismatch\n",
-                                       __func__, psapi, l2->sapi);
+                                      __func__, psapi, l2->sapi);
                        dev_kfree_skb(skb);
                        return 0;
                }
@@ -1875,7 +1875,7 @@ ph_data_indication(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb)
                        /* not our business */
                        if (*debug & DEBUG_L2)
                                printk(KERN_DEBUG "%s: tei %d/%d mismatch\n",
-                                       __func__, ptei, l2->tei);
+                                      __func__, ptei, l2->tei);
                        dev_kfree_skb(skb);
                        return 0;
                }
@@ -1927,11 +1927,11 @@ l2_send(struct mISDNchannel *ch, struct sk_buff *skb)
 {
        struct layer2           *l2 = container_of(ch, struct layer2, ch);
        struct mISDNhead        *hh =  mISDN_HEAD_P(skb);
-       int                     ret = -EINVAL;
+       int                     ret = -EINVAL;
 
        if (*debug & DEBUG_L2_RECV)
                printk(KERN_DEBUG "%s: prim(%x) id(%x) sapi(%d) tei(%d)\n",
-                   __func__, hh->prim, hh->id, l2->sapi, l2->tei);
+                      __func__, hh->prim, hh->id, l2->sapi, l2->tei);
        switch (hh->prim) {
        case PH_DATA_IND:
                ret = ph_data_indication(l2, hh, skb);
@@ -1944,7 +1944,7 @@ l2_send(struct mISDNchannel *ch, struct sk_buff *skb)
                l2up_create(l2, MPH_ACTIVATE_IND, 0, NULL);
                if (test_and_clear_bit(FLG_ESTAB_PEND, &l2->flag))
                        ret = mISDN_FsmEvent(&l2->l2m,
-                               EV_L2_DL_ESTABLISH_REQ, skb);
+                                            EV_L2_DL_ESTABLISH_REQ, skb);
                break;
        case PH_DEACTIVATE_IND:
                test_and_clear_bit(FLG_L1_ACTIV, &l2->flag);
@@ -1967,30 +1967,30 @@ l2_send(struct mISDNchannel *ch, struct sk_buff *skb)
                        test_and_set_bit(FLG_ORIG, &l2->flag);
                if (test_bit(FLG_L1_ACTIV, &l2->flag)) {
                        if (test_bit(FLG_LAPD, &l2->flag) ||
-                               test_bit(FLG_ORIG, &l2->flag))
+                           test_bit(FLG_ORIG, &l2->flag))
                                ret = mISDN_FsmEvent(&l2->l2m,
-                                       EV_L2_DL_ESTABLISH_REQ, skb);
+                                                    EV_L2_DL_ESTABLISH_REQ, skb);
                } else {
                        if (test_bit(FLG_LAPD, &l2->flag) ||
-                               test_bit(FLG_ORIG, &l2->flag)) {
+                           test_bit(FLG_ORIG, &l2->flag)) {
                                test_and_set_bit(FLG_ESTAB_PEND,
-                                       &l2->flag);
+                                                &l2->flag);
                        }
                        ret = l2down(l2, PH_ACTIVATE_REQ, l2_newid(l2),
-                           skb);
+                                    skb);
                }
                break;
        case DL_RELEASE_REQ:
                if (test_bit(FLG_LAPB, &l2->flag))
                        l2down_create(l2, PH_DEACTIVATE_REQ,
-                               l2_newid(l2), 0, NULL);
+                                     l2_newid(l2), 0, NULL);
                ret = mISDN_FsmEvent(&l2->l2m, EV_L2_DL_RELEASE_REQ,
-                   skb);
+                                    skb);
                break;
        default:
                if (*debug & DEBUG_L2)
                        l2m_debug(&l2->l2m, "l2 unknown pr %04x",
-                           hh->prim);
+                                 hh->prim);
        }
        if (ret) {
                dev_kfree_skb(skb);
@@ -2038,7 +2038,7 @@ release_l2(struct layer2 *l2)
                TEIrelease(l2);
                if (l2->ch.st)
                        l2->ch.st->dev->D.ctrl(&l2->ch.st->dev->D,
-                           CLOSE_CHANNEL, NULL);
+                                              CLOSE_CHANNEL, NULL);
        }
        kfree(l2);
 }
@@ -2058,7 +2058,7 @@ l2_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
                        set_channel_address(&l2->ch, l2->sapi, l2->tei);
                        info = DL_INFO_L2_CONNECT;
                        l2up_create(l2, DL_INFORMATION_IND,
-                           sizeof(info), &info);
+                                   sizeof(info), &info);
                }
                break;
        case CLOSE_CHANNEL:
@@ -2072,7 +2072,7 @@ l2_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
 
 struct layer2 *
 create_l2(struct mISDNchannel *ch, u_int protocol, u_long options, int tei,
-               int sapi)
+         int sapi)
 {
        struct layer2           *l2;
        struct channel_req      rq;
@@ -2151,7 +2151,7 @@ create_l2(struct mISDNchannel *ch, u_int protocol, u_long options, int tei,
                break;
        default:
                printk(KERN_ERR "layer2 create failed prt %x\n",
-                       protocol);
+                      protocol);
                kfree(l2);
                return NULL;
        }
@@ -2162,8 +2162,8 @@ create_l2(struct mISDNchannel *ch, u_int protocol, u_long options, int tei,
        InitWin(l2);
        l2->l2m.fsm = &l2fsm;
        if (test_bit(FLG_LAPB, &l2->flag) ||
-               test_bit(FLG_PTP, &l2->flag) ||
-               test_bit(FLG_LAPD_NET, &l2->flag))
+           test_bit(FLG_PTP, &l2->flag) ||
+           test_bit(FLG_LAPD_NET, &l2->flag))
                l2->l2m.state = ST_L2_4;
        else
                l2->l2m.state = ST_L2_1;
@@ -2219,4 +2219,3 @@ Isdnl2_cleanup(void)
        TEIFree();
        mISDN_FsmFree(&l2fsm);
 }
-
index 9547fb3..fe68d94 100644 (file)
@@ -87,18 +87,18 @@ enum {
        ST_L2_8,
 };
 
-#define L2_STATE_COUNT (ST_L2_8+1)
+#define L2_STATE_COUNT (ST_L2_8 + 1)
 
 extern struct layer2   *create_l2(struct mISDNchannel *, u_int,
-                               u_long, int, int);
+                                  u_long, int, int);
 extern int             tei_l2(struct layer2 *, u_int, u_long arg);
 
 
 /* from tei.c */
-extern int             l2_tei(struct layer2 *, u_int, u_long arg);
-extern void            TEIrelease(struct layer2 *);
-extern int             TEIInit(u_int *);
-extern void            TEIFree(void);
+extern int             l2_tei(struct layer2 *, u_int, u_long arg);
+extern void            TEIrelease(struct layer2 *);
+extern int             TEIInit(u_int *);
+extern void            TEIFree(void);
 
 #define MAX_L2HEADER_LEN 4
 
index 738ea8d..abe2d69 100644 (file)
@@ -113,7 +113,7 @@ mISDN_sock_cmsg(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
 
 static int
 mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
-    struct msghdr *msg, size_t len, int flags)
+                  struct msghdr *msg, size_t len, int flags)
 {
        struct sk_buff          *skb;
        struct sock             *sk = sock->sk;
@@ -123,8 +123,8 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
 
        if (*debug & DEBUG_SOCKET)
                printk(KERN_DEBUG "%s: len %d, flags %x ch.nr %d, proto %x\n",
-                       __func__, (int)len, flags, _pms(sk)->ch.nr,
-                       sk->sk_protocol);
+                      __func__, (int)len, flags, _pms(sk)->ch.nr,
+                      sk->sk_protocol);
        if (flags & (MSG_OOB))
                return -EOPNOTSUPP;
 
@@ -153,7 +153,7 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
        } else {
                if (msg->msg_namelen)
                        printk(KERN_WARNING "%s: too small namelen %d\n",
-                           __func__, msg->msg_namelen);
+                              __func__, msg->msg_namelen);
                msg->msg_namelen = 0;
        }
 
@@ -166,7 +166,7 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
                return -ENOSPC;
        }
        memcpy(skb_push(skb, MISDN_HEADER_LEN), mISDN_HEAD_P(skb),
-           MISDN_HEADER_LEN);
+              MISDN_HEADER_LEN);
 
        err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
 
@@ -179,7 +179,7 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
 
 static int
 mISDN_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
-    struct msghdr *msg, size_t len)
+                  struct msghdr *msg, size_t len)
 {
        struct sock             *sk = sock->sk;
        struct sk_buff          *skb;
@@ -188,13 +188,13 @@ mISDN_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
 
        if (*debug & DEBUG_SOCKET)
                printk(KERN_DEBUG "%s: len %d flags %x ch %d proto %x\n",
-                    __func__, (int)len, msg->msg_flags, _pms(sk)->ch.nr,
-                    sk->sk_protocol);
+                      __func__, (int)len, msg->msg_flags, _pms(sk)->ch.nr,
+                      sk->sk_protocol);
 
        if (msg->msg_flags & MSG_OOB)
                return -EOPNOTSUPP;
 
-       if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_NOSIGNAL|MSG_ERRQUEUE))
+       if (msg->msg_flags & ~(MSG_DONTWAIT | MSG_NOSIGNAL | MSG_ERRQUEUE))
                return -EINVAL;
 
        if (len < MISDN_HEADER_LEN)
@@ -229,7 +229,7 @@ mISDN_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
 
        if (*debug & DEBUG_SOCKET)
                printk(KERN_DEBUG "%s: ID:%x\n",
-                    __func__, mISDN_HEAD_ID(skb));
+                      __func__, mISDN_HEAD_ID(skb));
 
        err = -ENODEV;
        if (!_pms(sk)->ch.peer)
@@ -312,16 +312,16 @@ data_sock_ioctl_bound(struct sock *sk, unsigned int cmd, void __user *p)
                }
                if ((sk->sk_protocol & ~ISDN_P_B_MASK) == ISDN_P_B_START) {
                        list_for_each_entry_safe(bchan, next,
-                               &_pms(sk)->dev->bchannels, list) {
+                                                &_pms(sk)->dev->bchannels, list) {
                                if (bchan->nr == cq.channel) {
                                        err = bchan->ctrl(bchan,
-                                               CONTROL_CHANNEL, &cq);
+                                                         CONTROL_CHANNEL, &cq);
                                        break;
                                }
                        }
                } else
                        err = _pms(sk)->dev->D.ctrl(&_pms(sk)->dev->D,
-                               CONTROL_CHANNEL, &cq);
+                                                   CONTROL_CHANNEL, &cq);
                if (err)
                        break;
                if (copy_to_user(p, &cq, sizeof(cq)))
@@ -338,11 +338,11 @@ data_sock_ioctl_bound(struct sock *sk, unsigned int cmd, void __user *p)
                        break;
                }
                err = _pms(sk)->dev->teimgr->ctrl(_pms(sk)->dev->teimgr,
-                   CONTROL_CHANNEL, val);
+                                                 CONTROL_CHANNEL, val);
                break;
        case IMHOLD_L1:
                if (sk->sk_protocol != ISDN_P_LAPD_NT
-                && sk->sk_protocol != ISDN_P_LAPD_TE) {
+                   && sk->sk_protocol != ISDN_P_LAPD_TE) {
                        err = -EINVAL;
                        break;
                }
@@ -352,7 +352,7 @@ data_sock_ioctl_bound(struct sock *sk, unsigned int cmd, void __user *p)
                        break;
                }
                err = _pms(sk)->dev->teimgr->ctrl(_pms(sk)->dev->teimgr,
-                   CONTROL_CHANNEL, val);
+                                                 CONTROL_CHANNEL, val);
                break;
        default:
                err = -EINVAL;
@@ -366,7 +366,7 @@ done:
 static int
 data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 {
-       int                     err = 0, id;
+       int                     err = 0, id;
        struct sock             *sk = sock->sk;
        struct mISDNdevice      *dev;
        struct mISDNversion     ver;
@@ -399,7 +399,7 @@ data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                        di.Bprotocols = dev->Bprotocols | get_all_Bprotocols();
                        di.protocol = dev->D.protocol;
                        memcpy(di.channelmap, dev->channelmap,
-                               sizeof(di.channelmap));
+                              sizeof(di.channelmap));
                        di.nrbchan = dev->nrbchan;
                        strcpy(di.name, dev_name(&dev->dev));
                        if (copy_to_user((void __user *)arg, &di, sizeof(di)))
@@ -410,7 +410,7 @@ data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
        default:
                if (sk->sk_state == MISDN_BOUND)
                        err = data_sock_ioctl_bound(sk, cmd,
-                               (void __user *)arg);
+                                                   (void __user *)arg);
                else
                        err = -ENOTCONN;
        }
@@ -418,14 +418,14 @@ data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 }
 
 static int data_sock_setsockopt(struct socket *sock, int level, int optname,
-       char __user *optval, unsigned int len)
+                               char __user *optval, unsigned int len)
 {
        struct sock *sk = sock->sk;
        int err = 0, opt = 0;
 
        if (*debug & DEBUG_SOCKET)
                printk(KERN_DEBUG "%s(%p, %d, %x, %p, %d)\n", __func__, sock,
-                   level, optname, optval, len);
+                      level, optname, optval, len);
 
        lock_sock(sk);
 
@@ -450,7 +450,7 @@ static int data_sock_setsockopt(struct socket *sock, int level, int optname,
 }
 
 static int data_sock_getsockopt(struct socket *sock, int level, int optname,
-       char __user *optval, int __user *optlen)
+                               char __user *optval, int __user *optlen)
 {
        struct sock *sk = sock->sk;
        int len, opt;
@@ -516,7 +516,7 @@ data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
                        if (csk->sk_protocol >= ISDN_P_B_START)
                                continue;
                        if (IS_ISDN_P_TE(csk->sk_protocol)
-                                       == IS_ISDN_P_TE(sk->sk_protocol))
+                           == IS_ISDN_P_TE(sk->sk_protocol))
                                continue;
                        read_unlock_bh(&data_sockets.lock);
                        err = -EBUSY;
@@ -535,14 +535,14 @@ data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
        case ISDN_P_NT_E1:
                mISDN_sock_unlink(&data_sockets, sk);
                err = connect_layer1(_pms(sk)->dev, &_pms(sk)->ch,
-                   sk->sk_protocol, maddr);
+                                    sk->sk_protocol, maddr);
                if (err)
                        mISDN_sock_link(&data_sockets, sk);
                break;
        case ISDN_P_LAPD_TE:
        case ISDN_P_LAPD_NT:
                err = create_l2entity(_pms(sk)->dev, &_pms(sk)->ch,
-                   sk->sk_protocol, maddr);
+                                     sk->sk_protocol, maddr);
                break;
        case ISDN_P_B_RAW:
        case ISDN_P_B_HDLC:
@@ -551,7 +551,7 @@ data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
        case ISDN_P_B_L2DSP:
        case ISDN_P_B_L2DSPHDLC:
                err = connect_Bstack(_pms(sk)->dev, &_pms(sk)->ch,
-                   sk->sk_protocol, maddr);
+                                    sk->sk_protocol, maddr);
                break;
        default:
                err = -EPROTONOSUPPORT;
@@ -568,9 +568,9 @@ done:
 
 static int
 data_sock_getname(struct socket *sock, struct sockaddr *addr,
-    int *addr_len, int peer)
+                 int *addr_len, int peer)
 {
-       struct sockaddr_mISDN   *maddr = (struct sockaddr_mISDN *) addr;
+       struct sockaddr_mISDN   *maddr = (struct sockaddr_mISDN *) addr;
        struct sock             *sk = sock->sk;
 
        if (!_pms(sk)->dev)
@@ -651,7 +651,7 @@ base_sock_release(struct socket *sock)
 static int
 base_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 {
-       int                     err = 0, id;
+       int                     err = 0, id;
        struct mISDNdevice      *dev;
        struct mISDNversion     ver;
 
@@ -683,7 +683,7 @@ base_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                        di.Bprotocols = dev->Bprotocols | get_all_Bprotocols();
                        di.protocol = dev->D.protocol;
                        memcpy(di.channelmap, dev->channelmap,
-                               sizeof(di.channelmap));
+                              sizeof(di.channelmap));
                        di.nrbchan = dev->nrbchan;
                        strcpy(di.name, dev_name(&dev->dev));
                        if (copy_to_user((void __user *)arg, &di, sizeof(di)))
@@ -692,20 +692,20 @@ base_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                        err = -ENODEV;
                break;
        case IMSETDEVNAME:
-               {
-                       struct mISDN_devrename dn;
-                       if (copy_from_user(&dn, (void __user *)arg,
-                           sizeof(dn))) {
-                               err = -EFAULT;
-                               break;
-                       }
-                       dev = get_mdevice(dn.id);
-                       if (dev)
-                               err = device_rename(&dev->dev, dn.name);
-                       else
-                               err = -ENODEV;
+       {
+               struct mISDN_devrename dn;
+               if (copy_from_user(&dn, (void __user *)arg,
+                                  sizeof(dn))) {
+                       err = -EFAULT;
+                       break;
                }
-               break;
+               dev = get_mdevice(dn.id);
+               if (dev)
+                       err = device_rename(&dev->dev, dn.name);
+               else
+                       err = -ENODEV;
+       }
+       break;
        default:
                err = -EINVAL;
        }
@@ -790,7 +790,7 @@ mISDN_sock_create(struct net *net, struct socket *sock, int proto, int kern)
 {
        int err = -EPROTONOSUPPORT;
 
-       switch  (proto) {
+       switch (proto) {
        case ISDN_P_BASE:
                err = base_sock_create(net, sock, proto);
                break;
@@ -838,4 +838,3 @@ misdn_sock_cleanup(void)
 {
        sock_unregister(PF_ISDN);
 }
-
index a5b632e..1a0ae44 100644 (file)
@@ -29,7 +29,7 @@ _queue_message(struct mISDNstack *st, struct sk_buff *skb)
 
        if (*debug & DEBUG_QUEUE_FUNC)
                printk(KERN_DEBUG "%s prim(%x) id(%x) %p\n",
-                   __func__, hh->prim, hh->id, skb);
+                      __func__, hh->prim, hh->id, skb);
        skb_queue_tail(&st->msgq, skb);
        if (likely(!test_bit(mISDN_STACK_STOPPED, &st->status))) {
                test_and_set_bit(mISDN_STACK_WORK, &st->status);
@@ -109,15 +109,15 @@ send_layer2(struct mISDNstack *st, struct sk_buff *skb)
                                if (ret) {
                                        if (*debug & DEBUG_SEND_ERR)
                                                printk(KERN_DEBUG
-                                                   "%s ch%d prim(%x) addr(%x)"
-                                                   " err %d\n",
-                                                   __func__, ch->nr,
-                                                   hh->prim, ch->addr, ret);
+                                                      "%s ch%d prim(%x) addr(%x)"
+                                                      " err %d\n",
+                                                      __func__, ch->nr,
+                                                      hh->prim, ch->addr, ret);
                                        dev_kfree_skb(cskb);
                                }
                        } else {
                                printk(KERN_WARNING "%s ch%d addr %x no mem\n",
-                                   __func__, ch->nr, ch->addr);
+                                      __func__, ch->nr, ch->addr);
                                goto out;
                        }
                }
@@ -135,8 +135,8 @@ send_layer2(struct mISDNstack *st, struct sk_buff *skb)
                        skb = NULL;
                else if (*debug & DEBUG_SEND_ERR)
                        printk(KERN_DEBUG
-                           "%s ch%d mgr prim(%x) addr(%x) err %d\n",
-                           __func__, ch->nr, hh->prim, ch->addr, ret);
+                              "%s ch%d mgr prim(%x) addr(%x) err %d\n",
+                              __func__, ch->nr, hh->prim, ch->addr, ret);
        }
 out:
        mutex_unlock(&st->lmutex);
@@ -154,7 +154,7 @@ send_msg_to_layer(struct mISDNstack *st, struct sk_buff *skb)
        lm = hh->prim & MISDN_LAYERMASK;
        if (*debug & DEBUG_QUEUE_FUNC)
                printk(KERN_DEBUG "%s prim(%x) id(%x) %p\n",
-                   __func__, hh->prim, hh->id, skb);
+                      __func__, hh->prim, hh->id, skb);
        if (lm == 0x1) {
                if (!hlist_empty(&st->l1sock.head)) {
                        __net_timestamp(skb);
@@ -172,9 +172,9 @@ send_msg_to_layer(struct mISDNstack *st, struct sk_buff *skb)
                        return ch->send(ch, skb);
                else
                        printk(KERN_WARNING
-                           "%s: dev(%s) prim(%x) id(%x) no channel\n",
-                           __func__, dev_name(&st->dev->dev), hh->prim,
-                           hh->id);
+                              "%s: dev(%s) prim(%x) id(%x) no channel\n",
+                              __func__, dev_name(&st->dev->dev), hh->prim,
+                              hh->id);
        } else if (lm == 0x8) {
                WARN_ON(lm == 0x8);
                ch = get_channel4id(st, hh->id);
@@ -182,13 +182,13 @@ send_msg_to_layer(struct mISDNstack *st, struct sk_buff *skb)
                        return ch->send(ch, skb);
                else
                        printk(KERN_WARNING
-                           "%s: dev(%s) prim(%x) id(%x) no channel\n",
-                           __func__, dev_name(&st->dev->dev), hh->prim,
-                           hh->id);
+                              "%s: dev(%s) prim(%x) id(%x) no channel\n",
+                              __func__, dev_name(&st->dev->dev), hh->prim,
+                              hh->id);
        } else {
                /* broadcast not handled yet */
                printk(KERN_WARNING "%s: dev(%s) prim %x not delivered\n",
-                   __func__, dev_name(&st->dev->dev), hh->prim);
+                      __func__, dev_name(&st->dev->dev), hh->prim);
        }
        return -ESRCH;
 }
@@ -207,7 +207,7 @@ mISDNStackd(void *data)
        sigfillset(&current->blocked);
        if (*debug & DEBUG_MSG_THREAD)
                printk(KERN_DEBUG "mISDNStackd %s started\n",
-                   dev_name(&st->dev->dev));
+                      dev_name(&st->dev->dev));
 
        if (st->notify != NULL) {
                complete(st->notify);
@@ -226,13 +226,13 @@ mISDNStackd(void *data)
                        skb = skb_dequeue(&st->msgq);
                        if (!skb) {
                                test_and_clear_bit(mISDN_STACK_WORK,
-                                       &st->status);
+                                                  &st->status);
                                /* test if a race happens */
                                skb = skb_dequeue(&st->msgq);
                                if (!skb)
                                        continue;
                                test_and_set_bit(mISDN_STACK_WORK,
-                                   &st->status);
+                                                &st->status);
                        }
 #ifdef MISDN_MSG_STATS
                        st->msg_cnt++;
@@ -241,20 +241,20 @@ mISDNStackd(void *data)
                        if (unlikely(err)) {
                                if (*debug & DEBUG_SEND_ERR)
                                        printk(KERN_DEBUG
-                                           "%s: %s prim(%x) id(%x) "
-                                           "send call(%d)\n",
-                                           __func__, dev_name(&st->dev->dev),
-                                           mISDN_HEAD_PRIM(skb),
-                                           mISDN_HEAD_ID(skb), err);
+                                              "%s: %s prim(%x) id(%x) "
+                                              "send call(%d)\n",
+                                              __func__, dev_name(&st->dev->dev),
+                                              mISDN_HEAD_PRIM(skb),
+                                              mISDN_HEAD_ID(skb), err);
                                dev_kfree_skb(skb);
                                continue;
                        }
                        if (unlikely(test_bit(mISDN_STACK_STOPPED,
-                           &st->status))) {
+                                             &st->status))) {
                                test_and_clear_bit(mISDN_STACK_WORK,
-                                   &st->status);
+                                                  &st->status);
                                test_and_clear_bit(mISDN_STACK_RUNNING,
-                                   &st->status);
+                                                  &st->status);
                                break;
                        }
                }
@@ -270,7 +270,7 @@ mISDNStackd(void *data)
                        test_and_set_bit(mISDN_STACK_RUNNING, &st->status);
                        if (!skb_queue_empty(&st->msgq))
                                test_and_set_bit(mISDN_STACK_WORK,
-                                   &st->status);
+                                                &st->status);
                }
                if (test_bit(mISDN_STACK_ABORT, &st->status))
                        break;
@@ -283,10 +283,10 @@ mISDNStackd(void *data)
 #endif
                test_and_clear_bit(mISDN_STACK_ACTIVE, &st->status);
                wait_event_interruptible(st->workq, (st->status &
-                   mISDN_STACK_ACTION_MASK));
+                                                    mISDN_STACK_ACTION_MASK));
                if (*debug & DEBUG_MSG_THREAD)
                        printk(KERN_DEBUG "%s: %s wake status %08lx\n",
-                           __func__, dev_name(&st->dev->dev), st->status);
+                              __func__, dev_name(&st->dev->dev), st->status);
                test_and_set_bit(mISDN_STACK_ACTIVE, &st->status);
 
                test_and_clear_bit(mISDN_STACK_WAKEUP, &st->status);
@@ -300,17 +300,17 @@ mISDNStackd(void *data)
        }
 #ifdef MISDN_MSG_STATS
        printk(KERN_DEBUG "mISDNStackd daemon for %s proceed %d "
-           "msg %d sleep %d stopped\n",
-           dev_name(&st->dev->dev), st->msg_cnt, st->sleep_cnt,
-           st->stopped_cnt);
+              "msg %d sleep %d stopped\n",
+              dev_name(&st->dev->dev), st->msg_cnt, st->sleep_cnt,
+              st->stopped_cnt);
        printk(KERN_DEBUG
-           "mISDNStackd daemon for %s utime(%ld) stime(%ld)\n",
-           dev_name(&st->dev->dev), st->thread->utime, st->thread->stime);
+              "mISDNStackd daemon for %s utime(%ld) stime(%ld)\n",
+              dev_name(&st->dev->dev), st->thread->utime, st->thread->stime);
        printk(KERN_DEBUG
-           "mISDNStackd daemon for %s nvcsw(%ld) nivcsw(%ld)\n",
-           dev_name(&st->dev->dev), st->thread->nvcsw, st->thread->nivcsw);
+              "mISDNStackd daemon for %s nvcsw(%ld) nivcsw(%ld)\n",
+              dev_name(&st->dev->dev), st->thread->nvcsw, st->thread->nivcsw);
        printk(KERN_DEBUG "mISDNStackd daemon for %s killed now\n",
-           dev_name(&st->dev->dev));
+              dev_name(&st->dev->dev));
 #endif
        test_and_set_bit(mISDN_STACK_KILLED, &st->status);
        test_and_clear_bit(mISDN_STACK_RUNNING, &st->status);
@@ -401,15 +401,15 @@ create_stack(struct mISDNdevice *dev)
        newst->own.recv = mISDN_queue_message;
        if (*debug & DEBUG_CORE_FUNC)
                printk(KERN_DEBUG "%s: st(%s)\n", __func__,
-                   dev_name(&newst->dev->dev));
+                      dev_name(&newst->dev->dev));
        newst->notify = &done;
        newst->thread = kthread_run(mISDNStackd, (void *)newst, "mISDN_%s",
-               dev_name(&newst->dev->dev));
+                                   dev_name(&newst->dev->dev));
        if (IS_ERR(newst->thread)) {
                err = PTR_ERR(newst->thread);
                printk(KERN_ERR
-                       "mISDN:cannot create kernel thread for %s (%d)\n",
-                       dev_name(&newst->dev->dev), err);
+                      "mISDN:cannot create kernel thread for %s (%d)\n",
+                      dev_name(&newst->dev->dev), err);
                delete_teimanager(dev->teimgr);
                kfree(newst);
        } else
@@ -419,7 +419,7 @@ create_stack(struct mISDNdevice *dev)
 
 int
 connect_layer1(struct mISDNdevice *dev, struct mISDNchannel *ch,
-               u_int protocol, struct sockaddr_mISDN *adr)
+              u_int protocol, struct sockaddr_mISDN *adr)
 {
        struct mISDN_sock       *msk = container_of(ch, struct mISDN_sock, ch);
        struct channel_req      rq;
@@ -428,8 +428,8 @@ connect_layer1(struct mISDNdevice *dev, struct mISDNchannel *ch,
 
        if (*debug &  DEBUG_CORE_FUNC)
                printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
-                       __func__, dev_name(&dev->dev), protocol, adr->dev,
-                       adr->channel, adr->sapi, adr->tei);
+                      __func__, dev_name(&dev->dev), protocol, adr->dev,
+                      adr->channel, adr->sapi, adr->tei);
        switch (protocol) {
        case ISDN_P_NT_S0:
        case ISDN_P_NT_E1:
@@ -442,7 +442,7 @@ connect_layer1(struct mISDNdevice *dev, struct mISDNchannel *ch,
                rq.adr.channel = adr->channel;
                err = dev->D.ctrl(&dev->D, OPEN_CHANNEL, &rq);
                printk(KERN_DEBUG "%s: ret %d (dev %d)\n", __func__, err,
-                       dev->id);
+                      dev->id);
                if (err)
                        return err;
                write_lock_bh(&dev->D.st->l1sock.lock);
@@ -457,7 +457,7 @@ connect_layer1(struct mISDNdevice *dev, struct mISDNchannel *ch,
 
 int
 connect_Bstack(struct mISDNdevice *dev, struct mISDNchannel *ch,
-    u_int protocol, struct sockaddr_mISDN *adr)
+              u_int protocol, struct sockaddr_mISDN *adr)
 {
        struct channel_req      rq, rq2;
        int                     pmask, err;
@@ -465,9 +465,9 @@ connect_Bstack(struct mISDNdevice *dev, struct mISDNchannel *ch,
 
        if (*debug &  DEBUG_CORE_FUNC)
                printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
-                       __func__, dev_name(&dev->dev), protocol,
-                       adr->dev, adr->channel, adr->sapi,
-                       adr->tei);
+                      __func__, dev_name(&dev->dev), protocol,
+                      adr->dev, adr->channel, adr->sapi,
+                      adr->tei);
        ch->st = dev->D.st;
        pmask = 1 << (protocol & ISDN_P_B_MASK);
        if (pmask & dev->Bprotocols) {
@@ -514,16 +514,16 @@ connect_Bstack(struct mISDNdevice *dev, struct mISDNchannel *ch,
 
 int
 create_l2entity(struct mISDNdevice *dev, struct mISDNchannel *ch,
-    u_int protocol, struct sockaddr_mISDN *adr)
+               u_int protocol, struct sockaddr_mISDN *adr)
 {
        struct channel_req      rq;
        int                     err;
 
        if (*debug &  DEBUG_CORE_FUNC)
                printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
-                       __func__, dev_name(&dev->dev), protocol,
-                       adr->dev, adr->channel, adr->sapi,
-                       adr->tei);
+                      __func__, dev_name(&dev->dev), protocol,
+                      adr->dev, adr->channel, adr->sapi,
+                      adr->tei);
        rq.protocol = ISDN_P_TE_S0;
        if (dev->Dprotocols & (1 << ISDN_P_TE_E1))
                rq.protocol = ISDN_P_TE_E1;
@@ -573,7 +573,7 @@ delete_channel(struct mISDNchannel *ch)
        }
        if (*debug & DEBUG_CORE_FUNC)
                printk(KERN_DEBUG "%s: st(%s) protocol(%x)\n", __func__,
-                   dev_name(&ch->st->dev->dev), ch->protocol);
+                      dev_name(&ch->st->dev->dev), ch->protocol);
        if (ch->protocol >= ISDN_P_B_START) {
                if (ch->peer) {
                        ch->peer->ctrl(ch->peer, CLOSE_CHANNEL, NULL);
@@ -602,7 +602,7 @@ delete_channel(struct mISDNchannel *ch)
                        pch->ctrl(pch, CLOSE_CHANNEL, NULL);
                } else
                        printk(KERN_WARNING "%s: no l2 channel\n",
-                           __func__);
+                              __func__);
                break;
        case ISDN_P_LAPD_NT:
                pch = ch->st->dev->teimgr;
@@ -610,7 +610,7 @@ delete_channel(struct mISDNchannel *ch)
                        pch->ctrl(pch, CLOSE_CHANNEL, NULL);
                } else
                        printk(KERN_WARNING "%s: no l2 channel\n",
-                           __func__);
+                              __func__);
                break;
        default:
                break;
@@ -626,14 +626,14 @@ delete_stack(struct mISDNdevice *dev)
 
        if (*debug & DEBUG_CORE_FUNC)
                printk(KERN_DEBUG "%s: st(%s)\n", __func__,
-                   dev_name(&st->dev->dev));
+                      dev_name(&st->dev->dev));
        if (dev->teimgr)
                delete_teimanager(dev->teimgr);
        if (st->thread) {
                if (st->notify) {
                        printk(KERN_WARNING "%s: notifier in use\n",
-                           __func__);
-                               complete(st->notify);
+                              __func__);
+                       complete(st->notify);
                }
                st->notify = &done;
                test_and_set_bit(mISDN_STACK_ABORT, &st->status);
@@ -643,10 +643,10 @@ delete_stack(struct mISDNdevice *dev)
        }
        if (!list_empty(&st->layer2))
                printk(KERN_WARNING "%s: layer2 list not empty\n",
-                   __func__);
+                      __func__);
        if (!hlist_empty(&st->l1sock.head))
                printk(KERN_WARNING "%s: layer1 list not empty\n",
-                   __func__);
+                      __func__);
        kfree(st);
 }
 
index 687c9b6..ba2bc0c 100644 (file)
@@ -34,7 +34,7 @@
 
 #define DATIMER_VAL    10000
 
-static         u_int   *debug;
+static u_int   *debug;
 
 static struct Fsm deactfsm = {NULL, 0, 0, NULL, NULL};
 static struct Fsm teifsmu = {NULL, 0, 0, NULL, NULL};
@@ -45,7 +45,7 @@ enum {
        ST_L1_DEACT_PENDING,
        ST_L1_ACTIV,
 };
-#define DEACT_STATE_COUNT (ST_L1_ACTIV+1)
+#define DEACT_STATE_COUNT (ST_L1_ACTIV + 1)
 
 static char *strDeactState[] =
 {
@@ -63,7 +63,7 @@ enum {
        EV_DATIMER,
 };
 
-#define DEACT_EVENT_COUNT (EV_DATIMER+1)
+#define DEACT_EVENT_COUNT (EV_DATIMER + 1)
 
 static char *strDeactEvent[] =
 {
@@ -130,7 +130,7 @@ da_deactivate(struct FsmInst *fi, int event, void *arg)
        /* All TEI are inactiv */
        if (!test_bit(OPTION_L1_HOLD, &mgr->options)) {
                mISDN_FsmAddTimer(&mgr->datimer, DATIMER_VAL, EV_DATIMER,
-                       NULL, 1);
+                                 NULL, 1);
                mISDN_FsmChangeState(fi, ST_L1_DEACT_PENDING);
        }
 }
@@ -144,7 +144,7 @@ da_ui(struct FsmInst *fi, int event, void *arg)
        if (!test_bit(OPTION_L1_HOLD, &mgr->options)) {
                mISDN_FsmDelTimer(&mgr->datimer, 2);
                mISDN_FsmAddTimer(&mgr->datimer, DATIMER_VAL, EV_DATIMER,
-                       NULL, 2);
+                                 NULL, 2);
        }
 }
 
@@ -169,7 +169,7 @@ da_timer(struct FsmInst *fi, int event, void *arg)
        /* All TEI are inactiv */
        mISDN_FsmChangeState(fi, ST_L1_DEACT);
        _queue_data(&mgr->ch, PH_DEACTIVATE_REQ, MISDN_ID_ANY, 0, NULL,
-           GFP_ATOMIC);
+                   GFP_ATOMIC);
 }
 
 static struct FsmNode DeactFnList[] =
@@ -188,7 +188,7 @@ enum {
        ST_TEI_IDVERIFY,
 };
 
-#define TEI_STATE_COUNT (ST_TEI_IDVERIFY+1)
+#define TEI_STATE_COUNT (ST_TEI_IDVERIFY + 1)
 
 static char *strTeiState[] =
 {
@@ -209,7 +209,7 @@ enum {
        EV_TIMER,
 };
 
-#define TEI_EVENT_COUNT (EV_TIMER+1)
+#define TEI_EVENT_COUNT (EV_TIMER + 1)
 
 static char *strTeiEvent[] =
 {
@@ -257,8 +257,8 @@ get_free_id(struct manager *mgr)
        list_for_each_entry(l2, &mgr->layer2, list) {
                if (l2->ch.nr > 63) {
                        printk(KERN_WARNING
-                           "%s: more as 63 layer2 for one device\n",
-                           __func__);
+                              "%s: more as 63 layer2 for one device\n",
+                              __func__);
                        return -EBUSY;
                }
                test_and_set_bit(l2->ch.nr, (u_long *)&ids);
@@ -267,7 +267,7 @@ get_free_id(struct manager *mgr)
                if (!test_bit(i, (u_long *)&ids))
                        return i;
        printk(KERN_WARNING "%s: more as 63 layer2 for one device\n",
-           __func__);
+              __func__);
        return -EBUSY;
 }
 
@@ -294,7 +294,7 @@ get_free_tei(struct manager *mgr)
                if (!test_bit(i, (u_long *)&ids))
                        return i + 64;
        printk(KERN_WARNING "%s: more as 63 dynamic tei for one device\n",
-           __func__);
+              __func__);
        return -1;
 }
 
@@ -385,7 +385,7 @@ mgr_send_down(struct manager *mgr, struct sk_buff *skb)
        skb_queue_tail(&mgr->sendq, skb);
        if (!test_bit(MGR_PH_ACTIVE, &mgr->options)) {
                _queue_data(&mgr->ch, PH_ACTIVATE_REQ, MISDN_ID_ANY, 0,
-                   NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
        } else {
                do_send(mgr);
        }
@@ -398,7 +398,7 @@ dl_unit_data(struct manager *mgr, struct sk_buff *skb)
                return -EINVAL;
        if (!test_bit(MGR_PH_ACTIVE, &mgr->options))
                _queue_data(&mgr->ch, PH_ACTIVATE_REQ, MISDN_ID_ANY, 0,
-                   NULL, GFP_KERNEL);
+                           NULL, GFP_KERNEL);
        skb_push(skb, 3);
        skb->data[0] = 0x02; /* SAPI 0 C/R = 1 */
        skb->data[1] = 0xff; /* TEI 127 */
@@ -468,14 +468,14 @@ tei_id_request(struct FsmInst *fi, int event, void *arg)
 
        if (tm->l2->tei != GROUP_TEI) {
                tm->tei_m.printdebug(&tm->tei_m,
-                       "assign request for already assigned tei %d",
-                       tm->l2->tei);
+                                    "assign request for already assigned tei %d",
+                                    tm->l2->tei);
                return;
        }
        tm->ri = random_ri();
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(&tm->tei_m,
-                       "assign request ri %d", tm->ri);
+                                    "assign request ri %d", tm->ri);
        put_tei_msg(tm->mgr, ID_REQUEST, tm->ri, GROUP_TEI);
        mISDN_FsmChangeState(fi, ST_TEI_IDREQ);
        mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 1);
@@ -496,12 +496,12 @@ tei_id_assign(struct FsmInst *fi, int event, void *arg)
        tei = *dp >> 1;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "identity assign ri %d tei %d",
-                       ri, tei);
+                                    ri, tei);
        l2 = findtei(tm->mgr, tei);
        if (l2) {       /* same tei is in use */
                if (ri != l2->tm->ri) {
                        tm->tei_m.printdebug(fi,
-                               "possible duplicate assignment tei %d", tei);
+                                            "possible duplicate assignment tei %d", tei);
                        tei_l2(l2, MDL_ERROR_RSP, 0);
                }
        } else if (ri == tm->ri) {
@@ -525,12 +525,12 @@ tei_id_test_dup(struct FsmInst *fi, int event, void *arg)
        tei = *dp >> 1;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "foreign identity assign ri %d tei %d",
-                       ri, tei);
+                                    ri, tei);
        l2 = findtei(tm->mgr, tei);
        if (l2) {       /* same tei is in use */
                if (ri != l2->tm->ri) { /* and it wasn't our request */
                        tm->tei_m.printdebug(fi,
-                               "possible duplicate assignment tei %d", tei);
+                                            "possible duplicate assignment tei %d", tei);
                        mISDN_FsmEvent(&l2->tm->tei_m, EV_VERIFY, NULL);
                }
        }
@@ -549,7 +549,7 @@ tei_id_denied(struct FsmInst *fi, int event, void *arg)
        tei = *dp >> 1;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "identity denied ri %d tei %d",
-                       ri, tei);
+                                    ri, tei);
 }
 
 static void
@@ -559,11 +559,11 @@ tei_id_chk_req(struct FsmInst *fi, int event, void *arg)
        u_char *dp = arg;
        int tei;
 
-       tei = *(dp+3) >> 1;
+       tei = *(dp + 3) >> 1;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "identity check req tei %d", tei);
        if ((tm->l2->tei != GROUP_TEI) && ((tei == GROUP_TEI) ||
-           (tei == tm->l2->tei))) {
+                                          (tei == tm->l2->tei))) {
                mISDN_FsmDelTimer(&tm->timer, 4);
                mISDN_FsmChangeState(&tm->tei_m, ST_TEI_NOP);
                put_tei_msg(tm->mgr, ID_CHK_RES, random_ri(), tm->l2->tei);
@@ -577,7 +577,7 @@ tei_id_remove(struct FsmInst *fi, int event, void *arg)
        u_char *dp = arg;
        int tei;
 
-       tei = *(dp+3) >> 1;
+       tei = *(dp + 3) >> 1;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "identity remove tei %d", tei);
        if ((tm->l2->tei != GROUP_TEI) &&
@@ -595,7 +595,7 @@ tei_id_verify(struct FsmInst *fi, int event, void *arg)
 
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "id verify request for tei %d",
-                       tm->l2->tei);
+                                    tm->l2->tei);
        put_tei_msg(tm->mgr, ID_VERIFY, 0, tm->l2->tei);
        mISDN_FsmChangeState(&tm->tei_m, ST_TEI_IDVERIFY);
        mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 2);
@@ -611,7 +611,7 @@ tei_id_req_tout(struct FsmInst *fi, int event, void *arg)
                tm->ri = random_ri();
                if (*debug & DEBUG_L2_TEI)
                        tm->tei_m.printdebug(fi, "assign req(%d) ri %d",
-                               4 - tm->nval, tm->ri);
+                                            4 - tm->nval, tm->ri);
                put_tei_msg(tm->mgr, ID_REQUEST, tm->ri, GROUP_TEI);
                mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 3);
        } else {
@@ -629,13 +629,13 @@ tei_id_ver_tout(struct FsmInst *fi, int event, void *arg)
        if (--tm->nval) {
                if (*debug & DEBUG_L2_TEI)
                        tm->tei_m.printdebug(fi,
-                               "id verify req(%d) for tei %d",
-                               3 - tm->nval, tm->l2->tei);
+                                            "id verify req(%d) for tei %d",
+                                            3 - tm->nval, tm->l2->tei);
                put_tei_msg(tm->mgr, ID_VERIFY, 0, tm->l2->tei);
                mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 4);
        } else {
                tm->tei_m.printdebug(fi, "verify req for tei %d failed",
-                       tm->l2->tei);
+                                    tm->l2->tei);
                tei_l2(tm->l2, MDL_REMOVE_REQ, 0);
                mISDN_FsmChangeState(fi, ST_TEI_NOP);
        }
@@ -673,14 +673,14 @@ tei_assign_req(struct FsmInst *fi, int event, void *arg)
 
        if (tm->l2->tei == GROUP_TEI) {
                tm->tei_m.printdebug(&tm->tei_m,
-                       "net tei assign request without tei");
+                                    "net tei assign request without tei");
                return;
        }
        tm->ri = ((unsigned int) *dp++ << 8);
        tm->ri += *dp++;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(&tm->tei_m,
-                       "net assign request ri %d teim %d", tm->ri, *dp);
+                                    "net assign request ri %d teim %d", tm->ri, *dp);
        put_tei_msg(tm->mgr, ID_ASSIGNED, tm->ri, tm->l2->tei);
        mISDN_FsmChangeState(fi, ST_TEI_NOP);
 }
@@ -692,7 +692,7 @@ tei_id_chk_req_net(struct FsmInst *fi, int event, void *arg)
 
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "id check request for tei %d",
-                   tm->l2->tei);
+                                    tm->l2->tei);
        tm->rcnt = 0;
        put_tei_msg(tm->mgr, ID_CHK_REQ, 0, tm->l2->tei);
        mISDN_FsmChangeState(&tm->tei_m, ST_TEI_IDVERIFY);
@@ -724,7 +724,7 @@ tei_id_verify_net(struct FsmInst *fi, int event, void *arg)
        tei = dp[3] >> 1;
        if (*debug & DEBUG_L2_TEI)
                tm->tei_m.printdebug(fi, "identity verify req tei %d/%d",
-                   tei, tm->l2->tei);
+                                    tei, tm->l2->tei);
        if (tei == tm->l2->tei)
                tei_id_chk_req_net(fi, event, arg);
 }
@@ -737,7 +737,7 @@ tei_id_ver_tout_net(struct FsmInst *fi, int event, void *arg)
        if (tm->rcnt == 1) {
                if (*debug & DEBUG_L2_TEI)
                        tm->tei_m.printdebug(fi,
-                           "check req for tei %d successful\n", tm->l2->tei);
+                                            "check req for tei %d successful\n", tm->l2->tei);
                mISDN_FsmChangeState(fi, ST_TEI_NOP);
        } else if (tm->rcnt > 1) {
                /* duplicate assignment; remove */
@@ -745,13 +745,13 @@ tei_id_ver_tout_net(struct FsmInst *fi, int event, void *arg)
        } else if (--tm->nval) {
                if (*debug & DEBUG_L2_TEI)
                        tm->tei_m.printdebug(fi,
-                               "id check req(%d) for tei %d",
-                               3 - tm->nval, tm->l2->tei);
+                                            "id check req(%d) for tei %d",
+                                            3 - tm->nval, tm->l2->tei);
                put_tei_msg(tm->mgr, ID_CHK_REQ, 0, tm->l2->tei);
                mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 4);
        } else {
                tm->tei_m.printdebug(fi, "check req for tei %d failed",
-                       tm->l2->tei);
+                                    tm->l2->tei);
                mISDN_FsmChangeState(fi, ST_TEI_NOP);
                tei_l2remove(tm->l2);
        }
@@ -800,7 +800,7 @@ create_new_tei(struct manager *mgr, int tei, int sapi)
        if ((tei >= 0) && (tei < 64))
                test_and_set_bit(OPTION_L2_FIXEDTEI, &opt);
        if (mgr->ch.st->dev->Dprotocols
-         & ((1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1)))
+           & ((1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1)))
                test_and_set_bit(OPTION_L2_PMX, &opt);
        l2 = create_l2(mgr->up, ISDN_P_LAPD_NT, opt, tei, sapi);
        if (!l2) {
@@ -880,7 +880,7 @@ ph_data_ind(struct manager *mgr, struct sk_buff *skb)
        if (skb->len < 8) {
                if (*debug  & DEBUG_L2_TEI)
                        printk(KERN_DEBUG "%s: short mgr frame %d/8\n",
-                           __func__, skb->len);
+                              __func__, skb->len);
                goto done;
        }
 
@@ -979,15 +979,15 @@ static int
 create_teimgr(struct manager *mgr, struct channel_req *crq)
 {
        struct layer2   *l2;
-       u_long          opt = 0;
+       u_long          opt = 0;
        u_long          flags;
        int             id;
 
        if (*debug & DEBUG_L2_TEI)
                printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
-                       __func__, dev_name(&mgr->ch.st->dev->dev),
-                       crq->protocol, crq->adr.dev, crq->adr.channel,
-                       crq->adr.sapi, crq->adr.tei);
+                      __func__, dev_name(&mgr->ch.st->dev->dev),
+                      crq->protocol, crq->adr.dev, crq->adr.channel,
+                      crq->adr.sapi, crq->adr.tei);
        if (crq->adr.tei > GROUP_TEI)
                return -EINVAL;
        if (crq->adr.tei < 64)
@@ -1001,8 +1001,8 @@ create_teimgr(struct manager *mgr, struct channel_req *crq)
                        return -EINVAL;
                if (mgr->up) {
                        printk(KERN_WARNING
-                           "%s: only one network manager is allowed\n",
-                           __func__);
+                              "%s: only one network manager is allowed\n",
+                              __func__);
                        return -EBUSY;
                }
        } else if (test_bit(MGR_OPT_USER, &mgr->options)) {
@@ -1017,7 +1017,7 @@ create_teimgr(struct manager *mgr, struct channel_req *crq)
                        test_and_set_bit(MGR_OPT_USER, &mgr->options);
        }
        if (mgr->ch.st->dev->Dprotocols
-         & ((1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1)))
+           & ((1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1)))
                test_and_set_bit(OPTION_L2_PMX, &opt);
        if ((crq->protocol == ISDN_P_LAPD_NT) && (crq->adr.tei == 127)) {
                mgr->up = crq->ch;
@@ -1035,7 +1035,7 @@ create_teimgr(struct manager *mgr, struct channel_req *crq)
                return 0;
        }
        l2 = create_l2(crq->ch, crq->protocol, opt,
-               crq->adr.tei, crq->adr.sapi);
+                      crq->adr.tei, crq->adr.sapi);
        if (!l2)
                return -ENOMEM;
        l2->tm = kzalloc(sizeof(struct teimgr), GFP_KERNEL);
@@ -1084,7 +1084,7 @@ mgr_send(struct mISDNchannel *ch, struct sk_buff *skb)
        mgr = container_of(ch, struct manager, ch);
        if (*debug & DEBUG_L2_RECV)
                printk(KERN_DEBUG "%s: prim(%x) id(%x)\n",
-                   __func__, hh->prim, hh->id);
+                      __func__, hh->prim, hh->id);
        switch (hh->prim) {
        case PH_DATA_IND:
                mISDN_FsmEvent(&mgr->deact, EV_UI, NULL);
@@ -1181,7 +1181,7 @@ check_data(struct manager *mgr, struct sk_buff *skb)
 
        if (*debug & DEBUG_L2_CTRL)
                printk(KERN_DEBUG "%s: prim(%x) id(%x)\n",
-                   __func__, hh->prim, hh->id);
+                      __func__, hh->prim, hh->id);
        if (test_bit(MGR_OPT_USER, &mgr->options))
                return -ENOTCONN;
        if (hh->prim != PH_DATA_IND)
@@ -1201,12 +1201,12 @@ check_data(struct manager *mgr, struct sk_buff *skb)
        /* We got a SABME for a fixed TEI */
        if (*debug & DEBUG_L2_CTRL)
                printk(KERN_DEBUG "%s: SABME sapi(%d) tei(%d)\n",
-                   __func__, sapi, tei);
+                      __func__, sapi, tei);
        l2 = create_new_tei(mgr, tei, sapi);
        if (!l2) {
                if (*debug & DEBUG_L2_CTRL)
                        printk(KERN_DEBUG "%s: failed to create new tei\n",
-                           __func__);
+                              __func__);
                return -ENOMEM;
        }
        ret = l2->ch.send(&l2->ch, skb);
@@ -1285,15 +1285,15 @@ mgr_bcast(struct mISDNchannel *ch, struct sk_buff *skb)
                                if (ret) {
                                        if (*debug & DEBUG_SEND_ERR)
                                                printk(KERN_DEBUG
-                                                   "%s ch%d prim(%x) addr(%x)"
-                                                   " err %d\n",
-                                                   __func__, l2->ch.nr,
-                                                   hh->prim, l2->ch.addr, ret);
+                                                      "%s ch%d prim(%x) addr(%x)"
+                                                      " err %d\n",
+                                                      __func__, l2->ch.nr,
+                                                      hh->prim, l2->ch.addr, ret);
                                } else
                                        cskb = NULL;
                        } else {
                                printk(KERN_WARNING "%s ch%d addr %x no mem\n",
-                                   __func__, ch->nr, ch->addr);
+                                      __func__, ch->nr, ch->addr);
                                goto out;
                        }
                }
index 859c81e..1094667 100644 (file)
@@ -98,13 +98,13 @@ mISDN_read(struct file *filep, char __user *buf, size_t count, loff_t *off)
 
        if (*debug & DEBUG_TIMER)
                printk(KERN_DEBUG "%s(%p, %p, %d, %p)\n", __func__,
-                       filep, buf, (int)count, off);
+                      filep, buf, (int)count, off);
 
        if (list_empty(&dev->expired) && (dev->work == 0)) {
                if (filep->f_flags & O_NONBLOCK)
                        return -EAGAIN;
                wait_event_interruptible(dev->wait, (dev->work ||
-                   !list_empty(&dev->expired)));
+                                                    !list_empty(&dev->expired)));
                if (signal_pending(current))
                        return -ERESTARTSYS;
        }
@@ -141,7 +141,7 @@ mISDN_poll(struct file *filep, poll_table *wait)
                        mask |= (POLLIN | POLLRDNORM);
                if (*debug & DEBUG_TIMER)
                        printk(KERN_DEBUG "%s work(%d) empty(%d)\n", __func__,
-                               dev->work, list_empty(&dev->expired));
+                              dev->work, list_empty(&dev->expired));
        }
        return mask;
 }
@@ -161,7 +161,7 @@ dev_expire_timer(unsigned long data)
 static int
 misdn_add_timer(struct mISDNtimerdev *dev, int timeout)
 {
-       int                     id;
+       int                     id;
        u_long                  flags;
        struct mISDNtimer       *timer;
 
@@ -224,7 +224,7 @@ mISDN_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
 
        if (*debug & DEBUG_TIMER)
                printk(KERN_DEBUG "%s(%p, %x, %lx)\n", __func__,
-                   filep, cmd, arg);
+                      filep, cmd, arg);
        mutex_lock(&mISDN_mutex);
        switch (cmd) {
        case IMADDTIMER:
@@ -235,7 +235,7 @@ mISDN_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
                id = misdn_add_timer(dev, tout);
                if (*debug & DEBUG_TIMER)
                        printk(KERN_DEBUG "%s add %d id %d\n", __func__,
-                           tout, id);
+                              tout, id);
                if (id < 0) {
                        ret = id;
                        break;
index 976143b..efb6d6a 100644 (file)
@@ -2,16 +2,16 @@
  * Callbacks for the FSM
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
 /*
  * Fix: 19981230 - Carlos Morgado <chbm@techie.com>
- * Port of Nelson Escravana's <nelson.escravana@usa.net> fix to CalledPN 
+ * Port of Nelson Escravana's <nelson.escravana@usa.net> fix to CalledPN
  * NULL pointer dereference in cb_in_1 (originally fixed in 2.0)
  */
 
@@ -39,86 +39,86 @@ ushort last_ref_num = 1;
  *
  */
 
-void cb_out_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
-             struct callb_data *cbdata) 
+void cb_out_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
+             struct callb_data *cbdata)
 {
        struct sk_buff *skb;
        int len;
-        ushort refnum;
+       ushort refnum;
 
 
 #ifdef DEBUG
-        printk(KERN_DEBUG "Called Party Number: %s\n", 
-               cbdata->data.setup.CalledPN);
+       printk(KERN_DEBUG "Called Party Number: %s\n",
+              cbdata->data.setup.CalledPN);
 #endif
-        /*
-         * hdr - kmalloc in capi_conn_req
-         *     - kfree   when msg has been sent
-         */
+       /*
+        * hdr - kmalloc in capi_conn_req
+        *     - kfree   when msg has been sent
+        */
 
-        if ((len = capi_conn_req(cbdata->data.setup.CalledPN, &skb, 
+       if ((len = capi_conn_req(cbdata->data.setup.CalledPN, &skb,
                                 chan->proto)) < 0)
-        {
-                printk("capi_conn_req failed\n");
-                return;
-        }
+       {
+               printk("capi_conn_req failed\n");
+               return;
+       }
 
 
-        refnum = last_ref_num++ & 0x7fffU;
+       refnum = last_ref_num++ & 0x7fffU;
 
-        chan->callref = 0;
-        chan->layer2link = 0;
-        chan->snum = 0;
-        chan->s_refnum = refnum;
+       chan->callref = 0;
+       chan->layer2link = 0;
+       chan->snum = 0;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_CONN_REQ, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_CONN_REQ, refnum, skb, len);
 }
 
 /*
  *  rcv CONNECT
  *  will go into ACTIVE state
  *  send CONN_ACTIVE_RESP
- *  send Select protocol request 
+ *  send Select protocol request
  */
 
-void cb_out_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 
-             struct callb_data *data) 
+void cb_out_2(struct pcbit_dev *dev, struct pcbit_chan *chan,
+             struct callb_data *data)
 {
-        isdn_ctrl ictl;
-       struct sk_buff *skb;
+       isdn_ctrl ictl;
+       struct sk_buff *skb;
        int len;
-        ushort refnum;
+       ushort refnum;
 
-        if ((len=capi_conn_active_resp(chan, &skb)) < 0)
-        {
-                printk("capi_conn_active_req failed\n");
-                return;
-        }
+       if ((len = capi_conn_active_resp(chan, &skb)) < 0)
+       {
+               printk("capi_conn_active_req failed\n");
+               return;
+       }
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_CONN_ACTV_RESP, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_CONN_ACTV_RESP, refnum, skb, len);
 
 
-        ictl.command = ISDN_STAT_DCONN;
-        ictl.driver=dev->id;
-        ictl.arg=chan->id;
-        dev->dev_if->statcallb(&ictl);
+       ictl.command = ISDN_STAT_DCONN;
+       ictl.driver = dev->id;
+       ictl.arg = chan->id;
+       dev->dev_if->statcallb(&ictl);
 
-        /* ACTIVE D-channel */
+       /* ACTIVE D-channel */
 
-        /* Select protocol  */
+       /* Select protocol  */
 
-        if ((len=capi_select_proto_req(chan, &skb, 1 /*outgoing*/)) < 0) { 
-                printk("capi_select_proto_req failed\n");
-                return;
-        }
+       if ((len = capi_select_proto_req(chan, &skb, 1 /*outgoing*/)) < 0) {
+               printk("capi_select_proto_req failed\n");
+               return;
+       }
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_SELP_REQ, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_SELP_REQ, refnum, skb, len);
 }
 
 
@@ -127,22 +127,22 @@ void cb_out_2(struct pcbit_dev * dev, struct pcbit_chan* chan,
  * inform user
  */
 
-void cb_in_1(struct pcbit_dev * dev, struct pcbit_chan* chan,
-            struct callb_data *cbdata) 
+void cb_in_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
+            struct callb_data *cbdata)
 {
-        isdn_ctrl ictl;
-        unsigned short refnum;
-       struct sk_buff *skb;
+       isdn_ctrl ictl;
+       unsigned short refnum;
+       struct sk_buff *skb;
        int len;
 
 
-        ictl.command = ISDN_STAT_ICALL;
-        ictl.driver=dev->id;
-        ictl.arg=chan->id;
-        
-        /*
-         *  ictl.num >= strlen() + strlen() + 5
-         */
+       ictl.command = ISDN_STAT_ICALL;
+       ictl.driver = dev->id;
+       ictl.arg = chan->id;
+
+       /*
+        *  ictl.num >= strlen() + strlen() + 5
+        */
 
        if (cbdata->data.setup.CallingPN == NULL) {
                printk(KERN_DEBUG "NULL CallingPN to phone; using 0\n");
@@ -167,18 +167,18 @@ void cb_in_1(struct pcbit_dev * dev, struct pcbit_chan* chan,
        printk(KERN_DEBUG "statstr: %s\n", ictl.num);
 #endif
 
-        dev->dev_if->statcallb(&ictl);
+       dev->dev_if->statcallb(&ictl);
+
 
-        
-        if ((len=capi_conn_resp(chan, &skb)) < 0) {
-                printk(KERN_DEBUG "capi_conn_resp failed\n");
-                return;
+       if ((len = capi_conn_resp(chan, &skb)) < 0) {
+               printk(KERN_DEBUG "capi_conn_resp failed\n");
+               return;
        }
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_CONN_RESP, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_CONN_RESP, refnum, skb, len);
 }
 
 /*
@@ -187,24 +187,24 @@ void cb_in_1(struct pcbit_dev * dev, struct pcbit_chan* chan,
  * send CONNECT message CONNECT_ACTIVE_REQ in CAPI
  */
 
-void cb_in_2(struct pcbit_dev * dev, struct pcbit_chan* chan,
+void cb_in_2(struct pcbit_dev *dev, struct pcbit_chan *chan,
             struct callb_data *data)
 {
-        unsigned short refnum;
+       unsigned short refnum;
        struct sk_buff *skb;
-        int len;
-        
-        if ((len = capi_conn_active_req(chan, &skb)) < 0) {        
-                printk(KERN_DEBUG "capi_conn_active_req failed\n");
-                return;
-        }
+       int len;
+
+       if ((len = capi_conn_active_req(chan, &skb)) < 0) {
+               printk(KERN_DEBUG "capi_conn_active_req failed\n");
+               return;
+       }
 
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
        printk(KERN_DEBUG "sending MSG_CONN_ACTV_REQ\n");
-        pcbit_l2_write(dev, MSG_CONN_ACTV_REQ, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_CONN_ACTV_REQ, refnum, skb, len);
 }
 
 /*
@@ -213,23 +213,23 @@ void cb_in_2(struct pcbit_dev * dev, struct pcbit_chan* chan,
  *
  */
 
-void cb_in_3(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+void cb_in_3(struct pcbit_dev *dev, struct pcbit_chan *chan,
             struct callb_data *data)
 {
-        unsigned short refnum;
-       struct sk_buff *skb;
+       unsigned short refnum;
+       struct sk_buff *skb;
        int len;
-        
-        if ((len = capi_select_proto_req(chan, &skb, 0 /*incoming*/)) < 0)
-        {
-                printk("capi_select_proto_req failed\n");
-                return;
-        }
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       if ((len = capi_select_proto_req(chan, &skb, 0 /*incoming*/)) < 0)
+       {
+               printk("capi_select_proto_req failed\n");
+               return;
+       }
+
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_SELP_REQ, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_SELP_REQ, refnum, skb, len);
 
 }
 
@@ -239,52 +239,52 @@ void cb_in_3(struct pcbit_dev * dev, struct pcbit_chan* chan,
  * send disconnect resp
  * send msg to user
  */
-void cb_disc_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+void cb_disc_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
               struct callb_data *data)
 {
-       struct sk_buff *skb;
+       struct sk_buff *skb;
        int len;
-        ushort refnum;
-        isdn_ctrl ictl;
-  
-        if ((len = capi_disc_resp(chan, &skb)) < 0) {
-                printk("capi_disc_resp failed\n");
-                return;
-        }
-
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
-
-        pcbit_l2_write(dev, MSG_DISC_RESP, refnum, skb, len);    
-
-        ictl.command = ISDN_STAT_BHUP;
-        ictl.driver=dev->id;
-        ictl.arg=chan->id;
-        dev->dev_if->statcallb(&ictl);
+       ushort refnum;
+       isdn_ctrl ictl;
+
+       if ((len = capi_disc_resp(chan, &skb)) < 0) {
+               printk("capi_disc_resp failed\n");
+               return;
+       }
+
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
+
+       pcbit_l2_write(dev, MSG_DISC_RESP, refnum, skb, len);
+
+       ictl.command = ISDN_STAT_BHUP;
+       ictl.driver = dev->id;
+       ictl.arg = chan->id;
+       dev->dev_if->statcallb(&ictl);
 }
 
-        
+
 /*
  *  User HANGUP on active/call proceeding state
  *  send disc.req
  */
-void cb_disc_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+void cb_disc_2(struct pcbit_dev *dev, struct pcbit_chan *chan,
               struct callb_data *data)
 {
-       struct sk_buff *skb;
+       struct sk_buff *skb;
        int len;
-        ushort refnum;
+       ushort refnum;
 
-        if ((len = capi_disc_req(chan->callref, &skb, CAUSE_NORMAL)) < 0)
-        {
-                printk("capi_disc_req failed\n");
-                return;
-        }
+       if ((len = capi_disc_req(chan->callref, &skb, CAUSE_NORMAL)) < 0)
+       {
+               printk("capi_disc_req failed\n");
+               return;
+       }
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_DISC_REQ, refnum, skb, len);  
+       pcbit_l2_write(dev, MSG_DISC_REQ, refnum, skb, len);
 }
 
 /*
@@ -292,18 +292,18 @@ void cb_disc_2(struct pcbit_dev * dev, struct pcbit_chan* chan,
  *  Problem: when the HL driver sends the disc req itself
  *           LL receives BHUP
  */
-void cb_disc_3(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+void cb_disc_3(struct pcbit_dev *dev, struct pcbit_chan *chan,
               struct callb_data *data)
 {
-        isdn_ctrl ictl;
+       isdn_ctrl ictl;
 
-        ictl.command = ISDN_STAT_BHUP;
-        ictl.driver=dev->id;
-        ictl.arg=chan->id;
-        dev->dev_if->statcallb(&ictl);
+       ictl.command = ISDN_STAT_BHUP;
+       ictl.driver = dev->id;
+       ictl.arg = chan->id;
+       dev->dev_if->statcallb(&ictl);
 }
 
-void cb_notdone(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+void cb_notdone(struct pcbit_dev *dev, struct pcbit_chan *chan,
                struct callb_data *data)
 {
 }
@@ -311,38 +311,35 @@ void cb_notdone(struct pcbit_dev * dev, struct pcbit_chan* chan,
 /*
  * send activate b-chan protocol
  */
-void cb_selp_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
-              struct callb_data *data) 
+void cb_selp_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
+              struct callb_data *data)
 {
-       struct sk_buff *skb;
+       struct sk_buff *skb;
        int len;
-        ushort refnum;
+       ushort refnum;
 
-        if ((len = capi_activate_transp_req(chan, &skb)) < 0)
-        {
-                printk("capi_conn_activate_transp_req failed\n");
-                return;
-        }
+       if ((len = capi_activate_transp_req(chan, &skb)) < 0)
+       {
+               printk("capi_conn_activate_transp_req failed\n");
+               return;
+       }
 
-        refnum = last_ref_num++ & 0x7fffU;
-        chan->s_refnum = refnum;
+       refnum = last_ref_num++ & 0x7fffU;
+       chan->s_refnum = refnum;
 
-        pcbit_l2_write(dev, MSG_ACT_TRANSP_REQ, refnum, skb, len);
+       pcbit_l2_write(dev, MSG_ACT_TRANSP_REQ, refnum, skb, len);
 }
 
 /*
  *  Inform User that the B-channel is available
  */
-void cb_open(struct pcbit_dev * dev, struct pcbit_chan* chan, 
-            struct callb_data *data) 
+void cb_open(struct pcbit_dev *dev, struct pcbit_chan *chan,
+            struct callb_data *data)
 {
-        isdn_ctrl ictl;
+       isdn_ctrl ictl;
 
-        ictl.command = ISDN_STAT_BCONN;
-        ictl.driver=dev->id;
-        ictl.arg=chan->id;
-        dev->dev_if->statcallb(&ictl);
+       ictl.command = ISDN_STAT_BCONN;
+       ictl.driver = dev->id;
+       ictl.arg = chan->id;
+       dev->dev_if->statcallb(&ictl);
 }
-
-
-
index 17aa0f5..a036b4a 100644 (file)
@@ -2,10 +2,10 @@
  * Callbacks prototypes for FSM
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
 #define CALLBACKS_H
 
 
-extern void cb_out_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_out_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
                     struct callb_data *data);
 
-extern void cb_out_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_out_2(struct pcbit_dev *dev, struct pcbit_chan *chan,
                     struct callb_data *data);
 
-extern void cb_in_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_in_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
                    struct callb_data *data);
-extern void cb_in_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_in_2(struct pcbit_dev *dev, struct pcbit_chan *chan,
                    struct callb_data *data);
-extern void cb_in_3(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_in_3(struct pcbit_dev *dev, struct pcbit_chan *chan,
                    struct callb_data *data);
 
-extern void cb_disc_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_disc_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
                      struct callb_data *data);
-extern void cb_disc_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_disc_2(struct pcbit_dev *dev, struct pcbit_chan *chan,
                      struct callb_data *data);
-extern void cb_disc_3(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_disc_3(struct pcbit_dev *dev, struct pcbit_chan *chan,
                      struct callb_data *data);
 
-extern void cb_notdone(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_notdone(struct pcbit_dev *dev, struct pcbit_chan *chan,
                       struct callb_data *data);
 
-extern void cb_selp_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_selp_1(struct pcbit_dev *dev, struct pcbit_chan *chan,
                      struct callb_data *data);
-extern void cb_open(struct pcbit_dev * dev, struct pcbit_chan* chan, 
+extern void cb_open(struct pcbit_dev *dev, struct pcbit_chan *chan,
                    struct callb_data *data);
 
 #endif
-
-
index ac5a91c..4e3cbf8 100644 (file)
@@ -3,10 +3,10 @@
  * Portugal Telecom CAPI 2.0
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  *
  * Not compatible with the AVM Gmbh. CAPI 2.0
  *
  */
 
-int capi_conn_req(const char * calledPN, struct sk_buff **skb, int proto)
+int capi_conn_req(const char *calledPN, struct sk_buff **skb, int proto)
 {
-        ushort len;
-
-        /*
-         * length
-         *   AppInfoMask - 2
-         *   BC0         - 3
-         *   BC1         - 1
-         *   Chan        - 2
-         *   Keypad      - 1
-         *   CPN         - 1
-         *   CPSA        - 1
-         *   CalledPN    - 2 + strlen
-         *   CalledPSA   - 1
-         *   rest...     - 4
-         *   ----------------
-         *   Total        18 + strlen
-         */
-
-        len = 18 + strlen(calledPN);
+       ushort len;
+
+       /*
+        * length
+        *   AppInfoMask - 2
+        *   BC0         - 3
+        *   BC1         - 1
+        *   Chan        - 2
+        *   Keypad      - 1
+        *   CPN         - 1
+        *   CPSA        - 1
+        *   CalledPN    - 2 + strlen
+        *   CalledPSA   - 1
+        *   rest...     - 4
+        *   ----------------
+        *   Total        18 + strlen
+        */
+
+       len = 18 + strlen(calledPN);
 
        if (proto == ISDN_PROTO_L2_TRANS)
                len++;
 
        if ((*skb = dev_alloc_skb(len)) == NULL) {
-    
-               printk(KERN_WARNING "capi_conn_req: alloc_skb failed\n");
+
+               printk(KERN_WARNING "capi_conn_req: alloc_skb failed\n");
                return -1;
        }
 
-        /* InfoElmMask */
-        *((ushort*) skb_put(*skb, 2)) = AppInfoMask; 
+       /* InfoElmMask */
+       *((ushort *)skb_put(*skb, 2)) = AppInfoMask;
 
        if (proto == ISDN_PROTO_L2_TRANS)
        {
@@ -101,162 +101,162 @@ int capi_conn_req(const char * calledPN, struct sk_buff **skb, int proto)
                *(skb_put(*skb, 1)) = 0x90;     /* BC0.Octect4          */
        }
 
-        /* Bearer Capability - Optional*/
-        *(skb_put(*skb, 1)) = 0;        /* BC1.Length = 0                    */
+       /* Bearer Capability - Optional*/
+       *(skb_put(*skb, 1)) = 0;        /* BC1.Length = 0                    */
 
-        *(skb_put(*skb, 1)) = 1;        /* ChannelID.Length = 1              */
-        *(skb_put(*skb, 1)) = 0x83;     /* Basic Interface - Any Channel     */
+       *(skb_put(*skb, 1)) = 1;        /* ChannelID.Length = 1              */
+       *(skb_put(*skb, 1)) = 0x83;     /* Basic Interface - Any Channel     */
 
-        *(skb_put(*skb, 1)) = 0;        /* Keypad.Length = 0                 */
-                  
+       *(skb_put(*skb, 1)) = 0;        /* Keypad.Length = 0                 */
 
-        *(skb_put(*skb, 1)) = 0;        /* CallingPN.Length = 0              */
-        *(skb_put(*skb, 1)) = 0;        /* CallingPSA.Length = 0             */
 
-        /* Called Party Number */
-        *(skb_put(*skb, 1)) = strlen(calledPN) + 1;
-        *(skb_put(*skb, 1)) = 0x81;
-        memcpy(skb_put(*skb, strlen(calledPN)), calledPN, strlen(calledPN));
+       *(skb_put(*skb, 1)) = 0;        /* CallingPN.Length = 0              */
+       *(skb_put(*skb, 1)) = 0;        /* CallingPSA.Length = 0             */
 
-        /* '#' */
+       /* Called Party Number */
+       *(skb_put(*skb, 1)) = strlen(calledPN) + 1;
+       *(skb_put(*skb, 1)) = 0x81;
+       memcpy(skb_put(*skb, strlen(calledPN)), calledPN, strlen(calledPN));
 
-        *(skb_put(*skb, 1)) = 0;       /* CalledPSA.Length = 0     */
+       /* '#' */
 
-        /* LLC.Length  = 0; */
-        /* HLC0.Length = 0; */
-        /* HLC1.Length = 0; */ 
-        /* UTUS.Length = 0; */
-        memset(skb_put(*skb, 4), 0, 4);
+       *(skb_put(*skb, 1)) = 0;       /* CalledPSA.Length = 0     */
 
-        return len;
+       /* LLC.Length  = 0; */
+       /* HLC0.Length = 0; */
+       /* HLC1.Length = 0; */
+       /* UTUS.Length = 0; */
+       memset(skb_put(*skb, 4), 0, 4);
+
+       return len;
 }
 
-int capi_conn_resp(struct pcbit_chanchan, struct sk_buff **skb)
+int capi_conn_resp(struct pcbit_chan *chan, struct sk_buff **skb)
 {
-        
+
        if ((*skb = dev_alloc_skb(5)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_conn_resp: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = chan->callref;  
-        *(skb_put(*skb, 1)) = 0x01;  /* ACCEPT_CALL */
-        *(skb_put(*skb, 1)) = 0;
-        *(skb_put(*skb, 1)) = 0;
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
+       *(skb_put(*skb, 1)) = 0x01;  /* ACCEPT_CALL */
+       *(skb_put(*skb, 1)) = 0;
+       *(skb_put(*skb, 1)) = 0;
 
-        return 5;
+       return 5;
 }
 
-int capi_conn_active_req(struct pcbit_chanchan, struct sk_buff **skb)
+int capi_conn_active_req(struct pcbit_chan *chan, struct sk_buff **skb)
 {
-        /*
-         * 8 bytes
-         */
-        
+       /*
+        * 8 bytes
+        */
+
        if ((*skb = dev_alloc_skb(8)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_conn_active_req: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = chan->callref;  
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
 
 #ifdef DEBUG
-       printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref); 
+       printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref);
 #endif
 
-        *(skb_put(*skb, 1)) = 0;       /*  BC.Length = 0;          */
-        *(skb_put(*skb, 1)) = 0;       /*  ConnectedPN.Length = 0  */
-        *(skb_put(*skb, 1)) = 0;       /*  PSA.Length              */
-        *(skb_put(*skb, 1)) = 0;       /*  LLC.Length = 0;         */
-        *(skb_put(*skb, 1)) = 0;       /*  HLC.Length = 0;         */
-        *(skb_put(*skb, 1)) = 0;       /*  UTUS.Length = 0;        */
+       *(skb_put(*skb, 1)) = 0;       /*  BC.Length = 0;          */
+       *(skb_put(*skb, 1)) = 0;       /*  ConnectedPN.Length = 0  */
+       *(skb_put(*skb, 1)) = 0;       /*  PSA.Length              */
+       *(skb_put(*skb, 1)) = 0;       /*  LLC.Length = 0;         */
+       *(skb_put(*skb, 1)) = 0;       /*  HLC.Length = 0;         */
+       *(skb_put(*skb, 1)) = 0;       /*  UTUS.Length = 0;        */
 
        return 8;
 }
 
-int capi_conn_active_resp(struct pcbit_chanchan, struct sk_buff **skb)
+int capi_conn_active_resp(struct pcbit_chan *chan, struct sk_buff **skb)
 {
-        /*
-         * 2 bytes
-         */
-  
+       /*
+        * 2 bytes
+        */
+
        if ((*skb = dev_alloc_skb(2)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_conn_active_resp: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = chan->callref;  
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
 
-        return 2;
+       return 2;
 }
 
 
-int capi_select_proto_req(struct pcbit_chan *chan, struct sk_buff **skb, 
-                          int outgoing)
+int capi_select_proto_req(struct pcbit_chan *chan, struct sk_buff **skb,
+                         int outgoing)
 {
 
-        /*
-         * 18 bytes
-         */
+       /*
+        * 18 bytes
+        */
 
        if ((*skb = dev_alloc_skb(18)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_select_proto_req: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = chan->callref;  
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
 
-        /* Layer2 protocol */
+       /* Layer2 protocol */
 
-        switch (chan->proto) {
-        case ISDN_PROTO_L2_X75I: 
-                *(skb_put(*skb, 1)) = 0x05;            /* LAPB */
-                break;
-        case ISDN_PROTO_L2_HDLC:
-                *(skb_put(*skb, 1)) = 0x02;
-                break;
+       switch (chan->proto) {
+       case ISDN_PROTO_L2_X75I:
+               *(skb_put(*skb, 1)) = 0x05;            /* LAPB */
+               break;
+       case ISDN_PROTO_L2_HDLC:
+               *(skb_put(*skb, 1)) = 0x02;
+               break;
        case ISDN_PROTO_L2_TRANS:
-               /* 
+               /*
                 *      Voice (a-law)
                 */
                *(skb_put(*skb, 1)) = 0x06;
                break;
-        default:
-#ifdef DEBUG 
-                printk(KERN_DEBUG "Transparent\n");
+       default:
+#ifdef DEBUG
+               printk(KERN_DEBUG "Transparent\n");
 #endif
-                *(skb_put(*skb, 1)) = 0x03;
-                break;
-        }
-
-        *(skb_put(*skb, 1)) = (outgoing ? 0x02 : 0x42);    /* Don't ask */
-        *(skb_put(*skb, 1)) = 0x00;
-  
-        *((ushort *) skb_put(*skb, 2)) = MRU;
-
-        *(skb_put(*skb, 1)) = 0x08;           /* Modulo */
-        *(skb_put(*skb, 1)) = 0x07;           /* Max Window */
-  
-        *(skb_put(*skb, 1)) = 0x01;           /* No Layer3 Protocol */
-
-        /*
-         * 2 - layer3 MTU       [10]
-         *   - Modulo           [12]
-         *   - Window           
-         *   - layer1 proto     [14]
-         *   - bitrate
-         *   - sub-channel      [16]
-         *   - layer1dataformat [17]
-         */
-
-        memset(skb_put(*skb, 8), 0, 8);
-
-        return 18;
+               *(skb_put(*skb, 1)) = 0x03;
+               break;
+       }
+
+       *(skb_put(*skb, 1)) = (outgoing ? 0x02 : 0x42);    /* Don't ask */
+       *(skb_put(*skb, 1)) = 0x00;
+
+       *((ushort *) skb_put(*skb, 2)) = MRU;
+
+
+       *(skb_put(*skb, 1)) = 0x08;           /* Modulo */
+       *(skb_put(*skb, 1)) = 0x07;           /* Max Window */
+
+       *(skb_put(*skb, 1)) = 0x01;           /* No Layer3 Protocol */
+
+       /*
+        * 2 - layer3 MTU       [10]
+        *   - Modulo           [12]
+        *   - Window
+        *   - layer1 proto     [14]
+        *   - bitrate
+        *   - sub-channel      [16]
+        *   - layer1dataformat [17]
+        */
+
+       memset(skb_put(*skb, 8), 0, 8);
+
+       return 18;
 }
 
 
@@ -264,45 +264,45 @@ int capi_activate_transp_req(struct pcbit_chan *chan, struct sk_buff **skb)
 {
 
        if ((*skb = dev_alloc_skb(7)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_activate_transp_req: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = chan->callref;  
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
 
-        
-        *(skb_put(*skb, 1)) = chan->layer2link; /* Layer2 id */
-        *(skb_put(*skb, 1)) = 0x00;             /* Transmit by default */
 
-        *((ushort *) skb_put(*skb, 2)) = MRU;
+       *(skb_put(*skb, 1)) = chan->layer2link; /* Layer2 id */
+       *(skb_put(*skb, 1)) = 0x00;             /* Transmit by default */
 
-        *(skb_put(*skb, 1)) = 0x01;             /* Enables reception*/
+       *((ushort *) skb_put(*skb, 2)) = MRU;
 
-        return 7;
+       *(skb_put(*skb, 1)) = 0x01;             /* Enables reception*/
+
+       return 7;
 }
 
-int capi_tdata_req(struct pcbit_chanchan, struct sk_buff *skb)
+int capi_tdata_req(struct pcbit_chan *chan, struct sk_buff *skb)
 {
        ushort data_len;
-       
 
-       /*  
-        * callref      - 2  
+
+       /*
+        * callref      - 2
         * layer2link   - 1
-        * wBlockLength - 2 
+        * wBlockLength - 2
         * data         - 4
         * sernum       - 1
         */
-       
+
        data_len = skb->len;
 
-       if(skb_headroom(skb) < 10)
+       if (skb_headroom(skb) < 10)
        {
                printk(KERN_CRIT "No headspace (%u) on headroom %p for capi header\n", skb_headroom(skb), skb);
        }
        else
-       {       
+       {
                skb_push(skb, 10);
        }
 
@@ -318,58 +318,58 @@ int capi_tdata_req(struct pcbit_chan* chan, struct sk_buff *skb)
        return 10;
 }
 
-int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff ** skb)
-                   
+int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff **skb)
+
 {
        if ((*skb = dev_alloc_skb(4)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_tdata_resp: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = chan->callref;  
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
 
-        *(skb_put(*skb, 1)) = chan->layer2link;
-        *(skb_put(*skb, 1)) = chan->r_refnum;
+       *(skb_put(*skb, 1)) = chan->layer2link;
+       *(skb_put(*skb, 1)) = chan->r_refnum;
 
-        return (*skb)->len;
+       return (*skb)->len;
 }
 
 int capi_disc_req(ushort callref, struct sk_buff **skb, u_char cause)
 {
 
        if ((*skb = dev_alloc_skb(6)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_disc_req: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2) ) = callref;  
+       *((ushort *)skb_put(*skb, 2)) = callref;
 
-        *(skb_put(*skb, 1)) = 2;                  /* Cause.Length = 2; */
-        *(skb_put(*skb, 1)) = 0x80;
-        *(skb_put(*skb, 1)) = 0x80 | cause;           
+       *(skb_put(*skb, 1)) = 2;                  /* Cause.Length = 2; */
+       *(skb_put(*skb, 1)) = 0x80;
+       *(skb_put(*skb, 1)) = 0x80 | cause;
 
-        /* 
-         * Change it: we should send 'Sic transit gloria Mundi' here ;-) 
-         */
+       /*
+        * Change it: we should send 'Sic transit gloria Mundi' here ;-)
+        */
 
-        *(skb_put(*skb, 1)) = 0;                   /* UTUS.Length = 0;  */
+       *(skb_put(*skb, 1)) = 0;                   /* UTUS.Length = 0;  */
 
-        return 6;
+       return 6;
 }
 
 int capi_disc_resp(struct pcbit_chan *chan, struct sk_buff **skb)
 {
        if ((*skb = dev_alloc_skb(2)) == NULL) {
-    
+
                printk(KERN_WARNING "capi_disc_resp: alloc_skb failed\n");
                return -1;
        }
 
-        *((ushort*) skb_put(*skb, 2)) = chan->callref;  
+       *((ushort *)skb_put(*skb, 2)) = chan->callref;
 
-        return 2;
+       return 2;
 }
 
 
@@ -378,57 +378,57 @@ int capi_disc_resp(struct pcbit_chan *chan, struct sk_buff **skb)
  *
  */
 
-int capi_decode_conn_ind(struct pcbit_chan * chan, 
-                         struct sk_buff *skb,
-                         struct callb_data *info) 
+int capi_decode_conn_ind(struct pcbit_chan *chan,
+                        struct sk_buff *skb,
+                        struct callb_data *info)
 {
-        int CIlen, len;
+       int CIlen, len;
 
-        /* Call Reference [CAPI] */
-        chan->callref = *((ushort*) skb->data);
-        skb_pull(skb, 2);
+       /* Call Reference [CAPI] */
+       chan->callref = *((ushort *)skb->data);
+       skb_pull(skb, 2);
 
 #ifdef DEBUG
-       printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref); 
+       printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref);
 #endif
 
-        /* Channel Identification */
+       /* Channel Identification */
 
-        /* Expect  
-           Len = 1 
-           Octect 3 = 0100 10CC - [ 7 Basic, 4 , 2-1 chan ]
-           */
+       /* Expect
+          Len = 1
+          Octect 3 = 0100 10CC - [ 7 Basic, 4 , 2-1 chan ]
+       */
 
-        CIlen = skb->data[0];
+       CIlen = skb->data[0];
 #ifdef DEBUG
-        if (CIlen == 1) {
+       if (CIlen == 1) {
 
-                if ( ((skb->data[1]) & 0xFC) == 0x48 )
-                        printk(KERN_DEBUG "decode_conn_ind: chan ok\n");
-                printk(KERN_DEBUG "phyChan = %d\n", skb->data[1] & 0x03); 
-        }
+               if (((skb->data[1]) & 0xFC) == 0x48)
+                       printk(KERN_DEBUG "decode_conn_ind: chan ok\n");
+               printk(KERN_DEBUG "phyChan = %d\n", skb->data[1] & 0x03);
+       }
        else
                printk(KERN_DEBUG "conn_ind: CIlen = %d\n", CIlen);
 #endif
-        skb_pull(skb, CIlen + 1);
+       skb_pull(skb, CIlen + 1);
 
-        /* Calling Party Number */
-        /* An "additional service" as far as Portugal Telecom is concerned */
+       /* Calling Party Number */
+       /* An "additional service" as far as Portugal Telecom is concerned */
 
-        len = skb->data[0];
+       len = skb->data[0];
 
        if (len > 0) {
                int count = 1;
-               
+
 #ifdef DEBUG
                printk(KERN_DEBUG "CPN: Octect 3 %02x\n", skb->data[1]);
 #endif
                if ((skb->data[1] & 0x80) == 0)
                        count = 2;
-               
+
                if (!(info->data.setup.CallingPN = kmalloc(len - count + 1, GFP_ATOMIC)))
                        return -1;
-       
+
                skb_copy_from_linear_data_offset(skb, count + 1,
                                                 info->data.setup.CallingPN,
                                                 len - count);
@@ -442,22 +442,22 @@ int capi_decode_conn_ind(struct pcbit_chan * chan,
 
        skb_pull(skb, len + 1);
 
-        /* Calling Party Subaddress */
-        skb_pull(skb, skb->data[0] + 1);
+       /* Calling Party Subaddress */
+       skb_pull(skb, skb->data[0] + 1);
 
-        /* Called Party Number */
+       /* Called Party Number */
 
-        len = skb->data[0];
+       len = skb->data[0];
 
        if (len > 0) {
                int count = 1;
-               
+
                if ((skb->data[1] & 0x80) == 0)
                        count = 2;
-        
+
                if (!(info->data.setup.CalledPN = kmalloc(len - count + 1, GFP_ATOMIC)))
                        return -1;
-        
+
                skb_copy_from_linear_data_offset(skb, count + 1,
                                                 info->data.setup.CalledPN,
                                                 len - count);
@@ -471,73 +471,73 @@ int capi_decode_conn_ind(struct pcbit_chan * chan,
 
        skb_pull(skb, len + 1);
 
-        /* Called Party Subaddress */
-        skb_pull(skb, skb->data[0] + 1);
+       /* Called Party Subaddress */
+       skb_pull(skb, skb->data[0] + 1);
 
-        /* LLC */
-        skb_pull(skb, skb->data[0] + 1);
+       /* LLC */
+       skb_pull(skb, skb->data[0] + 1);
 
-        /* HLC */
-        skb_pull(skb, skb->data[0] + 1);
+       /* HLC */
+       skb_pull(skb, skb->data[0] + 1);
 
-        /* U2U */
-        skb_pull(skb, skb->data[0] + 1);
+       /* U2U */
+       skb_pull(skb, skb->data[0] + 1);
 
-        return 0;
+       return 0;
 }
 
 /*
  *  returns errcode
  */
 
-int capi_decode_conn_conf(struct pcbit_chan * chan, struct sk_buff *skb,
-                         int *complete) 
+int capi_decode_conn_conf(struct pcbit_chan *chan, struct sk_buff *skb,
+                         int *complete)
 {
-        int errcode;
-  
-        chan->callref = *((ushort *) skb->data);     /* Update CallReference */
-        skb_pull(skb, 2);
+       int errcode;
+
+       chan->callref = *((ushort *)skb->data);     /* Update CallReference */
+       skb_pull(skb, 2);
+
+       errcode = *((ushort *) skb->data);   /* read errcode */
+       skb_pull(skb, 2);
 
-        errcode = *((ushort *) skb->data);   /* read errcode */
-        skb_pull(skb, 2);
+       *complete = *(skb->data);
+       skb_pull(skb, 1);
 
-        *complete = *(skb->data);
-        skb_pull(skb, 1);
+       /* FIX ME */
+       /* This is actually a firmware bug */
+       if (!*complete)
+       {
+               printk(KERN_DEBUG "complete=%02x\n", *complete);
+               *complete = 1;
+       }
 
-        /* FIX ME */
-        /* This is actually a firmware bug */
-        if (!*complete)
-        {
-                printk(KERN_DEBUG "complete=%02x\n", *complete);
-                *complete = 1;
-        }
 
+       /* Optional Bearer Capability */
+       skb_pull(skb, *(skb->data) + 1);
 
-        /* Optional Bearer Capability */
-        skb_pull(skb, *(skb->data) + 1);
-        
-        /* Channel Identification */
-        skb_pull(skb, *(skb->data) + 1);
+       /* Channel Identification */
+       skb_pull(skb, *(skb->data) + 1);
 
-        /* High Layer Compatibility follows */
-        skb_pull(skb, *(skb->data) + 1);
+       /* High Layer Compatibility follows */
+       skb_pull(skb, *(skb->data) + 1);
 
-        return errcode;
+       return errcode;
 }
 
-int capi_decode_conn_actv_ind(struct pcbit_chan * chan, struct sk_buff *skb)
+int capi_decode_conn_actv_ind(struct pcbit_chan *chan, struct sk_buff *skb)
 {
-        ushort len;
+       ushort len;
 #ifdef DEBUG
-        char str[32];
+       char str[32];
 #endif
 
-        /* Yet Another Bearer Capability */
-        skb_pull(skb, *(skb->data) + 1);
-  
+       /* Yet Another Bearer Capability */
+       skb_pull(skb, *(skb->data) + 1);
 
-        /* Connected Party Number */
-        len=*(skb->data);
+
+       /* Connected Party Number */
+       len = *(skb->data);
 
 #ifdef DEBUG
        if (len > 1 && len < 31) {
@@ -549,106 +549,101 @@ int capi_decode_conn_actv_ind(struct pcbit_chan * chan, struct sk_buff *skb)
                printk(KERN_DEBUG "actv_ind CPN len = %d\n", len);
 #endif
 
-        skb_pull(skb, len + 1);
+       skb_pull(skb, len + 1);
 
-        /* Connected Subaddress */
-        skb_pull(skb, *(skb->data) + 1);
+       /* Connected Subaddress */
+       skb_pull(skb, *(skb->data) + 1);
 
-        /* Low Layer Capability */
-        skb_pull(skb, *(skb->data) + 1);
+       /* Low Layer Capability */
+       skb_pull(skb, *(skb->data) + 1);
 
-        /* High Layer Capability */
-        skb_pull(skb, *(skb->data) + 1);
+       /* High Layer Capability */
+       skb_pull(skb, *(skb->data) + 1);
 
-        return 0;
+       return 0;
 }
 
-int capi_decode_conn_actv_conf(struct pcbit_chan * chan, struct sk_buff *skb)
+int capi_decode_conn_actv_conf(struct pcbit_chan *chan, struct sk_buff *skb)
 {
-        ushort errcode;
-
-        errcode = *((ushort*) skb->data);
-        skb_pull(skb, 2);
-        
-        /* Channel Identification 
-        skb_pull(skb, skb->data[0] + 1);
-        */
-        return errcode;
+       ushort errcode;
+
+       errcode = *((ushort *)skb->data);
+       skb_pull(skb, 2);
+
+       /* Channel Identification
+          skb_pull(skb, skb->data[0] + 1);
+       */
+       return errcode;
 }
 
 
 int capi_decode_sel_proto_conf(struct pcbit_chan *chan, struct sk_buff *skb)
 {
-        ushort errcode;
-        
-        chan->layer2link = *(skb->data);
-        skb_pull(skb, 1);
+       ushort errcode;
 
-        errcode = *((ushort*) skb->data);
-        skb_pull(skb, 2);
+       chan->layer2link = *(skb->data);
+       skb_pull(skb, 1);
 
-        return errcode;
+       errcode = *((ushort *)skb->data);
+       skb_pull(skb, 2);
+
+       return errcode;
 }
 
 int capi_decode_actv_trans_conf(struct pcbit_chan *chan, struct sk_buff *skb)
 {
-        ushort errcode;
+       ushort errcode;
 
-        if (chan->layer2link != *(skb->data) )
-                printk("capi_decode_actv_trans_conf: layer2link doesn't match\n");
+       if (chan->layer2link != *(skb->data))
+               printk("capi_decode_actv_trans_conf: layer2link doesn't match\n");
 
-        skb_pull(skb, 1);
+       skb_pull(skb, 1);
 
-        errcode = *((ushort*) skb->data);
-        skb_pull(skb, 2);
+       errcode = *((ushort *)skb->data);
+       skb_pull(skb, 2);
 
-        return errcode;        
+       return errcode;
 }
 
 int capi_decode_disc_ind(struct pcbit_chan *chan, struct sk_buff *skb)
 {
-        ushort len;
+       ushort len;
 #ifdef DEBUG
-        int i;
+       int i;
 #endif
-        /* Cause */
-        
-        len = *(skb->data);
-        skb_pull(skb, 1);
+       /* Cause */
+
+       len = *(skb->data);
+       skb_pull(skb, 1);
 
 #ifdef DEBUG
 
-        for (i=0; i<len; i++)
-                printk(KERN_DEBUG "Cause Octect %d: %02x\n", i+3, 
-                       *(skb->data + i));
+       for (i = 0; i < len; i++)
+               printk(KERN_DEBUG "Cause Octect %d: %02x\n", i + 3,
+                      *(skb->data + i));
 #endif
 
-        skb_pull(skb, len);
+       skb_pull(skb, len);
 
-        return 0;
+       return 0;
 }
 
 #ifdef DEBUG
 int capi_decode_debug_188(u_char *hdr, ushort hdrlen)
 {
-        char str[64];
-        int len;
-        
-        len = hdr[0];
-
-        if (len < 64 && len == hdrlen - 1) {        
-                memcpy(str, hdr + 1, hdrlen - 1);
-                str[hdrlen - 1] = 0;
-                printk("%s\n", str);
-        }
-        else
-                printk("debug message incorrect\n");
-
-        return 0;
-}
-#endif
-
-
+       char str[64];
+       int len;
 
+       len = hdr[0];
 
+       if (len < 64 && len == hdrlen - 1) {
+               memcpy(str, hdr + 1, hdrlen - 1);
+               str[hdrlen - 1] = 0;
+               printk("%s\n", str);
+       }
+       else
+               printk("debug message incorrect\n");
 
+       return 0;
+}
+#endif
index df8e73c..635f634 100644 (file)
@@ -2,10 +2,10 @@
  * CAPI encode/decode prototypes and defines
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
 
 #define REQ_CAUSE         0x01
 #define REQ_DISPLAY       0x04
-#define REQ_USER_TO_USER  0x08 
+#define REQ_USER_TO_USER  0x08
 
-#define AppInfoMask  REQ_CAUSE|REQ_DISPLAY|REQ_USER_TO_USER 
+#define AppInfoMask  REQ_CAUSE | REQ_DISPLAY | REQ_USER_TO_USER
 
 /* Connection Setup */
-extern int capi_conn_req(const char * calledPN, struct sk_buff **buf,
+extern int capi_conn_req(const char *calledPN, struct sk_buff **buf,
                         int proto);
-extern int capi_decode_conn_conf(struct pcbit_chan * chan, struct sk_buff *skb,
-                                int *complete); 
+extern int capi_decode_conn_conf(struct pcbit_chan *chan, struct sk_buff *skb,
+                                int *complete);
 
-extern int capi_decode_conn_ind(struct pcbit_chan * chan, struct sk_buff *skb,
+extern int capi_decode_conn_ind(struct pcbit_chan *chan, struct sk_buff *skb,
                                struct callb_data *info);
-extern int capi_conn_resp(struct pcbit_chanchan, struct sk_buff **skb);
+extern int capi_conn_resp(struct pcbit_chan *chan, struct sk_buff **skb);
 
-extern int capi_conn_active_req(struct pcbit_chanchan, struct sk_buff **skb);
-extern int capi_decode_conn_actv_conf(struct pcbit_chan * chan, 
+extern int capi_conn_active_req(struct pcbit_chan *chan, struct sk_buff **skb);
+extern int capi_decode_conn_actv_conf(struct pcbit_chan *chan,
                                      struct sk_buff *skb);
 
-extern int capi_decode_conn_actv_ind(struct pcbit_chan * chan, 
+extern int capi_decode_conn_actv_ind(struct pcbit_chan *chan,
                                     struct sk_buff *skb);
-extern int capi_conn_active_resp(struct pcbit_chan* chan, 
+extern int capi_conn_active_resp(struct pcbit_chan *chan,
                                 struct sk_buff **skb);
 
 /* Data */
 extern int capi_select_proto_req(struct pcbit_chan *chan, struct sk_buff **skb,
                                 int outgoing);
-extern int capi_decode_sel_proto_conf(struct pcbit_chan *chan, 
+extern int capi_decode_sel_proto_conf(struct pcbit_chan *chan,
                                      struct sk_buff *skb);
 
-extern int capi_activate_transp_req(struct pcbit_chan *chan, 
+extern int capi_activate_transp_req(struct pcbit_chan *chan,
                                    struct sk_buff **skb);
-extern int capi_decode_actv_trans_conf(struct pcbit_chan *chan, 
+extern int capi_decode_actv_trans_conf(struct pcbit_chan *chan,
                                       struct sk_buff *skb);
 
-extern int capi_tdata_req(struct pcbit_chanchan, struct sk_buff *skb);
-extern int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff ** skb);
+extern int capi_tdata_req(struct pcbit_chan *chan, struct sk_buff *skb);
+extern int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff **skb);
 
 /* Connection Termination */
 extern int capi_disc_req(ushort callref, struct sk_buff **skb, u_char cause);
@@ -62,12 +62,12 @@ extern int capi_disc_resp(struct pcbit_chan *chan, struct sk_buff **skb);
 extern int capi_decode_debug_188(u_char *hdr, ushort hdrlen);
 #endif
 
-static inline struct pcbit_chan * 
+static inline struct pcbit_chan *
 capi_channel(struct pcbit_dev *dev, struct sk_buff *skb)
 {
        ushort callref;
 
-       callref = *((ushort*) skb->data);
+       callref = *((ushort *)skb->data);
        skb_pull(skb, 2);
 
        if (dev->b1->callref == callref)
@@ -79,9 +79,3 @@ capi_channel(struct pcbit_dev *dev, struct sk_buff *skb)
 }
 
 #endif
-
-
-
-
-
-
index 1507d2e..1eaf622 100644 (file)
@@ -2,10 +2,10 @@
  * PCBIT-D interface with isdn4linux
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
@@ -14,7 +14,7 @@
  *
  *     Nuno Grilo      <l38486@alfa.ist.utl.pt>
  *      fixed msn_list NULL pointer dereference.
- *             
+ *
  */
 
 #include <linux/module.h>
@@ -43,9 +43,9 @@
 
 extern ushort last_ref_num;
 
-static int pcbit_ioctl(isdn_ctrlctl);
+static int pcbit_ioctl(isdn_ctrl *ctl);
 
-static charpcbit_devname[MAX_PCBIT_CARDS] = {
+static char *pcbit_devname[MAX_PCBIT_CARDS] = {
        "pcbit0",
        "pcbit1",
        "pcbit2",
@@ -56,12 +56,12 @@ static char* pcbit_devname[MAX_PCBIT_CARDS] = {
  * prototypes
  */
 
-static int pcbit_command(isdn_ctrlctl);
-static int pcbit_stat(u_char __user * buf, int len, int, int);
+static int pcbit_command(isdn_ctrl *ctl);
+static int pcbit_stat(u_char __user *buf, int len, int, int);
 static int pcbit_xmit(int driver, int chan, int ack, struct sk_buff *skb);
 static int pcbit_writecmd(const u_char __user *, int, int, int);
 
-static int set_protocol_running(struct pcbit_dev * dev);
+static int set_protocol_running(struct pcbit_dev *dev);
 
 static void pcbit_clear_msn(struct pcbit_dev *dev);
 static void pcbit_set_msn(struct pcbit_dev *dev, char *list);
@@ -73,7 +73,7 @@ int pcbit_init_dev(int board, int mem_base, int irq)
        struct pcbit_dev *dev;
        isdn_if *dev_if;
 
-       if ((dev=kzalloc(sizeof(struct pcbit_dev), GFP_KERNEL)) == NULL)
+       if ((dev = kzalloc(sizeof(struct pcbit_dev), GFP_KERNEL)) == NULL)
        {
                printk("pcbit_init: couldn't malloc pcbit_dev struct\n");
                return -ENOMEM;
@@ -83,19 +83,19 @@ int pcbit_init_dev(int board, int mem_base, int irq)
        init_waitqueue_head(&dev->set_running_wq);
        spin_lock_init(&dev->lock);
 
-       if (mem_base >= 0xA0000 && mem_base <= 0xFFFFF ) {
+       if (mem_base >= 0xA0000 && mem_base <= 0xFFFFF) {
                dev->ph_mem = mem_base;
                if (!request_mem_region(dev->ph_mem, 4096, "PCBIT mem")) {
                        printk(KERN_WARNING
-                               "PCBIT: memory region %lx-%lx already in use\n",
-                               dev->ph_mem, dev->ph_mem + 4096);
+                              "PCBIT: memory region %lx-%lx already in use\n",
+                              dev->ph_mem, dev->ph_mem + 4096);
                        kfree(dev);
                        dev_pcbit[board] = NULL;
                        return -EACCES;
                }
                dev->sh_mem = ioremap(dev->ph_mem, 4096);
        }
-       else 
+       else
        {
                printk("memory address invalid");
                kfree(dev);
@@ -111,7 +111,7 @@ int pcbit_init_dev(int board, int mem_base, int irq)
                kfree(dev);
                return -ENOMEM;
        }
-    
+
        dev->b2 = kzalloc(sizeof(struct pcbit_chan), GFP_KERNEL);
        if (!dev->b2) {
                printk("pcbit_init: couldn't malloc pcbit_chan struct\n");
@@ -130,7 +130,7 @@ int pcbit_init_dev(int board, int mem_base, int irq)
         *  interrupts
         */
 
-       if (request_irq(irq, &pcbit_irq_handler, 0, pcbit_devname[board], dev) != 0) 
+       if (request_irq(irq, &pcbit_irq_handler, 0, pcbit_devname[board], dev) != 0)
        {
                kfree(dev->b1);
                kfree(dev->b2);
@@ -168,16 +168,16 @@ int pcbit_init_dev(int board, int mem_base, int irq)
        dev_if->owner = THIS_MODULE;
 
        dev_if->channels = 2;
-       
-       dev_if->features = (ISDN_FEATURE_P_EURO  | ISDN_FEATURE_L3_TRANS | 
-                           ISDN_FEATURE_L2_HDLC | ISDN_FEATURE_L2_TRANS );
+
+       dev_if->features = (ISDN_FEATURE_P_EURO  | ISDN_FEATURE_L3_TRANS |
+                           ISDN_FEATURE_L2_HDLC | ISDN_FEATURE_L2_TRANS);
 
        dev_if->writebuf_skb = pcbit_xmit;
        dev_if->hl_hdrlen = 16;
 
        dev_if->maxbufsize = MAXBUFSIZE;
        dev_if->command  = pcbit_command;
-       
+
        dev_if->writecmd = pcbit_writecmd;
        dev_if->readstat = pcbit_stat;
 
@@ -211,12 +211,12 @@ int pcbit_init_dev(int board, int mem_base, int irq)
 #ifdef MODULE
 void pcbit_terminate(int board)
 {
-       struct pcbit_dev * dev;
+       struct pcbit_dev *dev;
 
        dev = dev_pcbit[board];
 
        if (dev) {
-            /* unregister_isdn(dev->dev_if); */
+               /* unregister_isdn(dev->dev_if); */
                free_irq(dev->irq, dev);
                pcbit_clear_msn(dev);
                kfree(dev->dev_if);
@@ -233,9 +233,9 @@ void pcbit_terminate(int board)
 }
 #endif
 
-static int pcbit_command(isdn_ctrlctl)
+static int pcbit_command(isdn_ctrl *ctl)
 {
-       struct pcbit_dev  *dev;
+       struct pcbit_dev *dev;
        struct pcbit_chan *chan;
        struct callb_data info;
 
@@ -250,7 +250,7 @@ static int pcbit_command(isdn_ctrl* ctl)
        chan = (ctl->arg & 0x0F) ? dev->b2 : dev->b1;
 
 
-       switch(ctl->command) {
+       switch (ctl->command) {
        case ISDN_CMD_IOCTL:
                return pcbit_ioctl(ctl);
                break;
@@ -299,10 +299,10 @@ static int pcbit_command(isdn_ctrl* ctl)
 static void pcbit_block_timer(unsigned long data)
 {
        struct pcbit_chan *chan;
-       struct pcbit_dev * dev;
+       struct pcbit_dev *dev;
        isdn_ctrl ictl;
 
-       chan = (struct pcbit_chan *) data;
+       chan = (struct pcbit_chan *)data;
 
        dev = chan2dev(chan);
 
@@ -316,12 +316,12 @@ static void pcbit_block_timer(unsigned long data)
 
 #ifdef DEBUG
        printk(KERN_DEBUG "pcbit_block_timer\n");
-#endif 
+#endif
        chan->queued = 0;
        ictl.driver = dev->id;
        ictl.command = ISDN_STAT_BSENT;
        ictl.arg = chan->id;
-       dev->dev_if->statcallb(&ictl);     
+       dev->dev_if->statcallb(&ictl);
 }
 #endif
 
@@ -329,7 +329,7 @@ static int pcbit_xmit(int driver, int chnum, int ack, struct sk_buff *skb)
 {
        ushort hdrlen;
        int refnum, len;
-       struct pcbit_chan * chan;
+       struct pcbit_chan *chan;
        struct pcbit_dev *dev;
 
        dev = finddev(driver);
@@ -345,10 +345,10 @@ static int pcbit_xmit(int driver, int chnum, int ack, struct sk_buff *skb)
        if (chan->fsm_state != ST_ACTIVE)
                return -1;
 
-       if (chan->queued >= MAX_QUEUED )
+       if (chan->queued >= MAX_QUEUED)
        {
 #ifdef DEBUG_QUEUE
-               printk(KERN_DEBUG 
+               printk(KERN_DEBUG
                       "pcbit: %d packets already in queue - write fails\n",
                       chan->queued);
 #endif
@@ -365,14 +365,14 @@ static int pcbit_xmit(int driver, int chnum, int ack, struct sk_buff *skb)
                        chan->block_timer.expires = jiffies + 1 * HZ;
                        add_timer(&chan->block_timer);
                }
-#endif         
-               return 0;                        
+#endif
+               return 0;
        }
 
 
        chan->queued++;
-       
-        len = skb->len;
+
+       len = skb->len;
 
        hdrlen = capi_tdata_req(chan, skb);
 
@@ -386,10 +386,10 @@ static int pcbit_xmit(int driver, int chnum, int ack, struct sk_buff *skb)
 
 static int pcbit_writecmd(const u_char __user *buf, int len, int driver, int channel)
 {
-       struct pcbit_dev * dev;
+       struct pcbit_dev *dev;
        int i, j;
-       const u_char * loadbuf;
-       u_char * ptr = NULL;
+       const u_char *loadbuf;
+       u_char *ptr = NULL;
        u_char *cbuf;
 
        int errstat;
@@ -402,7 +402,7 @@ static int pcbit_writecmd(const u_char __user *buf, int len, int driver, int cha
                return -ENODEV;
        }
 
-       switch(dev->l2_state) {
+       switch (dev->l2_state) {
        case L2_LWMODE:
                /* check (size <= rdp_size); write buf into board */
                if (len < 0 || len > BANK4 + 1 || len > 1024)
@@ -422,19 +422,19 @@ static int pcbit_writecmd(const u_char __user *buf, int len, int driver, int cha
                /* this is the hard part */
                /* dumb board */
                /* get it into kernel space */
-               if ((ptr = kmalloc(len, GFP_KERNEL))==NULL)
+               if ((ptr = kmalloc(len, GFP_KERNEL)) == NULL)
                        return -ENOMEM;
                if (copy_from_user(ptr, buf, len)) {
                        kfree(ptr);
                        return -EFAULT;
                }
                loadbuf = ptr;
-    
+
                errstat = 0;
 
-               for (i=0; i < len; i++)
+               for (i = 0; i < len; i++)
                {
-                       for(j=0; j < LOAD_RETRY; j++)
+                       for (j = 0; j < LOAD_RETRY; j++)
                                if (!(readb(dev->sh_mem + dev->loadptr)))
                                        break;
 
@@ -464,9 +464,9 @@ static int pcbit_writecmd(const u_char __user *buf, int len, int driver, int cha
  *
  */
 
-void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg, 
-                            struct sk_buff * skb,
-                            ushort hdr_len, ushort refnum)
+void pcbit_l3_receive(struct pcbit_dev *dev, ulong msg,
+                     struct sk_buff *skb,
+                     ushort hdr_len, ushort refnum)
 {
        struct pcbit_chan *chan;
        struct sk_buff *skb2;
@@ -475,11 +475,11 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
        int complete, err;
        isdn_ctrl ictl;
 
-       switch(msg) {
+       switch (msg) {
 
        case MSG_TDATA_IND:
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
@@ -488,30 +488,30 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
 
                dev->dev_if->rcvcallb_skb(dev->id, chan->id, skb);
 
-               if (capi_tdata_resp(chan, &skb2) > 0) 
-                       pcbit_l2_write(dev, MSG_TDATA_RESP, refnum, 
+               if (capi_tdata_resp(chan, &skb2) > 0)
+                       pcbit_l2_write(dev, MSG_TDATA_RESP, refnum,
                                       skb2, skb2->len);
                return;
-               break;  
+               break;
        case MSG_TDATA_CONF:
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
 
 #ifdef DEBUG
-               if ( (*((ushort *) (skb->data + 2) )) != 0) {
-                        printk(KERN_DEBUG "TDATA_CONF error\n");
+               if ((*((ushort *)(skb->data + 2))) != 0) {
+                       printk(KERN_DEBUG "TDATA_CONF error\n");
                }
 #endif
 #ifdef BLOCK_TIMER
-                if (chan->queued == MAX_QUEUED) {
-                        del_timer(&chan->block_timer);
+               if (chan->queued == MAX_QUEUED) {
+                       del_timer(&chan->block_timer);
                        chan->block_timer.function = NULL;
                }
-                
-#endif         
+
+#endif
                chan->queued--;
 
                ictl.driver = dev->id;
@@ -523,7 +523,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
        case MSG_CONN_IND:
                /*
                 *  channel: 1st not used will do
-                *           if both are used we're in trouble 
+                *           if both are used we're in trouble
                 */
 
                if (!dev->b1->fsm_state)
@@ -531,12 +531,12 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
                else if (!dev->b2->fsm_state)
                        chan = dev->b2;
                else {
-                       printk(KERN_INFO 
+                       printk(KERN_INFO
                               "Incoming connection: no channels available");
 
-                       if ((len = capi_disc_req(*(ushort*)(skb->data), &skb2, CAUSE_NOCHAN)) > 0)
+                       if ((len = capi_disc_req(*(ushort *)(skb->data), &skb2, CAUSE_NOCHAN)) > 0)
                                pcbit_l2_write(dev, MSG_DISC_REQ, refnum, skb2, len);
-                       break;  
+                       break;
                }
 
                cbdata.data.setup.CalledPN = NULL;
@@ -547,7 +547,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
 
                pcbit_fsm_event(dev, chan, EV_NET_SETUP, NULL);
 
-               if (pcbit_check_msn(dev, cbdata.data.setup.CallingPN)) 
+               if (pcbit_check_msn(dev, cbdata.data.setup.CallingPN))
                        pcbit_fsm_event(dev, chan, EV_USR_PROCED_REQ, &cbdata);
                else
                        pcbit_fsm_event(dev, chan, EV_USR_RELEASE_REQ, NULL);
@@ -555,26 +555,26 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
                kfree(cbdata.data.setup.CalledPN);
                kfree(cbdata.data.setup.CallingPN);
                break;
-    
+
        case MSG_CONN_CONF:
-               /* 
+               /*
                 * We should be able to find the channel by the message
                 * reference number. The current version of the firmware
                 * doesn't sent the ref number correctly.
                 */
 #ifdef DEBUG
-               printk(KERN_DEBUG "refnum=%04x b1=%04x b2=%04x\n", refnum, 
-                      dev->b1->s_refnum, 
+               printk(KERN_DEBUG "refnum=%04x b1=%04x b2=%04x\n", refnum,
+                      dev->b1->s_refnum,
                       dev->b2->s_refnum);
 #endif
                /* We just try to find a channel in the right state */
 
                if (dev->b1->fsm_state == ST_CALL_INIT)
                        chan = dev->b1;
-               else {             
+               else {
                        if (dev->b2->s_refnum == ST_CALL_INIT)
                                chan = dev->b2;
-                       else {                  
+                       else {
                                chan = NULL;
                                printk(KERN_WARNING "Connection Confirm - no channel in Call Init state\n");
                                break;
@@ -589,18 +589,18 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
                                pcbit_fsm_event(dev, chan, EV_NET_CALL_PROC, NULL);
                        else
                                pcbit_fsm_event(dev, chan, EV_NET_SETUP_ACK, NULL);
-               break; 
+               break;
        case MSG_CONN_ACTV_IND:
 
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
-               
+
                if (capi_decode_conn_actv_ind(chan, skb)) {
                        printk("error in capi_decode_conn_actv_ind\n");
-                    /* pcbit_fsm_event(dev, chan, EV_ERROR, NULL); */
+                       /* pcbit_fsm_event(dev, chan, EV_ERROR, NULL); */
                        break;
                }
                chan->r_refnum = refnum;
@@ -609,14 +609,14 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
        case MSG_CONN_ACTV_CONF:
 
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
 
                if (capi_decode_conn_actv_conf(chan, skb) == 0)
                        pcbit_fsm_event(dev, chan, EV_NET_CONN_ACK, NULL);
-               
+
                else
                        printk(KERN_DEBUG "decode_conn_actv_conf failed\n");
                break;
@@ -624,7 +624,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
        case  MSG_SELP_CONF:
 
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
@@ -638,7 +638,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
                break;
        case MSG_ACT_TRANSP_CONF:
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
@@ -650,7 +650,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
        case MSG_DISC_IND:
 
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
@@ -662,7 +662,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
                break;
        case MSG_DISC_CONF:
                if (!(chan = capi_channel(dev, skb))) {
-                       printk(KERN_WARNING 
+                       printk(KERN_WARNING
                               "CAPI header: unknown channel id\n");
                        break;
                }
@@ -711,24 +711,24 @@ static int pcbit_stat(u_char __user *buf, int len, int driver, int channel)
                stat_count = STATBUF_LEN - stat_st + stat_end;
 
        /* FIXME: should we sleep and wait for more cookies ? */
-       if (len > stat_count)            
+       if (len > stat_count)
                len = stat_count;
 
        if (stat_st < stat_end)
        {
                if (copy_to_user(buf, statbuf + stat_st, len))
                        return -EFAULT;
-               stat_st += len;    
+               stat_st += len;
        }
        else
        {
                if (len > STATBUF_LEN - stat_st)
                {
                        if (copy_to_user(buf, statbuf + stat_st,
-                                      STATBUF_LEN - stat_st))
+                                        STATBUF_LEN - stat_st))
                                return -EFAULT;
                        if (copy_to_user(buf, statbuf,
-                                      len - (STATBUF_LEN - stat_st)))
+                                        len - (STATBUF_LEN - stat_st)))
                                return -EFAULT;
 
                        stat_st = len - (STATBUF_LEN - stat_st);
@@ -739,7 +739,7 @@ static int pcbit_stat(u_char __user *buf, int len, int driver, int channel)
                                return -EFAULT;
 
                        stat_st += len;
-                       
+
                        if (stat_st == STATBUF_LEN)
                                stat_st = 0;
                }
@@ -756,27 +756,27 @@ static void pcbit_logstat(struct pcbit_dev *dev, char *str)
        int i;
        isdn_ctrl ictl;
 
-       for (i=stat_end; i<strlen(str); i++)
+       for (i = stat_end; i < strlen(str); i++)
        {
-               statbuf[i]=str[i];
+               statbuf[i] = str[i];
                stat_end = (stat_end + 1) % STATBUF_LEN;
                if (stat_end == stat_st)
                        stat_st = (stat_st + 1) % STATBUF_LEN;
        }
 
-       ictl.command=ISDN_STAT_STAVAIL;
-       ictl.driver=dev->id;
-       ictl.arg=strlen(str);
+       ictl.command = ISDN_STAT_STAVAIL;
+       ictl.driver = dev->id;
+       ictl.arg = strlen(str);
        dev->dev_if->statcallb(&ictl);
 }
-       
-void pcbit_state_change(struct pcbit_dev * dev, struct pcbit_chan * chan, 
+
+void pcbit_state_change(struct pcbit_dev *dev, struct pcbit_chan *chan,
                        unsigned short i, unsigned short ev, unsigned short f)
 {
        char buf[256];
-  
+
        sprintf(buf, "change on device: %d channel:%d\n%s -> %s -> %s\n",
-               dev->id, chan->id, 
+               dev->id, chan->id,
                isdn_state_table[i], strisdnevent(ev), isdn_state_table[f]
                );
 
@@ -789,7 +789,7 @@ void pcbit_state_change(struct pcbit_dev * dev, struct pcbit_chan * chan,
 
 static void set_running_timeout(unsigned long ptr)
 {
-       struct pcbit_dev * dev;
+       struct pcbit_dev *dev;
 
 #ifdef DEBUG
        printk(KERN_DEBUG "set_running_timeout\n");
@@ -799,7 +799,7 @@ static void set_running_timeout(unsigned long ptr)
        wake_up_interruptible(&dev->set_running_wq);
 }
 
-static int set_protocol_running(struct pcbit_dev * dev)
+static int set_protocol_running(struct pcbit_dev *dev)
 {
        isdn_ctrl ctl;
 
@@ -813,7 +813,7 @@ static int set_protocol_running(struct pcbit_dev * dev)
 
        dev->l2_state = L2_STARTING;
 
-       writeb((0x80U | ((dev->rcv_seq & 0x07) << 3) | (dev->send_seq & 0x07)), 
+       writeb((0x80U | ((dev->rcv_seq & 0x07) << 3) | (dev->send_seq & 0x07)),
               dev->sh_mem + BANK4);
 
        add_timer(&dev->set_running_timer);
@@ -830,8 +830,8 @@ static int set_protocol_running(struct pcbit_dev * dev)
 
                dev->writeptr = dev->sh_mem;
                dev->readptr = dev->sh_mem + BANK2;
-    
-               /* tell the good news to the upper layer */  
+
+               /* tell the good news to the upper layer */
                ctl.driver = dev->id;
                ctl.command = ISDN_STAT_RUN;
 
@@ -845,7 +845,7 @@ static int set_protocol_running(struct pcbit_dev * dev)
                dev->l2_state = L2_DOWN;
 
 #ifdef DEBUG
-               printk(KERN_DEBUG "Bank3 = %02x\n", 
+               printk(KERN_DEBUG "Bank3 = %02x\n",
                       readb(dev->sh_mem + BANK3));
 #endif
                writeb(0x40, dev->sh_mem + BANK4);
@@ -862,13 +862,13 @@ static int set_protocol_running(struct pcbit_dev * dev)
        return 0;
 }
 
-static int pcbit_ioctl(isdn_ctrlctl)
+static int pcbit_ioctl(isdn_ctrl *ctl)
 {
-       struct pcbit_dev * dev;
+       struct pcbit_dev *dev;
        struct pcbit_ioctl *cmd;
 
        dev = finddev(ctl->driver);
-  
+
        if (!dev)
        {
                printk(KERN_DEBUG "pcbit_ioctl: unknown device\n");
@@ -877,7 +877,7 @@ static int pcbit_ioctl(isdn_ctrl* ctl)
 
        cmd = (struct pcbit_ioctl *) ctl->parm.num;
 
-       switch(ctl->arg) {
+       switch (ctl->arg) {
        case PCBIT_IOCTL_GETSTAT:
                cmd->info.l2_status = dev->l2_state;
                break;
@@ -890,7 +890,7 @@ static int pcbit_ioctl(isdn_ctrl* ctl)
 
                dev->writeptr = dev->sh_mem;
                dev->readptr = dev->sh_mem + BANK2;
-    
+
                dev->l2_state = L2_LOADING;
                break;
 
@@ -907,21 +907,21 @@ static int pcbit_ioctl(isdn_ctrl* ctl)
                dev->loadptr = LOAD_ZONE_START;
                dev->l2_state = L2_FWMODE;
 
-               break; 
+               break;
        case PCBIT_IOCTL_ENDLOAD:
                if (dev->l2_state == L2_RUNNING)
                        return -EBUSY;
                dev->l2_state = L2_DOWN;
-               break; 
+               break;
 
-       case PCBIT_IOCTL_SETBYTE: 
+       case PCBIT_IOCTL_SETBYTE:
                if (dev->l2_state == L2_RUNNING)
                        return -EBUSY;
 
                /* check addr */
                if (cmd->info.rdp_byte.addr > BANK4)
                        return -EFAULT;
-               
+
                writeb(cmd->info.rdp_byte.value, dev->sh_mem + cmd->info.rdp_byte.addr);
                break;
        case PCBIT_IOCTL_GETBYTE:
@@ -935,10 +935,10 @@ static int pcbit_ioctl(isdn_ctrl* ctl)
                        printk("getbyte: invalid addr %04x\n", cmd->info.rdp_byte.addr);
                        return -EFAULT;
                }
-               
-               cmd->info.rdp_byte.value = readb(dev->sh_mem + cmd->info.rdp_byte.addr); 
+
+               cmd->info.rdp_byte.value = readb(dev->sh_mem + cmd->info.rdp_byte.addr);
                break;
-       case PCBIT_IOCTL_RUNNING: 
+       case PCBIT_IOCTL_RUNNING:
                if (dev->l2_state == L2_RUNNING)
                        return -EBUSY;
                return set_protocol_running(dev);
@@ -972,25 +972,25 @@ static int pcbit_ioctl(isdn_ctrl* ctl)
        return 0;
 }
 
-/* 
+/*
  *        MSN list handling
  *
  *        if null reject all calls
- *        if first entry has null MSN accept all calls 
+ *        if first entry has null MSN accept all calls
  */
 
 static void pcbit_clear_msn(struct pcbit_dev *dev)
 {
        struct msn_entry *ptr, *back;
 
-       for (ptr=dev->msn_list; ptr; )
+       for (ptr = dev->msn_list; ptr;)
        {
                back = ptr->next;
                kfree(ptr);
                ptr = back;
        }
 
-       dev->msn_list = NULL; 
+       dev->msn_list = NULL;
 }
 
 static void pcbit_set_msn(struct pcbit_dev *dev, char *list)
@@ -1016,12 +1016,12 @@ static void pcbit_set_msn(struct pcbit_dev *dev, char *list)
        }
 
        if (dev->msn_list)
-               for (back=dev->msn_list; back->next; back=back->next);
-       
+               for (back = dev->msn_list; back->next; back = back->next);
+
        sp = list;
 
        do {
-               cp=strchr(sp, ',');
+               cp = strchr(sp, ',');
                if (cp)
                        len = cp - sp;
                else
@@ -1034,7 +1034,7 @@ static void pcbit_set_msn(struct pcbit_dev *dev, char *list)
                        return;
                }
                ptr->next = NULL;
-               
+
                ptr->msn = kmalloc(len, GFP_ATOMIC);
                if (!ptr->msn) {
                        printk(KERN_WARNING "kmalloc failed\n");
@@ -1054,7 +1054,7 @@ static void pcbit_set_msn(struct pcbit_dev *dev, char *list)
                        back->next = ptr;
                back = ptr;
                sp += len;
-       } while(cp);
+       } while (cp);
 }
 
 /*
@@ -1063,12 +1063,12 @@ static void pcbit_set_msn(struct pcbit_dev *dev, char *list)
 static int pcbit_check_msn(struct pcbit_dev *dev, char *msn)
 {
        struct msn_entry *ptr;
-       
-       for (ptr=dev->msn_list; ptr; ptr=ptr->next) {
 
-               if (ptr->msn == NULL) 
+       for (ptr = dev->msn_list; ptr; ptr = ptr->next) {
+
+               if (ptr->msn == NULL)
                        return 1;
-               
+
                if (strcmp(ptr->msn, msn) == 0)
                        return 1;
        }
index 80c9c16..b2262ba 100644 (file)
@@ -3,10 +3,10 @@
  * base: ITU-T Rec Q.931
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
 
 
 const char * const isdn_state_table[] = {
-  "Closed",
-  "Call initiated",
-  "Overlap sending",
-  "Outgoing call proceeding",
-  "NOT DEFINED",
-  "Call delivered",
-  "Call present",
-  "Call received",
-  "Connect request",
-  "Incoming call proceeding",
-  "Active",
-  "Disconnect request",
-  "Disconnect indication",
-  "NOT DEFINED",
-  "NOT DEFINED",
-  "Suspend request",
-  "NOT DEFINED",
-  "Resume request",
-  "NOT DEFINED",
-  "Release Request",
-  "NOT DEFINED",
-  "NOT DEFINED",
-  "NOT DEFINED",
-  "NOT DEFINED",
-  "NOT DEFINED",
-  "Overlap receiving",
-  "Select protocol on B-Channel",
-  "Activate B-channel protocol"
+       "Closed",
+       "Call initiated",
+       "Overlap sending",
+       "Outgoing call proceeding",
+       "NOT DEFINED",
+       "Call delivered",
+       "Call present",
+       "Call received",
+       "Connect request",
+       "Incoming call proceeding",
+       "Active",
+       "Disconnect request",
+       "Disconnect indication",
+       "NOT DEFINED",
+       "NOT DEFINED",
+       "Suspend request",
+       "NOT DEFINED",
+       "Resume request",
+       "NOT DEFINED",
+       "Release Request",
+       "NOT DEFINED",
+       "NOT DEFINED",
+       "NOT DEFINED",
+       "NOT DEFINED",
+       "NOT DEFINED",
+       "Overlap receiving",
+       "Select protocol on B-Channel",
+       "Activate B-channel protocol"
 };
 
 #ifdef DEBUG_ERRS
 static
 struct CauseValue {
-  byte nr;
-  char *descr;
-} cvlist[]={
-  {0x01,"Unallocated (unassigned) number"},
-  {0x02,"No route to specified transit network"},
-  {0x03,"No route to destination"},
-  {0x04,"Send special information tone"},
-  {0x05,"Misdialled trunk prefix"},
-  {0x06,"Channel unacceptable"},
-  {0x07,"Channel awarded and being delivered in an established channel"},
-  {0x08,"Preemption"},
-  {0x09,"Preemption - circuit reserved for reuse"},
-  {0x10,"Normal call clearing"},
-  {0x11,"User busy"},
-  {0x12,"No user responding"},
-  {0x13,"No answer from user (user alerted)"},
-  {0x14,"Subscriber absent"},
-  {0x15,"Call rejected"},
-  {0x16,"Number changed"},
-  {0x1a,"non-selected user clearing"},
-  {0x1b,"Destination out of order"},
-  {0x1c,"Invalid number format (address incomplete)"},
-  {0x1d,"Facility rejected"},
-  {0x1e,"Response to Status enquiry"},
-  {0x1f,"Normal, unspecified"},
-  {0x22,"No circuit/channel available"},
-  {0x26,"Network out of order"},
-  {0x27,"Permanent frame mode connection out-of-service"},
-  {0x28,"Permanent frame mode connection operational"},
-  {0x29,"Temporary failure"},
-  {0x2a,"Switching equipment congestion"},
-  {0x2b,"Access information discarded"},
-  {0x2c,"Requested circuit/channel not available"},
-  {0x2e,"Precedence call blocked"},
-  {0x2f,"Resource unavailable, unspecified"},
-  {0x31,"Quality of service unavailable"},
-  {0x32,"Requested facility not subscribed"},
-  {0x35,"Outgoing calls barred within CUG"},
-  {0x37,"Incoming calls barred within CUG"},
-  {0x39,"Bearer capability not authorized"},
-  {0x3a,"Bearer capability not presently available"},
-  {0x3e,"Inconsistency in designated outgoing access information and subscriber class"},
-  {0x3f,"Service or option not available, unspecified"},
-  {0x41,"Bearer capability not implemented"},
-  {0x42,"Channel type not implemented"},
-  {0x43,"Requested facility not implemented"},
-  {0x44,"Only restricted digital information bearer capability is available"},
-  {0x4f,"Service or option not implemented"},
-  {0x51,"Invalid call reference value"},
-  {0x52,"Identified channel does not exist"},
-  {0x53,"A suspended call exists, but this call identity does not"},
-  {0x54,"Call identity in use"},
-  {0x55,"No call suspended"},
-  {0x56,"Call having the requested call identity has been cleared"},
-  {0x57,"User not member of CUG"},
-  {0x58,"Incompatible destination"},
-  {0x5a,"Non-existent CUG"},
-  {0x5b,"Invalid transit network selection"},
-  {0x5f,"Invalid message, unspecified"},
-  {0x60,"Mandatory information element is missing"},
-  {0x61,"Message type non-existent or not implemented"},
-  {0x62,"Message not compatible with call state or message type non-existent or not implemented"},
-  {0x63,"Information element/parameter non-existent or not implemented"},
-  {0x64,"Invalid information element contents"},
-  {0x65,"Message not compatible with call state"},
-  {0x66,"Recovery on timer expiry"},
-  {0x67,"Parameter non-existent or not implemented - passed on"},
-  {0x6e,"Message with unrecognized parameter discarded"},
-  {0x6f,"Protocol error, unspecified"},
-  {0x7f,"Interworking, unspecified"}
+       byte nr;
+       char *descr;
+} cvlist[] = {
+       {0x01, "Unallocated (unassigned) number"},
+       {0x02, "No route to specified transit network"},
+       {0x03, "No route to destination"},
+       {0x04, "Send special information tone"},
+       {0x05, "Misdialled trunk prefix"},
+       {0x06, "Channel unacceptable"},
+       {0x07, "Channel awarded and being delivered in an established channel"},
+       {0x08, "Preemption"},
+       {0x09, "Preemption - circuit reserved for reuse"},
+       {0x10, "Normal call clearing"},
+       {0x11, "User busy"},
+       {0x12, "No user responding"},
+       {0x13, "No answer from user (user alerted)"},
+       {0x14, "Subscriber absent"},
+       {0x15, "Call rejected"},
+       {0x16, "Number changed"},
+       {0x1a, "non-selected user clearing"},
+       {0x1b, "Destination out of order"},
+       {0x1c, "Invalid number format (address incomplete)"},
+       {0x1d, "Facility rejected"},
+       {0x1e, "Response to Status enquiry"},
+       {0x1f, "Normal, unspecified"},
+       {0x22, "No circuit/channel available"},
+       {0x26, "Network out of order"},
+       {0x27, "Permanent frame mode connection out-of-service"},
+       {0x28, "Permanent frame mode connection operational"},
+       {0x29, "Temporary failure"},
+       {0x2a, "Switching equipment congestion"},
+       {0x2b, "Access information discarded"},
+       {0x2c, "Requested circuit/channel not available"},
+       {0x2e, "Precedence call blocked"},
+       {0x2f, "Resource unavailable, unspecified"},
+       {0x31, "Quality of service unavailable"},
+       {0x32, "Requested facility not subscribed"},
+       {0x35, "Outgoing calls barred within CUG"},
+       {0x37, "Incoming calls barred within CUG"},
+       {0x39, "Bearer capability not authorized"},
+       {0x3a, "Bearer capability not presently available"},
+       {0x3e, "Inconsistency in designated outgoing access information and subscriber class"},
+       {0x3f, "Service or option not available, unspecified"},
+       {0x41, "Bearer capability not implemented"},
+       {0x42, "Channel type not implemented"},
+       {0x43, "Requested facility not implemented"},
+       {0x44, "Only restricted digital information bearer capability is available"},
+       {0x4f, "Service or option not implemented"},
+       {0x51, "Invalid call reference value"},
+       {0x52, "Identified channel does not exist"},
+       {0x53, "A suspended call exists, but this call identity does not"},
+       {0x54, "Call identity in use"},
+       {0x55, "No call suspended"},
+       {0x56, "Call having the requested call identity has been cleared"},
+       {0x57, "User not member of CUG"},
+       {0x58, "Incompatible destination"},
+       {0x5a, "Non-existent CUG"},
+       {0x5b, "Invalid transit network selection"},
+       {0x5f, "Invalid message, unspecified"},
+       {0x60, "Mandatory information element is missing"},
+       {0x61, "Message type non-existent or not implemented"},
+       {0x62, "Message not compatible with call state or message type non-existent or not implemented"},
+       {0x63, "Information element/parameter non-existent or not implemented"},
+       {0x64, "Invalid information element contents"},
+       {0x65, "Message not compatible with call state"},
+       {0x66, "Recovery on timer expiry"},
+       {0x67, "Parameter non-existent or not implemented - passed on"},
+       {0x6e, "Message with unrecognized parameter discarded"},
+       {0x6f, "Protocol error, unspecified"},
+       {0x7f, "Interworking, unspecified"}
 };
 
 #endif
 
 static struct isdn_event_desc {
-  unsigned short ev;
-  char * desc;
-} isdn_event_table [] = {
-  {EV_USR_SETUP_REQ,     "CC->L3: Setup Request"},
-  {EV_USR_SETUP_RESP,    "CC->L3: Setup Response"},
-  {EV_USR_PROCED_REQ,    "CC->L3: Proceeding Request"},
-  {EV_USR_RELEASE_REQ,   "CC->L3: Release Request"},
-
-  {EV_NET_SETUP,        "NET->TE: setup "},
-  {EV_NET_CALL_PROC,    "NET->TE: call proceeding"},
-  {EV_NET_SETUP_ACK,    "NET->TE: setup acknowledge (more info needed)"},
-  {EV_NET_CONN,         "NET->TE: connect"},
-  {EV_NET_CONN_ACK,     "NET->TE: connect acknowledge"},
-  {EV_NET_DISC,         "NET->TE: disconnect indication"},
-  {EV_NET_RELEASE,      "NET->TE: release"},
-  {EV_NET_RELEASE_COMP, "NET->TE: release complete"},
-  {EV_NET_SELP_RESP,    "Board: Select B-channel protocol ack"},
-  {EV_NET_ACTV_RESP,    "Board: Activate B-channel protocol ack"},
-  {EV_TIMER,            "Timeout"},
-  {0, "NULL"}
+       unsigned short ev;
+       char *desc;
+} isdn_event_table[] = {
+       {EV_USR_SETUP_REQ,     "CC->L3: Setup Request"},
+       {EV_USR_SETUP_RESP,    "CC->L3: Setup Response"},
+       {EV_USR_PROCED_REQ,    "CC->L3: Proceeding Request"},
+       {EV_USR_RELEASE_REQ,   "CC->L3: Release Request"},
+
+       {EV_NET_SETUP,        "NET->TE: setup "},
+       {EV_NET_CALL_PROC,    "NET->TE: call proceeding"},
+       {EV_NET_SETUP_ACK,    "NET->TE: setup acknowledge (more info needed)"},
+       {EV_NET_CONN,         "NET->TE: connect"},
+       {EV_NET_CONN_ACK,     "NET->TE: connect acknowledge"},
+       {EV_NET_DISC,         "NET->TE: disconnect indication"},
+       {EV_NET_RELEASE,      "NET->TE: release"},
+       {EV_NET_RELEASE_COMP, "NET->TE: release complete"},
+       {EV_NET_SELP_RESP,    "Board: Select B-channel protocol ack"},
+       {EV_NET_ACTV_RESP,    "Board: Activate B-channel protocol ack"},
+       {EV_TIMER,            "Timeout"},
+       {0, "NULL"}
 };
 
-char * strisdnevent(ushort ev)
+char *strisdnevent(ushort ev)
 {
-  struct isdn_event_desc * entry;
-  for (entry = isdn_event_table; entry->ev; entry++)
-    if (entry->ev == ev)
-      break;
+       struct isdn_event_desc *entry;
+
+       for (entry = isdn_event_table; entry->ev; entry++)
+               if (entry->ev == ev)
+                       break;
 
-  return entry->desc;
+       return entry->desc;
 }
 
 /*
@@ -180,130 +180,130 @@ char * strisdnevent(ushort ev)
  */
 
 static struct fsm_timer_entry fsm_timers[] = {
-  {ST_CALL_PROC, 10},
-  {ST_DISC_REQ, 2},
-  {ST_ACTIVE_SELP, 5},
-  {ST_ACTIVE_ACTV, 5},
-  {ST_INCM_PROC, 10},
-  {ST_CONN_REQ, 2},
-  {0xff, 0}
+       {ST_CALL_PROC, 10},
+       {ST_DISC_REQ, 2},
+       {ST_ACTIVE_SELP, 5},
+       {ST_ACTIVE_ACTV, 5},
+       {ST_INCM_PROC, 10},
+       {ST_CONN_REQ, 2},
+       {0xff, 0}
 };
 
 static struct fsm_entry fsm_table[] = {
 /* Connect Phase */
-  /* Outgoing */
-  {ST_NULL, ST_CALL_INIT, EV_USR_SETUP_REQ, cb_out_1},
+       /* Outgoing */
+       {ST_NULL, ST_CALL_INIT, EV_USR_SETUP_REQ, cb_out_1},
 
-  {ST_CALL_INIT, ST_OVER_SEND, EV_NET_SETUP_ACK, cb_notdone},
-  {ST_CALL_INIT, ST_CALL_PROC, EV_NET_CALL_PROC, NULL},
-  {ST_CALL_INIT, ST_NULL, EV_NET_DISC, cb_out_2},
+       {ST_CALL_INIT, ST_OVER_SEND, EV_NET_SETUP_ACK, cb_notdone},
+       {ST_CALL_INIT, ST_CALL_PROC, EV_NET_CALL_PROC, NULL},
+       {ST_CALL_INIT, ST_NULL, EV_NET_DISC, cb_out_2},
 
-  {ST_CALL_PROC, ST_ACTIVE_SELP, EV_NET_CONN, cb_out_2},
-  {ST_CALL_PROC, ST_NULL, EV_NET_DISC, cb_disc_1},
-  {ST_CALL_PROC, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
+       {ST_CALL_PROC, ST_ACTIVE_SELP, EV_NET_CONN, cb_out_2},
+       {ST_CALL_PROC, ST_NULL, EV_NET_DISC, cb_disc_1},
+       {ST_CALL_PROC, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
 
-  /* Incoming */
-  {ST_NULL, ST_CALL_PRES, EV_NET_SETUP, NULL},
+       /* Incoming */
+       {ST_NULL, ST_CALL_PRES, EV_NET_SETUP, NULL},
 
-  {ST_CALL_PRES, ST_INCM_PROC, EV_USR_PROCED_REQ, cb_in_1},
-  {ST_CALL_PRES, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
+       {ST_CALL_PRES, ST_INCM_PROC, EV_USR_PROCED_REQ, cb_in_1},
+       {ST_CALL_PRES, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
 
-  {ST_INCM_PROC, ST_CONN_REQ, EV_USR_SETUP_RESP, cb_in_2},
-  {ST_INCM_PROC, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
+       {ST_INCM_PROC, ST_CONN_REQ, EV_USR_SETUP_RESP, cb_in_2},
+       {ST_INCM_PROC, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
 
-  {ST_CONN_REQ, ST_ACTIVE_SELP, EV_NET_CONN_ACK, cb_in_3},
+       {ST_CONN_REQ, ST_ACTIVE_SELP, EV_NET_CONN_ACK, cb_in_3},
 
-  /* Active */
-  {ST_ACTIVE, ST_NULL, EV_NET_DISC, cb_disc_1},
-  {ST_ACTIVE, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
-  {ST_ACTIVE, ST_NULL, EV_NET_RELEASE, cb_disc_3},
+       /* Active */
+       {ST_ACTIVE, ST_NULL, EV_NET_DISC, cb_disc_1},
+       {ST_ACTIVE, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
+       {ST_ACTIVE, ST_NULL, EV_NET_RELEASE, cb_disc_3},
 
-  /* Disconnect */
+       /* Disconnect */
 
-  {ST_DISC_REQ, ST_NULL, EV_NET_DISC, cb_disc_1},
-  {ST_DISC_REQ, ST_NULL, EV_NET_RELEASE, cb_disc_3},
+       {ST_DISC_REQ, ST_NULL, EV_NET_DISC, cb_disc_1},
+       {ST_DISC_REQ, ST_NULL, EV_NET_RELEASE, cb_disc_3},
 
-  /* protocol selection */
-  {ST_ACTIVE_SELP, ST_ACTIVE_ACTV, EV_NET_SELP_RESP, cb_selp_1},
-  {ST_ACTIVE_SELP, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
+       /* protocol selection */
+       {ST_ACTIVE_SELP, ST_ACTIVE_ACTV, EV_NET_SELP_RESP, cb_selp_1},
+       {ST_ACTIVE_SELP, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
 
-  {ST_ACTIVE_ACTV, ST_ACTIVE, EV_NET_ACTV_RESP, cb_open},
-  {ST_ACTIVE_ACTV, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
+       {ST_ACTIVE_ACTV, ST_ACTIVE, EV_NET_ACTV_RESP, cb_open},
+       {ST_ACTIVE_ACTV, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2},
 
-  /* Timers */
-  {ST_CALL_PROC, ST_DISC_REQ, EV_TIMER, cb_disc_2},
-  {ST_DISC_REQ, ST_NULL, EV_TIMER, cb_disc_3},
-  {ST_ACTIVE_SELP, ST_DISC_REQ, EV_TIMER, cb_disc_2},
-  {ST_ACTIVE_ACTV, ST_DISC_REQ, EV_TIMER, cb_disc_2},        
-  {ST_INCM_PROC, ST_DISC_REQ, EV_TIMER, cb_disc_2},
-  {ST_CONN_REQ, ST_CONN_REQ, EV_TIMER, cb_in_2},
-        
-  {0xff, 0, 0, NULL}
+       /* Timers */
+       {ST_CALL_PROC, ST_DISC_REQ, EV_TIMER, cb_disc_2},
+       {ST_DISC_REQ, ST_NULL, EV_TIMER, cb_disc_3},
+       {ST_ACTIVE_SELP, ST_DISC_REQ, EV_TIMER, cb_disc_2},
+       {ST_ACTIVE_ACTV, ST_DISC_REQ, EV_TIMER, cb_disc_2},
+       {ST_INCM_PROC, ST_DISC_REQ, EV_TIMER, cb_disc_2},
+       {ST_CONN_REQ, ST_CONN_REQ, EV_TIMER, cb_in_2},
+
+       {0xff, 0, 0, NULL}
 };
 
 
 static void pcbit_fsm_timer(unsigned long data)
 {
-        struct pcbit_dev *dev;
-        struct pcbit_chan *chan;
+       struct pcbit_dev *dev;
+       struct pcbit_chan *chan;
 
-        chan = (struct pcbit_chan *) data;
+       chan = (struct pcbit_chan *) data;
 
-        del_timer(&chan->fsm_timer);
-        chan->fsm_timer.function = NULL;
+       del_timer(&chan->fsm_timer);
+       chan->fsm_timer.function = NULL;
 
-        dev = chan2dev(chan);
+       dev = chan2dev(chan);
 
-        if (dev == NULL) {
-                printk(KERN_WARNING "pcbit: timer for unknown device\n");
-                return;
-        }
+       if (dev == NULL) {
+               printk(KERN_WARNING "pcbit: timer for unknown device\n");
+               return;
+       }
 
-        pcbit_fsm_event(dev, chan, EV_TIMER, NULL);
+       pcbit_fsm_event(dev, chan, EV_TIMER, NULL);
 }
 
 
 void pcbit_fsm_event(struct pcbit_dev *dev, struct pcbit_chan *chan,
-                  unsigned short event, struct callb_data *data)
+                    unsigned short event, struct callb_data *data)
 {
-       struct fsm_entry * action;      
+       struct fsm_entry *action;
        struct fsm_timer_entry *tentry;
        unsigned long flags;
 
        spin_lock_irqsave(&dev->lock, flags);
 
-        for (action = fsm_table; action->init != 0xff; action++)
-                if (action->init == chan->fsm_state && action->event == event)
-                        break;
-  
+       for (action = fsm_table; action->init != 0xff; action++)
+               if (action->init == chan->fsm_state && action->event == event)
+                       break;
+
        if (action->init == 0xff) {
-               
+
                spin_unlock_irqrestore(&dev->lock, flags);
-               printk(KERN_DEBUG "fsm error: event %x on state %x\n", 
-                       event, chan->fsm_state);
+               printk(KERN_DEBUG "fsm error: event %x on state %x\n",
+                      event, chan->fsm_state);
                return;
        }
 
-        if (chan->fsm_timer.function) {
-                del_timer(&chan->fsm_timer);
-                chan->fsm_timer.function = NULL;
-        }
+       if (chan->fsm_timer.function) {
+               del_timer(&chan->fsm_timer);
+               chan->fsm_timer.function = NULL;
+       }
 
        chan->fsm_state = action->final;
-  
+
        pcbit_state_change(dev, chan, action->init, event, action->final);
 
-        for (tentry = fsm_timers; tentry->init != 0xff; tentry++)
-                if (tentry->init == chan->fsm_state)
-                        break;
+       for (tentry = fsm_timers; tentry->init != 0xff; tentry++)
+               if (tentry->init == chan->fsm_state)
+                       break;
 
-        if (tentry->init != 0xff) {
-                init_timer(&chan->fsm_timer);
-                chan->fsm_timer.function = &pcbit_fsm_timer;
-                chan->fsm_timer.data = (ulong) chan;
-                chan->fsm_timer.expires = jiffies + tentry->timeout * HZ;
-                add_timer(&chan->fsm_timer);
-        }
+       if (tentry->init != 0xff) {
+               init_timer(&chan->fsm_timer);
+               chan->fsm_timer.function = &pcbit_fsm_timer;
+               chan->fsm_timer.data = (ulong) chan;
+               chan->fsm_timer.expires = jiffies + tentry->timeout * HZ;
+               add_timer(&chan->fsm_timer);
+       }
 
        spin_unlock_irqrestore(&dev->lock, flags);
 
@@ -311,7 +311,3 @@ void pcbit_fsm_event(struct pcbit_dev *dev, struct pcbit_chan *chan,
                action->callb(dev, chan, data);
 
 }
-
-
-
-
index 39f8346..2f6b3a8 100644 (file)
@@ -2,10 +2,10 @@
  * DSS.1 module definitions
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
@@ -62,9 +62,9 @@
 /*
  *  Cause values
  *  only the ones we use
- */ 
+ */
 
-#define CAUSE_NORMAL          0x10U 
+#define CAUSE_NORMAL          0x10U
 #define CAUSE_NOCHAN          0x22U
 
 struct callb_data {
@@ -94,9 +94,6 @@ extern const char * const isdn_state_table[];
 
 void pcbit_fsm_event(struct pcbit_dev *, struct pcbit_chan *,
                     unsigned short event, struct callb_data *);
-char * strisdnevent(ushort ev);
+char *strisdnevent(ushort ev);
 
 #endif
-
-
-
index 30f0f45..682911f 100644 (file)
@@ -12,7 +12,7 @@
 /*
  * 19991203 - Fernando Carvalho - takion@superbofh.org
  * Hacked to compile with egcs and run with current version of isdn modules
-*/
+ */
 
 /*
  *        Based on documentation provided by Inesc:
@@ -77,7 +77,7 @@ pcbit_l2_write(struct pcbit_dev *dev, ulong msg, ushort refnum,
               struct sk_buff *skb, unsigned short hdr_len)
 {
        struct frame_buf *frame,
-       *ptr;
+               *ptr;
        unsigned long flags;
 
        if (dev->l2_state != L2_RUNNING && dev->l2_state != L2_LOADING) {
@@ -85,7 +85,7 @@ pcbit_l2_write(struct pcbit_dev *dev, ulong msg, ushort refnum,
                return -1;
        }
        if ((frame = kmalloc(sizeof(struct frame_buf),
-                                                 GFP_ATOMIC)) == NULL) {
+                            GFP_ATOMIC)) == NULL) {
                printk(KERN_WARNING "pcbit_2_write: kmalloc failed\n");
                dev_kfree_skb(skb);
                return -1;
@@ -147,7 +147,7 @@ pcbit_transmit(struct pcbit_dev *dev)
        int flen;               /* fragment frame length including all headers */
        int free;
        int count,
-        cp_len;
+               cp_len;
        unsigned long flags;
        unsigned short tt;
 
@@ -177,7 +177,7 @@ pcbit_transmit(struct pcbit_dev *dev)
 
                        /* Type 0 frame */
 
-                       ulong   msg;
+                       ulong   msg;
 
                        if (frame->skb)
                                flen = FRAME_HDR_LEN + PREHDR_LEN + frame->skb->len;
@@ -270,7 +270,7 @@ pcbit_transmit(struct pcbit_dev *dev)
                spin_unlock_irqrestore(&dev->lock, flags);
 #ifdef DEBUG
                printk(KERN_DEBUG "unacked %d free %d write_queue %s\n",
-                    unacked, dev->free, dev->write_queue ? "not empty" :
+                      unacked, dev->free, dev->write_queue ? "not empty" :
                       "empty");
 #endif
        }
@@ -301,8 +301,8 @@ pcbit_deliver(struct work_struct *work)
                SET_MSG_CMD(msg, frame->skb->data[2]);
                SET_MSG_SCMD(msg, frame->skb->data[3]);
 
-               frame->refnum = *((ushort *) frame->skb->data + 4);
-               frame->msg = *((ulong *) & msg);
+               frame->refnum = *((ushort *)frame->skb->data + 4);
+               frame->msg = *((ulong *)&msg);
 
                skb_pull(frame->skb, 6);
 
@@ -326,7 +326,7 @@ pcbit_receive(struct pcbit_dev *dev)
 {
        unsigned short tt;
        u_char cpu,
-        proc;
+               proc;
        struct frame_buf *frame = NULL;
        unsigned long flags;
        u_char type1;
@@ -378,10 +378,10 @@ pcbit_receive(struct pcbit_dev *dev)
                frame->dt_len = pcbit_readw(dev);
 
                /*
-                  * 0 sized packet
-                  * I don't know if they are an error or not...
-                  * But they are very frequent
-                  * Not documented
+                * 0 sized packet
+                * I don't know if they are an error or not...
+                * But they are very frequent
+                * Not documented
                 */
 
                if (frame->hdr_len == 0) {
@@ -499,8 +499,8 @@ pcbit_irq_handler(int interrupt, void *devptr)
 {
        struct pcbit_dev *dev;
        u_char info,
-        ack_seq,
-        read_seq;
+               ack_seq,
+               read_seq;
 
        dev = (struct pcbit_dev *) devptr;
 
@@ -666,7 +666,7 @@ static void
 pcbit_recv_ack(struct pcbit_dev *dev, unsigned char ack)
 {
        int i,
-        count;
+               count;
        int unacked;
 
        unacked = (dev->send_seq + (8 - dev->unack_seq)) & 0x07;
@@ -678,13 +678,13 @@ pcbit_recv_ack(struct pcbit_dev *dev, unsigned char ack)
                if (dev->send_seq > dev->unack_seq) {
                        if (ack <= dev->unack_seq || ack > dev->send_seq) {
                                printk(KERN_DEBUG
-                                    "layer 2 ack unacceptable - dev %d",
+                                      "layer 2 ack unacceptable - dev %d",
                                       dev->id);
 
                                pcbit_l2_error(dev);
                        } else if (ack > dev->send_seq && ack <= dev->unack_seq) {
                                printk(KERN_DEBUG
-                                    "layer 2 ack unacceptable - dev %d",
+                                      "layer 2 ack unacceptable - dev %d",
                                       dev->id);
                                pcbit_l2_error(dev);
                        }
index 2ac295e..be1327b 100644 (file)
@@ -2,17 +2,17 @@
  * PCBIT-D low-layer interface definitions
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
 /*
  * 19991203 - Fernando Carvalho - takion@superbofh.org
  * Hacked to compile with egcs and run with current version of isdn modules
-*/
+ */
 
 #ifndef LAYER2_H
 #define LAYER2_H
@@ -37,8 +37,8 @@
 
 /* TAM - XX - C - S  - NUM */
 #define PREHDR_LEN 8
-/* TT  - M  - I - TH - TD  */      
-#define FRAME_HDR_LEN  8   
+/* TT  - M  - I - TH - TD  */
+#define FRAME_HDR_LEN  8
 
 #define MSG_CONN_REQ           0x08000100
 #define MSG_CONN_CONF          0x00000101
 #define MSG_DEBUG_188           0x0000ff00
 
 /*
-   
-   long  4 3 2 1
-   Intel 1 2 3 4
+
+  long  4 3 2 1
+  Intel 1 2 3 4
 */
 
 #ifdef __LITTLE_ENDIAN
-#define SET_MSG_SCMD(msg, ch)  (msg = (msg & 0xffffff00) | (((ch) & 0xff)))
-#define SET_MSG_CMD(msg, ch)   (msg = (msg & 0xffff00ff) | (((ch) & 0xff) << 8))
-#define SET_MSG_PROC(msg, ch)  (msg = (msg & 0xff00ffff) | (((ch) & 0xff) << 16))
-#define SET_MSG_CPU(msg, ch)   (msg = (msg & 0x00ffffff) | (((ch) & 0xff) << 24))
+#define SET_MSG_SCMD(msg, ch)  (msg = (msg & 0xffffff00) | (((ch) & 0xff)))
+#define SET_MSG_CMD(msg, ch)   (msg = (msg & 0xffff00ff) | (((ch) & 0xff) << 8))
+#define SET_MSG_PROC(msg, ch)  (msg = (msg & 0xff00ffff) | (((ch) & 0xff) << 16))
+#define SET_MSG_CPU(msg, ch)   (msg = (msg & 0x00ffffff) | (((ch) & 0xff) << 24))
 
-#define GET_MSG_SCMD(msg)      ((msg) & 0xFF)
-#define GET_MSG_CMD(msg)       ((msg) >> 8 & 0xFF)
-#define GET_MSG_PROC(msg)      ((msg) >> 16 & 0xFF)
-#define GET_MSG_CPU(msg)       ((msg) >> 24)
+#define GET_MSG_SCMD(msg)      ((msg) & 0xFF)
+#define GET_MSG_CMD(msg)       ((msg) >> 8 & 0xFF)
+#define GET_MSG_PROC(msg)      ((msg) >> 16 & 0xFF)
+#define GET_MSG_CPU(msg)       ((msg) >> 24)
 
 #else
 #error "Non-Intel CPU"
 #define SCHED_READ    0x01
 #define SCHED_WRITE   0x02
 
-#define SET_RUN_TIMEOUT 2*HZ /* 2 seconds */
-     
+#define SET_RUN_TIMEOUT 2 * HZ /* 2 seconds */
+
 struct frame_buf {
-        ulong msg;
-        unsigned int refnum;
-        unsigned int dt_len;
-        unsigned int hdr_len;
-        struct sk_buff *skb;
+       ulong msg;
+       unsigned int refnum;
+       unsigned int dt_len;
+       unsigned int hdr_len;
+       struct sk_buff *skb;
        unsigned int copied;
-        struct frame_buf * next;
+       struct frame_buf *next;
 };
 
-extern int pcbit_l2_write(struct pcbit_dev * dev, ulong msg, ushort refnum, 
-                          struct sk_buff *skb, unsigned short hdr_len);
+extern int pcbit_l2_write(struct pcbit_dev *dev, ulong msg, ushort refnum,
+                         struct sk_buff *skb, unsigned short hdr_len);
 
 extern irqreturn_t pcbit_irq_handler(int interrupt, void *);
 
-extern struct pcbit_dev * dev_pcbit[MAX_PCBIT_CARDS];
+extern struct pcbit_dev *dev_pcbit[MAX_PCBIT_CARDS];
 
 #ifdef DEBUG
 static __inline__ void log_state(struct pcbit_dev *dev) {
-        printk(KERN_DEBUG "writeptr = %ld\n", 
+       printk(KERN_DEBUG "writeptr = %ld\n",
               (ulong) (dev->writeptr - dev->sh_mem));
-        printk(KERN_DEBUG "readptr  = %ld\n", 
+       printk(KERN_DEBUG "readptr  = %ld\n",
               (ulong) (dev->readptr - (dev->sh_mem + BANK2)));
-        printk(KERN_DEBUG "{rcv_seq=%01x, send_seq=%01x, unack_seq=%01x}\n", 
+       printk(KERN_DEBUG "{rcv_seq=%01x, send_seq=%01x, unack_seq=%01x}\n",
               dev->rcv_seq, dev->send_seq, dev->unack_seq);
 }
 #endif
 
-static __inline__ struct pcbit_dev * chan2dev(struct pcbit_chan * chan) 
+static __inline__ struct pcbit_dev *chan2dev(struct pcbit_chan *chan)
 {
-        struct pcbit_dev * dev;
-        int i;
+       struct pcbit_dev *dev;
+       int i;
 
 
-        for (i=0; i<MAX_PCBIT_CARDS; i++)
-                if ((dev=dev_pcbit[i]))
-                        if (dev->b1 == chan || dev->b2 == chan)
-                                return dev;
-        return NULL;
+       for (i = 0; i < MAX_PCBIT_CARDS; i++)
+               if ((dev = dev_pcbit[i]))
+                       if (dev->b1 == chan || dev->b2 == chan)
+                               return dev;
+       return NULL;
 
 }
 
-static __inline__ struct pcbit_dev * finddev(int id)
+static __inline__ struct pcbit_dev *finddev(int id)
 {
-  struct pcbit_dev * dev;
-  int i;
-
-  for (i=0; i<MAX_PCBIT_CARDS; i++)
-    if ((dev=dev_pcbit[i]))
-      if (dev->id == id)
-       return dev;
-  return NULL;
+       struct pcbit_dev *dev;
+       int i;
+
+       for (i = 0; i < MAX_PCBIT_CARDS; i++)
+               if ((dev = dev_pcbit[i]))
+                       if (dev->id == id)
+                               return dev;
+       return NULL;
 }
 
 
@@ -172,117 +172,110 @@ static __inline__ struct pcbit_dev * finddev(int id)
 
 static __inline__ void pcbit_writeb(struct pcbit_dev *dev, unsigned char dt)
 {
-  writeb(dt, dev->writeptr++);
-  if (dev->writeptr == dev->sh_mem + BANKLEN)
-    dev->writeptr = dev->sh_mem;
+       writeb(dt, dev->writeptr++);
+       if (dev->writeptr == dev->sh_mem + BANKLEN)
+               dev->writeptr = dev->sh_mem;
 }
 
 static __inline__ void pcbit_writew(struct pcbit_dev *dev, unsigned short dt)
 {
-  int dist;
-
-  dist = BANKLEN - (dev->writeptr - dev->sh_mem);
-  switch (dist) {
-  case 2:
-    writew(dt, dev->writeptr);
-    dev->writeptr = dev->sh_mem;
-    break;
-  case 1:
-    writeb((u_char) (dt & 0x00ffU), dev->writeptr);    
-    dev->writeptr = dev->sh_mem;
-    writeb((u_char) (dt >> 8), dev->writeptr++);    
-    break;
-  default:
-    writew(dt, dev->writeptr);
-    dev->writeptr += 2;
-    break;
-  };
+       int dist;
+
+       dist = BANKLEN - (dev->writeptr - dev->sh_mem);
+       switch (dist) {
+       case 2:
+               writew(dt, dev->writeptr);
+               dev->writeptr = dev->sh_mem;
+               break;
+       case 1:
+               writeb((u_char) (dt & 0x00ffU), dev->writeptr);
+               dev->writeptr = dev->sh_mem;
+               writeb((u_char) (dt >> 8), dev->writeptr++);
+               break;
+       default:
+               writew(dt, dev->writeptr);
+               dev->writeptr += 2;
+               break;
+       };
 }
 
-static __inline__ void memcpy_topcbit(struct pcbit_dev * dev, u_char * data, 
+static __inline__ void memcpy_topcbit(struct pcbit_dev *dev, u_char *data,
                                      int len)
 {
-  int diff;
-
-  diff = len - (BANKLEN - (dev->writeptr - dev->sh_mem) );
-
-  if (diff > 0)
-    {
-      memcpy_toio(dev->writeptr, data, len - diff);
-      memcpy_toio(dev->sh_mem, data + (len - diff), diff);
-      dev->writeptr = dev->sh_mem + diff;
-    }
-  else
-    {
-      memcpy_toio(dev->writeptr, data, len);
-
-      dev->writeptr += len;
-      if (diff == 0)
-       dev->writeptr = dev->sh_mem;
-    }
+       int diff;
+
+       diff = len - (BANKLEN - (dev->writeptr - dev->sh_mem));
+
+       if (diff > 0)
+       {
+               memcpy_toio(dev->writeptr, data, len - diff);
+               memcpy_toio(dev->sh_mem, data + (len - diff), diff);
+               dev->writeptr = dev->sh_mem + diff;
+       }
+       else
+       {
+               memcpy_toio(dev->writeptr, data, len);
+
+               dev->writeptr += len;
+               if (diff == 0)
+                       dev->writeptr = dev->sh_mem;
+       }
 }
 
 static __inline__ unsigned char pcbit_readb(struct pcbit_dev *dev)
 {
-  unsigned char val;
+       unsigned char val;
 
-  val = readb(dev->readptr++);
-  if (dev->readptr == dev->sh_mem + BANK2 + BANKLEN)
-    dev->readptr = dev->sh_mem + BANK2;
+       val = readb(dev->readptr++);
+       if (dev->readptr == dev->sh_mem + BANK2 + BANKLEN)
+               dev->readptr = dev->sh_mem + BANK2;
 
-  return val;
+       return val;
 }
 
 static __inline__ unsigned short pcbit_readw(struct pcbit_dev *dev)
 {
-  int dist;
-  unsigned short val;
-
-  dist = BANKLEN - ( dev->readptr - (dev->sh_mem + BANK2 ) );
-  switch (dist) {
-  case 2:
-    val = readw(dev->readptr);
-    dev->readptr = dev->sh_mem + BANK2;
-    break;
-  case 1:
-    val = readb(dev->readptr);
-    dev->readptr = dev->sh_mem + BANK2;
-    val = (readb(dev->readptr++) << 8) | val;
-    break;
-  default:
-    val = readw(dev->readptr);
-    dev->readptr += 2;
-    break;
-  };
-  return val;
+       int dist;
+       unsigned short val;
+
+       dist = BANKLEN - (dev->readptr - (dev->sh_mem + BANK2));
+       switch (dist) {
+       case 2:
+               val = readw(dev->readptr);
+               dev->readptr = dev->sh_mem + BANK2;
+               break;
+       case 1:
+               val = readb(dev->readptr);
+               dev->readptr = dev->sh_mem + BANK2;
+               val = (readb(dev->readptr++) << 8) | val;
+               break;
+       default:
+               val = readw(dev->readptr);
+               dev->readptr += 2;
+               break;
+       };
+       return val;
 }
 
-static __inline__ void memcpy_frompcbit(struct pcbit_dev * dev, u_char * data, int len)
+static __inline__ void memcpy_frompcbit(struct pcbit_dev *dev, u_char *data, int len)
 {
-  int diff;
-
-  diff = len - (BANKLEN - (dev->readptr - (dev->sh_mem + BANK2) ) ); 
-  if (diff > 0)
-    {
-      memcpy_fromio(data, dev->readptr, len - diff);
-      memcpy_fromio(data + (len - diff), dev->sh_mem + BANK2 , diff);
-      dev->readptr = dev->sh_mem + BANK2 + diff;
-    }
-  else
-    {
-      memcpy_fromio(data, dev->readptr, len);
-      dev->readptr += len;
-      if (diff == 0)
-       dev->readptr = dev->sh_mem + BANK2;
-    }
+       int diff;
+
+       diff = len - (BANKLEN - (dev->readptr - (dev->sh_mem + BANK2)));
+       if (diff > 0)
+       {
+               memcpy_fromio(data, dev->readptr, len - diff);
+               memcpy_fromio(data + (len - diff), dev->sh_mem + BANK2 , diff);
+               dev->readptr = dev->sh_mem + BANK2 + diff;
+       }
+       else
+       {
+               memcpy_fromio(data, dev->readptr, len);
+               dev->readptr += len;
+               if (diff == 0)
+                       dev->readptr = dev->sh_mem + BANK2;
+       }
 }
 
 
 #endif
-
-
-
-
-
-
-
index 04ea241..0a59bd0 100644 (file)
@@ -2,10 +2,10 @@
  * PCBIT-D module support
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
@@ -29,7 +29,7 @@ module_param_array(mem, int, NULL, 0);
 module_param_array(irq, int, NULL, 0);
 
 static int num_boards;
-struct pcbit_dev * dev_pcbit[MAX_PCBIT_CARDS];
+struct pcbit_dev *dev_pcbit[MAX_PCBIT_CARDS];
 
 static int __init pcbit_init(void)
 {
@@ -37,26 +37,26 @@ static int __init pcbit_init(void)
 
        num_boards = 0;
 
-       printk(KERN_NOTICE 
+       printk(KERN_NOTICE
               "PCBIT-D device driver v 0.5-fjpc0 19991204 - "
               "Copyright (C) 1996 Universidade de Lisboa\n");
 
-       if (mem[0] || irq[0]) 
+       if (mem[0] || irq[0])
        {
-               for (board=0; board < MAX_PCBIT_CARDS && mem[board] && irq[board]; board++)
+               for (board = 0; board < MAX_PCBIT_CARDS && mem[board] && irq[board]; board++)
                {
                        if (!mem[board])
                                mem[board] = 0xD0000;
                        if (!irq[board])
                                irq[board] = 5;
-                       
+
                        if (pcbit_init_dev(board, mem[board], irq[board]) == 0)
                                num_boards++;
-               
-                       else 
+
+                       else
                        {
-                               printk(KERN_WARNING 
-                                      "pcbit_init failed for dev %d", 
+                               printk(KERN_WARNING
+                                      "pcbit_init failed for dev %d",
                                       board + 1);
                                return -EIO;
                        }
@@ -67,7 +67,7 @@ static int __init pcbit_init(void)
 
        if (!num_boards)
        {
-               printk(KERN_INFO 
+               printk(KERN_INFO
                       "Trying to detect board using default settings\n");
                if (pcbit_init_dev(0, 0xD0000, 5) == 0)
                        num_boards++;
@@ -84,7 +84,7 @@ static void __exit pcbit_exit(void)
 
        for (board = 0; board < num_boards; board++)
                pcbit_terminate(board);
-       printk(KERN_NOTICE 
+       printk(KERN_NOTICE
               "PCBIT-D module unloaded\n");
 #endif
 }
@@ -95,20 +95,20 @@ static int __init pcbit_setup(char *line)
 {
        int i, j, argc;
        char *str;
-       int ints[MAX_PARA+1];
+       int ints[MAX_PARA + 1];
 
        str = get_options(line, MAX_PARA, ints);
        argc = ints[0];
        i = 0;
        j = 1;
 
-       while (argc && (i<MAX_PCBIT_CARDS)) {
+       while (argc && (i < MAX_PCBIT_CARDS)) {
 
                if (argc) {
                        mem[i]  = ints[j];
                        j++; argc--;
                }
-               
+
                if (argc) {
                        irq[i]  = ints[j];
                        j++; argc--;
@@ -116,11 +116,10 @@ static int __init pcbit_setup(char *line)
 
                i++;
        }
-       return(1);
+       return (1);
 }
 __setup("pcbit=", pcbit_setup);
 #endif
 
 module_init(pcbit_init);
 module_exit(pcbit_exit);
-
index d76fffc..0a5a994 100644 (file)
@@ -2,10 +2,10 @@
  * PCBIT-D device driver definitions
  *
  * Copyright (C) 1996 Universidade de Lisboa
- * 
+ *
  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
  *
- * This software may be used and distributed according to the terms of 
+ * This software may be used and distributed according to the terms of
  * the GNU General Public License, incorporated herein by reference.
  */
 
@@ -32,14 +32,14 @@ struct pcbit_chan {
        unsigned short r_refnum;
        unsigned short fsm_state;
        struct timer_list fsm_timer;
-#ifdef  BLOCK_TIMER
+#ifdef BLOCK_TIMER
        struct timer_list block_timer;
 #endif
 };
 
 struct msn_entry {
        char *msn;
-       struct msn_entry * next;
+       struct msn_entry *next;
 };
 
 struct pcbit_dev {
@@ -49,15 +49,15 @@ struct pcbit_dev {
        unsigned long ph_mem;
        unsigned int irq;
        unsigned int id;
-       unsigned int interrupt;                 /* set during interrupt 
+       unsigned int interrupt;                 /* set during interrupt
                                                   processing */
        spinlock_t lock;
        /* isdn4linux */
 
-       struct msn_entry * msn_list;            /* ISDN address list */
-       
-       isdn_if * dev_if;
-       
+       struct msn_entry *msn_list;             /* ISDN address list */
+
+       isdn_if *dev_if;
+
        ushort ll_hdrlen;
        ushort hl_hdrlen;
 
@@ -89,17 +89,17 @@ struct pcbit_dev {
        unsigned char send_seq;
        unsigned char rcv_seq;
        unsigned char unack_seq;
-  
+
        unsigned short free;
 
        /* channels */
 
        struct pcbit_chan *b1;
-       struct pcbit_chan *b2;  
+       struct pcbit_chan *b2;
 };
 
-#define STATS_TIMER (10*HZ)
-#define ERRTIME     (HZ/10)
+#define STATS_TIMER (10 * HZ)
+#define ERRTIME     (HZ / 10)
 
 /* MRU */
 #define MAXBUFSIZE  1534
@@ -107,7 +107,7 @@ struct pcbit_dev {
 
 #define STATBUF_LEN 2048
 /*
- * 
+ *
  */
 
 #endif /* __KERNEL__ */
@@ -169,9 +169,9 @@ struct pcbit_ioctl {
 void pcbit_deliver(struct work_struct *work);
 int pcbit_init_dev(int board, int mem_base, int irq);
 void pcbit_terminate(int board);
-void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg, struct sk_buff * skb,
+void pcbit_l3_receive(struct pcbit_dev *dev, ulong msg, struct sk_buff *skb,
                      ushort hdr_len, ushort refnum);
-void pcbit_state_change(struct pcbit_dev * dev, struct pcbit_chan * chan,
+void pcbit_state_change(struct pcbit_dev *dev, struct pcbit_chan *chan,
                        unsigned short i, unsigned short ev, unsigned short f);
 
 #endif
index 0120bcf..3da69ee 100644 (file)
@@ -118,7 +118,7 @@ int send_and_receive(int card, unsigned int procid, unsigned char type,
                     unsigned char class, unsigned char code,
                     unsigned char link, unsigned char data_len,
                     unsigned char *data,  RspMessage *mesgdata, int timeout);
-void flushreadfifo (int card);
+void flushreadfifo(int card);
 int sendmessage(int card, unsigned int procid, unsigned int type,
                unsigned int class, unsigned int code, unsigned int link,
                unsigned int data_len, unsigned int *data);
index 0e4969c..4a4e661 100644 (file)
@@ -69,14 +69,14 @@ int get_card_from_id(int driver)
 {
        int i;
 
-       for(i = 0 ; i < cinst ; i++) {
-               if(sc_adapter[i]->driverId == driver)
+       for (i = 0; i < cinst; i++) {
+               if (sc_adapter[i]->driverId == driver)
                        return i;
        }
        return -ENODEV;
 }
 
-/* 
+/*
  * command
  */
 
@@ -85,7 +85,7 @@ int command(isdn_ctrl *cmd)
        int card;
 
        card = get_card_from_id(cmd->driver);
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
@@ -93,17 +93,17 @@ int command(isdn_ctrl *cmd)
        /*
         * Dispatch the command
         */
-       switch(cmd->command) {
+       switch (cmd->command) {
        case ISDN_CMD_IOCTL:
        {
-               unsigned long   cmdptr;
+               unsigned long   cmdptr;
                scs_ioctl       ioc;
 
                memcpy(&cmdptr, cmd->parm.num, sizeof(unsigned long));
                if (copy_from_user(&ioc, (scs_ioctl __user *)cmdptr,
                                   sizeof(scs_ioctl))) {
                        pr_debug("%s: Failed to verify user space 0x%lx\n",
-                               sc_adapter[card]->devicename, cmdptr);
+                                sc_adapter[card]->devicename, cmdptr);
                        return -EFAULT;
                }
                return sc_ioctl(card, &ioc);
@@ -133,76 +133,76 @@ int command(isdn_ctrl *cmd)
 /*
  * start the onboard firmware
  */
-int startproc(int card) 
+int startproc(int card)
 {
        int status;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
        /*
-        * send start msg 
+        * send start msg
         */
-               status = sendmessage(card, CMPID,cmReqType2,
-                         cmReqClass0,
-                         cmReqStartProc,
-                         0,0,NULL);
+       status = sendmessage(card, CMPID, cmReqType2,
+                            cmReqClass0,
+                            cmReqStartProc,
+                            0, 0, NULL);
        pr_debug("%s: Sent startProc\n", sc_adapter[card]->devicename);
-       
+
        return status;
 }
 
 
 /*
- * Dials the number passed in 
+ * Dials the number passed in
  */
 static int dial(int card, unsigned long channel, setup_parm setup)
 {
        int status;
        char Phone[48];
-  
-       if(!IS_VALID_CARD(card)) {
+
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
-       /*extract ISDN number to dial from eaz/msn string*/ 
-       strcpy(Phone,setup.phone); 
+       /*extract ISDN number to dial from eaz/msn string*/
+       strcpy(Phone, setup.phone);
 
        /*send the connection message*/
-       status = sendmessage(card, CEPID,ceReqTypePhy,
-                               ceReqClass1,
-                               ceReqPhyConnect,
-                               (unsigned char) channel+1, 
-                               strlen(Phone),
-                               (unsigned int *) Phone);
+       status = sendmessage(card, CEPID, ceReqTypePhy,
+                            ceReqClass1,
+                            ceReqPhyConnect,
+                            (unsigned char)channel + 1,
+                            strlen(Phone),
+                            (unsigned int *)Phone);
 
        pr_debug("%s: Dialing %s on channel %lu\n",
-               sc_adapter[card]->devicename, Phone, channel+1);
-       
+                sc_adapter[card]->devicename, Phone, channel + 1);
+
        return status;
 }
 
 /*
- * Answer an incoming call 
+ * Answer an incoming call
  */
 static int answer(int card, unsigned long channel)
 {
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
-       if(setup_buffers(card, channel+1)) {
-               hangup(card, channel+1);
+       if (setup_buffers(card, channel + 1)) {
+               hangup(card, channel + 1);
                return -ENOBUFS;
        }
 
-       indicate_status(card, ISDN_STAT_BCONN,channel,NULL);
+       indicate_status(card, ISDN_STAT_BCONN, channel, NULL);
        pr_debug("%s: Answered incoming call on channel %lu\n",
-               sc_adapter[card]->devicename, channel+1);
+                sc_adapter[card]->devicename, channel + 1);
        return 0;
 }
 
@@ -213,19 +213,19 @@ static int hangup(int card, unsigned long channel)
 {
        int status;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
        status = sendmessage(card, CEPID, ceReqTypePhy,
-                                                ceReqClass1,
-                                                ceReqPhyDisconnect,
-                                                (unsigned char) channel+1,
-                                                0,
-                                                NULL);
+                            ceReqClass1,
+                            ceReqPhyDisconnect,
+                            (unsigned char)channel + 1,
+                            0,
+                            NULL);
        pr_debug("%s: Sent HANGUP message to channel %lu\n",
-               sc_adapter[card]->devicename, channel+1);
+                sc_adapter[card]->devicename, channel + 1);
        return status;
 }
 
@@ -234,10 +234,10 @@ static int hangup(int card, unsigned long channel)
  */
 static int setl2(int card, unsigned long arg)
 {
-       int status =0;
-       int protocol,channel;
+       int status = 0;
+       int protocol, channel;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
@@ -249,14 +249,14 @@ static int setl2(int card, unsigned long arg)
         * check that the adapter is also set to the correct protocol
         */
        pr_debug("%s: Sending GetFrameFormat for channel %d\n",
-               sc_adapter[card]->devicename, channel+1);
+                sc_adapter[card]->devicename, channel + 1);
        status = sendmessage(card, CEPID, ceReqTypeCall,
-                               ceReqClass0,
-                               ceReqCallGetFrameFormat,
-                               (unsigned char)channel+1,
-                               1,
-                               (unsigned int *) protocol);
-       if(status) 
+                            ceReqClass0,
+                            ceReqCallGetFrameFormat,
+                            (unsigned char)channel + 1,
+                            1,
+                            (unsigned int *)protocol);
+       if (status)
                return status;
        return 0;
 }
@@ -268,7 +268,7 @@ static int setl3(int card, unsigned long channel)
 {
        int protocol = channel >> 8;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
@@ -279,26 +279,26 @@ static int setl3(int card, unsigned long channel)
 
 static int acceptb(int card, unsigned long channel)
 {
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
-       if(setup_buffers(card, channel+1))
+       if (setup_buffers(card, channel + 1))
        {
-               hangup(card, channel+1);
+               hangup(card, channel + 1);
                return -ENOBUFS;
        }
 
        pr_debug("%s: B-Channel connection accepted on channel %lu\n",
-               sc_adapter[card]->devicename, channel+1);
+                sc_adapter[card]->devicename, channel + 1);
        indicate_status(card, ISDN_STAT_BCONN, channel, NULL);
        return 0;
 }
 
 static int clreaz(int card, unsigned long arg)
 {
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
@@ -306,13 +306,13 @@ static int clreaz(int card, unsigned long arg)
        strcpy(sc_adapter[card]->channel[arg].eazlist, "");
        sc_adapter[card]->channel[arg].eazclear = 1;
        pr_debug("%s: EAZ List cleared for channel %lu\n",
-               sc_adapter[card]->devicename, arg+1);
+                sc_adapter[card]->devicename, arg + 1);
        return 0;
 }
 
 static int seteaz(int card, unsigned long arg, char *num)
 {
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
@@ -320,8 +320,8 @@ static int seteaz(int card, unsigned long arg, char *num)
        strcpy(sc_adapter[card]->channel[arg].eazlist, num);
        sc_adapter[card]->channel[arg].eazclear = 0;
        pr_debug("%s: EAZ list for channel %lu set to: %s\n",
-               sc_adapter[card]->devicename, arg+1,
-               sc_adapter[card]->channel[arg].eazlist);
+                sc_adapter[card]->devicename, arg + 1,
+                sc_adapter[card]->channel[arg].eazlist);
        return 0;
 }
 
@@ -329,14 +329,14 @@ int reset(int card)
 {
        unsigned long flags;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
        indicate_status(card, ISDN_STAT_STOP, 0, NULL);
 
-       if(sc_adapter[card]->EngineUp) {
+       if (sc_adapter[card]->EngineUp) {
                del_timer(&sc_adapter[card]->stat_timer);
        }
 
@@ -350,14 +350,14 @@ int reset(int card)
        add_timer(&sc_adapter[card]->reset_timer);
        spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
 
-       outb(0x1,sc_adapter[card]->ioport[SFT_RESET]);
+       outb(0x1, sc_adapter[card]->ioport[SFT_RESET]);
 
        pr_debug("%s: Adapter Reset\n", sc_adapter[card]->devicename);
        return 0;
 }
 
-void flushreadfifo (int card)
+void flushreadfifo(int card)
 {
-       while(inb(sc_adapter[card]->ioport[FIFO_STATUS]) & RF_HAS_DATA)
+       while (inb(sc_adapter[card]->ioport[FIFO_STATUS]) & RF_HAS_DATA)
                inb(sc_adapter[card]->ioport[FIFO_READ]);
 }
index 498f403..717003a 100644 (file)
@@ -38,26 +38,26 @@ static char *events[] = { "ISDN_STAT_STAVAIL",
                          "ISDN_STAT_CAUSE" };
 #endif
 
-int indicate_status(int card, int event,ulong Channel,char *Data)
+int indicate_status(int card, int event, ulong Channel, char *Data)
 {
        isdn_ctrl cmd;
 
 #ifdef DEBUG
        pr_debug("%s: Indicating event %s on Channel %d\n",
-               sc_adapter[card]->devicename, events[event-256], Channel);
+                sc_adapter[card]->devicename, events[event - 256], Channel);
 #endif
-       if (Data != NULL){
+       if (Data != NULL) {
                pr_debug("%s: Event data: %s\n", sc_adapter[card]->devicename,
-                       Data);
+                        Data);
                switch (event) {
-                       case ISDN_STAT_BSENT:
-                               memcpy(&cmd.parm.length, Data, sizeof(cmd.parm.length));
-                               break;
-                       case ISDN_STAT_ICALL:
-                               memcpy(&cmd.parm.setup, Data, sizeof(cmd.parm.setup));
-                               break;
-                       default:
-                               strcpy(cmd.parm.num, Data);
+               case ISDN_STAT_BSENT:
+                       memcpy(&cmd.parm.length, Data, sizeof(cmd.parm.length));
+                       break;
+               case ISDN_STAT_ICALL:
+                       memcpy(&cmd.parm.setup, Data, sizeof(cmd.parm.setup));
+                       break;
+               default:
+                       strcpy(cmd.parm.num, Data);
                }
        }
 
index 6273248..81fbe78 100644 (file)
  */
 
 /* Determine if a channel number is valid for the adapter */
-#define IS_VALID_CHANNEL(y,x)  ((x>0) && (x <= sc_adapter[y]->channels))
+#define IS_VALID_CHANNEL(y, x) ((x > 0) && (x <= sc_adapter[y]->channels))
 
 #endif
index 023de78..6b580b2 100644 (file)
@@ -27,9 +27,9 @@ static const char version[] = "2.0b1";
 static const char *boardname[] = { "DataCommute/BRI", "DataCommute/PRI", "TeleCommute/BRI" };
 
 /* insmod set parameters */
-static unsigned int io[] = {0,0,0,0};
-static unsigned char irq[] = {0,0,0,0};
-static unsigned long ram[] = {0,0,0,0};
+static unsigned int io[] = {0, 0, 0, 0};
+static unsigned char irq[] = {0, 0, 0, 0};
+static unsigned long ram[] = {0, 0, 0, 0};
 static bool do_reset = 0;
 
 module_param_array(io, int, NULL, 0);
@@ -62,7 +62,7 @@ static int __init sc_init(void)
 #endif
        pr_info("Copyright (C) 1996 SpellCaster Telecommunications Inc.\n");
 
-       while(b++ < MAX_CARDS - 1) {
+       while (b++ < MAX_CARDS - 1) {
                pr_debug("Probing for adapter #%d\n", b);
                /*
                 * Initialize reusable variables
@@ -72,17 +72,17 @@ static int __init sc_init(void)
                channels = 0;
                pgport = 0;
 
-               /* 
-                * See if we should probe for IO base 
+               /*
+                * See if we should probe for IO base
                 */
                pr_debug("I/O Base for board %d is 0x%x, %s probe\n", b, io[b],
-                       io[b] == 0 ? "will" : "won't");
-               if(io[b]) {
+                        io[b] == 0 ? "will" : "won't");
+               if (io[b]) {
                        /*
                         * No, I/O Base has been provided
                         */
-                       for (i = 0 ; i < MAX_IO_REGS - 1 ; i++) {
-                               if(!request_region(io[b] + i * 0x400, 1, "sc test")) {
+                       for (i = 0; i < MAX_IO_REGS - 1; i++) {
+                               if (!request_region(io[b] + i * 0x400, 1, "sc test")) {
                                        pr_debug("request_region for 0x%x failed\n", io[b] + i * 0x400);
                                        io[b] = 0;
                                        break;
@@ -93,13 +93,13 @@ static int __init sc_init(void)
                        /*
                         * Confirm the I/O Address with a test
                         */
-                       if(io[b] == 0) {
+                       if (io[b] == 0) {
                                pr_debug("I/O Address invalid.\n");
                                continue;
                        }
 
                        outb(0x18, io[b] + 0x400 * EXP_PAGE0);
-                       if(inb(io[b] + 0x400 * EXP_PAGE0) != 0x18) {
+                       if (inb(io[b] + 0x400 * EXP_PAGE0) != 0x18) {
                                pr_debug("I/O Base 0x%x fails test\n",
                                         io[b] + 0x400 * EXP_PAGE0);
                                continue;
@@ -109,12 +109,12 @@ static int __init sc_init(void)
                        /*
                         * Yes, probe for I/O Base
                         */
-                       if(probe_exhasted) {
+                       if (probe_exhasted) {
                                pr_debug("All probe addresses exhasted, skipping\n");
                                continue;
                        }
                        pr_debug("Probing for I/O...\n");
-                       for (i = last_base ; i <= IOBASE_MAX ; i += IOBASE_OFFSET) {
+                       for (i = last_base; i <= IOBASE_MAX; i += IOBASE_OFFSET) {
                                int found_io = 1;
                                if (i == IOBASE_MAX) {
                                        probe_exhasted = 1; /* No more addresses to probe */
@@ -122,19 +122,19 @@ static int __init sc_init(void)
                                }
                                last_base = i + IOBASE_OFFSET;
                                pr_debug("  checking 0x%x...", i);
-                               for ( j = 0 ; j < MAX_IO_REGS - 1 ; j++) {
-                                       if(!request_region(i + j * 0x400, 1, "sc test")) {
+                               for (j = 0; j < MAX_IO_REGS - 1; j++) {
+                                       if (!request_region(i + j * 0x400, 1, "sc test")) {
                                                pr_debug("Failed\n");
                                                found_io = 0;
                                                break;
                                        } else
                                                release_region(i + j * 0x400, 1);
-                               }       
+                               }
 
-                               if(found_io) {
+                               if (found_io) {
                                        io[b] = i;
                                        outb(0x18, io[b] + 0x400 * EXP_PAGE0);
-                                       if(inb(io[b] + 0x400 * EXP_PAGE0) != 0x18) { 
+                                       if (inb(io[b] + 0x400 * EXP_PAGE0) != 0x18) {
                                                pr_debug("Failed by test\n");
                                                continue;
                                        }
@@ -142,7 +142,7 @@ static int __init sc_init(void)
                                        break;
                                }
                        }
-                       if(probe_exhasted) {
+                       if (probe_exhasted) {
                                continue;
                        }
                }
@@ -150,23 +150,23 @@ static int __init sc_init(void)
                /*
                 * See if we should probe for shared RAM
                 */
-               if(do_reset) {
+               if (do_reset) {
                        pr_debug("Doing a SAFE probe reset\n");
                        outb(0xFF, io[b] + RESET_OFFSET);
                        msleep_interruptible(10000);
                }
                pr_debug("RAM Base for board %d is 0x%lx, %s probe\n", b,
-                       ram[b], ram[b] == 0 ? "will" : "won't");
+                        ram[b], ram[b] == 0 ? "will" : "won't");
 
-               if(ram[b]) {
+               if (ram[b]) {
                        /*
                         * No, the RAM base has been provided
                         * Just look for a signature and ID the
                         * board model
                         */
-                       if(request_region(ram[b], SRAM_PAGESIZE, "sc test")) {
+                       if (request_region(ram[b], SRAM_PAGESIZE, "sc test")) {
                                pr_debug("request_region for RAM base 0x%lx succeeded\n", ram[b]);
-                               model = identify_board(ram[b], io[b]);
+                               model = identify_board(ram[b], io[b]);
                                release_region(ram[b], SRAM_PAGESIZE);
                        }
                }
@@ -175,15 +175,15 @@ static int __init sc_init(void)
                         * Yes, probe for free RAM and look for
                         * a signature and id the board model
                         */
-                       for (i = SRAM_MIN ; i < SRAM_MAX ; i += SRAM_PAGESIZE) {
+                       for (i = SRAM_MIN; i < SRAM_MAX; i += SRAM_PAGESIZE) {
                                pr_debug("Checking RAM address 0x%x...\n", i);
-                               if(request_region(i, SRAM_PAGESIZE, "sc test")) {
+                               if (request_region(i, SRAM_PAGESIZE, "sc test")) {
                                        pr_debug("  request_region succeeded\n");
                                        model = identify_board(i, io[b]);
                                        release_region(i, SRAM_PAGESIZE);
                                        if (model >= 0) {
                                                pr_debug("  Identified a %s\n",
-                                                       boardname[model]);
+                                                        boardname[model]);
                                                ram[b] = i;
                                                break;
                                        }
@@ -196,19 +196,19 @@ static int __init sc_init(void)
                /*
                 * See if we found free RAM and the board model
                 */
-               if(!ram[b] || model < 0) {
+               if (!ram[b] || model < 0) {
                        /*
                         * Nope, there was no place in RAM for the
                         * board, or it couldn't be identified
                         */
-                        pr_debug("Failed to find an adapter at 0x%lx\n", ram[b]);
-                        continue;
+                       pr_debug("Failed to find an adapter at 0x%lx\n", ram[b]);
+                       continue;
                }
 
                /*
                 * Set the board's magic number, memory size and page register
                 */
-               switch(model) {
+               switch (model) {
                case PRI_BOARD:
                        channels = 23;
                        magic = 0x20000;
@@ -224,7 +224,7 @@ static int __init sc_init(void)
                        features = BRI_FEATURES;
                        break;
                }
-               switch(ram[b] >> 12 & 0x0F) {
+               switch (ram[b] >> 12 & 0x0F) {
                case 0x0:
                        pr_debug("RAM Page register set to EXP_PAGE0\n");
                        pgport = EXP_PAGE0;
@@ -250,12 +250,12 @@ static int __init sc_init(void)
                        continue;
                }
 
-               pr_debug("current IRQ: %d  b: %d\n",irq[b],b);
+               pr_debug("current IRQ: %d  b: %d\n", irq[b], b);
 
                /*
                 * Make sure we got an IRQ
                 */
-               if(!irq[b]) {
+               if (!irq[b]) {
                        /*
                         * No interrupt could be used
                         */
@@ -299,7 +299,7 @@ static int __init sc_init(void)
                }
                spin_lock_init(&sc_adapter[cinst]->lock);
 
-               if(!register_isdn(interface)) {
+               if (!register_isdn(interface)) {
                        /*
                         * Oops, couldn't register for some reason
                         */
@@ -344,30 +344,30 @@ static int __init sc_init(void)
                        kfree(interface);
                        kfree(sc_adapter[cinst]);
                        continue;
-                       
+
                }
                sc_adapter[cinst]->iobase = io[b];
-               for(i = 0 ; i < MAX_IO_REGS - 1 ; i++) {
+               for (i = 0; i < MAX_IO_REGS - 1; i++) {
                        sc_adapter[cinst]->ioport[i] = io[b] + i * 0x400;
                        request_region(sc_adapter[cinst]->ioport[i], 1,
-                                       interface->id);
+                                      interface->id);
                        pr_debug("Requesting I/O Port %#x\n",
-                               sc_adapter[cinst]->ioport[i]);
+                                sc_adapter[cinst]->ioport[i]);
                }
                sc_adapter[cinst]->ioport[IRQ_SELECT] = io[b] + 0x2;
                request_region(sc_adapter[cinst]->ioport[IRQ_SELECT], 1,
-                               interface->id);
+                              interface->id);
                pr_debug("Requesting I/O Port %#x\n",
-                               sc_adapter[cinst]->ioport[IRQ_SELECT]);
+                        sc_adapter[cinst]->ioport[IRQ_SELECT]);
                sc_adapter[cinst]->rambase = ram[b];
                request_region(sc_adapter[cinst]->rambase, SRAM_PAGESIZE,
-                               interface->id);
+                              interface->id);
 
-               pr_info("  %s (%d) - %s %d channels IRQ %d, I/O Base 0x%x, RAM Base 0x%lx\n", 
+               pr_info("  %s (%d) - %s %d channels IRQ %d, I/O Base 0x%x, RAM Base 0x%lx\n",
                        sc_adapter[cinst]->devicename,
                        sc_adapter[cinst]->driverId,
                        boardname[model], channels, irq[b], io[b], ram[b]);
-               
+
                /*
                 * reset the adapter to put things in motion
                 */
@@ -376,7 +376,7 @@ static int __init sc_init(void)
                cinst++;
                status = 0;
        }
-       if (status) 
+       if (status)
                pr_info("Failed to find any adapters, driver unloaded\n");
        return status;
 }
@@ -385,7 +385,7 @@ static void __exit sc_exit(void)
 {
        int i, j;
 
-       for(i = 0 ; i < cinst ; i++) {
+       for (i = 0; i < cinst; i++) {
                pr_debug("Cleaning up after adapter %d\n", i);
                /*
                 * kill the timers
@@ -417,14 +417,14 @@ static void __exit sc_exit(void)
                /*
                 * Release the I/O Port regions
                 */
-               for(j = 0 ; j < MAX_IO_REGS - 1; j++) {
+               for (j = 0; j < MAX_IO_REGS - 1; j++) {
                        release_region(sc_adapter[i]->ioport[j], 1);
                        pr_debug("Releasing I/O Port %#x\n",
-                               sc_adapter[i]->ioport[j]);
+                                sc_adapter[i]->ioport[j]);
                }
                release_region(sc_adapter[i]->ioport[IRQ_SELECT], 1);
                pr_debug("Releasing I/O Port %#x\n",
-                       sc_adapter[i]->ioport[IRQ_SELECT]);
+                        sc_adapter[i]->ioport[IRQ_SELECT]);
 
                /*
                 * Release any memory we alloced
@@ -447,19 +447,19 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
        int x;
 
        pr_debug("Attempting to identify adapter @ 0x%lx io 0x%x\n",
-               rambase, iobase);
+                rambase, iobase);
 
        /*
         * Enable the base pointer
         */
        outb(rambase >> 12, iobase + 0x2c00);
 
-       switch(rambase >> 12 & 0x0F) {
+       switch (rambase >> 12 & 0x0F) {
        case 0x0:
                pgport = iobase + PG0_OFFSET;
                pr_debug("Page Register offset is 0x%x\n", PG0_OFFSET);
                break;
-               
+
        case 0x4:
                pgport = iobase + PG1_OFFSET;
                pr_debug("Page Register offset is 0x%x\n", PG1_OFFSET);
@@ -486,7 +486,7 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
        msleep_interruptible(1000);
        sig = readl(rambase + SIG_OFFSET);
        pr_debug("Looking for a signature, got 0x%lx\n", sig);
-       if(sig == SIGNATURE)
+       if (sig == SIGNATURE)
                return PRI_BOARD;
 
        /*
@@ -496,7 +496,7 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
        msleep_interruptible(1000);
        sig = readl(rambase + SIG_OFFSET);
        pr_debug("Looking for a signature, got 0x%lx\n", sig);
-       if(sig == SIGNATURE)
+       if (sig == SIGNATURE)
                return BRI_BOARD;
 
        return -1;
@@ -506,7 +506,7 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
         */
        sig = readl(rambase + SIG_OFFSET);
        pr_debug("Looking for a signature, got 0x%lx\n", sig);
-       if(sig != SIGNATURE)
+       if (sig != SIGNATURE)
                return -1;
 
        dpm = (DualPortMemory *) rambase;
@@ -523,11 +523,11 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
         * Wait for the response
         */
        x = 0;
-       while((inb(iobase + FIFOSTAT_OFFSET) & RF_HAS_DATA) && x < 100) {
+       while ((inb(iobase + FIFOSTAT_OFFSET) & RF_HAS_DATA) && x < 100) {
                schedule_timeout_interruptible(1);
                x++;
        }
-       if(x == 100) {
+       if (x == 100) {
                pr_debug("Timeout waiting for response\n");
                return -1;
        }
@@ -540,11 +540,11 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
                 hwci.st_u_sense ? "S/T" : "U", hwci.ram_size,
                 hwci.serial_no, hwci.part_no, hwci.rev_no);
 
-       if(!strncmp(PRI_PARTNO, hwci.part_no, 6))
+       if (!strncmp(PRI_PARTNO, hwci.part_no, 6))
                return PRI_BOARD;
-       if(!strncmp(BRI_PARTNO, hwci.part_no, 6))
+       if (!strncmp(BRI_PARTNO, hwci.part_no, 6))
                return BRI_BOARD;
-               
+
        return -1;
 }
 
index f0225bc..e80cc76 100644 (file)
@@ -22,7 +22,7 @@
 #include <linux/interrupt.h>
 
 /*
- * 
+ *
  */
 irqreturn_t interrupt_handler(int dummy, void *card_inst)
 {
@@ -31,15 +31,15 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
        int channel;
        int card = (int)(unsigned long) card_inst;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return IRQ_NONE;
        }
 
        pr_debug("%s: Entered Interrupt handler\n",
-                       sc_adapter[card]->devicename);
-       
-       /*
+                sc_adapter[card]->devicename);
+
+       /*
         * Pull all of the waiting messages off the response queue
         */
        while (!receivemessage(card, &rcvmsg)) {
@@ -47,31 +47,31 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                 * Push the message to the adapter structure for
                 * send_and_receive to snoop
                 */
-               if(sc_adapter[card]->want_async_messages)
+               if (sc_adapter[card]->want_async_messages)
                        memcpy(&(sc_adapter[card]->async_msg),
-                                       &rcvmsg, sizeof(RspMessage));
+                              &rcvmsg, sizeof(RspMessage));
 
                channel = (unsigned int) rcvmsg.phy_link_no;
-               
+
                /*
                 * Trap Invalid request messages
                 */
-               if(IS_CM_MESSAGE(rcvmsg, 0, 0, Invalid)) {
-                       pr_debug("%s: Invalid request Message, rsp_status = %d\n", 
-                               sc_adapter[card]->devicename,
-                               rcvmsg.rsp_status);
-                       break;  
+               if (IS_CM_MESSAGE(rcvmsg, 0, 0, Invalid)) {
+                       pr_debug("%s: Invalid request Message, rsp_status = %d\n",
+                                sc_adapter[card]->devicename,
+                                rcvmsg.rsp_status);
+                       break;
                }
-               
+
                /*
                 * Check for a linkRead message
                 */
                if (IS_CE_MESSAGE(rcvmsg, Lnk, 1, Read))
                {
                        pr_debug("%s: Received packet 0x%x bytes long at 0x%lx\n",
-                                               sc_adapter[card]->devicename,
-                                               rcvmsg.msg_data.response.msg_len,
-                                               rcvmsg.msg_data.response.buff_offset);
+                                sc_adapter[card]->devicename,
+                                rcvmsg.msg_data.response.msg_len,
+                                rcvmsg.msg_data.response.buff_offset);
                        rcvpkt(card, &rcvmsg);
                        continue;
 
@@ -80,49 +80,49 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                /*
                 * Handle a write acknoledgement
                 */
-               if(IS_CE_MESSAGE(rcvmsg, Lnk, 1, Write)) {
+               if (IS_CE_MESSAGE(rcvmsg, Lnk, 1, Write)) {
                        pr_debug("%s: Packet Send ACK on channel %d\n",
-                               sc_adapter[card]->devicename,
-                               rcvmsg.phy_link_no);
-                       sc_adapter[card]->channel[rcvmsg.phy_link_no-1].free_sendbufs++;
+                                sc_adapter[card]->devicename,
+                                rcvmsg.phy_link_no);
+                       sc_adapter[card]->channel[rcvmsg.phy_link_no - 1].free_sendbufs++;
                        continue;
                }
 
                /*
                 * Handle a connection message
                 */
-               if (IS_CE_MESSAGE(rcvmsg, Phy, 1, Connect)) 
+               if (IS_CE_MESSAGE(rcvmsg, Phy, 1, Connect))
                {
                        unsigned int callid;
-                       setup_parm setup;       
+                       setup_parm setup;
                        pr_debug("%s: Connect message: line %d: status %d: cause 0x%x\n",
-                                               sc_adapter[card]->devicename,
-                                               rcvmsg.phy_link_no,
-                                               rcvmsg.rsp_status,
-                                               rcvmsg.msg_data.byte_array[2]);
-                       
-                       memcpy(&callid,rcvmsg.msg_data.byte_array,sizeof(int));
-                       if(callid>=0x8000 && callid<=0xFFFF)
-                       {               
+                                sc_adapter[card]->devicename,
+                                rcvmsg.phy_link_no,
+                                rcvmsg.rsp_status,
+                                rcvmsg.msg_data.byte_array[2]);
+
+                       memcpy(&callid, rcvmsg.msg_data.byte_array, sizeof(int));
+                       if (callid >= 0x8000 && callid <= 0xFFFF)
+                       {
                                pr_debug("%s: Got Dial-Out Rsp\n",
-                                       sc_adapter[card]->devicename);
+                                        sc_adapter[card]->devicename);
                                indicate_status(card, ISDN_STAT_DCONN,
-                                               (unsigned long)rcvmsg.phy_link_no-1,NULL);
-                               
+                                               (unsigned long)rcvmsg.phy_link_no - 1, NULL);
+
                        }
-                       else if(callid>=0x0000 && callid<=0x7FFF)
+                       else if (callid >= 0x0000 && callid <= 0x7FFF)
                        {
                                int len;
 
                                pr_debug("%s: Got Incoming Call\n",
-                                               sc_adapter[card]->devicename);
+                                        sc_adapter[card]->devicename);
                                len = strlcpy(setup.phone, &(rcvmsg.msg_data.byte_array[4]),
-                                               sizeof(setup.phone));
+                                             sizeof(setup.phone));
                                if (len >= sizeof(setup.phone))
                                        continue;
                                len = strlcpy(setup.eazmsn,
-                                               sc_adapter[card]->channel[rcvmsg.phy_link_no - 1].dn,
-                                               sizeof(setup.eazmsn));
+                                             sc_adapter[card]->channel[rcvmsg.phy_link_no - 1].dn,
+                                             sizeof(setup.eazmsn));
                                if (len >= sizeof(setup.eazmsn))
                                        continue;
                                setup.si1 = 7;
@@ -130,8 +130,8 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                                setup.plan = 0;
                                setup.screen = 0;
 
-                               indicate_status(card, ISDN_STAT_ICALL,(unsigned long)rcvmsg.phy_link_no-1,(char *)&setup);
-                               indicate_status(card, ISDN_STAT_DCONN,(unsigned long)rcvmsg.phy_link_no-1,NULL);
+                               indicate_status(card, ISDN_STAT_ICALL, (unsigned long)rcvmsg.phy_link_no - 1, (char *)&setup);
+                               indicate_status(card, ISDN_STAT_DCONN, (unsigned long)rcvmsg.phy_link_no - 1, NULL);
                        }
                        continue;
                }
@@ -139,16 +139,16 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                /*
                 * Handle a disconnection message
                 */
-               if (IS_CE_MESSAGE(rcvmsg, Phy, 1, Disconnect)) 
+               if (IS_CE_MESSAGE(rcvmsg, Phy, 1, Disconnect))
                {
                        pr_debug("%s: disconnect message: line %d: status %d: cause 0x%x\n",
-                                               sc_adapter[card]->devicename,
-                                               rcvmsg.phy_link_no,
-                                               rcvmsg.rsp_status,
-                                               rcvmsg.msg_data.byte_array[2]);
+                                sc_adapter[card]->devicename,
+                                rcvmsg.phy_link_no,
+                                rcvmsg.rsp_status,
+                                rcvmsg.msg_data.byte_array[2]);
 
-                       indicate_status(card, ISDN_STAT_BHUP,(unsigned long)rcvmsg.phy_link_no-1,NULL);
-                       indicate_status(card, ISDN_STAT_DHUP,(unsigned long)rcvmsg.phy_link_no-1,NULL);
+                       indicate_status(card, ISDN_STAT_BHUP, (unsigned long)rcvmsg.phy_link_no - 1, NULL);
+                       indicate_status(card, ISDN_STAT_DHUP, (unsigned long)rcvmsg.phy_link_no - 1, NULL);
                        continue;
 
                }
@@ -158,10 +158,10 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                 */
                if (IS_CM_MESSAGE(rcvmsg, 5, 0, MiscEngineUp)) {
                        pr_debug("%s: Received EngineUp message\n",
-                               sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                        sc_adapter[card]->EngineUp = 1;
-                       sendmessage(card, CEPID,ceReqTypeCall,ceReqClass0,ceReqCallGetMyNumber,1,0,NULL);
-                       sendmessage(card, CEPID,ceReqTypeCall,ceReqClass0,ceReqCallGetMyNumber,2,0,NULL);
+                       sendmessage(card, CEPID, ceReqTypeCall, ceReqClass0, ceReqCallGetMyNumber, 1, 0, NULL);
+                       sendmessage(card, CEPID, ceReqTypeCall, ceReqClass0, ceReqCallGetMyNumber, 2, 0, NULL);
                        init_timer(&sc_adapter[card]->stat_timer);
                        sc_adapter[card]->stat_timer.function = check_phystat;
                        sc_adapter[card]->stat_timer.data = card;
@@ -175,25 +175,25 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                 */
                if (IS_CM_MESSAGE(rcvmsg, 2, 0, StartProc)) {
                        pr_debug("%s: StartProc Response Status %d\n",
-                               sc_adapter[card]->devicename,
-                               rcvmsg.rsp_status);
+                                sc_adapter[card]->devicename,
+                                rcvmsg.rsp_status);
                        continue;
                }
 
                /*
                 * Handle a GetMyNumber Rsp
                 */
-               if (IS_CE_MESSAGE(rcvmsg,Call,0,GetMyNumber)){
+               if (IS_CE_MESSAGE(rcvmsg, Call, 0, GetMyNumber)) {
                        strlcpy(sc_adapter[card]->channel[rcvmsg.phy_link_no - 1].dn,
                                rcvmsg.msg_data.byte_array,
                                sizeof(rcvmsg.msg_data.byte_array));
                        continue;
                }
-                       
+
                /*
                 * PhyStatus response
                 */
-               if(IS_CE_MESSAGE(rcvmsg, Phy, 2, Status)) {
+               if (IS_CE_MESSAGE(rcvmsg, Phy, 2, Status)) {
                        unsigned int b1stat, b2stat;
 
                        /*
@@ -204,30 +204,30 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
 
                        sc_adapter[card]->nphystat = (b2stat >> 8) | b1stat; /* endian?? */
                        pr_debug("%s: PhyStat is 0x%2x\n",
-                               sc_adapter[card]->devicename,
-                               sc_adapter[card]->nphystat);
+                                sc_adapter[card]->devicename,
+                                sc_adapter[card]->nphystat);
                        continue;
                }
 
 
-               /* 
+               /*
                 * Handle a GetFramFormat
                 */
-               if(IS_CE_MESSAGE(rcvmsg, Call, 0, GetFrameFormat)) {
-                       if(rcvmsg.msg_data.byte_array[0] != HDLC_PROTO) {
+               if (IS_CE_MESSAGE(rcvmsg, Call, 0, GetFrameFormat)) {
+                       if (rcvmsg.msg_data.byte_array[0] != HDLC_PROTO) {
                                unsigned int proto = HDLC_PROTO;
                                /*
                                 * Set board format to HDLC if it wasn't already
                                 */
                                pr_debug("%s: current frame format: 0x%x, will change to HDLC\n",
-                                               sc_adapter[card]->devicename,
-                                       rcvmsg.msg_data.byte_array[0]);
+                                        sc_adapter[card]->devicename,
+                                        rcvmsg.msg_data.byte_array[0]);
                                sendmessage(card, CEPID, ceReqTypeCall,
-                                               ceReqClass0,
-                                               ceReqCallSetFrameFormat,
-                                               (unsigned char) channel +1,
-                                               1,&proto);
-                               }
+                                           ceReqClass0,
+                                           ceReqCallSetFrameFormat,
+                                           (unsigned char)channel + 1,
+                                           1, &proto);
+                       }
                        continue;
                }
 
@@ -235,13 +235,13 @@ irqreturn_t interrupt_handler(int dummy, void *card_inst)
                 * Hmm...
                 */
                pr_debug("%s: Received unhandled message (%d,%d,%d) link %d\n",
-                       sc_adapter[card]->devicename,
-                       rcvmsg.type, rcvmsg.class, rcvmsg.code,
-                       rcvmsg.phy_link_no);
+                        sc_adapter[card]->devicename,
+                        rcvmsg.type, rcvmsg.class, rcvmsg.code,
+                        rcvmsg.phy_link_no);
 
        }       /* while */
 
        pr_debug("%s: Exiting Interrupt Handler\n",
-                       sc_adapter[card]->devicename);
+                sc_adapter[card]->devicename);
        return IRQ_HANDLED;
 }
index 4cfdbe0..e63983a 100644 (file)
@@ -30,11 +30,11 @@ int sc_ioctl(int card, scs_ioctl *data)
        if (!rcvmsg)
                return -ENOMEM;
 
-       switch(data->command) {
+       switch (data->command) {
        case SCIOCRESET:        /* Perform a hard reset of the adapter */
        {
                pr_debug("%s: SCIOCRESET: ioctl received\n",
-                       sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                sc_adapter[card]->StartOnReset = 0;
                kfree(rcvmsg);
                return reset(card);
@@ -50,10 +50,10 @@ int sc_ioctl(int card, scs_ioctl *data)
                        return -ENOMEM;
                }
                pr_debug("%s: SCIOLOAD: ioctl received\n",
-                               sc_adapter[card]->devicename);
-               if(sc_adapter[card]->EngineUp) {
+                        sc_adapter[card]->devicename);
+               if (sc_adapter[card]->EngineUp) {
                        pr_debug("%s: SCIOCLOAD: command failed, LoadProc while engine running.\n",
-                               sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                        kfree(rcvmsg);
                        kfree(srec);
                        return -1;
@@ -69,18 +69,18 @@ int sc_ioctl(int card, scs_ioctl *data)
                }
 
                status = send_and_receive(card, CMPID, cmReqType2, cmReqClass0, cmReqLoadProc,
-                               0, SCIOC_SRECSIZE, srec, rcvmsg, SAR_TIMEOUT);
+                                         0, SCIOC_SRECSIZE, srec, rcvmsg, SAR_TIMEOUT);
                kfree(rcvmsg);
                kfree(srec);
 
-               if(status) {
-                       pr_debug("%s: SCIOCLOAD: command failed, status = %d\n", 
-                               sc_adapter[card]->devicename, status);
+               if (status) {
+                       pr_debug("%s: SCIOCLOAD: command failed, status = %d\n",
+                                sc_adapter[card]->devicename, status);
                        return -1;
                }
                else {
                        pr_debug("%s: SCIOCLOAD: command successful\n",
-                                       sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                        return 0;
                }
        }
@@ -89,10 +89,10 @@ int sc_ioctl(int card, scs_ioctl *data)
        {
                kfree(rcvmsg);
                pr_debug("%s: SCIOSTART: ioctl received\n",
-                               sc_adapter[card]->devicename);
-               if(sc_adapter[card]->EngineUp) {
+                        sc_adapter[card]->devicename);
+               if (sc_adapter[card]->EngineUp) {
                        pr_debug("%s: SCIOCSTART: command failed, engine already running.\n",
-                               sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                        return -1;
                }
 
@@ -104,7 +104,7 @@ int sc_ioctl(int card, scs_ioctl *data)
        case SCIOCSETSWITCH:
        {
                pr_debug("%s: SCIOSETSWITCH: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                /*
                 * Get the switch type from user space
@@ -115,41 +115,41 @@ int sc_ioctl(int card, scs_ioctl *data)
                }
 
                pr_debug("%s: SCIOCSETSWITCH: setting switch type to %d\n",
-                       sc_adapter[card]->devicename,
-                       switchtype);
+                        sc_adapter[card]->devicename,
+                        switchtype);
                status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0, ceReqCallSetSwitchType,
-                                               0, sizeof(char),&switchtype, rcvmsg, SAR_TIMEOUT);
-               if(!status && !(rcvmsg->rsp_status)) {
+                                         0, sizeof(char), &switchtype, rcvmsg, SAR_TIMEOUT);
+               if (!status && !(rcvmsg->rsp_status)) {
                        pr_debug("%s: SCIOCSETSWITCH: command successful\n",
-                               sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                        kfree(rcvmsg);
                        return 0;
                }
                else {
                        pr_debug("%s: SCIOCSETSWITCH: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(rcvmsg);
                        return status;
                }
        }
-               
+
        case SCIOCGETSWITCH:
        {
                pr_debug("%s: SCIOGETSWITCH: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                /*
                 * Get the switch type from the board
                 */
-               status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0, 
-                       ceReqCallGetSwitchType, 0, 0, NULL, rcvmsg, SAR_TIMEOUT);
+               status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0,
+                                         ceReqCallGetSwitchType, 0, 0, NULL, rcvmsg, SAR_TIMEOUT);
                if (!status && !(rcvmsg->rsp_status)) {
                        pr_debug("%s: SCIOCGETSWITCH: command successful\n",
-                                       sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                }
                else {
                        pr_debug("%s: SCIOCGETSWITCH: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(rcvmsg);
                        return status;
                }
@@ -172,7 +172,7 @@ int sc_ioctl(int card, scs_ioctl *data)
        case SCIOCGETSPID:
        {
                pr_debug("%s: SCIOGETSPID: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                spid = kzalloc(SCIOC_SPIDSIZE, GFP_KERNEL);
                if (!spid) {
@@ -183,13 +183,13 @@ int sc_ioctl(int card, scs_ioctl *data)
                 * Get the spid from the board
                 */
                status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0, ceReqCallGetSPID,
-                                       data->channel, 0, NULL, rcvmsg, SAR_TIMEOUT);
+                                         data->channel, 0, NULL, rcvmsg, SAR_TIMEOUT);
                if (!status) {
                        pr_debug("%s: SCIOCGETSPID: command successful\n",
-                                       sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                } else {
                        pr_debug("%s: SCIOCGETSPID: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(spid);
                        kfree(rcvmsg);
                        return status;
@@ -208,12 +208,12 @@ int sc_ioctl(int card, scs_ioctl *data)
                kfree(spid);
                kfree(rcvmsg);
                return 0;
-       }       
+       }
 
        case SCIOCSETSPID:
        {
                pr_debug("%s: DCBIOSETSPID: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                /*
                 * Get the spid from user space
@@ -224,21 +224,21 @@ int sc_ioctl(int card, scs_ioctl *data)
                        return PTR_ERR(spid);
                }
 
-               pr_debug("%s: SCIOCSETSPID: setting channel %d spid to %s\n", 
-                       sc_adapter[card]->devicename, data->channel, spid);
-               status = send_and_receive(card, CEPID, ceReqTypeCall, 
-                       ceReqClass0, ceReqCallSetSPID, data->channel, 
-                       strlen(spid), spid, rcvmsg, SAR_TIMEOUT);
-               if(!status && !(rcvmsg->rsp_status)) {
-                       pr_debug("%s: SCIOCSETSPID: command successful\n", 
-                               sc_adapter[card]->devicename);
+               pr_debug("%s: SCIOCSETSPID: setting channel %d spid to %s\n",
+                        sc_adapter[card]->devicename, data->channel, spid);
+               status = send_and_receive(card, CEPID, ceReqTypeCall,
+                                         ceReqClass0, ceReqCallSetSPID, data->channel,
+                                         strlen(spid), spid, rcvmsg, SAR_TIMEOUT);
+               if (!status && !(rcvmsg->rsp_status)) {
+                       pr_debug("%s: SCIOCSETSPID: command successful\n",
+                                sc_adapter[card]->devicename);
                        kfree(rcvmsg);
                        kfree(spid);
                        return 0;
                }
                else {
                        pr_debug("%s: SCIOCSETSPID: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(rcvmsg);
                        kfree(spid);
                        return status;
@@ -248,20 +248,20 @@ int sc_ioctl(int card, scs_ioctl *data)
        case SCIOCGETDN:
        {
                pr_debug("%s: SCIOGETDN: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                /*
                 * Get the dn from the board
                 */
                status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0, ceReqCallGetMyNumber,
-                                       data->channel, 0, NULL, rcvmsg, SAR_TIMEOUT);
+                                         data->channel, 0, NULL, rcvmsg, SAR_TIMEOUT);
                if (!status) {
                        pr_debug("%s: SCIOCGETDN: command successful\n",
-                                       sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                }
                else {
                        pr_debug("%s: SCIOCGETDN: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(rcvmsg);
                        return status;
                }
@@ -283,12 +283,12 @@ int sc_ioctl(int card, scs_ioctl *data)
                }
                kfree(dn);
                return 0;
-       }       
+       }
 
        case SCIOCSETDN:
        {
                pr_debug("%s: SCIOSETDN: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                /*
                 * Get the spid from user space
@@ -299,21 +299,21 @@ int sc_ioctl(int card, scs_ioctl *data)
                        return PTR_ERR(dn);
                }
 
-               pr_debug("%s: SCIOCSETDN: setting channel %d dn to %s\n", 
-                       sc_adapter[card]->devicename, data->channel, dn);
-               status = send_and_receive(card, CEPID, ceReqTypeCall, 
-                       ceReqClass0, ceReqCallSetMyNumber, data->channel, 
-                       strlen(dn),dn,rcvmsg, SAR_TIMEOUT);
-               if(!status && !(rcvmsg->rsp_status)) {
-                       pr_debug("%s: SCIOCSETDN: command successful\n", 
-                               sc_adapter[card]->devicename);
+               pr_debug("%s: SCIOCSETDN: setting channel %d dn to %s\n",
+                        sc_adapter[card]->devicename, data->channel, dn);
+               status = send_and_receive(card, CEPID, ceReqTypeCall,
+                                         ceReqClass0, ceReqCallSetMyNumber, data->channel,
+                                         strlen(dn), dn, rcvmsg, SAR_TIMEOUT);
+               if (!status && !(rcvmsg->rsp_status)) {
+                       pr_debug("%s: SCIOCSETDN: command successful\n",
+                                sc_adapter[card]->devicename);
                        kfree(rcvmsg);
                        kfree(dn);
                        return 0;
                }
                else {
                        pr_debug("%s: SCIOCSETDN: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(rcvmsg);
                        kfree(dn);
                        return status;
@@ -323,11 +323,11 @@ int sc_ioctl(int card, scs_ioctl *data)
        case SCIOCTRACE:
 
                pr_debug("%s: SCIOTRACE: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 /*             sc_adapter[card]->trace = !sc_adapter[card]->trace;
                pr_debug("%s: SCIOCTRACE: tracing turned %s\n",
-                               sc_adapter[card]->devicename,
-                       sc_adapter[card]->trace ? "ON" : "OFF"); */
+               sc_adapter[card]->devicename,
+               sc_adapter[card]->trace ? "ON" : "OFF"); */
                break;
 
        case SCIOCSTAT:
@@ -335,7 +335,7 @@ int sc_ioctl(int card, scs_ioctl *data)
                boardInfo *bi;
 
                pr_debug("%s: SCIOSTAT: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                bi = kzalloc(sizeof(boardInfo), GFP_KERNEL);
                if (!bi) {
@@ -358,20 +358,20 @@ int sc_ioctl(int card, scs_ioctl *data)
        case SCIOCGETSPEED:
        {
                pr_debug("%s: SCIOGETSPEED: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
 
                /*
                 * Get the speed from the board
                 */
-               status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0, 
-                       ceReqCallGetCallType, data->channel, 0, NULL, rcvmsg, SAR_TIMEOUT);
+               status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0,
+                                         ceReqCallGetCallType, data->channel, 0, NULL, rcvmsg, SAR_TIMEOUT);
                if (!status && !(rcvmsg->rsp_status)) {
                        pr_debug("%s: SCIOCGETSPEED: command successful\n",
-                               sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                }
                else {
                        pr_debug("%s: SCIOCGETSPEED: command failed (status = %d)\n",
-                               sc_adapter[card]->devicename, status);
+                                sc_adapter[card]->devicename, status);
                        kfree(rcvmsg);
                        return status;
                }
@@ -392,12 +392,12 @@ int sc_ioctl(int card, scs_ioctl *data)
 
        case SCIOCSETSPEED:
                pr_debug("%s: SCIOCSETSPEED: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                break;
 
        case SCIOCLOOPTST:
                pr_debug("%s: SCIOCLOOPTST: ioctl received\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                break;
 
        default:
@@ -432,32 +432,32 @@ static int GetStatus(int card, boardInfo *bi)
         * Get the current PhyStats and LnkStats
         */
        status = send_and_receive(card, CEPID, ceReqTypePhy, ceReqClass2,
-               ceReqPhyStatus, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
-       if(!status) {
-               if(sc_adapter[card]->model < PRI_BOARD) {
+                                 ceReqPhyStatus, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+       if (!status) {
+               if (sc_adapter[card]->model < PRI_BOARD) {
                        bi->l1_status = rcvmsg.msg_data.byte_array[2];
-                       for(i = 0 ; i < BRI_CHANNELS ; i++)
+                       for (i = 0; i < BRI_CHANNELS; i++)
                                bi->status.bristats[i].phy_stat =
                                        rcvmsg.msg_data.byte_array[i];
                }
                else {
                        bi->l1_status = rcvmsg.msg_data.byte_array[0];
                        bi->l2_status = rcvmsg.msg_data.byte_array[1];
-                       for(i = 0 ; i < PRI_CHANNELS ; i++)
-                               bi->status.pristats[i].phy_stat = 
-                                       rcvmsg.msg_data.byte_array[i+2];
+                       for (i = 0; i < PRI_CHANNELS; i++)
+                               bi->status.pristats[i].phy_stat =
+                                       rcvmsg.msg_data.byte_array[i + 2];
                }
        }
-       
+
        /*
         * Get the call types for each channel
         */
-       for (i = 0 ; i < sc_adapter[card]->nChannels ; i++) {
+       for (i = 0; i < sc_adapter[card]->nChannels; i++) {
                status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0,
-                       ceReqCallGetCallType, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
-               if(!status) {
+                                         ceReqCallGetCallType, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+               if (!status) {
                        if (sc_adapter[card]->model == PRI_BOARD) {
-                               bi->status.pristats[i].call_type = 
+                               bi->status.pristats[i].call_type =
                                        rcvmsg.msg_data.byte_array[0];
                        }
                        else {
@@ -466,7 +466,7 @@ static int GetStatus(int card, boardInfo *bi)
                        }
                }
        }
-       
+
        /*
         * If PRI, get the call states and service states for each channel
         */
@@ -475,10 +475,10 @@ static int GetStatus(int card, boardInfo *bi)
                 * Get the call states
                 */
                status = send_and_receive(card, CEPID, ceReqTypeStat, ceReqClass2,
-                       ceReqPhyChCallState, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
-               if(!status) {
-                       for( i = 0 ; i < PRI_CHANNELS ; i++ )
-                               bi->status.pristats[i].call_state = 
+                                         ceReqPhyChCallState, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+               if (!status) {
+                       for (i = 0; i < PRI_CHANNELS; i++)
+                               bi->status.pristats[i].call_state =
                                        rcvmsg.msg_data.byte_array[i];
                }
 
@@ -486,27 +486,27 @@ static int GetStatus(int card, boardInfo *bi)
                 * Get the service states
                 */
                status = send_and_receive(card, CEPID, ceReqTypeStat, ceReqClass2,
-                       ceReqPhyChServState, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
-               if(!status) {
-                       for( i = 0 ; i < PRI_CHANNELS ; i++ )
-                               bi->status.pristats[i].serv_state = 
+                                         ceReqPhyChServState, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+               if (!status) {
+                       for (i = 0; i < PRI_CHANNELS; i++)
+                               bi->status.pristats[i].serv_state =
                                        rcvmsg.msg_data.byte_array[i];
                }
 
                /*
                 * Get the link stats for the channels
                 */
-               for (i = 1 ; i <= PRI_CHANNELS ; i++) {
+               for (i = 1; i <= PRI_CHANNELS; i++) {
                        status = send_and_receive(card, CEPID, ceReqTypeLnk, ceReqClass0,
-                               ceReqLnkGetStats, i, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+                                                 ceReqLnkGetStats, i, 0, NULL, &rcvmsg, SAR_TIMEOUT);
                        if (!status) {
-                               bi->status.pristats[i-1].link_stats.tx_good =
+                               bi->status.pristats[i - 1].link_stats.tx_good =
                                        (unsigned long)rcvmsg.msg_data.byte_array[0];
-                               bi->status.pristats[i-1].link_stats.tx_bad =
+                               bi->status.pristats[i - 1].link_stats.tx_bad =
                                        (unsigned long)rcvmsg.msg_data.byte_array[4];
-                               bi->status.pristats[i-1].link_stats.rx_good =
+                               bi->status.pristats[i - 1].link_stats.rx_good =
                                        (unsigned long)rcvmsg.msg_data.byte_array[8];
-                               bi->status.pristats[i-1].link_stats.rx_bad =
+                               bi->status.pristats[i - 1].link_stats.rx_bad =
                                        (unsigned long)rcvmsg.msg_data.byte_array[12];
                        }
                }
@@ -515,7 +515,7 @@ static int GetStatus(int card, boardInfo *bi)
                 * Link stats for the D channel
                 */
                status = send_and_receive(card, CEPID, ceReqTypeLnk, ceReqClass0,
-                       ceReqLnkGetStats, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+                                         ceReqLnkGetStats, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
                if (!status) {
                        bi->dch_stats.tx_good = (unsigned long)rcvmsg.msg_data.byte_array[0];
                        bi->dch_stats.tx_bad = (unsigned long)rcvmsg.msg_data.byte_array[4];
@@ -534,49 +534,49 @@ static int GetStatus(int card, boardInfo *bi)
         * Get the link stats for the channels
         */
        status = send_and_receive(card, CEPID, ceReqTypeLnk, ceReqClass0,
-               ceReqLnkGetStats, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+                                 ceReqLnkGetStats, 0, 0, NULL, &rcvmsg, SAR_TIMEOUT);
        if (!status) {
                bi->dch_stats.tx_good = (unsigned long)rcvmsg.msg_data.byte_array[0];
                bi->dch_stats.tx_bad = (unsigned long)rcvmsg.msg_data.byte_array[4];
                bi->dch_stats.rx_good = (unsigned long)rcvmsg.msg_data.byte_array[8];
                bi->dch_stats.rx_bad = (unsigned long)rcvmsg.msg_data.byte_array[12];
-               bi->status.bristats[0].link_stats.tx_good = 
+               bi->status.bristats[0].link_stats.tx_good =
                        (unsigned long)rcvmsg.msg_data.byte_array[16];
-               bi->status.bristats[0].link_stats.tx_bad = 
+               bi->status.bristats[0].link_stats.tx_bad =
                        (unsigned long)rcvmsg.msg_data.byte_array[20];
-               bi->status.bristats[0].link_stats.rx_good = 
+               bi->status.bristats[0].link_stats.rx_good =
                        (unsigned long)rcvmsg.msg_data.byte_array[24];
-               bi->status.bristats[0].link_stats.rx_bad = 
+               bi->status.bristats[0].link_stats.rx_bad =
                        (unsigned long)rcvmsg.msg_data.byte_array[28];
-               bi->status.bristats[1].link_stats.tx_good = 
+               bi->status.bristats[1].link_stats.tx_good =
                        (unsigned long)rcvmsg.msg_data.byte_array[32];
-               bi->status.bristats[1].link_stats.tx_bad = 
+               bi->status.bristats[1].link_stats.tx_bad =
                        (unsigned long)rcvmsg.msg_data.byte_array[36];
-               bi->status.bristats[1].link_stats.rx_good = 
+               bi->status.bristats[1].link_stats.rx_good =
                        (unsigned long)rcvmsg.msg_data.byte_array[40];
-               bi->status.bristats[1].link_stats.rx_bad = 
+               bi->status.bristats[1].link_stats.rx_bad =
                        (unsigned long)rcvmsg.msg_data.byte_array[44];
        }
 
        /*
         * Get the SPIDs
         */
-       for (i = 0 ; i < BRI_CHANNELS ; i++) {
+       for (i = 0; i < BRI_CHANNELS; i++) {
                status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0,
-                       ceReqCallGetSPID, i+1, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+                                         ceReqCallGetSPID, i + 1, 0, NULL, &rcvmsg, SAR_TIMEOUT);
                if (!status)
                        strcpy(bi->status.bristats[i].spid, rcvmsg.msg_data.byte_array);
        }
-               
+
        /*
         * Get the DNs
         */
-       for (i = 0 ; i < BRI_CHANNELS ; i++) {
+       for (i = 0; i < BRI_CHANNELS; i++) {
                status = send_and_receive(card, CEPID, ceReqTypeCall, ceReqClass0,
-                       ceReqCallGetMyNumber, i+1, 0, NULL, &rcvmsg, SAR_TIMEOUT);
+                                         ceReqCallGetMyNumber, i + 1, 0, NULL, &rcvmsg, SAR_TIMEOUT);
                if (!status)
                        strcpy(bi->status.bristats[i].dn, rcvmsg.msg_data.byte_array);
        }
-               
+
        return 0;
 }
index 0b4c4f1..9679a19 100644 (file)
@@ -25,7 +25,7 @@
 /*
  * receive a message from the board
  */
-int receivemessage(int card, RspMessage *rspmsg) 
+int receivemessage(int card, RspMessage *rspmsg)
 {
        DualPortMemory *dpm;
        unsigned long flags;
@@ -34,9 +34,9 @@ int receivemessage(int card, RspMessage *rspmsg)
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return -EINVAL;
        }
-       
+
        pr_debug("%s: Entered receivemessage\n",
-                       sc_adapter[card]->devicename);
+                sc_adapter[card]->devicename);
 
        /*
         * See if there are messages waiting
@@ -47,47 +47,47 @@ int receivemessage(int card, RspMessage *rspmsg)
                 */
                spin_lock_irqsave(&sc_adapter[card]->lock, flags);
                outb((sc_adapter[card]->shmem_magic >> 14) | 0x80,
-                       sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
+                    sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
                dpm = (DualPortMemory *) sc_adapter[card]->rambase;
-               memcpy_fromio(rspmsg, &(dpm->rsp_queue[dpm->rsp_tail]), 
-                       MSG_LEN);
-               dpm->rsp_tail = (dpm->rsp_tail+1) % MAX_MESSAGES;
+               memcpy_fromio(rspmsg, &(dpm->rsp_queue[dpm->rsp_tail]),
+                             MSG_LEN);
+               dpm->rsp_tail = (dpm->rsp_tail + 1) % MAX_MESSAGES;
                inb(sc_adapter[card]->ioport[FIFO_READ]);
                spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
                /*
                 * Tell the board that the message is received
                 */
                pr_debug("%s: Received Message seq:%d pid:%d time:%d cmd:%d "
-                               "cnt:%d (type,class,code):(%d,%d,%d) "
-                               "link:%d stat:0x%x\n",
-                                       sc_adapter[card]->devicename,
-                                       rspmsg->sequence_no,
-                                       rspmsg->process_id,
-                                       rspmsg->time_stamp,
-                                       rspmsg->cmd_sequence_no,
-                                       rspmsg->msg_byte_cnt,
-                                       rspmsg->type,
-                                       rspmsg->class,
-                                       rspmsg->code,
-                                       rspmsg->phy_link_no, 
-                                       rspmsg->rsp_status);
+                        "cnt:%d (type,class,code):(%d,%d,%d) "
+                        "link:%d stat:0x%x\n",
+                        sc_adapter[card]->devicename,
+                        rspmsg->sequence_no,
+                        rspmsg->process_id,
+                        rspmsg->time_stamp,
+                        rspmsg->cmd_sequence_no,
+                        rspmsg->msg_byte_cnt,
+                        rspmsg->type,
+                        rspmsg->class,
+                        rspmsg->code,
+                        rspmsg->phy_link_no,
+                        rspmsg->rsp_status);
 
                return 0;
        }
        return -ENOMSG;
 }
-       
+
 /*
  * send a message to the board
  */
 int sendmessage(int card,
                unsigned int procid,
-               unsigned int type, 
-               unsigned int class, 
+               unsigned int type,
+               unsigned int class,
                unsigned int code,
-               unsigned int link, 
-               unsigned int data_len, 
-               unsigned int *data) 
+               unsigned int link,
+               unsigned int data_len,
+               unsigned int *data)
 {
        DualPortMemory *dpm;
        ReqMessage sndmsg;
@@ -102,15 +102,15 @@ int sendmessage(int card,
         * Make sure we only send CEPID messages when the engine is up
         * and CMPID messages when it is down
         */
-       if(sc_adapter[card]->EngineUp && procid == CMPID) {
+       if (sc_adapter[card]->EngineUp && procid == CMPID) {
                pr_debug("%s: Attempt to send CM message with engine up\n",
-                       sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                return -ESRCH;
        }
 
-       if(!sc_adapter[card]->EngineUp && procid == CEPID) {
+       if (!sc_adapter[card]->EngineUp && procid == CEPID) {
                pr_debug("%s: Attempt to send CE message with engine down\n",
-                       sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                return -ESRCH;
        }
 
@@ -142,39 +142,39 @@ int sendmessage(int card,
         */
        spin_lock_irqsave(&sc_adapter[card]->lock, flags);
        outb((sc_adapter[card]->shmem_magic >> 14) | 0x80,
-               sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
+            sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
        dpm = (DualPortMemory *) sc_adapter[card]->rambase;     /* Fix me */
-       memcpy_toio(&(dpm->req_queue[dpm->req_head]),&sndmsg,MSG_LEN);
-       dpm->req_head = (dpm->req_head+1) % MAX_MESSAGES;
+       memcpy_toio(&(dpm->req_queue[dpm->req_head]), &sndmsg, MSG_LEN);
+       dpm->req_head = (dpm->req_head + 1) % MAX_MESSAGES;
        outb(sndmsg.sequence_no, sc_adapter[card]->ioport[FIFO_WRITE]);
        spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
-               
+
        pr_debug("%s: Sent Message seq:%d pid:%d time:%d "
-                       "cnt:%d (type,class,code):(%d,%d,%d) "
-                       "link:%d\n ",
-                               sc_adapter[card]->devicename,
-                               sndmsg.sequence_no,
-                               sndmsg.process_id,
-                               sndmsg.time_stamp,
-                               sndmsg.msg_byte_cnt,
-                               sndmsg.type,
-                               sndmsg.class,
-                               sndmsg.code,
-                               sndmsg.phy_link_no); 
-               
+                "cnt:%d (type,class,code):(%d,%d,%d) "
+                "link:%d\n ",
+                sc_adapter[card]->devicename,
+                sndmsg.sequence_no,
+                sndmsg.process_id,
+                sndmsg.time_stamp,
+                sndmsg.msg_byte_cnt,
+                sndmsg.type,
+                sndmsg.class,
+                sndmsg.code,
+                sndmsg.phy_link_no);
+
        return 0;
 }
 
 int send_and_receive(int card,
-               unsigned int procid, 
-               unsigned char type,
-               unsigned char class, 
-               unsigned char code,
-               unsigned char link,
-               unsigned char data_len, 
-               unsigned char *data, 
-               RspMessage *mesgdata,
-               int timeout) 
+                    unsigned int procid,
+                    unsigned char type,
+                    unsigned char class,
+                    unsigned char code,
+                    unsigned char link,
+                    unsigned char data_len,
+                    unsigned char *data,
+                    RspMessage *mesgdata,
+                    int timeout)
 {
        int retval;
        int tries;
@@ -185,12 +185,12 @@ int send_and_receive(int card,
        }
 
        sc_adapter[card]->want_async_messages = 1;
-       retval = sendmessage(card, procid, type, class, code, link, 
-                       data_len, (unsigned int *) data);
-  
+       retval = sendmessage(card, procid, type, class, code, link,
+                            data_len, (unsigned int *) data);
+
        if (retval) {
                pr_debug("%s: SendMessage failed in SAR\n",
-                       sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                sc_adapter[card]->want_async_messages = 0;
                return -EIO;
        }
@@ -199,7 +199,7 @@ int send_and_receive(int card,
        /* wait for the response */
        while (tries < timeout) {
                schedule_timeout_interruptible(1);
-               
+
                pr_debug("SAR waiting..\n");
 
                /*
@@ -214,14 +214,14 @@ int send_and_receive(int card,
                         * Got it!
                         */
                        pr_debug("%s: Got ASYNC message\n",
-                               sc_adapter[card]->devicename);
+                                sc_adapter[card]->devicename);
                        memcpy(mesgdata, &(sc_adapter[card]->async_msg),
-                               sizeof(RspMessage));
+                              sizeof(RspMessage));
                        sc_adapter[card]->want_async_messages = 0;
                        return 0;
                }
 
-               tries++;
+               tries++;
        }
 
        pr_debug("%s: SAR message timeout\n", sc_adapter[card]->devicename);
index 8eb15e7..5e6f4a5 100644 (file)
@@ -21,7 +21,7 @@
 /*
  * Board message macros, defines and structures
  */
+
 #ifndef MESSAGE_H
 #define MESSAGE_H
 
  * Macro to determine if a message is a loader message
  */
 #define IS_CM_MESSAGE(mesg, tx, cx, dx)                \
-               ((mesg.type == cmRspType##tx)           \
-               &&(mesg.class == cmRspClass##cx)        \
-               &&(mesg.code == cmRsp##dx))
+       ((mesg.type == cmRspType##tx)           \
+        && (mesg.class == cmRspClass##cx)      \
+        && (mesg.code == cmRsp##dx))
 
 /*
  * Macro to determine if a message is a firmware message
  */
 #define IS_CE_MESSAGE(mesg, tx, cx, dx)                \
-               ((mesg.type == ceRspType##tx)           \
-               &&(mesg.class == ceRspClass##cx)        \
-               &&(mesg.code == ceRsp##tx##dx))
+       ((mesg.type == ceRspType##tx)           \
+        && (mesg.class == ceRspClass##cx)      \
+        && (mesg.code == ceRsp##tx##dx))
 
-/* 
+/*
  * Loader Request and Response Messages
  */
 
@@ -186,7 +186,7 @@ typedef struct {
 } LLData;
 
 
-/* 
+/*
  * Message payload template for an HWConfig message
  */
 typedef struct {
index 5ff6ae8..2446957 100644 (file)
@@ -29,27 +29,27 @@ int sndpkt(int devId, int channel, int ack, struct sk_buff *data)
 
        card = get_card_from_id(devId);
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
 
        pr_debug("%s: sndpkt: frst = 0x%lx nxt = %d  f = %d n = %d\n",
-               sc_adapter[card]->devicename,
-               sc_adapter[card]->channel[channel].first_sendbuf,
-               sc_adapter[card]->channel[channel].next_sendbuf,
-               sc_adapter[card]->channel[channel].free_sendbufs,
-               sc_adapter[card]->channel[channel].num_sendbufs);
+                sc_adapter[card]->devicename,
+                sc_adapter[card]->channel[channel].first_sendbuf,
+                sc_adapter[card]->channel[channel].next_sendbuf,
+                sc_adapter[card]->channel[channel].free_sendbufs,
+                sc_adapter[card]->channel[channel].num_sendbufs);
 
-       if(!sc_adapter[card]->channel[channel].free_sendbufs) {
+       if (!sc_adapter[card]->channel[channel].free_sendbufs) {
                pr_debug("%s: out of TX buffers\n",
-                               sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                return -EINVAL;
        }
 
-       if(data->len > BUFFER_SIZE) {
+       if (data->len > BUFFER_SIZE) {
                pr_debug("%s: data overflows buffer size (data > buffer)\n",
-                       sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                return -EINVAL;
        }
 
@@ -57,24 +57,24 @@ int sndpkt(int devId, int channel, int ack, struct sk_buff *data)
                BUFFER_SIZE + sc_adapter[card]->channel[channel].first_sendbuf;
        ReqLnkWrite.msg_len = data->len; /* sk_buff size */
        pr_debug("%s: writing %d bytes to buffer offset 0x%lx\n",
-                       sc_adapter[card]->devicename,
-                       ReqLnkWrite.msg_len, ReqLnkWrite.buff_offset);
+                sc_adapter[card]->devicename,
+                ReqLnkWrite.msg_len, ReqLnkWrite.buff_offset);
        memcpy_toshmem(card, (char *)ReqLnkWrite.buff_offset, data->data, ReqLnkWrite.msg_len);
 
        /*
         * sendmessage
         */
        pr_debug("%s: sndpkt size=%d, buf_offset=0x%lx buf_indx=%d\n",
-               sc_adapter[card]->devicename,
-               ReqLnkWrite.msg_len, ReqLnkWrite.buff_offset,
-               sc_adapter[card]->channel[channel].next_sendbuf);
+                sc_adapter[card]->devicename,
+                ReqLnkWrite.msg_len, ReqLnkWrite.buff_offset,
+                sc_adapter[card]->channel[channel].next_sendbuf);
 
        status = sendmessage(card, CEPID, ceReqTypeLnk, ceReqClass1, ceReqLnkWrite,
-                               channel+1, sizeof(LLData), (unsigned int*)&ReqLnkWrite);
+                            channel + 1, sizeof(LLData), (unsigned int *)&ReqLnkWrite);
        len = data->len;
-       if(status) {
+       if (status) {
                pr_debug("%s: failed to send packet, status = %d\n",
-                               sc_adapter[card]->devicename, status);
+                        sc_adapter[card]->devicename, status);
                return -1;
        }
        else {
@@ -83,9 +83,9 @@ int sndpkt(int devId, int channel, int ack, struct sk_buff *data)
                        ++sc_adapter[card]->channel[channel].next_sendbuf ==
                        sc_adapter[card]->channel[channel].num_sendbufs ? 0 :
                        sc_adapter[card]->channel[channel].next_sendbuf;
-                       pr_debug("%s: packet sent successfully\n", sc_adapter[card]->devicename);
+               pr_debug("%s: packet sent successfully\n", sc_adapter[card]->devicename);
                dev_kfree_skb(data);
-               indicate_status(card,ISDN_STAT_BSENT,channel, (char *)&len);
+               indicate_status(card, ISDN_STAT_BSENT, channel, (char *)&len);
        }
        return len;
 }
@@ -95,49 +95,49 @@ void rcvpkt(int card, RspMessage *rcvmsg)
        LLData newll;
        struct sk_buff *skb;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("invalid param: %d is not a valid card id\n", card);
                return;
        }
 
-       switch(rcvmsg->rsp_status){
+       switch (rcvmsg->rsp_status) {
        case 0x01:
        case 0x02:
        case 0x70:
                pr_debug("%s: error status code: 0x%x\n",
-                       sc_adapter[card]->devicename, rcvmsg->rsp_status);
+                        sc_adapter[card]->devicename, rcvmsg->rsp_status);
                return;
-       case 0x00: 
-           if (!(skb = dev_alloc_skb(rcvmsg->msg_data.response.msg_len))) {
+       case 0x00:
+               if (!(skb = dev_alloc_skb(rcvmsg->msg_data.response.msg_len))) {
                        printk(KERN_WARNING "%s: rcvpkt out of memory, dropping packet\n",
-                               sc_adapter[card]->devicename);
+                              sc_adapter[card]->devicename);
                        return;
                }
                skb_put(skb, rcvmsg->msg_data.response.msg_len);
                pr_debug("%s: getting data from offset: 0x%lx\n",
-                       sc_adapter[card]->devicename,
-                       rcvmsg->msg_data.response.buff_offset);
+                        sc_adapter[card]->devicename,
+                        rcvmsg->msg_data.response.buff_offset);
                memcpy_fromshmem(card,
-                       skb_put(skb, rcvmsg->msg_data.response.msg_len),
-                       (char *)rcvmsg->msg_data.response.buff_offset,
-                       rcvmsg->msg_data.response.msg_len);
+                                skb_put(skb, rcvmsg->msg_data.response.msg_len),
+                                (char *)rcvmsg->msg_data.response.buff_offset,
+                                rcvmsg->msg_data.response.msg_len);
                sc_adapter[card]->card->rcvcallb_skb(sc_adapter[card]->driverId,
-                       rcvmsg->phy_link_no-1, skb);
+                                                    rcvmsg->phy_link_no - 1, skb);
 
        case 0x03:
                /*
-                * Recycle the buffer
-                */
+                * Recycle the buffer
+                */
                pr_debug("%s: buffer size : %d\n",
-                               sc_adapter[card]->devicename, BUFFER_SIZE);
+                        sc_adapter[card]->devicename, BUFFER_SIZE);
 /*             memset_shmem(card, rcvmsg->msg_data.response.buff_offset, 0, BUFFER_SIZE); */
                newll.buff_offset = rcvmsg->msg_data.response.buff_offset;
                newll.msg_len = BUFFER_SIZE;
                pr_debug("%s: recycled buffer at offset 0x%lx size %d\n",
-                       sc_adapter[card]->devicename,
-                       newll.buff_offset, newll.msg_len);
+                        sc_adapter[card]->devicename,
+                        newll.buff_offset, newll.msg_len);
                sendmessage(card, CEPID, ceReqTypeLnk, ceReqClass1, ceReqLnkRead,
-                       rcvmsg->phy_link_no, sizeof(LLData), (unsigned int *)&newll);
+                           rcvmsg->phy_link_no, sizeof(LLData), (unsigned int *)&newll);
        }
 
 }
@@ -148,7 +148,7 @@ int setup_buffers(int card, int c)
        unsigned int buffer_size;
        LLData  RcvBuffOffset;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("invalid param: %d is not a valid card id\n", card);
                return -ENODEV;
        }
@@ -157,49 +157,48 @@ int setup_buffers(int card, int c)
         * Calculate the buffer offsets (send/recv/send/recv)
         */
        pr_debug("%s: setting up channel buffer space in shared RAM\n",
-                       sc_adapter[card]->devicename);
+                sc_adapter[card]->devicename);
        buffer_size = BUFFER_SIZE;
        nBuffers = ((sc_adapter[card]->ramsize - BUFFER_BASE) / buffer_size) / 2;
        nBuffers = nBuffers > BUFFERS_MAX ? BUFFERS_MAX : nBuffers;
        pr_debug("%s: calculating buffer space: %d buffers, %d big\n",
-               sc_adapter[card]->devicename,
-               nBuffers, buffer_size);
-       if(nBuffers < 2) {
+                sc_adapter[card]->devicename,
+                nBuffers, buffer_size);
+       if (nBuffers < 2) {
                pr_debug("%s: not enough buffer space\n",
-                       sc_adapter[card]->devicename);
+                        sc_adapter[card]->devicename);
                return -1;
        }
        cBase = (nBuffers * buffer_size) * (c - 1);
        pr_debug("%s: channel buffer offset from shared RAM: 0x%x\n",
-                       sc_adapter[card]->devicename, cBase);
-       sc_adapter[card]->channel[c-1].first_sendbuf = BUFFER_BASE + cBase;
-       sc_adapter[card]->channel[c-1].num_sendbufs = nBuffers / 2;
-       sc_adapter[card]->channel[c-1].free_sendbufs = nBuffers / 2;
-       sc_adapter[card]->channel[c-1].next_sendbuf = 0;
+                sc_adapter[card]->devicename, cBase);
+       sc_adapter[card]->channel[c - 1].first_sendbuf = BUFFER_BASE + cBase;
+       sc_adapter[card]->channel[c - 1].num_sendbufs = nBuffers / 2;
+       sc_adapter[card]->channel[c - 1].free_sendbufs = nBuffers / 2;
+       sc_adapter[card]->channel[c - 1].next_sendbuf = 0;
        pr_debug("%s: send buffer setup complete: first=0x%lx n=%d f=%d, nxt=%d\n",
-                               sc_adapter[card]->devicename,
-                               sc_adapter[card]->channel[c-1].first_sendbuf,
-                               sc_adapter[card]->channel[c-1].num_sendbufs,
-                               sc_adapter[card]->channel[c-1].free_sendbufs,
-                               sc_adapter[card]->channel[c-1].next_sendbuf);
+                sc_adapter[card]->devicename,
+                sc_adapter[card]->channel[c - 1].first_sendbuf,
+                sc_adapter[card]->channel[c - 1].num_sendbufs,
+                sc_adapter[card]->channel[c - 1].free_sendbufs,
+                sc_adapter[card]->channel[c - 1].next_sendbuf);
 
        /*
         * Prep the receive buffers
         */
        pr_debug("%s: adding %d RecvBuffers:\n",
-                       sc_adapter[card]->devicename, nBuffers /2);
-       for (i = 0 ; i < nBuffers / 2; i++) {
-               RcvBuffOffset.buff_offset = 
-                       ((sc_adapter[card]->channel[c-1].first_sendbuf +
-                       (nBuffers / 2) * buffer_size) + (buffer_size * i));
+                sc_adapter[card]->devicename, nBuffers / 2);
+       for (i = 0; i < nBuffers / 2; i++) {
+               RcvBuffOffset.buff_offset =
+                       ((sc_adapter[card]->channel[c - 1].first_sendbuf +
+                         (nBuffers / 2) * buffer_size) + (buffer_size * i));
                RcvBuffOffset.msg_len = buffer_size;
                pr_debug("%s: adding RcvBuffer #%d offset=0x%lx sz=%d bufsz:%d\n",
-                               sc_adapter[card]->devicename,
-                               i + 1, RcvBuffOffset.buff_offset, 
-                               RcvBuffOffset.msg_len,buffer_size);
+                        sc_adapter[card]->devicename,
+                        i + 1, RcvBuffOffset.buff_offset,
+                        RcvBuffOffset.msg_len, buffer_size);
                sendmessage(card, CEPID, ceReqTypeLnk, ceReqClass1, ceReqLnkRead,
-                               c, sizeof(LLData), (unsigned int *)&RcvBuffOffset);
-       } 
+                           c, sizeof(LLData), (unsigned int *)&RcvBuffOffset);
+       }
        return 0;
 }
-
index dfb107a..a50e143 100644 (file)
@@ -17,9 +17,9 @@
 #define SCIOCGETSWITCH 0x06    /* Get switch type */
 #define SCIOCSETSWITCH 0x07    /* Set switch type */
 #define SCIOCGETSPID   0x08    /* Get channel SPID */
-#define SCIOCSETSPID   0x09    /* Set channel SPID */
+#define SCIOCSETSPID   0x09    /* Set channel SPID */
 #define SCIOCGETDN     0x0A    /* Get channel DN */
-#define SCIOCSETDN     0x0B    /* Set channel DN */
+#define SCIOCSETDN     0x0B    /* Set channel DN */
 #define SCIOCTRACE     0x0C    /* Toggle trace mode */
 #define SCIOCSTAT      0x0D    /* Get line status */
 #define SCIOCGETSPEED  0x0E    /* Set channel speed */
@@ -108,4 +108,3 @@ typedef struct {
 } boardInfo;
 
 #endif  /*  __ISDN_SC_SCIOC_H__  */
-
index 7f16d75..d24506c 100644 (file)
@@ -42,22 +42,22 @@ void memcpy_toshmem(int card, void *dest, const void *src, size_t n)
         * determine the page to load from the address
         */
        ch = (unsigned long) dest / SRAM_PAGESIZE;
-       pr_debug("%s: loaded page %d\n", sc_adapter[card]->devicename,ch);
+       pr_debug("%s: loaded page %d\n", sc_adapter[card]->devicename, ch);
        /*
         * Block interrupts and load the page
         */
        spin_lock_irqsave(&sc_adapter[card]->lock, flags);
 
        outb(((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80,
-               sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
+            sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
        memcpy_toio((void __iomem *)(sc_adapter[card]->rambase + dest_rem), src, n);
        spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
-       pr_debug("%s: set page to %#x\n",sc_adapter[card]->devicename,
-               ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE)>>14)|0x80);
+       pr_debug("%s: set page to %#x\n", sc_adapter[card]->devicename,
+                ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80);
        pr_debug("%s: copying %zu bytes from %#lx to %#lx\n",
-               sc_adapter[card]->devicename, n,
-               (unsigned long) src,
-               sc_adapter[card]->rambase + ((unsigned long) dest %0x4000));
+                sc_adapter[card]->devicename, n,
+                (unsigned long) src,
+                sc_adapter[card]->rambase + ((unsigned long) dest % 0x4000));
 }
 
 /*
@@ -68,12 +68,12 @@ void memcpy_fromshmem(int card, void *dest, const void *src, size_t n)
        unsigned long flags;
        unsigned char ch;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return;
        }
 
-       if(n > SRAM_PAGESIZE) {
+       if (n > SRAM_PAGESIZE) {
                return;
        }
 
@@ -81,24 +81,24 @@ void memcpy_fromshmem(int card, void *dest, const void *src, size_t n)
         * determine the page to load from the address
         */
        ch = (unsigned long) src / SRAM_PAGESIZE;
-       pr_debug("%s: loaded page %d\n", sc_adapter[card]->devicename,ch);
-       
-       
+       pr_debug("%s: loaded page %d\n", sc_adapter[card]->devicename, ch);
+
+
        /*
         * Block interrupts and load the page
         */
        spin_lock_irqsave(&sc_adapter[card]->lock, flags);
 
        outb(((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80,
-               sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
-       memcpy_fromio(dest,(void *)(sc_adapter[card]->rambase +
-               ((unsigned long) src % 0x4000)), n);
+            sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
+       memcpy_fromio(dest, (void *)(sc_adapter[card]->rambase +
+                                    ((unsigned long) src % 0x4000)), n);
        spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
-       pr_debug("%s: set page to %#x\n",sc_adapter[card]->devicename,
-               ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE)>>14)|0x80);
+       pr_debug("%s: set page to %#x\n", sc_adapter[card]->devicename,
+                ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80);
 /*     pr_debug("%s: copying %d bytes from %#x to %#x\n",
-               sc_adapter[card]->devicename, n,
-               sc_adapter[card]->rambase + ((unsigned long) src %0x4000), (unsigned long) dest); */
+       sc_adapter[card]->devicename, n,
+       sc_adapter[card]->rambase + ((unsigned long) src %0x4000), (unsigned long) dest); */
 }
 
 #if 0
@@ -107,12 +107,12 @@ void memset_shmem(int card, void *dest, int c, size_t n)
        unsigned long flags;
        unsigned char ch;
 
-       if(!IS_VALID_CARD(card)) {
+       if (!IS_VALID_CARD(card)) {
                pr_debug("Invalid param: %d is not a valid card id\n", card);
                return;
        }
 
-       if(n > SRAM_PAGESIZE) {
+       if (n > SRAM_PAGESIZE) {
                return;
        }
 
@@ -120,7 +120,7 @@ void memset_shmem(int card, void *dest, int c, size_t n)
         * determine the page to load from the address
         */
        ch = (unsigned long) dest / SRAM_PAGESIZE;
-       pr_debug("%s: loaded page %d\n",sc_adapter[card]->devicename,ch);
+       pr_debug("%s: loaded page %d\n", sc_adapter[card]->devicename, ch);
 
        /*
         * Block interrupts and load the page
@@ -128,11 +128,11 @@ void memset_shmem(int card, void *dest, int c, size_t n)
        spin_lock_irqsave(&sc_adapter[card]->lock, flags);
 
        outb(((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80,
-               sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
+            sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]);
        memset_io(sc_adapter[card]->rambase +
-               ((unsigned long) dest % 0x4000), c, n);
-       pr_debug("%s: set page to %#x\n",sc_adapter[card]->devicename,
-               ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE)>>14)|0x80);
+                 ((unsigned long) dest % 0x4000), c, n);
+       pr_debug("%s: set page to %#x\n", sc_adapter[card]->devicename,
+                ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80);
        spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
 }
 #endif  /*  0  */
index 91fbe0d..6fbac22 100644 (file)
@@ -31,7 +31,7 @@ static void setup_ports(int card)
 
        /* And the IRQ */
        outb((sc_adapter[card]->interrupt | 0x80),
-               sc_adapter[card]->ioport[IRQ_SELECT]);
+            sc_adapter[card]->ioport[IRQ_SELECT]);
 }
 
 /*
@@ -50,18 +50,18 @@ void sc_check_reset(unsigned long data)
        int card = (unsigned int) data;
 
        pr_debug("%s: check_timer timer called\n",
-               sc_adapter[card]->devicename);
+                sc_adapter[card]->devicename);
 
        /* Setup the io ports */
        setup_ports(card);
 
        spin_lock_irqsave(&sc_adapter[card]->lock, flags);
        outb(sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport],
-               (sc_adapter[card]->shmem_magic>>14) | 0x80);
+            (sc_adapter[card]->shmem_magic >> 14) | 0x80);
        sig = (unsigned long) *((unsigned long *)(sc_adapter[card]->rambase + SIG_OFFSET));
 
        /* check the signature */
-       if(sig == SIGNATURE) {
+       if (sig == SIGNATURE) {
                flushreadfifo(card);
                spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
                /* See if we need to do a startproc */
@@ -69,8 +69,8 @@ void sc_check_reset(unsigned long data)
                        startproc(card);
        } else  {
                pr_debug("%s: No signature yet, waiting another %lu jiffies.\n",
-                       sc_adapter[card]->devicename, CHECKRESET_TIME);
-               mod_timer(&sc_adapter[card]->reset_timer, jiffies+CHECKRESET_TIME);
+                        sc_adapter[card]->devicename, CHECKRESET_TIME);
+               mod_timer(&sc_adapter[card]->reset_timer, jiffies + CHECKRESET_TIME);
                spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
        }
 }
@@ -91,19 +91,19 @@ void check_phystat(unsigned long data)
        int card = (unsigned int) data;
 
        pr_debug("%s: Checking status...\n", sc_adapter[card]->devicename);
-       /* 
+       /*
         * check the results of the last PhyStat and change only if
         * has changed drastically
         */
        if (sc_adapter[card]->nphystat && !sc_adapter[card]->phystat) {   /* All is well */
                pr_debug("PhyStat transition to RUN\n");
-               pr_info("%s: Switch contacted, transmitter enabled\n", 
+               pr_info("%s: Switch contacted, transmitter enabled\n",
                        sc_adapter[card]->devicename);
                indicate_status(card, ISDN_STAT_RUN, 0, NULL);
        }
        else if (!sc_adapter[card]->nphystat && sc_adapter[card]->phystat) {   /* All is not well */
                pr_debug("PhyStat transition to STOP\n");
-               pr_info("%s: Switch connection lost, transmitter disabled\n", 
+               pr_info("%s: Switch connection lost, transmitter disabled\n",
                        sc_adapter[card]->devicename);
 
                indicate_status(card, ISDN_STAT_STOP, 0, NULL);
@@ -113,11 +113,10 @@ void check_phystat(unsigned long data)
 
        /* Reinitialize the timer */
        spin_lock_irqsave(&sc_adapter[card]->lock, flags);
-       mod_timer(&sc_adapter[card]->stat_timer, jiffies+CHECKSTAT_TIME);
+       mod_timer(&sc_adapter[card]->stat_timer, jiffies + CHECKSTAT_TIME);
        spin_unlock_irqrestore(&sc_adapter[card]->lock, flags);
 
        /* Send a new cePhyStatus message */
-       sendmessage(card, CEPID,ceReqTypePhy,ceReqClass2,
-               ceReqPhyStatus,0,0,NULL);
+       sendmessage(card, CEPID, ceReqTypePhy, ceReqClass2,
+                   ceReqPhyStatus, 0, 0, NULL);
 }
-