From 5c19743dd6e96c93a1cc7b113ba655fc3854eeb6 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Mon, 7 Aug 2017 02:03:50 +0000
Subject: [PATCH] core/linux-aarch64-rc to 4.13.rc4-1

---
 ...ow-mac-address-to-be-set-as-a-parame.patch | 10 ++---
 ...ip-enable-sdmmc-controller-on-rk3399.patch | 42 +++++++++++++++++++
 core/linux-aarch64-rc/99-linux.hook           | 11 +++++
 core/linux-aarch64-rc/PKGBUILD                | 23 ++++++----
 core/linux-aarch64-rc/config                  |  4 +-
 .../linux-aarch64-rc/linux-aarch64-rc.install |  8 +---
 6 files changed, 78 insertions(+), 20 deletions(-)
 create mode 100644 core/linux-aarch64-rc/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch
 create mode 100644 core/linux-aarch64-rc/99-linux.hook

diff --git a/core/linux-aarch64-rc/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/core/linux-aarch64-rc/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
index 343370641..aea938878 100644
--- a/core/linux-aarch64-rc/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
+++ b/core/linux-aarch64-rc/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
@@ -1,14 +1,14 @@
-From 7e89ba6ecc97cfc35857e84004105d63808c5cd7 Mon Sep 17 00:00:00 2001
+From 763e9641f8e3c3e48ff37b33f4bc5a6e452dfbd6 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 18 Feb 2014 01:43:50 -0300
-Subject: [PATCH] net/smsc95xx: Allow mac address to be set as a parameter
+Subject: [PATCH 1/2] net/smsc95xx: Allow mac address to be set as a parameter
 
 ---
  drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 56 insertions(+)
 
 diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
-index 831aa33d078a..03625547d794 100644
+index 340c13484e5c..ae49ded12f6c 100644
 --- a/drivers/net/usb/smsc95xx.c
 +++ b/drivers/net/usb/smsc95xx.c
 @@ -60,6 +60,7 @@
@@ -30,7 +30,7 @@ index 831aa33d078a..03625547d794 100644
  static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
  					    u32 *data, int in_pm)
  {
-@@ -910,8 +915,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+@@ -911,8 +916,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
  	return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
  }
  
@@ -91,5 +91,5 @@ index 831aa33d078a..03625547d794 100644
  
  	/* maybe the boot loader passed the MAC address in devicetree */
 -- 
-2.11.1
+2.13.3
 
diff --git a/core/linux-aarch64-rc/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch b/core/linux-aarch64-rc/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch
new file mode 100644
index 000000000..e35daa8af
--- /dev/null
+++ b/core/linux-aarch64-rc/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch
@@ -0,0 +1,42 @@
+From a22772e6359cfa5abeaf73a93ea09cae4ec67efa Mon Sep 17 00:00:00 2001
+From: Shawn Lin <shawn.lin@rock-chips.com>
+Date: Fri, 21 Jul 2017 16:30:59 +0800
+Subject: [PATCH 2/2] arm64: dts: rockchip: enable sdmmc controller on
+ rk3399-firefly
+
+This allows basic support for SD highspeed cards but no UHS-I mode
+got ready due to the propagated defer-probe error from RK805.
+
+Cc: Kever Yang <kever.yang@rock-chips.com>
+Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+index ba1d9810ad1e..e01ef8a77f5e 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+@@ -630,6 +630,18 @@
+ 	status = "okay";
+ };
+ 
++&sdmmc {
++	bus-width = <4>;
++	cap-mmc-highspeed;
++	cap-sd-highspeed;
++	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
++	disable-wp;
++	max-frequency = <150000000>;
++	pinctrl-names = "default";
++	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
++	status = "okay";
++};
++
+ &sdhci {
+ 	bus-width = <8>;
+ 	keep-power-in-suspend;
+-- 
+2.13.3
+
diff --git a/core/linux-aarch64-rc/99-linux.hook b/core/linux-aarch64-rc/99-linux.hook
new file mode 100644
index 000000000..219e2d558
--- /dev/null
+++ b/core/linux-aarch64-rc/99-linux.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Target = boot/Image
+Target = usr/lib/initcpio/*
+
+[Action]
+Description = Updating %PKGBASE% initcpios
+When = PostTransaction
+Exec = /usr/bin/mkinitcpio -p %PKGBASE%
diff --git a/core/linux-aarch64-rc/PKGBUILD b/core/linux-aarch64-rc/PKGBUILD
index 8004debf1..0f474e95d 100644
--- a/core/linux-aarch64-rc/PKGBUILD
+++ b/core/linux-aarch64-rc/PKGBUILD
@@ -4,14 +4,14 @@
 buildarch=8
 
 _rcver=4.13
-_rcrel=3
+_rcrel=4
 
 pkgbase=linux-aarch64-rc
 _srcname=linux-${_rcver}-rc${_rcrel}
 _kernelname=${pkgbase#linux}
 _desc="AArch64 multi-platform (release candidate)"
 pkgver=${_rcver}.rc${_rcrel}
-pkgrel=2
+pkgrel=1
 arch=('aarch64')
 url="http://www.kernel.org/"
 license=('GPL2')
@@ -19,18 +19,23 @@ makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git')
 options=('!strip')
 source=("https://git.kernel.org/torvalds/t/${_srcname}.tar.gz"
         '0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch'
+        '0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch'
         'config'
-        'linux.preset')
-md5sums=('a5efd0d3b5b47f6a29652822793fce3b'
-         '1d852d09fa6ec38017b3ebe631c02d32'
-         'd8e11adfe5b174b434c51ed731f4e441'
-         '25d8f6983c9a616946848c0e075a949c')
+        'linux.preset'
+        '99-linux.hook')
+md5sums=('0b451973dbd2581db9f44f5ddfbc593d'
+         'dc03222110a2c4c5755a1d8b3e3ec744'
+         '8079a35ed2df242046e142c8c2dd036d'
+         '1cc8a078a4637c31c780b4d08aa278a0'
+         '25d8f6983c9a616946848c0e075a949c'
+         '1d4477026533efaa0358a40855d50a83')
 
 prepare() {
   cd "${srcdir}/${_srcname}"
 
   # ALARM patches
   git apply ../0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
+  git apply ../0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch
 
   cat "${srcdir}/config" > ./.config
 
@@ -109,6 +114,10 @@ _package() {
     -e "s|ALL_kver=.*|ALL_kver=\"${_kernver}\"|" \
     -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
 
+  # install pacman hook for initramfs regeneration
+  sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
+    install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
+
   # remove build and source links
   rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
   # remove the firmware
diff --git a/core/linux-aarch64-rc/config b/core/linux-aarch64-rc/config
index d615fac58..4ee7a41b0 100644
--- a/core/linux-aarch64-rc/config
+++ b/core/linux-aarch64-rc/config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm64 4.13.0-rc3-2 Kernel Configuration
+# Linux/arm64 4.13.0-rc4-1 Kernel Configuration
 #
 CONFIG_ARM64=y
 CONFIG_64BIT=y
@@ -2477,6 +2477,7 @@ CONFIG_NET_VENDOR_SYNOPSYS=y
 # CONFIG_HIPPI is not set
 CONFIG_NET_SB1000=y
 CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
 CONFIG_MDIO_BCM_UNIMAC=m
 CONFIG_MDIO_BITBANG=m
 CONFIG_MDIO_BUS_MUX=m
@@ -6490,7 +6491,6 @@ CONFIG_ARCH_TEGRA_210_SOC=y
 CONFIG_SOC_TEGRA_FLOWCTRL=y
 CONFIG_SOC_TEGRA_PMC=y
 # CONFIG_SOC_TI is not set
-# CONFIG_SOC_ZTE is not set
 CONFIG_PM_DEVFREQ=y
 
 #
diff --git a/core/linux-aarch64-rc/linux-aarch64-rc.install b/core/linux-aarch64-rc/linux-aarch64-rc.install
index 19d002c20..b4b3a5aea 100644
--- a/core/linux-aarch64-rc/linux-aarch64-rc.install
+++ b/core/linux-aarch64-rc/linux-aarch64-rc.install
@@ -1,15 +1,13 @@
 # arg 1:  the new package version
 # arg 2:  the old package version
 
-KERNEL_NAME=-armv8-rc
-KERNEL_VERSION=4.3.rc5-1-ARCH
+KERNEL_NAME=-aarch64-rc
+KERNEL_VERSION=4.13.0-rc3-2-ARCH
 
 post_install () {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
   depmod ${KERNEL_VERSION}
-  echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
-  mkinitcpio -p linux${KERNEL_NAME}
 }
 
 post_upgrade() {
@@ -20,8 +18,6 @@ post_upgrade() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
   depmod ${KERNEL_VERSION}
-  echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
-  mkinitcpio -p linux${KERNEL_NAME}
 }
 
 post_remove() {