···163163 if (!__scm->path)164164 return 0;165165166166- if (IS_ERR(__scm->path))167167- return -EINVAL;168168-169166 mutex_lock(&__scm->scm_bw_lock);170167 if (!__scm->scm_vote_count) {171168 ret = icc_set_bw(__scm->path, 0, UINT_MAX);···180183181184static void qcom_scm_bw_disable(void)182185{183183- if (IS_ERR_OR_NULL(__scm->path))186186+ if (!__scm->path)184187 return;185188186189 mutex_lock(&__scm->scm_bw_lock);···566569567570 ret = qcom_scm_bw_enable();568571 if (ret)569569- return ret;572572+ goto disable_clk;570573571574 desc.args[1] = mdata_phys;572575573576 ret = qcom_scm_call(__scm->dev, &desc, &res);574574-575577 qcom_scm_bw_disable();578578+579579+disable_clk:576580 qcom_scm_clk_disable();577581578582out:···635637636638 ret = qcom_scm_bw_enable();637639 if (ret)638638- return ret;640640+ goto disable_clk;639641640642 ret = qcom_scm_call(__scm->dev, &desc, &res);641643 qcom_scm_bw_disable();644644+645645+disable_clk:642646 qcom_scm_clk_disable();643647644648 return ret ? : res.result[0];···672672673673 ret = qcom_scm_bw_enable();674674 if (ret)675675- return ret;675675+ goto disable_clk;676676677677 ret = qcom_scm_call(__scm->dev, &desc, &res);678678 qcom_scm_bw_disable();679679+680680+disable_clk:679681 qcom_scm_clk_disable();680682681683 return ret ? : res.result[0];···708706709707 ret = qcom_scm_bw_enable();710708 if (ret)711711- return ret;709709+ goto disable_clk;712710713711 ret = qcom_scm_call(__scm->dev, &desc, &res);714714-715712 qcom_scm_bw_disable();713713+714714+disable_clk:716715 qcom_scm_clk_disable();717716718717 return ret ? : res.result[0];
+1-1
drivers/soc/qcom/cmd-db.c
···362362{363363 return platform_driver_register(&cmd_db_dev_driver);364364}365365-arch_initcall(cmd_db_device_init);365365+core_initcall(cmd_db_device_init);366366367367MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Command DB Driver");368368MODULE_LICENSE("GPL v2");
+4-4
drivers/soc/qcom/icc-bwmon.c
···282282 * Cache is necessary for using regmap fields with non-readable283283 * registers.284284 */285285- .cache_type = REGCACHE_RBTREE,285285+ .cache_type = REGCACHE_MAPLE,286286};287287288288static const struct regmap_config msm8998_bwmon_global_regmap_cfg = {···301301 * Cache is necessary for using regmap fields with non-readable302302 * registers.303303 */304304- .cache_type = REGCACHE_RBTREE,304304+ .cache_type = REGCACHE_MAPLE,305305};306306307307static const struct reg_field sdm845_cpu_bwmon_reg_fields[] = {···369369 * Cache is necessary for using regmap fields with non-readable370370 * registers.371371 */372372- .cache_type = REGCACHE_RBTREE,372372+ .cache_type = REGCACHE_MAPLE,373373};374374375375/* BWMON v5 */···446446 * Cache is necessary for using regmap fields with non-readable447447 * registers.448448 */449449- .cache_type = REGCACHE_RBTREE,449449+ .cache_type = REGCACHE_MAPLE,450450};451451452452static void bwmon_clear_counters(struct icc_bwmon *bwmon, bool clear_all)