diff options
Diffstat (limited to 'drivers/isdn/hisax/s0box.c')
-rw-r--r-- | drivers/isdn/hisax/s0box.c | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/drivers/isdn/hisax/s0box.c b/drivers/isdn/hisax/s0box.c index 16d00b555c8c..383c4e7ce50b 100644 --- a/drivers/isdn/hisax/s0box.c +++ b/drivers/isdn/hisax/s0box.c | |||
@@ -20,73 +20,73 @@ static const char *s0box_revision = "$Revision: 2.6.2.4 $"; | |||
20 | 20 | ||
21 | static inline void | 21 | static inline void |
22 | writereg(unsigned int padr, signed int addr, u_char off, u_char val) { | 22 | writereg(unsigned int padr, signed int addr, u_char off, u_char val) { |
23 | outb_p(0x1c,padr+2); | 23 | outb_p(0x1c, padr + 2); |
24 | outb_p(0x14,padr+2); | 24 | outb_p(0x14, padr + 2); |
25 | outb_p((addr+off)&0x7f,padr); | 25 | outb_p((addr + off) & 0x7f, padr); |
26 | outb_p(0x16,padr+2); | 26 | outb_p(0x16, padr + 2); |
27 | outb_p(val,padr); | 27 | outb_p(val, padr); |
28 | outb_p(0x17,padr+2); | 28 | outb_p(0x17, padr + 2); |
29 | outb_p(0x14,padr+2); | 29 | outb_p(0x14, padr + 2); |
30 | outb_p(0x1c,padr+2); | 30 | outb_p(0x1c, padr + 2); |
31 | } | 31 | } |
32 | 32 | ||
33 | static u_char nibtab[] = { 1, 9, 5, 0xd, 3, 0xb, 7, 0xf, | 33 | static u_char nibtab[] = { 1, 9, 5, 0xd, 3, 0xb, 7, 0xf, |
34 | 0, 0, 0, 0, 0, 0, 0, 0, | 34 | 0, 0, 0, 0, 0, 0, 0, 0, |
35 | 0, 8, 4, 0xc, 2, 0xa, 6, 0xe } ; | 35 | 0, 8, 4, 0xc, 2, 0xa, 6, 0xe }; |
36 | 36 | ||
37 | static inline u_char | 37 | static inline u_char |
38 | readreg(unsigned int padr, signed int addr, u_char off) { | 38 | readreg(unsigned int padr, signed int addr, u_char off) { |
39 | register u_char n1, n2; | 39 | register u_char n1, n2; |
40 | 40 | ||
41 | outb_p(0x1c,padr+2); | 41 | outb_p(0x1c, padr + 2); |
42 | outb_p(0x14,padr+2); | 42 | outb_p(0x14, padr + 2); |
43 | outb_p((addr+off)|0x80,padr); | 43 | outb_p((addr + off) | 0x80, padr); |
44 | outb_p(0x16,padr+2); | 44 | outb_p(0x16, padr + 2); |
45 | outb_p(0x17,padr+2); | 45 | outb_p(0x17, padr + 2); |
46 | n1 = (inb_p(padr+1) >> 3) & 0x17; | 46 | n1 = (inb_p(padr + 1) >> 3) & 0x17; |
47 | outb_p(0x16,padr+2); | 47 | outb_p(0x16, padr + 2); |
48 | n2 = (inb_p(padr+1) >> 3) & 0x17; | 48 | n2 = (inb_p(padr + 1) >> 3) & 0x17; |
49 | outb_p(0x14,padr+2); | 49 | outb_p(0x14, padr + 2); |
50 | outb_p(0x1c,padr+2); | 50 | outb_p(0x1c, padr + 2); |
51 | return nibtab[n1] | (nibtab[n2] << 4); | 51 | return nibtab[n1] | (nibtab[n2] << 4); |
52 | } | 52 | } |
53 | 53 | ||
54 | static inline void | 54 | static inline void |
55 | read_fifo(unsigned int padr, signed int adr, u_char * data, int size) | 55 | read_fifo(unsigned int padr, signed int adr, u_char *data, int size) |
56 | { | 56 | { |
57 | int i; | 57 | int i; |
58 | register u_char n1, n2; | 58 | register u_char n1, n2; |
59 | 59 | ||
60 | outb_p(0x1c, padr+2); | 60 | outb_p(0x1c, padr + 2); |
61 | outb_p(0x14, padr+2); | 61 | outb_p(0x14, padr + 2); |
62 | outb_p(adr|0x80, padr); | 62 | outb_p(adr | 0x80, padr); |
63 | outb_p(0x16, padr+2); | 63 | outb_p(0x16, padr + 2); |
64 | for (i=0; i<size; i++) { | 64 | for (i = 0; i < size; i++) { |
65 | outb_p(0x17, padr+2); | 65 | outb_p(0x17, padr + 2); |
66 | n1 = (inb_p(padr+1) >> 3) & 0x17; | 66 | n1 = (inb_p(padr + 1) >> 3) & 0x17; |
67 | outb_p(0x16,padr+2); | 67 | outb_p(0x16, padr + 2); |
68 | n2 = (inb_p(padr+1) >> 3) & 0x17; | 68 | n2 = (inb_p(padr + 1) >> 3) & 0x17; |
69 | *(data++)=nibtab[n1] | (nibtab[n2] << 4); | 69 | *(data++) = nibtab[n1] | (nibtab[n2] << 4); |
70 | } | 70 | } |
71 | outb_p(0x14,padr+2); | 71 | outb_p(0x14, padr + 2); |
72 | outb_p(0x1c,padr+2); | 72 | outb_p(0x1c, padr + 2); |
73 | return; | 73 | return; |
74 | } | 74 | } |
75 | 75 | ||
76 | static inline void | 76 | static inline void |
77 | write_fifo(unsigned int padr, signed int adr, u_char * data, int size) | 77 | write_fifo(unsigned int padr, signed int adr, u_char *data, int size) |
78 | { | 78 | { |
79 | int i; | 79 | int i; |
80 | outb_p(0x1c, padr+2); | 80 | outb_p(0x1c, padr + 2); |
81 | outb_p(0x14, padr+2); | 81 | outb_p(0x14, padr + 2); |
82 | outb_p(adr&0x7f, padr); | 82 | outb_p(adr & 0x7f, padr); |
83 | for (i=0; i<size; i++) { | 83 | for (i = 0; i < size; i++) { |
84 | outb_p(0x16, padr+2); | 84 | outb_p(0x16, padr + 2); |
85 | outb_p(*(data++), padr); | 85 | outb_p(*(data++), padr); |
86 | outb_p(0x17, padr+2); | 86 | outb_p(0x17, padr + 2); |
87 | } | 87 | } |
88 | outb_p(0x14,padr+2); | 88 | outb_p(0x14, padr + 2); |
89 | outb_p(0x1c,padr+2); | 89 | outb_p(0x1c, padr + 2); |
90 | return; | 90 | return; |
91 | } | 91 | } |
92 | 92 | ||
@@ -105,13 +105,13 @@ WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value) | |||
105 | } | 105 | } |
106 | 106 | ||
107 | static void | 107 | static void |
108 | ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size) | 108 | ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size) |
109 | { | 109 | { |
110 | read_fifo(cs->hw.teles3.cfg_reg, cs->hw.teles3.isacfifo, data, size); | 110 | read_fifo(cs->hw.teles3.cfg_reg, cs->hw.teles3.isacfifo, data, size); |
111 | } | 111 | } |
112 | 112 | ||
113 | static void | 113 | static void |
114 | WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size) | 114 | WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size) |
115 | { | 115 | { |
116 | write_fifo(cs->hw.teles3.cfg_reg, cs->hw.teles3.isacfifo, data, size); | 116 | write_fifo(cs->hw.teles3.cfg_reg, cs->hw.teles3.isacfifo, data, size); |
117 | } | 117 | } |
@@ -150,11 +150,11 @@ s0box_interrupt(int intno, void *dev_id) | |||
150 | 150 | ||
151 | spin_lock_irqsave(&cs->lock, flags); | 151 | spin_lock_irqsave(&cs->lock, flags); |
152 | val = readreg(cs->hw.teles3.cfg_reg, cs->hw.teles3.hscx[1], HSCX_ISTA); | 152 | val = readreg(cs->hw.teles3.cfg_reg, cs->hw.teles3.hscx[1], HSCX_ISTA); |
153 | Start_HSCX: | 153 | Start_HSCX: |
154 | if (val) | 154 | if (val) |
155 | hscx_int_main(cs, val); | 155 | hscx_int_main(cs, val); |
156 | val = readreg(cs->hw.teles3.cfg_reg, cs->hw.teles3.isac, ISAC_ISTA); | 156 | val = readreg(cs->hw.teles3.cfg_reg, cs->hw.teles3.isac, ISAC_ISTA); |
157 | Start_ISAC: | 157 | Start_ISAC: |
158 | if (val) | 158 | if (val) |
159 | isac_interrupt(cs, val); | 159 | isac_interrupt(cs, val); |
160 | count++; | 160 | count++; |
@@ -194,20 +194,20 @@ S0Box_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
194 | u_long flags; | 194 | u_long flags; |
195 | 195 | ||
196 | switch (mt) { | 196 | switch (mt) { |
197 | case CARD_RESET: | 197 | case CARD_RESET: |
198 | break; | 198 | break; |
199 | case CARD_RELEASE: | 199 | case CARD_RELEASE: |
200 | release_io_s0box(cs); | 200 | release_io_s0box(cs); |
201 | break; | 201 | break; |
202 | case CARD_INIT: | 202 | case CARD_INIT: |
203 | spin_lock_irqsave(&cs->lock, flags); | 203 | spin_lock_irqsave(&cs->lock, flags); |
204 | inithscxisac(cs, 3); | 204 | inithscxisac(cs, 3); |
205 | spin_unlock_irqrestore(&cs->lock, flags); | 205 | spin_unlock_irqrestore(&cs->lock, flags); |
206 | break; | 206 | break; |
207 | case CARD_TEST: | 207 | case CARD_TEST: |
208 | break; | 208 | break; |
209 | } | 209 | } |
210 | return(0); | 210 | return (0); |
211 | } | 211 | } |
212 | 212 | ||
213 | int __devinit | 213 | int __devinit |
@@ -229,17 +229,17 @@ setup_s0box(struct IsdnCard *card) | |||
229 | cs->hw.teles3.hscxfifo[0] = cs->hw.teles3.hscx[0] + 0x3e; | 229 | cs->hw.teles3.hscxfifo[0] = cs->hw.teles3.hscx[0] + 0x3e; |
230 | cs->hw.teles3.hscxfifo[1] = cs->hw.teles3.hscx[1] + 0x3e; | 230 | cs->hw.teles3.hscxfifo[1] = cs->hw.teles3.hscx[1] + 0x3e; |
231 | cs->irq = card->para[0]; | 231 | cs->irq = card->para[0]; |
232 | if (!request_region(cs->hw.teles3.cfg_reg,8, "S0Box parallel I/O")) { | 232 | if (!request_region(cs->hw.teles3.cfg_reg, 8, "S0Box parallel I/O")) { |
233 | printk(KERN_WARNING "HiSax: S0Box ports %x-%x already in use\n", | 233 | printk(KERN_WARNING "HiSax: S0Box ports %x-%x already in use\n", |
234 | cs->hw.teles3.cfg_reg, | 234 | cs->hw.teles3.cfg_reg, |
235 | cs->hw.teles3.cfg_reg + 7); | 235 | cs->hw.teles3.cfg_reg + 7); |
236 | return 0; | 236 | return 0; |
237 | } | 237 | } |
238 | printk(KERN_INFO "HiSax: S0Box config irq:%d isac:0x%x cfg:0x%x\n", | 238 | printk(KERN_INFO "HiSax: S0Box config irq:%d isac:0x%x cfg:0x%x\n", |
239 | cs->irq, | 239 | cs->irq, |
240 | cs->hw.teles3.isac, cs->hw.teles3.cfg_reg); | 240 | cs->hw.teles3.isac, cs->hw.teles3.cfg_reg); |
241 | printk(KERN_INFO "HiSax: hscx A:0x%x hscx B:0x%x\n", | 241 | printk(KERN_INFO "HiSax: hscx A:0x%x hscx B:0x%x\n", |
242 | cs->hw.teles3.hscx[0], cs->hw.teles3.hscx[1]); | 242 | cs->hw.teles3.hscx[0], cs->hw.teles3.hscx[1]); |
243 | setup_isac(cs); | 243 | setup_isac(cs); |
244 | cs->readisac = &ReadISAC; | 244 | cs->readisac = &ReadISAC; |
245 | cs->writeisac = &WriteISAC; | 245 | cs->writeisac = &WriteISAC; |