diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-12-06 07:00:30 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-12-06 07:00:30 -0800 |
| commit | cd655d0854fda8cca3c7d79c51fd777e3497d4d3 (patch) | |
| tree | 222600b25e677ee616e1c5e8e5d65aa030276656 | |
| parent | 99c39f9b501cbb822796cf95041c8224e0352af5 (diff) | |
| parent | 4bdd420c4c82d1a8228cb872432cbaadd624aaca (diff) | |
Merge "Revert "DRM: SDE: Update the hdmi bridge to handle HPD clock""
| -rw-r--r-- | drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c | 71 | ||||
| -rw-r--r-- | drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h | 16 | ||||
| -rw-r--r-- | drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c | 22 |
3 files changed, 6 insertions, 103 deletions
diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c index f70a0ea022d8..35ba396e1cd1 100644 --- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c +++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c @@ -1342,56 +1342,7 @@ fail: return ret; } -int sde_hdmi_core_enable(struct sde_hdmi *sde_hdmi) -{ - struct hdmi *hdmi = sde_hdmi->ctrl.ctrl; - const struct hdmi_platform_config *config = hdmi->config; - struct device *dev = &hdmi->pdev->dev; - int i, ret; - struct drm_connector *connector; - struct msm_drm_private *priv; - struct sde_kms *sde_kms; - - connector = hdmi->connector; - priv = connector->dev->dev_private; - sde_kms = to_sde_kms(priv->kms); - - for (i = 0; i < config->hpd_reg_cnt; i++) { - ret = regulator_enable(hdmi->hpd_regs[i]); - if (ret) { - SDE_ERROR("failed to enable hpd regulator: %s (%d)\n", - config->hpd_reg_names[i], ret); - } - } - - ret = pinctrl_pm_select_default_state(dev); - if (ret) - SDE_ERROR("pinctrl state chg failed: %d\n", ret); - - ret = _sde_hdmi_gpio_config(hdmi, true); - if (ret) - SDE_ERROR("failed to configure GPIOs: %d\n", ret); - - for (i = 0; i < config->hpd_clk_cnt; i++) { - if (config->hpd_freq && config->hpd_freq[i]) { - ret = clk_set_rate(hdmi->hpd_clks[i], - config->hpd_freq[i]); - if (ret) - pr_warn("failed to set clk %s (%d)\n", - config->hpd_clk_names[i], ret); - } - - ret = clk_prepare_enable(hdmi->hpd_clks[i]); - if (ret) { - SDE_ERROR("failed to enable hpd clk: %s (%d)\n", - config->hpd_clk_names[i], ret); - } - } - - return ret; -} - -static void _sde_hdmi_hpd_disable(struct sde_hdmi *sde_hdmi) +static void _sde_hdmi_hdp_disable(struct sde_hdmi *sde_hdmi) { struct hdmi *hdmi = sde_hdmi->ctrl.ctrl; const struct hdmi_platform_config *config = hdmi->config; @@ -1422,12 +1373,6 @@ static void _sde_hdmi_hpd_disable(struct sde_hdmi *sde_hdmi) } } -void sde_hdmi_core_disable(struct sde_hdmi *sde_hdmi) -{ - /* HPD contains all the core clock and pwr */ - _sde_hdmi_hpd_disable(sde_hdmi); -} - static void _sde_hdmi_cec_update_phys_addr(struct sde_hdmi *display) { struct edid *edid = display->edid_ctrl->edid; @@ -2272,8 +2217,7 @@ int sde_hdmi_connector_pre_deinit(struct drm_connector *connector, return -EINVAL; } - if (!sde_hdmi->non_pluggable) - _sde_hdmi_hpd_disable(sde_hdmi); + _sde_hdmi_hdp_disable(sde_hdmi); return 0; } @@ -2445,14 +2389,9 @@ int sde_hdmi_connector_post_init(struct drm_connector *connector, INIT_WORK(&sde_hdmi->hpd_work, _sde_hdmi_hotplug_work); /* Enable HPD detection */ - if (!sde_hdmi->non_pluggable) { - rc = _sde_hdmi_hpd_enable(sde_hdmi); - if (rc) - SDE_ERROR("failed to enable HPD: %d\n", rc); - } else { - /* Disable HPD interrupt */ - hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, 0); - } + rc = _sde_hdmi_hpd_enable(sde_hdmi); + if (rc) + SDE_ERROR("failed to enable HPD: %d\n", rc); _sde_hdmi_get_tx_version(sde_hdmi); diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h index 471472ea23cf..865998c6a126 100644 --- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h +++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h @@ -302,22 +302,6 @@ sde_hdmi_connector_detect(struct drm_connector *connector, void *display); /** - * sde_hdmi_core_enable()- turn on clk and pwr for hdmi core - * @sde_hdmi: Pointer to sde_hdmi structure - * - * Return: error code - */ -int sde_hdmi_core_enable(struct sde_hdmi *sde_hdmi); - -/** - * sde_hdmi_core_disable()- turn off clk and pwr for hdmi core - * @sde_hdmi: Pointer to sde_hdmi structure - * - * Return: none - */ -void sde_hdmi_core_disable(struct sde_hdmi *sde_hdmi); - -/** * sde_hdmi_connector_get_modes - add drm modes via drm_mode_probed_add() * @connector: Pointer to drm connector structure * @display: Pointer to private display handle diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c index 01283aa30450..5fbe4767ad3a 100644 --- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c +++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c @@ -106,8 +106,6 @@ struct sde_hdmi_bridge { #define HDMI_AVI_IFRAME_LINE_NUMBER 1 #define HDMI_VENDOR_IFRAME_LINE_NUMBER 3 -static int _sde_hdmi_bridge_setup_scrambler(struct hdmi *hdmi, - struct drm_display_mode *mode); void _sde_hdmi_bridge_destroy(struct drm_bridge *bridge) { } @@ -131,8 +129,6 @@ static void _sde_hdmi_bridge_power_on(struct drm_bridge *bridge) struct sde_hdmi_bridge *sde_hdmi_bridge = to_hdmi_bridge(bridge); struct hdmi *hdmi = sde_hdmi_bridge->hdmi; const struct hdmi_platform_config *config = hdmi->config; - struct sde_connector *c_conn = to_sde_connector(hdmi->connector); - struct sde_hdmi *display = (struct sde_hdmi *)c_conn->display; int i, ret; for (i = 0; i < config->pwr_reg_cnt; i++) { @@ -159,13 +155,6 @@ static void _sde_hdmi_bridge_power_on(struct drm_bridge *bridge) config->pwr_clk_names[i], ret); } } - - if (display->non_pluggable) { - ret = sde_hdmi_core_enable(display); - if (ret) - SDE_ERROR("failed to enable hpd clks: %d\n", ret); - } - _sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode); } static void _sde_hdmi_bridge_power_off(struct drm_bridge *bridge) @@ -173,8 +162,6 @@ static void _sde_hdmi_bridge_power_off(struct drm_bridge *bridge) struct sde_hdmi_bridge *sde_hdmi_bridge = to_hdmi_bridge(bridge); struct hdmi *hdmi = sde_hdmi_bridge->hdmi; const struct hdmi_platform_config *config = hdmi->config; - struct sde_connector *c_conn = to_sde_connector(hdmi->connector); - struct sde_hdmi *display = (struct sde_hdmi *)c_conn->display; int i, ret; /* Wait for vsync */ @@ -190,9 +177,6 @@ static void _sde_hdmi_bridge_power_off(struct drm_bridge *bridge) config->pwr_reg_names[i], ret); } } - - if (display->non_pluggable) - sde_hdmi_core_disable(display); } static int _sde_hdmi_bridge_ddc_clear_irq(struct hdmi *hdmi, @@ -504,9 +488,6 @@ static void _sde_hdmi_bridge_pre_enable(struct drm_bridge *bridge) if (hdmi->hdcp_ctrl && hdmi->is_hdcp_supported) hdmi_hdcp_ctrl_on(hdmi->hdcp_ctrl); - /* turn on scrambler, scrambler was skipped if HDMI is off */ - _sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode); - mutex_lock(&display->display_lock); if (display->codec_ready) sde_hdmi_notify_clients(display, display->connected); @@ -915,8 +896,7 @@ static void _sde_hdmi_bridge_mode_set(struct drm_bridge *bridge, } _sde_hdmi_save_mode(hdmi, mode); - if (hdmi->power_on) - _sde_hdmi_bridge_setup_scrambler(hdmi, mode); + _sde_hdmi_bridge_setup_scrambler(hdmi, mode); _sde_hdmi_bridge_setup_deep_color(hdmi); } |
