ipq807x: 6.1: refresh patches
authorRobert Marko <robimarko@gmail.com>
Mon, 22 May 2023 21:23:14 +0000 (23:23 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Sun, 28 May 2023 06:57:09 +0000 (08:57 +0200)
Manually refresh tsens, PCI and CPR patches to apply and compile.
Then run automatic refresh on rest of the patches.

Signed-off-by: Robert Marko <robimarko@gmail.com>
18 files changed:
target/linux/ipq807x/patches-6.1/0042-v6.2-thermal-drivers-tsens-Add-support-for-combined-inter.patch
target/linux/ipq807x/patches-6.1/0043-v6.2-thermal-drivers-tsens-Allow-configuring-min-and-max-.patch
target/linux/ipq807x/patches-6.1/0044-v6.2-thermal-drivers-tsens-Add-IPQ8074-support.patch
target/linux/ipq807x/patches-6.1/0067-v6.2-arm64-dts-qcom-ipq8074-hk01-add-VQMMC-supply.patch
target/linux/ipq807x/patches-6.1/0068-v6.2-arm64-dts-qcom-hk01-use-GPIO-flags-for-tlmm.patch
target/linux/ipq807x/patches-6.1/0081-v6.3-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch
target/linux/ipq807x/patches-6.1/0112-remoteproc-qcom-Add-PRNG-proxy-clock.patch
target/linux/ipq807x/patches-6.1/0113-remoteproc-qcom-Add-secure-PIL-support.patch
target/linux/ipq807x/patches-6.1/0114-remoteproc-qcom-Add-support-for-split-q6-m3-wlan-fir.patch
target/linux/ipq807x/patches-6.1/0115-remoteproc-qcom-Add-ssr-subdevice-identifier.patch
target/linux/ipq807x/patches-6.1/0116-remoteproc-qcom-Update-regmap-offsets-for-halt-regis.patch
target/linux/ipq807x/patches-6.1/0119-remoteproc-wcss-disable-auto-boot-for-IPQ8074.patch
target/linux/ipq807x/patches-6.1/0124-soc-qcom-socinfo-move-SMEM-item-struct-and-defines-t.patch
target/linux/ipq807x/patches-6.1/0125-cpufreq-qcom-nvmem-reuse-socinfo-SMEM-item-struct.patch
target/linux/ipq807x/patches-6.1/0126-cpufreq-qcom-nvmem-use-SoC-ID-s-from-bindings.patch
target/linux/ipq807x/patches-6.1/0127-cpufreq-qcom-nvmem-make-qcom_cpufreq_get_msm_id-retu.patch
target/linux/ipq807x/patches-6.1/0128-cpufreq-qcom-nvmem-add-support-for-IPQ8074.patch
target/linux/ipq807x/patches-6.1/0901-regulator-add-Qualcomm-CPR-regulators.patch

index 2c6e70b14d44d029ec9188f70d30789c96276d74..032072599968f15959d158b69a2ceb1e1c8a2eba 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
        .max_sensors    = 16,
 --- a/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
-@@ -531,6 +531,27 @@ static irqreturn_t tsens_irq_thread(int
+@@ -532,6 +532,27 @@ static irqreturn_t tsens_irq_thread(int
        return IRQ_HANDLED;
  }
  
@@ -86,10 +86,10 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
 +      return tsens_irq_thread(irq, data);
 +}
 +
- static int tsens_set_trips(void *_sensor, int low, int high)
+ static int tsens_set_trips(struct thermal_zone_device *tz, int low, int high)
  {
-       struct tsens_sensor *s = _sensor;
-@@ -1081,13 +1102,18 @@ static int tsens_register(struct tsens_p
+       struct tsens_sensor *s = tz->devdata;
+@@ -1074,13 +1095,18 @@ static int tsens_register(struct tsens_p
                                   tsens_mC_to_hw(priv->sensor, 0));
        }
  
@@ -116,7 +116,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  }
 --- a/drivers/thermal/qcom/tsens.h
 +++ b/drivers/thermal/qcom/tsens.h
-@@ -495,6 +495,7 @@ enum regfield_ids {
+@@ -493,6 +493,7 @@ enum regfield_ids {
   * struct tsens_features - Features supported by the IP
   * @ver_major: Major number of IP version
   * @crit_int: does the IP support critical interrupts?
@@ -124,7 +124,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
   * @adc:      do the sensors only output adc code (instead of temperature)?
   * @srot_split: does the IP neatly splits the register space into SROT and TM,
   *              with SROT only being available to secure boot firmware?
-@@ -504,6 +505,7 @@ enum regfield_ids {
+@@ -502,6 +503,7 @@ enum regfield_ids {
  struct tsens_features {
        unsigned int ver_major;
        unsigned int crit_int:1;
index 5a571a36b625966e75c2a01ad88f5f3deda47eb3..363061813a8d96e2cc7aef053c59a795c191dbea 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  static const struct reg_field tsens_v2_regfields[MAX_REGFIELDS] = {
 --- a/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
-@@ -572,8 +572,8 @@ static int tsens_set_trips(void *_sensor
+@@ -573,8 +573,8 @@ static int tsens_set_trips(struct therma
        dev_dbg(dev, "[%u] %s: proposed thresholds: (%d:%d)\n",
                hw_id, __func__, low, high);
  
@@ -81,7 +81,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
        low_val  = tsens_mC_to_hw(s, cl_low);
 --- a/drivers/thermal/qcom/tsens.h
 +++ b/drivers/thermal/qcom/tsens.h
-@@ -501,6 +501,8 @@ enum regfield_ids {
+@@ -499,6 +499,8 @@ enum regfield_ids {
   *              with SROT only being available to secure boot firmware?
   * @has_watchdog: does this IP support watchdog functionality?
   * @max_sensors: maximum sensors supported by this version of the IP
@@ -90,7 +90,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
   */
  struct tsens_features {
        unsigned int ver_major;
-@@ -510,6 +512,8 @@ struct tsens_features {
+@@ -508,6 +510,8 @@ struct tsens_features {
        unsigned int srot_split:1;
        unsigned int has_watchdog:1;
        unsigned int max_sensors;
index 3e3e77a0a8936f08fa57c61eede0d07f04adb824..eaea6939591dfd8d5357b8ab7c48ecbd53254cc2 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
        .num_sensors    = 13,
 --- a/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
-@@ -991,6 +991,9 @@ static const struct of_device_id tsens_t
+@@ -981,6 +981,9 @@ static const struct of_device_id tsens_t
                .compatible = "qcom,ipq8064-tsens",
                .data = &data_8960,
        }, {
@@ -64,7 +64,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
        }, {
 --- a/drivers/thermal/qcom/tsens.h
 +++ b/drivers/thermal/qcom/tsens.h
-@@ -599,6 +599,6 @@ extern struct tsens_plat_data data_8916,
+@@ -597,6 +597,6 @@ extern struct tsens_plat_data data_8916,
  extern struct tsens_plat_data data_tsens_v1, data_8976, data_8956;
  
  /* TSENS v2 targets */
index af65c0c979c217d4055febb5e8c892b4d17daeed..ebd3763a58f77847ee268e4ad918448751fa599e 100644 (file)
@@ -27,7 +27,7 @@ Link: https://lore.kernel.org/r/20220818221815.346233-5-robimarko@gmail.com
  
  / {
        model = "Qualcomm Technologies, Inc. IPQ8074-HK01";
-@@ -82,6 +83,7 @@
+@@ -84,6 +85,7 @@
  
  &sdhc_1 {
        status = "okay";
index 93c57d9ea934c1dd111a238f697ce161257502f5..e08f6d1f3c63800c6bde96d6debd26a81cead186 100644 (file)
@@ -25,7 +25,7 @@ Link: https://lore.kernel.org/r/20221107092930.33325-3-robimarko@gmail.com
  
  / {
        model = "Qualcomm Technologies, Inc. IPQ8074-HK01";
-@@ -50,12 +51,12 @@
+@@ -52,12 +53,12 @@
  
  &pcie0 {
        status = "okay";
index c7a7e7ab49a4a4cb0210ee1ed235e5b568c1ed73..60caee46cab96a2119e01a74501b76965826322b 100644 (file)
@@ -1,23 +1,26 @@
-From 76893579a74e7e5c79f0c717d95d13f4cbbb5f4d Mon Sep 17 00:00:00 2001
+From f356132229b18ceef5d5ef9103bbaa9bdeb84c8d Mon Sep 17 00:00:00 2001
 From: Robert Marko <robimarko@gmail.com>
-Date: Sat, 24 Dec 2022 17:11:16 +0100
-Subject: [PATCH] PCI: qcom: Add support for IPQ8074 Gen3 port
+Date: Fri, 13 Jan 2023 17:44:47 +0100
+Subject: [PATCH] PCI: qcom: Add IPQ8074 Gen3 port support
 
 IPQ8074 has one Gen2 and one Gen3 port, with Gen2 port already supported.
 Add compatible for Gen3 port which uses the same controller as IPQ6018.
 
+Link: https://lore.kernel.org/r/20230113164449.906002-7-robimarko@gmail.com
 Signed-off-by: Robert Marko <robimarko@gmail.com>
+Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
 ---
  drivers/pci/controller/dwc/pcie-qcom.c | 1 +
  1 file changed, 1 insertion(+)
 
 --- a/drivers/pci/controller/dwc/pcie-qcom.c
 +++ b/drivers/pci/controller/dwc/pcie-qcom.c
-@@ -1733,6 +1733,7 @@ static const struct of_device_id qcom_pc
-       { .compatible = "qcom,pcie-apq8064", .data = &ipq8064_cfg },
-       { .compatible = "qcom,pcie-msm8996", .data = &msm8996_cfg },
-       { .compatible = "qcom,pcie-ipq8074", .data = &ipq8074_cfg },
-+      { .compatible = "qcom,pcie-ipq8074-gen3", .data = &ipq6018_cfg },
-       { .compatible = "qcom,pcie-ipq4019", .data = &ipq4019_cfg },
-       { .compatible = "qcom,pcie-qcs404", .data = &ipq4019_cfg },
-       { .compatible = "qcom,pcie-sdm845", .data = &sdm845_cfg },
+@@ -1745,6 +1745,7 @@ static const struct of_device_id qcom_pc
+       { .compatible = "qcom,pcie-ipq8064", .data = &cfg_2_1_0 },
+       { .compatible = "qcom,pcie-ipq8064-v2", .data = &cfg_2_1_0 },
+       { .compatible = "qcom,pcie-ipq8074", .data = &cfg_2_3_3 },
++      { .compatible = "qcom,pcie-ipq8074-gen3", .data = &cfg_2_9_0 },
+       { .compatible = "qcom,pcie-msm8996", .data = &cfg_2_3_2 },
+       { .compatible = "qcom,pcie-qcs404", .data = &cfg_2_4_0 },
+       { .compatible = "qcom,pcie-sa8540p", .data = &cfg_1_9_0 },
index 2124bfa3f15cb31f8faa6ff3e98468374d685558..0a984948b53f81dff74b589a2774a992d5f62072 100644 (file)
@@ -136,7 +136,7 @@ Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
                if (ret)
                        goto free_rproc;
        }
-@@ -1086,6 +1112,7 @@ static int q6v5_wcss_remove(struct platf
+@@ -1087,6 +1113,7 @@ static int q6v5_wcss_remove(struct platf
  }
  
  static const struct wcss_data wcss_ipq8074_res_init = {
@@ -144,7 +144,7 @@ Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
        .firmware_name = "IPQ8074/q6_fw.mdt",
        .crash_reason_smem = WCSS_CRASH_REASON,
        .aon_reset_required = true,
-@@ -1095,6 +1122,8 @@ static const struct wcss_data wcss_ipq80
+@@ -1096,6 +1123,8 @@ static const struct wcss_data wcss_ipq80
  };
  
  static const struct wcss_data wcss_qcs404_res_init = {
index 1d415942e08a89a29ff4cd0f178c4e9cbcc6775f..0328efc041bde6370722824506b9ea477c9910df 100644 (file)
@@ -133,7 +133,7 @@ Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
  
        ret = q6v5_wcss_init_mmio(wcss, pdev);
        if (ret)
-@@ -1119,6 +1155,7 @@ static const struct wcss_data wcss_ipq80
+@@ -1120,6 +1156,7 @@ static const struct wcss_data wcss_ipq80
        .wcss_q6_reset_required = true,
        .ops = &q6v5_wcss_ipq8074_ops,
        .requires_force_stop = true,
index 1231824af0bbc8104a583b1a7434529f729611b8..e5c9506c89ce2f13300e7de9080b930bfb7d686d 100644 (file)
@@ -82,7 +82,7 @@ Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
  
        ret = q6v5_wcss_init_mmio(wcss, pdev);
        if (ret)
-@@ -1149,7 +1173,8 @@ static int q6v5_wcss_remove(struct platf
+@@ -1150,7 +1174,8 @@ static int q6v5_wcss_remove(struct platf
  
  static const struct wcss_data wcss_ipq8074_res_init = {
        .init_clock = ipq8074_init_clock,
@@ -92,7 +92,7 @@ Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
        .crash_reason_smem = WCSS_CRASH_REASON,
        .aon_reset_required = true,
        .wcss_q6_reset_required = true,
-@@ -1162,7 +1187,7 @@ static const struct wcss_data wcss_qcs40
+@@ -1163,7 +1188,7 @@ static const struct wcss_data wcss_qcs40
        .init_clock = qcs404_init_clock,
        .init_regulator = qcs404_init_regulator,
        .crash_reason_smem = WCSS_CRASH_REASON,
index 0ff2d0358b3e7bc43f3d0fcc94dbf2717349bd60..be63d46e8e4bac1d8eb76afe888751fba23d2dc8 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
 
 --- a/drivers/remoteproc/qcom_q6v5_wcss.c
 +++ b/drivers/remoteproc/qcom_q6v5_wcss.c
-@@ -1178,6 +1178,7 @@ static const struct wcss_data wcss_ipq80
+@@ -1179,6 +1179,7 @@ static const struct wcss_data wcss_ipq80
        .crash_reason_smem = WCSS_CRASH_REASON,
        .aon_reset_required = true,
        .wcss_q6_reset_required = true,
index c8e5aceefc3ca0bff39cd023abd777c0eae7aaeb..f0b717210fbe9817d86cfd98b0dd4c38aaad6035 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Sricharan R <sricharan@codeaurora.org>
  
        return 0;
  }
-@@ -1178,6 +1182,7 @@ static const struct wcss_data wcss_ipq80
+@@ -1179,6 +1183,7 @@ static const struct wcss_data wcss_ipq80
        .crash_reason_smem = WCSS_CRASH_REASON,
        .aon_reset_required = true,
        .wcss_q6_reset_required = true,
@@ -69,7 +69,7 @@ Signed-off-by: Sricharan R <sricharan@codeaurora.org>
        .ssr_name = "q6wcss",
        .ops = &q6v5_wcss_ipq8074_ops,
        .requires_force_stop = true,
-@@ -1192,6 +1197,7 @@ static const struct wcss_data wcss_qcs40
+@@ -1193,6 +1198,7 @@ static const struct wcss_data wcss_qcs40
        .version = WCSS_QCS404,
        .aon_reset_required = false,
        .wcss_q6_reset_required = false,
index a562f7864e75fa80161d5e5e54ed79b4f379f04e..8674522a1129250a98b6863f60a4c2717d078445 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  };
  
  static int q6v5_wcss_reset(struct q6v5_wcss *wcss)
-@@ -1151,6 +1152,7 @@ static int q6v5_wcss_probe(struct platfo
+@@ -1150,6 +1151,7 @@ static int q6v5_wcss_probe(struct platfo
                                                      desc->sysmon_name,
                                                      desc->ssctl_id);
  
@@ -30,7 +30,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
        ret = rproc_add(rproc);
        if (ret)
                goto free_rproc;
-@@ -1187,6 +1189,7 @@ static const struct wcss_data wcss_ipq80
+@@ -1188,6 +1190,7 @@ static const struct wcss_data wcss_ipq80
        .ops = &q6v5_wcss_ipq8074_ops,
        .requires_force_stop = true,
        .need_mem_protection = true,
@@ -38,7 +38,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  };
  
  static const struct wcss_data wcss_qcs404_res_init = {
-@@ -1203,6 +1206,7 @@ static const struct wcss_data wcss_qcs40
+@@ -1204,6 +1207,7 @@ static const struct wcss_data wcss_qcs40
        .ssctl_id = 0x12,
        .ops = &q6v5_wcss_qcs404_ops,
        .requires_force_stop = false,
index 30f6e988aae81ccec0a7fb6cb8f9ad0231564427..4a744490cfe9d92f7f50d972d9e1f1cb80304736 100644 (file)
@@ -41,7 +41,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  #ifdef CONFIG_DEBUG_FS
  #define SMEM_IMAGE_VERSION_BLOCKS_COUNT        32
  #define SMEM_IMAGE_VERSION_SIZE                4096
-@@ -105,54 +97,6 @@ static const char *const pmic_models[] =
+@@ -116,54 +108,6 @@ static const char *const pmic_models[] =
  };
  #endif /* CONFIG_DEBUG_FS */
  
index aa7fe5a868a625cf9c0c708d037a5d78fe131cab..5776614463ec90a2911dc86170a8c02bce225a76 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  
  enum _msm_id {
        MSM8996V3 = 0xF6ul,
-@@ -145,17 +144,14 @@ static void get_krait_bin_format_b(struc
+@@ -143,17 +142,14 @@ static void get_krait_bin_format_b(struc
  static enum _msm8996_version qcom_cpufreq_get_msm_id(void)
  {
        size_t len;
index 3303b4027794121ebd7673a11fb08705c1f331ea..bdac41a02818babc91c412648af2254f21f7de7c 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  
  enum _msm8996_version {
        MSM8996_V3,
-@@ -152,12 +147,12 @@ static enum _msm8996_version qcom_cpufre
+@@ -150,12 +145,12 @@ static enum _msm8996_version qcom_cpufre
                return NUM_OF_MSM8996_VERSIONS;
  
        switch (info->id) {
index 768866b1b25c943c13a8fe6a9b0be0e407dd46ea..0a33c5c66d9ef512e92db9bd9bee236d327f7ac3 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  struct qcom_cpufreq_drv;
  
  struct qcom_cpufreq_match_data {
-@@ -136,30 +130,16 @@ static void get_krait_bin_format_b(struc
+@@ -134,30 +128,16 @@ static void get_krait_bin_format_b(struc
        dev_dbg(cpu_dev, "PVS version: %d\n", *pvs_ver);
  }
  
@@ -69,7 +69,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  }
  
  static int qcom_cpufreq_kryo_name_version(struct device *cpu_dev,
-@@ -168,25 +148,25 @@ static int qcom_cpufreq_kryo_name_versio
+@@ -166,25 +146,25 @@ static int qcom_cpufreq_kryo_name_versio
                                          struct qcom_cpufreq_drv *drv)
  {
        size_t len;
index 49fd4e4cc0b3d61b1797f6f177278fc21ab62114..d2653e52d67f60db37e082fcdbacea1f83ced755 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 
 --- a/drivers/cpufreq/cpufreq-dt-platdev.c
 +++ b/drivers/cpufreq/cpufreq-dt-platdev.c
-@@ -159,6 +159,7 @@ static const struct of_device_id blockli
+@@ -164,6 +164,7 @@ static const struct of_device_id blockli
        { .compatible = "ti,omap3", },
  
        { .compatible = "qcom,ipq8064", },
@@ -41,7 +41,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  struct qcom_cpufreq_drv;
  
  struct qcom_cpufreq_match_data {
-@@ -218,6 +221,37 @@ len_error:
+@@ -216,6 +219,37 @@ len_error:
        return ret;
  }
  
@@ -79,7 +79,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  static const struct qcom_cpufreq_match_data match_data_kryo = {
        .get_version = qcom_cpufreq_kryo_name_version,
  };
-@@ -232,6 +266,10 @@ static const struct qcom_cpufreq_match_d
+@@ -230,6 +264,10 @@ static const struct qcom_cpufreq_match_d
        .genpd_names = qcs404_genpd_names,
  };
  
@@ -90,7 +90,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
  static int qcom_cpufreq_probe(struct platform_device *pdev)
  {
        struct qcom_cpufreq_drv *drv;
-@@ -431,6 +469,7 @@ static const struct of_device_id qcom_cp
+@@ -375,6 +413,7 @@ static const struct of_device_id qcom_cp
        { .compatible = "qcom,msm8996", .data = &match_data_kryo },
        { .compatible = "qcom,qcs404", .data = &match_data_qcs404 },
        { .compatible = "qcom,ipq8064", .data = &match_data_krait },
index 3deadea1394178c9bf3fe5f0ef1734d1fd3e2daf..9b9f7159f35b08d9e32fd9e9c82a09da9c3e50a3 100644 (file)
@@ -1,22 +1,21 @@
-From 303fb163bb86f04432c93325ff8b9638c9e50641 Mon Sep 17 00:00:00 2001
+From c9df32c057e43e38c8113199e64f7a64f8d341df Mon Sep 17 00:00:00 2001
 From: Robert Marko <robimarko@gmail.com>
 Date: Mon, 11 Apr 2022 14:35:36 +0200
 Subject: [PATCH] regulator: add Qualcomm CPR regulators
 
-Add Qualcomm CPR driver, which allows using the CPR HW to calculate the
-correct OPP point voltage dynamically based on the system load.
+Allow building Qualcomm CPR regulators.
 
 Signed-off-by: Robert Marko <robimarko@gmail.com>
 ---
  drivers/regulator/Kconfig               |   33 +
  drivers/regulator/Makefile              |    3 +
  drivers/regulator/cpr3-npu-regulator.c  |  695 +++
- drivers/regulator/cpr3-regulator.c      | 5112 +++++++++++++++++++++++
+ drivers/regulator/cpr3-regulator.c      | 5111 +++++++++++++++++++++++
  drivers/regulator/cpr3-regulator.h      | 1211 ++++++
  drivers/regulator/cpr3-util.c           | 2750 ++++++++++++
  drivers/regulator/cpr4-apss-regulator.c | 1819 ++++++++
  include/soc/qcom/socinfo.h              |  463 ++
- 8 files changed, 12086 insertions(+)
+ 8 files changed, 12085 insertions(+)
  create mode 100644 drivers/regulator/cpr3-npu-regulator.c
  create mode 100644 drivers/regulator/cpr3-regulator.c
  create mode 100644 drivers/regulator/cpr3-regulator.h
@@ -26,7 +25,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 
 --- a/drivers/regulator/Kconfig
 +++ b/drivers/regulator/Kconfig
-@@ -1423,5 +1423,38 @@ config REGULATOR_QCOM_LABIBB
+@@ -1524,4 +1524,37 @@ config REGULATOR_QCOM_LABIBB
          boost regulator and IBB can be used as a negative boost regulator
          for LCD display panel.
  
@@ -64,10 +63,9 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 +        voltage and CPR target quotient values out of hardware fuses.
 +
  endif
 --- a/drivers/regulator/Makefile
 +++ b/drivers/regulator/Makefile
-@@ -105,6 +105,9 @@ obj-$(CONFIG_REGULATOR_QCOM_RPMH) += qco
+@@ -110,6 +110,9 @@ obj-$(CONFIG_REGULATOR_QCOM_RPMH) += qco
  obj-$(CONFIG_REGULATOR_QCOM_SMD_RPM) += qcom_smd-regulator.o
  obj-$(CONFIG_REGULATOR_QCOM_SPMI) += qcom_spmi-regulator.o
  obj-$(CONFIG_REGULATOR_QCOM_USB_VBUS) += qcom_usb_vbus-regulator.o
@@ -777,7 +775,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 +MODULE_ALIAS("platform:npu-ipq807x");
 --- /dev/null
 +++ b/drivers/regulator/cpr3-regulator.c
-@@ -0,0 +1,5112 @@
+@@ -0,0 +1,5111 @@
 +/*
 + * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
 + *
@@ -4419,7 +4417,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 +      config.init_data        = init_data;
 +      config.of_node          = vreg->of_node;
 +
-+      vreg->rdev = regulator_register(rdesc, &config);
++      vreg->rdev = regulator_register(vreg->thread->ctrl->dev, rdesc, &config);
 +      if (IS_ERR(vreg->rdev)) {
 +              rc = PTR_ERR(vreg->rdev);
 +              cpr3_err(vreg, "regulator_register failed, rc=%d\n", rc);
@@ -4613,7 +4611,6 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 +      .open    = cpr3_debug_quot_open,
 +      .release = cpr3_debug_quot_release,
 +      .read    = cpr3_debug_quot_read,
-+      .llseek  = no_llseek,
 +};
 +
 +/**