Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86688a8f authored by Michał Mirosław's avatar Michał Mirosław Committed by David S. Miller
Browse files

net: typhoon: convert to hw_features

parent aad59c43
Loading
Loading
Loading
Loading
+8 −31
Original line number Diff line number Diff line
@@ -1144,28 +1144,6 @@ typhoon_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
	return 0;
}

static u32
typhoon_get_rx_csum(struct net_device *dev)
{
	/* For now, we don't allow turning off RX checksums.
	 */
	return 1;
}

static int
typhoon_set_flags(struct net_device *dev, u32 data)
{
	/* There's no way to turn off the RX VLAN offloading and stripping
	 * on the current 3XP firmware -- it does not respect the offload
	 * settings -- so we only allow the user to toggle the TX processing.
	 */
	if (!(data & ETH_FLAG_RXVLAN))
		return -EINVAL;

	return ethtool_op_set_flags(dev, data,
				    ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN);
}

static void
typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
{
@@ -1187,13 +1165,7 @@ static const struct ethtool_ops typhoon_ethtool_ops = {
	.get_wol		= typhoon_get_wol,
	.set_wol		= typhoon_set_wol,
	.get_link		= ethtool_op_get_link,
	.get_rx_csum		= typhoon_get_rx_csum,
	.set_tx_csum		= ethtool_op_set_tx_csum,
	.set_sg			= ethtool_op_set_sg,
	.set_tso		= ethtool_op_set_tso,
	.get_ringparam		= typhoon_get_ringparam,
	.set_flags		= typhoon_set_flags,
	.get_flags		= ethtool_op_get_flags,
};

static int
@@ -2482,10 +2454,15 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)

	/* We can handle scatter gather, up to 16 entries, and
	 * we can do IP checksumming (only version 4, doh...)
	 *
	 * There's no way to turn off the RX VLAN offloading and stripping
	 * on the current 3XP firmware -- it does not respect the offload
	 * settings -- so we only allow the user to toggle the TX processing.
	 */
	dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
	dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
	dev->features |= NETIF_F_TSO;
	dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
		NETIF_F_HW_VLAN_TX;
	dev->features = dev->hw_features |
		NETIF_F_HW_VLAN_RX | NETIF_F_RXCSUM;

	if(register_netdev(dev) < 0) {
		err_msg = "unable to register netdev";