]> git.itanic.dy.fi Git - linux-stable/commitdiff
net: fman: Pass params directly to mac init
authorSean Anderson <sean.anderson@seco.com>
Fri, 2 Sep 2022 21:57:28 +0000 (17:57 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Sep 2022 13:27:39 +0000 (14:27 +0100)
Instead of having the mac init functions call back into the fman core to
get their params, just pass them directly to the init functions.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Acked-by: Camelia Groza <camelia.groza@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fman/fman_dtsec.c
drivers/net/ethernet/freescale/fman/fman_dtsec.h
drivers/net/ethernet/freescale/fman/fman_memac.c
drivers/net/ethernet/freescale/fman/fman_memac.h
drivers/net/ethernet/freescale/fman/fman_tgec.c
drivers/net/ethernet/freescale/fman/fman_tgec.h
drivers/net/ethernet/freescale/fman/mac.c
drivers/net/ethernet/freescale/fman/mac.h

index c2c4677451a91921cdcc4204f33edaafbb8dd207..9fabb2dfc972325d0e428e52b66ec88162754334 100644 (file)
@@ -1474,10 +1474,10 @@ static struct fman_mac *dtsec_config(struct fman_mac_params *params)
 }
 
 int dtsec_initialization(struct mac_device *mac_dev,
-                        struct device_node *mac_node)
+                        struct device_node *mac_node,
+                        struct fman_mac_params *params)
 {
        int                     err;
-       struct fman_mac_params  params;
        struct fman_mac         *dtsec;
        struct device_node      *phy_node;
 
@@ -1495,11 +1495,7 @@ int dtsec_initialization(struct mac_device *mac_dev,
        mac_dev->enable                 = dtsec_enable;
        mac_dev->disable                = dtsec_disable;
 
-       err = set_fman_mac_params(mac_dev, &params);
-       if (err)
-               goto _return;
-
-       mac_dev->fman_mac = dtsec_config(&params);
+       mac_dev->fman_mac = dtsec_config(params);
        if (!mac_dev->fman_mac) {
                err = -EINVAL;
                goto _return;
index cf3e683c089c53a9827e8fafad2d97ea7a013324..8c72d280c51a5e8ea39d4f6181dfd6a2f0fb91d7 100644 (file)
@@ -11,6 +11,7 @@
 struct mac_device;
 
 int dtsec_initialization(struct mac_device *mac_dev,
-                        struct device_node *mac_node);
+                        struct device_node *mac_node,
+                        struct fman_mac_params *params);
 
 #endif /* __DTSEC_H */
index 19c2d657c41a5d01d79a71ee16a0d89599688cb4..5daa8c7626f4479de43f2b8cd8a2dd1a7c4a067a 100644 (file)
@@ -1154,11 +1154,11 @@ static struct fman_mac *memac_config(struct fman_mac_params *params)
 }
 
 int memac_initialization(struct mac_device *mac_dev,
-                        struct device_node *mac_node)
+                        struct device_node *mac_node,
+                        struct fman_mac_params *params)
 {
        int                      err;
        struct device_node      *phy_node;
-       struct fman_mac_params   params;
        struct fixed_phy_status *fixed_link;
        struct fman_mac         *memac;
 
@@ -1176,14 +1176,10 @@ int memac_initialization(struct mac_device *mac_dev,
        mac_dev->enable                 = memac_enable;
        mac_dev->disable                = memac_disable;
 
-       err = set_fman_mac_params(mac_dev, &params);
-       if (err)
-               goto _return;
-
-       if (params.max_speed == SPEED_10000)
-               params.phy_if = PHY_INTERFACE_MODE_XGMII;
+       if (params->max_speed == SPEED_10000)
+               params->phy_if = PHY_INTERFACE_MODE_XGMII;
 
-       mac_dev->fman_mac = memac_config(&params);
+       mac_dev->fman_mac = memac_config(params);
        if (!mac_dev->fman_mac) {
                err = -EINVAL;
                goto _return;
index a58215a3b1d98d181f483080b05ab099c16b2ffb..5a3a14f9684f8a1325a3b567f93b2b73beec926d 100644 (file)
@@ -14,6 +14,7 @@
 struct mac_device;
 
 int memac_initialization(struct mac_device *mac_dev,
-                        struct device_node *mac_node);
+                        struct device_node *mac_node,
+                        struct fman_mac_params *params);
 
 #endif /* __MEMAC_H */
index 32ee1674ff2f6fa7528d20d1372dd569c1e72d7e..f34f89e46a6f8f3c835a66b3cd592962f888317a 100644 (file)
@@ -783,10 +783,10 @@ static struct fman_mac *tgec_config(struct fman_mac_params *params)
 }
 
 int tgec_initialization(struct mac_device *mac_dev,
-                       struct device_node *mac_node)
+                       struct device_node *mac_node,
+                       struct fman_mac_params *params)
 {
        int err;
-       struct fman_mac_params  params;
        struct fman_mac         *tgec;
 
        mac_dev->set_promisc            = tgec_set_promiscuous;
@@ -803,11 +803,7 @@ int tgec_initialization(struct mac_device *mac_dev,
        mac_dev->enable                 = tgec_enable;
        mac_dev->disable                = tgec_disable;
 
-       err = set_fman_mac_params(mac_dev, &params);
-       if (err)
-               goto _return;
-
-       mac_dev->fman_mac = tgec_config(&params);
+       mac_dev->fman_mac = tgec_config(params);
        if (!mac_dev->fman_mac) {
                err = -EINVAL;
                goto _return;
index 2e45b9fea352b3091c5671bda093cbe87ef7b061..768b8d165e058bca2bd8142f7340380d2f2e7c8c 100644 (file)
@@ -11,6 +11,7 @@
 struct mac_device;
 
 int tgec_initialization(struct mac_device *mac_dev,
-                       struct device_node *mac_node);
+                       struct device_node *mac_node,
+                       struct fman_mac_params *params);
 
 #endif /* __TGEC_H */
index 62af81c0c942460f3df2bd77170d314b160015a5..fb04c1f9cd3ee76b076f44b8207429734769cb02 100644 (file)
@@ -57,25 +57,6 @@ static void mac_exception(void *handle, enum fman_mac_exceptions ex)
                __func__, ex);
 }
 
