DBGPR("-->xgbe_init_rx_coalesce\n");
 
        pdata->rx_riwt = hw_if->usec_to_riwt(pdata, XGMAC_INIT_DMA_RX_USECS);
+       pdata->rx_usecs = XGMAC_INIT_DMA_RX_USECS;
        pdata->rx_frames = XGMAC_INIT_DMA_RX_FRAMES;
 
        hw_if->config_rx_coalesce(pdata);
 
                             struct ethtool_coalesce *ec)
 {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
-       struct xgbe_hw_if *hw_if = &pdata->hw_if;
-       unsigned int riwt;
 
        DBGPR("-->xgbe_get_coalesce\n");
 
        memset(ec, 0, sizeof(struct ethtool_coalesce));
 
-       riwt = pdata->rx_riwt;
-       ec->rx_coalesce_usecs = hw_if->riwt_to_usec(pdata, riwt);
+       ec->rx_coalesce_usecs = pdata->rx_usecs;
        ec->rx_max_coalesced_frames = pdata->rx_frames;
 
        ec->tx_max_coalesced_frames = pdata->tx_frames;
        }
 
        rx_riwt = hw_if->usec_to_riwt(pdata, ec->rx_coalesce_usecs);
+       rx_usecs = ec->rx_coalesce_usecs;
        rx_frames = ec->rx_max_coalesced_frames;
 
        /* Use smallest possible value if conversion resulted in zero */
-       if (ec->rx_coalesce_usecs && !rx_riwt)
+       if (rx_usecs && !rx_riwt)
                rx_riwt = 1;
 
        /* Check the bounds of values for Rx */
        if (rx_riwt > XGMAC_MAX_DMA_RIWT) {
-               rx_usecs = hw_if->riwt_to_usec(pdata, XGMAC_MAX_DMA_RIWT);
                netdev_alert(netdev, "rx-usec is limited to %d usecs\n",
-                            rx_usecs);
+                            hw_if->riwt_to_usec(pdata, XGMAC_MAX_DMA_RIWT));
                return -EINVAL;
        }
        if (rx_frames > pdata->rx_desc_count) {
        }
 
        pdata->rx_riwt = rx_riwt;
+       pdata->rx_usecs = rx_usecs;
        pdata->rx_frames = rx_frames;
        hw_if->config_rx_coalesce(pdata);