[openwrt/openwrt] ramips: 6.1: ralink: fix ethernet driver with 6.1

LEDE Commits lede-commits at lists.infradead.org
Sat Feb 10 04:09:19 PST 2024


nick pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/cc4d01cd6043edbe8191cbddea8133b6879b25ef

commit cc4d01cd6043edbe8191cbddea8133b6879b25ef
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Thu Feb 8 22:13:50 2024 +0100

    ramips: 6.1: ralink: fix ethernet driver with 6.1
    
    Fixes errors in the form of:
      make[9]: Entering directory '/home/nick/openwrt/build_dir/target-mipsel_24kc_musl/linux-ramips_mt7620/linux-6.1.77'
        CC      drivers/net/ethernet/ralink/mtk_eth_soc.o
      drivers/net/ethernet/ralink/mtk_eth_soc.c: In function 'fe_init':
      drivers/net/ethernet/ralink/mtk_eth_soc.c:1368:51: warning: passing argument 2 of 'of_get_mac_address' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       1368 |         of_get_mac_address(priv->dev->of_node, dev->dev_addr);
            |                                                ~~~^~~~~~~~~~
      In file included from drivers/net/ethernet/ralink/mtk_eth_soc.c:26:
      ./include/linux/of_net.h:16:59: note: expected 'u8 *' {aka 'unsigned char *'} but argument is of type 'const unsigned char *'
         16 | extern int of_get_mac_address(struct device_node *np, u8 *mac);
            |                                                       ~~~~^~~
      drivers/net/ethernet/ralink/mtk_eth_soc.c: In function 'fe_probe':
      drivers/net/ethernet/ralink/mtk_eth_soc.c:1641:9: error: too many arguments to function 'netif_napi_add'
       1641 |         netif_napi_add(netdev, &priv->rx_napi, fe_poll, napi_weight);
            |         ^~~~~~~~~~~~~~
      In file included from ./include/linux/etherdevice.h:21,
                       from drivers/net/ethernet/ralink/mtk_eth_soc.c:21:
      ./include/linux/netdevice.h:2611:1: note: declared here
       2611 | netif_napi_add(struct net_device *dev, struct napi_struct *napi,
            | ^~~~~~~~~~~~~~
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    [split commit and rewrite commit message]
    Signed-off-by: Nick Hainke <vincent at systemli.org>
---
 .../ramips/files/drivers/net/ethernet/ralink/ethtool.c     | 14 ++++++++++++++
 .../ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c | 10 ++++++----
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/ethtool.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/ethtool.c
index a3abf30c71..92cf0ef717 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/ethtool.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/ethtool.c
@@ -125,8 +125,15 @@ out_get_link:
 	return ethtool_op_get_link(dev);
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
+static int fe_set_ringparam(struct net_device *dev,
+			    struct ethtool_ringparam *ring,
+			    struct kernel_ethtool_ringparam *kernel_rp,
+			    struct netlink_ext_ack *extack)
+#else
 static int fe_set_ringparam(struct net_device *dev,
 			    struct ethtool_ringparam *ring)
+#endif
 {
 	struct fe_priv *priv = netdev_priv(dev);
 
@@ -146,8 +153,15 @@ static int fe_set_ringparam(struct net_device *dev,
 	return 0;
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
+static void fe_get_ringparam(struct net_device *dev,
+			     struct ethtool_ringparam *ring,
+			     struct kernel_ethtool_ringparam *kernel_rp,
+			     struct netlink_ext_ack *extack)
+#else
 static void fe_get_ringparam(struct net_device *dev,
 			     struct ethtool_ringparam *ring)
+#endif
 {
 	struct fe_priv *priv = netdev_priv(dev);
 
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
index 03e65a0c8a..35a3113804 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
@@ -1365,10 +1365,8 @@ static int __init fe_init(struct net_device *dev)
 
 	fe_reset_phy(priv);
 
-	of_get_mac_address(priv->dev->of_node, dev->dev_addr);
-
-	/* If the mac address is invalid, use random mac address  */
-	if (!is_valid_ether_addr(dev->dev_addr)) {
+	/* Set the MAC address if it is correct, if not use a random MAC address  */
+	if (of_get_ethdev_address(priv->dev->of_node, dev)) {
 		eth_hw_addr_random(dev);
 		dev_err(priv->dev, "generated random MAC address %pM\n",
 			dev->dev_addr);
@@ -1638,7 +1636,11 @@ static int fe_probe(struct platform_device *pdev)
 		priv->tx_ring.tx_ring_size *= 4;
 		priv->rx_ring.rx_ring_size *= 4;
 	}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
+	netif_napi_add_weight(netdev, &priv->rx_napi, fe_poll, napi_weight);
+#else
 	netif_napi_add(netdev, &priv->rx_napi, fe_poll, napi_weight);
+#endif
 	fe_set_ethtool_ops(netdev);
 
 	err = register_netdev(netdev);




More information about the lede-commits mailing list