kernel: bump 5.4 to 5.4.45
Fixes CVE-2020-10757 via upstream commit df4988aa1c96 ("mm: Fix mremap
not considering huge pmd devmap").
Resolved merge conflict in the following patches:
 bcm27xx: 950-0128-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch
Refreshed patches, removed upstreamed patch:
 generic: 751-v5.8-net-dsa-mt7530-set-CPU-port-to-fallback-mode.patch
 generic: 754-v5.7-net-dsa-mt7530-fix-roaming-from-DSA-user-ports.patch
Run tested: qemu-x86-64
Build tested: x86/64, imx6, sunxi/a53
Signed-off-by: Petr Štetiar <ynezz@true.cz>
			
			
This commit is contained in:
		| @@ -8,11 +8,11 @@ endif | |||||||
|  |  | ||||||
| LINUX_VERSION-4.14 = .180 | LINUX_VERSION-4.14 = .180 | ||||||
| LINUX_VERSION-4.19 = .123 | LINUX_VERSION-4.19 = .123 | ||||||
| LINUX_VERSION-5.4 = .43 | LINUX_VERSION-5.4 = .45 | ||||||
|  |  | ||||||
| LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e | LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e | ||||||
| LINUX_KERNEL_HASH-4.19.123 = a79914d31a8d8c6b0e2bb0f2b143d615fe8a6c4dd2e0f36e97aa20efd69a993f | LINUX_KERNEL_HASH-4.19.123 = a79914d31a8d8c6b0e2bb0f2b143d615fe8a6c4dd2e0f36e97aa20efd69a993f | ||||||
| LINUX_KERNEL_HASH-5.4.43 = 2667b90a42d42557aca9e3d37bba1b4e71809b9523958e6870ada311c4790744 | LINUX_KERNEL_HASH-5.4.45 = 103f039f34a9009c42ea643b4f473bda6bb9607d5ad7f63b56b3e2351615fe2e | ||||||
|  |  | ||||||
| remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | ||||||
| sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | ||||||
|   | |||||||
| @@ -37,12 +37,14 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> | |||||||
|  		gpiod_err(desc, |  		gpiod_err(desc, | ||||||
|  			  "%s: tried to set a GPIO tied to an IRQ as output\n", |  			  "%s: tried to set a GPIO tied to an IRQ as output\n", | ||||||
|  			  __func__); |  			  __func__); | ||||||
| @@ -3894,7 +3896,7 @@ int gpiochip_lock_as_irq(struct gpio_chi | @@ -3895,8 +3897,8 @@ int gpiochip_lock_as_irq(struct gpio_chi | ||||||
|  		} |  | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| -	if (test_bit(FLAG_IS_OUT, &desc->flags)) { |  	/* To be valid for IRQ the line needs to be input or open drain */ | ||||||
| +	if (dont_test_bit(FLAG_IS_OUT, &desc->flags)) { | -	if (test_bit(FLAG_IS_OUT, &desc->flags) && | ||||||
|  | -	    !test_bit(FLAG_OPEN_DRAIN, &desc->flags)) { | ||||||
|  | +	if (dont_test_bit(FLAG_IS_OUT, &desc->flags) && | ||||||
|  | +	    !dont_test_bit(FLAG_OPEN_DRAIN, &desc->flags)) { | ||||||
|  		chip_err(chip, |  		chip_err(chip, | ||||||
|  			 "%s: tried to flag a GPIO set as output for IRQ\n", |  			 "%s: tried to flag a GPIO set as output for IRQ\n", | ||||||
|  			 __func__); |  			 __func__); | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> | |||||||
|   |   | ||||||
|  #include "b53_regs.h" |  #include "b53_regs.h" | ||||||
|  #include "b53_priv.h" |  #include "b53_priv.h" | ||||||
| @@ -1579,6 +1580,28 @@ static int b53_switch_init(struct b53_de | @@ -1587,6 +1588,28 @@ static int b53_switch_init(struct b53_de | ||||||
|  			return ret; |  			return ret; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -17,7 +17,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 | ||||||
| @@ -1151,6 +1151,64 @@ mt7530_port_vlan_del(struct dsa_switch * | @@ -1153,6 +1153,64 @@ mt7530_port_vlan_del(struct dsa_switch * | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	.phylink_mac_config	= mt7530_phylink_mac_config, |  	.phylink_mac_config	= mt7530_phylink_mac_config, | ||||||
| --- a/drivers/net/dsa/mt7530.h | --- a/drivers/net/dsa/mt7530.h | ||||||
| +++ b/drivers/net/dsa/mt7530.h | +++ b/drivers/net/dsa/mt7530.h | ||||||
| @@ -36,6 +36,9 @@ enum { | @@ -37,6 +37,9 @@ enum { | ||||||
|  #define  CPU_EN				BIT(7) |  #define  CPU_EN				BIT(7) | ||||||
|  #define  CPU_PORT(x)			((x) << 4) |  #define  CPU_PORT(x)			((x) << 4) | ||||||
|  #define  CPU_MASK			(0xf << 4) |  #define  CPU_MASK			(0xf << 4) | ||||||
| @@ -103,7 +103,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  /* Registers for address table access */ |  /* Registers for address table access */ | ||||||
|  #define MT7530_ATA1			0x74 |  #define MT7530_ATA1			0x74 | ||||||
| @@ -141,6 +144,8 @@ enum mt7530_stp_state { | @@ -142,6 +145,8 @@ enum mt7530_stp_state { | ||||||
|   |   | ||||||
|  /* Register for port control */ |  /* Register for port control */ | ||||||
|  #define MT7530_PCR_P(x)			(0x2004 + ((x) * 0x100)) |  #define MT7530_PCR_P(x)			(0x2004 + ((x) * 0x100)) | ||||||
| @@ -112,7 +112,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  #define  PORT_VLAN(x)			((x) & 0x3) |  #define  PORT_VLAN(x)			((x) & 0x3) | ||||||
|   |   | ||||||
|  enum mt7530_port_mode { |  enum mt7530_port_mode { | ||||||
| @@ -457,6 +462,8 @@ struct mt7530_priv { | @@ -464,6 +469,8 @@ struct mt7530_priv { | ||||||
|  	phy_interface_t		p6_interface; |  	phy_interface_t		p6_interface; | ||||||
|  	phy_interface_t		p5_interface; |  	phy_interface_t		p5_interface; | ||||||
|  	unsigned int		p5_intf_sel; |  	unsigned int		p5_intf_sel; | ||||||
|   | |||||||
| @@ -1,65 +0,0 @@ | |||||||
| From 38152ea37d8bdaffa22603e0a5b5b86cfa8714c9 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: DENG Qingfang <dqfext@gmail.com> |  | ||||||
| Date: Wed, 13 May 2020 23:37:17 +0800 |  | ||||||
| Subject: net: dsa: mt7530: set CPU port to fallback mode |  | ||||||
|  |  | ||||||
| Currently, setting a bridge's self PVID to other value and deleting |  | ||||||
| the default VID 1 renders untagged ports of that VLAN unable to talk to |  | ||||||
| the CPU port: |  | ||||||
|  |  | ||||||
| 	bridge vlan add dev br0 vid 2 pvid untagged self |  | ||||||
| 	bridge vlan del dev br0 vid 1 self |  | ||||||
| 	bridge vlan add dev sw0p0 vid 2 pvid untagged |  | ||||||
| 	bridge vlan del dev sw0p0 vid 1 |  | ||||||
| 	# br0 cannot send untagged frames out of sw0p0 anymore |  | ||||||
|  |  | ||||||
| That is because the CPU port is set to security mode and its PVID is |  | ||||||
| still 1, and untagged frames are dropped due to VLAN member violation. |  | ||||||
|  |  | ||||||
| Set the CPU port to fallback mode so untagged frames can pass through. |  | ||||||
|  |  | ||||||
| Fixes: 83163f7dca56 ("net: dsa: mediatek: add VLAN support for MT7530") |  | ||||||
| Signed-off-by: DENG Qingfang <dqfext@gmail.com> |  | ||||||
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| --- |  | ||||||
|  drivers/net/dsa/mt7530.c | 11 ++++++++--- |  | ||||||
|  drivers/net/dsa/mt7530.h |  6 ++++++ |  | ||||||
|  2 files changed, 14 insertions(+), 3 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/dsa/mt7530.c |  | ||||||
| +++ b/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -821,10 +821,15 @@ mt7530_port_set_vlan_aware(struct dsa_sw |  | ||||||
|  		   PCR_MATRIX_MASK, PCR_MATRIX(MT7530_ALL_MEMBERS)); |  | ||||||
|   |  | ||||||
|  	/* Trapped into security mode allows packet forwarding through VLAN |  | ||||||
| -	 * table lookup. |  | ||||||
| +	 * table lookup. CPU port is set to fallback mode to let untagged |  | ||||||
| +	 * frames pass through. |  | ||||||
|  	 */ |  | ||||||
| -	mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, |  | ||||||
| -		   MT7530_PORT_SECURITY_MODE); |  | ||||||
| +	if (dsa_is_cpu_port(ds, port)) |  | ||||||
| +		mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, |  | ||||||
| +			   MT7530_PORT_FALLBACK_MODE); |  | ||||||
| +	else |  | ||||||
| +		mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, |  | ||||||
| +			   MT7530_PORT_SECURITY_MODE); |  | ||||||
|   |  | ||||||
|  	/* Set the port as a user port which is to be able to recognize VID |  | ||||||
|  	 * from incoming packets before fetching entry within the VLAN table. |  | ||||||
| --- a/drivers/net/dsa/mt7530.h |  | ||||||
| +++ b/drivers/net/dsa/mt7530.h |  | ||||||
| @@ -152,6 +152,12 @@ enum mt7530_port_mode { |  | ||||||
|  	/* Port Matrix Mode: Frames are forwarded by the PCR_MATRIX members. */ |  | ||||||
|  	MT7530_PORT_MATRIX_MODE = PORT_VLAN(0), |  | ||||||
|   |  | ||||||
| +	/* Fallback Mode: Forward received frames with ingress ports that do |  | ||||||
| +	 * not belong to the VLAN member. Frames whose VID is not listed on |  | ||||||
| +	 * the VLAN table are forwarded by the PCR_MATRIX members. |  | ||||||
| +	 */ |  | ||||||
| +	MT7530_PORT_FALLBACK_MODE = PORT_VLAN(1), |  | ||||||
| + |  | ||||||
|  	/* Security Mode: Discard any frame due to ingress membership |  | ||||||
|  	 * violation or VID missed on the VLAN table. |  | ||||||
|  	 */ |  | ||||||
| @@ -15,7 +15,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 | ||||||
| @@ -1096,12 +1096,6 @@ mt7530_port_vlan_add(struct dsa_switch * | @@ -1093,12 +1093,6 @@ mt7530_port_vlan_add(struct dsa_switch * | ||||||
|  	struct mt7530_priv *priv = ds->priv; |  	struct mt7530_priv *priv = ds->priv; | ||||||
|  	u16 vid; |  	u16 vid; | ||||||
|   |   | ||||||
| @@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	mutex_lock(&priv->reg_mutex); |  	mutex_lock(&priv->reg_mutex); | ||||||
|   |   | ||||||
|  	for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { |  	for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { | ||||||
| @@ -1127,12 +1121,6 @@ mt7530_port_vlan_del(struct dsa_switch * | @@ -1124,12 +1118,6 @@ mt7530_port_vlan_del(struct dsa_switch * | ||||||
|  	struct mt7530_priv *priv = ds->priv; |  	struct mt7530_priv *priv = ds->priv; | ||||||
|  	u16 vid, pvid; |  	u16 vid, pvid; | ||||||
|   |   | ||||||
| @@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	mutex_lock(&priv->reg_mutex); |  	mutex_lock(&priv->reg_mutex); | ||||||
|   |   | ||||||
|  	pvid = priv->ports[port].pvid; |  	pvid = priv->ports[port].pvid; | ||||||
| @@ -1245,6 +1233,7 @@ mt7530_setup(struct dsa_switch *ds) | @@ -1242,6 +1230,7 @@ mt7530_setup(struct dsa_switch *ds) | ||||||
|  	 * as two netdev instances. |  	 * as two netdev instances. | ||||||
|  	 */ |  	 */ | ||||||
|  	dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent; |  	dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent; | ||||||
|   | |||||||
| @@ -1,116 +0,0 @@ | |||||||
| From 5e5502e012b8129e11be616acb0f9c34bc8f8adb Mon Sep 17 00:00:00 2001 |  | ||||||
| From: DENG Qingfang <dqfext@gmail.com> |  | ||||||
| Date: Wed, 13 May 2020 23:10:16 +0800 |  | ||||||
| Subject: net: dsa: mt7530: fix roaming from DSA user ports |  | ||||||
|  |  | ||||||
| When a client moves from a DSA user port to a software port in a bridge, |  | ||||||
| it cannot reach any other clients that connected to the DSA user ports. |  | ||||||
| That is because SA learning on the CPU port is disabled, so the switch |  | ||||||
| ignores the client's frames from the CPU port and still thinks it is at |  | ||||||
| the user port. |  | ||||||
|  |  | ||||||
| Fix it by enabling SA learning on the CPU port. |  | ||||||
|  |  | ||||||
| To prevent the switch from learning from flooding frames from the CPU |  | ||||||
| port, set skb->offload_fwd_mark to 1 for unicast and broadcast frames, |  | ||||||
| and let the switch flood them instead of trapping to the CPU port. |  | ||||||
| Multicast frames still need to be trapped to the CPU port for snooping, |  | ||||||
| so set the SA_DIS bit of the MTK tag to 1 when transmitting those frames |  | ||||||
| to disable SA learning. |  | ||||||
|  |  | ||||||
| Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 switch") |  | ||||||
| Signed-off-by: DENG Qingfang <dqfext@gmail.com> |  | ||||||
| Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| --- |  | ||||||
|  drivers/net/dsa/mt7530.c |  9 ++------- |  | ||||||
|  drivers/net/dsa/mt7530.h |  1 + |  | ||||||
|  net/dsa/tag_mtk.c        | 15 +++++++++++++++ |  | ||||||
|  3 files changed, 18 insertions(+), 7 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/dsa/mt7530.c |  | ||||||
| +++ b/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -639,11 +639,8 @@ mt7530_cpu_port_enable(struct mt7530_pri |  | ||||||
|  	mt7530_write(priv, MT7530_PVC_P(port), |  | ||||||
|  		     PORT_SPEC_TAG); |  | ||||||
|   |  | ||||||
| -	/* Disable auto learning on the cpu port */ |  | ||||||
| -	mt7530_set(priv, MT7530_PSC_P(port), SA_DIS); |  | ||||||
| - |  | ||||||
| -	/* Unknown unicast frame fordwarding to the cpu port */ |  | ||||||
| -	mt7530_set(priv, MT7530_MFC, UNU_FFP(BIT(port))); |  | ||||||
| +	/* Unknown multicast frame forwarding to the cpu port */ |  | ||||||
| +	mt7530_rmw(priv, MT7530_MFC, UNM_FFP_MASK, UNM_FFP(BIT(port))); |  | ||||||
|   |  | ||||||
|  	/* Set CPU port number */ |  | ||||||
|  	if (priv->id == ID_MT7621) |  | ||||||
| @@ -1298,8 +1295,6 @@ mt7530_setup(struct dsa_switch *ds) |  | ||||||
|  	/* Enable and reset MIB counters */ |  | ||||||
|  	mt7530_mib_reset(ds); |  | ||||||
|   |  | ||||||
| -	mt7530_clear(priv, MT7530_MFC, UNU_FFP_MASK); |  | ||||||
| - |  | ||||||
|  	for (i = 0; i < MT7530_NUM_PORTS; i++) { |  | ||||||
|  		/* Disable forwarding by default on all ports */ |  | ||||||
|  		mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK, |  | ||||||
| --- a/drivers/net/dsa/mt7530.h |  | ||||||
| +++ b/drivers/net/dsa/mt7530.h |  | ||||||
| @@ -31,6 +31,7 @@ enum { |  | ||||||
|  #define MT7530_MFC			0x10 |  | ||||||
|  #define  BC_FFP(x)			(((x) & 0xff) << 24) |  | ||||||
|  #define  UNM_FFP(x)			(((x) & 0xff) << 16) |  | ||||||
| +#define  UNM_FFP_MASK			UNM_FFP(~0) |  | ||||||
|  #define  UNU_FFP(x)			(((x) & 0xff) << 8) |  | ||||||
|  #define  UNU_FFP_MASK			UNU_FFP(~0) |  | ||||||
|  #define  CPU_EN				BIT(7) |  | ||||||
| --- a/net/dsa/tag_mtk.c |  | ||||||
| +++ b/net/dsa/tag_mtk.c |  | ||||||
| @@ -15,6 +15,7 @@ |  | ||||||
|  #define MTK_HDR_XMIT_TAGGED_TPID_8100	1 |  | ||||||
|  #define MTK_HDR_RECV_SOURCE_PORT_MASK	GENMASK(2, 0) |  | ||||||
|  #define MTK_HDR_XMIT_DP_BIT_MASK	GENMASK(5, 0) |  | ||||||
| +#define MTK_HDR_XMIT_SA_DIS		BIT(6) |  | ||||||
|   |  | ||||||
|  static struct sk_buff *mtk_tag_xmit(struct sk_buff *skb, |  | ||||||
|  				    struct net_device *dev) |  | ||||||
| @@ -22,6 +23,9 @@ static struct sk_buff *mtk_tag_xmit(stru |  | ||||||
|  	struct dsa_port *dp = dsa_slave_to_port(dev); |  | ||||||
|  	u8 *mtk_tag; |  | ||||||
|  	bool is_vlan_skb = true; |  | ||||||
| +	unsigned char *dest = eth_hdr(skb)->h_dest; |  | ||||||
| +	bool is_multicast_skb = is_multicast_ether_addr(dest) && |  | ||||||
| +				!is_broadcast_ether_addr(dest); |  | ||||||
|   |  | ||||||
|  	/* Build the special tag after the MAC Source Address. If VLAN header |  | ||||||
|  	 * is present, it's required that VLAN header and special tag is |  | ||||||
| @@ -47,6 +51,10 @@ static struct sk_buff *mtk_tag_xmit(stru |  | ||||||
|  		     MTK_HDR_XMIT_UNTAGGED; |  | ||||||
|  	mtk_tag[1] = (1 << dp->index) & MTK_HDR_XMIT_DP_BIT_MASK; |  | ||||||
|   |  | ||||||
| +	/* Disable SA learning for multicast frames */ |  | ||||||
| +	if (unlikely(is_multicast_skb)) |  | ||||||
| +		mtk_tag[1] |= MTK_HDR_XMIT_SA_DIS; |  | ||||||
| + |  | ||||||
|  	/* Tag control information is kept for 802.1Q */ |  | ||||||
|  	if (!is_vlan_skb) { |  | ||||||
|  		mtk_tag[2] = 0; |  | ||||||
| @@ -61,6 +69,9 @@ static struct sk_buff *mtk_tag_rcv(struc |  | ||||||
|  { |  | ||||||
|  	int port; |  | ||||||
|  	__be16 *phdr, hdr; |  | ||||||
| +	unsigned char *dest = eth_hdr(skb)->h_dest; |  | ||||||
| +	bool is_multicast_skb = is_multicast_ether_addr(dest) && |  | ||||||
| +				!is_broadcast_ether_addr(dest); |  | ||||||
|   |  | ||||||
|  	if (unlikely(!pskb_may_pull(skb, MTK_HDR_LEN))) |  | ||||||
|  		return NULL; |  | ||||||
| @@ -86,6 +97,10 @@ static struct sk_buff *mtk_tag_rcv(struc |  | ||||||
|  	if (!skb->dev) |  | ||||||
|  		return NULL; |  | ||||||
|   |  | ||||||
| +	/* Only unicast or broadcast frames are offloaded */ |  | ||||||
| +	if (likely(!is_multicast_skb)) |  | ||||||
| +		skb->offload_fwd_mark = 1; |  | ||||||
| + |  | ||||||
|  	return skb; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| @@ -42,7 +42,7 @@ Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com> | |||||||
|  ;---------------------------------------------------------------- |  ;---------------------------------------------------------------- | ||||||
| --- a/arch/arc/kernel/setup.c | --- a/arch/arc/kernel/setup.c | ||||||
| +++ b/arch/arc/kernel/setup.c | +++ b/arch/arc/kernel/setup.c | ||||||
| @@ -491,6 +491,8 @@ static inline bool uboot_arg_invalid(uns | @@ -492,6 +492,8 @@ static inline bool uboot_arg_invalid(uns | ||||||
|  /* We always pass 0 as magic from U-boot */ |  /* We always pass 0 as magic from U-boot */ | ||||||
|  #define UBOOT_MAGIC_VALUE	0 |  #define UBOOT_MAGIC_VALUE	0 | ||||||
|   |   | ||||||
| @@ -51,7 +51,7 @@ Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com> | |||||||
|  void __init handle_uboot_args(void) |  void __init handle_uboot_args(void) | ||||||
|  { |  { | ||||||
|  	bool use_embedded_dtb = true; |  	bool use_embedded_dtb = true; | ||||||
| @@ -529,7 +531,7 @@ void __init handle_uboot_args(void) | @@ -530,7 +532,7 @@ void __init handle_uboot_args(void) | ||||||
|  ignore_uboot_args: |  ignore_uboot_args: | ||||||
|   |   | ||||||
|  	if (use_embedded_dtb) { |  	if (use_embedded_dtb) { | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	__u16			tc_index;	/* traffic control index */ |  	__u16			tc_index;	/* traffic control index */ | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -5461,6 +5461,9 @@ static enum gro_result dev_gro_receive(s | @@ -5471,6 +5471,9 @@ static enum gro_result dev_gro_receive(s | ||||||
|  	int same_flow; |  	int same_flow; | ||||||
|  	int grow; |  	int grow; | ||||||
|   |   | ||||||
| @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (netif_elide_gro(skb->dev)) |  	if (netif_elide_gro(skb->dev)) | ||||||
|  		goto normal; |  		goto normal; | ||||||
|   |   | ||||||
| @@ -7254,6 +7257,48 @@ static void __netdev_adjacent_dev_unlink | @@ -7264,6 +7267,48 @@ static void __netdev_adjacent_dev_unlink | ||||||
|  					   &upper_dev->adj_list.lower); |  					   &upper_dev->adj_list.lower); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static int __netdev_upper_dev_link(struct net_device *dev, |  static int __netdev_upper_dev_link(struct net_device *dev, | ||||||
|  				   struct net_device *upper_dev, bool master, |  				   struct net_device *upper_dev, bool master, | ||||||
|  				   void *upper_priv, void *upper_info, |  				   void *upper_priv, void *upper_info, | ||||||
| @@ -7304,6 +7349,7 @@ static int __netdev_upper_dev_link(struc | @@ -7314,6 +7359,7 @@ static int __netdev_upper_dev_link(struc | ||||||
|  	if (ret) |  	if (ret) | ||||||
|  		return ret; |  		return ret; | ||||||
|   |   | ||||||
| @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, |  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, | ||||||
|  					    &changeupper_info.info); |  					    &changeupper_info.info); | ||||||
|  	ret = notifier_to_errno(ret); |  	ret = notifier_to_errno(ret); | ||||||
| @@ -7397,6 +7443,7 @@ void netdev_upper_dev_unlink(struct net_ | @@ -7407,6 +7453,7 @@ void netdev_upper_dev_unlink(struct net_ | ||||||
|   |   | ||||||
|  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); |  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); | ||||||
|   |   | ||||||
| @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, |  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, | ||||||
|  				      &changeupper_info.info); |  				      &changeupper_info.info); | ||||||
|   |   | ||||||
| @@ -8127,6 +8174,7 @@ int dev_set_mac_address(struct net_devic | @@ -8137,6 +8184,7 @@ int dev_set_mac_address(struct net_devic | ||||||
|  	if (err) |  	if (err) | ||||||
|  		return err; |  		return err; | ||||||
|  	dev->addr_assign_type = NET_ADDR_SET; |  	dev->addr_assign_type = NET_ADDR_SET; | ||||||
|   | |||||||
| @@ -13,8 +13,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 5 +++++ |  arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 5 +++++ | ||||||
|  3 files changed, 15 insertions(+) |  3 files changed, 15 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi |  | ||||||
| index 1a9a9d9..60563ff 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | ||||||
| @@ -313,6 +313,11 @@ | @@ -313,6 +313,11 @@ | ||||||
| @@ -29,8 +27,6 @@ index 1a9a9d9..60563ff 100644 | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  &ldb { |  &ldb { | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi |  | ||||||
| index 54b2bea..8942bec 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | ||||||
| @@ -304,6 +304,11 @@ | @@ -304,6 +304,11 @@ | ||||||
| @@ -45,8 +41,6 @@ index 54b2bea..8942bec 100644 | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  &ldb { |  &ldb { | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi |  | ||||||
| index 1b6c133..c40583d 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | ||||||
| @@ -361,6 +361,11 @@ | @@ -361,6 +361,11 @@ | ||||||
| @@ -61,6 +55,3 @@ index 1b6c133..c40583d 100644 | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  &ldb { |  &ldb { | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11,8 +11,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 25 +++++++++++++++++++++++++ |  arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 25 +++++++++++++++++++++++++ | ||||||
|  1 file changed, 25 insertions(+) |  1 file changed, 25 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi |  | ||||||
| index be1af74..30fe47f 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | ||||||
| @@ -220,6 +220,14 @@ | @@ -220,6 +220,14 @@ | ||||||
| @@ -54,6 +52,3 @@ index be1af74..30fe47f 100644 | |||||||
|  	pinctrl_uart4: uart4grp { |  	pinctrl_uart4: uart4grp { | ||||||
|  		fsl,pins = < |  		fsl,pins = < | ||||||
|  			MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA	0x1b0b1 |  			MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA	0x1b0b1 | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,8 +13,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw552x.dtsi | 14 ++++++++++++++ |  arch/arm/boot/dts/imx6qdl-gw552x.dtsi | 14 ++++++++++++++ | ||||||
|  1 file changed, 14 insertions(+) |  1 file changed, 14 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi |  | ||||||
| index dc646b7..bb35971 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi | ||||||
| @@ -258,6 +258,14 @@ | @@ -258,6 +258,14 @@ | ||||||
| @@ -45,6 +43,3 @@ index dc646b7..bb35971 100644 | |||||||
|  	pinctrl_wdog: wdoggrp { |  	pinctrl_wdog: wdoggrp { | ||||||
|  		fsl,pins = < |  		fsl,pins = < | ||||||
|  			MX6QDL_PAD_DISP0_DAT8__WDOG1_B		0x1b0b0 |  			MX6QDL_PAD_DISP0_DAT8__WDOG1_B		0x1b0b0 | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,8 +13,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw560x.dtsi | 31 +++++++++++++++++++++++++++++++ |  arch/arm/boot/dts/imx6qdl-gw560x.dtsi | 31 +++++++++++++++++++++++++++++++ | ||||||
|  1 file changed, 31 insertions(+) |  1 file changed, 31 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw560x.dtsi b/arch/arm/boot/dts/imx6qdl-gw560x.dtsi |  | ||||||
| index e8e36df..69ca70d 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw560x.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw560x.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw560x.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw560x.dtsi | ||||||
| @@ -295,6 +295,15 @@ | @@ -295,6 +295,15 @@ | ||||||
| @@ -76,6 +74,3 @@ index e8e36df..69ca70d 100644 | |||||||
|  	pinctrl_pcie: pciegrp { |  	pinctrl_pcie: pciegrp { | ||||||
|  		fsl,pins = < |  		fsl,pins = < | ||||||
|  			MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31	0x1b0b0    /* PCI_RST# */ |  			MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31	0x1b0b0    /* PCI_RST# */ | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,8 +13,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw5904.dtsi | 31 +++++++++++++++++++++++++++++++ |  arch/arm/boot/dts/imx6qdl-gw5904.dtsi | 31 +++++++++++++++++++++++++++++++ | ||||||
|  1 file changed, 31 insertions(+) |  1 file changed, 31 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw5904.dtsi b/arch/arm/boot/dts/imx6qdl-gw5904.dtsi |  | ||||||
| index 6d21cc6..76d6cf5 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw5904.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw5904.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw5904.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw5904.dtsi | ||||||
| @@ -248,6 +248,15 @@ | @@ -248,6 +248,15 @@ | ||||||
| @@ -69,6 +67,3 @@ index 6d21cc6..76d6cf5 100644 | |||||||
|  	pinctrl_pcie: pciegrp { |  	pinctrl_pcie: pciegrp { | ||||||
|  		fsl,pins = < |  		fsl,pins = < | ||||||
|  			MX6QDL_PAD_GPIO_0__GPIO1_IO00	0x1b0b0 /* PCIE RST */ |  			MX6QDL_PAD_GPIO_0__GPIO1_IO00	0x1b0b0 /* PCIE RST */ | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -16,8 +16,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 32 ++++++++++++-------------------- |  arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 32 ++++++++++++-------------------- | ||||||
|  1 file changed, 12 insertions(+), 20 deletions(-) |  1 file changed, 12 insertions(+), 20 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi |  | ||||||
| index 30fe47f..b850f8f 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | ||||||
| @@ -83,19 +83,6 @@ | @@ -83,19 +83,6 @@ | ||||||
| @@ -82,6 +80,3 @@ index 30fe47f..b850f8f 100644 | |||||||
|  	pinctrl_reg_wl: regwlgrp { |  	pinctrl_reg_wl: regwlgrp { | ||||||
|  		fsl,pins = < |  		fsl,pins = < | ||||||
|  			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x1b0b1 |  			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x1b0b1 | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,8 +12,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> | |||||||
|  arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 3 +-- |  arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 3 +-- | ||||||
|  1 file changed, 1 insertion(+), 2 deletions(-) |  1 file changed, 1 insertion(+), 2 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi |  | ||||||
| index b850f8f..0857de5 100644 |  | ||||||
| --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | ||||||
| +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi | ||||||
| @@ -81,7 +81,6 @@ | @@ -81,7 +81,6 @@ | ||||||
| @@ -33,6 +31,3 @@ index b850f8f..0857de5 100644 | |||||||
|  	non-removable; |  	non-removable; | ||||||
|  	bus-width = <4>; |  	bus-width = <4>; | ||||||
|  	status = "okay"; |  	status = "okay"; | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/freescale/Kconfig | --- a/drivers/net/ethernet/freescale/Kconfig | ||||||
| +++ b/drivers/net/ethernet/freescale/Kconfig | +++ b/drivers/net/ethernet/freescale/Kconfig | ||||||
| @@ -95,6 +95,7 @@ config GIANFAR | @@ -97,6 +97,7 @@ config GIANFAR | ||||||
|  	  This driver supports the Gigabit TSEC on the MPC83xx, MPC85xx, |  	  This driver supports the Gigabit TSEC on the MPC83xx, MPC85xx, | ||||||
|  	  and MPC86xx family of chips, the eTSEC on LS1021A and the FEC |  	  and MPC86xx family of chips, the eTSEC on LS1021A and the FEC | ||||||
|  	  on the 8540. |  	  on the 8540. | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/freescale/Kconfig | --- a/drivers/net/ethernet/freescale/Kconfig | ||||||
| +++ b/drivers/net/ethernet/freescale/Kconfig | +++ b/drivers/net/ethernet/freescale/Kconfig | ||||||
| @@ -96,7 +96,7 @@ config GIANFAR | @@ -98,7 +98,7 @@ config GIANFAR | ||||||
|  	  and MPC86xx family of chips, the eTSEC on LS1021A and the FEC |  	  and MPC86xx family of chips, the eTSEC on LS1021A and the FEC | ||||||
|  	  on the 8540. |  	  on the 8540. | ||||||
|  source "drivers/net/ethernet/freescale/sdk_fman/Kconfig" |  source "drivers/net/ethernet/freescale/sdk_fman/Kconfig" | ||||||
|   | |||||||
| @@ -648,7 +648,7 @@ Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> | |||||||
|  static const u32 vsc9959_gcb_regmap[] = { |  static const u32 vsc9959_gcb_regmap[] = { | ||||||
| --- a/include/net/dsa.h | --- a/include/net/dsa.h | ||||||
| +++ b/include/net/dsa.h | +++ b/include/net/dsa.h | ||||||
| @@ -545,6 +545,7 @@ struct dsa_switch_ops { | @@ -552,6 +552,7 @@ struct dsa_switch_ops { | ||||||
|  	 */ |  	 */ | ||||||
|  	netdev_tx_t (*port_deferred_xmit)(struct dsa_switch *ds, int port, |  	netdev_tx_t (*port_deferred_xmit)(struct dsa_switch *ds, int port, | ||||||
|  					  struct sk_buff *skb); |  					  struct sk_buff *skb); | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ on touch") which was merged in v5.4-rc3. | |||||||
|  |  | ||||||
| --- a/include/net/dsa.h | --- a/include/net/dsa.h | ||||||
| +++ b/include/net/dsa.h | +++ b/include/net/dsa.h | ||||||
| @@ -277,6 +277,11 @@ struct dsa_switch { | @@ -284,6 +284,11 @@ struct dsa_switch { | ||||||
|  	 */ |  	 */ | ||||||
|  	bool			vlan_filtering; |  	bool			vlan_filtering; | ||||||
|   |   | ||||||
| @@ -38,7 +38,7 @@ on touch") which was merged in v5.4-rc3. | |||||||
|  	struct dsa_port ports[]; |  	struct dsa_port ports[]; | ||||||
| --- a/net/dsa/port.c | --- a/net/dsa/port.c | ||||||
| +++ b/net/dsa/port.c | +++ b/net/dsa/port.c | ||||||
| @@ -625,6 +625,7 @@ static int dsa_port_phylink_register(str | @@ -639,6 +639,7 @@ static int dsa_port_phylink_register(str | ||||||
|   |   | ||||||
|  	dp->pl_config.dev = ds->dev; |  	dp->pl_config.dev = ds->dev; | ||||||
|  	dp->pl_config.type = PHYLINK_DEV; |  	dp->pl_config.type = PHYLINK_DEV; | ||||||
|   | |||||||
| @@ -58,4 +58,4 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
| +	depends on QUICC_ENGINE && FSL_SOC && PPC32 | +	depends on QUICC_ENGINE && FSL_SOC && PPC32 | ||||||
|  	select FSL_PQ_MDIO |  	select FSL_PQ_MDIO | ||||||
|  	select PHYLIB |  	select PHYLIB | ||||||
|  	---help--- |  	select FIXED_PHY | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/crypto/inside-secure/safexcel.c | --- a/drivers/crypto/inside-secure/safexcel.c | ||||||
| +++ b/drivers/crypto/inside-secure/safexcel.c | +++ b/drivers/crypto/inside-secure/safexcel.c | ||||||
| @@ -595,6 +595,14 @@ | @@ -595,6 +595,14 @@ static int safexcel_hw_init(struct safex | ||||||
|  		val |= EIP197_MST_CTRL_TX_MAX_CMD(5); |  		val |= EIP197_MST_CTRL_TX_MAX_CMD(5); | ||||||
|  		writel(val, EIP197_HIA_AIC(priv) + EIP197_HIA_MST_CTRL); |  		writel(val, EIP197_HIA_AIC(priv) + EIP197_HIA_MST_CTRL); | ||||||
|  	} |  	} | ||||||
|   | |||||||
| @@ -78,23 +78,21 @@ Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> | |||||||
|  drivers/net/dsa/Kconfig | 6 +++--- |  drivers/net/dsa/Kconfig | 6 +++--- | ||||||
|  1 file changed, 3 insertions(+), 3 deletions(-) |  1 file changed, 3 insertions(+), 3 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/drivers/net/dsa/Kconfig b/drivers/net/dsa/Kconfig | --- a/drivers/net/dsa/Kconfig | ||||||
| index c7667645f04a..467f80157acf 100644 | +++ b/drivers/net/dsa/Kconfig | ||||||
| --- a/drivers/net/dsa/Kconfig | @@ -33,12 +33,12 @@ config NET_DSA_LANTIQ_GSWIP | ||||||
| +++ b/drivers/net/dsa/Kconfig |  	  the xrx200 / VR9 SoC. | ||||||
| @@ -33,12 +33,12 @@ config NET_DSA_LANTIQ_GSWIP |   | ||||||
|  	  the xrx200 / VR9 SoC. |  config NET_DSA_MT7530 | ||||||
|   | -	tristate "Mediatek MT7530 Ethernet switch support" | ||||||
|  config NET_DSA_MT7530 | +	tristate "MediaTek MT7530 and MT7621 Ethernet switch support" | ||||||
| -	tristate "Mediatek MT7530 Ethernet switch support" |  	depends on NET_DSA | ||||||
| +	tristate "MediaTek MT7530 and MT7621 Ethernet switch support" |  	select NET_DSA_TAG_MTK | ||||||
|  	depends on NET_DSA |  	---help--- | ||||||
|  	select NET_DSA_TAG_MTK | -	  This enables support for the Mediatek MT7530 Ethernet switch | ||||||
|  	---help--- | -	  chip. | ||||||
| -	  This enables support for the Mediatek MT7530 Ethernet switch | +	  This enables support for the MediaTek MT7530 and MT7621 Ethernet | ||||||
| -	  chip. | +	  switch chip. | ||||||
| +	  This enables support for the MediaTek MT7530 and MT7621 Ethernet |   | ||||||
| +	  switch chip. |  config NET_DSA_MV88E6060 | ||||||
|   |  	tristate "Marvell 88E6060 ethernet switch chip support" | ||||||
|  config NET_DSA_MV88E6060 |  | ||||||
|  	tristate "Marvell 88E6060 ethernet switch chip support" |  | ||||||
|   | |||||||
| @@ -84,10 +84,8 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com> | |||||||
|  drivers/net/dsa/mt7530.h |  29 ++++- |  drivers/net/dsa/mt7530.h |  29 ++++- | ||||||
|  2 files changed, 203 insertions(+), 57 deletions(-) |  2 files changed, 203 insertions(+), 57 deletions(-) | ||||||
|  |  | ||||||
| Index: linux-5.4.43/drivers/net/dsa/mt7530.c | --- a/drivers/net/dsa/mt7530.c | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.c | ||||||
| --- linux-5.4.43.orig/drivers/net/dsa/mt7530.c |  | ||||||
| +++ linux-5.4.43/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -373,7 +373,7 @@ mt7530_fdb_write(struct mt7530_priv *pri | @@ -373,7 +373,7 @@ mt7530_fdb_write(struct mt7530_priv *pri | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -389,10 +387,8 @@ Index: linux-5.4.43/drivers/net/dsa/mt7530.c | |||||||
|   |   | ||||||
|  	if (priv->id == ID_MT7530) { |  	if (priv->id == ID_MT7530) { | ||||||
|  		priv->core_pwr = devm_regulator_get(&mdiodev->dev, "core"); |  		priv->core_pwr = devm_regulator_get(&mdiodev->dev, "core"); | ||||||
| Index: linux-5.4.43/drivers/net/dsa/mt7530.h | --- a/drivers/net/dsa/mt7530.h | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.h | ||||||
| --- linux-5.4.43.orig/drivers/net/dsa/mt7530.h |  | ||||||
| +++ linux-5.4.43/drivers/net/dsa/mt7530.h |  | ||||||
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||||||
|  #define MT7530_NUM_FDB_RECORDS		2048 |  #define MT7530_NUM_FDB_RECORDS		2048 | ||||||
|  #define MT7530_ALL_MEMBERS		0xff |  #define MT7530_ALL_MEMBERS		0xff | ||||||
|   | |||||||
| @@ -79,103 +79,101 @@ Signed-off-by: Landen Chao <landen.chao@mediatek.com> | |||||||
|  .../devicetree/bindings/net/dsa/mt7530.txt    | 77 ++++++++++++++++++- |  .../devicetree/bindings/net/dsa/mt7530.txt    | 77 ++++++++++++++++++- | ||||||
|  1 file changed, 74 insertions(+), 3 deletions(-) |  1 file changed, 74 insertions(+), 3 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt | --- a/Documentation/devicetree/bindings/net/dsa/mt7530.txt | ||||||
| index c5ed5d25f642..dc226a4e402a 100644 | +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt | ||||||
| --- a/Documentation/devicetree/bindings/net/dsa/mt7530.txt | @@ -5,6 +5,7 @@ Required properties: | ||||||
| +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt |   | ||||||
| @@ -5,6 +5,7 @@ Required properties: |  - compatible: may be compatible = "mediatek,mt7530" | ||||||
|   |  	or compatible = "mediatek,mt7621" | ||||||
|  - compatible: may be compatible = "mediatek,mt7530" | +	or compatible = "mediatek,mt7531" | ||||||
|  	or compatible = "mediatek,mt7621" |  - #address-cells: Must be 1. | ||||||
| +	or compatible = "mediatek,mt7531" |  - #size-cells: Must be 0. | ||||||
|  - #address-cells: Must be 1. |  - mediatek,mcm: Boolean; if defined, indicates that either MT7530 is the part | ||||||
|  - #size-cells: Must be 0. | @@ -32,10 +33,13 @@ Required properties for the child nodes | ||||||
|  - mediatek,mcm: Boolean; if defined, indicates that either MT7530 is the part |   | ||||||
| @@ -32,10 +33,13 @@ Required properties for the child nodes within ports container: |  - reg: Port address described must be 6 for CPU port and from 0 to 5 for | ||||||
|   |  	user ports. | ||||||
|  - reg: Port address described must be 6 for CPU port and from 0 to 5 for | -- phy-mode: String, must be either "trgmii" or "rgmii" for port labeled | ||||||
|  	user ports. | -	 "cpu". | ||||||
| -- phy-mode: String, must be either "trgmii" or "rgmii" for port labeled | +- phy-mode: String, the follow value would be acceptable for port labeled "cpu" | ||||||
| -	 "cpu". | +	If compatible mediatek,mt7530 or mediatek,mt7621 is set, | ||||||
| +- phy-mode: String, the follow value would be acceptable for port labeled "cpu" | +	must be either "trgmii" or "rgmii" | ||||||
| +	If compatible mediatek,mt7530 or mediatek,mt7621 is set, | +	If compatible mediatek,mt7531 is set, | ||||||
| +	must be either "trgmii" or "rgmii" | +	must be either "sgmii", "1000base-x" or "2500base-x" | ||||||
| +	If compatible mediatek,mt7531 is set, |   | ||||||
| +	must be either "sgmii", "1000base-x" or "2500base-x" | -Port 5 of the switch is muxed between: | ||||||
|   | +Port 5 of mt7530 and mt7621 switch is muxed between: | ||||||
| -Port 5 of the switch is muxed between: |  1. GMAC5: GMAC5 can interface with another external MAC or PHY. | ||||||
| +Port 5 of mt7530 and mt7621 switch is muxed between: |  2. PHY of port 0 or port 4: PHY interfaces with an external MAC like 2nd GMAC | ||||||
|  1. GMAC5: GMAC5 can interface with another external MAC or PHY. |     of the SOC. Used in many setups where port 0/4 becomes the WAN port. | ||||||
|  2. PHY of port 0 or port 4: PHY interfaces with an external MAC like 2nd GMAC | @@ -308,3 +312,70 @@ Example 3: MT7621: Port 5 is connected t | ||||||
|     of the SOC. Used in many setups where port 0/4 becomes the WAN port. |  		}; | ||||||
| @@ -308,3 +312,70 @@ Example 3: MT7621: Port 5 is connected to external PHY: Port 5 -> external PHY. |  	}; | ||||||
|  		}; |  }; | ||||||
|  	}; | + | ||||||
|  }; | +Example 4: | ||||||
| + | + | ||||||
| +Example 4: | +ð { | ||||||
| + | +	gmac0: mac@0 { | ||||||
| +ð { | +		compatible = "mediatek,eth-mac"; | ||||||
| +	gmac0: mac@0 { | +		reg = <0>; | ||||||
| +		compatible = "mediatek,eth-mac"; | +		phy-mode = "2500base-x"; | ||||||
| +		reg = <0>; | + | ||||||
| +		phy-mode = "2500base-x"; | +		fixed-link { | ||||||
| + | +			speed = <1000>; | ||||||
| +		fixed-link { | +			full-duplex; | ||||||
| +			speed = <1000>; | +			pause; | ||||||
| +			full-duplex; | +		}; | ||||||
| +			pause; | +	}; | ||||||
| +		}; | + | ||||||
| +	}; | +	&mdio0 { | ||||||
| + | +		switch@0 { | ||||||
| +	&mdio0 { | +			compatible = "mediatek,mt7531"; | ||||||
| +		switch@0 { | +			reg = <0>; | ||||||
| +			compatible = "mediatek,mt7531"; | +			reset-gpios = <&pio 54 0>; | ||||||
| +			reg = <0>; | + | ||||||
| +			reset-gpios = <&pio 54 0>; | +			ports { | ||||||
| + | +				#address-cells = <1>; | ||||||
| +			ports { | +				#size-cells = <0>; | ||||||
| +				#address-cells = <1>; | +				reg = <0>; | ||||||
| +				#size-cells = <0>; | + | ||||||
| +				reg = <0>; | +				port@0 { | ||||||
| + | +					reg = <0>; | ||||||
| +				port@0 { | +					label = "lan0"; | ||||||
| +					reg = <0>; | +				}; | ||||||
| +					label = "lan0"; | + | ||||||
| +				}; | +				port@1 { | ||||||
| + | +					reg = <1>; | ||||||
| +				port@1 { | +					label = "lan1"; | ||||||
| +					reg = <1>; | +				}; | ||||||
| +					label = "lan1"; | + | ||||||
| +				}; | +				port@2 { | ||||||
| + | +					reg = <2>; | ||||||
| +				port@2 { | +					label = "lan2"; | ||||||
| +					reg = <2>; | +				}; | ||||||
| +					label = "lan2"; | + | ||||||
| +				}; | +				port@3 { | ||||||
| + | +					reg = <3>; | ||||||
| +				port@3 { | +					label = "lan3"; | ||||||
| +					reg = <3>; | +				}; | ||||||
| +					label = "lan3"; | + | ||||||
| +				}; | +				port@4 { | ||||||
| + | +					reg = <4>; | ||||||
| +				port@4 { | +					label = "wan"; | ||||||
| +					reg = <4>; | +				}; | ||||||
| +					label = "wan"; | + | ||||||
| +				}; | +				port@6 { | ||||||
| + | +					reg = <6>; | ||||||
| +				port@6 { | +					label = "cpu"; | ||||||
| +					reg = <6>; | +					ethernet = <&gmac0>; | ||||||
| +					label = "cpu"; | +					phy-mode = "2500base-x"; | ||||||
| +					ethernet = <&gmac0>; | + | ||||||
| +					phy-mode = "2500base-x"; | +					fixed-link { | ||||||
| + | +						speed = <1000>; | ||||||
| +					fixed-link { | +						full-duplex; | ||||||
| +						speed = <1000>; | +						pause; | ||||||
| +						full-duplex; | +					}; | ||||||
| +						pause; | +				}; | ||||||
| +					}; | +			}; | ||||||
| +				}; | +		}; | ||||||
| +			}; | +	}; | ||||||
| +		}; |  | ||||||
| +	}; |  | ||||||
|   | |||||||
| @@ -87,10 +87,8 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com> | |||||||
|  drivers/net/dsa/mt7530.h | 144 +++++++++ |  drivers/net/dsa/mt7530.h | 144 +++++++++ | ||||||
|  3 files changed, 784 insertions(+), 9 deletions(-) |  3 files changed, 784 insertions(+), 9 deletions(-) | ||||||
|  |  | ||||||
| Index: linux-5.4.43/drivers/net/dsa/Kconfig | --- a/drivers/net/dsa/Kconfig | ||||||
| =================================================================== | +++ b/drivers/net/dsa/Kconfig | ||||||
| --- linux-5.4.43.orig/drivers/net/dsa/Kconfig |  | ||||||
| +++ linux-5.4.43/drivers/net/dsa/Kconfig |  | ||||||
| @@ -33,12 +33,12 @@ config NET_DSA_LANTIQ_GSWIP | @@ -33,12 +33,12 @@ config NET_DSA_LANTIQ_GSWIP | ||||||
|  	  the xrx200 / VR9 SoC. |  	  the xrx200 / VR9 SoC. | ||||||
|   |   | ||||||
| @@ -107,10 +105,8 @@ Index: linux-5.4.43/drivers/net/dsa/Kconfig | |||||||
|   |   | ||||||
|  config NET_DSA_MV88E6060 |  config NET_DSA_MV88E6060 | ||||||
|  	tristate "Marvell 88E6060 ethernet switch chip support" |  	tristate "Marvell 88E6060 ethernet switch chip support" | ||||||
| Index: linux-5.4.43/drivers/net/dsa/mt7530.c | --- a/drivers/net/dsa/mt7530.c | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.c | ||||||
| --- linux-5.4.43.orig/drivers/net/dsa/mt7530.c |  | ||||||
| +++ linux-5.4.43/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -234,6 +234,12 @@ mt7530_write(struct mt7530_priv *priv, u | @@ -234,6 +234,12 @@ mt7530_write(struct mt7530_priv *priv, u | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -882,10 +878,8 @@ Index: linux-5.4.43/drivers/net/dsa/mt7530.c | |||||||
|  	{ /* sentinel */ }, |  	{ /* sentinel */ }, | ||||||
|  }; |  }; | ||||||
|  MODULE_DEVICE_TABLE(of, mt7530_of_match); |  MODULE_DEVICE_TABLE(of, mt7530_of_match); | ||||||
| Index: linux-5.4.43/drivers/net/dsa/mt7530.h | --- a/drivers/net/dsa/mt7530.h | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.h | ||||||
| --- linux-5.4.43.orig/drivers/net/dsa/mt7530.h |  | ||||||
| +++ linux-5.4.43/drivers/net/dsa/mt7530.h |  | ||||||
| @@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||||||
|  enum mt753x_id { |  enum mt753x_id { | ||||||
|  	ID_MT7530 = 0, |  	ID_MT7530 = 0, | ||||||
|   | |||||||
| @@ -77,64 +77,62 @@ Signed-off-by: Landen Chao <landen.chao@mediatek.com> | |||||||
|  .../dts/mediatek/mt7622-bananapi-bpi-r64.dts  | 50 +++++++++++++++++++ |  .../dts/mediatek/mt7622-bananapi-bpi-r64.dts  | 50 +++++++++++++++++++ | ||||||
|  1 file changed, 50 insertions(+) |  1 file changed, 50 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | ||||||
| index 83e10591e0e5..ffacefee8e2a 100644 | +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | ||||||
| --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | @@ -150,6 +150,56 @@ | ||||||
| +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts |  	mdio: mdio-bus { | ||||||
| @@ -143,6 +143,56 @@ |  		#address-cells = <1>; | ||||||
|  	mdio: mdio-bus { |  		#size-cells = <0>; | ||||||
|  		#address-cells = <1>; | + | ||||||
|  		#size-cells = <0>; | +		switch@0 { | ||||||
| + | +			compatible = "mediatek,mt7531"; | ||||||
| +		switch@0 { | +			reg = <0>; | ||||||
| +			compatible = "mediatek,mt7531"; | +			reset-gpios = <&pio 54 0>; | ||||||
| +			reg = <0>; | + | ||||||
| +			reset-gpios = <&pio 54 0>; | +			ports { | ||||||
| + | +				#address-cells = <1>; | ||||||
| +			ports { | +				#size-cells = <0>; | ||||||
| +				#address-cells = <1>; | + | ||||||
| +				#size-cells = <0>; | +				port@0 { | ||||||
| + | +					reg = <0>; | ||||||
| +				port@0 { | +					label = "wan"; | ||||||
| +					reg = <0>; | +				}; | ||||||
| +					label = "wan"; | + | ||||||
| +				}; | +				port@1 { | ||||||
| + | +					reg = <1>; | ||||||
| +				port@1 { | +					label = "lan0"; | ||||||
| +					reg = <1>; | +				}; | ||||||
| +					label = "lan0"; | + | ||||||
| +				}; | +				port@2 { | ||||||
| + | +					reg = <2>; | ||||||
| +				port@2 { | +					label = "lan1"; | ||||||
| +					reg = <2>; | +				}; | ||||||
| +					label = "lan1"; | + | ||||||
| +				}; | +				port@3 { | ||||||
| + | +					reg = <3>; | ||||||
| +				port@3 { | +					label = "lan2"; | ||||||
| +					reg = <3>; | +				}; | ||||||
| +					label = "lan2"; | + | ||||||
| +				}; | +				port@4 { | ||||||
| + | +					reg = <4>; | ||||||
| +				port@4 { | +					label = "lan3"; | ||||||
| +					reg = <4>; | +				}; | ||||||
| +					label = "lan3"; | + | ||||||
| +				}; | +				port@6 { | ||||||
| + | +					reg = <6>; | ||||||
| +				port@6 { | +					label = "cpu"; | ||||||
| +					reg = <6>; | +					ethernet = <&gmac0>; | ||||||
| +					label = "cpu"; | +					phy-mode = "2500base-x"; | ||||||
| +					ethernet = <&gmac0>; | + | ||||||
| +					phy-mode = "2500base-x"; | +					fixed-link { | ||||||
| + | +						speed = <2500>; | ||||||
| +					fixed-link { | +						full-duplex; | ||||||
| +						speed = <2500>; | +						pause; | ||||||
| +						full-duplex; | +					}; | ||||||
| +						pause; | +				}; | ||||||
| +					}; | +			}; | ||||||
| +				}; | +		}; | ||||||
| +			}; | + | ||||||
| +		}; |  	}; | ||||||
| + |  }; | ||||||
|  	}; |   | ||||||
|  }; |  | ||||||
|   |  | ||||||
|   | |||||||
| @@ -15,11 +15,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> | |||||||
|  drivers/gpio/gpio-thunderx.c | 9 ++++++--- |  drivers/gpio/gpio-thunderx.c | 9 ++++++--- | ||||||
|  1 file changed, 6 insertions(+), 3 deletions(-) |  1 file changed, 6 insertions(+), 3 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c |  | ||||||
| index 715371b..feda2a2 100644 |  | ||||||
| --- a/drivers/gpio/gpio-thunderx.c | --- a/drivers/gpio/gpio-thunderx.c | ||||||
| +++ b/drivers/gpio/gpio-thunderx.c | +++ b/drivers/gpio/gpio-thunderx.c | ||||||
| @@ -363,15 +363,18 @@ static int thunderx_gpio_irq_request_resources(struct irq_data *data) | @@ -363,15 +363,18 @@ static int thunderx_gpio_irq_request_res | ||||||
|  { |  { | ||||||
|  	struct thunderx_line *txline = irq_data_get_irq_chip_data(data); |  	struct thunderx_line *txline = irq_data_get_irq_chip_data(data); | ||||||
|  	struct thunderx_gpio *txgpio = txline->txgpio; |  	struct thunderx_gpio *txgpio = txline->txgpio; | ||||||
| @@ -41,6 +39,3 @@ index 715371b..feda2a2 100644 | |||||||
|   |   | ||||||
|  	return r; |  	return r; | ||||||
|  } |  } | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,11 +12,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> | |||||||
|  drivers/net/can/spi/mcp251x.c | 15 ++++++++------- |  drivers/net/can/spi/mcp251x.c | 15 ++++++++------- | ||||||
|  1 file changed, 8 insertions(+), 7 deletions(-) |  1 file changed, 8 insertions(+), 7 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c |  | ||||||
| index bb20a9b..dc0574a 100644 |  | ||||||
| --- a/drivers/net/can/spi/mcp251x.c | --- a/drivers/net/can/spi/mcp251x.c | ||||||
| +++ b/drivers/net/can/spi/mcp251x.c | +++ b/drivers/net/can/spi/mcp251x.c | ||||||
| @@ -291,23 +291,23 @@ static u8 mcp251x_read_reg(struct spi_device *spi, u8 reg) | @@ -291,23 +291,23 @@ static u8 mcp251x_read_reg(struct spi_de | ||||||
|  	priv->spi_tx_buf[0] = INSTRUCTION_READ; |  	priv->spi_tx_buf[0] = INSTRUCTION_READ; | ||||||
|  	priv->spi_tx_buf[1] = reg; |  	priv->spi_tx_buf[1] = reg; | ||||||
|   |   | ||||||
| @@ -45,7 +43,7 @@ index bb20a9b..dc0574a 100644 | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void mcp251x_write_reg(struct spi_device *spi, u8 reg, u8 val) |  static void mcp251x_write_reg(struct spi_device *spi, u8 reg, u8 val) | ||||||
| @@ -398,8 +398,9 @@ static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf, | @@ -398,8 +398,9 @@ static void mcp251x_hw_rx_frame(struct s | ||||||
|  			buf[i] = mcp251x_read_reg(spi, RXBCTRL(buf_idx) + i); |  			buf[i] = mcp251x_read_reg(spi, RXBCTRL(buf_idx) + i); | ||||||
|  	} else { |  	} else { | ||||||
|  		priv->spi_tx_buf[RXBCTRL_OFF] = INSTRUCTION_READ_RXB(buf_idx); |  		priv->spi_tx_buf[RXBCTRL_OFF] = INSTRUCTION_READ_RXB(buf_idx); | ||||||
| @@ -57,6 +55,3 @@ index bb20a9b..dc0574a 100644 | |||||||
|  	} |  	} | ||||||
|  } |  } | ||||||
|   |   | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Petr Štetiar
					Petr Štetiar