diff --git a/core/linux-aarch64/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/core/linux-aarch64/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch index bf8f54414..7595dc9bf 100644 --- a/core/linux-aarch64/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch +++ b/core/linux-aarch64/0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch @@ -1,7 +1,7 @@ -From 30d7acb45632070aa9929baa68aff42a5fcb1643 Mon Sep 17 00:00:00 2001 +From abfd383d5c0db4e6f5ab022c047577bef0c8e20b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 18 Feb 2014 01:43:50 -0300 -Subject: [PATCH 1/4] net/smsc95xx: Allow mac address to be set as a parameter +Subject: [PATCH 1/5] net/smsc95xx: Allow mac address to be set as a parameter --- drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/core/linux-aarch64/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch b/core/linux-aarch64/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch index f995c25e1..b4a4105f7 100644 --- a/core/linux-aarch64/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch +++ b/core/linux-aarch64/0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch @@ -1,7 +1,7 @@ -From 08b91100c5dc3f294ace4d92d5c29ce8b2ff2e6d Mon Sep 17 00:00:00 2001 +From 08528e4e847e16505bcb03e5d16bcd5081355dc2 Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Fri, 21 Jul 2017 16:30:59 +0800 -Subject: [PATCH 2/4] arm64: dts: rockchip: enable sdmmc controller on +Subject: [PATCH 2/5] arm64: dts: rockchip: enable sdmmc controller on rk3399-firefly This allows basic support for SD highspeed cards but no UHS-I mode diff --git a/core/linux-aarch64/0003-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch b/core/linux-aarch64/0003-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch index e18166ccf..12e10d1f9 100644 --- a/core/linux-aarch64/0003-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch +++ b/core/linux-aarch64/0003-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch @@ -1,7 +1,7 @@ -From 05a27b58acc1caa8c4f80bc9dd46c100abd35244 Mon Sep 17 00:00:00 2001 +From 6ee0fca3c2a96ec7f328ea6ca9000008dc5a3ee6 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Mon, 7 Aug 2017 19:34:57 -0600 -Subject: [PATCH 3/4] arm64: dts: rockchip: disable pwm0 on rk3399-firefly +Subject: [PATCH 3/5] arm64: dts: rockchip: disable pwm0 on rk3399-firefly Workaround for intermittent boot hangs due to pwm0 probe disabling the PWM clock. --- diff --git a/core/linux-aarch64/0004-Revert-arm64-dts-qcom-Collapse-usb-support-into-one-.patch b/core/linux-aarch64/0004-Revert-arm64-dts-qcom-Collapse-usb-support-into-one-.patch deleted file mode 100644 index 7e41197e8..000000000 --- a/core/linux-aarch64/0004-Revert-arm64-dts-qcom-Collapse-usb-support-into-one-.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 0c9149a1813b56d043fa3db8f8591f0b2677ee50 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Thu, 17 Aug 2017 21:18:11 -0600 -Subject: [PATCH 4/4] Revert "arm64: dts: qcom: Collapse usb support into one - node" - -This reverts commit ed75d6a969056cc8f5dd2df3af6c75b792b9116b. ---- - arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 34 ++++++++--------- - arch/arm64/boot/dts/qcom/msm8916.dtsi | 62 ++++++++++++++++--------------- - 2 files changed, 49 insertions(+), 47 deletions(-) - -diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi -index bd310ac1967a..f326f4fb4d72 100644 ---- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi -+++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi -@@ -215,16 +215,22 @@ - usb@78d9000 { - extcon = <&usb_id>, <&usb_id>; - status = "okay"; -- adp-disable; -- hnp-disable; -- srp-disable; -- ulpi { -- phy { -- v1p8-supply = <&pm8916_l7>; -- v3p3-supply = <&pm8916_l13>; -- extcon = <&usb_id>; -- }; -- }; -+ }; -+ -+ ehci@78d9000 { -+ status = "okay"; -+ }; -+ -+ phy@78d9000 { -+ v1p8-supply = <&pm8916_l7>; -+ v3p3-supply = <&pm8916_l13>; -+ vddcx-supply = <&pm8916_s1>; -+ extcon = <&usb_id>, <&usb_id>; -+ dr_mode = "otg"; -+ status = "okay"; -+ switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&usb_sw_sel_pm>; - }; - - lpass@07708000 { -@@ -342,14 +348,6 @@ - pinctrl-0 = <&usb_id_default>; - }; - -- usb-switch { -- compatible = "toshiba,tc7usb40mu"; -- switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; -- extcon = <&usb_id>; -- pinctrl-names = "default"; -- pinctrl-0 = <&usb_sw_sel_pm>; -- }; -- - hdmi-out { - compatible = "hdmi-connector"; - type = "a"; -diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi -index 039991f80831..17691abea608 100644 ---- a/arch/arm64/boot/dts/qcom/msm8916.dtsi -+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi -@@ -546,40 +546,44 @@ - status = "disabled"; - }; - -- otg: usb@78d9000 { -+ usb_dev: usb@78d9000 { - compatible = "qcom,ci-hdrc"; -- reg = <0x78d9000 0x200>, -- <0x78d9200 0x200>; -+ reg = <0x78d9000 0x400>; -+ dr_mode = "peripheral"; -+ interrupts = ; -+ usb-phy = <&usb_otg>; -+ status = "disabled"; -+ }; -+ -+ usb_host: ehci@78d9000 { -+ compatible = "qcom,ehci-host"; -+ reg = <0x78d9000 0x400>; -+ interrupts = ; -+ usb-phy = <&usb_otg>; -+ status = "disabled"; -+ }; -+ -+ usb_otg: phy@78d9000 { -+ compatible = "qcom,usb-otg-snps"; -+ reg = <0x78d9000 0x400>; - interrupts = , - ; -+ -+ qcom,vdd-levels = <500000 1000000 1320000>; -+ qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>; -+ dr_mode = "peripheral"; -+ qcom,otg-control = <2>; // PMIC -+ qcom,manual-pullup; -+ - clocks = <&gcc GCC_USB_HS_AHB_CLK>, -- <&gcc GCC_USB_HS_SYSTEM_CLK>; -- clock-names = "iface", "core"; -- assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>; -- assigned-clock-rates = <80000000>; -- resets = <&gcc GCC_USB_HS_BCR>; -- reset-names = "core"; -- phy_type = "ulpi"; -- dr_mode = "otg"; -- ahb-burst-config = <0>; -- phy-names = "usb-phy"; -- phys = <&usb_hs_phy>; -- status = "disabled"; -- #reset-cells = <1>; -+ <&gcc GCC_USB_HS_SYSTEM_CLK>, -+ <&gcc GCC_USB2A_PHY_SLEEP_CLK>; -+ clock-names = "iface", "core", "sleep"; - -- ulpi { -- usb_hs_phy: phy { -- compatible = "qcom,usb-hs-phy-msm8916", -- "qcom,usb-hs-phy"; -- #phy-cells = <0>; -- clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>; -- clock-names = "ref", "sleep"; -- resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>; -- reset-names = "phy", "por"; -- qcom,init-seq = /bits/ 8 <0x0 0x44 -- 0x1 0x6b 0x2 0x24 0x3 0x13>; -- }; -- }; -+ resets = <&gcc GCC_USB2A_PHY_BCR>, -+ <&gcc GCC_USB_HS_BCR>; -+ reset-names = "phy", "link"; -+ status = "disabled"; - }; - - intc: interrupt-controller@b000000 { --- -2.14.1 - diff --git a/core/linux-aarch64/0004-arm64-dts-qcom-Force-host-mode-for-USB-on-apq8016-sb.patch b/core/linux-aarch64/0004-arm64-dts-qcom-Force-host-mode-for-USB-on-apq8016-sb.patch new file mode 100644 index 000000000..5af98de0b --- /dev/null +++ b/core/linux-aarch64/0004-arm64-dts-qcom-Force-host-mode-for-USB-on-apq8016-sb.patch @@ -0,0 +1,89 @@ +From b0fcd75614be1f97c85cc09dcbbfe7f76bf79904 Mon Sep 17 00:00:00 2001 +From: Stephen Boyd +Date: Thu, 13 Jul 2017 19:20:42 -0700 +Subject: [PATCH 4/5] arm64: dts: qcom: Force host mode for USB on apq8016-sbc + +Commit ed75d6a96905 ("arm64: dts: qcom: Collapse usb support into +one node") breaks host mode support on apq8016-sbc boards. This +is because the mux driver (tc7usb40mu) hasn't been merged. +Without that driver, we can't toggle the GPIO going to the mux to +route out the D+/D- lines to the USB hub that's on the board. + +One solution would be to totally revert this change, but that +opens us up to other problems when two USB drivers are operating +the same hardware block at the same time. Let's modify the DT so +that the USB controller is always in host mode and connected to +the hub so that things like USB keyboards and mouses work. This +is the mode that most people prefer anyway with these devices. We +also delete the usb-switch node because the binding was never +accepted upstream. + +In the future, we can add muxing support and then update the DT +to support both modes at runtime. Patches to support this are +already on the mailing list. + +Fixes: ed75d6a96905 ("arm64: dts: qcom: Collapse usb support into one node") +Reported-by: Rob Clark +Signed-off-by: Stephen Boyd +Signed-off-by: Andy Gross +--- + arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 1 + + arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 15 +++++---------- + 2 files changed, 6 insertions(+), 10 deletions(-) + +diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi +index d94640812194..790b7775b901 100644 +--- a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi ++++ b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi +@@ -17,6 +17,7 @@ + function = PMIC_GPIO_FUNC_NORMAL; + power-source = ; + input-disable; ++ output-high; + }; + }; + +diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +index bd310ac1967a..efd53ed82a58 100644 +--- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi ++++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +@@ -213,11 +213,14 @@ + }; + + usb@78d9000 { +- extcon = <&usb_id>, <&usb_id>; ++ extcon = <&usb_id>; + status = "okay"; + adp-disable; + hnp-disable; + srp-disable; ++ dr_mode = "host"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&usb_sw_sel_pm>; + ulpi { + phy { + v1p8-supply = <&pm8916_l7>; +@@ -337,19 +340,11 @@ + + usb_id: usb-id { + compatible = "linux,extcon-usb-gpio"; +- id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>; ++ vbus-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_id_default>; + }; + +- usb-switch { +- compatible = "toshiba,tc7usb40mu"; +- switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; +- extcon = <&usb_id>; +- pinctrl-names = "default"; +- pinctrl-0 = <&usb_sw_sel_pm>; +- }; +- + hdmi-out { + compatible = "hdmi-connector"; + type = "a"; +-- +2.14.1 + diff --git a/core/linux-aarch64/0005-usb-chipidea-msm-ci_hdrc_msm_probe-missing-of_node_g.patch b/core/linux-aarch64/0005-usb-chipidea-msm-ci_hdrc_msm_probe-missing-of_node_g.patch new file mode 100644 index 000000000..d60de3338 --- /dev/null +++ b/core/linux-aarch64/0005-usb-chipidea-msm-ci_hdrc_msm_probe-missing-of_node_g.patch @@ -0,0 +1,40 @@ +From 76dc46e2b70d6d280529feb7f34df5225bb37926 Mon Sep 17 00:00:00 2001 +From: Frank Rowand +Date: Tue, 18 Jul 2017 16:31:28 -0700 +Subject: [PATCH 5/5] usb: chipidea: msm: ci_hdrc_msm_probe() missing + of_node_get() + +Boot fails for qcom-apq8074-dragonboard on 4.13-rc1 with error: +OF: ERROR: Bad of_node_put() on /soc/usb@f9a55000 + +The error will occur if the configuration is set to: + CONFIG_OF_OVERLAY y + CONFIG_OF_UNITTEST y + CONFIG_OF_DYNAMIC y + CONFIG_OF_RESOLVE y + +If CONFIG_OF_DYNAMIC is enabled then of_node_release() detects an +attempt to release a node that is still attached to the device tree. + +Signed-off-by: Frank Rowand +Signed-off-by: Peter Chen +--- + drivers/usb/chipidea/ci_hdrc_msm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c +index 0bdfcdcbf7a5..bb626120296f 100644 +--- a/drivers/usb/chipidea/ci_hdrc_msm.c ++++ b/drivers/usb/chipidea/ci_hdrc_msm.c +@@ -251,7 +251,7 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev) + if (ret) + goto err_mux; + +- ulpi_node = of_find_node_by_name(pdev->dev.of_node, "ulpi"); ++ ulpi_node = of_find_node_by_name(of_node_get(pdev->dev.of_node), "ulpi"); + if (ulpi_node) { + phy_node = of_get_next_available_child(ulpi_node, NULL); + ci->hsic = of_device_is_compatible(phy_node, "qcom,usb-hsic-phy"); +-- +2.14.1 + diff --git a/core/linux-aarch64/PKGBUILD b/core/linux-aarch64/PKGBUILD index e16e4ffda..e7e59fdf9 100644 --- a/core/linux-aarch64/PKGBUILD +++ b/core/linux-aarch64/PKGBUILD @@ -8,7 +8,7 @@ _srcname=linux-4.13 _kernelname=${pkgbase#linux} _desc="AArch64 multi-platform" pkgver=4.13.0 -pkgrel=1 +pkgrel=2 arch=('aarch64') url="http://www.kernel.org/" license=('GPL2') @@ -19,15 +19,17 @@ source=("http://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz" '0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch' '0002-arm64-dts-rockchip-enable-sdmmc-controller-on-rk3399.patch' '0003-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch' - '0004-Revert-arm64-dts-qcom-Collapse-usb-support-into-one-.patch' + '0004-arm64-dts-qcom-Force-host-mode-for-USB-on-apq8016-sb.patch' + '0005-usb-chipidea-msm-ci_hdrc_msm_probe-missing-of_node_g.patch' 'config' 'linux.preset' '99-linux.hook') md5sums=('ab1a2abc6f37b752dd2595338bec4e78' - '7062ef1caf651c728e2710df877cdc27' - 'c98c7bf062b6da22eaedd94c7c565397' - '17fcc7db40486466de2dbb8560473206' - 'c4da0e330c9aa3cdf99c4f642cadefc6' + '8db7297a3275eefc48b4e8c66cd16d3b' + '1e677ec7390244e3082ae39d6c370e7d' + '69fa0e6241343ea0993ae179c9c13bb6' + 'bba80391517bacdeb4d7ccfec2c86e34' + '3142ca3948f4f3b0ab74f267e1be09f4' '1e260c74fa12632a6c0def911f50d1bd' 'b5ef67d6086e20de7b82265f562f88b1' '1d4477026533efaa0358a40855d50a83') @@ -42,7 +44,8 @@ prepare() { 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 git apply ../0003-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch - git apply ../0004-Revert-arm64-dts-qcom-Collapse-usb-support-into-one-.patch + git apply ../0004-arm64-dts-qcom-Force-host-mode-for-USB-on-apq8016-sb.patch + git apply ../0005-usb-chipidea-msm-ci_hdrc_msm_probe-missing-of_node_g.patch cat "${srcdir}/config" > ./.config