PM / devfreq: rockchip_dmc: Add wide-temperature control

Change-Id: Ia90494728679287fb505c1ee0ddffaa9a52bf0cb
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
This commit is contained in:
Finley Xiao
2018-06-27 18:19:21 +08:00
committed by Tao Huang
parent 61d015e7e2
commit e4d2ea0c55

View File

@@ -770,6 +770,7 @@ struct rockchip_dmcfreq {
struct freq_map_table *vop_bw_tbl;
struct work_struct devfreq_update;
struct input_handler input_handler;
struct thermal_opp_info *opp_info;
unsigned long rate, target_rate;
unsigned long volt, target_volt;
@@ -810,6 +811,12 @@ struct rockchip_dmcfreq {
int (*set_auto_self_refresh)(u32 en);
};
static struct thermal_opp_device_data dmc_devdata = {
.type = THERMAL_OPP_TPYE_DEV,
.low_temp_adjust = rockchip_dev_low_temp_adjust,
.high_temp_adjust = rockchip_dev_high_temp_adjust,
};
static struct pm_qos_request pm_qos;
static DECLARE_RWSEM(rockchip_dmcfreq_sem);
@@ -3111,6 +3118,14 @@ static int rockchip_dmcfreq_probe(struct platform_device *pdev)
dev_err(dev, "failed to register input handler\n");
}
dmc_devdata.data = data->devfreq;
data->opp_info = rockchip_register_thermal_notifier(dev,
&dmc_devdata);
if (IS_ERR(data->opp_info)) {
dev_dbg(dev, "without thermal notifier\n");
data->opp_info = NULL;
}
ret = ddr_power_model_simple_init(data);
if (!ret) {