{
        struct xlgmac_pdata *pdata = netdev_priv(netdev);
 
-       memset(ec, 0, sizeof(struct ethtool_coalesce));
        ec->rx_coalesce_usecs = pdata->rx_usecs;
        ec->rx_max_coalesced_frames = pdata->rx_frames;
        ec->tx_max_coalesced_frames = pdata->tx_frames;
        unsigned int rx_frames, rx_riwt, rx_usecs;
        unsigned int tx_frames;
 
-       /* Check for not supported parameters */
-       if ((ec->rx_coalesce_usecs_irq) || (ec->rx_max_coalesced_frames_irq) ||
-           (ec->tx_coalesce_usecs) || (ec->tx_coalesce_usecs_high) ||
-           (ec->tx_max_coalesced_frames_irq) || (ec->tx_coalesce_usecs_irq) ||
-           (ec->stats_block_coalesce_usecs) ||  (ec->pkt_rate_low) ||
-           (ec->use_adaptive_rx_coalesce) || (ec->use_adaptive_tx_coalesce) ||
-           (ec->rx_max_coalesced_frames_low) || (ec->rx_coalesce_usecs_low) ||
-           (ec->tx_coalesce_usecs_low) || (ec->tx_max_coalesced_frames_low) ||
-           (ec->pkt_rate_high) || (ec->rx_coalesce_usecs_high) ||
-           (ec->rx_max_coalesced_frames_high) ||
-           (ec->tx_max_coalesced_frames_high) ||
-           (ec->rate_sample_interval))
-               return -EOPNOTSUPP;
-
        rx_usecs = ec->rx_coalesce_usecs;
        rx_riwt = hw_ops->usec_to_riwt(pdata, rx_usecs);
        rx_frames = ec->rx_max_coalesced_frames;
 }
 
 static const struct ethtool_ops xlgmac_ethtool_ops = {
+       .supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS |
+                                    ETHTOOL_COALESCE_MAX_FRAMES,
        .get_drvinfo = xlgmac_ethtool_get_drvinfo,
        .get_link = ethtool_op_get_link,
        .get_msglevel = xlgmac_ethtool_get_msglevel,