• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/isdn/hisax/
1#include "hisax_if.h"
2#include "hisax_isac.h"
3#include <linux/pci.h>
4
5#define HSCX_BUFMAX	4096
6
7enum {
8	AVM_FRITZ_PCI,
9	AVM_FRITZ_PNP,
10	AVM_FRITZ_PCIV2,
11};
12
13struct hdlc_stat_reg {
14#ifdef __BIG_ENDIAN
15	u_char fill;
16	u_char mode;
17	u_char xml;
18	u_char cmd;
19#else
20	u_char cmd;
21	u_char xml;
22	u_char mode;
23	u_char fill;
24#endif
25} __attribute__((packed));
26
27struct fritz_bcs {
28	struct hisax_b_if b_if;
29	struct fritz_adapter *adapter;
30	int mode;
31	int channel;
32
33	union {
34		u_int ctrl;
35		struct hdlc_stat_reg sr;
36	} ctrl;
37	u_int stat;
38	int rcvidx;
39	int fifo_size;
40	u_char rcvbuf[HSCX_BUFMAX]; /* B-Channel receive Buffer */
41
42	int tx_cnt;		    /* B-Channel transmit counter */
43	struct sk_buff *tx_skb;     /* B-Channel transmit Buffer */
44};
45
46struct fritz_adapter {
47	int type;
48	spinlock_t hw_lock;
49	unsigned int io;
50	unsigned int irq;
51	struct isac isac;
52
53	struct fritz_bcs bcs[2];
54
55	u32  (*read_hdlc_status) (struct fritz_adapter *adapter, int nr);
56	void (*write_ctrl) (struct fritz_bcs *bcs, int which);
57};
58