diff options
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; }; /** |
