]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: stmmac: dwmac-loongson: Move queue number init to common function
authorHuacai Chen <chenhuacai@loongson.cn>
Thu, 24 Apr 2025 07:22:07 +0000 (15:22 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Apr 2025 11:42:13 +0000 (12:42 +0100)
Currently, the tx and rx queue number initialization is duplicated in
loongson_gmac_data() and loongson_gnet_data(), so move it to the common
function loongson_default_data().

This is a preparation for later patches.

Reviewed-by: Yanteng Si <si.yanteng@linux.dev>
Tested-by: Henry Chen <chenx97@aosc.io>
Tested-by: Biao Dong <dongbiao@loongson.cn>
Signed-off-by: Baoqi Zhang <zhangbaoqi@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c

index 1a93787056a7752c0f034fadfe3409669fdb93f4..2fb7a137b312dbf6495e795aa2dd71e737f15ce2 100644 (file)
@@ -83,6 +83,8 @@ struct stmmac_pci_info {
 static void loongson_default_data(struct pci_dev *pdev,
                                  struct plat_stmmacenet_data *plat)
 {
+       struct loongson_data *ld = plat->bsp_priv;
+
        /* Get bus_id, this can be overwritten later */
        plat->bus_id = pci_dev_id(pdev);
 
@@ -116,17 +118,6 @@ static void loongson_default_data(struct pci_dev *pdev,
 
        plat->dma_cfg->pbl = 32;
        plat->dma_cfg->pblx8 = true;
-}
-
-static int loongson_gmac_data(struct pci_dev *pdev,
-                             struct plat_stmmacenet_data *plat)
-{
-       struct loongson_data *ld;
-       int i;
-
-       ld = plat->bsp_priv;
-
-       loongson_default_data(pdev, plat);
 
        if (ld->loongson_id == DWMAC_CORE_LS_MULTICHAN) {
                plat->rx_queues_to_use = CHANNEL_NUM;
@@ -135,12 +126,18 @@ static int loongson_gmac_data(struct pci_dev *pdev,
                /* Only channel 0 supports checksum,
                 * so turn off checksum to enable multiple channels.
                 */
-               for (i = 1; i < CHANNEL_NUM; i++)
+               for (int i = 1; i < CHANNEL_NUM; i++)
                        plat->tx_queues_cfg[i].coe_unsupported = 1;
        } else {
                plat->tx_queues_to_use = 1;
                plat->rx_queues_to_use = 1;
        }
+}
+
+static int loongson_gmac_data(struct pci_dev *pdev,
+                             struct plat_stmmacenet_data *plat)
+{
+       loongson_default_data(pdev, plat);
 
        plat->phy_interface = PHY_INTERFACE_MODE_RGMII_ID;
 
@@ -172,27 +169,8 @@ static void loongson_gnet_fix_speed(void *priv, int speed, unsigned int mode)
 static int loongson_gnet_data(struct pci_dev *pdev,
                              struct plat_stmmacenet_data *plat)
 {
-       struct loongson_data *ld;
-       int i;
-
-       ld = plat->bsp_priv;
-
        loongson_default_data(pdev, plat);
 
-       if (ld->loongson_id == DWMAC_CORE_LS_MULTICHAN) {
-               plat->rx_queues_to_use = CHANNEL_NUM;
-               plat->tx_queues_to_use = CHANNEL_NUM;
-
-               /* Only channel 0 supports checksum,
-                * so turn off checksum to enable multiple channels.
-                */
-               for (i = 1; i < CHANNEL_NUM; i++)
-                       plat->tx_queues_cfg[i].coe_unsupported = 1;
-       } else {
-               plat->tx_queues_to_use = 1;
-               plat->rx_queues_to_use = 1;
-       }
-
        plat->phy_interface = PHY_INTERFACE_MODE_GMII;
        plat->mdio_bus_data->phy_mask = ~(u32)BIT(2);
        plat->fix_mac_speed = loongson_gnet_fix_speed;