mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user