PM / devfreq: rockchip_dmc: Add SYS_STATUS_HDMIRX

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: I133589dd2a1f8b88f08a20e7caaf10a3e84c04e3
This commit is contained in:
Finley Xiao
2022-07-04 10:16:57 +08:00
committed by Tao Huang
parent 22dbcb386f
commit a6098a99a7
2 changed files with 14 additions and 0 deletions

View File

@@ -137,6 +137,7 @@ struct rockchip_dmcfreq {
unsigned long video_4k_10b_rate;
unsigned long performance_rate;
unsigned long hdmi_rate;
unsigned long hdmirx_rate;
unsigned long idle_rate;
unsigned long suspend_rate;
unsigned long reboot_rate;
@@ -2285,6 +2286,9 @@ static int rockchip_get_system_status_rate(struct device_node *np,
case SYS_STATUS_HDMI:
dmcfreq->hdmi_rate = freq * 1000;
break;
case SYS_STATUS_HDMIRX:
dmcfreq->hdmirx_rate = freq * 1000;
break;
case SYS_STATUS_IDLE:
dmcfreq->idle_rate = freq * 1000;
break;
@@ -2429,6 +2433,10 @@ static int rockchip_get_system_status_level(struct device_node *np,
dmcfreq->hdmi_rate = rockchip_freq_level_2_rate(dmcfreq, level);
dev_info(dmcfreq->dev, "hdmi_rate = %ld\n", dmcfreq->hdmi_rate);
break;
case SYS_STATUS_HDMIRX:
dmcfreq->hdmirx_rate = rockchip_freq_level_2_rate(dmcfreq, level);
dev_info(dmcfreq->dev, "hdmirx_rate = %ld\n", dmcfreq->hdmirx_rate);
break;
case SYS_STATUS_IDLE:
dmcfreq->idle_rate = rockchip_freq_level_2_rate(dmcfreq, level);
dev_info(dmcfreq->dev, "idle_rate = %ld\n", dmcfreq->idle_rate);
@@ -2519,6 +2527,11 @@ static int rockchip_dmcfreq_system_status_notifier(struct notifier_block *nb,
target_rate = dmcfreq->hdmi_rate;
}
if (dmcfreq->hdmirx_rate && (status & SYS_STATUS_HDMIRX)) {
if (dmcfreq->hdmirx_rate > target_rate)
target_rate = dmcfreq->hdmirx_rate;
}
if (dmcfreq->video_4k_rate && (status & SYS_STATUS_VIDEO_4K)) {
if (dmcfreq->video_4k_rate > target_rate)
target_rate = dmcfreq->video_4k_rate;

View File

@@ -34,6 +34,7 @@
#define SYS_STATUS_HDMI (1 << 15)
#define SYS_STATUS_VIDEO_4K_10B (1 << 16)
#define SYS_STATUS_LOW_POWER (1 << 17)
#define SYS_STATUS_HDMIRX (1 << 18)
#define SYS_STATUS_VIDEO (SYS_STATUS_VIDEO_4K | \
SYS_STATUS_VIDEO_1080P | \