kernel: bump 4.14 to 4.14.125 (FS#2305 FS#2297)
Refreshed all patches. This bump contains upstream commits which seem to avoid (not properly fix) the errors as seen in FS#2305 and FS#2297 Altered patches: - 403-net-mvneta-convert-to-phylink.patch - 410-sfp-hack-allow-marvell-10G-phy-support-to-use-SFP.patch Compile-tested on: ar71xx, cns3xxx, imx6, mvebu, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6, x86_64 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
		| @@ -7,11 +7,11 @@ ifdef CONFIG_TESTING_KERNEL | |||||||
| endif | endif | ||||||
|  |  | ||||||
| LINUX_VERSION-4.9 = .181 | LINUX_VERSION-4.9 = .181 | ||||||
| LINUX_VERSION-4.14 = .123 | LINUX_VERSION-4.14 = .125 | ||||||
| LINUX_VERSION-4.19 = .48 | LINUX_VERSION-4.19 = .48 | ||||||
|  |  | ||||||
| LINUX_KERNEL_HASH-4.9.181 = 8fcd223e11cba322801bc38cdb8b581d64c0115f585dcb6604de8561b574fced | LINUX_KERNEL_HASH-4.9.181 = 8fcd223e11cba322801bc38cdb8b581d64c0115f585dcb6604de8561b574fced | ||||||
| LINUX_KERNEL_HASH-4.14.123 = 25f58cb56bde388ac9bcee984f5f2d0ca094b0a8af6b92ad1f5b2fd0e6725b85 | LINUX_KERNEL_HASH-4.14.125 = 3e3dbc20215a28385bf46e2d0b8d9019df38ef1ee677e5e8870c7c3cde2ab318 | ||||||
| LINUX_KERNEL_HASH-4.19.48 = 01d0db4f10cc8e384241a605e29413e32c442aa6853c116877538b07c16893fa | LINUX_KERNEL_HASH-4.19.48 = 01d0db4f10cc8e384241a605e29413e32c442aa6853c116877538b07c16893fa | ||||||
|  |  | ||||||
| remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ produce a noisy warning. | |||||||
|   |   | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -372,10 +372,14 @@ static int xhci_try_enable_msi(struct us | @@ -370,10 +370,14 @@ static int xhci_try_enable_msi(struct us | ||||||
|  		free_irq(hcd->irq, hcd); |  		free_irq(hcd->irq, hcd); | ||||||
|  	hcd->irq = 0; |  	hcd->irq = 0; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/arch/mips/ath79/setup.c | --- a/arch/mips/ath79/setup.c | ||||||
| +++ b/arch/mips/ath79/setup.c | +++ b/arch/mips/ath79/setup.c | ||||||
| @@ -277,6 +277,8 @@ void __init plat_time_init(void) | @@ -283,6 +283,8 @@ void __init plat_time_init(void) | ||||||
|  	mips_hpt_frequency = cpu_clk_rate / 2; |  	mips_hpt_frequency = cpu_clk_rate / 2; | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|   |   | ||||||
| --- a/arch/mips/ath79/setup.c | --- a/arch/mips/ath79/setup.c | ||||||
| +++ b/arch/mips/ath79/setup.c | +++ b/arch/mips/ath79/setup.c | ||||||
| @@ -190,16 +190,20 @@ unsigned int get_c0_compare_int(void) | @@ -196,16 +196,20 @@ unsigned int get_c0_compare_int(void) | ||||||
|   |   | ||||||
|  void __init plat_mem_setup(void) |  void __init plat_mem_setup(void) | ||||||
|  { |  { | ||||||
| @@ -31,7 +31,7 @@ | |||||||
|   |   | ||||||
|  	if (mips_machtype != ATH79_MACH_GENERIC_OF) { |  	if (mips_machtype != ATH79_MACH_GENERIC_OF) { | ||||||
|  		ath79_reset_base = ioremap_nocache(AR71XX_RESET_BASE, |  		ath79_reset_base = ioremap_nocache(AR71XX_RESET_BASE, | ||||||
| @@ -295,17 +299,21 @@ static int __init ath79_setup(void) | @@ -301,17 +305,21 @@ static int __init ath79_setup(void) | ||||||
|   |   | ||||||
|  arch_initcall(ath79_setup); |  arch_initcall(ath79_setup); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -457,7 +457,7 @@ | |||||||
|  		memcpy(p, foc->val, foc->len); |  		memcpy(p, foc->val, foc->len); | ||||||
| --- a/net/ipv4/igmp.c | --- a/net/ipv4/igmp.c | ||||||
| +++ b/net/ipv4/igmp.c | +++ b/net/ipv4/igmp.c | ||||||
| @@ -537,7 +537,7 @@ static struct sk_buff *add_grec(struct s | @@ -548,7 +548,7 @@ static struct sk_buff *add_grec(struct s | ||||||
|  		if (!skb) |  		if (!skb) | ||||||
|  			return NULL; |  			return NULL; | ||||||
|  		psrc = skb_put(skb, sizeof(__be32)); |  		psrc = skb_put(skb, sizeof(__be32)); | ||||||
|   | |||||||
| @@ -208,7 +208,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|   |   | ||||||
|  #include <asm/bootinfo.h> |  #include <asm/bootinfo.h> | ||||||
|  #include <asm/idle.h> |  #include <asm/idle.h> | ||||||
| @@ -305,6 +306,11 @@ void __init plat_time_init(void) | @@ -311,6 +312,11 @@ void __init plat_time_init(void) | ||||||
|  	mips_hpt_frequency = cpu_clk_rate / 2; |  	mips_hpt_frequency = cpu_clk_rate / 2; | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -938,7 +938,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|   |   | ||||||
|  #define ATH79_SYS_TYPE_LEN	64 |  #define ATH79_SYS_TYPE_LEN	64 | ||||||
|   |   | ||||||
| @@ -230,25 +229,21 @@ void __init plat_mem_setup(void) | @@ -236,25 +235,21 @@ void __init plat_mem_setup(void) | ||||||
|  	else if (fw_passed_dtb) |  	else if (fw_passed_dtb) | ||||||
|  		__dt_setup_arch((void *)KSEG0ADDR(fw_passed_dtb)); |  		__dt_setup_arch((void *)KSEG0ADDR(fw_passed_dtb)); | ||||||
|   |   | ||||||
| @@ -973,7 +973,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  { |  { | ||||||
|  	struct device_node *np; |  	struct device_node *np; | ||||||
|  	struct clk *clk; |  	struct clk *clk; | ||||||
| @@ -278,66 +273,12 @@ static void __init ath79_of_plat_time_in | @@ -284,66 +279,12 @@ static void __init ath79_of_plat_time_in | ||||||
|  	clk_put(clk); |  	clk_put(clk); | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ it on BCM4708 family. | |||||||
|  /* called during probe() after chip reset completes */ |  /* called during probe() after chip reset completes */ | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -168,6 +168,49 @@ int xhci_start(struct xhci_hcd *xhci) | @@ -166,6 +166,49 @@ int xhci_start(struct xhci_hcd *xhci) | ||||||
|  	return ret; |  	return ret; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -90,7 +90,7 @@ it on BCM4708 family. | |||||||
|  /* |  /* | ||||||
|   * Reset a halted HC. |   * Reset a halted HC. | ||||||
|   * |   * | ||||||
| @@ -551,10 +594,20 @@ static int xhci_init(struct usb_hcd *hcd | @@ -549,10 +592,20 @@ static int xhci_init(struct usb_hcd *hcd | ||||||
|   |   | ||||||
|  static int xhci_run_finished(struct xhci_hcd *xhci) |  static int xhci_run_finished(struct xhci_hcd *xhci) | ||||||
|  { |  { | ||||||
| @@ -114,7 +114,7 @@ it on BCM4708 family. | |||||||
|  	xhci->shared_hcd->state = HC_STATE_RUNNING; |  	xhci->shared_hcd->state = HC_STATE_RUNNING; | ||||||
|  	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; |  	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; | ||||||
|   |   | ||||||
| @@ -564,6 +617,10 @@ static int xhci_run_finished(struct xhci | @@ -562,6 +615,10 @@ static int xhci_run_finished(struct xhci | ||||||
|  	xhci_dbg_trace(xhci, trace_xhci_dbg_init, |  	xhci_dbg_trace(xhci, trace_xhci_dbg_init, | ||||||
|  			"Finished xhci_run for USB3 roothub"); |  			"Finished xhci_run for USB3 roothub"); | ||||||
|  	return 0; |  	return 0; | ||||||
|   | |||||||
| @@ -95,7 +95,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com> | |||||||
|  	size_t pagelist_size; |  	size_t pagelist_size; | ||||||
|  	struct scatterlist *scatterlist, *sg; |  	struct scatterlist *scatterlist, *sg; | ||||||
|  	int dma_buffers; |  	int dma_buffers; | ||||||
| @@ -417,10 +436,16 @@ create_pagelist(char __user *buf, size_t | @@ -426,10 +445,16 @@ create_pagelist(char __user *buf, size_t | ||||||
|  	/* Allocate enough storage to hold the page pointers and the page |  	/* Allocate enough storage to hold the page pointers and the page | ||||||
|  	** list |  	** list | ||||||
|  	*/ |  	*/ | ||||||
| @@ -116,7 +116,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com> | |||||||
|   |   | ||||||
|  	vchiq_log_trace(vchiq_arm_log_level, "create_pagelist - %pK", |  	vchiq_log_trace(vchiq_arm_log_level, "create_pagelist - %pK", | ||||||
|  			pagelist); |  			pagelist); | ||||||
| @@ -441,6 +466,7 @@ create_pagelist(char __user *buf, size_t | @@ -450,6 +475,7 @@ create_pagelist(char __user *buf, size_t | ||||||
|  	pagelistinfo->pagelist = pagelist; |  	pagelistinfo->pagelist = pagelist; | ||||||
|  	pagelistinfo->pagelist_buffer_size = pagelist_size; |  	pagelistinfo->pagelist_buffer_size = pagelist_size; | ||||||
|  	pagelistinfo->dma_addr = dma_addr; |  	pagelistinfo->dma_addr = dma_addr; | ||||||
|   | |||||||
| @@ -84,7 +84,7 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> | |||||||
|  |  | ||||||
| --- a/include/linux/compiler-gcc.h | --- a/include/linux/compiler-gcc.h | ||||||
| +++ b/include/linux/compiler-gcc.h | +++ b/include/linux/compiler-gcc.h | ||||||
| @@ -362,3 +362,30 @@ | @@ -366,3 +366,30 @@ | ||||||
|  #if GCC_VERSION >= 50100 |  #if GCC_VERSION >= 50100 | ||||||
|  #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1 |  #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1 | ||||||
|  #endif |  #endif | ||||||
| @@ -117,7 +117,7 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> | |||||||
| + | + | ||||||
| --- a/include/linux/compiler_types.h | --- a/include/linux/compiler_types.h | ||||||
| +++ b/include/linux/compiler_types.h | +++ b/include/linux/compiler_types.h | ||||||
| @@ -283,4 +283,22 @@ struct ftrace_likely_data { | @@ -287,4 +287,22 @@ struct ftrace_likely_data { | ||||||
|  # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) |  # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
|   | |||||||
| @@ -55,9 +55,6 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | |||||||
|  create mode 100644 include/uapi/linux/tc_act/tc_ctinfo.h |  create mode 100644 include/uapi/linux/tc_act/tc_ctinfo.h | ||||||
|  create mode 100644 net/sched/act_ctinfo.c |  create mode 100644 net/sched/act_ctinfo.c | ||||||
|  |  | ||||||
| diff --git a/include/net/tc_act/tc_ctinfo.h b/include/net/tc_act/tc_ctinfo.h |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..d6a688571672 |  | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/include/net/tc_act/tc_ctinfo.h | +++ b/include/net/tc_act/tc_ctinfo.h | ||||||
| @@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||||||
| @@ -89,8 +86,6 @@ index 000000000000..d6a688571672 | |||||||
| +#define to_ctinfo(a) ((struct tcf_ctinfo *)a) | +#define to_ctinfo(a) ((struct tcf_ctinfo *)a) | ||||||
| + | + | ||||||
| +#endif /* __NET_TC_CTINFO_H */ | +#endif /* __NET_TC_CTINFO_H */ | ||||||
| diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h |  | ||||||
| index 46c506615f4a..408b02fbb34a 100644 |  | ||||||
| --- a/include/uapi/linux/pkt_cls.h | --- a/include/uapi/linux/pkt_cls.h | ||||||
| +++ b/include/uapi/linux/pkt_cls.h | +++ b/include/uapi/linux/pkt_cls.h | ||||||
| @@ -66,7 +66,8 @@ enum { | @@ -66,7 +66,8 @@ enum { | ||||||
| @@ -103,9 +98,6 @@ index 46c506615f4a..408b02fbb34a 100644 | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  #define TCA_ID_MAX __TCA_ID_MAX |  #define TCA_ID_MAX __TCA_ID_MAX | ||||||
| diff --git a/include/uapi/linux/tc_act/tc_ctinfo.h b/include/uapi/linux/tc_act/tc_ctinfo.h |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..da803e05a89b |  | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/include/uapi/linux/tc_act/tc_ctinfo.h | +++ b/include/uapi/linux/tc_act/tc_ctinfo.h | ||||||
| @@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||||||
| @@ -143,8 +135,6 @@ index 000000000000..da803e05a89b | |||||||
| +}; | +}; | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff --git a/net/sched/Kconfig b/net/sched/Kconfig |  | ||||||
| index e70ed26485a2..962d90f72f54 100644 |  | ||||||
| --- a/net/sched/Kconfig | --- a/net/sched/Kconfig | ||||||
| +++ b/net/sched/Kconfig | +++ b/net/sched/Kconfig | ||||||
| @@ -808,6 +808,19 @@ config NET_ACT_CONNMARK | @@ -808,6 +808,19 @@ config NET_ACT_CONNMARK | ||||||
| @@ -167,8 +157,6 @@ index e70ed26485a2..962d90f72f54 100644 | |||||||
|  config NET_ACT_SKBMOD |  config NET_ACT_SKBMOD | ||||||
|          tristate "skb data modification action" |          tristate "skb data modification action" | ||||||
|          depends on NET_CLS_ACT |          depends on NET_CLS_ACT | ||||||
| diff --git a/net/sched/Makefile b/net/sched/Makefile |  | ||||||
| index 9e43a4721ef8..44ee5b87b895 100644 |  | ||||||
| --- a/net/sched/Makefile | --- a/net/sched/Makefile | ||||||
| +++ b/net/sched/Makefile | +++ b/net/sched/Makefile | ||||||
| @@ -21,6 +21,7 @@ obj-$(CONFIG_NET_ACT_CSUM)	+= act_csum.o | @@ -21,6 +21,7 @@ obj-$(CONFIG_NET_ACT_CSUM)	+= act_csum.o | ||||||
| @@ -179,9 +167,6 @@ index 9e43a4721ef8..44ee5b87b895 100644 | |||||||
|  obj-$(CONFIG_NET_ACT_SKBMOD)	+= act_skbmod.o |  obj-$(CONFIG_NET_ACT_SKBMOD)	+= act_skbmod.o | ||||||
|  obj-$(CONFIG_NET_ACT_IFE)	+= act_ife.o |  obj-$(CONFIG_NET_ACT_IFE)	+= act_ife.o | ||||||
|  obj-$(CONFIG_NET_IFE_SKBMARK)	+= act_meta_mark.o |  obj-$(CONFIG_NET_IFE_SKBMARK)	+= act_meta_mark.o | ||||||
| diff --git a/net/sched/act_ctinfo.c b/net/sched/act_ctinfo.c |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..e65344e32801 |  | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/net/sched/act_ctinfo.c | +++ b/net/sched/act_ctinfo.c | ||||||
| @@ -0,0 +1,394 @@ | @@ -0,0 +1,394 @@ | ||||||
| @@ -579,6 +564,3 @@ index 000000000000..e65344e32801 | |||||||
| +MODULE_AUTHOR("Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>"); | +MODULE_AUTHOR("Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>"); | ||||||
| +MODULE_DESCRIPTION("Conntrack mark to DSCP restoring"); | +MODULE_DESCRIPTION("Conntrack mark to DSCP restoring"); | ||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| --  |  | ||||||
| 2.20.1 (Apple Git-117) |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3344,6 +3344,7 @@ CONFIG_NMI_LOG_BUF_SHIFT=13 | |||||||
| # CONFIG_NOP_USB_XCEIV is not set | # CONFIG_NOP_USB_XCEIV is not set | ||||||
| # CONFIG_NORTEL_HERMES is not set | # CONFIG_NORTEL_HERMES is not set | ||||||
| # CONFIG_NOTIFIER_ERROR_INJECTION is not set | # CONFIG_NOTIFIER_ERROR_INJECTION is not set | ||||||
|  | # CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set | ||||||
| # CONFIG_NOZOMI is not set | # CONFIG_NOZOMI is not set | ||||||
| # CONFIG_NO_BOOTMEM is not set | # CONFIG_NO_BOOTMEM is not set | ||||||
| # CONFIG_NO_HZ is not set | # CONFIG_NO_HZ is not set | ||||||
|   | |||||||
| @@ -12,8 +12,6 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> | |||||||
|  arch/powerpc/Kconfig | 1 + |  arch/powerpc/Kconfig | 1 + | ||||||
|  1 file changed, 1 insertion(+) |  1 file changed, 1 insertion(+) | ||||||
|  |  | ||||||
| diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig |  | ||||||
| index de3b07c7be30..53f87983fb42 100644 |  | ||||||
| --- a/arch/powerpc/Kconfig | --- a/arch/powerpc/Kconfig | ||||||
| +++ b/arch/powerpc/Kconfig | +++ b/arch/powerpc/Kconfig | ||||||
| @@ -199,6 +199,7 @@ config PPC | @@ -199,6 +199,7 @@ config PPC | ||||||
| @@ -24,6 +22,3 @@ index de3b07c7be30..53f87983fb42 100644 | |||||||
|  	select HAVE_KPROBES |  	select HAVE_KPROBES | ||||||
|  	select HAVE_KPROBES_ON_FTRACE |  	select HAVE_KPROBES_ON_FTRACE | ||||||
|  	select HAVE_KRETPROBES |  	select HAVE_KRETPROBES | ||||||
| --  |  | ||||||
| 2.20.1 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3166,7 +3166,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
|  	err = dpni_enable(priv->mc_io, 0, priv->mc_token); |  	err = dpni_enable(priv->mc_io, 0, priv->mc_token); | ||||||
|  	if (err < 0) { |  	if (err < 0) { | ||||||
|  		netdev_err(net_dev, "dpni_enable() failed\n"); |  		netdev_err(net_dev, "dpni_enable() failed\n"); | ||||||
| @@ -1047,51 +1355,20 @@ static int dpaa2_eth_open(struct net_dev | @@ -1047,48 +1355,17 @@ static int dpaa2_eth_open(struct net_dev | ||||||
|   |   | ||||||
|  link_state_err: |  link_state_err: | ||||||
|  enable_err: |  enable_err: | ||||||
| @@ -3181,8 +3181,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
| - */ | - */ | ||||||
| -static u32 drain_channel(struct dpaa2_eth_priv *priv, | -static u32 drain_channel(struct dpaa2_eth_priv *priv, | ||||||
| -			 struct dpaa2_eth_channel *ch) | -			 struct dpaa2_eth_channel *ch) | ||||||
| +static int dpaa2_eth_stop(struct net_device *net_dev) | -{ | ||||||
|  { |  | ||||||
| -	u32 drained = 0, total = 0; | -	u32 drained = 0, total = 0; | ||||||
| - | - | ||||||
| -	do { | -	do { | ||||||
| @@ -3193,11 +3192,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
| - | - | ||||||
| -	return total; | -	return total; | ||||||
| -} | -} | ||||||
| +	struct dpaa2_eth_priv *priv = netdev_priv(net_dev); | - | ||||||
| +	int dpni_enabled = 0; |  | ||||||
| +	int retries = 10, i; |  | ||||||
| +	int err = 0; |  | ||||||
|   |  | ||||||
| -static u32 drain_ingress_frames(struct dpaa2_eth_priv *priv) | -static u32 drain_ingress_frames(struct dpaa2_eth_priv *priv) | ||||||
| -{ | -{ | ||||||
| -	struct dpaa2_eth_channel *ch; | -	struct dpaa2_eth_channel *ch; | ||||||
| @@ -3212,20 +3207,18 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
| -	return drained; | -	return drained; | ||||||
| -} | -} | ||||||
| - | - | ||||||
| -static int dpaa2_eth_stop(struct net_device *net_dev) |  static int dpaa2_eth_stop(struct net_device *net_dev) | ||||||
| -{ |  { | ||||||
| -	struct dpaa2_eth_priv *priv = netdev_priv(net_dev); |  	struct dpaa2_eth_priv *priv = netdev_priv(net_dev); | ||||||
| -	int dpni_enabled; | -	int dpni_enabled; | ||||||
| -	int retries = 10; | -	int retries = 10; | ||||||
| -	u32 drained; | -	u32 drained; | ||||||
| - | +	int dpni_enabled = 0; | ||||||
| -	netif_tx_stop_all_queues(net_dev); | +	int retries = 10, i; | ||||||
| -	netif_carrier_off(net_dev); | +	int err = 0; | ||||||
| +	netif_tx_stop_all_queues(net_dev); |  | ||||||
| +	netif_carrier_off(net_dev); |  | ||||||
|   |   | ||||||
|  	/* Loop while dpni_disable() attempts to drain the egress FQs |  	netif_tx_stop_all_queues(net_dev); | ||||||
|  	 * and confirm them back to us. |  	netif_carrier_off(net_dev); | ||||||
| @@ -1105,56 +1382,24 @@ static int dpaa2_eth_stop(struct net_dev | @@ -1105,56 +1382,24 @@ static int dpaa2_eth_stop(struct net_dev | ||||||
|  	} while (dpni_enabled && --retries); |  	} while (dpni_enabled && --retries); | ||||||
|  	if (!retries) { |  	if (!retries) { | ||||||
| @@ -4496,7 +4489,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
|   |   | ||||||
|  		if (cls_cfg.num_extracts >= DPKG_MAX_NUM_OF_EXTRACTS) { |  		if (cls_cfg.num_extracts >= DPKG_MAX_NUM_OF_EXTRACTS) { | ||||||
|  			dev_err(dev, "error adding key extraction rule, too many rules?\n"); |  			dev_err(dev, "error adding key extraction rule, too many rules?\n"); | ||||||
| @@ -2020,49 +2966,107 @@ static int dpaa2_eth_set_hash(struct net | @@ -2020,12 +2966,10 @@ static int dpaa2_eth_set_hash(struct net | ||||||
|  		} |  		} | ||||||
|   |   | ||||||
|  		key->type = DPKG_EXTRACT_FROM_HDR; |  		key->type = DPKG_EXTRACT_FROM_HDR; | ||||||
| @@ -4506,27 +4499,37 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
| -		key->extract.from_hdr.field = hash_fields[i].cls_field; | -		key->extract.from_hdr.field = hash_fields[i].cls_field; | ||||||
| +		key->extract.from_hdr.field = dist_fields[i].cls_field; | +		key->extract.from_hdr.field = dist_fields[i].cls_field; | ||||||
|  		cls_cfg.num_extracts++; |  		cls_cfg.num_extracts++; | ||||||
| +	} | - | ||||||
| + | -		priv->rx_hash_fields |= hash_fields[i].rxnfc_field; | ||||||
| +	dma_mem = kzalloc(DPAA2_CLASSIFIER_DMA_SIZE, GFP_KERNEL); |  	} | ||||||
| +	if (!dma_mem) |   | ||||||
| +		return -ENOMEM; |  	dma_mem = kzalloc(DPAA2_CLASSIFIER_DMA_SIZE, GFP_KERNEL); | ||||||
| + | @@ -2035,36 +2979,96 @@ static int dpaa2_eth_set_hash(struct net | ||||||
| +	err = dpni_prepare_key_cfg(&cls_cfg, dma_mem); |  	err = dpni_prepare_key_cfg(&cls_cfg, dma_mem); | ||||||
| +	if (err) { |  	if (err) { | ||||||
| +		dev_err(dev, "dpni_prepare_key_cfg error %d\n", err); |  		dev_err(dev, "dpni_prepare_key_cfg error %d\n", err); | ||||||
|  | -		goto err_prep_key; | ||||||
| +		goto free_key; | +		goto free_key; | ||||||
| +	} |  	} | ||||||
| + |   | ||||||
| +	/* Prepare for setting the rx dist */ | -	memset(&dist_cfg, 0, sizeof(dist_cfg)); | ||||||
|  | - | ||||||
|  |  	/* Prepare for setting the rx dist */ | ||||||
|  | -	dist_cfg.key_cfg_iova = dma_map_single(dev, dma_mem, | ||||||
|  | -					       DPAA2_CLASSIFIER_DMA_SIZE, | ||||||
|  | -					       DMA_TO_DEVICE); | ||||||
|  | -	if (dma_mapping_error(dev, dist_cfg.key_cfg_iova)) { | ||||||
| +	key_iova = dma_map_single(dev, dma_mem, DPAA2_CLASSIFIER_DMA_SIZE, | +	key_iova = dma_map_single(dev, dma_mem, DPAA2_CLASSIFIER_DMA_SIZE, | ||||||
| +				  DMA_TO_DEVICE); | +				  DMA_TO_DEVICE); | ||||||
| +	if (dma_mapping_error(dev, key_iova)) { | +	if (dma_mapping_error(dev, key_iova)) { | ||||||
| +		dev_err(dev, "DMA mapping failed\n"); |  		dev_err(dev, "DMA mapping failed\n"); | ||||||
| +		err = -ENOMEM; |  		err = -ENOMEM; | ||||||
|  | -		goto err_dma_map; | ||||||
| +		goto free_key; | +		goto free_key; | ||||||
| +	} |  	} | ||||||
| + |   | ||||||
|  | -	dist_cfg.dist_size = dpaa2_eth_queue_count(priv); | ||||||
|  | -	dist_cfg.dist_mode = DPNI_DIST_MODE_HASH; | ||||||
| +	if (type == DPAA2_ETH_RX_DIST_HASH) { | +	if (type == DPAA2_ETH_RX_DIST_HASH) { | ||||||
| +		if (dpaa2_eth_has_legacy_dist(priv)) | +		if (dpaa2_eth_has_legacy_dist(priv)) | ||||||
| +			err = config_legacy_hash_key(priv, key_iova); | +			err = config_legacy_hash_key(priv, key_iova); | ||||||
| @@ -4535,17 +4538,24 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
| +	} else { | +	} else { | ||||||
| +		err = config_cls_key(priv, key_iova); | +		err = config_cls_key(priv, key_iova); | ||||||
| +	} | +	} | ||||||
| + |   | ||||||
|  | -	err = dpni_set_rx_tc_dist(priv->mc_io, 0, priv->mc_token, 0, &dist_cfg); | ||||||
|  | -	dma_unmap_single(dev, dist_cfg.key_cfg_iova, | ||||||
|  | -			 DPAA2_CLASSIFIER_DMA_SIZE, DMA_TO_DEVICE); | ||||||
|  | -	if (err) | ||||||
|  | -		dev_err(dev, "dpni_set_rx_tc_dist() error %d\n", err); | ||||||
| +	dma_unmap_single(dev, key_iova, DPAA2_CLASSIFIER_DMA_SIZE, | +	dma_unmap_single(dev, key_iova, DPAA2_CLASSIFIER_DMA_SIZE, | ||||||
| +			 DMA_TO_DEVICE); | +			 DMA_TO_DEVICE); | ||||||
| +	if (!err && type == DPAA2_ETH_RX_DIST_HASH) | +	if (!err && type == DPAA2_ETH_RX_DIST_HASH) | ||||||
| +		priv->rx_hash_fields = rx_hash_fields; | +		priv->rx_hash_fields = rx_hash_fields; | ||||||
| + |   | ||||||
|  | -err_dma_map: | ||||||
|  | -err_prep_key: | ||||||
| +free_key: | +free_key: | ||||||
| +	kfree(dma_mem); |  	kfree(dma_mem); | ||||||
| +	return err; |  	return err; | ||||||
| +} |  } | ||||||
| + |   | ||||||
| +int dpaa2_eth_set_hash(struct net_device *net_dev, u64 flags) | +int dpaa2_eth_set_hash(struct net_device *net_dev, u64 flags) | ||||||
| +{ | +{ | ||||||
| +	struct dpaa2_eth_priv *priv = netdev_priv(net_dev); | +	struct dpaa2_eth_priv *priv = netdev_priv(net_dev); | ||||||
| @@ -4571,70 +4581,43 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
| +{ | +{ | ||||||
| +	struct device *dev = priv->net_dev->dev.parent; | +	struct device *dev = priv->net_dev->dev.parent; | ||||||
| +	int err; | +	int err; | ||||||
|   | + | ||||||
| -		priv->rx_hash_fields |= hash_fields[i].rxnfc_field; |  | ||||||
| +	/* Check if we actually support Rx flow classification */ | +	/* Check if we actually support Rx flow classification */ | ||||||
| +	if (dpaa2_eth_has_legacy_dist(priv)) { | +	if (dpaa2_eth_has_legacy_dist(priv)) { | ||||||
| +		dev_dbg(dev, "Rx cls not supported by current MC version\n"); | +		dev_dbg(dev, "Rx cls not supported by current MC version\n"); | ||||||
| +		return -EOPNOTSUPP; | +		return -EOPNOTSUPP; | ||||||
|  	} | +	} | ||||||
|   | + | ||||||
| -	dma_mem = kzalloc(DPAA2_CLASSIFIER_DMA_SIZE, GFP_KERNEL); |  | ||||||
| -	if (!dma_mem) |  | ||||||
| -		return -ENOMEM; |  | ||||||
| - |  | ||||||
| -	err = dpni_prepare_key_cfg(&cls_cfg, dma_mem); |  | ||||||
| -	if (err) { |  | ||||||
| -		dev_err(dev, "dpni_prepare_key_cfg error %d\n", err); |  | ||||||
| -		goto err_prep_key; |  | ||||||
| +	if (!dpaa2_eth_fs_enabled(priv)) { | +	if (!dpaa2_eth_fs_enabled(priv)) { | ||||||
| +		dev_dbg(dev, "Rx cls disabled in DPNI options\n"); | +		dev_dbg(dev, "Rx cls disabled in DPNI options\n"); | ||||||
| +		return -EOPNOTSUPP; | +		return -EOPNOTSUPP; | ||||||
|  	} | +	} | ||||||
|   | + | ||||||
| -	memset(&dist_cfg, 0, sizeof(dist_cfg)); |  | ||||||
| - |  | ||||||
| -	/* Prepare for setting the rx dist */ |  | ||||||
| -	dist_cfg.key_cfg_iova = dma_map_single(dev, dma_mem, |  | ||||||
| -					       DPAA2_CLASSIFIER_DMA_SIZE, |  | ||||||
| -					       DMA_TO_DEVICE); |  | ||||||
| -	if (dma_mapping_error(dev, dist_cfg.key_cfg_iova)) { |  | ||||||
| -		dev_err(dev, "DMA mapping failed\n"); |  | ||||||
| -		err = -ENOMEM; |  | ||||||
| -		goto err_dma_map; |  | ||||||
| +	if (!dpaa2_eth_hash_enabled(priv)) { | +	if (!dpaa2_eth_hash_enabled(priv)) { | ||||||
| +		dev_dbg(dev, "Rx cls disabled for single queue DPNIs\n"); | +		dev_dbg(dev, "Rx cls disabled for single queue DPNIs\n"); | ||||||
| +		return -EOPNOTSUPP; | +		return -EOPNOTSUPP; | ||||||
|  	} | +	} | ||||||
|   | + | ||||||
| -	dist_cfg.dist_size = dpaa2_eth_queue_count(priv); |  | ||||||
| -	dist_cfg.dist_mode = DPNI_DIST_MODE_HASH; |  | ||||||
| +	/* If there is no support for masking in the classification table, | +	/* If there is no support for masking in the classification table, | ||||||
| +	 * we don't set a default key, as it will depend on the rules | +	 * we don't set a default key, as it will depend on the rules | ||||||
| +	 * added by the user at runtime. | +	 * added by the user at runtime. | ||||||
| +	 */ | +	 */ | ||||||
| +	if (!dpaa2_eth_fs_mask_enabled(priv)) | +	if (!dpaa2_eth_fs_mask_enabled(priv)) | ||||||
| +		goto out; | +		goto out; | ||||||
|   | + | ||||||
| -	err = dpni_set_rx_tc_dist(priv->mc_io, 0, priv->mc_token, 0, &dist_cfg); |  | ||||||
| -	dma_unmap_single(dev, dist_cfg.key_cfg_iova, |  | ||||||
| -			 DPAA2_CLASSIFIER_DMA_SIZE, DMA_TO_DEVICE); |  | ||||||
| +	err = dpaa2_eth_set_cls(priv->net_dev, DPAA2_ETH_DIST_ALL); | +	err = dpaa2_eth_set_cls(priv->net_dev, DPAA2_ETH_DIST_ALL); | ||||||
|  	if (err) | +	if (err) | ||||||
| -		dev_err(dev, "dpni_set_rx_tc_dist() error %d\n", err); |  | ||||||
| +		return err; | +		return err; | ||||||
|   | + | ||||||
| -err_dma_map: |  | ||||||
| -err_prep_key: |  | ||||||
| -	kfree(dma_mem); |  | ||||||
| -	return err; |  | ||||||
| +out: | +out: | ||||||
| +	priv->rx_cls_enabled = 1; | +	priv->rx_cls_enabled = 1; | ||||||
| + | + | ||||||
| +	return 0; | +	return 0; | ||||||
|  } | +} | ||||||
|   | + | ||||||
|  /* Bind the DPNI to its needed objects and resources: buffer pool, DPIOs, |  /* Bind the DPNI to its needed objects and resources: buffer pool, DPIOs, | ||||||
|  |   * frame queues and channels | ||||||
|  |   */ | ||||||
| @@ -2080,6 +3084,7 @@ static int bind_dpni(struct dpaa2_eth_pr | @@ -2080,6 +3084,7 @@ static int bind_dpni(struct dpaa2_eth_pr | ||||||
|  	pools_params.num_dpbp = 1; |  	pools_params.num_dpbp = 1; | ||||||
|  	pools_params.pools[0].dpbp_id = priv->dpbp_dev->obj_desc.id; |  	pools_params.pools[0].dpbp_id = priv->dpbp_dev->obj_desc.id; | ||||||
|   | |||||||
| @@ -1312,7 +1312,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com> | |||||||
|  		xhci->quirks |= XHCI_BROKEN_PORT_PED; |  		xhci->quirks |= XHCI_BROKEN_PORT_PED; | ||||||
| --- a/drivers/usb/host/xhci-ring.c | --- a/drivers/usb/host/xhci-ring.c | ||||||
| +++ b/drivers/usb/host/xhci-ring.c | +++ b/drivers/usb/host/xhci-ring.c | ||||||
| @@ -1972,10 +1972,12 @@ static int finish_td(struct xhci_hcd *xh | @@ -1976,10 +1976,12 @@ static int finish_td(struct xhci_hcd *xh | ||||||
|  	union xhci_trb *ep_trb, struct xhci_transfer_event *event, |  	union xhci_trb *ep_trb, struct xhci_transfer_event *event, | ||||||
|  	struct xhci_virt_ep *ep, int *status) |  	struct xhci_virt_ep *ep, int *status) | ||||||
|  { |  { | ||||||
| @@ -1325,7 +1325,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com> | |||||||
|  	u32 trb_comp_code; |  	u32 trb_comp_code; | ||||||
|  	int ep_index; |  	int ep_index; | ||||||
|   |   | ||||||
| @@ -1998,14 +2000,30 @@ static int finish_td(struct xhci_hcd *xh | @@ -2002,14 +2004,30 @@ static int finish_td(struct xhci_hcd *xh | ||||||
|  	if (trb_comp_code == COMP_STALL_ERROR || |  	if (trb_comp_code == COMP_STALL_ERROR || | ||||||
|  		xhci_requires_manual_halt_cleanup(xhci, ep_ctx, |  		xhci_requires_manual_halt_cleanup(xhci, ep_ctx, | ||||||
|  						trb_comp_code)) { |  						trb_comp_code)) { | ||||||
| @@ -1363,7 +1363,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com> | |||||||
|  		while (ep_ring->dequeue != td->last_trb) |  		while (ep_ring->dequeue != td->last_trb) | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -1597,13 +1597,38 @@ static int xhci_urb_dequeue(struct usb_h | @@ -1595,13 +1595,38 @@ static int xhci_urb_dequeue(struct usb_h | ||||||
|  			ret = -ENOMEM; |  			ret = -ENOMEM; | ||||||
|  			goto done; |  			goto done; | ||||||
|  		} |  		} | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -112,7 +112,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |||||||
|  		ret = PTR_ERR(hcd->usb_phy); |  		ret = PTR_ERR(hcd->usb_phy); | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -612,11 +612,7 @@ int xhci_run(struct usb_hcd *hcd) | @@ -610,11 +610,7 @@ int xhci_run(struct usb_hcd *hcd) | ||||||
|  			"// Set the interrupt modulation register"); |  			"// Set the interrupt modulation register"); | ||||||
|  	temp = readl(&xhci->ir_set->irq_control); |  	temp = readl(&xhci->ir_set->irq_control); | ||||||
|  	temp &= ~ER_IRQ_INTERVAL_MASK; |  	temp &= ~ER_IRQ_INTERVAL_MASK; | ||||||
|   | |||||||
| @@ -17,11 +17,9 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> | |||||||
|  arch/powerpc/platforms/85xx/Makefile |  1 + |  arch/powerpc/platforms/85xx/Makefile |  1 + | ||||||
|  4 files changed, 19 insertions(+), 1 deletion(-) |  4 files changed, 19 insertions(+), 1 deletion(-) | ||||||
|  |  | ||||||
| diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile |  | ||||||
| index e2a5a932c24a..925140f8350b 100644 |  | ||||||
| --- a/arch/powerpc/boot/Makefile | --- a/arch/powerpc/boot/Makefile | ||||||
| +++ b/arch/powerpc/boot/Makefile | +++ b/arch/powerpc/boot/Makefile | ||||||
| @@ -156,6 +156,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pseries-head.S | @@ -156,6 +156,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie | ||||||
|  src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S |  src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S | ||||||
|  src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S |  src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S | ||||||
|  src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c |  src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c | ||||||
| @@ -29,7 +27,7 @@ index e2a5a932c24a..925140f8350b 100644 | |||||||
|   |   | ||||||
|  src-wlib := $(sort $(src-wlib-y)) |  src-wlib := $(sort $(src-wlib-y)) | ||||||
|  src-plat := $(sort $(src-plat-y)) |  src-plat := $(sort $(src-plat-y)) | ||||||
| @@ -335,7 +336,7 @@ image-$(CONFIG_TQM8555)			+= cuImage.tqm8555 | @@ -335,7 +336,7 @@ image-$(CONFIG_TQM8555)			+= cuImage.tqm | ||||||
|  image-$(CONFIG_TQM8560)			+= cuImage.tqm8560 |  image-$(CONFIG_TQM8560)			+= cuImage.tqm8560 | ||||||
|  image-$(CONFIG_SBC8548)			+= cuImage.sbc8548 |  image-$(CONFIG_SBC8548)			+= cuImage.sbc8548 | ||||||
|  image-$(CONFIG_KSI8560)			+= cuImage.ksi8560 |  image-$(CONFIG_KSI8560)			+= cuImage.ksi8560 | ||||||
| @@ -38,8 +36,6 @@ index e2a5a932c24a..925140f8350b 100644 | |||||||
|  # Board ports in arch/powerpc/platform/86xx/Kconfig |  # Board ports in arch/powerpc/platform/86xx/Kconfig | ||||||
|  image-$(CONFIG_MVME7100)                += dtbImage.mvme7100 |  image-$(CONFIG_MVME7100)                += dtbImage.mvme7100 | ||||||
|   |   | ||||||
| diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper |  | ||||||
| index 76fe3ccfd381..96fd853a1ed0 100755 |  | ||||||
| --- a/arch/powerpc/boot/wrapper | --- a/arch/powerpc/boot/wrapper | ||||||
| +++ b/arch/powerpc/boot/wrapper | +++ b/arch/powerpc/boot/wrapper | ||||||
| @@ -302,6 +302,11 @@ adder875-redboot) | @@ -302,6 +302,11 @@ adder875-redboot) | ||||||
| @@ -54,8 +50,6 @@ index 76fe3ccfd381..96fd853a1ed0 100755 | |||||||
|  simpleboot-virtex405-*) |  simpleboot-virtex405-*) | ||||||
|      platformo="$object/virtex405-head.o $object/simpleboot.o $object/virtex.o" |      platformo="$object/virtex405-head.o $object/simpleboot.o $object/virtex.o" | ||||||
|      binary=y |      binary=y | ||||||
| diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig |  | ||||||
| index 68920d42b4bc..477782740f0e 100644 |  | ||||||
| --- a/arch/powerpc/platforms/85xx/Kconfig | --- a/arch/powerpc/platforms/85xx/Kconfig | ||||||
| +++ b/arch/powerpc/platforms/85xx/Kconfig | +++ b/arch/powerpc/platforms/85xx/Kconfig | ||||||
| @@ -170,6 +170,17 @@ config STX_GP3 | @@ -170,6 +170,17 @@ config STX_GP3 | ||||||
| @@ -76,11 +70,9 @@ index 68920d42b4bc..477782740f0e 100644 | |||||||
|  config TQM8540 |  config TQM8540 | ||||||
|  	bool "TQ Components TQM8540" |  	bool "TQ Components TQM8540" | ||||||
|  	help |  	help | ||||||
| diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile |  | ||||||
| index d1dd0dca5ebf..d0dab29a33eb 100644 |  | ||||||
| --- a/arch/powerpc/platforms/85xx/Makefile | --- a/arch/powerpc/platforms/85xx/Makefile | ||||||
| +++ b/arch/powerpc/platforms/85xx/Makefile | +++ b/arch/powerpc/platforms/85xx/Makefile | ||||||
| @@ -26,6 +26,7 @@ obj-$(CONFIG_CORENET_GENERIC)   += corenet_generic.o | @@ -26,6 +26,7 @@ obj-$(CONFIG_CORENET_GENERIC)   += coren | ||||||
|  obj-$(CONFIG_FB_FSL_DIU)	+= t1042rdb_diu.o |  obj-$(CONFIG_FB_FSL_DIU)	+= t1042rdb_diu.o | ||||||
|  obj-$(CONFIG_STX_GP3)	  += stx_gp3.o |  obj-$(CONFIG_STX_GP3)	  += stx_gp3.o | ||||||
|  obj-$(CONFIG_TQM85xx)	  += tqm85xx.o |  obj-$(CONFIG_TQM85xx)	  += tqm85xx.o | ||||||
| @@ -88,6 +80,3 @@ index d1dd0dca5ebf..d0dab29a33eb 100644 | |||||||
|  obj-$(CONFIG_SBC8548)     += sbc8548.o |  obj-$(CONFIG_SBC8548)     += sbc8548.o | ||||||
|  obj-$(CONFIG_PPA8548)     += ppa8548.o |  obj-$(CONFIG_PPA8548)     += ppa8548.o | ||||||
|  obj-$(CONFIG_SOCRATES)    += socrates.o socrates_fpga_pic.o |  obj-$(CONFIG_SOCRATES)    += socrates.o socrates_fpga_pic.o | ||||||
| --  |  | ||||||
| 2.20.1 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/arch/powerpc/Kconfig | --- a/arch/powerpc/Kconfig | ||||||
| +++ b/arch/powerpc/Kconfig | +++ b/arch/powerpc/Kconfig | ||||||
| @@ -835,6 +835,14 @@ config CMDLINE_FORCE | @@ -836,6 +836,14 @@ config CMDLINE_FORCE | ||||||
|  	  This is useful if you cannot or don't want to change the |  	  This is useful if you cannot or don't want to change the | ||||||
|  	  command-line options your boot loader passes to the kernel. |  	  command-line options your boot loader passes to the kernel. | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/sfp.c | --- a/drivers/net/phy/sfp.c | ||||||
| +++ b/drivers/net/phy/sfp.c | +++ b/drivers/net/phy/sfp.c | ||||||
| @@ -248,6 +248,184 @@ static unsigned int sfp_check(void *buf, | @@ -264,6 +264,184 @@ static unsigned int sfp_check(void *buf, | ||||||
|  	return check; |  	return check; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -195,7 +195,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  /* Helpers */ |  /* Helpers */ | ||||||
|  static void sfp_module_tx_disable(struct sfp *sfp) |  static void sfp_module_tx_disable(struct sfp *sfp) | ||||||
|  { |  { | ||||||
| @@ -416,6 +594,7 @@ static int sfp_sm_mod_probe(struct sfp * | @@ -432,6 +610,7 @@ static int sfp_sm_mod_probe(struct sfp * | ||||||
|  	char sn[17]; |  	char sn[17]; | ||||||
|  	char date[9]; |  	char date[9]; | ||||||
|  	char rev[5]; |  	char rev[5]; | ||||||
| @@ -203,7 +203,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  	u8 check; |  	u8 check; | ||||||
|  	int err; |  	int err; | ||||||
|   |   | ||||||
| @@ -459,10 +638,83 @@ static int sfp_sm_mod_probe(struct sfp * | @@ -475,10 +654,83 @@ static int sfp_sm_mod_probe(struct sfp * | ||||||
|  	rev[4] = '\0'; |  	rev[4] = '\0'; | ||||||
|  	memcpy(sn, sfp->id.ext.vendor_sn, 16); |  	memcpy(sn, sfp->id.ext.vendor_sn, 16); | ||||||
|  	sn[16] = '\0'; |  	sn[16] = '\0'; | ||||||
|   | |||||||
| @@ -928,10 +928,10 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  	return 0; |  	return 0; | ||||||
|   |   | ||||||
|  err_netdev: |  err_netdev: | ||||||
| @@ -4386,16 +4492,14 @@ err_netdev: | @@ -4384,16 +4490,14 @@ err_netdev: | ||||||
|  |  		mvneta_bm_pool_destroy(pp->bm_priv, pp->pool_short, | ||||||
|  				       1 << pp->id); |  				       1 << pp->id); | ||||||
|  	} |  	} | ||||||
|  err_free_stats: |  | ||||||
| +	if (pp->phylink) | +	if (pp->phylink) | ||||||
| +		phylink_destroy(pp->phylink); | +		phylink_destroy(pp->phylink); | ||||||
|  	free_percpu(pp->stats); |  	free_percpu(pp->stats); | ||||||
| @@ -947,7 +947,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  err_free_irq: |  err_free_irq: | ||||||
|  	irq_dispose_mapping(dev->irq); |  	irq_dispose_mapping(dev->irq); | ||||||
|  err_free_netdev: |  err_free_netdev: | ||||||
| @@ -4407,7 +4511,6 @@ err_free_netdev: | @@ -4405,7 +4509,6 @@ err_free_netdev: | ||||||
|  static int mvneta_remove(struct platform_device *pdev) |  static int mvneta_remove(struct platform_device *pdev) | ||||||
|  { |  { | ||||||
|  	struct net_device  *dev = platform_get_drvdata(pdev); |  	struct net_device  *dev = platform_get_drvdata(pdev); | ||||||
| @@ -955,7 +955,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  	struct mvneta_port *pp = netdev_priv(dev); |  	struct mvneta_port *pp = netdev_priv(dev); | ||||||
|   |   | ||||||
|  	unregister_netdev(dev); |  	unregister_netdev(dev); | ||||||
| @@ -4415,10 +4518,8 @@ static int mvneta_remove(struct platform | @@ -4413,10 +4516,8 @@ static int mvneta_remove(struct platform | ||||||
|  	clk_disable_unprepare(pp->clk); |  	clk_disable_unprepare(pp->clk); | ||||||
|  	free_percpu(pp->ports); |  	free_percpu(pp->ports); | ||||||
|  	free_percpu(pp->stats); |  	free_percpu(pp->stats); | ||||||
| @@ -967,7 +967,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |||||||
|  	free_netdev(dev); |  	free_netdev(dev); | ||||||
|   |   | ||||||
|  	if (pp->bm_priv) { |  	if (pp->bm_priv) { | ||||||
| @@ -4470,9 +4571,6 @@ static int mvneta_resume(struct device * | @@ -4468,9 +4569,6 @@ static int mvneta_resume(struct device * | ||||||
|  		return err; |  		return err; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -159,7 +159,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  #include <linux/slab.h> |  #include <linux/slab.h> | ||||||
|  #include <linux/rtnetlink.h> |  #include <linux/rtnetlink.h> | ||||||
|  #include <linux/sched/signal.h> |  #include <linux/sched/signal.h> | ||||||
| @@ -2201,6 +2202,9 @@ static int __ethtool_get_module_info(str | @@ -2212,6 +2213,9 @@ static int __ethtool_get_module_info(str | ||||||
|  	const struct ethtool_ops *ops = dev->ethtool_ops; |  	const struct ethtool_ops *ops = dev->ethtool_ops; | ||||||
|  	struct phy_device *phydev = dev->phydev; |  	struct phy_device *phydev = dev->phydev; | ||||||
|   |   | ||||||
| @@ -169,7 +169,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  	if (phydev && phydev->drv && phydev->drv->module_info) |  	if (phydev && phydev->drv && phydev->drv->module_info) | ||||||
|  		return phydev->drv->module_info(phydev, modinfo); |  		return phydev->drv->module_info(phydev, modinfo); | ||||||
|   |   | ||||||
| @@ -2235,6 +2239,9 @@ static int __ethtool_get_module_eeprom(s | @@ -2246,6 +2250,9 @@ static int __ethtool_get_module_eeprom(s | ||||||
|  	const struct ethtool_ops *ops = dev->ethtool_ops; |  	const struct ethtool_ops *ops = dev->ethtool_ops; | ||||||
|  	struct phy_device *phydev = dev->phydev; |  	struct phy_device *phydev = dev->phydev; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -25,8 +25,8 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
| +#include <linux/sfp.h> | +#include <linux/sfp.h> | ||||||
|   |   | ||||||
|  enum { |  enum { | ||||||
|  	MV_PCS_BASE_T		= 0x0000, |  	MV_PMA_BOOT		= 0xc050, | ||||||
| @@ -38,6 +40,11 @@ enum { | @@ -41,6 +43,11 @@ enum { | ||||||
|  	MV_AN_RESULT_SPD_10000	= BIT(15), |  	MV_AN_RESULT_SPD_10000	= BIT(15), | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
| @@ -38,7 +38,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  static int mv3310_modify(struct phy_device *phydev, int devad, u16 reg, |  static int mv3310_modify(struct phy_device *phydev, int devad, u16 reg, | ||||||
|  			 u16 mask, u16 bits) |  			 u16 mask, u16 bits) | ||||||
|  { |  { | ||||||
| @@ -56,17 +63,52 @@ static int mv3310_modify(struct phy_devi | @@ -59,8 +66,25 @@ static int mv3310_modify(struct phy_devi | ||||||
|  	return ret < 0 ? ret : 1; |  	return ret < 0 ? ret : 1; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -62,10 +62,11 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  { |  { | ||||||
| +	struct mv3310_priv *priv; | +	struct mv3310_priv *priv; | ||||||
|  	u32 mmd_mask = MDIO_DEVS_PMAPMD | MDIO_DEVS_AN; |  	u32 mmd_mask = MDIO_DEVS_PMAPMD | MDIO_DEVS_AN; | ||||||
|  |  	int ret; | ||||||
|   |   | ||||||
|  	if (!phydev->is_c45 || | @@ -78,9 +102,27 @@ static int mv3310_probe(struct phy_devic | ||||||
|  	    (phydev->c45_ids.devices_in_package & mmd_mask) != mmd_mask) |  | ||||||
|  		return -ENODEV; |  		return -ENODEV; | ||||||
|  |  	} | ||||||
|   |   | ||||||
| +	priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL); | +	priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL); | ||||||
| +	if (!priv) | +	if (!priv) | ||||||
| @@ -91,7 +92,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  /* |  /* | ||||||
|   * Resetting the MV88X3310 causes it to become non-responsive.  Avoid |   * Resetting the MV88X3310 causes it to become non-responsive.  Avoid | ||||||
|   * setting the reset bit(s). |   * setting the reset bit(s). | ||||||
| @@ -78,6 +120,7 @@ static int mv3310_soft_reset(struct phy_ | @@ -92,6 +134,7 @@ static int mv3310_soft_reset(struct phy_ | ||||||
|   |   | ||||||
|  static int mv3310_config_init(struct phy_device *phydev) |  static int mv3310_config_init(struct phy_device *phydev) | ||||||
|  { |  { | ||||||
| @@ -99,7 +100,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  	__ETHTOOL_DECLARE_LINK_MODE_MASK(supported) = { 0, }; |  	__ETHTOOL_DECLARE_LINK_MODE_MASK(supported) = { 0, }; | ||||||
|  	u32 mask; |  	u32 mask; | ||||||
|  	int val; |  	int val; | ||||||
| @@ -166,6 +209,14 @@ static int mv3310_config_init(struct phy | @@ -180,6 +223,14 @@ static int mv3310_config_init(struct phy | ||||||
|  	phydev->supported &= mask; |  	phydev->supported &= mask; | ||||||
|  	phydev->advertising &= phydev->supported; |  	phydev->advertising &= phydev->supported; | ||||||
|   |   | ||||||
| @@ -114,7 +115,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -349,12 +400,13 @@ static struct phy_driver mv3310_drivers[ | @@ -363,12 +414,13 @@ static struct phy_driver mv3310_drivers[ | ||||||
|  				  SUPPORTED_FIBRE | |  				  SUPPORTED_FIBRE | | ||||||
|  				  SUPPORTED_10000baseT_Full | |  				  SUPPORTED_10000baseT_Full | | ||||||
|  				  SUPPORTED_Backplane, |  				  SUPPORTED_Backplane, | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/sfp.c | --- a/drivers/net/phy/sfp.c | ||||||
| +++ b/drivers/net/phy/sfp.c | +++ b/drivers/net/phy/sfp.c | ||||||
| @@ -1148,6 +1148,7 @@ static int sfp_remove(struct platform_de | @@ -1164,6 +1164,7 @@ static int sfp_remove(struct platform_de | ||||||
|   |   | ||||||
|  static const struct of_device_id sfp_of_match[] = { |  static const struct of_device_id sfp_of_match[] = { | ||||||
|  	{ .compatible = "sff,sfp", }, |  	{ .compatible = "sff,sfp", }, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/sfp.c | --- a/drivers/net/phy/sfp.c | ||||||
| +++ b/drivers/net/phy/sfp.c | +++ b/drivers/net/phy/sfp.c | ||||||
| @@ -489,7 +489,7 @@ static void sfp_sm_phy_detach(struct sfp | @@ -505,7 +505,7 @@ static void sfp_sm_phy_detach(struct sfp | ||||||
|  	sfp->mod_phy = NULL; |  	sfp->mod_phy = NULL; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|  { |  { | ||||||
|  	struct phy_device *phy; |  	struct phy_device *phy; | ||||||
|  	int err; |  	int err; | ||||||
| @@ -499,11 +499,11 @@ static void sfp_sm_probe_phy(struct sfp | @@ -515,11 +515,11 @@ static void sfp_sm_probe_phy(struct sfp | ||||||
|  	phy = mdiobus_scan(sfp->i2c_mii, SFP_PHY_ADDR); |  	phy = mdiobus_scan(sfp->i2c_mii, SFP_PHY_ADDR); | ||||||
|  	if (phy == ERR_PTR(-ENODEV)) { |  	if (phy == ERR_PTR(-ENODEV)) { | ||||||
|  		dev_info(sfp->dev, "no PHY detected\n"); |  		dev_info(sfp->dev, "no PHY detected\n"); | ||||||
| @@ -36,7 +36,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	err = sfp_add_phy(sfp->sfp_bus, phy); |  	err = sfp_add_phy(sfp->sfp_bus, phy); | ||||||
| @@ -511,11 +511,13 @@ static void sfp_sm_probe_phy(struct sfp | @@ -527,11 +527,13 @@ static void sfp_sm_probe_phy(struct sfp | ||||||
|  		phy_device_remove(phy); |  		phy_device_remove(phy); | ||||||
|  		phy_device_free(phy); |  		phy_device_free(phy); | ||||||
|  		dev_err(sfp->dev, "sfp_add_phy failed: %d\n", err); |  		dev_err(sfp->dev, "sfp_add_phy failed: %d\n", err); | ||||||
| @@ -51,7 +51,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void sfp_sm_link_up(struct sfp *sfp) |  static void sfp_sm_link_up(struct sfp *sfp) | ||||||
| @@ -561,14 +563,9 @@ static void sfp_sm_fault(struct sfp *sfp | @@ -577,14 +579,9 @@ static void sfp_sm_fault(struct sfp *sfp | ||||||
|   |   | ||||||
|  static void sfp_sm_mod_init(struct sfp *sfp) |  static void sfp_sm_mod_init(struct sfp *sfp) | ||||||
|  { |  { | ||||||
| @@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|   |   | ||||||
|  	/* Setting the serdes link mode is guesswork: there's no |  	/* Setting the serdes link mode is guesswork: there's no | ||||||
|  	 * field in the EEPROM which indicates what mode should |  	 * field in the EEPROM which indicates what mode should | ||||||
| @@ -582,7 +579,22 @@ static void sfp_sm_mod_init(struct sfp * | @@ -598,7 +595,22 @@ static void sfp_sm_mod_init(struct sfp * | ||||||
|  	if (sfp->id.base.e1000_base_t || |  	if (sfp->id.base.e1000_base_t || | ||||||
|  	    sfp->id.base.e100_base_lx || |  	    sfp->id.base.e100_base_lx || | ||||||
|  	    sfp->id.base.e100_base_fx) |  	    sfp->id.base.e100_base_fx) | ||||||
|   | |||||||
| @@ -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 | ||||||
| @@ -980,7 +980,10 @@ void phy_state_machine(struct work_struc | @@ -913,7 +913,10 @@ void phy_state_machine(struct work_struc | ||||||
|  		/* If the link is down, give up on negotiation for now */ |  		/* If the link is down, give up on negotiation for now */ | ||||||
|  		if (!phydev->link) { |  		if (!phydev->link) { | ||||||
|  			phydev->state = PHY_NOLINK; |  			phydev->state = PHY_NOLINK; | ||||||
| @@ -23,7 +23,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  			break; |  			break; | ||||||
|  		} |  		} | ||||||
|   |   | ||||||
| @@ -1067,7 +1070,10 @@ void phy_state_machine(struct work_struc | @@ -1000,7 +1003,10 @@ void phy_state_machine(struct work_struc | ||||||
|  			phy_link_up(phydev); |  			phy_link_up(phydev); | ||||||
|  		} else { |  		} else { | ||||||
|  			phydev->state = PHY_NOLINK; |  			phydev->state = PHY_NOLINK; | ||||||
| @@ -35,7 +35,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  		} |  		} | ||||||
|   |   | ||||||
|  		if (phy_interrupt_is_valid(phydev)) |  		if (phy_interrupt_is_valid(phydev)) | ||||||
| @@ -1077,7 +1083,10 @@ void phy_state_machine(struct work_struc | @@ -1010,7 +1016,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; | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  |  | ||||||
| --- a/drivers/tty/serial/serial_core.c | --- a/drivers/tty/serial/serial_core.c | ||||||
| +++ b/drivers/tty/serial/serial_core.c | +++ b/drivers/tty/serial/serial_core.c | ||||||
| @@ -431,6 +431,9 @@ uart_get_baud_rate(struct uart_port *por | @@ -428,6 +428,9 @@ uart_get_baud_rate(struct uart_port *por | ||||||
|  		break; |  		break; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Koen Vandeputte
					Koen Vandeputte