]> git.karo-electronics.de Git - linux-beck.git/commitdiff
IXP4xx: Prevent HSS transmitter lockup by disabling FRaMe signals.
authorKrzysztof Hałasa <khc@pm.waw.pl>
Thu, 27 May 2010 10:40:17 +0000 (12:40 +0200)
committerKrzysztof Hałasa <khc@pm.waw.pl>
Thu, 27 May 2010 11:02:42 +0000 (13:02 +0200)
With port configured with PCR_FRM_SYNC_OUTPUT* and external clock, bringing
the hdlcX interface up and down without active clock supplied to the HSS
causes a TX lockup. We don't support channelized/partial interfaces so
FRaMe signals can't be used anyway, disabling them makes the lockup go away.

Changes to this logic will be required if we want to support channelized
HSS mode (this is most probably bug in NPE-A HSS firmware).

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
drivers/net/wan/ixp4xx_hss.c

index 0c2cdde686a03fd6f50efa58fa9d3538c2f8407a..31b0b4d1f57337041b04d6767339c27808f21a6b 100644 (file)
@@ -396,7 +396,7 @@ static void hss_config(struct port *port)
        msg.cmd = PORT_CONFIG_WRITE;
        msg.hss_port = port->id;
        msg.index = HSS_CONFIG_TX_PCR;
-       msg.data32 = PCR_FRM_SYNC_OUTPUT_RISING | PCR_MSB_ENDIAN |
+       msg.data32 = PCR_FRM_PULSE_DISABLED | PCR_MSB_ENDIAN |
                PCR_TX_DATA_ENABLE | PCR_SOF_NO_FBIT;
        if (port->clock_type == CLOCK_INT)
                msg.data32 |= PCR_SYNC_CLK_DIR_OUTPUT;