Browse Source

mediatek: sync and patches add support for several boards

Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 49263
John Crispin 9 năm trước cách đây
mục cha
commit
090b134786
98 tập tin đã thay đổi với 1178 bổ sung262 xóa
  1. 5 2
      target/linux/mediatek/base-files/lib/mediatek.sh
  2. 41 0
      target/linux/mediatek/base-files/lib/upgrade/platform.sh
  3. 6 1
      target/linux/mediatek/config-4.4
  4. 426 0
      target/linux/mediatek/files/arch/arm/boot/dts/mt7623-NAND.dts
  5. 474 0
      target/linux/mediatek/files/arch/arm/boot/dts/mt7623-eMMC.dts
  6. 19 6
      target/linux/mediatek/image/Makefile
  7. 1 1
      target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch
  8. 1 1
      target/linux/mediatek/patches-4.4/0002-soc-mediatek-Separate-scpsys-driver-common-code.patch
  9. 1 1
      target/linux/mediatek/patches-4.4/0003-soc-mediatek-Init-MT8173-scpsys-driver-earlier.patch
  10. 1 1
      target/linux/mediatek/patches-4.4/0004-soc-mediatek-Add-MT2701-power-dt-bindings.patch
  11. 1 1
      target/linux/mediatek/patches-4.4/0005-soc-mediatek-Add-MT2701-MT7623-scpsys-driver.patch
  12. 1 1
      target/linux/mediatek/patches-4.4/0006-clk-mediatek-Refine-the-makefile-to-support-multiple.patch
  13. 1 1
      target/linux/mediatek/patches-4.4/0007-dt-bindings-ARM-Mediatek-Document-bindings-for-MT270.patch
  14. 1 1
      target/linux/mediatek/patches-4.4/0008-clk-mediatek-Add-dt-bindings-for-MT2701-clocks.patch
  15. 1 1
      target/linux/mediatek/patches-4.4/0009-clk-mediatek-Add-MT2701-clock-support.patch
  16. 1 1
      target/linux/mediatek/patches-4.4/0010-reset-mediatek-mt2701-reset-controller-dt-binding-fi.patch
  17. 1 1
      target/linux/mediatek/patches-4.4/0011-reset-mediatek-mt2701-reset-driver.patch
  18. 1 1
      target/linux/mediatek/patches-4.4/0012-ARM-mediatek-Add-MT2701-config-options-for-mediatek-.patch
  19. 1 1
      target/linux/mediatek/patches-4.4/0013-dt-bindings-mediatek-Modify-pinctrl-bindings-for-mt2.patch
  20. 1 1
      target/linux/mediatek/patches-4.4/0014-pinctrl-dt-bindings-Add-pinfunc-header-file-for-mt27.patch
  21. 1 1
      target/linux/mediatek/patches-4.4/0015-dt-bindings-mediatek-Modify-pinctrl-bindings-for-mt7.patch
  22. 1 1
      target/linux/mediatek/patches-4.4/0016-pinctrl-dt-bindings-Add-pinctrl-file-for-mt7623.patch
  23. 1 1
      target/linux/mediatek/patches-4.4/0017-clk-add-hifsys-reset.patch
  24. 1 1
      target/linux/mediatek/patches-4.4/0018-dt-bindings-Add-a-binding-for-Mediatek-xHCI-host-con.patch
  25. 1 1
      target/linux/mediatek/patches-4.4/0019-xhci-mediatek-support-MTK-xHCI-host-controller.patch
  26. 1 1
      target/linux/mediatek/patches-4.4/0020-arm64-dts-mediatek-add-xHCI-usb-phy-for-mt8173.patch
  27. 1 1
      target/linux/mediatek/patches-4.4/0021-Document-DT-Add-bindings-for-mediatek-MT7623-SoC-Pla.patch
  28. 1 1
      target/linux/mediatek/patches-4.4/0022-soc-mediatek-add-compat-string-for-mt7623-to-scpsys.patch
  29. 1 1
      target/linux/mediatek/patches-4.4/0023-ARM-dts-mediatek-add-MT7623-basic-support.patch
  30. 1 1
      target/linux/mediatek/patches-4.4/0024-dt-bindings-add-MediaTek-PCIe-binding-documentation.patch
  31. 1 1
      target/linux/mediatek/patches-4.4/0025-PCI-mediatek-add-support-for-PCIe-found-on-MT7623-MT.patch
  32. 1 1
      target/linux/mediatek/patches-4.4/0026-scpsys-various-fixes.patch
  33. 1 1
      target/linux/mediatek/patches-4.4/0027-soc-mediatek-PMIC-wrap-Clear-the-vldclr-if-state-mac.patch
  34. 1 1
      target/linux/mediatek/patches-4.4/0028-ARM-mediatek-add-MT7623-smp-bringup-code.patch
  35. 1 1
      target/linux/mediatek/patches-4.4/0029-soc-mediatek-PMIC-wrap-clear-the-STAUPD_TRIG-bit-of-.patch
  36. 1 1
      target/linux/mediatek/patches-4.4/0030-ARM-mediatek-add-mt2701-smp-bringup-code.patch
  37. 1 1
      target/linux/mediatek/patches-4.4/0031-dt-bindings-ARM-Mediatek-add-MT2701-7623-string-to-t.patch
  38. 1 1
      target/linux/mediatek/patches-4.4/0032-soc-mediatek-PMIC-wrap-don-t-duplicate-the-wrapper-d.patch
  39. 1 1
      target/linux/mediatek/patches-4.4/0033-soc-mediatek-PMIC-wrap-add-wrapper-callbacks-for-ini.patch
  40. 1 1
      target/linux/mediatek/patches-4.4/0034-soc-mediatek-PMIC-wrap-split-SoC-specific-init-into-.patch
  41. 1 1
      target/linux/mediatek/patches-4.4/0035-soc-mediatek-PMIC-wrap-WRAP_INT_EN-needs-a-different.patch
  42. 1 1
      target/linux/mediatek/patches-4.4/0036-soc-mediatek-PMIC-wrap-SPI_WRITE-needs-a-different-b.patch
  43. 1 1
      target/linux/mediatek/patches-4.4/0037-soc-mediatek-PMIC-wrap-move-wdt_src-into-the-pmic_wr.patch
  44. 1 1
      target/linux/mediatek/patches-4.4/0038-soc-mediatek-PMIC-wrap-remove-pwrap_is_mt8135-and-pw.patch
  45. 1 1
      target/linux/mediatek/patches-4.4/0039-soc-mediatek-PMIC-wrap-add-a-slave-specific-struct.patch
  46. 1 1
      target/linux/mediatek/patches-4.4/0040-soc-mediatek-PMIC-wrap-add-mt6323-slave-support.patch
  47. 1 1
      target/linux/mediatek/patches-4.4/0041-soc-mediatek-PMIC-wrap-add-MT2701-7623-support.patch
  48. 1 1
      target/linux/mediatek/patches-4.4/0042-dt-bindings-mfd-Add-bindings-for-the-MediaTek-MT6323.patch
  49. 1 1
      target/linux/mediatek/patches-4.4/0043-mfd-mt6397-int_con-and-int_status-may-vary-in-locati.patch
  50. 1 1
      target/linux/mediatek/patches-4.4/0044-mfd-mt6397-add-support-for-different-Slave-types.patch
  51. 1 1
      target/linux/mediatek/patches-4.4/0045-mfd-mt6397-add-MT6323-support-to-MT6397-driver.patch
  52. 1 1
      target/linux/mediatek/patches-4.4/0046-regulator-Add-document-for-MT6323-regulator.patch
  53. 1 1
      target/linux/mediatek/patches-4.4/0047-regulator-mt6323-Add-support-for-MT6323-regulator.patch
  54. 1 1
      target/linux/mediatek/patches-4.4/0048-net-next-mediatek-document-MediaTek-SoC-ethernet-bin.patch
  55. 1 1
      target/linux/mediatek/patches-4.4/0049-net-next-mediatek-add-support-for-MT7623-ethernet.patch
  56. 1 1
      target/linux/mediatek/patches-4.4/0050-net-next-mediatek-add-Kconfig-and-Makefile.patch
  57. 1 1
      target/linux/mediatek/patches-4.4/0051-net-next-mediatek-add-an-entry-to-MAINTAINERS.patch
  58. 1 1
      target/linux/mediatek/patches-4.4/0052-mtd-nand-add-an-mtd_to_nand-helper.patch
  59. 1 1
      target/linux/mediatek/patches-4.4/0053-mtd-nand-add-nand_to_mtd-helper.patch
  60. 1 1
      target/linux/mediatek/patches-4.4/0054-mtd-nand-add-helpers-to-access-priv.patch
  61. 1 1
      target/linux/mediatek/patches-4.4/0055-mtd-nand-embed-an-mtd_info-structure-into-nand_chip.patch
  62. 1 1
      target/linux/mediatek/patches-4.4/0056-mtd-add-get-set-of_node-flash_node-helpers.patch
  63. 1 1
      target/linux/mediatek/patches-4.4/0057-mtd-mediatek-device-tree-docs-for-MTK-Smart-Device-G.patch
  64. 1 1
      target/linux/mediatek/patches-4.4/0058-mtd-mediatek-driver-for-MTK-Smart-Device-Gen1-NAND.patch
  65. 1 1
      target/linux/mediatek/patches-4.4/0059-mtd-nand-backport-fixes.patch
  66. 1 1
      target/linux/mediatek/patches-4.4/0060-clk-dont-disable-unused-clocks.patch
  67. 1 1
      target/linux/mediatek/patches-4.4/0061-clk-mediatek-enable-critical-clocks.patch
  68. 1 1
      target/linux/mediatek/patches-4.4/0062-clk-mediatek-Export-CPU-mux-clocks-for-CPU-frequency.patch
  69. 1 1
      target/linux/mediatek/patches-4.4/0063-cpufreq-mediatek-add-driver.patch
  70. 1 1
      target/linux/mediatek/patches-4.4/0064-arm-mediatek-make-a7-timer-work.patch
  71. 1 1
      target/linux/mediatek/patches-4.4/0065-net-mediatek-checking-for-IS_ERR-instead-of-NULL.patch
  72. 1 1
      target/linux/mediatek/patches-4.4/0066-net-mediatek-unlock-on-error-in-mtk_tx_map.patch
  73. 1 1
      target/linux/mediatek/patches-4.4/0067-net-mediatek-use-dma_addr_t-correctly.patch
  74. 1 1
      target/linux/mediatek/patches-4.4/0068-net-mediatek-remove-incorrect-dma_mask-assignment.patch
  75. 1 1
      target/linux/mediatek/patches-4.4/0069-net-mediatek-check-device_reset-return-code.patch
  76. 1 1
      target/linux/mediatek/patches-4.4/0070-net-mediatek-watchdog_timeo-was-not-set.patch
  77. 1 1
      target/linux/mediatek/patches-4.4/0071-net-mediatek-mtk_cal_txd_req-returns-bad-value.patch
  78. 1 1
      target/linux/mediatek/patches-4.4/0072-net-mediatek-remove-superflous-reset-call.patch
  79. 1 1
      target/linux/mediatek/patches-4.4/0073-net-mediatek-fix-stop-and-wakeup-of-queue.patch
  80. 1 1
      target/linux/mediatek/patches-4.4/0074-net-mediatek-fix-mtk_pending_work.patch
  81. 1 1
      target/linux/mediatek/patches-4.4/0075-net-mediatek-fix-TX-locking.patch
  82. 1 1
      target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch
  83. 1 1
      target/linux/mediatek/patches-4.4/0077-net-mediatek-do-not-set-the-QID-field-in-the-TX-DMA-.patch
  84. 1 1
      target/linux/mediatek/patches-4.4/0078-net-mediatek-update-the-IRQ-part-of-the-binding-docu.patch
  85. 12 13
      target/linux/mediatek/patches-4.4/0079-net-next-mediatek-fix-BQL-support.patch
  86. 3 3
      target/linux/mediatek/patches-4.4/0080-net-next-mediatek-fix-gigabit-and-flow-control-adver.patch
  87. 3 3
      target/linux/mediatek/patches-4.4/0081-net-next-mediatek-add-fixed-phy-support.patch
  88. 3 3
      target/linux/mediatek/patches-4.4/0082-net-next-mediatek-add-RX-delay-support.patch
  89. 3 3
      target/linux/mediatek/patches-4.4/0083-net-next-mediatek-add-missing-return-code-check.patch
  90. 4 4
      target/linux/mediatek/patches-4.4/0084-net-next-mediatek-fix-missing-free-of-scratch-memory.patch
  91. 4 4
      target/linux/mediatek/patches-4.4/0085-net-next-mediatek-invalid-buffer-lookup-in-mtk_tx_ma.patch
  92. 5 5
      target/linux/mediatek/patches-4.4/0086-net-next-mediatek-dropped-rx-packets-are-not-being-c.patch
  93. 4 4
      target/linux/mediatek/patches-4.4/0087-net-next-mediatek-add-IRQ-locking.patch
  94. 52 54
      target/linux/mediatek/patches-4.4/0088-net-next-mediatek-add-support-for-IRQ-grouping.patch
  95. 18 15
      target/linux/mediatek/patches-4.4/0089-net-mediatek-add-gsw-mt7530-driver.patch
  96. 7 7
      target/linux/mediatek/patches-4.4/0090-net-mediatek-v4.4-backports.patch
  97. 0 57
      target/linux/mediatek/patches-4.4/0091-net-next-mediatek-remove-BQL.patch
  98. 11 0
      target/linux/mediatek/patches-4.4/0200-devicetree.patch

+ 5 - 2
target/linux/mediatek/base-files/lib/mediatek.sh

@@ -10,8 +10,11 @@ mediatek_board_detect() {
 	machine=$(cat /proc/device-tree/model)
 	machine=$(cat /proc/device-tree/model)
 
 
 	case "$machine" in
 	case "$machine" in
-	"MediaTek MT7623 evaluation board")
-		name="mt7623_evb"
+	"MediaTek MT7623 eMMC evaluation board")
+		name="eMMC"
+		;;
+	"MediaTek MT7623 NAND evaluation board")
+		name="NAND"
 		;;
 		;;
 	esac
 	esac
 
 

+ 41 - 0
target/linux/mediatek/base-files/lib/upgrade/platform.sh

@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2016 OpenWrt.org
+#
+
+platform_do_upgrade() {
+	local tar_file="$1"
+	local board="$(cat /tmp/sysinfo/board_name)"
+
+	echo "flashing kernel"
+	tar xf $tar_file sysupgrade-$board/kernel -O | mtd write - kernel
+
+	echo "flashing rootfs"
+	tar xf $tar_file sysupgrade-$board/root -O | mtd write - rootfs
+
+	return 0
+}
+
+platform_check_image() {
+	local tar_file="$1"
+	local board=$(cat /tmp/sysinfo/board_name)
+
+	case "$board" in
+	NAND | \
+	eMMC)
+		local kernel_length=`(tar xf $tar_file sysupgrade-$board/kernel -O | wc -c) 2> /dev/null`
+		local rootfs_length=`(tar xf $tar_file sysupgrade-$board/root -O | wc -c) 2> /dev/null`
+		;;
+
+	*)
+		echo "Sysupgrade is not supported on your board yet."
+		return 1
+		;;
+	esac
+
+	[ "$kernel_length" = 0 -o "$rootfs_length" = 0 ] && {
+		echo "The upgarde image is corrupt."
+		return 1
+	}
+
+	return 0
+}

+ 6 - 1
target/linux/mediatek/config-4.4

@@ -59,7 +59,7 @@ CONFIG_CLKSRC_MMIO=y
 CONFIG_CLKSRC_OF=y
 CONFIG_CLKSRC_OF=y
 CONFIG_CLKSRC_PROBE=y
 CONFIG_CLKSRC_PROBE=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLONE_BACKWARDS=y
-CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 block2mtd.block2mtd=/dev/mmcblk0,65536,eMMC,5 mtdparts=eMMC:256k(mbr)ro,512k(uboot)ro,256k(config)ro,256k(factory)ro,32M(bootimg),32M(recovery),1024M(rootfs),2048M(usrdata),-(bmtpool)"
+CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 block2mtd.block2mtd=/dev/mmcblk0,65536,eMMC,5 mtdparts=eMMC:256k(mbr)ro,512k(uboot)ro,256k(config)ro,256k(factory)ro,32M(kernel),32M(recovery),1024M(rootfs),2048M(usrdata),-(bmtpool)"
 CONFIG_CMDLINE_FORCE=y
 CONFIG_CMDLINE_FORCE=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK_MEDIATEK=y
 CONFIG_COMMON_CLK_MEDIATEK=y
@@ -148,6 +148,7 @@ CONFIG_EARLY_PRINTK=y
 CONFIG_EDAC_ATOMIC_SCRUB=y
 CONFIG_EDAC_ATOMIC_SCRUB=y
 CONFIG_EDAC_SUPPORT=y
 CONFIG_EDAC_SUPPORT=y
 CONFIG_ELF_CORE=y
 CONFIG_ELF_CORE=y
+CONFIG_FIXED_PHY=y
 CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_FREEZER=y
 CONFIG_FREEZER=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ALLOCATOR=y
@@ -296,6 +297,10 @@ CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_MTD_BLOCK2MTD=y
 CONFIG_MTD_BLOCK2MTD=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_M25P80=y
 CONFIG_MTD_M25P80=y
+CONFIG_MTD_MT81xx_NOR=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_MTK=y
 CONFIG_MTD_SPI_NOR=y
 CONFIG_MTD_SPI_NOR=y
 CONFIG_MTK_INFRACFG=y
 CONFIG_MTK_INFRACFG=y
 CONFIG_MTK_PMIC_WRAP=y
 CONFIG_MTK_PMIC_WRAP=y

+ 426 - 0
target/linux/mediatek/files/arch/arm/boot/dts/mt7623-NAND.dts

