Refreshed all patches.
Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
endif
LINUX_VERSION-4.9 = .202
-LINUX_VERSION-4.14 = .155
+LINUX_VERSION-4.14 = .156
LINUX_VERSION-4.19 = .85
LINUX_KERNEL_HASH-4.9.202 = 8108ec1cd10fc40821c84e9f087dba10b1767aad66596f4a36925faef55e4ebf
-LINUX_KERNEL_HASH-4.14.155 = 77d61979556b81c95b81452fa10e1fe9368cbe2f9f80a13e4669b0464722e481
+LINUX_KERNEL_HASH-4.14.156 = f8889feb0cbd7df36ff35bd4c72c1e2010567621bfcb218fcfa501bc5c7787c0
LINUX_KERNEL_HASH-4.19.85 = 7bf435970aeeafd46263f49730087a61c4858d8b8fc5a4002ceac971b45f4fb7
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
-@@ -473,6 +473,18 @@ config I2C_CBUS_GPIO
+@@ -474,6 +474,18 @@ config I2C_CBUS_GPIO
This driver can also be built as a module. If so, the module
will be called i2c-cbus-gpio.
--- a/drivers/pinctrl/pinctrl-gemini.c
+++ b/drivers/pinctrl/pinctrl-gemini.c
-@@ -2074,6 +2074,16 @@ static const struct gemini_pmx_func gemi
+@@ -2102,6 +2102,16 @@ static const struct gemini_pmx_func gemi
.num_groups = ARRAY_SIZE(satagrps),
},
{
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/regmap.h>
-@@ -1918,73 +1920,13 @@ static void gemini_pin_dbg_show(struct p
+@@ -1946,73 +1948,13 @@ static void gemini_pin_dbg_show(struct p
seq_printf(s, " " DRIVER_NAME);
}
#define GLOBAL_MISC_CTRL 0x30
#define TVC_CLK_PAD_ENABLE BIT(20)
#define PCI_CLK_PAD_ENABLE BIT(17)
-@@ -1925,7 +1946,7 @@ static const struct pinctrl_ops gemini_p
+@@ -1953,7 +1974,7 @@ static const struct pinctrl_ops gemini_p
.get_group_name = gemini_get_group_name,
.get_group_pins = gemini_get_group_pins,
.pin_dbg_show = gemini_pin_dbg_show,
.dt_free_map = pinconf_generic_dt_free_map,
};
-@@ -2203,10 +2224,155 @@ static const struct pinmux_ops gemini_pm
+@@ -2232,10 +2253,155 @@ static const struct pinmux_ops gemini_pm
.set_mux = gemini_pmx_set_mux,
};
.owner = THIS_MODULE,
};
-@@ -2249,11 +2415,15 @@ static int gemini_pmx_probe(struct platf
+@@ -2278,11 +2444,15 @@ static int gemini_pmx_probe(struct platf
val &= 0xffff;
if (val == 0x3512) {
pmx->is_3512 = true;
};
static const unsigned int pci_3512_pins[] = {
-@@ -668,10 +678,10 @@ static const unsigned int gpio1c_3512_pi
+@@ -671,10 +681,10 @@ static const unsigned int gpio1c_3512_pi
/* The GPIO1D (28-31) pins overlap with LCD and TVC */
static const unsigned int gpio1d_3512_pins[] = { 246, 319, 301, 283 };
static const unsigned int gpio2b_3512_pins[] = { 262, 244, 317, 299 };
/* The GPIO2C (8-31) pins overlap with PCI */
-@@ -738,9 +748,16 @@ static const struct gemini_pin_group gem
+@@ -741,9 +751,16 @@ static const struct gemini_pin_group gem
.num_pins = ARRAY_SIZE(usb_3512_pins),
},
{
},
{
.name = "pcigrp",
-@@ -954,14 +971,15 @@ static const struct gemini_pin_group gem
+@@ -963,14 +980,15 @@ static const struct gemini_pin_group gem
.name = "gpio2agrp",
.pins = gpio2a_3512_pins,
.num_pins = ARRAY_SIZE(gpio2a_3512_pins),
},
{
.name = "gpio2cgrp",
-@@ -1441,9 +1459,12 @@ static const unsigned int usb_3516_pins[
+@@ -1450,9 +1468,12 @@ static const unsigned int usb_3516_pins[
};
/* GMII, ethernet pins */
};
static const unsigned int pci_3516_pins[] = {
-@@ -1585,10 +1606,10 @@ static const unsigned int gpio1c_3516_pi
+@@ -1600,10 +1621,10 @@ static const unsigned int gpio1c_3516_pi
/* The GPIO1D (28-31) pins overlap with TVC */
static const unsigned int gpio1d_3516_pins[] = { 353, 311, 394, 374 };
static const unsigned int gpio2b_3516_pins[] = { 391, 351, 310, 371 };
/* The GPIO2C (8-31) pins overlap with PCI */
-@@ -1660,9 +1681,16 @@ static const struct gemini_pin_group gem
+@@ -1675,9 +1696,16 @@ static const struct gemini_pin_group gem
.num_pins = ARRAY_SIZE(usb_3516_pins),
},
{
},
{
.name = "pcigrp",
-@@ -1861,14 +1889,15 @@ static const struct gemini_pin_group gem
+@@ -1889,14 +1917,15 @@ static const struct gemini_pin_group gem
.name = "gpio2agrp",
.pins = gpio2a_3516_pins,
.num_pins = ARRAY_SIZE(gpio2a_3516_pins),
},
{
.name = "gpio2cgrp",
-@@ -1971,7 +2000,7 @@ static const char * const icegrps[] = {
+@@ -1999,7 +2028,7 @@ static const char * const icegrps[] = {
static const char * const idegrps[] = { "idegrp" };
static const char * const satagrps[] = { "satagrp" };
static const char * const usbgrps[] = { "usbgrp" };
--- a/drivers/pinctrl/pinctrl-gemini.c
+++ b/drivers/pinctrl/pinctrl-gemini.c
-@@ -2015,7 +2015,8 @@ static const char * const sflashgrps[] =
+@@ -2043,7 +2043,8 @@ static const char * const sflashgrps[] =
static const char * const gpio0grps[] = { "gpio0agrp", "gpio0bgrp", "gpio0cgrp",
"gpio0dgrp", "gpio0egrp", "gpio0fgrp",
"gpio0ggrp", "gpio0hgrp", "gpio0igrp",
--- a/drivers/pinctrl/pinctrl-gemini.c
+++ b/drivers/pinctrl/pinctrl-gemini.c
-@@ -2323,7 +2323,7 @@ static const struct gemini_pin_conf *gem
+@@ -2352,7 +2352,7 @@ static const struct gemini_pin_conf *gem
int i;
for (i = 0; i < pmx->nconfs; i++) {
#define GLOBAL_GMAC_CTRL_SKEW 0x1c
#define GLOBAL_GMAC0_DATA_SKEW 0x20
#define GLOBAL_GMAC1_DATA_SKEW 0x24
-@@ -738,6 +743,7 @@ static const struct gemini_pin_group gem
+@@ -741,6 +746,7 @@ static const struct gemini_pin_group gem
/* Conflict with all flash usage */
.value = IDE_PADS_ENABLE | NAND_PADS_DISABLE |
PFLASH_PADS_DISABLE | SFLASH_PADS_DISABLE,
},
{
.name = "satagrp",
-@@ -753,6 +759,7 @@ static const struct gemini_pin_group gem
+@@ -756,6 +762,7 @@ static const struct gemini_pin_group gem
.name = "gmii_gmac0_grp",
.pins = gmii_gmac0_3512_pins,
.num_pins = ARRAY_SIZE(gmii_gmac0_3512_pins),
},
{
.name = "gmii_gmac1_grp",
-@@ -760,6 +767,7 @@ static const struct gemini_pin_group gem
+@@ -763,6 +770,7 @@ static const struct gemini_pin_group gem
.num_pins = ARRAY_SIZE(gmii_gmac1_3512_pins),
/* Bring out RGMII on the GMAC1 pins */
.value = GEMINI_GMAC_IOSEL_GMAC0_GMAC1_RGMII,
},
{
.name = "pcigrp",
-@@ -767,6 +775,7 @@ static const struct gemini_pin_group gem
+@@ -770,6 +778,7 @@ static const struct gemini_pin_group gem
.num_pins = ARRAY_SIZE(pci_3512_pins),
/* Conflict only with GPIO2 */
.value = PCI_PADS_ENABLE | PCI_CLK_PAD_ENABLE,
},
{
.name = "lpcgrp",
-@@ -1671,6 +1680,7 @@ static const struct gemini_pin_group gem
+@@ -1686,6 +1695,7 @@ static const struct gemini_pin_group gem
/* Conflict with all flash usage */
.value = IDE_PADS_ENABLE | NAND_PADS_DISABLE |
PFLASH_PADS_DISABLE | SFLASH_PADS_DISABLE,
},
{
.name = "satagrp",
-@@ -1686,6 +1696,7 @@ static const struct gemini_pin_group gem
+@@ -1701,6 +1711,7 @@ static const struct gemini_pin_group gem
.name = "gmii_gmac0_grp",
.pins = gmii_gmac0_3516_pins,
.num_pins = ARRAY_SIZE(gmii_gmac0_3516_pins),
},
{
.name = "gmii_gmac1_grp",
-@@ -1693,6 +1704,7 @@ static const struct gemini_pin_group gem
+@@ -1708,6 +1719,7 @@ static const struct gemini_pin_group gem
.num_pins = ARRAY_SIZE(gmii_gmac1_3516_pins),
/* Bring out RGMII on the GMAC1 pins */
.value = GEMINI_GMAC_IOSEL_GMAC0_GMAC1_RGMII,
},
{
.name = "pcigrp",
-@@ -1700,6 +1712,7 @@ static const struct gemini_pin_group gem
+@@ -1715,6 +1727,7 @@ static const struct gemini_pin_group gem
.num_pins = ARRAY_SIZE(pci_3516_pins),
/* Conflict only with GPIO2 */
.value = PCI_PADS_ENABLE | PCI_CLK_PAD_ENABLE,
},
{
.name = "lpcgrp",
-@@ -2394,9 +2407,77 @@ static int gemini_pinconf_set(struct pin
+@@ -2423,9 +2436,77 @@ static int gemini_pinconf_set(struct pin
return ret;
}
par->hook_mask = 1 << ops->hooknum;
} else {
-@@ -318,7 +318,7 @@ static int nft_target_validate(const str
+@@ -337,7 +337,7 @@ static int nft_target_validate(const str
if (nft_is_base_chain(ctx->chain)) {
const struct nft_base_chain *basechain =
nft_base_chain(ctx->chain);
hook_mask = 1 << ops->hooknum;
if (target->hooks && !(hook_mask & target->hooks))
-@@ -415,7 +415,7 @@ nft_match_set_mtchk_param(struct xt_mtch
+@@ -434,7 +434,7 @@ nft_match_set_mtchk_param(struct xt_mtch
if (nft_is_base_chain(ctx->chain)) {
const struct nft_base_chain *basechain =
nft_base_chain(ctx->chain);
par->hook_mask = 1 << ops->hooknum;
} else {
-@@ -566,7 +566,7 @@ static int nft_match_validate(const stru
+@@ -586,7 +586,7 @@ static int nft_match_validate(const stru
if (nft_is_base_chain(ctx->chain)) {
const struct nft_base_chain *basechain =
nft_base_chain(ctx->chain);
if (par.target->destroy != NULL)
par.target->destroy(&par);
-@@ -390,7 +390,7 @@ nft_match_set_mtchk_param(struct xt_mtch
+@@ -409,7 +409,7 @@ nft_match_set_mtchk_param(struct xt_mtch
{
par->net = ctx->net;
par->table = ctx->table->name;
case AF_INET:
entry->e4.ip.proto = proto;
entry->e4.ip.invflags = inv ? IPT_INV_PROTO : 0;
-@@ -421,7 +421,7 @@ nft_match_set_mtchk_param(struct xt_mtch
+@@ -440,7 +440,7 @@ nft_match_set_mtchk_param(struct xt_mtch
} else {
par->hook_mask = 0;
}
par->nft_compat = true;
}
-@@ -504,7 +504,7 @@ __nft_match_destroy(const struct nft_ctx
+@@ -523,7 +523,7 @@ __nft_match_destroy(const struct nft_ctx
par.net = ctx->net;
par.match = match;
par.matchinfo = info;
if (par.match->destroy != NULL)
par.match->destroy(&par);
-@@ -734,7 +734,7 @@ nft_match_select_ops(const struct nft_ct
+@@ -754,7 +754,7 @@ nft_match_select_ops(const struct nft_ct
mt_name = nla_data(tb[NFTA_MATCH_NAME]);
rev = ntohl(nla_get_be32(tb[NFTA_MATCH_REV]));
/* Re-use the existing match if it's already loaded. */
list_for_each_entry(nft_match, &nft_match_list, head) {
-@@ -825,7 +825,7 @@ nft_target_select_ops(const struct nft_c
+@@ -845,7 +845,7 @@ nft_target_select_ops(const struct nft_c
tg_name = nla_data(tb[NFTA_TARGET_NAME]);
rev = ntohl(nla_get_be32(tb[NFTA_TARGET_REV]));
errors per {size} bytes".
--- a/drivers/mtd/maps/physmap_of_core.c
+++ b/drivers/mtd/maps/physmap_of_core.c
-@@ -114,37 +114,9 @@ static struct mtd_info *obsolete_probe(s
+@@ -105,37 +105,9 @@ static struct mtd_info *obsolete_probe(s
static const char * const part_probe_types_def[] = {
"cmdlinepart", "RedBoot", "ofpart", "ofoldpart", NULL };
const struct of_device_id *match;
struct device_node *dp = dev->dev.of_node;
struct resource res;
-@@ -310,14 +282,8 @@ static int of_flash_probe(struct platfor
+@@ -293,14 +265,8 @@ static int of_flash_probe(struct platfor
info->cmtd->dev.parent = &dev->dev;
mtd_set_of_node(info->cmtd, dp);
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
-@@ -1292,11 +1292,13 @@ struct opp_table *dev_pm_opp_set_regulat
+@@ -1280,11 +1280,13 @@ struct opp_table *dev_pm_opp_set_regulat
if (!opp_table)
return ERR_PTR(-ENOMEM);
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
-@@ -1620,6 +1620,83 @@ put_table:
+@@ -1608,6 +1608,83 @@ put_table:
}
/**
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
-@@ -131,6 +131,27 @@ unsigned long dev_pm_opp_get_freq(struct
+@@ -126,6 +126,27 @@ unsigned long dev_pm_opp_get_freq(struct
}
EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq);
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
-@@ -1664,6 +1664,7 @@ int dev_pm_opp_adjust_voltage(struct dev
+@@ -1652,6 +1652,7 @@ int dev_pm_opp_adjust_voltage(struct dev
struct opp_table *opp_table;
struct dev_pm_opp *new_opp, *tmp_opp, *opp = ERR_PTR(-ENODEV);
int r = 0;
/* keep the node allocated */
new_opp = kmalloc(sizeof(*new_opp), GFP_KERNEL);
-@@ -1700,6 +1701,10 @@ int dev_pm_opp_adjust_voltage(struct dev
+@@ -1688,6 +1689,10 @@ int dev_pm_opp_adjust_voltage(struct dev
/* plug in new node */
new_opp->supplies[0].u_volt = u_volt;
reg &= ~DWC3_DCTL_INITU2ENA;
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
-@@ -3211,6 +3211,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3220,6 +3220,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
{
int ret;
int irq;
irq = dwc3_gadget_get_irq(dwc);
if (irq < 0) {
-@@ -3290,6 +3291,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3299,6 +3300,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
kvmppc_booke_queue_irqprio(vcpu, BOOKE_IRQPRIO_DECREMENTER);
--- a/virt/kvm/arm/mmu.c
+++ b/virt/kvm/arm/mmu.c
-@@ -1027,9 +1027,11 @@ static int stage2_pmdp_test_and_clear_yo
+@@ -1028,9 +1028,11 @@ static int stage2_pmdp_test_and_clear_yo
* @guest_ipa: The IPA at which to insert the mapping
* @pa: The physical address of the device
* @size: The size of the mapping
{
phys_addr_t addr, end;
int ret = 0;
-@@ -1040,7 +1042,7 @@ int kvm_phys_addr_ioremap(struct kvm *kv
+@@ -1041,7 +1043,7 @@ int kvm_phys_addr_ioremap(struct kvm *kv
pfn = __phys_to_pfn(pa);
for (addr = guest_ipa; addr < end; addr += PAGE_SIZE) {
if (writable)
pte = kvm_s2pte_mkwrite(pte);
-@@ -1064,6 +1066,30 @@ out:
+@@ -1065,6 +1067,30 @@ out:
return ret;
}
static bool transparent_hugepage_adjust(kvm_pfn_t *pfnp, phys_addr_t *ipap)
{
kvm_pfn_t pfn = *pfnp;
-@@ -1340,6 +1366,18 @@ static int user_mem_abort(struct kvm_vcp
+@@ -1341,6 +1367,18 @@ static int user_mem_abort(struct kvm_vcp
hugetlb = true;
gfn = (fault_ipa & PMD_MASK) >> PAGE_SHIFT;
} else {
/*
* Pages belonging to memslots that don't have the same
* alignment for userspace and IPA cannot be mapped using
-@@ -1381,6 +1419,11 @@ static int user_mem_abort(struct kvm_vcp
+@@ -1382,6 +1420,11 @@ static int user_mem_abort(struct kvm_vcp
if (is_error_noslot_pfn(pfn))
return -EFAULT;
if (kvm_is_device_pfn(pfn)) {
mem_type = PAGE_S2_DEVICE;
flags |= KVM_S2PTE_FLAG_IS_IOMAP;
-@@ -1917,6 +1960,9 @@ int kvm_arch_prepare_memory_region(struc
+@@ -1918,6 +1961,9 @@ int kvm_arch_prepare_memory_region(struc
gpa_t gpa = mem->guest_phys_addr +
(vm_start - mem->userspace_addr);
phys_addr_t pa;
pa = (phys_addr_t)vma->vm_pgoff << PAGE_SHIFT;
pa += vm_start - vma->vm_start;
-@@ -1927,9 +1973,13 @@ int kvm_arch_prepare_memory_region(struc
+@@ -1928,9 +1974,13 @@ int kvm_arch_prepare_memory_region(struc
goto out;
}
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_platform.h>
-@@ -205,6 +206,9 @@ static int of_flash_probe(struct platfor
+@@ -197,6 +198,9 @@ static int of_flash_probe(struct platfor
info->list[i].map.bankwidth = be32_to_cpup(width);
info->list[i].map.device_node = dp;
#endif /* __UAPI_LINUX_PCITEST_H */
--- a/tools/pci/pcitest.c
+++ b/tools/pci/pcitest.c
-@@ -31,12 +31,17 @@
+@@ -30,12 +30,17 @@
#define BILLION 1E9
static char *result[] = { "NOT OKAY", "OKAY" };
bool read;
bool write;
bool copy;
-@@ -65,6 +70,24 @@ static int run_test(struct pci_test *tes
+@@ -62,6 +67,24 @@ static int run_test(struct pci_test *tes
fprintf(stdout, "%s\n", result[ret]);
}
if (test->legacyirq) {
ret = ioctl(fd, PCITEST_LEGACY_IRQ, 0);
fprintf(stdout, "LEGACY IRQ:\t");
-@@ -83,6 +106,15 @@ static int run_test(struct pci_test *tes
+@@ -80,6 +103,15 @@ static int run_test(struct pci_test *tes
fprintf(stdout, "%s\n", result[ret]);
}
if (test->write) {
ret = ioctl(fd, PCITEST_WRITE, test->size);
fprintf(stdout, "WRITE (%7ld bytes):\t\t", test->size);
-@@ -133,7 +165,7 @@ int main(int argc, char **argv)
+@@ -130,7 +162,7 @@ int main(int argc, char **argv)
/* set default endpoint device */
test->device = "/dev/pci-endpoint-test.0";
switch (c) {
case 'D':
test->device = optarg;
-@@ -151,6 +183,20 @@ int main(int argc, char **argv)
+@@ -148,6 +180,20 @@ int main(int argc, char **argv)
if (test->msinum < 1 || test->msinum > 32)
goto usage;
continue;
case 'r':
test->read = true;
continue;
-@@ -173,6 +219,9 @@ usage:
+@@ -170,6 +216,9 @@ usage:
"\t-D <dev> PCI endpoint test device {default: /dev/pci-endpoint-test.0}\n"
"\t-b <bar num> BAR test (bar number between 0..5)\n"
"\t-m <msi num> MSI test (msi number between 1..32)\n"
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
-@@ -67,7 +67,7 @@ obj-$(CONFIG_ARCH_MXC) += imx/
- obj-$(CONFIG_MACH_INGENIC) += ingenic/
+@@ -68,7 +68,7 @@ obj-$(CONFIG_MACH_INGENIC) += ingenic/
+ obj-$(CONFIG_ARCH_K3) += keystone/
obj-$(CONFIG_ARCH_KEYSTONE) += keystone/
obj-$(CONFIG_MACH_LOONGSON32) += loongson1/
-obj-$(CONFIG_ARCH_MEDIATEK) += mediatek/
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
-@@ -492,6 +492,13 @@ config SATA_VITESSE
+@@ -493,6 +493,13 @@ config SATA_VITESSE
If unsure, say N.
+};
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
-@@ -863,6 +863,11 @@ config I2C_RK3X
+@@ -864,6 +864,11 @@ config I2C_RK3X
This driver can also be built as a module. If so, the module will
be called i2c-rk3x.
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
-@@ -868,6 +868,11 @@ config I2C_RALINK
+@@ -869,6 +869,11 @@ config I2C_RALINK
depends on RALINK && !SOC_MT7621
select OF_I2C