Refreshed all patches.
Altered patches:
- 180-usb-xhci-add-support-for-performing-fake-doorbell.patch
Compile-tested on: cns3xxx, imx6
Runtime-tested on: cns3xxx, imx6
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_RELEASE?=1
LINUX_VERSION-4.9 = .143
-LINUX_VERSION-4.14 = .82
+LINUX_VERSION-4.14 = .86
LINUX_KERNEL_HASH-4.9.143 = 0eb76464a696675fd4f8762e390328a377e973bfa263b00544ca1b5b10ac2cbf
-LINUX_KERNEL_HASH-4.14.82 = a790a2e6f6a76d70decec91d1b7bcfba90f821b076273da070f6e0e1e6391dad
+LINUX_KERNEL_HASH-4.14.86 = da9260a9022b917733201b89b5314847cb3332c31e70acb5e9b547956c266e28
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#include "xhci.h"
#include "xhci-trace.h"
-@@ -257,6 +259,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -262,6 +264,458 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
-@@ -292,6 +746,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -297,6 +751,22 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
driver = (struct hc_driver *)id->driver_data;
/* For some HW implementation, a XHCI reset is just not enough... */
-@@ -356,6 +826,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -361,6 +831,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1854,6 +1854,7 @@ struct xhci_hcd {
+@@ -1857,6 +1857,7 @@ struct xhci_hcd {
/* support xHCI 0.96 spec USB2 software LPM */
unsigned sw_lpm_support:1;
/* support xHCI 1.0 spec USB2 hardware LPM */
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1835,6 +1835,7 @@ struct xhci_hcd {
- #define XHCI_LIMIT_ENDPOINT_INTERVAL_7 (1 << 26)
- #define XHCI_U2_DISABLE_WAKE (1 << 27)
- #define XHCI_ASMEDIA_MODIFY_FLOWCONTROL (1 << 28)
-+#define XHCI_FAKE_DOORBELL (1 << 29)
- #define XHCI_SUSPEND_DELAY (1 << 30)
+@@ -1839,6 +1839,7 @@ struct xhci_hcd {
+ #define XHCI_SUSPEND_DELAY BIT_ULL(30)
+ #define XHCI_INTEL_USB_ROLE_SW BIT_ULL(31)
+ #define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
++#define XHCI_FAKE_DOORBELL BIT_ULL(35)
unsigned int num_active_eps;
+ unsigned int limit_active_eps;
return UBI_IO_BAD_HDR_EBADMSG;
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
-@@ -822,6 +822,7 @@ extern struct mutex ubi_devices_mutex;
+@@ -829,6 +829,7 @@ extern struct mutex ubi_devices_mutex;
extern struct blocking_notifier_head ubi_notifiers;
/* attach.c */
--- a/Makefile
+++ b/Makefile
-@@ -1232,7 +1232,6 @@ all: modules
+@@ -1234,7 +1234,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1261,7 +1260,6 @@ _modinst_:
+@@ -1263,7 +1262,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
-@@ -786,11 +791,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)
endif
__used \
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
-@@ -434,7 +434,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
+@@ -432,7 +432,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
# Linker scripts preprocessor (.lds.S -> .lds)
# ---------------------------------------------------------------------------
quiet_cmd_cpp_lds_S = LDS $@
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -851,9 +851,8 @@ int ubi_attach_mtd_dev(struct mtd_info *
+@@ -852,9 +852,8 @@ int ubi_attach_mtd_dev(struct mtd_info *
* will die soon and you will lose all your data.
*/
if (mtd->type == MTD_MLCNANDFLASH) {
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2496,6 +2496,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2512,6 +2512,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2626,16 +2630,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2642,16 +2646,6 @@ static inline struct sk_buff *dev_alloc_
}
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6153,7 +6153,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6151,7 +6151,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
--- a/Makefile
+++ b/Makefile
-@@ -652,12 +652,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
+@@ -654,12 +654,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -1171,6 +1171,49 @@ static struct mtd_info * __init open_mtd
+@@ -1172,6 +1172,49 @@ static struct mtd_info * __init open_mtd
return mtd;
}
static int __init ubi_init(void)
{
int err, i, k;
-@@ -1254,6 +1297,12 @@ static int __init ubi_init(void)
+@@ -1255,6 +1298,12 @@ static int __init ubi_init(void)
}
}
break;
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
-@@ -778,6 +778,7 @@ struct ubi_attach_info {
+@@ -785,6 +785,7 @@ struct ubi_attach_info {
int mean_ec;
uint64_t ec_sum;
int ec_count;
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2460,7 +2460,7 @@ static inline int pskb_network_may_pull(
+@@ -2476,7 +2476,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -2043,6 +2060,11 @@ static struct rt6_info *ip6_route_info_c
+@@ -2046,6 +2063,11 @@ static struct rt6_info *ip6_route_info_c
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -2768,6 +2790,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -2771,6 +2793,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -3004,7 +3037,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -3007,7 +3040,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -3499,6 +3533,9 @@ static int rt6_fill_node(struct net *net
+@@ -3502,6 +3536,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -3817,6 +3854,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3820,6 +3857,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -3828,6 +3867,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3831,6 +3870,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -4044,6 +4084,17 @@ static int __net_init ip6_route_net_init
+@@ -4047,6 +4087,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -4062,6 +4113,8 @@ out:
+@@ -4065,6 +4116,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -4079,6 +4132,7 @@ static void __net_exit ip6_route_net_exi
+@@ -4082,6 +4135,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -4152,6 +4206,9 @@ void __init ip6_route_init_special_entri
+@@ -4155,6 +4209,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -6275,6 +6278,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6279,6 +6282,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info)
-@@ -6313,6 +6358,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6317,6 +6362,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -6390,6 +6436,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -6394,6 +6440,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6962,6 +7009,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6966,6 +7013,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -1183,6 +1183,9 @@ static void __init ubi_auto_attach(void)
+@@ -1184,6 +1184,9 @@ static void __init ubi_auto_attach(void)
mtd = open_mtd_device("ubi");
if (IS_ERR(mtd))
mtd = open_mtd_device("data");
if (cpu_online(tcpu)) {
cpu = tcpu;
goto done;
-@@ -8834,6 +8886,9 @@ static int __init net_dev_init(void)
+@@ -8838,6 +8890,9 @@ static int __init net_dev_init(void)
sd->backlog.weight = weight_p;
}
if (!xhci->shared_hcd) {
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -268,6 +268,9 @@ static int xhci_pci_setup(struct usb_hcd
+@@ -273,6 +273,9 @@ static int xhci_pci_setup(struct usb_hcd
if (!xhci->sbrn)
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);