Browse Source

Linux-libre 4.4.178 patch refresh

RISCi_ATOM 5 years ago
parent
commit
852909f990
61 changed files with 168 additions and 177 deletions
  1. 1 1
      target/linux/ar71xx/patches-4.4/310-lib-add-rle-decompression.patch
  2. 4 4
      target/linux/ar71xx/patches-4.4/411-mtd-cfi_cmdset_0002-force-word-write.patch
  3. 4 4
      target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch
  4. 1 1
      target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch
  5. 1 1
      target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch
  6. 9 9
      target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
  7. 4 4
      target/linux/ar71xx/patches-4.4/912-ar300m-add-FW-PM-spinand.patch
  8. 5 5
      target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch
  9. 5 5
      target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch
  10. 6 6
      target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch
  11. 2 2
      target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch
  12. 1 1
      target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch
  13. 1 1
      target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
  14. 3 3
      target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
  15. 4 4
      target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch
  16. 2 2
      target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch
  17. 1 1
      target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch
  18. 7 7
      target/linux/generic/patches-4.4/204-module_strip.patch
  19. 1 1
      target/linux/generic/patches-4.4/221-module_exports.patch
  20. 4 8
      target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
  21. 2 2
      target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch
  22. 1 1
      target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch
  23. 1 1
      target/linux/generic/patches-4.4/304-mips_disable_fpu.patch
  24. 2 2
      target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch
  25. 1 1
      target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
  26. 1 1
      target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch
  27. 2 2
      target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
  28. 4 4
      target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch
  29. 1 1
      target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch
  30. 2 2
      target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch
  31. 2 2
      target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch
  32. 8 8
      target/linux/generic/patches-4.4/630-packet_socket_type.patch
  33. 4 4
      target/linux/generic/patches-4.4/642-bridge_port_isolate.patch
  34. 15 15
      target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch
  35. 1 1
      target/linux/generic/patches-4.4/653-disable_netlink_trim.patch
  36. 1 1
      target/linux/generic/patches-4.4/655-increase_skb_pad.patch
  37. 1 1
      target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch
  38. 3 3
      target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
  39. 1 1
      target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
  40. 1 1
      target/linux/generic/patches-4.4/701-phy_extension.patch
  41. 2 2
      target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch
  42. 3 3
      target/linux/generic/patches-4.4/721-phy_packets.patch
  43. 5 5
      target/linux/generic/patches-4.4/834-ledtrig-libata.patch
  44. 2 2
      target/linux/generic/patches-4.4/901-debloat_sock_diag.patch
  45. 1 1
      target/linux/generic/patches-4.4/904-debloat_dma_buf.patch
  46. 1 1
      target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch
  47. 1 1
      target/linux/generic/patches-4.4/995-mangle_bootargs.patch
  48. 2 2
      target/linux/ramips/patches-4.4/0013-owrt-hack-fix-mt7688-cache-issue.patch
  49. 3 3
      target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch
  50. 1 1
      target/linux/ramips/patches-4.4/0032-USB-dwc2-add-device_reset.patch
  51. 5 5
      target/linux/ramips/patches-4.4/0033-xhci-mediatek-support-MTK-xHCI-host-controller.patch
  52. 4 4
      target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch
  53. 4 4
      target/linux/ramips/patches-4.4/0037-mtd-cfi-cmdset-0002-force-word-write.patch
  54. 1 1
      target/linux/ramips/patches-4.4/0039-mtd-add-mt7621-nand-support.patch
  55. 3 3
      target/linux/ramips/patches-4.4/0040-nand-add-mtk-nand-hack-hook.patch
  56. 1 1
      target/linux/ramips/patches-4.4/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch
  57. 3 3
      target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch
  58. 1 1
      target/linux/ramips/patches-4.4/0511-net-mediatek-add-support-for-the-multiphy-carrier-pa.patch
  59. 1 1
      target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch
  60. 2 2
      target/linux/ramips/patches-4.4/0901-spansion_nand_id_fix.patch
  61. 2 7
      target/linux/ramips/patches-4.4/0902-mediatek-4-byte-spi-reset.patch

+ 1 - 1
target/linux/ar71xx/patches-4.4/310-lib-add-rle-decompression.patch

@@ -12,7 +12,7 @@
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
 --- a/lib/Makefile
 +++ b/lib/Makefile
-@@ -110,6 +110,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
+@@ -108,6 +108,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
  obj-$(CONFIG_RAID6_PQ) += raid6/
  obj-$(CONFIG_LZMA_COMPRESS) += lzma/
  obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/

+ 4 - 4
target/linux/ar71xx/patches-4.4/411-mtd-cfi_cmdset_0002-force-word-write.patch

@@ -7,7 +7,7 @@
 -#define FORCE_WORD_WRITE 0
 +#define FORCE_WORD_WRITE 1
  
- #define MAX_WORD_RETRIES 3
+ #define MAX_RETRIES 3
  
 @@ -51,7 +51,9 @@
  
@@ -35,7 +35,7 @@
  
  /* Atmel chips don't use the same PRI format as AMD chips */
  static void fixup_convert_atmel_pri(struct mtd_info *mtd)
-@@ -1791,6 +1795,7 @@ static int cfi_amdstd_write_words(struct
+@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct
  /*
   * FIXME: interleaved mode not tested, and probably not supported!
   */
@@ -43,7 +43,7 @@
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
  				    unsigned long adr, const u_char *buf,
  				    int len)
-@@ -1919,7 +1924,6 @@ static int __xipram do_write_buffer(stru
+@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru
  	return ret;
  }
  
@@ -51,7 +51,7 @@
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
  				    size_t *retlen, const u_char *buf)
  {
-@@ -1994,6 +1998,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru
  
  	return 0;
  }

+ 4 - 4
target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch

@@ -1,8 +1,8 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -720,6 +720,11 @@ config SPI_RB4XX_CPLD
- 	  SPI driver for the Xilinx CPLD chip present on the
- 	  MikroTik RB4xx boards.
+@@ -707,6 +707,11 @@ config SPI_TLE62X0
+ 	  sysfs interface, with each line presented as a kind of GPIO
+ 	  exposing both switch control and diagnostic feedback.
  
 +config SPI_VSC7385
 +	tristate "Vitesse VSC7385 ethernet switch driver"
@@ -14,7 +14,7 @@
  #
 --- a/drivers/spi/Makefile
 +++ b/drivers/spi/Makefile
-@@ -91,6 +91,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK)		+= spi-
+@@ -89,6 +89,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK)		+= spi-
  obj-$(CONFIG_SPI_TLE62X0)		+= spi-tle62x0.o
  obj-$(CONFIG_SPI_TOPCLIFF_PCH)		+= spi-topcliff-pch.o
  obj-$(CONFIG_SPI_TXX9)			+= spi-txx9.o

+ 1 - 1
target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch

@@ -10,7 +10,7 @@
  
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1118,6 +1118,9 @@ config MIPS_MSC
+@@ -1121,6 +1121,9 @@ config MIPS_MSC
  config MIPS_NILE4
  	bool
  

+ 1 - 1
target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch

@@ -66,7 +66,7 @@
 +#define AR71XX_ETH1_PLL_SHIFT		19
 +
  #define AR724X_PLL_REG_CPU_CONFIG	0x00
- #define AR724X_PLL_REG_PCIE_CONFIG	0x18
+ #define AR724X_PLL_REG_PCIE_CONFIG	0x10
  
 @@ -186,6 +205,8 @@
  #define AR724X_DDR_DIV_SHIFT		22

+ 9 - 9
target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch

@@ -241,7 +241,7 @@
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -433,7 +433,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -434,7 +434,7 @@ int ipv6_recv_error(struct sock *sk, str
  				ipv6_iface_scope_id(&sin->sin6_addr,
  						    IP6CB(skb)->iif);
  		} else {
@@ -250,7 +250,7 @@
  					       &sin->sin6_addr);
  			sin->sin6_scope_id = 0;
  		}
-@@ -773,12 +773,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -772,12 +772,12 @@ int ip6_datagram_send_ctl(struct net *ne
  			}
  
  			if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@@ -359,7 +359,7 @@
  	for (p = *head; p; p = p->next) {
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look
+@@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_look
  	else if (skb)
  		pkey = &ip_hdr(skb)->daddr;
  
@@ -664,7 +664,7 @@
  
  #define	IP6_MF		0x0001
  #define	IP6_OFFSET	0xFFF8
-@@ -418,8 +418,8 @@ static inline void __ipv6_addr_set_half(
+@@ -411,8 +411,8 @@ static inline void __ipv6_addr_set_half(
  	}
  #endif
  #endif
@@ -675,7 +675,7 @@
  }
  
  static inline void ipv6_addr_set(struct in6_addr *addr, 
-@@ -478,6 +478,8 @@ static inline bool ipv6_prefix_equal(con
+@@ -471,6 +471,8 @@ static inline bool ipv6_prefix_equal(con
  	const __be32 *a1 = addr1->s6_addr32;
  	const __be32 *a2 = addr2->s6_addr32;
  	unsigned int pdw, pbi;
@@ -684,7 +684,7 @@
  
  	/* check complete u32 in prefix */
  	pdw = prefixlen >> 5;
-@@ -486,7 +488,9 @@ static inline bool ipv6_prefix_equal(con
+@@ -479,7 +481,9 @@ static inline bool ipv6_prefix_equal(con
  
  	/* check incomplete u32 in prefix */
  	pbi = prefixlen & 0x1f;
@@ -695,7 +695,7 @@
  		return false;
  
  	return true;
-@@ -630,13 +634,13 @@ static inline void ipv6_addr_set_v4mappe
+@@ -608,13 +612,13 @@ static inline void ipv6_addr_set_v4mappe
   */
  static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
  {
@@ -711,7 +711,7 @@
  		if (xb)
  			return i * 32 + 31 - __fls(ntohl(xb));
  	}
-@@ -805,17 +809,18 @@ static inline int ip6_default_np_autolab
+@@ -783,17 +787,18 @@ static inline int ip6_default_np_autolab
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
  				__be32 flowlabel)
  {
@@ -814,7 +814,7 @@
  static struct fib6_node *node_alloc(void)
 --- a/net/netfilter/nf_conntrack_proto_tcp.c
 +++ b/net/netfilter/nf_conntrack_proto_tcp.c
-@@ -456,7 +456,7 @@ static void tcp_sack(const struct sk_buf
+@@ -458,7 +458,7 @@ static void tcp_sack(const struct sk_buf
  
  	/* Fast path for timestamp-only option */
  	if (length == TCPOLEN_TSTAMP_ALIGNED

+ 4 - 4
target/linux/ar71xx/patches-4.4/912-ar300m-add-FW-PM-spinand.patch

@@ -10,7 +10,7 @@
  	cmd.n_dummy = 0;
  	cmd.n_rx = len;
  	cmd.rx_buf = rbuf;
-@@ -776,9 +779,9 @@ static void ath79_spinand_cmdfunc(struct
+@@ -775,9 +778,9 @@ static void ath79_spinand_cmdfunc(struct
  					state->buf);
  		break;
  	case NAND_CMD_READOOB:
@@ -23,7 +23,7 @@
  		break;
  	case NAND_CMD_RNDOUT:
  		state->buf_ptr = column;
-@@ -1005,6 +1008,21 @@ static struct ath79_spinand_priv ath79_s
+@@ -1004,6 +1007,21 @@ static struct ath79_spinand_priv ath79_s
  		0x07,					/* ecc error code */
  		SZ_512,					/* ecc size */
  		16,					/* ecc bytes */
@@ -57,7 +57,7 @@
  	{"GD5F2GQ4U 2G 3.3V 8-bit",
  		{ .id = {0xc8, 0xb2} },
  		  SZ_2K, SZ_256, SZ_128K, 0, 2, 128, NAND_ECC_INFO(4, SZ_512) },
-@@ -128,6 +131,7 @@ struct nand_flash_dev nand_flash_ids[] =
+@@ -129,6 +132,7 @@ struct nand_flash_dev nand_flash_ids[] =
  	EXTENDED_ID_NAND("NAND 128MiB 3,3V 8-bit",  0xF1, 128, LP_OPTIONS),
  	EXTENDED_ID_NAND("NAND 128MiB 3,3V 8-bit",  0xD1, 128, LP_OPTIONS),
  	EXTENDED_ID_NAND("NAND 128MiB 1,8V 16-bit", 0xB1, 128, LP_OPTIONS16),
@@ -65,7 +65,7 @@
  	EXTENDED_ID_NAND("NAND 128MiB 3,3V 16-bit", 0xC1, 128, LP_OPTIONS16),
  	EXTENDED_ID_NAND("NAND 128MiB 1,8V 16-bit", 0xAD, 128, LP_OPTIONS16),
  
-@@ -207,6 +211,7 @@ struct nand_manufacturers nand_manuf_ids
+@@ -208,6 +212,7 @@ struct nand_manufacturers nand_manuf_ids
  	{NAND_MFR_GIGADEVICE, "Giga Device"},
  	{NAND_MFR_WINBOND, "Winbond"},
  	{NAND_MFR_HEYANGTEK, "HeYang Tek"},

+ 5 - 5
target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch

@@ -24,7 +24,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
 
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -1135,6 +1135,7 @@ static void __spi_pump_messages(struct s
+@@ -1141,6 +1141,7 @@ static void __spi_pump_messages(struct s
  		}
  	}
  
@@ -32,7 +32,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
  	trace_spi_message_start(master->cur_msg);
  
  	if (master->prepare_message) {
-@@ -1144,6 +1145,7 @@ static void __spi_pump_messages(struct s
+@@ -1150,6 +1151,7 @@ static void __spi_pump_messages(struct s
  				"failed to prepare message: %d\n", ret);
  			master->cur_msg->status = ret;
  			spi_finalize_current_message(master);
@@ -40,7 +40,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
  			return;
  		}
  		master->cur_msg_prepared = true;
-@@ -1153,6 +1155,7 @@ static void __spi_pump_messages(struct s
+@@ -1159,6 +1161,7 @@ static void __spi_pump_messages(struct s
  	if (ret) {
  		master->cur_msg->status = ret;
  		spi_finalize_current_message(master);
@@ -48,7 +48,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
  		return;
  	}
  
-@@ -1160,8 +1163,10 @@ static void __spi_pump_messages(struct s
+@@ -1166,8 +1169,10 @@ static void __spi_pump_messages(struct s
  	if (ret) {
  		dev_err(&master->dev,
  			"failed to transfer one message from queue\n");
@@ -59,7 +59,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
  }
  
  /**
-@@ -2329,6 +2334,46 @@ int spi_async_locked(struct spi_device *
+@@ -2335,6 +2340,46 @@ int spi_async_locked(struct spi_device *
  EXPORT_SYMBOL_GPL(spi_async_locked);
  
  

+ 5 - 5
target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch

@@ -36,7 +36,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    dmam_alloc_coherent()
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -2595,6 +2595,22 @@ fail_out:
+@@ -2598,6 +2598,22 @@ fail_out:
  }
  EXPORT_SYMBOL_GPL(clk_register);
  
@@ -59,7 +59,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  /* Free memory allocated for a clock. */
  static void __clk_release(struct kref *ref)
  {
-@@ -2696,11 +2712,26 @@ void clk_unregister(struct clk *clk)
+@@ -2699,11 +2715,26 @@ void clk_unregister(struct clk *clk)
  }
  EXPORT_SYMBOL_GPL(clk_unregister);
  
@@ -86,7 +86,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  /**
   * devm_clk_register - resource managed clk_register()
   * @dev: device that is registering this clock
-@@ -2731,6 +2762,36 @@ struct clk *devm_clk_register(struct dev
+@@ -2734,6 +2765,36 @@ struct clk *devm_clk_register(struct dev
  }
  EXPORT_SYMBOL_GPL(devm_clk_register);
  
@@ -123,7 +123,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  static int devm_clk_match(struct device *dev, void *res, void *data)
  {
  	struct clk *c = res;
-@@ -2739,6 +2800,15 @@ static int devm_clk_match(struct device
+@@ -2742,6 +2803,15 @@ static int devm_clk_match(struct device
  	return c == data;
  }
  
@@ -139,7 +139,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  /**
   * devm_clk_unregister - resource managed clk_unregister()
   * @clk: clock to unregister
-@@ -2753,6 +2823,22 @@ void devm_clk_unregister(struct device *
+@@ -2756,6 +2826,22 @@ void devm_clk_unregister(struct device *
  }
  EXPORT_SYMBOL_GPL(devm_clk_unregister);
  

+ 6 - 6
target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch

@@ -30,7 +30,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
 
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -3001,6 +3001,7 @@ struct of_clk_provider {
+@@ -3004,6 +3004,7 @@ struct of_clk_provider {
  
  	struct device_node *node;
  	struct clk *(*get)(struct of_phandle_args *clkspec, void *data);
@@ -38,7 +38,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  	void *data;
  };
  
-@@ -3017,6 +3018,12 @@ struct clk *of_clk_src_simple_get(struct
+@@ -3020,6 +3021,12 @@ struct clk *of_clk_src_simple_get(struct
  }
  EXPORT_SYMBOL_GPL(of_clk_src_simple_get);
  
@@ -51,7 +51,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data)
  {
  	struct clk_onecell_data *clk_data = data;
-@@ -3031,6 +3038,21 @@ struct clk *of_clk_src_onecell_get(struc
+@@ -3034,6 +3041,21 @@ struct clk *of_clk_src_onecell_get(struc
  }
  EXPORT_SYMBOL_GPL(of_clk_src_onecell_get);
  
@@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  /**
   * of_clk_add_provider() - Register a clock provider for a node
   * @np: Device node pointer associated with clock provider
-@@ -3067,6 +3089,41 @@ int of_clk_add_provider(struct device_no
+@@ -3070,6 +3092,41 @@ int of_clk_add_provider(struct device_no
  EXPORT_SYMBOL_GPL(of_clk_add_provider);
  
  /**
@@ -115,7 +115,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
   * of_clk_del_provider() - Remove a previously registered clock provider
   * @np: Device node pointer associated with clock provider
   */
-@@ -3087,11 +3144,32 @@ void of_clk_del_provider(struct device_n
+@@ -3090,11 +3147,32 @@ void of_clk_del_provider(struct device_n
  }
  EXPORT_SYMBOL_GPL(of_clk_del_provider);
  
@@ -148,7 +148,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
  
  	if (!clkspec)
  		return ERR_PTR(-EINVAL);
-@@ -3100,10 +3178,9 @@ struct clk *__of_clk_get_from_provider(s
+@@ -3103,10 +3181,9 @@ struct clk *__of_clk_get_from_provider(s
  	mutex_lock(&of_clk_mutex);
  	list_for_each_entry(provider, &of_clk_providers, link) {
  		if (provider->node == clkspec->np)

+ 2 - 2
target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch

@@ -27,7 +27,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2753,10 +2753,10 @@ choice
+@@ -2756,10 +2756,10 @@ choice
  		  the documented boot protocol using a device tree.
  
  	config MIPS_RAW_APPENDED_DTB
@@ -40,7 +40,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  		  (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
  
  		  This is meant as a backward compatibility convenience for those
-@@ -2768,24 +2768,6 @@ choice
+@@ -2771,24 +2771,6 @@ choice
  		  look like a DTB header after a reboot if no actual DTB is appended
  		  to vmlinux.bin.  Do not leave this option active in a production kernel
  		  if you don't intend to always append a DTB.

+ 1 - 1
target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch

@@ -36,7 +36,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
 
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
-@@ -207,6 +207,8 @@ void __init plat_mem_setup(void)
+@@ -208,6 +208,8 @@ void __init plat_mem_setup(void)
  	fdt_start = fw_getenvl("fdt_start");
  	if (fdt_start)
  		__dt_setup_arch((void *)KSEG0ADDR(fdt_start));

+ 1 - 1
target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch

@@ -75,7 +75,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -5372,7 +5372,7 @@ static void __init_refok alloc_node_mem_
+@@ -5370,7 +5370,7 @@ static void __init_refok alloc_node_mem_
  		mem_map = NODE_DATA(0)->node_mem_map;
  #if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
  		if (page_to_pfn(mem_map) != pgdat->node_start_pfn)

+ 3 - 3
target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch

@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	.get_acl =	jffs2_get_acl,
  	.set_acl =	jffs2_set_acl,
  	.setattr =	jffs2_setattr,
-@@ -754,8 +754,27 @@ static int jffs2_mknod (struct inode *di
+@@ -750,8 +750,27 @@ static int jffs2_mknod (struct inode *di
  	return ret;
  }
  
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  {
  	int ret;
  	struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
-@@ -763,6 +782,9 @@ static int jffs2_rename (struct inode *o
+@@ -759,6 +778,9 @@ static int jffs2_rename (struct inode *o
  	uint8_t type;
  	uint32_t now;
  
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	/* The VFS will check for us and prevent trying to rename a
  	 * file over a directory and vice versa, but if it's a directory,
  	 * the VFS can't check whether the victim is empty. The filesystem
-@@ -826,9 +848,14 @@ static int jffs2_rename (struct inode *o
+@@ -822,9 +844,14 @@ static int jffs2_rename (struct inode *o
  	if (d_is_dir(old_dentry) && !victim_f)
  		inc_nlink(new_dir_i);
  

+ 4 - 4
target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch

@@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -779,18 +779,31 @@ static int jffs2_rename (struct inode *o
+@@ -775,18 +775,31 @@ static int jffs2_rename (struct inode *o
  	int ret;
  	struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
  	struct jffs2_inode_info *victim_f = NULL;
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
  		if (d_is_dir(new_dentry)) {
  			struct jffs2_full_dirent *fd;
-@@ -825,7 +838,7 @@ static int jffs2_rename (struct inode *o
+@@ -821,7 +834,7 @@ static int jffs2_rename (struct inode *o
  	if (ret)
  		return ret;
  
@@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		/* There was a victim. Kill it off nicely */
  		if (d_is_dir(new_dentry))
  			clear_nlink(d_inode(new_dentry));
-@@ -845,12 +858,18 @@ static int jffs2_rename (struct inode *o
+@@ -841,12 +854,18 @@ static int jffs2_rename (struct inode *o
  
  	/* If it was a directory we moved, and there was no victim,
  	   increase i_nlink on its new parent */
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	else
  		/* Unlink the original */
  		ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -882,7 +901,7 @@ static int jffs2_rename (struct inode *o
+@@ -878,7 +897,7 @@ static int jffs2_rename (struct inode *o
  		return ret;
  	}
  

+ 2 - 2
target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch

@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1619,6 +1619,7 @@ config CPU_CAVIUM_OCTEON
+@@ -1622,6 +1622,7 @@ config CPU_CAVIUM_OCTEON
  	select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
  	select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
  	select MIPS_L1_CACHE_SHIFT_7
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	help
  	  The Cavium Octeon processor is a highly integrated chip containing
  	  many ethernet hardware widgets for networking tasks. The processor
-@@ -1914,6 +1915,9 @@ config MIPS_MALTA_PM
+@@ -1917,6 +1918,9 @@ config MIPS_MALTA_PM
  	bool
  	default y
  

+ 1 - 1
target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch

@@ -51,7 +51,7 @@
  	} else if (argc != 1)
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1345,6 +1345,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1358,6 +1358,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
  	  the unaligned access emulation.
  	  see arch/parisc/kernel/unaligned.c for reference
  

+ 7 - 7
target/linux/generic/patches-4.4/204-module_strip.patch

@@ -89,7 +89,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -2033,6 +2033,13 @@ config MODULE_COMPRESS_XZ
+@@ -2046,6 +2046,13 @@ config MODULE_COMPRESS_XZ
  
  endchoice
  
@@ -123,7 +123,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	set_license(mod, get_modinfo(info, "license"));
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1964,7 +1964,9 @@ static void read_symbols(char *modname)
+@@ -1966,7 +1966,9 @@ static void read_symbols(char *modname)
  		symname = remove_dot(info.strtab + sym->st_name);
  
  		handle_modversions(mod, &info, sym, symname);
@@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	}
  	if (!is_vmlinux(modname) ||
  	     (is_vmlinux(modname) && vmlinux_section_warnings))
-@@ -2108,7 +2110,9 @@ static void add_header(struct buffer *b,
+@@ -2110,7 +2112,9 @@ static void add_header(struct buffer *b,
  	buf_printf(b, "#include <linux/vermagic.h>\n");
  	buf_printf(b, "#include <linux/compiler.h>\n");
  	buf_printf(b, "\n");
@@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	buf_printf(b, "\n");
  	buf_printf(b, "__visible struct module __this_module\n");
  	buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -2125,8 +2129,10 @@ static void add_header(struct buffer *b,
+@@ -2127,8 +2131,10 @@ static void add_header(struct buffer *b,
  
  static void add_intree_flag(struct buffer *b, int is_intree)
  {
@@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* Cannot check for assembler */
-@@ -2139,10 +2145,12 @@ static void add_retpoline(struct buffer
+@@ -2141,10 +2147,12 @@ static void add_retpoline(struct buffer
  
  static void add_staging_flag(struct buffer *b, const char *name)
  {
@@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* In kernel, this size is defined in linux/module.h;
-@@ -2246,11 +2254,13 @@ static void add_depends(struct buffer *b
+@@ -2248,11 +2256,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -181,7 +181,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static void write_if_changed(struct buffer *b, const char *fname)
-@@ -2485,7 +2495,9 @@ int main(int argc, char **argv)
+@@ -2487,7 +2497,9 @@ int main(int argc, char **argv)
  		add_staging_flag(&buf, mod->name);
  		err |= add_versions(&buf, mod);
  		add_depends(&buf, mod, modules);

+ 1 - 1
target/linux/generic/patches-4.4/221-module_exports.patch

@@ -54,7 +54,7 @@
  	}
 --- a/scripts/Makefile.build
 +++ b/scripts/Makefile.build
-@@ -372,7 +372,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
+@@ -380,7 +380,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
  # Linker scripts preprocessor (.lds.S -> .lds)
  # ---------------------------------------------------------------------------
  quiet_cmd_cpp_lds_S = LDS     $@

+ 4 - 8
target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch

@@ -1,7 +1,5 @@
-Index: linux-4.4.178/include/uapi/linux/if_ether.h
-===================================================================
---- linux-4.4.178.orig/include/uapi/linux/if_ether.h
-+++ linux-4.4.178/include/uapi/linux/if_ether.h
+--- a/include/uapi/linux/if_ether.h
++++ b/include/uapi/linux/if_ether.h
 @@ -22,6 +22,7 @@
  #define _UAPI_LINUX_IF_ETHER_H
  
@@ -22,10 +20,8 @@ Index: linux-4.4.178/include/uapi/linux/if_ether.h
  #define __UAPI_DEF_ETHHDR		1
  #endif
  
-Index: linux-4.4.178/include/uapi/linux/libc-compat.h
-===================================================================
---- linux-4.4.178.orig/include/uapi/linux/libc-compat.h
-+++ linux-4.4.178/include/uapi/linux/libc-compat.h
+--- a/include/uapi/linux/libc-compat.h
++++ b/include/uapi/linux/libc-compat.h
 @@ -160,6 +160,8 @@
  #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
  /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */

+ 2 - 2
target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch

@@ -8,7 +8,7 @@ Acked-by: Rob Landley <rob@landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1033,9 +1033,6 @@ config FW_ARC
+@@ -1036,9 +1036,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
  	bool
  
@@ -18,7 +18,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
  	bool
  
-@@ -2793,6 +2790,18 @@ choice
+@@ -2796,6 +2793,18 @@ choice
  		bool "Bootloader kernel arguments if available"
  endchoice
  

+ 1 - 1
target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1124,6 +1124,10 @@ config SYNC_R4K
+@@ -1127,6 +1127,10 @@ config SYNC_R4K
  config MIPS_MACHINE
  	def_bool n
  

+ 1 - 1
target/linux/generic/patches-4.4/304-mips_disable_fpu.patch

@@ -26,7 +26,7 @@ v2: incorporated changes suggested by Jonas Gorski
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2725,6 +2725,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2728,6 +2728,20 @@ config MIPS_O32_FP64_SUPPORT
  
  	  If unsure, say N.
  

+ 2 - 2
target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch

@@ -21,8 +21,8 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
 
 --- a/arch/arc/kernel/head.S
 +++ b/arch/arc/kernel/head.S
-@@ -49,6 +49,16 @@
- 1:
+@@ -59,6 +59,16 @@
+ #endif
  .endm
  
 +; Here "patch-dtb" will embed external .dtb

+ 1 - 1
target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch

@@ -8,7 +8,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
  1 file changed, 1 insertion(+)
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -1830,6 +1830,7 @@ static int __xipram do_write_buffer(stru
+@@ -1831,6 +1831,7 @@ static int __xipram do_write_buffer(stru
  
  	/* Write Buffer Load */
  	map_write(map, CMD(0x25), cmd_adr);

+ 1 - 1
target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch

@@ -4,7 +4,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1166,6 +1166,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1172,6 +1172,7 @@ int spi_nor_scan(struct spi_nor *nor, co
  
  	if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
  	    JEDEC_MFR(info) == SNOR_MFR_INTEL ||

+ 2 - 2
target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch

@@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1203,6 +1203,49 @@ static struct mtd_info * __init open_mtd
+@@ -1217,6 +1217,49 @@ static struct mtd_info * __init open_mtd
  	return mtd;
  }
  
@@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  static int __init ubi_init(void)
  {
  	int err, i, k;
-@@ -1286,6 +1329,12 @@ static int __init ubi_init(void)
+@@ -1300,6 +1343,12 @@ static int __init ubi_init(void)
  		}
  	}
  

+ 4 - 4
target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch

@@ -1,7 +1,7 @@
 --- a/drivers/mtd/ubi/attach.c
 +++ b/drivers/mtd/ubi/attach.c
-@@ -803,6 +803,13 @@ out_unlock:
- 	return err;
+@@ -851,6 +851,13 @@ static bool vol_ignored(int vol_id)
+ #endif
  }
  
 +static bool ec_hdr_has_eof(struct ubi_ec_hdr *ech)
@@ -14,7 +14,7 @@
  /**
   * scan_peb - scan and process UBI headers of a PEB.
   * @ubi: UBI device description object
-@@ -833,9 +840,21 @@ static int scan_peb(struct ubi_device *u
+@@ -880,9 +887,21 @@ static int scan_peb(struct ubi_device *u
  		return 0;
  	}
  
@@ -41,7 +41,7 @@
  		break;
 --- a/drivers/mtd/ubi/ubi.h
 +++ b/drivers/mtd/ubi/ubi.h
-@@ -741,6 +741,7 @@ struct ubi_attach_info {
+@@ -747,6 +747,7 @@ struct ubi_attach_info {
  	int mean_ec;
  	uint64_t ec_sum;
  	int ec_count;

+ 1 - 1
target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch

@@ -206,7 +206,7 @@
 +}
 --- a/fs/jffs2/super.c
 +++ b/fs/jffs2/super.c
-@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void)
+@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void)
  	BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
  	BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
  

+ 2 - 2
target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch

@@ -59,7 +59,7 @@
  	if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
  		return -ENOMEM;
  
-@@ -957,6 +985,7 @@ copy_entries_to_user(unsigned int total_
+@@ -958,6 +986,7 @@ copy_entries_to_user(unsigned int total_
  	const struct xt_table_info *private = table->private;
  	int ret = 0;
  	const void *loc_cpu_entry;
@@ -67,7 +67,7 @@
  
  	counters = alloc_counters(table);
  	if (IS_ERR(counters))
-@@ -983,6 +1012,14 @@ copy_entries_to_user(unsigned int total_
+@@ -984,6 +1013,14 @@ copy_entries_to_user(unsigned int total_
  			ret = -EFAULT;
  			goto free_counters;
  		}

+ 2 - 2
target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch

@@ -10,7 +10,7 @@
  /* "Be conservative in what you do,
      be liberal in what you accept from others."
      If it's non-zero, we mark only out of window RST segments as INVALID. */
-@@ -515,6 +518,9 @@ static bool tcp_in_window(const struct n
+@@ -519,6 +522,9 @@ static bool tcp_in_window(const struct n
  	s32 receiver_offset;
  	bool res, in_recv_win;
  
@@ -20,7 +20,7 @@
  	/*
  	 * Get the required data from the packet.
  	 */
-@@ -1481,6 +1487,13 @@ static struct ctl_table tcp_sysctl_table
+@@ -1485,6 +1491,13 @@ static struct ctl_table tcp_sysctl_table
  		.mode		= 0644,
  		.proc_handler	= proc_dointvec,
  	},

+ 8 - 8
target/linux/generic/patches-4.4/630-packet_socket_type.patch

@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #define PACKET_FANOUT_LB		1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1777,6 +1777,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1784,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
  	struct sock *sk;
  	struct sockaddr_pkt *spkt;
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  	/*
  	 *	When we registered the protocol we saved the socket in the data
-@@ -1784,6 +1785,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1791,6 +1792,7 @@ static int packet_rcv_spkt(struct sk_buf
  	 */
  
  	sk = pt->af_packet_priv;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  	/*
  	 *	Yank back the headers [hope the device set this
-@@ -1796,7 +1798,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1803,7 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf
  	 *	so that this procedure is noop.
  	 */
  
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		goto out;
  
  	if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1999,12 +2001,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2006,12 +2008,12 @@ static int packet_rcv(struct sk_buff *sk
  	int skb_len = skb->len;
  	unsigned int snaplen, res;
  
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  
-@@ -2124,12 +2126,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2131,12 +2133,12 @@ static int tpacket_rcv(struct sk_buff *s
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  
-@@ -3126,6 +3128,7 @@ static int packet_create(struct net *net
+@@ -3143,6 +3145,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 <nbd@nbd.name>
  
  	if (sock->type == SOCK_PACKET)
  		po->prot_hook.func = packet_rcv_spkt;
-@@ -3755,6 +3758,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3801,6 +3804,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 <nbd@nbd.name>
  	default:
  		return -ENOPROTOOPT;
  	}
-@@ -3807,6 +3820,13 @@ static int packet_getsockopt(struct sock
+@@ -3853,6 +3866,13 @@ static int packet_getsockopt(struct sock
  	case PACKET_VNET_HDR:
  		val = po->has_vnet_hdr;
  		break;

+ 4 - 4
target/linux/generic/patches-4.4/642-bridge_port_isolate.patch

@@ -61,7 +61,7 @@ Isolating individual bridge ports
  		skb = NULL;
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
-@@ -141,7 +141,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
+@@ -140,7 +140,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
  /* called with rcu_read_lock */
  void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0)
  {
@@ -70,7 +70,7 @@ Isolating individual bridge ports
  		if (skb0)
  			deliver_clone(to, skb, __br_forward);
  		else
-@@ -197,7 +197,7 @@ static void br_flood(struct net_bridge *
+@@ -196,7 +196,7 @@ static void br_flood(struct net_bridge *
  		     struct sk_buff *skb0,
  		     void (*__packet_hook)(const struct net_bridge_port *p,
  					   struct sk_buff *skb),
@@ -79,7 +79,7 @@ Isolating individual bridge ports
  {
  	struct net_bridge_port *p;
  	struct net_bridge_port *prev;
-@@ -205,6 +205,8 @@ static void br_flood(struct net_bridge *
+@@ -204,6 +204,8 @@ static void br_flood(struct net_bridge *
  	prev = NULL;
  
  	list_for_each_entry_rcu(p, &br->port_list, list) {
@@ -88,7 +88,7 @@ Isolating individual bridge ports
  		/* Do not flood unicast traffic to ports that turn it off */
  		if (unicast && !(p->flags & BR_FLOOD))
  			continue;
-@@ -239,14 +241,14 @@ out:
+@@ -238,14 +240,14 @@ out:
  /* called with rcu_read_lock */
  void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast)
  {

+ 15 - 15
target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch

@@ -172,7 +172,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  			if (err)
  				break;
  		}
-@@ -1439,7 +1465,8 @@ br_multicast_leave_group(struct net_brid
+@@ -1432,7 +1458,8 @@ br_multicast_leave_group(struct net_brid
  			 struct net_bridge_port *port,
  			 struct br_ip *group,
  			 struct bridge_mcast_other_query *other_query,
@@ -182,7 +182,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  {
  	struct net_bridge_mdb_htable *mdb;
  	struct net_bridge_mdb_entry *mp;
-@@ -1463,7 +1490,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1456,7 +1483,7 @@ br_multicast_leave_group(struct net_brid
  		for (pp = &mp->ports;
  		     (p = mlock_dereference(*pp, br)) != NULL;
  		     pp = &p->next) {
@@ -191,7 +191,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  				continue;
  
  			rcu_assign_pointer(*pp, p->next);
-@@ -1526,7 +1553,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1519,7 +1546,7 @@ br_multicast_leave_group(struct net_brid
  	for (p = mlock_dereference(mp->ports, br);
  	     p != NULL;
  	     p = mlock_dereference(p->next, br)) {
@@ -200,7 +200,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  			continue;
  
  		if (!hlist_unhashed(&p->mglist) &&
-@@ -1544,8 +1571,8 @@ out:
+@@ -1537,8 +1564,8 @@ out:
  
  static void br_ip4_multicast_leave_group(struct net_bridge *br,
  					 struct net_bridge_port *port,
@@ -211,7 +211,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  {
  	struct br_ip br_group;
  	struct bridge_mcast_own_query *own_query;
-@@ -1560,14 +1587,14 @@ static void br_ip4_multicast_leave_group
+@@ -1553,14 +1580,14 @@ static void br_ip4_multicast_leave_group
  	br_group.vid = vid;
  
  	br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
@@ -228,7 +228,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  {
  	struct br_ip br_group;
  	struct bridge_mcast_own_query *own_query;
-@@ -1582,7 +1609,7 @@ static void br_ip6_multicast_leave_group
+@@ -1575,7 +1602,7 @@ static void br_ip6_multicast_leave_group
  	br_group.vid = vid;
  
  	br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
@@ -237,7 +237,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  }
  #endif
  
-@@ -1591,6 +1618,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1584,6 +1611,7 @@ static int br_multicast_ipv4_rcv(struct
  				 struct sk_buff *skb,
  				 u16 vid)
  {
@@ -245,7 +245,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  	struct sk_buff *skb_trimmed = NULL;
  	struct igmphdr *ih;
  	int err;
-@@ -1607,12 +1635,13 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1600,12 +1628,13 @@ static int br_multicast_ipv4_rcv(struct
  
  	BR_INPUT_SKB_CB(skb)->igmp = 1;
  	ih = igmp_hdr(skb);
@@ -260,7 +260,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  		break;
  	case IGMPV3_HOST_MEMBERSHIP_REPORT:
  		err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
-@@ -1621,7 +1650,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1614,7 +1643,7 @@ static int br_multicast_ipv4_rcv(struct
  		err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
  		break;
  	case IGMP_HOST_LEAVE_MESSAGE:
@@ -269,7 +269,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  		break;
  	}
  
-@@ -1637,6 +1666,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1630,6 +1659,7 @@ static int br_multicast_ipv6_rcv(struct
  				 struct sk_buff *skb,
  				 u16 vid)
  {
@@ -277,7 +277,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  	struct sk_buff *skb_trimmed = NULL;
  	struct mld_msg *mld;
  	int err;
-@@ -1656,8 +1686,9 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1649,8 +1679,9 @@ static int br_multicast_ipv6_rcv(struct
  
  	switch (mld->mld_type) {
  	case ICMPV6_MGM_REPORT:
@@ -288,7 +288,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  		break;
  	case ICMPV6_MLD2_REPORT:
  		err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
-@@ -1666,7 +1697,8 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1659,7 +1690,8 @@ static int br_multicast_ipv6_rcv(struct
  		err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
  		break;
  	case ICMPV6_MGM_REDUCTION:
@@ -333,7 +333,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  	rcu_assign_pointer(*pp, p);
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
-@@ -192,6 +192,34 @@ out:
+@@ -191,6 +191,34 @@ out:
  	return p;
  }
  
@@ -368,7 +368,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  /* called under bridge lock */
  static void br_flood(struct net_bridge *br, struct sk_buff *skb,
  		     struct sk_buff *skb0,
-@@ -264,6 +292,7 @@ static void br_multicast_flood(struct ne
+@@ -263,6 +291,7 @@ static void br_multicast_flood(struct ne
  	struct net_bridge_port *prev = NULL;
  	struct net_bridge_port_group *p;
  	struct hlist_node *rp;
@@ -376,7 +376,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  
  	rp = rcu_dereference(hlist_first_rcu(&br->router_list));
  	p = mdst ? rcu_dereference(mdst->ports) : NULL;
-@@ -274,10 +303,19 @@ static void br_multicast_flood(struct ne
+@@ -273,10 +302,19 @@ static void br_multicast_flood(struct ne
  		rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) :
  			     NULL;
  

+ 1 - 1
target/linux/generic/patches-4.4/653-disable_netlink_trim.patch

@@ -1,6 +1,6 @@
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
-@@ -1231,24 +1231,7 @@ void netlink_detachskb(struct sock *sk,
+@@ -1241,24 +1241,7 @@ void netlink_detachskb(struct sock *sk,
  
  static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
  {

+ 1 - 1
target/linux/generic/patches-4.4/655-increase_skb_pad.patch

@@ -1,6 +1,6 @@
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2177,7 +2177,7 @@ static inline int pskb_network_may_pull(
+@@ -2182,7 +2182,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD

+ 1 - 1
target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch

@@ -84,7 +84,7 @@
  		if (!qdisc)
 --- a/net/sched/sch_api.c
 +++ b/net/sched/sch_api.c
-@@ -1951,7 +1951,7 @@ static int __init pktsched_init(void)
+@@ -1950,7 +1950,7 @@ static int __init pktsched_init(void)
  		return err;
  	}
  

+ 3 - 3
target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch

@@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2370,6 +2370,7 @@ static const char *const rtn_type_names[
+@@ -2380,6 +2380,7 @@ static const char *const rtn_type_names[
  	[RTN_THROW] = "THROW",
  	[RTN_NAT] = "NAT",
  	[RTN_XRESOLVE] = "XRESOLVE",
@@ -78,7 +78,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
 --- a/net/ipv4/ipmr.c
 +++ b/net/ipv4/ipmr.c
-@@ -182,6 +182,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -183,6 +183,7 @@ static int ipmr_rule_action(struct fib_r
  	case FR_ACT_UNREACHABLE:
  		return -ENETUNREACH;
  	case FR_ACT_PROHIBIT:
@@ -101,7 +101,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  	table = fib6_get_table(net, rule->table);
 --- a/net/ipv6/ip6mr.c
 +++ b/net/ipv6/ip6mr.c
-@@ -167,6 +167,8 @@ static int ip6mr_rule_action(struct fib_
+@@ -169,6 +169,8 @@ static int ip6mr_rule_action(struct fib_
  		return -ENETUNREACH;
  	case FR_ACT_PROHIBIT:
  		return -EACCES;

+ 1 - 1
target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch

@@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -642,7 +642,8 @@ struct sk_buff {
+@@ -647,7 +647,8 @@ struct sk_buff {
  
  	__u8			inner_protocol_type:1;
  	__u8			remcsum_offload:1;

+ 1 - 1
target/linux/generic/patches-4.4/701-phy_extension.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -385,6 +385,50 @@ int phy_ethtool_gset(struct phy_device *
+@@ -391,6 +391,50 @@ int phy_ethtool_gset(struct phy_device *
  }
  EXPORT_SYMBOL(phy_ethtool_gset);
  

+ 2 - 2
target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch

@@ -9,7 +9,7 @@
  /**
   * mdiobus_alloc_size - allocate a mii_bus structure
   * @size: extra amount of memory to allocate for private storage.
-@@ -346,9 +348,21 @@ void mdiobus_free(struct mii_bus *bus)
+@@ -345,9 +347,21 @@ void mdiobus_free(struct mii_bus *bus)
  }
  EXPORT_SYMBOL(mdiobus_free);
  
@@ -31,7 +31,7 @@
  	int err;
  
  	phydev = get_phy_device(bus, addr, false);
-@@ -361,6 +375,12 @@ struct phy_device *mdiobus_scan(struct m
+@@ -360,6 +374,12 @@ struct phy_device *mdiobus_scan(struct m
  	 */
  	of_mdiobus_link_phydev(bus, phydev);
  

+ 3 - 3
target/linux/generic/patches-4.4/721-phy_packets.patch

@@ -41,7 +41,7 @@
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2208,6 +2208,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2213,6 +2213,10 @@ static inline int pskb_trim(struct sk_bu
  	return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -52,7 +52,7 @@
  /**
   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *	@skb: buffer to alter
-@@ -2314,16 +2318,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2319,16 +2323,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
@@ -121,7 +121,7 @@
  
  #include <net/protocol.h>
  #include <net/dst.h>
-@@ -520,6 +521,22 @@ skb_fail:
+@@ -524,6 +525,22 @@ skb_fail:
  }
  EXPORT_SYMBOL(__napi_alloc_skb);
  

+ 5 - 5
target/linux/generic/patches-4.4/834-ledtrig-libata.patch

@@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	@tf: Target ATA taskfile
-@@ -4781,6 +4794,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4812,6 +4825,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  		if (tag < 0)
  			return NULL;
  	}
@@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  	qc = __ata_qc_from_tag(ap, tag);
  	qc->tag = tag;
-@@ -5678,6 +5694,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5708,6 +5724,9 @@ struct ata_port *ata_port_alloc(struct a
  	ap->stats.unhandled_irq = 1;
  	ap->stats.idle_irq = 1;
  #endif
@@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  	ata_sff_port_init(ap);
  
  	return ap;
-@@ -5699,6 +5718,12 @@ static void ata_host_release(struct devi
+@@ -5729,6 +5748,12 @@ static void ata_host_release(struct devi
  
  		kfree(ap->pmp_link);
  		kfree(ap->slave_link);
@@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  		kfree(ap);
  		host->ports[i] = NULL;
  	}
-@@ -6145,7 +6170,23 @@ int ata_host_register(struct ata_host *h
+@@ -6175,7 +6200,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;
  	}
@@ -138,7 +138,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
-@@ -877,6 +880,12 @@ struct ata_port {
+@@ -878,6 +881,12 @@ struct ata_port {
  #ifdef CONFIG_ATA_ACPI
  	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
  #endif

+ 2 - 2
target/linux/generic/patches-4.4/901-debloat_sock_diag.patch

@@ -25,7 +25,7 @@
  obj-$(CONFIG_PROC_FS) += net-procfs.o
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -1474,9 +1474,11 @@ void sk_destruct(struct sock *sk)
+@@ -1475,9 +1475,11 @@ void sk_destruct(struct sock *sk)
  
  static void __sk_free(struct sock *sk)
  {
@@ -39,7 +39,7 @@
  
 --- a/net/ipv4/Kconfig
 +++ b/net/ipv4/Kconfig
-@@ -415,6 +415,7 @@ config INET_LRO
+@@ -416,6 +416,7 @@ config INET_LRO
  
  config INET_DIAG
  	tristate "INET: socket monitoring interface"

+ 1 - 1
target/linux/generic/patches-4.4/904-debloat_dma_buf.patch

@@ -34,7 +34,7 @@
 +MODULE_LICENSE("GPL");
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -2096,6 +2096,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2097,6 +2097,7 @@ int wake_up_state(struct task_struct *p,
  {
  	return try_to_wake_up(p, state, 0);
  }

+ 1 - 1
target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch

@@ -9,7 +9,7 @@
  #ifdef CONFIG_UEVENT_HELPER
  /* path to the userspace helper executed on an event */
  extern char uevent_helper[];
-@@ -222,4 +224,7 @@ int add_uevent_var(struct kobj_uevent_en
+@@ -239,4 +241,7 @@ int add_uevent_var(struct kobj_uevent_en
  int kobject_action_type(const char *buf, size_t count,
  			enum kobject_action *type);
  

+ 1 - 1
target/linux/generic/patches-4.4/995-mangle_bootargs.patch

@@ -40,7 +40,7 @@
  	setup_per_cpu_areas();
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1655,6 +1655,15 @@ config EMBEDDED
+@@ -1668,6 +1668,15 @@ config EMBEDDED
  	  an embedded system so certain expert options are available
  	  for configuration.
  

+ 2 - 2
target/linux/ramips/patches-4.4/0013-owrt-hack-fix-mt7688-cache-issue.patch

@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/arch/mips/kernel/setup.c
 +++ b/arch/mips/kernel/setup.c
-@@ -696,7 +696,6 @@ static void __init arch_mem_init(char **
+@@ -768,7 +768,6 @@ static void __init arch_mem_init(char **
  				crashk_res.end - crashk_res.start + 1,
  				BOOTMEM_DEFAULT);
  #endif
@@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  	sparse_init();
  	plat_swiotlb_setup();
  	paging_init();
-@@ -809,6 +808,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -881,6 +880,7 @@ void __init setup_arch(char **cmdline_p)
  	prefill_possible_map();
  
  	cpu_cache_init();

+ 3 - 3
target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch

@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/media/usb/uvc/uvc_driver.c
 +++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -2665,6 +2665,18 @@ static struct usb_device_id uvc_ids[] =
+@@ -2673,6 +2673,18 @@ static struct usb_device_id uvc_ids[] =
  	  .bInterfaceSubClass	= 1,
  	  .bInterfaceProtocol	= 0,
  	  .driver_info		= UVC_QUIRK_FORCE_Y8 },
@@ -64,7 +64,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #include <media/v4l2-common.h>
  
-@@ -1092,9 +1097,149 @@ static void uvc_video_decode_data(struct
+@@ -1112,9 +1117,149 @@ static void uvc_video_decode_data(struct
  	}
  }
  
@@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  	/* Mark the buffer as done if the EOF marker is set. */
  	if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
  		uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
-@@ -1507,6 +1652,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1527,6 +1672,8 @@ static int uvc_init_video_isoc(struct uv
  	if (npackets == 0)
  		return -ENOMEM;
  

+ 1 - 1
target/linux/ramips/patches-4.4/0032-USB-dwc2-add-device_reset.patch

@@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #include <linux/usb/hcd.h>
  #include <linux/usb/ch11.h>
-@@ -3002,6 +3003,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
+@@ -3006,6 +3007,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
  
  	retval = -ENOMEM;
  

+ 5 - 5
target/linux/ramips/patches-4.4/0033-xhci-mediatek-support-MTK-xHCI-host-controller.patch

@@ -1420,7 +1420,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
  /*
   * Returns zero if the TRB isn't in this segment, otherwise it returns the DMA
-@@ -3113,17 +3114,22 @@ static u32 xhci_td_remainder(struct xhci
+@@ -3116,17 +3117,22 @@ static u32 xhci_td_remainder(struct xhci
  {
  	u32 maxp, total_packet_count;
  
@@ -1447,7 +1447,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  	/* Queueing functions don't count the current TRB into transferred */
  	return (total_packet_count - ((transferred + trb_buff_len) / maxp));
  }
-@@ -3511,7 +3517,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3514,7 +3520,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
  		field |= 0x1;
  
  	/* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */
@@ -1479,7 +1479,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  	writel(temp, &xhci->ir_set->irq_control);
  
  	/* Set the HCD state before we enable the irqs */
-@@ -1691,6 +1696,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
+@@ -1730,6 +1735,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
  
  	xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
  
@@ -1489,7 +1489,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  	xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
  			(unsigned int) ep->desc.bEndpointAddress,
  			udev->slot_id,
-@@ -1786,6 +1794,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
+@@ -1825,6 +1833,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
  		return -ENOMEM;
  	}
  
@@ -1507,7 +1507,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1634,6 +1634,7 @@ struct xhci_hcd {
+@@ -1639,6 +1639,7 @@ struct xhci_hcd {
  /* For controllers with a broken beyond repair streams implementation */
  #define XHCI_BROKEN_STREAMS	(1 << 19)
  #define XHCI_PME_STUCK_QUIRK	(1 << 20)

+ 4 - 4
target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch

@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
+@@ -896,7 +896,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 <blogic@openwrt.org>
  			phydev->adjust_link(phydev->attached_dev);
  			break;
  		}
-@@ -982,7 +983,8 @@ void phy_state_machine(struct work_struc
+@@ -988,7 +989,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 <blogic@openwrt.org>
  		}
  
  		phydev->adjust_link(phydev->attached_dev);
-@@ -994,7 +996,8 @@ void phy_state_machine(struct work_struc
+@@ -1000,7 +1002,8 @@ void phy_state_machine(struct work_struc
  	case PHY_HALTED:
  		if (phydev->link) {
  			phydev->link = 0;
@@ -43,7 +43,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  		}
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -377,6 +377,7 @@ struct phy_device {
+@@ -373,6 +373,7 @@ struct phy_device {
  	bool is_pseudo_fixed_link;
  	bool has_fixups;
  	bool suspended;

+ 4 - 4
target/linux/ramips/patches-4.4/0037-mtd-cfi-cmdset-0002-force-word-write.patch

@@ -16,7 +16,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
 -#define FORCE_WORD_WRITE 0
 +#define FORCE_WORD_WRITE 1
  
- #define MAX_WORD_RETRIES 3
+ #define MAX_RETRIES 3
  
 @@ -51,7 +51,9 @@
  
@@ -44,7 +44,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  
  /* Atmel chips don't use the same PRI format as AMD chips */
  static void fixup_convert_atmel_pri(struct mtd_info *mtd)
-@@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct
+@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct
  /*
   * FIXME: interleaved mode not tested, and probably not supported!
   */
@@ -52,7 +52,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
  				    unsigned long adr, const u_char *buf,
  				    int len)
-@@ -1917,7 +1922,6 @@ static int __xipram do_write_buffer(stru
+@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru
  	return ret;
  }
  
@@ -60,7 +60,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
  				    size_t *retlen, const u_char *buf)
  {
-@@ -1992,6 +1996,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru
  
  	return 0;
  }

+ 1 - 1
target/linux/ramips/patches-4.4/0039-mtd-add-mt7621-nand-support.patch

@@ -4078,7 +4078,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  {
  	struct nand_chip *chip = mtd->priv;
  
-@@ -829,7 +829,7 @@ static void panic_nand_get_device(struct
+@@ -834,7 +834,7 @@ static void panic_nand_get_device(struct
   *
   * Get the device and lock it for exclusive access
   */

+ 3 - 3
target/linux/ramips/patches-4.4/0040-nand-add-mtk-nand-hack-hook.patch

@@ -100,7 +100,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
-@@ -1727,6 +1727,9 @@ static int nand_do_read_ops(struct mtd_i
+@@ -1732,6 +1732,9 @@ static int nand_do_read_ops(struct mtd_i
  						 __func__, buf);
  
  read_retry:
@@ -110,7 +110,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  			chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page);
  
  			/*
-@@ -1745,6 +1748,7 @@ read_retry:
+@@ -1750,6 +1753,7 @@ read_retry:
  			else
  				ret = chip->ecc.read_page(mtd, chip, bufpoi,
  							  oob_required, page);
@@ -118,7 +118,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  			if (ret < 0) {
  				if (use_bufpoi)
  					/* Invalidate page cache */
-@@ -2935,8 +2939,11 @@ int nand_erase_nand(struct mtd_info *mtd
+@@ -2943,8 +2947,11 @@ int nand_erase_nand(struct mtd_info *mtd
  		if (page <= chip->pagebuf && chip->pagebuf <
  		    (page + pages_per_block))
  			chip->pagebuf = -1;

+ 1 - 1
target/linux/ramips/patches-4.4/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch

@@ -25,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/mmc/host/Kconfig
 +++ b/drivers/mmc/host/Kconfig
-@@ -786,3 +786,5 @@ config MMC_MTK
+@@ -780,3 +780,5 @@ config MMC_MTK
  	  If you have a machine with a integrated SD/MMC card reader, say Y or M here.
  	  This is needed if support for any SD/SDIO/MMC devices is required.
  	  If unsure, say N.

+ 3 - 3
target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1014,6 +1014,66 @@ write_err:
+@@ -1020,6 +1020,66 @@ write_err:
  	return ret;
  }
  
@@ -67,7 +67,7 @@
  static int macronix_quad_enable(struct spi_nor *nor)
  {
  	int ret, val;
-@@ -1201,10 +1261,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1207,10 +1267,12 @@ int spi_nor_scan(struct spi_nor *nor, co
  	}
  
  	/* sst nor chips use AAI word program */
@@ -82,7 +82,7 @@
  
  	if (info->flags & USE_FSR)
  		nor->flags |= SNOR_F_USE_FSR;
-@@ -1232,11 +1294,20 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1238,11 +1300,20 @@ int spi_nor_scan(struct spi_nor *nor, co
  	mtd->writebufsize = nor->page_size;
  
  	if (np) {

+ 1 - 1
target/linux/ramips/patches-4.4/0511-net-mediatek-add-support-for-the-multiphy-carrier-pa.patch

@@ -25,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  	return IRQ_HANDLED;
 --- a/drivers/net/ethernet/mediatek/gsw_mt7620.h
 +++ b/drivers/net/ethernet/mediatek/gsw_mt7620.h
-@@ -119,5 +119,6 @@ u32 mt7530_mdio_r32(struct mt7620_gsw *g
+@@ -113,5 +113,6 @@ u32 mt7530_mdio_r32(struct mt7620_gsw *g
  u32 _mt7620_mii_write(struct mt7620_gsw *gsw, u32 phy_addr,
  			     u32 phy_register, u32 write_data);
  u32 _mt7620_mii_read(struct mt7620_gsw *gsw, int phy_addr, int phy_reg);

+ 1 - 1
target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch

@@ -51,7 +51,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  #define GSW_REG_PORT_PMCR(x)	(0x3000 + (x * 0x100))
  #define GSW_REG_PORT_STATUS(x)	(0x3008 + (x * 0x100))
  #define GSW_REG_SMACCR0		0x3fE4
-@@ -82,6 +84,7 @@
+@@ -76,6 +78,7 @@
  #define PHY_PRE_EN		BIT(30)
  #define PMY_MDC_CONF(_x)	((_x & 0x3f) << 24)
  

+ 2 - 2
target/linux/ramips/patches-4.4/0901-spansion_nand_id_fix.patch

@@ -13,7 +13,7 @@ Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
 
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
-@@ -3571,6 +3571,7 @@ static void nand_decode_ext_id(struct mt
+@@ -3579,6 +3579,7 @@ static void nand_decode_ext_id(struct mt
  	/*
  	 * Field definitions are in the following datasheets:
  	 * Old style (4,5 byte ID): Samsung K9GAG08U0M (p.32)
@@ -21,7 +21,7 @@ Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
  	 * New Samsung (6 byte ID): Samsung K9GAG08U0F (p.44)
  	 * Hynix MLC   (6 byte ID): Hynix H27UBG8T2B (p.22)
  	 *
-@@ -3668,6 +3669,19 @@ static void nand_decode_ext_id(struct mt
+@@ -3676,6 +3677,19 @@ static void nand_decode_ext_id(struct mt
  		*busw = (extid & 0x01) ? NAND_BUSWIDTH_16 : 0;
  
  		/*

+ 2 - 7
target/linux/ramips/patches-4.4/0902-mediatek-4-byte-spi-reset.patch

@@ -1,5 +1,3 @@
-diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
-index fe9ceb7..2151975 100644
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
 @@ -27,6 +27,9 @@
@@ -12,7 +10,7 @@ index fe9ceb7..2151975 100644
  #define	MAX_CMD_SIZE		6
  struct m25p {
  	struct spi_device	*spi;
-@@ -168,6 +171,17 @@ static int m25p80_erase(struct spi_nor *nor, loff_t offset)
+@@ -190,6 +193,17 @@ static int m25p80_erase(struct spi_nor *
  	return 0;
  }
  
@@ -30,7 +28,7 @@ index fe9ceb7..2151975 100644
  /*
   * board specific setup should have ensured the SPI clock used here
   * matches what the READ command supports, at least until this driver
-@@ -197,6 +211,7 @@ static int m25p_probe(struct spi_device *spi)
+@@ -219,6 +233,7 @@ static int m25p_probe(struct spi_device
  	nor->erase = m25p80_erase;
  	nor->write_reg = m25p80_write_reg;
  	nor->read_reg = m25p80_read_reg;
@@ -38,6 +36,3 @@ index fe9ceb7..2151975 100644
  
  	nor->dev = &spi->dev;
  	nor->flash_node = spi->dev.of_node;
--- 
-2.9.3
-