kernel: bump 5.15 to 5.15.72

Removed upstreamed:
  generic/pending-5.15/722-net-mt7531-only-do-PLL-once-after-the-reset.patch[1]
  bcm53xx/patches-5.15/082-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch[2]

All other patches automatically rebased

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200, mvebu/cortexa72
Run-tested: bcm2711/RPi4B, mt7622/RT3200, mvebu/cortexa72 (RB5009UG+S+IN)

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.72&id=5de02ab84aeca765da0e4d8e999af35325ac67c2
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.72&id=ab5c5787ab5ecdc4a7ea20b4ef542579e1beb49d

Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
John Audia 2022-10-05 06:04:11 -04:00 committed by Hauke Mehrtens
parent e2da6a0a59
commit 9110126620
33 changed files with 153 additions and 292 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .71 LINUX_VERSION-5.15 = .72
LINUX_KERNEL_HASH-5.15.71 = 5f5408138e016c0e029e015d98ceab86f4e6366c65cd611259dac808ab1d1e53 LINUX_KERNEL_HASH-5.15.72 = 6090323b5b471ae9d3bbc0058966113609f5bbd22fa19a76df32a8abc52f07ab

View File

@ -34,7 +34,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
mtd->type = MTD_NORFLASH; mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c --- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c
@@ -849,6 +849,17 @@ out_error: @@ -851,6 +851,17 @@ out_error:
*/ */
static void mtd_set_dev_defaults(struct mtd_info *mtd) static void mtd_set_dev_defaults(struct mtd_info *mtd)
{ {

View File

@ -58,7 +58,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
+ Routerboard RB4xx series. + Routerboard RB4xx series.
+ +
config SGI_MFD_IOC3 config SGI_MFD_IOC3
bool "SGI IOC3 core driver" bool "SGI IOC3 core driver"
depends on PCI && MIPS && 64BIT depends on PCI && MIPS && 64BIT
--- a/drivers/mfd/Makefile --- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile

View File

@ -44,8 +44,8 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
tristate "Xylon LogiCVC GPIO support" tristate "Xylon LogiCVC GPIO support"
depends on MFD_SYSCON && OF depends on MFD_SYSCON && OF
@@ -529,6 +536,10 @@ config GPIO_ROCKCHIP @@ -529,6 +536,10 @@ config GPIO_ROCKCHIP
help help
Say yes here to support GPIO on Rockchip SoCs. Say yes here to support GPIO on Rockchip SoCs.
+config GPIO_RB91X_KEY +config GPIO_RB91X_KEY
+ tristate "MikroTik RB91x board series reset key support" + tristate "MikroTik RB91x board series reset key support"

View File

@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
for_each_subsys(ss, ssid) { for_each_subsys(ss, ssid) {
if (ss->early_init) { if (ss->early_init) {
struct cgroup_subsys_state *css = struct cgroup_subsys_state *css =
@@ -6497,6 +6506,10 @@ static int __init cgroup_disable(char *s @@ -6503,6 +6512,10 @@ static int __init cgroup_disable(char *s
strcmp(token, ss->legacy_name)) strcmp(token, ss->legacy_name))
continue; continue;
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static_branch_disable(cgroup_subsys_enabled_key[i]); static_branch_disable(cgroup_subsys_enabled_key[i]);
pr_info("Disabling %s control group subsystem\n", pr_info("Disabling %s control group subsystem\n",
ss->name); ss->name);
@@ -6515,6 +6528,31 @@ static int __init cgroup_disable(char *s @@ -6521,6 +6534,31 @@ static int __init cgroup_disable(char *s
} }
__setup("cgroup_disable=", cgroup_disable); __setup("cgroup_disable=", cgroup_disable);

View File

@ -1,72 +0,0 @@
From 1b24a132eba7a1c19475ba2510ec1c00af3ff914 Mon Sep 17 00:00:00 2001
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Mon, 5 Sep 2022 09:15:03 -0700
Subject: [PATCH] clk: iproc: Do not rely on node name for correct PLL setup
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
After commit 31fd9b79dc58 ("ARM: dts: BCM5301X: update CRU block
description") a warning from clk-iproc-pll.c was generated due to a
duplicate PLL name as well as the console stopped working. Upon closer
inspection it became clear that iproc_pll_clk_setup() used the Device
Tree node unit name as an unique identifier as well as a parent name to
parent all clocks under the PLL.
BCM5301X was the first platform on which that got noticed because of the
DT node unit name renaming but the same assumptions hold true for any
user of the iproc_pll_clk_setup() function.
The first 'clock-output-names' property is always guaranteed to be
unique as well as providing the actual desired PLL clock name, so we
utilize that to register the PLL and as a parent name of all children
clock.
Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Rafał Miłecki <rafal@milecki.pl>
Link: https://lore.kernel.org/r/20220905161504.1526-1-f.fainelli@gmail.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
---
drivers/clk/bcm/clk-iproc-pll.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
--- a/drivers/clk/bcm/clk-iproc-pll.c
+++ b/drivers/clk/bcm/clk-iproc-pll.c
@@ -736,6 +736,7 @@ void iproc_pll_clk_setup(struct device_n
const char *parent_name;
struct iproc_clk *iclk_array;
struct clk_hw_onecell_data *clk_data;
+ const char *clk_name;
if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl))
return;
@@ -783,7 +784,12 @@ void iproc_pll_clk_setup(struct device_n
iclk = &iclk_array[0];
iclk->pll = pll;
- init.name = node->name;
+ ret = of_property_read_string_index(node, "clock-output-names",
+ 0, &clk_name);
+ if (WARN_ON(ret))
+ goto err_pll_register;
+
+ init.name = clk_name;
init.ops = &iproc_pll_ops;
init.flags = 0;
parent_name = of_clk_get_parent_name(node, 0);
@@ -803,13 +809,11 @@ void iproc_pll_clk_setup(struct device_n
goto err_pll_register;
clk_data->hws[0] = &iclk->hw;
+ parent_name = clk_name;
/* now initialize and register all leaf clocks */
for (i = 1; i < num_clks; i++) {
- const char *clk_name;
-
memset(&init, 0, sizeof(init));
- parent_name = node->name;
ret = of_property_read_string_index(node, "clock-output-names",
i, &clk_name);

View File

@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1188,27 +1188,31 @@ static int @@ -1191,27 +1191,31 @@ static int
mt7530_port_bridge_join(struct dsa_switch *ds, int port, mt7530_port_bridge_join(struct dsa_switch *ds, int port,
struct net_device *bridge) struct net_device *bridge)
{ {
@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
/* Add the all other ports to this port matrix. */ /* Add the all other ports to this port matrix. */
@@ -1301,24 +1305,28 @@ static void @@ -1304,24 +1308,28 @@ static void
mt7530_port_bridge_leave(struct dsa_switch *ds, int port, mt7530_port_bridge_leave(struct dsa_switch *ds, int port,
struct net_device *bridge) struct net_device *bridge)
{ {

View File

@ -23,7 +23,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2385,6 +2385,32 @@ mt7531_setup(struct dsa_switch *ds) @@ -2390,6 +2390,32 @@ mt7531_setup(struct dsa_switch *ds)
return 0; return 0;
} }
@ -56,7 +56,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static bool static bool
mt7530_phy_mode_supported(struct dsa_switch *ds, int port, mt7530_phy_mode_supported(struct dsa_switch *ds, int port,
const struct phylink_link_state *state) const struct phylink_link_state *state)
@@ -2421,6 +2447,37 @@ static bool mt7531_is_rgmii_port(struct @@ -2426,6 +2452,37 @@ static bool mt7531_is_rgmii_port(struct
return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII); return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII);
} }
@ -94,7 +94,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static bool static bool
mt7531_phy_mode_supported(struct dsa_switch *ds, int port, mt7531_phy_mode_supported(struct dsa_switch *ds, int port,
const struct phylink_link_state *state) const struct phylink_link_state *state)
@@ -2899,6 +2956,18 @@ mt7531_cpu_port_config(struct dsa_switch @@ -2902,6 +2959,18 @@ mt7531_cpu_port_config(struct dsa_switch
return 0; return 0;
} }
@ -113,7 +113,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static void static void
mt7530_mac_port_validate(struct dsa_switch *ds, int port, mt7530_mac_port_validate(struct dsa_switch *ds, int port,
unsigned long *supported) unsigned long *supported)
@@ -3134,6 +3203,7 @@ static const struct dsa_switch_ops mt753 @@ -3137,6 +3206,7 @@ static const struct dsa_switch_ops mt753
.port_vlan_del = mt7530_port_vlan_del, .port_vlan_del = mt7530_port_vlan_del,
.port_mirror_add = mt753x_port_mirror_add, .port_mirror_add = mt753x_port_mirror_add,
.port_mirror_del = mt753x_port_mirror_del, .port_mirror_del = mt753x_port_mirror_del,
@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.phylink_validate = mt753x_phylink_validate, .phylink_validate = mt753x_phylink_validate,
.phylink_mac_link_state = mt753x_phylink_mac_link_state, .phylink_mac_link_state = mt753x_phylink_mac_link_state,
.phylink_mac_config = mt753x_phylink_mac_config, .phylink_mac_config = mt753x_phylink_mac_config,
@@ -3151,6 +3221,7 @@ static const struct mt753x_info mt753x_t @@ -3154,6 +3224,7 @@ static const struct mt753x_info mt753x_t
.phy_read = mt7530_phy_read, .phy_read = mt7530_phy_read,
.phy_write = mt7530_phy_write, .phy_write = mt7530_phy_write,
.pad_setup = mt7530_pad_clk_setup, .pad_setup = mt7530_pad_clk_setup,
@ -129,7 +129,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.phy_mode_supported = mt7530_phy_mode_supported, .phy_mode_supported = mt7530_phy_mode_supported,
.mac_port_validate = mt7530_mac_port_validate, .mac_port_validate = mt7530_mac_port_validate,
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
@@ -3162,6 +3233,7 @@ static const struct mt753x_info mt753x_t @@ -3165,6 +3236,7 @@ static const struct mt753x_info mt753x_t
.phy_read = mt7530_phy_read, .phy_read = mt7530_phy_read,
.phy_write = mt7530_phy_write, .phy_write = mt7530_phy_write,
.pad_setup = mt7530_pad_clk_setup, .pad_setup = mt7530_pad_clk_setup,
@ -137,7 +137,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.phy_mode_supported = mt7530_phy_mode_supported, .phy_mode_supported = mt7530_phy_mode_supported,
.mac_port_validate = mt7530_mac_port_validate, .mac_port_validate = mt7530_mac_port_validate,
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
@@ -3174,6 +3246,7 @@ static const struct mt753x_info mt753x_t @@ -3177,6 +3249,7 @@ static const struct mt753x_info mt753x_t
.phy_write = mt7531_ind_phy_write, .phy_write = mt7531_ind_phy_write,
.pad_setup = mt7531_pad_setup, .pad_setup = mt7531_pad_setup,
.cpu_port_config = mt7531_cpu_port_config, .cpu_port_config = mt7531_cpu_port_config,
@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.phy_mode_supported = mt7531_phy_mode_supported, .phy_mode_supported = mt7531_phy_mode_supported,
.mac_port_validate = mt7531_mac_port_validate, .mac_port_validate = mt7531_mac_port_validate,
.mac_port_get_state = mt7531_phylink_mac_link_state, .mac_port_get_state = mt7531_phylink_mac_link_state,
@@ -3236,6 +3309,7 @@ mt7530_probe(struct mdio_device *mdiodev @@ -3239,6 +3312,7 @@ mt7530_probe(struct mdio_device *mdiodev
*/ */
if (!priv->info->sw_setup || !priv->info->pad_setup || if (!priv->info->sw_setup || !priv->info->pad_setup ||
!priv->info->phy_read || !priv->info->phy_write || !priv->info->phy_read || !priv->info->phy_write ||

View File

@ -21,7 +21,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2411,37 +2411,6 @@ static void mt7530_mac_port_get_caps(str @@ -2416,37 +2416,6 @@ static void mt7530_mac_port_get_caps(str
} }
} }
@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static bool mt7531_is_rgmii_port(struct mt7530_priv *priv, u32 port) static bool mt7531_is_rgmii_port(struct mt7530_priv *priv, u32 port)
{ {
return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII); return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII);
@@ -2478,44 +2447,6 @@ static void mt7531_mac_port_get_caps(str @@ -2483,44 +2452,6 @@ static void mt7531_mac_port_get_caps(str
} }
} }
@ -104,7 +104,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static int static int
mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state) mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state)
{ {
@@ -2770,9 +2701,6 @@ mt753x_phylink_mac_config(struct dsa_swi @@ -2775,9 +2706,6 @@ mt753x_phylink_mac_config(struct dsa_swi
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
u32 mcr_cur, mcr_new; u32 mcr_cur, mcr_new;
@ -114,7 +114,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
switch (port) { switch (port) {
case 0 ... 4: /* Internal phy */ case 0 ... 4: /* Internal phy */
if (state->interface != PHY_INTERFACE_MODE_GMII) if (state->interface != PHY_INTERFACE_MODE_GMII)
@@ -2990,12 +2918,6 @@ mt753x_phylink_validate(struct dsa_switc @@ -2993,12 +2921,6 @@ mt753x_phylink_validate(struct dsa_switc
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
@ -127,7 +127,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
phylink_set_port_modes(mask); phylink_set_port_modes(mask);
if (state->interface != PHY_INTERFACE_MODE_TRGMII && if (state->interface != PHY_INTERFACE_MODE_TRGMII &&
@@ -3222,7 +3144,6 @@ static const struct mt753x_info mt753x_t @@ -3225,7 +3147,6 @@ static const struct mt753x_info mt753x_t
.phy_write = mt7530_phy_write, .phy_write = mt7530_phy_write,
.pad_setup = mt7530_pad_clk_setup, .pad_setup = mt7530_pad_clk_setup,
.mac_port_get_caps = mt7530_mac_port_get_caps, .mac_port_get_caps = mt7530_mac_port_get_caps,
@ -135,7 +135,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.mac_port_validate = mt7530_mac_port_validate, .mac_port_validate = mt7530_mac_port_validate,
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
.mac_port_config = mt7530_mac_config, .mac_port_config = mt7530_mac_config,
@@ -3234,7 +3155,6 @@ static const struct mt753x_info mt753x_t @@ -3237,7 +3158,6 @@ static const struct mt753x_info mt753x_t
.phy_write = mt7530_phy_write, .phy_write = mt7530_phy_write,
.pad_setup = mt7530_pad_clk_setup, .pad_setup = mt7530_pad_clk_setup,
.mac_port_get_caps = mt7530_mac_port_get_caps, .mac_port_get_caps = mt7530_mac_port_get_caps,
@ -143,7 +143,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.mac_port_validate = mt7530_mac_port_validate, .mac_port_validate = mt7530_mac_port_validate,
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
.mac_port_config = mt7530_mac_config, .mac_port_config = mt7530_mac_config,
@@ -3247,7 +3167,6 @@ static const struct mt753x_info mt753x_t @@ -3250,7 +3170,6 @@ static const struct mt753x_info mt753x_t
.pad_setup = mt7531_pad_setup, .pad_setup = mt7531_pad_setup,
.cpu_port_config = mt7531_cpu_port_config, .cpu_port_config = mt7531_cpu_port_config,
.mac_port_get_caps = mt7531_mac_port_get_caps, .mac_port_get_caps = mt7531_mac_port_get_caps,
@ -151,7 +151,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.mac_port_validate = mt7531_mac_port_validate, .mac_port_validate = mt7531_mac_port_validate,
.mac_port_get_state = mt7531_phylink_mac_link_state, .mac_port_get_state = mt7531_phylink_mac_link_state,
.mac_port_config = mt7531_mac_config, .mac_port_config = mt7531_mac_config,
@@ -3310,7 +3229,6 @@ mt7530_probe(struct mdio_device *mdiodev @@ -3313,7 +3232,6 @@ mt7530_probe(struct mdio_device *mdiodev
if (!priv->info->sw_setup || !priv->info->pad_setup || if (!priv->info->sw_setup || !priv->info->pad_setup ||
!priv->info->phy_read || !priv->info->phy_write || !priv->info->phy_read || !priv->info->phy_write ||
!priv->info->mac_port_get_caps || !priv->info->mac_port_get_caps ||

View File

@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2942,11 +2942,6 @@ mt753x_phylink_validate(struct dsa_switc @@ -2945,11 +2945,6 @@ mt753x_phylink_validate(struct dsa_switc
linkmode_and(supported, supported, mask); linkmode_and(supported, supported, mask);
linkmode_and(state->advertising, state->advertising, mask); linkmode_and(state->advertising, state->advertising, mask);

View File

@ -23,7 +23,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2518,12 +2518,13 @@ static int mt7531_rgmii_setup(struct mt7 @@ -2523,12 +2523,13 @@ static int mt7531_rgmii_setup(struct mt7
} }
static void mt7531_sgmii_validate(struct mt7530_priv *priv, int port, static void mt7531_sgmii_validate(struct mt7530_priv *priv, int port,
@ -38,7 +38,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
phylink_set(supported, 2500baseX_Full); phylink_set(supported, 2500baseX_Full);
phylink_set(supported, 2500baseT_Full); phylink_set(supported, 2500baseT_Full);
} }
@@ -2898,16 +2899,18 @@ static void mt753x_phylink_get_caps(stru @@ -2901,16 +2902,18 @@ static void mt753x_phylink_get_caps(stru
static void static void
mt7530_mac_port_validate(struct dsa_switch *ds, int port, mt7530_mac_port_validate(struct dsa_switch *ds, int port,
@ -58,7 +58,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
static void static void
@@ -2930,12 +2933,13 @@ mt753x_phylink_validate(struct dsa_switc @@ -2933,12 +2936,13 @@ mt753x_phylink_validate(struct dsa_switc
} }
/* This switch only supports 1G full-duplex. */ /* This switch only supports 1G full-duplex. */

View File

@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2517,19 +2517,6 @@ static int mt7531_rgmii_setup(struct mt7 @@ -2522,19 +2522,6 @@ static int mt7531_rgmii_setup(struct mt7
return 0; return 0;
} }
@ -40,7 +40,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static void static void
mt7531_sgmii_link_up_force(struct dsa_switch *ds, int port, mt7531_sgmii_link_up_force(struct dsa_switch *ds, int port,
unsigned int mode, phy_interface_t interface, unsigned int mode, phy_interface_t interface,
@@ -2898,51 +2885,21 @@ static void mt753x_phylink_get_caps(stru @@ -2901,51 +2888,21 @@ static void mt753x_phylink_get_caps(stru
} }
static void static void
@ -97,7 +97,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
linkmode_and(supported, supported, mask); linkmode_and(supported, supported, mask);
linkmode_and(state->advertising, state->advertising, mask); linkmode_and(state->advertising, state->advertising, mask);
@@ -3143,7 +3100,6 @@ static const struct mt753x_info mt753x_t @@ -3146,7 +3103,6 @@ static const struct mt753x_info mt753x_t
.phy_write = mt7530_phy_write, .phy_write = mt7530_phy_write,
.pad_setup = mt7530_pad_clk_setup, .pad_setup = mt7530_pad_clk_setup,
.mac_port_get_caps = mt7530_mac_port_get_caps, .mac_port_get_caps = mt7530_mac_port_get_caps,
@ -105,7 +105,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
.mac_port_config = mt7530_mac_config, .mac_port_config = mt7530_mac_config,
}, },
@@ -3154,7 +3110,6 @@ static const struct mt753x_info mt753x_t @@ -3157,7 +3113,6 @@ static const struct mt753x_info mt753x_t
.phy_write = mt7530_phy_write, .phy_write = mt7530_phy_write,
.pad_setup = mt7530_pad_clk_setup, .pad_setup = mt7530_pad_clk_setup,
.mac_port_get_caps = mt7530_mac_port_get_caps, .mac_port_get_caps = mt7530_mac_port_get_caps,
@ -113,7 +113,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
.mac_port_config = mt7530_mac_config, .mac_port_config = mt7530_mac_config,
}, },
@@ -3166,7 +3121,6 @@ static const struct mt753x_info mt753x_t @@ -3169,7 +3124,6 @@ static const struct mt753x_info mt753x_t
.pad_setup = mt7531_pad_setup, .pad_setup = mt7531_pad_setup,
.cpu_port_config = mt7531_cpu_port_config, .cpu_port_config = mt7531_cpu_port_config,
.mac_port_get_caps = mt7531_mac_port_get_caps, .mac_port_get_caps = mt7531_mac_port_get_caps,
@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.mac_port_get_state = mt7531_phylink_mac_link_state, .mac_port_get_state = mt7531_phylink_mac_link_state,
.mac_port_config = mt7531_mac_config, .mac_port_config = mt7531_mac_config,
.mac_pcs_an_restart = mt7531_sgmii_restart_an, .mac_pcs_an_restart = mt7531_sgmii_restart_an,
@@ -3228,7 +3182,6 @@ mt7530_probe(struct mdio_device *mdiodev @@ -3231,7 +3185,6 @@ mt7530_probe(struct mdio_device *mdiodev
if (!priv->info->sw_setup || !priv->info->pad_setup || if (!priv->info->sw_setup || !priv->info->pad_setup ||
!priv->info->phy_read || !priv->info->phy_write || !priv->info->phy_read || !priv->info->phy_write ||
!priv->info->mac_port_get_caps || !priv->info->mac_port_get_caps ||

View File

@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
/* String, offset, and register size in bytes if different from 4 bytes */ /* String, offset, and register size in bytes if different from 4 bytes */
static const struct mt7530_mib_desc mt7530_mib[] = { static const struct mt7530_mib_desc mt7530_mib[] = {
MIB_DESC(1, 0x00, "TxDrop"), MIB_DESC(1, 0x00, "TxDrop"),
@@ -2517,12 +2522,11 @@ static int mt7531_rgmii_setup(struct mt7 @@ -2522,12 +2527,11 @@ static int mt7531_rgmii_setup(struct mt7
return 0; return 0;
} }
@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
unsigned int val; unsigned int val;
/* For adjusting speed and duplex of SGMII force mode. */ /* For adjusting speed and duplex of SGMII force mode. */
@@ -2548,6 +2552,9 @@ mt7531_sgmii_link_up_force(struct dsa_sw @@ -2553,6 +2557,9 @@ mt7531_sgmii_link_up_force(struct dsa_sw
/* MT7531 SGMII 1G force mode can only work in full duplex mode, /* MT7531 SGMII 1G force mode can only work in full duplex mode,
* no matter MT7531_SGMII_FORCE_HALF_DUPLEX is set or not. * no matter MT7531_SGMII_FORCE_HALF_DUPLEX is set or not.
@ -60,7 +60,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
*/ */
if ((speed == SPEED_10 || speed == SPEED_100) && if ((speed == SPEED_10 || speed == SPEED_100) &&
duplex != DUPLEX_FULL) duplex != DUPLEX_FULL)
@@ -2623,9 +2630,10 @@ static int mt7531_sgmii_setup_mode_an(st @@ -2628,9 +2635,10 @@ static int mt7531_sgmii_setup_mode_an(st
return 0; return 0;
} }
@ -73,7 +73,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u32 val; u32 val;
/* Only restart AN when AN is enabled */ /* Only restart AN when AN is enabled */
@@ -2682,6 +2690,24 @@ mt753x_mac_config(struct dsa_switch *ds, @@ -2687,6 +2695,24 @@ mt753x_mac_config(struct dsa_switch *ds,
return priv->info->mac_port_config(ds, port, mode, state->interface); return priv->info->mac_port_config(ds, port, mode, state->interface);
} }
@ -98,7 +98,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static void static void
mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
const struct phylink_link_state *state) const struct phylink_link_state *state)
@@ -2743,17 +2769,6 @@ unsupported: @@ -2748,17 +2774,6 @@ unsupported:
mt7530_write(priv, MT7530_PMCR_P(port), mcr_new); mt7530_write(priv, MT7530_PMCR_P(port), mcr_new);
} }
@ -116,7 +116,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port,
unsigned int mode, unsigned int mode,
phy_interface_t interface) phy_interface_t interface)
@@ -2763,16 +2778,13 @@ static void mt753x_phylink_mac_link_down @@ -2768,16 +2783,13 @@ static void mt753x_phylink_mac_link_down
mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK); mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK);
} }
@ -139,7 +139,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port,
@@ -2785,8 +2797,6 @@ static void mt753x_phylink_mac_link_up(s @@ -2790,8 +2802,6 @@ static void mt753x_phylink_mac_link_up(s
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
u32 mcr; u32 mcr;
@ -148,7 +148,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
mcr = PMCR_RX_EN | PMCR_TX_EN | PMCR_FORCE_LNK; mcr = PMCR_RX_EN | PMCR_TX_EN | PMCR_FORCE_LNK;
/* MT753x MAC works in 1G full duplex mode for all up-clocked /* MT753x MAC works in 1G full duplex mode for all up-clocked
@@ -2866,6 +2876,8 @@ mt7531_cpu_port_config(struct dsa_switch @@ -2869,6 +2879,8 @@ mt7531_cpu_port_config(struct dsa_switch
return ret; return ret;
mt7530_write(priv, MT7530_PMCR_P(port), mt7530_write(priv, MT7530_PMCR_P(port),
PMCR_CPU_PORT_SETTING(priv->id)); PMCR_CPU_PORT_SETTING(priv->id));
@ -157,7 +157,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL, mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL,
speed, DUPLEX_FULL, true, true); speed, DUPLEX_FULL, true, true);
@@ -2905,16 +2917,13 @@ mt753x_phylink_validate(struct dsa_switc @@ -2908,16 +2920,13 @@ mt753x_phylink_validate(struct dsa_switc
linkmode_and(state->advertising, state->advertising, mask); linkmode_and(state->advertising, state->advertising, mask);
} }
@ -178,7 +178,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
pmsr = mt7530_read(priv, MT7530_PMSR_P(port)); pmsr = mt7530_read(priv, MT7530_PMSR_P(port));
state->link = (pmsr & PMSR_LINK); state->link = (pmsr & PMSR_LINK);
@@ -2941,8 +2950,6 @@ mt7530_phylink_mac_link_state(struct dsa @@ -2944,8 +2953,6 @@ mt7530_phylink_mac_link_state(struct dsa
state->pause |= MLO_PAUSE_RX; state->pause |= MLO_PAUSE_RX;
if (pmsr & PMSR_TX_FC) if (pmsr & PMSR_TX_FC)
state->pause |= MLO_PAUSE_TX; state->pause |= MLO_PAUSE_TX;
@ -187,7 +187,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
static int static int
@@ -2984,32 +2991,49 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 @@ -2987,32 +2994,49 @@ mt7531_sgmii_pcs_get_state_an(struct mt7
return 0; return 0;
} }
@ -249,7 +249,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (ret) if (ret)
return ret; return ret;
@@ -3022,6 +3046,13 @@ mt753x_setup(struct dsa_switch *ds) @@ -3025,6 +3049,13 @@ mt753x_setup(struct dsa_switch *ds)
if (ret && priv->irq) if (ret && priv->irq)
mt7530_free_irq_common(priv); mt7530_free_irq_common(priv);
@ -263,7 +263,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
return ret; return ret;
} }
@@ -3083,9 +3114,8 @@ static const struct dsa_switch_ops mt753 @@ -3086,9 +3117,8 @@ static const struct dsa_switch_ops mt753
.port_mirror_del = mt753x_port_mirror_del, .port_mirror_del = mt753x_port_mirror_del,
.phylink_get_caps = mt753x_phylink_get_caps, .phylink_get_caps = mt753x_phylink_get_caps,
.phylink_validate = mt753x_phylink_validate, .phylink_validate = mt753x_phylink_validate,
@ -274,7 +274,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.phylink_mac_link_down = mt753x_phylink_mac_link_down, .phylink_mac_link_down = mt753x_phylink_mac_link_down,
.phylink_mac_link_up = mt753x_phylink_mac_link_up, .phylink_mac_link_up = mt753x_phylink_mac_link_up,
.get_mac_eee = mt753x_get_mac_eee, .get_mac_eee = mt753x_get_mac_eee,
@@ -3095,36 +3125,34 @@ static const struct dsa_switch_ops mt753 @@ -3098,36 +3128,34 @@ static const struct dsa_switch_ops mt753
static const struct mt753x_info mt753x_table[] = { static const struct mt753x_info mt753x_table[] = {
[ID_MT7621] = { [ID_MT7621] = {
.id = ID_MT7621, .id = ID_MT7621,
@ -314,7 +314,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
}, },
}; };
@@ -3182,7 +3210,7 @@ mt7530_probe(struct mdio_device *mdiodev @@ -3185,7 +3213,7 @@ mt7530_probe(struct mdio_device *mdiodev
if (!priv->info->sw_setup || !priv->info->pad_setup || if (!priv->info->sw_setup || !priv->info->pad_setup ||
!priv->info->phy_read || !priv->info->phy_write || !priv->info->phy_read || !priv->info->phy_write ||
!priv->info->mac_port_get_caps || !priv->info->mac_port_get_caps ||

View File

@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2896,25 +2896,16 @@ static void mt753x_phylink_get_caps(stru @@ -2899,25 +2899,16 @@ static void mt753x_phylink_get_caps(stru
priv->info->mac_port_get_caps(ds, port, config); priv->info->mac_port_get_caps(ds, port, config);
} }
@ -55,7 +55,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
static void mt7530_pcs_get_state(struct phylink_pcs *pcs, static void mt7530_pcs_get_state(struct phylink_pcs *pcs,
@@ -3016,12 +3007,14 @@ static void mt7530_pcs_an_restart(struct @@ -3019,12 +3010,14 @@ static void mt7530_pcs_an_restart(struct
} }
static const struct phylink_pcs_ops mt7530_pcs_ops = { static const struct phylink_pcs_ops mt7530_pcs_ops = {
@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
.pcs_get_state = mt7531_pcs_get_state, .pcs_get_state = mt7531_pcs_get_state,
.pcs_config = mt753x_pcs_config, .pcs_config = mt753x_pcs_config,
.pcs_an_restart = mt7531_pcs_an_restart, .pcs_an_restart = mt7531_pcs_an_restart,
@@ -3113,7 +3106,6 @@ static const struct dsa_switch_ops mt753 @@ -3116,7 +3109,6 @@ static const struct dsa_switch_ops mt753
.port_mirror_add = mt753x_port_mirror_add, .port_mirror_add = mt753x_port_mirror_add,
.port_mirror_del = mt753x_port_mirror_del, .port_mirror_del = mt753x_port_mirror_del,
.phylink_get_caps = mt753x_phylink_get_caps, .phylink_get_caps = mt753x_phylink_get_caps,

View File

@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2893,6 +2893,12 @@ static void mt753x_phylink_get_caps(stru @@ -2896,6 +2896,12 @@ static void mt753x_phylink_get_caps(stru
config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE | config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
MAC_10 | MAC_100 | MAC_1000FD; MAC_10 | MAC_100 | MAC_1000FD;

View File

@ -81,7 +81,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -3031,9 +3031,16 @@ static int @@ -3034,9 +3034,16 @@ static int
mt753x_setup(struct dsa_switch *ds) mt753x_setup(struct dsa_switch *ds)
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
@ -100,7 +100,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (ret) if (ret)
return ret; return ret;
@@ -3045,13 +3052,6 @@ mt753x_setup(struct dsa_switch *ds) @@ -3048,13 +3055,6 @@ mt753x_setup(struct dsa_switch *ds)
if (ret && priv->irq) if (ret && priv->irq)
mt7530_free_irq_common(priv); mt7530_free_irq_common(priv);

View File

@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1522,11 +1522,11 @@ static void @@ -1525,11 +1525,11 @@ static void
mt7530_hw_vlan_add(struct mt7530_priv *priv, mt7530_hw_vlan_add(struct mt7530_priv *priv,
struct mt7530_hw_vlan_entry *entry) struct mt7530_hw_vlan_entry *entry)
{ {
@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Validate the entry with independent learning, create egress tag per /* Validate the entry with independent learning, create egress tag per
* VLAN and joining the port as one of the port members. * VLAN and joining the port as one of the port members.
@@ -1537,22 +1537,20 @@ mt7530_hw_vlan_add(struct mt7530_priv *p @@ -1540,22 +1540,20 @@ mt7530_hw_vlan_add(struct mt7530_priv *p
/* Decide whether adding tag or not for those outgoing packets from the /* Decide whether adding tag or not for those outgoing packets from the
* port inside the VLAN. * port inside the VLAN.
@ -72,7 +72,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
static void static void
@@ -1571,11 +1569,7 @@ mt7530_hw_vlan_del(struct mt7530_priv *p @@ -1574,11 +1572,7 @@ mt7530_hw_vlan_del(struct mt7530_priv *p
return; return;
} }

View File

@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2087,11 +2087,12 @@ static int @@ -2090,11 +2090,12 @@ static int
mt7530_setup(struct dsa_switch *ds) mt7530_setup(struct dsa_switch *ds)
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
@ -30,7 +30,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 id, val; u32 id, val;
int ret, i; int ret, i;
@@ -2099,7 +2100,19 @@ mt7530_setup(struct dsa_switch *ds) @@ -2102,7 +2103,19 @@ mt7530_setup(struct dsa_switch *ds)
* controller also is the container for two GMACs nodes representing * controller also is the container for two GMACs nodes representing
* as two netdev instances. * as two netdev instances.
*/ */
@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
ds->assisted_learning_on_cpu_port = true; ds->assisted_learning_on_cpu_port = true;
ds->mtu_enforcement_ingress = true; ds->mtu_enforcement_ingress = true;
@@ -2261,6 +2274,7 @@ mt7531_setup(struct dsa_switch *ds) @@ -2264,6 +2277,7 @@ mt7531_setup(struct dsa_switch *ds)
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
struct mt7530_dummy_poll p; struct mt7530_dummy_poll p;
@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 val, id; u32 val, id;
int ret, i; int ret, i;
@@ -2333,8 +2347,11 @@ mt7531_setup(struct dsa_switch *ds) @@ -2338,8 +2352,11 @@ mt7531_setup(struct dsa_switch *ds)
CORE_PLL_GROUP4, val); CORE_PLL_GROUP4, val);
/* BPDU to CPU port */ /* BPDU to CPU port */

View File

@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1038,6 +1038,7 @@ static int @@ -1041,6 +1041,7 @@ static int
mt7530_port_enable(struct dsa_switch *ds, int port, mt7530_port_enable(struct dsa_switch *ds, int port,
struct phy_device *phy) struct phy_device *phy)
{ {
@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
mutex_lock(&priv->reg_mutex); mutex_lock(&priv->reg_mutex);
@@ -1046,7 +1047,11 @@ mt7530_port_enable(struct dsa_switch *ds @@ -1049,7 +1050,11 @@ mt7530_port_enable(struct dsa_switch *ds
* restore the port matrix if the port is the member of a certain * restore the port matrix if the port is the member of a certain
* bridge. * bridge.
*/ */
@ -42,7 +42,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
priv->ports[port].enable = true; priv->ports[port].enable = true;
mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
priv->ports[port].pm); priv->ports[port].pm);
@@ -1194,7 +1199,8 @@ mt7530_port_bridge_join(struct dsa_switc @@ -1197,7 +1202,8 @@ mt7530_port_bridge_join(struct dsa_switc
struct net_device *bridge) struct net_device *bridge)
{ {
struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; struct dsa_port *dp = dsa_to_port(ds, port), *other_dp;
@ -52,7 +52,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
mutex_lock(&priv->reg_mutex); mutex_lock(&priv->reg_mutex);
@@ -1271,9 +1277,12 @@ mt7530_port_set_vlan_unaware(struct dsa_ @@ -1274,9 +1280,12 @@ mt7530_port_set_vlan_unaware(struct dsa_
* the CPU port get out of VLAN filtering mode. * the CPU port get out of VLAN filtering mode.
*/ */
if (all_user_ports_removed) { if (all_user_ports_removed) {
@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
| PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT)); | PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT));
} }
} }
@@ -1311,6 +1320,7 @@ mt7530_port_bridge_leave(struct dsa_swit @@ -1314,6 +1323,7 @@ mt7530_port_bridge_leave(struct dsa_swit
struct net_device *bridge) struct net_device *bridge)
{ {
struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; struct dsa_port *dp = dsa_to_port(ds, port), *other_dp;
@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
mutex_lock(&priv->reg_mutex); mutex_lock(&priv->reg_mutex);
@@ -1339,8 +1349,8 @@ mt7530_port_bridge_leave(struct dsa_swit @@ -1342,8 +1352,8 @@ mt7530_port_bridge_leave(struct dsa_swit
*/ */
if (priv->ports[port].enable) if (priv->ports[port].enable)
mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* When a port is removed from the bridge, the port would be set up /* When a port is removed from the bridge, the port would be set up
* back to the default as is at initial boot which is a VLAN-unaware * back to the default as is at initial boot which is a VLAN-unaware
@@ -1503,6 +1513,9 @@ static int @@ -1506,6 +1516,9 @@ static int
mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
{ {
@ -96,7 +96,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (vlan_filtering) { if (vlan_filtering) {
/* The port is being kept as VLAN-unaware port when bridge is /* The port is being kept as VLAN-unaware port when bridge is
* set up with vlan_filtering not being set, Otherwise, the * set up with vlan_filtering not being set, Otherwise, the
@@ -1510,7 +1523,7 @@ mt7530_port_vlan_filtering(struct dsa_sw @@ -1513,7 +1526,7 @@ mt7530_port_vlan_filtering(struct dsa_sw
* for becoming a VLAN-aware port. * for becoming a VLAN-aware port.
*/ */
mt7530_port_set_vlan_aware(ds, port); mt7530_port_set_vlan_aware(ds, port);

View File

@ -62,8 +62,8 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
tx_q->dma_tx_phy, chan); tx_q->dma_tx_phy, chan);
stmmac_start_tx_dma(priv, chan); stmmac_start_tx_dma(priv, chan);
@@ -3757,6 +3748,8 @@ static int stmmac_open(struct net_device @@ -3766,6 +3757,8 @@ static int stmmac_open(struct net_device
goto init_error; }
} }
+ stmmac_reset_queues_param(priv); + stmmac_reset_queues_param(priv);
@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
ret = stmmac_hw_setup(dev, true); ret = stmmac_hw_setup(dev, true);
if (ret < 0) { if (ret < 0) {
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__); netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
@@ -6396,6 +6389,7 @@ void stmmac_enable_rx_queue(struct stmma @@ -6409,6 +6402,7 @@ void stmmac_enable_rx_queue(struct stmma
return; return;
} }
@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_clear_rx_descriptors(priv, queue); stmmac_clear_rx_descriptors(priv, queue);
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
@@ -6457,6 +6451,7 @@ void stmmac_enable_tx_queue(struct stmma @@ -6470,6 +6464,7 @@ void stmmac_enable_tx_queue(struct stmma
return; return;
} }
@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_clear_tx_descriptors(priv, queue); stmmac_clear_tx_descriptors(priv, queue);
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
@@ -7384,6 +7379,25 @@ int stmmac_suspend(struct device *dev) @@ -7387,6 +7382,25 @@ int stmmac_suspend(struct device *dev)
} }
EXPORT_SYMBOL_GPL(stmmac_suspend); EXPORT_SYMBOL_GPL(stmmac_suspend);
@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/** /**
* stmmac_reset_queues_param - reset queue parameters * stmmac_reset_queues_param - reset queue parameters
* @priv: device pointer * @priv: device pointer
@@ -7394,22 +7408,11 @@ static void stmmac_reset_queues_param(st @@ -7397,22 +7411,11 @@ static void stmmac_reset_queues_param(st
u32 tx_cnt = priv->plat->tx_queues_to_use; u32 tx_cnt = priv->plat->tx_queues_to_use;
u32 queue; u32 queue;

View File

@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3809,8 +3809,6 @@ static int stmmac_release(struct net_dev @@ -3818,8 +3818,6 @@ static int stmmac_release(struct net_dev
struct stmmac_priv *priv = netdev_priv(dev); struct stmmac_priv *priv = netdev_priv(dev);
u32 chan; u32 chan;
@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (device_may_wakeup(priv->device)) if (device_may_wakeup(priv->device))
phylink_speed_down(priv->phylink, false); phylink_speed_down(priv->phylink, false);
/* Stop and disconnect the PHY */ /* Stop and disconnect the PHY */
@@ -3822,6 +3820,8 @@ static int stmmac_release(struct net_dev @@ -3831,6 +3829,8 @@ static int stmmac_release(struct net_dev
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
hrtimer_cancel(&priv->tx_queue[chan].txtimer); hrtimer_cancel(&priv->tx_queue[chan].txtimer);

View File

@ -766,7 +766,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
int tbs_en = priv->plat->tx_queues_cfg[chan].tbs_en; int tbs_en = priv->plat->tx_queues_cfg[chan].tbs_en;
/* Setup per-TXQ tbs flag before TX descriptor alloc */ /* Setup per-TXQ tbs flag before TX descriptor alloc */
@@ -3776,7 +3776,7 @@ irq_error: @@ -3785,7 +3785,7 @@ irq_error:
phylink_stop(priv->phylink); phylink_stop(priv->phylink);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@ -775,7 +775,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_hw_teardown(dev); stmmac_hw_teardown(dev);
init_error: init_error:
@@ -3818,7 +3818,7 @@ static int stmmac_release(struct net_dev @@ -3827,7 +3827,7 @@ static int stmmac_release(struct net_dev
stmmac_disable_all_queues(priv); stmmac_disable_all_queues(priv);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@ -784,7 +784,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
netif_tx_disable(dev); netif_tx_disable(dev);
@@ -3878,7 +3878,7 @@ static bool stmmac_vlan_insert(struct st @@ -3891,7 +3891,7 @@ static bool stmmac_vlan_insert(struct st
return false; return false;
stmmac_set_tx_owner(priv, p); stmmac_set_tx_owner(priv, p);
@ -793,7 +793,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
return true; return true;
} }
@@ -3896,7 +3896,7 @@ static bool stmmac_vlan_insert(struct st @@ -3909,7 +3909,7 @@ static bool stmmac_vlan_insert(struct st
static void stmmac_tso_allocator(struct stmmac_priv *priv, dma_addr_t des, static void stmmac_tso_allocator(struct stmmac_priv *priv, dma_addr_t des,
int total_len, bool last_segment, u32 queue) int total_len, bool last_segment, u32 queue)
{ {
@ -802,7 +802,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct dma_desc *desc; struct dma_desc *desc;
u32 buff_size; u32 buff_size;
int tmp_len; int tmp_len;
@@ -3907,7 +3907,7 @@ static void stmmac_tso_allocator(struct @@ -3920,7 +3920,7 @@ static void stmmac_tso_allocator(struct
dma_addr_t curr_addr; dma_addr_t curr_addr;
tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx, tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx,
@ -811,7 +811,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]); WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
if (tx_q->tbs & STMMAC_TBS_AVAIL) if (tx_q->tbs & STMMAC_TBS_AVAIL)
@@ -3935,7 +3935,7 @@ static void stmmac_tso_allocator(struct @@ -3948,7 +3948,7 @@ static void stmmac_tso_allocator(struct
static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue) static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue)
{ {
@ -820,7 +820,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
int desc_size; int desc_size;
if (likely(priv->extend_desc)) if (likely(priv->extend_desc))
@@ -3997,7 +3997,7 @@ static netdev_tx_t stmmac_tso_xmit(struc @@ -4010,7 +4010,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
dma_addr_t des; dma_addr_t des;
int i; int i;
@ -829,7 +829,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
first_tx = tx_q->cur_tx; first_tx = tx_q->cur_tx;
/* Compute header lengths */ /* Compute header lengths */
@@ -4037,7 +4037,7 @@ static netdev_tx_t stmmac_tso_xmit(struc @@ -4050,7 +4050,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
stmmac_set_mss(priv, mss_desc, mss); stmmac_set_mss(priv, mss_desc, mss);
tx_q->mss = mss; tx_q->mss = mss;
tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx, tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx,
@ -838,7 +838,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]); WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
} }
@@ -4149,7 +4149,7 @@ static netdev_tx_t stmmac_tso_xmit(struc @@ -4162,7 +4162,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
* ndo_start_xmit will fill this descriptor the next time it's * ndo_start_xmit will fill this descriptor the next time it's
* called and stmmac_tx_clean may clean up to this descriptor. * called and stmmac_tx_clean may clean up to this descriptor.
*/ */
@ -847,7 +847,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (unlikely(stmmac_tx_avail(priv, queue) <= (MAX_SKB_FRAGS + 1))) { if (unlikely(stmmac_tx_avail(priv, queue) <= (MAX_SKB_FRAGS + 1))) {
netif_dbg(priv, hw, priv->dev, "%s: stop transmitted packets\n", netif_dbg(priv, hw, priv->dev, "%s: stop transmitted packets\n",
@@ -4237,7 +4237,7 @@ static netdev_tx_t stmmac_xmit(struct sk @@ -4250,7 +4250,7 @@ static netdev_tx_t stmmac_xmit(struct sk
int entry, first_tx; int entry, first_tx;
dma_addr_t des; dma_addr_t des;
@ -856,7 +856,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
first_tx = tx_q->cur_tx; first_tx = tx_q->cur_tx;
if (priv->tx_path_in_lpi_mode && priv->eee_sw_timer_en) if (priv->tx_path_in_lpi_mode && priv->eee_sw_timer_en)
@@ -4300,7 +4300,7 @@ static netdev_tx_t stmmac_xmit(struct sk @@ -4313,7 +4313,7 @@ static netdev_tx_t stmmac_xmit(struct sk
int len = skb_frag_size(frag); int len = skb_frag_size(frag);
bool last_segment = (i == (nfrags - 1)); bool last_segment = (i == (nfrags - 1));
@ -865,7 +865,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
WARN_ON(tx_q->tx_skbuff[entry]); WARN_ON(tx_q->tx_skbuff[entry]);
if (likely(priv->extend_desc)) if (likely(priv->extend_desc))
@@ -4371,7 +4371,7 @@ static netdev_tx_t stmmac_xmit(struct sk @@ -4384,7 +4384,7 @@ static netdev_tx_t stmmac_xmit(struct sk
* ndo_start_xmit will fill this descriptor the next time it's * ndo_start_xmit will fill this descriptor the next time it's
* called and stmmac_tx_clean may clean up to this descriptor. * called and stmmac_tx_clean may clean up to this descriptor.
*/ */
@ -874,7 +874,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tx_q->cur_tx = entry; tx_q->cur_tx = entry;
if (netif_msg_pktdata(priv)) { if (netif_msg_pktdata(priv)) {
@@ -4486,7 +4486,7 @@ static void stmmac_rx_vlan(struct net_de @@ -4499,7 +4499,7 @@ static void stmmac_rx_vlan(struct net_de
*/ */
static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue) static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue)
{ {
@ -883,7 +883,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
int dirty = stmmac_rx_dirty(priv, queue); int dirty = stmmac_rx_dirty(priv, queue);
unsigned int entry = rx_q->dirty_rx; unsigned int entry = rx_q->dirty_rx;
@@ -4536,7 +4536,7 @@ static inline void stmmac_rx_refill(stru @@ -4549,7 +4549,7 @@ static inline void stmmac_rx_refill(stru
dma_wmb(); dma_wmb();
stmmac_set_rx_owner(priv, p, use_rx_wd); stmmac_set_rx_owner(priv, p, use_rx_wd);
@ -892,7 +892,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
rx_q->dirty_rx = entry; rx_q->dirty_rx = entry;
rx_q->rx_tail_addr = rx_q->dma_rx_phy + rx_q->rx_tail_addr = rx_q->dma_rx_phy +
@@ -4564,12 +4564,12 @@ static unsigned int stmmac_rx_buf1_len(s @@ -4577,12 +4577,12 @@ static unsigned int stmmac_rx_buf1_len(s
/* First descriptor, not last descriptor and not split header */ /* First descriptor, not last descriptor and not split header */
if (status & rx_not_ls) if (status & rx_not_ls)
@ -907,7 +907,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
static unsigned int stmmac_rx_buf2_len(struct stmmac_priv *priv, static unsigned int stmmac_rx_buf2_len(struct stmmac_priv *priv,
@@ -4585,7 +4585,7 @@ static unsigned int stmmac_rx_buf2_len(s @@ -4598,7 +4598,7 @@ static unsigned int stmmac_rx_buf2_len(s
/* Not last descriptor */ /* Not last descriptor */
if (status & rx_not_ls) if (status & rx_not_ls)
@ -916,7 +916,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
plen = stmmac_get_rx_frame_len(priv, p, coe); plen = stmmac_get_rx_frame_len(priv, p, coe);
@@ -4596,7 +4596,7 @@ static unsigned int stmmac_rx_buf2_len(s @@ -4609,7 +4609,7 @@ static unsigned int stmmac_rx_buf2_len(s
static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *priv, int queue, static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *priv, int queue,
struct xdp_frame *xdpf, bool dma_map) struct xdp_frame *xdpf, bool dma_map)
{ {
@ -925,7 +925,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
unsigned int entry = tx_q->cur_tx; unsigned int entry = tx_q->cur_tx;
struct dma_desc *tx_desc; struct dma_desc *tx_desc;
dma_addr_t dma_addr; dma_addr_t dma_addr;
@@ -4659,7 +4659,7 @@ static int stmmac_xdp_xmit_xdpf(struct s @@ -4672,7 +4672,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
stmmac_enable_dma_transmission(priv, priv->ioaddr); stmmac_enable_dma_transmission(priv, priv->ioaddr);
@ -934,7 +934,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tx_q->cur_tx = entry; tx_q->cur_tx = entry;
return STMMAC_XDP_TX; return STMMAC_XDP_TX;
@@ -4833,7 +4833,7 @@ static void stmmac_dispatch_skb_zc(struc @@ -4846,7 +4846,7 @@ static void stmmac_dispatch_skb_zc(struc
static bool stmmac_rx_refill_zc(struct stmmac_priv *priv, u32 queue, u32 budget) static bool stmmac_rx_refill_zc(struct stmmac_priv *priv, u32 queue, u32 budget)
{ {
@ -943,7 +943,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
unsigned int entry = rx_q->dirty_rx; unsigned int entry = rx_q->dirty_rx;
struct dma_desc *rx_desc = NULL; struct dma_desc *rx_desc = NULL;
bool ret = true; bool ret = true;
@@ -4876,7 +4876,7 @@ static bool stmmac_rx_refill_zc(struct s @@ -4889,7 +4889,7 @@ static bool stmmac_rx_refill_zc(struct s
dma_wmb(); dma_wmb();
stmmac_set_rx_owner(priv, rx_desc, use_rx_wd); stmmac_set_rx_owner(priv, rx_desc, use_rx_wd);
@ -952,7 +952,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
if (rx_desc) { if (rx_desc) {
@@ -4891,7 +4891,7 @@ static bool stmmac_rx_refill_zc(struct s @@ -4904,7 +4904,7 @@ static bool stmmac_rx_refill_zc(struct s
static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue) static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue)
{ {
@ -961,7 +961,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
unsigned int count = 0, error = 0, len = 0; unsigned int count = 0, error = 0, len = 0;
int dirty = stmmac_rx_dirty(priv, queue); int dirty = stmmac_rx_dirty(priv, queue);
unsigned int next_entry = rx_q->cur_rx; unsigned int next_entry = rx_q->cur_rx;
@@ -4913,7 +4913,7 @@ static int stmmac_rx_zc(struct stmmac_pr @@ -4926,7 +4926,7 @@ static int stmmac_rx_zc(struct stmmac_pr
desc_size = sizeof(struct dma_desc); desc_size = sizeof(struct dma_desc);
} }
@ -970,7 +970,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
rx_q->dma_rx_phy, desc_size); rx_q->dma_rx_phy, desc_size);
} }
while (count < limit) { while (count < limit) {
@@ -4960,7 +4960,7 @@ read_again: @@ -4973,7 +4973,7 @@ read_again:
/* Prefetch the next RX descriptor */ /* Prefetch the next RX descriptor */
rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx, rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@ -979,7 +979,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
next_entry = rx_q->cur_rx; next_entry = rx_q->cur_rx;
if (priv->extend_desc) if (priv->extend_desc)
@@ -5081,7 +5081,7 @@ read_again: @@ -5094,7 +5094,7 @@ read_again:
*/ */
static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue) static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
{ {
@ -988,7 +988,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct stmmac_channel *ch = &priv->channel[queue]; struct stmmac_channel *ch = &priv->channel[queue];
unsigned int count = 0, error = 0, len = 0; unsigned int count = 0, error = 0, len = 0;
int status = 0, coe = priv->hw->rx_csum; int status = 0, coe = priv->hw->rx_csum;
@@ -5094,7 +5094,7 @@ static int stmmac_rx(struct stmmac_priv @@ -5107,7 +5107,7 @@ static int stmmac_rx(struct stmmac_priv
int buf_sz; int buf_sz;
dma_dir = page_pool_get_dma_dir(rx_q->page_pool); dma_dir = page_pool_get_dma_dir(rx_q->page_pool);
@ -997,7 +997,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (netif_msg_rx_status(priv)) { if (netif_msg_rx_status(priv)) {
void *rx_head; void *rx_head;
@@ -5108,7 +5108,7 @@ static int stmmac_rx(struct stmmac_priv @@ -5121,7 +5121,7 @@ static int stmmac_rx(struct stmmac_priv
desc_size = sizeof(struct dma_desc); desc_size = sizeof(struct dma_desc);
} }
@ -1006,7 +1006,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
rx_q->dma_rx_phy, desc_size); rx_q->dma_rx_phy, desc_size);
} }
while (count < limit) { while (count < limit) {
@@ -5152,7 +5152,7 @@ read_again: @@ -5165,7 +5165,7 @@ read_again:
break; break;
rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx, rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@ -1015,7 +1015,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
next_entry = rx_q->cur_rx; next_entry = rx_q->cur_rx;
if (priv->extend_desc) if (priv->extend_desc)
@@ -5286,7 +5286,7 @@ read_again: @@ -5299,7 +5299,7 @@ read_again:
buf1_len, dma_dir); buf1_len, dma_dir);
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
buf->page, buf->page_offset, buf1_len, buf->page, buf->page_offset, buf1_len,
@ -1024,7 +1024,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Data payload appended into SKB */ /* Data payload appended into SKB */
page_pool_release_page(rx_q->page_pool, buf->page); page_pool_release_page(rx_q->page_pool, buf->page);
@@ -5298,7 +5298,7 @@ read_again: @@ -5311,7 +5311,7 @@ read_again:
buf2_len, dma_dir); buf2_len, dma_dir);
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
buf->sec_page, 0, buf2_len, buf->sec_page, 0, buf2_len,
@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Data payload appended into SKB */ /* Data payload appended into SKB */
page_pool_release_page(rx_q->page_pool, buf->sec_page); page_pool_release_page(rx_q->page_pool, buf->sec_page);
@@ -5740,11 +5740,13 @@ static irqreturn_t stmmac_safety_interru @@ -5753,11 +5753,13 @@ static irqreturn_t stmmac_safety_interru
static irqreturn_t stmmac_msi_intr_tx(int irq, void *data) static irqreturn_t stmmac_msi_intr_tx(int irq, void *data)
{ {
struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data; struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data;
@ -1048,7 +1048,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (unlikely(!data)) { if (unlikely(!data)) {
netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__); netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
@@ -5784,10 +5786,12 @@ static irqreturn_t stmmac_msi_intr_tx(in @@ -5797,10 +5799,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
static irqreturn_t stmmac_msi_intr_rx(int irq, void *data) static irqreturn_t stmmac_msi_intr_rx(int irq, void *data)
{ {
struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data; struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data;
@ -1062,7 +1062,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (unlikely(!data)) { if (unlikely(!data)) {
netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__); netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
@@ -5818,10 +5822,10 @@ static void stmmac_poll_controller(struc @@ -5831,10 +5835,10 @@ static void stmmac_poll_controller(struc
if (priv->plat->multi_msi_en) { if (priv->plat->multi_msi_en) {
for (i = 0; i < priv->plat->rx_queues_to_use; i++) for (i = 0; i < priv->plat->rx_queues_to_use; i++)
@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} else { } else {
disable_irq(dev->irq); disable_irq(dev->irq);
stmmac_interrupt(dev->irq, dev); stmmac_interrupt(dev->irq, dev);
@@ -6002,34 +6006,34 @@ static int stmmac_rings_status_show(stru @@ -6015,34 +6019,34 @@ static int stmmac_rings_status_show(stru
return 0; return 0;
for (queue = 0; queue < rx_count; queue++) { for (queue = 0; queue < rx_count; queue++) {
@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
} }
@@ -6370,7 +6374,7 @@ void stmmac_disable_rx_queue(struct stmm @@ -6383,7 +6387,7 @@ void stmmac_disable_rx_queue(struct stmm
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue) void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
{ {
@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct stmmac_channel *ch = &priv->channel[queue]; struct stmmac_channel *ch = &priv->channel[queue];
unsigned long flags; unsigned long flags;
u32 buf_size; u32 buf_size;
@@ -6407,7 +6411,7 @@ void stmmac_enable_rx_queue(struct stmma @@ -6420,7 +6424,7 @@ void stmmac_enable_rx_queue(struct stmma
rx_q->queue_index); rx_q->queue_index);
} else { } else {
stmmac_set_dma_bfsize(priv, priv->ioaddr, stmmac_set_dma_bfsize(priv, priv->ioaddr,
@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
rx_q->queue_index); rx_q->queue_index);
} }
@@ -6433,7 +6437,7 @@ void stmmac_disable_tx_queue(struct stmm @@ -6446,7 +6450,7 @@ void stmmac_disable_tx_queue(struct stmm
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue) void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
{ {
@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct stmmac_channel *ch = &priv->channel[queue]; struct stmmac_channel *ch = &priv->channel[queue];
unsigned long flags; unsigned long flags;
int ret; int ret;
@@ -6480,7 +6484,7 @@ void stmmac_xdp_release(struct net_devic @@ -6493,7 +6497,7 @@ void stmmac_xdp_release(struct net_devic
stmmac_disable_all_queues(priv); stmmac_disable_all_queues(priv);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Free the IRQ lines */ /* Free the IRQ lines */
stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0); stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
@@ -6539,7 +6543,7 @@ int stmmac_xdp_open(struct net_device *d @@ -6552,7 +6556,7 @@ int stmmac_xdp_open(struct net_device *d
/* DMA RX Channel Configuration */ /* DMA RX Channel Configuration */
for (chan = 0; chan < rx_cnt; chan++) { for (chan = 0; chan < rx_cnt; chan++) {
@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
rx_q->dma_rx_phy, chan); rx_q->dma_rx_phy, chan);
@@ -6557,7 +6561,7 @@ int stmmac_xdp_open(struct net_device *d @@ -6570,7 +6574,7 @@ int stmmac_xdp_open(struct net_device *d
rx_q->queue_index); rx_q->queue_index);
} else { } else {
stmmac_set_dma_bfsize(priv, priv->ioaddr, stmmac_set_dma_bfsize(priv, priv->ioaddr,
@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
rx_q->queue_index); rx_q->queue_index);
} }
@@ -6566,7 +6570,7 @@ int stmmac_xdp_open(struct net_device *d @@ -6579,7 +6583,7 @@ int stmmac_xdp_open(struct net_device *d
/* DMA TX Channel Configuration */ /* DMA TX Channel Configuration */
for (chan = 0; chan < tx_cnt; chan++) { for (chan = 0; chan < tx_cnt; chan++) {
@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
tx_q->dma_tx_phy, chan); tx_q->dma_tx_phy, chan);
@@ -6599,7 +6603,7 @@ int stmmac_xdp_open(struct net_device *d @@ -6612,7 +6616,7 @@ int stmmac_xdp_open(struct net_device *d
irq_error: irq_error:
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_hw_teardown(dev); stmmac_hw_teardown(dev);
init_error: init_error:
@@ -6626,8 +6630,8 @@ int stmmac_xsk_wakeup(struct net_device @@ -6639,8 +6643,8 @@ int stmmac_xsk_wakeup(struct net_device
queue >= priv->plat->tx_queues_to_use) queue >= priv->plat->tx_queues_to_use)
return -EINVAL; return -EINVAL;
@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
ch = &priv->channel[queue]; ch = &priv->channel[queue];
if (!rx_q->xsk_pool && !tx_q->xsk_pool) if (!rx_q->xsk_pool && !tx_q->xsk_pool)
@@ -6883,8 +6887,8 @@ int stmmac_reinit_ringparam(struct net_d @@ -6896,8 +6900,8 @@ int stmmac_reinit_ringparam(struct net_d
if (netif_running(dev)) if (netif_running(dev))
stmmac_release(dev); stmmac_release(dev);
@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (netif_running(dev)) if (netif_running(dev))
ret = stmmac_open(dev); ret = stmmac_open(dev);
@@ -7330,7 +7334,7 @@ int stmmac_suspend(struct device *dev) @@ -7333,7 +7337,7 @@ int stmmac_suspend(struct device *dev)
stmmac_disable_all_queues(priv); stmmac_disable_all_queues(priv);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (priv->eee_enabled) { if (priv->eee_enabled) {
priv->tx_path_in_lpi_mode = false; priv->tx_path_in_lpi_mode = false;
@@ -7381,7 +7385,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend); @@ -7384,7 +7388,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue) static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
{ {
@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
rx_q->cur_rx = 0; rx_q->cur_rx = 0;
rx_q->dirty_rx = 0; rx_q->dirty_rx = 0;
@@ -7389,7 +7393,7 @@ static void stmmac_reset_rx_queue(struct @@ -7392,7 +7396,7 @@ static void stmmac_reset_rx_queue(struct
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue) static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
{ {

View File

@ -1003,9 +1003,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+ buf_sz = dma_conf->dma_buf_sz; + buf_sz = dma_conf->dma_buf_sz;
+ memcpy(&priv->dma_conf, dma_conf, sizeof(*dma_conf)); + memcpy(&priv->dma_conf, dma_conf, sizeof(*dma_conf));
stmmac_reset_queues_param(priv); if (priv->plat->serdes_powerup) {
ret = priv->plat->serdes_powerup(dev, priv->plat->bsp_priv);
@@ -3780,14 +3882,28 @@ irq_error: @@ -3789,14 +3891,28 @@ irq_error:
stmmac_hw_teardown(dev); stmmac_hw_teardown(dev);
init_error: init_error:
@ -1036,7 +1036,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
static void stmmac_fpe_stop_wq(struct stmmac_priv *priv) static void stmmac_fpe_stop_wq(struct stmmac_priv *priv)
{ {
set_bit(__FPE_REMOVING, &priv->fpe_task_state); set_bit(__FPE_REMOVING, &priv->fpe_task_state);
@@ -3834,7 +3950,7 @@ static int stmmac_release(struct net_dev @@ -3843,7 +3959,7 @@ static int stmmac_release(struct net_dev
stmmac_stop_all_dma(priv); stmmac_stop_all_dma(priv);
/* Release and free the Rx/Tx resources */ /* Release and free the Rx/Tx resources */
@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Disable the MAC Rx/Tx */ /* Disable the MAC Rx/Tx */
stmmac_mac_set(priv, priv->ioaddr, false); stmmac_mac_set(priv, priv->ioaddr, false);
@@ -6369,7 +6485,7 @@ void stmmac_disable_rx_queue(struct stmm @@ -6382,7 +6498,7 @@ void stmmac_disable_rx_queue(struct stmm
spin_unlock_irqrestore(&ch->lock, flags); spin_unlock_irqrestore(&ch->lock, flags);
stmmac_stop_rx_dma(priv, queue); stmmac_stop_rx_dma(priv, queue);
@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue) void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
@@ -6380,21 +6496,21 @@ void stmmac_enable_rx_queue(struct stmma @@ -6393,21 +6509,21 @@ void stmmac_enable_rx_queue(struct stmma
u32 buf_size; u32 buf_size;
int ret; int ret;
@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
rx_q->dma_rx_phy, rx_q->queue_index); rx_q->dma_rx_phy, rx_q->queue_index);
@@ -6432,7 +6548,7 @@ void stmmac_disable_tx_queue(struct stmm @@ -6445,7 +6561,7 @@ void stmmac_disable_tx_queue(struct stmm
spin_unlock_irqrestore(&ch->lock, flags); spin_unlock_irqrestore(&ch->lock, flags);
stmmac_stop_tx_dma(priv, queue); stmmac_stop_tx_dma(priv, queue);
@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue) void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
@@ -6442,21 +6558,21 @@ void stmmac_enable_tx_queue(struct stmma @@ -6455,21 +6571,21 @@ void stmmac_enable_tx_queue(struct stmma
unsigned long flags; unsigned long flags;
int ret; int ret;
@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
tx_q->dma_tx_phy, tx_q->queue_index); tx_q->dma_tx_phy, tx_q->queue_index);
@@ -6493,7 +6609,7 @@ void stmmac_xdp_release(struct net_devic @@ -6506,7 +6622,7 @@ void stmmac_xdp_release(struct net_devic
stmmac_stop_all_dma(priv); stmmac_stop_all_dma(priv);
/* Release and free the Rx/Tx resources */ /* Release and free the Rx/Tx resources */
@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Disable the MAC Rx/Tx */ /* Disable the MAC Rx/Tx */
stmmac_mac_set(priv, priv->ioaddr, false); stmmac_mac_set(priv, priv->ioaddr, false);
@@ -6518,14 +6634,14 @@ int stmmac_xdp_open(struct net_device *d @@ -6531,14 +6647,14 @@ int stmmac_xdp_open(struct net_device *d
u32 chan; u32 chan;
int ret; int ret;
@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (ret < 0) { if (ret < 0) {
netdev_err(dev, "%s: DMA descriptors initialization failed\n", netdev_err(dev, "%s: DMA descriptors initialization failed\n",
__func__); __func__);
@@ -6607,7 +6723,7 @@ irq_error: @@ -6620,7 +6736,7 @@ irq_error:
stmmac_hw_teardown(dev); stmmac_hw_teardown(dev);
init_error: init_error:
@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
dma_desc_error: dma_desc_error:
return ret; return ret;
} }
@@ -7476,7 +7592,7 @@ int stmmac_resume(struct device *dev) @@ -7479,7 +7595,7 @@ int stmmac_resume(struct device *dev)
stmmac_reset_queues_param(priv); stmmac_reset_queues_param(priv);
stmmac_free_tx_skbufs(priv); stmmac_free_tx_skbufs(priv);

View File

@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -5598,18 +5598,15 @@ static int stmmac_change_mtu(struct net_ @@ -5611,18 +5611,15 @@ static int stmmac_change_mtu(struct net_
{ {
struct stmmac_priv *priv = netdev_priv(dev); struct stmmac_priv *priv = netdev_priv(dev);
int txfifosz = priv->plat->tx_fifo_size; int txfifosz = priv->plat->tx_fifo_size;
@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) { if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) {
netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n"); netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n");
return -EINVAL; return -EINVAL;
@@ -5621,8 +5618,29 @@ static int stmmac_change_mtu(struct net_ @@ -5634,8 +5631,29 @@ static int stmmac_change_mtu(struct net_
if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB)) if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
return -EINVAL; return -EINVAL;

View File

@ -652,7 +652,7 @@ Change-Id: I71de7cd15b8dfa6f9fdd838023474693c4fee0a7
"Section %d Node %d Zone %d Lastcpupid %d Kasantag %d\n", "Section %d Node %d Zone %d Lastcpupid %d Kasantag %d\n",
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -7411,6 +7411,7 @@ static void __meminit pgdat_init_interna @@ -7456,6 +7456,7 @@ static void __meminit pgdat_init_interna
pgdat_page_ext_init(pgdat); pgdat_page_ext_init(pgdat);
lruvec_init(&pgdat->__lruvec); lruvec_init(&pgdat->__lruvec);

View File

@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -7557,7 +7557,7 @@ static void __init alloc_node_mem_map(st @@ -7602,7 +7602,7 @@ static void __init alloc_node_mem_map(st
if (pgdat == NODE_DATA(0)) { if (pgdat == NODE_DATA(0)) {
mem_map = NODE_DATA(0)->node_mem_map; mem_map = NODE_DATA(0)->node_mem_map;
if (page_to_pfn(mem_map) != pgdat->node_start_pfn) if (page_to_pfn(mem_map) != pgdat->node_start_pfn)

View File

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -1744,6 +1744,9 @@ void phy_detach(struct phy_device *phyde @@ -1746,6 +1746,9 @@ void phy_detach(struct phy_device *phyde
struct module *ndev_owner = NULL; struct module *ndev_owner = NULL;
struct mii_bus *bus; struct mii_bus *bus;

View File

@ -1,67 +0,0 @@
From 9fec662b54fc956b776df15c704e996c61292850 Mon Sep 17 00:00:00 2001
From: Alexander Couzens <lynxis@fe80.eu>
Date: Sat, 13 Aug 2022 13:05:09 +0200
Subject: [PATCH 02/10] net: mt7531: only do PLL once after the reset
Move the PLL init of the switch out of the pad configuration of the port
6 (usally cpu port).
Fix a unidirectional 100 mbit limitation on 1 gbit or 2.5 gbit links for
outbound traffic on port 5 or port 6.
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
---
drivers/net/dsa/mt7530.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -506,14 +506,19 @@ static bool mt7531_dual_sgmii_supported(
static int
mt7531_pad_setup(struct dsa_switch *ds, phy_interface_t interface)
{
- struct mt7530_priv *priv = ds->priv;
+ return 0;
+}
+
+static void
+mt7531_pll_setup(struct mt7530_priv *priv)
+{
u32 top_sig;
u32 hwstrap;
u32 xtal;
u32 val;
if (mt7531_dual_sgmii_supported(priv))
- return 0;
+ return;
val = mt7530_read(priv, MT7531_CREV);
top_sig = mt7530_read(priv, MT7531_TOP_SIG_SR);
@@ -592,8 +597,6 @@ mt7531_pad_setup(struct dsa_switch *ds,
val |= EN_COREPLL;
mt7530_write(priv, MT7531_PLLGP_EN, val);
usleep_range(25, 35);
-
- return 0;
}
static void
@@ -2326,6 +2329,8 @@ mt7531_setup(struct dsa_switch *ds)
SYS_CTRL_PHY_RST | SYS_CTRL_SW_RST |
SYS_CTRL_REG_RST);
+ mt7531_pll_setup(priv);
+
if (mt7531_dual_sgmii_supported(priv)) {
priv->p5_intf_sel = P5_INTF_SEL_GMAC5_SGMII;
@@ -2882,8 +2887,6 @@ mt7531_cpu_port_config(struct dsa_switch
case 6:
interface = PHY_INTERFACE_MODE_2500BASEX;
- mt7531_pad_setup(ds, interface);
-
priv->p6_interface = interface;
break;
default:

View File

@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/** /**
* ata_build_rw_tf - Build ATA taskfile for given read/write request * ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile * @tf: Target ATA taskfile
@@ -4576,6 +4589,9 @@ struct ata_queued_cmd *ata_qc_new_init(s @@ -4580,6 +4593,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0) if (tag < 0)
return NULL; return NULL;
} }
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
qc = __ata_qc_from_tag(ap, tag); qc = __ata_qc_from_tag(ap, tag);
qc->tag = qc->hw_tag = tag; qc->tag = qc->hw_tag = tag;
@@ -5354,6 +5370,9 @@ struct ata_port *ata_port_alloc(struct a @@ -5358,6 +5374,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1; ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1; ap->stats.idle_irq = 1;
#endif #endif
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap); ata_sff_port_init(ap);
return ap; return ap;
@@ -5389,6 +5408,12 @@ static void ata_host_release(struct kref @@ -5393,6 +5412,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link); kfree(ap->pmp_link);
kfree(ap->slave_link); kfree(ap->slave_link);
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap); kfree(ap);
host->ports[i] = NULL; host->ports[i] = NULL;
} }
@@ -5795,7 +5820,23 @@ int ata_host_register(struct ata_host *h @@ -5799,7 +5824,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1; host->ports[i]->local_port_no = i + 1;
} }

View File

@ -31,7 +31,7 @@ Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -528,6 +528,9 @@ struct skb_shared_info { @@ -563,6 +563,9 @@ struct skb_shared_info {
unsigned int gso_type; unsigned int gso_type;
u32 tskey; u32 tskey;

View File

@ -32,7 +32,7 @@ Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
- rev-mii - rev-mii
--- a/drivers/net/phy/phylink.c --- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c
@@ -293,6 +293,7 @@ static int phylink_parse_mode(struct phy @@ -629,6 +629,7 @@ static int phylink_parse_mode(struct phy
switch (pl->link_config.interface) { switch (pl->link_config.interface) {
case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_SGMII:
@ -50,7 +50,7 @@ Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
PHY_INTERFACE_MODE_QSGMII, PHY_INTERFACE_MODE_QSGMII,
PHY_INTERFACE_MODE_TRGMII, PHY_INTERFACE_MODE_TRGMII,
PHY_INTERFACE_MODE_100BASEX, PHY_INTERFACE_MODE_100BASEX,
@@ -209,6 +210,8 @@ static inline const char *phy_modes(phy_ @@ -243,6 +244,8 @@ static inline const char *phy_modes(phy_
return "xlgmii"; return "xlgmii";
case PHY_INTERFACE_MODE_MOCA: case PHY_INTERFACE_MODE_MOCA:
return "moca"; return "moca";

View File

@ -15,7 +15,7 @@
/* initialize internal qc */ /* initialize internal qc */
qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL); qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
@@ -4583,6 +4591,9 @@ struct ata_queued_cmd *ata_qc_new_init(s @@ -4587,6 +4595,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL; return NULL;
@ -25,7 +25,7 @@
/* libsas case */ /* libsas case */
if (ap->flags & ATA_FLAG_SAS_HOST) { if (ap->flags & ATA_FLAG_SAS_HOST) {
tag = ata_sas_allocate_tag(ap); tag = ata_sas_allocate_tag(ap);
@@ -4628,6 +4639,8 @@ void ata_qc_free(struct ata_queued_cmd * @@ -4632,6 +4643,8 @@ void ata_qc_free(struct ata_queued_cmd *
qc->tag = ATA_TAG_POISON; qc->tag = ATA_TAG_POISON;
if (ap->flags & ATA_FLAG_SAS_HOST) if (ap->flags & ATA_FLAG_SAS_HOST)
ata_sas_free_tag(tag, ap); ata_sas_free_tag(tag, ap);

View File

@ -71,7 +71,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
break; break;
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -1029,14 +1029,16 @@ struct phy_device *phy_find_first(struct @@ -1031,14 +1031,16 @@ struct phy_device *phy_find_first(struct
} }
EXPORT_SYMBOL(phy_find_first); EXPORT_SYMBOL(phy_find_first);