diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index c0d0ad04..202047c1 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -5590,14 +5590,25 @@ static int ether_parse_dt(struct ether_priv_data *pdata) if (ret < 0) { osi_dma->use_riwt = OSI_DISABLE; } else { - if ((osi_dma->rx_riwt > OSI_MAX_RX_COALESCE_USEC) || - (osi_dma->rx_riwt < OSI_MIN_RX_COALESCE_USEC)) { + if (osi_dma->mac == OSI_MAC_HW_MGBE && + (osi_dma->rx_riwt > OSI_MAX_RX_COALESCE_USEC || + osi_dma->rx_riwt < OSI_MGBE_MIN_RX_COALESCE_USEC)) { dev_err(dev, "invalid rx_riwt, must be inrange %d to %d\n", - OSI_MIN_RX_COALESCE_USEC, + OSI_MGBE_MIN_RX_COALESCE_USEC, + OSI_MAX_RX_COALESCE_USEC); + return -EINVAL; + } else if (osi_dma->mac == OSI_MAC_HW_EQOS && + (osi_dma->rx_riwt > OSI_MAX_RX_COALESCE_USEC || + osi_dma->rx_riwt < + OSI_EQOS_MIN_RX_COALESCE_USEC)) { + dev_err(dev, + "invalid rx_riwt, must be inrange %d to %d\n", + OSI_EQOS_MIN_RX_COALESCE_USEC, OSI_MAX_RX_COALESCE_USEC); return -EINVAL; } + osi_dma->use_riwt = OSI_ENABLE; } /* rx_frames value to be set */ diff --git a/drivers/net/ethernet/nvidia/nvethernet/ethtool.c b/drivers/net/ethernet/nvidia/nvethernet/ethtool.c index d4febf59..36e00e4b 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ethtool.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ethtool.c @@ -1010,11 +1010,20 @@ static int ether_set_coalesce(struct net_device *dev, if (ec->rx_coalesce_usecs == OSI_DISABLE) { osi_dma->use_riwt = OSI_DISABLE; - } else if ((ec->rx_coalesce_usecs > OSI_MAX_RX_COALESCE_USEC) || - (ec->rx_coalesce_usecs < OSI_MIN_RX_COALESCE_USEC)) { + } else if (osi_dma->mac == OSI_MAC_HW_EQOS && + (ec->rx_coalesce_usecs > OSI_MAX_RX_COALESCE_USEC || + ec->rx_coalesce_usecs < OSI_EQOS_MIN_RX_COALESCE_USEC)) { + netdev_err(dev, "invalid rx_usecs, must be in a range of %d to %d usec\n", + OSI_EQOS_MIN_RX_COALESCE_USEC, + OSI_MAX_RX_COALESCE_USEC); + return -EINVAL; + + } else if (osi_dma->mac == OSI_MAC_HW_MGBE && + (ec->rx_coalesce_usecs > OSI_MAX_RX_COALESCE_USEC || + ec->rx_coalesce_usecs < OSI_MGBE_MIN_RX_COALESCE_USEC)) { netdev_err(dev, - "invalid rx_usecs, must be in a range of" - " %d to %d usec\n", OSI_MIN_RX_COALESCE_USEC, + "invalid rx_usecs, must be in a range of %d to %d usec\n", + OSI_MGBE_MIN_RX_COALESCE_USEC, OSI_MAX_RX_COALESCE_USEC); return -EINVAL; } else {