kernel: bump 4.14 to 4.14.136
Refreshed all patches. Altered patches: - 306-v4.16-netfilter-remove-saveroute-indirection-in-struct-nf_.patch Remove upstreamed: - 100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch - 088-0002-i2c-qup-fixed-releasing-dma-without-flush-operation.patch - 500-arm64-dts-marvell-Fix-A37xx-UART0-register-size.patch Fixes: - CVE-2019-13648 - CVE-2019-10207 Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
		| @@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL | |||||||
|   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) |   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| LINUX_VERSION-4.14 = .134 | LINUX_VERSION-4.14 = .136 | ||||||
|  |  | ||||||
| LINUX_KERNEL_HASH-4.14.134 = 0b21e7b5effd92303a551b5be2380c9703d6fb87cfe5189fe0d795cc73903d2d | LINUX_KERNEL_HASH-4.14.136 = 268dff959216e59437a8f9db7c2cea3a1ada8a4c72232dc5b7f83ecca12bdf70 | ||||||
|  |  | ||||||
| remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | ||||||
| sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | ||||||
|   | |||||||
| @@ -1,30 +0,0 @@ | |||||||
| From 9b84ad676e248a3e3c81db7f5d39e1739b3780aa Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Christian Lamparter <chunkeey@gmail.com> |  | ||||||
| Date: Sat, 15 Jun 2019 16:35:26 +0200 |  | ||||||
| Subject: [PATCH] powerpc/4xx/uic: clear pending interrupt after irq type/pol |  | ||||||
|  change |  | ||||||
|  |  | ||||||
| When testing out gpio-keys with a button, a spurious |  | ||||||
| interrupt (and therefore a key press or release event) |  | ||||||
| gets triggered as soon as the driver enables the irq |  | ||||||
| line for the first time. |  | ||||||
|  |  | ||||||
| This patch clears any potential bogus generated interrupt |  | ||||||
| that was caused by the switching of the associated irq's |  | ||||||
| type and polarity. |  | ||||||
|  |  | ||||||
| Signed-off-by: Christian Lamparter <chunkeey@gmail.com> |  | ||||||
| --- |  | ||||||
|  arch/powerpc/platforms/4xx/uic.c | 1 + |  | ||||||
|  1 file changed, 1 insertion(+) |  | ||||||
|  |  | ||||||
| --- a/arch/powerpc/platforms/4xx/uic.c |  | ||||||
| +++ b/arch/powerpc/platforms/4xx/uic.c |  | ||||||
| @@ -158,6 +158,7 @@ static int uic_set_irq_type(struct irq_d |  | ||||||
|   |  | ||||||
|  	mtdcr(uic->dcrbase + UIC_PR, pr); |  | ||||||
|  	mtdcr(uic->dcrbase + UIC_TR, tr); |  | ||||||
| +	mtdcr(uic->dcrbase + UIC_SR, ~mask); |  | ||||||
|   |  | ||||||
|  	raw_spin_unlock_irqrestore(&uic->lock, flags); |  | ||||||
|   |  | ||||||
| @@ -841,7 +841,7 @@ Signed-off-by: Malik Olivier Boussejra <malik@boussejra.com> | |||||||
|  } |  } | ||||||
| --- a/drivers/usb/core/hub.c
 | --- a/drivers/usb/core/hub.c
 | ||||||
| +++ b/drivers/usb/core/hub.c
 | +++ b/drivers/usb/core/hub.c
 | ||||||
