mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
[PATCH] Clean up the old digi support and rescue it
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
5dd42c262b
commit
f2cf8e25ba
5 changed files with 606 additions and 1276 deletions
|
@ -138,7 +138,7 @@ config CYZ_INTR
|
|||
|
||||
config DIGIEPCA
|
||||
tristate "Digiboard Intelligent Async Support"
|
||||
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP && (!64BIT || BROKEN)
|
||||
depends on SERIAL_NONSTANDARD
|
||||
---help---
|
||||
This is a driver for Digi International's Xx, Xeve, and Xem series
|
||||
of cards which provide multiple serial ports. You would need
|
||||
|
|
|
@ -1,46 +1,46 @@
|
|||
/* Definitions for DigiBoard ditty(1) command. */
|
||||
|
||||
#if !defined(TIOCMODG)
|
||||
#define TIOCMODG ('d'<<8) | 250 /* get modem ctrl state */
|
||||
#define TIOCMODS ('d'<<8) | 251 /* set modem ctrl state */
|
||||
#define TIOCMODG (('d'<<8) | 250) /* get modem ctrl state */
|
||||
#define TIOCMODS (('d'<<8) | 251) /* set modem ctrl state */
|
||||
#endif
|
||||
|
||||
#if !defined(TIOCMSET)
|
||||
#define TIOCMSET ('d'<<8) | 252 /* set modem ctrl state */
|
||||
#define TIOCMGET ('d'<<8) | 253 /* set modem ctrl state */
|
||||
#define TIOCMSET (('d'<<8) | 252) /* set modem ctrl state */
|
||||
#define TIOCMGET (('d'<<8) | 253) /* set modem ctrl state */
|
||||
#endif
|
||||
|
||||
#if !defined(TIOCMBIC)
|
||||
#define TIOCMBIC ('d'<<8) | 254 /* set modem ctrl state */
|
||||
#define TIOCMBIS ('d'<<8) | 255 /* set modem ctrl state */
|
||||
#define TIOCMBIC (('d'<<8) | 254) /* set modem ctrl state */
|
||||
#define TIOCMBIS (('d'<<8) | 255) /* set modem ctrl state */
|
||||
#endif
|
||||
|
||||
#if !defined(TIOCSDTR)
|
||||
#define TIOCSDTR ('e'<<8) | 0 /* set DTR */
|
||||
#define TIOCCDTR ('e'<<8) | 1 /* clear DTR */
|
||||
#define TIOCSDTR (('e'<<8) | 0) /* set DTR */
|
||||
#define TIOCCDTR (('e'<<8) | 1) /* clear DTR */
|
||||
#endif
|
||||
|
||||
/************************************************************************
|
||||
* Ioctl command arguments for DIGI parameters.
|
||||
************************************************************************/
|
||||
#define DIGI_GETA ('e'<<8) | 94 /* Read params */
|
||||
#define DIGI_GETA (('e'<<8) | 94) /* Read params */
|
||||
|
||||
#define DIGI_SETA ('e'<<8) | 95 /* Set params */
|
||||
#define DIGI_SETAW ('e'<<8) | 96 /* Drain & set params */
|
||||
#define DIGI_SETAF ('e'<<8) | 97 /* Drain, flush & set params */
|
||||
#define DIGI_SETA (('e'<<8) | 95) /* Set params */
|
||||
#define DIGI_SETAW (('e'<<8) | 96) /* Drain & set params */
|
||||
#define DIGI_SETAF (('e'<<8) | 97) /* Drain, flush & set params */
|
||||
|
||||
#define DIGI_GETFLOW ('e'<<8) | 99 /* Get startc/stopc flow */
|
||||
#define DIGI_GETFLOW (('e'<<8) | 99) /* Get startc/stopc flow */
|
||||
/* control characters */
|
||||
#define DIGI_SETFLOW ('e'<<8) | 100 /* Set startc/stopc flow */
|
||||
#define DIGI_SETFLOW (('e'<<8) | 100) /* Set startc/stopc flow */
|
||||
/* control characters */
|
||||
#define DIGI_GETAFLOW ('e'<<8) | 101 /* Get Aux. startc/stopc */
|
||||
#define DIGI_GETAFLOW (('e'<<8) | 101) /* Get Aux. startc/stopc */
|
||||
/* flow control chars */
|
||||
#define DIGI_SETAFLOW ('e'<<8) | 102 /* Set Aux. startc/stopc */
|
||||
#define DIGI_SETAFLOW (('e'<<8) | 102) /* Set Aux. startc/stopc */
|
||||
/* flow control chars */
|
||||
|
||||
#define DIGI_GETINFO ('e'<<8) | 103 /* Fill in digi_info */
|
||||
#define DIGI_POLLER ('e'<<8) | 104 /* Turn on/off poller */
|
||||
#define DIGI_INIT ('e'<<8) | 105 /* Allow things to run. */
|
||||
#define DIGI_GETINFO (('e'<<8) | 103) /* Fill in digi_info */
|
||||
#define DIGI_POLLER (('e'<<8) | 104) /* Turn on/off poller */
|
||||
#define DIGI_INIT (('e'<<8) | 105) /* Allow things to run. */
|
||||
|
||||
struct digiflow_struct
|
||||
{
|
||||
|
|
|
@ -13,88 +13,88 @@
|
|||
|
||||
struct global_data
|
||||
{
|
||||
volatile ushort cin;
|
||||
volatile ushort cout;
|
||||
volatile ushort cstart;
|
||||
volatile ushort cmax;
|
||||
volatile ushort ein;
|
||||
volatile ushort eout;
|
||||
volatile ushort istart;
|
||||
volatile ushort imax;
|
||||
u16 cin;
|
||||
u16 cout;
|
||||
u16 cstart;
|
||||
u16 cmax;
|
||||
u16 ein;
|
||||
u16 eout;
|
||||
u16 istart;
|
||||
u16 imax;
|
||||
};
|
||||
|
||||
|
||||
struct board_chan
|
||||
{
|
||||
int filler1;
|
||||
int filler2;
|
||||
volatile ushort tseg;
|
||||
volatile ushort tin;
|
||||
volatile ushort tout;
|
||||
volatile ushort tmax;
|
||||
|
||||
volatile ushort rseg;
|
||||
volatile ushort rin;
|
||||
volatile ushort rout;
|
||||
volatile ushort rmax;
|
||||
|
||||
volatile ushort tlow;
|
||||
volatile ushort rlow;
|
||||
volatile ushort rhigh;
|
||||
volatile ushort incr;
|
||||
|
||||
volatile ushort etime;
|
||||
volatile ushort edelay;
|
||||
volatile unchar *dev;
|
||||
|
||||
volatile ushort iflag;
|
||||
volatile ushort oflag;
|
||||
volatile ushort cflag;
|
||||
volatile ushort gmask;
|
||||
|
||||
volatile ushort col;
|
||||
volatile ushort delay;
|
||||
volatile ushort imask;
|
||||
volatile ushort tflush;
|
||||
u32 filler1;
|
||||
u32 filler2;
|
||||
u16 tseg;
|
||||
u16 tin;
|
||||
u16 tout;
|
||||
u16 tmax;
|
||||
|
||||
int filler3;
|
||||
int filler4;
|
||||
int filler5;
|
||||
int filler6;
|
||||
|
||||
volatile unchar num;
|
||||
volatile unchar ract;
|
||||
volatile unchar bstat;
|
||||
volatile unchar tbusy;
|
||||
volatile unchar iempty;
|
||||
volatile unchar ilow;
|
||||
volatile unchar idata;
|
||||
volatile unchar eflag;
|
||||
|
||||
volatile unchar tflag;
|
||||
volatile unchar rflag;
|
||||
volatile unchar xmask;
|
||||
volatile unchar xval;
|
||||
volatile unchar mstat;
|
||||
volatile unchar mchange;
|
||||
volatile unchar mint;
|
||||
volatile unchar lstat;
|
||||
u16 rseg;
|
||||
u16 rin;
|
||||
u16 rout;
|
||||
u16 rmax;
|
||||
|
||||
volatile unchar mtran;
|
||||
volatile unchar orun;
|
||||
volatile unchar startca;
|
||||
volatile unchar stopca;
|
||||
volatile unchar startc;
|
||||
volatile unchar stopc;
|
||||
volatile unchar vnext;
|
||||
volatile unchar hflow;
|
||||
u16 tlow;
|
||||
u16 rlow;
|
||||
u16 rhigh;
|
||||
u16 incr;
|
||||
|
||||
volatile unchar fillc;
|
||||
volatile unchar ochar;
|
||||
volatile unchar omask;
|
||||
u16 etime;
|
||||
u16 edelay;
|
||||
unchar *dev;
|
||||
|
||||
unchar filler7;
|
||||
unchar filler8[28];
|
||||
u16 iflag;
|
||||
u16 oflag;
|
||||
u16 cflag;
|
||||
u16 gmask;
|
||||
|
||||
u16 col;
|
||||
u16 delay;
|
||||
u16 imask;
|
||||
u16 tflush;
|
||||
|
||||
u32 filler3;
|
||||
u32 filler4;
|
||||
u32 filler5;
|
||||
u32 filler6;
|
||||
|
||||
u8 num;
|
||||
u8 ract;
|
||||
u8 bstat;
|
||||
u8 tbusy;
|
||||
u8 iempty;
|
||||
u8 ilow;
|
||||
u8 idata;
|
||||
u8 eflag;
|
||||
|
||||
u8 tflag;
|
||||
u8 rflag;
|
||||
u8 xmask;
|
||||
u8 xval;
|
||||
u8 mstat;
|
||||
u8 mchange;
|
||||
u8 mint;
|
||||
u8 lstat;
|
||||
|
||||
u8 mtran;
|
||||
u8 orun;
|
||||
u8 startca;
|
||||
u8 stopca;
|
||||
u8 startc;
|
||||
u8 stopc;
|
||||
u8 vnext;
|
||||
u8 hflow;
|
||||
|
||||
u8 fillc;
|
||||
u8 ochar;
|
||||
u8 omask;
|
||||
|
||||
u8 filler7;
|
||||
u8 filler8[28];
|
||||
};
|
||||
|
||||
|
||||
|
|
1588
drivers/char/epca.c
1588
drivers/char/epca.c
File diff suppressed because it is too large
Load diff
|
@ -85,73 +85,73 @@ static char *board_desc[] =
|
|||
struct channel
|
||||
{
|
||||
long magic;
|
||||
unchar boardnum;
|
||||
unchar channelnum;
|
||||
unchar omodem; /* FEP output modem status */
|
||||
unchar imodem; /* FEP input modem status */
|
||||
unchar modemfake; /* Modem values to be forced */
|
||||
unchar modem; /* Force values */
|
||||
unchar hflow;
|
||||
unchar dsr;
|
||||
unchar dcd;
|
||||
unchar m_rts ; /* The bits used in whatever FEP */
|
||||
unchar m_dcd ; /* is indiginous to this board to */
|
||||
unchar m_dsr ; /* represent each of the physical */
|
||||
unchar m_cts ; /* handshake lines */
|
||||
unchar m_ri ;
|
||||
unchar m_dtr ;
|
||||
unchar stopc;
|
||||
unchar startc;
|
||||
unchar stopca;
|
||||
unchar startca;
|
||||
unchar fepstopc;
|
||||
unchar fepstartc;
|
||||
unchar fepstopca;
|
||||
unchar fepstartca;
|
||||
unchar txwin;
|
||||
unchar rxwin;
|
||||
ushort fepiflag;
|
||||
ushort fepcflag;
|
||||
ushort fepoflag;
|
||||
ushort txbufhead;
|
||||
ushort txbufsize;
|
||||
ushort rxbufhead;
|
||||
ushort rxbufsize;
|
||||
unsigned char boardnum;
|
||||
unsigned char channelnum;
|
||||
unsigned char omodem; /* FEP output modem status */
|
||||
unsigned char imodem; /* FEP input modem status */
|
||||
unsigned char modemfake; /* Modem values to be forced */
|
||||
unsigned char modem; /* Force values */
|
||||
unsigned char hflow;
|
||||
unsigned char dsr;
|
||||
unsigned char dcd;
|
||||
unsigned char m_rts ; /* The bits used in whatever FEP */
|
||||
unsigned char m_dcd ; /* is indiginous to this board to */
|
||||
unsigned char m_dsr ; /* represent each of the physical */
|
||||
unsigned char m_cts ; /* handshake lines */
|
||||
unsigned char m_ri ;
|
||||
unsigned char m_dtr ;
|
||||
unsigned char stopc;
|
||||
unsigned char startc;
|
||||
unsigned char stopca;
|
||||
unsigned char startca;
|
||||
unsigned char fepstopc;
|
||||
unsigned char fepstartc;
|
||||
unsigned char fepstopca;
|
||||
unsigned char fepstartca;
|
||||
unsigned char txwin;
|
||||
unsigned char rxwin;
|
||||
unsigned short fepiflag;
|
||||
unsigned short fepcflag;
|
||||
unsigned short fepoflag;
|
||||
unsigned short txbufhead;
|
||||
unsigned short txbufsize;
|
||||
unsigned short rxbufhead;
|
||||
unsigned short rxbufsize;
|
||||
int close_delay;
|
||||
int count;
|
||||
int blocked_open;
|
||||
ulong event;
|
||||
unsigned long event;
|
||||
int asyncflags;
|
||||
uint dev;
|
||||
ulong statusflags;
|
||||
ulong c_iflag;
|
||||
ulong c_cflag;
|
||||
ulong c_lflag;
|
||||
ulong c_oflag;
|
||||
unchar *txptr;
|
||||
unchar *rxptr;
|
||||
unchar *tmp_buf;
|
||||
unsigned long statusflags;
|
||||
unsigned long c_iflag;
|
||||
unsigned long c_cflag;
|
||||
unsigned long c_lflag;
|
||||
unsigned long c_oflag;
|
||||
unsigned char *txptr;
|
||||
unsigned char *rxptr;
|
||||
unsigned char *tmp_buf;
|
||||
struct board_info *board;
|
||||
volatile struct board_chan *brdchan;
|
||||
struct board_chan *brdchan;
|
||||
struct digi_struct digiext;
|
||||
struct tty_struct *tty;
|
||||
wait_queue_head_t open_wait;
|
||||
wait_queue_head_t close_wait;
|
||||
struct work_struct tqueue;
|
||||
volatile struct global_data *mailbox;
|
||||
struct work_struct tqueue;
|
||||
struct global_data *mailbox;
|
||||
};
|
||||
|
||||
struct board_info
|
||||
{
|
||||
unchar status;
|
||||
unchar type;
|
||||
unchar altpin;
|
||||
ushort numports;
|
||||
unchar *port;
|
||||
unchar *membase;
|
||||
unchar __iomem *re_map_port;
|
||||
unchar *re_map_membase;
|
||||
ulong memory_seg;
|
||||
unsigned char status;
|
||||
unsigned char type;
|
||||
unsigned char altpin;
|
||||
unsigned short numports;
|
||||
unsigned long port;
|
||||
unsigned long membase;
|
||||
unsigned char __iomem *re_map_port;
|
||||
unsigned char *re_map_membase;
|
||||
unsigned long memory_seg;
|
||||
void ( * memwinon ) (struct board_info *, unsigned int) ;
|
||||
void ( * memwinoff ) (struct board_info *, unsigned int) ;
|
||||
void ( * globalwinon ) (struct channel *) ;
|
||||
|
@ -160,6 +160,6 @@ struct board_info
|
|||
void ( * memoff ) (struct channel *) ;
|
||||
void ( * assertgwinon ) (struct channel *) ;
|
||||
void ( * assertmemoff ) (struct channel *) ;
|
||||
unchar poller_inhibited ;
|
||||
unsigned char poller_inhibited ;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue