aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Hałasa <khc@pm.waw.pl>2010-05-27 06:40:17 -0400
committerKrzysztof Hałasa <khc@pm.waw.pl>2010-05-27 07:02:42 -0400
commit627634293ae7f4ec864cecd4282650ceae7a5067 (patch)
tree2545b12d53b4b0bb57121e536928e076b1fb2daf
parentee977c2c4f09c36e47c3113ecfe856fcce3ca7b9 (diff)
IXP4xx: Prevent HSS transmitter lockup by disabling FRaMe signals.
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>
-rw-r--r--drivers/net/wan/ixp4xx_hss.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
index 0c2cdde686a0..31b0b4d1f573 100644
--- a/drivers/net/wan/ixp4xx_hss.c
+++ b/drivers/net/wan/ixp4xx_hss.c
@@ -396,7 +396,7 @@ static void hss_config(struct port *port)
396 msg.cmd = PORT_CONFIG_WRITE; 396 msg.cmd = PORT_CONFIG_WRITE;
397 msg.hss_port = port->id; 397 msg.hss_port = port->id;
398 msg.index = HSS_CONFIG_TX_PCR; 398 msg.index = HSS_CONFIG_TX_PCR;
399 msg.data32 = PCR_FRM_SYNC_OUTPUT_RISING | PCR_MSB_ENDIAN | 399 msg.data32 = PCR_FRM_PULSE_DISABLED | PCR_MSB_ENDIAN |
400 PCR_TX_DATA_ENABLE | PCR_SOF_NO_FBIT; 400 PCR_TX_DATA_ENABLE | PCR_SOF_NO_FBIT;
401 if (port->clock_type == CLOCK_INT) 401 if (port->clock_type == CLOCK_INT)
402 msg.data32 |= PCR_SYNC_CLK_DIR_OUTPUT; 402 msg.data32 |= PCR_SYNC_CLK_DIR_OUTPUT;