diff --git a/userspace/wrsw_hal/hal_port_fsm.c b/userspace/wrsw_hal/hal_port_fsm.c index 26c809d10bd198c416c88167d9bc61e1a7ab4615..71083871ef0294e675969d269bb1df9ed899e1a8 100644 --- a/userspace/wrsw_hal/hal_port_fsm.c +++ b/userspace/wrsw_hal/hal_port_fsm.c @@ -211,16 +211,18 @@ static int port_fsm_state_link_down(fsm_t *fsm, int eventMsk, int isNewState) { led_set_wrmode(ps->hw_index, SFP_LED_WRMODE_OFF); led_set_synched(ps->hw_index, 0); - lpdc_writel(ps, - LPDC_MDIO_CTRL_RX_SW_RESET - | LPDC_MDIO_CTRL_TX_ENABLE - | LPDC_MDIO_CTRL_DMTD_SOURCE_RXRECCLK, - LPDC_MDIO_CTRL); - shw_udelay(1); - lpdc_writel(ps, - LPDC_MDIO_CTRL_TX_ENABLE - | LPDC_MDIO_CTRL_DMTD_SOURCE_RXRECCLK, - LPDC_MDIO_CTRL); + if (ps->lpdc.isSupported) { + lpdc_writel(ps, + LPDC_MDIO_CTRL_RX_SW_RESET + | LPDC_MDIO_CTRL_TX_ENABLE + | LPDC_MDIO_CTRL_DMTD_SOURCE_RXRECCLK, + LPDC_MDIO_CTRL); + shw_udelay(1); + lpdc_writel(ps, + LPDC_MDIO_CTRL_TX_ENABLE + | LPDC_MDIO_CTRL_DMTD_SOURCE_RXRECCLK, + LPDC_MDIO_CTRL); + } } /* if final state reached for tx setup state machine then