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