@@ -0,0 +1,426 @@
+/*
+ * Copyright (c) 2016 MediaTek Inc.
+ * Author: John Crispin <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+
+#include "mt7623.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	model = "MediaTek MT7623 evaluation board";
+	compatible = "mediatek,mt7623-evb", "mediatek,mt7623";
+
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	memory {
+		reg = <0 0x80000000 0 0x20000000>;
+	};
+
+	usb_p1_vbus: regulator@0 {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&pio 135 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+};
+
+&cpu0 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&cpu1 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&cpu2 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&cpu3 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&pwrap {
+	pmic: mt6323 {
+		compatible = "mediatek,mt6323";
+		interrupt-parent = <&pio>;
+		interrupts = <150 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+
+		mt6323regulator: mt6323regulator{
+			compatible = "mediatek,mt6323-regulator";
+
+			mt6323_vproc_reg: buck_vproc{
+				regulator-name = "vproc";
+				regulator-min-microvolt = < 700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-ramp-delay = <12500>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vsys_reg: buck_vsys{
+				regulator-name = "vsys";
+				regulator-min-microvolt = <1400000>;
+				regulator-max-microvolt = <2987500>;
+				regulator-ramp-delay = <25000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vpa_reg: buck_vpa{
+				regulator-name = "vpa";
+				regulator-min-microvolt = < 500000>;
+				regulator-max-microvolt = <3650000>;
+			};
+
+			mt6323_vtcxo_reg: ldo_vtcxo{
+				regulator-name = "vtcxo";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <90>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcn28_reg: ldo_vcn28{
+				regulator-name = "vcn28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <185>;
+			};
+
+			mt6323_vcn33_bt_reg: ldo_vcn33_bt{
+				regulator-name = "vcn33_bt";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3600000>;
+				regulator-enable-ramp-delay = <185>;
+			};
+
+			mt6323_vcn33_wifi_reg: ldo_vcn33_wifi{
+				regulator-name = "vcn33_wifi";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3600000>;
+				regulator-enable-ramp-delay = <185>;
+			};
+
+			mt6323_va_reg: ldo_va{
+				regulator-name = "va";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcama_reg: ldo_vcama{
+				regulator-name = "vcama";
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vio28_reg: ldo_vio28{
+				regulator-name = "vio28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vusb_reg: ldo_vusb{
+				regulator-name = "vusb";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-boot-on;
+			};
+
+			mt6323_vmc_reg: ldo_vmc{
+				regulator-name = "vmc";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+				regulator-boot-on;
+			};
+
+			mt6323_vmch_reg: ldo_vmch{
+				regulator-name = "vmch";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+				regulator-boot-on;
+			};
+
+			mt6323_vemc3v3_reg: ldo_vemc3v3{
+				regulator-name = "vemc3v3";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+				regulator-boot-on;
+			};
+
+			mt6323_vgp1_reg: ldo_vgp1{
+				regulator-name = "vgp1";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vgp2_reg: ldo_vgp2{
+				regulator-name = "vgp2";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vgp3_reg: ldo_vgp3{
+				regulator-name = "vgp3";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vcn18_reg: ldo_vcn18{
+				regulator-name = "vcn18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vsim1_reg: ldo_vsim1{
+				regulator-name = "vsim1";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vsim2_reg: ldo_vsim2{
+				regulator-name = "vsim2";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vrtc_reg: ldo_vrtc{
+				regulator-name = "vrtc";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcamaf_reg: ldo_vcamaf{
+				regulator-name = "vcamaf";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vibr_reg: ldo_vibr{
+				regulator-name = "vibr";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+			};
+
+			mt6323_vrf18_reg: ldo_vrf18{
+				regulator-name = "vrf18";
+				regulator-min-microvolt = <1825000>;
+				regulator-max-microvolt = <1825000>;
+				regulator-enable-ramp-delay = <187>;
+			};
+
+			mt6323_vm_reg: ldo_vm{
+				regulator-name = "vm";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vio18_reg: ldo_vio18{
+				regulator-name = "vio18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcamd_reg: ldo_vcamd{
+				regulator-name = "vcamd";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vcamio_reg: ldo_vcamio{
+				regulator-name = "vcamio";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+		};
+	};
+};
+
+&uart2 {
+	status = "okay";
+};
+
+&pio {
+	nand_pins_default: nanddefault {
+		pins_dat {
+			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_NLD7>,
+				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_NLD6>,
+				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_NLD4>,
+				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_NLD3>,
+				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_NLD0>,
+				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_NLD1>,
+				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_NLD5>,
+				 <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
+				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
+				input-enable;
+				drive-strength = <MTK_DRIVE_8mA>;
+				bias-pull-up;
+		};
+
+		pins_we {
+			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		pins_ale {
+			pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+		};
+	};
+
+	eth_default: eth {
+		pins_eth {
+			pinmux = <MT7623_PIN_275_G2_MDC_FUNC_MDC>,
+				 <MT7623_PIN_276_G2_MDIO_FUNC_MDIO>,
+				 <MT7623_PIN_262_G2_TXEN_FUNC_G2_TXEN>,
+				 <MT7623_PIN_263_G2_TXD3_FUNC_G2_TXD3>,
+				 <MT7623_PIN_264_G2_TXD2_FUNC_G2_TXD2>,
+				 <MT7623_PIN_265_G2_TXD1_FUNC_G2_TXD1>,
+				 <MT7623_PIN_266_G2_TXD0_FUNC_G2_TXD0>,
+				 <MT7623_PIN_267_G2_TXCLK_FUNC_G2_TXC>,
+				 <MT7623_PIN_268_G2_RXCLK_FUNC_G2_RXC>,
+				 <MT7623_PIN_269_G2_RXD0_FUNC_G2_RXD0>,
+				 <MT7623_PIN_270_G2_RXD1_FUNC_G2_RXD1>,
+				 <MT7623_PIN_271_G2_RXD2_FUNC_G2_RXD2>,
+				 <MT7623_PIN_272_G2_RXD3_FUNC_G2_RXD3>,
+				 <MT7623_PIN_273_ESW_INT_FUNC_ESW_INT>,
+				 <MT7623_PIN_274_G2_RXDV_FUNC_G2_RXDV>;
+		};
+		
+		pins_eth_rst {
+			pinmux = <MT7623_PIN_15_GPIO15_FUNC_GPIO15>;
+			output-low;
+		};
+	};
+};
+
+&nandc {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&nand_pins_default>;
+	nand@0 {
+		reg = <0>;
+		spare_per_sector = <64>;
+		nand-on-flash-bbt;
+		nand-ecc-mode = "hw";
+		nand-ecc-strength = <12>;
+		nand-ecc-step-size = <1024>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@C0000 {
+				label = "uboot-env";
+				reg = <0xC0000 0x40000>;
+			};
+
+			partition@100000 {
+				label = "factory";
+				reg = <0x100000 0x40000>;
+			};
+
+			partition@140000 {
+				label = "kernel";
+				reg = <0x140000 0x2000000>;
+			};
+
+			partition@2140000 {
+				label = "recovery";
+				reg = <0x2140000 0x2000000>;
+			};
+
+			partition@4140000 {
+				label = "rootfs";
+				reg = <0x4140000 0x1000000>;
+			};
+		};
+	};
+};
+&bch {
+	status = "okay";
+};
+
+&usb1 {
+	vusb33-supply = <&mt6323_vusb_reg>;
+	vbus-supply = <&usb_p1_vbus>;
+	status = "okay";
+};
+
+&u3phy1 {
+	status = "okay";
+};
+
+&pcie {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+};
+
+&gmac1 {
+	mac-address = [00 11 22 33 44 56];
+	status = "okay";
+};
+
+&gmac2 {
+	mac-address = [00 11 22 33 44 55];
+	status = "okay";
+};
+
+&gsw {
+	pinctrl-names = "default";
+	pinctrl-0 = <&eth_default>;
+	mediatek,reset-pin = <&pio 15 0>;
+	status = "okay";
+};

+ 474 - 0
target/linux/mediatek/files/arch/arm/boot/dts/mt7623-eMMC.dts

@@ -0,0 +1,474 @@
+/*
+ * Copyright (c) 2016 MediaTek Inc.
+ * Author: John Crispin <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+
+#include "mt7623.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	model = "MediaTek MT7623 eMMC evaluation board";
+	compatible = "mediatek,mt7623-evb", "mediatek,mt7623";
+
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	memory {
+		reg = <0 0x80000000 0 0x20000000>;
+	};
+
+	usb_p1_vbus: regulator@0 {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&pio 135 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+};
+
+&cpu0 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&cpu1 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&cpu2 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&cpu3 {
+	proc-supply = <&mt6323_vproc_reg>;
+};
+
+&pwrap {
+	pmic: mt6323 {
+		compatible = "mediatek,mt6323";
+		interrupt-parent = <&pio>;
+		interrupts = <150 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+
+		mt6323regulator: mt6323regulator{
+			compatible = "mediatek,mt6323-regulator";
+
+			mt6323_vproc_reg: buck_vproc{
+				regulator-name = "vproc";
+				regulator-min-microvolt = < 700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-ramp-delay = <12500>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vsys_reg: buck_vsys{
+				regulator-name = "vsys";
+				regulator-min-microvolt = <1400000>;
+				regulator-max-microvolt = <2987500>;
+				regulator-ramp-delay = <25000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vpa_reg: buck_vpa{
+				regulator-name = "vpa";
+				regulator-min-microvolt = < 500000>;
+				regulator-max-microvolt = <3650000>;
+			};
+
+			mt6323_vtcxo_reg: ldo_vtcxo{
+				regulator-name = "vtcxo";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <90>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcn28_reg: ldo_vcn28{
+				regulator-name = "vcn28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <185>;
+			};
+
+			mt6323_vcn33_bt_reg: ldo_vcn33_bt{
+				regulator-name = "vcn33_bt";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3600000>;
+				regulator-enable-ramp-delay = <185>;
+			};
+
+			mt6323_vcn33_wifi_reg: ldo_vcn33_wifi{
+				regulator-name = "vcn33_wifi";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3600000>;
+				regulator-enable-ramp-delay = <185>;
+			};
+
+			mt6323_va_reg: ldo_va{
+				regulator-name = "va";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcama_reg: ldo_vcama{
+				regulator-name = "vcama";
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vio28_reg: ldo_vio28{
+				regulator-name = "vio28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vusb_reg: ldo_vusb{
+				regulator-name = "vusb";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-boot-on;
+			};
+
+			mt6323_vmc_reg: ldo_vmc{
+				regulator-name = "vmc";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+				regulator-boot-on;
+			};
+
+			mt6323_vmch_reg: ldo_vmch{
+				regulator-name = "vmch";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+				regulator-boot-on;
+			};
+
+			mt6323_vemc3v3_reg: ldo_vemc3v3{
+				regulator-name = "vemc3v3";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+				regulator-boot-on;
+			};
+
+			mt6323_vgp1_reg: ldo_vgp1{
+				regulator-name = "vgp1";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vgp2_reg: ldo_vgp2{
+				regulator-name = "vgp2";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vgp3_reg: ldo_vgp3{
+				regulator-name = "vgp3";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vcn18_reg: ldo_vcn18{
+				regulator-name = "vcn18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vsim1_reg: ldo_vsim1{
+				regulator-name = "vsim1";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vsim2_reg: ldo_vsim2{
+				regulator-name = "vsim2";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vrtc_reg: ldo_vrtc{
+				regulator-name = "vrtc";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcamaf_reg: ldo_vcamaf{
+				regulator-name = "vcamaf";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vibr_reg: ldo_vibr{
+				regulator-name = "vibr";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <36>;
+			};
+
+			mt6323_vrf18_reg: ldo_vrf18{
+				regulator-name = "vrf18";
+				regulator-min-microvolt = <1825000>;
+				regulator-max-microvolt = <1825000>;
+				regulator-enable-ramp-delay = <187>;
+			};
+
+			mt6323_vm_reg: ldo_vm{
+				regulator-name = "vm";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vio18_reg: ldo_vio18{
+				regulator-name = "vio18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6323_vcamd_reg: ldo_vcamd{
+				regulator-name = "vcamd";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+
+			mt6323_vcamio_reg: ldo_vcamio{
+				regulator-name = "vcamio";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <216>;
+			};
+		};
+	};
+};
+
+&uart2 {
+	status = "okay";
+};
+
+&mmc0 {
+	status = "okay";
+	pinctrl-names = "default", "state_uhs";
+	pinctrl-0 = <&mmc0_pins_default>;
+	pinctrl-1 = <&mmc0_pins_uhs>;
+	bus-width = <8>;
+	max-frequency = <50000000>;
+	cap-mmc-highspeed;
+	vmmc-supply = <&mt6323_vemc3v3_reg>;
+	vqmmc-supply = <&mt6323_vio18_reg>;
+	non-removable;
+};
+
+&mmc1 {
+	status = "okay";
+	pinctrl-names = "default", "state_uhs";
+	pinctrl-0 = <&mmc1_pins_default>;
+	pinctrl-1 = <&mmc1_pins_uhs>;
+	bus-width = <4>;
+	max-frequency = <50000000>;
+	cap-sd-highspeed;
+	sd-uhs-sdr25;
+//	cd-gpios = <&pio 132 0>;
+	vmmc-supply = <&mt6323_vmch_reg>;
+	vqmmc-supply = <&mt6323_vmc_reg>;
+};
+
+&pio {
+	mmc0_pins_default: mmc0default {
+		pins_cmd_dat {
+			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
+				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
+				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
+				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
+				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
+				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
+				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
+				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
+				 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
+			input-enable;
+			bias-pull-up;
+		};
+
+		pins_clk {
+			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
+			bias-pull-down;
+		};
+
+		pins_rst {
+			pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
+			bias-pull-up;
+		};
+	};
+
+	mmc0_pins_uhs: mmc0 {
+		pins_cmd_dat {
+			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
+				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
+				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
+				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
+				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
+				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
+				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
+				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
+				 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
+			input-enable;
+			drive-strength = <MTK_DRIVE_2mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+		};
+
+		pins_clk {
+			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
+			drive-strength = <MTK_DRIVE_2mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
+		};
+
+		pins_rst {
+			pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
+			bias-pull-up;
+		};
+	};
+
+	mmc1_pins_default: mmc1default {
+		pins_cmd_dat {
+			pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
+				 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
+				 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
+				 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
+				 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
+			input-enable;
+			drive-strength = <MTK_DRIVE_4mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		pins_clk {
+			pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
+			bias-pull-down;
+			drive-strength = <MTK_DRIVE_4mA>;
+		};
+
+//		pins_insert {
+//			pinmux = <MT8173_PIN_132_I2S0_DATA1_FUNC_GPIO132>;
+//			bias-pull-up;
+//		};
+	};
+
+	mmc1_pins_uhs: mmc1 {
+		pins_cmd_dat {
+			pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
+				 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
+				 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
+				 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
+				 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
+			input-enable;
+			drive-strength = <MTK_DRIVE_4mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		pins_clk {
+			pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
+			drive-strength = <MTK_DRIVE_4mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+		};
+	};
+
+	eth_default: eth {
+		pins_eth {
+			pinmux = <MT7623_PIN_275_G2_MDC_FUNC_MDC>,
+				 <MT7623_PIN_276_G2_MDIO_FUNC_MDIO>,
+				 <MT7623_PIN_262_G2_TXEN_FUNC_G2_TXEN>,
+				 <MT7623_PIN_263_G2_TXD3_FUNC_G2_TXD3>,
+				 <MT7623_PIN_264_G2_TXD2_FUNC_G2_TXD2>,
+				 <MT7623_PIN_265_G2_TXD1_FUNC_G2_TXD1>,
+				 <MT7623_PIN_266_G2_TXD0_FUNC_G2_TXD0>,
+				 <MT7623_PIN_267_G2_TXCLK_FUNC_G2_TXC>,
+				 <MT7623_PIN_268_G2_RXCLK_FUNC_G2_RXC>,
+				 <MT7623_PIN_269_G2_RXD0_FUNC_G2_RXD0>,
+				 <MT7623_PIN_270_G2_RXD1_FUNC_G2_RXD1>,
+				 <MT7623_PIN_271_G2_RXD2_FUNC_G2_RXD2>,
+				 <MT7623_PIN_272_G2_RXD3_FUNC_G2_RXD3>,
+				 <MT7623_PIN_273_ESW_INT_FUNC_ESW_INT>,
+				 <MT7623_PIN_274_G2_RXDV_FUNC_G2_RXDV>;
+		};
+		
+		pins_eth_rst {
+			pinmux = <MT7623_PIN_15_GPIO15_FUNC_GPIO15>;
+			output-low;
+		};
+	};
+};
+
+&usb1 {
+	vusb33-supply = <&mt6323_vusb_reg>;
+	vbus-supply = <&usb_p1_vbus>;
+	status = "okay";
+};
+
+&u3phy1 {
+	status = "okay";
+};
+
+&pcie {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+};
+
+&gmac1 {
+	mac-address = [00 11 22 33 44 56];
+	status = "okay";
+};
+
+&gmac2 {
+	mac-address = [00 11 22 33 44 55];
+	status = "okay";
+};
+
+&gsw {
+	pinctrl-names = "default";
+	pinctrl-0 = <&eth_default>;
+	mediatek,reset-pin = <&pio 15 0>;
+	status = "okay";
+};

+ 19 - 6
target/linux/mediatek/image/Makefile

@@ -4,20 +4,33 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 include $(INCLUDE_DIR)/image.mk
 
 
 define Image/BuilduImage
 define Image/BuilduImage
-	cat $(LINUX_DIR)/arch/arm/boot/dts/mt7623-evb.dtb >> $(KDIR)/zImage$(1)
-	mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)'  -d $(KDIR)/zImage$(1) $(KDIR)/uImage$(1)
-	$(CP) $(KDIR)/uImage$(1) $(BIN_DIR)/$(IMG_PREFIX)-uImage$(1)
+	$(CP) $(KDIR)/zImage$(2) $(KDIR)/zImage-$(1)$(2)
+	cat $(LINUX_DIR)/arch/arm/boot/dts/mt7623-$1.dtb >> $(KDIR)/zImage-$(1)$(2)
+	mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)'  -d $(KDIR)/zImage-$(1)$(2) $(KDIR)/uImage-$(1)$(2)
 endef
 endef
 
 
-define Image/BuildKernel
-	$(call Image/BuilduImage)
+define Image/Build/SysupgradeCombined
+	$(call Image/BuilduImage,$1)
 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
-	$(call Image/BuilduImage,-initramfs)
+	$(call Image/BuilduImage,$1,-initramfs)
+	$(CP) $(KDIR)/uImage-$(1)-initramfs $(BIN_DIR)/$(IMG_PREFIX)-uImage-$(1)-initramfs
 endif
 endif
+	mkdir -p "$(KDIR_TMP)/sysupgrade-$(1)/"
+	echo "BOARD=$(1)" > "$(KDIR_TMP)/sysupgrade-$(1)/CONTROL"
+	$(CP) "$(KDIR)/root.squashfs" "$(KDIR_TMP)/sysupgrade-$(1)/root"
+	$(CP) "$(KDIR)/uImage-$(1)" "$(KDIR_TMP)/sysupgrade-$(1)/kernel"
+	(cd "$(KDIR_TMP)"; $(TAR) cvf \
+		"$(BIN_DIR)/$(IMG_PREFIX)-$(1)-sysupgrade.tar" sysupgrade-$(1) \
+			$(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+	)
 endef
 endef
 
 
 define Image/Build/squashfs
 define Image/Build/squashfs
 	$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
 	$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
+	$(CP) $(KDIR)/root.squashfs $(BIN_DIR)/$(IMG_PREFIX)-root.squashfs
+
+	$(call Image/Build/SysupgradeCombined,eMMC)
+	$(call Image/Build/SysupgradeCombined,NAND)
 endef
 endef
 
 
 define Image/Build
 define Image/Build

+ 1 - 1
target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch

@@ -1,7 +1,7 @@
 From c30a296646a42302065ba452abe95b0b4b550883 Mon Sep 17 00:00:00 2001
 From c30a296646a42302065ba452abe95b0b4b550883 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sun, 27 Jul 2014 09:38:50 +0100
 Date: Sun, 27 Jul 2014 09:38:50 +0100
-Subject: [PATCH 01/91] NET: multi phy support
+Subject: [PATCH 01/90] NET: multi phy support
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0002-soc-mediatek-Separate-scpsys-driver-common-code.patch

@@ -1,7 +1,7 @@
 From 2c93328ed05061a50e3bd4111379dbcf6946d3ac Mon Sep 17 00:00:00 2001
 From 2c93328ed05061a50e3bd4111379dbcf6946d3ac Mon Sep 17 00:00:00 2001
 From: James Liao <[email protected]>
 From: James Liao <[email protected]>
 Date: Wed, 30 Dec 2015 14:41:43 +0800
 Date: Wed, 30 Dec 2015 14:41:43 +0800
-Subject: [PATCH 02/91] soc: mediatek: Separate scpsys driver common code
+Subject: [PATCH 02/90] soc: mediatek: Separate scpsys driver common code
 
 
 Separate scpsys driver common code to mtk-scpsys.c, and move MT8173
 Separate scpsys driver common code to mtk-scpsys.c, and move MT8173
 platform code to mtk-scpsys-mt8173.c.
 platform code to mtk-scpsys-mt8173.c.

+ 1 - 1
target/linux/mediatek/patches-4.4/0003-soc-mediatek-Init-MT8173-scpsys-driver-earlier.patch

@@ -1,7 +1,7 @@
 From c359272f86805259c5801385d60fdeea9d629cf9 Mon Sep 17 00:00:00 2001
 From c359272f86805259c5801385d60fdeea9d629cf9 Mon Sep 17 00:00:00 2001
 From: James Liao <[email protected]>
 From: James Liao <[email protected]>
 Date: Wed, 30 Dec 2015 14:41:44 +0800
 Date: Wed, 30 Dec 2015 14:41:44 +0800
-Subject: [PATCH 03/91] soc: mediatek: Init MT8173 scpsys driver earlier
+Subject: [PATCH 03/90] soc: mediatek: Init MT8173 scpsys driver earlier
 
 
 Some power domain comsumers may init before module_init.
 Some power domain comsumers may init before module_init.
 So the power domain provider (scpsys) need to be initialized
 So the power domain provider (scpsys) need to be initialized

+ 1 - 1
target/linux/mediatek/patches-4.4/0004-soc-mediatek-Add-MT2701-power-dt-bindings.patch

@@ -1,7 +1,7 @@
 From f371844374fff273f817d6c43f679606417af59e Mon Sep 17 00:00:00 2001
 From f371844374fff273f817d6c43f679606417af59e Mon Sep 17 00:00:00 2001
 From: Shunli Wang <[email protected]>
 From: Shunli Wang <[email protected]>
 Date: Wed, 30 Dec 2015 14:41:45 +0800
 Date: Wed, 30 Dec 2015 14:41:45 +0800
-Subject: [PATCH 04/91] soc: mediatek: Add MT2701 power dt-bindings
+Subject: [PATCH 04/90] soc: mediatek: Add MT2701 power dt-bindings
 
 
 Add power dt-bindings for MT2701.
 Add power dt-bindings for MT2701.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0005-soc-mediatek-Add-MT2701-MT7623-scpsys-driver.patch

@@ -1,7 +1,7 @@
 From c6711565985f359d7d3c05f01f081e4c216902de Mon Sep 17 00:00:00 2001
 From c6711565985f359d7d3c05f01f081e4c216902de Mon Sep 17 00:00:00 2001
 From: Shunli Wang <[email protected]>
 From: Shunli Wang <[email protected]>
 Date: Wed, 30 Dec 2015 14:41:46 +0800
 Date: Wed, 30 Dec 2015 14:41:46 +0800
-Subject: [PATCH 05/91] soc: mediatek: Add MT2701/MT7623 scpsys driver
+Subject: [PATCH 05/90] soc: mediatek: Add MT2701/MT7623 scpsys driver
 
 
 Add scpsys driver for MT2701 and MT7623.
 Add scpsys driver for MT2701 and MT7623.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0006-clk-mediatek-Refine-the-makefile-to-support-multiple.patch

@@ -1,7 +1,7 @@
 From 0c39bcd17fa6ce723f56ad3756b4bb36c4690342 Mon Sep 17 00:00:00 2001
 From 0c39bcd17fa6ce723f56ad3756b4bb36c4690342 Mon Sep 17 00:00:00 2001
 From: James Liao <[email protected]>
 From: James Liao <[email protected]>
 Date: Tue, 5 Jan 2016 14:30:17 +0800
 Date: Tue, 5 Jan 2016 14:30:17 +0800
-Subject: [PATCH 06/91] clk: mediatek: Refine the makefile to support multiple
+Subject: [PATCH 06/90] clk: mediatek: Refine the makefile to support multiple
  clock drivers
  clock drivers
 
 
 Add a Kconfig to define clock configuration for each SoC, and
 Add a Kconfig to define clock configuration for each SoC, and

+ 1 - 1
target/linux/mediatek/patches-4.4/0007-dt-bindings-ARM-Mediatek-Document-bindings-for-MT270.patch

@@ -1,7 +1,7 @@
 From d7e96f87f66c571e9f4171ecd89c656fbd2de89b Mon Sep 17 00:00:00 2001
 From d7e96f87f66c571e9f4171ecd89c656fbd2de89b Mon Sep 17 00:00:00 2001
 From: James Liao <[email protected]>
 From: James Liao <[email protected]>
 Date: Tue, 5 Jan 2016 14:30:18 +0800
 Date: Tue, 5 Jan 2016 14:30:18 +0800
-Subject: [PATCH 07/91] dt-bindings: ARM: Mediatek: Document bindings for
+Subject: [PATCH 07/90] dt-bindings: ARM: Mediatek: Document bindings for
  MT2701
  MT2701
 
 
 This patch adds the binding documentation for apmixedsys, bdpsys,
 This patch adds the binding documentation for apmixedsys, bdpsys,

+ 1 - 1
target/linux/mediatek/patches-4.4/0008-clk-mediatek-Add-dt-bindings-for-MT2701-clocks.patch

@@ -1,7 +1,7 @@
 From 2fcbc15da2f13164e0851b9c7fae290249f0b44d Mon Sep 17 00:00:00 2001
 From 2fcbc15da2f13164e0851b9c7fae290249f0b44d Mon Sep 17 00:00:00 2001
 From: Shunli Wang <[email protected]>
 From: Shunli Wang <[email protected]>
 Date: Tue, 5 Jan 2016 14:30:19 +0800
 Date: Tue, 5 Jan 2016 14:30:19 +0800
-Subject: [PATCH 08/91] clk: mediatek: Add dt-bindings for MT2701 clocks
+Subject: [PATCH 08/90] clk: mediatek: Add dt-bindings for MT2701 clocks
 
 
 Add MT2701 clock dt-bindings, include topckgen, apmixedsys,
 Add MT2701 clock dt-bindings, include topckgen, apmixedsys,
 infracfg, pericfg and subsystem clocks.
 infracfg, pericfg and subsystem clocks.

+ 1 - 1
target/linux/mediatek/patches-4.4/0009-clk-mediatek-Add-MT2701-clock-support.patch

@@ -1,7 +1,7 @@
 From f2c07eaa2df52f9acac9ffc3457d3d81079dd723 Mon Sep 17 00:00:00 2001
 From f2c07eaa2df52f9acac9ffc3457d3d81079dd723 Mon Sep 17 00:00:00 2001
 From: Shunli Wang <[email protected]>
 From: Shunli Wang <[email protected]>
 Date: Tue, 5 Jan 2016 14:30:20 +0800
 Date: Tue, 5 Jan 2016 14:30:20 +0800
-Subject: [PATCH 09/91] clk: mediatek: Add MT2701 clock support
+Subject: [PATCH 09/90] clk: mediatek: Add MT2701 clock support
 
 
 Add MT2701 clock support, include topckgen, apmixedsys,
 Add MT2701 clock support, include topckgen, apmixedsys,
 infracfg, pericfg and subsystem clocks.
 infracfg, pericfg and subsystem clocks.

+ 1 - 1
target/linux/mediatek/patches-4.4/0010-reset-mediatek-mt2701-reset-controller-dt-binding-fi.patch

@@ -1,7 +1,7 @@
 From 8d134cbe750b59d15c591622d81e2e9daa09f0c4 Mon Sep 17 00:00:00 2001
 From 8d134cbe750b59d15c591622d81e2e9daa09f0c4 Mon Sep 17 00:00:00 2001
 From: Shunli Wang <[email protected]>
 From: Shunli Wang <[email protected]>
 Date: Tue, 5 Jan 2016 14:30:21 +0800
 Date: Tue, 5 Jan 2016 14:30:21 +0800
-Subject: [PATCH 10/91] reset: mediatek: mt2701 reset controller dt-binding
+Subject: [PATCH 10/90] reset: mediatek: mt2701 reset controller dt-binding
  file
  file
 
 
 Dt-binding file about reset controller is used to provide
 Dt-binding file about reset controller is used to provide

+ 1 - 1
target/linux/mediatek/patches-4.4/0011-reset-mediatek-mt2701-reset-driver.patch

@@ -1,7 +1,7 @@
 From b86d3303db25a8296e4c3de46ee1470f60f71b0c Mon Sep 17 00:00:00 2001
 From b86d3303db25a8296e4c3de46ee1470f60f71b0c Mon Sep 17 00:00:00 2001
 From: Shunli Wang <[email protected]>
 From: Shunli Wang <[email protected]>
 Date: Tue, 5 Jan 2016 14:30:22 +0800
 Date: Tue, 5 Jan 2016 14:30:22 +0800
-Subject: [PATCH 11/91] reset: mediatek: mt2701 reset driver
+Subject: [PATCH 11/90] reset: mediatek: mt2701 reset driver
 
 
 In infrasys and perifsys, there are many reset
 In infrasys and perifsys, there are many reset
 control bits for kinds of modules. These bits are
 control bits for kinds of modules. These bits are

+ 1 - 1
target/linux/mediatek/patches-4.4/0012-ARM-mediatek-Add-MT2701-config-options-for-mediatek-.patch

@@ -1,7 +1,7 @@
 From 3b5df542d52b13a1b20d25311fa4c4029a3b83af Mon Sep 17 00:00:00 2001
 From 3b5df542d52b13a1b20d25311fa4c4029a3b83af Mon Sep 17 00:00:00 2001
 From: Erin Lo <[email protected]>
 From: Erin Lo <[email protected]>
 Date: Mon, 28 Dec 2015 15:09:02 +0800
 Date: Mon, 28 Dec 2015 15:09:02 +0800
-Subject: [PATCH 12/91] ARM: mediatek: Add MT2701 config options for mediatek
+Subject: [PATCH 12/90] ARM: mediatek: Add MT2701 config options for mediatek
  SoCs.
  SoCs.
 
 
 The upcoming MTK pinctrl driver have a big pin table for each SoC
 The upcoming MTK pinctrl driver have a big pin table for each SoC

+ 1 - 1
target/linux/mediatek/patches-4.4/0013-dt-bindings-mediatek-Modify-pinctrl-bindings-for-mt2.patch

@@ -1,7 +1,7 @@
 From 1a254735cad9db5c8605c972b0f16b3929dc0d6e Mon Sep 17 00:00:00 2001
 From 1a254735cad9db5c8605c972b0f16b3929dc0d6e Mon Sep 17 00:00:00 2001
 From: Biao Huang <[email protected]>
 From: Biao Huang <[email protected]>
 Date: Mon, 28 Dec 2015 15:09:03 +0800
 Date: Mon, 28 Dec 2015 15:09:03 +0800
-Subject: [PATCH 13/91] dt-bindings: mediatek: Modify pinctrl bindings for
+Subject: [PATCH 13/90] dt-bindings: mediatek: Modify pinctrl bindings for
  mt2701
  mt2701
 
 
 Signed-off-by: Biao Huang <[email protected]>
 Signed-off-by: Biao Huang <[email protected]>

+ 1 - 1
target/linux/mediatek/patches-4.4/0014-pinctrl-dt-bindings-Add-pinfunc-header-file-for-mt27.patch

@@ -1,7 +1,7 @@
 From 416720ba33d4fd7d3166c17be7c13651cc08d408 Mon Sep 17 00:00:00 2001
 From 416720ba33d4fd7d3166c17be7c13651cc08d408 Mon Sep 17 00:00:00 2001
 From: Biao Huang <[email protected]>
 From: Biao Huang <[email protected]>
 Date: Mon, 28 Dec 2015 15:09:04 +0800
 Date: Mon, 28 Dec 2015 15:09:04 +0800
-Subject: [PATCH 14/91] pinctrl: dt bindings: Add pinfunc header file for
+Subject: [PATCH 14/90] pinctrl: dt bindings: Add pinfunc header file for
  mt2701
  mt2701
 
 
 Add pinfunc header file, mt2701 related dts will include it
 Add pinfunc header file, mt2701 related dts will include it

+ 1 - 1
target/linux/mediatek/patches-4.4/0015-dt-bindings-mediatek-Modify-pinctrl-bindings-for-mt7.patch

@@ -1,7 +1,7 @@
 From ddc72b659b3642d0496dee4e1ee39416ca008053 Mon Sep 17 00:00:00 2001
 From ddc72b659b3642d0496dee4e1ee39416ca008053 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 7 Jan 2016 23:42:06 +0100
 Date: Thu, 7 Jan 2016 23:42:06 +0100
-Subject: [PATCH 15/91] dt-bindings: mediatek: Modify pinctrl bindings for
+Subject: [PATCH 15/90] dt-bindings: mediatek: Modify pinctrl bindings for
  mt7623
  mt7623
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>

+ 1 - 1
target/linux/mediatek/patches-4.4/0016-pinctrl-dt-bindings-Add-pinctrl-file-for-mt7623.patch

@@ -1,7 +1,7 @@
 From 1255eaacd6cc9d1fa6bb33185380efed22008baf Mon Sep 17 00:00:00 2001
 From 1255eaacd6cc9d1fa6bb33185380efed22008baf Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sat, 27 Jun 2015 13:13:05 +0200
 Date: Sat, 27 Jun 2015 13:13:05 +0200
-Subject: [PATCH 16/91] pinctrl: dt bindings: Add pinctrl file for mt7623
+Subject: [PATCH 16/90] pinctrl: dt bindings: Add pinctrl file for mt7623
 
 
 Add the driver and header files required to make pinctrl work on MediaTek
 Add the driver and header files required to make pinctrl work on MediaTek
 MT7623.
 MT7623.

+ 1 - 1
target/linux/mediatek/patches-4.4/0017-clk-add-hifsys-reset.patch

@@ -1,7 +1,7 @@
 From 294cf90337d70ad74edf147180bbeef837298bd0 Mon Sep 17 00:00:00 2001
 From 294cf90337d70ad74edf147180bbeef837298bd0 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 6 Jan 2016 20:06:49 +0100
 Date: Wed, 6 Jan 2016 20:06:49 +0100
-Subject: [PATCH 17/91] clk: add hifsys reset
+Subject: [PATCH 17/90] clk: add hifsys reset
 
 
 Hi,
 Hi,
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0018-dt-bindings-Add-a-binding-for-Mediatek-xHCI-host-con.patch

@@ -1,7 +1,7 @@
 From 84d37aeef94deae3ce87e677f6016a5d980429e8 Mon Sep 17 00:00:00 2001
 From 84d37aeef94deae3ce87e677f6016a5d980429e8 Mon Sep 17 00:00:00 2001
 From: "[email protected]" <[email protected]>
 From: "[email protected]" <[email protected]>
 Date: Tue, 17 Nov 2015 17:18:39 +0800
 Date: Tue, 17 Nov 2015 17:18:39 +0800
-Subject: [PATCH 18/91] dt-bindings: Add a binding for Mediatek xHCI host
+Subject: [PATCH 18/90] dt-bindings: Add a binding for Mediatek xHCI host
  controller
  controller
 
 
 add a DT binding documentation of xHCI host controller for the
 add a DT binding documentation of xHCI host controller for the

+ 1 - 1
target/linux/mediatek/patches-4.4/0019-xhci-mediatek-support-MTK-xHCI-host-controller.patch

@@ -1,7 +1,7 @@
 From 651d8fff94718c7e48b8a40d7774878eb8ed62ee Mon Sep 17 00:00:00 2001
 From 651d8fff94718c7e48b8a40d7774878eb8ed62ee Mon Sep 17 00:00:00 2001
 From: "[email protected]" <[email protected]>
 From: "[email protected]" <[email protected]>
 Date: Tue, 17 Nov 2015 17:18:40 +0800
 Date: Tue, 17 Nov 2015 17:18:40 +0800
-Subject: [PATCH 19/91] xhci: mediatek: support MTK xHCI host controller
+Subject: [PATCH 19/90] xhci: mediatek: support MTK xHCI host controller
 
 
 There some vendor quirks for MTK xhci host controller:
 There some vendor quirks for MTK xhci host controller:
 1. It defines some extra SW scheduling parameters for HW
 1. It defines some extra SW scheduling parameters for HW

+ 1 - 1
target/linux/mediatek/patches-4.4/0020-arm64-dts-mediatek-add-xHCI-usb-phy-for-mt8173.patch

@@ -1,7 +1,7 @@
 From 31a22fbd0d3b187be61c4c5d22b19c95abb327c3 Mon Sep 17 00:00:00 2001
 From 31a22fbd0d3b187be61c4c5d22b19c95abb327c3 Mon Sep 17 00:00:00 2001
 From: "[email protected]" <[email protected]>
 From: "[email protected]" <[email protected]>
 Date: Tue, 17 Nov 2015 17:18:41 +0800
 Date: Tue, 17 Nov 2015 17:18:41 +0800
-Subject: [PATCH 20/91] arm64: dts: mediatek: add xHCI & usb phy for mt8173
+Subject: [PATCH 20/90] arm64: dts: mediatek: add xHCI & usb phy for mt8173
 
 
 add xHCI and phy drivers for MT8173-EVB
 add xHCI and phy drivers for MT8173-EVB
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0021-Document-DT-Add-bindings-for-mediatek-MT7623-SoC-Pla.patch

@@ -1,7 +1,7 @@
 From 162deec293400cb132161606629654acaec7cb4b Mon Sep 17 00:00:00 2001
 From 162deec293400cb132161606629654acaec7cb4b Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 5 Jan 2016 12:13:54 +0100
 Date: Tue, 5 Jan 2016 12:13:54 +0100
-Subject: [PATCH 21/91] Document: DT: Add bindings for mediatek MT7623 SoC
+Subject: [PATCH 21/90] Document: DT: Add bindings for mediatek MT7623 SoC
  Platform
  Platform
 
 
 This adds a DT binding documentation for the MT7623 SoC from Mediatek.
 This adds a DT binding documentation for the MT7623 SoC from Mediatek.

+ 1 - 1
target/linux/mediatek/patches-4.4/0022-soc-mediatek-add-compat-string-for-mt7623-to-scpsys.patch

@@ -1,7 +1,7 @@
 From fa5d94d6b4b314f751b1c32bb5a87a80b866d05e Mon Sep 17 00:00:00 2001
 From fa5d94d6b4b314f751b1c32bb5a87a80b866d05e Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 5 Jan 2016 16:52:31 +0100
 Date: Tue, 5 Jan 2016 16:52:31 +0100
-Subject: [PATCH 22/91] soc: mediatek: add compat string for mt7623 to scpsys
+Subject: [PATCH 22/90] soc: mediatek: add compat string for mt7623 to scpsys
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0023-ARM-dts-mediatek-add-MT7623-basic-support.patch

@@ -1,7 +1,7 @@
 From 5536a546755527a862cb2494814c5244d3d8e30a Mon Sep 17 00:00:00 2001
 From 5536a546755527a862cb2494814c5244d3d8e30a Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 5 Jan 2016 12:16:17 +0100
 Date: Tue, 5 Jan 2016 12:16:17 +0100
-Subject: [PATCH 23/91] ARM: dts: mediatek: add MT7623 basic support
+Subject: [PATCH 23/90] ARM: dts: mediatek: add MT7623 basic support
 
 
 This adds basic chip support for Mediatek MT7623.
 This adds basic chip support for Mediatek MT7623.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0024-dt-bindings-add-MediaTek-PCIe-binding-documentation.patch

@@ -1,7 +1,7 @@
 From 0afae16fffe2cf547fad21279c120bedf19e9b8e Mon Sep 17 00:00:00 2001
 From 0afae16fffe2cf547fad21279c120bedf19e9b8e Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 6 Jan 2016 21:55:10 +0100
 Date: Wed, 6 Jan 2016 21:55:10 +0100
-Subject: [PATCH 24/91] dt-bindings: add MediaTek PCIe binding documentation
+Subject: [PATCH 24/90] dt-bindings: add MediaTek PCIe binding documentation
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0025-PCI-mediatek-add-support-for-PCIe-found-on-MT7623-MT.patch

@@ -1,7 +1,7 @@
 From 4e9a4574e833ee42d646de2dc3b0cb912360e6c5 Mon Sep 17 00:00:00 2001
 From 4e9a4574e833ee42d646de2dc3b0cb912360e6c5 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 5 Jan 2016 20:20:04 +0100
 Date: Tue, 5 Jan 2016 20:20:04 +0100
-Subject: [PATCH 25/91] PCI: mediatek: add support for PCIe found on
+Subject: [PATCH 25/90] PCI: mediatek: add support for PCIe found on
  MT7623/MT2701
  MT7623/MT2701
 
 
 Add PCIe controller support on MediaTek MT2701/MT7623. The driver supports
 Add PCIe controller support on MediaTek MT2701/MT7623. The driver supports

+ 1 - 1
target/linux/mediatek/patches-4.4/0026-scpsys-various-fixes.patch

@@ -1,7 +1,7 @@
 From e56caadcf189eafcd2c7a9e22f22c0b67e89df75 Mon Sep 17 00:00:00 2001
 From e56caadcf189eafcd2c7a9e22f22c0b67e89df75 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sun, 21 Feb 2016 13:52:12 +0100
 Date: Sun, 21 Feb 2016 13:52:12 +0100
-Subject: [PATCH 26/91] scpsys: various fixes
+Subject: [PATCH 26/90] scpsys: various fixes
 
 
 ---
 ---
  drivers/clk/mediatek/clk-mt2701.c        |    2 ++
  drivers/clk/mediatek/clk-mt2701.c        |    2 ++

+ 1 - 1
target/linux/mediatek/patches-4.4/0027-soc-mediatek-PMIC-wrap-Clear-the-vldclr-if-state-mac.patch

@@ -1,7 +1,7 @@
 From 036862011a5d13e8c54d9d0f9fe838fea986df89 Mon Sep 17 00:00:00 2001
 From 036862011a5d13e8c54d9d0f9fe838fea986df89 Mon Sep 17 00:00:00 2001
 From: Henry Chen <[email protected]>
 From: Henry Chen <[email protected]>
 Date: Mon, 4 Jan 2016 20:02:52 +0800
 Date: Mon, 4 Jan 2016 20:02:52 +0800
-Subject: [PATCH 27/91] soc: mediatek: PMIC wrap: Clear the vldclr if state
+Subject: [PATCH 27/90] soc: mediatek: PMIC wrap: Clear the vldclr if state
  machine stay on FSM_VLDCLR state.
  machine stay on FSM_VLDCLR state.
 
 
 Sometimes PMIC is too busy to send data in time to cause pmic wrap timeout,
 Sometimes PMIC is too busy to send data in time to cause pmic wrap timeout,

+ 1 - 1
target/linux/mediatek/patches-4.4/0028-ARM-mediatek-add-MT7623-smp-bringup-code.patch

@@ -1,7 +1,7 @@
 From a7b6aff661303f2c67e3f8d03b152fd6a0a19ac2 Mon Sep 17 00:00:00 2001
 From a7b6aff661303f2c67e3f8d03b152fd6a0a19ac2 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 5 Jan 2016 17:24:28 +0100
 Date: Tue, 5 Jan 2016 17:24:28 +0100
-Subject: [PATCH 28/91] ARM: mediatek: add MT7623 smp bringup code
+Subject: [PATCH 28/90] ARM: mediatek: add MT7623 smp bringup code
 
 
 Add support for booting secondary CPUs on MT7623.
 Add support for booting secondary CPUs on MT7623.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0029-soc-mediatek-PMIC-wrap-clear-the-STAUPD_TRIG-bit-of-.patch

@@ -1,7 +1,7 @@
 From 4fbf092b199a344abe60528732c712ec3b22aa67 Mon Sep 17 00:00:00 2001
 From 4fbf092b199a344abe60528732c712ec3b22aa67 Mon Sep 17 00:00:00 2001
 From: Henry Chen <[email protected]>
 From: Henry Chen <[email protected]>
 Date: Thu, 21 Jan 2016 19:04:00 +0800
 Date: Thu, 21 Jan 2016 19:04:00 +0800
-Subject: [PATCH 29/91] soc: mediatek: PMIC wrap: clear the STAUPD_TRIG bit of
+Subject: [PATCH 29/90] soc: mediatek: PMIC wrap: clear the STAUPD_TRIG bit of
  WDT_SRC_EN
  WDT_SRC_EN
 
 
 Since STAUPD interrupts aren't handled on mt8173, disable watchdog timeout
 Since STAUPD interrupts aren't handled on mt8173, disable watchdog timeout

+ 1 - 1
target/linux/mediatek/patches-4.4/0030-ARM-mediatek-add-mt2701-smp-bringup-code.patch

@@ -1,7 +1,7 @@
 From 4203a164bbf1785b649bc8d7a94ede53a33ad92a Mon Sep 17 00:00:00 2001
 From 4203a164bbf1785b649bc8d7a94ede53a33ad92a Mon Sep 17 00:00:00 2001
 From: Louis Yu <[email protected]>
 From: Louis Yu <[email protected]>
 Date: Thu, 7 Jan 2016 20:09:43 +0800
 Date: Thu, 7 Jan 2016 20:09:43 +0800
-Subject: [PATCH 30/91] ARM: mediatek: add mt2701 smp bringup code
+Subject: [PATCH 30/90] ARM: mediatek: add mt2701 smp bringup code
 
 
 Add support for booting secondary CPUs on mt2701.
 Add support for booting secondary CPUs on mt2701.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0031-dt-bindings-ARM-Mediatek-add-MT2701-7623-string-to-t.patch

@@ -1,7 +1,7 @@
 From 55308931b04c0353fd1f3367fb018af5bb643a9a Mon Sep 17 00:00:00 2001
 From 55308931b04c0353fd1f3367fb018af5bb643a9a Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 13:12:19 +0100
 Date: Wed, 20 Jan 2016 13:12:19 +0100
-Subject: [PATCH 31/91] dt-bindings: ARM: Mediatek: add MT2701/7623 string to
+Subject: [PATCH 31/90] dt-bindings: ARM: Mediatek: add MT2701/7623 string to
  the PMIC wrapper doc
  the PMIC wrapper doc
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>

+ 1 - 1
target/linux/mediatek/patches-4.4/0032-soc-mediatek-PMIC-wrap-don-t-duplicate-the-wrapper-d.patch

@@ -1,7 +1,7 @@
 From e2b8f38b1a794b7a0912d0bbaa1454055b5cbac2 Mon Sep 17 00:00:00 2001
 From e2b8f38b1a794b7a0912d0bbaa1454055b5cbac2 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 06:42:01 +0100
 Date: Wed, 20 Jan 2016 06:42:01 +0100
-Subject: [PATCH 32/91] soc: mediatek: PMIC wrap: don't duplicate the wrapper
+Subject: [PATCH 32/90] soc: mediatek: PMIC wrap: don't duplicate the wrapper
  data
  data
 
 
 As we add support for more devices struct pmic_wrapper_type will grow and
 As we add support for more devices struct pmic_wrapper_type will grow and

+ 1 - 1
target/linux/mediatek/patches-4.4/0033-soc-mediatek-PMIC-wrap-add-wrapper-callbacks-for-ini.patch

@@ -1,7 +1,7 @@
 From 4265837216132e2b1c04b23e77281c1a4feb6ca8 Mon Sep 17 00:00:00 2001
 From 4265837216132e2b1c04b23e77281c1a4feb6ca8 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 05:27:17 +0100
 Date: Wed, 20 Jan 2016 05:27:17 +0100
-Subject: [PATCH 33/91] soc: mediatek: PMIC wrap: add wrapper callbacks for
+Subject: [PATCH 33/90] soc: mediatek: PMIC wrap: add wrapper callbacks for
  init_reg_clock
  init_reg_clock
 
 
 Split init_reg_clock up into SoC specific callbacks. The patch also
 Split init_reg_clock up into SoC specific callbacks. The patch also

+ 1 - 1
target/linux/mediatek/patches-4.4/0034-soc-mediatek-PMIC-wrap-split-SoC-specific-init-into-.patch

@@ -1,7 +1,7 @@
 From b164dff8be266b531574e89a27eb3ce9e0b4e40a Mon Sep 17 00:00:00 2001
 From b164dff8be266b531574e89a27eb3ce9e0b4e40a Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 10:12:00 +0100
 Date: Wed, 20 Jan 2016 10:12:00 +0100
-Subject: [PATCH 34/91] soc: mediatek: PMIC wrap: split SoC specific init into
+Subject: [PATCH 34/90] soc: mediatek: PMIC wrap: split SoC specific init into
  callback
  callback
 
 
 This patch moves the SoC specific wrapper init code into separate callback
 This patch moves the SoC specific wrapper init code into separate callback

+ 1 - 1
target/linux/mediatek/patches-4.4/0035-soc-mediatek-PMIC-wrap-WRAP_INT_EN-needs-a-different.patch

@@ -1,7 +1,7 @@
 From 7046dc2a485b2b2ec993d7c933820c8ae2b45718 Mon Sep 17 00:00:00 2001
 From 7046dc2a485b2b2ec993d7c933820c8ae2b45718 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 10:14:39 +0100
 Date: Wed, 20 Jan 2016 10:14:39 +0100
-Subject: [PATCH 35/91] soc: mediatek: PMIC wrap: WRAP_INT_EN needs a
+Subject: [PATCH 35/90] soc: mediatek: PMIC wrap: WRAP_INT_EN needs a
  different bitmask for MT2701/7623
  different bitmask for MT2701/7623
 
 
 MT2701 and MT7623 use a different bitmask for PWRAP_INT_EN.
 MT2701 and MT7623 use a different bitmask for PWRAP_INT_EN.

+ 1 - 1
target/linux/mediatek/patches-4.4/0036-soc-mediatek-PMIC-wrap-SPI_WRITE-needs-a-different-b.patch

@@ -1,7 +1,7 @@
 From 506b811d75ec94b10eda673f8677ef507f870077 Mon Sep 17 00:00:00 2001
 From 506b811d75ec94b10eda673f8677ef507f870077 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 10:21:42 +0100
 Date: Wed, 20 Jan 2016 10:21:42 +0100
-Subject: [PATCH 36/91] soc: mediatek: PMIC wrap: SPI_WRITE needs a different
+Subject: [PATCH 36/90] soc: mediatek: PMIC wrap: SPI_WRITE needs a different
  bitmask for MT2701/7623
  bitmask for MT2701/7623
 
 
 Different SoCs will use different bitmask for the SPI_WRITE command. This
 Different SoCs will use different bitmask for the SPI_WRITE command. This

+ 1 - 1
target/linux/mediatek/patches-4.4/0037-soc-mediatek-PMIC-wrap-move-wdt_src-into-the-pmic_wr.patch

@@ -1,7 +1,7 @@
 From df7e52743b8159b2cc58fce14841135de84ec81a Mon Sep 17 00:00:00 2001
 From df7e52743b8159b2cc58fce14841135de84ec81a Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 10:48:35 +0100
 Date: Wed, 20 Jan 2016 10:48:35 +0100
-Subject: [PATCH 37/91] soc: mediatek: PMIC wrap: move wdt_src into the
+Subject: [PATCH 37/90] soc: mediatek: PMIC wrap: move wdt_src into the
  pmic_wrapper_type struct
  pmic_wrapper_type struct
 
 
 Different SoCs will use different bitmask for the wdt_src. This patch
 Different SoCs will use different bitmask for the wdt_src. This patch

+ 1 - 1
target/linux/mediatek/patches-4.4/0038-soc-mediatek-PMIC-wrap-remove-pwrap_is_mt8135-and-pw.patch

@@ -1,7 +1,7 @@
 From e16393b2c78cc95ec124a46e8da8cfb2af333f00 Mon Sep 17 00:00:00 2001
 From e16393b2c78cc95ec124a46e8da8cfb2af333f00 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 10:54:18 +0100
 Date: Wed, 20 Jan 2016 10:54:18 +0100
-Subject: [PATCH 38/91] soc: mediatek: PMIC wrap: remove pwrap_is_mt8135() and
+Subject: [PATCH 38/90] soc: mediatek: PMIC wrap: remove pwrap_is_mt8135() and
  pwrap_is_mt8173()
  pwrap_is_mt8173()
 
 
 With more SoCs being added the list of helper functions like these would
 With more SoCs being added the list of helper functions like these would

+ 1 - 1
target/linux/mediatek/patches-4.4/0039-soc-mediatek-PMIC-wrap-add-a-slave-specific-struct.patch

@@ -1,7 +1,7 @@
 From 6dc9d9e08025ebc758981ea0396a41f95f669715 Mon Sep 17 00:00:00 2001
 From 6dc9d9e08025ebc758981ea0396a41f95f669715 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 09:55:08 +0100
 Date: Wed, 20 Jan 2016 09:55:08 +0100
-Subject: [PATCH 39/91] soc: mediatek: PMIC wrap: add a slave specific struct
+Subject: [PATCH 39/90] soc: mediatek: PMIC wrap: add a slave specific struct
 
 
 This patch adds a new struct pwrap_slv_type that we use to store the slave
 This patch adds a new struct pwrap_slv_type that we use to store the slave
 specific data. The patch adds 2 new helper functions to access the dew
 specific data. The patch adds 2 new helper functions to access the dew

+ 1 - 1
target/linux/mediatek/patches-4.4/0040-soc-mediatek-PMIC-wrap-add-mt6323-slave-support.patch

@@ -1,7 +1,7 @@
 From 2ff8338c16c86856fc6e3f636cf0df9a2562bc95 Mon Sep 17 00:00:00 2001
 From 2ff8338c16c86856fc6e3f636cf0df9a2562bc95 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 11:40:43 +0100
 Date: Wed, 20 Jan 2016 11:40:43 +0100
-Subject: [PATCH 40/91] soc: mediatek: PMIC wrap: add mt6323 slave support
+Subject: [PATCH 40/90] soc: mediatek: PMIC wrap: add mt6323 slave support
 
 
 Add support for MT6323 slaves. This PMIC can be found on MT2701 and MT7623
 Add support for MT6323 slaves. This PMIC can be found on MT2701 and MT7623
 EVB. The only function that we need to touch is pwrap_init_cipher().
 EVB. The only function that we need to touch is pwrap_init_cipher().

+ 1 - 1
target/linux/mediatek/patches-4.4/0041-soc-mediatek-PMIC-wrap-add-MT2701-7623-support.patch

@@ -1,7 +1,7 @@
 From ec6ad56b62c6cd769b5a35e7009518d99bbbb7b6 Mon Sep 17 00:00:00 2001
 From ec6ad56b62c6cd769b5a35e7009518d99bbbb7b6 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Jan 2016 12:09:14 +0100
 Date: Wed, 20 Jan 2016 12:09:14 +0100
-Subject: [PATCH 41/91] soc: mediatek: PMIC wrap: add MT2701/7623 support
+Subject: [PATCH 41/90] soc: mediatek: PMIC wrap: add MT2701/7623 support
 
 
 Add the registers, callbacks and data structures required to make the
 Add the registers, callbacks and data structures required to make the
 wrapper work on MT2701 and MT7623.
 wrapper work on MT2701 and MT7623.

+ 1 - 1
target/linux/mediatek/patches-4.4/0042-dt-bindings-mfd-Add-bindings-for-the-MediaTek-MT6323.patch

@@ -1,7 +1,7 @@
 From 51deb5b355f0a26cc5f2a5e4a83e904f5c4c34df Mon Sep 17 00:00:00 2001
 From 51deb5b355f0a26cc5f2a5e4a83e904f5c4c34df Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sun, 10 Jan 2016 17:12:37 +0100
 Date: Sun, 10 Jan 2016 17:12:37 +0100
-Subject: [PATCH 42/91] dt-bindings: mfd: Add bindings for the MediaTek MT6323
+Subject: [PATCH 42/90] dt-bindings: mfd: Add bindings for the MediaTek MT6323
  PMIC
  PMIC
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>

+ 1 - 1
target/linux/mediatek/patches-4.4/0043-mfd-mt6397-int_con-and-int_status-may-vary-in-locati.patch

@@ -1,7 +1,7 @@
 From 3989b27c0a7cc16d29de14e1cb509b8ee82f7449 Mon Sep 17 00:00:00 2001
 From 3989b27c0a7cc16d29de14e1cb509b8ee82f7449 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 8 Jan 2016 08:33:17 +0100
 Date: Fri, 8 Jan 2016 08:33:17 +0100
-Subject: [PATCH 43/91] mfd: mt6397: int_con and int_status may vary in
+Subject: [PATCH 43/90] mfd: mt6397: int_con and int_status may vary in
  location
  location
 
 
 MT6323 has the INT_CON and INT_STATUS located at a different position.
 MT6323 has the INT_CON and INT_STATUS located at a different position.

+ 1 - 1
target/linux/mediatek/patches-4.4/0044-mfd-mt6397-add-support-for-different-Slave-types.patch

@@ -1,7 +1,7 @@
 From bd51286bc2a310bc1ba2297e97e862bbdb102183 Mon Sep 17 00:00:00 2001
 From bd51286bc2a310bc1ba2297e97e862bbdb102183 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 8 Jan 2016 08:41:52 +0100
 Date: Fri, 8 Jan 2016 08:41:52 +0100
-Subject: [PATCH 44/91] mfd: mt6397: add support for different Slave types
+Subject: [PATCH 44/90] mfd: mt6397: add support for different Slave types
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0045-mfd-mt6397-add-MT6323-support-to-MT6397-driver.patch

@@ -1,7 +1,7 @@
 From 52dde352cc7a558eab85458c3f7ab90dc652f761 Mon Sep 17 00:00:00 2001
 From 52dde352cc7a558eab85458c3f7ab90dc652f761 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 8 Jan 2016 04:09:43 +0100
 Date: Fri, 8 Jan 2016 04:09:43 +0100
-Subject: [PATCH 45/91] mfd: mt6397: add MT6323 support to MT6397 driver
+Subject: [PATCH 45/90] mfd: mt6397: add MT6323 support to MT6397 driver
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0046-regulator-Add-document-for-MT6323-regulator.patch

@@ -1,7 +1,7 @@
 From 8113b9e7b599162ae4abf6bc940210ce2f826099 Mon Sep 17 00:00:00 2001
 From 8113b9e7b599162ae4abf6bc940210ce2f826099 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sun, 10 Jan 2016 17:31:46 +0100
 Date: Sun, 10 Jan 2016 17:31:46 +0100
-Subject: [PATCH 46/91] regulator: Add document for MT6323 regulator
+Subject: [PATCH 46/90] regulator: Add document for MT6323 regulator
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 Cc: [email protected]
 Cc: [email protected]

+ 1 - 1
target/linux/mediatek/patches-4.4/0047-regulator-mt6323-Add-support-for-MT6323-regulator.patch

@@ -1,7 +1,7 @@
 From 257b7279661d1d6fca41e053bcfb4368b238f049 Mon Sep 17 00:00:00 2001
 From 257b7279661d1d6fca41e053bcfb4368b238f049 Mon Sep 17 00:00:00 2001
 From: Chen Zhong <[email protected]>
 From: Chen Zhong <[email protected]>
 Date: Fri, 8 Jan 2016 04:17:37 +0100
 Date: Fri, 8 Jan 2016 04:17:37 +0100
-Subject: [PATCH 47/91] regulator: mt6323: Add support for MT6323 regulator
+Subject: [PATCH 47/90] regulator: mt6323: Add support for MT6323 regulator
 
 
 The MT6323 is a regulator found on boards based on MediaTek MT7623 and
 The MT6323 is a regulator found on boards based on MediaTek MT7623 and
 probably other SoCs. It is a so called pmic and connects as a slave to
 probably other SoCs. It is a so called pmic and connects as a slave to

+ 1 - 1
target/linux/mediatek/patches-4.4/0048-net-next-mediatek-document-MediaTek-SoC-ethernet-bin.patch

@@ -1,7 +1,7 @@
 From 1e759a179923236660f7f2070fd52e9d2cc09b22 Mon Sep 17 00:00:00 2001
 From 1e759a179923236660f7f2070fd52e9d2cc09b22 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 2 Mar 2016 07:18:52 +0100
 Date: Wed, 2 Mar 2016 07:18:52 +0100
-Subject: [PATCH 48/91] net-next: mediatek: document MediaTek SoC ethernet
+Subject: [PATCH 48/90] net-next: mediatek: document MediaTek SoC ethernet
  binding
  binding
 
 
 This adds the binding documentation for the MediaTek Ethernet
 This adds the binding documentation for the MediaTek Ethernet

+ 1 - 1
target/linux/mediatek/patches-4.4/0049-net-next-mediatek-add-support-for-MT7623-ethernet.patch

@@ -1,7 +1,7 @@
 From 15f1cb9603c22910f1cd6a8c63fd279a6d5acfd4 Mon Sep 17 00:00:00 2001
 From 15f1cb9603c22910f1cd6a8c63fd279a6d5acfd4 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 2 Mar 2016 04:27:10 +0100
 Date: Wed, 2 Mar 2016 04:27:10 +0100
-Subject: [PATCH 49/91] net-next: mediatek: add support for MT7623 ethernet
+Subject: [PATCH 49/90] net-next: mediatek: add support for MT7623 ethernet
 
 
 Add ethernet support for MediaTek SoCs from the MT7623 family. These have
 Add ethernet support for MediaTek SoCs from the MT7623 family. These have
 dual GMAC. Depending on the exact version, there might be a built-in
 dual GMAC. Depending on the exact version, there might be a built-in

+ 1 - 1
target/linux/mediatek/patches-4.4/0050-net-next-mediatek-add-Kconfig-and-Makefile.patch

@@ -1,7 +1,7 @@
 From 80d88cdd398bf0c33ca5e655ded3bb62339b9565 Mon Sep 17 00:00:00 2001
 From 80d88cdd398bf0c33ca5e655ded3bb62339b9565 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 2 Mar 2016 04:32:43 +0100
 Date: Wed, 2 Mar 2016 04:32:43 +0100
-Subject: [PATCH 50/91] net-next: mediatek: add Kconfig and Makefile
+Subject: [PATCH 50/90] net-next: mediatek: add Kconfig and Makefile
 
 
 This patch adds the Makefile and Kconfig required to make the driver build.
 This patch adds the Makefile and Kconfig required to make the driver build.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0051-net-next-mediatek-add-an-entry-to-MAINTAINERS.patch

@@ -1,7 +1,7 @@
 From 859c0e3dfcc227b6f3fd324ef2ea5fa22cfc7f17 Mon Sep 17 00:00:00 2001
 From 859c0e3dfcc227b6f3fd324ef2ea5fa22cfc7f17 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 2 Mar 2016 04:34:04 +0100
 Date: Wed, 2 Mar 2016 04:34:04 +0100
-Subject: [PATCH 51/91] net-next: mediatek: add an entry to MAINTAINERS
+Subject: [PATCH 51/90] net-next: mediatek: add an entry to MAINTAINERS
 
 
 Add myself and Felix as the Maintainers for the MediaTek ethernet driver.
 Add myself and Felix as the Maintainers for the MediaTek ethernet driver.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0052-mtd-nand-add-an-mtd_to_nand-helper.patch

@@ -1,7 +1,7 @@
 From 3126b17c9123daf9f96f513d53f08c06f4d08a7c Mon Sep 17 00:00:00 2001
 From 3126b17c9123daf9f96f513d53f08c06f4d08a7c Mon Sep 17 00:00:00 2001
 From: Boris BREZILLON <[email protected]>
 From: Boris BREZILLON <[email protected]>
 Date: Mon, 16 Nov 2015 14:37:35 +0100
 Date: Mon, 16 Nov 2015 14:37:35 +0100
-Subject: [PATCH 52/91] mtd: nand: add an mtd_to_nand() helper
+Subject: [PATCH 52/90] mtd: nand: add an mtd_to_nand() helper
 
 
 Some drivers are retrieving the nand_chip pointer using the container_of
 Some drivers are retrieving the nand_chip pointer using the container_of
 macro on a struct wrapping both the nand_chip and the mtd_info struct while
 macro on a struct wrapping both the nand_chip and the mtd_info struct while

+ 1 - 1
target/linux/mediatek/patches-4.4/0053-mtd-nand-add-nand_to_mtd-helper.patch

@@ -1,7 +1,7 @@
 From 5175e1d27c52c0958b2d1cb4391a611444aaf432 Mon Sep 17 00:00:00 2001
 From 5175e1d27c52c0958b2d1cb4391a611444aaf432 Mon Sep 17 00:00:00 2001
 From: Boris BREZILLON <[email protected]>
 From: Boris BREZILLON <[email protected]>
 Date: Tue, 1 Dec 2015 12:03:07 +0100
 Date: Tue, 1 Dec 2015 12:03:07 +0100
-Subject: [PATCH 53/91] mtd: nand: add nand_to_mtd() helper
+Subject: [PATCH 53/90] mtd: nand: add nand_to_mtd() helper
 
 
 Add a new helper to retrieve the MTD device attached to a NAND chip.
 Add a new helper to retrieve the MTD device attached to a NAND chip.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0054-mtd-nand-add-helpers-to-access-priv.patch

@@ -1,7 +1,7 @@
 From ad8a96526816abfa75b19998bbf41857f9bae6cc Mon Sep 17 00:00:00 2001
 From ad8a96526816abfa75b19998bbf41857f9bae6cc Mon Sep 17 00:00:00 2001
 From: Boris BREZILLON <[email protected]>
 From: Boris BREZILLON <[email protected]>
 Date: Thu, 10 Dec 2015 09:00:39 +0100
 Date: Thu, 10 Dec 2015 09:00:39 +0100
-Subject: [PATCH 54/91] mtd: nand: add helpers to access ->priv
+Subject: [PATCH 54/90] mtd: nand: add helpers to access ->priv
 
 
 Add two helpers to access the field reserved for private controller data.
 Add two helpers to access the field reserved for private controller data.
 This makes it clearer what this field is reserved for and ease future
 This makes it clearer what this field is reserved for and ease future

+ 1 - 1
target/linux/mediatek/patches-4.4/0055-mtd-nand-embed-an-mtd_info-structure-into-nand_chip.patch

@@ -1,7 +1,7 @@
 From addd0678f84712ac6f70b8e6cda84e11c5d348f4 Mon Sep 17 00:00:00 2001
 From addd0678f84712ac6f70b8e6cda84e11c5d348f4 Mon Sep 17 00:00:00 2001
 From: Boris BREZILLON <[email protected]>
 From: Boris BREZILLON <[email protected]>
 Date: Tue, 1 Dec 2015 12:03:06 +0100
 Date: Tue, 1 Dec 2015 12:03:06 +0100
-Subject: [PATCH 55/91] mtd: nand: embed an mtd_info structure into nand_chip
+Subject: [PATCH 55/90] mtd: nand: embed an mtd_info structure into nand_chip
 
 
 Currently all NAND controller drivers are providing both the mtd_info and
 Currently all NAND controller drivers are providing both the mtd_info and
 nand_chip struct and then let the NAND subsystem to initialize a few
 nand_chip struct and then let the NAND subsystem to initialize a few

+ 1 - 1
target/linux/mediatek/patches-4.4/0056-mtd-add-get-set-of_node-flash_node-helpers.patch

@@ -1,7 +1,7 @@
 From 6b4858de63badb90d820a1d343528d8575f3f28c Mon Sep 17 00:00:00 2001
 From 6b4858de63badb90d820a1d343528d8575f3f28c Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 22 Mar 2016 03:52:07 +0100
 Date: Tue, 22 Mar 2016 03:52:07 +0100
-Subject: [PATCH 56/91] mtd: add get/set of_node/flash_node helpers
+Subject: [PATCH 56/90] mtd: add get/set of_node/flash_node helpers
 
 
 We are going to begin using the mtd->dev.of_node field for MTD device
 We are going to begin using the mtd->dev.of_node field for MTD device
 nodes, so let's add helpers for it. Also, we'll be making some
 nodes, so let's add helpers for it. Also, we'll be making some

+ 1 - 1
target/linux/mediatek/patches-4.4/0057-mtd-mediatek-device-tree-docs-for-MTK-Smart-Device-G.patch

@@ -1,7 +1,7 @@
 From 47589c3a100ae3dd0081866fd60ef31a67ba7fa9 Mon Sep 17 00:00:00 2001
 From 47589c3a100ae3dd0081866fd60ef31a67ba7fa9 Mon Sep 17 00:00:00 2001
 From: Jorge Ramirez-Ortiz <[email protected]>
 From: Jorge Ramirez-Ortiz <[email protected]>
 Date: Wed, 2 Mar 2016 12:00:11 -0500
 Date: Wed, 2 Mar 2016 12:00:11 -0500
-Subject: [PATCH 57/91] mtd: mediatek: device tree docs for MTK Smart Device
+Subject: [PATCH 57/90] mtd: mediatek: device tree docs for MTK Smart Device
  Gen1 NAND
  Gen1 NAND
 
 
 This patch adds documentation support for Smart Device Gen1 type of
 This patch adds documentation support for Smart Device Gen1 type of

+ 1 - 1
target/linux/mediatek/patches-4.4/0058-mtd-mediatek-driver-for-MTK-Smart-Device-Gen1-NAND.patch

@@ -1,7 +1,7 @@
 From a97e38f34b59d18d9ca3626c2611c63cc6c6b48a Mon Sep 17 00:00:00 2001
 From a97e38f34b59d18d9ca3626c2611c63cc6c6b48a Mon Sep 17 00:00:00 2001
 From: Jorge Ramirez-Ortiz <[email protected]>
 From: Jorge Ramirez-Ortiz <[email protected]>
 Date: Wed, 2 Mar 2016 12:00:12 -0500
 Date: Wed, 2 Mar 2016 12:00:12 -0500
-Subject: [PATCH 58/91] mtd: mediatek: driver for MTK Smart Device Gen1 NAND
+Subject: [PATCH 58/90] mtd: mediatek: driver for MTK Smart Device Gen1 NAND
 
 
 This patch adds support for mediatek's SDG1 NFC nand controller
 This patch adds support for mediatek's SDG1 NFC nand controller
 embedded in SoC 2701.
 embedded in SoC 2701.

+ 1 - 1
target/linux/mediatek/patches-4.4/0059-mtd-nand-backport-fixes.patch

@@ -1,7 +1,7 @@
 From bb79410956e03e7c775c38338c5826f8591378a9 Mon Sep 17 00:00:00 2001
 From bb79410956e03e7c775c38338c5826f8591378a9 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 31 Mar 2016 02:28:08 +0200
 Date: Thu, 31 Mar 2016 02:28:08 +0200
-Subject: [PATCH 59/91] mtd: nand: backport fixes
+Subject: [PATCH 59/90] mtd: nand: backport fixes
 
 
 ---
 ---
  drivers/mtd/nand/mtksdg1_nand.c |    9 ++++++++-
  drivers/mtd/nand/mtksdg1_nand.c |    9 ++++++++-

+ 1 - 1
target/linux/mediatek/patches-4.4/0060-clk-dont-disable-unused-clocks.patch

@@ -1,7 +1,7 @@
 From e31a6402c10f50bf45fd073fbfd622f16bfca031 Mon Sep 17 00:00:00 2001
 From e31a6402c10f50bf45fd073fbfd622f16bfca031 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 7 Apr 2016 07:18:35 +0200
 Date: Thu, 7 Apr 2016 07:18:35 +0200
-Subject: [PATCH 60/91] clk: dont disable unused clocks
+Subject: [PATCH 60/90] clk: dont disable unused clocks
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0061-clk-mediatek-enable-critical-clocks.patch

@@ -1,7 +1,7 @@
 From 8304c8eb6b43d29fd5794bece27faaa7b7a59a2b Mon Sep 17 00:00:00 2001
 From 8304c8eb6b43d29fd5794bece27faaa7b7a59a2b Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 31 Mar 2016 06:46:51 +0200
 Date: Thu, 31 Mar 2016 06:46:51 +0200
-Subject: [PATCH 61/91] clk: mediatek: enable critical clocks
+Subject: [PATCH 61/90] clk: mediatek: enable critical clocks
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0062-clk-mediatek-Export-CPU-mux-clocks-for-CPU-frequency.patch

@@ -1,7 +1,7 @@
 From c906caf00335b78ae1275eea4bfceca5273f3154 Mon Sep 17 00:00:00 2001
 From c906caf00335b78ae1275eea4bfceca5273f3154 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 31 Mar 2016 02:26:37 +0200
 Date: Thu, 31 Mar 2016 02:26:37 +0200
-Subject: [PATCH 62/91] clk: mediatek: Export CPU mux clocks for CPU frequency
+Subject: [PATCH 62/90] clk: mediatek: Export CPU mux clocks for CPU frequency
  control
  control
 
 
 This patch adds CPU mux clocks which are used by Mediatek cpufreq driver
 This patch adds CPU mux clocks which are used by Mediatek cpufreq driver

+ 1 - 1
target/linux/mediatek/patches-4.4/0063-cpufreq-mediatek-add-driver.patch

@@ -1,7 +1,7 @@
 From a430fa942b3ff0e51f472e53110b7f6b16290295 Mon Sep 17 00:00:00 2001
 From a430fa942b3ff0e51f472e53110b7f6b16290295 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 30 Mar 2016 23:48:53 +0200
 Date: Wed, 30 Mar 2016 23:48:53 +0200
-Subject: [PATCH 63/91] cpufreq: mediatek: add driver
+Subject: [PATCH 63/90] cpufreq: mediatek: add driver
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0064-arm-mediatek-make-a7-timer-work.patch

@@ -1,7 +1,7 @@
 From cf070892e774e76e1bd969020d8e7f31af1d2e3d Mon Sep 17 00:00:00 2001
 From cf070892e774e76e1bd969020d8e7f31af1d2e3d Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 31 Mar 2016 06:07:01 +0200
 Date: Thu, 31 Mar 2016 06:07:01 +0200
-Subject: [PATCH 64/91] arm: mediatek: make a7 timer work Signed-off-by: John
+Subject: [PATCH 64/90] arm: mediatek: make a7 timer work Signed-off-by: John
  Crispin <[email protected]>
  Crispin <[email protected]>
 
 
 ---
 ---

+ 1 - 1
target/linux/mediatek/patches-4.4/0065-net-mediatek-checking-for-IS_ERR-instead-of-NULL.patch

@@ -1,7 +1,7 @@
 From 56b33ebf188a59d8307c3b748eccf8cda1062981 Mon Sep 17 00:00:00 2001
 From 56b33ebf188a59d8307c3b748eccf8cda1062981 Mon Sep 17 00:00:00 2001
 From: Dan Carpenter <[email protected]>
 From: Dan Carpenter <[email protected]>
 Date: Tue, 15 Mar 2016 10:18:49 +0300
 Date: Tue, 15 Mar 2016 10:18:49 +0300
-Subject: [PATCH 65/91] net: mediatek: checking for IS_ERR() instead of NULL
+Subject: [PATCH 65/90] net: mediatek: checking for IS_ERR() instead of NULL
 
 
 of_phy_connect() returns NULL on error, it never returns error pointers.
 of_phy_connect() returns NULL on error, it never returns error pointers.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0066-net-mediatek-unlock-on-error-in-mtk_tx_map.patch

@@ -1,7 +1,7 @@
 From 223a164816ee104df9fbd01c0c52587bd8d7d758 Mon Sep 17 00:00:00 2001
 From 223a164816ee104df9fbd01c0c52587bd8d7d758 Mon Sep 17 00:00:00 2001
 From: Dan Carpenter <[email protected]>
 From: Dan Carpenter <[email protected]>
 Date: Tue, 15 Mar 2016 10:19:04 +0300
 Date: Tue, 15 Mar 2016 10:19:04 +0300
-Subject: [PATCH 66/91] net: mediatek: unlock on error in mtk_tx_map()
+Subject: [PATCH 66/90] net: mediatek: unlock on error in mtk_tx_map()
 
 
 There was a missing unlock on the error path.
 There was a missing unlock on the error path.
 
 

+ 1 - 1
target/linux/mediatek/patches-4.4/0067-net-mediatek-use-dma_addr_t-correctly.patch

@@ -1,7 +1,7 @@
 From d57c2d08cdceba377a35f69ceb807ae58f4bdbb2 Mon Sep 17 00:00:00 2001
 From d57c2d08cdceba377a35f69ceb807ae58f4bdbb2 Mon Sep 17 00:00:00 2001
 From: Arnd Bergmann <[email protected]>
 From: Arnd Bergmann <[email protected]>
 Date: Mon, 14 Mar 2016 15:07:10 +0100
 Date: Mon, 14 Mar 2016 15:07:10 +0100
-Subject: [PATCH 67/91] net: mediatek: use dma_addr_t correctly
+Subject: [PATCH 67/90] net: mediatek: use dma_addr_t correctly
 
 
 dma_alloc_coherent() expects a dma_addr_t pointer as its argument,
 dma_alloc_coherent() expects a dma_addr_t pointer as its argument,
 not an 'unsigned int', and gcc correctly warns about broken
 not an 'unsigned int', and gcc correctly warns about broken

+ 1 - 1
target/linux/mediatek/patches-4.4/0068-net-mediatek-remove-incorrect-dma_mask-assignment.patch

@@ -1,7 +1,7 @@
 From 6cf7d8453b9ef0a1e51144969141a92dade6b540 Mon Sep 17 00:00:00 2001
 From 6cf7d8453b9ef0a1e51144969141a92dade6b540 Mon Sep 17 00:00:00 2001
 From: Arnd Bergmann <[email protected]>
 From: Arnd Bergmann <[email protected]>
 Date: Mon, 14 Mar 2016 15:07:11 +0100
 Date: Mon, 14 Mar 2016 15:07:11 +0100
-Subject: [PATCH 68/91] net: mediatek: remove incorrect dma_mask assignment
+Subject: [PATCH 68/90] net: mediatek: remove incorrect dma_mask assignment
 
 
 Device drivers should not mess with the DMA mask directly,
 Device drivers should not mess with the DMA mask directly,
 but instead call dma_set_mask() etc if needed.
 but instead call dma_set_mask() etc if needed.

+ 1 - 1
target/linux/mediatek/patches-4.4/0069-net-mediatek-check-device_reset-return-code.patch

@@ -1,7 +1,7 @@
 From 592d94e0e580341fdcce975a97bebb90e71b38fc Mon Sep 17 00:00:00 2001
 From 592d94e0e580341fdcce975a97bebb90e71b38fc Mon Sep 17 00:00:00 2001
 From: Arnd Bergmann <[email protected]>
 From: Arnd Bergmann <[email protected]>
 Date: Mon, 14 Mar 2016 15:07:12 +0100
 Date: Mon, 14 Mar 2016 15:07:12 +0100
-Subject: [PATCH 69/91] net: mediatek: check device_reset return code
+Subject: [PATCH 69/90] net: mediatek: check device_reset return code
 
 
 The device_reset() function may fail, so we have to check
 The device_reset() function may fail, so we have to check
 its return value, e.g. to make deferred probing work correctly.
 its return value, e.g. to make deferred probing work correctly.

+ 1 - 1
target/linux/mediatek/patches-4.4/0070-net-mediatek-watchdog_timeo-was-not-set.patch

@@ -1,7 +1,7 @@
 From d59c125296df424b8e7c5c4900e1b8084b6dd3ba Mon Sep 17 00:00:00 2001
 From d59c125296df424b8e7c5c4900e1b8084b6dd3ba Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 30 Mar 2016 03:18:17 +0200
 Date: Wed, 30 Mar 2016 03:18:17 +0200
-Subject: [PATCH 70/91] net: mediatek: watchdog_timeo was not set
+Subject: [PATCH 70/90] net: mediatek: watchdog_timeo was not set
 
 
 The original commit failed to set watchdog_timeo. This patch sets
 The original commit failed to set watchdog_timeo. This patch sets
 watchdog_timeo to HZ.
 watchdog_timeo to HZ.

+ 1 - 1
target/linux/mediatek/patches-4.4/0071-net-mediatek-mtk_cal_txd_req-returns-bad-value.patch

@@ -1,7 +1,7 @@
 From b6f1b24448de1d294f9668b14bf02391ff6bef5c Mon Sep 17 00:00:00 2001
 From b6f1b24448de1d294f9668b14bf02391ff6bef5c Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 22 Mar 2016 04:42:27 +0100
 Date: Tue, 22 Mar 2016 04:42:27 +0100
-Subject: [PATCH 71/91] net: mediatek: mtk_cal_txd_req() returns bad value
+Subject: [PATCH 71/90] net: mediatek: mtk_cal_txd_req() returns bad value
 
 
 The code used to also support the PDMA engine, which had 2 packet pointers
 The code used to also support the PDMA engine, which had 2 packet pointers
 per descriptor. Because of this we have to divide the result by 2 and round
 per descriptor. Because of this we have to divide the result by 2 and round

+ 1 - 1
target/linux/mediatek/patches-4.4/0072-net-mediatek-remove-superflous-reset-call.patch

@@ -1,7 +1,7 @@
 From dd061dc7eacb22853981978fa94205292444fa49 Mon Sep 17 00:00:00 2001
 From dd061dc7eacb22853981978fa94205292444fa49 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 25 Mar 2016 04:24:27 +0100
 Date: Fri, 25 Mar 2016 04:24:27 +0100
-Subject: [PATCH 72/91] net: mediatek: remove superflous reset call
+Subject: [PATCH 72/90] net: mediatek: remove superflous reset call
 
 
 HW reset is triggered int he mtk_hw_init() function. There is no need to
 HW reset is triggered int he mtk_hw_init() function. There is no need to
 reset the core during probe.
 reset the core during probe.

+ 1 - 1
target/linux/mediatek/patches-4.4/0073-net-mediatek-fix-stop-and-wakeup-of-queue.patch

@@ -1,7 +1,7 @@
 From 283001c04f395f32e55345632d8129f5395cde33 Mon Sep 17 00:00:00 2001
 From 283001c04f395f32e55345632d8129f5395cde33 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 29 Mar 2016 16:41:07 +0200
 Date: Tue, 29 Mar 2016 16:41:07 +0200
-Subject: [PATCH 73/91] net: mediatek: fix stop and wakeup of queue
+Subject: [PATCH 73/90] net: mediatek: fix stop and wakeup of queue
 
 
 The driver supports 2 MACs. Both run on the same DMA ring. If we go
 The driver supports 2 MACs. Both run on the same DMA ring. If we go
 above/below the TX rings thershold value, we always need to wake/stop
 above/below the TX rings thershold value, we always need to wake/stop

+ 1 - 1
target/linux/mediatek/patches-4.4/0074-net-mediatek-fix-mtk_pending_work.patch

@@ -1,7 +1,7 @@
 From 46e02ea6c0468ce01b6e370a20f01a7f7311af34 Mon Sep 17 00:00:00 2001
 From 46e02ea6c0468ce01b6e370a20f01a7f7311af34 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 29 Mar 2016 17:00:47 +0200
 Date: Tue, 29 Mar 2016 17:00:47 +0200
-Subject: [PATCH 74/91] net: mediatek: fix mtk_pending_work
+Subject: [PATCH 74/90] net: mediatek: fix mtk_pending_work
 
 
 The driver supports 2 MACs. Both run on the same DMA ring. If we hit a TX
 The driver supports 2 MACs. Both run on the same DMA ring. If we hit a TX
 timeout we need to stop both netdevs before retarting them again. If we
 timeout we need to stop both netdevs before retarting them again. If we

+ 1 - 1
target/linux/mediatek/patches-4.4/0075-net-mediatek-fix-TX-locking.patch

@@ -1,7 +1,7 @@
 From 25e46afc7324196c89dfb6f83a9c518942e23b33 Mon Sep 17 00:00:00 2001
 From 25e46afc7324196c89dfb6f83a9c518942e23b33 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 29 Mar 2016 17:20:01 +0200
 Date: Tue, 29 Mar 2016 17:20:01 +0200
-Subject: [PATCH 75/91] net: mediatek: fix TX locking
+Subject: [PATCH 75/90] net: mediatek: fix TX locking
 
 
 Inside the TX path there is a lock inside the tx_map function. This is
 Inside the TX path there is a lock inside the tx_map function. This is
 however too late. The patch moves the lock to the start of the xmit
 however too late. The patch moves the lock to the start of the xmit

+ 1 - 1
target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch

@@ -1,7 +1,7 @@
 From 8830adaea03aafc1e35f739e436dc36af7c54428 Mon Sep 17 00:00:00 2001
 From 8830adaea03aafc1e35f739e436dc36af7c54428 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 29 Mar 2016 17:24:24 +0200
 Date: Tue, 29 Mar 2016 17:24:24 +0200
-Subject: [PATCH 76/91] net: mediatek: move the pending_work struct to the
+Subject: [PATCH 76/90] net: mediatek: move the pending_work struct to the
  device generic struct
  device generic struct
 
 
 The worker always touches both netdevs. It is ethernet core and not MAC
 The worker always touches both netdevs. It is ethernet core and not MAC

+ 1 - 1
target/linux/mediatek/patches-4.4/0077-net-mediatek-do-not-set-the-QID-field-in-the-TX-DMA-.patch

@@ -1,7 +1,7 @@
 From 6a6f264e82649f8d9933271f2e9b08af94daad50 Mon Sep 17 00:00:00 2001
 From 6a6f264e82649f8d9933271f2e9b08af94daad50 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Thu, 7 Apr 2016 17:36:23 +0200
 Date: Thu, 7 Apr 2016 17:36:23 +0200
-Subject: [PATCH 77/91] net: mediatek: do not set the QID field in the TX DMA
+Subject: [PATCH 77/90] net: mediatek: do not set the QID field in the TX DMA
  descriptors
  descriptors
 
 
 The QID field gets set to the mac id. This made the DMA linked list queue
 The QID field gets set to the mac id. This made the DMA linked list queue

+ 1 - 1
target/linux/mediatek/patches-4.4/0078-net-mediatek-update-the-IRQ-part-of-the-binding-docu.patch

@@ -1,7 +1,7 @@
 From 9dd4e96d415d1e1910ec42058729380cddb22f9d Mon Sep 17 00:00:00 2001
 From 9dd4e96d415d1e1910ec42058729380cddb22f9d Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Tue, 29 Mar 2016 14:32:07 +0200
 Date: Tue, 29 Mar 2016 14:32:07 +0200
-Subject: [PATCH 78/91] net: mediatek: update the IRQ part of the binding
+Subject: [PATCH 78/90] net: mediatek: update the IRQ part of the binding
  document
  document
 
 
 The current binding document only describes a single interrupt. Update the
 The current binding document only describes a single interrupt. Update the

+ 12 - 13
target/linux/mediatek/patches-4.4/0079-net-next-fix-BQL-support.patch → target/linux/mediatek/patches-4.4/0079-net-next-mediatek-fix-BQL-support.patch

@@ -1,18 +1,18 @@
-From f84a8ad5cc385fe414758fa4d423e26197a79c28 Mon Sep 17 00:00:00 2001
+From d449af97701c1da5b373df5a7675b93b9a2067bf Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sat, 23 Apr 2016 11:57:21 +0200
 Date: Sat, 23 Apr 2016 11:57:21 +0200
-Subject: [PATCH 79/91] net-next: fix BQL support
+Subject: [PATCH 79/90] net-next: mediatek: fix BQL support
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---
- drivers/net/ethernet/mediatek/mtk_eth_soc.c |   33 +++++++++++++++------------
- 1 file changed, 19 insertions(+), 14 deletions(-)
+ drivers/net/ethernet/mediatek/mtk_eth_soc.c |   33 ++++++++++++++++-----------
+ 1 file changed, 20 insertions(+), 13 deletions(-)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index bab5d45..ded09bc 100644
+index bab5d45..9928a79 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -625,7 +625,15 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
+@@ -625,7 +625,16 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
  	WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | TX_DMA_PLEN0(skb_headlen(skb)) |
  	WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | TX_DMA_PLEN0(skb_headlen(skb)) |
  				(!nr_frags * TX_DMA_LS0)));
  				(!nr_frags * TX_DMA_LS0)));
  
  
@@ -23,13 +23,14 @@ index bab5d45..ded09bc 100644
 +	for (i = 0; i < MTK_MAC_COUNT; i++) {
 +	for (i = 0; i < MTK_MAC_COUNT; i++) {
 +		if (!eth->netdev[i])
 +		if (!eth->netdev[i])
 +			continue;
 +			continue;
-+		netdev_sent_queue(dev, skb->len);
++
++		netdev_sent_queue(eth->netdev[i], skb->len);
 +	}
 +	}
 +
 +
  	skb_tx_timestamp(skb);
  	skb_tx_timestamp(skb);
  
  
  	ring->next_free = mtk_qdma_phys_to_virt(ring, txd->txd2);
  	ring->next_free = mtk_qdma_phys_to_virt(ring, txd->txd2);
-@@ -853,21 +861,18 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
+@@ -853,21 +862,18 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
  	struct mtk_tx_dma *desc;
  	struct mtk_tx_dma *desc;
  	struct sk_buff *skb;
  	struct sk_buff *skb;
  	struct mtk_tx_buf *tx_buf;
  	struct mtk_tx_buf *tx_buf;
@@ -54,7 +55,7 @@ index bab5d45..ded09bc 100644
  		u32 next_cpu = desc->txd2;
  		u32 next_cpu = desc->txd2;
  		int mac;
  		int mac;
  
  
-@@ -887,9 +892,8 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
+@@ -887,9 +893,8 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
  		}
  		}
  
  
  		if (skb != (struct sk_buff *)MTK_DMA_DUMMY_DESC) {
  		if (skb != (struct sk_buff *)MTK_DMA_DUMMY_DESC) {
@@ -66,7 +67,7 @@ index bab5d45..ded09bc 100644
  		}
  		}
  		mtk_tx_unmap(eth->dev, tx_buf);
  		mtk_tx_unmap(eth->dev, tx_buf);
  
  
-@@ -902,13 +906,14 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
+@@ -902,11 +907,13 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
  
  
  	mtk_w32(eth, cpu, MTK_QTX_CRX_PTR);
  	mtk_w32(eth, cpu, MTK_QTX_CRX_PTR);
  
  
@@ -81,10 +82,8 @@ index bab5d45..ded09bc 100644
 -		total += done[i];
 -		total += done[i];
 +		netdev_completed_queue(eth->netdev[i], done, bytes);
 +		netdev_completed_queue(eth->netdev[i], done, bytes);
  	}
  	}
--
+ 
  	/* read hw index again make sure no new tx packet */
  	/* read hw index again make sure no new tx packet */