| @@ -5091,7 +5091,7 @@ static void port_event(struct usb_hub *h
 | @@ -5098,7 +5098,7 @@ static void port_event(struct usb_hub *h
 | ||||||
|  	if (portchange & USB_PORT_STAT_C_OVERCURRENT) { |  	if (portchange & USB_PORT_STAT_C_OVERCURRENT) { | ||||||
|  		u16 status = 0, unused; |  		u16 status = 0, unused; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -48,7 +48,7 @@ Reviewed-by: John Gilmore <gnu@toad.com> | |||||||
|  #define	INADDR_ANY		((unsigned long int) 0x00000000) |  #define	INADDR_ANY		((unsigned long int) 0x00000000) | ||||||
| --- a/net/ipv4/devinet.c | --- a/net/ipv4/devinet.c | ||||||
| +++ b/net/ipv4/devinet.c | +++ b/net/ipv4/devinet.c | ||||||
| @@ -921,7 +921,7 @@ static int inet_abc_len(__be32 addr) | @@ -929,7 +929,7 @@ static int inet_abc_len(__be32 addr) | ||||||
|  { |  { | ||||||
|  	int rc = -1;	/* Something else, probably a multicast. */ |  	int rc = -1;	/* Something else, probably a multicast. */ | ||||||
|   |   | ||||||
| @@ -57,7 +57,7 @@ Reviewed-by: John Gilmore <gnu@toad.com> | |||||||
|  		rc = 0; |  		rc = 0; | ||||||
|  	else { |  	else { | ||||||
|  		__u32 haddr = ntohl(addr); |  		__u32 haddr = ntohl(addr); | ||||||
| @@ -932,6 +932,8 @@ static int inet_abc_len(__be32 addr) | @@ -940,6 +940,8 @@ static int inet_abc_len(__be32 addr) | ||||||
|  			rc = 16; |  			rc = 16; | ||||||
|  		else if (IN_CLASSC(haddr)) |  		else if (IN_CLASSC(haddr)) | ||||||
|  			rc = 24; |  			rc = 24; | ||||||
|   | |||||||
| @@ -159,7 +159,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|  	net->nf.proc_netfilter = proc_net_mkdir(net, "netfilter", |  	net->nf.proc_netfilter = proc_net_mkdir(net, "netfilter", | ||||||
| --- a/net/netfilter/nf_queue.c | --- a/net/netfilter/nf_queue.c | ||||||
| +++ b/net/netfilter/nf_queue.c | +++ b/net/netfilter/nf_queue.c | ||||||
| @@ -202,6 +202,23 @@ repeat: | @@ -206,6 +206,23 @@ repeat: | ||||||
|  	return NF_ACCEPT; |  	return NF_ACCEPT; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -183,7 +183,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|  /* Caller must hold rcu read-side lock */ |  /* Caller must hold rcu read-side lock */ | ||||||
|  void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) |  void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) | ||||||
|  { |  { | ||||||
| @@ -217,12 +234,12 @@ void nf_reinject(struct nf_queue_entry * | @@ -221,12 +238,12 @@ void nf_reinject(struct nf_queue_entry * | ||||||
|  	net = entry->state.net; |  	net = entry->state.net; | ||||||
|  	pf = entry->state.pf; |  	pf = entry->state.pf; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -152,7 +152,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|  #endif |  #endif | ||||||
| --- a/net/netfilter/nf_queue.c | --- a/net/netfilter/nf_queue.c | ||||||
| +++ b/net/netfilter/nf_queue.c | +++ b/net/netfilter/nf_queue.c | ||||||
| @@ -205,8 +205,10 @@ repeat: | @@ -209,8 +209,10 @@ repeat: | ||||||
|  static struct nf_hook_entries *nf_hook_entries_head(const struct net *net, u8 pf, u8 hooknum) |  static struct nf_hook_entries *nf_hook_entries_head(const struct net *net, u8 pf, u8 hooknum) | ||||||
|  { |  { | ||||||
|  	switch (pf) { |  	switch (pf) { | ||||||
|   | |||||||
| @@ -212,10 +212,10 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|  static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state, |  static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state, | ||||||
|  		      const struct nf_hook_entries *entries, |  		      const struct nf_hook_entries *entries, | ||||||
|  		      unsigned int index, unsigned int queuenum) |  		      unsigned int index, unsigned int queuenum) | ||||||
| @@ -144,7 +175,16 @@ static int __nf_queue(struct sk_buff *sk | @@ -148,7 +179,16 @@ static int __nf_queue(struct sk_buff *sk | ||||||
|  |  	}; | ||||||
|   |   | ||||||
|  	nf_queue_entry_get_refs(entry); |  	nf_queue_entry_get_refs(entry); | ||||||
|  	skb_dst_force(skb); |  | ||||||
| -	afinfo->saveroute(skb, entry); | -	afinfo->saveroute(skb, entry); | ||||||
| + | + | ||||||
| +	switch (entry->state.pf) { | +	switch (entry->state.pf) { | ||||||
|   | |||||||
| @@ -171,7 +171,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|   |   | ||||||
| --- a/net/netfilter/nf_queue.c | --- a/net/netfilter/nf_queue.c | ||||||
| +++ b/net/netfilter/nf_queue.c | +++ b/net/netfilter/nf_queue.c | ||||||
| @@ -267,7 +267,6 @@ void nf_reinject(struct nf_queue_entry * | @@ -271,7 +271,6 @@ void nf_reinject(struct nf_queue_entry * | ||||||
|  	const struct nf_hook_entry *hook_entry; |  	const struct nf_hook_entry *hook_entry; | ||||||
|  	const struct nf_hook_entries *hooks; |  	const struct nf_hook_entries *hooks; | ||||||
|  	struct sk_buff *skb = entry->skb; |  	struct sk_buff *skb = entry->skb; | ||||||
| @@ -179,7 +179,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|  	const struct net *net; |  	const struct net *net; | ||||||
|  	unsigned int i; |  	unsigned int i; | ||||||
|  	int err; |  	int err; | ||||||
| @@ -294,8 +293,7 @@ void nf_reinject(struct nf_queue_entry * | @@ -298,8 +297,7 @@ void nf_reinject(struct nf_queue_entry * | ||||||
|  		verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state); |  		verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state); | ||||||
|   |   | ||||||
|  	if (verdict == NF_ACCEPT) { |  	if (verdict == NF_ACCEPT) { | ||||||
|   | |||||||
| @@ -83,7 +83,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> | |||||||
|  	if (!entry) { |  	if (!entry) { | ||||||
|  		status = -ENOMEM; |  		status = -ENOMEM; | ||||||
|  		goto err; |  		goto err; | ||||||
| @@ -170,7 +180,7 @@ static int __nf_queue(struct sk_buff *sk | @@ -175,7 +185,7 @@ static int __nf_queue(struct sk_buff *sk | ||||||
|  		.skb	= skb, |  		.skb	= skb, | ||||||
|  		.state	= *state, |  		.state	= *state, | ||||||
|  		.hook_index = index, |  		.hook_index = index, | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/Makefile | --- a/Makefile | ||||||
| +++ b/Makefile | +++ b/Makefile | ||||||
| @@ -1239,7 +1239,6 @@ all: modules | @@ -1240,7 +1240,6 @@ all: modules | ||||||
|   |   | ||||||
|  PHONY += modules |  PHONY += modules | ||||||
|  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin |  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin | ||||||
| @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	@$(kecho) '  Building modules, stage 2.'; |  	@$(kecho) '  Building modules, stage 2.'; | ||||||
|  	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost |  	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost | ||||||
|   |   | ||||||
| @@ -1268,7 +1267,6 @@ _modinst_: | @@ -1269,7 +1268,6 @@ _modinst_: | ||||||
|  		rm -f $(MODLIB)/build ; \ |  		rm -f $(MODLIB)/build ; \ | ||||||
|  		ln -s $(CURDIR) $(MODLIB)/build ; \ |  		ln -s $(CURDIR) $(MODLIB)/build ; \ | ||||||
|  	fi |  	fi | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | |||||||
|  # Read KERNELRELEASE from include/config/kernel.release (if it exists) |  # Read KERNELRELEASE from include/config/kernel.release (if it exists) | ||||||
|  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) |  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) | ||||||
|  KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) |  KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) | ||||||
| @@ -787,11 +792,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH | @@ -788,11 +793,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH | ||||||
|  KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) |  KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) | ||||||
|  endif |  endif | ||||||
|   |   | ||||||
|   | |||||||
| @@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  #include <linux/mutex.h> |  #include <linux/mutex.h> | ||||||
|  #include <linux/err.h> |  #include <linux/err.h> | ||||||
|  #include <linux/of.h> |  #include <linux/of.h> | ||||||
| @@ -2926,3 +2927,5 @@ static int __init regmap_initcall(void) | @@ -2928,3 +2929,5 @@ static int __init regmap_initcall(void) | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|  postcore_initcall(regmap_initcall); |  postcore_initcall(regmap_initcall); | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ | |||||||
|   |   | ||||||
| --- a/drivers/net/phy/phy_device.c | --- a/drivers/net/phy/phy_device.c | ||||||
| +++ b/drivers/net/phy/phy_device.c | +++ b/drivers/net/phy/phy_device.c | ||||||
| @@ -1455,6 +1455,9 @@ int genphy_update_link(struct phy_device | @@ -1461,6 +1461,9 @@ int genphy_update_link(struct phy_device | ||||||
|  { |  { | ||||||
|  	int status; |  	int status; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -221,7 +221,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (!root_irq_dir) |  	if (!root_irq_dir) | ||||||
| --- a/kernel/time/timer_list.c | --- a/kernel/time/timer_list.c | ||||||
| +++ b/kernel/time/timer_list.c | +++ b/kernel/time/timer_list.c | ||||||
| @@ -389,6 +389,8 @@ static int __init init_timer_list_procfs | @@ -390,6 +390,8 @@ static int __init init_timer_list_procfs | ||||||
|  { |  { | ||||||
|  	struct proc_dir_entry *pe; |  	struct proc_dir_entry *pe; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  #include <uapi/linux/dma-buf.h> |  #include <uapi/linux/dma-buf.h> | ||||||
|   |   | ||||||
| @@ -1205,4 +1206,5 @@ static void __exit dma_buf_deinit(void) | @@ -1206,4 +1207,5 @@ static void __exit dma_buf_deinit(void) | ||||||
|  { |  { | ||||||
|  	dma_buf_uninit_debugfs(); |  	dma_buf_uninit_debugfs(); | ||||||
|  } |  } | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/Makefile | --- a/Makefile | ||||||
| +++ b/Makefile | +++ b/Makefile | ||||||
| @@ -654,12 +654,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni | @@ -655,12 +655,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni | ||||||
|  KBUILD_CFLAGS	+= $(call cc-disable-warning, attribute-alias) |  KBUILD_CFLAGS	+= $(call cc-disable-warning, attribute-alias) | ||||||
|   |   | ||||||
|  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE |  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE | ||||||
|   | |||||||
| @@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static int absolute_percpu = 0; |  static int absolute_percpu = 0; | ||||||
|  static char symbol_prefix_char = '\0'; |  static char symbol_prefix_char = '\0'; | ||||||
|  static int base_relative = 0; |  static int base_relative = 0; | ||||||
| @@ -458,6 +459,9 @@ static void write_src(void) | @@ -461,6 +462,9 @@ static void write_src(void) | ||||||
|   |   | ||||||
|  	free(markers); |  	free(markers); | ||||||
|   |   | ||||||
| @@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	output_label("kallsyms_token_table"); |  	output_label("kallsyms_token_table"); | ||||||
|  	off = 0; |  	off = 0; | ||||||
|  	for (i = 0; i < 256; i++) { |  	for (i = 0; i < 256; i++) { | ||||||
| @@ -516,6 +520,9 @@ static void *find_token(unsigned char *s | @@ -519,6 +523,9 @@ static void *find_token(unsigned char *s | ||||||
|  { |  { | ||||||
|  	int i; |  	int i; | ||||||
|   |   | ||||||
| @@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	for (i = 0; i < len - 1; i++) { |  	for (i = 0; i < len - 1; i++) { | ||||||
|  		if (str[i] == token[0] && str[i+1] == token[1]) |  		if (str[i] == token[0] && str[i+1] == token[1]) | ||||||
|  			return &str[i]; |  			return &str[i]; | ||||||
| @@ -588,6 +595,9 @@ static void optimize_result(void) | @@ -591,6 +598,9 @@ static void optimize_result(void) | ||||||
|  { |  { | ||||||
|  	int i, best; |  	int i, best; | ||||||
|   |   | ||||||
| @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	/* using the '\0' symbol last allows compress_symbols to use standard |  	/* using the '\0' symbol last allows compress_symbols to use standard | ||||||
|  	 * fast string functions */ |  	 * fast string functions */ | ||||||
|  	for (i = 255; i >= 0; i--) { |  	for (i = 255; i >= 0; i--) { | ||||||
| @@ -776,6 +786,8 @@ int main(int argc, char **argv) | @@ -779,6 +789,8 @@ int main(int argc, char **argv) | ||||||
|  				symbol_prefix_char = *p; |  				symbol_prefix_char = *p; | ||||||
|  			} else if (strcmp(argv[i], "--base-relative") == 0) |  			} else if (strcmp(argv[i], "--base-relative") == 0) | ||||||
|  				base_relative = 1; |  				base_relative = 1; | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/phy_device.c | --- a/drivers/net/phy/phy_device.c | ||||||
| +++ b/drivers/net/phy/phy_device.c | +++ b/drivers/net/phy/phy_device.c | ||||||
| @@ -1099,6 +1099,9 @@ void phy_detach(struct phy_device *phyde | @@ -1105,6 +1105,9 @@ void phy_detach(struct phy_device *phyde | ||||||
|  	struct module *ndev_owner = dev->dev.parent->driver->owner; |  	struct module *ndev_owner = dev->dev.parent->driver->owner; | ||||||
|  	struct mii_bus *bus; |  	struct mii_bus *bus; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static struct amd_chipset_info { |  static struct amd_chipset_info { | ||||||
|  	struct pci_dev	*nb_dev; |  	struct pci_dev	*nb_dev; | ||||||
|  	struct pci_dev	*smbus_dev; |  	struct pci_dev	*smbus_dev; | ||||||
| @@ -620,6 +622,10 @@ bool usb_amd_pt_check_port(struct device | @@ -627,6 +629,10 @@ bool usb_amd_pt_check_port(struct device | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL_GPL(usb_amd_pt_check_port); |  EXPORT_SYMBOL_GPL(usb_amd_pt_check_port); | ||||||
|   |   | ||||||
| @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  /* |  /* | ||||||
|   * Make sure the controller is completely inactive, unable to |   * Make sure the controller is completely inactive, unable to | ||||||
|   * generate interrupts or do DMA. |   * generate interrupts or do DMA. | ||||||
| @@ -699,8 +705,17 @@ reset_needed: | @@ -706,8 +712,17 @@ reset_needed: | ||||||
|  	uhci_reset_hc(pdev, base); |  	uhci_reset_hc(pdev, base); | ||||||
|  	return 1; |  	return 1; | ||||||
|  } |  } | ||||||
| @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask) |  static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask) | ||||||
|  { |  { | ||||||
|  	u16 cmd; |  	u16 cmd; | ||||||
| @@ -1287,3 +1302,4 @@ bool usb_xhci_needs_pci_reset(struct pci | @@ -1294,3 +1309,4 @@ bool usb_xhci_needs_pci_reset(struct pci | ||||||
|  	return false; |  	return false; | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL_GPL(usb_xhci_needs_pci_reset); |  EXPORT_SYMBOL_GPL(usb_xhci_needs_pci_reset); | ||||||
|   | |||||||
| @@ -1,44 +0,0 @@ | |||||||
| From 7239872fb3400b21a8f5547257f9f86455867bd6 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Abhishek Sahu <absahu@codeaurora.org> |  | ||||||
| Date: Mon, 12 Mar 2018 18:44:51 +0530 |  | ||||||
| Subject: [PATCH 02/13] i2c: qup: fixed releasing dma without flush operation |  | ||||||
|  completion |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Type: text/plain; charset=UTF-8 |  | ||||||
| Content-Transfer-Encoding: 8bit |  | ||||||
|  |  | ||||||
| The QUP BSLP BAM generates the following error sometimes if the |  | ||||||
| current I2C DMA transfer fails and the flush operation has been |  | ||||||
| scheduled |  | ||||||
|  |  | ||||||
|     “bam-dma-engine 7884000.dma: Cannot free busy channel” |  | ||||||
|  |  | ||||||
| If any I2C error comes during BAM DMA transfer, then the QUP I2C |  | ||||||
| interrupt will be generated and the flush operation will be |  | ||||||
| carried out to make I2C consume all scheduled DMA transfer. |  | ||||||
| Currently, the same completion structure is being used for BAM |  | ||||||
| transfer which has already completed without reinit. It will make |  | ||||||
| flush operation wait_for_completion_timeout completed immediately |  | ||||||
| and will proceed for freeing the DMA resources where the |  | ||||||
| descriptors are still in process. |  | ||||||
|  |  | ||||||
| Signed-off-by: Abhishek Sahu <absahu@codeaurora.org> |  | ||||||
| Acked-by: Sricharan R <sricharan@codeaurora.org> |  | ||||||
| Reviewed-by: Austin Christ <austinwc@codeaurora.org> |  | ||||||
| Reviewed-by: Andy Gross <andy.gross@linaro.org> |  | ||||||
| Signed-off-by: Wolfram Sang <wsa@the-dreams.de> |  | ||||||
| --- |  | ||||||
|  drivers/i2c/busses/i2c-qup.c | 2 ++ |  | ||||||
|  1 file changed, 2 insertions(+) |  | ||||||
|  |  | ||||||
| --- a/drivers/i2c/busses/i2c-qup.c |  | ||||||
| +++ b/drivers/i2c/busses/i2c-qup.c |  | ||||||
| @@ -835,6 +835,8 @@ static int qup_i2c_bam_do_xfer(struct qu |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	if (ret || qup->bus_err || qup->qup_err) { |  | ||||||
| +		reinit_completion(&qup->xfer); |  | ||||||
| + |  | ||||||
|  		if (qup_i2c_change_state(qup, QUP_RUN_STATE)) { |  | ||||||
|  			dev_err(qup->dev, "change to run state timed out"); |  | ||||||
|  			goto desc_err; |  | ||||||
| @@ -830,7 +830,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
|  obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o |  obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o | ||||||
| --- a/drivers/pci/dwc/pci-dra7xx.c | --- a/drivers/pci/dwc/pci-dra7xx.c | ||||||
| +++ b/drivers/pci/dwc/pci-dra7xx.c | +++ b/drivers/pci/dwc/pci-dra7xx.c | ||||||
| @@ -337,15 +337,6 @@ static irqreturn_t dra7xx_pcie_irq_handl | @@ -338,15 +338,6 @@ static irqreturn_t dra7xx_pcie_irq_handl | ||||||
|  	return IRQ_HANDLED; |  	return IRQ_HANDLED; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -3209,7 +3209,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> | |||||||
|  	/* Parse and map our Configuration Space windows */ |  	/* Parse and map our Configuration Space windows */ | ||||||
| --- a/drivers/pci/host/pcie-xilinx-nwl.c | --- a/drivers/pci/host/pcie-xilinx-nwl.c | ||||||
| +++ b/drivers/pci/host/pcie-xilinx-nwl.c | +++ b/drivers/pci/host/pcie-xilinx-nwl.c | ||||||
| @@ -779,16 +779,7 @@ static int nwl_pcie_parse_dt(struct nwl_ | @@ -778,16 +778,7 @@ static int nwl_pcie_parse_dt(struct nwl_ | ||||||
|  			     struct platform_device *pdev) |  			     struct platform_device *pdev) | ||||||
|  { |  { | ||||||
|  	struct device *dev = pcie->dev; |  	struct device *dev = pcie->dev; | ||||||
|   | |||||||
| @@ -1917,7 +1917,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|   |   | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
| @@ -987,9 +1080,6 @@ static void init_aead_job(struct aead_re | @@ -989,9 +1082,6 @@ static void init_aead_job(struct aead_re | ||||||
|  		append_seq_out_ptr(desc, dst_dma, |  		append_seq_out_ptr(desc, dst_dma, | ||||||
|  				   req->assoclen + req->cryptlen - authsize, |  				   req->assoclen + req->cryptlen - authsize, | ||||||
|  				   out_options); |  				   out_options); | ||||||
| @@ -1927,7 +1927,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void init_gcm_job(struct aead_request *req, |  static void init_gcm_job(struct aead_request *req, | ||||||
| @@ -1004,6 +1094,7 @@ static void init_gcm_job(struct aead_req | @@ -1006,6 +1096,7 @@ static void init_gcm_job(struct aead_req | ||||||
|  	unsigned int last; |  	unsigned int last; | ||||||
|   |   | ||||||
|  	init_aead_job(req, edesc, all_contig, encrypt); |  	init_aead_job(req, edesc, all_contig, encrypt); | ||||||
| @@ -1935,7 +1935,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|   |   | ||||||
|  	/* BUG This should not be specific to generic GCM. */ |  	/* BUG This should not be specific to generic GCM. */ | ||||||
|  	last = 0; |  	last = 0; | ||||||
| @@ -1021,6 +1112,40 @@ static void init_gcm_job(struct aead_req | @@ -1023,6 +1114,40 @@ static void init_gcm_job(struct aead_req | ||||||
|  	/* End of blank commands */ |  	/* End of blank commands */ | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -1976,7 +1976,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  static void init_authenc_job(struct aead_request *req, |  static void init_authenc_job(struct aead_request *req, | ||||||
|  			     struct aead_edesc *edesc, |  			     struct aead_edesc *edesc, | ||||||
|  			     bool all_contig, bool encrypt) |  			     bool all_contig, bool encrypt) | ||||||
| @@ -1030,6 +1155,7 @@ static void init_authenc_job(struct aead | @@ -1032,6 +1157,7 @@ static void init_authenc_job(struct aead | ||||||
|  						 struct caam_aead_alg, aead); |  						 struct caam_aead_alg, aead); | ||||||
|  	unsigned int ivsize = crypto_aead_ivsize(aead); |  	unsigned int ivsize = crypto_aead_ivsize(aead); | ||||||
|  	struct caam_ctx *ctx = crypto_aead_ctx(aead); |  	struct caam_ctx *ctx = crypto_aead_ctx(aead); | ||||||
| @@ -1984,7 +1984,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  	const bool ctr_mode = ((ctx->cdata.algtype & OP_ALG_AAI_MASK) == |  	const bool ctr_mode = ((ctx->cdata.algtype & OP_ALG_AAI_MASK) == | ||||||
|  			       OP_ALG_AAI_CTR_MOD128); |  			       OP_ALG_AAI_CTR_MOD128); | ||||||
|  	const bool is_rfc3686 = alg->caam.rfc3686; |  	const bool is_rfc3686 = alg->caam.rfc3686; | ||||||
| @@ -1053,6 +1179,15 @@ static void init_authenc_job(struct aead | @@ -1055,6 +1181,15 @@ static void init_authenc_job(struct aead | ||||||
|   |   | ||||||
|  	init_aead_job(req, edesc, all_contig, encrypt); |  	init_aead_job(req, edesc, all_contig, encrypt); | ||||||
|   |   | ||||||
| @@ -2000,7 +2000,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  	if (ivsize && ((is_rfc3686 && encrypt) || !alg->caam.geniv)) |  	if (ivsize && ((is_rfc3686 && encrypt) || !alg->caam.geniv)) | ||||||
|  		append_load_as_imm(desc, req->iv, ivsize, |  		append_load_as_imm(desc, req->iv, ivsize, | ||||||
|  				   LDST_CLASS_1_CCB | |  				   LDST_CLASS_1_CCB | | ||||||
| @@ -1225,8 +1360,16 @@ static struct aead_edesc *aead_edesc_all | @@ -1227,8 +1362,16 @@ static struct aead_edesc *aead_edesc_all | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -2018,7 +2018,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  	sec4_sg_bytes = sec4_sg_len * sizeof(struct sec4_sg_entry); |  	sec4_sg_bytes = sec4_sg_len * sizeof(struct sec4_sg_entry); | ||||||
|   |   | ||||||
|  	/* allocate space for base edesc and hw desc commands, link tables */ |  	/* allocate space for base edesc and hw desc commands, link tables */ | ||||||
| @@ -1307,6 +1450,72 @@ static int gcm_encrypt(struct aead_reque | @@ -1309,6 +1452,72 @@ static int gcm_encrypt(struct aead_reque | ||||||
|  	return ret; |  	return ret; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -2091,7 +2091,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  static int ipsec_gcm_encrypt(struct aead_request *req) |  static int ipsec_gcm_encrypt(struct aead_request *req) | ||||||
|  { |  { | ||||||
|  	if (req->assoclen < 8) |  	if (req->assoclen < 8) | ||||||
| @@ -1494,7 +1703,25 @@ static struct ablkcipher_edesc *ablkciph | @@ -1496,7 +1705,25 @@ static struct ablkcipher_edesc *ablkciph | ||||||
|   |   | ||||||
|  	sec4_sg_ents = 1 + mapped_src_nents; |  	sec4_sg_ents = 1 + mapped_src_nents; | ||||||
|  	dst_sg_idx = sec4_sg_ents; |  	dst_sg_idx = sec4_sg_ents; | ||||||
| @@ -2118,7 +2118,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  	sec4_sg_bytes = sec4_sg_ents * sizeof(struct sec4_sg_entry); |  	sec4_sg_bytes = sec4_sg_ents * sizeof(struct sec4_sg_entry); | ||||||
|   |   | ||||||
|  	/* |  	/* | ||||||
| @@ -3196,6 +3423,50 @@ static struct caam_aead_alg driver_aeads | @@ -3199,6 +3426,50 @@ static struct caam_aead_alg driver_aeads | ||||||
|  			.geniv = true, |  			.geniv = true, | ||||||
|  		}, |  		}, | ||||||
|  	}, |  	}, | ||||||
| @@ -2169,7 +2169,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  struct caam_crypto_alg { |  struct caam_crypto_alg { | ||||||
| @@ -3204,9 +3475,11 @@ struct caam_crypto_alg { | @@ -3207,9 +3478,11 @@ struct caam_crypto_alg { | ||||||
|  	struct caam_alg_entry caam; |  	struct caam_alg_entry caam; | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
| @@ -2182,7 +2182,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|   |   | ||||||
|  	ctx->jrdev = caam_jr_alloc(); |  	ctx->jrdev = caam_jr_alloc(); | ||||||
|  	if (IS_ERR(ctx->jrdev)) { |  	if (IS_ERR(ctx->jrdev)) { | ||||||
| @@ -3214,10 +3487,16 @@ static int caam_init_common(struct caam_ | @@ -3217,10 +3490,16 @@ static int caam_init_common(struct caam_ | ||||||
|  		return PTR_ERR(ctx->jrdev); |  		return PTR_ERR(ctx->jrdev); | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -2200,7 +2200,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  	if (dma_mapping_error(ctx->jrdev, dma_addr)) { |  	if (dma_mapping_error(ctx->jrdev, dma_addr)) { | ||||||
|  		dev_err(ctx->jrdev, "unable to map key, shared descriptors\n"); |  		dev_err(ctx->jrdev, "unable to map key, shared descriptors\n"); | ||||||
|  		caam_jr_free(ctx->jrdev); |  		caam_jr_free(ctx->jrdev); | ||||||
| @@ -3245,7 +3524,7 @@ static int caam_cra_init(struct crypto_t | @@ -3248,7 +3527,7 @@ static int caam_cra_init(struct crypto_t | ||||||
|  		 container_of(alg, struct caam_crypto_alg, crypto_alg); |  		 container_of(alg, struct caam_crypto_alg, crypto_alg); | ||||||
|  	struct caam_ctx *ctx = crypto_tfm_ctx(tfm); |  	struct caam_ctx *ctx = crypto_tfm_ctx(tfm); | ||||||
|   |   | ||||||
| @@ -2209,7 +2209,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static int caam_aead_init(struct crypto_aead *tfm) |  static int caam_aead_init(struct crypto_aead *tfm) | ||||||
| @@ -3255,14 +3534,15 @@ static int caam_aead_init(struct crypto_ | @@ -3258,14 +3537,15 @@ static int caam_aead_init(struct crypto_ | ||||||
|  		 container_of(alg, struct caam_aead_alg, aead); |  		 container_of(alg, struct caam_aead_alg, aead); | ||||||
|  	struct caam_ctx *ctx = crypto_aead_ctx(tfm); |  	struct caam_ctx *ctx = crypto_aead_ctx(tfm); | ||||||
|   |   | ||||||
| @@ -2227,7 +2227,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  	caam_jr_free(ctx->jrdev); |  	caam_jr_free(ctx->jrdev); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -3276,7 +3556,7 @@ static void caam_aead_exit(struct crypto | @@ -3279,7 +3559,7 @@ static void caam_aead_exit(struct crypto | ||||||
|  	caam_exit_common(crypto_aead_ctx(tfm)); |  	caam_exit_common(crypto_aead_ctx(tfm)); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -2236,7 +2236,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  { |  { | ||||||
|   |   | ||||||
|  	struct caam_crypto_alg *t_alg, *n; |  	struct caam_crypto_alg *t_alg, *n; | ||||||
| @@ -3355,56 +3635,52 @@ static void caam_aead_alg_init(struct ca | @@ -3358,56 +3638,52 @@ static void caam_aead_alg_init(struct ca | ||||||
|  	alg->exit = caam_aead_exit; |  	alg->exit = caam_aead_exit; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -2326,7 +2326,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  		md_limit = SHA256_DIGEST_SIZE; |  		md_limit = SHA256_DIGEST_SIZE; | ||||||
|   |   | ||||||
|  	for (i = 0; i < ARRAY_SIZE(driver_algs); i++) { |  	for (i = 0; i < ARRAY_SIZE(driver_algs); i++) { | ||||||
| @@ -3426,10 +3702,10 @@ static int __init caam_algapi_init(void) | @@ -3429,10 +3705,10 @@ static int __init caam_algapi_init(void) | ||||||
|  		 * Check support for AES modes not available |  		 * Check support for AES modes not available | ||||||
|  		 * on LP devices. |  		 * on LP devices. | ||||||
|  		 */ |  		 */ | ||||||
| @@ -2341,7 +2341,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|   |   | ||||||
|  		t_alg = caam_alg_alloc(alg); |  		t_alg = caam_alg_alloc(alg); | ||||||
|  		if (IS_ERR(t_alg)) { |  		if (IS_ERR(t_alg)) { | ||||||
| @@ -3468,21 +3744,28 @@ static int __init caam_algapi_init(void) | @@ -3471,21 +3747,28 @@ static int __init caam_algapi_init(void) | ||||||
|  		if (!aes_inst && (c1_alg_sel == OP_ALG_ALGSEL_AES)) |  		if (!aes_inst && (c1_alg_sel == OP_ALG_ALGSEL_AES)) | ||||||
|  				continue; |  				continue; | ||||||
|   |   | ||||||
| @@ -2376,7 +2376,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|   |   | ||||||
|  		caam_aead_alg_init(t_alg); |  		caam_aead_alg_init(t_alg); | ||||||
|   |   | ||||||
| @@ -3502,10 +3785,3 @@ static int __init caam_algapi_init(void) | @@ -3505,10 +3788,3 @@ static int __init caam_algapi_init(void) | ||||||
|   |   | ||||||
|  	return err; |  	return err; | ||||||
|  } |  } | ||||||
| @@ -15266,7 +15266,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> | |||||||
|  #endif /* __SG_SW_QM_H */ |  #endif /* __SG_SW_QM_H */ | ||||||
| --- a/drivers/crypto/talitos.c | --- a/drivers/crypto/talitos.c | ||||||
| +++ b/drivers/crypto/talitos.c | +++ b/drivers/crypto/talitos.c | ||||||
| @@ -1241,6 +1241,14 @@ static int ipsec_esp(struct talitos_edes | @@ -1247,6 +1247,14 @@ static int ipsec_esp(struct talitos_edes | ||||||
|  	ret = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[4], |  	ret = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[4], | ||||||
|  				 sg_count, areq->assoclen, tbl_off, elen); |  				 sg_count, areq->assoclen, tbl_off, elen); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -123,7 +123,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com> | |||||||
|   |   | ||||||
|  static struct kset *iommu_group_kset; |  static struct kset *iommu_group_kset; | ||||||
|  static DEFINE_IDA(iommu_group_ida); |  static DEFINE_IDA(iommu_group_ida); | ||||||
| @@ -987,6 +988,26 @@ struct iommu_group *pci_device_group(str | @@ -989,6 +990,26 @@ struct iommu_group *pci_device_group(str | ||||||
|  	return iommu_group_alloc(); |  	return iommu_group_alloc(); | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/phy_device.c | --- a/drivers/net/phy/phy_device.c | ||||||
| +++ b/drivers/net/phy/phy_device.c | +++ b/drivers/net/phy/phy_device.c | ||||||
| @@ -1937,7 +1937,7 @@ static struct phy_driver genphy_driver = | @@ -1943,7 +1943,7 @@ static struct phy_driver genphy_driver = | ||||||
|  	.config_init	= genphy_config_init, |  	.config_init	= genphy_config_init, | ||||||
|  	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII | |  	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII | | ||||||
|  			  SUPPORTED_AUI | SUPPORTED_FIBRE | |  			  SUPPORTED_AUI | SUPPORTED_FIBRE | | ||||||
|   | |||||||
| @@ -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 | ||||||
| @@ -264,6 +264,184 @@ static unsigned int sfp_check(void *buf, | @@ -265,6 +265,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) | ||||||
|  { |  { | ||||||
| @@ -432,6 +610,7 @@ static int sfp_sm_mod_probe(struct sfp * | @@ -433,6 +611,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; | ||||||
|   |   | ||||||
| @@ -475,10 +654,83 @@ static int sfp_sm_mod_probe(struct sfp * | @@ -476,10 +655,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'; | ||||||
|   | |||||||
| @@ -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 | ||||||
| @@ -1164,6 +1164,7 @@ static int sfp_remove(struct platform_de | @@ -1168,6 +1168,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 | ||||||
| @@ -505,7 +505,7 @@ static void sfp_sm_phy_detach(struct sfp | @@ -506,7 +506,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; | ||||||
| @@ -515,11 +515,11 @@ static void sfp_sm_probe_phy(struct sfp | @@ -516,11 +516,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); | ||||||
| @@ -527,11 +527,13 @@ static void sfp_sm_probe_phy(struct sfp | @@ -528,11 +528,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) | ||||||
| @@ -577,14 +579,9 @@ static void sfp_sm_fault(struct sfp *sfp | @@ -578,14 +580,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 | ||||||
| @@ -598,7 +595,22 @@ static void sfp_sm_mod_init(struct sfp * | @@ -599,7 +596,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) | ||||||
|   | |||||||
| @@ -1,39 +0,0 @@ | |||||||
| From c737abc193d16e62e23e2fb585b8b7398ab380d8 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: allen yan <yanwei@marvell.com> |  | ||||||
| Date: Thu, 7 Sep 2017 15:04:53 +0200 |  | ||||||
| Subject: arm64: dts: marvell: Fix A37xx UART0 register size |  | ||||||
|  |  | ||||||
| Armada-37xx UART0 registers are 0x200 bytes wide. Right next to them are |  | ||||||
| the UART1 registers that should not be declared in this node. |  | ||||||
|  |  | ||||||
| Update the example in DT bindings document accordingly. |  | ||||||
|  |  | ||||||
| Signed-off-by: allen yan <yanwei@marvell.com> |  | ||||||
| Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> |  | ||||||
| Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> |  | ||||||
| --- |  | ||||||
|  Documentation/devicetree/bindings/serial/mvebu-uart.txt | 2 +- |  | ||||||
|  arch/arm64/boot/dts/marvell/armada-37xx.dtsi            | 2 +- |  | ||||||
|  2 files changed, 2 insertions(+), 2 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/Documentation/devicetree/bindings/serial/mvebu-uart.txt |  | ||||||
| +++ b/Documentation/devicetree/bindings/serial/mvebu-uart.txt |  | ||||||
| @@ -8,6 +8,6 @@ Required properties: |  | ||||||
|  Example: |  | ||||||
|  	serial@12000 { |  | ||||||
|  		compatible = "marvell,armada-3700-uart"; |  | ||||||
| -		reg = <0x12000 0x400>; |  | ||||||
| +		reg = <0x12000 0x200>; |  | ||||||
|  		interrupts = <43>; |  | ||||||
|  	}; |  | ||||||
| --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi |  | ||||||
| +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi |  | ||||||
| @@ -134,7 +134,7 @@ |  | ||||||
|   |  | ||||||
|  			uart0: serial@12000 { |  | ||||||
|  				compatible = "marvell,armada-3700-uart"; |  | ||||||
| -				reg = <0x12000 0x400>; |  | ||||||
| +				reg = <0x12000 0x200>; |  | ||||||
|  				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
|  				status = "disabled"; |  | ||||||
|  			}; |  | ||||||
		Reference in New Issue
	
	Block a user
	 Koen Vandeputte
					Koen Vandeputte