From fb7ea71c15d2bccb8cc6383d3a08921b79713712 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 26 Mar 2017 12:22:27 +0200 Subject: [PATCH] kernel: update kernel 4.9 to 4.9.17 Signed-off-by: Hauke Mehrtens --- include/kernel-version.mk | 4 +- ...de-for-using-the-closed-firmware-for.patch | 8 +- ...cm2835-Fix-fixed_divider-of-pllh_aux.patch | 27 ----- ...dd-fragment-shader-threading-support.patch | 2 +- ...-between-page-flip-completion-event-.patch | 93 -------------- ...k_select-setting-for-the-VEC-encoder.patch | 113 ------------------ ...-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch | 2 +- .../021-bridge-multicast-to-unicast.patch | 2 +- ...ge_allow_receiption_on_disabled_port.patch | 4 +- .../patches-4.9/630-packet_socket_type.patch | 6 +- .../640-bridge-only-accept-EAP-locally.patch | 2 +- .../patches-4.9/641-bridge_port_isolate.patch | 2 +- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 8 +- .../generic/patches-4.9/721-phy_packets.patch | 2 +- .../810-pci_disable_common_quirks.patch | 6 +- ...cpufreq-qcom-independent-core-clocks.patch | 1 - ...-dt-Handle-OPP-voltage-adjust-events.patch | 4 +- ...-dt-Add-L2-frequency-scaling-support.patch | 2 +- .../0026-NET-multi-phy-support.patch | 6 +- .../0001-NET-multi-phy-support.patch | 6 +- ...-a-hook-for-link-up-link-down-events.patch | 18 +-- ...move-phy-MMD-accessors-to-phy-core.c.patch | 2 +- ...etting-unsupported-EEE-advertisments.patch | 2 +- ...phy-autonegotiation-after-EEE-advert.patch | 2 +- ...allow-EEE-with-SGMII-interface-modes.patch | 2 +- ...up-clause-45-autonegotiation-restart.patch | 2 +- ...d-base-device-tree-for-Pistachio-SoC.patch | 8 -- ...img-add-device-tree-for-Marduk-board.patch | 12 -- ...PS-DTS-add-img-directory-to-Makefile.patch | 5 - ...ine-img-mdc-Handle-early-status-read.patch | 7 +- ...mg-spfi-Implement-dual-and-quad-mode.patch | 13 +- ...-device-select-bits-for-SPFI-port-st.patch | 7 +- ...-device-0-configuration-for-all-devi.patch | 9 +- ...i-RX-maximum-burst-size-for-DMA-is-8.patch | 9 +- ...g-spfi-finish-every-transfer-cleanly.patch | 15 +-- ...y-programming-min-delta-up-to-10-tim.patch | 7 +- ...istachio-Fix-wrong-SDHost-card-speed.patch | 11 +- ...-img-marduk-switch-mmc-to-1-bit-mode.patch | 5 - ...or-support-mtd-name-from-device-tree.patch | 9 +- ...ength-of-ID-before-reading-bits-per-.patch | 7 +- ...JEDEC-manufacturer-ID-for-Gigadevice.patch | 11 +- ...413-mtd-Introduce-SPI-NAND-framework.patch | 23 +--- ...mtd-spi-nand-Support-Gigadevice-GD5F.patch | 10 -- .../701-net-micrel-Disable-PME.patch | 9 +- ...TS-img-marduk-add-nor-partition-name.patch | 5 - ...S-img-marduk-add-nand-device-support.patch | 5 - ...0031-uvc-add-iPassion-iP2970-support.patch | 2 +- .../0034-NET-multi-phy-support.patch | 6 +- .../patches-4.9/0068-fix-ralink-prom.patch | 30 ----- .../ramips/patches-4.9/0098-disable_cm.patch | 6 +- ...0720-arch-mips-ralink-add-i2c-clocks.patch | 6 +- .../ramips/patches-4.9/301-fix-rt3883.patch | 19 +-- 52 files changed, 84 insertions(+), 500 deletions(-) delete mode 100644 target/linux/brcm2708/patches-4.9/950-0151-clk-bcm2835-Fix-fixed_divider-of-pllh_aux.patch delete mode 100644 target/linux/brcm2708/patches-4.9/950-0166-drm-vc4-Fix-race-between-page-flip-completion-event-.patch delete mode 100644 target/linux/brcm2708/patches-4.9/950-0167-drm-vc4-Fix-clock_select-setting-for-the-VEC-encoder.patch delete mode 100644 target/linux/ramips/patches-4.9/0068-fix-ralink-prom.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index e015b94cfbf0..587c25e52e44 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -4,11 +4,11 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .43 LINUX_VERSION-4.4 = .56 -LINUX_VERSION-4.9 = .14 +LINUX_VERSION-4.9 = .17 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c LINUX_KERNEL_HASH-4.4.56 = 55181e24869e4b550ef756eecd1ab4f6774228c457f4830e9e779c6db4c2a2b6 -LINUX_KERNEL_HASH-4.9.14 = 534d343f4ca5c55d7214694a2a378897e8ee2adf576563f069da010093b3b640 +LINUX_KERNEL_HASH-4.9.17 = 9095c16550ebae9cbe0979a706116d95fbd8d270c1068857c4a8788de0f9ac7f ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch b/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch index 88952dc0c0da..789f0013a5ba 100644 --- a/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch +++ b/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch @@ -26,7 +26,7 @@ Signed-off-by: Eric Anholt vc4_hdmi.o \ --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -163,6 +163,9 @@ int vc4_crtc_get_scanoutpos(struct drm_d +@@ -162,6 +162,9 @@ int vc4_crtc_get_scanoutpos(struct drm_d int vblank_lines; int ret = 0; @@ -36,7 +36,7 @@ Signed-off-by: Eric Anholt /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */ /* Get optional system timestamp before query. */ -@@ -656,6 +659,11 @@ int vc4_enable_vblank(struct drm_device +@@ -655,6 +658,11 @@ int vc4_enable_vblank(struct drm_device struct vc4_dev *vc4 = to_vc4_dev(dev); struct vc4_crtc *vc4_crtc = vc4->crtc[crtc_id]; @@ -48,7 +48,7 @@ Signed-off-by: Eric Anholt CRTC_WRITE(PV_INTEN, PV_INT_VFP_START); return 0; -@@ -666,6 +674,11 @@ void vc4_disable_vblank(struct drm_devic +@@ -665,6 +673,11 @@ void vc4_disable_vblank(struct drm_devic struct vc4_dev *vc4 = to_vc4_dev(dev); struct vc4_crtc *vc4_crtc = vc4->crtc[crtc_id]; @@ -82,7 +82,7 @@ Signed-off-by: Eric Anholt struct vc4_hdmi *hdmi; struct vc4_hvs *hvs; struct vc4_crtc *crtc[3]; -@@ -460,6 +463,10 @@ void __iomem *vc4_ioremap_regs(struct pl +@@ -462,6 +465,10 @@ void __iomem *vc4_ioremap_regs(struct pl extern struct platform_driver vc4_dpi_driver; int vc4_dpi_debugfs_regs(struct seq_file *m, void *unused); diff --git a/target/linux/brcm2708/patches-4.9/950-0151-clk-bcm2835-Fix-fixed_divider-of-pllh_aux.patch b/target/linux/brcm2708/patches-4.9/950-0151-clk-bcm2835-Fix-fixed_divider-of-pllh_aux.patch deleted file mode 100644 index 82f462847b87..000000000000 --- a/target/linux/brcm2708/patches-4.9/950-0151-clk-bcm2835-Fix-fixed_divider-of-pllh_aux.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b8ded4dca34feafd33f22eff47d19b17b7dd83f4 Mon Sep 17 00:00:00 2001 -From: Boris Brezillon -Date: Tue, 22 Nov 2016 12:45:28 -0800 -Subject: [PATCH] clk: bcm2835: Fix ->fixed_divider of pllh_aux - -There is no fixed divider on pllh_aux. - -Signed-off-by: Boris Brezillon -Signed-off-by: Eric Anholt -Reviewed-by: Eric Anholt -Signed-off-by: Stephen Boyd -(cherry picked from commit f2a46926aba1f0c33944901d2420a6a887455ddc) ---- - drivers/clk/bcm/clk-bcm2835.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/clk/bcm/clk-bcm2835.c -+++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1607,7 +1607,7 @@ static const struct bcm2835_clk_desc clk - .a2w_reg = A2W_PLLH_AUX, - .load_mask = CM_PLLH_LOADAUX, - .hold_mask = 0, -- .fixed_divider = 10), -+ .fixed_divider = 1), - [BCM2835_PLLH_PIX] = REGISTER_PLL_DIV( - .name = "pllh_pix", - .source_pll = "pllh", diff --git a/target/linux/brcm2708/patches-4.9/950-0165-drm-vc4-Add-fragment-shader-threading-support.patch b/target/linux/brcm2708/patches-4.9/950-0165-drm-vc4-Add-fragment-shader-threading-support.patch index ea0f4f117745..dd192b94bdb1 100644 --- a/target/linux/brcm2708/patches-4.9/950-0165-drm-vc4-Add-fragment-shader-threading-support.patch +++ b/target/linux/brcm2708/patches-4.9/950-0165-drm-vc4-Add-fragment-shader-threading-support.patch @@ -39,7 +39,7 @@ Signed-off-by: Eric Anholt default: --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -384,6 +384,8 @@ struct vc4_validated_shader_info { +@@ -385,6 +385,8 @@ struct vc4_validated_shader_info { uint32_t num_uniform_addr_offsets; uint32_t *uniform_addr_offsets; diff --git a/target/linux/brcm2708/patches-4.9/950-0166-drm-vc4-Fix-race-between-page-flip-completion-event-.patch b/target/linux/brcm2708/patches-4.9/950-0166-drm-vc4-Fix-race-between-page-flip-completion-event-.patch deleted file mode 100644 index 3c66fefafda1..000000000000 --- a/target/linux/brcm2708/patches-4.9/950-0166-drm-vc4-Fix-race-between-page-flip-completion-event-.patch +++ /dev/null @@ -1,93 +0,0 @@ -From d7f32f81cf7579ac7d13127db88e789ea864824c Mon Sep 17 00:00:00 2001 -From: Derek Foreman -Date: Thu, 24 Nov 2016 12:11:55 -0600 -Subject: [PATCH] drm/vc4: Fix race between page flip completion event and - clean-up - -There was a small window where a userspace program could submit -a pageflip after receiving a pageflip completion event yet still -receive EBUSY. - -Signed-off-by: Derek Foreman -Signed-off-by: Eric Anholt -Reviewed-by: Eric Anholt -Reviewed-by: Daniel Stone -(cherry picked from commit 26fc78f6fef39b9d7a15def5e7e9826ff68303f4) ---- - drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++++++++ - drivers/gpu/drm/vc4/vc4_drv.h | 1 + - drivers/gpu/drm/vc4/vc4_kms.c | 33 +++++++++++++++++++++++++-------- - 3 files changed, 34 insertions(+), 8 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_crtc.c -+++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -682,6 +682,14 @@ void vc4_disable_vblank(struct drm_devic - CRTC_WRITE(PV_INTEN, 0); - } - -+/* Must be called with the event lock held */ -+bool vc4_event_pending(struct drm_crtc *crtc) -+{ -+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); -+ -+ return !!vc4_crtc->event; -+} -+ - static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) - { - struct drm_crtc *crtc = &vc4_crtc->base; ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -445,6 +445,7 @@ int vc4_bo_stats_debugfs(struct seq_file - extern struct platform_driver vc4_crtc_driver; - int vc4_enable_vblank(struct drm_device *dev, unsigned int crtc_id); - void vc4_disable_vblank(struct drm_device *dev, unsigned int crtc_id); -+bool vc4_event_pending(struct drm_crtc *crtc); - int vc4_crtc_debugfs_regs(struct seq_file *m, void *arg); - int vc4_crtc_get_scanoutpos(struct drm_device *dev, unsigned int crtc_id, - unsigned int flags, int *vpos, int *hpos, ---- a/drivers/gpu/drm/vc4/vc4_kms.c -+++ b/drivers/gpu/drm/vc4/vc4_kms.c -@@ -119,17 +119,34 @@ static int vc4_atomic_commit(struct drm_ - - /* Make sure that any outstanding modesets have finished. */ - if (nonblock) { -- ret = down_trylock(&vc4->async_modeset); -- if (ret) { -+ struct drm_crtc *crtc; -+ struct drm_crtc_state *crtc_state; -+ unsigned long flags; -+ bool busy = false; -+ -+ /* -+ * If there's an undispatched event to send then we're -+ * obviously still busy. If there isn't, then we can -+ * unconditionally wait for the semaphore because it -+ * shouldn't be contended (for long). -+ * -+ * This is to prevent a race where queuing a new flip -+ * from userspace immediately on receipt of an event -+ * beats our clean-up and returns EBUSY. -+ */ -+ spin_lock_irqsave(&dev->event_lock, flags); -+ for_each_crtc_in_state(state, crtc, crtc_state, i) -+ busy |= vc4_event_pending(crtc); -+ spin_unlock_irqrestore(&dev->event_lock, flags); -+ if (busy) { - kfree(c); - return -EBUSY; - } -- } else { -- ret = down_interruptible(&vc4->async_modeset); -- if (ret) { -- kfree(c); -- return ret; -- } -+ } -+ ret = down_interruptible(&vc4->async_modeset); -+ if (ret) { -+ kfree(c); -+ return ret; - } - - ret = drm_atomic_helper_prepare_planes(dev, state); diff --git a/target/linux/brcm2708/patches-4.9/950-0167-drm-vc4-Fix-clock_select-setting-for-the-VEC-encoder.patch b/target/linux/brcm2708/patches-4.9/950-0167-drm-vc4-Fix-clock_select-setting-for-the-VEC-encoder.patch deleted file mode 100644 index c2499c130ad5..000000000000 --- a/target/linux/brcm2708/patches-4.9/950-0167-drm-vc4-Fix-clock_select-setting-for-the-VEC-encoder.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 3b162fdf85d89829d58bbee2d7d79987aceaa595 Mon Sep 17 00:00:00 2001 -From: Boris Brezillon -Date: Fri, 2 Dec 2016 14:48:07 +0100 -Subject: [PATCH] drm/vc4: Fix ->clock_select setting for the VEC encoder - -PV_CONTROL_CLK_SELECT_VEC is actually 2 and not 0. Fix the definition and -rework the vc4_set_crtc_possible_masks() to cover the full range of the -PV_CONTROL_CLK_SELECT field. - -Signed-off-by: Boris Brezillon -Signed-off-by: Eric Anholt -(cherry picked from commit ab8df60e3a3b68420d0d4477c5f07c00fbfb078b) ---- - drivers/gpu/drm/vc4/vc4_crtc.c | 38 +++++++++++++++++++++++--------------- - drivers/gpu/drm/vc4/vc4_drv.h | 1 + - drivers/gpu/drm/vc4/vc4_regs.h | 3 ++- - 3 files changed, 26 insertions(+), 16 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_crtc.c -+++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -83,8 +83,7 @@ struct vc4_crtc_data { - /* Which channel of the HVS this pixelvalve sources from. */ - int hvs_channel; - -- enum vc4_encoder_type encoder0_type; -- enum vc4_encoder_type encoder1_type; -+ enum vc4_encoder_type encoder_types[4]; - }; - - #define CRTC_WRITE(offset, val) writel(val, vc4_crtc->regs + (offset)) -@@ -880,20 +879,26 @@ static const struct drm_crtc_helper_func - - static const struct vc4_crtc_data pv0_data = { - .hvs_channel = 0, -- .encoder0_type = VC4_ENCODER_TYPE_DSI0, -- .encoder1_type = VC4_ENCODER_TYPE_DPI, -+ .encoder_types = { -+ [PV_CONTROL_CLK_SELECT_DSI] = VC4_ENCODER_TYPE_DSI0, -+ [PV_CONTROL_CLK_SELECT_DPI_SMI_HDMI] = VC4_ENCODER_TYPE_DPI, -+ }, - }; - - static const struct vc4_crtc_data pv1_data = { - .hvs_channel = 2, -- .encoder0_type = VC4_ENCODER_TYPE_DSI1, -- .encoder1_type = VC4_ENCODER_TYPE_SMI, -+ .encoder_types = { -+ [PV_CONTROL_CLK_SELECT_DSI] = VC4_ENCODER_TYPE_DSI1, -+ [PV_CONTROL_CLK_SELECT_DPI_SMI_HDMI] = VC4_ENCODER_TYPE_SMI, -+ }, - }; - - static const struct vc4_crtc_data pv2_data = { - .hvs_channel = 1, -- .encoder0_type = VC4_ENCODER_TYPE_VEC, -- .encoder1_type = VC4_ENCODER_TYPE_HDMI, -+ .encoder_types = { -+ [PV_CONTROL_CLK_SELECT_DPI_SMI_HDMI] = VC4_ENCODER_TYPE_HDMI, -+ [PV_CONTROL_CLK_SELECT_VEC] = VC4_ENCODER_TYPE_VEC, -+ }, - }; - - static const struct of_device_id vc4_crtc_dt_match[] = { -@@ -907,17 +912,20 @@ static void vc4_set_crtc_possible_masks( - struct drm_crtc *crtc) - { - struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); -+ const struct vc4_crtc_data *crtc_data = vc4_crtc->data; -+ const enum vc4_encoder_type *encoder_types = crtc_data->encoder_types; - struct drm_encoder *encoder; - - drm_for_each_encoder(encoder, drm) { - struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); -+ int i; - -- if (vc4_encoder->type == vc4_crtc->data->encoder0_type) { -- vc4_encoder->clock_select = 0; -- encoder->possible_crtcs |= drm_crtc_mask(crtc); -- } else if (vc4_encoder->type == vc4_crtc->data->encoder1_type) { -- vc4_encoder->clock_select = 1; -- encoder->possible_crtcs |= drm_crtc_mask(crtc); -+ for (i = 0; i < ARRAY_SIZE(crtc_data->encoder_types); i++) { -+ if (vc4_encoder->type == encoder_types[i]) { -+ vc4_encoder->clock_select = i; -+ encoder->possible_crtcs |= drm_crtc_mask(crtc); -+ break; -+ } - } - } - } ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -197,6 +197,7 @@ to_vc4_plane(struct drm_plane *plane) - } - - enum vc4_encoder_type { -+ VC4_ENCODER_TYPE_NONE, - VC4_ENCODER_TYPE_HDMI, - VC4_ENCODER_TYPE_VEC, - VC4_ENCODER_TYPE_DSI0, ---- a/drivers/gpu/drm/vc4/vc4_regs.h -+++ b/drivers/gpu/drm/vc4/vc4_regs.h -@@ -177,8 +177,9 @@ - # define PV_CONTROL_WAIT_HSTART BIT(12) - # define PV_CONTROL_PIXEL_REP_MASK VC4_MASK(5, 4) - # define PV_CONTROL_PIXEL_REP_SHIFT 4 --# define PV_CONTROL_CLK_SELECT_DSI_VEC 0 -+# define PV_CONTROL_CLK_SELECT_DSI 0 - # define PV_CONTROL_CLK_SELECT_DPI_SMI_HDMI 1 -+# define PV_CONTROL_CLK_SELECT_VEC 2 - # define PV_CONTROL_CLK_SELECT_MASK VC4_MASK(3, 2) - # define PV_CONTROL_CLK_SELECT_SHIFT 2 - # define PV_CONTROL_FIFO_CLR BIT(1) diff --git a/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch b/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch index cc78cb447a5a..aae4488f6e83 100644 --- a/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch +++ b/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch @@ -1,6 +1,6 @@ --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c -@@ -2002,7 +2002,8 @@ static void pcie_write_mrrs(struct pci_d +@@ -2003,7 +2003,8 @@ static void pcie_write_mrrs(struct pci_d /* In the "safe" case, do not configure the MRRS. There appear to be * issues with setting MRRS to 0 on a number of devices. */ diff --git a/target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch b/target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch index 79a93425b597..d3b4a62361c4 100644 --- a/target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch +++ b/target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch @@ -81,7 +81,7 @@ Signed-off-by: Linus Lüssing /* called under rcu_read_lock */ void br_flood(struct net_bridge *br, struct sk_buff *skb, enum br_pkt_type pkt_type, bool local_rcv, bool local_orig) -@@ -241,10 +264,20 @@ void br_multicast_flood(struct net_bridg +@@ -242,10 +265,20 @@ void br_multicast_flood(struct net_bridg rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) : NULL; diff --git a/target/linux/generic/patches-4.9/150-bridge_allow_receiption_on_disabled_port.patch b/target/linux/generic/patches-4.9/150-bridge_allow_receiption_on_disabled_port.patch index 062cc87e46b9..a164f6e7ea07 100644 --- a/target/linux/generic/patches-4.9/150-bridge_allow_receiption_on_disabled_port.patch +++ b/target/linux/generic/patches-4.9/150-bridge_allow_receiption_on_disabled_port.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -232,7 +232,8 @@ static int br_handle_local_finish(struct +@@ -233,7 +233,8 @@ static int br_handle_local_finish(struct { struct net_bridge_port *p = br_port_get_rcu(skb->dev); @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau BR_INPUT_SKB_CB(skb)->brdev = p->br->dev; br_pass_frame_up(skb); -@@ -315,6 +316,15 @@ rx_handler_result_t br_handle_frame(stru +@@ -316,6 +317,15 @@ rx_handler_result_t br_handle_frame(stru forward: switch (p->state) { diff --git a/target/linux/generic/patches-4.9/630-packet_socket_type.patch b/target/linux/generic/patches-4.9/630-packet_socket_type.patch index ebfcb2bd31f4..4f093e4c5d3a 100644 --- a/target/linux/generic/patches-4.9/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.9/630-packet_socket_type.patch @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3230,6 +3232,7 @@ static int packet_create(struct net *net +@@ -3234,6 +3236,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3809,6 +3812,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3813,6 +3816,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3861,6 +3874,13 @@ static int packet_getsockopt(struct sock +@@ -3865,6 +3878,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/patches-4.9/640-bridge-only-accept-EAP-locally.patch b/target/linux/generic/patches-4.9/640-bridge-only-accept-EAP-locally.patch index 3202499ed4c6..5fd0e56ce067 100644 --- a/target/linux/generic/patches-4.9/640-bridge-only-accept-EAP-locally.patch +++ b/target/linux/generic/patches-4.9/640-bridge-only-accept-EAP-locally.patch @@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau --- --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -163,11 +163,14 @@ int br_handle_frame_finish(struct net *n +@@ -164,11 +164,14 @@ int br_handle_frame_finish(struct net *n } } diff --git a/target/linux/generic/patches-4.9/641-bridge_port_isolate.patch b/target/linux/generic/patches-4.9/641-bridge_port_isolate.patch index b55fd5db70f7..db9527d06866 100644 --- a/target/linux/generic/patches-4.9/641-bridge_port_isolate.patch +++ b/target/linux/generic/patches-4.9/641-bridge_port_isolate.patch @@ -54,7 +54,7 @@ Isolating individual bridge ports continue; --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -174,6 +174,9 @@ int br_handle_frame_finish(struct net *n +@@ -175,6 +175,9 @@ int br_handle_frame_finish(struct net *n if (IS_ENABLED(CONFIG_INET) && skb->protocol == htons(ETH_P_ARP)) br_do_proxy_arp(skb, br, vid, p); diff --git a/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 90bca022fd72..99d029ce688a 100644 --- a/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4485,6 +4485,9 @@ static enum gro_result dev_gro_receive(s +@@ -4512,6 +4512,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau if (!(skb->dev->features & NETIF_F_GRO)) goto normal; -@@ -5762,6 +5765,48 @@ static void __netdev_adjacent_dev_unlink +@@ -5789,6 +5792,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info) -@@ -5960,6 +6005,8 @@ void netdev_upper_dev_unlink(struct net_ +@@ -5987,6 +6032,8 @@ void netdev_upper_dev_unlink(struct net_ list_for_each_entry(i, &upper_dev->all_adj_list.upper, list) __netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr); @@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6560,6 +6607,7 @@ int dev_set_mac_address(struct net_devic +@@ -6587,6 +6634,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/patches-4.9/721-phy_packets.patch b/target/linux/generic/patches-4.9/721-phy_packets.patch index 46e8574b9bcd..5b4ff07d992d 100644 --- a/target/linux/generic/patches-4.9/721-phy_packets.patch +++ b/target/linux/generic/patches-4.9/721-phy_packets.patch @@ -86,7 +86,7 @@ help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2904,10 +2904,20 @@ static int xmit_one(struct sk_buff *skb, +@@ -2931,10 +2931,20 @@ static int xmit_one(struct sk_buff *skb, if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all)) dev_queue_xmit_nit(skb, dev); diff --git a/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch b/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch index 617bb2410907..99ffb5e3a0a3 100644 --- a/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch +++ b/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch @@ -23,7 +23,7 @@ /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. -@@ -3015,6 +3016,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I +@@ -3016,6 +3017,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); @@ -31,7 +31,7 @@ /* * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To -@@ -3071,6 +3073,8 @@ static void fixup_debug_report(struct pc +@@ -3072,6 +3074,8 @@ static void fixup_debug_report(struct pc } } @@ -40,7 +40,7 @@ /* * Some BIOS implementations leave the Intel GPU interrupts enabled, * even though no one is handling them (f.e. i915 driver is never loaded). -@@ -3105,6 +3109,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN +@@ -3106,6 +3110,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); diff --git a/target/linux/ipq806x/patches-4.9/0046-cpufreq-qcom-independent-core-clocks.patch b/target/linux/ipq806x/patches-4.9/0046-cpufreq-qcom-independent-core-clocks.patch index 1ee8ef538f95..8d2861ce9eea 100644 --- a/target/linux/ipq806x/patches-4.9/0046-cpufreq-qcom-independent-core-clocks.patch +++ b/target/linux/ipq806x/patches-4.9/0046-cpufreq-qcom-independent-core-clocks.patch @@ -54,4 +54,3 @@ Signed-off-by: Hannu Nyman static void __init get_krait_bin_format_a(int *speed, int *pvs, int *pvs_ver) { - diff --git a/target/linux/ipq806x/patches-4.9/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch b/target/linux/ipq806x/patches-4.9/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch index 8c1b75a1ce51..7cd6c6b5a100 100644 --- a/target/linux/ipq806x/patches-4.9/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch +++ b/target/linux/ipq806x/patches-4.9/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch @@ -102,7 +102,7 @@ Signed-off-by: Georgi Djakov cpu_dev = get_cpu_device(policy->cpu); if (!cpu_dev) { -@@ -239,13 +283,29 @@ static int cpufreq_init(struct cpufreq_p +@@ -242,13 +286,29 @@ static int cpufreq_init(struct cpufreq_p goto out_free_opp; } @@ -133,7 +133,7 @@ Signed-off-by: Georgi Djakov } priv->cpu_dev = cpu_dev; -@@ -284,6 +344,8 @@ static int cpufreq_init(struct cpufreq_p +@@ -287,6 +347,8 @@ static int cpufreq_init(struct cpufreq_p out_free_cpufreq_table: dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table); diff --git a/target/linux/ipq806x/patches-4.9/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch b/target/linux/ipq806x/patches-4.9/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch index e2d6233031bf..e0ae1f058268 100644 --- a/target/linux/ipq806x/patches-4.9/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch +++ b/target/linux/ipq806x/patches-4.9/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch @@ -63,7 +63,7 @@ Signed-off-by: Georgi Djakov cpu_dev = get_cpu_device(policy->cpu); if (!cpu_dev) { -@@ -318,6 +350,13 @@ static int cpufreq_init(struct cpufreq_p +@@ -321,6 +353,13 @@ static int cpufreq_init(struct cpufreq_p policy->suspend_freq = dev_pm_opp_get_freq(suspend_opp) / 1000; rcu_read_unlock(); diff --git a/target/linux/lantiq/patches-4.9/0026-NET-multi-phy-support.patch b/target/linux/lantiq/patches-4.9/0026-NET-multi-phy-support.patch index b99670fcb5f4..a25e87a9cc02 100644 --- a/target/linux/lantiq/patches-4.9/0026-NET-multi-phy-support.patch +++ b/target/linux/lantiq/patches-4.9/0026-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -996,7 +996,8 @@ void phy_state_machine(struct work_struc +@@ -1000,7 +1000,8 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -21,7 +21,7 @@ Signed-off-by: John Crispin phydev->adjust_link(phydev->attached_dev); break; } -@@ -1079,7 +1080,8 @@ void phy_state_machine(struct work_struc +@@ -1083,7 +1084,8 @@ void phy_state_machine(struct work_struc netif_carrier_on(phydev->attached_dev); } else { phydev->state = PHY_NOLINK; @@ -31,7 +31,7 @@ Signed-off-by: John Crispin } phydev->adjust_link(phydev->attached_dev); -@@ -1091,7 +1093,8 @@ void phy_state_machine(struct work_struc +@@ -1095,7 +1097,8 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch b/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch index 91d8792eac6a..92ff5eb3ee5a 100644 --- a/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch +++ b/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -996,7 +996,8 @@ void phy_state_machine(struct work_struc +@@ -1000,7 +1000,8 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -21,7 +21,7 @@ Signed-off-by: John Crispin phydev->adjust_link(phydev->attached_dev); break; } -@@ -1079,7 +1080,8 @@ void phy_state_machine(struct work_struc +@@ -1083,7 +1084,8 @@ void phy_state_machine(struct work_struc netif_carrier_on(phydev->attached_dev); } else { phydev->state = PHY_NOLINK; @@ -31,7 +31,7 @@ Signed-off-by: John Crispin } phydev->adjust_link(phydev->attached_dev); -@@ -1091,7 +1093,8 @@ void phy_state_machine(struct work_struc +@@ -1095,7 +1097,8 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch b/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch index 3e30d4957c5f..1f57cde97fff 100644 --- a/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch +++ b/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch @@ -16,7 +16,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -955,6 +955,16 @@ void phy_start(struct phy_device *phydev +@@ -959,6 +959,16 @@ void phy_start(struct phy_device *phydev } EXPORT_SYMBOL(phy_start); @@ -33,7 +33,7 @@ Signed-off-by: Russell King /** * phy_state_machine - Handle the state machine * @work: work_struct that describes the work to be done -@@ -996,8 +1006,7 @@ void phy_state_machine(struct work_struc +@@ -1000,8 +1010,7 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -43,7 +43,7 @@ Signed-off-by: Russell King break; } -@@ -1009,9 +1018,7 @@ void phy_state_machine(struct work_struc +@@ -1013,9 +1022,7 @@ void phy_state_machine(struct work_struc /* If AN is done, we're running */ if (err > 0) { phydev->state = PHY_RUNNING; @@ -54,7 +54,7 @@ Signed-off-by: Russell King } else if (0 == phydev->link_timeout--) needs_aneg = true; break; -@@ -1036,8 +1043,7 @@ void phy_state_machine(struct work_struc +@@ -1040,8 +1047,7 @@ void phy_state_machine(struct work_struc } } phydev->state = PHY_RUNNING; @@ -64,7 +64,7 @@ Signed-off-by: Russell King } break; case PHY_FORCING: -@@ -1047,13 +1053,12 @@ void phy_state_machine(struct work_struc +@@ -1051,13 +1057,12 @@ void phy_state_machine(struct work_struc if (phydev->link) { phydev->state = PHY_RUNNING; @@ -80,7 +80,7 @@ Signed-off-by: Russell King break; case PHY_RUNNING: /* Only register a CHANGE if we are polling and link changed -@@ -1076,14 +1081,12 @@ void phy_state_machine(struct work_struc +@@ -1080,14 +1085,12 @@ void phy_state_machine(struct work_struc if (phydev->link) { phydev->state = PHY_RUNNING; @@ -97,7 +97,7 @@ Signed-off-by: Russell King if (phy_interrupt_is_valid(phydev)) err = phy_config_interrupt(phydev, PHY_INTERRUPT_ENABLED); -@@ -1091,8 +1094,7 @@ void phy_state_machine(struct work_struc +@@ -1095,8 +1098,7 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; @@ -107,7 +107,7 @@ Signed-off-by: Russell King do_suspend = true; } break; -@@ -1112,11 +1114,11 @@ void phy_state_machine(struct work_struc +@@ -1116,11 +1118,11 @@ void phy_state_machine(struct work_struc if (phydev->link) { phydev->state = PHY_RUNNING; @@ -121,7 +121,7 @@ Signed-off-by: Russell King } else { phydev->state = PHY_AN; phydev->link_timeout = PHY_AN_TIMEOUT; -@@ -1128,11 +1130,11 @@ void phy_state_machine(struct work_struc +@@ -1132,11 +1134,11 @@ void phy_state_machine(struct work_struc if (phydev->link) { phydev->state = PHY_RUNNING; diff --git a/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch b/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch index 970aec1d24d3..40d0afd71d45 100644 --- a/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch +++ b/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch @@ -24,7 +24,7 @@ Signed-off-by: Russell King obj-$(CONFIG_MDIO_BOARDINFO) += mdio-boardinfo.o --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -1171,91 +1171,6 @@ void phy_mac_interrupt(struct phy_device +@@ -1175,91 +1175,6 @@ void phy_mac_interrupt(struct phy_device } EXPORT_SYMBOL(phy_mac_interrupt); diff --git a/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch b/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch index 35479007d06f..421a3082069f 100644 --- a/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch +++ b/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch @@ -30,7 +30,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -1307,11 +1307,16 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); +@@ -1311,11 +1311,16 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); */ int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data) { diff --git a/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch b/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch index 5290e71408c7..7c25c2467c45 100644 --- a/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch +++ b/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch @@ -12,7 +12,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -1307,16 +1307,33 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); +@@ -1311,16 +1311,33 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); */ int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data) { diff --git a/target/linux/mvebu/patches-4.9/405-net-phy-allow-EEE-with-SGMII-interface-modes.patch b/target/linux/mvebu/patches-4.9/405-net-phy-allow-EEE-with-SGMII-interface-modes.patch index db7b00404f54..51d62595d2f6 100644 --- a/target/linux/mvebu/patches-4.9/405-net-phy-allow-EEE-with-SGMII-interface-modes.patch +++ b/target/linux/mvebu/patches-4.9/405-net-phy-allow-EEE-with-SGMII-interface-modes.patch @@ -11,7 +11,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -1191,6 +1191,7 @@ int phy_init_eee(struct phy_device *phyd +@@ -1195,6 +1195,7 @@ int phy_init_eee(struct phy_device *phyd if ((phydev->duplex == DUPLEX_FULL) && ((phydev->interface == PHY_INTERFACE_MODE_MII) || (phydev->interface == PHY_INTERFACE_MODE_GMII) || diff --git a/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch b/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch index 7a16bd596374..d3ee1180c64d 100644 --- a/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch +++ b/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch @@ -37,7 +37,7 @@ Signed-off-by: Russell King /** * phy_aneg_done - return auto-negotiation status -@@ -1403,3 +1421,14 @@ int phy_ethtool_set_link_ksettings(struc +@@ -1407,3 +1425,14 @@ int phy_ethtool_set_link_ksettings(struc return phy_ethtool_ksettings_set(phydev, cmd); } EXPORT_SYMBOL(phy_ethtool_set_link_ksettings); diff --git a/target/linux/pistachio/patches-4.9/001-MIPS-DTS-Add-base-device-tree-for-Pistachio-SoC.patch b/target/linux/pistachio/patches-4.9/001-MIPS-DTS-Add-base-device-tree-for-Pistachio-SoC.patch index 54d7f86f6719..35aa5536f881 100644 --- a/target/linux/pistachio/patches-4.9/001-MIPS-DTS-Add-base-device-tree-for-Pistachio-SoC.patch +++ b/target/linux/pistachio/patches-4.9/001-MIPS-DTS-Add-base-device-tree-for-Pistachio-SoC.patch @@ -43,8 +43,6 @@ Signed-off-by: Ralf Baechle 2 files changed, 925 insertions(+), 1 deletion(-) create mode 100644 arch/mips/boot/dts/img/pistachio.dtsi -diff --git a/MAINTAINERS b/MAINTAINERS -index 63cefa6..f0037c7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9569,7 +9569,7 @@ L: linux-mips@linux-mips.org @@ -56,9 +54,6 @@ index 63cefa6..f0037c7 100644 F: arch/mips/configs/pistachio*_defconfig PKTCDVD DRIVER -diff --git a/arch/mips/boot/dts/img/pistachio.dtsi b/arch/mips/boot/dts/img/pistachio.dtsi -new file mode 100644 -index 0000000..57809f6 --- /dev/null +++ b/arch/mips/boot/dts/img/pistachio.dtsi @@ -0,0 +1,924 @@ @@ -986,6 +981,3 @@ index 0000000..57809f6 + clock-output-names = "xtal"; + }; +}; --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/002-MIPS-DTS-img-add-device-tree-for-Marduk-board.patch b/target/linux/pistachio/patches-4.9/002-MIPS-DTS-img-add-device-tree-for-Marduk-board.patch index 2682ac2d3d76..a922ad6630cd 100644 --- a/target/linux/pistachio/patches-4.9/002-MIPS-DTS-img-add-device-tree-for-Marduk-board.patch +++ b/target/linux/pistachio/patches-4.9/002-MIPS-DTS-img-add-device-tree-for-Marduk-board.patch @@ -37,9 +37,6 @@ Acked-by: James Hartley create mode 100644 arch/mips/boot/dts/img/Makefile create mode 100644 arch/mips/boot/dts/img/pistachio_marduk.dts -diff --git a/Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt b/Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt -new file mode 100644 -index 0000000..2d5126d --- /dev/null +++ b/Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt @@ -0,0 +1,10 @@ @@ -53,9 +50,6 @@ index 0000000..2d5126d + +It is also known as Creator Ci40. Marduk is legacy name and will +be there for decades. -diff --git a/arch/mips/boot/dts/img/Makefile b/arch/mips/boot/dts/img/Makefile -new file mode 100644 -index 0000000..69a65f0 --- /dev/null +++ b/arch/mips/boot/dts/img/Makefile @@ -0,0 +1,9 @@ @@ -68,9 +62,6 @@ index 0000000..69a65f0 + +always := $(dtb-y) +clean-files := *.dtb *.dtb.S -diff --git a/arch/mips/boot/dts/img/pistachio_marduk.dts b/arch/mips/boot/dts/img/pistachio_marduk.dts -new file mode 100644 -index 0000000..cf9cebd --- /dev/null +++ b/arch/mips/boot/dts/img/pistachio_marduk.dts @@ -0,0 +1,163 @@ @@ -237,6 +228,3 @@ index 0000000..cf9cebd + status = "okay"; + clock-frequency = <400000>; +}; --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/003-MIPS-DTS-add-img-directory-to-Makefile.patch b/target/linux/pistachio/patches-4.9/003-MIPS-DTS-add-img-directory-to-Makefile.patch index 7d06f6f1c9d2..aaeccab161a8 100644 --- a/target/linux/pistachio/patches-4.9/003-MIPS-DTS-add-img-directory-to-Makefile.patch +++ b/target/linux/pistachio/patches-4.9/003-MIPS-DTS-add-img-directory-to-Makefile.patch @@ -11,8 +11,6 @@ Signed-off-by: Ian Pozella arch/mips/boot/dts/Makefile | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/mips/boot/dts/Makefile b/arch/mips/boot/dts/Makefile -index fc7a0a9..b9db492 100644 --- a/arch/mips/boot/dts/Makefile +++ b/arch/mips/boot/dts/Makefile @@ -1,5 +1,6 @@ @@ -22,6 +20,3 @@ index fc7a0a9..b9db492 100644 dts-dirs += ingenic dts-dirs += lantiq dts-dirs += mti --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/101-dmaengine-img-mdc-Handle-early-status-read.patch b/target/linux/pistachio/patches-4.9/101-dmaengine-img-mdc-Handle-early-status-read.patch index 8d62699270fe..338918217645 100644 --- a/target/linux/pistachio/patches-4.9/101-dmaengine-img-mdc-Handle-early-status-read.patch +++ b/target/linux/pistachio/patches-4.9/101-dmaengine-img-mdc-Handle-early-status-read.patch @@ -14,11 +14,9 @@ Signed-off-by: Damien Horsley drivers/dma/img-mdc-dma.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) -diff --git a/drivers/dma/img-mdc-dma.c b/drivers/dma/img-mdc-dma.c -index 624f1e1..0216e2c 100644 --- a/drivers/dma/img-mdc-dma.c +++ b/drivers/dma/img-mdc-dma.c -@@ -623,25 +623,33 @@ static enum dma_status mdc_tx_status(struct dma_chan *chan, +@@ -623,25 +623,33 @@ static enum dma_status mdc_tx_status(str (MDC_CMDS_PROCESSED_CMDS_DONE_MASK + 1); /* @@ -68,6 +66,3 @@ index 624f1e1..0216e2c 100644 } } spin_unlock_irqrestore(&mchan->vc.lock, flags); --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/102-spi-img-spfi-Implement-dual-and-quad-mode.patch b/target/linux/pistachio/patches-4.9/102-spi-img-spfi-Implement-dual-and-quad-mode.patch index ee768c4623d8..15a5d3c806fc 100644 --- a/target/linux/pistachio/patches-4.9/102-spi-img-spfi-Implement-dual-and-quad-mode.patch +++ b/target/linux/pistachio/patches-4.9/102-spi-img-spfi-Implement-dual-and-quad-mode.patch @@ -26,8 +26,6 @@ Signed-off-by: Ezequiel Garcia drivers/spi/spi-img-spfi.c | 96 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 11 deletions(-) -diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c -index 7a37090..c845a50 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c @@ -40,7 +40,8 @@ @@ -68,7 +66,7 @@ index 7a37090..c845a50 100644 }; struct img_spfi_device_data { -@@ -123,9 +131,11 @@ static inline void spfi_start(struct img_spfi *spfi) +@@ -123,9 +131,11 @@ static inline void spfi_start(struct img { u32 val; @@ -83,7 +81,7 @@ index 7a37090..c845a50 100644 } static inline void spfi_reset(struct img_spfi *spfi) -@@ -138,12 +148,21 @@ static int spfi_wait_all_done(struct img_spfi *spfi) +@@ -138,12 +148,21 @@ static int spfi_wait_all_done(struct img { unsigned long timeout = jiffies + msecs_to_jiffies(50); @@ -105,7 +103,7 @@ index 7a37090..c845a50 100644 return 0; } cpu_relax(); -@@ -494,9 +513,32 @@ static void img_spfi_config(struct spi_master *master, struct spi_device *spi, +@@ -494,9 +513,32 @@ static void img_spfi_config(struct spi_m struct spi_transfer *xfer) { struct img_spfi *spfi = spi_master_get_devdata(spi->master); @@ -139,7 +137,7 @@ index 7a37090..c845a50 100644 * output = spfi_clk * (BITCLK / 512), where BITCLK must be a * power of 2 up to 128 */ -@@ -509,20 +551,52 @@ static void img_spfi_config(struct spi_master *master, struct spi_device *spi, +@@ -509,20 +551,52 @@ static void img_spfi_config(struct spi_m val |= div << SPFI_DEVICE_PARAMETER_BITCLK_SHIFT; spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi->chip_select)); @@ -198,6 +196,3 @@ index 7a37090..c845a50 100644 xfer->rx_nbits == SPI_NBITS_QUAD) val |= SPFI_CONTROL_TMODE_QUAD << SPFI_CONTROL_TMODE_SHIFT; val |= SPFI_CONTROL_SE; --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/103-spi-img-spfi-set-device-select-bits-for-SPFI-port-st.patch b/target/linux/pistachio/patches-4.9/103-spi-img-spfi-set-device-select-bits-for-SPFI-port-st.patch index d5bf309b4eca..ba70348da9ab 100644 --- a/target/linux/pistachio/patches-4.9/103-spi-img-spfi-set-device-select-bits-for-SPFI-port-st.patch +++ b/target/linux/pistachio/patches-4.9/103-spi-img-spfi-set-device-select-bits-for-SPFI-port-st.patch @@ -13,11 +13,9 @@ Signed-off-by: Ionela Voinescu drivers/spi/spi-img-spfi.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c -index c845a50..0d73d31 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c -@@ -438,6 +438,9 @@ static int img_spfi_prepare(struct spi_master *master, struct spi_message *msg) +@@ -438,6 +438,9 @@ static int img_spfi_prepare(struct spi_m u32 val; val = spfi_readl(spfi, SPFI_PORT_STATE); @@ -27,6 +25,3 @@ index c845a50..0d73d31 100644 if (msg->spi->mode & SPI_CPHA) val |= SPFI_PORT_STATE_CK_PHASE(msg->spi->chip_select); else --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch b/target/linux/pistachio/patches-4.9/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch index 01143e2c3bae..6c9e6b5a768f 100644 --- a/target/linux/pistachio/patches-4.9/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch +++ b/target/linux/pistachio/patches-4.9/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch @@ -13,11 +13,9 @@ Signed-off-by: Ionela Voinescu drivers/spi/spi-img-spfi.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) -diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c -index 0d73d31..231b59c 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c -@@ -437,18 +437,23 @@ static int img_spfi_prepare(struct spi_master *master, struct spi_message *msg) +@@ -437,18 +437,23 @@ static int img_spfi_prepare(struct spi_m struct img_spfi *spfi = spi_master_get_devdata(master); u32 val; @@ -46,7 +44,7 @@ index 0d73d31..231b59c 100644 spfi_writel(spfi, val, SPFI_PORT_STATE); return 0; -@@ -548,11 +553,15 @@ static void img_spfi_config(struct spi_master *master, struct spi_device *spi, +@@ -548,11 +553,15 @@ static void img_spfi_config(struct spi_m div = DIV_ROUND_UP(clk_get_rate(spfi->spfi_clk), xfer->speed_hz); div = clamp(512 / (1 << get_count_order(div)), 1, 128); @@ -64,6 +62,3 @@ index 0d73d31..231b59c 100644 if (!list_is_last(&xfer->transfer_list, &master->cur_msg->transfers) && /* --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch b/target/linux/pistachio/patches-4.9/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch index 47fcf3c0ba52..0067b0ea4ac0 100644 --- a/target/linux/pistachio/patches-4.9/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch +++ b/target/linux/pistachio/patches-4.9/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch @@ -27,11 +27,9 @@ Signed-off-by: Ionela Voinescu drivers/spi/spi-img-spfi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c -index 231b59c..8ad6c75 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c -@@ -346,12 +346,11 @@ static int img_spfi_start_dma(struct spi_master *master, +@@ -346,12 +346,11 @@ static int img_spfi_start_dma(struct spi if (xfer->len % 4 == 0) { rxconf.src_addr = spfi->phys + SPFI_RX_32BIT_VALID_DATA; rxconf.src_addr_width = 4; @@ -45,7 +43,7 @@ index 231b59c..8ad6c75 100644 dmaengine_slave_config(spfi->rx_ch, &rxconf); rxdesc = dmaengine_prep_slave_sg(spfi->rx_ch, xfer->rx_sg.sgl, -@@ -370,12 +369,11 @@ static int img_spfi_start_dma(struct spi_master *master, +@@ -370,12 +369,11 @@ static int img_spfi_start_dma(struct spi if (xfer->len % 4 == 0) { txconf.dst_addr = spfi->phys + SPFI_TX_32BIT_VALID_DATA; txconf.dst_addr_width = 4; @@ -59,6 +57,3 @@ index 231b59c..8ad6c75 100644 dmaengine_slave_config(spfi->tx_ch, &txconf); txdesc = dmaengine_prep_slave_sg(spfi->tx_ch, xfer->tx_sg.sgl, --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/106-spi-img-spfi-finish-every-transfer-cleanly.patch b/target/linux/pistachio/patches-4.9/106-spi-img-spfi-finish-every-transfer-cleanly.patch index f75f0fbc578c..0f958314e3be 100644 --- a/target/linux/pistachio/patches-4.9/106-spi-img-spfi-finish-every-transfer-cleanly.patch +++ b/target/linux/pistachio/patches-4.9/106-spi-img-spfi-finish-every-transfer-cleanly.patch @@ -22,8 +22,6 @@ Signed-off-by: Ionela Voinescu drivers/spi/spi-img-spfi.c | 49 +++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 14 deletions(-) -diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c -index 8ad6c75..a124423 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c @@ -83,6 +83,14 @@ @@ -41,7 +39,7 @@ index 8ad6c75..a124423 100644 /* * There are four parallel FIFOs of 16 bytes each. The word buffer * (*_32BIT_VALID_DATA) accesses all four FIFOs at once, resulting in an -@@ -144,6 +152,23 @@ static inline void spfi_reset(struct img_spfi *spfi) +@@ -144,6 +152,23 @@ static inline void spfi_reset(struct img spfi_writel(spfi, 0, SPFI_CONTROL); } @@ -65,7 +63,7 @@ index 8ad6c75..a124423 100644 static int spfi_wait_all_done(struct img_spfi *spfi) { unsigned long timeout = jiffies + msecs_to_jiffies(50); -@@ -152,19 +177,9 @@ static int spfi_wait_all_done(struct img_spfi *spfi) +@@ -152,19 +177,9 @@ static int spfi_wait_all_done(struct img return 0; while (time_before(jiffies, timeout)) { @@ -87,7 +85,7 @@ index 8ad6c75..a124423 100644 cpu_relax(); } -@@ -296,6 +311,8 @@ static int img_spfi_start_pio(struct spi_master *master, +@@ -296,6 +311,8 @@ static int img_spfi_start_pio(struct spi } ret = spfi_wait_all_done(spfi); @@ -96,7 +94,7 @@ index 8ad6c75..a124423 100644 if (ret < 0) return ret; -@@ -311,8 +328,10 @@ static void img_spfi_dma_rx_cb(void *data) +@@ -311,8 +328,10 @@ static void img_spfi_dma_rx_cb(void *dat spin_lock_irqsave(&spfi->lock, flags); spfi->rx_dma_busy = false; @@ -108,7 +106,7 @@ index 8ad6c75..a124423 100644 spin_unlock_irqrestore(&spfi->lock, flags); } -@@ -325,8 +344,10 @@ static void img_spfi_dma_tx_cb(void *data) +@@ -325,8 +344,10 @@ static void img_spfi_dma_tx_cb(void *dat spin_lock_irqsave(&spfi->lock, flags); spfi->tx_dma_busy = false; @@ -120,6 +118,3 @@ index 8ad6c75..a124423 100644 spin_unlock_irqrestore(&spfi->lock, flags); } --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/107-clockevents-Retry-programming-min-delta-up-to-10-tim.patch b/target/linux/pistachio/patches-4.9/107-clockevents-Retry-programming-min-delta-up-to-10-tim.patch index 613584e33ce2..857823b78398 100644 --- a/target/linux/pistachio/patches-4.9/107-clockevents-Retry-programming-min-delta-up-to-10-tim.patch +++ b/target/linux/pistachio/patches-4.9/107-clockevents-Retry-programming-min-delta-up-to-10-tim.patch @@ -26,11 +26,9 @@ Signed-off-by: James Hogan kernel/time/clockevents.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) -diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c -index 2c5bc77..ddd7e82 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c -@@ -281,16 +281,28 @@ static int clockevents_program_min_delta(struct clock_event_device *dev) +@@ -281,16 +281,28 @@ static int clockevents_program_min_delta { unsigned long long clc; int64_t delta; @@ -66,6 +64,3 @@ index 2c5bc77..ddd7e82 100644 } #endif /* CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST */ --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch b/target/linux/pistachio/patches-4.9/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch index da2a873e61ec..5329ad62d0b4 100644 --- a/target/linux/pistachio/patches-4.9/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch +++ b/target/linux/pistachio/patches-4.9/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch @@ -18,11 +18,9 @@ Signed-off-by: Govindraj Raja include/dt-bindings/clock/pistachio-clk.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) -diff --git a/drivers/clk/pistachio/clk-pistachio.c b/drivers/clk/pistachio/clk-pistachio.c -index c4ceb5e..1c968d9 100644 --- a/drivers/clk/pistachio/clk-pistachio.c +++ b/drivers/clk/pistachio/clk-pistachio.c -@@ -44,7 +44,7 @@ static struct pistachio_gate pistachio_gates[] __initdata = { +@@ -44,7 +44,7 @@ static struct pistachio_gate pistachio_g GATE(CLK_AUX_ADC_INTERNAL, "aux_adc_internal", "sys_internal_div", 0x104, 22), GATE(CLK_AUX_ADC, "aux_adc", "aux_adc_div", 0x104, 23), @@ -31,7 +29,7 @@ index c4ceb5e..1c968d9 100644 GATE(CLK_BT, "bt", "bt_div", 0x104, 25), GATE(CLK_BT_DIV4, "bt_div4", "bt_div4_div", 0x104, 26), GATE(CLK_BT_DIV8, "bt_div8", "bt_div8_div", 0x104, 27), -@@ -54,6 +54,7 @@ static struct pistachio_gate pistachio_gates[] __initdata = { +@@ -54,6 +54,7 @@ static struct pistachio_gate pistachio_g static struct pistachio_fixed_factor pistachio_ffs[] __initdata = { FIXED_FACTOR(CLK_WIFI_DIV4, "wifi_div4", "wifi_pll", 4), FIXED_FACTOR(CLK_WIFI_DIV8, "wifi_div8", "wifi_pll", 8), @@ -39,8 +37,6 @@ index c4ceb5e..1c968d9 100644 }; static struct pistachio_div pistachio_divs[] __initdata = { -diff --git a/include/dt-bindings/clock/pistachio-clk.h b/include/dt-bindings/clock/pistachio-clk.h -index 039f83f..77b92ae 100644 --- a/include/dt-bindings/clock/pistachio-clk.h +++ b/include/dt-bindings/clock/pistachio-clk.h @@ -21,6 +21,7 @@ @@ -51,6 +47,3 @@ index 039f83f..77b92ae 100644 /* Gate clocks */ #define CLK_MIPS 32 --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch b/target/linux/pistachio/patches-4.9/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch index 141e401fcbd0..22fc42b98809 100644 --- a/target/linux/pistachio/patches-4.9/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch +++ b/target/linux/pistachio/patches-4.9/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch @@ -26,8 +26,6 @@ Signed-off-by: Ian Pozella arch/mips/boot/dts/img/pistachio_marduk.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/arch/mips/boot/dts/img/pistachio_marduk.dts b/arch/mips/boot/dts/img/pistachio_marduk.dts -index cf9cebd..7708815 100644 --- a/arch/mips/boot/dts/img/pistachio_marduk.dts +++ b/arch/mips/boot/dts/img/pistachio_marduk.dts @@ -120,7 +120,7 @@ @@ -47,6 +45,3 @@ index cf9cebd..7708815 100644 }; &pwm { --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-4.9/401-mtd-nor-support-mtd-name-from-device-tree.patch index 0ae92f3c8644..6e3c7111e64b 100644 --- a/target/linux/pistachio/patches-4.9/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-4.9/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -8,11 +8,9 @@ Signed-off-by: Abhimanyu Vishwakarma drivers/mtd/spi-nor/spi-nor.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c -index d0fc165..fcee697 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1306,6 +1306,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) +@@ -1534,6 +1534,7 @@ int spi_nor_scan(struct spi_nor *nor, co struct device *dev = nor->dev; struct mtd_info *mtd = &nor->mtd; struct device_node *np = spi_nor_get_flash_node(nor); @@ -20,7 +18,7 @@ index d0fc165..fcee697 100644 int ret; int i; -@@ -1361,7 +1362,12 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) +@@ -1598,7 +1599,12 @@ int spi_nor_scan(struct spi_nor *nor, co spi_nor_wait_till_ready(nor); } @@ -34,6 +32,3 @@ index d0fc165..fcee697 100644 mtd->name = dev_name(dev); mtd->priv = nor; mtd->type = MTD_NORFLASH; --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/411-mtd-nand-Check-length-of-ID-before-reading-bits-per-.patch b/target/linux/pistachio/patches-4.9/411-mtd-nand-Check-length-of-ID-before-reading-bits-per-.patch index cd2f8bb12390..ac5c16b563dd 100644 --- a/target/linux/pistachio/patches-4.9/411-mtd-nand-Check-length-of-ID-before-reading-bits-per-.patch +++ b/target/linux/pistachio/patches-4.9/411-mtd-nand-Check-length-of-ID-before-reading-bits-per-.patch @@ -19,11 +19,9 @@ Signed-off-by: Ezequiel Garcia drivers/mtd/nand/nand_base.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c -index 3bde96a..69b5cac 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -3964,7 +3964,8 @@ static bool find_full_id_nand(struct mtd_info *mtd, struct nand_chip *chip, +@@ -3964,7 +3964,8 @@ static bool find_full_id_nand(struct mtd mtd->erasesize = type->erasesize; mtd->oobsize = type->oobsize; @@ -33,6 +31,3 @@ index 3bde96a..69b5cac 100644 chip->chipsize = (uint64_t)type->chipsize << 20; chip->options |= type->options; chip->ecc_strength_ds = NAND_ECC_STRENGTH(type); --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/412-mtd-nand-Add-JEDEC-manufacturer-ID-for-Gigadevice.patch b/target/linux/pistachio/patches-4.9/412-mtd-nand-Add-JEDEC-manufacturer-ID-for-Gigadevice.patch index f8ebac5a1d2c..eceb304006ef 100644 --- a/target/linux/pistachio/patches-4.9/412-mtd-nand-Add-JEDEC-manufacturer-ID-for-Gigadevice.patch +++ b/target/linux/pistachio/patches-4.9/412-mtd-nand-Add-JEDEC-manufacturer-ID-for-Gigadevice.patch @@ -13,11 +13,9 @@ Signed-off-by: Ezequiel Garcia include/linux/mtd/nand.h | 1 + 2 files changed, 2 insertions(+) -diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c -index 2af9869..dc80fcd 100644 --- a/drivers/mtd/nand/nand_ids.c +++ b/drivers/mtd/nand/nand_ids.c -@@ -182,6 +182,7 @@ struct nand_manufacturers nand_manuf_ids[] = { +@@ -182,6 +182,7 @@ struct nand_manufacturers nand_manuf_ids {NAND_MFR_SANDISK, "SanDisk"}, {NAND_MFR_INTEL, "Intel"}, {NAND_MFR_ATO, "ATO"}, @@ -25,11 +23,9 @@ index 2af9869..dc80fcd 100644 {0x0, "Unknown"} }; -diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h -index d8905a2..3a00df7 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h -@@ -928,6 +928,7 @@ static inline void nand_set_controller_data(struct nand_chip *chip, void *priv) +@@ -928,6 +928,7 @@ static inline void nand_set_controller_d #define NAND_MFR_SANDISK 0x45 #define NAND_MFR_INTEL 0x89 #define NAND_MFR_ATO 0x9b @@ -37,6 +33,3 @@ index d8905a2..3a00df7 100644 /* The maximum expected count of bytes in the NAND ID sequence */ #define NAND_MAX_ID_LEN 8 --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch b/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch index d8b268164ec6..ab5d74ad7293 100644 --- a/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch +++ b/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch @@ -44,11 +44,9 @@ Signed-off-by: Ian Pozella create mode 100644 drivers/mtd/spi-nand/spi-nand-base.c create mode 100644 include/linux/mtd/spi-nand.h -diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig -index e83a279..9163d7f 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig -@@ -334,6 +334,8 @@ source "drivers/mtd/onenand/Kconfig" +@@ -369,6 +369,8 @@ source "drivers/mtd/onenand/Kconfig" source "drivers/mtd/lpddr/Kconfig" @@ -57,20 +55,15 @@ index e83a279..9163d7f 100644 source "drivers/mtd/spi-nor/Kconfig" source "drivers/mtd/ubi/Kconfig" -diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile -index 99bb9a1..38a4756 100644 --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile -@@ -32,5 +32,6 @@ inftl-objs := inftlcore.o inftlmount.o +@@ -35,5 +35,6 @@ inftl-objs := inftlcore.o inftlmount.o obj-y += chips/ lpddr/ maps/ devices/ nand/ onenand/ tests/ +obj-$(CONFIG_MTD_SPI_NAND) += spi-nand/ obj-$(CONFIG_MTD_SPI_NOR) += spi-nor/ obj-$(CONFIG_MTD_UBI) += ubi/ -diff --git a/drivers/mtd/spi-nand/Kconfig b/drivers/mtd/spi-nand/Kconfig -new file mode 100644 -index 0000000..17b31e1 --- /dev/null +++ b/drivers/mtd/spi-nand/Kconfig @@ -0,0 +1,7 @@ @@ -81,16 +74,10 @@ index 0000000..17b31e1 + help + This is the framework for the SPI NAND. + -diff --git a/drivers/mtd/spi-nand/Makefile b/drivers/mtd/spi-nand/Makefile -new file mode 100644 -index 0000000..d454c52 --- /dev/null +++ b/drivers/mtd/spi-nand/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_MTD_SPI_NAND) += spi-nand-base.o -diff --git a/drivers/mtd/spi-nand/spi-nand-base.c b/drivers/mtd/spi-nand/spi-nand-base.c -new file mode 100644 -index 0000000..5d79f85 --- /dev/null +++ b/drivers/mtd/spi-nand/spi-nand-base.c @@ -0,0 +1,566 @@ @@ -660,9 +647,6 @@ index 0000000..5d79f85 +MODULE_AUTHOR("Ezequiel Garcia "); +MODULE_DESCRIPTION("Framework for SPI NAND"); +MODULE_LICENSE("GPL v2"); -diff --git a/include/linux/mtd/spi-nand.h b/include/linux/mtd/spi-nand.h -new file mode 100644 -index 0000000..b5cc99f --- /dev/null +++ b/include/linux/mtd/spi-nand.h @@ -0,0 +1,54 @@ @@ -720,6 +704,3 @@ index 0000000..b5cc99f +void spi_nand_unregister(struct spi_nand *snand); + +#endif --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/414-mtd-spi-nand-Support-Gigadevice-GD5F.patch b/target/linux/pistachio/patches-4.9/414-mtd-spi-nand-Support-Gigadevice-GD5F.patch index 34d2aab12b58..1f1461061ca8 100644 --- a/target/linux/pistachio/patches-4.9/414-mtd-spi-nand-Support-Gigadevice-GD5F.patch +++ b/target/linux/pistachio/patches-4.9/414-mtd-spi-nand-Support-Gigadevice-GD5F.patch @@ -26,8 +26,6 @@ Signed-off-by: Ian Pozella 3 files changed, 483 insertions(+) create mode 100644 drivers/mtd/spi-nand/spi-nand-device.c -diff --git a/drivers/mtd/spi-nand/Kconfig b/drivers/mtd/spi-nand/Kconfig -index 17b31e1..ab6bb6c 100644 --- a/drivers/mtd/spi-nand/Kconfig +++ b/drivers/mtd/spi-nand/Kconfig @@ -5,3 +5,13 @@ menuconfig MTD_SPI_NAND @@ -44,16 +42,11 @@ index 17b31e1..ab6bb6c 100644 + Select this option if you require support for SPI NAND devices. + +endif # MTD_SPI_NAND -diff --git a/drivers/mtd/spi-nand/Makefile b/drivers/mtd/spi-nand/Makefile -index d454c52..6e460d1 100644 --- a/drivers/mtd/spi-nand/Makefile +++ b/drivers/mtd/spi-nand/Makefile @@ -1 +1,2 @@ obj-$(CONFIG_MTD_SPI_NAND) += spi-nand-base.o +obj-$(CONFIG_MTD_SPI_NAND_DEVICES) += spi-nand-device.o -diff --git a/drivers/mtd/spi-nand/spi-nand-device.c b/drivers/mtd/spi-nand/spi-nand-device.c -new file mode 100644 -index 0000000..95db20b --- /dev/null +++ b/drivers/mtd/spi-nand/spi-nand-device.c @@ -0,0 +1,472 @@ @@ -529,6 +522,3 @@ index 0000000..95db20b +MODULE_AUTHOR("Ezequiel Garcia "); +MODULE_DESCRIPTION("SPI NAND device support"); +MODULE_LICENSE("GPL v2"); --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/701-net-micrel-Disable-PME.patch b/target/linux/pistachio/patches-4.9/701-net-micrel-Disable-PME.patch index 4274a353e200..046f00cd4942 100644 --- a/target/linux/pistachio/patches-4.9/701-net-micrel-Disable-PME.patch +++ b/target/linux/pistachio/patches-4.9/701-net-micrel-Disable-PME.patch @@ -11,11 +11,9 @@ Signed-off-by: Xue Liu drivers/net/phy/micrel.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c -index ea92d52..73401fb 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c -@@ -273,6 +273,7 @@ static int kszphy_config_init(struct phy_device *phydev) +@@ -273,6 +273,7 @@ static int kszphy_config_init(struct phy struct kszphy_priv *priv = phydev->priv; const struct kszphy_type *type; int ret; @@ -23,7 +21,7 @@ index ea92d52..73401fb 100644 if (!priv) return 0; -@@ -308,6 +309,11 @@ static int kszphy_config_init(struct phy_device *phydev) +@@ -308,6 +309,11 @@ static int kszphy_config_init(struct phy return ret; } @@ -35,6 +33,3 @@ index ea92d52..73401fb 100644 return 0; } --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/901-MIPS-DTS-img-marduk-add-nor-partition-name.patch b/target/linux/pistachio/patches-4.9/901-MIPS-DTS-img-marduk-add-nor-partition-name.patch index e2ccd7af9415..6af11eaa361c 100644 --- a/target/linux/pistachio/patches-4.9/901-MIPS-DTS-img-marduk-add-nor-partition-name.patch +++ b/target/linux/pistachio/patches-4.9/901-MIPS-DTS-img-marduk-add-nor-partition-name.patch @@ -8,8 +8,6 @@ Signed-off-by: Ian Pozella arch/mips/boot/dts/img/pistachio_marduk.dts | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/mips/boot/dts/img/pistachio_marduk.dts b/arch/mips/boot/dts/img/pistachio_marduk.dts -index 7708815..b18aa26 100644 --- a/arch/mips/boot/dts/img/pistachio_marduk.dts +++ b/arch/mips/boot/dts/img/pistachio_marduk.dts @@ -90,6 +90,7 @@ @@ -20,6 +18,3 @@ index 7708815..b18aa26 100644 }; }; --- -2.7.4 - diff --git a/target/linux/pistachio/patches-4.9/902-MIPS-DTS-img-marduk-add-nand-device-support.patch b/target/linux/pistachio/patches-4.9/902-MIPS-DTS-img-marduk-add-nand-device-support.patch index cb96753875a1..bd03f0812634 100644 --- a/target/linux/pistachio/patches-4.9/902-MIPS-DTS-img-marduk-add-nand-device-support.patch +++ b/target/linux/pistachio/patches-4.9/902-MIPS-DTS-img-marduk-add-nand-device-support.patch @@ -8,8 +8,6 @@ Signed-off-by: Abhimanyu Vishwakarma arch/mips/boot/dts/img/pistachio_marduk.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) -diff --git a/arch/mips/boot/dts/img/pistachio_marduk.dts b/arch/mips/boot/dts/img/pistachio_marduk.dts -index b18aa26..ed92462 100644 --- a/arch/mips/boot/dts/img/pistachio_marduk.dts +++ b/arch/mips/boot/dts/img/pistachio_marduk.dts @@ -92,6 +92,17 @@ @@ -30,6 +28,3 @@ index b18aa26..ed92462 100644 }; &uart0 { --- -2.7.4 - diff --git a/target/linux/ramips/patches-4.9/0031-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-4.9/0031-uvc-add-iPassion-iP2970-support.patch index 6cfb07da55dd..2a0d57571f09 100644 --- a/target/linux/ramips/patches-4.9/0031-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-4.9/0031-uvc-add-iPassion-iP2970-support.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2564,6 +2564,18 @@ static struct usb_device_id uvc_ids[] = +@@ -2670,6 +2670,18 @@ static struct usb_device_id uvc_ids[] = .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, diff --git a/target/linux/ramips/patches-4.9/0034-NET-multi-phy-support.patch b/target/linux/ramips/patches-4.9/0034-NET-multi-phy-support.patch index f18a789605df..5c901f994dcd 100644 --- a/target/linux/ramips/patches-4.9/0034-NET-multi-phy-support.patch +++ b/target/linux/ramips/patches-4.9/0034-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -996,7 +996,8 @@ void phy_state_machine(struct work_struc +@@ -1000,7 +1000,8 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -21,7 +21,7 @@ Signed-off-by: John Crispin phydev->adjust_link(phydev->attached_dev); break; } -@@ -1079,7 +1080,8 @@ void phy_state_machine(struct work_struc +@@ -1083,7 +1084,8 @@ void phy_state_machine(struct work_struc netif_carrier_on(phydev->attached_dev); } else { phydev->state = PHY_NOLINK; @@ -31,7 +31,7 @@ Signed-off-by: John Crispin } phydev->adjust_link(phydev->attached_dev); -@@ -1091,7 +1093,8 @@ void phy_state_machine(struct work_struc +@@ -1095,7 +1097,8 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/ramips/patches-4.9/0068-fix-ralink-prom.patch b/target/linux/ramips/patches-4.9/0068-fix-ralink-prom.patch deleted file mode 100644 index 728ce6f85228..000000000000 --- a/target/linux/ramips/patches-4.9/0068-fix-ralink-prom.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/arch/mips/ralink/prom.c -+++ b/arch/mips/ralink/prom.c -@@ -30,8 +30,10 @@ const char *get_system_type(void) - return soc_info.sys_type; - } - --static __init void prom_init_cmdline(int argc, char **argv) -+static __init void prom_init_cmdline(void) - { -+ int argc; -+ char **argv; - int i; - - pr_debug("prom: fw_arg0=%08x fw_arg1=%08x fw_arg2=%08x fw_arg3=%08x\n", -@@ -60,14 +62,11 @@ static __init void prom_init_cmdline(int - - void __init prom_init(void) - { -- int argc; -- char **argv; -- - prom_soc_init(&soc_info); - - pr_info("SoC Type: %s\n", get_system_type()); - -- prom_init_cmdline(argc, argv); -+ prom_init_cmdline(); - } - - void __init prom_free_prom_memory(void) diff --git a/target/linux/ramips/patches-4.9/0098-disable_cm.patch b/target/linux/ramips/patches-4.9/0098-disable_cm.patch index 6ea4909851de..9695e04aa59b 100644 --- a/target/linux/ramips/patches-4.9/0098-disable_cm.patch +++ b/target/linux/ramips/patches-4.9/0098-disable_cm.patch @@ -1,7 +1,5 @@ -Index: linux-4.9.14/arch/mips/kernel/mips-cm.c -=================================================================== ---- linux-4.9.14.orig/arch/mips/kernel/mips-cm.c -+++ linux-4.9.14/arch/mips/kernel/mips-cm.c +--- a/arch/mips/kernel/mips-cm.c ++++ b/arch/mips/kernel/mips-cm.c @@ -239,6 +239,7 @@ int mips_cm_probe(void) /* disable CM regions */ diff --git a/target/linux/ramips/patches-4.9/0720-arch-mips-ralink-add-i2c-clocks.patch b/target/linux/ramips/patches-4.9/0720-arch-mips-ralink-add-i2c-clocks.patch index e9e72ad11a10..d711f579d22e 100644 --- a/target/linux/ramips/patches-4.9/0720-arch-mips-ralink-add-i2c-clocks.patch +++ b/target/linux/ramips/patches-4.9/0720-arch-mips-ralink-add-i2c-clocks.patch @@ -35,7 +35,7 @@ ralink_clk_add("10000c00.uartlite", periph_rate); --- a/arch/mips/ralink/rt288x.c +++ b/arch/mips/ralink/rt288x.c -@@ -75,6 +75,7 @@ void __init ralink_clk_init(void) +@@ -65,6 +65,7 @@ void __init ralink_clk_init(void) ralink_clk_add("300100.timer", cpu_rate / 2); ralink_clk_add("300120.watchdog", cpu_rate / 2); ralink_clk_add("300500.uart", cpu_rate / 2); @@ -45,7 +45,7 @@ ralink_clk_add("480000.wmac", wmac_rate); --- a/arch/mips/ralink/rt305x.c +++ b/arch/mips/ralink/rt305x.c -@@ -200,6 +200,8 @@ void __init ralink_clk_init(void) +@@ -189,6 +189,8 @@ void __init ralink_clk_init(void) ralink_clk_add("cpu", cpu_rate); ralink_clk_add("sys", sys_rate); @@ -56,7 +56,7 @@ ralink_clk_add("10000100.timer", wdt_rate); --- a/arch/mips/ralink/rt3883.c +++ b/arch/mips/ralink/rt3883.c -@@ -108,6 +108,8 @@ void __init ralink_clk_init(void) +@@ -98,6 +98,8 @@ void __init ralink_clk_init(void) ralink_clk_add("10000100.timer", sys_rate); ralink_clk_add("10000120.watchdog", sys_rate); ralink_clk_add("10000500.uart", 40000000); diff --git a/target/linux/ramips/patches-4.9/301-fix-rt3883.patch b/target/linux/ramips/patches-4.9/301-fix-rt3883.patch index 49a17cf964ff..5b79526894a2 100644 --- a/target/linux/ramips/patches-4.9/301-fix-rt3883.patch +++ b/target/linux/ramips/patches-4.9/301-fix-rt3883.patch @@ -1,23 +1,6 @@ --- a/arch/mips/ralink/rt3883.c +++ b/arch/mips/ralink/rt3883.c -@@ -63,16 +63,6 @@ static struct rt2880_pmx_group rt3883_pi - { 0 } - }; - --static void rt3883_wdt_reset(void) --{ -- u32 t; -- -- /* enable WDT reset output on GPIO 2 */ -- t = rt_sysc_r32(RT3883_SYSC_REG_SYSCFG1); -- t |= RT3883_SYSCFG1_GPIO2_AS_WDT_OUT; -- rt_sysc_w32(t, RT3883_SYSC_REG_SYSCFG1); --} -- - void __init ralink_clk_init(void) - { - unsigned long cpu_rate, sys_rate; -@@ -157,5 +147,5 @@ void prom_soc_init(struct ralink_soc_inf +@@ -147,5 +147,5 @@ void prom_soc_init(struct ralink_soc_inf rt2880_pinmux_data = rt3883_pinmux_data; -- 2.30.2