- 	if (cpu != dma || cpu != mtk_r32(eth, MTK_QTX_DRX_PTR))
- 		*tx_again = true;
 -- 
 -- 
 1.7.10.4
 1.7.10.4
 
 

+ 3 - 3
target/linux/mediatek/patches-4.4/0080-net-next-mediatek-fix-gigabit-and-flow-control-adver.patch

@@ -1,7 +1,7 @@
-From 46bfe9068a6e1594affeab30c206d2bd05c1e8f3 Mon Sep 17 00:00:00 2001
+From 121287dee1454be0ebc0e5b8c7b5b85e16570551 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 22 Apr 2016 11:05:23 +0200
 Date: Fri, 22 Apr 2016 11:05:23 +0200
-Subject: [PATCH 80/91] net-next: mediatek: fix gigabit and flow control
+Subject: [PATCH 80/90] net-next: mediatek: fix gigabit and flow control
  advertisement
  advertisement
 
 
 The current code will not setup the PHYs advertisement features correctly.
 The current code will not setup the PHYs advertisement features correctly.
@@ -14,7 +14,7 @@ Signed-off-by: John Crispin <[email protected]>
  1 file changed, 14 insertions(+), 2 deletions(-)
  1 file changed, 14 insertions(+), 2 deletions(-)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index ded09bc..959d2cb 100644
