]> git.dujemihanovic.xyz Git - linux.git/commitdiff
net: ethernet: Use device_get_match_data()
authorRob Herring <robh@kernel.org>
Mon, 9 Oct 2023 17:28:58 +0000 (12:28 -0500)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Oct 2023 09:04:53 +0000 (10:04 +0100)
Use preferred device_get_match_data() instead of of_match_device() to
get the driver match data. With this, adjust the includes to explicitly
include the correct headers.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 files changed:
drivers/net/ethernet/altera/altera_tse.h
drivers/net/ethernet/altera/altera_tse_main.c
drivers/net/ethernet/amd/xgbe/xgbe-platform.c
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
drivers/net/ethernet/apm/xgene/xgene_enet_main.h
drivers/net/ethernet/freescale/fec_main.c
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
drivers/net/ethernet/freescale/fs_enet/mii-fec.c
drivers/net/ethernet/freescale/fsl_pq_mdio.c
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
drivers/net/ethernet/stmicro/stmmac/dwmac-intel-plat.c
drivers/net/ethernet/ti/davinci_emac.c
drivers/net/ethernet/ti/icssg/icssg_prueth.c

index db5eed06e92dfa6049894d4ef48804e563c6e8ca..82f2363a45cd058d47b6b0d42dca79197c73c85a 100644 (file)
@@ -472,7 +472,7 @@ struct altera_tse_private {
        /* ethtool msglvl option */
        u32 msg_enable;
 
-       struct altera_dmaops *dmaops;
+       const struct altera_dmaops *dmaops;
 
        struct phylink *phylink;
        struct phylink_config phylink_config;
index 1b1799985d1d7713ace9d651f294b4aea76e64fa..1c8763be0e4b37027d66c4284396909de1f8fbb8 100644 (file)
 #include <linux/mii.h>
 #include <linux/mdio/mdio-regmap.h>
 #include <linux/netdevice.h>
-#include <linux/of_device.h>
+#include <linux/of.h>
 #include <linux/of_mdio.h>
 #include <linux/of_net.h>
-#include <linux/of_platform.h>
 #include <linux/pcs-lynx.h>
 #include <linux/phy.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/skbuff.h>
 #include <asm/cacheflush.h>
@@ -82,8 +82,6 @@ MODULE_PARM_DESC(dma_tx_num, "Number of descriptors in the TX list");
 
 #define TXQUEUESTOP_THRESHHOLD 2
 
-static const struct of_device_id altera_tse_ids[];
-
 static inline u32 tse_tx_avail(struct altera_tse_private *priv)
 {
        return priv->tx_cons + priv->tx_ring_size - priv->tx_prod - 1;
@@ -1133,7 +1131,6 @@ static int request_and_map(struct platform_device *pdev, const char *name,
  */
 static int altera_tse_probe(struct platform_device *pdev)
 {
-       const struct of_device_id *of_id = NULL;
        struct regmap_config pcs_regmap_cfg;
        struct altera_tse_private *priv;
        struct mdio_regmap_config mrc;
@@ -1159,11 +1156,7 @@ static int altera_tse_probe(struct platform_device *pdev)
        priv->dev = ndev;
        priv->msg_enable = netif_msg_init(debug, default_msg_level);
 
-       of_id = of_match_device(altera_tse_ids, &pdev->dev);
-
-       if (of_id)
-               priv->dmaops = (struct altera_dmaops *)of_id->data;
-
+       priv->dmaops = device_get_match_data(&pdev->dev);
 
        if (priv->dmaops &&
            priv->dmaops->altera_dtype == ALTERA_DTYPE_SGDMA) {
index 91842a5e161b3bc693fbbbb85d35048c1721487e..9131020d06af14c8e55301dbab11af73ca53212a 100644 (file)
 #include <linux/io.h>
 #include <linux/of.h>
 #include <linux/of_net.h>
-#include <linux/of_address.h>
 #include <linux/of_platform.h>
-#include <linux/of_device.h>
 #include <linux/clk.h>
 #include <linux/property.h>
 #include <linux/acpi.h>
 #include "xgbe-common.h"
 
 #ifdef CONFIG_ACPI
-static const struct acpi_device_id xgbe_acpi_match[];
-
-static struct xgbe_version_data *xgbe_acpi_vdata(struct xgbe_prv_data *pdata)
-{
-       const struct acpi_device_id *id;
-
-       id = acpi_match_device(xgbe_acpi_match, pdata->dev);
-
-       return id ? (struct xgbe_version_data *)id->driver_data : NULL;
-}
-
 static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
 {
        struct device *dev = pdata->dev;
@@ -173,11 +160,6 @@ static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
        return 0;
 }
 #else   /* CONFIG_ACPI */
-static struct xgbe_version_data *xgbe_acpi_vdata(struct xgbe_prv_data *pdata)
-{
-       return NULL;
-}
-
 static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
 {
        return -EINVAL;
@@ -185,17 +167,6 @@ static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
 #endif  /* CONFIG_ACPI */
 
 #ifdef CONFIG_OF
-static const struct of_device_id xgbe_of_match[];
-
-static struct xgbe_version_data *xgbe_of_vdata(struct xgbe_prv_data *pdata)
-{
-       const struct of_device_id *id;
-
-       id = of_match_device(xgbe_of_match, pdata->dev);
-
-       return id ? (struct xgbe_version_data *)id->data : NULL;
-}
-
 static int xgbe_of_support(struct xgbe_prv_data *pdata)
 {
        struct device *dev = pdata->dev;
@@ -244,11 +215,6 @@ static struct platform_device *xgbe_of_get_phy_pdev(struct xgbe_prv_data *pdata)
        return phy_pdev;
 }
 #else   /* CONFIG_OF */
-static struct xgbe_version_data *xgbe_of_vdata(struct xgbe_prv_data *pdata)
-{
-       return NULL;
-}
-
 static int xgbe_of_support(struct xgbe_prv_data *pdata)
 {
        return -EINVAL;
@@ -290,12 +256,6 @@ static struct platform_device *xgbe_get_phy_pdev(struct xgbe_prv_data *pdata)
        return phy_pdev;
 }
 
-static struct xgbe_version_data *xgbe_get_vdata(struct xgbe_prv_data *pdata)
-{
-       return pdata->use_acpi ? xgbe_acpi_vdata(pdata)
-                              : xgbe_of_vdata(pdata);
-}
-
 static int xgbe_platform_probe(struct platform_device *pdev)
 {
        struct xgbe_prv_data *pdata;
@@ -321,7 +281,7 @@ static int xgbe_platform_probe(struct platform_device *pdev)
        pdata->use_acpi = dev->of_node ? 0 : 1;
 
        /* Get the version data */
-       pdata->vdata = xgbe_get_vdata(pdata);
+       pdata->vdata = (struct xgbe_version_data *)device_get_match_data(dev);
 
        phy_pdev = xgbe_get_phy_pdev(pdata);
        if (!phy_pdev) {
index b5d9f9a55b7fd9fe5be27407f3872f8517bc5003..56f2b3c229af29acdd4bb4d5f41b252de0c8ea3d 100644 (file)
@@ -2018,7 +2018,6 @@ static int xgene_enet_probe(struct platform_device *pdev)
        struct xgene_enet_pdata *pdata;
        struct device *dev = &pdev->dev;
        void (*link_state)(struct work_struct *);
-       const struct of_device_id *of_id;
        int ret;
 
        ndev = alloc_etherdev_mqs(sizeof(struct xgene_enet_pdata),
@@ -2039,19 +2038,7 @@ static int xgene_enet_probe(struct platform_device *pdev)
                          NETIF_F_GRO |
                          NETIF_F_SG;
 
-       of_id = of_match_device(xgene_enet_of_match, &pdev->dev);
-       if (of_id) {
-               pdata->enet_id = (uintptr_t)of_id->data;
-       }
-#ifdef CONFIG_ACPI
-       else {
-               const struct acpi_device_id *acpi_id;
-
-               acpi_id = acpi_match_device(xgene_enet_acpi_match, &pdev->dev);
-               if (acpi_id)
-                       pdata->enet_id = (enum xgene_enet_id) acpi_id->driver_data;
-       }
-#endif
+       pdata->enet_id = (enum xgene_enet_id)device_get_match_data(&pdev->dev);
        if (!pdata->enet_id) {
                ret = -ENODEV;
                goto err;
index 643f5e646740b597802beaaaf2beb382225efb6a..bce2c19e3f226f1d1b6a388db0489aebf54ea916 100644 (file)
 #include <linux/efi.h>
 #include <linux/irq.h>
 #include <linux/io.h>
-#include <linux/of_platform.h>
+#include <linux/of.h>
 #include <linux/of_net.h>
 #include <linux/of_mdio.h>
+#include <linux/platform_device.h>
 #include <linux/mdio/mdio-xgene.h>
 #include <linux/module.h>
 #include <net/ip.h>
index b833467088811dbe0a8670358b3849b2bc0d693f..f66c765487cad57d4cd6b9041d3f2ede8888b3ef 100644 (file)
 #include <linux/clk.h>
 #include <linux/crc32.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/mdio.h>
 #include <linux/phy.h>
 #include <linux/fec.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/of_mdio.h>
 #include <linux/of_net.h>
 #include <linux/regulator/consumer.h>
@@ -4292,14 +4292,13 @@ fec_probe(struct platform_device *pdev)
        phy_interface_t interface;
        struct net_device *ndev;
        int i, irq, ret = 0;
-       const struct of_device_id *of_id;
        static int dev_id;
        struct device_node *np = pdev->dev.of_node, *phy_node;
        int num_tx_qs;
        int num_rx_qs;
        char irq_name[8];
        int irq_cnt;
-       struct fec_devinfo *dev_info;
+       const struct fec_devinfo *dev_info;
 
        fec_enet_get_queue_num(pdev, &num_tx_qs, &num_rx_qs);
 
@@ -4314,10 +4313,9 @@ fec_probe(struct platform_device *pdev)
        /* setup board info structure */
        fep = netdev_priv(ndev);
 
-       of_id = of_match_device(fec_dt_ids, &pdev->dev);
-       if (of_id)
-               pdev->id_entry = of_id->data;
-       dev_info = (struct fec_devinfo *)pdev->id_entry->driver_data;
+       dev_info = device_get_match_data(&pdev->dev);
+       if (!dev_info)
+               dev_info = (const struct fec_devinfo *)pdev->id_entry->driver_data;
        if (dev_info)
                fep->quirks = dev_info->quirks;
 
index a6dfc8807d3ddaa0acd9824cb78b34d35637ce19..cf392faa610521a74f9bb31fce133b1cd44066c2 100644 (file)
 #include <linux/fs.h>
 #include <linux/platform_device.h>
 #include <linux/phy.h>
+#include <linux/property.h>
 #include <linux/of.h>
 #include <linux/of_mdio.h>
-#include <linux/of_platform.h>
-#include <linux/of_gpio.h>
 #include <linux/of_net.h>
 #include <linux/pgtable.h>
 
@@ -884,9 +883,9 @@ static const struct ethtool_ops fs_ethtool_ops = {
 /**************************************************************************************/
 
 #ifdef CONFIG_FS_ENET_HAS_FEC
-#define IS_FEC(match) ((match)->data == &fs_fec_ops)
+#define IS_FEC(ops) ((ops) == &fs_fec_ops)
 #else
-#define IS_FEC(match) 0
+#define IS_FEC(ops) 0
 #endif
 
 static const struct net_device_ops fs_enet_netdev_ops = {
@@ -903,10 +902,9 @@ static const struct net_device_ops fs_enet_netdev_ops = {
 #endif
 };
 
-static const struct of_device_id fs_enet_match[];
 static int fs_enet_probe(struct platform_device *ofdev)
 {
-       const struct of_device_id *match;
+       const struct fs_ops *ops;
        struct net_device *ndev;
        struct fs_enet_private *fep;
        struct fs_platform_info *fpi;
@@ -916,15 +914,15 @@ static int fs_enet_probe(struct platform_device *ofdev)
        const char *phy_connection_type;
        int privsize, len, ret = -ENODEV;
 
-       match = of_match_device(fs_enet_match, &ofdev->dev);
-       if (!match)
+       ops = device_get_match_data(&ofdev->dev);
+       if (!ops)
                return -EINVAL;
 
        fpi = kzalloc(sizeof(*fpi), GFP_KERNEL);
        if (!fpi)
                return -ENOMEM;
 
-       if (!IS_FEC(match)) {
+       if (!IS_FEC(ops)) {
                data = of_get_property(ofdev->dev.of_node, "fsl,cpm-command", &len);
                if (!data || len != 4)
                        goto out_free_fpi;
@@ -986,7 +984,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
        fep->dev = &ofdev->dev;
        fep->ndev = ndev;
        fep->fpi = fpi;
-       fep->ops = match->data;
+       fep->ops = ops;
 
        ret = fep->ops->setup_data(ndev);
        if (ret)
index a1e777a4b75f669590f90007bd5a10a2996dece9..7bb69727952a835e3c54635f48e04f265106f866 100644 (file)
 #include <linux/ethtool.h>
 #include <linux/bitops.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
+#include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_mdio.h>
-#include <linux/of_platform.h>
 #include <linux/pgtable.h>
 
 #include <asm/irq.h>
@@ -96,20 +97,15 @@ static int fs_enet_fec_mii_write(struct mii_bus *bus, int phy_id, int location,
 
 }
 
-static const struct of_device_id fs_enet_mdio_fec_match[];
 static int fs_enet_mdio_probe(struct platform_device *ofdev)
 {
-       const struct of_device_id *match;
        struct resource res;
        struct mii_bus *new_bus;
        struct fec_info *fec;
        int (*get_bus_freq)(struct device *);
        int ret = -ENOMEM, clock, speed;
 
-       match = of_match_device(fs_enet_mdio_fec_match, &ofdev->dev);
-       if (!match)
-               return -EINVAL;
-       get_bus_freq = match->data;
+       get_bus_freq = device_get_match_data(&ofdev->dev);
 
        new_bus = mdiobus_alloc();
        if (!new_bus)
index eee675a25b2c3c209f5df518e1045daa9cab5ac3..70dd982a5edce68a63a8f3b94d59c9947dd0045a 100644 (file)
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/mii.h>
+#include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_mdio.h>
-#include <linux/of_device.h>
+#include <linux/property.h>
 
 #include <asm/io.h>
 #if IS_ENABLED(CONFIG_UCC_GETH)
@@ -407,8 +408,6 @@ static void set_tbipa(const u32 tbipa_val, struct platform_device *pdev,
 
 static int fsl_pq_mdio_probe(struct platform_device *pdev)
 {
-       const struct of_device_id *id =
-               of_match_device(fsl_pq_mdio_match, &pdev->dev);
        const struct fsl_pq_mdio_data *data;
        struct device_node *np = pdev->dev.of_node;
        struct resource res;
@@ -417,15 +416,12 @@ static int fsl_pq_mdio_probe(struct platform_device *pdev)
        struct mii_bus *new_bus;
        int err;
 
-       if (!id) {
+       data = device_get_match_data(&pdev->dev);
+       if (!data) {
                dev_err(&pdev->dev, "Failed to match device\n");
                return -ENODEV;
        }
 
-       data = id->data;
-
-       dev_dbg(&pdev->dev, "found %s compatible node\n", id->compatible);
-
        new_bus = mdiobus_alloc_size(sizeof(*priv));
        if (!new_bus)
                return -ENOMEM;
index 506fa3d8bbee2ff26655635c3b65fcb90ea85f68..1a972b093a4240228085293a63dd699839119053 100644 (file)
@@ -7,7 +7,8 @@
 #include <linux/interrupt.h>
 #include <linux/etherdevice.h>
 #include <linux/platform_device.h>
-#include <linux/of_device.h>
+#include <linux/property.h>
+#include <linux/of.h>
 #include <linux/of_net.h>
 #include <linux/of_mdio.h>
 #include <linux/reset.h>
@@ -1094,7 +1095,6 @@ static int hix5hd2_dev_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
        struct device_node *node = dev->of_node;
-       const struct of_device_id *of_id = NULL;
        struct net_device *ndev;
        struct hix5hd2_priv *priv;
        struct mii_bus *bus;
@@ -1110,12 +1110,7 @@ static int hix5hd2_dev_probe(struct platform_device *pdev)
        priv->dev = dev;
        priv->netdev = ndev;
 
-       of_id = of_match_device(hix5hd2_of_match, dev);
-       if (!of_id) {
-               ret = -EINVAL;
-               goto out_free_netdev;
-       }
-       priv->hw_cap = (unsigned long)of_id->data;
+       priv->hw_cap = (unsigned long)device_get_match_data(dev);
 
        priv->base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(priv->base)) {
index 70edc5232379f30dca4b826d8604dbe985d0df54..d68f0c4e7835053298ef2e70b7a81e6282a80f3a 100644 (file)
@@ -7,8 +7,8 @@
 #include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/stmmac.h>
 
 #include "dwmac4.h"
@@ -76,7 +76,6 @@ static int intel_eth_plat_probe(struct platform_device *pdev)
 {
        struct plat_stmmacenet_data *plat_dat;
        struct stmmac_resources stmmac_res;
-       const struct of_device_id *match;
        struct intel_dwmac *dwmac;
        unsigned long rate;
        int ret;
@@ -98,10 +97,8 @@ static int intel_eth_plat_probe(struct platform_device *pdev)
        dwmac->dev = &pdev->dev;
        dwmac->tx_clk = NULL;
 
-       match = of_match_device(intel_eth_plat_match, &pdev->dev);
-       if (match && match->data) {
-               dwmac->data = (const struct intel_dwmac_data *)match->data;
-
+       dwmac->data = device_get_match_data(&pdev->dev);
+       if (dwmac->data) {
                if (dwmac->data->fix_mac_speed)
                        plat_dat->fix_mac_speed = dwmac->data->fix_mac_speed;
 
index 5d756df133eb4cdc55b001355f62cf3ab581a4fa..23f8bc1cd20da6943d00df89a6cbc01ca76502b0 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/clk.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/semaphore.h>
 #include <linux/phy.h>
 #include <linux/pm_runtime.h>
 #include <linux/davinci_emac.h>
 #include <linux/of.h>
-#include <linux/of_address.h>
-#include <linux/of_device.h>
 #include <linux/of_mdio.h>
-#include <linux/of_irq.h>
 #include <linux/of_net.h>
 #include <linux/mfd/syscon.h>
 
@@ -1726,13 +1724,10 @@ static const struct net_device_ops emac_netdev_ops = {
 #endif
 };
 
-static const struct of_device_id davinci_emac_of_match[];
-
 static struct emac_platform_data *
 davinci_emac_of_get_pdata(struct platform_device *pdev, struct emac_priv *priv)
 {
        struct device_node *np;
-       const struct of_device_id *match;
        const struct emac_platform_data *auxdata;
        struct emac_platform_data *pdata = NULL;
 
@@ -1779,9 +1774,8 @@ davinci_emac_of_get_pdata(struct platform_device *pdev, struct emac_priv *priv)
                pdata->interrupt_disable = auxdata->interrupt_disable;
        }
 
-       match = of_match_device(davinci_emac_of_match, &pdev->dev);
-       if (match && match->data) {
-               auxdata = match->data;
+       auxdata = device_get_match_data(&pdev->dev);
+       if (auxdata) {
                pdata->version = auxdata->version;
                pdata->hw_ram_addr = auxdata->hw_ram_addr;
        }
index 482ae82a99c1975546dbdb79e594b79f744be34c..de3bb9da3b13cdb7017aed26ba6cab674aef2072 100644 (file)
 #include <linux/mfd/syscon.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_irq.h>
 #include <linux/of_mdio.h>
 #include <linux/of_net.h>
-#include <linux/of_platform.h>
+#include <linux/platform_device.h>
 #include <linux/phy.h>
+#include <linux/property.h>
 #include <linux/remoteproc/pruss.h>
 #include <linux/regmap.h>
 #include <linux/remoteproc.h>
@@ -1934,8 +1934,6 @@ static void prueth_put_cores(struct prueth *prueth, int slice)
                pru_rproc_put(prueth->pru[slice]);
 }
 
-static const struct of_device_id prueth_dt_match[];
-
 static int prueth_probe(struct platform_device *pdev)
 {
        struct device_node *eth_node, *eth_ports_node;
@@ -1944,7 +1942,6 @@ static int prueth_probe(struct platform_device *pdev)
        struct genpool_data_align gp_data = {
                .align = SZ_64K,
        };
-       const struct of_device_id *match;
        struct device *dev = &pdev->dev;
        struct device_node *np;
        struct prueth *prueth;
@@ -1954,17 +1951,13 @@ static int prueth_probe(struct platform_device *pdev)
 
        np = dev->of_node;
 
-       match = of_match_device(prueth_dt_match, dev);
-       if (!match)
-               return -ENODEV;
-
        prueth = devm_kzalloc(dev, sizeof(*prueth), GFP_KERNEL);
        if (!prueth)
                return -ENOMEM;
 
        dev_set_drvdata(dev, prueth);
        prueth->pdev = pdev;
-       prueth->pdata = *(const struct prueth_pdata *)match->data;
+       prueth->pdata = *(const struct prueth_pdata *)device_get_match_data(dev);
 
        prueth->dev = dev;
        eth_ports_node = of_get_child_by_name(np, "ethernet-ports");