mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
kernel: bump 5.15 to 5.15.105
Manually rebased: Removed upstreamed: backport-5.15/743-v6.3-0005-net-dsa-b53-mmap-fix-device-tree-support.patch[1] backport-5.15/743-v6.3-0006-net-dsa-tag_brcm-legacy-fix-daisy-chained-switches.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.105&id=9bbb3d3f218f1cf51f57a43cf8fd63b05be1b821 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.105&id=48f52431af9980582b6faa32ff8b581edb10486c Build system: x86_64 Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
parent
19752bdfa3
commit
ec8c837eab
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-5.15 = .104
|
LINUX_VERSION-5.15 = .105
|
||||||
LINUX_KERNEL_HASH-5.15.104 = 71c532ce09992e470f3259ffeb38d2b5bba990c243a559e4726a57412bd36b54
|
LINUX_KERNEL_HASH-5.15.105 = 01b537650332d2852722a626169cf7e5e798d11f9b578171b477868555f5e44f
|
||||||
|
@ -25,7 +25,7 @@ Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
|
|||||||
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
||||||
u32 *data, int in_pm)
|
u32 *data, int in_pm)
|
||||||
{
|
{
|
||||||
@@ -1837,7 +1841,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
@@ -1843,7 +1847,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
||||||
if (dev->net->features & NETIF_F_RXCSUM)
|
if (dev->net->features & NETIF_F_RXCSUM)
|
||||||
smsc95xx_rx_csum_offload(skb);
|
smsc95xx_rx_csum_offload(skb);
|
||||||
skb_trim(skb, skb->len - 4); /* remove fcs */
|
skb_trim(skb, skb->len - 4); /* remove fcs */
|
||||||
@ -35,7 +35,7 @@ Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1855,7 +1860,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
@@ -1861,7 +1866,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
||||||
if (dev->net->features & NETIF_F_RXCSUM)
|
if (dev->net->features & NETIF_F_RXCSUM)
|
||||||
smsc95xx_rx_csum_offload(ax_skb);
|
smsc95xx_rx_csum_offload(ax_skb);
|
||||||
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
|
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
|
||||||
|
@ -88,7 +88,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
commit->event = kzalloc(sizeof(*commit->event),
|
commit->event = kzalloc(sizeof(*commit->event),
|
||||||
--- a/drivers/gpu/drm/i915/display/intel_display.c
|
--- a/drivers/gpu/drm/i915/display/intel_display.c
|
||||||
+++ b/drivers/gpu/drm/i915/display/intel_display.c
|
+++ b/drivers/gpu/drm/i915/display/intel_display.c
|
||||||
@@ -10821,6 +10821,19 @@ static int intel_atomic_commit(struct dr
|
@@ -10822,6 +10822,19 @@ static int intel_atomic_commit(struct dr
|
||||||
state->base.legacy_cursor_update = false;
|
state->base.legacy_cursor_update = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,7 +414,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|||||||
/* forking complete and child started to run, tell ptracer */
|
/* forking complete and child started to run, tell ptracer */
|
||||||
--- a/kernel/sched/core.c
|
--- a/kernel/sched/core.c
|
||||||
+++ b/kernel/sched/core.c
|
+++ b/kernel/sched/core.c
|
||||||
@@ -5007,6 +5007,7 @@ context_switch(struct rq *rq, struct tas
|
@@ -5010,6 +5010,7 @@ context_switch(struct rq *rq, struct tas
|
||||||
* finish_task_switch()'s mmdrop().
|
* finish_task_switch()'s mmdrop().
|
||||||
*/
|
*/
|
||||||
switch_mm_irqs_off(prev->active_mm, next->mm, next);
|
switch_mm_irqs_off(prev->active_mm, next->mm, next);
|
||||||
|
@ -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
|
||||||
@@ -1194,27 +1194,31 @@ static int
|
@@ -1190,27 +1190,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. */
|
||||||
@@ -1319,24 +1323,28 @@ static void
|
@@ -1315,24 +1319,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)
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
@@ -2407,6 +2407,32 @@ mt7531_setup(struct dsa_switch *ds)
|
@@ -2412,6 +2412,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)
|
||||||
@@ -2443,6 +2469,37 @@ static bool mt7531_is_rgmii_port(struct
|
@@ -2448,6 +2474,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)
|
||||||
@@ -2919,6 +2976,18 @@ mt7531_cpu_port_config(struct dsa_switch
|
@@ -2924,6 +2981,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)
|
||||||
@@ -3154,6 +3223,7 @@ static const struct dsa_switch_ops mt753
|
@@ -3159,6 +3228,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,
|
||||||
@@ -3171,6 +3241,7 @@ static const struct mt753x_info mt753x_t
|
@@ -3176,6 +3246,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,
|
||||||
@@ -3182,6 +3253,7 @@ static const struct mt753x_info mt753x_t
|
@@ -3187,6 +3258,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,
|
||||||
@@ -3194,6 +3266,7 @@ static const struct mt753x_info mt753x_t
|
@@ -3199,6 +3271,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,
|
||||||
@@ -3256,6 +3329,7 @@ mt7530_probe(struct mdio_device *mdiodev
|
@@ -3261,6 +3334,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 ||
|
||||||
|
@ -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
|
||||||
@@ -2433,37 +2433,6 @@ static void mt7530_mac_port_get_caps(str
|
@@ -2438,37 +2438,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);
|
||||||
@@ -2500,44 +2469,6 @@ static void mt7531_mac_port_get_caps(str
|
@@ -2505,44 +2474,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)
|
||||||
{
|
{
|
||||||
@@ -2792,9 +2723,6 @@ mt753x_phylink_mac_config(struct dsa_swi
|
@@ -2797,9 +2728,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)
|
||||||
@@ -3010,12 +2938,6 @@ mt753x_phylink_validate(struct dsa_switc
|
@@ -3015,12 +2943,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 &&
|
||||||
@@ -3242,7 +3164,6 @@ static const struct mt753x_info mt753x_t
|
@@ -3247,7 +3169,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,
|
||||||
@@ -3254,7 +3175,6 @@ static const struct mt753x_info mt753x_t
|
@@ -3259,7 +3180,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,
|
||||||
@@ -3267,7 +3187,6 @@ static const struct mt753x_info mt753x_t
|
@@ -3272,7 +3192,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,
|
||||||
@@ -3330,7 +3249,6 @@ mt7530_probe(struct mdio_device *mdiodev
|
@@ -3335,7 +3254,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 ||
|
||||||
|
@ -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
|
||||||
@@ -2962,11 +2962,6 @@ mt753x_phylink_validate(struct dsa_switc
|
@@ -2967,11 +2967,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);
|
||||||
|
@ -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
|
||||||
@@ -2540,12 +2540,13 @@ static int mt7531_rgmii_setup(struct mt7
|
@@ -2545,12 +2545,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);
|
||||||
}
|
}
|
||||||
@@ -2918,16 +2919,18 @@ static void mt753x_phylink_get_caps(stru
|
@@ -2923,16 +2924,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
|
||||||
@@ -2950,12 +2953,13 @@ mt753x_phylink_validate(struct dsa_switc
|
@@ -2955,12 +2958,13 @@ mt753x_phylink_validate(struct dsa_switc
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This switch only supports 1G full-duplex. */
|
/* This switch only supports 1G full-duplex. */
|
||||||
|
@ -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
|
||||||
@@ -2539,19 +2539,6 @@ static int mt7531_rgmii_setup(struct mt7
|
@@ -2544,19 +2544,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,
|
||||||
@@ -2918,51 +2905,21 @@ static void mt753x_phylink_get_caps(stru
|
@@ -2923,51 +2910,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);
|
||||||
@@ -3163,7 +3120,6 @@ static const struct mt753x_info mt753x_t
|
@@ -3168,7 +3125,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,
|
||||||
},
|
},
|
||||||
@@ -3174,7 +3130,6 @@ static const struct mt753x_info mt753x_t
|
@@ -3179,7 +3135,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,
|
||||||
},
|
},
|
||||||
@@ -3186,7 +3141,6 @@ static const struct mt753x_info mt753x_t
|
@@ -3191,7 +3146,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,
|
||||||
@@ -3248,7 +3202,6 @@ mt7530_probe(struct mdio_device *mdiodev
|
@@ -3253,7 +3207,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 ||
|
||||||
|
@ -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"),
|
||||||
@@ -2539,12 +2544,11 @@ static int mt7531_rgmii_setup(struct mt7
|
@@ -2544,12 +2549,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. */
|
||||||
@@ -2570,6 +2574,9 @@ mt7531_sgmii_link_up_force(struct dsa_sw
|
@@ -2575,6 +2579,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)
|
||||||
@@ -2645,9 +2652,10 @@ static int mt7531_sgmii_setup_mode_an(st
|
@@ -2650,9 +2657,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 */
|
||||||
@@ -2704,6 +2712,24 @@ mt753x_mac_config(struct dsa_switch *ds,
|
@@ -2709,6 +2717,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)
|
||||||
@@ -2765,17 +2791,6 @@ unsupported:
|
@@ -2770,17 +2796,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)
|
||||||
@@ -2785,16 +2800,13 @@ static void mt753x_phylink_mac_link_down
|
@@ -2790,16 +2805,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,
|
||||||
@@ -2807,8 +2819,6 @@ static void mt753x_phylink_mac_link_up(s
|
@@ -2812,8 +2824,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
|
||||||
@@ -2886,6 +2896,8 @@ mt7531_cpu_port_config(struct dsa_switch
|
@@ -2891,6 +2901,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);
|
||||||
|
|
||||||
@@ -2925,16 +2937,13 @@ mt753x_phylink_validate(struct dsa_switc
|
@@ -2930,16 +2942,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);
|
||||||
@@ -2961,8 +2970,6 @@ mt7530_phylink_mac_link_state(struct dsa
|
@@ -2966,8 +2975,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
|
||||||
@@ -3004,32 +3011,49 @@ mt7531_sgmii_pcs_get_state_an(struct mt7
|
@@ -3009,32 +3016,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;
|
||||||
@@ -3042,6 +3066,13 @@ mt753x_setup(struct dsa_switch *ds)
|
@@ -3047,6 +3071,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3103,9 +3134,8 @@ static const struct dsa_switch_ops mt753
|
@@ -3108,9 +3139,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,
|
||||||
@@ -3115,36 +3145,34 @@ static const struct dsa_switch_ops mt753
|
@@ -3120,36 +3150,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>
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -3202,7 +3230,7 @@ mt7530_probe(struct mdio_device *mdiodev
|
@@ -3207,7 +3235,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 ||
|
||||||
|
@ -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
|
||||||
@@ -2916,25 +2916,16 @@ static void mt753x_phylink_get_caps(stru
|
@@ -2921,25 +2921,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,
|
||||||
@@ -3036,12 +3027,14 @@ static void mt7530_pcs_an_restart(struct
|
@@ -3041,12 +3032,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,
|
||||||
@@ -3133,7 +3126,6 @@ static const struct dsa_switch_ops mt753
|
@@ -3138,7 +3131,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,
|
||||||
|
@ -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
|
||||||
@@ -2913,6 +2913,12 @@ static void mt753x_phylink_get_caps(stru
|
@@ -2918,6 +2918,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;
|
||||||
|
|
||||||
|
@ -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
|
||||||
@@ -3051,9 +3051,16 @@ static int
|
@@ -3056,9 +3056,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;
|
||||||
|
|
||||||
@@ -3065,13 +3072,6 @@ mt753x_setup(struct dsa_switch *ds)
|
@@ -3070,13 +3077,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);
|
||||||
|
|
||||||
|
@ -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
|
||||||
@@ -1540,11 +1540,11 @@ static void
|
@@ -1536,11 +1536,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.
|
||||||
@@ -1555,22 +1555,20 @@ mt7530_hw_vlan_add(struct mt7530_priv *p
|
@@ -1551,22 +1551,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
|
||||||
@@ -1589,11 +1587,7 @@ mt7530_hw_vlan_del(struct mt7530_priv *p
|
@@ -1585,11 +1583,7 @@ mt7530_hw_vlan_del(struct mt7530_priv *p
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
@@ -2105,11 +2105,12 @@ static int
|
@@ -2101,11 +2101,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;
|
||||||
|
|
||||||
@@ -2117,7 +2118,19 @@ mt7530_setup(struct dsa_switch *ds)
|
@@ -2113,7 +2114,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;
|
||||||
|
|
||||||
@@ -2281,6 +2294,7 @@ mt7531_setup(struct dsa_switch *ds)
|
@@ -2286,6 +2299,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;
|
||||||
|
|
||||||
@@ -2355,8 +2369,11 @@ mt7531_setup(struct dsa_switch *ds)
|
@@ -2360,8 +2374,11 @@ mt7531_setup(struct dsa_switch *ds)
|
||||||
CORE_PLL_GROUP4, val);
|
CORE_PLL_GROUP4, val);
|
||||||
|
|
||||||
/* BPDU to CPU port */
|
/* BPDU to CPU port */
|
||||||
|
@ -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
|
||||||
@@ -1044,6 +1044,7 @@ static int
|
@@ -1040,6 +1040,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);
|
||||||
@@ -1052,7 +1053,11 @@ mt7530_port_enable(struct dsa_switch *ds
|
@@ -1048,7 +1049,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);
|
||||||
@@ -1200,7 +1205,8 @@ mt7530_port_bridge_join(struct dsa_switc
|
@@ -1196,7 +1201,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);
|
||||||
@@ -1277,9 +1283,12 @@ mt7530_port_set_vlan_unaware(struct dsa_
|
@@ -1273,9 +1279,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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1329,6 +1338,7 @@ mt7530_port_bridge_leave(struct dsa_swit
|
@@ -1325,6 +1334,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);
|
||||||
@@ -1357,8 +1367,8 @@ mt7530_port_bridge_leave(struct dsa_swit
|
@@ -1353,8 +1363,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
|
||||||
@@ -1521,6 +1531,9 @@ static int
|
@@ -1517,6 +1527,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
|
||||||
@@ -1528,7 +1541,7 @@ mt7530_port_vlan_filtering(struct dsa_sw
|
@@ -1524,7 +1537,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);
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
From 30796d0dcb6e41c6558a07950f2ce60c209da867 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
|
||||||
Date: Thu, 16 Mar 2023 18:28:07 +0100
|
|
||||||
Subject: [PATCH] net: dsa: b53: mmap: fix device tree support
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
CPU port should also be enabled in order to get a working switch.
|
|
||||||
|
|
||||||
Fixes: a5538a777b73 ("net: dsa: b53: mmap: Add device tree support")
|
|
||||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|
||||||
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
||||||
Link: https://lore.kernel.org/r/20230316172807.460146-1-noltari@gmail.com
|
|
||||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
||||||
---
|
|
||||||
drivers/net/dsa/b53/b53_mmap.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_mmap.c
|
|
||||||
+++ b/drivers/net/dsa/b53/b53_mmap.c
|
|
||||||
@@ -263,7 +263,7 @@ static int b53_mmap_probe_of(struct plat
|
|
||||||
if (of_property_read_u32(of_port, "reg", ®))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
- if (reg < B53_CPU_PORT)
|
|
||||||
+ if (reg < B53_N_PORTS)
|
|
||||||
pdata->enabled_ports |= BIT(reg);
|
|
||||||
}
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
|||||||
From 032a954061afd4b7426c3eb6bfd2952ef1e9a384 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
|
||||||
Date: Sun, 19 Mar 2023 10:55:40 +0100
|
|
||||||
Subject: [PATCH] net: dsa: tag_brcm: legacy: fix daisy-chained switches
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
When BCM63xx internal switches are connected to switches with a 4-byte
|
|
||||||
Broadcom tag, it does not identify the packet as VLAN tagged, so it adds one
|
|
||||||
based on its PVID (which is likely 0).
|
|
||||||
Right now, the packet is received by the BCM63xx internal switch and the 6-byte
|
|
||||||
tag is properly processed. The next step would to decode the corresponding
|
|
||||||
4-byte tag. However, the internal switch adds an invalid VLAN tag after the
|
|
||||||
6-byte tag and the 4-byte tag handling fails.
|
|
||||||
In order to fix this we need to remove the invalid VLAN tag after the 6-byte
|
|
||||||
tag before passing it to the 4-byte tag decoding.
|
|
||||||
|
|
||||||
Fixes: 964dbf186eaa ("net: dsa: tag_brcm: add support for legacy tags")
|
|
||||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|
||||||
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
|
|
||||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
||||||
Link: https://lore.kernel.org/r/20230319095540.239064-1-noltari@gmail.com
|
|
||||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
||||||
---
|
|
||||||
net/dsa/tag_brcm.c | 10 ++++++++--
|
|
||||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/net/dsa/tag_brcm.c
|
|
||||||
+++ b/net/dsa/tag_brcm.c
|
|
||||||
@@ -7,6 +7,7 @@
|
|
||||||
|
|
||||||
#include <linux/dsa/brcm.h>
|
|
||||||
#include <linux/etherdevice.h>
|
|
||||||
+#include <linux/if_vlan.h>
|
|
||||||
#include <linux/list.h>
|
|
||||||
#include <linux/slab.h>
|
|
||||||
|
|
||||||
@@ -248,6 +249,7 @@ static struct sk_buff *brcm_leg_tag_xmit
|
|
||||||
static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb,
|
|
||||||
struct net_device *dev)
|
|
||||||
{
|
|
||||||
+ int len = BRCM_LEG_TAG_LEN;
|
|
||||||
int source_port;
|
|
||||||
u8 *brcm_tag;
|
|
||||||
|
|
||||||
@@ -262,12 +264,16 @@ static struct sk_buff *brcm_leg_tag_rcv(
|
|
||||||
if (!skb->dev)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
+ /* VLAN tag is added by BCM63xx internal switch */
|
|
||||||
+ if (netdev_uses_dsa(skb->dev))
|
|
||||||
+ len += VLAN_HLEN;
|
|
||||||
+
|
|
||||||
/* Remove Broadcom tag and update checksum */
|
|
||||||
- skb_pull_rcsum(skb, BRCM_LEG_TAG_LEN);
|
|
||||||
+ skb_pull_rcsum(skb, len);
|
|
||||||
|
|
||||||
dsa_default_offload_fwd_mark(skb);
|
|
||||||
|
|
||||||
- dsa_strip_etype_header(skb, BRCM_LEG_TAG_LEN);
|
|
||||||
+ dsa_strip_etype_header(skb, len);
|
|
||||||
|
|
||||||
return skb;
|
|
||||||
}
|
|
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mt7530.c
|
--- a/drivers/net/dsa/mt7530.c
|
||||||
+++ b/drivers/net/dsa/mt7530.c
|
+++ b/drivers/net/dsa/mt7530.c
|
||||||
@@ -2716,9 +2716,6 @@ mt7531_mac_config(struct dsa_switch *ds,
|
@@ -2721,9 +2721,6 @@ mt7531_mac_config(struct dsa_switch *ds,
|
||||||
case PHY_INTERFACE_MODE_NA:
|
case PHY_INTERFACE_MODE_NA:
|
||||||
case PHY_INTERFACE_MODE_1000BASEX:
|
case PHY_INTERFACE_MODE_1000BASEX:
|
||||||
case PHY_INTERFACE_MODE_2500BASEX:
|
case PHY_INTERFACE_MODE_2500BASEX:
|
||||||
@ -29,7 +29,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
return mt7531_sgmii_setup_mode_force(priv, port, interface);
|
return mt7531_sgmii_setup_mode_force(priv, port, interface);
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -2794,13 +2791,6 @@ unsupported:
|
@@ -2799,13 +2796,6 @@ unsupported:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port));
|
mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port));
|
||||||
mcr_new = mcr_cur;
|
mcr_new = mcr_cur;
|
||||||
mcr_new &= ~PMCR_LINK_SETTINGS_MASK;
|
mcr_new &= ~PMCR_LINK_SETTINGS_MASK;
|
||||||
@@ -2937,6 +2927,9 @@ static void mt753x_phylink_get_caps(stru
|
@@ -2942,6 +2932,9 @@ 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;
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
/* This driver does not make use of the speed, duplex, pause or the
|
/* This driver does not make use of the speed, duplex, pause or the
|
||||||
* advertisement in its mac_config, so it is safe to mark this driver
|
* advertisement in its mac_config, so it is safe to mark this driver
|
||||||
* as non-legacy.
|
* as non-legacy.
|
||||||
@@ -3002,6 +2995,7 @@ mt7531_sgmii_pcs_get_state_an(struct mt7
|
@@ -3007,6 +3000,7 @@ mt7531_sgmii_pcs_get_state_an(struct mt7
|
||||||
|
|
||||||
status = mt7530_read(priv, MT7531_PCS_CONTROL_1(port));
|
status = mt7530_read(priv, MT7531_PCS_CONTROL_1(port));
|
||||||
state->link = !!(status & MT7531_SGMII_LINK_STATUS);
|
state->link = !!(status & MT7531_SGMII_LINK_STATUS);
|
||||||
@ -61,7 +61,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
if (state->interface == PHY_INTERFACE_MODE_SGMII &&
|
if (state->interface == PHY_INTERFACE_MODE_SGMII &&
|
||||||
(status & MT7531_SGMII_AN_ENABLE)) {
|
(status & MT7531_SGMII_AN_ENABLE)) {
|
||||||
val = mt7530_read(priv, MT7531_PCS_SPEED_ABILITY(port));
|
val = mt7530_read(priv, MT7531_PCS_SPEED_ABILITY(port));
|
||||||
@@ -3032,16 +3026,44 @@ mt7531_sgmii_pcs_get_state_an(struct mt7
|
@@ -3037,16 +3031,44 @@ mt7531_sgmii_pcs_get_state_an(struct mt7
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
|
static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
|
||||||
@@ -3082,6 +3104,8 @@ mt753x_setup(struct dsa_switch *ds)
|
@@ -3087,6 +3109,8 @@ mt753x_setup(struct dsa_switch *ds)
|
||||||
priv->pcs[i].pcs.ops = priv->info->pcs_ops;
|
priv->pcs[i].pcs.ops = priv->info->pcs_ops;
|
||||||
priv->pcs[i].priv = priv;
|
priv->pcs[i].priv = priv;
|
||||||
priv->pcs[i].port = i;
|
priv->pcs[i].port = i;
|
||||||
|
@ -81,7 +81,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
#include <linux/phylink.h>
|
#include <linux/phylink.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
#include <linux/regulator/consumer.h>
|
#include <linux/regulator/consumer.h>
|
||||||
@@ -2568,128 +2569,11 @@ static int mt7531_rgmii_setup(struct mt7
|
@@ -2573,128 +2574,11 @@ static int mt7531_rgmii_setup(struct mt7
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
static int
|
static int
|
||||||
mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
|
mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
|
||||||
phy_interface_t interface)
|
phy_interface_t interface)
|
||||||
@@ -2712,11 +2596,11 @@ mt7531_mac_config(struct dsa_switch *ds,
|
@@ -2717,11 +2601,11 @@ mt7531_mac_config(struct dsa_switch *ds,
|
||||||
phydev = dp->slave->phydev;
|
phydev = dp->slave->phydev;
|
||||||
return mt7531_rgmii_setup(priv, port, interface, phydev);
|
return mt7531_rgmii_setup(priv, port, interface, phydev);
|
||||||
case PHY_INTERFACE_MODE_SGMII:
|
case PHY_INTERFACE_MODE_SGMII:
|
||||||
@ -224,7 +224,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@@ -2741,11 +2625,11 @@ mt753x_phylink_mac_select_pcs(struct dsa
|
@@ -2746,11 +2630,11 @@ mt753x_phylink_mac_select_pcs(struct dsa
|
||||||
|
|
||||||
switch (interface) {
|
switch (interface) {
|
||||||
case PHY_INTERFACE_MODE_TRGMII:
|
case PHY_INTERFACE_MODE_TRGMII:
|
||||||
@ -238,7 +238,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -2986,86 +2870,6 @@ static void mt7530_pcs_get_state(struct
|
@@ -2991,86 +2875,6 @@ static void mt7530_pcs_get_state(struct
|
||||||
state->pause |= MLO_PAUSE_TX;
|
state->pause |= MLO_PAUSE_TX;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
|
static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
|
||||||
phy_interface_t interface,
|
phy_interface_t interface,
|
||||||
const unsigned long *advertising,
|
const unsigned long *advertising,
|
||||||
@@ -3085,18 +2889,57 @@ static const struct phylink_pcs_ops mt75
|
@@ -3090,18 +2894,57 @@ static const struct phylink_pcs_ops mt75
|
||||||
.pcs_an_restart = mt7530_pcs_an_restart,
|
.pcs_an_restart = mt7530_pcs_an_restart,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
/* Initialise the PCS devices */
|
/* Initialise the PCS devices */
|
||||||
@@ -3104,8 +2947,6 @@ mt753x_setup(struct dsa_switch *ds)
|
@@ -3109,8 +2952,6 @@ mt753x_setup(struct dsa_switch *ds)
|
||||||
priv->pcs[i].pcs.ops = priv->info->pcs_ops;
|
priv->pcs[i].pcs.ops = priv->info->pcs_ops;
|
||||||
priv->pcs[i].priv = priv;
|
priv->pcs[i].priv = priv;
|
||||||
priv->pcs[i].port = i;
|
priv->pcs[i].port = i;
|
||||||
@ -398,7 +398,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = priv->info->sw_setup(ds);
|
ret = priv->info->sw_setup(ds);
|
||||||
@@ -3120,6 +2961,16 @@ mt753x_setup(struct dsa_switch *ds)
|
@@ -3125,6 +2966,16 @@ mt753x_setup(struct dsa_switch *ds)
|
||||||
if (ret && priv->irq)
|
if (ret && priv->irq)
|
||||||
mt7530_free_irq_common(priv);
|
mt7530_free_irq_common(priv);
|
||||||
|
|
||||||
@ -415,7 +415,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3211,7 +3062,7 @@ static const struct mt753x_info mt753x_t
|
@@ -3216,7 +3067,7 @@ static const struct mt753x_info mt753x_t
|
||||||
},
|
},
|
||||||
[ID_MT7531] = {
|
[ID_MT7531] = {
|
||||||
.id = ID_MT7531,
|
.id = ID_MT7531,
|
||||||
@ -424,7 +424,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
.sw_setup = mt7531_setup,
|
.sw_setup = mt7531_setup,
|
||||||
.phy_read = mt7531_ind_phy_read,
|
.phy_read = mt7531_ind_phy_read,
|
||||||
.phy_write = mt7531_ind_phy_write,
|
.phy_write = mt7531_ind_phy_write,
|
||||||
@@ -3319,7 +3170,7 @@ static void
|
@@ -3324,7 +3175,7 @@ static void
|
||||||
mt7530_remove(struct mdio_device *mdiodev)
|
mt7530_remove(struct mdio_device *mdiodev)
|
||||||
{
|
{
|
||||||
struct mt7530_priv *priv = dev_get_drvdata(&mdiodev->dev);
|
struct mt7530_priv *priv = dev_get_drvdata(&mdiodev->dev);
|
||||||
@ -433,7 +433,7 @@ Tested-by: Frank Wunderlich <frank-w@public-files.de>
|
|||||||
|
|
||||||
if (!priv)
|
if (!priv)
|
||||||
return;
|
return;
|
||||||
@@ -3338,6 +3189,10 @@ mt7530_remove(struct mdio_device *mdiode
|
@@ -3343,6 +3194,10 @@ mt7530_remove(struct mdio_device *mdiode
|
||||||
mt7530_free_irq(priv);
|
mt7530_free_irq(priv);
|
||||||
|
|
||||||
dsa_unregister_switch(priv->ds);
|
dsa_unregister_switch(priv->ds);
|
||||||
|
@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/kernel/sched/core.c
|
--- a/kernel/sched/core.c
|
||||||
+++ b/kernel/sched/core.c
|
+++ b/kernel/sched/core.c
|
||||||
@@ -4213,6 +4213,7 @@ int wake_up_state(struct task_struct *p,
|
@@ -4216,6 +4216,7 @@ int wake_up_state(struct task_struct *p,
|
||||||
{
|
{
|
||||||
return try_to_wake_up(p, state, 0);
|
return try_to_wake_up(p, state, 0);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mt7530.c
|
--- a/drivers/net/dsa/mt7530.c
|
||||||
+++ b/drivers/net/dsa/mt7530.c
|
+++ b/drivers/net/dsa/mt7530.c
|
||||||
@@ -2342,6 +2342,10 @@ mt7531_setup(struct dsa_switch *ds)
|
@@ -2347,6 +2347,10 @@ mt7531_setup(struct dsa_switch *ds)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
|
|||||||
|
|
||||||
--- a/drivers/net/phy/phy.c
|
--- a/drivers/net/phy/phy.c
|
||||||
+++ b/drivers/net/phy/phy.c
|
+++ b/drivers/net/phy/phy.c
|
||||||
@@ -59,13 +59,13 @@ static const char *phy_state_to_str(enum
|
@@ -71,13 +71,13 @@ static void phy_process_state_change(str
|
||||||
|
|
||||||
static void phy_link_up(struct phy_device *phydev)
|
static void phy_link_up(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
@ -33,7 +33,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
|
|||||||
phy_led_trigger_change_speed(phydev);
|
phy_led_trigger_change_speed(phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -551,7 +551,7 @@ int phy_start_cable_test(struct phy_devi
|
@@ -563,7 +563,7 @@ int phy_start_cable_test(struct phy_devi
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* Mark the carrier down until the test is complete */
|
/* Mark the carrier down until the test is complete */
|
||||||
@ -42,7 +42,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
|
|||||||
|
|
||||||
netif_testing_on(dev);
|
netif_testing_on(dev);
|
||||||
err = phydev->drv->cable_test_start(phydev);
|
err = phydev->drv->cable_test_start(phydev);
|
||||||
@@ -622,7 +622,7 @@ int phy_start_cable_test_tdr(struct phy_
|
@@ -634,7 +634,7 @@ int phy_start_cable_test_tdr(struct phy_
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* Mark the carrier down until the test is complete */
|
/* Mark the carrier down until the test is complete */
|
||||||
@ -51,7 +51,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
|
|||||||
|
|
||||||
netif_testing_on(dev);
|
netif_testing_on(dev);
|
||||||
err = phydev->drv->cable_test_tdr_start(phydev, config);
|
err = phydev->drv->cable_test_tdr_start(phydev, config);
|
||||||
@@ -694,7 +694,7 @@ static int phy_check_link_status(struct
|
@@ -706,7 +706,7 @@ static int phy_check_link_status(struct
|
||||||
phy_link_up(phydev);
|
phy_link_up(phydev);
|
||||||
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
||||||
phydev->state = PHY_NOLINK;
|
phydev->state = PHY_NOLINK;
|
||||||
@ -60,7 +60,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1177,7 +1177,7 @@ void phy_state_machine(struct work_struc
|
@@ -1192,7 +1192,7 @@ void phy_state_machine(struct work_struc
|
||||||
case PHY_HALTED:
|
case PHY_HALTED:
|
||||||
if (phydev->link) {
|
if (phydev->link) {
|
||||||
phydev->link = 0;
|
phydev->link = 0;
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
|
|
||||||
--- a/drivers/net/phy/phy.c
|
--- a/drivers/net/phy/phy.c
|
||||||
+++ b/drivers/net/phy/phy.c
|
+++ b/drivers/net/phy/phy.c
|
||||||
@@ -694,7 +694,10 @@ static int phy_check_link_status(struct
|
@@ -706,7 +706,10 @@ static int phy_check_link_status(struct
|
||||||
phy_link_up(phydev);
|
phy_link_up(phydev);
|
||||||
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
||||||
phydev->state = PHY_NOLINK;
|
phydev->state = PHY_NOLINK;
|
||||||
@ -23,7 +23,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1177,7 +1180,10 @@ void phy_state_machine(struct work_struc
|
@@ -1192,7 +1195,10 @@ void phy_state_machine(struct work_struc
|
||||||
case PHY_HALTED:
|
case PHY_HALTED:
|
||||||
if (phydev->link) {
|
if (phydev->link) {
|
||||||
phydev->link = 0;
|
phydev->link = 0;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/usb/dwc2/platform.c
|
--- a/drivers/usb/dwc2/platform.c
|
||||||
+++ b/drivers/usb/dwc2/platform.c
|
+++ b/drivers/usb/dwc2/platform.c
|
||||||
@@ -510,6 +510,12 @@ static int dwc2_driver_probe(struct plat
|
@@ -498,6 +498,12 @@ static int dwc2_driver_probe(struct plat
|
||||||
if (retval)
|
if (retval)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user