+index 9928a79..204d927 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -133,6 +133,8 @@ static int mtk_mdio_read(struct mii_bus *bus, int phy_addr, int phy_reg)
 @@ -133,6 +133,8 @@ static int mtk_mdio_read(struct mii_bus *bus, int phy_addr, int phy_reg)

+ 3 - 3
target/linux/mediatek/patches-4.4/0081-net-next-mediatek-add-fixed-phy-support.patch

@@ -1,7 +1,7 @@
-From 3950bdb0a4e6fe45611e75fa4c92f3114e6729fd Mon Sep 17 00:00:00 2001
+From dbf02af61ecac8b8a2d651128379e54244f0c68a Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 22 Apr 2016 11:06:03 +0200
 Date: Fri, 22 Apr 2016 11:06:03 +0200
-Subject: [PATCH 81/91] net-next: mediatek: add fixed-phy support
+Subject: [PATCH 81/90] net-next: mediatek: add fixed-phy support
 
 
 The MT7623 SoC has a builtin gigabit switch. If we want to use it, GMAC1
 The MT7623 SoC has a builtin gigabit switch. If we want to use it, GMAC1
 needs to be configured using a fixed link speed and flow control settings.
 needs to be configured using a fixed link speed and flow control settings.
@@ -14,7 +14,7 @@ Signed-off-by: John Crispin <[email protected]>
  1 file changed, 3 insertions(+)
  1 file changed, 3 insertions(+)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 959d2cb..92c7886 100644
