From b26e34214c3d3aea9792c950d5e7fdb5bc5412b1 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 2 Apr 2017 10:29:55 +0200 Subject: [PATCH] kernel: update kernel 4.9 to 4.9.20 Signed-off-by: Hauke Mehrtens --- include/kernel-version.mk | 4 +- ...de-for-using-the-closed-firmware-for.patch | 2 +- ...ination-of-the-initial-scan-for-bran.patch | 68 ---------------- ...ort-for-rendering-with-ETC1-textures.patch | 4 +- ...ime-autosuspend-to-avoid-thrashing-V.patch | 78 ------------------- ...mtd-device-named-ubi-or-data-on-boot.patch | 6 +- .../patches-4.9/901-debloat_sock_diag.patch | 2 +- .../patches-4.9/902-debloat_proc.patch | 2 +- .../0063-1-ipq806x-tsens-driver.patch | 15 +--- ...sens-support-configurable-interrupts.patch | 54 +++++-------- ...e-scm_call-to-route-GPIO-irq-to-Apps.patch | 6 +- ...4-MIPS-ralink-add-MT7621-pcie-driver.patch | 10 +-- 12 files changed, 38 insertions(+), 213 deletions(-) delete mode 100644 target/linux/brcm2708/patches-4.9/950-0162-drm-vc4-Fix-termination-of-the-initial-scan-for-bran.patch delete mode 100644 target/linux/brcm2708/patches-4.9/950-0164-drm-vc4-Use-runtime-autosuspend-to-avoid-thrashing-V.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 587c25e52e4..61cc5fadff8 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -4,11 +4,11 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .43 LINUX_VERSION-4.4 = .56 -LINUX_VERSION-4.9 = .17 +LINUX_VERSION-4.9 = .20 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c LINUX_KERNEL_HASH-4.4.56 = 55181e24869e4b550ef756eecd1ab4f6774228c457f4830e9e779c6db4c2a2b6 -LINUX_KERNEL_HASH-4.9.17 = 9095c16550ebae9cbe0979a706116d95fbd8d270c1068857c4a8788de0f9ac7f +LINUX_KERNEL_HASH-4.9.20 = 48660806dd32fb8dcbcf5932291bf6cc7d29240070372230871e0f56fea81341 ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch b/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch index 789f0013a5b..f95d5aab16d 100644 --- a/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch +++ b/target/linux/brcm2708/patches-4.9/950-0105-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch @@ -62,7 +62,7 @@ Signed-off-by: Eric Anholt --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -292,6 +292,7 @@ static struct platform_driver *const com +@@ -295,6 +295,7 @@ static struct platform_driver *const com &vc4_dpi_driver, &vc4_hvs_driver, &vc4_crtc_driver, diff --git a/target/linux/brcm2708/patches-4.9/950-0162-drm-vc4-Fix-termination-of-the-initial-scan-for-bran.patch b/target/linux/brcm2708/patches-4.9/950-0162-drm-vc4-Fix-termination-of-the-initial-scan-for-bran.patch deleted file mode 100644 index 3326dca659c..00000000000 --- a/target/linux/brcm2708/patches-4.9/950-0162-drm-vc4-Fix-termination-of-the-initial-scan-for-bran.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 57b0774967d7ea8d4173f82387100a84e4ba05d8 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Thu, 20 Oct 2016 16:48:12 -0700 -Subject: [PATCH] drm/vc4: Fix termination of the initial scan for branch - targets. - -The loop is scanning until the original max_ip (size of the BO), but -we want to not examine any code after the PROG_END's delay slots. -There was a block trying to do that, except that we had some early -continue statements if the signal wasn't a PROG_END or a BRANCH. - -The failure mode would be that a valid shader is rejected because some -undefined memory after the PROG_END slots is parsed as a branch and -the rest of its setup is illegal. I haven't seen this in the wild, -but valgrind was complaining when about this up in the userland -simulator mode. - -Signed-off-by: Eric Anholt -(cherry picked from commit 457e67a728696c4f8e6423c64e93def50530db9a) ---- - drivers/gpu/drm/vc4/vc4_validate_shaders.c | 19 ++++++++----------- - 1 file changed, 8 insertions(+), 11 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_validate_shaders.c -+++ b/drivers/gpu/drm/vc4/vc4_validate_shaders.c -@@ -608,9 +608,7 @@ static bool - vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - { - uint32_t max_branch_target = 0; -- bool found_shader_end = false; - int ip; -- int shader_end_ip = 0; - int last_branch = -2; - - for (ip = 0; ip < validation_state->max_ip; ip++) { -@@ -621,8 +619,13 @@ vc4_validate_branches(struct vc4_shader_ - uint32_t branch_target_ip; - - if (sig == QPU_SIG_PROG_END) { -- shader_end_ip = ip; -- found_shader_end = true; -+ /* There are two delay slots after program end is -+ * signaled that are still executed, then we're -+ * finished. validation_state->max_ip is the -+ * instruction after the last valid instruction in the -+ * program. -+ */ -+ validation_state->max_ip = ip + 3; - continue; - } - -@@ -676,15 +679,9 @@ vc4_validate_branches(struct vc4_shader_ - } - set_bit(after_delay_ip, validation_state->branch_targets); - max_branch_target = max(max_branch_target, after_delay_ip); -- -- /* There are two delay slots after program end is signaled -- * that are still executed, then we're finished. -- */ -- if (found_shader_end && ip == shader_end_ip + 2) -- break; - } - -- if (max_branch_target > shader_end_ip) { -+ if (max_branch_target > validation_state->max_ip - 3) { - DRM_ERROR("Branch landed after QPU_SIG_PROG_END"); - return false; - } diff --git a/target/linux/brcm2708/patches-4.9/950-0163-drm-vc4-Add-support-for-rendering-with-ETC1-textures.patch b/target/linux/brcm2708/patches-4.9/950-0163-drm-vc4-Add-support-for-rendering-with-ETC1-textures.patch index 2b815787689..bb472b34b22 100644 --- a/target/linux/brcm2708/patches-4.9/950-0163-drm-vc4-Add-support-for-rendering-with-ETC1-textures.patch +++ b/target/linux/brcm2708/patches-4.9/950-0163-drm-vc4-Add-support-for-rendering-with-ETC1-textures.patch @@ -19,8 +19,8 @@ Signed-off-by: Eric Anholt --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -78,6 +78,7 @@ static int vc4_get_param_ioctl(struct dr - pm_runtime_put(&vc4->v3d->pdev->dev); +@@ -81,6 +81,7 @@ static int vc4_get_param_ioctl(struct dr + pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); break; case DRM_VC4_PARAM_SUPPORTS_BRANCHES: + case DRM_VC4_PARAM_SUPPORTS_ETC1: diff --git a/target/linux/brcm2708/patches-4.9/950-0164-drm-vc4-Use-runtime-autosuspend-to-avoid-thrashing-V.patch b/target/linux/brcm2708/patches-4.9/950-0164-drm-vc4-Use-runtime-autosuspend-to-avoid-thrashing-V.patch deleted file mode 100644 index f6d738d9411..00000000000 --- a/target/linux/brcm2708/patches-4.9/950-0164-drm-vc4-Use-runtime-autosuspend-to-avoid-thrashing-V.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 936dc8b00ccd5072c5d610b97199402275bfdf26 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Fri, 4 Nov 2016 15:58:38 -0700 -Subject: [PATCH] drm/vc4: Use runtime autosuspend to avoid thrashing V3D power - state. - -The pm_runtime_put() we were using immediately released power on the -device, which meant that we were generally turning the device off and -on once per frame. In many profiles I've looked at, that added up to -about 1% of CPU time, but this could get worse in the case of frequent -rendering and readback (as may happen in X rendering). By keeping the -device on until we've been idle for a couple of frames, we drop the -overhead of runtime PM down to sub-.1%. - -Signed-off-by: Eric Anholt -(cherry picked from commit 3a62234680d86efa0239665ed8a0e908f1aef147) ---- - drivers/gpu/drm/vc4/vc4_drv.c | 9 ++++++--- - drivers/gpu/drm/vc4/vc4_gem.c | 6 ++++-- - drivers/gpu/drm/vc4/vc4_v3d.c | 2 ++ - 3 files changed, 12 insertions(+), 5 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_drv.c -+++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -61,21 +61,24 @@ static int vc4_get_param_ioctl(struct dr - if (ret < 0) - return ret; - args->value = V3D_READ(V3D_IDENT0); -- pm_runtime_put(&vc4->v3d->pdev->dev); -+ pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); -+ pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); - break; - case DRM_VC4_PARAM_V3D_IDENT1: - ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); - if (ret < 0) - return ret; - args->value = V3D_READ(V3D_IDENT1); -- pm_runtime_put(&vc4->v3d->pdev->dev); -+ pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); -+ pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); - break; - case DRM_VC4_PARAM_V3D_IDENT2: - ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); - if (ret < 0) - return ret; - args->value = V3D_READ(V3D_IDENT2); -- pm_runtime_put(&vc4->v3d->pdev->dev); -+ pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); -+ pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); - break; - case DRM_VC4_PARAM_SUPPORTS_BRANCHES: - case DRM_VC4_PARAM_SUPPORTS_ETC1: ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -711,8 +711,10 @@ vc4_complete_exec(struct drm_device *dev - } - - mutex_lock(&vc4->power_lock); -- if (--vc4->power_refcount == 0) -- pm_runtime_put(&vc4->v3d->pdev->dev); -+ if (--vc4->power_refcount == 0) { -+ pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); -+ pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); -+ } - mutex_unlock(&vc4->power_lock); - - kfree(exec); ---- a/drivers/gpu/drm/vc4/vc4_v3d.c -+++ b/drivers/gpu/drm/vc4/vc4_v3d.c -@@ -222,6 +222,8 @@ static int vc4_v3d_bind(struct device *d - return ret; - } - -+ pm_runtime_use_autosuspend(dev); -+ pm_runtime_set_autosuspend_delay(dev, 40); /* a little over 2 frames. */ - pm_runtime_enable(dev); - - return 0; diff --git a/target/linux/generic/patches-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/patches-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch index 52a208aed3e..e4f92379df3 100644 --- a/target/linux/generic/patches-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch +++ b/target/linux/generic/patches-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch @@ -9,10 +9,8 @@ Signed-off-by: Daniel Golle drivers/mtd/ubi/build.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) -Index: linux-4.9.17/drivers/mtd/ubi/build.c -=================================================================== ---- linux-4.9.17.orig/drivers/mtd/ubi/build.c -+++ linux-4.9.17/drivers/mtd/ubi/build.c +--- a/drivers/mtd/ubi/build.c ++++ b/drivers/mtd/ubi/build.c @@ -1212,6 +1212,49 @@ static struct mtd_info * __init open_mtd return mtd; } diff --git a/target/linux/generic/patches-4.9/901-debloat_sock_diag.patch b/target/linux/generic/patches-4.9/901-debloat_sock_diag.patch index dec8d2eeeca..237bcea88b7 100644 --- a/target/linux/generic/patches-4.9/901-debloat_sock_diag.patch +++ b/target/linux/generic/patches-4.9/901-debloat_sock_diag.patch @@ -25,7 +25,7 @@ obj-$(CONFIG_PROC_FS) += net-procfs.o --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -1455,9 +1455,11 @@ void sk_destruct(struct sock *sk) +@@ -1460,9 +1460,11 @@ void sk_destruct(struct sock *sk) static void __sk_free(struct sock *sk) { diff --git a/target/linux/generic/patches-4.9/902-debloat_proc.patch b/target/linux/generic/patches-4.9/902-debloat_proc.patch index aa85c6b9b87..37ce4c278ee 100644 --- a/target/linux/generic/patches-4.9/902-debloat_proc.patch +++ b/target/linux/generic/patches-4.9/902-debloat_proc.patch @@ -173,7 +173,7 @@ goto err; --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3083,6 +3083,8 @@ static __net_initdata struct pernet_oper +@@ -3089,6 +3089,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/ipq806x/patches-4.9/0063-1-ipq806x-tsens-driver.patch b/target/linux/ipq806x/patches-4.9/0063-1-ipq806x-tsens-driver.patch index 691f32c5b6d..685b0c3ce18 100644 --- a/target/linux/ipq806x/patches-4.9/0063-1-ipq806x-tsens-driver.patch +++ b/target/linux/ipq806x/patches-4.9/0063-1-ipq806x-tsens-driver.patch @@ -32,8 +32,6 @@ Signed-off-by: Rajith Cherian 5 files changed, 558 insertions(+), 2 deletions(-) create mode 100644 drivers/thermal/qcom/tsens-ipq8064.c -diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.txt b/Documentation/devicetree/bindings/thermal/qcom-tsens.txt -index 292ed89..f4a76f6 100644 --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.txt +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.txt @@ -5,6 +5,7 @@ Required properties: @@ -44,8 +42,6 @@ index 292ed89..f4a76f6 100644 - reg: Address range of the thermal registers - #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description. -diff --git a/drivers/thermal/qcom/Makefile b/drivers/thermal/qcom/Makefile -index 2cc2193..cc07cf4 100644 --- a/drivers/thermal/qcom/Makefile +++ b/drivers/thermal/qcom/Makefile @@ -1,2 +1,3 @@ @@ -53,9 +49,6 @@ index 2cc2193..cc07cf4 100644 -qcom_tsens-y += tsens.o tsens-common.o tsens-8916.o tsens-8974.o tsens-8960.o tsens-8996.o +qcom_tsens-y += tsens.o tsens-common.o tsens-8916.o tsens-8974.o tsens-8960.o tsens-8996.o \ + tsens-ipq8064.o -diff --git a/drivers/thermal/qcom/tsens-ipq8064.c b/drivers/thermal/qcom/tsens-ipq8064.c -new file mode 100644 -index 0000000..c52888f --- /dev/null +++ b/drivers/thermal/qcom/tsens-ipq8064.c @@ -0,0 +1,551 @@ @@ -610,11 +603,9 @@ index 0000000..c52888f + .num_sensors = 11, + .ops = &ops_ipq8064, +}; -diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c -index 3f9fe6a..2d25593 100644 --- a/drivers/thermal/qcom/tsens.c +++ b/drivers/thermal/qcom/tsens.c -@@ -72,6 +72,9 @@ static const struct of_device_id tsens_table[] = { +@@ -72,6 +72,9 @@ static const struct of_device_id tsens_t }, { .compatible = "qcom,msm8996-tsens", .data = &data_8996, @@ -624,11 +615,9 @@ index 3f9fe6a..2d25593 100644 }, {} }; -diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h -index 911c197..31279a2 100644 --- a/drivers/thermal/qcom/tsens.h +++ b/drivers/thermal/qcom/tsens.h -@@ -89,6 +89,6 @@ void compute_intercept_slope(struct tsens_device *, u32 *, u32 *, u32); +@@ -89,6 +89,6 @@ void compute_intercept_slope(struct tsen int init_common(struct tsens_device *); int get_temp_common(struct tsens_device *, int, int *); diff --git a/target/linux/ipq806x/patches-4.9/0063-2-tsens-support-configurable-interrupts.patch b/target/linux/ipq806x/patches-4.9/0063-2-tsens-support-configurable-interrupts.patch index de9a8f81699..ca989704981 100644 --- a/target/linux/ipq806x/patches-4.9/0063-2-tsens-support-configurable-interrupts.patch +++ b/target/linux/ipq806x/patches-4.9/0063-2-tsens-support-configurable-interrupts.patch @@ -21,8 +21,6 @@ Signed-off-by: Rajith Cherian include/linux/thermal.h | 14 +++++ 6 files changed, 162 insertions(+), 17 deletions(-) -diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.txt b/Documentation/devicetree/bindings/thermal/qcom-tsens.txt -index f4a76f6..7c0a6a7 100644 --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.txt +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.txt @@ -12,11 +12,15 @@ Required properties: @@ -41,11 +39,9 @@ index f4a76f6..7c0a6a7 100644 + interrupts = <0 178 0>; #thermal-sensor-cells = <1>; }; -diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c -index d04ec3b..d83697e 100644 --- a/drivers/thermal/of-thermal.c +++ b/drivers/thermal/of-thermal.c -@@ -95,7 +95,7 @@ static int of_thermal_get_temp(struct thermal_zone_device *tz, +@@ -95,7 +95,7 @@ static int of_thermal_get_temp(struct th { struct __thermal_zone *data = tz->devdata; @@ -54,7 +50,7 @@ index d04ec3b..d83697e 100644 return -EINVAL; return data->ops->get_temp(data->sensor_data, temp); -@@ -106,7 +106,8 @@ static int of_thermal_set_trips(struct thermal_zone_device *tz, +@@ -106,7 +106,8 @@ static int of_thermal_set_trips(struct t { struct __thermal_zone *data = tz->devdata; @@ -64,7 +60,7 @@ index d04ec3b..d83697e 100644 return -EINVAL; return data->ops->set_trips(data->sensor_data, low, high); -@@ -192,6 +193,9 @@ static int of_thermal_set_emul_temp(struct thermal_zone_device *tz, +@@ -192,6 +193,9 @@ static int of_thermal_set_emul_temp(stru { struct __thermal_zone *data = tz->devdata; @@ -74,7 +70,7 @@ index d04ec3b..d83697e 100644 return data->ops->set_emul_temp(data->sensor_data, temp); } -@@ -200,7 +204,7 @@ static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip, +@@ -200,7 +204,7 @@ static int of_thermal_get_trend(struct t { struct __thermal_zone *data = tz->devdata; @@ -83,7 +79,7 @@ index d04ec3b..d83697e 100644 return -EINVAL; return data->ops->get_trend(data->sensor_data, trip, trend); -@@ -286,7 +290,9 @@ static int of_thermal_set_mode(struct thermal_zone_device *tz, +@@ -286,7 +290,9 @@ static int of_thermal_set_mode(struct th mutex_unlock(&tz->lock); data->mode = mode; @@ -94,7 +90,7 @@ index d04ec3b..d83697e 100644 return 0; } -@@ -296,7 +302,8 @@ static int of_thermal_get_trip_type(struct thermal_zone_device *tz, int trip, +@@ -296,7 +302,8 @@ static int of_thermal_get_trip_type(stru { struct __thermal_zone *data = tz->devdata; @@ -104,7 +100,7 @@ index d04ec3b..d83697e 100644 return -EDOM; *type = data->trips[trip].type; -@@ -304,12 +311,39 @@ static int of_thermal_get_trip_type(struct thermal_zone_device *tz, int trip, +@@ -304,12 +311,39 @@ static int of_thermal_get_trip_type(stru return 0; } @@ -145,7 +141,7 @@ index d04ec3b..d83697e 100644 return -EDOM; *temp = data->trips[trip].temperature; -@@ -322,7 +356,8 @@ static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip, +@@ -322,7 +356,8 @@ static int of_thermal_set_trip_temp(stru { struct __thermal_zone *data = tz->devdata; @@ -155,7 +151,7 @@ index d04ec3b..d83697e 100644 return -EDOM; if (data->ops->set_trip_temp) { -@@ -344,7 +379,8 @@ static int of_thermal_get_trip_hyst(struct thermal_zone_device *tz, int trip, +@@ -344,7 +379,8 @@ static int of_thermal_get_trip_hyst(stru { struct __thermal_zone *data = tz->devdata; @@ -165,7 +161,7 @@ index d04ec3b..d83697e 100644 return -EDOM; *hyst = data->trips[trip].hysteresis; -@@ -357,7 +393,8 @@ static int of_thermal_set_trip_hyst(struct thermal_zone_device *tz, int trip, +@@ -357,7 +393,8 @@ static int of_thermal_set_trip_hyst(stru { struct __thermal_zone *data = tz->devdata; @@ -175,7 +171,7 @@ index d04ec3b..d83697e 100644 return -EDOM; /* thermal framework should take care of data->mask & (1 << trip) */ -@@ -432,6 +469,9 @@ thermal_zone_of_add_sensor(struct device_node *zone, +@@ -432,6 +469,9 @@ thermal_zone_of_add_sensor(struct device if (ops->set_emul_temp) tzd->ops->set_emul_temp = of_thermal_set_emul_temp; @@ -185,7 +181,7 @@ index d04ec3b..d83697e 100644 mutex_unlock(&tzd->lock); return tzd; -@@ -726,7 +766,10 @@ static const char * const trip_types[] = { +@@ -726,7 +766,10 @@ static const char * const trip_types[] = [THERMAL_TRIP_ACTIVE] = "active", [THERMAL_TRIP_PASSIVE] = "passive", [THERMAL_TRIP_HOT] = "hot", @@ -197,11 +193,9 @@ index d04ec3b..d83697e 100644 }; /** -diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c -index 2d25593..ac68af3 100644 --- a/drivers/thermal/qcom/tsens.c +++ b/drivers/thermal/qcom/tsens.c -@@ -31,7 +31,7 @@ static int tsens_get_temp(void *data, int *temp) +@@ -31,7 +31,7 @@ static int tsens_get_temp(void *data, in static int tsens_get_trend(void *p, int trip, enum thermal_trend *trend) { @@ -210,7 +204,7 @@ index 2d25593..ac68af3 100644 struct tsens_device *tmdev = s->tmdev; if (tmdev->ops->get_trend) -@@ -40,9 +40,10 @@ static int tsens_get_trend(void *p, int trip, enum thermal_trend *trend) +@@ -40,9 +40,10 @@ static int tsens_get_trend(void *p, int return -ENOTSUPP; } @@ -223,7 +217,7 @@ index 2d25593..ac68af3 100644 if (tmdev->ops && tmdev->ops->suspend) return tmdev->ops->suspend(tmdev); -@@ -50,9 +51,10 @@ static int __maybe_unused tsens_suspend(struct device *dev) +@@ -50,9 +51,10 @@ static int __maybe_unused tsens_suspend return 0; } @@ -236,7 +230,7 @@ index 2d25593..ac68af3 100644 if (tmdev->ops && tmdev->ops->resume) return tmdev->ops->resume(tmdev); -@@ -60,6 +62,30 @@ static int __maybe_unused tsens_resume(struct device *dev) +@@ -60,6 +62,30 @@ static int __maybe_unused tsens_resume(s return 0; } @@ -276,7 +270,7 @@ index 2d25593..ac68af3 100644 }; static int tsens_register(struct tsens_device *tmdev) -@@ -131,7 +159,7 @@ static int tsens_probe(struct platform_device *pdev) +@@ -131,7 +159,7 @@ static int tsens_probe(struct platform_d if (id) data = id->data; else @@ -285,7 +279,7 @@ index 2d25593..ac68af3 100644 if (data->num_sensors <= 0) { dev_err(dev, "invalid number of sensors\n"); -@@ -146,6 +174,9 @@ static int tsens_probe(struct platform_device *pdev) +@@ -146,6 +174,9 @@ static int tsens_probe(struct platform_d tmdev->dev = dev; tmdev->num_sensors = data->num_sensors; tmdev->ops = data->ops; @@ -295,8 +289,6 @@ index 2d25593..ac68af3 100644 for (i = 0; i < tmdev->num_sensors; i++) { if (data->hw_ids) tmdev->sensor[i].hw_id = data->hw_ids[i]; -diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h -index 31279a2..54bbdc0 100644 --- a/drivers/thermal/qcom/tsens.h +++ b/drivers/thermal/qcom/tsens.h @@ -24,9 +24,12 @@ struct tsens_device; @@ -346,11 +338,9 @@ index 31279a2..54bbdc0 100644 struct tsens_sensor sensor[0]; }; -diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c -index 226b0b4..20bd624 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c -@@ -732,12 +732,48 @@ trip_point_type_show(struct device *dev, struct device_attribute *attr, +@@ -732,12 +732,48 @@ trip_point_type_show(struct device *dev, return sprintf(buf, "passive\n"); case THERMAL_TRIP_ACTIVE: return sprintf(buf, "active\n"); @@ -399,7 +389,7 @@ index 226b0b4..20bd624 100644 trip_point_temp_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { -@@ -1321,7 +1357,7 @@ thermal_cooling_device_weight_store(struct device *dev, +@@ -1321,7 +1357,7 @@ thermal_cooling_device_weight_store(stru */ int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz, int trip, @@ -408,7 +398,7 @@ index 226b0b4..20bd624 100644 unsigned long upper, unsigned long lower, unsigned int weight) { -@@ -1772,6 +1808,12 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask) +@@ -1772,6 +1808,12 @@ static int create_trip_attrs(struct ther tz->trip_type_attrs[indx].attr.attr.mode = S_IRUGO; tz->trip_type_attrs[indx].attr.show = trip_point_type_show; @@ -421,8 +411,6 @@ index 226b0b4..20bd624 100644 device_create_file(&tz->device, &tz->trip_type_attrs[indx].attr); -diff --git a/include/linux/thermal.h b/include/linux/thermal.h -index 511182a..510a087 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -77,11 +77,19 @@ enum thermal_device_mode { diff --git a/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch b/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch index 2eac44d1e43..40656d19348 100644 --- a/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch +++ b/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch @@ -105,7 +105,7 @@ Signed-off-by: Ajay Kishore #include "../core.h" #include "../pinconf.h" #include "pinctrl-msm.h" -@@ -639,6 +640,9 @@ static int msm_gpio_irq_set_type(struct +@@ -635,6 +636,9 @@ static int msm_gpio_irq_set_type(struct const struct msm_pingroup *g; unsigned long flags; u32 val; @@ -115,7 +115,7 @@ Signed-off-by: Ajay Kishore g = &pctrl->soc->groups[d->hwirq]; -@@ -652,11 +656,30 @@ static int msm_gpio_irq_set_type(struct +@@ -648,11 +652,30 @@ static int msm_gpio_irq_set_type(struct else clear_bit(d->hwirq, pctrl->dual_edge_irqs); @@ -150,7 +150,7 @@ Signed-off-by: Ajay Kishore /* Update configuration for gpio. * RAW_STATUS_EN is left on for all gpio irqs. Due to the -@@ -930,4 +953,3 @@ int msm_pinctrl_remove(struct platform_d +@@ -926,4 +949,3 @@ int msm_pinctrl_remove(struct platform_d return 0; } EXPORT_SYMBOL(msm_pinctrl_remove); diff --git a/target/linux/ramips/patches-4.9/0004-MIPS-ralink-add-MT7621-pcie-driver.patch b/target/linux/ramips/patches-4.9/0004-MIPS-ralink-add-MT7621-pcie-driver.patch index 9bc3a3e514b..da5239abb11 100644 --- a/target/linux/ramips/patches-4.9/0004-MIPS-ralink-add-MT7621-pcie-driver.patch +++ b/target/linux/ramips/patches-4.9/0004-MIPS-ralink-add-MT7621-pcie-driver.patch @@ -10,10 +10,8 @@ Signed-off-by: John Crispin 2 files changed, 814 insertions(+) create mode 100644 arch/mips/pci/pci-mt7621.c -Index: linux-4.9.14/arch/mips/pci/Makefile -=================================================================== ---- linux-4.9.14.orig/arch/mips/pci/Makefile -+++ linux-4.9.14/arch/mips/pci/Makefile +--- a/arch/mips/pci/Makefile ++++ b/arch/mips/pci/Makefile @@ -46,6 +46,7 @@ obj-$(CONFIG_SNI_RM) += fixup-sni.o ops obj-$(CONFIG_LANTIQ) += fixup-lantiq.o obj-$(CONFIG_PCI_LANTIQ) += pci-lantiq.o ops-lantiq.o @@ -22,10 +20,8 @@ Index: linux-4.9.14/arch/mips/pci/Makefile obj-$(CONFIG_SOC_RT288X) += pci-rt2880.o obj-$(CONFIG_SOC_RT3883) += pci-rt3883.o obj-$(CONFIG_TANBAC_TB0219) += fixup-tb0219.o -Index: linux-4.9.14/arch/mips/pci/pci-mt7621.c -=================================================================== --- /dev/null -+++ linux-4.9.14/arch/mips/pci/pci-mt7621.c ++++ b/arch/mips/pci/pci-mt7621.c @@ -0,0 +1,836 @@ +/************************************************************************** + *