Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +6 −23 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include <linux/msm-bus-board.h> #include <linux/regulator/consumer.h> #include <linux/dma-direction.h> #include <linux/sde_rsc.h> #include <soc/qcom/scm.h> #include <soc/qcom/secure_buffer.h> #include <asm/cacheflush.h> Loading Loading @@ -301,7 +300,7 @@ static int sde_rotator_update_clk(struct sde_rot_mgr *mgr) static int sde_rotator_footswitch_ctrl(struct sde_rot_mgr *mgr, bool on) { int ret; int ret = 0; if (mgr->regulator_enable == on) { SDEROT_ERR("Regulators already in selected mode on=%d\n", on); Loading @@ -319,16 +318,13 @@ static int sde_rotator_footswitch_ctrl(struct sde_rot_mgr *mgr, bool on) if (mgr->ops_hw_pre_pmevent) mgr->ops_hw_pre_pmevent(mgr, on); if (mgr->rsc_client) ret = sde_rsc_client_state_update(mgr->rsc_client, on ? SDE_RSC_CLK_STATE : SDE_RSC_IDLE_STATE, NULL, SDE_RSC_INVALID_CRTC_ID, NULL); else if (!sde_rot_mgr_pd_enabled(mgr)) ret = sde_rot_enable_vreg(mgr->module_power.vreg_config, mgr->module_power.num_vreg, on); if (ret) { pr_err("rotator regulator failed to %s ret:%d client:%d\n", on ? "enable" : "disable", ret, mgr->rsc_client != NULL); on ? "enable" : "disable", ret, sde_rot_mgr_pd_enabled(mgr)); return ret; } Loading Loading @@ -2970,16 +2966,7 @@ static int sde_rotator_res_init(struct platform_device *pdev, { int ret; mgr->rsc_client = sde_rsc_client_create( SDE_RSC_INDEX, "sde_rotator_core", false); if (IS_ERR(mgr->rsc_client)) { ret = PTR_ERR(mgr->rsc_client); pr_err("rsc client create returned %d\n", ret); mgr->rsc_client = NULL; return ret; } if (!mgr->rsc_client) { if (!sde_rot_mgr_pd_enabled(mgr)) { ret = sde_rotator_get_dt_vreg_data( &pdev->dev, &mgr->module_power); if (ret) Loading Loading @@ -3007,13 +2994,9 @@ static void sde_rotator_res_destroy(struct sde_rot_mgr *mgr) sde_rotator_unregister_clk(mgr); sde_rotator_bus_scale_unregister(mgr); if (mgr->rsc_client) { sde_rsc_client_destroy(mgr->rsc_client); mgr->rsc_client = NULL; } else { if (!sde_rot_mgr_pd_enabled(mgr)) sde_rotator_put_dt_vreg_data(&pdev->dev, &mgr->module_power); } } int sde_rotator_core_init(struct sde_rot_mgr **pmgr, struct platform_device *pdev) Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.h +9 −3 Original line number Diff line number Diff line Loading @@ -385,7 +385,6 @@ struct sde_rot_bus_data_type { * @reg_bus: register bus configuration state * @module_power: power/clock configuration state * @regulator_enable: true if foot switch is enabled; false otherwise * @rsc_client: pointer to rsc client handle * @res_ref_cnt: reference count of how many times resource is requested * @rot_enable_clk_cnt: reference count of how many times clock is requested * @rot_clk: array of rotator and periphery clocks Loading Loading @@ -431,8 +430,6 @@ struct sde_rot_mgr { struct sde_module_power module_power; bool regulator_enable; struct sde_rsc_client *rsc_client; int res_ref_cnt; int rot_enable_clk_cnt; struct sde_rot_clk *rot_clk; Loading Loading @@ -768,6 +765,15 @@ static inline void sde_rot_mgr_unlock(struct sde_rot_mgr *mgr) mutex_unlock(&mgr->lock); } /* * sde_rot_mgr_pd_enabled - return true if power domain is enabled * @mgr: Pointer to rotator manager */ static inline bool sde_rot_mgr_pd_enabled(struct sde_rot_mgr *mgr) { return mgr && mgr->device && mgr->device->pm_domain; } #if defined(CONFIG_PM) int sde_rotator_runtime_resume(struct device *dev); int sde_rotator_runtime_suspend(struct device *dev); Loading Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +6 −23 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include <linux/msm-bus-board.h> #include <linux/regulator/consumer.h> #include <linux/dma-direction.h> #include <linux/sde_rsc.h> #include <soc/qcom/scm.h> #include <soc/qcom/secure_buffer.h> #include <asm/cacheflush.h> Loading Loading @@ -301,7 +300,7 @@ static int sde_rotator_update_clk(struct sde_rot_mgr *mgr) static int sde_rotator_footswitch_ctrl(struct sde_rot_mgr *mgr, bool on) { int ret; int ret = 0; if (mgr->regulator_enable == on) { SDEROT_ERR("Regulators already in selected mode on=%d\n", on); Loading @@ -319,16 +318,13 @@ static int sde_rotator_footswitch_ctrl(struct sde_rot_mgr *mgr, bool on) if (mgr->ops_hw_pre_pmevent) mgr->ops_hw_pre_pmevent(mgr, on); if (mgr->rsc_client) ret = sde_rsc_client_state_update(mgr->rsc_client, on ? SDE_RSC_CLK_STATE : SDE_RSC_IDLE_STATE, NULL, SDE_RSC_INVALID_CRTC_ID, NULL); else if (!sde_rot_mgr_pd_enabled(mgr)) ret = sde_rot_enable_vreg(mgr->module_power.vreg_config, mgr->module_power.num_vreg, on); if (ret) { pr_err("rotator regulator failed to %s ret:%d client:%d\n", on ? "enable" : "disable", ret, mgr->rsc_client != NULL); on ? "enable" : "disable", ret, sde_rot_mgr_pd_enabled(mgr)); return ret; } Loading Loading @@ -2970,16 +2966,7 @@ static int sde_rotator_res_init(struct platform_device *pdev, { int ret; mgr->rsc_client = sde_rsc_client_create( SDE_RSC_INDEX, "sde_rotator_core", false); if (IS_ERR(mgr->rsc_client)) { ret = PTR_ERR(mgr->rsc_client); pr_err("rsc client create returned %d\n", ret); mgr->rsc_client = NULL; return ret; } if (!mgr->rsc_client) { if (!sde_rot_mgr_pd_enabled(mgr)) { ret = sde_rotator_get_dt_vreg_data( &pdev->dev, &mgr->module_power); if (ret) Loading Loading @@ -3007,13 +2994,9 @@ static void sde_rotator_res_destroy(struct sde_rot_mgr *mgr) sde_rotator_unregister_clk(mgr); sde_rotator_bus_scale_unregister(mgr); if (mgr->rsc_client) { sde_rsc_client_destroy(mgr->rsc_client); mgr->rsc_client = NULL; } else { if (!sde_rot_mgr_pd_enabled(mgr)) sde_rotator_put_dt_vreg_data(&pdev->dev, &mgr->module_power); } } int sde_rotator_core_init(struct sde_rot_mgr **pmgr, struct platform_device *pdev) Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.h +9 −3 Original line number Diff line number Diff line Loading @@ -385,7 +385,6 @@ struct sde_rot_bus_data_type { * @reg_bus: register bus configuration state * @module_power: power/clock configuration state * @regulator_enable: true if foot switch is enabled; false otherwise * @rsc_client: pointer to rsc client handle * @res_ref_cnt: reference count of how many times resource is requested * @rot_enable_clk_cnt: reference count of how many times clock is requested * @rot_clk: array of rotator and periphery clocks Loading Loading @@ -431,8 +430,6 @@ struct sde_rot_mgr { struct sde_module_power module_power; bool regulator_enable; struct sde_rsc_client *rsc_client; int res_ref_cnt; int rot_enable_clk_cnt; struct sde_rot_clk *rot_clk; Loading Loading @@ -768,6 +765,15 @@ static inline void sde_rot_mgr_unlock(struct sde_rot_mgr *mgr) mutex_unlock(&mgr->lock); } /* * sde_rot_mgr_pd_enabled - return true if power domain is enabled * @mgr: Pointer to rotator manager */ static inline bool sde_rot_mgr_pd_enabled(struct sde_rot_mgr *mgr) { return mgr && mgr->device && mgr->device->pm_domain; } #if defined(CONFIG_PM) int sde_rotator_runtime_resume(struct device *dev); int sde_rotator_runtime_suspend(struct device *dev); Loading