Commit fca9a805 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-msm-fixes-2023-11-21' of https://gitlab.freedesktop.org/drm/msm into drm-fixes

Fixes for v6.7-rc3:

- Fix the VREG_CTRL_1 for 4nm CPHY to match downstream
- Remove duplicate call to drm_kms_helper_poll_init() in msm_drm_init()
- Fix the safe_lut_tbl[] for sc8280xp to match downstream
- Don't attach the drm_dp_set_subconnector_property() for eDP
- Fix to attach drm_dp_set_subconnector_property() for DP. Otherwise
  there is a bootup crash on multiple targets
- Remove unnecessary NULL check left behind during cleanup
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Rob Clark <robdclark@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGtkna3P3mvaF53n2ARJACaXQU+OFfShayTrsUVmqCOmNQ@mail.gmail.com
parents 98b1cc82 56466f65
...@@ -406,6 +406,7 @@ static const struct dpu_perf_cfg sc8280xp_perf_data = { ...@@ -406,6 +406,7 @@ static const struct dpu_perf_cfg sc8280xp_perf_data = {
.min_llcc_ib = 0, .min_llcc_ib = 0,
.min_dram_ib = 800000, .min_dram_ib = 800000,
.danger_lut_tbl = {0xf, 0xffff, 0x0}, .danger_lut_tbl = {0xf, 0xffff, 0x0},
.safe_lut_tbl = {0xfe00, 0xfe00, 0xffff},
.qos_lut_tbl = { .qos_lut_tbl = {
{.nentry = ARRAY_SIZE(sc8180x_qos_linear), {.nentry = ARRAY_SIZE(sc8180x_qos_linear),
.entries = sc8180x_qos_linear .entries = sc8180x_qos_linear
......
...@@ -844,8 +844,7 @@ static int mdp5_init(struct platform_device *pdev, struct drm_device *dev) ...@@ -844,8 +844,7 @@ static int mdp5_init(struct platform_device *pdev, struct drm_device *dev)
return 0; return 0;
fail: fail:
if (mdp5_kms) mdp5_destroy(mdp5_kms);
mdp5_destroy(mdp5_kms);
return ret; return ret;
} }
......
...@@ -365,9 +365,11 @@ static int dp_display_send_hpd_notification(struct dp_display_private *dp, ...@@ -365,9 +365,11 @@ static int dp_display_send_hpd_notification(struct dp_display_private *dp,
/* reset video pattern flag on disconnect */ /* reset video pattern flag on disconnect */
if (!hpd) { if (!hpd) {
dp->panel->video_test = false; dp->panel->video_test = false;
drm_dp_set_subconnector_property(dp->dp_display.connector, if (!dp->dp_display.is_edp)
connector_status_disconnected, drm_dp_set_subconnector_property(dp->dp_display.connector,
dp->panel->dpcd, dp->panel->downstream_ports); connector_status_disconnected,
dp->panel->dpcd,
dp->panel->downstream_ports);
} }
dp->dp_display.is_connected = hpd; dp->dp_display.is_connected = hpd;
...@@ -396,8 +398,11 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp) ...@@ -396,8 +398,11 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
dp_link_process_request(dp->link); dp_link_process_request(dp->link);
drm_dp_set_subconnector_property(dp->dp_display.connector, connector_status_connected, if (!dp->dp_display.is_edp)
dp->panel->dpcd, dp->panel->downstream_ports); drm_dp_set_subconnector_property(dp->dp_display.connector,
connector_status_connected,
dp->panel->dpcd,
dp->panel->downstream_ports);
edid = dp->panel->edid; edid = dp->panel->edid;
......
...@@ -345,6 +345,9 @@ struct drm_connector *dp_drm_connector_init(struct msm_dp *dp_display, struct dr ...@@ -345,6 +345,9 @@ struct drm_connector *dp_drm_connector_init(struct msm_dp *dp_display, struct dr
if (IS_ERR(connector)) if (IS_ERR(connector))
return connector; return connector;
if (!dp_display->is_edp)
drm_connector_attach_dp_subconnector_property(connector);
drm_connector_attach_encoder(connector, encoder); drm_connector_attach_encoder(connector, encoder);
return connector; return connector;
......
...@@ -918,7 +918,7 @@ static int dsi_7nm_phy_enable(struct msm_dsi_phy *phy, ...@@ -918,7 +918,7 @@ static int dsi_7nm_phy_enable(struct msm_dsi_phy *phy,
if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2)) { if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2)) {
if (phy->cphy_mode) { if (phy->cphy_mode) {
vreg_ctrl_0 = 0x45; vreg_ctrl_0 = 0x45;
vreg_ctrl_1 = 0x45; vreg_ctrl_1 = 0x41;
glbl_rescode_top_ctrl = 0x00; glbl_rescode_top_ctrl = 0x00;
glbl_rescode_bot_ctrl = 0x00; glbl_rescode_bot_ctrl = 0x00;
} else { } else {
......
...@@ -288,8 +288,6 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv) ...@@ -288,8 +288,6 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv)
if (ret) if (ret)
goto err_msm_uninit; goto err_msm_uninit;
drm_kms_helper_poll_init(ddev);
if (priv->kms_init) { if (priv->kms_init) {
drm_kms_helper_poll_init(ddev); drm_kms_helper_poll_init(ddev);
msm_fbdev_setup(ddev); msm_fbdev_setup(ddev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment