소스 검색

kernel: update to version 4.4.14

Changelog: https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.14

Some manual changes to target/linux/generic/patches-4.4/610-
netfilter_match_bypass_default_checks.patch were needed.

Signed-off-by: Hauke Mehrtens <[email protected]>
Hauke Mehrtens 9 년 전
부모
커밋
84d489f64f
47개의 변경된 파일566개의 추가작업 그리고 767개의 파일을 삭제
  1. 2 2
      include/kernel-version.mk
  2. 1 1
      target/linux/ar71xx/patches-4.4/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
  3. 2 2
      target/linux/brcm2708/patches-4.4/0027-Main-bcm2708-bcm2709-linux-port.patch
  4. 8 8
      target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch
  5. 2 2
      target/linux/brcm47xx/patches-4.4/160-kmap_coherent.patch
  6. 1 6
      target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch
  7. 1 1
      target/linux/generic/patches-4.4/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch
  8. 5 5
      target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
  9. 18 15
      target/linux/generic/patches-4.4/531-debloat_lzma.patch
  10. 8 17
      target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch
  11. 3 2
      target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch
  12. 2 2
      target/linux/generic/patches-4.4/834-ledtrig-libata.patch
  13. 1 1
      target/linux/ipq806x/patches-4.4/022-add-db149-dts.patch
  14. 3 3
      target/linux/ipq806x/patches-4.4/023-ARM-dts-ipq806x-Disable-i2c-device-on-gsbi4.patch
  15. 2 9
      target/linux/ipq806x/patches-4.4/037-mtd-add-SMEM-parser-for-QCOM-platforms.patch
  16. 4 4
      target/linux/ipq806x/patches-4.4/100-usb-phy-Add-Qualcomm-DWC3-HS-SS-PHY-drivers.patch
  17. 3 3
      target/linux/ipq806x/patches-4.4/111-PCI-qcom-Add-Qualcomm-PCIe-controller-driver.patch
  18. 2 2
      target/linux/ipq806x/patches-4.4/133-ARM-Add-Krait-L2-register-accessor-functions.patch
  19. 6 13
      target/linux/ipq806x/patches-4.4/134-clk-mux-Split-out-register-accessors-for-reuse.patch
  20. 5 10
      target/linux/ipq806x/patches-4.4/135-clk-Avoid-sending-high-rates-to-downstream-clocks-du.patch
  21. 5 12
      target/linux/ipq806x/patches-4.4/136-clk-Add-safe-switch-hook.patch
  22. 1 1
      target/linux/ipq806x/patches-4.4/137-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch
  23. 2 2
      target/linux/ipq806x/patches-4.4/138-clk-qcom-Add-HFPLL-driver.patch
  24. 2 2
      target/linux/ipq806x/patches-4.4/139-clk-qcom-Add-IPQ806X-s-HFPLLs.patch
  25. 2 3
      target/linux/ipq806x/patches-4.4/140-clk-qcom-Add-support-for-Krait-clocks.patch
  26. 3 3
      target/linux/ipq806x/patches-4.4/141-clk-qcom-Add-KPSS-ACC-GCC-driver.patch
  27. 2 2
      target/linux/ipq806x/patches-4.4/142-clk-qcom-Add-Krait-clock-controller-driver.patch
  28. 2 2
      target/linux/ipq806x/patches-4.4/143-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch
  29. 3 3
      target/linux/ipq806x/patches-4.4/145-cpufreq-Add-a-cpufreq-krait-based-on-cpufre.patch
  30. 2 2
      target/linux/ipq806x/patches-4.4/156-dmaengine-Add-ADM-driver.patch
  31. 3 3
      target/linux/ipq806x/patches-4.4/161-mtd-nand-Create-a-BBT-flag-to-access-bad-block-markers-in-raw-mode.patch
  32. 2 2
      target/linux/ipq806x/patches-4.4/162-mtd-nand-Qualcomm-NAND-controller-driver.patch
  33. 25 24
      target/linux/ipq806x/patches-4.4/168-ARM-qcom-add-smb208-DT.patch
  34. 2 2
      target/linux/ipq806x/patches-4.4/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch
  35. 328 489
      target/linux/ipq806x/patches-4.4/400-dsa-add-qca.patch
  36. 1 1
      target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
  37. 6 11
      target/linux/ipq806x/patches-4.4/709-spi-qup-Fix-fifo-and-dma-support-for-IPQ806x.patch
  38. 1 6
      target/linux/ipq806x/patches-4.4/710-watchdog-qcom-set-WDT_BARK_TIME-register-offset-to-o.patch
  39. 2 2
      target/linux/ipq806x/patches-4.4/711-stmmac-fix-ipq806x-DMA-configuration.patch
  40. 1 1
      target/linux/ipq806x/patches-4.4/800-devicetree.patch
  41. 5 5
      target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
  42. 41 40
      target/linux/lantiq/patches-4.4/0028-NET-lantiq-various-etop-fixes.patch
  43. 37 32
      target/linux/lantiq/patches-4.4/0160-owrt-lantiq-multiple-flash.patch
  44. 2 2
      target/linux/mediatek/patches-4.4/0103-nand_fixes.patch
  45. 1 1
      target/linux/octeon/patches-4.4/170-cisco-hack.patch
  46. 2 2
      target/linux/oxnas/patches-4.4/300-introduce-oxnas-platform.patch
  47. 4 4
      target/linux/ramips/patches-4.4/0720-arch-mips-ralink-add-i2c-clocks.patch

+ 2 - 2
include/kernel-version.mk

@@ -4,11 +4,11 @@ LINUX_RELEASE?=1
 
 
 LINUX_VERSION-3.18 = .29
 LINUX_VERSION-3.18 = .29
 LINUX_VERSION-4.1 = .20
 LINUX_VERSION-4.1 = .20
-LINUX_VERSION-4.4 = .13
+LINUX_VERSION-4.4 = .14
 
 
 LINUX_KERNEL_MD5SUM-3.18.29 = b25737a0bc98e80d12200de93f239c28
 LINUX_KERNEL_MD5SUM-3.18.29 = b25737a0bc98e80d12200de93f239c28
 LINUX_KERNEL_MD5SUM-4.1.20 = 075c38a3a23ca5bc80437b13606df00a
 LINUX_KERNEL_MD5SUM-4.1.20 = 075c38a3a23ca5bc80437b13606df00a
-LINUX_KERNEL_MD5SUM-4.4.13 = d70b6959d8db61bcea7070c089aace9b
+LINUX_KERNEL_MD5SUM-4.4.14 = 59e99c3bf5d495f1f95d26257962ca3e
 
 
 ifdef KERNEL_PATCHVER
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))

+ 1 - 1
target/linux/ar71xx/patches-4.4/608-MIPS-ath79-ubnt-xm-add-more-boards.patch

@@ -2,7 +2,7 @@
 +++ b/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
 @@ -68,12 +68,16 @@ config ATH79_MACH_PB44
 @@ -68,12 +68,16 @@ config ATH79_MACH_PB44
  	  Atheros PB44 reference board.
  	  Atheros PB44 reference board.
-
+ 
  config ATH79_MACH_UBNT_XM
  config ATH79_MACH_UBNT_XM
 -	bool "Ubiquiti Networks XM (rev 1.0) board"
 -	bool "Ubiquiti Networks XM (rev 1.0) board"
 +	bool "Ubiquiti Networks XM/UniFi boards"
 +	bool "Ubiquiti Networks XM/UniFi boards"

+ 2 - 2
target/linux/brcm2708/patches-4.4/0027-Main-bcm2708-bcm2709-linux-port.patch

@@ -75,7 +75,7 @@ Signed-off-by: Noralf Trønnes <[email protected]>
 
 
 --- a/arch/arm/Kconfig
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -317,6 +317,52 @@ choice
+@@ -318,6 +318,52 @@ choice
  	default ARCH_VERSATILE if !MMU
  	default ARCH_VERSATILE if !MMU
  	default ARCH_MULTIPLATFORM if MMU
  	default ARCH_MULTIPLATFORM if MMU
  
  
@@ -128,7 +128,7 @@ Signed-off-by: Noralf Trønnes <[email protected]>
  config ARCH_MULTIPLATFORM
  config ARCH_MULTIPLATFORM
  	bool "Allow multiple platforms to be selected"
  	bool "Allow multiple platforms to be selected"
  	depends on MMU
  	depends on MMU
-@@ -808,6 +854,9 @@ config ARCH_VIRT
+@@ -809,6 +855,9 @@ config ARCH_VIRT
  # Kconfigs may be included either alphabetically (according to the
  # Kconfigs may be included either alphabetically (according to the
  # plat- suffix) or along side the corresponding mach-* source.
  # plat- suffix) or along side the corresponding mach-* source.
  #
  #

+ 8 - 8
target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch

@@ -276,9 +276,9 @@
 +int bcm4710 = 0;
 +int bcm4710 = 0;
 +
 +
  /*
  /*
-  * Special Variant of smp_call_function for use by cache functions:
+  * Bits describing what cache ops an IPI callback function may perform.
   *
   *
-@@ -157,6 +160,9 @@ static void r4k_blast_dcache_user_page_s
+@@ -202,6 +205,9 @@ static void r4k_blast_dcache_user_page_s
  {
  {
  	unsigned long  dc_lsize = cpu_dcache_line_size();
  	unsigned long  dc_lsize = cpu_dcache_line_size();
  
  
@@ -288,7 +288,7 @@
  	if (dc_lsize == 0)
  	if (dc_lsize == 0)
  		r4k_blast_dcache_user_page = (void *)cache_noop;
  		r4k_blast_dcache_user_page = (void *)cache_noop;
  	else if (dc_lsize == 16)
  	else if (dc_lsize == 16)
-@@ -175,6 +181,9 @@ static void r4k_blast_dcache_page_indexe
+@@ -220,6 +226,9 @@ static void r4k_blast_dcache_page_indexe
  {
  {
  	unsigned long dc_lsize = cpu_dcache_line_size();
  	unsigned long dc_lsize = cpu_dcache_line_size();
  
  
@@ -298,7 +298,7 @@
  	if (dc_lsize == 0)
  	if (dc_lsize == 0)
  		r4k_blast_dcache_page_indexed = (void *)cache_noop;
  		r4k_blast_dcache_page_indexed = (void *)cache_noop;
  	else if (dc_lsize == 16)
  	else if (dc_lsize == 16)
-@@ -194,6 +203,9 @@ static void r4k_blast_dcache_setup(void)
+@@ -239,6 +248,9 @@ static void r4k_blast_dcache_setup(void)
  {
  {
  	unsigned long dc_lsize = cpu_dcache_line_size();
  	unsigned long dc_lsize = cpu_dcache_line_size();
  
  
@@ -308,7 +308,7 @@
  	if (dc_lsize == 0)
  	if (dc_lsize == 0)
  		r4k_blast_dcache = (void *)cache_noop;
  		r4k_blast_dcache = (void *)cache_noop;
  	else if (dc_lsize == 16)
  	else if (dc_lsize == 16)
-@@ -793,6 +805,8 @@ static void local_r4k_flush_cache_sigtra
+@@ -880,6 +892,8 @@ static void local_r4k_flush_cache_sigtra
  	unsigned long addr = (unsigned long) arg;
  	unsigned long addr = (unsigned long) arg;
  
  
  	R4600_HIT_CACHEOP_WAR_IMPL;
  	R4600_HIT_CACHEOP_WAR_IMPL;
@@ -317,7 +317,7 @@
  	if (dc_lsize)
  	if (dc_lsize)
  		protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
  		protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
  	if (!cpu_icache_snoops_remote_store && scache_size)
  	if (!cpu_icache_snoops_remote_store && scache_size)
-@@ -1602,6 +1616,17 @@ static void coherency_setup(void)
+@@ -1704,6 +1718,17 @@ static void coherency_setup(void)
  	 * silly idea of putting something else there ...
  	 * silly idea of putting something else there ...
  	 */
  	 */
  	switch (current_cpu_type()) {
  	switch (current_cpu_type()) {
@@ -335,7 +335,7 @@
  	case CPU_R4000PC:
  	case CPU_R4000PC:
  	case CPU_R4000SC:
  	case CPU_R4000SC:
  	case CPU_R4000MC:
  	case CPU_R4000MC:
-@@ -1648,6 +1673,15 @@ void r4k_cache_init(void)
+@@ -1750,6 +1775,15 @@ void r4k_cache_init(void)
  	extern void build_copy_page(void);
  	extern void build_copy_page(void);
  	struct cpuinfo_mips *c = &current_cpu_data;
  	struct cpuinfo_mips *c = &current_cpu_data;
  
  
@@ -351,7 +351,7 @@
  	probe_pcache();
  	probe_pcache();
  	setup_scache();
  	setup_scache();
  
  
-@@ -1717,7 +1751,15 @@ void r4k_cache_init(void)
+@@ -1819,7 +1853,15 @@ void r4k_cache_init(void)
  	 */
  	 */
  	local_r4k___flush_cache_all(NULL);
  	local_r4k___flush_cache_all(NULL);
  
  

+ 2 - 2
target/linux/brcm47xx/patches-4.4/160-kmap_coherent.patch

@@ -29,7 +29,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
  #endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */
  #endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */
 --- a/arch/mips/mm/c-r4k.c
 --- a/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
-@@ -600,7 +600,7 @@ static inline void local_r4k_flush_cache
+@@ -645,7 +645,7 @@ static inline void local_r4k_flush_cache
  		 */
  		 */
  		map_coherent = (cpu_has_dc_aliases &&
  		map_coherent = (cpu_has_dc_aliases &&
  				page_mapped(page) && !Page_dcache_dirty(page));
  				page_mapped(page) && !Page_dcache_dirty(page));
@@ -38,7 +38,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
  			vaddr = kmap_coherent(page, addr);
  			vaddr = kmap_coherent(page, addr);
  		else
  		else
  			vaddr = kmap_atomic(page);
  			vaddr = kmap_atomic(page);
-@@ -625,7 +625,7 @@ static inline void local_r4k_flush_cache
+@@ -670,7 +670,7 @@ static inline void local_r4k_flush_cache
  	}
  	}
  
  
  	if (vaddr) {
  	if (vaddr) {

+ 1 - 6
target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch

@@ -21,11 +21,9 @@ Signed-off-by: Daniel Golle <[email protected]>
  fs/ubifs/super.c | 5 +++--
  fs/ubifs/super.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
  1 file changed, 3 insertions(+), 2 deletions(-)
 
 
-diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
-index 7034995..736dd58 100644
 --- a/fs/ubifs/super.c
 --- a/fs/ubifs/super.c
 +++ b/fs/ubifs/super.c
 +++ b/fs/ubifs/super.c
-@@ -2108,8 +2108,9 @@ static struct dentry *ubifs_mount(struct file_system_type *fs_type, int flags,
+@@ -2107,8 +2107,9 @@ static struct dentry *ubifs_mount(struct
  	 */
  	 */
  	ubi = open_ubi(name, UBI_READONLY);
  	ubi = open_ubi(name, UBI_READONLY);
  	if (IS_ERR(ubi)) {
  	if (IS_ERR(ubi)) {
@@ -37,6 +35,3 @@ index 7034995..736dd58 100644
  		return ERR_CAST(ubi);
  		return ERR_CAST(ubi);
  	}
  	}
  
  
--- 
-2.8.3
-

+ 1 - 1
target/linux/generic/patches-4.4/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch

@@ -28,7 +28,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  
  
 -/* Coordinate with glibc net/if.h header. */
 -/* Coordinate with glibc net/if.h header. */
 +/* Coordinate with libc net/if.h header. */
 +/* Coordinate with libc net/if.h header. */
- #if defined(_NET_IF_H)
+ #if defined(_NET_IF_H) && defined(__USE_MISC)
  
  
 -/* GLIBC headers included first so don't define anything
 -/* GLIBC headers included first so don't define anything
 +/* LIBC headers included first so don't define anything
 +/* LIBC headers included first so don't define anything

+ 5 - 5
target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch

@@ -284,15 +284,15 @@ Signed-off-by: Yousong Zhou <[email protected]>
 +	EXPORT(kexec_argv_buf)
 +	EXPORT(kexec_argv_buf)
 +	.skip		KEXEC_COMMAND_LINE_SIZE
 +	.skip		KEXEC_COMMAND_LINE_SIZE
 +	.size		kexec_argv_buf, KEXEC_COMMAND_LINE_SIZE
 +	.size		kexec_argv_buf, KEXEC_COMMAND_LINE_SIZE
++
++kexec_argv:
++	EXPORT(kexec_argv)
++	.skip		KEXEC_ARGV_SIZE
++	.size		kexec_argv, KEXEC_ARGV_SIZE
  
  
 -relocate_new_kernel_size:
 -relocate_new_kernel_size:
 -	EXPORT(relocate_new_kernel_size)
 -	EXPORT(relocate_new_kernel_size)
 -	PTR		relocate_new_kernel_end - relocate_new_kernel
 -	PTR		relocate_new_kernel_end - relocate_new_kernel
 -	.size		relocate_new_kernel_size, PTRSIZE
 -	.size		relocate_new_kernel_size, PTRSIZE
-+kexec_argv:
-+	EXPORT(kexec_argv)
-+	.skip		KEXEC_ARGV_SIZE
-+	.size		kexec_argv, KEXEC_ARGV_SIZE
-+
 +kexec_relocate_new_kernel_end:
 +kexec_relocate_new_kernel_end:
 +	EXPORT(kexec_relocate_new_kernel_end)
 +	EXPORT(kexec_relocate_new_kernel_end)

+ 18 - 15
target/linux/generic/patches-4.4/531-debloat_lzma.patch

@@ -219,26 +219,26 @@
  {
  {
    UInt32 dicSize;
    UInt32 dicSize;
    Byte d;
    Byte d;
-@@ -935,33 +883,11 @@ static SRes LzmaDec_AllocateProbs2(CLzma
+@@ -935,7 +883,7 @@ static SRes LzmaDec_AllocateProbs2(CLzma
    return SZ_OK;
    return SZ_OK;
  }
  }
  
  
 -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
 -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
--{
--  CLzmaProps propNew;
--  RINOK(LzmaProps_Decode(&propNew, props, propsSize));
--  RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
--  p->prop = propNew;
--  return SZ_OK;
--}
--
--SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
 +static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
 +static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
  {
  {
    CLzmaProps propNew;
    CLzmaProps propNew;
--  SizeT dicBufSize;
    RINOK(LzmaProps_Decode(&propNew, props, propsSize));
    RINOK(LzmaProps_Decode(&propNew, props, propsSize));
-   RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
+@@ -943,28 +891,6 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
+   p->prop = propNew;
+   return SZ_OK;
+ }
+-
+-SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
+-{
+-  CLzmaProps propNew;
+-  SizeT dicBufSize;
+-  RINOK(LzmaProps_Decode(&propNew, props, propsSize));
+-  RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
 -  dicBufSize = propNew.dicSize;
 -  dicBufSize = propNew.dicSize;
 -  if (p->dic == 0 || dicBufSize != p->dicBufSize)
 -  if (p->dic == 0 || dicBufSize != p->dicBufSize)
 -  {
 -  {
@@ -251,9 +251,12 @@
 -    }
 -    }
 -  }
 -  }
 -  p->dicBufSize = dicBufSize;
 -  p->dicBufSize = dicBufSize;
-   p->prop = propNew;
-   return SZ_OK;
- }
+-  p->prop = propNew;
+-  return SZ_OK;
+-}
+ 
+ SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
+     const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
 --- a/include/linux/lzma/LzmaEnc.h
 --- a/include/linux/lzma/LzmaEnc.h
 +++ b/include/linux/lzma/LzmaEnc.h
 +++ b/include/linux/lzma/LzmaEnc.h
 @@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps
 @@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps

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

@@ -50,25 +50,16 @@
  static bool
  static bool
  ip_checkentry(const struct ipt_ip *ip)
  ip_checkentry(const struct ipt_ip *ip)
  {
  {
-@@ -569,7 +595,7 @@ static void cleanup_match(struct xt_entr
- }
- 
- static int
--check_entry(const struct ipt_entry *e, const char *name)
-+check_entry(struct ipt_entry *e, const char *name)
- {
- 	const struct xt_entry_target *t;
- 
-@@ -578,6 +604,8 @@ check_entry(const struct ipt_entry *e, c
- 		return -EINVAL;
- 	}
+@@ -664,6 +690,8 @@ find_check_entry(struct ipt_entry *e, st
+ 	struct xt_mtchk_param mtpar;
+ 	struct xt_entry_match *ematch;
  
  
 +	ip_checkdefault(&e->ip);
 +	ip_checkdefault(&e->ip);
 +
 +
- 	if (e->target_offset + sizeof(struct xt_entry_target) >
- 	    e->next_offset)
- 		return -EINVAL;
-@@ -944,6 +972,7 @@ copy_entries_to_user(unsigned int total_
+ 	e->counters.pcnt = xt_percpu_counter_alloc();
+ 	if (IS_ERR_VALUE(e->counters.pcnt))
+ 		return -ENOMEM;
+@@ -948,6 +976,7 @@ copy_entries_to_user(unsigned int total_
  	const struct xt_table_info *private = table->private;
  	const struct xt_table_info *private = table->private;
  	int ret = 0;
  	int ret = 0;
  	const void *loc_cpu_entry;
  	const void *loc_cpu_entry;
@@ -76,7 +67,7 @@
  
  
  	counters = alloc_counters(table);
  	counters = alloc_counters(table);
  	if (IS_ERR(counters))
  	if (IS_ERR(counters))
-@@ -970,6 +999,14 @@ copy_entries_to_user(unsigned int total_
+@@ -974,6 +1003,14 @@ copy_entries_to_user(unsigned int total_
  			ret = -EFAULT;
  			ret = -EFAULT;
  			goto free_counters;
  			goto free_counters;
  		}
  		}

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

@@ -382,6 +382,8 @@ Implement optinal multicast->unicast conversion for igmp snooping
  
  
 -		port = (unsigned long)lport > (unsigned long)rport ?
 -		port = (unsigned long)lport > (unsigned long)rport ?
 -		       lport : rport;
 -		       lport : rport;
+-
+-		prev = maybe_deliver(prev, port, skb, __packet_hook);
 +		if ((unsigned long)lport > (unsigned long)rport) {
 +		if ((unsigned long)lport > (unsigned long)rport) {
 +			port = lport;
 +			port = lport;
 +			addr = p->unicast ? p->eth_addr : NULL;
 +			addr = p->unicast ? p->eth_addr : NULL;
@@ -389,8 +391,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
 +			port = rport;
 +			port = rport;
 +			addr = NULL;
 +			addr = NULL;
 +		}
 +		}
- 
--		prev = maybe_deliver(prev, port, skb, __packet_hook);
++
 +		if (addr)
 +		if (addr)
 +			prev = maybe_deliver_addr(prev, port, skb, addr,
 +			prev = maybe_deliver_addr(prev, port, skb, addr,
 +						  __packet_hook);
 +						  __packet_hook);

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

@@ -110,11 +110,11 @@ Signed-off-by: Daniel Golle <[email protected]>
 +	for (i = 0; i < host->n_ports; i++) {
 +	for (i = 0; i < host->n_ports; i++) {
 +		if (unlikely(!host->ports[i]->ledtrig))
 +		if (unlikely(!host->ports[i]->ledtrig))
 +			continue;
 +			continue;
-+
+ 
 +		snprintf(host->ports[i]->ledtrig_name,
 +		snprintf(host->ports[i]->ledtrig_name,
 +			sizeof(host->ports[i]->ledtrig_name), "ata%u",
 +			sizeof(host->ports[i]->ledtrig_name), "ata%u",
 +			host->ports[i]->print_id);
 +			host->ports[i]->print_id);
- 
++
 +		host->ports[i]->ledtrig->name = host->ports[i]->ledtrig_name;
 +		host->ports[i]->ledtrig->name = host->ports[i]->ledtrig_name;
 +
 +
 +		if (led_trigger_register(host->ports[i]->ledtrig)) {
 +		if (led_trigger_register(host->ports[i]->ledtrig)) {

+ 1 - 1
target/linux/ipq806x/patches-4.4/022-add-db149-dts.patch

@@ -15,7 +15,7 @@ Signed-off-by: Mathieu Olivari <[email protected]>
 
 
 --- a/arch/arm/boot/dts/Makefile
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
-@@ -506,6 +506,7 @@
+@@ -506,6 +506,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
  	qcom-apq8084-ifc6540.dtb \
  	qcom-apq8084-ifc6540.dtb \
  	qcom-apq8084-mtp.dtb \
  	qcom-apq8084-mtp.dtb \
  	qcom-ipq8064-ap148.dtb \
  	qcom-ipq8064-ap148.dtb \

+ 3 - 3
target/linux/ipq806x/patches-4.4/023-ARM-dts-ipq806x-Disable-i2c-device-on-gsbi4.patch

@@ -23,7 +23,7 @@
  		gsbi5: gsbi@1a200000 {
  		gsbi5: gsbi@1a200000 {
 --- a/drivers/clk/qcom/gcc-ipq806x.c
 --- a/drivers/clk/qcom/gcc-ipq806x.c
 +++ b/drivers/clk/qcom/gcc-ipq806x.c
 +++ b/drivers/clk/qcom/gcc-ipq806x.c
-@@ -294,7 +294,7 @@
+@@ -294,7 +294,7 @@ static struct clk_rcg gsbi1_uart_src = {
  			.parent_names = gcc_pxo_pll8,
  			.parent_names = gcc_pxo_pll8,
  			.num_parents = 2,
  			.num_parents = 2,
  			.ops = &clk_rcg_ops,
  			.ops = &clk_rcg_ops,
@@ -32,7 +32,7 @@
  		},
  		},
  	},
  	},
  };
  };
-@@ -312,7 +312,7 @@
+@@ -312,7 +312,7 @@ static struct clk_branch gsbi1_uart_clk
  			},
  			},
  			.num_parents = 1,
  			.num_parents = 1,
  			.ops = &clk_branch_ops,
  			.ops = &clk_branch_ops,
@@ -41,7 +41,7 @@
  		},
  		},
  	},
  	},
  };
  };
-@@ -890,7 +890,7 @@
+@@ -890,7 +890,7 @@ static struct clk_branch gsbi1_h_clk = {
  		.hw.init = &(struct clk_init_data){
  		.hw.init = &(struct clk_init_data){
  			.name = "gsbi1_h_clk",
  			.name = "gsbi1_h_clk",
  			.ops = &clk_branch_ops,
  			.ops = &clk_branch_ops,

+ 2 - 9
target/linux/ipq806x/patches-4.4/037-mtd-add-SMEM-parser-for-QCOM-platforms.patch

@@ -16,11 +16,9 @@ Signed-off-by: Ram Chandra Jangir <[email protected]>
  3 files changed, 236 insertions(+)
  3 files changed, 236 insertions(+)
  create mode 100644 drivers/mtd/qcom_smem_part.c
  create mode 100644 drivers/mtd/qcom_smem_part.c
 
 
-diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
-index a03ad29..debc887 100644
 --- a/drivers/mtd/Kconfig
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
-@@ -190,6 +190,13 @@
+@@ -190,6 +190,13 @@ config MTD_MYLOADER_PARTS
  	  You will still need the parsing functions to be called by the driver
  	  You will still need the parsing functions to be called by the driver
  	  for your particular device. It won't happen automatically.
  	  for your particular device. It won't happen automatically.
  
  
@@ -34,11 +32,9 @@ index a03ad29..debc887 100644
  comment "User Modules And Translation Layers"
  comment "User Modules And Translation Layers"
  
  
  #
  #
-diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
-index 99bb9a1..2a44a64 100644
 --- a/drivers/mtd/Makefile
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
-@@ -16,6 +16,7 @@
+@@ -16,6 +16,7 @@ obj-$(CONFIG_MTD_AR7_PARTS)	+= ar7part.o
  obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63xxpart.o
  obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63xxpart.o
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
@@ -46,9 +42,6 @@ index 99bb9a1..2a44a64 100644
  
  
  # 'Users' - code which presents functionality to userspace.
  # 'Users' - code which presents functionality to userspace.
  obj-$(CONFIG_MTD_BLKDEVS)	+= mtd_blkdevs.o
  obj-$(CONFIG_MTD_BLKDEVS)	+= mtd_blkdevs.o
-diff --git a/drivers/mtd/qcom_smem_part.c b/drivers/mtd/qcom_smem_part.c
-new file mode 100644
-index 0000000..f9c1bca
 --- /dev/null
 --- /dev/null
 +++ b/drivers/mtd/qcom_smem_part.c
 +++ b/drivers/mtd/qcom_smem_part.c
 @@ -0,0 +1,228 @@
 @@ -0,0 +1,228 @@

+ 4 - 4
target/linux/ipq806x/patches-4.4/100-usb-phy-Add-Qualcomm-DWC3-HS-SS-PHY-drivers.patch

@@ -1,8 +1,8 @@
 --- a/drivers/phy/Kconfig
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
-@@ -390,4 +390,15 @@
-	  Enable this to support the Broadcom Cygnus PCIe PHY.
-	  If unsure, say N.
+@@ -390,4 +390,15 @@ config PHY_CYGNUS_PCIE
+ 	  Enable this to support the Broadcom Cygnus PCIe PHY.
+ 	  If unsure, say N.
  
  
 +config PHY_QCOM_DWC3
 +config PHY_QCOM_DWC3
 +	tristate "QCOM DWC3 USB PHY support"
 +	tristate "QCOM DWC3 USB PHY support"
@@ -18,7 +18,7 @@
  endmenu
  endmenu
 --- a/drivers/phy/Makefile
 --- a/drivers/phy/Makefile
 +++ b/drivers/phy/Makefile
 +++ b/drivers/phy/Makefile
-@@ -48,3 +48,4 @@ obj-$(CONFIG_PHY_TUSB1210)	+=
+@@ -48,3 +48,4 @@ obj-$(CONFIG_PHY_TUSB1210)		+= phy-tusb1
  obj-$(CONFIG_PHY_BRCMSTB_SATA)		+= phy-brcmstb-sata.o
  obj-$(CONFIG_PHY_BRCMSTB_SATA)		+= phy-brcmstb-sata.o
  obj-$(CONFIG_PHY_PISTACHIO_USB)		+= phy-pistachio-usb.o
  obj-$(CONFIG_PHY_PISTACHIO_USB)		+= phy-pistachio-usb.o
  obj-$(CONFIG_PHY_CYGNUS_PCIE)		+= phy-bcm-cygnus-pcie.o
  obj-$(CONFIG_PHY_CYGNUS_PCIE)		+= phy-bcm-cygnus-pcie.o

+ 3 - 3
target/linux/ipq806x/patches-4.4/111-PCI-qcom-Add-Qualcomm-PCIe-controller-driver.patch

@@ -34,7 +34,7 @@ MAINTAINERS                  |    7 +
 
 
 --- a/MAINTAINERS
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -8253,6 +8253,13 @@
+@@ -8253,6 +8253,13 @@ S:	Maintained
  F:	Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
  F:	Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
  F:	drivers/pci/host/pcie-hisi.c
  F:	drivers/pci/host/pcie-hisi.c
  
  
@@ -50,7 +50,7 @@ MAINTAINERS                  |    7 +
  L:	[email protected]
  L:	[email protected]
 --- a/drivers/pci/host/Kconfig
 --- a/drivers/pci/host/Kconfig
 +++ b/drivers/pci/host/Kconfig
 +++ b/drivers/pci/host/Kconfig
-@@ -173,4 +173,13 @@
+@@ -173,4 +173,13 @@ config PCI_HISI
  	help
  	help
  	  Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC
  	  Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC
  
  
@@ -745,7 +745,7 @@ MAINTAINERS                  |    7 +
 +MODULE_ALIAS("platform:qcom-pcie");
 +MODULE_ALIAS("platform:qcom-pcie");
 --- a/drivers/pci/host/Makefile
 --- a/drivers/pci/host/Makefile
 +++ b/drivers/pci/host/Makefile
 +++ b/drivers/pci/host/Makefile
-@@ -20,3 +20,4 @@
+@@ -20,3 +20,4 @@ obj-$(CONFIG_PCIE_IPROC_BCMA) += pcie-ip
  obj-$(CONFIG_PCIE_ALTERA) += pcie-altera.o
  obj-$(CONFIG_PCIE_ALTERA) += pcie-altera.o
  obj-$(CONFIG_PCIE_ALTERA_MSI) += pcie-altera-msi.o
  obj-$(CONFIG_PCIE_ALTERA_MSI) += pcie-altera-msi.o
  obj-$(CONFIG_PCI_HISI) += pcie-hisi.o
  obj-$(CONFIG_PCI_HISI) += pcie-hisi.o

+ 2 - 2
target/linux/ipq806x/patches-4.4/133-ARM-Add-Krait-L2-register-accessor-functions.patch

@@ -38,7 +38,7 @@ arch/arm/common/Kconfig                   |  3 ++
 
 
 --- a/arch/arm/common/Kconfig
 --- a/arch/arm/common/Kconfig
 +++ b/arch/arm/common/Kconfig
 +++ b/arch/arm/common/Kconfig
-@@ -9,6 +9,9 @@
+@@ -9,6 +9,9 @@ config DMABOUNCE
  	bool
  	bool
  	select ZONE_DMA
  	select ZONE_DMA
  
  
@@ -50,7 +50,7 @@ arch/arm/common/Kconfig                   |  3 ++
  
  
 --- a/arch/arm/common/Makefile
 --- a/arch/arm/common/Makefile
 +++ b/arch/arm/common/Makefile
 +++ b/arch/arm/common/Makefile
-@@ -7,6 +7,7 @@
+@@ -7,6 +7,7 @@ obj-y				+= firmware.o
  obj-$(CONFIG_ICST)		+= icst.o
  obj-$(CONFIG_ICST)		+= icst.o
  obj-$(CONFIG_SA1111)		+= sa1111.o
  obj-$(CONFIG_SA1111)		+= sa1111.o
  obj-$(CONFIG_DMABOUNCE)		+= dmabounce.o
  obj-$(CONFIG_DMABOUNCE)		+= dmabounce.o

+ 6 - 13
target/linux/ipq806x/patches-4.4/134-clk-mux-Split-out-register-accessors-for-reuse.patch

@@ -18,8 +18,6 @@ Signed-off-by: Ram Chandra Jangir <[email protected]>
  include/linux/clk-provider.h |  9 ++++--
  include/linux/clk-provider.h |  9 ++++--
  2 files changed, 53 insertions(+), 30 deletions(-)
  2 files changed, 53 insertions(+), 30 deletions(-)
 
 
-diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c
-index 7129c86..b03a34d 100644
 --- a/drivers/clk/clk-mux.c
 --- a/drivers/clk/clk-mux.c
 +++ b/drivers/clk/clk-mux.c
 +++ b/drivers/clk/clk-mux.c
 @@ -28,35 +28,24 @@
 @@ -28,35 +28,24 @@
@@ -64,7 +62,7 @@ index 7129c86..b03a34d 100644
  		val--;
  		val--;
  
  
  	if (val >= num_parents)
  	if (val >= num_parents)
-@@ -64,24 +53,53 @@ static u8 clk_mux_get_parent(struct clk_hw *hw)
+@@ -64,24 +53,53 @@ static u8 clk_mux_get_parent(struct clk_
  
  
  	return val;
  	return val;
  }
  }
@@ -127,7 +125,7 @@ index 7129c86..b03a34d 100644
  	if (mux->lock)
  	if (mux->lock)
  		spin_lock_irqsave(mux->lock, flags);
  		spin_lock_irqsave(mux->lock, flags);
  	else
  	else
-@@ -105,7 +123,7 @@ static int clk_mux_set_parent(struct clk_hw *hw, u8 index)
+@@ -105,7 +123,7 @@ static int clk_mux_set_parent(struct clk
  }
  }
  
  
  const struct clk_ops clk_mux_ops = {
  const struct clk_ops clk_mux_ops = {
@@ -136,7 +134,7 @@ index 7129c86..b03a34d 100644
  	.set_parent = clk_mux_set_parent,
  	.set_parent = clk_mux_set_parent,
  	.determine_rate = __clk_mux_determine_rate,
  	.determine_rate = __clk_mux_determine_rate,
  };
  };
-@@ -120,7 +138,7 @@ struct clk *clk_register_mux_table(struct device *dev, const char *name,
+@@ -120,7 +138,7 @@ struct clk *clk_register_mux_table(struc
  		const char * const *parent_names, u8 num_parents,
  		const char * const *parent_names, u8 num_parents,
  		unsigned long flags,
  		unsigned long flags,
  		void __iomem *reg, u8 shift, u32 mask,
  		void __iomem *reg, u8 shift, u32 mask,
@@ -145,11 +143,9 @@ index 7129c86..b03a34d 100644
  {
  {
  	struct clk_mux *mux;
  	struct clk_mux *mux;
  	struct clk *clk;
  	struct clk *clk;
-diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
-index c56988a..b6b17b5 100644
 --- a/include/linux/clk-provider.h
 --- a/include/linux/clk-provider.h
 +++ b/include/linux/clk-provider.h
 +++ b/include/linux/clk-provider.h
-@@ -432,7 +432,7 @@ void clk_unregister_divider(struct clk *clk);
+@@ -433,7 +433,7 @@ void clk_unregister_divider(struct clk *
  struct clk_mux {
  struct clk_mux {
  	struct clk_hw	hw;
  	struct clk_hw	hw;
  	void __iomem	*reg;
  	void __iomem	*reg;
@@ -158,7 +154,7 @@ index c56988a..b6b17b5 100644
  	u32		mask;
  	u32		mask;
  	u8		shift;
  	u8		shift;
  	u8		flags;
  	u8		flags;
-@@ -448,6 +448,11 @@ struct clk_mux {
+@@ -449,6 +449,11 @@ struct clk_mux {
  extern const struct clk_ops clk_mux_ops;
  extern const struct clk_ops clk_mux_ops;
  extern const struct clk_ops clk_mux_ro_ops;
  extern const struct clk_ops clk_mux_ro_ops;
  
  
@@ -170,7 +166,7 @@ index c56988a..b6b17b5 100644
  struct clk *clk_register_mux(struct device *dev, const char *name,
  struct clk *clk_register_mux(struct device *dev, const char *name,
  		const char * const *parent_names, u8 num_parents,
  		const char * const *parent_names, u8 num_parents,
  		unsigned long flags,
  		unsigned long flags,
-@@ -458,7 +463,7 @@ struct clk *clk_register_mux_table(struct device *dev, const char *name,
+@@ -459,7 +464,7 @@ struct clk *clk_register_mux_table(struc
  		const char * const *parent_names, u8 num_parents,
  		const char * const *parent_names, u8 num_parents,
  		unsigned long flags,
  		unsigned long flags,
  		void __iomem *reg, u8 shift, u32 mask,
  		void __iomem *reg, u8 shift, u32 mask,
@@ -179,6 +175,3 @@ index c56988a..b6b17b5 100644
  
  
  void clk_unregister_mux(struct clk *clk);
  void clk_unregister_mux(struct clk *clk);
  
  
--- 
-2.7.2
-

+ 5 - 10
target/linux/ipq806x/patches-4.4/135-clk-Avoid-sending-high-rates-to-downstream-clocks-du.patch

@@ -37,11 +37,9 @@ Signed-off-by: Ram Chandra Jangir <[email protected]>
  drivers/clk/clk.c | 34 ++++++++++++++++++++++------------
  drivers/clk/clk.c | 34 ++++++++++++++++++++++------------
  1 file changed, 22 insertions(+), 12 deletions(-)
  1 file changed, 22 insertions(+), 12 deletions(-)
 
 
-diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
-index f13c3f4..8404c3c 100644
 --- a/drivers/clk/clk.c
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -1427,21 +1427,24 @@ static struct clk_core *clk_propagate_rate_change(struct clk_core *core,
+@@ -1427,21 +1427,24 @@ static struct clk_core *clk_propagate_ra
   * walk down a subtree and set the new rates notifying the rate
   * walk down a subtree and set the new rates notifying the rate
   * change on the way
   * change on the way
   */
   */
@@ -73,7 +71,7 @@ index f13c3f4..8404c3c 100644
  
  
  	if (core->new_parent && core->new_parent != core->parent) {
  	if (core->new_parent && core->new_parent != core->parent) {
  		old_parent = __clk_set_parent_before(core, core->new_parent);
  		old_parent = __clk_set_parent_before(core, core->new_parent);
-@@ -1467,7 +1470,7 @@ static void clk_change_rate(struct clk_core *core)
+@@ -1467,7 +1470,7 @@ static void clk_change_rate(struct clk_c
  
  
  	trace_clk_set_rate_complete(core, core->new_rate);
  	trace_clk_set_rate_complete(core, core->new_rate);
  
  
@@ -82,7 +80,7 @@ index f13c3f4..8404c3c 100644
  
  
  	if (core->notifier_count && old_rate != core->rate)
  	if (core->notifier_count && old_rate != core->rate)
  		__clk_notify(core, POST_RATE_CHANGE, old_rate, core->rate);
  		__clk_notify(core, POST_RATE_CHANGE, old_rate, core->rate);
-@@ -1483,12 +1486,13 @@ static void clk_change_rate(struct clk_core *core)
+@@ -1483,12 +1486,13 @@ static void clk_change_rate(struct clk_c
  		/* Skip children who will be reparented to another clock */
  		/* Skip children who will be reparented to another clock */
  		if (child->new_parent && child->new_parent != core)
  		if (child->new_parent && child->new_parent != core)
  			continue;
  			continue;
@@ -99,7 +97,7 @@ index f13c3f4..8404c3c 100644
  }
  }
  
  
  static int clk_core_set_rate_nolock(struct clk_core *core,
  static int clk_core_set_rate_nolock(struct clk_core *core,
-@@ -1497,6 +1501,7 @@ static int clk_core_set_rate_nolock(struct clk_core *core,
+@@ -1497,6 +1501,7 @@ static int clk_core_set_rate_nolock(stru
  	struct clk_core *top, *fail_clk;
  	struct clk_core *top, *fail_clk;
  	unsigned long rate = req_rate;
  	unsigned long rate = req_rate;
  	int ret = 0;
  	int ret = 0;
@@ -107,7 +105,7 @@ index f13c3f4..8404c3c 100644
  
  
  	if (!core)
  	if (!core)
  		return 0;
  		return 0;
-@@ -1522,8 +1527,13 @@ static int clk_core_set_rate_nolock(struct clk_core *core,
+@@ -1522,8 +1527,13 @@ static int clk_core_set_rate_nolock(stru
  		return -EBUSY;
  		return -EBUSY;
  	}
  	}
  
  
@@ -122,6 +120,3 @@ index f13c3f4..8404c3c 100644
  
  
  	core->req_rate = req_rate;
  	core->req_rate = req_rate;
  
  
--- 
-2.7.2
-

+ 5 - 12
target/linux/ipq806x/patches-4.4/136-clk-Add-safe-switch-hook.patch

@@ -19,8 +19,6 @@ Signed-off-by: Ram Chandra Jangir <[email protected]>
  include/linux/clk-provider.h |  1 +
  include/linux/clk-provider.h |  1 +
  2 files changed, 54 insertions(+), 8 deletions(-)
  2 files changed, 54 insertions(+), 8 deletions(-)
 
 
-diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
-index 8404c3c..a29319a 100644
 --- a/drivers/clk/clk.c
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
 @@ -51,9 +51,12 @@ struct clk_core {
 @@ -51,9 +51,12 @@ struct clk_core {
@@ -46,7 +44,7 @@ index 8404c3c..a29319a 100644
  
  
  	core->new_rate = new_rate;
  	core->new_rate = new_rate;
  	core->new_parent = new_parent;
  	core->new_parent = new_parent;
-@@ -1281,6 +1285,18 @@ static void clk_calc_subtree(struct clk_core *core, unsigned long new_rate,
+@@ -1281,6 +1285,18 @@ static void clk_calc_subtree(struct clk_
  	if (new_parent && new_parent != core->parent)
  	if (new_parent && new_parent != core->parent)
  		new_parent->new_child = core;
  		new_parent->new_child = core;
  
  
@@ -65,7 +63,7 @@ index 8404c3c..a29319a 100644
  	hlist_for_each_entry(child, &core->children, child_node) {
  	hlist_for_each_entry(child, &core->children, child_node) {
  		child->new_rate = clk_recalc(child, new_rate);
  		child->new_rate = clk_recalc(child, new_rate);
  		clk_calc_subtree(child, child->new_rate, NULL, 0);
  		clk_calc_subtree(child, child->new_rate, NULL, 0);
-@@ -1393,14 +1409,43 @@ static struct clk_core *clk_propagate_rate_change(struct clk_core *core,
+@@ -1393,14 +1409,43 @@ static struct clk_core *clk_propagate_ra
  						  unsigned long event)
  						  unsigned long event)
  {
  {
  	struct clk_core *child, *tmp_clk, *fail_clk = NULL;
  	struct clk_core *child, *tmp_clk, *fail_clk = NULL;
@@ -112,7 +110,7 @@ index 8404c3c..a29319a 100644
  			fail_clk = core;
  			fail_clk = core;
  	}
  	}
  
  
-@@ -1446,7 +1491,8 @@ clk_change_rate(struct clk_core *core, unsigned long best_parent_rate)
+@@ -1446,7 +1491,8 @@ clk_change_rate(struct clk_core *core, u
  
  
  	old_rate = core->rate;
  	old_rate = core->rate;
  
  
@@ -122,7 +120,7 @@ index 8404c3c..a29319a 100644
  		old_parent = __clk_set_parent_before(core, core->new_parent);
  		old_parent = __clk_set_parent_before(core, core->new_parent);
  		trace_clk_set_parent(core, core->new_parent);
  		trace_clk_set_parent(core, core->new_parent);
  
  
-@@ -1472,9 +1518,6 @@ clk_change_rate(struct clk_core *core, unsigned long best_parent_rate)
+@@ -1472,9 +1518,6 @@ clk_change_rate(struct clk_core *core, u
  
  
  	core->rate = core->new_rate;
  	core->rate = core->new_rate;
  
  
@@ -132,7 +130,7 @@ index 8404c3c..a29319a 100644
  	if (core->flags & CLK_RECALC_NEW_RATES)
  	if (core->flags & CLK_RECALC_NEW_RATES)
  		(void)clk_calc_new_rates(core, core->new_rate);
  		(void)clk_calc_new_rates(core, core->new_rate);
  
  
-@@ -1537,6 +1580,8 @@ static int clk_core_set_rate_nolock(struct clk_core *core,
+@@ -1537,6 +1580,8 @@ static int clk_core_set_rate_nolock(stru
  
  
  	core->req_rate = req_rate;
  	core->req_rate = req_rate;
  
  
@@ -141,8 +139,6 @@ index 8404c3c..a29319a 100644
  	return ret;
  	return ret;
  }
  }
  
  
-diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
-index b6b17b5..5d49262 100644
 --- a/include/linux/clk-provider.h
 --- a/include/linux/clk-provider.h
 +++ b/include/linux/clk-provider.h
 +++ b/include/linux/clk-provider.h
 @@ -202,6 +202,7 @@ struct clk_ops {
 @@ -202,6 +202,7 @@ struct clk_ops {
@@ -153,6 +149,3 @@ index b6b17b5..5d49262 100644
  	int		(*set_rate)(struct clk_hw *hw, unsigned long rate,
  	int		(*set_rate)(struct clk_hw *hw, unsigned long rate,
  				    unsigned long parent_rate);
  				    unsigned long parent_rate);
  	int		(*set_rate_and_parent)(struct clk_hw *hw,
  	int		(*set_rate_and_parent)(struct clk_hw *hw,
--- 
-2.7.2
-

+ 1 - 1
target/linux/ipq806x/patches-4.4/137-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch

@@ -28,7 +28,7 @@ I'd really like to get rid of __clk_hfpll_init_once() if possible...
 
 
 --- a/drivers/clk/qcom/Makefile
 --- a/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
-@@ -8,6 +8,7 @@
+@@ -8,6 +8,7 @@ clk-qcom-y += clk-rcg2.o
  clk-qcom-y += clk-branch.o
  clk-qcom-y += clk-branch.o
  clk-qcom-y += clk-regmap-divider.o
  clk-qcom-y += clk-regmap-divider.o
  clk-qcom-y += clk-regmap-mux.o
  clk-qcom-y += clk-regmap-mux.o

+ 2 - 2
target/linux/ipq806x/patches-4.4/138-clk-qcom-Add-HFPLL-driver.patch

@@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 +	};
 +	};
 --- a/drivers/clk/qcom/Kconfig
 --- a/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
-@@ -106,3 +106,11 @@
+@@ -106,3 +106,11 @@ config MSM_MMCC_8974
  	  Support for the multimedia clock controller on msm8974 devices.
  	  Support for the multimedia clock controller on msm8974 devices.
  	  Say Y if you want to support multimedia devices such as display,
  	  Say Y if you want to support multimedia devices such as display,
  	  graphics, video encode/decode, camera, etc.
  	  graphics, video encode/decode, camera, etc.
@@ -87,7 +87,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 +	  such as MSM8974, APQ8084, etc.
 +	  such as MSM8974, APQ8084, etc.
 --- a/drivers/clk/qcom/Makefile
 --- a/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
-@@ -23,3 +23,4 @@
+@@ -23,3 +23,4 @@ obj-$(CONFIG_MSM_LCC_8960) += lcc-msm896
  obj-$(CONFIG_MSM_GCC_8974) += gcc-msm8974.o
  obj-$(CONFIG_MSM_GCC_8974) += gcc-msm8974.o
  obj-$(CONFIG_MSM_MMCC_8960) += mmcc-msm8960.o
  obj-$(CONFIG_MSM_MMCC_8960) += mmcc-msm8960.o
  obj-$(CONFIG_MSM_MMCC_8974) += mmcc-msm8974.o
  obj-$(CONFIG_MSM_MMCC_8974) += mmcc-msm8974.o

+ 2 - 2
target/linux/ipq806x/patches-4.4/139-clk-qcom-Add-IPQ806X-s-HFPLLs.patch

@@ -29,7 +29,7 @@ drivers/clk/qcom/gcc-ipq806x.c | 83 ++++++++++++++++++++++++++++++++++++++++++
  #include "reset.h"
  #include "reset.h"
  
  
  static struct clk_pll pll0 = {
  static struct clk_pll pll0 = {
-@@ -113,6 +114,85 @@
+@@ -113,6 +114,85 @@ static struct clk_regmap pll8_vote = {
  	},
  	},
  };
  };
  
  
@@ -115,7 +115,7 @@ drivers/clk/qcom/gcc-ipq806x.c | 83 ++++++++++++++++++++++++++++++++++++++++++
  static struct clk_pll pll14 = {
  static struct clk_pll pll14 = {
  	.l_reg = 0x31c4,
  	.l_reg = 0x31c4,
  	.m_reg = 0x31c8,
  	.m_reg = 0x31c8,
-@@ -2837,6 +2917,9 @@
+@@ -2837,6 +2917,9 @@ static struct clk_regmap *gcc_ipq806x_cl
  	[UBI32_CORE2_CLK_SRC] = &ubi32_core2_src_clk.clkr,
  	[UBI32_CORE2_CLK_SRC] = &ubi32_core2_src_clk.clkr,
  	[NSSTCM_CLK_SRC] = &nss_tcm_src.clkr,
  	[NSSTCM_CLK_SRC] = &nss_tcm_src.clkr,
  	[NSSTCM_CLK] = &nss_tcm_clk.clkr,
  	[NSSTCM_CLK] = &nss_tcm_clk.clkr,

+ 2 - 3
target/linux/ipq806x/patches-4.4/140-clk-qcom-Add-support-for-Krait-clocks.patch

@@ -30,7 +30,7 @@ drivers/clk/qcom/Kconfig     |   4 ++
 
 
 --- a/drivers/clk/qcom/Kconfig
 --- a/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
-@@ -114,3 +114,7 @@
+@@ -114,3 +114,7 @@ config QCOM_HFPLL
  	  Support for the high-frequency PLLs present on Qualcomm devices.
  	  Support for the high-frequency PLLs present on Qualcomm devices.
  	  Say Y if you want to support CPU frequency scaling on devices
  	  Say Y if you want to support CPU frequency scaling on devices
  	  such as MSM8974, APQ8084, etc.
  	  such as MSM8974, APQ8084, etc.
@@ -40,7 +40,7 @@ drivers/clk/qcom/Kconfig     |   4 ++
 +	select KRAIT_L2_ACCESSORS
 +	select KRAIT_L2_ACCESSORS
 --- a/drivers/clk/qcom/Makefile
 --- a/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
-@@ -8,6 +8,7 @@
+@@ -8,6 +8,7 @@ clk-qcom-y += clk-rcg2.o
  clk-qcom-y += clk-branch.o
  clk-qcom-y += clk-branch.o
  clk-qcom-y += clk-regmap-divider.o
  clk-qcom-y += clk-regmap-divider.o
  clk-qcom-y += clk-regmap-mux.o
  clk-qcom-y += clk-regmap-mux.o
@@ -48,7 +48,6 @@ drivers/clk/qcom/Kconfig     |   4 ++
  clk-qcom-y += clk-hfpll.o
  clk-qcom-y += clk-hfpll.o
  clk-qcom-y += reset.o
  clk-qcom-y += reset.o
  clk-qcom-$(CONFIG_QCOM_GDSC) += gdsc.o
  clk-qcom-$(CONFIG_QCOM_GDSC) += gdsc.o
- 
 --- /dev/null
 --- /dev/null
 +++ b/drivers/clk/qcom/clk-krait.c
 +++ b/drivers/clk/qcom/clk-krait.c
 @@ -0,0 +1,166 @@
 @@ -0,0 +1,166 @@

+ 3 - 3
target/linux/ipq806x/patches-4.4/141-clk-qcom-Add-KPSS-ACC-GCC-driver.patch

@@ -31,7 +31,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 
 
 --- a/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt
 --- a/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt
 +++ b/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt
 +++ b/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt
-@@ -21,10 +21,17 @@
+@@ -21,10 +21,17 @@ PROPERTIES
  		    the register region. An optional second element specifies
  		    the register region. An optional second element specifies
  		    the base address and size of the alias register region.
  		    the base address and size of the alias register region.
  
  
@@ -82,7 +82,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 +	};
 +	};
 --- a/drivers/clk/qcom/Kconfig
 --- a/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
-@@ -115,6 +115,14 @@
+@@ -115,6 +115,14 @@ config QCOM_HFPLL
  	  Say Y if you want to support CPU frequency scaling on devices
  	  Say Y if you want to support CPU frequency scaling on devices
  	  such as MSM8974, APQ8084, etc.
  	  such as MSM8974, APQ8084, etc.
  
  
@@ -99,7 +99,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	select KRAIT_L2_ACCESSORS
  	select KRAIT_L2_ACCESSORS
 --- a/drivers/clk/qcom/Makefile
 --- a/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
-@@ -9,6 +9,7 @@
+@@ -9,6 +9,7 @@ clk-qcom-y += clk-branch.o
  clk-qcom-y += clk-regmap-divider.o
  clk-qcom-y += clk-regmap-divider.o
  clk-qcom-y += clk-regmap-mux.o
  clk-qcom-y += clk-regmap-mux.o
  clk-qcom-$(CONFIG_KRAIT_CLOCKS) += clk-krait.o
  clk-qcom-$(CONFIG_KRAIT_CLOCKS) += clk-krait.o

+ 2 - 2
target/linux/ipq806x/patches-4.4/142-clk-qcom-Add-Krait-clock-controller-driver.patch

@@ -56,7 +56,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 +	};
 +	};
 --- a/drivers/clk/qcom/Kconfig
 --- a/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
 +++ b/drivers/clk/qcom/Kconfig
-@@ -123,6 +123,14 @@
+@@ -123,6 +123,14 @@ config KPSS_XCC
  	  if you want to support CPU frequency scaling on devices such
  	  if you want to support CPU frequency scaling on devices such
  	  as MSM8960, APQ8064, etc.
  	  as MSM8960, APQ8064, etc.
  
  
@@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	select KRAIT_L2_ACCESSORS
  	select KRAIT_L2_ACCESSORS
 --- a/drivers/clk/qcom/Makefile
 --- a/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
 +++ b/drivers/clk/qcom/Makefile
-@@ -26,3 +26,4 @@
+@@ -26,3 +26,4 @@ obj-$(CONFIG_MSM_GCC_8974) += gcc-msm897
  obj-$(CONFIG_MSM_MMCC_8960) += mmcc-msm8960.o
  obj-$(CONFIG_MSM_MMCC_8960) += mmcc-msm8960.o
  obj-$(CONFIG_MSM_MMCC_8974) += mmcc-msm8974.o
  obj-$(CONFIG_MSM_MMCC_8974) += mmcc-msm8974.o
  obj-$(CONFIG_QCOM_HFPLL) += hfpll.o
  obj-$(CONFIG_QCOM_HFPLL) += hfpll.o

+ 2 - 2
target/linux/ipq806x/patches-4.4/143-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch

@@ -69,7 +69,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 +	};
 +	};
 --- a/drivers/cpufreq/Kconfig.arm
 --- a/drivers/cpufreq/Kconfig.arm
 +++ b/drivers/cpufreq/Kconfig.arm
 +++ b/drivers/cpufreq/Kconfig.arm
-@@ -95,6 +95,15 @@
+@@ -95,6 +95,15 @@ config ARM_OMAP2PLUS_CPUFREQ
  	depends on ARCH_OMAP2PLUS
  	depends on ARCH_OMAP2PLUS
  	default ARCH_OMAP2PLUS
  	default ARCH_OMAP2PLUS
  
  
@@ -87,7 +87,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	help
  	help
 --- a/drivers/cpufreq/Makefile
 --- a/drivers/cpufreq/Makefile
 +++ b/drivers/cpufreq/Makefile
 +++ b/drivers/cpufreq/Makefile
-@@ -61,6 +61,7 @@
+@@ -61,6 +61,7 @@ obj-$(CONFIG_ARM_MT8173_CPUFREQ)	+= mt81
  obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ)	+= omap-cpufreq.o
  obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ)	+= omap-cpufreq.o
  obj-$(CONFIG_ARM_PXA2xx_CPUFREQ)	+= pxa2xx-cpufreq.o
  obj-$(CONFIG_ARM_PXA2xx_CPUFREQ)	+= pxa2xx-cpufreq.o
  obj-$(CONFIG_PXA3xx)			+= pxa3xx-cpufreq.o
  obj-$(CONFIG_PXA3xx)			+= pxa3xx-cpufreq.o

+ 3 - 3
target/linux/ipq806x/patches-4.4/145-cpufreq-Add-a-cpufreq-krait-based-on-cpufre.patch

@@ -21,7 +21,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 
 
 --- a/drivers/cpufreq/Kconfig
 --- a/drivers/cpufreq/Kconfig
 +++ b/drivers/cpufreq/Kconfig
 +++ b/drivers/cpufreq/Kconfig
-@@ -198,6 +198,19 @@
+@@ -198,6 +198,19 @@ config CPUFREQ_DT
  
  
  	  If in doubt, say N.
  	  If in doubt, say N.
  
  
@@ -43,7 +43,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  endif
  endif
 --- a/drivers/cpufreq/Makefile
 --- a/drivers/cpufreq/Makefile
 +++ b/drivers/cpufreq/Makefile
 +++ b/drivers/cpufreq/Makefile
-@@ -13,6 +13,7 @@
+@@ -13,6 +13,7 @@ obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE)
  obj-$(CONFIG_CPU_FREQ_GOV_COMMON)		+= cpufreq_governor.o
  obj-$(CONFIG_CPU_FREQ_GOV_COMMON)		+= cpufreq_governor.o
  
  
  obj-$(CONFIG_CPUFREQ_DT)		+= cpufreq-dt.o
  obj-$(CONFIG_CPUFREQ_DT)		+= cpufreq-dt.o
@@ -446,7 +446,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 +MODULE_LICENSE("GPL v2");
 +MODULE_LICENSE("GPL v2");
 --- a/drivers/cpufreq/qcom-cpufreq.c
 --- a/drivers/cpufreq/qcom-cpufreq.c
 +++ b/drivers/cpufreq/qcom-cpufreq.c
 +++ b/drivers/cpufreq/qcom-cpufreq.c
-@@ -168,11 +168,8 @@
+@@ -168,11 +168,8 @@ static int __init qcom_cpufreq_populate_
  
  
  static int __init qcom_cpufreq_driver_init(void)
  static int __init qcom_cpufreq_driver_init(void)
  {
  {

+ 2 - 2
target/linux/ipq806x/patches-4.4/156-dmaengine-Add-ADM-driver.patch

@@ -35,7 +35,7 @@ drivers/dma/Kconfig    |   10 +
 
 
 --- a/drivers/dma/Kconfig
 --- a/drivers/dma/Kconfig
 +++ b/drivers/dma/Kconfig
 +++ b/drivers/dma/Kconfig
-@@ -558,4 +558,14 @@
+@@ -558,4 +558,14 @@ config DMATEST
  config DMA_ENGINE_RAID
  config DMA_ENGINE_RAID
  	bool
  	bool
  
  
@@ -955,7 +955,7 @@ drivers/dma/Kconfig    |   10 +
 +MODULE_LICENSE("GPL v2");
 +MODULE_LICENSE("GPL v2");
 --- a/drivers/dma/Makefile
 --- a/drivers/dma/Makefile
 +++ b/drivers/dma/Makefile
 +++ b/drivers/dma/Makefile
-@@ -65,5 +65,6 @@
+@@ -65,5 +65,6 @@ obj-$(CONFIG_TI_DMA_CROSSBAR) += ti-dma-
  obj-$(CONFIG_TI_EDMA) += edma.o
  obj-$(CONFIG_TI_EDMA) += edma.o
  obj-$(CONFIG_XGENE_DMA) += xgene-dma.o
  obj-$(CONFIG_XGENE_DMA) += xgene-dma.o
  obj-$(CONFIG_ZX_DMA) += zx296702_dma.o
  obj-$(CONFIG_ZX_DMA) += zx296702_dma.o

+ 3 - 3
target/linux/ipq806x/patches-4.4/161-mtd-nand-Create-a-BBT-flag-to-access-bad-block-markers-in-raw-mode.patch

@@ -38,7 +38,7 @@ drivers/mtd/nand/nand_base.c | 6 +++++-
 
 
 --- a/drivers/mtd/nand/nand_base.c
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
-@@ -394,7 +394,11 @@
+@@ -394,7 +394,11 @@ static int nand_default_block_markbad(st
  	} else {
  	} else {
  		ops.len = ops.ooblen = 1;
  		ops.len = ops.ooblen = 1;
  	}
  	}
@@ -53,7 +53,7 @@ drivers/mtd/nand/nand_base.c | 6 +++++-
  	if (chip->bbt_options & NAND_BBT_SCANLASTPAGE)
  	if (chip->bbt_options & NAND_BBT_SCANLASTPAGE)
 --- a/drivers/mtd/nand/nand_bbt.c
 --- a/drivers/mtd/nand/nand_bbt.c
 +++ b/drivers/mtd/nand/nand_bbt.c
 +++ b/drivers/mtd/nand/nand_bbt.c
-@@ -420,7 +420,11 @@
+@@ -420,7 +420,11 @@ static int scan_block_fast(struct mtd_in
  	ops.oobbuf = buf;
  	ops.oobbuf = buf;
  	ops.ooboffs = 0;
  	ops.ooboffs = 0;
  	ops.datbuf = NULL;
  	ops.datbuf = NULL;
@@ -68,7 +68,7 @@ drivers/mtd/nand/nand_base.c | 6 +++++-
  		/*
  		/*
 --- a/include/linux/mtd/bbm.h
 --- a/include/linux/mtd/bbm.h
 +++ b/include/linux/mtd/bbm.h
 +++ b/include/linux/mtd/bbm.h
-@@ -116,6 +116,12 @@
+@@ -116,6 +116,12 @@ struct nand_bbt_descr {
  #define NAND_BBT_NO_OOB_BBM	0x00080000
  #define NAND_BBT_NO_OOB_BBM	0x00080000
  
  
  /*
  /*

+ 2 - 2
target/linux/ipq806x/patches-4.4/162-mtd-nand-Qualcomm-NAND-controller-driver.patch

@@ -80,7 +80,7 @@ drivers/mtd/nand/Kconfig      |    7 +
 
 
 --- a/drivers/mtd/nand/Kconfig
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -546,4 +546,11 @@
+@@ -546,4 +546,11 @@ config MTD_NAND_HISI504
  	help
  	help
  	  Enables support for NAND controller on Hisilicon SoC Hip04.
  	  Enables support for NAND controller on Hisilicon SoC Hip04.
  
  
@@ -2015,7 +2015,7 @@ drivers/mtd/nand/Kconfig      |    7 +
 +MODULE_LICENSE("GPL v2");
 +MODULE_LICENSE("GPL v2");
 --- a/drivers/mtd/nand/Makefile
 --- a/drivers/mtd/nand/Makefile
 +++ b/drivers/mtd/nand/Makefile
 +++ b/drivers/mtd/nand/Makefile
-@@ -55,5 +55,6 @@
+@@ -55,5 +55,6 @@ obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH)	+=
  obj-$(CONFIG_MTD_NAND_SUNXI)		+= sunxi_nand.o
  obj-$(CONFIG_MTD_NAND_SUNXI)		+= sunxi_nand.o
  obj-$(CONFIG_MTD_NAND_HISI504)	        += hisi504_nand.o
  obj-$(CONFIG_MTD_NAND_HISI504)	        += hisi504_nand.o
  obj-$(CONFIG_MTD_NAND_BRCMNAND)		+= brcmnand/
  obj-$(CONFIG_MTD_NAND_BRCMNAND)		+= brcmnand/

+ 25 - 24
target/linux/ipq806x/patches-4.4/168-ARM-qcom-add-smb208-DT.patch

@@ -11,31 +11,31 @@ Signed-off-by: Adrian Panella <[email protected]>
 -			smb208_s1a: smb208-s1a {
 -			smb208_s1a: smb208-s1a {
 -				compatible = "qcom,rpm-smb208";
 -				compatible = "qcom,rpm-smb208";
 -				reg = <QCOM_RPM_SMB208_S1a>;
 -				reg = <QCOM_RPM_SMB208_S1a>;
--
--				regulator-min-microvolt = <1050000>;
--				regulator-max-microvolt = <1150000>;
 +			regulators {
 +			regulators {
 +				compatible = "qcom,rpm-smb208-regulators";
 +				compatible = "qcom,rpm-smb208-regulators";
  
  
--				qcom,switch-mode-frequency = <1200000>;
--
--			};
+-				regulator-min-microvolt = <1050000>;
+-				regulator-max-microvolt = <1150000>;
 +				smb208_s1a: s1a {
 +				smb208_s1a: s1a {
 +					regulator-min-microvolt = <1050000>;
 +					regulator-min-microvolt = <1050000>;
 +					regulator-max-microvolt = <1150000>;
 +					regulator-max-microvolt = <1150000>;
  
  
+-				qcom,switch-mode-frequency = <1200000>;
++					qcom,switch-mode-frequency = <1200000>;
+ 
+-			};
+-
 -			smb208_s1b: smb208-s1b {
 -			smb208_s1b: smb208-s1b {
 -				compatible = "qcom,rpm-smb208";
 -				compatible = "qcom,rpm-smb208";
 -				reg = <QCOM_RPM_SMB208_S1b>;
 -				reg = <QCOM_RPM_SMB208_S1b>;
-+					qcom,switch-mode-frequency = <1200000>;
- 
+-
 -				regulator-min-microvolt = <1050000>;
 -				regulator-min-microvolt = <1050000>;
 -				regulator-max-microvolt = <1150000>;
 -				regulator-max-microvolt = <1150000>;
--
--				qcom,switch-mode-frequency = <1200000>;
--			};
 +				};
 +				};
  
  
+-				qcom,switch-mode-frequency = <1200000>;
+-			};
+-
 -			smb208_s2a: smb208-s2a {
 -			smb208_s2a: smb208-s2a {
 -				compatible = "qcom,rpm-smb208";
 -				compatible = "qcom,rpm-smb208";
 -				reg = <QCOM_RPM_SMB208_S2a>;
 -				reg = <QCOM_RPM_SMB208_S2a>;
@@ -71,7 +71,7 @@ Signed-off-by: Adrian Panella <[email protected]>
 +				};
 +				};
  			};
  			};
  		};
  		};
-
+ 
 --- a/arch/arm/boot/dts/qcom-ipq8065.dtsi
 --- a/arch/arm/boot/dts/qcom-ipq8065.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq8065.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq8065.dtsi
 @@ -311,45 +311,37 @@
 @@ -311,45 +311,37 @@
@@ -81,31 +81,31 @@ Signed-off-by: Adrian Panella <[email protected]>
 -			smb208_s1a: smb208-s1a {
 -			smb208_s1a: smb208-s1a {
 -				compatible = "qcom,rpm-smb208";
 -				compatible = "qcom,rpm-smb208";
 -				reg = <QCOM_RPM_SMB208_S1a>;
 -				reg = <QCOM_RPM_SMB208_S1a>;
--
--				regulator-min-microvolt = <1050000>;
--				regulator-max-microvolt = <1150000>;
 +			regulators {
 +			regulators {
 +				compatible = "qcom,rpm-smb208-regulators";
 +				compatible = "qcom,rpm-smb208-regulators";
  
  
--				qcom,switch-mode-frequency = <1200000>;
--
--			};
+-				regulator-min-microvolt = <1050000>;
+-				regulator-max-microvolt = <1150000>;
 +				smb208_s1a: s1a {
 +				smb208_s1a: s1a {
 +					regulator-min-microvolt = <1050000>;
 +					regulator-min-microvolt = <1050000>;
 +					regulator-max-microvolt = <1150000>;
 +					regulator-max-microvolt = <1150000>;
  
  
+-				qcom,switch-mode-frequency = <1200000>;
++					qcom,switch-mode-frequency = <1200000>;
+ 
+-			};
+-
 -			smb208_s1b: smb208-s1b {
 -			smb208_s1b: smb208-s1b {
 -				compatible = "qcom,rpm-smb208";
 -				compatible = "qcom,rpm-smb208";
 -				reg = <QCOM_RPM_SMB208_S1b>;
 -				reg = <QCOM_RPM_SMB208_S1b>;
-+					qcom,switch-mode-frequency = <1200000>;
- 
+-
 -				regulator-min-microvolt = <1050000>;
 -				regulator-min-microvolt = <1050000>;
 -				regulator-max-microvolt = <1150000>;
 -				regulator-max-microvolt = <1150000>;
--
--				qcom,switch-mode-frequency = <1200000>;
--			};
 +				};
 +				};
  
  
+-				qcom,switch-mode-frequency = <1200000>;
+-			};
+-
 -			smb208_s2a: smb208-s2a {
 -			smb208_s2a: smb208-s2a {
 -				compatible = "qcom,rpm-smb208";
 -				compatible = "qcom,rpm-smb208";
 -				reg = <QCOM_RPM_SMB208_S2a>;
 -				reg = <QCOM_RPM_SMB208_S2a>;
@@ -140,4 +140,5 @@ Signed-off-by: Adrian Panella <[email protected]>
 +					qcom,switch-mode-frequency = <1400000>;
 +					qcom,switch-mode-frequency = <1400000>;
 +				};
 +				};
  			};
  			};
- 		};
+ 
+ 			cxo_clk: cxo-clk {

+ 2 - 2
target/linux/ipq806x/patches-4.4/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch

@@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <[email protected]>
 
 
 --- a/arch/arm/Kconfig
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -323,7 +323,7 @@
+@@ -324,7 +324,7 @@ config ARCH_MULTIPLATFORM
  	select ARCH_WANT_OPTIONAL_GPIOLIB
  	select ARCH_WANT_OPTIONAL_GPIOLIB
  	select ARM_HAS_SG_CHAIN
  	select ARM_HAS_SG_CHAIN
  	select ARM_PATCH_PHYS_VIRT
  	select ARM_PATCH_PHYS_VIRT
@@ -44,7 +44,7 @@ Signed-off-by: Mathieu Olivari <[email protected]>
  	select GENERIC_CLOCKEVENTS
  	select GENERIC_CLOCKEVENTS
 --- a/arch/arm/Makefile
 --- a/arch/arm/Makefile
 +++ b/arch/arm/Makefile
 +++ b/arch/arm/Makefile
-@@ -256,9 +256,11 @@
+@@ -256,9 +256,11 @@ MACHINE  := arch/arm/mach-$(word 1,$(mac
  else
  else
  MACHINE  :=
  MACHINE  :=
  endif
  endif

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 328 - 489
target/linux/ipq806x/patches-4.4/400-dsa-add-qca.patch


+ 1 - 1
target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch

@@ -121,7 +121,7 @@ Signed-off-by: Mathieu Olivari <[email protected]>
  };
  };
 --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
 --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
-@@ -763,6 +763,92 @@
+@@ -755,6 +755,92 @@
  
  
  			status = "disabled";
  			status = "disabled";
  		};
  		};

+ 6 - 11
target/linux/ipq806x/patches-4.4/709-spi-qup-Fix-fifo-and-dma-support-for-IPQ806x.patch

@@ -8,8 +8,6 @@ Signed-off-by: Ram Chandra Jangir <[email protected]>
  drivers/spi/spi-qup.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++--
  drivers/spi/spi-qup.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++--
  1 file changed, 52 insertions(+), 2 deletions(-)
  1 file changed, 52 insertions(+), 2 deletions(-)
 
 
-diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c
-index 810a7fa..0808017 100644
 --- a/drivers/spi/spi-qup.c
 --- a/drivers/spi/spi-qup.c
 +++ b/drivers/spi/spi-qup.c
 +++ b/drivers/spi/spi-qup.c
 @@ -24,6 +24,7 @@
 @@ -24,6 +24,7 @@
@@ -28,7 +26,7 @@ index 810a7fa..0808017 100644
  };
  };
  
  
  
  
-@@ -370,7 +372,8 @@ static int spi_qup_do_pio(struct spi_master *master, struct spi_transfer *xfer)
+@@ -370,7 +372,8 @@ static int spi_qup_do_pio(struct spi_mas
  		return ret;
  		return ret;
  	}
  	}
  
  
@@ -38,7 +36,7 @@ index 810a7fa..0808017 100644
  
  
  	return 0;
  	return 0;
  }
  }
-@@ -448,6 +451,7 @@ spi_qup_get_mode(struct spi_master *master, struct spi_transfer *xfer)
+@@ -448,6 +451,7 @@ spi_qup_get_mode(struct spi_master *mast
  {
  {
  	struct spi_qup *qup = spi_master_get_devdata(master);
  	struct spi_qup *qup = spi_master_get_devdata(master);
  	u32 mode;
  	u32 mode;
@@ -46,7 +44,7 @@ index 810a7fa..0808017 100644
  
  
  	qup->w_size = 4;
  	qup->w_size = 4;
  
  
-@@ -458,6 +462,14 @@ spi_qup_get_mode(struct spi_master *master, struct spi_transfer *xfer)
+@@ -458,6 +462,14 @@ spi_qup_get_mode(struct spi_master *mast
  
  
  	qup->n_words = xfer->len / qup->w_size;
  	qup->n_words = xfer->len / qup->w_size;
  
  
@@ -61,7 +59,7 @@ index 810a7fa..0808017 100644
  	if (qup->n_words <= (qup->in_fifo_sz / sizeof(u32)))
  	if (qup->n_words <= (qup->in_fifo_sz / sizeof(u32)))
  		mode = QUP_IO_M_MODE_FIFO;
  		mode = QUP_IO_M_MODE_FIFO;
  	else
  	else
-@@ -491,7 +503,7 @@ static int spi_qup_io_config(struct spi_device *spi, struct spi_transfer *xfer)
+@@ -491,7 +503,7 @@ static int spi_qup_io_config(struct spi_
  		return -EIO;
  		return -EIO;
  	}
  	}
  
  
@@ -70,7 +68,7 @@ index 810a7fa..0808017 100644
  	n_words = controller->n_words;
  	n_words = controller->n_words;
  
  
  	if (mode == QUP_IO_M_MODE_FIFO) {
  	if (mode == QUP_IO_M_MODE_FIFO) {
-@@ -500,6 +512,7 @@ static int spi_qup_io_config(struct spi_device *spi, struct spi_transfer *xfer)
+@@ -500,6 +512,7 @@ static int spi_qup_io_config(struct spi_
  		/* must be zero for FIFO */
  		/* must be zero for FIFO */
  		writel_relaxed(0, controller->base + QUP_MX_INPUT_CNT);
  		writel_relaxed(0, controller->base + QUP_MX_INPUT_CNT);
  		writel_relaxed(0, controller->base + QUP_MX_OUTPUT_CNT);
  		writel_relaxed(0, controller->base + QUP_MX_OUTPUT_CNT);
@@ -117,7 +115,7 @@ index 810a7fa..0808017 100644
  static int spi_qup_probe(struct platform_device *pdev)
  static int spi_qup_probe(struct platform_device *pdev)
  {
  {
  	struct spi_master *master;
  	struct spi_master *master;
-@@ -846,6 +891,11 @@ static int spi_qup_probe(struct platform_device *pdev)
+@@ -846,6 +891,11 @@ static int spi_qup_probe(struct platform
  	if (of_device_is_compatible(dev->of_node, "qcom,spi-qup-v1.1.1"))
  	if (of_device_is_compatible(dev->of_node, "qcom,spi-qup-v1.1.1"))
  		controller->qup_v1 = 1;
  		controller->qup_v1 = 1;
  
  
@@ -129,6 +127,3 @@ index 810a7fa..0808017 100644
  	spin_lock_init(&controller->lock);
  	spin_lock_init(&controller->lock);
  	init_completion(&controller->done);
  	init_completion(&controller->done);
  
  
--- 
-2.7.2
-

+ 1 - 6
target/linux/ipq806x/patches-4.4/710-watchdog-qcom-set-WDT_BARK_TIME-register-offset-to-o.patch

@@ -18,8 +18,6 @@ Signed-off-by: Ram Chandra Jangir <[email protected]>
  drivers/watchdog/qcom-wdt.c | 2 ++
  drivers/watchdog/qcom-wdt.c | 2 ++
  1 file changed, 2 insertions(+)
  1 file changed, 2 insertions(+)
 
 
-diff --git a/drivers/watchdog/qcom-wdt.c b/drivers/watchdog/qcom-wdt.c
-index 773dcfa..002274a 100644
 --- a/drivers/watchdog/qcom-wdt.c
 --- a/drivers/watchdog/qcom-wdt.c
 +++ b/drivers/watchdog/qcom-wdt.c
 +++ b/drivers/watchdog/qcom-wdt.c
 @@ -22,6 +22,7 @@
 @@ -22,6 +22,7 @@
@@ -30,7 +28,7 @@ index 773dcfa..002274a 100644
  #define WDT_BITE_TIME	0x5C
  #define WDT_BITE_TIME	0x5C
  
  
  struct qcom_wdt {
  struct qcom_wdt {
-@@ -44,6 +45,7 @@ static int qcom_wdt_start(struct watchdog_device *wdd)
+@@ -44,6 +45,7 @@ static int qcom_wdt_start(struct watchdo
  
  
  	writel(0, wdt->base + WDT_EN);
  	writel(0, wdt->base + WDT_EN);
  	writel(1, wdt->base + WDT_RST);
  	writel(1, wdt->base + WDT_RST);
@@ -38,6 +36,3 @@ index 773dcfa..002274a 100644
  	writel(wdd->timeout * wdt->rate, wdt->base + WDT_BITE_TIME);
  	writel(wdd->timeout * wdt->rate, wdt->base + WDT_BITE_TIME);
  	writel(1, wdt->base + WDT_EN);
  	writel(1, wdt->base + WDT_EN);
  	return 0;
  	return 0;
--- 
-2.7.2
-

+ 2 - 2
target/linux/ipq806x/patches-4.4/711-stmmac-fix-ipq806x-DMA-configuration.patch

@@ -94,7 +94,7 @@
  	int limit;
  	int limit;
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -1639,9 +1639,11 @@ static int stmmac_init_dma_engine(struct
+@@ -1641,9 +1641,11 @@ static int stmmac_init_dma_engine(struct
  	int pbl = DEFAULT_DMA_PBL, fixed_burst = 0, burst_len = 0;
  	int pbl = DEFAULT_DMA_PBL, fixed_burst = 0, burst_len = 0;
  	int mixed_burst = 0;
  	int mixed_burst = 0;
  	int atds = 0;
  	int atds = 0;
@@ -106,7 +106,7 @@
  		fixed_burst = priv->plat->dma_cfg->fixed_burst;
  		fixed_burst = priv->plat->dma_cfg->fixed_burst;
  		mixed_burst = priv->plat->dma_cfg->mixed_burst;
  		mixed_burst = priv->plat->dma_cfg->mixed_burst;
  		burst_len = priv->plat->dma_cfg->burst_len;
  		burst_len = priv->plat->dma_cfg->burst_len;
-@@ -1652,7 +1654,7 @@ static int stmmac_init_dma_engine(struct
+@@ -1654,7 +1656,7 @@ static int stmmac_init_dma_engine(struct
  
  
  	return priv->hw->dma->init(priv->ioaddr, pbl, fixed_burst, mixed_burst,
  	return priv->hw->dma->init(priv->ioaddr, pbl, fixed_burst, mixed_burst,
  				   burst_len, priv->dma_tx_phy,
  				   burst_len, priv->dma_tx_phy,

+ 1 - 1
target/linux/ipq806x/patches-4.4/800-devicetree.patch

@@ -12,7 +12,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
 
 
 --- a/arch/arm/boot/dts/Makefile
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
-@@ -506,7 +506,12 @@
+@@ -506,7 +506,12 @@ dtb-$(CONFIG_ARCH_QCOM) += \
  	qcom-apq8084-ifc6540.dtb \
  	qcom-apq8084-ifc6540.dtb \
  	qcom-apq8084-mtp.dtb \
  	qcom-apq8084-mtp.dtb \
  	qcom-ipq8064-ap148.dtb \
  	qcom-ipq8064-ap148.dtb \

+ 5 - 5
target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch

@@ -18,7 +18,7 @@ Signed-off-by: Adrian Panella <[email protected]>
 
 
 --- a/arch/arm/Kconfig
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1927,6 +1927,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1928,6 +1928,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  	  appended to the the device tree bootargs property.
  
  
@@ -107,7 +107,7 @@ Signed-off-by: Adrian Panella <[email protected]>
  static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
  static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
  {
  {
  	char cmdline[COMMAND_LINE_SIZE];
  	char cmdline[COMMAND_LINE_SIZE];
-@@ -85,12 +134,21 @@ static void merge_fdt_bootargs(void *fdt
+@@ -85,12 +140,21 @@ static void merge_fdt_bootargs(void *fdt
  
  
  	/* and append the ATAG_CMDLINE */
  	/* and append the ATAG_CMDLINE */
  	if (fdt_cmdline) {
  	if (fdt_cmdline) {
@@ -129,7 +129,7 @@ Signed-off-by: Adrian Panella <[email protected]>
  	}
  	}
  	*ptr = '\0';
  	*ptr = '\0';
  
  
-@@ -147,7 +205,9 @@ int atags_to_fdt(void *atag_list, void *
+@@ -147,7 +211,9 @@ int atags_to_fdt(void *atag_list, void *
  			else
  			else
  				setprop_string(fdt, "/chosen", "bootargs",
  				setprop_string(fdt, "/chosen", "bootargs",
  					       atag->u.cmdline.cmdline);
  					       atag->u.cmdline.cmdline);
@@ -140,7 +140,7 @@ Signed-off-by: Adrian Panella <[email protected]>
  			if (memcount >= sizeof(mem_reg_property)/4)
  			if (memcount >= sizeof(mem_reg_property)/4)
  				continue;
  				continue;
  			if (!atag->u.mem.size)
  			if (!atag->u.mem.size)
-@@ -186,6 +246,10 @@ int atags_to_fdt(void *atag_list, void *
+@@ -186,6 +252,10 @@ int atags_to_fdt(void *atag_list, void *
  		setprop(fdt, "/memory", "reg", mem_reg_property,
  		setprop(fdt, "/memory", "reg", mem_reg_property,
  			4 * memcount * memsize);
  			4 * memcount * memsize);
  	}
  	}
@@ -164,7 +164,7 @@ Signed-off-by: Adrian Panella <[email protected]>
  static int kernel_init(void *);
  static int kernel_init(void *);
  
  
  extern void init_IRQ(void);
  extern void init_IRQ(void);
-@@ -585,6 +589,18 @@ asmlinkage __visible void __init start_k
+@@ -560,6 +564,18 @@ asmlinkage __visible void __init start_k
  	page_alloc_init();
  	page_alloc_init();
  
  
  	pr_notice("Kernel command line: %s\n", boot_command_line);
  	pr_notice("Kernel command line: %s\n", boot_command_line);

+ 41 - 40
target/linux/lantiq/patches-4.4/0028-NET-lantiq-various-etop-fixes.patch

@@ -104,7 +104,7 @@ Signed-off-by: John Crispin <[email protected]>
 +
 +
 +#define PMAC_HD_CTL_AS		(1 << 19)
 +#define PMAC_HD_CTL_AS		(1 << 19)
 +#define PMAC_HD_CTL_RXSH	(1 << 22)
 +#define PMAC_HD_CTL_RXSH	(1 << 22)
- 
++
 +/* Switch Enable (0=disable, 1=enable) */
 +/* Switch Enable (0=disable, 1=enable) */
 +#define GCTL0_SE		0x80000000
 +#define GCTL0_SE		0x80000000
 +/* Disable MDIO auto polling (0=disable, 1=enable) */
 +/* Disable MDIO auto polling (0=disable, 1=enable) */
@@ -124,7 +124,7 @@ Signed-off-by: John Crispin <[email protected]>
 +#define MDIO_XR9_REG_OFFSET	0
 +#define MDIO_XR9_REG_OFFSET	0
 +#define MDIO_XR9_ADDR_OFFSET	5
 +#define MDIO_XR9_ADDR_OFFSET	5
 +#define MDIO_XR9_WR_OFFSET	16
 +#define MDIO_XR9_WR_OFFSET	16
-+
+ 
 +#define LTQ_DMA_ETOP	((of_machine_is_compatible("lantiq,ase")) ? \
 +#define LTQ_DMA_ETOP	((of_machine_is_compatible("lantiq,ase")) ? \
 +			(INT_NUM_IM3_IRL0) : (INT_NUM_IM2_IRL0))
 +			(INT_NUM_IM3_IRL0) : (INT_NUM_IM2_IRL0))
 +
 +
@@ -333,8 +333,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
 -	ltq_pmu_enable(PMU_PPE);
 -	ltq_pmu_enable(PMU_PPE);
 +	clk_enable(priv->clk_ppe);
 +	clk_enable(priv->clk_ppe);
- 
--	switch (priv->pldata->mii_mode) {
++
 +	if (of_machine_is_compatible("lantiq,ar9")) {
 +	if (of_machine_is_compatible("lantiq,ar9")) {
 +		ltq_etop_gbit_init(dev);
 +		ltq_etop_gbit_init(dev);
 +		/* force the etops link to the gbit to MII */
 +		/* force the etops link to the gbit to MII */
@@ -343,7 +342,8 @@ Signed-off-by: John Crispin <[email protected]>
 +	ltq_etop_w32_mask(MDIO_CFG_MASK, 0, LTQ_ETOP_MDIO_CFG);
 +	ltq_etop_w32_mask(MDIO_CFG_MASK, 0, LTQ_ETOP_MDIO_CFG);
 +	ltq_etop_w32_mask(MAC_CFG_MASK, MAC_CFG_CGEN | MAC_CFG_DUPLEX |
 +	ltq_etop_w32_mask(MAC_CFG_MASK, MAC_CFG_CGEN | MAC_CFG_DUPLEX |
 +			MAC_CFG_SPEED | MAC_CFG_LINK, LTQ_ETOP_MAC_CFG);
 +			MAC_CFG_SPEED | MAC_CFG_LINK, LTQ_ETOP_MAC_CFG);
-+
+ 
+-	switch (priv->pldata->mii_mode) {
 +	switch (mii_mode) {
 +	switch (mii_mode) {
  	case PHY_INTERFACE_MODE_RMII:
  	case PHY_INTERFACE_MODE_RMII:
 -		ltq_etop_w32_mask(ETOP_MII_MASK,
 -		ltq_etop_w32_mask(ETOP_MII_MASK,
@@ -382,8 +382,7 @@ Signed-off-by: John Crispin <[email protected]>
 -	ltq_etop_w32(PPE32_CGEN, LQ_PPE32_ENET_MAC_CFG);
 -	ltq_etop_w32(PPE32_CGEN, LQ_PPE32_ENET_MAC_CFG);
 +	return 0;
 +	return 0;
 +}
 +}
- 
--	ltq_dma_init_port(DMA_PORT_ETOP);
++
 +static int
 +static int
 +ltq_etop_dma_init(struct net_device *dev)
 +ltq_etop_dma_init(struct net_device *dev)
 +{
 +{
@@ -392,21 +391,14 @@ Signed-off-by: John Crispin <[email protected]>
 +	int rx = priv->rx_irq - LTQ_DMA_ETOP;
 +	int rx = priv->rx_irq - LTQ_DMA_ETOP;
 +	int err;
 +	int err;
  
  
+ 	ltq_dma_init_port(DMA_PORT_ETOP);
+ 
 -	for (i = 0; i < MAX_DMA_CHAN; i++) {
 -	for (i = 0; i < MAX_DMA_CHAN; i++) {
 -		int irq = LTQ_DMA_CH0_INT + i;
 -		int irq = LTQ_DMA_CH0_INT + i;
 -		struct ltq_etop_chan *ch = &priv->ch[i];
 -		struct ltq_etop_chan *ch = &priv->ch[i];
-+	ltq_dma_init_port(DMA_PORT_ETOP);
- 
+-
 -		ch->idx = ch->dma.nr = i;
 -		ch->idx = ch->dma.nr = i;
-+	priv->txch.dma.nr = tx;
-+	ltq_dma_alloc_tx(&priv->txch.dma);
-+	err = request_irq(priv->tx_irq, ltq_etop_dma_irq, 0, "eth_tx", priv);
-+	if (err) {
-+		netdev_err(dev, "failed to allocate tx irq\n");
-+		goto err_out;
-+	}
-+	priv->txch.dma.irq = priv->tx_irq;
- 
+-
 -		if (IS_TX(i)) {
 -		if (IS_TX(i)) {
 -			ltq_dma_alloc_tx(&ch->dma);
 -			ltq_dma_alloc_tx(&ch->dma);
 -			request_irq(irq, ltq_etop_dma_irq, 0, "etop_tx", priv);
 -			request_irq(irq, ltq_etop_dma_irq, 0, "etop_tx", priv);
@@ -418,6 +410,15 @@ Signed-off-by: John Crispin <[email protected]>
 -					return -ENOMEM;
 -					return -ENOMEM;
 -			ch->dma.desc = 0;
 -			ch->dma.desc = 0;
 -			request_irq(irq, ltq_etop_dma_irq, 0, "etop_rx", priv);
 -			request_irq(irq, ltq_etop_dma_irq, 0, "etop_rx", priv);
++	priv->txch.dma.nr = tx;
++	ltq_dma_alloc_tx(&priv->txch.dma);
++	err = request_irq(priv->tx_irq, ltq_etop_dma_irq, 0, "eth_tx", priv);
++	if (err) {
++		netdev_err(dev, "failed to allocate tx irq\n");
++		goto err_out;
++	}
++	priv->txch.dma.irq = priv->tx_irq;
++
 +	priv->rxch.dma.nr = rx;
 +	priv->rxch.dma.nr = rx;
 +	ltq_dma_alloc_rx(&priv->rxch.dma);
 +	ltq_dma_alloc_rx(&priv->rxch.dma);
 +	for (priv->rxch.dma.desc = 0; priv->rxch.dma.desc < LTQ_DESC_NUM;
 +	for (priv->rxch.dma.desc = 0; priv->rxch.dma.desc < LTQ_DESC_NUM;
@@ -655,6 +656,12 @@ Signed-off-by: John Crispin <[email protected]>
 -	phy_stop(priv->phydev);
 -	phy_stop(priv->phydev);
 -	for (i = 0; i < MAX_DMA_CHAN; i++) {
 -	for (i = 0; i < MAX_DMA_CHAN; i++) {
 -		struct ltq_etop_chan *ch = &priv->ch[i];
 -		struct ltq_etop_chan *ch = &priv->ch[i];
+-
+-		if (!IS_RX(i) && !IS_TX(i))
+-			continue;
+-		napi_disable(&ch->napi);
+-		ltq_dma_close(&ch->dma);
+-	}
 +	if (priv->phydev)
 +	if (priv->phydev)
 +		phy_stop(priv->phydev);
 +		phy_stop(priv->phydev);
 +	napi_disable(&priv->txch.napi);
 +	napi_disable(&priv->txch.napi);
@@ -664,12 +671,7 @@ Signed-off-by: John Crispin <[email protected]>
 +	ltq_dma_close(&priv->txch.dma);
 +	ltq_dma_close(&priv->txch.dma);
 +	ltq_dma_close(&priv->rxch.dma);
 +	ltq_dma_close(&priv->rxch.dma);
 +	spin_unlock_irqrestore(&priv->lock, flags);
 +	spin_unlock_irqrestore(&priv->lock, flags);
- 
--		if (!IS_RX(i) && !IS_TX(i))
--			continue;
--		napi_disable(&ch->napi);
--		ltq_dma_close(&ch->dma);
--	}
++
  	return 0;
  	return 0;
  }
  }
  
  
@@ -789,7 +791,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  	if (!res) {
  	if (!res) {
-@@ -733,31 +943,62 @@ ltq_etop_probe(struct platform_device *p
+@@ -733,30 +943,61 @@ ltq_etop_probe(struct platform_device *p
  		goto err_out;
  		goto err_out;
  	}
  	}
  
  
@@ -823,19 +825,10 @@ Signed-off-by: John Crispin <[email protected]>
  	priv->pdev = pdev;
  	priv->pdev = pdev;
 -	priv->pldata = dev_get_platdata(&pdev->dev);
 -	priv->pldata = dev_get_platdata(&pdev->dev);
  	priv->netdev = dev;
  	priv->netdev = dev;
--	spin_lock_init(&priv->lock);
 +	priv->tx_irq = irqres[0].start;
 +	priv->tx_irq = irqres[0].start;
 +	priv->rx_irq = irqres[1].start;
 +	priv->rx_irq = irqres[1].start;
 +	priv->mii_mode = of_get_phy_mode(pdev->dev.of_node);
 +	priv->mii_mode = of_get_phy_mode(pdev->dev.of_node);
- 
--	for (i = 0; i < MAX_DMA_CHAN; i++) {
--		if (IS_TX(i))
--			netif_napi_add(dev, &priv->ch[i].napi,
--				ltq_etop_poll_tx, 8);
--		else if (IS_RX(i))
--			netif_napi_add(dev, &priv->ch[i].napi,
--				ltq_etop_poll_rx, 32);
--		priv->ch[i].netdev = dev;
++
 +	mac = of_get_mac_address(pdev->dev.of_node);
 +	mac = of_get_mac_address(pdev->dev.of_node);
 +	if (mac)
 +	if (mac)
 +		memcpy(priv->mac, mac, ETH_ALEN);
 +		memcpy(priv->mac, mac, ETH_ALEN);
@@ -855,18 +848,26 @@ Signed-off-by: John Crispin <[email protected]>
 +		priv->clk_ephycgu = clk_get(&pdev->dev, "ephycgu");
 +		priv->clk_ephycgu = clk_get(&pdev->dev, "ephycgu");
 +		if (IS_ERR(priv->clk_ephycgu))
 +		if (IS_ERR(priv->clk_ephycgu))
 +			return PTR_ERR(priv->clk_ephycgu);
 +			return PTR_ERR(priv->clk_ephycgu);
- 	}
- 
-+	spin_lock_init(&priv->lock);
++	}
 +
 +
+ 	spin_lock_init(&priv->lock);
+ 
+-	for (i = 0; i < MAX_DMA_CHAN; i++) {
+-		if (IS_TX(i))
+-			netif_napi_add(dev, &priv->ch[i].napi,
+-				ltq_etop_poll_tx, 8);
+-		else if (IS_RX(i))
+-			netif_napi_add(dev, &priv->ch[i].napi,
+-				ltq_etop_poll_rx, 32);
+-		priv->ch[i].netdev = dev;
+-	}
 +	netif_napi_add(dev, &priv->txch.napi, ltq_etop_poll_tx, 8);
 +	netif_napi_add(dev, &priv->txch.napi, ltq_etop_poll_tx, 8);
 +	netif_napi_add(dev, &priv->rxch.napi, ltq_etop_poll_rx, 32);
 +	netif_napi_add(dev, &priv->rxch.napi, ltq_etop_poll_rx, 32);
 +	priv->txch.netdev = dev;
 +	priv->txch.netdev = dev;
 +	priv->rxch.netdev = dev;
 +	priv->rxch.netdev = dev;
-+
+ 
  	err = register_netdev(dev);
  	err = register_netdev(dev);
  	if (err)
  	if (err)
- 		goto err_free;
 @@ -785,31 +1026,22 @@ ltq_etop_remove(struct platform_device *
 @@ -785,31 +1026,22 @@ ltq_etop_remove(struct platform_device *
  	return 0;
  	return 0;
  }
  }

+ 37 - 32
target/linux/lantiq/patches-4.4/0160-owrt-lantiq-multiple-flash.patch

@@ -82,7 +82,6 @@
 -	if (!ltq_mtd->res) {
 -	if (!ltq_mtd->res) {
 -		dev_err(&pdev->dev, "failed to get memory resource\n");
 -		dev_err(&pdev->dev, "failed to get memory resource\n");
 -		return -ENOENT;
 -		return -ENOENT;
--	}
 +	for (i = 0; i < pdev->num_resources; i++) {
 +	for (i = 0; i < pdev->num_resources; i++) {
 +		printk(KERN_NOTICE "lantiq nor flash device: %.8llx at %.8llx\n",
 +		printk(KERN_NOTICE "lantiq nor flash device: %.8llx at %.8llx\n",
 +		       (unsigned long long)resource_size(&pdev->resource[i]),
 +		       (unsigned long long)resource_size(&pdev->resource[i]),
@@ -95,27 +94,14 @@
 +			dev_err(&pdev->dev, "Could not reserve memory region\n");
 +			dev_err(&pdev->dev, "Could not reserve memory region\n");
 +			return -ENOMEM;
 +			return -ENOMEM;
 +		}
 +		}
- 
--	ltq_mtd->map = devm_kzalloc(&pdev->dev, sizeof(struct map_info),
--				    GFP_KERNEL);
--	if (!ltq_mtd->map)
--		return -ENOMEM;
++
 +		ltq_mtd->map[i].name = ltq_map_name;
 +		ltq_mtd->map[i].name = ltq_map_name;
 +		ltq_mtd->map[i].bankwidth = 2;
 +		ltq_mtd->map[i].bankwidth = 2;
 +		ltq_mtd->map[i].read = ltq_read16;
 +		ltq_mtd->map[i].read = ltq_read16;
 +		ltq_mtd->map[i].write = ltq_write16;
 +		ltq_mtd->map[i].write = ltq_write16;
 +		ltq_mtd->map[i].copy_from = ltq_copy_from;
 +		ltq_mtd->map[i].copy_from = ltq_copy_from;
 +		ltq_mtd->map[i].copy_to = ltq_copy_to;
 +		ltq_mtd->map[i].copy_to = ltq_copy_to;
- 
--	if (of_find_property(pdev->dev.of_node, "lantiq,noxip", NULL))
--		ltq_mtd->map->phys = NO_XIP;
--	else
--		ltq_mtd->map->phys = ltq_mtd->res->start;
--	ltq_mtd->res->start;
--	ltq_mtd->map->size = resource_size(ltq_mtd->res);
--	ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res);
--	if (IS_ERR(ltq_mtd->map->virt))
--		return PTR_ERR(ltq_mtd->map->virt);
++
 +		if (of_find_property(pdev->dev.of_node, "lantiq,noxip", NULL))
 +		if (of_find_property(pdev->dev.of_node, "lantiq,noxip", NULL))
 +			ltq_mtd->map[i].phys = NO_XIP;
 +			ltq_mtd->map[i].phys = NO_XIP;
 +		else
 +		else
@@ -125,30 +111,18 @@
 +						 ltq_mtd->map[i].size);
 +						 ltq_mtd->map[i].size);
 +		if (IS_ERR(ltq_mtd->map[i].virt))
 +		if (IS_ERR(ltq_mtd->map[i].virt))
 +			return PTR_ERR(ltq_mtd->map[i].virt);
 +			return PTR_ERR(ltq_mtd->map[i].virt);
- 
--	ltq_mtd->map->name = ltq_map_name;
--	ltq_mtd->map->bankwidth = 2;
--	ltq_mtd->map->read = ltq_read16;
--	ltq_mtd->map->write = ltq_write16;
--	ltq_mtd->map->copy_from = ltq_copy_from;
--	ltq_mtd->map->copy_to = ltq_copy_to;
++
 +		if (ltq_mtd->map[i].virt == NULL) {
 +		if (ltq_mtd->map[i].virt == NULL) {
 +			dev_err(&pdev->dev, "Failed to ioremap flash region\n");
 +			dev_err(&pdev->dev, "Failed to ioremap flash region\n");
 +			err = PTR_ERR(ltq_mtd->map[i].virt);
 +			err = PTR_ERR(ltq_mtd->map[i].virt);
 +			goto err_out;
 +			goto err_out;
 +		}
 +		}
- 
--	ltq_mtd->map->map_priv_1 = LTQ_NOR_PROBING;
--	ltq_mtd->mtd = do_map_probe("cfi_probe", ltq_mtd->map);
--	ltq_mtd->map->map_priv_1 = LTQ_NOR_NORMAL;
++
 +		ltq_mtd->map[i].map_priv_1 = LTQ_NOR_PROBING;
 +		ltq_mtd->map[i].map_priv_1 = LTQ_NOR_PROBING;
 +		for (type = rom_probe_types; !ltq_mtd->mtd[i] && *type; type++)
 +		for (type = rom_probe_types; !ltq_mtd->mtd[i] && *type; type++)
 +			ltq_mtd->mtd[i] = do_map_probe(*type, &ltq_mtd->map[i]);
 +			ltq_mtd->mtd[i] = do_map_probe(*type, &ltq_mtd->map[i]);
 +		ltq_mtd->map[i].map_priv_1 = LTQ_NOR_NORMAL;
 +		ltq_mtd->map[i].map_priv_1 = LTQ_NOR_NORMAL;
- 
--	if (!ltq_mtd->mtd) {
--		dev_err(&pdev->dev, "probing failed\n");
--		return -ENXIO;
++
 +		if (!ltq_mtd->mtd[i]) {
 +		if (!ltq_mtd->mtd[i]) {
 +			dev_err(&pdev->dev, "probing failed\n");
 +			dev_err(&pdev->dev, "probing failed\n");
 +			return -ENXIO;
 +			return -ENXIO;
@@ -164,7 +138,10 @@
 +		cfi->addr_unlock2 ^= 1;
 +		cfi->addr_unlock2 ^= 1;
  	}
  	}
  
  
--	ltq_mtd->mtd->dev.parent = &pdev->dev;
+-	ltq_mtd->map = devm_kzalloc(&pdev->dev, sizeof(struct map_info),
+-				    GFP_KERNEL);
+-	if (!ltq_mtd->map)
+-		return -ENOMEM;
 +	if (devices_found == 1) {
 +	if (devices_found == 1) {
 +		ltq_mtd->cmtd = ltq_mtd->mtd[0];
 +		ltq_mtd->cmtd = ltq_mtd->mtd[0];
 +	} else if (devices_found > 1) {
 +	} else if (devices_found > 1) {
@@ -176,6 +153,34 @@
 +			err = -ENXIO;
 +			err = -ENXIO;
 +	}
 +	}
  
  
+-	if (of_find_property(pdev->dev.of_node, "lantiq,noxip", NULL))
+-		ltq_mtd->map->phys = NO_XIP;
+-	else
+-		ltq_mtd->map->phys = ltq_mtd->res->start;
+-	ltq_mtd->res->start;
+-	ltq_mtd->map->size = resource_size(ltq_mtd->res);
+-	ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res);
+-	if (IS_ERR(ltq_mtd->map->virt))
+-		return PTR_ERR(ltq_mtd->map->virt);
+-
+-	ltq_mtd->map->name = ltq_map_name;
+-	ltq_mtd->map->bankwidth = 2;
+-	ltq_mtd->map->read = ltq_read16;
+-	ltq_mtd->map->write = ltq_write16;
+-	ltq_mtd->map->copy_from = ltq_copy_from;
+-	ltq_mtd->map->copy_to = ltq_copy_to;
+-
+-	ltq_mtd->map->map_priv_1 = LTQ_NOR_PROBING;
+-	ltq_mtd->mtd = do_map_probe("cfi_probe", ltq_mtd->map);
+-	ltq_mtd->map->map_priv_1 = LTQ_NOR_NORMAL;
+-
+-	if (!ltq_mtd->mtd) {
+-		dev_err(&pdev->dev, "probing failed\n");
+-		return -ENXIO;
+-	}
+-
+-	ltq_mtd->mtd->dev.parent = &pdev->dev;
+-
 -	cfi = ltq_mtd->map->fldrv_priv;
 -	cfi = ltq_mtd->map->fldrv_priv;
 -	cfi->addr_unlock1 ^= 1;
 -	cfi->addr_unlock1 ^= 1;
 -	cfi->addr_unlock2 ^= 1;
 -	cfi->addr_unlock2 ^= 1;

+ 2 - 2
target/linux/mediatek/patches-4.4/0103-nand_fixes.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/nand/mtk_nand.c
 --- a/drivers/mtd/nand/mtk_nand.c
 +++ b/drivers/mtd/nand/mtk_nand.c
 +++ b/drivers/mtd/nand/mtk_nand.c
-@@ -1017,8 +1017,8 @@
+@@ -1017,8 +1017,8 @@ static int mtk_nfc_ooblayout_free(struct
  	if (section >= eccsteps)
  	if (section >= eccsteps)
  		return -ERANGE;
  		return -ERANGE;
  
  
@@ -11,7 +11,7 @@
  
  
  	return 0;
  	return 0;
  }
  }
-@@ -1058,7 +1058,7 @@
+@@ -1058,7 +1058,7 @@ static void mtk_nfc_set_fdm(struct mtk_n
  		fdm->reg_size = NFI_FDM_MAX_SIZE;
  		fdm->reg_size = NFI_FDM_MAX_SIZE;
  
  
  	/* bad block mark storage */
  	/* bad block mark storage */

+ 1 - 1
target/linux/octeon/patches-4.4/170-cisco-hack.patch

@@ -18,7 +18,7 @@ Signed-off-by: Michał Osowiecki <[email protected]>
 
 
 --- a/arch/mips/cavium-octeon/setup.c
 --- a/arch/mips/cavium-octeon/setup.c
 +++ b/arch/mips/cavium-octeon/setup.c
 +++ b/arch/mips/cavium-octeon/setup.c
-@@ -944,6 +944,10 @@
+@@ -944,6 +944,10 @@ void __init plat_mem_setup(void)
  	if (mem_alloc_size > MAX_MEMORY)
  	if (mem_alloc_size > MAX_MEMORY)
  		mem_alloc_size = MAX_MEMORY;
  		mem_alloc_size = MAX_MEMORY;
  
  

+ 2 - 2
target/linux/oxnas/patches-4.4/300-introduce-oxnas-platform.patch

@@ -1,6 +1,6 @@
 --- a/arch/arm/Kconfig
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -602,6 +602,19 @@ config ARCH_LPC32XX
+@@ -603,6 +603,19 @@ config ARCH_LPC32XX
  	help
  	help
  	  Support for the NXP LPC32XX family of processors
  	  Support for the NXP LPC32XX family of processors
  
  
@@ -20,7 +20,7 @@
  config ARCH_PXA
  config ARCH_PXA
  	bool "PXA2xx/PXA3xx-based"
  	bool "PXA2xx/PXA3xx-based"
  	depends on MMU
  	depends on MMU
-@@ -882,6 +895,8 @@ source "arch/arm/mach-omap2/Kconfig"
+@@ -883,6 +896,8 @@ source "arch/arm/mach-omap2/Kconfig"
  
  
  source "arch/arm/mach-orion5x/Kconfig"
  source "arch/arm/mach-orion5x/Kconfig"
  
  

+ 4 - 4
target/linux/ramips/patches-4.4/0720-arch-mips-ralink-add-i2c-clocks.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/ralink/mt7620.c
 --- a/arch/mips/ralink/mt7620.c
 +++ b/arch/mips/ralink/mt7620.c
 +++ b/arch/mips/ralink/mt7620.c
-@@ -389,6 +389,7 @@ void __init ralink_clk_init(void)
+@@ -509,6 +509,7 @@ void __init ralink_clk_init(void)
  	unsigned long sys_rate;
  	unsigned long sys_rate;
  	unsigned long dram_rate;
  	unsigned long dram_rate;
  	unsigned long periph_rate;
  	unsigned long periph_rate;
@@ -8,7 +8,7 @@
  
  
  	xtal_rate = mt7620_get_xtal_rate();
  	xtal_rate = mt7620_get_xtal_rate();
  
  
-@@ -403,6 +404,7 @@ void __init ralink_clk_init(void)
+@@ -523,6 +524,7 @@ void __init ralink_clk_init(void)
  			cpu_rate = MHZ(575);
  			cpu_rate = MHZ(575);
  		dram_rate = sys_rate = cpu_rate / 3;
  		dram_rate = sys_rate = cpu_rate / 3;
  		periph_rate = MHZ(40);
  		periph_rate = MHZ(40);
@@ -16,7 +16,7 @@
  
  
  		ralink_clk_add("10000d00.uartlite", periph_rate);
  		ralink_clk_add("10000d00.uartlite", periph_rate);
  		ralink_clk_add("10000e00.uartlite", periph_rate);
  		ralink_clk_add("10000e00.uartlite", periph_rate);
-@@ -414,6 +416,7 @@ void __init ralink_clk_init(void)
+@@ -534,6 +536,7 @@ void __init ralink_clk_init(void)
  		dram_rate = mt7620_get_dram_rate(pll_rate);
  		dram_rate = mt7620_get_dram_rate(pll_rate);
  		sys_rate = mt7620_get_sys_rate(cpu_rate);
  		sys_rate = mt7620_get_sys_rate(cpu_rate);
  		periph_rate = mt7620_get_periph_rate(xtal_rate);
  		periph_rate = mt7620_get_periph_rate(xtal_rate);
@@ -24,7 +24,7 @@
  
  
  		pr_debug(RFMT("XTAL") RFMT("CPU_PLL") RFMT("PLL"),
  		pr_debug(RFMT("XTAL") RFMT("CPU_PLL") RFMT("PLL"),
  			 RINT(xtal_rate), RFRAC(xtal_rate),
  			 RINT(xtal_rate), RFRAC(xtal_rate),
-@@ -435,6 +438,8 @@ void __init ralink_clk_init(void)
+@@ -555,6 +558,8 @@ void __init ralink_clk_init(void)
  	ralink_clk_add("cpu", cpu_rate);
  	ralink_clk_add("cpu", cpu_rate);
  	ralink_clk_add("10000100.timer", periph_rate);
  	ralink_clk_add("10000100.timer", periph_rate);
  	ralink_clk_add("10000120.watchdog", periph_rate);
  	ralink_clk_add("10000120.watchdog", periph_rate);

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.