Merge commit '44ccff798bbba3c5812c1c2957d9cfd85562d4c8'

* commit '44ccff798bbba3c5812c1c2957d9cfd85562d4c8':
  drm/bridge: synopsys: dw-hdmi-qp: add mode covert at dual_connector_split
  PM / devfreq: rockchip_dmc: Fix dev_pm_opp_get_opp_table() return value
  soc: rockchip: opp_select: Fix dev_pm_opp_get_opp_table() return value
  soc: rockchip: system_monitor: Fix dev_pm_opp_get_opp_table() return value

Change-Id: Ia4f73eeb7000e234b5abc83e58a2114b236dda6c
This commit is contained in:
Tao Huang
2024-09-19 20:14:05 +08:00
4 changed files with 23 additions and 23 deletions

View File

@@ -1299,9 +1299,11 @@ rockchip_dmcfreq_adjust_opp_table(struct rockchip_dmcfreq *dmcfreq)
}
freq_table = kzalloc(sizeof(*freq_table) * count, GFP_KERNEL);
if (!freq_table)
return -ENOMEM;
opp_table = dev_pm_opp_get_opp_table(dev);
if (!opp_table) {
ret = -ENOMEM;
if (IS_ERR(opp_table)) {
ret = PTR_ERR(opp_table);
goto out;
}
@@ -1344,7 +1346,7 @@ rockchip_dmcfreq_adjust_opp_table(struct rockchip_dmcfreq *dmcfreq)
dmcfreq->freq_info_rate[i]);
if (i == 0) {
ret = -EPERM;
goto out;
break;
} else {
opp->available = false;
dmcfreq->freq_count = i;

View File

@@ -2771,9 +2771,6 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
}
secondary_data = secondary->plat_data->phy_data;
list_for_each_entry(mode, &connector->probed_modes, head)
hdmi->plat_data->convert_to_split_mode(mode);
secondary->sink_is_hdmi = drm_detect_hdmi_monitor(edid);
secondary->sink_has_audio = drm_detect_monitor_audio(edid);
if (secondary->cec_notifier)
@@ -2809,12 +2806,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
ret++;
}
}
if (ret > 0 && (hdmi->plat_data->split_mode || hdmi->plat_data->dual_connector_split)) {
struct drm_display_mode *mode;
list_for_each_entry(mode, &connector->probed_modes, head)
hdmi->plat_data->convert_to_split_mode(mode);
}
info->edid_hdmi_rgb444_dc_modes = 0;
info->edid_hdmi_ycbcr444_dc_modes = 0;
info->hdmi.y420_dc_modes = 0;
@@ -2822,6 +2814,12 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
dev_info(hdmi->dev, "failed to get edid\n");
}
if (ret > 0 && (hdmi->plat_data->split_mode || hdmi->plat_data->dual_connector_split)) {
struct drm_display_mode *mode;
list_for_each_entry(mode, &connector->probed_modes, head)
hdmi->plat_data->convert_to_split_mode(mode);
}
return ret;
}

View File

@@ -785,10 +785,10 @@ static int rockchip_init_pvtpll_info(struct rockchip_opp_info *info)
return -ENOMEM;
opp_table = dev_pm_opp_get_opp_table(info->dev);
if (!opp_table) {
if (IS_ERR(opp_table)) {
kfree(info->opp_table);
info->opp_table = NULL;
return -ENOMEM;
return PTR_ERR(opp_table);
}
mutex_lock(&opp_table->lock);
@@ -863,7 +863,7 @@ static void rockchip_pvtpll_calibrate_opp(struct rockchip_opp_info *info)
return;
opp_table = dev_pm_opp_get_opp_table(info->dev);
if (!opp_table)
if (IS_ERR(opp_table))
return;
if (info->clocks) {
@@ -1020,7 +1020,7 @@ static void rockchip_pvtpll_add_length(struct rockchip_opp_info *info)
goto out;
opp_table = dev_pm_opp_get_opp_table(info->dev);
if (!opp_table)
if (IS_ERR(opp_table))
goto out;
old_rate = clk_get_rate(opp_table->clk);
opp_flag = OPP_ADD_LENGTH | ((margin & OPP_LENGTH_MASK) << OPP_LENGTH_SHIFT);
@@ -1783,8 +1783,8 @@ static int rockchip_adjust_opp_by_irdrop(struct device *dev,
rockchip_get_sel_table(np, "rockchip,board-irdrop", &irdrop_table);
opp_table = dev_pm_opp_get_opp_table(dev);
if (!opp_table) {
ret = -ENOMEM;
if (IS_ERR(opp_table)) {
ret = PTR_ERR(opp_table);
goto out;
}
@@ -1855,7 +1855,7 @@ static void rockchip_adjust_opp_by_mbist_vmin(struct device *dev,
return;
opp_table = dev_pm_opp_get_opp_table(dev);
if (!opp_table)
if (IS_ERR(opp_table))
return;
mutex_lock(&opp_table->lock);
@@ -1887,7 +1887,7 @@ static void rockchip_adjust_opp_by_otp(struct device *dev,
opp_info.min_freq, opp_info.max_freq, opp_info.volt);
opp_table = dev_pm_opp_get_opp_table(dev);
if (!opp_table)
if (IS_ERR(opp_table))
return;
mutex_lock(&opp_table->lock);

View File

@@ -648,10 +648,10 @@ static int rockchip_init_temp_opp_table(struct monitor_dev_info *info)
return -ENOMEM;
opp_table = dev_pm_opp_get_opp_table(dev);
if (!opp_table) {
if (IS_ERR(opp_table)) {
kfree(info->opp_table);
info->opp_table = NULL;
return -ENOMEM;
return PTR_ERR(opp_table);
}
mutex_lock(&opp_table->lock);
list_for_each_entry(opp, &opp_table->opp_list, node) {
@@ -989,8 +989,8 @@ static int rockchip_adjust_low_temp_opp_volt(struct monitor_dev_info *info,
int i = 0;
opp_table = dev_pm_opp_get_opp_table(dev);
if (!opp_table)
return -ENOMEM;
if (IS_ERR(opp_table))
return PTR_ERR(opp_table);
mutex_lock(&opp_table->lock);
list_for_each_entry(opp, &opp_table->opp_list, node) {