-int set_fman_mac_params(struct mac_device *mac_dev,
-                       struct fman_mac_params *params)
-{
-       struct mac_priv_s *priv = mac_dev->priv;
-
-       params->base_addr = mac_dev->vaddr;
-       memcpy(&params->addr, mac_dev->addr, sizeof(mac_dev->addr));
-       params->max_speed       = priv->max_speed;
-       params->phy_if          = mac_dev->phy_if;
-       params->basex_if        = false;
-       params->mac_id          = priv->cell_index;
-       params->fm              = (void *)priv->fman;
-       params->exception_cb    = mac_exception;
-       params->event_cb        = mac_exception;
-       params->dev_id          = mac_dev;
-
-       return 0;
-}
-
 int fman_set_multi(struct net_device *net_dev, struct mac_device *mac_dev)
 {
        struct mac_priv_s       *priv;
@@ -294,13 +275,15 @@ MODULE_DEVICE_TABLE(of, mac_match);
 static int mac_probe(struct platform_device *_of_dev)
 {
        int                      err, i, nph;
-       int (*init)(struct mac_device *mac_dev, struct device_node *mac_node);
+       int (*init)(struct mac_device *mac_dev, struct device_node *mac_node,
+                   struct fman_mac_params *params);
        struct device           *dev;
        struct device_node      *mac_node, *dev_node;
        struct mac_device       *mac_dev;
        struct platform_device  *of_dev;
        struct resource         *res;
        struct mac_priv_s       *priv;
+       struct fman_mac_params   params;
        u32                      val;
        u8                      fman_id;
        phy_interface_t          phy_if;
@@ -474,7 +457,18 @@ static int mac_probe(struct platform_device *_of_dev)
        /* Get the rest of the PHY information */
        mac_dev->phy_node = of_parse_phandle(mac_node, "phy-handle", 0);
 
-       err = init(mac_dev, mac_node);
+       params.base_addr = mac_dev->vaddr;
+       memcpy(&params.addr, mac_dev->addr, sizeof(mac_dev->addr));
+       params.max_speed        = priv->max_speed;
+       params.phy_if           = mac_dev->phy_if;
+       params.basex_if         = false;
+       params.mac_id           = priv->cell_index;
+       params.fm               = (void *)priv->fman;
+       params.exception_cb     = mac_exception;
+       params.event_cb         = mac_exception;
+       params.dev_id           = mac_dev;
+
+       err = init(mac_dev, mac_node, &params);
        if (err < 0) {
                dev_err(dev, "mac_dev->init() = %d\n", err);
                of_node_put(mac_dev->phy_node);
index 7aa71b05bd3ef6c1959209bddccd5a30a0ca9b68..c5fb4d46210fcc70e4a1ff055b7194903c047dc6 100644 (file)
@@ -72,8 +72,6 @@ int fman_set_mac_active_pause(struct mac_device *mac_dev, bool rx, bool tx);
 
 void fman_get_pause_cfg(struct mac_device *mac_dev, bool *rx_pause,
                        bool *tx_pause);
-int set_fman_mac_params(struct mac_device *mac_dev,
-                       struct fman_mac_params *params);
 int fman_set_multi(struct net_device *net_dev, struct mac_device *mac_dev);
 
 #endif /* __MAC_H */