+index 204d927..f4d8519 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -219,6 +219,9 @@ static int mtk_phy_connect(struct mtk_mac *mac)
 @@ -219,6 +219,9 @@ static int mtk_phy_connect(struct mtk_mac *mac)

+ 3 - 3
target/linux/mediatek/patches-4.4/0082-net-next-mediatek-add-RX-delay-support.patch

@@ -1,7 +1,7 @@
-From a4271fcf69eae0b10353600f75618ed760fad05b Mon Sep 17 00:00:00 2001
+From 3f7e90b7acf147dbbe6bb140c510fc1eb97279ef Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Fri, 22 Apr 2016 11:08:43 +0200
 Date: Fri, 22 Apr 2016 11:08:43 +0200
-Subject: [PATCH 82/91] net-next: mediatek: add RX delay support
+Subject: [PATCH 82/90] net-next: mediatek: add RX delay support
 
 
 If an external Gigabit PHY is connected to either of the MACs we need to
 If an external Gigabit PHY is connected to either of the MACs we need to
 tell the to use a RX delay. Not doing so will result in heavy packet loss
 tell the to use a RX delay. Not doing so will result in heavy packet loss
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <[email protected]>
  1 file changed, 1 insertion(+)
  1 file changed, 1 insertion(+)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 92c7886..674e8e3 100644
