mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	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:
		
							parent
							
								
									f2f7cc67e5
								
							
						
					
					
						commit
						a7e68927d0
					
				@ -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;
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user