LINUX_VERSION-3.18 = .43
LINUX_VERSION-4.4 = .47
-LINUX_VERSION-4.9 = .8
+LINUX_VERSION-4.9 = .10
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
LINUX_KERNEL_HASH-4.4.47 = ce0ac0016f37ba3e9bc8ad3765933b61c4072fcfe4c44804fc7b308cd7f94de7
-LINUX_KERNEL_HASH-4.9.8 = 150bb7f2dd4849b5d21b8ccd8d05294a48229e1fcb93a22e7b806a79ec0b0e45
+LINUX_KERNEL_HASH-4.9.10 = bd6e05476fd8d9ea4945e11598d87bc97806bbc8d03556abbaaf809707661525
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -87,6 +87,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4709-netgear-r7000.dtb \
bcm4709-netgear-r8000.dtb \
bcm47094-dlink-dir-885l.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -82,6 +82,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -92,6 +92,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm94709.dtb \
bcm953012er.dtb \
bcm953012k.dtb
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -65,6 +65,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4708-asus-rt-ac56u.dtb \
bcm4708-asus-rt-ac68u.dtb \
bcm4708-buffalo-wzr-1750dhp.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -78,6 +78,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -88,6 +88,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4709-netgear-r7000.dtb \
bcm4709-netgear-r8000.dtb \
bcm47094-dlink-dir-885l.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -87,6 +87,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4709-buffalo-wxr-1900dhp.dtb \
bcm4709-netgear-r7000.dtb \
bcm4709-netgear-r8000.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -83,6 +83,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47081-asus-rt-n18u.dtb \
bcm47081-buffalo-wzr-600dhp2.dtb \
bcm47081-buffalo-wzr-900dhp.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -74,6 +74,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -84,6 +84,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47081-buffalo-wzr-600dhp2.dtb \
bcm47081-buffalo-wzr-900dhp.dtb \
bcm47081-luxul-xap-1410.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -87,6 +87,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47081-luxul-xwr-1200.dtb \
bcm4709-asus-rt-ac87u.dtb \
bcm4709-buffalo-wxr-1900dhp.dtb \
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -65,6 +65,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4708-asus-rt-ac56u.dtb \
bcm4708-asus-rt-ac68u.dtb \
bcm4708-buffalo-wzr-1750dhp.dtb \
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
-@@ -38,12 +38,18 @@ static const struct xhci_driver_override
+@@ -56,12 +56,18 @@ static int xhci_priv_init_quirk(struct u
static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
{
/* called during probe() after chip reset completes */
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -152,6 +152,49 @@ static int xhci_start(struct xhci_hcd *x
+@@ -153,6 +153,49 @@ static int xhci_start(struct xhci_hcd *x
return ret;
}
/*
* Reset a halted HC.
*
-@@ -568,10 +611,20 @@ int xhci_init(struct usb_hcd *hcd)
+@@ -565,10 +608,20 @@ int xhci_init(struct usb_hcd *hcd)
static int xhci_run_finished(struct xhci_hcd *xhci)
{
xhci->shared_hcd->state = HC_STATE_RUNNING;
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
-@@ -581,6 +634,10 @@ static int xhci_run_finished(struct xhci
+@@ -578,6 +631,10 @@ static int xhci_run_finished(struct xhci
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Finished xhci_run for USB3 roothub");
return 0;
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1635,6 +1635,7 @@ struct xhci_hcd {
- #define XHCI_BROKEN_STREAMS (1 << 19)
- #define XHCI_PME_STUCK_QUIRK (1 << 20)
+@@ -1657,6 +1657,7 @@ struct xhci_hcd {
+ #define XHCI_SSIC_PORT_UNUSED (1 << 22)
+ #define XHCI_NO_64BIT_SUPPORT (1 << 23)
#define XHCI_MISSING_CAS (1 << 24)
+#define XHCI_FAKE_DOORBELL (1 << 25)
unsigned int num_active_eps;
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -80,6 +80,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -90,6 +90,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4709-buffalo-wxr-1900dhp.dtb \
bcm4709-linksys-ea9200.dtb \
bcm4709-netgear-r7000.dtb \
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -875,6 +875,18 @@ static const struct flash_info *spi_nor_
+@@ -1190,6 +1190,18 @@ static const struct flash_info *spi_nor_
}
- dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %2x, %2x\n",
+ dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
id[0], id[1], id[2]);
+
+ tmp = nor->read_reg(nor, 0x90, id, SPI_NOR_MAX_ID_LEN);
if (err == -ENOENT) {
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
-@@ -14,6 +14,7 @@
+@@ -17,6 +17,7 @@
#include <linux/smp.h>
#include <linux/cpu.h>
#include <linux/cpu_pm.h>
#include <linux/clockchips.h>
#include <linux/clocksource.h>
#include <linux/interrupt.h>
-@@ -376,6 +377,16 @@ arch_timer_detect_rate(void __iomem *cnt
+@@ -513,6 +514,16 @@ arch_timer_detect_rate(void __iomem *cnt
arch_timer_rate = arch_timer_get_cntfrq();
}
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
-@@ -5629,7 +5629,7 @@ int __init cgroup_init_early(void)
+@@ -5626,7 +5626,7 @@ int __init cgroup_init_early(void)
return 0;
}
/**
* cgroup_init - cgroup initialization
-@@ -6166,6 +6166,28 @@ static int __init cgroup_no_v1(char *str
+@@ -6163,6 +6163,28 @@ static int __init cgroup_no_v1(char *str
}
__setup("cgroup_no_v1=", cgroup_no_v1);
+static int cns3xxx_l2x0_enable = 1;
+
+static int __init cns3xxx_l2x0_disable(char *s)
- {
-- void __iomem *base = ioremap(CNS3XXX_L2C_BASE, SZ_4K);
++{
+ cns3xxx_l2x0_enable = 0;
+ return 1;
+}
+__setup("nol2x0", cns3xxx_l2x0_disable);
+
+static int __init cns3xxx_l2x0_init(void)
-+{
+ {
+- void __iomem *base = ioremap(CNS3XXX_L2C_BASE, SZ_4K);
+ void __iomem *base;
u32 val;
+++ /dev/null
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Subject: [PATCH] Revert "bcma: init serial console directly from ChipCommon
- code"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This reverts commit 4c81acab3816 ("bcma: init serial console directly
-from ChipCommon code") as it broke IRQ assignment. Getting IRQ with
-bcma_core_irq helper on SoC requires MIPS core to be set. It happens
-*after* ChipCommon initialization so we can't do this so early.
-
-This fixes a user reported regression. It wasn't critical as serial was
-still somehow working but lack of IRQs was making in unreliable.
-
-Fixes: 4c81acab3816 ("bcma: init serial console directly from ChipCommon code")
-Reported-by: Felix Fietkau <nbd@nbd.name>
-Cc: stable@vger.kernel.org # 4.6+
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
----
- drivers/bcma/bcma_private.h | 3 +++
- drivers/bcma/driver_chipcommon.c | 11 +++--------
- drivers/bcma/driver_mips.c | 3 +++
- 3 files changed, 9 insertions(+), 8 deletions(-)
-
---- a/drivers/bcma/bcma_private.h
-+++ b/drivers/bcma/bcma_private.h
-@@ -45,6 +45,9 @@ int bcma_sprom_get(struct bcma_bus *bus)
- void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc);
- void bcma_core_chipcommon_init(struct bcma_drv_cc *cc);
- void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable);
-+#ifdef CONFIG_BCMA_DRIVER_MIPS
-+void bcma_chipco_serial_init(struct bcma_drv_cc *cc);
-+#endif /* CONFIG_BCMA_DRIVER_MIPS */
-
- /* driver_chipcommon_b.c */
- int bcma_core_chipcommon_b_init(struct bcma_drv_cc_b *ccb);
---- a/drivers/bcma/driver_chipcommon.c
-+++ b/drivers/bcma/driver_chipcommon.c
-@@ -15,8 +15,6 @@
- #include <linux/platform_device.h>
- #include <linux/bcma/bcma.h>
-
--static void bcma_chipco_serial_init(struct bcma_drv_cc *cc);
--
- static inline u32 bcma_cc_write32_masked(struct bcma_drv_cc *cc, u16 offset,
- u32 mask, u32 value)
- {
-@@ -186,9 +184,6 @@ void bcma_core_chipcommon_early_init(str
- if (cc->capabilities & BCMA_CC_CAP_PMU)
- bcma_pmu_early_init(cc);
-
-- if (IS_BUILTIN(CONFIG_BCM47XX) && bus->hosttype == BCMA_HOSTTYPE_SOC)
-- bcma_chipco_serial_init(cc);
--
- if (bus->hosttype == BCMA_HOSTTYPE_SOC)
- bcma_core_chipcommon_flash_detect(cc);
-
-@@ -378,9 +373,9 @@ u32 bcma_chipco_gpio_pulldown(struct bcm
- return res;
- }
-
--static void bcma_chipco_serial_init(struct bcma_drv_cc *cc)
-+#ifdef CONFIG_BCMA_DRIVER_MIPS
-+void bcma_chipco_serial_init(struct bcma_drv_cc *cc)
- {
--#if IS_BUILTIN(CONFIG_BCM47XX)
- unsigned int irq;
- u32 baud_base;
- u32 i;
-@@ -422,5 +417,5 @@ static void bcma_chipco_serial_init(stru
- ports[i].baud_base = baud_base;
- ports[i].reg_shift = 0;
- }
--#endif /* CONFIG_BCM47XX */
- }
-+#endif /* CONFIG_BCMA_DRIVER_MIPS */
---- a/drivers/bcma/driver_mips.c
-+++ b/drivers/bcma/driver_mips.c
-@@ -278,9 +278,12 @@ static void bcma_core_mips_nvram_init(st
-
- void bcma_core_mips_early_init(struct bcma_drv_mips *mcore)
- {
-+ struct bcma_bus *bus = mcore->core->bus;
-+
- if (mcore->early_setup_done)
- return;
-
-+ bcma_chipco_serial_init(&bus->drv_cc);
- bcma_core_mips_nvram_init(mcore);
-
- mcore->early_setup_done = true;
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2891,6 +2891,20 @@
+@@ -2891,6 +2891,20 @@ config MIPS_O32_FP64_SUPPORT
If unsure, say N.
select OF
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
-@@ -287,7 +287,7 @@
+@@ -287,7 +287,7 @@ OBJCOPYFLAGS += --remove-section=.regin
head-y := arch/mips/kernel/head.o
libs-y += arch/mips/lib/
core-y += arch/mips/
--- a/arch/mips/include/asm/fpu.h
+++ b/arch/mips/include/asm/fpu.h
-@@ -227,8 +227,10 @@
+@@ -227,8 +227,10 @@ static inline int init_fpu(void)
/* Restore FRE */
write_c0_config5(config5);
enable_fpu_hazard();
#ifdef CONFIG_DEBUG_FS
struct mips_fpu_emulator_stats {
-@@ -63,6 +64,16 @@
+@@ -63,6 +64,16 @@ do { \
extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
struct mips_fpu_struct *ctx, int has_fpu,
void *__user *fault_addr);
int process_fpemu_return(int sig, void __user *fault_addr,
--- a/arch/mips/include/asm/dsemul.h
+++ b/arch/mips/include/asm/dsemul.h
-@@ -41,6 +41,7 @@
+@@ -41,6 +41,7 @@ struct task_struct;
extern int mips_dsemul(struct pt_regs *regs, mips_instruction ir,
unsigned long branch_pc, unsigned long cont_pc);
/**
* do_dsemulret() - Return from a delay slot 'emulation' frame
* @xcp: User thread register context.
-@@ -88,5 +89,27 @@
+@@ -88,5 +89,27 @@ extern bool dsemul_thread_rollback(struc
* before @mm is freed in order to avoid memory leaks.
*/
extern void dsemul_mm_cleanup(struct mm_struct *mm);
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
-@@ -4961,6 +4974,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4963,6 +4976,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0)
return NULL;
}
qc = __ata_qc_from_tag(ap, tag);
qc->tag = tag;
-@@ -5863,6 +5879,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5865,6 +5881,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
ata_sff_port_init(ap);
return ap;
-@@ -5884,6 +5903,12 @@ static void ata_host_release(struct devi
+@@ -5886,6 +5905,12 @@ static void ata_host_release(struct devi
kfree(ap->pmp_link);
kfree(ap->slave_link);
kfree(ap);
host->ports[i] = NULL;
}
-@@ -6330,7 +6355,23 @@ int ata_host_register(struct ata_host *h
+@@ -6332,7 +6357,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}
--- a/drivers/net/ethernet/Kconfig
+++ b/drivers/net/ethernet/Kconfig
-@@ -107,7 +107,7 @@
+@@ -107,7 +107,7 @@ config LANTIQ_ETOP
Support for the MII0 inside the Lantiq SoC
source "drivers/net/ethernet/marvell/Kconfig"
source "drivers/net/ethernet/microchip/Kconfig"
--- a/drivers/net/ethernet/Makefile
+++ b/drivers/net/ethernet/Makefile
-@@ -47,7 +47,7 @@
+@@ -47,7 +47,7 @@ obj-$(CONFIG_JME) += jme.o
obj-$(CONFIG_KORINA) += korina.o
obj-$(CONFIG_LANTIQ_ETOP) += lantiq_etop.o
obj-$(CONFIG_NET_VENDOR_MARVELL) += marvell/
#define PPLL_DRV 0xa0
#define PDRV_SW_SET (1<<31)
-@@ -121,7 +120,7 @@
+@@ -121,7 +120,7 @@ static int wait_pciephy_busy(void)
else
break;
if (retry++ > WAITRETRY_MAX) {
+ if (chosen_dtb)
+ strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
- of_scan_flat_dt(early_init_dt_find_memory, NULL);
- if (memory_dtb)
+ strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
+
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -85,6 +85,9 @@ EXPORT(__image_cmdline)
--- a/arch/mips/ralink/rt3883.c
+++ b/arch/mips/ralink/rt3883.c
-@@ -63,16 +63,6 @@
+@@ -63,16 +63,6 @@ static struct rt2880_pmx_group rt3883_pi
{ 0 }
};
void __init ralink_clk_init(void)
{
unsigned long cpu_rate, sys_rate;
-@@ -157,5 +147,5 @@
+@@ -157,5 +147,5 @@ void prom_soc_init(struct ralink_soc_inf
rt2880_pinmux_data = rt3883_pinmux_data;