+index f4d8519..aa25788 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -226,6 +226,7 @@ static int mtk_phy_connect(struct mtk_mac *mac)
 @@ -226,6 +226,7 @@ static int mtk_phy_connect(struct mtk_mac *mac)

+ 3 - 3
target/linux/mediatek/patches-4.4/0083-net-next-mediatek-add-missing-return-code-check.patch

@@ -1,7 +1,7 @@
-From 2206de729d8a873898b983f5ff7633a2489aa71c Mon Sep 17 00:00:00 2001
+From 436659829b38d5babc2d590676f5b74bfc17568a Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sat, 23 Apr 2016 09:06:05 +0200
 Date: Sat, 23 Apr 2016 09:06:05 +0200
-Subject: [PATCH 83/91] net-next: mediatek: add missing return code check
+Subject: [PATCH 83/90] net-next: mediatek: add missing return code check
 
 
 The code fails to check if the scratch memory was properly allocated. Add
 The code fails to check if the scratch memory was properly allocated. Add
 this check and return with an error if the allocation failed.
 this check and return with an error if the allocation failed.
@@ -12,7 +12,7 @@ Signed-off-by: John Crispin <[email protected]>
  1 file changed, 3 insertions(+)
  1 file changed, 3 insertions(+)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 674e8e3..37e9260 100644
+index aa25788..e58a634 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -483,6 +483,9 @@ static int mtk_init_fq_dma(struct mtk_eth *eth)
 @@ -483,6 +483,9 @@ static int mtk_init_fq_dma(struct mtk_eth *eth)

+ 4 - 4
target/linux/mediatek/patches-4.4/0084-net-next-mediatek-fix-missing-free-of-scratch-memory.patch

@@ -1,7 +1,7 @@
-From 5207debf8825a8b6f2934b7d39ef76c163dfd794 Mon Sep 17 00:00:00 2001
+From 77c5d1b00214c9e42b9bd5f0f7fc0ec14807d117 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sat, 23 Apr 2016 09:18:28 +0200
 Date: Sat, 23 Apr 2016 09:18:28 +0200
-Subject: [PATCH 84/91] net-next: mediatek: fix missing free of scratch memory
+Subject: [PATCH 84/90] net-next: mediatek: fix missing free of scratch memory
 
 
 Scratch memory gets allocated in mtk_init_fq_dma() but the corresponding
 Scratch memory gets allocated in mtk_init_fq_dma() but the corresponding
 code to free it is missing inside mtk_dma_free() causing a memory leak.
 code to free it is missing inside mtk_dma_free() causing a memory leak.
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <[email protected]>
  2 files changed, 15 insertions(+), 5 deletions(-)
  2 files changed, 15 insertions(+), 5 deletions(-)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 37e9260..6896d17 100644
