[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20120130025643.GQ10262@cronus.persephoneslair.org>
Date: Sun, 29 Jan 2012 18:56:43 -0800
From: Andrea Shepard <andrea@...sephoneslair.org>
To: linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Cc: khc@...waw.pl, davem@...emloft.net, mmarek@...e.cz,
jkosina@...e.cz, joe@...ches.com, justinmattock@...il.com,
gregkh@...e.de, alan@...ux.intel.com, jdmason@...zu.us
Subject: [16/22] Cyclades PC300 driver: cleanup patch
This is the cleanup patch referred to in the descriptions of patches 1, 3, 4
and 5. It fixes numerous style violations in the original version of this
driver.
Signed-off-by: Andrea Shepard <andrea@...sephoneslair.org>
diff --git a/drivers/net/wan/pc300.h b/drivers/net/wan/pc300.h
index f00db39..b0f3601 100644
--- a/drivers/net/wan/pc300.h
+++ b/drivers/net/wan/pc300.h
@@ -103,9 +103,8 @@
#include "hd64572.h"
#include "pc300-falc-lh.h"
-#define PC300_PROTO_MLPPP 1
+#define PC300_PROTO_MLPPP 1
-#define PC300_KERNEL "2.4.x" /* Kernel supported by this driver */
#define PC300_DEVNAME "hdlc" /* Dev. name base (for hdlc0, hdlc1, etc.) */
#define PC300_MAXINDEX 100 /* Max dev. name index (the '0' in hdlc0) */
@@ -164,13 +163,13 @@
#define cpc_readl(port) readl((void __iomem *)(port))
#else /* __KERNEL__ */
-#define cpc_writeb(port, val) (*(u8 *)(port) = (u8)(val))
-#define cpc_writew(port, val) (*(u16 *)(port) = (u16)(val))
-#define cpc_writel(port, val) (*(u32 *)(port) = (u32)(val))
+#define cpc_writeb(port, val) (*((u8 *)(port)) = (u8)(val))
+#define cpc_writew(port, val) (*((u16 *)(port)) = (u16)(val))
+#define cpc_writel(port, val) (*((u32 *)(port)) = (u32)(val))
-#define cpc_readb(port) (*(u8 *)(port))
-#define cpc_readw(port) (*(u16 *)(port))
-#define cpc_readl(port) (*(u32 *)(port))
+#define cpc_readb(port) (*((u8 *)(port)))
+#define cpc_readw(port) (*((u16 *)(port)))
+#define cpc_readl(port) (*((u32 *)(port)))
#endif /* __KERNEL__ */
@@ -436,7 +435,7 @@ struct pc300hw_user {
};
typedef struct pc300chconf {
- sync_serial_settings phys_settings; /* Clock type/rate (in bps),
+ sync_serial_settings phys_settings; /* Clock type/rate (in bps),
loopback mode */
raw_hdlc_proto proto_settings; /* Encoding, parity (CRC) */
u32 media; /* HW media (RS232, V.35, etc.) */
@@ -540,7 +539,17 @@ enum pc300_loopback_cmds {
#define PC300_DEF_MTU 1600
#ifdef __KERNEL__
+
int cpc_open(struct net_device *);
+
+#ifdef CONFIG_PC300_MLPPP
+void cpc_tty_init(pc300dev_t *);
+void cpc_tty_unregister_service(pc300dev_t *);
+void cpc_tty_receive(pc300dev_t *);
+void cpc_tty_trigger_poll(pc300dev_t *);
+void cpc_tty_reset_var(void);
+#endif /* CONFIG_PC300_MLPP */
+
#endif /* __KERNEL__ */
#endif /* _PC300_H */
diff --git a/drivers/net/wan/pc300_drv.c b/drivers/net/wan/pc300_drv.c
index 8249038..c44c26a 100644
--- a/drivers/net/wan/pc300_drv.c
+++ b/drivers/net/wan/pc300_drv.c
@@ -1,5 +1,5 @@
#define USE_PCI_CLOCK
-static char rcsid[] =
+static const char rcsid[] =
"Revision: 4.1.0 Date: 2004/02/20 ";
/*
@@ -368,14 +368,6 @@ static void cpc_sca_status(pc300_t *, int);
static void cpc_trace(struct net_device *, struct sk_buff *, char);
static void cpc_tx_timeout(struct net_device *);
-#ifdef CONFIG_PC300_MLPPP
-void cpc_tty_init(pc300dev_t * dev);
-void cpc_tty_unregister_service(pc300dev_t * pc300dev);
-void cpc_tty_receive(pc300dev_t * pc300dev);
-void cpc_tty_trigger_poll(pc300dev_t * pc300dev);
-void cpc_tty_reset_var(void);
-#endif
-
static const struct net_device_ops pc300_netdev_ops = {
.ndo_change_mtu = cpc_change_mtu,
.ndo_do_ioctl = cpc_ioctl,
@@ -391,27 +383,30 @@ static const struct net_device_ops pc300_netdev_ops = {
/************************/
/*** DMA Routines ***/
/************************/
-static void tx_dma_buf_pt_init(pc300_t * card, int ch)
+static void tx_dma_buf_pt_init(pc300_t *card, int ch)
{
int i;
int ch_factor = ch * N_DMA_TX_BUF;
- pcsca_bd_t __iomem *ptdescr = (card->hw.rambase
- + DMA_TX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
+ pcsca_bd_t __iomem *ptdescr =
+ (card->hw.rambase + DMA_TX_BD_BASE +
+ ch_factor * sizeof(pcsca_bd_t));
for (i = 0; i < N_DMA_TX_BUF; i++, ptdescr++) {
cpc_writel(&ptdescr->next, (u32)(DMA_TX_BD_BASE +
- (ch_factor + ((i + 1) & (N_DMA_TX_BUF - 1))) * sizeof(pcsca_bd_t)));
+ (ch_factor + ((i + 1) & (N_DMA_TX_BUF - 1))) *
+ sizeof(pcsca_bd_t)));
cpc_writel(&ptdescr->ptbuf,
- (u32)(DMA_TX_BASE + (ch_factor + i) * BD_DEF_LEN));
+ (u32)(DMA_TX_BASE +
+ (ch_factor + i) * BD_DEF_LEN));
}
}
-static void tx_dma_buf_init(pc300_t * card, int ch)
+static void tx_dma_buf_init(pc300_t *card, int ch)
{
int i;
int ch_factor = ch * N_DMA_TX_BUF;
pcsca_bd_t __iomem *ptdescr = (card->hw.rambase
- + DMA_TX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
+ + DMA_TX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
for (i = 0; i < N_DMA_TX_BUF; i++, ptdescr++) {
memset_io(ptdescr, 0, sizeof(pcsca_bd_t));
@@ -421,28 +416,30 @@ static void tx_dma_buf_init(pc300_t * card, int ch)
tx_dma_buf_pt_init(card, ch);
}
-static void rx_dma_buf_pt_init(pc300_t * card, int ch)
+static void rx_dma_buf_pt_init(pc300_t *card, int ch)
{
int i;
int ch_factor = ch * N_DMA_RX_BUF;
pcsca_bd_t __iomem *ptdescr = (card->hw.rambase
- + DMA_RX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
+ + DMA_RX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
for (i = 0; i < N_DMA_RX_BUF; i++, ptdescr++) {
cpc_writel(&ptdescr->next, (u32)(DMA_RX_BD_BASE +
(ch_factor + ((i + 1) & (N_DMA_RX_BUF - 1))) *
sizeof(pcsca_bd_t)));
cpc_writel(&ptdescr->ptbuf,
- (u32)(DMA_RX_BASE + (ch_factor + i) * BD_DEF_LEN));
+ (u32)(DMA_RX_BASE +
+ (ch_factor + i) * BD_DEF_LEN));
}
}
-static void rx_dma_buf_init(pc300_t * card, int ch)
+static void rx_dma_buf_init(pc300_t *card, int ch)
{
int i;
int ch_factor = ch * N_DMA_RX_BUF;
- pcsca_bd_t __iomem *ptdescr = (card->hw.rambase
- + DMA_RX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
+ pcsca_bd_t __iomem *ptdescr =
+ (card->hw.rambase + DMA_RX_BD_BASE +
+ ch_factor * sizeof(pcsca_bd_t));
for (i = 0; i < N_DMA_RX_BUF; i++, ptdescr++) {
memset_io(ptdescr, 0, sizeof(pcsca_bd_t));
@@ -452,7 +449,7 @@ static void rx_dma_buf_init(pc300_t * card, int ch)
rx_dma_buf_pt_init(card, ch);
}
-static void tx_dma_buf_check(pc300_t * card, int ch)
+static void tx_dma_buf_check(pc300_t *card, int ch)
{
pcsca_bd_t __iomem *ptdescr;
int i;
@@ -460,66 +457,81 @@ static void tx_dma_buf_check(pc300_t * card, int ch)
u16 next_bd = card->chan[ch].tx_next_bd;
printk(KERN_DEBUG "#CH%d: f_bd = %d(0x%08x), n_bd = %d(0x%08x)\n", ch,
- first_bd, (u32)TX_BD_ADDR(ch, first_bd),
- next_bd, (u32)TX_BD_ADDR(ch, next_bd));
- for (i = first_bd,
- ptdescr = (pcsca_bd_t *) (card->hw.rambase + TX_BD_ADDR(ch, first_bd));
- i != ((next_bd + 1) & (N_DMA_TX_BUF - 1));
- i = (i + 1) & (N_DMA_TX_BUF - 1),
- ptdescr = (pcsca_bd_t *) (card->hw.rambase + TX_BD_ADDR(ch, i))) {
- printk("\n CH%d TX%d: next=0x%08x, ptbuf=0x%08x, ST=0x%2x, len=%d",
- ch, i, (u32) cpc_readl(&ptdescr->next),
- (u32) cpc_readl(&ptdescr->ptbuf),
- cpc_readb(&ptdescr->status), cpc_readw(&ptdescr->len));
+ first_bd, (u32)TX_BD_ADDR(ch, first_bd),
+ next_bd, (u32)TX_BD_ADDR(ch, next_bd));
+ for (
+ i = first_bd,
+ ptdescr = (pcsca_bd_t *)
+ (card->hw.rambase + TX_BD_ADDR(ch, first_bd));
+
+ i != ((next_bd + 1) & (N_DMA_TX_BUF - 1));
+
+ i = (i + 1) & (N_DMA_TX_BUF - 1),
+ ptdescr = (pcsca_bd_t *)
+ (card->hw.rambase + TX_BD_ADDR(ch, i))
+ ) {
+ printk(KERN_DEBUG
+ "\n CH%d TX%d: next=0x%08x, ptbuf=0x%08x, ST=0x%2x, len=%d",
+ ch, i, (u32) cpc_readl(&ptdescr->next),
+ (u32) cpc_readl(&ptdescr->ptbuf),
+ cpc_readb(&ptdescr->status), cpc_readw(&ptdescr->len));
}
- printk("\n");
+ printk(KERN_DEBUG "\n");
}
#ifdef PC300_DEBUG_OTHER
/* Show all TX buffer descriptors */
-static void tx1_dma_buf_check(pc300_t * card, int ch)
+static void tx1_dma_buf_check(pc300_t *card, int ch)
{
pcsca_bd_t __iomem *ptdescr;
int i;
u16 first_bd = card->chan[ch].tx_first_bd;
u16 next_bd = card->chan[ch].tx_next_bd;
- uintptr_t scabase = card->hw.scabase;
-
- printk(KERN_DEBUG "\nnfree_tx_bd = %d\n", card->chan[ch].nfree_tx_bd);
- printk("#CH%d: f_bd = %d(0x%08x), n_bd = %d(0x%08x)\n", ch,
- first_bd, (u32)TX_BD_ADDR(ch, first_bd),
- next_bd, (u32)TX_BD_ADDR(ch, next_bd));
- printk("TX_CDA=0x%08x, TX_EDA=0x%08x\n",
- (u32)(cpc_readl(scabase + DTX_REG(CDAL, ch))),
- (u32)(cpc_readl(scabase + DTX_REG(EDAL, ch))));
- printk(KERN_DEBUG "TX_CDA(BH/B/H/L) = %02x %02x %02x %02x\n",
- (u8) cpc_readb(scabase + DTX_REG(CDABH, ch)),
- (u8) cpc_readb(scabase + DTX_REG(CDAB, ch)),
- (u8) cpc_readb(scabase + DTX_REG(CDAH, ch)),
- (u8) cpc_readb(scabase + DTX_REG(CDAL, ch)));
- printk(KERN_DEBUG "TX_EDA(BH/B/H/L) = %02x %02x %02x %02x\n",
- (u8) cpc_readb(scabase + DTX_REG(EDABH, ch)),
- (u8) cpc_readb(scabase + DTX_REG(EDAB, ch)),
- (u8) cpc_readb(scabase + DTX_REG(EDAH, ch)),
- (u8) cpc_readb(scabase + DTX_REG(EDAL, ch)));
+ uintptr_t scabase = (uintptr_t)(card->hw.scabase);
+
+ printk(KERN_DEBUG
+ "\nnfree_tx_bd = %d\n", card->chan[ch].nfree_tx_bd);
+ printk(KERN_DEBUG
+ "#CH%d: f_bd = %d(0x%08x), n_bd = %d(0x%08x)\n", ch,
+ first_bd, (u32)TX_BD_ADDR(ch, first_bd),
+ next_bd, (u32)TX_BD_ADDR(ch, next_bd));
+ printk(KERN_DEBUG
+ "TX_CDA=0x%08x, TX_EDA=0x%08x\n",
+ (u32)(cpc_readl(scabase + DTX_REG(CDAL, ch))),
+ (u32)(cpc_readl(scabase + DTX_REG(EDAL, ch))));
+ printk(KERN_DEBUG
+ "TX_CDA(BH/B/H/L) = %02x %02x %02x %02x\n",
+ (u8) cpc_readb(scabase + DTX_REG(CDABH, ch)),
+ (u8) cpc_readb(scabase + DTX_REG(CDAB, ch)),
+ (u8) cpc_readb(scabase + DTX_REG(CDAH, ch)),
+ (u8) cpc_readb(scabase + DTX_REG(CDAL, ch)));
+ printk(KERN_DEBUG
+ "TX_EDA(BH/B/H/L) = %02x %02x %02x %02x\n",
+ (u8) cpc_readb(scabase + DTX_REG(EDABH, ch)),
+ (u8) cpc_readb(scabase + DTX_REG(EDAB, ch)),
+ (u8) cpc_readb(scabase + DTX_REG(EDAH, ch)),
+ (u8) cpc_readb(scabase + DTX_REG(EDAL, ch)));
for (i = 0; i < N_DMA_TX_BUF; i++) {
ptdescr = (card->hw.rambase + TX_BD_ADDR(ch, i));
- printk("\n CH%d TX%d: next=0x%x, ptbuf=0x%x, ST=0x%x, len=%d",
- ch, i, (u32) cpc_readl(&ptdescr->next),
- (u32) cpc_readl(&ptdescr->ptbuf),
- cpc_readb(&ptdescr->status), cpc_readw(&ptdescr->len));
- printk("\n CH%d TX%d: next=0x%02x%02x%02x%02x (endianess-correct)",
- ch, i,
- cpc_readb((unsigned char *)(&(ptdescr->next))+0x3),
- cpc_readb((unsigned char *)(&(ptdescr->next))+0x2),
- cpc_readb((unsigned char *)(&(ptdescr->next))+0x1),
- cpc_readb((unsigned char *)(&(ptdescr->next))+0x0));
- }
- printk("\n");
+ printk(KERN_DEBUG
+ "\n CH%d TX%d: next=0x%x, ptbuf=0x%x, ST=0x%x, len=%d",
+ ch, i, (u32) cpc_readl(&ptdescr->next),
+ (u32) cpc_readl(&ptdescr->ptbuf),
+ cpc_readb(&ptdescr->status),
+ cpc_readw(&ptdescr->len));
+ printk(KERN_DEBUG
+ "\n CH%d TX%d: next=0x%02x%02x%02x%02x (endianess-correct)",
+ ch, i,
+ cpc_readb((unsigned char *)(&(ptdescr->next))+0x3),
+ cpc_readb((unsigned char *)(&(ptdescr->next))+0x2),
+ cpc_readb((unsigned char *)(&(ptdescr->next))+0x1),
+ cpc_readb((unsigned char *)(&(ptdescr->next))+0x0));
+ }
+ printk(KERN_DEBUG "\n");
}
#endif
-
-static void rx_dma_buf_check(pc300_t * card, int ch)
+
+static void rx_dma_buf_check(pc300_t *card, int ch)
{
pcsca_bd_t __iomem *ptdescr;
int i;
@@ -528,21 +540,31 @@ static void rx_dma_buf_check(pc300_t * card, int ch)
int ch_factor;
ch_factor = ch * N_DMA_RX_BUF;
- printk("#CH%d: f_bd = %d, l_bd = %d\n", ch, first_bd, last_bd);
- for (i = 0, ptdescr = (pcsca_bd_t *) (card->hw.rambase +
- DMA_RX_BD_BASE + ch_factor * sizeof(pcsca_bd_t));
- i < N_DMA_RX_BUF; i++, ptdescr++) {
+ printk(KERN_DEBUG
+ "#CH%d: f_bd = %d, l_bd = %d\n", ch, first_bd, last_bd);
+ for (
+ i = 0,
+ ptdescr = (pcsca_bd_t *)
+ (card->hw.rambase + DMA_RX_BD_BASE +
+ ch_factor * sizeof(pcsca_bd_t));
+
+ i < N_DMA_RX_BUF;
+
+ i++,
+ ptdescr++
+ ) {
if (cpc_readb(&ptdescr->status) & DST_OSB)
- printk(KERN_DEBUG "\n CH%d RX%d: next=0x%08x, ptbuf=0x%08x, ST=0x%2x, len=%d",
+ printk(KERN_DEBUG
+ "\n CH%d RX%d: next=0x%08x, ptbuf=0x%08x, ST=0x%2x, len=%d",
ch, i, (u32) cpc_readl(&ptdescr->next),
(u32) cpc_readl(&ptdescr->ptbuf),
cpc_readb(&ptdescr->status),
cpc_readw(&ptdescr->len));
}
- printk("\n");
+ printk(KERN_DEBUG "\n");
}
-static int dma_get_rx_frame_size(pc300_t * card, int ch)
+static int dma_get_rx_frame_size(pc300_t *card, int ch)
{
pcsca_bd_t __iomem *ptdescr;
u16 first_bd = card->chan[ch].rx_first_bd;
@@ -556,11 +578,14 @@ static int dma_get_rx_frame_size(pc300_t * card, int ch)
if ((status & DST_EOM) || (first_bd == card->chan[ch].rx_last_bd)) {
/* Return the size of a good frame or incomplete bad frame
* (dma_buf_read will clean the buffer descriptors in this case). */
- return (rcvd);
+ return rcvd;
}
- ptdescr = (pcsca_bd_t *)(card->hw.rambase + cpc_readl(&ptdescr->next));
+ ptdescr = (pcsca_bd_t *)
+ (card->hw.rambase +
+ cpc_readl(&ptdescr->next));
}
- return (-1);
+
+ return -1;
}
/*
@@ -599,7 +624,8 @@ static int dma_buf_write(pc300_t *card, int ch, u8 *ptdata, int len)
}
tosend -= nchar;
card->chan[ch].tx_next_bd =
- (card->chan[ch].tx_next_bd + 1) & (N_DMA_TX_BUF - 1);
+ (card->chan[ch].tx_next_bd + 1) &
+ (N_DMA_TX_BUF - 1);
}
/* If it gets to here, it means we have sent the whole frame */
return 0;
@@ -609,7 +635,7 @@ static int dma_buf_write(pc300_t *card, int ch, u8 *ptdata, int len)
* dma_buf_read: reads a frame from the Rx DMA buffers
* NOTE: this function reads one frame at a time.
*/
-static int dma_buf_read(pc300_t * card, int ch, struct sk_buff *skb)
+static int dma_buf_read(pc300_t *card, int ch, struct sk_buff *skb)
{
int nchar;
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
@@ -621,7 +647,9 @@ static int dma_buf_read(pc300_t * card, int ch, struct sk_buff *skb)
RX_BD_ADDR(ch, chan->rx_first_bd));
while ((status = cpc_readb(&ptdescr->status)) & DST_OSB) {
nchar = cpc_readw(&ptdescr->len);
- if ((status & (DST_OVR | DST_CRC | DST_RBIT | DST_SHRT | DST_ABT))
+ if ((status &
+ (DST_OVR | DST_CRC | DST_RBIT |
+ DST_SHRT | DST_ABT))
|| (nchar > BD_DEF_LEN)) {
if (nchar > BD_DEF_LEN)
@@ -642,31 +670,37 @@ static int dma_buf_read(pc300_t * card, int ch, struct sk_buff *skb)
if (nchar != 0) {
if (skb) {
memcpy_fromio(skb_put(skb, nchar),
- (void *)(card->hw.rambase+cpc_readl(&ptdescr->ptbuf)),nchar);
+ (void *)(card->hw.rambase +
+ cpc_readl(&ptdescr->ptbuf)), nchar);
}
rcvd += nchar;
}
cpc_writeb(&ptdescr->status, 0);
cpc_writeb(&ptdescr->len, 0);
- chan->rx_first_bd = (chan->rx_first_bd + 1) & (N_DMA_RX_BUF - 1);
+ chan->rx_first_bd =
+ (chan->rx_first_bd + 1) &
+ (N_DMA_RX_BUF - 1);
if (status & DST_EOM)
break;
- ptdescr = (pcsca_bd_t *) (card->hw.rambase + cpc_readl(&ptdescr->next));
+ ptdescr = (pcsca_bd_t *)
+ (card->hw.rambase + cpc_readl(&ptdescr->next));
}
if (rcvd != 0) {
/* Update pointer */
- chan->rx_last_bd = (chan->rx_first_bd - 1) & (N_DMA_RX_BUF - 1);
+ chan->rx_last_bd =
+ (chan->rx_first_bd - 1) &
+ (N_DMA_RX_BUF - 1);
/* Update EDA */
cpc_writel(card->hw.scabase + DRX_REG(EDAL, ch),
RX_BD_ADDR(ch, chan->rx_last_bd));
}
- return (rcvd);
+ return rcvd;
}
-static void tx_dma_stop(pc300_t * card, int ch)
+static void tx_dma_stop(pc300_t *card, int ch)
{
uintptr_t scabase = (uintptr_t)(card->hw.scabase);
u8 drr_ena_bit = 1 << (5 + 2 * ch);
@@ -677,7 +711,7 @@ static void tx_dma_stop(pc300_t * card, int ch)
cpc_writeb(scabase + DRR, drr_rst_bit & ~drr_ena_bit);
}
-static void rx_dma_stop(pc300_t * card, int ch)
+static void rx_dma_stop(pc300_t *card, int ch)
{
uintptr_t scabase = (uintptr_t)(card->hw.scabase);
u8 drr_ena_bit = 1 << (4 + 2 * ch);
@@ -688,7 +722,7 @@ static void rx_dma_stop(pc300_t * card, int ch)
cpc_writeb(scabase + DRR, drr_rst_bit & ~drr_ena_bit);
}
-static void rx_dma_start(pc300_t * card, int ch)
+static void rx_dma_start(pc300_t *card, int ch)
{
uintptr_t scabase = (uintptr_t)(card->hw.scabase);
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
@@ -706,7 +740,7 @@ static void rx_dma_start(pc300_t * card, int ch)
cpc_writew(scabase + DRX_REG(BFLL, ch), BD_DEF_LEN);
cpc_writeb(scabase + DSR_RX(ch), DSR_DE);
if (!(cpc_readb(scabase + DSR_RX(ch)) & DSR_DE)) {
- cpc_writeb(scabase + DSR_RX(ch), DSR_DE);
+ cpc_writeb(scabase + DSR_RX(ch), DSR_DE);
}
}
@@ -720,15 +754,16 @@ static void falc_issue_cmd(pc300_t *card, int ch, u8 cmd)
while (cpc_readb(falcbase + F_REG(SIS, ch)) & SIS_CEC) {
if (i++ >= PC300_FALC_MAXLOOP) {
- printk("%s: FALC command locked(cmd=0x%x).\n",
- card->chan[ch].d.name, cmd);
+ printk(KERN_ERR
+ "%s: FALC command locked(cmd=0x%x).\n",
+ card->chan[ch].d.name, cmd);
break;
}
}
cpc_writeb(falcbase + F_REG(CMDR, ch), cmd);
}
-static void falc_intr_enable(pc300_t * card, int ch)
+static void falc_intr_enable(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -778,7 +813,7 @@ static void falc_intr_enable(pc300_t * card, int ch)
}
}
-static void falc_open_timeslot(pc300_t * card, int ch, int timeslot)
+static void falc_open_timeslot(pc300_t *card, int ch, int timeslot)
{
uintptr_t falcbase = (uintptr_t)(card->hw.falcbase);
u8 tshf = card->chan[ch].falc.offset;
@@ -794,7 +829,7 @@ static void falc_open_timeslot(pc300_t * card, int ch, int timeslot)
(0x80 >> (timeslot & 0x07)));
}
-static void falc_close_timeslot(pc300_t * card, int ch, int timeslot)
+static void falc_close_timeslot(pc300_t *card, int ch, int timeslot)
{
uintptr_t falcbase = (uintptr_t)(card->hw.falcbase);
u8 tshf = card->chan[ch].falc.offset;
@@ -810,7 +845,7 @@ static void falc_close_timeslot(pc300_t * card, int ch, int timeslot)
~(0x80 >> (timeslot & 0x07)));
}
-static void falc_close_all_timeslots(pc300_t * card, int ch)
+static void falc_close_all_timeslots(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -832,7 +867,7 @@ static void falc_close_all_timeslots(pc300_t * card, int ch)
}
}
-static void falc_open_all_timeslots(pc300_t * card, int ch)
+static void falc_open_all_timeslots(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -864,7 +899,7 @@ static void falc_open_all_timeslots(pc300_t * card, int ch)
}
}
-static void falc_init_timeslot(pc300_t * card, int ch)
+static void falc_init_timeslot(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -882,7 +917,7 @@ static void falc_init_timeslot(pc300_t * card, int ch)
}
}
-static void falc_enable_comm(pc300_t * card, int ch)
+static void falc_enable_comm(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
@@ -898,7 +933,7 @@ static void falc_enable_comm(pc300_t * card, int ch)
~((CPLD_REG1_FALC_DCD | CPLD_REG1_FALC_CTS) << (2 * ch)));
}
-static void falc_disable_comm(pc300_t * card, int ch)
+static void falc_disable_comm(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
@@ -912,7 +947,7 @@ static void falc_disable_comm(pc300_t * card, int ch)
((CPLD_REG1_FALC_DCD | CPLD_REG1_FALC_CTS) << (2 * ch)));
}
-static void falc_init_t1(pc300_t * card, int ch)
+static void falc_init_t1(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1081,7 +1116,7 @@ static void falc_init_t1(pc300_t * card, int ch)
falc_close_all_timeslots(card, ch);
}
-static void falc_init_e1(pc300_t * card, int ch)
+static void falc_init_e1(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1261,7 +1296,7 @@ static void falc_init_e1(pc300_t * card, int ch)
falc_close_all_timeslots(card, ch);
}
-static void falc_init_hdlc(pc300_t * card, int ch)
+static void falc_init_hdlc(pc300_t *card, int ch)
{
uintptr_t falcbase = (uintptr_t)(card->hw.falcbase);
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
@@ -1287,7 +1322,7 @@ static void falc_init_hdlc(pc300_t * card, int ch)
falc_intr_enable(card, ch);
}
-static void te_config(pc300_t * card, int ch)
+static void te_config(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1347,7 +1382,7 @@ static void te_config(pc300_t * card, int ch)
CPC_UNLOCK(card, flags);
}
-static void falc_check_status(pc300_t * card, int ch, unsigned char frs0)
+static void falc_check_status(pc300_t *card, int ch, unsigned char frs0)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1503,7 +1538,7 @@ static void falc_check_status(pc300_t * card, int ch, unsigned char frs0)
}
}
-static void falc_update_stats(pc300_t * card, int ch)
+static void falc_update_stats(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1535,8 +1570,7 @@ static void falc_update_stats(pc300_t * card, int ch)
if (((conf->media == IF_IFACE_T1) &&
(cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_LLBAD) &&
- (!(cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_PDEN)))
- ||
+ (!(cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_PDEN))) ||
((conf->media == IF_IFACE_E1) &&
(cpc_readb(falcbase + F_REG(RSP, ch)) & RSP_LLBAD))) {
pfalc->prbs = 2;
@@ -1552,11 +1586,11 @@ static void falc_update_stats(pc300_t * card, int ch)
* Description: In the remote loopback mode the clock and data recovered
* from the line inputs RL1/2 or RDIP/RDIN are routed back
* to the line outputs XL1/2 or XDOP/XDON via the analog
- * transmitter. As in normal mode they are processsed by
+ * transmitter. As in normal mode they are processed by
* the synchronizer and then sent to the system interface.
*----------------------------------------------------------------------------
*/
-static void falc_remote_loop(pc300_t * card, int ch, int loop_on)
+static void falc_remote_loop(pc300_t *card, int ch, int loop_on)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1601,7 +1635,7 @@ static void falc_remote_loop(pc300_t * card, int ch, int loop_on)
* coding must be identical.
*----------------------------------------------------------------------------
*/
-static void falc_local_loop(pc300_t * card, int ch, int loop_on)
+static void falc_local_loop(pc300_t *card, int ch, int loop_on)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
@@ -1628,7 +1662,7 @@ static void falc_local_loop(pc300_t * card, int ch, int loop_on)
* looped. They are originated by the FALC-LH transmitter.
*----------------------------------------------------------------------------
*/
-static void falc_payload_loop(pc300_t * card, int ch, int loop_on)
+static void falc_payload_loop(pc300_t *card, int ch, int loop_on)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1682,7 +1716,7 @@ static void falc_payload_loop(pc300_t * card, int ch, int loop_on)
* Description: Turns XLU bit off in the proper register
*----------------------------------------------------------------------------
*/
-static void turn_off_xlu(pc300_t * card, int ch)
+static void turn_off_xlu(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1703,7 +1737,7 @@ static void turn_off_xlu(pc300_t * card, int ch)
* Description: Turns XLD bit off in the proper register
*----------------------------------------------------------------------------
*/
-static void turn_off_xld(pc300_t * card, int ch)
+static void turn_off_xld(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1725,7 +1759,7 @@ static void turn_off_xld(pc300_t * card, int ch)
* to generate a LOOP activation code over a T1/E1 line.
*----------------------------------------------------------------------------
*/
-static void falc_generate_loop_up_code(pc300_t * card, int ch)
+static void falc_generate_loop_up_code(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1758,7 +1792,7 @@ static void falc_generate_loop_up_code(pc300_t * card, int ch)
* to generate a LOOP deactivation code over a T1/E1 line.
*----------------------------------------------------------------------------
*/
-static void falc_generate_loop_down_code(pc300_t * card, int ch)
+static void falc_generate_loop_down_code(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1788,7 +1822,7 @@ static void falc_generate_loop_down_code(pc300_t * card, int ch)
* it on the reception side.
*----------------------------------------------------------------------------
*/
-static void falc_pattern_test(pc300_t * card, int ch, unsigned int activate)
+static void falc_pattern_test(pc300_t *card, int ch, unsigned int activate)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -1840,7 +1874,7 @@ static u16 falc_pattern_test_error(pc300_t *card, int ch)
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
- return (pfalc->bec);
+ return pfalc->bec;
}
/**********************************/
@@ -1853,7 +1887,9 @@ cpc_trace(struct net_device *dev, struct sk_buff *skb_main, char rx_tx)
struct sk_buff *skb;
if ((skb = dev_alloc_skb(10 + skb_main->len)) == NULL) {
- printk("%s: out of memory\n", dev->name);
+ printk(KERN_ERR
+ "%s: out of memory\n",
+ dev->name);
return;
}
skb_put(skb, 10 + skb_main->len);
@@ -1893,7 +1929,11 @@ static void cpc_tx_timeout(struct net_device *dev)
stats->tx_aborted_errors++;
CPC_LOCK(card, flags);
if ((ilar = cpc_readb(card->hw.scabase + ILAR)) != 0) {
- printk("%s: ILAR=0x%x\n", dev->name, ilar);
+#ifdef PC300_DEBUG_OTHER
+ printk(KERN_DEBUG
+ "%s: ILAR=0x%x\n",
+ dev->name, ilar);
+#endif
cpc_writeb(card->hw.scabase + ILAR, ilar);
cpc_writeb(card->hw.scabase + DMER, 0x80);
}
@@ -1905,8 +1945,9 @@ static void cpc_tx_timeout(struct net_device *dev)
dev->trans_start = jiffies;
CPC_UNLOCK(card, flags);
#ifdef PC300_DEBUG_QUEUE
- printk(KERN_DEBUG "%s: waking queue, finished cpc_tx_timeout()\n",
- dev->name);
+ printk(KERN_DEBUG
+ "%s: waking queue, finished cpc_tx_timeout()\n",
+ dev->name);
#endif
netif_wake_queue(dev);
}
@@ -1924,15 +1965,17 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
#endif
#ifdef PC300_DEBUG_TX
- printk(KERN_DEBUG "%s: cpc_queue_xmit called wih %d bytes\n",
- dev->name, skb->len);
+ printk(KERN_DEBUG
+ "%s: cpc_queue_xmit called wih %d bytes\n",
+ dev->name, skb->len);
#endif
if (chan->conf.monitor) {
/* In monitor mode no Tx is done: ignore packet */
dev_kfree_skb(skb);
#ifdef PC300_DEBUG_OTHER
- printk(KERN_DEBUG "%s: dropping TX packet because in monitor mode\n",
- dev->name);
+ printk(KERN_DEBUG
+ "%s: dropping TX packet because in monitor mode\n",
+ dev->name);
#endif
return 0;
} else if (!netif_carrier_ok(dev)) {
@@ -1941,17 +1984,24 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
stats->tx_errors++;
stats->tx_carrier_errors++;
#ifdef PC300_DEBUG_OTHER
- printk(KERN_DEBUG "%s: TX carrier error; dropping silently\n",
- dev->name);
+ printk(KERN_DEBUG
+ "%s: TX carrier error; dropping silently\n",
+ dev->name);
#endif
return 0;
- } else if (cpc_readb(card->hw.scabase + M_REG(ST3, ch)) & ST3_DCD) {
- printk("%s: DCD is OFF. Going administrative down.\n", dev->name);
+ } else if (
+ cpc_readb(card->hw.scabase +
+ M_REG(ST3, ch)) &
+ ST3_DCD) {
+ printk(KERN_INFO
+ "%s: DCD is OFF. Going administrative down.\n",
+ dev->name);
stats->tx_errors++;
stats->tx_carrier_errors++;
#ifdef PC300_DEBUG_OTHER
- printk(KERN_DEBUG "%s: TX carrier error; dropping silently\n",
- dev->name);
+ printk(KERN_DEBUG
+ "%s: TX carrier error; dropping silently\n",
+ dev->name);
#endif
dev_kfree_skb(skb);
netif_carrier_off(dev);
@@ -1964,8 +2014,9 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
}
CPC_UNLOCK(card, flags);
#ifdef PC300_DEBUG_QUEUE
- printk(KERN_DEBUG "%s: waking queue after TX carrier error\n",
- dev->name);
+ printk(KERN_DEBUG
+ "%s: waking queue after TX carrier error\n",
+ dev->name);
#endif
netif_wake_queue(dev);
return 0;
@@ -1973,13 +2024,18 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
CPC_LOCK(card, flags);
/* Write buffer to DMA buffers */
- if (dma_buf_write(card, ch, (u8 *) skb->data, skb->len) != 0) {
+ if (dma_buf_write(
+ card, ch,
+ (u8 *) skb->data,
+ skb->len) != 0) {
CPC_UNLOCK(card, flags);
- printk(KERN_ERR "%s: write error. Dropping TX packet.\n",
- dev->name);
+ printk(KERN_ERR
+ "%s: write error. Dropping TX packet.\n",
+ dev->name);
#ifdef PC300_DEBUG_QUEUE
- printk(KERN_DEBUG "%s: stopping queue due to DMA error\n",
- dev->name);
+ printk(KERN_DEBUG
+ "%s: stopping queue due to DMA error\n",
+ dev->name);
#endif
d->reason_stopped = CPC_DMA_ERROR;
netif_stop_queue(dev);
@@ -1990,10 +2046,10 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
} else
CPC_UNLOCK(card, flags);
#ifdef PC300_DEBUG_TX
- printk("%s T:", dev->name);
+ printk(KERN_DEBUG "%s T:", dev->name);
for (i = 0; i < skb->len; i++)
- printk(" %02x", *(skb->data + i));
- printk("\n");
+ printk(KERN_DEBUG " %02x", *(skb->data + i));
+ printk(KERN_DEBUG "\n");
#endif
if (d->trace_on) {
@@ -2006,7 +2062,8 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
/* verify if it has more than one free descriptor */
if (card->chan[ch].nfree_tx_bd <= 1) {
#ifdef PC300_DEBUG_QUEUE
- printk(KERN_DEBUG "%s: stopping queue for transmission\n",
+ printk(KERN_DEBUG
+ "%s: stopping queue for transmission\n",
dev->name);
#endif
/* don't have so stop the queue */
@@ -2051,17 +2108,22 @@ static void cpc_net_rx(struct net_device *dev)
if (!netif_carrier_ok(dev)) {
/* DCD must be OFF: drop packet */
- printk(KERN_INFO "%s : DCD is OFF - drop %d rx bytes\n",
+ printk(KERN_INFO
+ "%s : DCD is OFF - drop %d rx bytes\n",
dev->name, rxb);
skb = NULL;
} else {
if (rxb > (dev->mtu + 40)) { /* add headers */
- printk("%s : MTU exceeded %d\n", dev->name, rxb);
+ printk(KERN_ERR
+ "%s : MTU exceeded %d\n",
+ dev->name, rxb);
skb = NULL;
} else {
skb = dev_alloc_skb(rxb);
if (skb == NULL) {
- printk("%s: Memory squeeze!!\n", dev->name);
+ printk(KERN_ERR
+ "%s: Memory squeeze!!\n",
+ dev->name);
return;
}
skb->dev = dev;
@@ -2070,7 +2132,9 @@ static void cpc_net_rx(struct net_device *dev)
if (((rxb = dma_buf_read(card, ch, skb)) <= 0) || (skb == NULL)) {
#ifdef PC300_DEBUG_RX
- printk("%s: rxb = %x\n", dev->name, rxb);
+ printk(KERN_DEBUG
+ "%s: rxb = %x\n",
+ dev->name, rxb);
#endif
if ((skb == NULL) && (rxb > 0)) {
/* rxb > dev->mtu */
@@ -2103,10 +2167,10 @@ static void cpc_net_rx(struct net_device *dev)
stats->rx_bytes += rxb;
#ifdef PC300_DEBUG_RX
- printk("%s R:", dev->name);
+ printk(KERN_DEBUG "%s R:", dev->name);
for (i = 0; i < skb->len; i++)
- printk(" %02x", *(skb->data + i));
- printk("\n");
+ printk(KERN_DEBUG " %02x", *(skb->data + i));
+ printk(KERN_DEBUG "\n");
#endif
if (d->trace_on) {
cpc_trace(dev, skb, 'R');
@@ -2125,16 +2189,19 @@ static void sca_tx_intr(pc300dev_t *dev)
{
pc300ch_t *chan = (pc300ch_t *)dev->chan;
pc300_t *card = (pc300_t *)chan->card;
- int ch = chan->channel;
- volatile pcsca_bd_t * ptdescr;
+ int ch = chan->channel;
+ pcsca_bd_t *ptdescr;
struct net_device_stats *stats = &(dev->netdev->stats);
/* Clean up descriptors from previous transmission */
- ptdescr = (pcsca_bd_t *)(card->hw.rambase +
- TX_BD_ADDR(ch,chan->tx_first_bd));
- while ((cpc_readl(card->hw.scabase + DTX_REG(CDAL,ch)) !=
- TX_BD_ADDR(ch,chan->tx_first_bd)) &&
- (cpc_readb(&ptdescr->status) & DST_OSB)) {
+ ptdescr = (pcsca_bd_t *)
+ (card->hw.rambase +
+ TX_BD_ADDR(ch, chan->tx_first_bd));
+ while (
+ (cpc_readl(card->hw.scabase + DTX_REG(CDAL, ch)) !=
+ TX_BD_ADDR(ch, chan->tx_first_bd)) &&
+ (cpc_readb(&ptdescr->status) & DST_OSB)
+ ) {
stats->tx_packets++;
stats->tx_bytes += cpc_readw(&ptdescr->len);
cpc_writeb(&ptdescr->status, DST_OSB);
@@ -2142,8 +2209,8 @@ static void sca_tx_intr(pc300dev_t *dev)
chan->nfree_tx_bd++;
chan->tx_first_bd = (chan->tx_first_bd + 1) & (N_DMA_TX_BUF - 1);
ptdescr = (pcsca_bd_t *)(card->hw.rambase +
- TX_BD_ADDR(ch,chan->tx_first_bd));
- }
+ TX_BD_ADDR(ch, chan->tx_first_bd));
+ }
#ifdef CONFIG_PC300_MLPPP
if (chan->conf.proto == PC300_PROTO_MLPPP) {
@@ -2160,7 +2227,7 @@ static void sca_tx_intr(pc300dev_t *dev)
#endif
}
-static void sca_intr(pc300_t * card)
+static void sca_intr(pc300_t *card)
{
uintptr_t scabase = (uintptr_t)(card->hw.scabase);
u32 status;
@@ -2182,7 +2249,8 @@ static void sca_intr(pc300_t * card)
/**** Reception ****/
if (status & IR0_DRX((IR0_DMIA | IR0_DMIB), ch)) {
- u8 drx_stat = cpc_readb(scabase + DSR_RX(ch));
+ u8 drx_stat =
+ cpc_readb(scabase + DSR_RX(ch));
/* Clear RX interrupts */
cpc_writeb(scabase + DSR_RX(ch), drx_stat | DSR_DWE);
@@ -2209,10 +2277,15 @@ static void sca_intr(pc300_t * card)
}
cpc_net_rx(dev);
/* Discard invalid frames */
- dev->stats.rx_errors++;
- dev->stats.rx_over_errors++;
- chan->rx_first_bd = 0;
- chan->rx_last_bd = N_DMA_RX_BUF - 1;
+ ++dev->stats.
+ rx_errors;
+ ++dev->stats.
+ rx_over_errors;
+ chan->rx_first_bd
+ = 0;
+ chan->rx_last_bd
+ = N_DMA_RX_BUF
+ - 1;
rx_dma_start(card, ch);
}
}
@@ -2258,7 +2331,8 @@ static void sca_intr(pc300_t * card)
/**** Transmission ****/
if (status & IR0_DTX((IR0_EFT | IR0_DMIA | IR0_DMIB), ch)) {
- u8 dtx_stat = cpc_readb(scabase + DSR_TX(ch));
+ u8 dtx_stat =
+ cpc_readb(scabase + DSR_TX(ch));
/* Clear TX interrupts */
cpc_writeb(scabase + DSR_TX(ch), dtx_stat | DSR_DWE);
@@ -2311,7 +2385,8 @@ static void sca_intr(pc300_t * card)
/**** MSCI ****/
if (status & IR0_M(IR0_RXINTA, ch)) {
- u8 st1 = cpc_readb(scabase + M_REG(ST1, ch));
+ u8 st1 =
+ cpc_readb(scabase + M_REG(ST1, ch));
/* Clear MSCI interrupts */
cpc_writeb(scabase + M_REG(ST1, ch), st1);
@@ -2322,8 +2397,9 @@ static void sca_intr(pc300_t * card)
#endif
if (st1 & ST1_CDCD) { /* DCD changed */
if (cpc_readb(scabase + M_REG(ST3, ch)) & ST3_DCD) {
- printk ("%s: DCD is OFF. Going administrative down.\n",
- dev->name);
+ printk(KERN_INFO
+ "%s: DCD is OFF. Going administrative down.\n",
+ dev->name);
#ifdef CONFIG_PC300_MLPPP
if (chan->conf.proto != PC300_PROTO_MLPPP) {
netif_carrier_off(dev);
@@ -2334,8 +2410,9 @@ static void sca_intr(pc300_t * card)
#endif
card->chan[ch].d.line_off++;
} else { /* DCD = 1 */
- printk ("%s: DCD is ON. Going administrative up.\n",
- dev->name);
+ printk(KERN_INFO
+ "%s: DCD is ON. Going administrative up.\n",
+ dev->name);
#ifdef CONFIG_PC300_MLPPP
if (chan->conf.proto != PC300_PROTO_MLPPP)
/* verify if driver is not TTY */
@@ -2403,7 +2480,7 @@ static void falc_e1_loop_detection(pc300_t *card, int ch, u8 rsp)
}
}
-static void falc_t1_intr(pc300_t * card, int ch)
+static void falc_t1_intr(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
@@ -2450,7 +2527,7 @@ static void falc_t1_intr(pc300_t * card, int ch)
}
}
-static void falc_e1_intr(pc300_t * card, int ch)
+static void falc_e1_intr(pc300_t *card, int ch)
{
pc300ch_t *chan = (pc300ch_t *) & card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
@@ -2519,7 +2596,7 @@ static void falc_e1_intr(pc300_t * card, int ch)
}
}
-static void falc_intr(pc300_t * card)
+static void falc_intr(pc300_t *card)
{
int ch;
@@ -2540,16 +2617,21 @@ static irqreturn_t cpc_intr(int irq, void *dev_id)
pc300_t *card;
u8 plx_status;
- if ((card = (pc300_t *) dev_id) == 0) {
+ card = (pc300_t *)dev_id;
+ if (card == 0) {
#ifdef PC300_DEBUG_INTR
- printk("cpc_intr: spurious intr %d\n", irq);
+ printk(KERN_DEBUG
+ "cpc_intr: spurious intr %d\n",
+ irq);
#endif
return IRQ_NONE; /* spurious intr */
}
if (card->hw.rambase == 0) {
#ifdef PC300_DEBUG_INTR
- printk("cpc_intr: spurious intr2 %d\n", irq);
+ printk(KERN_DEBUG
+ "cpc_intr: spurious intr2 %d\n",
+ irq);
#endif
return IRQ_NONE; /* spurious intr */
}
@@ -2575,7 +2657,7 @@ static irqreturn_t cpc_intr(int irq, void *dev_id)
return IRQ_HANDLED;
}
-static void cpc_sca_status(pc300_t * card, int ch)
+static void cpc_sca_status(pc300_t *card, int ch)
{
u8 ilar;
uintptr_t scabase = (uintptr_t)(card->hw.scabase);
@@ -2591,80 +2673,103 @@ static void cpc_sca_status(pc300_t * card, int ch)
printk(KERN_DEBUG "rx_dma_buf_check():\n");
rx_dma_buf_check(card, ch);
ilar = cpc_readb(scabase + ILAR);
- printk ("ILAR=0x%02x, WCRL=0x%02x, PCR=0x%02x, BTCR=0x%02x, BOLR=0x%02x\n",
- ilar, cpc_readb(scabase + WCRL), cpc_readb(scabase + PCR),
- cpc_readb(scabase + BTCR), cpc_readb(scabase + BOLR));
- printk("TX_CDA=0x%08x, TX_EDA=0x%08x\n",
- (u32) cpc_readl(scabase + DTX_REG(CDAL, ch)),
- (u32) cpc_readl(scabase + DTX_REG(EDAL, ch)));
- printk("RX_CDA=0x%08x, RX_EDA=0x%08x, BFL=0x%04x\n",
- (u32) cpc_readl(scabase + DRX_REG(CDAL, ch)),
- (u32) cpc_readl(scabase + DRX_REG(EDAL, ch)),
- cpc_readw(scabase + DRX_REG(BFLL, ch)));
- printk("DMER=0x%02x, DSR_TX=0x%02x, DSR_RX=0x%02x\n",
- cpc_readb(scabase + DMER), cpc_readb(scabase + DSR_TX(ch)),
- cpc_readb(scabase + DSR_RX(ch)));
- printk("DMR_TX=0x%02x, DMR_RX=0x%02x, DIR_TX=0x%02x, DIR_RX=0x%02x\n",
- cpc_readb(scabase + DMR_TX(ch)), cpc_readb(scabase + DMR_RX(ch)),
- cpc_readb(scabase + DIR_TX(ch)),
- cpc_readb(scabase + DIR_RX(ch)));
- printk("DCR_TX=0x%02x, DCR_RX=0x%02x, FCT_TX=0x%02x, FCT_RX=0x%02x\n",
- cpc_readb(scabase + DCR_TX(ch)), cpc_readb(scabase + DCR_RX(ch)),
- cpc_readb(scabase + FCT_TX(ch)),
- cpc_readb(scabase + FCT_RX(ch)));
- printk("MD0=0x%02x, MD1=0x%02x, MD2=0x%02x, MD3=0x%02x, IDL=0x%02x\n",
- cpc_readb(scabase + M_REG(MD0, ch)),
- cpc_readb(scabase + M_REG(MD1, ch)),
- cpc_readb(scabase + M_REG(MD2, ch)),
- cpc_readb(scabase + M_REG(MD3, ch)),
- cpc_readb(scabase + M_REG(IDL, ch)));
- printk("CMD=0x%02x, SA0=0x%02x, SA1=0x%02x, TFN=0x%02x, CTL=0x%02x\n",
- cpc_readb(scabase + M_REG(CMD, ch)),
- cpc_readb(scabase + M_REG(SA0, ch)),
- cpc_readb(scabase + M_REG(SA1, ch)),
- cpc_readb(scabase + M_REG(TFN, ch)),
- cpc_readb(scabase + M_REG(CTL, ch)));
- printk("ST0=0x%02x, ST1=0x%02x, ST2=0x%02x, ST3=0x%02x, ST4=0x%02x\n",
- cpc_readb(scabase + M_REG(ST0, ch)),
- cpc_readb(scabase + M_REG(ST1, ch)),
- cpc_readb(scabase + M_REG(ST2, ch)),
- cpc_readb(scabase + M_REG(ST3, ch)),
- cpc_readb(scabase + M_REG(ST4, ch)));
- printk ("CST0=0x%02x, CST1=0x%02x, CST2=0x%02x, CST3=0x%02x, FST=0x%02x\n",
- cpc_readb(scabase + M_REG(CST0, ch)),
- cpc_readb(scabase + M_REG(CST1, ch)),
- cpc_readb(scabase + M_REG(CST2, ch)),
- cpc_readb(scabase + M_REG(CST3, ch)),
- cpc_readb(scabase + M_REG(FST, ch)));
- printk("TRC0=0x%02x, TRC1=0x%02x, RRC=0x%02x, TBN=0x%02x, RBN=0x%02x\n",
- cpc_readb(scabase + M_REG(TRC0, ch)),
- cpc_readb(scabase + M_REG(TRC1, ch)),
- cpc_readb(scabase + M_REG(RRC, ch)),
- cpc_readb(scabase + M_REG(TBN, ch)),
- cpc_readb(scabase + M_REG(RBN, ch)));
- printk("TFS=0x%02x, TNR0=0x%02x, TNR1=0x%02x, RNR=0x%02x\n",
- cpc_readb(scabase + M_REG(TFS, ch)),
- cpc_readb(scabase + M_REG(TNR0, ch)),
- cpc_readb(scabase + M_REG(TNR1, ch)),
- cpc_readb(scabase + M_REG(RNR, ch)));
- printk("TCR=0x%02x, RCR=0x%02x, TNR1=0x%02x, RNR=0x%02x\n",
- cpc_readb(scabase + M_REG(TCR, ch)),
- cpc_readb(scabase + M_REG(RCR, ch)),
- cpc_readb(scabase + M_REG(TNR1, ch)),
- cpc_readb(scabase + M_REG(RNR, ch)));
- printk("TXS=0x%02x, RXS=0x%02x, EXS=0x%02x, TMCT=0x%02x, TMCR=0x%02x\n",
- cpc_readb(scabase + M_REG(TXS, ch)),
- cpc_readb(scabase + M_REG(RXS, ch)),
- cpc_readb(scabase + M_REG(EXS, ch)),
- cpc_readb(scabase + M_REG(TMCT, ch)),
- cpc_readb(scabase + M_REG(TMCR, ch)));
- printk("IE0=0x%02x, IE1=0x%02x, IE2=0x%02x, IE4=0x%02x, FIE=0x%02x\n",
- cpc_readb(scabase + M_REG(IE0, ch)),
- cpc_readb(scabase + M_REG(IE1, ch)),
- cpc_readb(scabase + M_REG(IE2, ch)),
- cpc_readb(scabase + M_REG(IE4, ch)),
- cpc_readb(scabase + M_REG(FIE, ch)));
- printk(KERN_DEBUG "IER0=0x%08x\n", (u32) cpc_readl(scabase + IER0));
+ printk(KERN_DEBUG
+ "ILAR=0x%02x, WCRL=0x%02x, PCR=0x%02x, "
+ "BTCR=0x%02x, BOLR=0x%02x\n",
+ ilar, cpc_readb(scabase + WCRL),
+ cpc_readb(scabase + PCR),
+ cpc_readb(scabase + BTCR),
+ cpc_readb(scabase + BOLR));
+ printk(KERN_DEBUG
+ "TX_CDA=0x%08x, TX_EDA=0x%08x\n",
+ (u32) cpc_readl(scabase + DTX_REG(CDAL, ch)),
+ (u32) cpc_readl(scabase + DTX_REG(EDAL, ch)));
+ printk(KERN_DEBUG
+ "RX_CDA=0x%08x, RX_EDA=0x%08x, BFL=0x%04x\n",
+ (u32) cpc_readl(scabase + DRX_REG(CDAL, ch)),
+ (u32) cpc_readl(scabase + DRX_REG(EDAL, ch)),
+ cpc_readw(scabase + DRX_REG(BFLL, ch)));
+ printk(KERN_DEBUG
+ "DMER=0x%02x, DSR_TX=0x%02x, DSR_RX=0x%02x\n",
+ cpc_readb(scabase + DMER),
+ cpc_readb(scabase + DSR_TX(ch)),
+ cpc_readb(scabase + DSR_RX(ch)));
+ printk(KERN_DEBUG
+ "DMR_TX=0x%02x, DMR_RX=0x%02x, DIR_TX=0x%02x, DIR_RX=0x%02x\n",
+ cpc_readb(scabase + DMR_TX(ch)),
+ cpc_readb(scabase + DMR_RX(ch)),
+ cpc_readb(scabase + DIR_TX(ch)),
+ cpc_readb(scabase + DIR_RX(ch)));
+ printk(KERN_DEBUG
+ "DCR_TX=0x%02x, DCR_RX=0x%02x, FCT_TX=0x%02x, FCT_RX=0x%02x\n",
+ cpc_readb(scabase + DCR_TX(ch)),
+ cpc_readb(scabase + DCR_RX(ch)),
+ cpc_readb(scabase + FCT_TX(ch)),
+ cpc_readb(scabase + FCT_RX(ch)));
+ printk(KERN_DEBUG
+ "MD0=0x%02x, MD1=0x%02x, MD2=0x%02x, MD3=0x%02x, IDL=0x%02x\n",
+ cpc_readb(scabase + M_REG(MD0, ch)),
+ cpc_readb(scabase + M_REG(MD1, ch)),
+ cpc_readb(scabase + M_REG(MD2, ch)),
+ cpc_readb(scabase + M_REG(MD3, ch)),
+ cpc_readb(scabase + M_REG(IDL, ch)));
+ printk(KERN_DEBUG
+ "CMD=0x%02x, SA0=0x%02x, SA1=0x%02x, TFN=0x%02x, CTL=0x%02x\n",
+ cpc_readb(scabase + M_REG(CMD, ch)),
+ cpc_readb(scabase + M_REG(SA0, ch)),
+ cpc_readb(scabase + M_REG(SA1, ch)),
+ cpc_readb(scabase + M_REG(TFN, ch)),
+ cpc_readb(scabase + M_REG(CTL, ch)));
+ printk(KERN_DEBUG
+ "ST0=0x%02x, ST1=0x%02x, ST2=0x%02x, ST3=0x%02x, ST4=0x%02x\n",
+ cpc_readb(scabase + M_REG(ST0, ch)),
+ cpc_readb(scabase + M_REG(ST1, ch)),
+ cpc_readb(scabase + M_REG(ST2, ch)),
+ cpc_readb(scabase + M_REG(ST3, ch)),
+ cpc_readb(scabase + M_REG(ST4, ch)));
+ printk(KERN_DEBUG
+ "CST0=0x%02x, CST1=0x%02x, CST2=0x%02x, CST3=0x%02x, FST=0x%02x\n",
+ cpc_readb(scabase + M_REG(CST0, ch)),
+ cpc_readb(scabase + M_REG(CST1, ch)),
+ cpc_readb(scabase + M_REG(CST2, ch)),
+ cpc_readb(scabase + M_REG(CST3, ch)),
+ cpc_readb(scabase + M_REG(FST, ch)));
+ printk(KERN_DEBUG
+ "TRC0=0x%02x, TRC1=0x%02x, RRC=0x%02x, TBN=0x%02x, RBN=0x%02x\n",
+ cpc_readb(scabase + M_REG(TRC0, ch)),
+ cpc_readb(scabase + M_REG(TRC1, ch)),
+ cpc_readb(scabase + M_REG(RRC, ch)),
+ cpc_readb(scabase + M_REG(TBN, ch)),
+ cpc_readb(scabase + M_REG(RBN, ch)));
+ printk(KERN_DEBUG
+ "TFS=0x%02x, TNR0=0x%02x, TNR1=0x%02x, RNR=0x%02x\n",
+ cpc_readb(scabase + M_REG(TFS, ch)),
+ cpc_readb(scabase + M_REG(TNR0, ch)),
+ cpc_readb(scabase + M_REG(TNR1, ch)),
+ cpc_readb(scabase + M_REG(RNR, ch)));
+ printk(KERN_DEBUG
+ "TCR=0x%02x, RCR=0x%02x, TNR1=0x%02x, RNR=0x%02x\n",
+ cpc_readb(scabase + M_REG(TCR, ch)),
+ cpc_readb(scabase + M_REG(RCR, ch)),
+ cpc_readb(scabase + M_REG(TNR1, ch)),
+ cpc_readb(scabase + M_REG(RNR, ch)));
+ printk(KERN_DEBUG
+ "TXS=0x%02x, RXS=0x%02x, EXS=0x%02x, TMCT=0x%02x, TMCR=0x%02x\n",
+ cpc_readb(scabase + M_REG(TXS, ch)),
+ cpc_readb(scabase + M_REG(RXS, ch)),
+ cpc_readb(scabase + M_REG(EXS, ch)),
+ cpc_readb(scabase + M_REG(TMCT, ch)),
+ cpc_readb(scabase + M_REG(TMCR, ch)));
+ printk(KERN_DEBUG
+ "IE0=0x%02x, IE1=0x%02x, IE2=0x%02x, IE4=0x%02x, FIE=0x%02x\n",
+ cpc_readb(scabase + M_REG(IE0, ch)),
+ cpc_readb(scabase + M_REG(IE1, ch)),
+ cpc_readb(scabase + M_REG(IE2, ch)),
+ cpc_readb(scabase + M_REG(IE4, ch)),
+ cpc_readb(scabase + M_REG(FIE, ch)));
+ printk(KERN_DEBUG
+ "IER0=0x%08x\n",
+ (u32) cpc_readl(scabase + IER0));
switch (card->chan[ch].d.reason_stopped) {
case CPC_DMA_FULL:
reason = "CPC_DMA_FULL";
@@ -2692,31 +2797,45 @@ static void cpc_sca_status(pc300_t * card, int ch)
}
}
-static void cpc_falc_status(pc300_t * card, int ch)
+static void cpc_falc_status(pc300_t *card, int ch)
{
pc300ch_t *chan = &card->chan[ch];
falc_t *pfalc = (falc_t *) & chan->falc;
unsigned long flags;
CPC_LOCK(card, flags);
- printk("CH%d: %s %s %d channels\n",
- ch, (pfalc->sync ? "SYNC" : ""), (pfalc->active ? "ACTIVE" : ""),
- pfalc->num_channels);
-
- printk(" pden=%d, los=%d, losr=%d, lfa=%d, farec=%d\n",
- pfalc->pden, pfalc->los, pfalc->losr, pfalc->lfa, pfalc->farec);
- printk(" lmfa=%d, ais=%d, sec=%d, es=%d, rai=%d\n",
- pfalc->lmfa, pfalc->ais, pfalc->sec, pfalc->es, pfalc->rai);
- printk(" bec=%d, fec=%d, cvc=%d, cec=%d, ebc=%d\n",
- pfalc->bec, pfalc->fec, pfalc->cvc, pfalc->cec, pfalc->ebc);
-
- printk("\n");
- printk(" STATUS: %s %s %s %s %s %s\n",
- (pfalc->red_alarm ? "RED" : ""),
- (pfalc->blue_alarm ? "BLU" : ""),
- (pfalc->yellow_alarm ? "YEL" : ""),
- (pfalc->loss_fa ? "LFA" : ""),
- (pfalc->loss_mfa ? "LMF" : ""), (pfalc->prbs ? "PRB" : ""));
+ printk(KERN_DEBUG
+ "CH%d: %s %s %d channels\n",
+ ch,
+ (pfalc->sync ? "SYNC" : ""),
+ (pfalc->active ? "ACTIVE" : ""),
+ pfalc->num_channels);
+
+ printk(KERN_DEBUG
+ " pden=%d, los=%d, losr=%d, lfa=%d, farec=%d\n",
+ pfalc->pden, pfalc->los,
+ pfalc->losr, pfalc->lfa,
+ pfalc->farec);
+ printk(KERN_DEBUG
+ " lmfa=%d, ais=%d, sec=%d, es=%d, rai=%d\n",
+ pfalc->lmfa, pfalc->ais,
+ pfalc->sec, pfalc->es,
+ pfalc->rai);
+ printk(KERN_DEBUG
+ " bec=%d, fec=%d, cvc=%d, cec=%d, ebc=%d\n",
+ pfalc->bec, pfalc->fec,
+ pfalc->cvc, pfalc->cec,
+ pfalc->ebc);
+
+ printk(KERN_DEBUG "\n");
+ printk(KERN_DEBUG
+ " STATUS: %s %s %s %s %s %s\n",
+ (pfalc->red_alarm ? "RED" : ""),
+ (pfalc->blue_alarm ? "BLU" : ""),
+ (pfalc->yellow_alarm ? "YEL" : ""),
+ (pfalc->loss_fa ? "LFA" : ""),
+ (pfalc->loss_mfa ? "LMF" : ""),
+ (pfalc->prbs ? "PRB" : ""));
CPC_UNLOCK(card, flags);
}
@@ -2872,33 +2991,45 @@ static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
return 0;
case SIOCGPC300UTILSTATS:
- {
- if (!arg) { /* clear statistics */
- memset(&dev->stats, 0, sizeof(dev->stats));
- if (card->hw.type == PC300_TE) {
- memset(&chan->falc, 0, sizeof(falc_t));
- }
- } else {
- pc300stats_t pc300stats;
-
- memset(&pc300stats, 0, sizeof(pc300stats_t));
- pc300stats.hw_type = card->hw.type;
- pc300stats.line_on = card->chan[ch].d.line_on;
- pc300stats.line_off = card->chan[ch].d.line_off;
- /*
- * Do this instead of passing dev->stats
- * out so 32-bit userland on 64-bit
- * kernel works.
- */
- cpc_net_stats_to_user(&(dev->stats),
+ if (!arg) { /* clear statistics */
+ memset(&dev->stats, 0,
+ sizeof(dev->stats));
+ if (card->hw.type == PC300_TE) {
+ memset(&chan->falc, 0,
+ sizeof(falc_t));
+ }
+ } else {
+ pc300stats_t pc300stats;
+
+ memset(&pc300stats, 0,
+ sizeof(pc300stats_t));
+ pc300stats.hw_type = card->hw.type;
+ pc300stats.line_on = card->chan[ch].d.line_on;
+ pc300stats.line_off = card->chan[ch].d.line_off;
+ /*
+ * Do this instead of passing dev->stats
+ * out so 32-bit userland on 64-bit
+ * kernel works.
+ */
+ cpc_net_stats_to_user(
+ &(dev->stats),
&(pc300stats.net_stats));
- if (card->hw.type == PC300_TE)
- memcpy(&pc300stats.te_stats,&chan->falc,sizeof(falc_t));
- if (copy_to_user(arg, &pc300stats, sizeof(pc300stats_t)))
- return -EFAULT;
+ if (card->hw.type == PC300_TE) {
+ memcpy(&pc300stats.te_stats,
+ &chan->falc,
+ sizeof(falc_t));
+ }
+ if (
+ copy_to_user(
+ arg,
+ &pc300stats,
+ sizeof(pc300stats_t)
+ )
+ ) {
+ return -EFAULT;
}
- return 0;
}
+ return 0;
case SIOCGPC300UTILSTATUS:
{
@@ -2906,27 +3037,52 @@ static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
pc300status.hw_type = card->hw.type;
if (card->hw.type == PC300_TE) {
- pc300status.te_status.sync = chan->falc.sync;
- pc300status.te_status.red_alarm = chan->falc.red_alarm;
- pc300status.te_status.blue_alarm = chan->falc.blue_alarm;
- pc300status.te_status.loss_fa = chan->falc.loss_fa;
- pc300status.te_status.yellow_alarm =chan->falc.yellow_alarm;
- pc300status.te_status.loss_mfa = chan->falc.loss_mfa;
- pc300status.te_status.prbs = chan->falc.prbs;
+ pc300status.te_status.sync =
+ chan->falc.sync;
+ pc300status.te_status.red_alarm =
+ chan->falc.red_alarm;
+ pc300status.te_status.blue_alarm =
+ chan->falc.blue_alarm;
+ pc300status.te_status.loss_fa =
+ chan->falc.loss_fa;
+ pc300status.te_status.yellow_alarm =
+ chan->falc.yellow_alarm;
+ pc300status.te_status.loss_mfa =
+ chan->falc.loss_mfa;
+ pc300status.te_status.prbs =
+ chan->falc.prbs;
} else {
pc300status.gen_status.dcd =
- !(cpc_readb (scabase + M_REG(ST3, ch)) & ST3_DCD);
+ !(cpc_readb(
+ scabase +
+ M_REG(ST3, ch)) &
+ ST3_DCD);
pc300status.gen_status.cts =
- !(cpc_readb (scabase + M_REG(ST3, ch)) & ST3_CTS);
+ !(cpc_readb(
+ scabase +
+ M_REG(ST3, ch)) &
+ ST3_CTS);
pc300status.gen_status.rts =
- !(cpc_readb (scabase + M_REG(CTL, ch)) & CTL_RTS);
+ !(cpc_readb(
+ scabase +
+ M_REG(CTL, ch)) &
+ CTL_RTS);
pc300status.gen_status.dtr =
- !(cpc_readb (scabase + M_REG(CTL, ch)) & CTL_DTR);
+ !(cpc_readb(
+ scabase +
+ M_REG(CTL, ch)) &
+ CTL_DTR);
/* There is no DSR in HD64572 */
}
- if (!arg
- || copy_to_user(arg, &pc300status, sizeof(pc300status_t)))
- return -EINVAL;
+ if (!arg ||
+ copy_to_user(
+ arg,
+ &pc300status,
+ sizeof(pc300status_t)
+ )
+ ) {
+ return -EINVAL;
+ }
return 0;
}
@@ -2945,8 +3101,11 @@ static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
return -EINVAL;
if (!arg ||
- copy_from_user(&pc300loop, arg, sizeof(pc300loopback_t)))
+ copy_from_user(&pc300loop,
+ arg,
+ sizeof(pc300loopback_t))) {
return -EINVAL;
+ }
switch (pc300loop.loop_type) {
case PC300LOCLOOP: /* Turn the local loop on/off */
falc_local_loop(card, ch, pc300loop.loop_on);
@@ -2996,20 +3155,39 @@ static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
}
if (!arg ||
- copy_from_user(&pc300patrntst,arg,sizeof(pc300patterntst_t)))
+ copy_from_user(
+ &pc300patrntst,
+ arg,
+ sizeof(
+ pc300patrntst
+ )
+ )
+ ) {
return -EINVAL;
+ }
if (pc300patrntst.patrntst_on == 2) {
if (chan->falc.prbs == 0) {
falc_pattern_test(card, ch, 1);
}
pc300patrntst.num_errors =
falc_pattern_test_error(card, ch);
- if (!arg
- || copy_to_user(arg, &pc300patrntst,
- sizeof (pc300patterntst_t)))
- return -EINVAL;
+ if (!arg ||
+ copy_to_user(
+ arg,
+ &pc300patrntst,
+ sizeof(
+ pc300patrntst
+ )
+ )) {
+ return -EINVAL;
+ }
} else {
- falc_pattern_test(card, ch, pc300patrntst.patrntst_on);
+ falc_pattern_test(
+ card,
+ ch,
+ pc300patrntst.
+ patrntst_on
+ );
}
return 0;
}
@@ -3113,8 +3291,10 @@ static int clock_rate_calc(u32 rate, u32 clock, int *br_io)
int br, tc;
int br_pwr, error;
+ *br_io = 0;
+
if (rate == 0)
- return (0);
+ return 0;
for (br = 0, br_pwr = 1; br <= 9; br++, br_pwr <<= 1) {
if ((tc = clock / br_pwr / rate) <= 0xff) {
@@ -3127,15 +3307,15 @@ static int clock_rate_calc(u32 rate, u32 clock, int *br_io)
error = ((rate - (clock / br_pwr / rate)) / rate) * 1000;
/* Errors bigger than +/- 1% won't be tolerated */
if (error < -10 || error > 10)
- return (-1);
+ return -1;
else
- return (tc);
+ return tc;
} else {
- return (-1);
+ return -1;
}
}
-static int ch_config(pc300dev_t * d)
+static int ch_config(pc300dev_t *d)
{
pc300ch_t *chan = (pc300ch_t *) d->chan;
pc300chconf_t *conf = (pc300chconf_t *) & chan->conf;
@@ -3147,9 +3327,8 @@ static int ch_config(pc300dev_t * d)
u32 clktype = chan->conf.phys_settings.clock_type;
u16 encoding = chan->conf.proto_settings.encoding;
u16 parity = chan->conf.proto_settings.parity;
- int tmc, br;
u8 md0, md2;
-
+
/* Reset the channel */
cpc_writeb(scabase + M_REG(CMD, ch), CMD_CH_RST);
@@ -3220,8 +3399,12 @@ static int ch_config(pc300dev_t * d)
case PC300_RSV:
case PC300_X21:
if (clktype == CLOCK_INT || clktype == CLOCK_TXINT) {
+ int tmc, br;
+
/* Calculate the clkrate parameters */
tmc = clock_rate_calc(clkrate, card->hw.clock, &br);
+ if (tmc < 0)
+ return -EIO;
cpc_writeb(scabase + M_REG(TMCT, ch), tmc);
cpc_writeb(scabase + M_REG(TXS, ch),
(TXS_DTRXC | TXS_IBRG | br));
@@ -3285,7 +3468,7 @@ static int ch_config(pc300dev_t * d)
return 0;
}
-static int rx_config(pc300dev_t * d)
+static int rx_config(pc300dev_t *d)
{
pc300ch_t *chan = (pc300ch_t *) d->chan;
pc300_t *card = (pc300_t *) chan->card;
@@ -3316,7 +3499,7 @@ static int rx_config(pc300dev_t * d)
return 0;
}
-static int tx_config(pc300dev_t * d)
+static int tx_config(pc300dev_t *d)
{
pc300ch_t *chan = (pc300ch_t *) d->chan;
pc300_t *card = (pc300_t *) chan->card;
@@ -3348,9 +3531,11 @@ static int tx_config(pc300dev_t * d)
return 0;
}
-static int cpc_attach(struct net_device *dev, unsigned short encoding,
- unsigned short parity)
-{
+static int cpc_attach(
+ struct net_device *dev,
+ unsigned short encoding,
+ unsigned short parity
+ ) {
pc300dev_t *d = (pc300dev_t *)dev_to_hdlc(dev)->priv;
pc300ch_t *chan = (pc300ch_t *)d->chan;
pc300_t *card = (pc300_t *)chan->card;
@@ -3379,14 +3564,16 @@ static int cpc_attach(struct net_device *dev, unsigned short encoding,
return 0;
}
-static int cpc_opench(pc300dev_t * d)
+static int cpc_opench(pc300dev_t *d)
{
pc300ch_t *chan = (pc300ch_t *) d->chan;
pc300_t *card = (pc300_t *) chan->card;
int ch = chan->channel, rc;
uintptr_t scabase = (uintptr_t)(card->hw.scabase);
- ch_config(d);
+ rc = ch_config(d);
+ if (rc)
+ return rc;
rx_config(d);
@@ -3395,9 +3582,11 @@ static int cpc_opench(pc300dev_t * d)
/* Assert RTS and DTR */
cpc_writeb(scabase + M_REG(CTL, ch),
cpc_readb(scabase + M_REG(CTL, ch)) & ~(CTL_RTS | CTL_DTR));
+
+ return 0;
}
-static void cpc_closech(pc300dev_t * d)
+static void cpc_closech(pc300dev_t *d)
{
pc300ch_t *chan = (pc300ch_t *) d->chan;
pc300_t *card = (pc300_t *) chan->card;
@@ -3430,11 +3619,9 @@ int cpc_open(struct net_device *dev)
pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
struct ifreq ifr;
int result;
- pc300ch_t *chan = (pc300ch_t *) d->chan;
- pc300_t *card = (pc300_t *) chan->card;
#ifdef PC300_DEBUG_OTHER
- printk("pc300: cpc_open\n");
+ printk(KERN_DEBUG "pc300: cpc_open\n");
#endif
result = hdlc_open(dev);
@@ -3442,12 +3629,19 @@ int cpc_open(struct net_device *dev)
return result;
sprintf(ifr.ifr_name, "%s", dev->name);
- cpc_opench(d);
+ result = cpc_opench(d);
+ if (result)
+ goto err_out;
+
#ifdef PC300_DEBUG_QUEUE
printk(KERN_DEBUG "%s: starting queue for open\n", dev->name);
#endif
netif_start_queue(dev);
return 0;
+
+err_out:
+ hdlc_close(dev);
+ return result;
}
static int cpc_close(struct net_device *dev)
@@ -3497,10 +3691,10 @@ static u32 detect_ram(pc300_t *card)
break;
}
}
- return (i);
+ return i;
}
-static void plx_init(pc300_t * card)
+static void plx_init(pc300_t *card)
{
struct RUNTIME_9050 __iomem *plx_ctl =
(struct RUNTIME_9050 __iomem *) card->hw.plxbase;
@@ -3533,11 +3727,11 @@ static inline void show_version(void)
rcsdate++;
tmp = strrchr(rcsdate, ' ');
*tmp = '\0';
- printk(KERN_INFO "Cyclades-PC300 driver %s %s (built %s %s)\n",
+ printk(KERN_INFO "Cyclades-PC300 driver %s %s (built %s %s)\n",
rcsvers, rcsdate, __DATE__, __TIME__);
} /* show_version */
-static void cpc_init_card(pc300_t * card)
+static void cpc_init_card(pc300_t *card)
{
int i, devcount = 0;
static int board_nbr = 1;
@@ -3626,6 +3820,7 @@ static void cpc_init_card(pc300_t * card)
break;
}
chan->conf.proto = IF_PROTO_PPP;
+ chan->conf.monitor = 0;
chan->tx_first_bd = 0;
chan->tx_next_bd = 0;
chan->rx_first_bd = 0;
@@ -3659,23 +3854,25 @@ static void cpc_init_card(pc300_t * card)
d->reason_stopped = CHANNEL_CLOSED;
if (register_hdlc_device(dev) == 0) {
- printk("%s: Cyclades-PC300/", dev->name);
+ printk(KERN_INFO
+ "%s: Cyclades-PC300/",
+ dev->name);
switch (card->hw.type) {
case PC300_TE:
if (card->hw.bus == PC300_PMC) {
- printk("TE-M");
+ printk(KERN_INFO "TE-M");
} else {
- printk("TE ");
+ printk(KERN_INFO "TE ");
}
break;
case PC300_X21:
- printk("X21 ");
+ printk(KERN_INFO "X21 ");
break;
case PC300_RSV:
default:
- printk("RSV ");
+ printk(KERN_INFO "RSV ");
break;
}
#ifdef CONFIG_PHYS_ADDR_T_64BIT
@@ -3772,8 +3969,12 @@ cpc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
break;
}
#ifdef PC300_DEBUG_PCI
- printk("cpc (bus=0x0%x,pci_id=0x%x,", pdev->bus->number, pdev->devfn);
- printk("rev_id=%d) IRQ%d\n", pdev->revision, card->hw.irq);
+ printk(KERN_DEBUG
+ "cpc (bus=0x0%x,pci_id=0x%x,",
+ pdev->bus->number, pdev->devfn);
+ printk(KERN_DEBUG
+ "rev_id=%d) IRQ%d\n",
+ pdev->revision, card->hw.irq);
#ifdef CONFIG_PHYS_ADDR_T_64BIT
printk(KERN_INFO
"cpc:found ramaddr=0x%016lx plxaddr=0x%016lx "
@@ -3798,11 +3999,15 @@ cpc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
if (!request_region(card->hw.iophys, card->hw.iosize, "PLX Registers")) {
/* In case we can't allocate it, warn user */
#ifdef CONFIG_PHYS_ADDR_T_64BIT
- printk("WARNING: couldn't allocate I/O region for PC300 board "
- "at 0x%016lx!\n", (unsigned long)(card->hw.ramphys));
+ printk(KERN_ERR
+ "WARNING: couldn't allocate I/O region for PC300 board "
+ "at 0x%016lx!\n",
+ (unsigned long)(card->hw.ramphys));
#else /* !CONFIG_PHYS_ADDR_T_64BIT */
- printk("WARNING: couldn't allocate I/O region for PC300 board "
- "at 0x%08x!\n", (unsigned int)(card->hw.ramphys));
+ printk(KERN_ERR
+ "WARNING: couldn't allocate I/O region for PC300 board "
+ "at 0x%08x!\n",
+ (unsigned int)(card->hw.ramphys));
#endif
}
@@ -3833,13 +4038,15 @@ cpc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
if (!request_mem_region(card->hw.ramphys, card->hw.alloc_ramsize,
"On-board RAM")) {
#ifdef CONFIG_PHYS_ADDR_T_64BIT
- printk("PC300 found at RAM 0x%016lx, "
- "but could not allocate SCA mem region.\n",
- (unsigned long)(card->hw.ramphys));
+ printk(KERN_ERR
+ "PC300 found at RAM 0x%016lx, "
+ "but could not allocate SCA mem region.\n",
+ (unsigned long)(card->hw.ramphys));
#else /* !CONFIG_PHYS_ADDR_T_64BIT */
- printk("PC300 found at RAM 0x%08x, "
- "but could not allocate RAM mem region.\n",
- (unsigned int)(card->hw.ramphys));
+ printk(KERN_ERR
+ "PC300 found at RAM 0x%08x, "
+ "but could not allocate RAM mem region.\n",
+ (unsigned int)(card->hw.ramphys));
#endif /* CONFIG_PHYS_ADDR_T_64BIT */
err = -ENODEV;
goto err_release_plx;
@@ -3861,7 +4068,8 @@ cpc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_release_ram;
}
- if ((err = pci_enable_device(pdev)) != 0)
+ err = pci_enable_device(pdev);
+ if (err != 0)
goto err_release_sca;
card->hw.plxbase =
@@ -3951,26 +4159,36 @@ cpc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
}
/* Allocate IRQ */
- if (request_irq(card->hw.irq, cpc_intr, IRQF_SHARED,
- "Cyclades-PC300", card)) {
+ if (
+ request_irq(
+ card->hw.irq,
+ cpc_intr,
+ IRQF_SHARED,
+ "Cyclades-PC300",
+ card)
+ ) {
#ifdef CONFIG_PHYS_ADDR_T_64BIT
- printk(KERN_ERR "PC300 found at RAM 0x%016lx, but could not allocate "
+ printk(KERN_ERR
+ "PC300 found at RAM 0x%016lx, but could not allocate "
"IRQ%d.\n", (unsigned long)(card->hw.ramphys),
card->hw.irq);
#else /* !CONFIG_PHYS_ADDR_T_64BIT */
- printk(KERN_ERR "PC300 found at RAM 0x%08x, but could not allocate "
+ printk(KERN_ERR
+ "PC300 found at RAM 0x%08x, but could not allocate "
"IRQ%d.\n", (unsigned int)(card->hw.ramphys),
card->hw.irq);
#endif /* CONFIG_PHYS_ADDR_T_64BIT */
- printk ("PC300 found at RAM 0x%08lx, but could not allocate IRQ%d.\n",
- card->hw.ramphys, card->hw.irq);
+ printk(KERN_ERR
+ "PC300 found at RAM 0x%08lx, but could not allocate IRQ%d.\n",
+ card->hw.ramphys, card->hw.irq);
goto err_io_unmap;
}
cpc_init_card(card);
if (eeprom_outdated)
- printk("WARNING: PC300 with outdated EEPROM.\n");
+ printk(KERN_WARNING "WARNING: PC300 with outdated EEPROM.\n");
+
return 0;
err_io_unmap:
diff --git a/drivers/net/wan/pc300_tty.c b/drivers/net/wan/pc300_tty.c
index aa1ddde..56a7161 100644
--- a/drivers/net/wan/pc300_tty.c
+++ b/drivers/net/wan/pc300_tty.c
@@ -80,7 +80,7 @@
spin_unlock_irqrestore(&card->card_lock, flags); \
} while (0)
-//#define CPC_TTY_DBG(format,a...) printk(format,##a)
+/* #define CPC_TTY_DBG(format,a...) printk(KERN_DEBUG format,##a) */
#define CPC_TTY_DBG(format,a...)
/* data structures */
@@ -114,14 +114,16 @@ static struct tty_driver serial_drv;
/* local variables */
static st_cpc_tty_area cpc_tty_area[CPC_TTY_NPORTS];
-static int cpc_tty_cnt = 0; /* number of intrfaces configured with MLPPP */
-static int cpc_tty_unreg_flag = 0;
+static int cpc_tty_cnt; /* number of intrfaces configured with MLPPP */
+static int cpc_tty_unreg_flag;
/* TTY functions prototype */
static int cpc_tty_open(struct tty_struct *tty, struct file *flip);
static void cpc_tty_close(struct tty_struct *tty, struct file *flip);
-static int cpc_tty_write(struct tty_struct *tty, const unsigned char *buf,
- int count);
+static int cpc_tty_write(
+ struct tty_struct *tty,
+ const unsigned char *buf,
+ int count);
static int cpc_tty_write_room(struct tty_struct *tty);
static int cpc_tty_chars_in_buffer(struct tty_struct *tty);
static void cpc_tty_flush_buffer(struct tty_struct *tty);
@@ -153,11 +155,17 @@ static void cpc_tty_signal_off(pc300dev_t *pc300dev, unsigned char signal)
int ch = pc300chan->channel;
unsigned long flags;
- CPC_TTY_DBG("%s-tty: Clear signal %x\n",pc300dev->netdev->name, signal);
- CPC_TTY_LOCK(card, flags);
- cpc_writeb(card->hw.scabase + M_REG(CTL,ch),
- cpc_readb(card->hw.scabase+M_REG(CTL,ch))& signal);
- CPC_TTY_UNLOCK(card,flags);
+ CPC_TTY_DBG("%s-tty: Clear signal %x\n",
+ pc300dev->netdev->name,
+ signal);
+ CPC_TTY_LOCK(card, flags);
+ cpc_writeb(
+ card->hw.scabase + M_REG(CTL, ch),
+ cpc_readb(
+ card->hw.scabase +
+ M_REG(CTL, ch)) &
+ signal);
+ CPC_TTY_UNLOCK(card, flags);
}
/*
@@ -170,7 +178,9 @@ static void cpc_tty_signal_on(pc300dev_t *pc300dev, unsigned char signal)
int ch = pc300chan->channel;
unsigned long flags;
- CPC_TTY_DBG("%s-tty: Set signal %x\n",pc300dev->netdev->name, signal);
+ CPC_TTY_DBG("%s-tty: Set signal %x\n",
+ pc300dev->netdev->name,
+ signal);
CPC_TTY_LOCK(card, flags);
cpc_writeb(card->hw.scabase + M_REG(CTL,ch),
cpc_readb(card->hw.scabase+M_REG(CTL,ch))& ~signal);
@@ -205,14 +215,16 @@ void cpc_tty_init(pc300dev_t *pc300dev)
{
int aux;
long port;
- st_cpc_tty_area * cpc_tty;
+ st_cpc_tty_area *cpc_tty;
/* hdlcX - X=interface number */
port = pc300dev->netdev->name[4] - '0';
if (port >= CPC_TTY_NPORTS) {
- printk("%s-tty: invalid interface selected (0-%i): %i",
- pc300dev->netdev->name,
- CPC_TTY_NPORTS-1,port);
+ printk(KERN_ERR
+ "%s-tty: invalid interface selected (0-%i): %li",
+ pc300dev->netdev->name,
+ CPC_TTY_NPORTS - 1,
+ port);
return;
}
@@ -241,10 +253,12 @@ void cpc_tty_init(pc300dev_t *pc300dev)
tty_set_operations(&serial_drv, &pc300_ops);
/* register the TTY driver */
- if (tty_register_driver(&serial_drv)) {
- printk("%s-tty: Failed to register serial driver! ",pc300dev->netdev->name);
+ if (tty_register_driver(&serial_drv)) {
+ printk(KERN_ERR
+ "%s-tty: Failed to register serial driver! ",
+ pc300dev->netdev->name);
return;
- }
+ }
memset((void *)cpc_tty_area, 0,
sizeof(st_cpc_tty_area) * CPC_TTY_NPORTS);
@@ -253,7 +267,10 @@ void cpc_tty_init(pc300dev_t *pc300dev)
cpc_tty = &cpc_tty_area[port];
if (cpc_tty->state != CPC_TTY_ST_IDLE) {
- CPC_TTY_DBG("%s-tty: TTY port %i, already in use.\n",pc300dev->netdev->name,port);
+ CPC_TTY_DBG(
+ "%s-tty: TTY port %i, already in use.\n",
+ pc300dev->netdev->name,
+ port);
return;
}
@@ -314,9 +331,9 @@ static int cpc_tty_open(struct tty_struct *tty, struct file *flip)
}
if (cpc_tty->num_open == 0) { /* first open of this tty */
- if (!cpc_tty_area[port].buf_tx){
+ if (cpc_tty_area[port].buf_tx == 0) {
cpc_tty_area[port].buf_tx = kmalloc(CPC_TTY_MAX_MTU,GFP_KERNEL);
- if (cpc_tty_area[port].buf_tx == 0){
+ if (cpc_tty_area[port].buf_tx == 0) {
CPC_TTY_DBG("%s: error in memory allocation\n",cpc_tty->name);
return -ENOMEM;
}
@@ -358,12 +375,12 @@ static int cpc_tty_open(struct tty_struct *tty, struct file *flip)
static void cpc_tty_close(struct tty_struct *tty, struct file *flip)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
unsigned long flags;
int res;
if (!tty || !tty->driver_data ) {
- CPC_TTY_DBG("hdlx-tty: no TTY in close \n");
+ CPC_TTY_DBG("hdlx-tty: no TTY in close\n");
return;
}
@@ -402,12 +419,10 @@ static void cpc_tty_close(struct tty_struct *tty, struct file *flip)
cpc_tty->buf_rx.last = NULL;
}
- if (cpc_tty->buf_tx) {
- kfree(cpc_tty->buf_tx);
- cpc_tty->buf_tx = NULL;
- }
+ kfree(cpc_tty->buf_tx);
+ cpc_tty->buf_tx = NULL;
- CPC_TTY_DBG("%s: TTY closed\n",cpc_tty->name);
+ CPC_TTY_DBG("%s: TTY closed\n", cpc_tty->name);
if (!cpc_tty_cnt && cpc_tty_unreg_flag) {
cpc_tty_unreg_flag = 0;
@@ -431,7 +446,7 @@ static void cpc_tty_close(struct tty_struct *tty, struct file *flip)
static int cpc_tty_write(struct tty_struct *tty,
const unsigned char *buf, int count)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
pc300ch_t *pc300chan;
pc300_t *card;
int ch;
@@ -456,8 +471,11 @@ static int cpc_tty_write(struct tty_struct *tty,
return -EINVAL; /* frame too big */
}
- CPC_TTY_DBG("%s: cpc_tty_write %s data len=%i\n",cpc_tty->name,
- (from_user)?"from user" : "from kernel",count);
+ CPC_TTY_DBG(
+ "%s: cpc_tty_write %s data len=%i\n",
+ cpc_tty->name,
+ (from_user) ? "from user" : "from kernel",
+ count);
pc300chan = (pc300ch_t *)((pc300dev_t*)cpc_tty->pc300dev)->chan;
stats = &(cpc_tty->pc300dev->netdev->stats);
@@ -484,28 +502,35 @@ static int cpc_tty_write(struct tty_struct *tty,
return -EINVAL;
}
- if (from_user) {
- unsigned char *buf_tmp;
+ if (from_user) {
+ unsigned char *buf_tmp;
buf_tmp = cpc_tty->buf_tx;
- if (copy_from_user(buf_tmp, buf, count)) {
+ if (copy_from_user(buf_tmp, buf, count)) {
/* failed to copy from user */
- CPC_TTY_DBG("%s: error in copy from user\n",cpc_tty->name);
- return -EINVAL;
+ CPC_TTY_DBG("%s: error in copy from user\n",
+ cpc_tty->name);
+ return -EINVAL;
}
- if (cpc_tty_send_to_card(cpc_tty->pc300dev, (void*) buf_tmp,count)) {
- /* failed to send */
- CPC_TTY_DBG("%s: transmission error\n",cpc_tty->name);
- return 0;
+ if (cpc_tty_send_to_card(cpc_tty->pc300dev,
+ (void *)buf_tmp, count)) {
+ /* failed to send */
+ CPC_TTY_DBG("%s: transmission error\n", cpc_tty->name);
+ return 0;
}
} else {
- if (cpc_tty_send_to_card(cpc_tty->pc300dev, (void*)buf, count)) {
- /* failed to send */
- CPC_TTY_DBG("%s: trasmition error\n", cpc_tty->name);
- return 0;
+ if (
+ cpc_tty_send_to_card(cpc_tty->pc300dev,
+ (void *)buf,
+ count)
+ ) {
+ /* failed to send */
+ CPC_TTY_DBG("%s: transmission error\n", cpc_tty->name);
+ return 0;
}
}
+
return count;
}
@@ -518,7 +543,7 @@ static int cpc_tty_write(struct tty_struct *tty,
*/
static int cpc_tty_write_room(struct tty_struct *tty)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
if (!tty || !tty->driver_data ) {
CPC_TTY_DBG("hdlcX-tty: no TTY to write room\n");
@@ -545,7 +570,7 @@ static int cpc_tty_write_room(struct tty_struct *tty)
*/
static int cpc_tty_chars_in_buffer(struct tty_struct *tty)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
if (!tty || !tty->driver_data ) {
CPC_TTY_DBG("hdlcX-tty: no TTY to chars in buffer\n");
@@ -559,15 +584,17 @@ static int cpc_tty_chars_in_buffer(struct tty_struct *tty)
return -ENODEV;
}
- return(0);
+ return 0;
}
-static int pc300_tiocmset(struct tty_struct *tty,
- unsigned int set, unsigned int clear)
+static int pc300_tiocmset(
+ struct tty_struct *tty,
+ unsigned int set,
+ unsigned int clear)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
- CPC_TTY_DBG("%s: set:%x clear:%x\n", __FUNCTION__, set, clear);
+ CPC_TTY_DBG("%s: set:%x clear:%x\n", __func__, set, clear);
if (!tty || !tty->driver_data ) {
CPC_TTY_DBG("hdlcX-tty: no TTY to chars in buffer\n");
@@ -602,7 +629,9 @@ static int pc300_tiocmget(struct tty_struct *tty)
cpc_tty = (st_cpc_tty_area *) tty->driver_data;
- CPC_TTY_DBG("%s-tty: tiocmget\n",pc300dev->netdev->name);
+ CPC_TTY_DBG(
+ "%s-tty: tiocmget\n",
+ pc300dev->netdev->name);
CPC_TTY_LOCK(card, flags);
status = cpc_readb(card->hw.scabase+M_REG(CTL,ch));
@@ -621,7 +650,7 @@ static int pc300_tiocmget(struct tty_struct *tty)
*/
static void cpc_tty_flush_buffer(struct tty_struct *tty)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
if (!tty || !tty->driver_data ) {
CPC_TTY_DBG("hdlcX-tty: no TTY to flush buffer\n");
@@ -636,17 +665,19 @@ static void cpc_tty_flush_buffer(struct tty_struct *tty)
}
CPC_TTY_DBG("%s: call wake_up_interruptible\n",cpc_tty->name);
-
- wake_up_interruptible(&tty->write_wait);
- if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && tty->ldisc &&
- tty->ldisc->ops && tty->ldisc->ops->write_wakeup){
- CPC_TTY_DBG("%s: call line disc. wake up\n", cpc_tty->name);
+ wake_up_interruptible(&tty->write_wait);
+
+ if (
+ (tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
+ tty->ldisc &&
+ tty->ldisc->ops && tty->ldisc->ops->write_wakeup
+ ) {
+ CPC_TTY_DBG("%s: call line disc. wake up\n",
+ cpc_tty->name);
tty->ldisc->ops->write_wakeup(tty);
}
-
- return;
-}
+}
/*
* PC300 TTY Hangup routine
@@ -657,7 +688,7 @@ static void cpc_tty_flush_buffer(struct tty_struct *tty)
static void cpc_tty_hangup(struct tty_struct *tty)
{
- st_cpc_tty_area *cpc_tty;
+ st_cpc_tty_area *cpc_tty;
int res;
if (!tty || !tty->driver_data ) {
@@ -693,18 +724,18 @@ static void cpc_tty_rx_work(struct work_struct *work)
{
int i, j;
unsigned long port;
- st_cpc_tty_area *cpc_tty;
- st_cpc_rx_buf * buf;
- char flags=0,flg_rx=1;
+ st_cpc_tty_area *cpc_tty;
+ st_cpc_rx_buf *buf;
+ char flags = 0, flg_rx = 1;
if (cpc_tty_cnt == 0) return;
- for (i=0; (i < 4) && flg_rx ; i++) {
+ for (i = 0; (i < 4) && flg_rx; i++) {
flg_rx = 0;
cpc_tty = container_of(work, st_cpc_tty_area, tty_rx_work);
port = cpc_tty - cpc_tty_area;
- for (j=0; j < CPC_TTY_NPORTS; j++) {
+ for (j = 0; j < CPC_TTY_NPORTS; j++) {
cpc_tty = &cpc_tty_area[port];
buf = cpc_tty->buf_rx.first;
if (buf != NULL) {
@@ -741,9 +772,9 @@ static void cpc_tty_rx_work(struct work_struct *work)
static void cpc_tty_rx_disc_frame(pc300ch_t *pc300chan)
{
pcsca_bd_t *ptdescr;
- volatile unsigned char status;
- pc300_t *card = (pc300_t *)pc300chan->card;
- int ch = pc300chan->channel;
+ unsigned char status;
+ pc300_t *card = (pc300_t *)pc300chan->card;
+ int ch = pc300chan->channel;
/* dma buf read */
ptdescr = (pcsca_bd_t __iomem *)(card->hw.rambase +
@@ -764,14 +795,14 @@ static void cpc_tty_rx_disc_frame(pc300ch_t *pc300chan)
void cpc_tty_receive(pc300dev_t *pc300dev)
{
- st_cpc_tty_area *cpc_tty;
- pc300ch_t *pc300chan = (pc300ch_t *)pc300dev->chan;
- pc300_t *card = (pc300_t *)pc300chan->card;
- int ch = pc300chan->channel;
- pcsca_bd_t __iomem *ptdescr;
+ st_cpc_tty_area *cpc_tty;
+ pc300ch_t *pc300chan = (pc300ch_t *)pc300dev->chan;
+ pc300_t *card = (pc300_t *)pc300chan->card;
+ int ch = pc300chan->channel;
+ pcsca_bd_t __iomem *ptdescr;
struct net_device_stats *stats = &pc300dev->netdev->stats;
- int rx_len, rx_aux;
- volatile unsigned char status;
+ int rx_len, rx_aux;
+ unsigned char status;
unsigned short first_bd = pc300chan->rx_first_bd;
st_cpc_rx_buf *new;
unsigned char dsr_rx;
@@ -786,7 +817,7 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
while (1) {
rx_len = 0;
- ptdescr = (pcsca_bd_t __iomem *)(card->hw.rambase +
+ ptdescr = (pcsca_bd_t __iomem *)(card->hw.rambase +
RX_BD_ADDR(ch, first_bd));
while ((status = cpc_readb(&ptdescr->status)) & DST_OSB) {
rx_len += cpc_readw(&ptdescr->len);
@@ -816,7 +847,7 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
continue;
}
- new = (st_cpc_rx_buf *) kmalloc(rx_len + sizeof(st_cpc_rx_buf), GFP_ATOMIC);
+ new = kmalloc(rx_len + sizeof(st_cpc_rx_buf), GFP_ATOMIC);
if (new == 0) {
cpc_tty_rx_disc_frame(pc300chan);
continue;
@@ -873,7 +904,8 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
cpc_writeb(&ptdescr->len, 0);
pc300chan->rx_first_bd = (pc300chan->rx_first_bd + 1) &
(N_DMA_RX_BUF -1);
- if (status & DST_EOM)break;
+ if (status & DST_EOM)
+ break;
ptdescr = (pcsca_bd_t __iomem *) (card->hw.rambase +
cpc_readl(&ptdescr->next));
@@ -918,22 +950,29 @@ static void cpc_tty_tx_work(struct work_struct *work)
{
st_cpc_tty_area *cpc_tty =
container_of(work, st_cpc_tty_area, tty_tx_work);
- struct tty_struct *tty;
+ struct tty_struct *tty;
CPC_TTY_DBG("%s: cpc_tty_tx_work init\n",cpc_tty->name);
- if ((tty = cpc_tty->tty) == 0) {
- CPC_TTY_DBG("%s: the interface is not opened\n",cpc_tty->name);
+ tty = cpc_tty->tty;
+ if (tty == 0) {
+ CPC_TTY_DBG("%s: the interface is not opened\n",
+ cpc_tty->name);
return;
}
- if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && tty->ldisc &&
- tty->ldisc->ops && tty->ldisc->ops->write_wakeup) {
- CPC_TTY_DBG("%s:call line disc. wakeup\n", cpc_tty->name);
+ if (
+ (tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
+ tty->ldisc &&
+ tty->ldisc->ops &&
+ tty->ldisc->ops->write_wakeup
+ ) {
+ CPC_TTY_DBG("%s:call line disc. wakeup\n",
+ cpc_tty->name);
tty->ldisc->ops->write_wakeup(tty);
}
- wake_up_interruptible(&tty->write_wait);
+ wake_up_interruptible(&tty->write_wait);
}
/*
@@ -944,7 +983,7 @@ static void cpc_tty_tx_work(struct work_struct *work)
* o write data to DMA buffers
* o start the transmission
*/
-static int cpc_tty_send_to_card(pc300dev_t *dev,void* buf, int len)
+static int cpc_tty_send_to_card(pc300dev_t *dev, void *buf, int len)
{
pc300ch_t *chan = (pc300ch_t *)dev->chan;
pc300_t *card = (pc300_t *)chan->card;
@@ -957,8 +996,10 @@ static int cpc_tty_send_to_card(pc300dev_t *dev,void* buf, int len)
int nbuf = ((len - 1)/BD_DEF_LEN) + 1;
unsigned char *pdata=buf;
- CPC_TTY_DBG("%s:cpc_tty_send_to_cars len=%i",
- (st_cpc_tty_area *)dev->cpc_tty->name,len);
+ CPC_TTY_DBG(
+ "%s:cpc_tty_send_to_card len=%i",
+ (st_cpc_tty_area *)dev->cpc_tty->name,
+ len);
if (nbuf >= card->chan[ch].nfree_tx_bd) {
return 1;
@@ -988,7 +1029,7 @@ static int cpc_tty_send_to_card(pc300dev_t *dev,void* buf, int len)
CPC_TTY_DBG("%s: error in dma_buf_write\n",
(st_cpc_tty_area *)dev->cpc_tty->name);
stats->tx_dropped++;
- return 1;
+ return 1;
}
tosend -= nchar;
card->chan[ch].tx_next_bd =
@@ -1015,7 +1056,7 @@ static int cpc_tty_send_to_card(pc300dev_t *dev,void* buf, int len)
(CPLD_REG2_FALC_LED1 << (2 * ch)));
}
CPC_TTY_UNLOCK(card, flags);
- return 0;
+ return 0;
}
/*
@@ -1033,26 +1074,28 @@ static void cpc_tty_trace(pc300dev_t *dev, char* buf, int len, char rxtx)
if ((skb = dev_alloc_skb(10 + len)) == NULL) {
/* out of memory */
- CPC_TTY_DBG("%s: tty_trace - out of memory\n",dev->netdev->name);
+ CPC_TTY_DBG(
+ "%s: tty_trace - out of memory\n",
+ dev->netdev->name);
return;
}
skb_put (skb, 10 + len);
skb->dev = dev->netdev;
- skb->protocol = htons(ETH_P_CUST);
+ skb->protocol = htons(ETH_P_CUST);
skb_reset_mac_header(skb);
- skb->pkt_type = PACKET_HOST;
- skb->len = 10 + len;
+ skb->pkt_type = PACKET_HOST;
+ skb->len = 10 + len;
skb_copy_to_linear_data(skb, dev->netdev->name, 5);
- skb->data[5] = '[';
- skb->data[6] = rxtx;
- skb->data[7] = ']';
- skb->data[8] = ':';
- skb->data[9] = ' ';
+ skb->data[5] = '[';
+ skb->data[6] = rxtx;
+ skb->data[7] = ']';
+ skb->data[8] = ':';
+ skb->data[9] = ' ';
skb_copy_to_linear_data_offset(skb, 10, buf, len);
- netif_rx(skb);
-}
+ netif_rx(skb);
+}
/*
* PC300 TTY unregister service routine
@@ -1065,19 +1108,28 @@ void cpc_tty_unregister_service(pc300dev_t *pc300dev)
ulong flags;
int res;
- if ((cpc_tty= (st_cpc_tty_area *) pc300dev->cpc_tty) == 0) {
- CPC_TTY_DBG("%s: interface is not TTY\n",pc300dev->netdev->name);
+ cpc_tty = (st_cpc_tty_area *) pc300dev->cpc_tty;
+ if (cpc_tty == 0) {
+ CPC_TTY_DBG(
+ "%s: interface is not TTY\n",
+ pc300dev->netdev->name);
return;
}
- CPC_TTY_DBG("%s: cpc_tty_unregister_service", cpc_tty->name);
+ CPC_TTY_DBG(
+ "%s: cpc_tty_unregister_service",
+ cpc_tty->name);
if (cpc_tty->pc300dev != pc300dev) {
- CPC_TTY_DBG("%s: invalid tty ptr=%s\n",pc300dev->netdev->name, cpc_tty->name);
+ CPC_TTY_DBG(
+ "%s: invalid tty ptr=%s\n",
+ pc300dev->netdev->name,
+ cpc_tty->name);
return;
}
if (--cpc_tty_cnt == 0) {
- CPC_TTY_DBG("%s: unregister the tty driver\n", cpc_tty->name);
+ CPC_TTY_DBG("%s: unregister the tty driver\n",
+ cpc_tty->name);
res = tty_unregister_driver(&serial_drv);
if (res) {
CPC_TTY_DBG(
@@ -1086,10 +1138,10 @@ void cpc_tty_unregister_service(pc300dev_t *pc300dev)
}
}
CPC_TTY_LOCK(pc300dev->chan->card,flags);
- cpc_tty->tty = NULL;
+ cpc_tty->tty = NULL;
CPC_TTY_UNLOCK(pc300dev->chan->card, flags);
- cpc_tty->tty_minor = 0;
- cpc_tty->state = CPC_TTY_ST_IDLE;
+ cpc_tty->tty_minor = 0;
+ cpc_tty->state = CPC_TTY_ST_IDLE;
}
/*
@@ -1118,6 +1170,7 @@ void cpc_tty_reset_var(void)
/* reset the tty_driver structure - serial_drv */
memset(&serial_drv, 0, sizeof(struct tty_driver));
for (i=0; i < CPC_TTY_NPORTS; i++){
- memset(&cpc_tty_area[i],0, sizeof(st_cpc_tty_area));
+ memset(&cpc_tty_area[i], 0,
+ sizeof(st_cpc_tty_area));
}
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists