WAN: fix C101 card carrier handling
Subsystems (3)
Krzysztof Halasa
maintainerPATCH 1/1 WAN: fix C101 card carrier handling
Hi,
One of my recent changes broke C101 carrier handling, this patch fixes it. Also fixes an old TX underrun checking bug.
2.6.18 material. Please apply.
Thanks.
Signed-off-by Krzysztof Halasa <[email protected]>
drivers/net/wan/c101.c +5 -4
@@ -118,7 +118,7 @@ #include "hd6457x.c"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 *pstatic 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);