Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 19638
b: refs/heads/master
c: 8454283
h: refs/heads/master
v: v3
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Feb 3, 2006
1 parent 706757e commit e0ca8af
Show file tree
Hide file tree
Showing 12 changed files with 1 addition and 568 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 47ba87e0b1269698801310bfd1716b0538282405
refs/heads/master: 84542838a3829f34630c589c1eb570656c455a1c
142 changes: 0 additions & 142 deletions trunk/drivers/char/rio/cirrus.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,148 +40,6 @@
#endif
#define _cirrus_h 1

#ifdef RTA
#define TO_UART RX
#define TO_DRIVER TX
#endif

#ifdef HOST
#define TO_UART TX
#define TO_DRIVER RX
#endif
#ifdef RTA
/* Miscellaneous defines for CIRRUS addresses and related logic for
interrupts etc.
*/
#define MAP(a) ((short *)(cirrus_base + (a)))
#define outp(a,b) (*MAP (a) =(b))
#define inp(a) ((*MAP (a)) & 0xff)
#define CIRRUS_FIRST (short*)0x7300
#define CIRRUS_SECOND (short*)0x7200
#define CIRRUS_THIRD (short*)0x7100
#define CIRRUS_FOURTH (short*)0x7000
#define PORTS_ON_CIRRUS 4
#define CIRRUS_FIFO_SIZE 12
#define SPACE 0x20
#define TAB 0x09
#define LINE_FEED 0x0a
#define CARRIAGE_RETURN 0x0d
#define BACKSPACE 0x08
#define SPACES_IN_TABS 8
#define SEND_ESCAPE 0x00
#define START_BREAK 0x81
#define TIMER_TICK 0x82
#define STOP_BREAK 0x83
#define BASE(a) ((a) < 4 ? (short*)CIRRUS_FIRST : ((a) < 8 ? (short *)CIRRUS_SECOND : ((a) < 12 ? (short*)CIRRUS_THIRD : (short *)CIRRUS_FOURTH)))
#define txack1 ((short *)0x7104)
#define rxack1 ((short *)0x7102)
#define mdack1 ((short *)0x7106)
#define txack2 ((short *)0x7006)
#define rxack2 ((short *)0x7004)
#define mdack2 ((short *)0x7100)
#define int_latch ((short *) 0x7800)
#define int_status ((short *) 0x7c00)
#define tx1_pending 0x20
#define rx1_pending 0x10
#define md1_pending 0x40
#define tx2_pending 0x02
#define rx2_pending 0x01
#define md2_pending 0x40
#define module1_bits 0x07
#define module1_modern 0x08
#define module2_bits 0x70
#define module2_modern 0x80
#define module_blank 0xf
#define rs232_d25 0x0
#define rs232_rj45 0x1
#define rs422_d25 0x3
#define parallel 0x5

#define CLK0 0x00
#define CLK1 0x01
#define CLK2 0x02
#define CLK3 0x03
#define CLK4 0x04

#define CIRRUS_REVC 0x42
#define CIRRUS_REVE 0x44

#define TURNON 1
#define TURNOFF 0

/* The list of CIRRUS registers.
NB. These registers are relative values on 8 bit boundaries whereas
on the RTA's the CIRRUS registers are on word boundaries. Use pointer
arithmetic (short *) to obtain the real addresses required */
#define ccr 0x05 /* Channel Command Register */
#define ier 0x06 /* Interrupt Enable Register */
#define cor1 0x08 /* Channel Option Register 1 */
#define cor2 0x09 /* Channel Option Register 2 */
#define cor3 0x0a /* Channel Option Register 3 */
#define cor4 0x1e /* Channel Option Register 4 */
#define cor5 0x1f /* Channel Option Register 5 */

#define ccsr 0x0b /* Channel Control Status Register */
#define rdcr 0x0e /* Receive Data Count Register */
#define tdcr 0x12 /* Transmit Data Count Register */
#define mcor1 0x15 /* Modem Change Option Register 1 */
#define mcor2 0x16 /* Modem Change Option Regsiter 2 */

#define livr 0x18 /* Local Interrupt Vector Register */
#define schr1 0x1a /* Special Character Register 1 */
#define schr2 0x1b /* Special Character Register 2 */
#define schr3 0x1c /* Special Character Register 3 */
#define schr4 0x1d /* Special Character Register 4 */

#define rtr 0x20 /* Receive Timer Register */
#define rtpr 0x21 /* Receive Timeout Period Register */
#define lnc 0x24 /* Lnext character */

#define rivr 0x43 /* Receive Interrupt Vector Register */
#define tivr 0x42 /* Transmit Interrupt Vector Register */
#define mivr 0x41 /* Modem Interrupt Vector Register */
#define gfrcr 0x40 /* Global Firmware Revision code Reg */
#define ricr 0x44 /* Receive Interrupting Channel Reg */
#define ticr 0x45 /* Transmit Interrupting Channel Reg */
#define micr 0x46 /* Modem Interrupting Channel Register */

#define gcr 0x4b /* Global configuration register */
#define misr 0x4c /* Modem interrupt status register */

#define rbusr 0x59
#define tbusr 0x5a
#define mbusr 0x5b

#define eoir 0x60 /* End Of Interrupt Register */
#define rdsr 0x62 /* Receive Data / Status Register */
#define tdr 0x63 /* Transmit Data Register */
#define svrr 0x67 /* Service Request Register */

#define car 0x68 /* Channel Access Register */
#define mir 0x69 /* Modem Interrupt Register */
#define tir 0x6a /* Transmit Interrupt Register */
#define rir 0x6b /* Receive Interrupt Register */
#define msvr1 0x6c /* Modem Signal Value Register 1 */
#define msvr2 0x6d /* Modem Signal Value Register 2 */
#define psvr 0x6f /* Printer Signal Value Register */

#define tbpr 0x72 /* Transmit Baud Rate Period Register */
#define tcor 0x76 /* Transmit Clock Option Register */

#define rbpr 0x78 /* Receive Baud Rate Period Register */
#define rber 0x7a /* Receive Baud Rate Extension Register */
#define rcor 0x7c /* Receive Clock Option Register */
#define ppr 0x7e /* Prescalar Period Register */

/* Misc registers used for forcing the 1400 out of its reset woes */
#define airl 0x6d
#define airm 0x6e
#define airh 0x6f
#define btcr 0x66
#define mtcr 0x6c
#define tber 0x74

#endif /* #ifdef RTA */


/* Bit fields for particular registers */
Expand Down
7 changes: 0 additions & 7 deletions trunk/drivers/char/rio/defaults.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,6 @@ static char *_rio_defaults_h_sccs = "@(#)defaults.h 1.1";
#define MILLISECOND (int) (1000/64) /* 15.625 low ticks */
#define SECOND (int) 15625 /* Low priority ticks */

#ifdef RTA
#define RX_LIMIT (ushort) 3
#endif
#ifdef HOST
#define RX_LIMIT (ushort) 1
#endif

#define LINK_TIMEOUT (int) (POLL_PERIOD / 2)


Expand Down
34 changes: 0 additions & 34 deletions trunk/drivers/char/rio/link.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,30 +102,14 @@
/*
** LED stuff
*/
#if defined(RTA)
#define LED_OFF ((ushort) 0) /* LED off */
#define LED_RED ((ushort) 1) /* LED Red */
#define LED_GREEN ((ushort) 2) /* LED Green */
#define LED_ORANGE ((ushort) 4) /* LED Orange */
#define LED_1TO8_OPEN ((ushort) 1) /* Port 1->8 LED on */
#define LED_9TO16_OPEN ((ushort) 2) /* Port 9->16 LED on */
#define LED_SET_COLOUR(colour) (link->led = (colour))
#define LED_OR_COLOUR(colour) (link->led |= (colour))
#define LED_TIMEOUT(time) (link->led_timeout = RioTimePlus(RioTime(),(time)))
#else
#define LED_SET_COLOUR(colour)
#define LED_OR_COLOUR(colour)
#define LED_TIMEOUT(time)
#endif /* RTA */

struct LPB {
WORD link_number; /* Link Number */
Channel_ptr in_ch; /* Link In Channel */
Channel_ptr out_ch; /* Link Out Channel */
#ifdef RTA
uchar stat_led; /* Port open leds */
uchar led; /* True, light led! */
#endif
BYTE attached_serial[4]; /* Attached serial number */
BYTE attached_host_serial[4];
/* Serial number of Host who
Expand All @@ -144,30 +128,12 @@ struct LPB {
WORD WaitNoBoot; /* Secs to hold off booting */
PKT_ptr add_packet_list; /* Add packets to here */
PKT_ptr remove_packet_list; /* Send packets from here */
#ifdef RTA
#ifdef DCIRRUS
#define QBUFS_PER_REDIRECT (4 / PKTS_PER_BUFFER + 1)
#else
#define QBUFS_PER_REDIRECT (8 / PKTS_PER_BUFFER + 1)
#endif
PKT_ptr_ptr rd_add; /* Add a new Packet here */
Q_BUF_ptr rd_add_qb; /* Pointer to the add Q buf */
PKT_ptr_ptr rd_add_st_qbb; /* Pointer to start of the Q's buf */
PKT_ptr_ptr rd_add_end_qbb; /* Pointer to the end of the Q's buf */
PKT_ptr_ptr rd_remove; /* Remove a Packet here */
Q_BUF_ptr rd_remove_qb; /* Pointer to the remove Q buf */
PKT_ptr_ptr rd_remove_st_qbb; /* Pointer to the start of the Q buf */
PKT_ptr_ptr rd_remove_end_qbb; /* Pointer to the end of the Q buf */
ushort pkts_in_q; /* Packets in queue */
#endif

Channel_ptr lrt_fail_chan; /* Lrt's failure channel */
Channel_ptr ltt_fail_chan; /* Ltt's failure channel */

#if defined (HOST) || defined (INKERNEL)
/* RUP structure for HOST to driver communications */
struct RUP rup;
#endif
struct RUP link_rup; /* RUP for the link (POLL,
topology etc.) */
WORD attached_link; /* Number of attached link */
Expand Down
140 changes: 0 additions & 140 deletions trunk/drivers/char/rio/list.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ static char *_rio_list_h_sccs = "@(#)list.h 1.9";

#define PKT_IN_USE 0x1

#ifdef INKERNEL

#define ZERO_PTR (ushort) 0x8000
#define CaD PortP->Caddr

Expand All @@ -54,143 +52,5 @@ static char *_rio_list_h_sccs = "@(#)list.h 1.9";
** to by the TxAdd pointer has PKT_IN_USE clear in its address.
*/

#ifndef linux
#if defined( MIPS ) && !defined( MIPSEISA )
/* May the shoes of the Devil dance on your grave for creating this */
#define can_add_transmit(PacketP,PortP) \
(!((uint)(PacketP = (struct PKT *)RIO_PTR(CaD,RINDW(PortP->TxAdd))) \
& (PKT_IN_USE<<2)))

#elif defined(MIPSEISA) || defined(nx6000) || \
defined(drs6000) || defined(UWsparc)

#define can_add_transmit(PacketP,PortP) \
(!((uint)(PacketP = (struct PKT *)RIO_PTR(CaD,RINDW(PortP->TxAdd))) \
& PKT_IN_USE))

#else
#define can_add_transmit(PacketP,PortP) \
(!((uint)(PacketP = (struct PKT *)RIO_PTR(CaD,*PortP->TxAdd)) \
& PKT_IN_USE))
#endif

/*
** To add a packet to the queue, you set the PKT_IN_USE bit in the address,
** and then move the TxAdd pointer along one position to point to the next
** packet pointer. You must wrap the pointer from the end back to the start.
*/
#if defined(MIPS) || defined(nx6000) || defined(drs6000) || defined(UWsparc)
# define add_transmit(PortP) \
WINDW(PortP->TxAdd,RINDW(PortP->TxAdd) | PKT_IN_USE);\
if (PortP->TxAdd == PortP->TxEnd)\
PortP->TxAdd = PortP->TxStart;\
else\
PortP->TxAdd++;\
WWORD(PortP->PhbP->tx_add , RIO_OFF(CaD,PortP->TxAdd));
#elif defined(AIX)
# define add_transmit(PortP) \
{\
register ushort *TxAddP = (ushort *)RIO_PTR(Cad,PortP->TxAddO);\
WINDW( TxAddP, RINDW( TxAddP ) | PKT_IN_USE );\
if (PortP->TxAddO == PortP->TxEndO )\
PortP->TxAddO = PortP->TxStartO;\
else\
PortP->TxAddO += sizeof(ushort);\
WWORD(((PHB *)RIO_PTR(Cad,PortP->PhbO))->tx_add , PortP->TxAddO );\
}
#else
# define add_transmit(PortP) \
*PortP->TxAdd |= PKT_IN_USE;\
if (PortP->TxAdd == PortP->TxEnd)\
PortP->TxAdd = PortP->TxStart;\
else\
PortP->TxAdd++;\
PortP->PhbP->tx_add = RIO_OFF(CaD,PortP->TxAdd);
#endif

/*
** can_remove_receive( PacketP, PortP ) returns non-zero if PKT_IN_USE is set
** for the next packet on the queue. It will also set PacketP to point to the
** relevant packet, [having cleared the PKT_IN_USE bit]. If PKT_IN_USE is clear,
** then can_remove_receive() returns 0.
*/
#if defined(MIPS) || defined(nx6000) || defined(drs6000) || defined(UWsparc)
# define can_remove_receive(PacketP,PortP) \
((RINDW(PortP->RxRemove) & PKT_IN_USE) ? \
(PacketP=(struct PKT *)RIO_PTR(CaD,(RINDW(PortP->RxRemove) & ~PKT_IN_USE))):0)
#elif defined(AIX)
# define can_remove_receive(PacketP,PortP) \
((RINDW((ushort *)RIO_PTR(Cad,PortP->RxRemoveO)) & PKT_IN_USE) ? \
(PacketP=(struct PKT *)RIO_PTR(Cad,RINDW((ushort *)RIO_PTR(Cad,PortP->RxRemoveO)) & ~PKT_IN_USE)):0)
#else
# define can_remove_receive(PacketP,PortP) \
((*PortP->RxRemove & PKT_IN_USE) ? \
(PacketP=(struct PKT *)RIO_PTR(CaD,(*PortP->RxRemove & ~PKT_IN_USE))):0)
#endif


/*
** Will God see it within his heart to forgive us for this thing that
** we have created? To remove a packet from the receive queue you clear
** its PKT_IN_USE bit, and then bump the pointers. Once the pointers
** get to the end, they must be wrapped back to the start.
*/
#if defined(MIPS) || defined(nx6000) || defined(drs6000) || defined(UWsparc)
# define remove_receive(PortP) \
WINDW(PortP->RxRemove, (RINDW(PortP->RxRemove) & ~PKT_IN_USE));\
if (PortP->RxRemove == PortP->RxEnd)\
PortP->RxRemove = PortP->RxStart;\
else\
PortP->RxRemove++;\
WWORD(PortP->PhbP->rx_remove , RIO_OFF(CaD,PortP->RxRemove));
#elif defined(AIX)
# define remove_receive(PortP) \
{\
register ushort *RxRemoveP = (ushort *)RIO_PTR(Cad,PortP->RxRemoveO);\
WINDW( RxRemoveP, RINDW( RxRemoveP ) & ~PKT_IN_USE );\
if (PortP->RxRemoveO == PortP->RxEndO)\
PortP->RxRemoveO = PortP->RxStartO;\
else\
PortP->RxRemoveO += sizeof(ushort);\
WWORD(((PHB *)RIO_PTR(Cad,PortP->PhbO))->rx_remove, PortP->RxRemoveO );\
}
#else
# define remove_receive(PortP) \
*PortP->RxRemove &= ~PKT_IN_USE;\
if (PortP->RxRemove == PortP->RxEnd)\
PortP->RxRemove = PortP->RxStart;\
else\
PortP->RxRemove++;\
PortP->PhbP->rx_remove = RIO_OFF(CaD,PortP->RxRemove);
#endif
#endif


#else /* !IN_KERNEL */

#define ZERO_PTR NULL


#ifdef HOST
/* #define can_remove_transmit(pkt,phb) ((((char*)pkt = (*(char**)(phb->tx_remove))-1) || 1)) && (*phb->u3.s2.tx_remove_ptr & PKT_IN_USE)) */
#define remove_transmit(phb) *phb->u3.s2.tx_remove_ptr &= ~(ushort)PKT_IN_USE;\
if (phb->tx_remove == phb->tx_end)\
phb->tx_remove = phb->tx_start;\
else\
phb->tx_remove++;
#define can_add_receive(phb) !(*phb->u4.s2.rx_add_ptr & PKT_IN_USE)
#define add_receive(pkt,phb) *phb->rx_add = pkt;\
*phb->u4.s2.rx_add_ptr |= PKT_IN_USE;\
if (phb->rx_add == phb->rx_end)\
phb->rx_add = phb->rx_start;\
else\
phb->rx_add++;
#endif
#endif

#ifdef RTA
#define splx(oldspl) if ((oldspl) == 0) spl0()
#endif

#endif /* ifndef _list.h */
/*********** end of file ***********/
5 changes: 0 additions & 5 deletions trunk/drivers/char/rio/parmmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,9 @@ struct PARM_MAP {
WORD idle_count; /* Idle time counter */
WORD busy_count; /* Busy counter */
WORD idle_control; /* Control Idle Process */
#if defined(HOST) || defined(INKERNEL)
WORD tx_intr; /* TX interrupt pending */
WORD rx_intr; /* RX interrupt pending */
WORD rup_intr; /* RUP interrupt pending */
#endif
#if defined(RTA)
WORD dying_count; /* Count of processes dead */
#endif
};

#endif
Expand Down
Loading

0 comments on commit e0ca8af

Please sign in to comment.