diff options
Diffstat (limited to 'drivers/net/wan/pc300_drv.c')
| -rw-r--r-- | drivers/net/wan/pc300_drv.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/net/wan/pc300_drv.c b/drivers/net/wan/pc300_drv.c index 79dabc557bd3..aec4d3955420 100644 --- a/drivers/net/wan/pc300_drv.c +++ b/drivers/net/wan/pc300_drv.c | |||
| @@ -514,8 +514,8 @@ static int dma_buf_read(pc300_t * card, int ch, struct sk_buff *skb) | |||
| 514 | RX_BD_ADDR(ch, chan->rx_first_bd)); | 514 | RX_BD_ADDR(ch, chan->rx_first_bd)); |
| 515 | while ((status = cpc_readb(&ptdescr->status)) & DST_OSB) { | 515 | while ((status = cpc_readb(&ptdescr->status)) & DST_OSB) { |
| 516 | nchar = cpc_readw(&ptdescr->len); | 516 | nchar = cpc_readw(&ptdescr->len); |
| 517 | if ((status & (DST_OVR | DST_CRC | DST_RBIT | DST_SHRT | DST_ABT)) | 517 | if ((status & (DST_OVR | DST_CRC | DST_RBIT | DST_SHRT | DST_ABT)) || |
| 518 | || (nchar > BD_DEF_LEN)) { | 518 | (nchar > BD_DEF_LEN)) { |
| 519 | 519 | ||
| 520 | if (nchar > BD_DEF_LEN) | 520 | if (nchar > BD_DEF_LEN) |
| 521 | status |= DST_RBIT; | 521 | status |= DST_RBIT; |
| @@ -1428,8 +1428,7 @@ static void falc_update_stats(pc300_t * card, int ch) | |||
| 1428 | 1428 | ||
| 1429 | if (((conf->media == IF_IFACE_T1) && | 1429 | if (((conf->media == IF_IFACE_T1) && |
| 1430 | (cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_LLBAD) && | 1430 | (cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_LLBAD) && |
| 1431 | (!(cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_PDEN))) | 1431 | (!(cpc_readb(falcbase + F_REG(FRS1, ch)) & FRS1_PDEN))) || |
| 1432 | || | ||
| 1433 | ((conf->media == IF_IFACE_E1) && | 1432 | ((conf->media == IF_IFACE_E1) && |
| 1434 | (cpc_readb(falcbase + F_REG(RSP, ch)) & RSP_LLBAD))) { | 1433 | (cpc_readb(falcbase + F_REG(RSP, ch)) & RSP_LLBAD))) { |
| 1435 | pfalc->prbs = 2; | 1434 | pfalc->prbs = 2; |
| @@ -2285,8 +2284,8 @@ static void falc_e1_intr(pc300_t * card, int ch) | |||
| 2285 | if (gis & GIS_ISR1) { | 2284 | if (gis & GIS_ISR1) { |
| 2286 | isr1 = cpc_readb(falcbase + F_REG(FISR1, ch)); | 2285 | isr1 = cpc_readb(falcbase + F_REG(FISR1, ch)); |
| 2287 | if (isr1 & FISR1_XMB) { | 2286 | if (isr1 & FISR1_XMB) { |
| 2288 | if ((pfalc->xmb_cause & 2) | 2287 | if ((pfalc->xmb_cause & 2) && |
| 2289 | && pfalc->multiframe_mode) { | 2288 | pfalc->multiframe_mode) { |
| 2290 | if (cpc_readb (falcbase + F_REG(FRS0, ch)) & | 2289 | if (cpc_readb (falcbase + F_REG(FRS0, ch)) & |
| 2291 | (FRS0_LOS | FRS0_AIS | FRS0_LFA)) { | 2290 | (FRS0_LOS | FRS0_AIS | FRS0_LFA)) { |
| 2292 | cpc_writeb(falcbase + F_REG(XSP, ch), | 2291 | cpc_writeb(falcbase + F_REG(XSP, ch), |
| @@ -2639,9 +2638,9 @@ static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | |||
| 2639 | !(cpc_readb (scabase + M_REG(CTL, ch)) & CTL_DTR); | 2638 | !(cpc_readb (scabase + M_REG(CTL, ch)) & CTL_DTR); |
| 2640 | /* There is no DSR in HD64572 */ | 2639 | /* There is no DSR in HD64572 */ |
| 2641 | } | 2640 | } |
| 2642 | if (!arg | 2641 | if (!arg || |
| 2643 | || copy_to_user(arg, &pc300status, sizeof(pc300status_t))) | 2642 | copy_to_user(arg, &pc300status, sizeof(pc300status_t))) |
| 2644 | return -EINVAL; | 2643 | return -EINVAL; |
| 2645 | return 0; | 2644 | return 0; |
| 2646 | } | 2645 | } |
| 2647 | 2646 | ||
