summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/arm/msm/msm.txt5
-rw-r--r--arch/arm/boot/dts/qcom/Makefile5
-rw-r--r--arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi8
-rw-r--r--arch/arm/boot/dts/qcom/msm8998-9x55-cdp.dts24
-rw-r--r--arch/arm/boot/dts/qcom/msm8998-9x55-mtp.dts24
-rw-r--r--arch/arm/boot/dts/qcom/msm8998-9x55-rcm.dts24
-rw-r--r--arch/arm/boot/dts/qcom/msm8998-9x55.dtsi25
-rw-r--r--arch/arm/boot/dts/qcom/sda630-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sda630-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sda630-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda630-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda630-pm660a-qrd-hdk.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda636-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sda636-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sda636-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda636-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda636-pm660a-qrd-hdk.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda658-cdp.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sda658-mtp.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sda660-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sda660-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sda660-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda660-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sda660-pm660a-qrd-hdk.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-headset-jacktype-no-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-internal-codec-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-internal-codec-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-pm660a-headset-jacktype-no-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-pm660a-qrd.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm630-usbc-audio-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-camera-sensor-mtp.dtsi50
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-headset-jacktype-no-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-internal-codec-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-internal-codec-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-mtp.dtsi1
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-pm660a-headset-jacktype-no-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-pm660a-qrd.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-qrd.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm636-usbc-audio-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-cdp.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-mtp.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts6
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-qrd.dts5
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-headset-jacktype-no-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-internal-codec-cdp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-internal-codec-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-mtp.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-pm660a-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-cdp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-pm660a-mtp.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-pm660a-qrd.dts4
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-qrd.dts3
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-usbc-audio-mtp.dts3
-rw-r--r--arch/arm64/configs/msm-auto-perf_defconfig1
-rw-r--r--arch/arm64/configs/msm-auto_defconfig1
-rw-r--r--drivers/gpu/msm/adreno.c8
-rw-r--r--drivers/gpu/msm/adreno_ringbuffer.c53
-rw-r--r--drivers/gpu/msm/kgsl.c11
-rw-r--r--drivers/media/platform/msm/ais/isp/msm_isp47.c6
-rw-r--r--drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c3
-rw-r--r--drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c8
-rw-r--r--drivers/mmc/core/bus.c1
-rw-r--r--drivers/mmc/host/sdhci-msm.c2
-rw-r--r--drivers/mmc/host/sdhci.c9
-rw-r--r--drivers/net/wireless/ath/ath10k/qmi.c2
-rw-r--r--drivers/platform/msm/ipa/ipa_v2/ipa.c28
-rw-r--r--drivers/platform/msm/ipa/ipa_v2/ipa_i.h10
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipa.c28
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipa_i.h10
92 files changed, 383 insertions, 227 deletions
diff --git a/Documentation/devicetree/bindings/arm/msm/msm.txt b/Documentation/devicetree/bindings/arm/msm/msm.txt
index c264f9f65265..e4622558af55 100644
--- a/Documentation/devicetree/bindings/arm/msm/msm.txt
+++ b/Documentation/devicetree/bindings/arm/msm/msm.txt
@@ -86,9 +86,6 @@ SoCs:
- MSM8998
compatible = "qcom,msm8998"
-- MSM8998_9x55
- compatible = "qcom,msm8998-9x55"
-
- MSMHAMSTER
compatible = "qcom,msmhamster"
@@ -283,8 +280,6 @@ compatible = "qcom,msm8998-rumi"
compatible = "qcom,msm8998-cdp"
compatible = "qcom,msm8998-mtp"
compatible = "qcom,msm8998-qrd"
-compatible = "qcom,msm8998-9x55-cdp"
-compatible = "qcom,msm8998-9x55-mtp"
compatible = "qcom,msmhamster-rumi"
compatible = "qcom,msmhamster-cdp"
compatible = "qcom,msmhamster-mtp"
diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile
index faff7ea618d0..c944ecfa4eeb 100644
--- a/arch/arm/boot/dts/qcom/Makefile
+++ b/arch/arm/boot/dts/qcom/Makefile
@@ -172,10 +172,7 @@ dtb-$(CONFIG_ARCH_MSM8998) += msm8998-sim.dtb \
apq8098-v2.1-svr20.dtb \
msm8998-v2.1-interposer-sdm660-cdp.dtb \
msm8998-v2.1-interposer-sdm660-mtp.dtb \
- msm8998-v2.1-interposer-sdm660-qrd.dtb \
- msm8998-9x55-rcm.dtb \
- msm8998-9x55-cdp.dtb \
- msm8998-9x55-mtp.dtb
+ msm8998-v2.1-interposer-sdm660-qrd.dtb
endif
dtb-$(CONFIG_ARCH_MSMHAMSTER) += msmhamster-rumi.dtb
diff --git a/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi b/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi
index 3dfc57752ea0..f1cf3136dbd0 100644
--- a/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi
@@ -44,6 +44,14 @@
gpios = <&tlmm 22 0>;
status = "okay";
};
+
+ gpio_fan {
+ /* Based on 5v 75mA MC30100V2 */
+ compatible = "gpio-fan";
+ gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
+ gpio-fan,speed-map = <0 1>,
+ <8000 0>;
+ };
};
&soc {
diff --git a/arch/arm/boot/dts/qcom/msm8998-9x55-cdp.dts b/arch/arm/boot/dts/qcom/msm8998-9x55-cdp.dts
deleted file mode 100644
index cf167897bb89..000000000000
--- a/arch/arm/boot/dts/qcom/msm8998-9x55-cdp.dts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only 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 "msm8998-9x55.dtsi"
-#include "msm8998-mdss-panels.dtsi"
-#include "msm8998-cdp.dtsi"
-
-/ {
- model = "Qualcomm Technologies, Inc. MSM8998-9x55 CDP";
- compatible = "qcom,msm8998-9x55-cdp", "qcom,msm8998-9x55", "qcom,cdp";
- qcom,board-id= <1 2>;
-};
diff --git a/arch/arm/boot/dts/qcom/msm8998-9x55-mtp.dts b/arch/arm/boot/dts/qcom/msm8998-9x55-mtp.dts
deleted file mode 100644
index a95e9e4f272f..000000000000
--- a/arch/arm/boot/dts/qcom/msm8998-9x55-mtp.dts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only 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 "msm8998-9x55.dtsi"
-#include "msm8998-mdss-panels.dtsi"
-#include "msm8998-mtp.dtsi"
-
-/ {
- model = "Qualcomm Technologies, Inc. MSM8998-9x55 MTP";
- compatible = "qcom,msm8998-9x55-mtp", "qcom,msm8998-9x55", "qcom,mtp";
- qcom,board-id= <8 6>;
-};
diff --git a/arch/arm/boot/dts/qcom/msm8998-9x55-rcm.dts b/arch/arm/boot/dts/qcom/msm8998-9x55-rcm.dts
deleted file mode 100644
index 094ecbc50061..000000000000
--- a/arch/arm/boot/dts/qcom/msm8998-9x55-rcm.dts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only 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 "msm8998-9x55.dtsi"
-#include "msm8998-mdss-panels.dtsi"
-#include "msm8998-cdp.dtsi"
-
-/ {
- model = "Qualcomm Technologies, Inc. MSM8998-9x55 RCM";
- compatible = "qcom,msm8998-9x55-cdp", "qcom,msm8998-9x55", "qcom,cdp";
- qcom,board-id= <0x21 2>;
-};
diff --git a/arch/arm/boot/dts/qcom/msm8998-9x55.dtsi b/arch/arm/boot/dts/qcom/msm8998-9x55.dtsi
deleted file mode 100644
index be947507e398..000000000000
--- a/arch/arm/boot/dts/qcom/msm8998-9x55.dtsi
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only 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.
- */
-
-
-#include "skeleton64.dtsi"
-#include "msm8998-v2.1.dtsi"
-
-/ {
- model = "Qualcomm Technologies, Inc. MSM8998-9x55";
- compatible = "qcom,msm8998-9x55";
- qcom,msm-id = <292 0x0>;
- interrupt-parent = <&intc>;
-
- soc: soc { };
-};
diff --git a/arch/arm/boot/dts/qcom/sda630-cdp.dts b/arch/arm/boot/dts/qcom/sda630-cdp.dts
index 665fa94d9713..beefb2de1ce9 100644
--- a/arch/arm/boot/dts/qcom/sda630-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda630-cdp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sda630-cdp", "qcom,sda630", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda630-mtp.dts b/arch/arm/boot/dts/qcom/sda630-mtp.dts
index 08a996ddb709..41afa720c389 100644
--- a/arch/arm/boot/dts/qcom/sda630-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda630-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sda630-mtp", "qcom,sda630", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda630-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sda630-pm660a-cdp.dts
index 6094d22c1c92..01455d054e03 100644
--- a/arch/arm/boot/dts/qcom/sda630-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda630-pm660a-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 630 PM660 + PM660A CDP";
compatible = "qcom,sda630-cdp", "qcom,sda630", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda630-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sda630-pm660a-mtp.dts
index 49c10129aada..3dd15d889afd 100644
--- a/arch/arm/boot/dts/qcom/sda630-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda630-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 630 PM660 + PM660A MTP";
compatible = "qcom,sda630-mtp", "qcom,sda630", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda630-pm660a-qrd-hdk.dts b/arch/arm/boot/dts/qcom/sda630-pm660a-qrd-hdk.dts
index 4c4c758daa29..155099b5be9d 100644
--- a/arch/arm/boot/dts/qcom/sda630-pm660a-qrd-hdk.dts
+++ b/arch/arm/boot/dts/qcom/sda630-pm660a-qrd-hdk.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 630 PM660 + PM660A QRD HDK630";
compatible = "qcom,sda630-qrd", "qcom,sda630", "qcom,qrd";
qcom,board-id = <0x0016000b 0x00>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&pm660a_oledb {
diff --git a/arch/arm/boot/dts/qcom/sda636-cdp.dts b/arch/arm/boot/dts/qcom/sda636-cdp.dts
index a4cc4b3f4662..2962a6bc3691 100644
--- a/arch/arm/boot/dts/qcom/sda636-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda636-cdp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sda636-cdp", "qcom,sda636", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda636-mtp.dts b/arch/arm/boot/dts/qcom/sda636-mtp.dts
index 3fd19437b3eb..237d27791b94 100644
--- a/arch/arm/boot/dts/qcom/sda636-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda636-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sda636-mtp", "qcom,sda636", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda636-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sda636-pm660a-cdp.dts
index 72db1be68c83..5f0e5275e828 100644
--- a/arch/arm/boot/dts/qcom/sda636-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda636-pm660a-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 636 PM660 + PM660A CDP";
compatible = "qcom,sda636-cdp", "qcom,sda636", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda636-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sda636-pm660a-mtp.dts
index fd5b94420102..c15bc159dffd 100644
--- a/arch/arm/boot/dts/qcom/sda636-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda636-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 636 PM660 + PM660A MTP";
compatible = "qcom,sda636-mtp", "qcom,sda636", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda636-pm660a-qrd-hdk.dts b/arch/arm/boot/dts/qcom/sda636-pm660a-qrd-hdk.dts
index 3535c54f5dd0..f4a9592bf4ff 100644
--- a/arch/arm/boot/dts/qcom/sda636-pm660a-qrd-hdk.dts
+++ b/arch/arm/boot/dts/qcom/sda636-pm660a-qrd-hdk.dts
@@ -158,7 +158,9 @@
model = "Qualcomm Technologies, Inc. SDA 636 PM660 + PM660A QRD HDK636";
compatible = "qcom,sda636-qrd", "qcom,sda636", "qcom,qrd";
qcom,board-id = <0x0016000b 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&pm660a_oledb {
diff --git a/arch/arm/boot/dts/qcom/sda658-cdp.dts b/arch/arm/boot/dts/qcom/sda658-cdp.dts
index 9992963b8705..5db30e379a2d 100644
--- a/arch/arm/boot/dts/qcom/sda658-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda658-cdp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,6 @@
compatible = "qcom,sda658-cdp", "qcom,sda658", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sda658-mtp.dts b/arch/arm/boot/dts/qcom/sda658-mtp.dts
index f4322ecfd701..138c6fdc74df 100644
--- a/arch/arm/boot/dts/qcom/sda658-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda658-mtp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,6 @@
compatible = "qcom,sda658-mtp", "qcom,sda658", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts
index c280c4afda51..b4e7996e0bb6 100644
--- a/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660A CDP";
compatible = "qcom,sda658-cdp", "qcom,sda658", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts
index ba8741e2a068..52820a557ecf 100644
--- a/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660A MTP";
compatible = "qcom,sda658-mtp", "qcom,sda658", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sda660-cdp.dts b/arch/arm/boot/dts/qcom/sda660-cdp.dts
index 92097729087b..4299a0957455 100644
--- a/arch/arm/boot/dts/qcom/sda660-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda660-cdp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sda660-cdp", "qcom,sda660", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda660-mtp.dts b/arch/arm/boot/dts/qcom/sda660-mtp.dts
index 027137e54c0e..71263375b1c0 100644
--- a/arch/arm/boot/dts/qcom/sda660-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda660-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sda660-mtp", "qcom,sda660", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda660-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sda660-pm660a-cdp.dts
index a46083a00298..38900dab7596 100644
--- a/arch/arm/boot/dts/qcom/sda660-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sda660-pm660a-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 660 PM660 + PM660A CDP";
compatible = "qcom,sda660-cdp", "qcom,sda660", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda660-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sda660-pm660a-mtp.dts
index d94cf8ea1eb5..98ab098d6cdc 100644
--- a/arch/arm/boot/dts/qcom/sda660-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sda660-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDA 660 PM660 + PM660A MTP";
compatible = "qcom,sda660-mtp", "qcom,sda660", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sda660-pm660a-qrd-hdk.dts b/arch/arm/boot/dts/qcom/sda660-pm660a-qrd-hdk.dts
index 0f4b462fd57b..5f44b4c32c98 100644
--- a/arch/arm/boot/dts/qcom/sda660-pm660a-qrd-hdk.dts
+++ b/arch/arm/boot/dts/qcom/sda660-pm660a-qrd-hdk.dts
@@ -158,7 +158,9 @@
model = "Qualcomm Technologies, Inc. SDA 660 PM660 + PM660A QRD HDK660";
compatible = "qcom,sda660-qrd", "qcom,sda660", "qcom,qrd";
qcom,board-id = <0x0016000b 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&pm660a_oledb {
diff --git a/arch/arm/boot/dts/qcom/sdm630-cdp.dts b/arch/arm/boot/dts/qcom/sdm630-cdp.dts
index 973df0df3be5..8da3dd6726e6 100644
--- a/arch/arm/boot/dts/qcom/sdm630-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-cdp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm630-headset-jacktype-no-cdp.dts b/arch/arm/boot/dts/qcom/sdm630-headset-jacktype-no-cdp.dts
index 4db377dc755a..27ef94e8a29a 100644
--- a/arch/arm/boot/dts/qcom/sdm630-headset-jacktype-no-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-headset-jacktype-no-cdp.dts
@@ -22,5 +22,6 @@
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm630-internal-codec-cdp.dts b/arch/arm/boot/dts/qcom/sdm630-internal-codec-cdp.dts
index baa55fa15160..39099ed1e97e 100644
--- a/arch/arm/boot/dts/qcom/sdm630-internal-codec-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-internal-codec-cdp.dts
@@ -22,5 +22,6 @@
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm630-internal-codec-mtp.dts b/arch/arm/boot/dts/qcom/sdm630-internal-codec-mtp.dts
index b469a59d7818..d9f30b41ed8e 100644
--- a/arch/arm/boot/dts/qcom/sdm630-internal-codec-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-internal-codec-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm630-mtp", "qcom,sdm630", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-cdp.dts
index c4e71835b701..0ec2e17f10a5 100644
--- a/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-cdp.dts
@@ -22,5 +22,7 @@
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660A Int. Audio Codec CDP";
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <1 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-mtp.dts
index e11cdfbed668..d4f1214dc191 100644
--- a/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-internal-codec-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660A Int. Audio Codec MTP";
compatible = "qcom,sdm630-mtp", "qcom,sdm630", "qcom,mtp";
qcom,board-id = <8 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm630-mtp.dts b/arch/arm/boot/dts/qcom/sdm630-mtp.dts
index b1a9bb86149d..3604ce486633 100644
--- a/arch/arm/boot/dts/qcom/sdm630-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm630-mtp", "qcom,sdm630", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm630-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm630-pm660a-cdp.dts
index 7e3e9a0cca59..a6f01eaa2a43 100644
--- a/arch/arm/boot/dts/qcom/sdm630-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-pm660a-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660A CDP";
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm630-pm660a-headset-jacktype-no-cdp.dts b/arch/arm/boot/dts/qcom/sdm630-pm660a-headset-jacktype-no-cdp.dts
index 15936f47da7b..1596f7533581 100644
--- a/arch/arm/boot/dts/qcom/sdm630-pm660a-headset-jacktype-no-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-pm660a-headset-jacktype-no-cdp.dts
@@ -22,5 +22,7 @@
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660A, Headset Jacktype NO, CDP";
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <1 2>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm630-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm630-pm660a-mtp.dts
index a522b7ad1d5f..418b4a1e819f 100644
--- a/arch/arm/boot/dts/qcom/sdm630-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660A MTP";
compatible = "qcom,sdm630-mtp", "qcom,sdm630", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm630-pm660a-qrd.dts b/arch/arm/boot/dts/qcom/sdm630-pm660a-qrd.dts
index deb10b591444..95b03f68b30f 100644
--- a/arch/arm/boot/dts/qcom/sdm630-pm660a-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-pm660a-qrd.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660A QRD";
compatible = "qcom,sdm630-qrd", "qcom,sdm630", "qcom,qrd";
qcom,board-id = <0x0002000b 0x00>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm630-usbc-audio-mtp.dts b/arch/arm/boot/dts/qcom/sdm630-usbc-audio-mtp.dts
index eb089b524fef..309e9c6730a9 100644
--- a/arch/arm/boot/dts/qcom/sdm630-usbc-audio-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm630-usbc-audio-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm630-mtp", "qcom,sdm630", "qcom,mtp";
qcom,board-id = <8 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm636-camera-sensor-mtp.dtsi b/arch/arm/boot/dts/qcom/sdm636-camera-sensor-mtp.dtsi
new file mode 100644
index 000000000000..ab6a7aebd6b9
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm636-camera-sensor-mtp.dtsi
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2017, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only 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.
+ */
+
+&cci {
+ actuator0: qcom,actuator@0 {
+ cell-index = <0>;
+ reg = <0x0>;
+ compatible = "qcom,actuator";
+ qcom,cci-master = <0>;
+ cam_vaf-supply = <&pm660l_l8>;
+ qcom,cam-vreg-name = "cam_vaf";
+ qcom,cam-vreg-min-voltage = <2800000>;
+ qcom,cam-vreg-max-voltage = <3400000>;
+ qcom,cam-vreg-op-mode = <100000>;
+ };
+
+ actuator1: qcom,actuator@1 {
+ cell-index = <1>;
+ reg = <0x1>;
+ compatible = "qcom,actuator";
+ qcom,cci-master = <1>;
+ cam_vaf-supply = <&pm660l_l8>;
+ qcom,cam-vreg-name = "cam_vaf";
+ qcom,cam-vreg-min-voltage = <2800000>;
+ qcom,cam-vreg-max-voltage = <3400000>;
+ qcom,cam-vreg-op-mode = <100000>;
+ };
+
+ actuator2: qcom,actuator@2 {
+ cell-index = <2>;
+ reg = <0x2>;
+ compatible = "qcom,actuator";
+ qcom,cci-master = <1>;
+ cam_vaf-supply = <&pm660l_l8>;
+ qcom,cam-vreg-name = "cam_vaf";
+ qcom,cam-vreg-min-voltage = <2800000>;
+ qcom,cam-vreg-max-voltage = <3400000>;
+ qcom,cam-vreg-op-mode = <100000>;
+ };
+};
diff --git a/arch/arm/boot/dts/qcom/sdm636-cdp.dts b/arch/arm/boot/dts/qcom/sdm636-cdp.dts
index 47f5eba8f491..ad1cac9c0c90 100644
--- a/arch/arm/boot/dts/qcom/sdm636-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-cdp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm636-cdp", "qcom,sdm636", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm636-headset-jacktype-no-cdp.dts b/arch/arm/boot/dts/qcom/sdm636-headset-jacktype-no-cdp.dts
index 4d47ac1ef517..c87ace6938bd 100644
--- a/arch/arm/boot/dts/qcom/sdm636-headset-jacktype-no-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-headset-jacktype-no-cdp.dts
@@ -22,5 +22,6 @@
compatible = "qcom,sdm636-cdp", "qcom,sdm636", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm636-internal-codec-cdp.dts b/arch/arm/boot/dts/qcom/sdm636-internal-codec-cdp.dts
index 725e9739a487..1de6c4c13300 100644
--- a/arch/arm/boot/dts/qcom/sdm636-internal-codec-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-internal-codec-cdp.dts
@@ -22,5 +22,6 @@
compatible = "qcom,sdm636-cdp", "qcom,sdm636", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm636-internal-codec-mtp.dts b/arch/arm/boot/dts/qcom/sdm636-internal-codec-mtp.dts
index 3630e329b13d..3522e67cf87e 100644
--- a/arch/arm/boot/dts/qcom/sdm636-internal-codec-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-internal-codec-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm636-mtp", "qcom,sdm636", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-cdp.dts
index 416cd3754a10..e51c2e4709d2 100644
--- a/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-cdp.dts
@@ -22,5 +22,7 @@
model = "Qualcomm Technologies, Inc. SDM 636 PM660 + PM660A Int. Audio Codec CDP";
compatible = "qcom,sdm636-cdp", "qcom,sdm636", "qcom,cdp";
qcom,board-id = <1 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-mtp.dts
index e9ad9048c6e9..e4d980a15a0d 100644
--- a/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-internal-codec-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 636 PM660 + PM660A Int. Audio Codec MTP";
compatible = "qcom,sdm636-mtp", "qcom,sdm636", "qcom,mtp";
qcom,board-id = <8 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm636-mtp.dts b/arch/arm/boot/dts/qcom/sdm636-mtp.dts
index 7f08e44148b5..8ee5c46c804a 100644
--- a/arch/arm/boot/dts/qcom/sdm636-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm636-mtp", "qcom,sdm636", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm636-mtp.dtsi b/arch/arm/boot/dts/qcom/sdm636-mtp.dtsi
index f1d96459ec17..30174df3bd6a 100644
--- a/arch/arm/boot/dts/qcom/sdm636-mtp.dtsi
+++ b/arch/arm/boot/dts/qcom/sdm636-mtp.dtsi
@@ -11,6 +11,7 @@
*/
#include "sdm660-mtp.dtsi"
+#include "sdm636-camera-sensor-mtp.dtsi"
/ {
};
diff --git a/arch/arm/boot/dts/qcom/sdm636-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm636-pm660a-cdp.dts
index 84a28770d5a8..88d19d0c7bb1 100644
--- a/arch/arm/boot/dts/qcom/sdm636-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-pm660a-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 636 PM660 + PM660A CDP";
compatible = "qcom,sdm636-cdp", "qcom,sdm636", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi {
diff --git a/arch/arm/boot/dts/qcom/sdm636-pm660a-headset-jacktype-no-cdp.dts b/arch/arm/boot/dts/qcom/sdm636-pm660a-headset-jacktype-no-cdp.dts
index b2517e32ae26..b60fdc773941 100644
--- a/arch/arm/boot/dts/qcom/sdm636-pm660a-headset-jacktype-no-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-pm660a-headset-jacktype-no-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 636 PM660 + PM660A, Headset Jacktype NO, CDP";
compatible = "qcom,sdm636-cdp", "qcom,sdm636", "qcom,cdp";
qcom,board-id = <1 2>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi0 {
diff --git a/arch/arm/boot/dts/qcom/sdm636-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm636-pm660a-mtp.dts
index 966a00af7216..6aaa8d070b42 100644
--- a/arch/arm/boot/dts/qcom/sdm636-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 636 PM660 + PM660A MTP";
compatible = "qcom,sdm636-mtp", "qcom,sdm636", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi {
diff --git a/arch/arm/boot/dts/qcom/sdm636-pm660a-qrd.dts b/arch/arm/boot/dts/qcom/sdm636-pm660a-qrd.dts
index d8b6c744a204..68734c9cd8c6 100644
--- a/arch/arm/boot/dts/qcom/sdm636-pm660a-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-pm660a-qrd.dts
@@ -21,7 +21,9 @@
model = "Qualcomm Technologies, Inc. SDM 636 PM660 + PM660A QRD";
compatible = "qcom,sdm636-qrd", "qcom,sdm636", "qcom,qrd";
qcom,board-id = <0x0012000b 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&pm660a_oledb {
diff --git a/arch/arm/boot/dts/qcom/sdm636-qrd.dts b/arch/arm/boot/dts/qcom/sdm636-qrd.dts
index a2d22f281a5d..b1977cdc50bc 100644
--- a/arch/arm/boot/dts/qcom/sdm636-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-qrd.dts
@@ -21,7 +21,8 @@
compatible = "qcom,sdm636-qrd", "qcom,sdm636", "qcom,qrd";
qcom,board-id = <0x1000b 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&mdss_mdp {
diff --git a/arch/arm/boot/dts/qcom/sdm636-usbc-audio-mtp.dts b/arch/arm/boot/dts/qcom/sdm636-usbc-audio-mtp.dts
index 90879cdf35cc..8519a4891446 100644
--- a/arch/arm/boot/dts/qcom/sdm636-usbc-audio-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm636-usbc-audio-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm636-mtp", "qcom,sdm636", "qcom,mtp";
qcom,board-id = <8 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm658-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-cdp.dts
index 8569af157049..223177aece50 100644
--- a/arch/arm/boot/dts/qcom/sdm658-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-cdp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,6 @@
compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts
index d0f5c14223ff..c6cdf6e797af 100644
--- a/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,7 +21,8 @@
compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&slim_aud {
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts
index acec15e0615f..32203c9ccaee 100644
--- a/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,7 +21,8 @@
compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&slim_aud {
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts
index b7f2e70ce962..a8d3de6f8962 100644
--- a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A Int. Audio Codec CDP";
compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
qcom,board-id = <1 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts
index 949d7ae7faa5..2689dc099f12 100644
--- a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A Int. Audio Codec MTP";
compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
qcom,board-id = <8 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-mtp.dts
index 2fbe9b0a6201..a57bba3b22af 100644
--- a/arch/arm/boot/dts/qcom/sdm658-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-mtp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,6 @@
compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts
index 39e2df958347..c719d76613b0 100644
--- a/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A CDP";
compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts
index 4d205ef403f4..4b6b7fa23710 100644
--- a/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A MTP";
compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts
index f1edf6b244a8..cd51a74ba18c 100644
--- a/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,7 @@
model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A QRD";
compatible = "qcom,sdm658-qrd", "qcom,sdm658", "qcom,qrd";
qcom,board-id = <0x1000b 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm658-qrd.dts b/arch/arm/boot/dts/qcom/sdm658-qrd.dts
index bd7d76ee1f6c..155b730d52c3 100644
--- a/arch/arm/boot/dts/qcom/sdm658-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm658-qrd.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -21,5 +21,6 @@
compatible = "qcom,sdm658-qrd", "qcom,sdm658", "qcom,qrd";
qcom,board-id = <0x1000b 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm660-cdp.dts b/arch/arm/boot/dts/qcom/sdm660-cdp.dts
index 7b4b68af6188..1b634d7aaf56 100644
--- a/arch/arm/boot/dts/qcom/sdm660-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-cdp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm660-headset-jacktype-no-cdp.dts b/arch/arm/boot/dts/qcom/sdm660-headset-jacktype-no-cdp.dts
index 48cfefb4cdd0..76755d99f6df 100644
--- a/arch/arm/boot/dts/qcom/sdm660-headset-jacktype-no-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-headset-jacktype-no-cdp.dts
@@ -22,5 +22,6 @@
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm660-internal-codec-cdp.dts b/arch/arm/boot/dts/qcom/sdm660-internal-codec-cdp.dts
index 6755385313b1..a7020158c3a5 100644
--- a/arch/arm/boot/dts/qcom/sdm660-internal-codec-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-internal-codec-cdp.dts
@@ -22,5 +22,6 @@
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm660-internal-codec-mtp.dts b/arch/arm/boot/dts/qcom/sdm660-internal-codec-mtp.dts
index 39da13e7565b..4aeb561e7755 100644
--- a/arch/arm/boot/dts/qcom/sdm660-internal-codec-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-internal-codec-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-cdp.dts
index caf8af514237..780330c80565 100644
--- a/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-cdp.dts
@@ -22,5 +22,7 @@
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio Codec CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
diff --git a/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-mtp.dts
index d2ae22879ef4..b9c8c900a973 100644
--- a/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-internal-codec-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio Codec MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 1>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&int_codec {
diff --git a/arch/arm/boot/dts/qcom/sdm660-mtp.dts b/arch/arm/boot/dts/qcom/sdm660-mtp.dts
index 72bfa20b2bf9..32b294ee6883 100644
--- a/arch/arm/boot/dts/qcom/sdm660-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm/boot/dts/qcom/sdm660-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm660-pm660a-cdp.dts
index c27f76d3027b..c20318c26373 100644
--- a/arch/arm/boot/dts/qcom/sdm660-pm660a-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-pm660a-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi {
diff --git a/arch/arm/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-cdp.dts b/arch/arm/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-cdp.dts
index 281af3b1768e..5af607c0e1cc 100644
--- a/arch/arm/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-cdp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-cdp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A, Headset Jacktype NO, CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 2>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi0 {
diff --git a/arch/arm/boot/dts/qcom/sdm660-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm660-pm660a-mtp.dts
index eb5e4999fb67..3aaa839e18be 100644
--- a/arch/arm/boot/dts/qcom/sdm660-pm660a-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-pm660a-mtp.dts
@@ -22,7 +22,9 @@
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi {
diff --git a/arch/arm/boot/dts/qcom/sdm660-pm660a-qrd.dts b/arch/arm/boot/dts/qcom/sdm660-pm660a-qrd.dts
index d9d74ea31d3d..848be11dc0a6 100644
--- a/arch/arm/boot/dts/qcom/sdm660-pm660a-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-pm660a-qrd.dts
@@ -21,7 +21,9 @@
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A QRD";
compatible = "qcom,sdm660-qrd", "qcom,sdm660", "qcom,qrd";
qcom,board-id = <0x0012000b 0>;
- qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
+ <0x0001001b 0x0002001a 0x0 0x0>,
+ <0x0001001b 0x0202001a 0x0 0x0>;
};
&pm660a_oledb {
diff --git a/arch/arm/boot/dts/qcom/sdm660-qrd.dts b/arch/arm/boot/dts/qcom/sdm660-qrd.dts
index 4d120e83cb9b..3284e805a093 100644
--- a/arch/arm/boot/dts/qcom/sdm660-qrd.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-qrd.dts
@@ -21,7 +21,8 @@
compatible = "qcom,sdm660-qrd", "qcom,sdm660", "qcom,qrd";
qcom,board-id = <0x1000b 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&mdss_mdp {
diff --git a/arch/arm/boot/dts/qcom/sdm660-usbc-audio-mtp.dts b/arch/arm/boot/dts/qcom/sdm660-usbc-audio-mtp.dts
index dff55d8e9cf8..b1a752b46a41 100644
--- a/arch/arm/boot/dts/qcom/sdm660-usbc-audio-mtp.dts
+++ b/arch/arm/boot/dts/qcom/sdm660-usbc-audio-mtp.dts
@@ -22,7 +22,8 @@
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
- <0x0001001b 0x0201011a 0x0 0x0>;
+ <0x0001001b 0x0201011a 0x0 0x0>,
+ <0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
diff --git a/arch/arm64/configs/msm-auto-perf_defconfig b/arch/arm64/configs/msm-auto-perf_defconfig
index a521b24b61f5..7e3bf18b06f7 100644
--- a/arch/arm64/configs/msm-auto-perf_defconfig
+++ b/arch/arm64/configs/msm-auto-perf_defconfig
@@ -335,6 +335,7 @@ CONFIG_MSM_BCL_PERIPHERAL_CTL=y
CONFIG_MSM_PM=y
CONFIG_APSS_CORE_EA=y
CONFIG_MSM_APM=y
+CONFIG_SENSORS_GPIO_FAN=y
CONFIG_SENSORS_EPM_ADC=y
CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y
CONFIG_LIMITS_MONITOR=y
diff --git a/arch/arm64/configs/msm-auto_defconfig b/arch/arm64/configs/msm-auto_defconfig
index f8187f87f763..92fc522c11ed 100644
--- a/arch/arm64/configs/msm-auto_defconfig
+++ b/arch/arm64/configs/msm-auto_defconfig
@@ -338,6 +338,7 @@ CONFIG_MSM_BCL_PERIPHERAL_CTL=y
CONFIG_MSM_PM=y
CONFIG_APSS_CORE_EA=y
CONFIG_MSM_APM=y
+CONFIG_SENSORS_GPIO_FAN=y
CONFIG_SENSORS_EPM_ADC=y
CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y
CONFIG_LIMITS_MONITOR=y
diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c
index 7cab049771de..c620c7ac1afa 100644
--- a/drivers/gpu/msm/adreno.c
+++ b/drivers/gpu/msm/adreno.c
@@ -807,13 +807,13 @@ static int adreno_of_get_pwrlevels(struct adreno_device *adreno_dev,
struct device_node *parent)
{
struct device_node *node, *child;
+ unsigned int bin = 0;
node = of_find_node_by_name(parent, "qcom,gpu-pwrlevel-bins");
if (node == NULL)
return adreno_of_get_legacy_pwrlevels(adreno_dev, parent);
for_each_child_of_node(node, child) {
- unsigned int bin;
if (of_property_read_u32(child, "qcom,speed-bin", &bin))
continue;
@@ -829,6 +829,8 @@ static int adreno_of_get_pwrlevels(struct adreno_device *adreno_dev,
}
}
+ KGSL_CORE_ERR("GPU speed_bin:%d mismatch for efused bin:%d\n",
+ adreno_dev->speed_bin, bin);
return -ENODEV;
}
@@ -1161,6 +1163,10 @@ static int adreno_init(struct kgsl_device *device)
struct adreno_gpudev *gpudev = ADRENO_GPU_DEVICE(adreno_dev);
int ret;
+ if (!adreno_is_a3xx(adreno_dev))
+ kgsl_sharedmem_set(device, &device->scratch, 0, 0,
+ device->scratch.size);
+
ret = kgsl_pwrctrl_change_state(device, KGSL_STATE_INIT);
if (ret)
return ret;
diff --git a/drivers/gpu/msm/adreno_ringbuffer.c b/drivers/gpu/msm/adreno_ringbuffer.c
index ddc53edce3c1..65e73356857f 100644
--- a/drivers/gpu/msm/adreno_ringbuffer.c
+++ b/drivers/gpu/msm/adreno_ringbuffer.c
@@ -203,8 +203,9 @@ int adreno_ringbuffer_start(struct adreno_device *adreno_dev,
FOR_EACH_RINGBUFFER(adreno_dev, rb, i) {
kgsl_sharedmem_set(device, &(rb->buffer_desc),
0, 0xAA, KGSL_RB_SIZE);
- kgsl_sharedmem_writel(device, &device->scratch,
- SCRATCH_RPTR_OFFSET(rb->id), 0);
+ if (!adreno_is_a3xx(adreno_dev))
+ kgsl_sharedmem_writel(device, &device->scratch,
+ SCRATCH_RPTR_OFFSET(rb->id), 0);
rb->wptr = 0;
rb->_wptr = 0;
rb->wptr_preempt_end = 0xFFFFFFFF;
@@ -265,9 +266,16 @@ static int _adreno_ringbuffer_probe(struct adreno_device *adreno_dev,
int adreno_ringbuffer_probe(struct adreno_device *adreno_dev, bool nopreempt)
{
- int status = 0;
+ struct kgsl_device *device = KGSL_DEVICE(adreno_dev);
struct adreno_gpudev *gpudev = ADRENO_GPU_DEVICE(adreno_dev);
- int i;
+ int i, status;
+
+ if (!adreno_is_a3xx(adreno_dev)) {
+ status = kgsl_allocate_global(device, &device->scratch,
+ PAGE_SIZE, 0, 0, "scratch");
+ if (status != 0)
+ return status;
+ }
if (nopreempt == false && ADRENO_FEATURE(adreno_dev, ADRENO_PREEMPTION))
adreno_dev->num_ringbuffers = gpudev->num_prio_levels;
@@ -303,9 +311,13 @@ static void _adreno_ringbuffer_close(struct adreno_device *adreno_dev,
void adreno_ringbuffer_close(struct adreno_device *adreno_dev)
{
+ struct kgsl_device *device = KGSL_DEVICE(adreno_dev);
struct adreno_ringbuffer *rb;
int i;
+ if (!adreno_is_a3xx(adreno_dev))
+ kgsl_free_global(device, &device->scratch);
+
FOR_EACH_RINGBUFFER(adreno_dev, rb, i)
_adreno_ringbuffer_close(adreno_dev, rb);
}
@@ -489,12 +501,17 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
if (flags & KGSL_CMD_FLAGS_PWRON_FIXUP)
total_sizedwords += 9;
- /* WAIT_MEM_WRITES - needed in the stall on fault case
- * to prevent out of order CP operations that can result
- * in a CACHE_FLUSH_TS interrupt storm */
- if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE,
+ /* Don't insert any commands if stall on fault is not supported. */
+ if ((ADRENO_GPUREV(adreno_dev) > 500) && !adreno_is_a510(adreno_dev)) {
+ /*
+ * WAIT_MEM_WRITES - needed in the stall on fault case
+ * to prevent out of order CP operations that can result
+ * in a CACHE_FLUSH_TS interrupt storm
+ */
+ if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE,
&adreno_dev->ft_pf_policy))
- total_sizedwords += 1;
+ total_sizedwords += 1;
+ }
ringcmds = adreno_ringbuffer_allocspace(rb, total_sizedwords);
if (IS_ERR(ringcmds))
@@ -581,14 +598,18 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
if (profile_ready)
adreno_profile_postib_processing(adreno_dev, &flags, &ringcmds);
- /*
- * WAIT_MEM_WRITES - needed in the stall on fault case to prevent
- * out of order CP operations that can result in a CACHE_FLUSH_TS
- * interrupt storm
- */
- if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE,
+ /* Don't insert any commands if stall on fault is not supported. */
+ if ((ADRENO_GPUREV(adreno_dev) > 500) && !adreno_is_a510(adreno_dev)) {
+ /*
+ * WAIT_MEM_WRITES - needed in the stall on fault case
+ * to prevent out of order CP operations that can result
+ * in a CACHE_FLUSH_TS interrupt storm
+ */
+ if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE,
&adreno_dev->ft_pf_policy))
- *ringcmds++ = cp_packet(adreno_dev, CP_WAIT_MEM_WRITES, 0);
+ *ringcmds++ = cp_packet(adreno_dev,
+ CP_WAIT_MEM_WRITES, 0);
+ }
/*
* Do a unique memory write from the GPU. This can be used in
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c
index afb489f10172..a56e1ec78e2e 100644
--- a/drivers/gpu/msm/kgsl.c
+++ b/drivers/gpu/msm/kgsl.c
@@ -1120,8 +1120,6 @@ static int kgsl_open_device(struct kgsl_device *device)
atomic_inc(&device->active_cnt);
kgsl_sharedmem_set(device, &device->memstore, 0, 0,
device->memstore.size);
- kgsl_sharedmem_set(device, &device->scratch, 0, 0,
- device->scratch.size);
result = device->ftbl->init(device);
if (result)
@@ -4724,11 +4722,6 @@ int kgsl_device_platform_probe(struct kgsl_device *device)
if (status != 0)
goto error_close_mmu;
- status = kgsl_allocate_global(device, &device->scratch,
- PAGE_SIZE, 0, 0, "scratch");
- if (status != 0)
- goto error_free_memstore;
-
/*
* The default request type PM_QOS_REQ_ALL_CORES is
* applicable to all CPU cores that are online and
@@ -4774,8 +4767,6 @@ int kgsl_device_platform_probe(struct kgsl_device *device)
return 0;
-error_free_memstore:
- kgsl_free_global(device, &device->memstore);
error_close_mmu:
kgsl_mmu_close(device);
error_pwrctrl_close:
@@ -4803,8 +4794,6 @@ void kgsl_device_platform_remove(struct kgsl_device *device)
idr_destroy(&device->context_idr);
- kgsl_free_global(device, &device->scratch);
-
kgsl_free_global(device, &device->memstore);
kgsl_mmu_close(device);
diff --git a/drivers/media/platform/msm/ais/isp/msm_isp47.c b/drivers/media/platform/msm/ais/isp/msm_isp47.c
index d33dc758aef9..04e879fc3bcf 100644
--- a/drivers/media/platform/msm/ais/isp/msm_isp47.c
+++ b/drivers/media/platform/msm/ais/isp/msm_isp47.c
@@ -699,6 +699,12 @@ void msm_vfe47_reg_update(struct vfe_device *vfe_dev,
vfe_dev->reg_update_requested;
if ((vfe_dev->is_split && vfe_dev->pdev->id == ISP_VFE1) &&
((frame_src == VFE_PIX_0) || (frame_src == VFE_SRC_MAX))) {
+ if (!vfe_dev->common_data->dual_vfe_res->vfe_base[ISP_VFE0]) {
+ pr_err("%s vfe_base for ISP_VFE0 is NULL\n", __func__);
+ spin_unlock_irqrestore(&vfe_dev->reg_update_lock,
+ flags);
+ return;
+ }
msm_camera_io_w_mb(update_mask,
vfe_dev->common_data->dual_vfe_res->
vfe_base[ISP_VFE0] + 0x4AC);
diff --git a/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c b/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c
index 223ddf39dce8..c77367ed1603 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c
@@ -1213,6 +1213,9 @@ static long msm_flash_subdev_do_ioctl(
break;
}
break;
+ case VIDIOC_MSM_FLASH_CFG:
+ pr_err("invalid cmd 0x%x received\n", cmd);
+ return -EINVAL;
default:
return msm_flash_subdev_ioctl(sd, cmd, arg);
}
diff --git a/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c b/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c
index 2d2296893140..9f3e2cc3a72f 100644
--- a/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c
+++ b/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c
@@ -523,13 +523,17 @@ static ssize_t mpq_sdmx_log_level_write(struct file *fp,
int level;
struct mpq_demux *mpq_demux = fp->private_data;
- if (count >= 16)
+ if (count == 0 || count >= 16)
return -EINVAL;
- ret_count = simple_write_to_buffer(user_str, 16, position, user_buffer,
+ memset(user_str, '\0', sizeof(user_str));
+
+ ret_count = simple_write_to_buffer(user_str, 15, position, user_buffer,
count);
if (ret_count < 0)
return ret_count;
+ else if (ret_count == 0)
+ return -EINVAL;
ret = kstrtoint(user_str, 0, &level);
if (ret)
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index 311f6d639d06..548a9e8b72ae 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -401,6 +401,7 @@ int mmc_add_card(struct mmc_card *card)
return ret;
mmc_card_set_present(card);
+ device_enable_async_suspend(&card->dev);
return 0;
}
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index ab4837128cb2..c86a800fc203 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -5015,7 +5015,7 @@ static int sdhci_msm_suspend_noirq(struct device *dev)
}
static const struct dev_pm_ops sdhci_msm_pmops = {
- SET_SYSTEM_SLEEP_PM_OPS(sdhci_msm_suspend, sdhci_msm_resume)
+ SET_LATE_SYSTEM_SLEEP_PM_OPS(sdhci_msm_suspend, sdhci_msm_resume)
SET_RUNTIME_PM_OPS(sdhci_msm_runtime_suspend, sdhci_msm_runtime_resume,
NULL)
.suspend_noirq = sdhci_msm_suspend_noirq,
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index f9d80b3bbcf9..5906bba0aeff 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3054,8 +3054,15 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
return;
}
if (host->quirks2 &
- SDHCI_QUIRK2_IGNORE_DATATOUT_FOR_R1BCMD)
+ SDHCI_QUIRK2_IGNORE_DATATOUT_FOR_R1BCMD) {
+ pr_err_ratelimited("%s: %s: ignoring interrupt: 0x%08x due to DATATOUT_FOR_R1B quirk\n",
+ mmc_hostname(host->mmc),
+ __func__, intmask);
+ MMC_TRACE(host->mmc,
+ "%s: Quirk ignoring intr: 0x%08x\n",
+ __func__, intmask);
return;
+ }
if (intmask & SDHCI_INT_DATA_TIMEOUT) {
host->cmd->error = -ETIMEDOUT;
tasklet_schedule(&host->finish_tasklet);
diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c
index 10223605b027..dd310d5a7028 100644
--- a/drivers/net/wireless/ath/ath10k/qmi.c
+++ b/drivers/net/wireless/ath/ath10k/qmi.c
@@ -719,6 +719,7 @@ static int ath10k_snoc_driver_event_server_exit(struct ath10k *ar)
atomic_set(&qmi_cfg->fw_ready, 0);
qmi_cfg->msa_ready = false;
atomic_set(&qmi_cfg->server_connected, 0);
+ qmi_handle_destroy(qmi_cfg->wlfw_clnt);
return 0;
}
@@ -896,5 +897,6 @@ void ath10k_snoc_stop_qmi_service(struct ath10k *ar)
WLFW_SERVICE_INS_ID_V01,
&qmi_cfg->wlfw_clnt_nb);
destroy_workqueue(qmi_cfg->event_wq);
+ qmi_handle_destroy(qmi_cfg->wlfw_clnt);
qmi_cfg = NULL;
}
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa.c b/drivers/platform/msm/ipa/ipa_v2/ipa.c
index 85fa9da50779..df741c1c8e5f 100644
--- a/drivers/platform/msm/ipa/ipa_v2/ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v2/ipa.c
@@ -531,7 +531,7 @@ static void ipa_wan_msg_free_cb(void *buff, u32 len, u32 type)
kfree(buff);
}
-static int ipa_send_wan_msg(unsigned long usr_param, uint8_t msg_type)
+static int ipa_send_wan_msg(unsigned long usr_param, uint8_t msg_type, bool is_cache)
{
int retval;
struct ipa_wan_msg *wan_msg;
@@ -559,6 +559,25 @@ static int ipa_send_wan_msg(unsigned long usr_param, uint8_t msg_type)
return retval;
}
+ if (is_cache) {
+ mutex_lock(&ipa_ctx->ipa_cne_evt_lock);
+
+ /* cache the cne event */
+ memcpy(&ipa_ctx->ipa_cne_evt_req_cache[
+ ipa_ctx->num_ipa_cne_evt_req].wan_msg,
+ wan_msg,
+ sizeof(struct ipa_wan_msg));
+
+ memcpy(&ipa_ctx->ipa_cne_evt_req_cache[
+ ipa_ctx->num_ipa_cne_evt_req].msg_meta,
+ &msg_meta,
+ sizeof(struct ipa_msg_meta));
+
+ ipa_ctx->num_ipa_cne_evt_req++;
+ ipa_ctx->num_ipa_cne_evt_req %= IPA_MAX_NUM_REQ_CACHE;
+ mutex_unlock(&ipa_ctx->ipa_cne_evt_lock);
+ }
+
return 0;
}
@@ -1328,21 +1347,21 @@ static long ipa_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
}
break;
case IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_ADD:
- retval = ipa_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_ADD);
+ retval = ipa_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_ADD, true);
if (retval) {
IPAERR("ipa_send_wan_msg failed: %d\n", retval);
break;
}
break;
case IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_DEL:
- retval = ipa_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_DEL);
+ retval = ipa_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_DEL, true);
if (retval) {
IPAERR("ipa_send_wan_msg failed: %d\n", retval);
break;
}
break;
case IPA_IOC_NOTIFY_WAN_EMBMS_CONNECTED:
- retval = ipa_send_wan_msg(arg, WAN_EMBMS_CONNECT);
+ retval = ipa_send_wan_msg(arg, WAN_EMBMS_CONNECT, false);
if (retval) {
IPAERR("ipa_send_wan_msg failed: %d\n", retval);
break;
@@ -4165,6 +4184,7 @@ static int ipa_init(const struct ipa_plat_drv_res *resource_p,
mutex_init(&ipa_ctx->lock);
mutex_init(&ipa_ctx->nat_mem.lock);
+ mutex_init(&ipa_ctx->ipa_cne_evt_lock);
idr_init(&ipa_ctx->ipa_idr);
spin_lock_init(&ipa_ctx->idr_lock);
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_i.h b/drivers/platform/msm/ipa/ipa_v2/ipa_i.h
index bfb1ce56412c..39d82fab325f 100644
--- a/drivers/platform/msm/ipa/ipa_v2/ipa_i.h
+++ b/drivers/platform/msm/ipa/ipa_v2/ipa_i.h
@@ -65,6 +65,8 @@
#define IPA_IPC_LOG_PAGES 50
+#define IPA_MAX_NUM_REQ_CACHE 10
+
#define IPADBG(fmt, args...) \
do { \
pr_debug(DRV_NAME " %s:%d " fmt, __func__, __LINE__, ## args);\
@@ -996,6 +998,11 @@ struct ipacm_client_info {
bool uplink;
};
+struct ipa_cne_evt {
+ struct ipa_wan_msg wan_msg;
+ struct ipa_msg_meta msg_meta;
+};
+
/**
* struct ipa_context - IPA context
* @class: pointer to the struct class
@@ -1197,6 +1204,9 @@ struct ipa_context {
u32 ipa_rx_max_timeout_usec;
u32 ipa_polling_iteration;
bool ipa_uc_monitor_holb;
+ struct ipa_cne_evt ipa_cne_evt_req_cache[IPA_MAX_NUM_REQ_CACHE];
+ int num_ipa_cne_evt_req;
+ struct mutex ipa_cne_evt_lock;
};
/**
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa.c b/drivers/platform/msm/ipa/ipa_v3/ipa.c
index 4cba8a7573bb..fd503f48f17c 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa.c
@@ -598,7 +598,7 @@ static void ipa3_wan_msg_free_cb(void *buff, u32 len, u32 type)
kfree(buff);
}
-static int ipa3_send_wan_msg(unsigned long usr_param, uint8_t msg_type)
+static int ipa3_send_wan_msg(unsigned long usr_param, uint8_t msg_type, bool is_cache)
{
int retval;
struct ipa_wan_msg *wan_msg;
@@ -626,6 +626,25 @@ static int ipa3_send_wan_msg(unsigned long usr_param, uint8_t msg_type)
return retval;
}
+ if (is_cache) {
+ mutex_lock(&ipa3_ctx->ipa_cne_evt_lock);
+
+ /* cache the cne event */
+ memcpy(&ipa3_ctx->ipa_cne_evt_req_cache[
+ ipa3_ctx->num_ipa_cne_evt_req].wan_msg,
+ wan_msg,
+ sizeof(struct ipa_wan_msg));
+
+ memcpy(&ipa3_ctx->ipa_cne_evt_req_cache[
+ ipa3_ctx->num_ipa_cne_evt_req].msg_meta,
+ &msg_meta,
+ sizeof(struct ipa_msg_meta));
+
+ ipa3_ctx->num_ipa_cne_evt_req++;
+ ipa3_ctx->num_ipa_cne_evt_req %= IPA_MAX_NUM_REQ_CACHE;
+ mutex_unlock(&ipa3_ctx->ipa_cne_evt_lock);
+ }
+
return 0;
}
@@ -1603,21 +1622,21 @@ static long ipa3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
}
break;
case IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_ADD:
- retval = ipa3_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_ADD);
+ retval = ipa3_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_ADD, true);
if (retval) {
IPAERR("ipa3_send_wan_msg failed: %d\n", retval);
break;
}
break;
case IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_DEL:
- retval = ipa3_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_DEL);
+ retval = ipa3_send_wan_msg(arg, WAN_UPSTREAM_ROUTE_DEL, true);
if (retval) {
IPAERR("ipa3_send_wan_msg failed: %d\n", retval);
break;
}
break;
case IPA_IOC_NOTIFY_WAN_EMBMS_CONNECTED:
- retval = ipa3_send_wan_msg(arg, WAN_EMBMS_CONNECT);
+ retval = ipa3_send_wan_msg(arg, WAN_EMBMS_CONNECT, false);
if (retval) {
IPAERR("ipa3_send_wan_msg failed: %d\n", retval);
break;
@@ -4820,6 +4839,7 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
mutex_init(&ipa3_ctx->lock);
mutex_init(&ipa3_ctx->nat_mem.lock);
mutex_init(&ipa3_ctx->q6_proxy_clk_vote_mutex);
+ mutex_init(&ipa3_ctx->ipa_cne_evt_lock);
idr_init(&ipa3_ctx->ipa_idr);
spin_lock_init(&ipa3_ctx->idr_lock);
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_i.h b/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
index 7da78457f1b1..8ae714d4e7cc 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
@@ -64,6 +64,8 @@
#define IPA_IPC_LOG_PAGES 50
+#define IPA_MAX_NUM_REQ_CACHE 10
+
#define IPADBG(fmt, args...) \
do { \
pr_debug(DRV_NAME " %s:%d " fmt, __func__, __LINE__, ## args);\
@@ -1049,6 +1051,11 @@ struct ipa_dma_task_info {
struct ipahal_imm_cmd_pyld *cmd_pyld;
};
+struct ipa_cne_evt {
+ struct ipa_wan_msg wan_msg;
+ struct ipa_msg_meta msg_meta;
+};
+
/**
* struct ipa3_context - IPA context
* @class: pointer to the struct class
@@ -1270,6 +1277,9 @@ struct ipa3_context {
u32 ipa_tz_unlock_reg_num;
struct ipa_tz_unlock_reg_info *ipa_tz_unlock_reg;
struct ipa_dma_task_info dma_task_info;
+ struct ipa_cne_evt ipa_cne_evt_req_cache[IPA_MAX_NUM_REQ_CACHE];
+ int num_ipa_cne_evt_req;
+ struct mutex ipa_cne_evt_lock;
};
/**