realtek: fix compile errors in dsa driver for 5.10
authorINAGAKI Hiroshi <musashino.open@gmail.com>
Thu, 6 May 2021 15:38:22 +0000 (00:38 +0900)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sat, 25 Sep 2021 22:32:18 +0000 (00:32 +0200)
this patch fixes the following errors when compiling:

- dsa_switch_alloc is removed[1]

- a parameter "enum dsa_tag_protocol mprot" is added to dsa_tag_protocol
  in dsa_switch_ops (include/net/dsa.h)

- several paramters are added to "phylink_mac_link_up" in dsa_switch_ops
  (include/net/dsa.h)

  added:
    - int speed
    - int duplex
    - bool tx_pause
    - bool rx_pause

- a parameter "struct switchdev_trans *trans" is added to
  port_vlan_filtering in dsa_switch_ops (include/net/dsa.h)

[1]: https://lore.kernel.org/lkml/20191020031941.3805884-17-vivien.didelot@gmail.com/

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c
target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c

index a380906b92d2c335717b2efd6218dcbadc04cd09..ad69debcc81c2c3142d837c42c950902afd96aa8 100644 (file)
@@ -546,7 +546,7 @@ static int __init rtl83xx_sw_probe(struct platform_device *pdev)
        if (!priv)
                return -ENOMEM;
 
-       priv->ds = dsa_switch_alloc(dev, DSA_MAX_PORTS);
+       priv->ds = devm_kzalloc(dev, sizeof(*priv->ds), GFP_KERNEL);
 
        if (!priv->ds)
                return -ENOMEM;
index c2a230c4cbd54df327a6b795aac28edeb63c82ce..6c0ed5ae00945768d7f5f28e316c9f32de9a26ca 100644 (file)
@@ -101,7 +101,9 @@ const struct rtl83xx_mib_desc rtl83xx_mib[] = {
 /* DSA callbacks */
 
 
-static enum dsa_tag_protocol rtl83xx_get_tag_protocol(struct dsa_switch *ds, int port)
+static enum dsa_tag_protocol rtl83xx_get_tag_protocol(struct dsa_switch *ds,
+                                                     int port,
+                                                     enum dsa_tag_protocol mprot)
 {
        /* The switch does not tag the frames, instead internally the header
         * structure for each packet is tagged accordingly.
@@ -474,7 +476,9 @@ static void rtl83xx_phylink_mac_link_down(struct dsa_switch *ds, int port,
 static void rtl83xx_phylink_mac_link_up(struct dsa_switch *ds, int port,
                                   unsigned int mode,
                                   phy_interface_t interface,
-                                  struct phy_device *phydev)
+                                  struct phy_device *phydev,
+                                  int speed, int duplex,
+                                  bool tx_pause, bool rx_pause)
 {
        struct rtl838x_switch_priv *priv = ds->priv;
        /* Restart TX/RX to port */
@@ -824,7 +828,8 @@ void rtl930x_fast_age(struct dsa_switch *ds, int port)
 }
 
 static int rtl83xx_vlan_filtering(struct dsa_switch *ds, int port,
-                                 bool vlan_filtering)
+                                 bool vlan_filtering,
+                                 struct switchdev_trans *trans)
 {
        struct rtl838x_switch_priv *priv = ds->priv;