+index e58a634..06b9094 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -469,14 +469,14 @@ static inline void mtk_rx_get_desc(struct mtk_rx_dma *rxd,
 @@ -469,14 +469,14 @@ static inline void mtk_rx_get_desc(struct mtk_rx_dma *rxd,
@@ -56,7 +56,7 @@ index 37e9260..6896d17 100644
  	mtk_w32(eth, phy_ring_tail, MTK_QDMA_FQ_TAIL);
  	mtk_w32(eth, phy_ring_tail, MTK_QDMA_FQ_TAIL);
  	mtk_w32(eth, (cnt << 16) | cnt, MTK_QDMA_FQ_CNT);
  	mtk_w32(eth, (cnt << 16) | cnt, MTK_QDMA_FQ_CNT);
  	mtk_w32(eth, MTK_QDMA_PAGE_SIZE << 16, MTK_QDMA_FQ_BLEN);
  	mtk_w32(eth, MTK_QDMA_PAGE_SIZE << 16, MTK_QDMA_FQ_BLEN);
-@@ -1203,6 +1203,14 @@ static void mtk_dma_free(struct mtk_eth *eth)
+@@ -1205,6 +1205,14 @@ static void mtk_dma_free(struct mtk_eth *eth)
  	for (i = 0; i < MTK_MAC_COUNT; i++)
  	for (i = 0; i < MTK_MAC_COUNT; i++)
  		if (eth->netdev[i])
  		if (eth->netdev[i])
  			netdev_reset_queue(eth->netdev[i]);
  			netdev_reset_queue(eth->netdev[i]);

+ 4 - 4
target/linux/mediatek/patches-4.4/0085-net-next-mediatek-invalid-buffer-lookup-in-mtk_tx_ma.patch

@@ -1,7 +1,7 @@
-From e58c3912f08f71d9c3e2b09548c96dca8f6ea9d8 Mon Sep 17 00:00:00 2001
+From 7f0fb178cd514ea88aea611b0c92829be50bc8f6 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sat, 23 Apr 2016 09:25:00 +0200
 Date: Sat, 23 Apr 2016 09:25:00 +0200
-Subject: [PATCH 85/91] net-next: mediatek: invalid buffer lookup in
+Subject: [PATCH 85/90] net-next: mediatek: invalid buffer lookup in
  mtk_tx_map()
  mtk_tx_map()
 
 
 The lookup of the tx_buffer in the error path inside mtk_tx_map() uses the
 The lookup of the tx_buffer in the error path inside mtk_tx_map() uses the
@@ -13,10 +13,10 @@ Signed-off-by: John Crispin <[email protected]>
  1 file changed, 1 insertion(+), 1 deletion(-)
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 6896d17..2a4bbbb 100644
+index 06b9094..63e1da4 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -670,7 +670,7 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
+@@ -671,7 +671,7 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
  
  
  err_dma:
  err_dma:
  	do {
  	do {

+ 5 - 5
target/linux/mediatek/patches-4.4/0086-net-next-mediatek-dropped-rx-packets-are-not-being-c.patch

@@ -1,7 +1,7 @@
-From 78579ebd671ebdffdaa4691a0e91acd36f691575 Mon Sep 17 00:00:00 2001
+From 84376b626114ba6f33f86602379790743d4c4f85 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Sat, 23 Apr 2016 09:28:25 +0200
 Date: Sat, 23 Apr 2016 09:28:25 +0200
-Subject: [PATCH 86/91] net-next: mediatek: dropped rx packets are not being
+Subject: [PATCH 86/90] net-next: mediatek: dropped rx packets are not being
  counted properly
  counted properly
 
 
 There are 2 places inside mtk_poll_rx where rx_dropped is not being
 There are 2 places inside mtk_poll_rx where rx_dropped is not being
@@ -14,10 +14,10 @@ Signed-off-by: John Crispin <[email protected]>
  1 file changed, 2 insertions(+)
  1 file changed, 2 insertions(+)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 2a4bbbb..679cefd 100644
+index 63e1da4..24a4179 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -825,6 +825,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
+@@ -826,6 +826,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
  					  DMA_FROM_DEVICE);
  					  DMA_FROM_DEVICE);
  		if (unlikely(dma_mapping_error(&netdev->dev, dma_addr))) {
  		if (unlikely(dma_mapping_error(&netdev->dev, dma_addr))) {
  			skb_free_frag(new_data);
  			skb_free_frag(new_data);
@@ -25,7 +25,7 @@ index 2a4bbbb..679cefd 100644
  			goto release_desc;
  			goto release_desc;
  		}
  		}
  
  
-@@ -832,6 +833,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
+@@ -833,6 +834,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
  		skb = build_skb(data, ring->frag_size);
  		skb = build_skb(data, ring->frag_size);
  		if (unlikely(!skb)) {
  		if (unlikely(!skb)) {
  			put_page(virt_to_head_page(new_data));
  			put_page(virt_to_head_page(new_data));

+ 4 - 4
target/linux/mediatek/patches-4.4/0087-net-next-mediatek-add-IRQ-locking.patch

@@ -1,7 +1,7 @@
-From 8aa53beda6ad6c8154e4f7b8a7ca9815412fa95a Mon Sep 17 00:00:00 2001
+From f74d752da12c1b63bf2bbfa220aab5e2dd644157 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 20 Apr 2016 16:18:07 +0200
 Date: Wed, 20 Apr 2016 16:18:07 +0200
-Subject: [PATCH 87/91] net-next: mediatek: add IRQ locking
+Subject: [PATCH 87/90] net-next: mediatek: add IRQ locking
 
 
 The code that enables and disables IRQs is missing proper locking. After
 The code that enables and disables IRQs is missing proper locking. After
 adding the IRQ separation patch and routing the putting the RX and TX IRQs
 adding the IRQ separation patch and routing the putting the RX and TX IRQs
@@ -17,7 +17,7 @@ Signed-off-by: John Crispin <[email protected]>
  2 files changed, 8 insertions(+)
  2 files changed, 8 insertions(+)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 679cefd..f821820 100644
+index 24a4179..f86d551 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -316,22 +316,28 @@ static void mtk_mdio_cleanup(struct mtk_eth *eth)
 @@ -316,22 +316,28 @@ static void mtk_mdio_cleanup(struct mtk_eth *eth)
@@ -49,7 +49,7 @@ index 679cefd..f821820 100644
  }
  }
  
  
  static int mtk_set_mac_address(struct net_device *dev, void *p)
  static int mtk_set_mac_address(struct net_device *dev, void *p)
-@@ -1750,6 +1756,7 @@ static int mtk_probe(struct platform_device *pdev)
+@@ -1752,6 +1758,7 @@ static int mtk_probe(struct platform_device *pdev)
  		return -EADDRNOTAVAIL;
  		return -EADDRNOTAVAIL;
  
  
  	spin_lock_init(&eth->page_lock);
  	spin_lock_init(&eth->page_lock);

+ 52 - 54
target/linux/mediatek/patches-4.4/0088-net-next-mediatek-add-support-for-IRQ-grouping.patch

@@ -1,7 +1,7 @@
-From f43e3aaaacaaf0482f0aaa6fbad03572f3a0c614 Mon Sep 17 00:00:00 2001
+From 781eb70655d4f25af51aafcc010851918d49b2d7 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Wed, 23 Mar 2016 18:31:48 +0100
 Date: Wed, 23 Mar 2016 18:31:48 +0100
-Subject: [PATCH 88/91] net-next: mediatek: add support for IRQ grouping
+Subject: [PATCH 88/90] net-next: mediatek: add support for IRQ grouping
 
 
 The ethernet core has 3 IRQs. using the IRQ grouping registers we are able
 The ethernet core has 3 IRQs. using the IRQ grouping registers we are able
 to separate TX and RX IRQs, which allows us to service them on separate
 to separate TX and RX IRQs, which allows us to service them on separate
@@ -11,15 +11,15 @@ Instead we use a tasklet to handle housekeeping.
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---
- drivers/net/ethernet/mediatek/mtk_eth_soc.c |  165 ++++++++++++++++++---------
+ drivers/net/ethernet/mediatek/mtk_eth_soc.c |  164 ++++++++++++++++++---------
  drivers/net/ethernet/mediatek/mtk_eth_soc.h |   16 ++-
  drivers/net/ethernet/mediatek/mtk_eth_soc.h |   16 ++-
- 2 files changed, 125 insertions(+), 56 deletions(-)
+ 2 files changed, 124 insertions(+), 56 deletions(-)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index f821820..b5e364c 100644
+index f86d551..6557026 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -789,7 +789,7 @@ drop:
+@@ -790,7 +790,7 @@ drop:
  }
  }
  
  
  static int mtk_poll_rx(struct napi_struct *napi, int budget,
  static int mtk_poll_rx(struct napi_struct *napi, int budget,
@@ -28,7 +28,7 @@ index f821820..b5e364c 100644
  {
  {
  	struct mtk_rx_ring *ring = &eth->rx_ring;
  	struct mtk_rx_ring *ring = &eth->rx_ring;
  	int idx = ring->calc_idx;
  	int idx = ring->calc_idx;
-@@ -877,19 +877,18 @@ release_desc:
+@@ -878,19 +878,18 @@ release_desc:
  	}
  	}
  
  
  	if (done < budget)
  	if (done < budget)
@@ -51,11 +51,9 @@ index f821820..b5e364c 100644
  	u32 cpu, dma;
  	u32 cpu, dma;
  	static int condition;
  	static int condition;
  	int i;
  	int i;
-@@ -941,64 +940,82 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
- 			continue;
- 		netdev_completed_queue(eth->netdev[i], done, bytes);
+@@ -944,63 +943,80 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
  	}
  	}
-+
+ 
  	/* read hw index again make sure no new tx packet */
  	/* read hw index again make sure no new tx packet */
 -	if (cpu != dma || cpu != mtk_r32(eth, MTK_QTX_DRX_PTR))
 -	if (cpu != dma || cpu != mtk_r32(eth, MTK_QTX_DRX_PTR))
 -		*tx_again = true;
 -		*tx_again = true;
@@ -103,7 +101,7 @@ index f821820..b5e364c 100644
  		mtk_w32(eth, status_intr, MTK_INT_STATUS2);
  		mtk_w32(eth, status_intr, MTK_INT_STATUS2);
  	}
  	}
 +}
 +}
-+
+ 
 +static int mtk_napi_tx(struct napi_struct *napi, int budget)
 +static int mtk_napi_tx(struct napi_struct *napi, int budget)
 +{
 +{
 +	struct mtk_eth *eth = container_of(napi, struct mtk_eth, tx_napi);
 +	struct mtk_eth *eth = container_of(napi, struct mtk_eth, tx_napi);
@@ -114,21 +112,27 @@ index f821820..b5e364c 100644
 +
 +
 +	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
 +	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
 +	tx_done = mtk_poll_tx(eth, budget);
 +	tx_done = mtk_poll_tx(eth, budget);
-+	if (unlikely(netif_msg_intr(eth))) {
-+		mask = mtk_r32(eth, MTK_QDMA_INT_MASK);
+ 	if (unlikely(netif_msg_intr(eth))) {
+ 		mask = mtk_r32(eth, MTK_QDMA_INT_MASK);
+-		netdev_info(eth->netdev[0],
+-			    "done tx %d, rx %d, intr 0x%08x/0x%x\n",
+-			    tx_done, rx_done, status, mask);
 +		dev_info(eth->dev,
 +		dev_info(eth->dev,
 +			 "done tx %d, intr 0x%08x/0x%x\n",
 +			 "done tx %d, intr 0x%08x/0x%x\n",
 +			 tx_done, status, mask);
 +			 tx_done, status, mask);
-+	}
-+
+ 	}
+ 
+-	if (tx_again || rx_done == budget)
 +	if (tx_done == budget)
 +	if (tx_done == budget)
-+		return budget;
-+
-+	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
+ 		return budget;
+ 
+ 	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
+-	if (status & (tx_intr | rx_intr))
 +	if (status & MTK_TX_DONE_INT)
 +	if (status & MTK_TX_DONE_INT)
-+		return budget;
-+
-+	napi_complete(napi);
+ 		return budget;
+ 
+ 	napi_complete(napi);
+-	mtk_irq_enable(eth, tx_intr | rx_intr);
 +	mtk_irq_enable(eth, MTK_TX_DONE_INT);
 +	mtk_irq_enable(eth, MTK_TX_DONE_INT);
 +
 +
 +	return tx_done;
 +	return tx_done;
@@ -139,35 +143,29 @@ index f821820..b5e364c 100644
 +	struct mtk_eth *eth = container_of(napi, struct mtk_eth, rx_napi);
 +	struct mtk_eth *eth = container_of(napi, struct mtk_eth, rx_napi);
 +	u32 status, mask;
 +	u32 status, mask;
 +	int rx_done = 0;
 +	int rx_done = 0;
- 
++
 +	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
 +	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
 +	rx_done = mtk_poll_rx(napi, budget, eth);
 +	rx_done = mtk_poll_rx(napi, budget, eth);
- 	if (unlikely(netif_msg_intr(eth))) {
- 		mask = mtk_r32(eth, MTK_QDMA_INT_MASK);
--		netdev_info(eth->netdev[0],
--			    "done tx %d, rx %d, intr 0x%08x/0x%x\n",
--			    tx_done, rx_done, status, mask);
++	if (unlikely(netif_msg_intr(eth))) {
++		mask = mtk_r32(eth, MTK_QDMA_INT_MASK);
 +		dev_info(eth->dev,
 +		dev_info(eth->dev,
 +			 "done rx %d, intr 0x%08x/0x%x\n",
 +			 "done rx %d, intr 0x%08x/0x%x\n",
 +			 rx_done, status, mask);
 +			 rx_done, status, mask);
- 	}
- 
--	if (tx_again || rx_done == budget)
++	}
++
 +	if (rx_done == budget)
 +	if (rx_done == budget)
- 		return budget;
- 
- 	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
--	if (status & (tx_intr | rx_intr))
++		return budget;
++
++	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
 +	if (status & MTK_RX_DONE_INT)
 +	if (status & MTK_RX_DONE_INT)
- 		return budget;
- 
- 	napi_complete(napi);
--	mtk_irq_enable(eth, tx_intr | rx_intr);
++		return budget;
++
++	napi_complete(napi);
 +	mtk_irq_enable(eth, MTK_RX_DONE_INT);
 +	mtk_irq_enable(eth, MTK_RX_DONE_INT);
  
  
  	return rx_done;
  	return rx_done;
  }
  }
-@@ -1235,22 +1252,44 @@ static void mtk_tx_timeout(struct net_device *dev)
+@@ -1237,22 +1253,44 @@ static void mtk_tx_timeout(struct net_device *dev)
  	schedule_work(&eth->pending_work);
  	schedule_work(&eth->pending_work);
  }
  }
  
  
@@ -190,8 +188,7 @@ index f821820..b5e364c 100644
 -	} else {
 -	} else {
 -		mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
 -		mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
 +		mtk_irq_disable(eth, MTK_RX_DONE_INT);
 +		mtk_irq_disable(eth, MTK_RX_DONE_INT);
- 	}
--	mtk_irq_disable(eth, (MTK_RX_DONE_INT | MTK_TX_DONE_INT));
++	}
 +	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
 +	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
 +
 +
 +	return IRQ_HANDLED;
 +	return IRQ_HANDLED;
@@ -212,12 +209,13 @@ index f821820..b5e364c 100644
 +		if (likely(napi_schedule_prep(&eth->tx_napi)))
 +		if (likely(napi_schedule_prep(&eth->tx_napi)))
 +			__napi_schedule(&eth->tx_napi);
 +			__napi_schedule(&eth->tx_napi);
 +		mtk_irq_disable(eth, MTK_TX_DONE_INT);
 +		mtk_irq_disable(eth, MTK_TX_DONE_INT);
-+	}
+ 	}
+-	mtk_irq_disable(eth, (MTK_RX_DONE_INT | MTK_TX_DONE_INT));
 +	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
 +	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
  
  
  	return IRQ_HANDLED;
  	return IRQ_HANDLED;
  }
  }
-@@ -1263,7 +1302,7 @@ static void mtk_poll_controller(struct net_device *dev)
+@@ -1265,7 +1303,7 @@ static void mtk_poll_controller(struct net_device *dev)
  	u32 int_mask = MTK_TX_DONE_INT | MTK_RX_DONE_INT;
  	u32 int_mask = MTK_TX_DONE_INT | MTK_RX_DONE_INT;
  
  
  	mtk_irq_disable(eth, int_mask);
  	mtk_irq_disable(eth, int_mask);
@@ -226,7 +224,7 @@ index f821820..b5e364c 100644
  	mtk_irq_enable(eth, int_mask);
  	mtk_irq_enable(eth, int_mask);
  }
  }
  #endif
  #endif
-@@ -1299,6 +1338,7 @@ static int mtk_open(struct net_device *dev)
+@@ -1301,6 +1339,7 @@ static int mtk_open(struct net_device *dev)
  		if (err)
  		if (err)
  			return err;
  			return err;
  
  
@@ -234,7 +232,7 @@ index f821820..b5e364c 100644
  		napi_enable(&eth->rx_napi);
  		napi_enable(&eth->rx_napi);
  		mtk_irq_enable(eth, MTK_TX_DONE_INT | MTK_RX_DONE_INT);
  		mtk_irq_enable(eth, MTK_TX_DONE_INT | MTK_RX_DONE_INT);
  	}
  	}
-@@ -1347,6 +1387,7 @@ static int mtk_stop(struct net_device *dev)
+@@ -1349,6 +1388,7 @@ static int mtk_stop(struct net_device *dev)
  		return 0;
  		return 0;
  
  
  	mtk_irq_disable(eth, MTK_TX_DONE_INT | MTK_RX_DONE_INT);
  	mtk_irq_disable(eth, MTK_TX_DONE_INT | MTK_RX_DONE_INT);
@@ -242,7 +240,7 @@ index f821820..b5e364c 100644
  	napi_disable(&eth->rx_napi);
  	napi_disable(&eth->rx_napi);
  
  
  	mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
  	mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
-@@ -1384,7 +1425,11 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
+@@ -1386,7 +1426,11 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
  	/* Enable RX VLan Offloading */
  	/* Enable RX VLan Offloading */
  	mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
  	mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
  
  
@@ -255,7 +253,7 @@ index f821820..b5e364c 100644
  			       dev_name(eth->dev), eth);
  			       dev_name(eth->dev), eth);
  	if (err)
  	if (err)
  		return err;
  		return err;
-@@ -1400,7 +1445,11 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
+@@ -1402,7 +1446,11 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
  	mtk_w32(eth, 0, MTK_RST_GL);
  	mtk_w32(eth, 0, MTK_RST_GL);
  
  
  	/* FE int grouping */
  	/* FE int grouping */
@@ -268,7 +266,7 @@ index f821820..b5e364c 100644
  
  
  	for (i = 0; i < 2; i++) {
  	for (i = 0; i < 2; i++) {
  		u32 val = mtk_r32(eth, MTK_GDMA_FWD_CFG(i));
  		u32 val = mtk_r32(eth, MTK_GDMA_FWD_CFG(i));
-@@ -1448,7 +1497,9 @@ static void mtk_uninit(struct net_device *dev)
+@@ -1450,7 +1498,9 @@ static void mtk_uninit(struct net_device *dev)
  	phy_disconnect(mac->phy_dev);
  	phy_disconnect(mac->phy_dev);
  	mtk_mdio_cleanup(eth);
  	mtk_mdio_cleanup(eth);
  	mtk_irq_disable(eth, ~0);
  	mtk_irq_disable(eth, ~0);
@@ -279,7 +277,7 @@ index f821820..b5e364c 100644
  }
  }
  
  
  static int mtk_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  static int mtk_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
