COMPLETE is a poor global identifier
Subsystems (6)
powerpc allmodconfig:
In file included from drivers/char/rio/rio_linux.c:81:drivers/char/rio/cirrus.h:202:1: warning: "COMPLETE" redefined In file included from include/net/netns/ipv4.h:8,
from include/net/net_namespace.h:13,
from include/linux/seq_file.h:7,
from include/asm/machdep.h:12,
from include/asm/pci.h:17,
from include/linux/pci.h:951,
from drivers/char/rio/rio_linux.c:50:include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
In file included from drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included from include/net/netns/ipv4.h:8,
from include/net/net_namespace.h:13,
from include/linux/seq_file.h:7,
from include/asm/machdep.h:12,
from include/asm/pci.h:17,
from include/linux/pci.h:951,
from drivers/char/ip2/ip2main.c:95:include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
they should all be renamed. These can cause runtime failures, so it's not a trivial thing.
A message that is not in the archive (sent off-list or not yet received): 20080328032449.cbc09f3b.akpm-de/[email protected]
Hi Andrew,
Quoted 23 lines · Andrew Morton
powerpc allmodconfig:
In file included from
drivers/char/rio/rio_linux.c:81:drivers/char/rio/cirrus.h:202:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/rio/rio_linux.c:50:
include/net/inet_frag.h:28:1: warning: this is the location of the previous definitionIn file included from
drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/ip2/ip2main.c:95:
Quoted 5 lines
include/net/inet_frag.h:28:1: warning: this is the location of the previous definitionthey should all be renamed. These can cause runtime failures, so it's not a trivial thing.
How is this related to i2c?
Signature · 6 lines
Jean Delvare _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c
Quoted 29 lines · On Fri, 28 Mar 2008 15:38:33 +0100 Jean Delvare <[email protected]> wrote:
Hi Andrew,
Quoted 26 lines · Andrew Morton
powerpc allmodconfig:
In file included from
drivers/char/rio/rio_linux.c:81:drivers/char/rio/cirrus.h:202:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/rio/rio_linux.c:50:
include/net/inet_frag.h:28:1: warning: this is the location of the previous definitionIn file included from
drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/ip2/ip2main.c:95:
include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
Quoted 4 lines
Quoted 2 lines
they should all be renamed. These can cause runtime failures, so it's not a trivial thing.
How is this related to i2c?
uh, I guess at 3:24AM ip2 and i2c look the same.
Quoted 30 lines · Andrew Morton
Quoted 28 lines · On Fri, 28 Mar 2008 15:38:33 +0100 Jean Delvare <[email protected]> wrote:
Hi Andrew,
Quoted 25 lines · Andrew Morton
powerpc allmodconfig:
In file included from
drivers/char/rio/rio_linux.c:81:drivers/char/rio/cirrus.h:202:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/rio/rio_linux.c:50:
include/net/inet_frag.h:28:1: warning: this is the location of the previous definitionIn file included from
drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/ip2/ip2main.c:95:
include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
Quoted 5 lines
Quoted 3 lines
Quoted 2 lines
they should all be renamed. These can cause runtime failures, so it's not a trivial thing.
How is this related to i2c?
uh, I guess at 3:24AM ip2 and i2c look the same.
I'll take care of both, thanks.
PATCH 1/1 net-2.6.26 - Rename inet_frag.h identifiers COMPLETE, FIRST_IN, LAST_IN to INET_FRAG_*
In reply to Andrew MortonQuoted 1 line · Andrew Morton
they should all be renamed.
Done for include/net and net
---
include/net/inet_frag.h | 6 +++--- net/ipv4/inet_fragment.c | 10 +++++----- net/ipv4/ip_fragment.c | 17 +++++++++-------- net/ipv6/netfilter/nf_conntrack_reasm.c | 15 ++++++++------- net/ipv6/reassembly.c | 17 +++++++++-------- 5 files changed, 34 insertions(+), 31 deletions(-)
include/net/inet_frag.h +3 -3
@@ -25,9 +25,9 @@ struct inet_frag_queue {int meat;__u8 last_in;/* first/last segment arrived? */ -#define COMPLETE 4 -#define FIRST_IN 2 -#define LAST_IN 1 +#define INET_FRAG_COMPLETE 4 +#define INET_FRAG_FIRST_IN 2 +#define INET_FRAG_LAST_IN 1 };#define INETFRAGS_HASHSZ 64
net/ipv4/inet_fragment.c +5 -5
@@ -104,10 +104,10 @@ void inet_frag_kill(struct inet_frag_queue *fq, struct inet_frags *f)if (del_timer (&fq->timer))atomic_dec (&fq->refcnt); -if (!(fq->last_in &COMPLETE )) { +if (!(fq->last_in &INET_FRAG_COMPLETE )) {fq_unlink (fq, f);atomic_dec (&fq->refcnt); - fq->last_in |=COMPLETE ; + fq->last_in |=INET_FRAG_COMPLETE ; } }
@@ -131,7 +131,7 @@ void inet_frag_destroy(struct inet_frag_queue *q, struct inet_frags *f,struct sk_buff *fp;struct netns_frags *nf; -BUG_TRAP (q->last_in &COMPLETE ); +BUG_TRAP (q->last_in &INET_FRAG_COMPLETE );BUG_TRAP (del_timer (&q->timer) ==0 );/* Release all fragment data. */
@@ -174,7 +174,7 @@ int inet_frag_evictor(struct netns_frags *nf, struct inet_frags *f)read_unlock (&f->lock);spin_lock (&q->lock); -if (!(q->last_in &COMPLETE )) +if (!(q->last_in &INET_FRAG_COMPLETE ))inet_frag_kill (q, f);spin_unlock (&q->lock);
@@ -206,7 +206,7 @@ static struct inet_frag_queue *inet_frag_intern(struct netns_frags *nf,if (qp->net == nf && f->match (qp, arg)) {atomic_inc (&qp->refcnt);write_unlock (&f->lock); - qp_in->last_in |=COMPLETE ; + qp_in->last_in |=INET_FRAG_COMPLETE ;inet_frag_put (qp_in, f);return qp; }
net/ipv4/ip_fragment.c +9 -8
@@ -194,7 +194,7 @@ static void ip_expire(unsigned long arg)spin_lock (&qp->q.lock); -if (qp->q.last_in &COMPLETE ) +if (qp->q.last_in &INET_FRAG_COMPLETE ) goto out;ipq_kill (qp);
@@ -202,7 +202,7 @@ static void ip_expire(unsigned long arg)IP_INC_STATS_BH (IPSTATS_MIB_REASMTIMEOUT );IP_INC_STATS_BH (IPSTATS_MIB_REASMFAILS ); -if ((qp->q.last_in&FIRST_IN ) && qp->q.fragments !=NULL ) { +if ((qp->q.last_in &INET_FRAG_FIRST_IN ) && qp->q.fragments !=NULL ) {struct sk_buff *head = qp->q.fragments;struct net *net;
@@ -301,7 +301,7 @@ static int ip_frag_queue(struct ipq *qp, struct sk_buff *skb)int ihl, end;int err = -ENOENT ; -if (qp->q.last_in &COMPLETE ) +if (qp->q.last_in &INET_FRAG_COMPLETE ) goto err; if (!(IPCB(skb)->flags & IPSKB_FRAG_COMPLETE) &&
@@ -327,9 +327,9 @@ static int ip_frag_queue(struct ipq *qp, struct sk_buff *skb)* or have different end, the segment is corrrupted. */ if (end < qp->q.len || - ((qp->q.last_in &LAST_IN ) && end != qp->q.len)) + ((qp->q.last_in &INET_FRAG_LAST_IN ) && end != qp->q.len)) goto err; - qp->q.last_in |=LAST_IN ; + qp->q.last_in |=INET_FRAG_LAST_IN ; qp->q.len = end; }else {if (end&7 ) {
@@ -339,7 +339,7 @@ static int ip_frag_queue(struct ipq *qp, struct sk_buff *skb) }if (end > qp->q.len) {/* Some bits beyond end -> corruption. */ -if (qp->q.last_in &LAST_IN ) +if (qp->q.last_in &INET_FRAG_LAST_IN ) goto err; qp->q.len = end; }
@@ -438,9 +438,10 @@ static int ip_frag_queue(struct ipq *qp, struct sk_buff *skb) qp->q.meat += skb->len;atomic_add (skb->truesize, &qp->q.net->mem);if (offset ==0 ) - qp->q.last_in |=FIRST_IN ; + qp->q.last_in |=INET_FRAG_FIRST_IN ; -if (qp->q.last_in == (FIRST_IN |LAST_IN ) && qp->q.meat == qp->q.len) +if (qp->q.last_in == (INET_FRAG_FIRST_IN |INET_FRAG_LAST_IN ) && + qp->q.meat == qp->q.len)return ip_frag_reasm (qp, prev, dev);write_lock (&ip4_frags.lock);
net/ipv6/netfilter/nf_conntrack_reasm.c +8 -7
@@ -183,7 +183,7 @@ static void nf_ct_frag6_expire(unsigned long data)spin_lock (&fq->q.lock); -if (fq->q.last_in &COMPLETE ) +if (fq->q.last_in &INET_FRAG_COMPLETE ) goto out;fq_kill (fq);
@@ -225,7 +225,7 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,struct sk_buff *prev, *next;int offset, end; -if (fq->q.last_in &COMPLETE ) { +if (fq->q.last_in &INET_FRAG_COMPLETE ) {pr_debug ("Allready completed\n" ); goto err; }
@@ -252,11 +252,11 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,* or have different end, the segment is corrupted. */ if (end < fq->q.len || - ((fq->q.last_in &LAST_IN ) && end != fq->q.len)) { + ((fq->q.last_in &INET_FRAG_LAST_IN ) && end != fq->q.len)) {pr_debug ("already received last fragment\n" ); goto err; } - fq->q.last_in |=LAST_IN ; + fq->q.last_in |=INET_FRAG_LAST_IN ; fq->q.len = end; }else {/* Check if the fragment is rounded to 8 bytes.
@@ -271,7 +271,7 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb, }if (end > fq->q.len) {/* Some bits beyond end -> corruption. */ -if (fq->q.last_in &LAST_IN ) { +if (fq->q.last_in &INET_FRAG_LAST_IN ) {pr_debug ("last packet already reached.\n" ); goto err; }
@@ -383,7 +383,7 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,*/ if (offset ==0 ) { fq->nhoffset = nhoff; - fq->q.last_in |=FIRST_IN ; + fq->q.last_in |=INET_FRAG_FIRST_IN ; }write_lock (&nf_frags.lock);list_move_tail (&fq->q.lru_list, &nf_init_frags.lru_list);
@@ -645,7 +645,8 @@ struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb) goto ret_orig; } -if (fq->q.last_in == (FIRST_IN |LAST_IN ) && fq->q.meat == fq->q.len) { +if (fq->q.last_in == (INET_FRAG_FIRST_IN |INET_FRAG_LAST_IN ) && + fq->q.meat == fq->q.len) { ret_skb =nf_ct_frag6_reasm (fq, dev);if (ret_skb ==NULL )pr_debug ("Can't reassemble fragmented packets\n" );
net/ipv6/reassembly.c +9 -8
@@ -202,7 +202,7 @@ static void ip6_frag_expire(unsigned long data)spin_lock (&fq->q.lock); -if (fq->q.last_in &COMPLETE ) +if (fq->q.last_in &INET_FRAG_COMPLETE ) goto out;fq_kill (fq);
@@ -217,7 +217,7 @@ static void ip6_frag_expire(unsigned long data)rcu_read_unlock ();/* Don't send error if the first segment did not arrive. */ -if (!(fq->q.last_in&FIRST_IN ) || !fq->q.fragments) +if (!(fq->q.last_in &INET_FRAG_FIRST_IN ) || !fq->q.fragments) goto out;/*
@@ -265,7 +265,7 @@ static int ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb,struct net_device *dev;int offset, end; -if (fq->q.last_in &COMPLETE ) +if (fq->q.last_in &INET_FRAG_COMPLETE ) goto err; offset =ntohs (fhdr->frag_off) & ~0x7 ;
@@ -294,9 +294,9 @@ static int ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb,* or have different end, the segment is corrupted. */ if (end < fq->q.len || - ((fq->q.last_in &LAST_IN ) && end != fq->q.len)) + ((fq->q.last_in &INET_FRAG_LAST_IN ) && end != fq->q.len)) goto err; - fq->q.last_in |=LAST_IN ; + fq->q.last_in |=INET_FRAG_LAST_IN ; fq->q.len = end; }else {/* Check if the fragment is rounded to 8 bytes.
@@ -314,7 +314,7 @@ static int ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb, }if (end > fq->q.len) {/* Some bits beyond end -> corruption. */ -if (fq->q.last_in &LAST_IN ) +if (fq->q.last_in &INET_FRAG_LAST_IN ) goto err; fq->q.len = end; }
@@ -417,10 +417,11 @@ static int ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb,*/ if (offset ==0 ) { fq->nhoffset = nhoff; - fq->q.last_in |=FIRST_IN ; + fq->q.last_in |=INET_FRAG_FIRST_IN ; } -if (fq->q.last_in == (FIRST_IN |LAST_IN ) && fq->q.meat == fq->q.len) +if (fq->q.last_in == (INET_FRAG_FIRST_IN |INET_FRAG_LAST_IN ) && + fq->q.meat == fq->q.len)return ip6_frag_reasm (fq, prev, dev);write_lock (&ip6_frags.lock);
Re: [PATCH] net-2.6.26 - Rename inet_frag.h identifiers COMPLETE, FIRST_IN, LAST_IN to INET_FRAG_*
From: Joe Perches <[email protected]>
Date: Fri, 28 Mar 2008 11:26:31 -0700
Quoted 6 lines · Andrew Morton
Quoted 1 line
they should all be renamed.
Done for
include/netand netSigned-off-by Joe Perches <[email protected]>
Applied, thanks.
PATCH 1/4 Char: rio, fix cirrus defines
In reply to Andrew MortonRename defines to be in RIO* namespace to not to collide with other defines in tree. This broke (as akpm correctly pointed out) some allmodconfig builds, e.g. on ppc:
In file included from drivers/char/rio/rio_linux.c:81:drivers/char/rio/cirrus.h:202:1: warning: "COMPLETE" redefined In file included from include/net/netns/ipv4.h:8,
from include/net/net_namespace.h:13,
from include/linux/seq_file.h:7,
from include/asm/machdep.h:12,
from include/asm/pci.h:17,
from include/linux/pci.h:951,
from drivers/char/rio/rio_linux.c:50:include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
--- drivers/char/rio/cirrus.h | 210 +++++++++++++++++++++--------------------- drivers/char/rio/rio_linux.c | 10 +- drivers/char/rio/riocmd.c | 19 ++-- drivers/char/rio/rioctrl.c | 37 ++++---- drivers/char/rio/riointr.c | 5 +- drivers/char/rio/rioparam.c | 70 +++++++------- drivers/char/rio/riotty.c | 25 +++--- 7 files changed, 191 insertions(+), 185 deletions(-)
drivers/char/rio/cirrus.h +105 -105
@@ -43,83 +43,83 @@/* Bit fields for particular registers shared with driver */ /* COR1 - driver and RTA */ -#define COR1_ODD 0x80/* Odd parity */ -#define COR1_EVEN 0x00/* Even parity */ -#define COR1_NOP 0x00/* No parity */ -#define COR1_FORCE 0x20/* Force parity */ -#define COR1_NORMAL 0x40/* With parity */ -#define COR1_1STOP 0x00/* 1 stop bit */ -#define COR1_15STOP 0x04/* 1.5 stop bits */ -#define COR1_2STOP 0x08/* 2 stop bits */ -#define COR1_5BITS 0x00/* 5 data bits */ -#define COR1_6BITS 0x01/* 6 data bits */ -#define COR1_7BITS 0x02/* 7 data bits */ -#define COR1_8BITS 0x03/* 8 data bits */ - -#define COR1_HOST 0xef/* Safe host bits */ +#define RIOC_COR1_ODD 0x80/* Odd parity */ +#define RIOC_COR1_EVEN 0x00/* Even parity */ +#define RIOC_COR1_NOP 0x00/* No parity */ +#define RIOC_COR1_FORCE 0x20/* Force parity */ +#define RIOC_COR1_NORMAL 0x40/* With parity */ +#define RIOC_COR1_1STOP 0x00/* 1 stop bit */ +#define RIOC_COR1_15STOP 0x04/* 1.5 stop bits */ +#define RIOC_COR1_2STOP 0x08/* 2 stop bits */ +#define RIOC_COR1_5BITS 0x00/* 5 data bits */ +#define RIOC_COR1_6BITS 0x01/* 6 data bits */ +#define RIOC_COR1_7BITS 0x02/* 7 data bits */ +#define RIOC_COR1_8BITS 0x03/* 8 data bits */ + +#define RIOC_COR1_HOST 0xef/* Safe host bits */ /* RTA only */ -#define COR1_CINPCK 0x00/* Check parity of received characters */ -#define COR1_CNINPCK 0x10/* Don't check parity */ +#define RIOC_COR1_CINPCK 0x00/* Check parity of received characters */ +#define RIOC_COR1_CNINPCK 0x10/* Don't check parity */ /* COR2 bits for both RTA and driver use */ -#define COR2_IXANY 0x80/* IXANY - any character is XON */ -#define COR2_IXON 0x40/* IXON - enable tx soft flowcontrol */ -#define COR2_RTSFLOW 0x02/* Enable tx hardware flow control */ +#define RIOC_COR2_IXANY 0x80/* IXANY - any character is XON */ +#define RIOC_COR2_IXON 0x40/* IXON - enable tx soft flowcontrol */ +#define RIOC_COR2_RTSFLOW 0x02/* Enable tx hardware flow control */ /* Additional driver bits */ -#define COR2_HUPCL 0x20/* Hang up on close */ -#define COR2_CTSFLOW 0x04/* Enable rx hardware flow control */ -#define COR2_IXOFF 0x01/* Enable rx software flow control */ -#define COR2_DTRFLOW 0x08/* Enable tx hardware flow control */ +#define RIOC_COR2_HUPCL 0x20/* Hang up on close */ +#define RIOC_COR2_CTSFLOW 0x04/* Enable rx hardware flow control */ +#define RIOC_COR2_IXOFF 0x01/* Enable rx software flow control */ +#define RIOC_COR2_DTRFLOW 0x08/* Enable tx hardware flow control */ /* RTA use only */ -#define COR2_ETC 0x20/* Embedded transmit options */ -#define COR2_LOCAL 0x10/* Local loopback mode */ -#define COR2_REMOTE 0x08/* Remote loopback mode */ -#define COR2_HOST 0xc2/* Safe host bits */ +#define RIOC_COR2_ETC 0x20/* Embedded transmit options */ +#define RIOC_COR2_LOCAL 0x10/* Local loopback mode */ +#define RIOC_COR2_REMOTE 0x08/* Remote loopback mode */ +#define RIOC_COR2_HOST 0xc2/* Safe host bits */ /* COR3 - RTA use only */ -#define COR3_SCDRNG 0x80/* Enable special char detect for range */ -#define COR3_SCD34 0x40/* Special character detect for SCHR's 3 + 4 */ -#define COR3_FCT 0x20/* Flow control transparency */ -#define COR3_SCD12 0x10/* Special character detect for SCHR's 1 + 2 */ -#define COR3_FIFO12 0x0c/* 12 chars for receive FIFO threshold */ -#define COR3_FIFO10 0x0a/* 10 chars for receive FIFO threshold */ -#define COR3_FIFO8 0x08/* 8 chars for receive FIFO threshold */ -#define COR3_FIFO6 0x06/* 6 chars for receive FIFO threshold */ - -#define COR3_THRESHOLD COR3_FIFO8/* MUST BE LESS THAN MCOR_THRESHOLD */ - -#define COR3_DEFAULT (COR3_FCT | COR3_THRESHOLD) +#define RIOC_COR3_SCDRNG 0x80/* Enable special char detect for range */ +#define RIOC_COR3_SCD34 0x40/* Special character detect for SCHR's 3 + 4 */ +#define RIOC_COR3_FCT 0x20/* Flow control transparency */ +#define RIOC_COR3_SCD12 0x10/* Special character detect for SCHR's 1 + 2 */ +#define RIOC_COR3_FIFO12 0x0c/* 12 chars for receive FIFO threshold */ +#define RIOC_COR3_FIFO10 0x0a/* 10 chars for receive FIFO threshold */ +#define RIOC_COR3_FIFO8 0x08/* 8 chars for receive FIFO threshold */ +#define RIOC_COR3_FIFO6 0x06/* 6 chars for receive FIFO threshold */ + +#define RIOC_COR3_THRESHOLD RIOC_COR3_FIFO8/* MUST BE LESS THAN MCOR_THRESHOLD */ + +#define RIOC_COR3_DEFAULT (RIOC_COR3_FCT | RIOC_COR3_THRESHOLD)/* Default bits for COR3 */ /* COR4 driver and RTA use */ -#define COR4_IGNCR 0x80/* Throw away CR's on input */ -#define COR4_ICRNL 0x40/* Map CR -> NL on input */ -#define COR4_INLCR 0x20/* Map NL -> CR on input */ -#define COR4_IGNBRK 0x10/* Ignore Break */ -#define COR4_NBRKINT 0x08/* No interrupt on break (-BRKINT) */ -#define COR4_RAISEMOD 0x01/* Raise modem output lines on non-zero baud */ +#define RIOC_COR4_IGNCR 0x80/* Throw away CR's on input */ +#define RIOC_COR4_ICRNL 0x40/* Map CR -> NL on input */ +#define RIOC_COR4_INLCR 0x20/* Map NL -> CR on input */ +#define RIOC_COR4_IGNBRK 0x10/* Ignore Break */ +#define RIOC_COR4_NBRKINT 0x08/* No interrupt on break (-BRKINT) */ +#define RIOC_COR4_RAISEMOD 0x01/* Raise modem output lines on non-zero baud */ /* COR4 driver only */ -#define COR4_IGNPAR 0x04/* IGNPAR (ignore characters with errors) */ -#define COR4_PARMRK 0x02/* PARMRK */ +#define RIOC_COR4_IGNPAR 0x04/* IGNPAR (ignore characters with errors) */ +#define RIOC_COR4_PARMRK 0x02/* PARMRK */ -#define COR4_HOST 0xf8/* Safe host bits */ +#define RIOC_COR4_HOST 0xf8/* Safe host bits */ /* COR4 RTA only */ -#define COR4_CIGNPAR 0x02/* Thrown away bad characters */ -#define COR4_CPARMRK 0x04/* PARMRK characters */ -#define COR4_CNPARMRK 0x03/* Don't PARMRK */ +#define RIOC_COR4_CIGNPAR 0x02/* Thrown away bad characters */ +#define RIOC_COR4_CPARMRK 0x04/* PARMRK characters */ +#define RIOC_COR4_CNPARMRK 0x03/* Don't PARMRK */ /* COR5 driver and RTA use */ -#define COR5_ISTRIP 0x80/* Strip input chars to 7 bits */ -#define COR5_LNE 0x40/* Enable LNEXT processing */ -#define COR5_CMOE 0x20/* Match good and errored characters */ -#define COR5_ONLCR 0x02/* NL -> CR NL on output */ -#define COR5_OCRNL 0x01/* CR -> NL on output */ +#define RIOC_COR5_ISTRIP 0x80/* Strip input chars to 7 bits */ +#define RIOC_COR5_LNE 0x40/* Enable LNEXT processing */ +#define RIOC_COR5_CMOE 0x20/* Match good and errored characters */ +#define RIOC_COR5_ONLCR 0x02/* NL -> CR NL on output */ +#define RIOC_COR5_OCRNL 0x01/* CR -> NL on output */ /* ** Spare bits - these are not used in the CIRRUS registers, so we use
@@ -128,86 +128,86 @@/* ** tstop and tbusy indication */ -#define COR5_TSTATE_ON 0x08/* Turn on monitoring of tbusy and tstop */ -#define COR5_TSTATE_OFF 0x04/* Turn off monitoring of tbusy and tstop */ +#define RIOC_COR5_TSTATE_ON 0x08/* Turn on monitoring of tbusy and tstop */ +#define RIOC_COR5_TSTATE_OFF 0x04/* Turn off monitoring of tbusy and tstop */ /* ** TAB3 */ -#define COR5_TAB3 0x10/* TAB3 mode */ +#define RIOC_COR5_TAB3 0x10/* TAB3 mode */ -#define COR5_HOST 0xc3/* Safe host bits */ +#define RIOC_COR5_HOST 0xc3/* Safe host bits */ /* CCSR */ -#define CCSR_TXFLOFF 0x04/* Tx is xoffed */ +#define RIOC_CCSR_TXFLOFF 0x04/* Tx is xoffed */ /* MSVR1 */ /* NB. DTR / CD swapped from Cirrus spec as the pins are also reversed on the RTA. This is because otherwise DCD would get lost on the 1 parallel / 3 serial option. */ -#define MSVR1_CD 0x80/* CD (DSR on Cirrus) */ -#define MSVR1_RTS 0x40/* RTS (CTS on Cirrus) */ -#define MSVR1_RI 0x20/* RI */ -#define MSVR1_DTR 0x10/* DTR (CD on Cirrus) */ -#define MSVR1_CTS 0x01/* CTS output pin (RTS on Cirrus) */ +#define RIOC_MSVR1_CD 0x80/* CD (DSR on Cirrus) */ +#define RIOC_MSVR1_RTS 0x40/* RTS (CTS on Cirrus) */ +#define RIOC_MSVR1_RI 0x20/* RI */ +#define RIOC_MSVR1_DTR 0x10/* DTR (CD on Cirrus) */ +#define RIOC_MSVR1_CTS 0x01/* CTS output pin (RTS on Cirrus) */ /* Next two used to indicate state of tbusy and tstop to driver */ -#define MSVR1_TSTOP 0x08/* Set if port flow controlled */ -#define MSVR1_TEMPTY 0x04/* Set if port tx buffer empty */ +#define RIOC_MSVR1_TSTOP 0x08/* Set if port flow controlled */ +#define RIOC_MSVR1_TEMPTY 0x04/* Set if port tx buffer empty */ -#define MSVR1_HOST 0xf3/* The bits the host wants */ +#define RIOC_MSVR1_HOST 0xf3/* The bits the host wants */ /* Defines for the subscripts of a CONFIG packet */ -#define CONFIG_COR1 1/* Option register 1 */ -#define CONFIG_COR2 2/* Option register 2 */ -#define CONFIG_COR4 3/* Option register 4 */ -#define CONFIG_COR5 4/* Option register 5 */ -#define CONFIG_TXXON 5/* Tx XON character */ -#define CONFIG_TXXOFF 6/* Tx XOFF character */ -#define CONFIG_RXXON 7/* Rx XON character */ -#define CONFIG_RXXOFF 8/* Rx XOFF character */ -#define CONFIG_LNEXT 9/* LNEXT character */ -#define CONFIG_TXBAUD 10/* Tx baud rate */ -#define CONFIG_RXBAUD 11/* Rx baud rate */ - -#define PRE_EMPTIVE 0x80/* Pre-emptive bit in command field */ +#define RIOC_CONFIG_COR1 1/* Option register 1 */ +#define RIOC_CONFIG_COR2 2/* Option register 2 */ +#define RIOC_CONFIG_COR4 3/* Option register 4 */ +#define RIOC_CONFIG_COR5 4/* Option register 5 */ +#define RIOC_CONFIG_TXXON 5/* Tx XON character */ +#define RIOC_CONFIG_TXXOFF 6/* Tx XOFF character */ +#define RIOC_CONFIG_RXXON 7/* Rx XON character */ +#define RIOC_CONFIG_RXXOFF 8/* Rx XOFF character */ +#define RIOC_CONFIG_LNEXT 9/* LNEXT character */ +#define RIOC_CONFIG_TXBAUD 10/* Tx baud rate */ +#define RIOC_CONFIG_RXBAUD 11/* Rx baud rate */ + +#define RIOC_PRE_EMPTIVE 0x80/* Pre-emptive bit in command field */ /* Packet types going from Host to remote - with the exception of OPEN, MOPEN, CONFIG, SBREAK and MEMDUMP the remaining bytes of the data array will not be used */ -#define OPEN 0x00/* Open a port */ -#define CONFIG 0x01/* Configure a port */ -#define MOPEN 0x02/* Modem open (block for DCD) */ -#define CLOSE 0x03/* Close a port */ -#define WFLUSH (0x04 | PRE_EMPTIVE)/* Write flush */ -#define RFLUSH (0x05 | PRE_EMPTIVE)/* Read flush */ -#define RESUME (0x06 | PRE_EMPTIVE)/* Resume if xoffed */ -#define SBREAK 0x07/* Start break */ -#define EBREAK 0x08/* End break */ -#define SUSPEND (0x09 | PRE_EMPTIVE)/* Susp op (behave as tho xoffed) */ -#define FCLOSE (0x0a | PRE_EMPTIVE)/* Force close */ -#define XPRINT 0x0b/* Xprint packet */ -#define MBIS (0x0c | PRE_EMPTIVE)/* Set modem lines */ -#define MBIC (0x0d | PRE_EMPTIVE)/* Clear modem lines */ -#define MSET (0x0e | PRE_EMPTIVE)/* Set modem lines */ -#define PCLOSE 0x0f/* Pseudo close - Leaves rx/tx enabled */ -#define MGET (0x10 | PRE_EMPTIVE)/* Force update of modem status */ -#define MEMDUMP (0x11 | PRE_EMPTIVE)/* Send back mem from addr supplied */ -#define READ_REGISTER (0x12 | PRE_EMPTIVE)/* Read CD1400 register (debug) */ +#define RIOC_OPEN 0x00/* Open a port */ +#define RIOC_CONFIG 0x01/* Configure a port */ +#define RIOC_MOPEN 0x02/* Modem open (block for DCD) */ +#define RIOC_CLOSE 0x03/* Close a port */ +#define RIOC_WFLUSH (0x04 | RIOC_PRE_EMPTIVE)/* Write flush */ +#define RIOC_RFLUSH (0x05 | RIOC_PRE_EMPTIVE)/* Read flush */ +#define RIOC_RESUME (0x06 | RIOC_PRE_EMPTIVE)/* Resume if xoffed */ +#define RIOC_SBREAK 0x07/* Start break */ +#define RIOC_EBREAK 0x08/* End break */ +#define RIOC_SUSPEND (0x09 | RIOC_PRE_EMPTIVE)/* Susp op (behave as tho xoffed) */ +#define RIOC_FCLOSE (0x0a | RIOC_PRE_EMPTIVE)/* Force close */ +#define RIOC_XPRINT 0x0b/* Xprint packet */ +#define RIOC_MBIS (0x0c | RIOC_PRE_EMPTIVE)/* Set modem lines */ +#define RIOC_MBIC (0x0d | RIOC_PRE_EMPTIVE)/* Clear modem lines */ +#define RIOC_MSET (0x0e | RIOC_PRE_EMPTIVE)/* Set modem lines */ +#define RIOC_PCLOSE 0x0f/* Pseudo close - Leaves rx/tx enabled */ +#define RIOC_MGET (0x10 | RIOC_PRE_EMPTIVE)/* Force update of modem status */ +#define RIOC_MEMDUMP (0x11 | RIOC_PRE_EMPTIVE)/* Send back mem from addr supplied */ +#define RIOC_READ_REGISTER (0x12 | RIOC_PRE_EMPTIVE)/* Read CD1400 register (debug) */ /* "Command" packets going from remote to host COMPLETE and MODEM_STATUS use data[4] / data[3] to indicate current state and modem status respectively */ -#define COMPLETE (0x20 | PRE_EMPTIVE) +#define RIOC_COMPLETE (0x20 | RIOC_PRE_EMPTIVE)/* Command complete */ -#define BREAK_RECEIVED (0x21 | PRE_EMPTIVE) +#define RIOC_BREAK_RECEIVED (0x21 | RIOC_PRE_EMPTIVE)/* Break received */ -#define MODEM_STATUS (0x22 | PRE_EMPTIVE) +#define RIOC_MODEM_STATUS (0x22 | RIOC_PRE_EMPTIVE)/* Change in modem status */ /* "Command" packet that could go either way - handshake wake-up */ -#define HANDSHAKE (0x23 | PRE_EMPTIVE) +#define RIOC_HANDSHAKE (0x23 | RIOC_PRE_EMPTIVE)/* Wake-up to HOST / RTA */ #endif
drivers/char/rio/rio_linux.c +6 -4
@@ -344,7 +344,7 @@ int rio_minor(struct tty_struct *tty)static int rio_set_real_termios (void *ptr) { -return RIOParam ((struct Port *) ptr,CONFIG ,1 ,1 ); +return RIOParam ((struct Port *) ptr,RIOC_CONFIG ,1 ,1 ); }
@@ -487,7 +487,7 @@ static int rio_get_CD(void *ptr)int rv;func_enter (); - rv = (PortP->ModemState &MSVR1_CD ) !=0 ; + rv = (PortP->ModemState &RIOC_MSVR1_CD ) !=0 ;rio_dprintk (RIO_DEBUG_INIT ,"Getting CD status: %d\n" , rv);
@@ -607,7 +607,8 @@ static int rio_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmdrio_dprintk (RIO_DEBUG_TTY ,"BREAK on deleted RTA\n" ); rc = -EIO ; }else { -if (RIOShortCommand (p, PortP,SBREAK ,2 ,250 ) ==RIO_FAIL ) { +if (RIOShortCommand (p, PortP,RIOC_SBREAK ,2 ,250 ) == +RIO_FAIL ) {rio_dprintk (RIO_DEBUG_INTR ,"SBREAK RIOShortCommand failed\n" ); rc = -EIO ; }
@@ -622,7 +623,8 @@ static int rio_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd l = arg ? arg *100 :250 ;if (l >255 ) l =255 ; -if (RIOShortCommand (p, PortP,SBREAK ,2 , arg ? arg *100 :250 ) ==RIO_FAIL ) { +if (RIOShortCommand (p, PortP,RIOC_SBREAK ,2 , + arg ? arg *100 :250 ) ==RIO_FAIL ) {rio_dprintk (RIO_DEBUG_INTR ,"SBREAK RIOShortCommand failed\n" ); rc = -EIO ; }
drivers/char/rio/riocmd.c +10 -9
@@ -417,7 +417,7 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, struc PortP = p->RIOPortp[SysPort];rio_spin_lock_irqsave (&PortP->portSem, flags);switch (readb (&PktCmdP->Command)) { -case BREAK_RECEIVED : +case RIOC_BREAK_RECEIVED :rio_dprintk (RIO_DEBUG_CMD ,"Received a break!\n" );/* If the current line disc. is not multi-threading and the current processor is not the default, reset rup_intr
@@ -428,16 +428,16 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, strucgs_got_break (&PortP->gs);break ; -case COMPLETE : +case RIOC_COMPLETE :rio_dprintk (RIO_DEBUG_CMD ,"Command complete on phb %d host %Zd\n" ,readb (&PktCmdP->PhbNum), HostP - p->RIOHosts); subCommand =1 ;switch (readb (&PktCmdP->SubCommand)) { -case MEMDUMP : +case RIOC_MEMDUMP :rio_dprintk (RIO_DEBUG_CMD ,"Memory dump cmd (0x%x) from addr 0x%x\n" ,readb (&PktCmdP->SubCommand),readw (&PktCmdP->SubAddr));break ; -case READ_REGISTER : +case RIOC_READ_REGISTER :rio_dprintk (RIO_DEBUG_CMD ,"Read register (0x%x)\n" ,readw (&PktCmdP->SubAddr)); - p->CdRegister = (readb (&PktCmdP->ModemStatus) &MSVR1_HOST ); + p->CdRegister = (readb (&PktCmdP->ModemStatus) &RIOC_MSVR1_HOST );break ;default : subCommand =0 ;
@@ -456,14 +456,15 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, strucrio_dprintk (RIO_DEBUG_CMD ,"No change\n" );/* FALLTHROUGH */ -case MODEM_STATUS : +case RIOC_MODEM_STATUS :/* ** Knock out the tbusy and tstop bits, as these are not relevant ** to the check for modem status change (they're just there because ** it's a convenient place to put them!). */ ReportedModemStatus =readb (&PktCmdP->ModemStatus); -if ((PortP->ModemState &MSVR1_HOST ) == (ReportedModemStatus &MSVR1_HOST )) { +if ((PortP->ModemState &RIOC_MSVR1_HOST ) == + (ReportedModemStatus &RIOC_MSVR1_HOST )) {rio_dprintk (RIO_DEBUG_CMD ,"Modem status unchanged 0x%x\n" , PortP->ModemState);/* ** Update ModemState just in case tbusy or tstop states have
@@ -497,7 +498,7 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, struc/* ** Is there a carrier? */ -if (PortP->ModemState &MSVR1_CD ) { +if (PortP->ModemState &RIOC_MSVR1_CD ) {/* ** Has carrier just appeared? */
@@ -691,7 +692,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)*/ rio_spin_unlock_irqrestore (&UnixRupP->RupLock, flags); FreeMe =RIOCommandRup (p, Rup, HostP, PacketP); -if (readb (&PacketP->data[5 ]) ==MEMDUMP ) { +if (readb (&PacketP->data[5 ]) ==RIOC_MEMDUMP ) {rio_dprintk (RIO_DEBUG_CMD ,"Memdump from 0x%x complete\n" ,readw (&(PacketP->data[6 ])));rio_memcpy_fromio (p->RIOMemDump, &(PacketP->data[8 ]),32 ); }
drivers/char/rio/rioctrl.c +20 -17
@@ -422,7 +422,8 @@ int riocontrol(struct rio_info *p, dev_t dev, int cmd, unsigned long arg, int su }rio_spin_lock_irqsave (&PortP->portSem, flags); -if (RIOPreemptiveCmd (p, (p->RIOPortp[port]),RESUME ) ==RIO_FAIL ) { +if (RIOPreemptiveCmd (p, (p->RIOPortp[port]),RIOC_RESUME ) == +RIO_FAIL ) {rio_dprintk (RIO_DEBUG_CTRL ,"RIO_RESUME failed\n" );rio_spin_unlock_irqrestore (&PortP->portSem, flags);return -EBUSY ;
@@ -636,7 +637,8 @@ int riocontrol(struct rio_info *p, dev_t dev, int cmd, unsigned long arg, int sureturn -ENXIO ; } PortP = (p->RIOPortp[PortTty.port]); -RIOParam (PortP,CONFIG , PortP->State &RIO_MODEM ,OK_TO_SLEEP ); +RIOParam (PortP,RIOC_CONFIG , PortP->State &RIO_MODEM , +OK_TO_SLEEP );return retval;case RIO_SET_PORT_PARAMS :
@@ -1247,7 +1249,7 @@ int riocontrol(struct rio_info *p, dev_t dev, int cmd, unsigned long arg, int surio_spin_lock_irqsave (&PortP->portSem, flags); -if (RIOPreemptiveCmd (p, PortP,MEMDUMP ) ==RIO_FAIL ) { +if (RIOPreemptiveCmd (p, PortP,RIOC_MEMDUMP ) ==RIO_FAIL ) {rio_dprintk (RIO_DEBUG_CTRL ,"RIO_MEM_DUMP failed\n" );rio_spin_unlock_irqrestore (&PortP->portSem, flags);return -EBUSY ;
@@ -1313,7 +1315,8 @@ int riocontrol(struct rio_info *p, dev_t dev, int cmd, unsigned long arg, int surio_spin_lock_irqsave (&PortP->portSem, flags); -if (RIOPreemptiveCmd (p, PortP,READ_REGISTER ) ==RIO_FAIL ) { +if (RIOPreemptiveCmd (p, PortP,RIOC_READ_REGISTER ) == +RIO_FAIL ) {rio_dprintk (RIO_DEBUG_CTRL ,"RIO_READ_REGISTER failed\n" );rio_spin_unlock_irqrestore (&PortP->portSem, flags);return -EBUSY ;
@@ -1434,50 +1437,50 @@ int RIOPreemptiveCmd(struct rio_info *p, struct Port *PortP, u8 Cmd) PktCmdP->PhbNum = port;switch (Cmd) { -case MEMDUMP : +case RIOC_MEMDUMP :rio_dprintk (RIO_DEBUG_CTRL ,"Queue MEMDUMP command blk %p " "(addr 0x%x)\n" , CmdBlkP, (int ) SubCmd.Addr); - PktCmdP->SubCommand =MEMDUMP ; + PktCmdP->SubCommand =RIOC_MEMDUMP ; PktCmdP->SubAddr = SubCmd.Addr;break ; -case FCLOSE : +case RIOC_FCLOSE :rio_dprintk (RIO_DEBUG_CTRL ,"Queue FCLOSE command blk %p\n" , CmdBlkP);break ; -case READ_REGISTER : +case RIOC_READ_REGISTER :rio_dprintk (RIO_DEBUG_CTRL ,"Queue READ_REGISTER (0x%x) " "command blk %p\n" , (int ) SubCmd.Addr, CmdBlkP); - PktCmdP->SubCommand =READ_REGISTER ; + PktCmdP->SubCommand =RIOC_READ_REGISTER ; PktCmdP->SubAddr = SubCmd.Addr;break ; -case RESUME : +case RIOC_RESUME :rio_dprintk (RIO_DEBUG_CTRL ,"Queue RESUME command blk %p\n" , CmdBlkP);break ; -case RFLUSH : +case RIOC_RFLUSH :rio_dprintk (RIO_DEBUG_CTRL ,"Queue RFLUSH command blk %p\n" , CmdBlkP); CmdBlkP->PostFuncP = RIORFlushEnable;break ; -case SUSPEND : +case RIOC_SUSPEND :rio_dprintk (RIO_DEBUG_CTRL ,"Queue SUSPEND command blk %p\n" , CmdBlkP);break ; -case MGET : +case RIOC_MGET :rio_dprintk (RIO_DEBUG_CTRL ,"Queue MGET command blk %p\n" , CmdBlkP);break ; -case MSET : -case MBIC : -case MBIS : +case RIOC_MSET : +case RIOC_MBIC : +case RIOC_MBIS : CmdBlkP->Packet.data[4 ] = (char ) PortP->ModemLines;rio_dprintk (RIO_DEBUG_CTRL ,"Queue MSET/MBIC/MBIS command " "blk %p\n" , CmdBlkP);break ; -case WFLUSH : +case RIOC_WFLUSH :/* ** If we have queued up the maximum number of Write flushes ** allowed then we should not bother sending any more to the
drivers/char/rio/riointr.c +2 -3
@@ -401,9 +401,8 @@ void RIOServiceHost(struct rio_info *p, struct Host *HostP) PortP->InUse =NOT_INUSE ;rio_spin_unlock (&PortP->portSem); -if (RIOParam (PortP,OPEN , ((PortP->Cor2Copy & (COR2_RTSFLOW |COR2_CTSFLOW )) == (COR2_RTSFLOW |COR2_CTSFLOW )) ?1 :0 ,DONT_SLEEP ) ==RIO_FAIL ) { +if (RIOParam (PortP,RIOC_OPEN , ((PortP->Cor2Copy & (RIOC_COR2_RTSFLOW |RIOC_COR2_CTSFLOW )) == (RIOC_COR2_RTSFLOW |RIOC_COR2_CTSFLOW )) ?1 :0 ,DONT_SLEEP ) ==RIO_FAIL )continue ;/* with next port */ - }rio_spin_lock (&PortP->portSem); PortP->MagicFlags &= ~MAGIC_REBOOT ; }
@@ -429,7 +428,7 @@ void RIOServiceHost(struct rio_info *p, struct Host *HostP)*/ PktCmdP = (struct PktCmd __iomem *) &PacketP->data[0 ]; -writeb (WFLUSH , &PktCmdP->Command); +writeb (RIOC_WFLUSH , &PktCmdP->Command); p = PortP->HostPort % (u16 )PORTS_PER_RTA ;
drivers/char/rio/rioparam.c +35 -35
214 lines not on this page · raw message
drivers/char/rio/riotty.c +13 -12
@@ -211,7 +211,7 @@ int riotopen(struct tty_struct *tty, struct file *filp)rio_dprintk (RIO_DEBUG_TTY ,"Waiting for RIO_CLOSING to go away\n" );if (repeat_this-- <=0 ) {rio_dprintk (RIO_DEBUG_TTY ,"Waiting for not idle closed broken by signal\n" ); -RIOPreemptiveCmd (p, PortP,FCLOSE ); +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE ); retval = -EINTR ; goto bombout; }
@@ -264,7 +264,7 @@ int riotopen(struct tty_struct *tty, struct file *filp)here. If I read the docs correctly the "open" command piggybacks the parameters immediately. -- REW */ -RIOParam (PortP,OPEN ,1 ,OK_TO_SLEEP );/* Open the port */ +RIOParam (PortP,RIOC_OPEN ,1 ,OK_TO_SLEEP );/* Open the port */ rio_spin_lock_irqsave (&PortP->portSem, flags);/*
@@ -275,7 +275,7 @@ int riotopen(struct tty_struct *tty, struct file *filp)rio_spin_unlock_irqrestore (&PortP->portSem, flags);if (RIODelay (PortP,HUNDRED_MS ) ==RIO_FAIL ) {rio_dprintk (RIO_DEBUG_TTY ,"Waiting for open to finish broken by signal\n" ); -RIOPreemptiveCmd (p, PortP,FCLOSE ); +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE );func_exit ();return -EINTR ; }
@@ -297,7 +297,8 @@ int riotopen(struct tty_struct *tty, struct file *filp)** insert test for carrier here. -- ??? ** I already see that test here. What's the deal? -- REW */ -if ((PortP->gs.tty->termios->c_cflag &CLOCAL ) || (PortP->ModemState &MSVR1_CD )) { +if ((PortP->gs.tty->termios->c_cflag &CLOCAL ) || + (PortP->ModemState &RIOC_MSVR1_CD )) {rio_dprintk (RIO_DEBUG_TTY ,"open(%d) Modem carr on\n" , SysPort);/* tp->tm.c_state |= CARR_ON;
@@ -324,7 +325,7 @@ int riotopen(struct tty_struct *tty, struct file *filp)** I think it's OK. -- REW */ rio_dprintk (RIO_DEBUG_TTY ,"open(%d) sleeping for carr broken by signal\n" , SysPort); -RIOPreemptiveCmd (p, PortP,FCLOSE ); +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE );/* tp->tm.c_state &= ~WOPEN; */
@@ -414,7 +415,7 @@ int riotclose(void *ptr)*/ PortP->State &= ~RIO_MOPEN ; PortP->State &= ~RIO_CARR_ON ; - PortP->ModemState &= ~MSVR1_CD ; + PortP->ModemState &= ~RIOC_MSVR1_CD ;/* ** If the device was open as both a Modem and a tty line ** then we need to wimp out here, as the port has not really
@@ -451,7 +452,7 @@ int riotclose(void *ptr)if (repeat_this-- <=0 ) { rv = -EINTR ;rio_dprintk (RIO_DEBUG_TTY ,"Waiting for not idle closed broken by signal\n" ); -RIOPreemptiveCmd (p, PortP,FCLOSE ); +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE ); goto close_end; }rio_dprintk (RIO_DEBUG_TTY ,"Calling timeout to flush in closing\n" );
@@ -490,8 +491,8 @@ int riotclose(void *ptr)/* Can't call RIOShortCommand with the port locked. */ rio_spin_unlock_irqrestore (&PortP->portSem, flags); -if (RIOShortCommand (p, PortP,CLOSE ,1 ,0 ) ==RIO_FAIL ) { -RIOPreemptiveCmd (p, PortP,FCLOSE ); +if (RIOShortCommand (p, PortP,RIOC_CLOSE ,1 ,0 ) ==RIO_FAIL ) { +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE ); goto close_end; }
@@ -500,7 +501,7 @@ int riotclose(void *ptr) try--;if (time_after (jiffies, end_time)) {rio_dprintk (RIO_DEBUG_TTY ,"Run out of tries - force the bugger shut!\n" ); -RIOPreemptiveCmd (p, PortP,FCLOSE ); +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE );break ; }rio_dprintk (RIO_DEBUG_TTY ,"Close: PortState:ISOPEN is %d\n" , PortP->PortState &PORT_ISOPEN );
@@ -511,14 +512,14 @@ int riotclose(void *ptr) }if (RIODelay (PortP,HUNDRED_MS ) ==RIO_FAIL ) {rio_dprintk (RIO_DEBUG_TTY ,"RTA EINTR in delay \n" ); -RIOPreemptiveCmd (p, PortP,FCLOSE ); +RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE );break ; } }rio_spin_lock_irqsave (&PortP->portSem, flags);rio_dprintk (RIO_DEBUG_TTY ,"Close: try was %d on completion\n" , try); -/* RIOPreemptiveCmd(p, PortP, FCLOSE); */ +/* RIOPreemptiveCmd(p, PortP, RIOC_FCLOSE); */ /* ** 15.10.1998 ARG - ESIL 0761 part fix
Signature · 1 line
1.5.4.4
PATCH 2/4 Char: ip2, macros cleanup
In reply to Andrew Morton- remove i2os.h -- there was only macro to macro renaming or useless stuff
- remove another uselless stuf (NULLFUNC, NULLPTR, YES, NO)
- use outb/inb directly
- use locking functions directly
- don't define another ROUNDUP, use roundup(x, 2) instead
- some comments and whitespace cleanup
- remove some commented crap
- prepend the rest by I2 prefix to not collide with rest of the world like in following output (pointed out by akpm)
In file included from drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included from include/net/netns/ipv4.h:8,
from include/net/net_namespace.h:13,
from include/linux/seq_file.h:7,
from include/asm/machdep.h:12,
from include/asm/pci.h:17,
from include/linux/pci.h:951,
from drivers/char/ip2/ip2main.c:95:include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
--- drivers/char/ip2/i2ellis.c | 195 +++++++++++++++++++++---------------------- drivers/char/ip2/i2ellis.h | 51 ++---------- drivers/char/ip2/i2hw.h | 6 +- drivers/char/ip2/i2lib.c | 139 ++++++++++++++++--------------- drivers/char/ip2/i2os.h | 127 ---------------------------- drivers/char/ip2/ip2main.c | 68 ++++++++-------- 6 files changed, 213 insertions(+), 373 deletions(-) delete mode 100644 drivers/char/ip2/i2os.h
drivers/char/ip2/i2ellis.c +95 -100
@@ -53,7 +53,7 @@ static int ii2Safe; // Safe I/O address for delay routinestatic int iiDelayed;// Set when the iiResetDelay function is // called. Cleared when ANY board is reset. -static rwlock_t Dl_spinlock; +static DEFINE_RWLOCK (Dl_spinlock);//******** //* Code *
@@ -82,7 +82,6 @@ static rwlock_t Dl_spinlock;static void iiEllisInit (void ) { -LOCK_INIT (&Dl_spinlock); }//******************************************************************************
@@ -132,7 +131,7 @@ iiSetAddress( i2eBordStrPtr pB, int address, delayFunc_t delay ) || (address & 0x7) ) { -COMPLETE (pB,I2EE_BADADDR ); +I2_COMPLETE (pB,I2EE_BADADDR ); }// Initialize accelerators
@@ -152,7 +151,7 @@ iiSetAddress( i2eBordStrPtr pB, int address, delayFunc_t delay ) pB->i2eValid =I2E_MAGIC ; pB->i2eState =II_STATE_COLD ; -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -177,12 +176,12 @@ iiReset(i2eBordStrPtr pB)// Magic number should be set, else even the address is suspect if (pB->i2eValid !=I2E_MAGIC ) { -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); } -OUTB (pB->i2eBase +FIFO_RESET ,0 );// Any data will do +outb (pB->i2eBase +FIFO_RESET ,0 );/* Any data will do */ iiDelay (pB,50 );// Pause between resets -OUTB (pB->i2eBase +FIFO_RESET ,0 );// Second reset +outb (pB->i2eBase +FIFO_RESET ,0 );/* Second reset */ // We must wait before even attempting to read anything from the FIFO: the // board's P.O.S.T may actually attempt to read and write its end of the
@@ -203,7 +202,7 @@ iiReset(i2eBordStrPtr pB)// Ensure anything which would have been of use to standard loadware is // blanked out, since board has now forgotten everything!. - pB->i2eUsingIrq =IRQ_UNDEFINED ;// Not set up to use an interrupt yet + pB->i2eUsingIrq =I2_IRQ_UNDEFINED ;/* to not use an interrupt so far */ pB->i2eWaitingForEmptyFifo =0 ; pB->i2eOutMailWaiting =0 ; pB->i2eChannelPtr =NULL ;
@@ -215,7 +214,7 @@ iiReset(i2eBordStrPtr pB) pB->i2eFatalTrap =NULL ; pB->i2eFatal =0 ; -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -235,14 +234,14 @@ static int iiResetDelay(i2eBordStrPtr pB) {if (pB->i2eValid !=I2E_MAGIC ) { -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); }if (pB->i2eState !=II_STATE_RESET ) { -COMPLETE (pB,I2EE_BADSTATE ); +I2_COMPLETE (pB,I2EE_BADSTATE ); }iiDelay (pB,2000 );/* Now we wait for two seconds. */ iiDelayed =1 ;/* Delay has been called: ok to initialize */ -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -273,12 +272,12 @@ iiInitialize(i2eBordStrPtr pB)if (pB->i2eValid !=I2E_MAGIC ) { -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); }if (pB->i2eState !=II_STATE_RESET || !iiDelayed) { -COMPLETE (pB,I2EE_BADSTATE ); +I2_COMPLETE (pB,I2EE_BADSTATE ); }// In case there is a failure short of our completely reading the power-up
@@ -291,13 +290,12 @@ iiInitialize(i2eBordStrPtr pB)for (itemp =0 ; itemp <sizeof (porStr); itemp++) {// We expect the entire message is ready. -if (HAS_NO_INPUT (pB)) - { +if (!I2_HAS_INPUT (pB)) { pB->i2ePomSize = itemp; -COMPLETE (pB,I2EE_PORM_SHORT ); +I2_COMPLETE (pB,I2EE_PORM_SHORT ); } - pB->i2ePom.c[itemp] = c =BYTE_FROM (pB); + pB->i2ePom.c[itemp] = c =inb (pB->i2eData);// We check the magic numbers as soon as they are supposed to be read // (rather than after) to minimize effect of reading something we
@@ -306,22 +304,22 @@ iiInitialize(i2eBordStrPtr pB) (itemp == POR_2_INDEX && c != POR_MAGIC_2)) { pB->i2ePomSize = itemp+1 ; -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); } } pB->i2ePomSize = itemp;// Ensure that this was all the data... -if (HAS_INPUT (pB)) -COMPLETE (pB,I2EE_PORM_LONG ); +if (I2_HAS_INPUT (pB)) +I2_COMPLETE (pB,I2EE_PORM_LONG );// For now, we'll fail to initialize if P.O.S.T reports bad chip mapper: // Implying we will not be able to download any code either: That's ok: the // condition is pretty explicit. if (pB->i2ePom.e.porDiag1 &POR_BAD_MAPPER ) { -COMPLETE (pB,I2EE_POSTERR ); +I2_COMPLETE (pB,I2EE_POSTERR ); }// Determine anything which must be done differently depending on the family
@@ -332,7 +330,7 @@ iiInitialize(i2eBordStrPtr pB) pB->i2eFifoStyle =FIFO_II ; pB->i2eFifoSize =512 ;// 512 bytes, always - pB->i2eDataWidth16 =NO ; + pB->i2eDataWidth16 = false; pB->i2eMaxIrq =15 ;// Because board cannot tell us it is in an 8-bit // slot, we do allow it to be done (documentation!)
@@ -354,7 +352,7 @@ iiInitialize(i2eBordStrPtr pB)// should always be consistent for IntelliPort-II. Ditto below... if (pB->i2ePom.e.porPorts1 !=4 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }break ;
@@ -364,7 +362,7 @@ iiInitialize(i2eBordStrPtr pB) pB->i2eChannelMap[0 ] =0xff ;// Eight port if (pB->i2ePom.e.porPorts1 !=8 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }break ;
@@ -373,7 +371,7 @@ iiInitialize(i2eBordStrPtr pB) pB->i2eChannelMap[0 ] =0x3f ;// Six Port if (pB->i2ePom.e.porPorts1 !=6 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }break ; }
@@ -402,7 +400,7 @@ iiInitialize(i2eBordStrPtr pB)if (itemp <8 || itemp >15 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); } pB->i2eFifoSize = (1 << itemp);
@@ -450,26 +448,26 @@ iiInitialize(i2eBordStrPtr pB)switch (pB->i2ePom.e.porBus & (POR_BUS_SLOT16 |POR_BUS_DIP16 ) ) {case POR_BUS_SLOT16 |POR_BUS_DIP16 : - pB->i2eDataWidth16 =YES ; + pB->i2eDataWidth16 = true; pB->i2eMaxIrq =15 ;break ;case POR_BUS_SLOT16 : - pB->i2eDataWidth16 =NO ; + pB->i2eDataWidth16 = false; pB->i2eMaxIrq =15 ;break ;case 0 :case POR_BUS_DIP16 :// In an 8-bit slot, DIP switch don't care. default : - pB->i2eDataWidth16 =NO ; + pB->i2eDataWidth16 = false; pB->i2eMaxIrq =7 ;break ; }break ;// POR_ID_FIIEX case default :// Unknown type of board -COMPLETE (pB,I2EE_BAD_FAMILY ); +I2_COMPLETE (pB,I2EE_BAD_FAMILY );break ; }// End the switch based on family
@@ -483,17 +481,17 @@ iiInitialize(i2eBordStrPtr pB) {case POR_BUS_T_ISA :case POR_BUS_T_UNK :// If the type of bus is undeclared, assume ok. - pB->i2eChangeIrq =YES ; + pB->i2eChangeIrq = true;break ;case POR_BUS_T_MCA :case POR_BUS_T_EISA : - pB->i2eChangeIrq =NO ; + pB->i2eChangeIrq = false;break ;default : -COMPLETE (pB,I2EE_BADBUS ); +I2_COMPLETE (pB,I2EE_BADBUS ); } -if (pB->i2eDataWidth16 ==YES ) +if (pB->i2eDataWidth16) { pB->i2eWriteBuf = iiWriteBuf16; pB->i2eReadBuf = iiReadBuf16;
@@ -529,7 +527,7 @@ iiInitialize(i2eBordStrPtr pB)break ;default : -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }// Initialize state information.
@@ -549,7 +547,7 @@ iiInitialize(i2eBordStrPtr pB)// Everything is ok now, return with good status/ pB->i2eValid =I2E_MAGIC ; -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -658,7 +656,7 @@ ii2DelayIO(unsigned int mseconds)while (mseconds--) {int i = ii2DelValue;while ( i-- ) { -INB ( ii2Safe ); +inb (ii2Safe); } } }
@@ -709,11 +707,11 @@ iiWriteBuf16(i2eBordStrPtr pB, unsigned char *address, int count) {// Rudimentary sanity checking here. if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -OUTSW ( pB->i2eData, address, count); +I2_OUTSW (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -738,11 +736,11 @@ iiWriteBuf8(i2eBordStrPtr pB, unsigned char *address, int count) {/* Rudimentary sanity checking here */ if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -OUTSB ( pB->i2eData, address, count ); +I2_OUTSB (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -767,11 +765,11 @@ iiReadBuf16(i2eBordStrPtr pB, unsigned char *address, int count) {// Rudimentary sanity checking here. if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -INSW ( pB->i2eData, address, count); +I2_INSW (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -796,11 +794,11 @@ iiReadBuf8(i2eBordStrPtr pB, unsigned char *address, int count) {// Rudimentary sanity checking here. if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -INSB ( pB->i2eData, address, count); +I2_INSB (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -820,7 +818,7 @@ iiReadBuf8(i2eBordStrPtr pB, unsigned char *address, int count)static unsigned short iiReadWord16 (i2eBordStrPtr pB) { -return (unsigned short )(INW (pB->i2eData) ); +return inw (pB->i2eData); }//******************************************************************************
@@ -842,9 +840,9 @@ iiReadWord8(i2eBordStrPtr pB) {unsigned short urs; - urs =INB ( pB->i2eData ); + urs =inb (pB->i2eData); -return ( (INB ( pB->i2eData ) <<8 ) | urs ); +return (inb (pB->i2eData) <<8 ) | urs; }//******************************************************************************
@@ -865,7 +863,7 @@ iiReadWord8(i2eBordStrPtr pB)static void iiWriteWord16 (i2eBordStrPtr pB,unsigned short value) { -WORD_TO (pB, (int )value); +outw (pB->i2eData, (int )value); }//******************************************************************************
@@ -886,8 +884,8 @@ iiWriteWord16(i2eBordStrPtr pB, unsigned short value)static void iiWriteWord8 (i2eBordStrPtr pB,unsigned short value) { -BYTE_TO (pB, (char )value); -BYTE_TO (pB, (char )(value >>8 ) ); +outb (pB->i2eData, (char )value); +outb (pB->i2eData, (char )(value >>8 )); }//******************************************************************************
@@ -939,30 +937,30 @@ iiWaitForTxEmptyII(i2eBordStrPtr pB, int mSdelay)// interrupts of any kind. - WRITE_LOCK_IRQSAVE(&Dl_spinlock,flags) -OUTB (pB->i2ePointer,SEL_COMMAND ); -OUTB (pB->i2ePointer,SEL_CMD_SH ); +write_lock_irqsave (&Dl_spinlock, flags); +outb (pB->i2ePointer,SEL_COMMAND ); +outb (pB->i2ePointer,SEL_CMD_SH ); - itemp =INB (pB->i2eStatus); + itemp =inb (pB->i2eStatus); -OUTB (pB->i2ePointer,SEL_COMMAND ); -OUTB (pB->i2ePointer,SEL_CMD_UNSH ); +outb (pB->i2ePointer,SEL_COMMAND ); +outb (pB->i2ePointer,SEL_CMD_UNSH );if (itemp &ST_IN_EMPTY ) { -UPDATE_FIFO_ROOM (pB); - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) -COMPLETE (pB,I2EE_GOOD ); +I2_UPDATE_FIFO_ROOM (pB); +write_unlock_irqrestore (&Dl_spinlock, flags); +I2_COMPLETE (pB,I2EE_GOOD ); } - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) +write_unlock_irqrestore (&Dl_spinlock, flags);if (mSdelay-- ==0 )break ;iiDelay (pB,1 );/* 1 mS granularity on checking condition */ } -COMPLETE (pB,I2EE_TXE_TIME ); +I2_COMPLETE (pB,I2EE_TXE_TIME ); }//******************************************************************************
@@ -1002,21 +1000,21 @@ iiWaitForTxEmptyIIEX(i2eBordStrPtr pB, int mSdelay)// you will generally not want to service interrupts or in any way // disrupt the assumptions implicit in the larger context. - WRITE_LOCK_IRQSAVE(&Dl_spinlock,flags) +write_lock_irqsave (&Dl_spinlock, flags); -if (INB (pB->i2eStatus) &STE_OUT_MT ) { -UPDATE_FIFO_ROOM (pB); - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) -COMPLETE (pB,I2EE_GOOD ); +if (inb (pB->i2eStatus) &STE_OUT_MT ) { +I2_UPDATE_FIFO_ROOM (pB); +write_unlock_irqrestore (&Dl_spinlock, flags); +I2_COMPLETE (pB,I2EE_GOOD ); } - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) +write_unlock_irqrestore (&Dl_spinlock, flags);if (mSdelay-- ==0 )break ;iiDelay (pB,1 );// 1 mS granularity on checking condition } -COMPLETE (pB,I2EE_TXE_TIME ); +I2_COMPLETE (pB,I2EE_TXE_TIME ); }//******************************************************************************
@@ -1038,8 +1036,8 @@ static int iiTxMailEmptyII(i2eBordStrPtr pB) {int port = pB->i2ePointer; -OUTB ( port,SEL_OUTMAIL ); -return (INB (port) ==0 ); +outb (port,SEL_OUTMAIL ); +return inb (port) ==0 ; }//******************************************************************************
@@ -1060,7 +1058,7 @@ iiTxMailEmptyII(i2eBordStrPtr pB)static int iiTxMailEmptyIIEX (i2eBordStrPtr pB) { -return !(INB (pB->i2eStatus) &STE_OUT_MAIL ); +return !(inb (pB->i2eStatus) &STE_OUT_MAIL ); }//******************************************************************************
@@ -1084,10 +1082,10 @@ iiTrySendMailII(i2eBordStrPtr pB, unsigned char mail) {int port = pB->i2ePointer; -OUTB (port,SEL_OUTMAIL ); -if (INB (port) ==0 ) { -OUTB (port,SEL_OUTMAIL ); -OUTB (port, mail); +outb (port,SEL_OUTMAIL ); +if (inb (port) ==0 ) { +outb (port,SEL_OUTMAIL ); +outb (port, mail);return 1 ; }return 0 ;
@@ -1112,10 +1110,9 @@ iiTrySendMailII(i2eBordStrPtr pB, unsigned char mail)static int iiTrySendMailIIEX (i2eBordStrPtr pB,unsigned char mail) { -if (INB (pB->i2eStatus) &STE_OUT_MAIL ) { +if (inb (pB->i2eStatus) &STE_OUT_MAIL )return 0 ; - } -OUTB (pB->i2eXMail, mail); +outb (pB->i2eXMail, mail);return 1 ; }
@@ -1136,9 +1133,9 @@ iiTrySendMailIIEX(i2eBordStrPtr pB, unsigned char mail)static unsigned short iiGetMailII (i2eBordStrPtr pB) { -if (HAS_MAIL (pB)) { -OUTB (pB->i2ePointer,SEL_INMAIL ); -return INB (pB->i2ePointer); +if (I2_HAS_MAIL (pB)) { +outb (pB->i2ePointer,SEL_INMAIL ); +return inb (pB->i2ePointer); }else {return NO_MAIL_HERE ; }
@@ -1161,11 +1158,10 @@ iiGetMailII(i2eBordStrPtr pB)static unsigned short iiGetMailIIEX (i2eBordStrPtr pB) { -if (HAS_MAIL (pB)) { -return INB (pB->i2eXMail); - }else { +if (I2_HAS_MAIL (pB)) +return inb (pB->i2eXMail); +else return NO_MAIL_HERE ; - } }//******************************************************************************
@@ -1184,8 +1180,8 @@ iiGetMailIIEX(i2eBordStrPtr pB)static void iiEnableMailIrqII (i2eBordStrPtr pB) { -OUTB (pB->i2ePointer,SEL_MASK ); -OUTB (pB->i2ePointer,ST_IN_MAIL ); +outb (pB->i2ePointer,SEL_MASK ); +outb (pB->i2ePointer,ST_IN_MAIL ); }//******************************************************************************
@@ -1204,7 +1200,7 @@ iiEnableMailIrqII(i2eBordStrPtr pB)static void iiEnableMailIrqIIEX (i2eBordStrPtr pB) { -OUTB (pB->i2eXMask,MX_IN_MAIL ); +outb (pB->i2eXMask,MX_IN_MAIL ); }//******************************************************************************
@@ -1223,8 +1219,8 @@ iiEnableMailIrqIIEX(i2eBordStrPtr pB)static void iiWriteMaskII (i2eBordStrPtr pB,unsigned char value) { -OUTB (pB->i2ePointer,SEL_MASK ); -OUTB (pB->i2ePointer, value); +outb (pB->i2ePointer,SEL_MASK ); +outb (pB->i2ePointer, value); }//******************************************************************************
@@ -1243,7 +1239,7 @@ iiWriteMaskII(i2eBordStrPtr pB, unsigned char value)static void iiWriteMaskIIEX (i2eBordStrPtr pB,unsigned char value) { -OUTB (pB->i2eXMask, value); +outb (pB->i2eXMask, value); }//******************************************************************************
@@ -1354,9 +1350,8 @@ iiDownloadBlock ( i2eBordStrPtr pB, loadHdrStrPtr pSource, int isStandard)// immediately and be harmless, though not strictly necessary. itemp =MAX_DLOAD_ACK_TIME /10 ;while (--itemp) { -if (HAS_INPUT (pB)) { -switch (BYTE_FROM (pB)) - { +if (I2_HAS_INPUT (pB)) { +switch (inb (pB->i2eData)) {case LOADWARE_OK : pB->i2eState = isStandard ?II_STATE_STDLOADED :II_STATE_LOADED ;
drivers/char/ip2/i2ellis.h +7 -44
88 lines not on this page · raw message
drivers/char/ip2/i2hw.h +5 -1
@@ -129,7 +129,6 @@ registers, use byte operations only.//------------------------------------------------ // #include "ip2types.h" -#include "i2os.h" /* For any o.s., compiler, or host-related issues */ //------------------------------------------------------------------------- // Manifests for the I/O map:
@@ -644,5 +643,10 @@ typedef union _loadHdrStr#define ABS_BIGGEST_BOX 16 // Absolute the most ports per box#define ABS_MOST_PORTS (ABS_MAX_BOXES * ABS_BIGGEST_BOX) +#define I2_OUTSW (port, addr, count) outsw((port), (addr), (((count)+1)/2)) +#define I2_OUTSB (port, addr, count) outsb((port), (addr), (((count)+1))&-2) +#define I2_INSW (port, addr, count) insw((port), (addr), (((count)+1)/2)) +#define I2_INSB (port, addr, count) insb((port), (addr), (((count)+1))&-2) +#endif // I2HW_H
drivers/char/ip2/i2lib.c +72 -67
441 lines not on this page · raw message
drivers/char/ip2/i2os.h deleted +0 -127
127 lines not on this page · raw message
drivers/char/ip2/ip2main.c +34 -34
188 lines not on this page · raw message
Signature · 1 line
1.5.4.4
Jiri Slaby
NAKRe: [PATCH 2/4] Char: ip2, macros cleanup
Quoted 20 lines · Jiri Slaby
- remove
i2os.h-- there was only macro to macro renaming or useless stuff
- remove another uselless stuf (NULLFUNC, NULLPTR, YES, NO)
- use outb/inb directly
- use locking functions directly
- don't define another ROUNDUP, useroundup(x, 2)instead
- some comments and whitespace cleanup
- remove some commented crap
- prepend the rest by I2 prefix to not collide with rest of the world like in following output (pointed out by akpm)In file included from
drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included frominclude/net/netns/ipv4.h:8,from include/net/net_namespace.h:13, from include/linux/seq_file.h:7, from include/asm/machdep.h:12, from include/asm/pci.h:17, from include/linux/pci.h:951, from drivers/char/ip2/ip2main.c:95:
Quoted 3 lines
include/net/inet_frag.h:28:1: warning: this is the location of the previous definitionSigned-off-by Jiri Slaby <[email protected]>
NACK, this one is crap, ignore it.
PATCH 1/1 Char: ip2, macros cleanup
In reply to Jiri Slaby- remove i2os.h -- there was only macro to macro renaming or useless stuff
- remove another uselless stuf (NULLFUNC, NULLPTR, YES, NO)
- use outb/inb directly
- use locking functions directly
- don't define another ROUNDUP, use roundup(x, 2) instead
- some comments and whitespace cleanup
- remove some commented crap
- prepend the rest by I2 prefix to not collide with rest of the world like in following output (pointed out by akpm)
In file included from drivers/char/ip2/ip2main.c:128:drivers/char/ip2/i2ellis.h:608:1: warning: "COMPLETE" redefined In file included from include/net/netns/ipv4.h:8,
from include/net/net_namespace.h:13,
from include/linux/seq_file.h:7,
from include/asm/machdep.h:12,
from include/asm/pci.h:17,
from include/linux/pci.h:951,
from drivers/char/ip2/ip2main.c:95:include/net/inet_frag.h:28:1: warning: this is the location of the previous definition
--- drivers/char/ip2/i2ellis.c | 194 +++++++++++++++++++++----------------------- drivers/char/ip2/i2ellis.h | 58 ++------------ drivers/char/ip2/i2hw.h | 6 +- drivers/char/ip2/i2lib.c | 141 +++++++++++++++++--------------- drivers/char/ip2/i2os.h | 127 ----------------------------- drivers/char/ip2/ip2main.c | 68 ++++++++-------- 6 files changed, 211 insertions(+), 383 deletions(-) delete mode 100644 drivers/char/ip2/i2os.h
drivers/char/ip2/i2ellis.c +93 -101
@@ -53,7 +53,7 @@ static int ii2Safe; // Safe I/O address for delay routinestatic int iiDelayed;// Set when the iiResetDelay function is // called. Cleared when ANY board is reset. -static rwlock_t Dl_spinlock; +static DEFINE_RWLOCK (Dl_spinlock);//******** //* Code *
@@ -82,7 +82,6 @@ static rwlock_t Dl_spinlock;static void iiEllisInit (void ) { -LOCK_INIT (&Dl_spinlock); }//******************************************************************************
@@ -132,7 +131,7 @@ iiSetAddress( i2eBordStrPtr pB, int address, delayFunc_t delay ) || (address & 0x7) ) { -COMPLETE (pB,I2EE_BADADDR ); +I2_COMPLETE (pB,I2EE_BADADDR ); }// Initialize accelerators
@@ -152,7 +151,7 @@ iiSetAddress( i2eBordStrPtr pB, int address, delayFunc_t delay ) pB->i2eValid =I2E_MAGIC ; pB->i2eState =II_STATE_COLD ; -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -177,12 +176,12 @@ iiReset(i2eBordStrPtr pB)// Magic number should be set, else even the address is suspect if (pB->i2eValid !=I2E_MAGIC ) { -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); } -OUTB (pB->i2eBase +FIFO_RESET ,0 );// Any data will do +outb (0 , pB->i2eBase +FIFO_RESET );/* Any data will do */ iiDelay (pB,50 );// Pause between resets -OUTB (pB->i2eBase +FIFO_RESET ,0 );// Second reset +outb (0 , pB->i2eBase +FIFO_RESET );/* Second reset */ // We must wait before even attempting to read anything from the FIFO: the // board's P.O.S.T may actually attempt to read and write its end of the
@@ -203,7 +202,7 @@ iiReset(i2eBordStrPtr pB)// Ensure anything which would have been of use to standard loadware is // blanked out, since board has now forgotten everything!. - pB->i2eUsingIrq =IRQ_UNDEFINED ;// Not set up to use an interrupt yet + pB->i2eUsingIrq =I2_IRQ_UNDEFINED ;/* to not use an interrupt so far */ pB->i2eWaitingForEmptyFifo =0 ; pB->i2eOutMailWaiting =0 ; pB->i2eChannelPtr =NULL ;
@@ -215,7 +214,7 @@ iiReset(i2eBordStrPtr pB) pB->i2eFatalTrap =NULL ; pB->i2eFatal =0 ; -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -235,14 +234,14 @@ static int iiResetDelay(i2eBordStrPtr pB) {if (pB->i2eValid !=I2E_MAGIC ) { -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); }if (pB->i2eState !=II_STATE_RESET ) { -COMPLETE (pB,I2EE_BADSTATE ); +I2_COMPLETE (pB,I2EE_BADSTATE ); }iiDelay (pB,2000 );/* Now we wait for two seconds. */ iiDelayed =1 ;/* Delay has been called: ok to initialize */ -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -273,12 +272,12 @@ iiInitialize(i2eBordStrPtr pB)if (pB->i2eValid !=I2E_MAGIC ) { -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); }if (pB->i2eState !=II_STATE_RESET || !iiDelayed) { -COMPLETE (pB,I2EE_BADSTATE ); +I2_COMPLETE (pB,I2EE_BADSTATE ); }// In case there is a failure short of our completely reading the power-up
@@ -291,13 +290,12 @@ iiInitialize(i2eBordStrPtr pB)for (itemp =0 ; itemp <sizeof (porStr); itemp++) {// We expect the entire message is ready. -if (HAS_NO_INPUT (pB)) - { +if (!I2_HAS_INPUT (pB)) { pB->i2ePomSize = itemp; -COMPLETE (pB,I2EE_PORM_SHORT ); +I2_COMPLETE (pB,I2EE_PORM_SHORT ); } - pB->i2ePom.c[itemp] = c =BYTE_FROM (pB); + pB->i2ePom.c[itemp] = c =inb (pB->i2eData);// We check the magic numbers as soon as they are supposed to be read // (rather than after) to minimize effect of reading something we
@@ -306,22 +304,22 @@ iiInitialize(i2eBordStrPtr pB) (itemp == POR_2_INDEX && c != POR_MAGIC_2)) { pB->i2ePomSize = itemp+1 ; -COMPLETE (pB,I2EE_BADMAGIC ); +I2_COMPLETE (pB,I2EE_BADMAGIC ); } } pB->i2ePomSize = itemp;// Ensure that this was all the data... -if (HAS_INPUT (pB)) -COMPLETE (pB,I2EE_PORM_LONG ); +if (I2_HAS_INPUT (pB)) +I2_COMPLETE (pB,I2EE_PORM_LONG );// For now, we'll fail to initialize if P.O.S.T reports bad chip mapper: // Implying we will not be able to download any code either: That's ok: the // condition is pretty explicit. if (pB->i2ePom.e.porDiag1 &POR_BAD_MAPPER ) { -COMPLETE (pB,I2EE_POSTERR ); +I2_COMPLETE (pB,I2EE_POSTERR ); }// Determine anything which must be done differently depending on the family
@@ -332,7 +330,7 @@ iiInitialize(i2eBordStrPtr pB) pB->i2eFifoStyle =FIFO_II ; pB->i2eFifoSize =512 ;// 512 bytes, always - pB->i2eDataWidth16 =NO ; + pB->i2eDataWidth16 = false; pB->i2eMaxIrq =15 ;// Because board cannot tell us it is in an 8-bit // slot, we do allow it to be done (documentation!)
@@ -354,7 +352,7 @@ iiInitialize(i2eBordStrPtr pB)// should always be consistent for IntelliPort-II. Ditto below... if (pB->i2ePom.e.porPorts1 !=4 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }break ;
@@ -364,7 +362,7 @@ iiInitialize(i2eBordStrPtr pB) pB->i2eChannelMap[0 ] =0xff ;// Eight port if (pB->i2ePom.e.porPorts1 !=8 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }break ;
@@ -373,7 +371,7 @@ iiInitialize(i2eBordStrPtr pB) pB->i2eChannelMap[0 ] =0x3f ;// Six Port if (pB->i2ePom.e.porPorts1 !=6 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }break ; }
@@ -402,7 +400,7 @@ iiInitialize(i2eBordStrPtr pB)if (itemp <8 || itemp >15 ) { -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); } pB->i2eFifoSize = (1 << itemp);
@@ -450,26 +448,26 @@ iiInitialize(i2eBordStrPtr pB)switch (pB->i2ePom.e.porBus & (POR_BUS_SLOT16 |POR_BUS_DIP16 ) ) {case POR_BUS_SLOT16 |POR_BUS_DIP16 : - pB->i2eDataWidth16 =YES ; + pB->i2eDataWidth16 = true; pB->i2eMaxIrq =15 ;break ;case POR_BUS_SLOT16 : - pB->i2eDataWidth16 =NO ; + pB->i2eDataWidth16 = false; pB->i2eMaxIrq =15 ;break ;case 0 :case POR_BUS_DIP16 :// In an 8-bit slot, DIP switch don't care. default : - pB->i2eDataWidth16 =NO ; + pB->i2eDataWidth16 = false; pB->i2eMaxIrq =7 ;break ; }break ;// POR_ID_FIIEX case default :// Unknown type of board -COMPLETE (pB,I2EE_BAD_FAMILY ); +I2_COMPLETE (pB,I2EE_BAD_FAMILY );break ; }// End the switch based on family
@@ -483,17 +481,14 @@ iiInitialize(i2eBordStrPtr pB) {case POR_BUS_T_ISA :case POR_BUS_T_UNK :// If the type of bus is undeclared, assume ok. - pB->i2eChangeIrq =YES ; -break ;case POR_BUS_T_MCA :case POR_BUS_T_EISA : - pB->i2eChangeIrq =NO ;break ;default : -COMPLETE (pB,I2EE_BADBUS ); +I2_COMPLETE (pB,I2EE_BADBUS ); } -if (pB->i2eDataWidth16 ==YES ) +if (pB->i2eDataWidth16) { pB->i2eWriteBuf = iiWriteBuf16; pB->i2eReadBuf = iiReadBuf16;
@@ -529,7 +524,7 @@ iiInitialize(i2eBordStrPtr pB)break ;default : -COMPLETE (pB,I2EE_INCONSIST ); +I2_COMPLETE (pB,I2EE_INCONSIST ); }// Initialize state information.
@@ -549,7 +544,7 @@ iiInitialize(i2eBordStrPtr pB)// Everything is ok now, return with good status/ pB->i2eValid =I2E_MAGIC ; -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -658,7 +653,7 @@ ii2DelayIO(unsigned int mseconds)while (mseconds--) {int i = ii2DelValue;while ( i-- ) { -INB ( ii2Safe ); +inb (ii2Safe); } } }
@@ -709,11 +704,11 @@ iiWriteBuf16(i2eBordStrPtr pB, unsigned char *address, int count) {// Rudimentary sanity checking here. if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -OUTSW ( pB->i2eData, address, count); +I2_OUTSW (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -738,11 +733,11 @@ iiWriteBuf8(i2eBordStrPtr pB, unsigned char *address, int count) {/* Rudimentary sanity checking here */ if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -OUTSB ( pB->i2eData, address, count ); +I2_OUTSB (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -767,11 +762,11 @@ iiReadBuf16(i2eBordStrPtr pB, unsigned char *address, int count) {// Rudimentary sanity checking here. if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -INSW ( pB->i2eData, address, count); +I2_INSW (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -796,11 +791,11 @@ iiReadBuf8(i2eBordStrPtr pB, unsigned char *address, int count) {// Rudimentary sanity checking here. if (pB->i2eValid !=I2E_MAGIC ) -COMPLETE (pB,I2EE_INVALID ); +I2_COMPLETE (pB,I2EE_INVALID ); -INSB ( pB->i2eData, address, count); +I2_INSB (pB->i2eData, address, count); -COMPLETE (pB,I2EE_GOOD ); +I2_COMPLETE (pB,I2EE_GOOD ); }//******************************************************************************
@@ -820,7 +815,7 @@ iiReadBuf8(i2eBordStrPtr pB, unsigned char *address, int count)static unsigned short iiReadWord16 (i2eBordStrPtr pB) { -return (unsigned short )(INW (pB->i2eData) ); +return inw (pB->i2eData); }//******************************************************************************
@@ -842,9 +837,9 @@ iiReadWord8(i2eBordStrPtr pB) {unsigned short urs; - urs =INB ( pB->i2eData ); + urs =inb (pB->i2eData); -return ( (INB ( pB->i2eData ) <<8 ) | urs ); +return (inb (pB->i2eData) <<8 ) | urs; }//******************************************************************************
@@ -865,7 +860,7 @@ iiReadWord8(i2eBordStrPtr pB)static void iiWriteWord16 (i2eBordStrPtr pB,unsigned short value) { -WORD_TO (pB, (int )value); +outw ((int )value, pB->i2eData); }//******************************************************************************
@@ -886,8 +881,8 @@ iiWriteWord16(i2eBordStrPtr pB, unsigned short value)static void iiWriteWord8 (i2eBordStrPtr pB,unsigned short value) { -BYTE_TO (pB, (char )value); -BYTE_TO (pB, (char )(value >>8 ) ); +outb ((char )value, pB->i2eData); +outb ((char )(value >>8 ), pB->i2eData); }//******************************************************************************
@@ -939,30 +934,30 @@ iiWaitForTxEmptyII(i2eBordStrPtr pB, int mSdelay)// interrupts of any kind. - WRITE_LOCK_IRQSAVE(&Dl_spinlock,flags) -OUTB (pB->i2ePointer,SEL_COMMAND ); -OUTB (pB->i2ePointer,SEL_CMD_SH ); +write_lock_irqsave (&Dl_spinlock, flags); +outb (SEL_COMMAND , pB->i2ePointer); +outb (SEL_CMD_SH , pB->i2ePointer); - itemp =INB (pB->i2eStatus); + itemp =inb (pB->i2eStatus); -OUTB (pB->i2ePointer,SEL_COMMAND ); -OUTB (pB->i2ePointer,SEL_CMD_UNSH ); +outb (SEL_COMMAND , pB->i2ePointer); +outb (SEL_CMD_UNSH , pB->i2ePointer);if (itemp &ST_IN_EMPTY ) { -UPDATE_FIFO_ROOM (pB); - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) -COMPLETE (pB,I2EE_GOOD ); +I2_UPDATE_FIFO_ROOM (pB); +write_unlock_irqrestore (&Dl_spinlock, flags); +I2_COMPLETE (pB,I2EE_GOOD ); } - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) +write_unlock_irqrestore (&Dl_spinlock, flags);if (mSdelay-- ==0 )break ;iiDelay (pB,1 );/* 1 mS granularity on checking condition */ } -COMPLETE (pB,I2EE_TXE_TIME ); +I2_COMPLETE (pB,I2EE_TXE_TIME ); }//******************************************************************************
@@ -1002,21 +997,21 @@ iiWaitForTxEmptyIIEX(i2eBordStrPtr pB, int mSdelay)// you will generally not want to service interrupts or in any way // disrupt the assumptions implicit in the larger context. - WRITE_LOCK_IRQSAVE(&Dl_spinlock,flags) +write_lock_irqsave (&Dl_spinlock, flags); -if (INB (pB->i2eStatus) &STE_OUT_MT ) { -UPDATE_FIFO_ROOM (pB); - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) -COMPLETE (pB,I2EE_GOOD ); +if (inb (pB->i2eStatus) &STE_OUT_MT ) { +I2_UPDATE_FIFO_ROOM (pB); +write_unlock_irqrestore (&Dl_spinlock, flags); +I2_COMPLETE (pB,I2EE_GOOD ); } - WRITE_UNLOCK_IRQRESTORE(&Dl_spinlock,flags) +write_unlock_irqrestore (&Dl_spinlock, flags);if (mSdelay-- ==0 )break ;iiDelay (pB,1 );// 1 mS granularity on checking condition } -COMPLETE (pB,I2EE_TXE_TIME ); +I2_COMPLETE (pB,I2EE_TXE_TIME ); }//******************************************************************************
@@ -1038,8 +1033,8 @@ static int iiTxMailEmptyII(i2eBordStrPtr pB) {int port = pB->i2ePointer; -OUTB ( port,SEL_OUTMAIL ); -return (INB (port) ==0 ); +outb (SEL_OUTMAIL , port); +return inb (port) ==0 ; }//******************************************************************************
@@ -1060,7 +1055,7 @@ iiTxMailEmptyII(i2eBordStrPtr pB)static int iiTxMailEmptyIIEX (i2eBordStrPtr pB) { -return !(INB (pB->i2eStatus) &STE_OUT_MAIL ); +return !(inb (pB->i2eStatus) &STE_OUT_MAIL ); }//******************************************************************************
@@ -1084,10 +1079,10 @@ iiTrySendMailII(i2eBordStrPtr pB, unsigned char mail) {int port = pB->i2ePointer; -OUTB (port,SEL_OUTMAIL ); -if (INB (port) ==0 ) { -OUTB (port,SEL_OUTMAIL ); -OUTB (port, mail); +outb (SEL_OUTMAIL , port); +if (inb (port) ==0 ) { +outb (SEL_OUTMAIL , port); +outb (mail, port);return 1 ; }return 0 ;
@@ -1112,10 +1107,9 @@ iiTrySendMailII(i2eBordStrPtr pB, unsigned char mail)static int iiTrySendMailIIEX (i2eBordStrPtr pB,unsigned char mail) { -if (INB (pB->i2eStatus) &STE_OUT_MAIL ) { +if (inb (pB->i2eStatus) &STE_OUT_MAIL )return 0 ; - } -OUTB (pB->i2eXMail, mail); +outb (mail, pB->i2eXMail);return 1 ; }
@@ -1136,9 +1130,9 @@ iiTrySendMailIIEX(i2eBordStrPtr pB, unsigned char mail)static unsigned short iiGetMailII (i2eBordStrPtr pB) { -if (HAS_MAIL (pB)) { -OUTB (pB->i2ePointer,SEL_INMAIL ); -return INB (pB->i2ePointer); +if (I2_HAS_MAIL (pB)) { +outb (SEL_INMAIL , pB->i2ePointer); +return inb (pB->i2ePointer); }else {return NO_MAIL_HERE ; }
@@ -1161,11 +1155,10 @@ iiGetMailII(i2eBordStrPtr pB)static unsigned short iiGetMailIIEX (i2eBordStrPtr pB) { -if (HAS_MAIL (pB)) { -return INB (pB->i2eXMail); - }else { +if (I2_HAS_MAIL (pB)) +return inb (pB->i2eXMail); +else return NO_MAIL_HERE ; - } }//******************************************************************************
@@ -1184,8 +1177,8 @@ iiGetMailIIEX(i2eBordStrPtr pB)static void iiEnableMailIrqII (i2eBordStrPtr pB) { -OUTB (pB->i2ePointer,SEL_MASK ); -OUTB (pB->i2ePointer,ST_IN_MAIL ); +outb (SEL_MASK , pB->i2ePointer); +outb (ST_IN_MAIL , pB->i2ePointer); }//******************************************************************************
@@ -1204,7 +1197,7 @@ iiEnableMailIrqII(i2eBordStrPtr pB)static void iiEnableMailIrqIIEX (i2eBordStrPtr pB) { -OUTB (pB->i2eXMask,MX_IN_MAIL ); +outb (MX_IN_MAIL , pB->i2eXMask); }//******************************************************************************
@@ -1223,8 +1216,8 @@ iiEnableMailIrqIIEX(i2eBordStrPtr pB)static void iiWriteMaskII (i2eBordStrPtr pB,unsigned char value) { -OUTB (pB->i2ePointer,SEL_MASK ); -OUTB (pB->i2ePointer, value); +outb (SEL_MASK , pB->i2ePointer); +outb (value, pB->i2ePointer); }//******************************************************************************
@@ -1243,7 +1236,7 @@ iiWriteMaskII(i2eBordStrPtr pB, unsigned char value)static void iiWriteMaskIIEX (i2eBordStrPtr pB,unsigned char value) { -OUTB (pB->i2eXMask, value); +outb (value, pB->i2eXMask); }//******************************************************************************
@@ -1354,9 +1347,8 @@ iiDownloadBlock ( i2eBordStrPtr pB, loadHdrStrPtr pSource, int isStandard)// immediately and be harmless, though not strictly necessary. itemp =MAX_DLOAD_ACK_TIME /10 ;while (--itemp) { -if (HAS_INPUT (pB)) { -switch (BYTE_FROM (pB)) - { +if (I2_HAS_INPUT (pB)) { +switch (inb (pB->i2eData)) {case LOADWARE_OK : pB->i2eState = isStandard ?II_STATE_STDLOADED :II_STATE_LOADED ;
drivers/char/ip2/i2ellis.h +6 -52
97 lines not on this page · raw message
drivers/char/ip2/i2hw.h +5 -1
@@ -129,7 +129,6 @@ registers, use byte operations only.//------------------------------------------------ // #include "ip2types.h" -#include "i2os.h" /* For any o.s., compiler, or host-related issues */ //------------------------------------------------------------------------- // Manifests for the I/O map:
@@ -644,5 +643,10 @@ typedef union _loadHdrStr#define ABS_BIGGEST_BOX 16 // Absolute the most ports per box#define ABS_MOST_PORTS (ABS_MAX_BOXES * ABS_BIGGEST_BOX) +#define I2_OUTSW (port, addr, count) outsw((port), (addr), (((count)+1)/2)) +#define I2_OUTSB (port, addr, count) outsb((port), (addr), (((count)+1))&-2) +#define I2_INSW (port, addr, count) insw((port), (addr), (((count)+1)/2)) +#define I2_INSB (port, addr, count) insb((port), (addr), (((count)+1))&-2) +#endif // I2HW_H
drivers/char/ip2/i2lib.c +73 -68
447 lines not on this page · raw message
drivers/char/ip2/i2os.h deleted +0 -127
127 lines not on this page · raw message
drivers/char/ip2/ip2main.c +34 -34
188 lines not on this page · raw message
Signature · 1 line
1.5.4.4
PATCH 3/4 Char: ip2, fix sparse warnings
In reply to Andrew MortonUnlock two grabbed locks on some paths.
--- drivers/char/ip2/i2lib.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)
drivers/char/ip2/i2lib.c +6 -4
@@ -643,12 +643,12 @@ i2QueueCommands(int type, i2ChanStrPtr pCh, int timeout, int nCommands,// Normal Expected path - We still hold LOCK break ;/* from for()- Enough room: goto proceed */ } - } - -ip2trace (CHANN ,ITRC_QUEUE ,3 ,1 , totalsize ); +ip2trace (CHANN ,ITRC_QUEUE ,3 ,1 , totalsize); +write_unlock_irqrestore (lock_var_p, flags); + }else +ip2trace (CHANN ,ITRC_QUEUE ,3 ,1 , totalsize);// Prepare to wait for buffers to empty -write_unlock_irqrestore (lock_var_p, flags);serviceOutgoingFifo (pB);// Dump what we got if (timeout ==0 ) {
@@ -1834,6 +1834,8 @@ i2StripFifo(i2eBordStrPtr pB)default :// Neither packet? should be impossible ip2trace (ITRC_NO_PORT ,ITRC_SFIFO ,5 ,1 ,PTYPE_OF (pB->i2eLeadoffWord) ); +write_unlock_irqrestore (&pB->read_fifo_spinlock, + bflags);break ; }// End of switch on type of packets
Signature · 1 line
1.5.4.4
Re: [PATCH 3/4] Char: ip2, fix sparse warnings
Quoted 29 lines · On Fri, 28 Mar 2008 22:18:43 +0100 Jiri Slaby <[email protected]> wrote:
Unlock two grabbed locks on some paths.
Signed-off-by Jiri Slaby <[email protected]>--- drivers/char/ip2/i2lib.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)drivers/char/ip2/i2lib.c +4
-4@@ -643,12 +643,12 @@ i2QueueCommands(int type, i2ChanStrPtr pCh, int timeout, int nCommands,// Normal Expected path - We still hold LOCK break ;/* from for()- Enough room: goto proceed */ } - } - -ip2trace (CHANN ,ITRC_QUEUE ,3 ,1 , totalsize ); +ip2trace (CHANN ,ITRC_QUEUE ,3 ,1 , totalsize); +write_unlock_irqrestore (lock_var_p, flags); + }else +ip2trace (CHANN ,ITRC_QUEUE ,3 ,1 , totalsize);// Prepare to wait for buffers to empty -write_unlock_irqrestore (lock_var_p, flags);serviceOutgoingFifo (pB);// Dump what we got if (timeout ==0 ) {
drivers/char/ip2/i2lib.c i2StripFifo(i2eBordStrPtr pB) · line 1841
Quoted 8 lines
drivers/char/ip2/i2lib.c +2
-0@@ -1834,6 +1834,8 @@ i2StripFifo(i2eBordStrPtr pB)default :// Neither packet? should be impossible ip2trace (ITRC_NO_PORT ,ITRC_SFIFO ,5 ,1 ,PTYPE_OF (pB->i2eLeadoffWord) ); +write_unlock_irqrestore (&pB->read_fifo_spinlock, + bflags);break ; }// End of switch on type of packets
Your tree apparently has a sensible-looking write_unlock_irqrestore(), whereas mine has a stupid-looking WRITE_UNLOCK_IRQRESTORE(). How did this happen?
Re: [PATCH 3/4] Char: ip2, fix sparse warnings
Andrew Morton napsal(a):
Quoted 14 lines
Quoted 11 lines · On Fri, 28 Mar 2008 22:18:43 +0100 Jiri Slaby <[email protected]> wrote:
Unlock two grabbed locks on some paths.
Signed-off-by Jiri Slaby <[email protected]>--- drivers/char/ip2/i2lib.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)drivers/char/ip2/i2lib.c +0
-0
[...]
Quoted 7 lines
Quoted 7 lines
drivers/char/ip2/i2lib.c +2
-0@@ -1834,6 +1834,8 @@ i2StripFifo(i2eBordStrPtr pB)default :// Neither packet? should be impossible ip2trace (ITRC_NO_PORT ,ITRC_SFIFO ,5 ,1 ,PTYPE_OF (pB->i2eLeadoffWord) ); +write_unlock_irqrestore (&pB->read_fifo_spinlock, + bflags);
Quoted 6 lines
drivers/char/ip2/i2lib.c i2StripFifo(i2eBordStrPtr pB) · line 1841
Quoted 2 lines
drivers/char/ip2/i2lib.c +0
-0break ; }// End of switch on type of packets Your tree apparently has a sensible-looking
write_unlock_irqrestore(), whereas mine has a stupid-lookingWRITE_UNLOCK_IRQRESTORE(). How did this happen?
This was changed in the previous wrong patch, I'm preparing a correct one.
PATCH 4/4 Char: rio, fix sparse warnings
In reply to Andrew MortonAdd some locks and unlocks to some code paths.
--- drivers/char/rio/riotable.c | 4 +++- drivers/char/rio/riotty.c | 4 ++++ 2 files changed, 7 insertions(+), 1 deletions(-)
drivers/char/rio/riotable.c +3 -1
@@ -424,8 +424,10 @@ int RIOApel(struct rio_info *p) MapP = &p->RIOConnectTable[Next++]; MapP->HostUniqueNum = HostP->UniqueNum; -if ((HostP->Flags &RUN_STATE ) !=RC_RUNNING ) +if ((HostP->Flags &RUN_STATE ) !=RC_RUNNING ) { +rio_spin_unlock_irqrestore (&HostP->HostLock, flags);continue ; + } MapP->RtaUniqueNum =0 ; MapP->ID =0 ; MapP->Flags =SLOT_IN_USE ;
drivers/char/rio/riotty.c +4 -0
@@ -319,6 +319,7 @@ int riotopen(struct tty_struct *tty, struct file *filp) PortP->State |=RIO_WOPEN ;rio_spin_unlock_irqrestore (&PortP->portSem, flags);if (RIODelay (PortP,HUNDRED_MS ) ==RIO_FAIL ) { +rio_spin_lock_irqsave (&PortP->portSem, flags);/* ** ACTION: verify that this is a good thing ** to do here. -- ???
@@ -334,6 +335,7 @@ int riotopen(struct tty_struct *tty, struct file *filp)func_exit ();return -EINTR ; } +rio_spin_lock_irqsave (&PortP->portSem, flags); } PortP->State &= ~RIO_WOPEN ; }
@@ -493,6 +495,7 @@ int riotclose(void *ptr)if (RIOShortCommand (p, PortP,RIOC_CLOSE ,1 ,0 ) ==RIO_FAIL ) {RIOPreemptiveCmd (p, PortP,RIOC_FCLOSE ); +rio_spin_lock_irqsave (&PortP->portSem, flags); goto close_end; }
@@ -508,6 +511,7 @@ int riotclose(void *ptr)if (p->RIOHalted) {RIOClearUp (PortP); +rio_spin_lock_irqsave (&PortP->portSem, flags); goto close_end; }if (RIODelay (PortP,HUNDRED_MS ) ==RIO_FAIL ) {
Signature · 1 line
1.5.4.4