From c8970259816cfc47ccf3fd897d3d1ed18b89e25a Mon Sep 17 00:00:00 2001 From: Krzysztof Halasa Date: Wed, 16 Aug 2006 01:52:23 +0200 Subject: [PATCH] --- yaml --- r: 33519 b: refs/heads/master c: a76b044af147135b5fb7570aba35d4908f143cc9 h: refs/heads/master i: 33517: 763f99768570dcfeb20a6711bb6fc7504c93fcf5 33515: 1914038e7f044073071823b378892533c181f939 33511: 6886bbe21305e90493cee95d147a60fc09fb1255 33503: 7f8ca0b4309db374fc632bc7cc41e8296e83e5a0 v: v3 --- [refs] | 2 +- trunk/drivers/net/wan/c101.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 8ca21709df2d..35432401a39a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2ca2d5e84c19ddbc0126087af6288533a05f1799 +refs/heads/master: a76b044af147135b5fb7570aba35d4908f143cc9 diff --git a/trunk/drivers/net/wan/c101.c b/trunk/drivers/net/wan/c101.c index 435e91ec4620..6b63b350cd52 100644 --- a/trunk/drivers/net/wan/c101.c +++ b/trunk/drivers/net/wan/c101.c @@ -118,7 +118,7 @@ static inline void openwin(card_t *card, u8 page) static inline void set_carrier(port_t *port) { - if (!sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD) + if (!(sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD)) netif_carrier_on(port_to_dev(port)); else netif_carrier_off(port_to_dev(port)); @@ -127,10 +127,10 @@ static inline void set_carrier(port_t *port) static void sca_msci_intr(port_t *port) { - u8 stat = sca_in(MSCI1_OFFSET + ST1, port); /* read MSCI ST1 status */ + u8 stat = sca_in(MSCI0_OFFSET + ST1, port); /* read MSCI ST1 status */ - /* Reset MSCI TX underrun status bit */ - sca_out(stat & ST1_UDRN, MSCI0_OFFSET + ST1, port); + /* Reset MSCI TX underrun and CDCD (ignored) status bit */ + sca_out(stat & (ST1_UDRN | ST1_CDCD), MSCI0_OFFSET + ST1, port); if (stat & ST1_UDRN) { struct net_device_stats *stats = hdlc_stats(port_to_dev(port)); @@ -138,6 +138,7 @@ static void sca_msci_intr(port_t *port) stats->tx_fifo_errors++; } + stat = sca_in(MSCI1_OFFSET + ST1, port); /* read MSCI1 ST1 status */ /* Reset MSCI CDCD status bit - uses ch#2 DCD input */ sca_out(stat & ST1_CDCD, MSCI1_OFFSET + ST1, port);