-@@ -1723,10 +1774,10 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
+@@ -1725,10 +1775,10 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  		dev_err(eth->dev, "error bringing up device\n");
  		dev_err(eth->dev, "error bringing up device\n");
  		goto free_netdev;
  		goto free_netdev;
  	}
  	}
@@ -292,7 +290,7 @@ index f821820..b5e364c 100644
  
  
  	return 0;
  	return 0;
  
  
-@@ -1743,6 +1794,7 @@ static int mtk_probe(struct platform_device *pdev)
+@@ -1745,6 +1795,7 @@ static int mtk_probe(struct platform_device *pdev)
  	struct mtk_soc_data *soc;
  	struct mtk_soc_data *soc;
  	struct mtk_eth *eth;
  	struct mtk_eth *eth;
  	int err;
  	int err;
@@ -300,7 +298,7 @@ index f821820..b5e364c 100644
  
  
  	match = of_match_device(of_mtk_match, &pdev->dev);
  	match = of_match_device(of_mtk_match, &pdev->dev);
  	soc = (struct mtk_soc_data *)match->data;
  	soc = (struct mtk_soc_data *)match->data;
-@@ -1778,10 +1830,12 @@ static int mtk_probe(struct platform_device *pdev)
+@@ -1780,10 +1831,12 @@ static int mtk_probe(struct platform_device *pdev)
  		return PTR_ERR(eth->rstc);
  		return PTR_ERR(eth->rstc);
  	}
  	}
  
  
@@ -317,7 +315,7 @@ index f821820..b5e364c 100644
  	}
  	}
  
  
  	eth->clk_ethif = devm_clk_get(&pdev->dev, "ethif");
  	eth->clk_ethif = devm_clk_get(&pdev->dev, "ethif");
-@@ -1822,7 +1876,9 @@ static int mtk_probe(struct platform_device *pdev)
+@@ -1824,7 +1877,9 @@ static int mtk_probe(struct platform_device *pdev)
  	 * for NAPI to work
  	 * for NAPI to work
  	 */
  	 */
  	init_dummy_netdev(&eth->dummy_dev);
  	init_dummy_netdev(&eth->dummy_dev);
@@ -328,7 +326,7 @@ index f821820..b5e364c 100644
  		       MTK_NAPI_WEIGHT);
  		       MTK_NAPI_WEIGHT);
  
  
  	platform_set_drvdata(pdev, eth);
  	platform_set_drvdata(pdev, eth);
-@@ -1843,6 +1899,7 @@ static int mtk_remove(struct platform_device *pdev)
+@@ -1845,6 +1900,7 @@ static int mtk_remove(struct platform_device *pdev)
  	clk_disable_unprepare(eth->clk_gp1);
  	clk_disable_unprepare(eth->clk_gp1);
  	clk_disable_unprepare(eth->clk_gp2);
  	clk_disable_unprepare(eth->clk_gp2);
  
  

+ 18 - 15
target/linux/mediatek/patches-4.4/0089-net-mediatek-add-gsw-mt7530-driver.patch

@@ -1,18 +1,18 @@
-From 4c23129f65d9bac10d9cf88c45fced58597400e6 Mon Sep 17 00:00:00 2001
+From bb14507c0624e088da231b6b20fd6add032e9226 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Mon, 11 Apr 2016 03:11:54 +0200
 Date: Mon, 11 Apr 2016 03:11:54 +0200
-Subject: [PATCH 89/91] net: mediatek add gsw/mt7530 driver
+Subject: [PATCH 89/90] net: mediatek add gsw/mt7530 driver
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---
  drivers/net/ethernet/mediatek/Makefile      |    2 +-
  drivers/net/ethernet/mediatek/Makefile      |    2 +-
  drivers/net/ethernet/mediatek/gsw_mt7620.h  |  251 +++++++
  drivers/net/ethernet/mediatek/gsw_mt7620.h  |  251 +++++++
- drivers/net/ethernet/mediatek/gsw_mt7623.c  | 1081 +++++++++++++++++++++++++++
+ drivers/net/ethernet/mediatek/gsw_mt7623.c  | 1084 +++++++++++++++++++++++++++
  drivers/net/ethernet/mediatek/mt7530.c      |  808 ++++++++++++++++++++
  drivers/net/ethernet/mediatek/mt7530.c      |  808 ++++++++++++++++++++
  drivers/net/ethernet/mediatek/mt7530.h      |   20 +
  drivers/net/ethernet/mediatek/mt7530.h      |   20 +
  drivers/net/ethernet/mediatek/mtk_eth_soc.c |   59 +-
  drivers/net/ethernet/mediatek/mtk_eth_soc.c |   59 +-
  drivers/net/ethernet/mediatek/mtk_eth_soc.h |    4 +
  drivers/net/ethernet/mediatek/mtk_eth_soc.h |    4 +
- 7 files changed, 2195 insertions(+), 30 deletions(-)
+ 7 files changed, 2198 insertions(+), 30 deletions(-)
  create mode 100644 drivers/net/ethernet/mediatek/gsw_mt7620.h
  create mode 100644 drivers/net/ethernet/mediatek/gsw_mt7620.h
  create mode 100644 drivers/net/ethernet/mediatek/gsw_mt7623.c
  create mode 100644 drivers/net/ethernet/mediatek/gsw_mt7623.c
  create mode 100644 drivers/net/ethernet/mediatek/mt7530.c
  create mode 100644 drivers/net/ethernet/mediatek/mt7530.c
@@ -287,10 +287,10 @@ index 0000000..6fca8f2
 +#endif
 +#endif
 diff --git a/drivers/net/ethernet/mediatek/gsw_mt7623.c b/drivers/net/ethernet/mediatek/gsw_mt7623.c
 diff --git a/drivers/net/ethernet/mediatek/gsw_mt7623.c b/drivers/net/ethernet/mediatek/gsw_mt7623.c
 new file mode 100644
 new file mode 100644
-index 0000000..28df15a
+index 0000000..0c6b8a6
 --- /dev/null
 --- /dev/null
 +++ b/drivers/net/ethernet/mediatek/gsw_mt7623.c
 +++ b/drivers/net/ethernet/mediatek/gsw_mt7623.c
-@@ -0,0 +1,1081 @@
+@@ -0,0 +1,1084 @@
 +/*   This program is free software; you can redistribute it and/or modify
 +/*   This program is free software; you can redistribute it and/or modify
 + *   it under the terms of the GNU General Public License as published by
 + *   it under the terms of the GNU General Public License as published by
 + *   the Free Software Foundation; version 2 of the License
 + *   the Free Software Foundation; version 2 of the License
@@ -1331,6 +1331,9 @@ index 0000000..28df15a
 +	if (ret)
 +	if (ret)
 +		return ret;
 +		return ret;
 +
 +
++	regmap_write(gsw->ethsys, 0x34, 0x800000);
++	regmap_write(gsw->ethsys, 0x34, 0x0);
++
 +	clk_prepare_enable(gsw->clk_trgpll);
 +	clk_prepare_enable(gsw->clk_trgpll);
 +
 +
 +	gpio_direction_output(reset_pin, 0);
 +	gpio_direction_output(reset_pin, 0);
@@ -2213,7 +2216,7 @@ index 0000000..1fc8c62
 +
 +
 +#endif
 +#endif
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index b5e364c..eee4324a 100644
+index 6557026..bb62b91 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -24,6 +24,9 @@
 @@ -24,6 +24,9 @@
@@ -2235,7 +2238,7 @@ index b5e364c..eee4324a 100644
  	}
  	}
  
  
  	dev_err(eth->dev, "mdio: MDIO timeout\n");
  	dev_err(eth->dev, "mdio: MDIO timeout\n");
-@@ -1407,15 +1410,6 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
+@@ -1408,15 +1411,6 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
  	reset_control_deassert(eth->rstc);
  	reset_control_deassert(eth->rstc);
  	usleep_range(10, 20);
  	usleep_range(10, 20);
  
  
@@ -2251,7 +2254,7 @@ index b5e364c..eee4324a 100644
  	/* GE1, Force 1000M/FD, FC ON */
  	/* GE1, Force 1000M/FD, FC ON */
  	mtk_w32(eth, MAC_MCR_FIXED_LINK, MTK_MAC_MCR(0));
  	mtk_w32(eth, MAC_MCR_FIXED_LINK, MTK_MAC_MCR(0));
  
  
-@@ -1438,6 +1432,8 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
+@@ -1439,6 +1433,8 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
  	if (err)
  	if (err)
  		return err;
  		return err;
  
  
@@ -2260,7 +2263,7 @@ index b5e364c..eee4324a 100644
  	/* disable delay and normal interrupt */
  	/* disable delay and normal interrupt */
  	mtk_w32(eth, 0, MTK_QDMA_DELAY_INT);
  	mtk_w32(eth, 0, MTK_QDMA_DELAY_INT);
  	mtk_irq_disable(eth, MTK_TX_DONE_INT | MTK_RX_DONE_INT);
  	mtk_irq_disable(eth, MTK_TX_DONE_INT | MTK_RX_DONE_INT);
-@@ -1465,6 +1461,8 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
+@@ -1466,6 +1462,8 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
  		mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
  		mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
  	}
  	}
  
  
@@ -2269,7 +2272,7 @@ index b5e364c..eee4324a 100644
  	return 0;
  	return 0;
  }
  }
  
  
-@@ -1720,7 +1718,7 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
+@@ -1721,7 +1719,7 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  {
  {
  	struct mtk_mac *mac;
  	struct mtk_mac *mac;
  	const __be32 *_id = of_get_property(np, "reg", NULL);
  	const __be32 *_id = of_get_property(np, "reg", NULL);
@@ -2278,7 +2281,7 @@ index b5e364c..eee4324a 100644
  
  
  	if (!_id) {
  	if (!_id) {
  		dev_err(eth->dev, "missing mac id\n");
  		dev_err(eth->dev, "missing mac id\n");
-@@ -1754,8 +1752,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
+@@ -1755,8 +1753,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  				     GFP_KERNEL);
  				     GFP_KERNEL);
  	if (!mac->hw_stats) {
  	if (!mac->hw_stats) {
  		dev_err(eth->dev, "failed to allocate counter memory\n");
  		dev_err(eth->dev, "failed to allocate counter memory\n");
@@ -2289,7 +2292,7 @@ index b5e364c..eee4324a 100644
  	}
  	}
  	spin_lock_init(&mac->hw_stats->stats_lock);
  	spin_lock_init(&mac->hw_stats->stats_lock);
  	mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET;
  	mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET;
-@@ -1769,21 +1767,9 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
+@@ -1770,21 +1768,9 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  	eth->netdev[id]->features |= MTK_HW_FEATURES;
  	eth->netdev[id]->features |= MTK_HW_FEATURES;
  	eth->netdev[id]->ethtool_ops = &mtk_ethtool_ops;
  	eth->netdev[id]->ethtool_ops = &mtk_ethtool_ops;
  
  
@@ -2311,7 +2314,7 @@ index b5e364c..eee4324a 100644
  }
  }
  
  
  static int mtk_probe(struct platform_device *pdev)
  static int mtk_probe(struct platform_device *pdev)
-@@ -1851,14 +1837,13 @@ static int mtk_probe(struct platform_device *pdev)
+@@ -1852,14 +1838,13 @@ static int mtk_probe(struct platform_device *pdev)
  	clk_prepare_enable(eth->clk_gp1);
  	clk_prepare_enable(eth->clk_gp1);
  	clk_prepare_enable(eth->clk_gp2);
  	clk_prepare_enable(eth->clk_gp2);
  
  
@@ -2329,7 +2332,7 @@ index b5e364c..eee4324a 100644
  	for_each_child_of_node(pdev->dev.of_node, mac_np) {
  	for_each_child_of_node(pdev->dev.of_node, mac_np) {
  		if (!of_device_is_compatible(mac_np,
  		if (!of_device_is_compatible(mac_np,
  					     "mediatek,eth-mac"))
  					     "mediatek,eth-mac"))
-@@ -1872,6 +1857,22 @@ static int mtk_probe(struct platform_device *pdev)
+@@ -1873,6 +1858,22 @@ static int mtk_probe(struct platform_device *pdev)
  			goto err_free_dev;
  			goto err_free_dev;
  	}
  	}
  
  

+ 7 - 7
target/linux/mediatek/patches-4.4/0090-net-mediatek-v4.4-backports.patch

@@ -1,14 +1,14 @@
-From 65f0d87a26f7cec860b89b40eebc48a4eb71acf8 Mon Sep 17 00:00:00 2001
+From 9ad385f5a3d79d40938bfc265dc69821f6ecb5b8 Mon Sep 17 00:00:00 2001
 From: John Crispin <[email protected]>
 From: John Crispin <[email protected]>
 Date: Mon, 11 Apr 2016 06:00:23 +0200
 Date: Mon, 11 Apr 2016 06:00:23 +0200
-Subject: [PATCH 90/91] net: mediatek: v4.4 backports
+Subject: [PATCH 90/90] net: mediatek: v4.4 backports
 
 
 ---
 ---
  drivers/net/ethernet/mediatek/mtk_eth_soc.c |   23 ++++++++++++++---------
  drivers/net/ethernet/mediatek/mtk_eth_soc.c |   23 ++++++++++++++---------
  1 file changed, 14 insertions(+), 9 deletions(-)
  1 file changed, 14 insertions(+), 9 deletions(-)
 
 
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index eee4324a..b466f45 100644
+index bb62b91..5d33053 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 @@ -207,7 +207,7 @@ static int mtk_phy_connect_node(struct mtk_eth *eth, struct mtk_mac *mac,
 @@ -207,7 +207,7 @@ static int mtk_phy_connect_node(struct mtk_eth *eth, struct mtk_mac *mac,
@@ -20,7 +20,7 @@ index eee4324a..b466f45 100644
  		 phydev->drv->name);
  		 phydev->drv->name);
  
  
  	mac->phy_dev = phydev;
  	mac->phy_dev = phydev;
-@@ -1267,9 +1267,10 @@ static irqreturn_t mtk_handle_irq_rx(int irq, void *_eth)
+@@ -1268,9 +1268,10 @@ static irqreturn_t mtk_handle_irq_rx(int irq, void *_eth)
  		return IRQ_NONE;
  		return IRQ_NONE;
  
  
  	if (status & MTK_RX_DONE_INT) {
  	if (status & MTK_RX_DONE_INT) {
@@ -33,7 +33,7 @@ index eee4324a..b466f45 100644
  	}
  	}
  	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
  	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
  
  
-@@ -1288,9 +1289,10 @@ static irqreturn_t mtk_handle_irq_tx(int irq, void *_eth)
+@@ -1289,9 +1290,10 @@ static irqreturn_t mtk_handle_irq_tx(int irq, void *_eth)
  		return IRQ_NONE;
  		return IRQ_NONE;
  
  
  	if (status & MTK_TX_DONE_INT) {
  	if (status & MTK_TX_DONE_INT) {
@@ -46,7 +46,7 @@ index eee4324a..b466f45 100644
  	}
  	}
  	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
  	mtk_w32(eth, status, MTK_QMTK_INT_STATUS);
  
  
-@@ -1382,6 +1384,7 @@ static int mtk_stop(struct net_device *dev)
+@@ -1383,6 +1385,7 @@ static int mtk_stop(struct net_device *dev)
  	struct mtk_mac *mac = netdev_priv(dev);
  	struct mtk_mac *mac = netdev_priv(dev);
  	struct mtk_eth *eth = mac->hw;
  	struct mtk_eth *eth = mac->hw;
  
  
@@ -54,7 +54,7 @@ index eee4324a..b466f45 100644
  	netif_tx_disable(dev);
  	netif_tx_disable(dev);
  	phy_stop(mac->phy_dev);
  	phy_stop(mac->phy_dev);
  
  
-@@ -1581,11 +1584,13 @@ static int mtk_set_settings(struct net_device *dev,
+@@ -1582,11 +1585,13 @@ static int mtk_set_settings(struct net_device *dev,
  {
  {
  	struct mtk_mac *mac = netdev_priv(dev);
  	struct mtk_mac *mac = netdev_priv(dev);
  
  

+ 0 - 57
target/linux/mediatek/patches-4.4/0091-net-next-mediatek-remove-BQL.patch

@@ -1,57 +0,0 @@
-From 1e1f2c5ea2af34017a398ab11cffac142adea87e Mon Sep 17 00:00:00 2001
-From: John Crispin <[email protected]>
-Date: Sat, 23 Apr 2016 12:57:21 +0200
-Subject: [PATCH 91/91] net-next: mediatek: remove BQL
-
-Signed-off-by: John Crispin <[email protected]>
----
- drivers/net/ethernet/mediatek/mtk_eth_soc.c |   19 -------------------
- 1 file changed, 19 deletions(-)
-
-diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index b466f45..68f39ed 100644
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -653,15 +653,6 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
- 	WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | TX_DMA_PLEN0(skb_headlen(skb)) |
- 				(!nr_frags * TX_DMA_LS0)));
- 
--	/* we have a single DMA ring so BQL needs to be updated for all devices
--	 * sitting on this ring
--	 */
--	for (i = 0; i < MTK_MAC_COUNT; i++) {
--		if (!eth->netdev[i])
--			continue;
--		netdev_sent_queue(dev, skb->len);
--	}
--
- 	skb_tx_timestamp(skb);
- 
- 	ring->next_free = mtk_qdma_phys_to_virt(ring, txd->txd2);
-@@ -894,7 +885,6 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget)
- 	unsigned int bytes = 0, done = 0;
- 	u32 cpu, dma;
- 	static int condition;
--	int i;
- 
- 	cpu = mtk_r32(eth, MTK_QTX_CRX_PTR);
- 	dma = mtk_r32(eth, MTK_QTX_DRX_PTR);
-@@ -935,15 +925,6 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget)
- 
- 	mtk_w32(eth, cpu, MTK_QTX_CRX_PTR);
- 
--	/* we have a single DMA ring so BQL needs to be updated for all devices
--	 * sitting on this ring
--	 */
--	for (i = 0; i < MTK_MAC_COUNT; i++) {
--		if (!eth->netdev[i])
--			continue;
--		netdev_completed_queue(eth->netdev[i], done, bytes);
--	}
--
- 	/* read hw index again make sure no new tx packet */
- 	if (cpu == dma && cpu == mtk_r32(eth, MTK_QTX_DRX_PTR))
- 		mtk_w32(eth, MTK_TX_DONE_INT, MTK_QMTK_INT_STATUS);
--- 
-1.7.10.4
-

+ 11 - 0
target/linux/mediatek/patches-4.4/0200-devicetree.patch

@@ -0,0 +1,11 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -775,6 +775,8 @@
+ 	mt6589-aquaris5.dtb \
+ 	mt6592-evb.dtb \
+ 	mt7623-evb.dtb \
++	mt7623-eMMC.dtb \
++	mt7623-NAND.dtb \
+ 	mt8127-moose.dtb \
+ 	mt8135-evbp1.dtb
+ dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb