Merge "disp: msm: dp: fix tpg configuration to handle widebus"

This commit is contained in:
qctecmdr
2021-03-02 16:14:13 -08:00
committed by Gerrit - the friendly Code Review server
2 changed files with 13 additions and 5 deletions

View File

@@ -1407,6 +1407,7 @@ static void dp_catalog_panel_tpg_cfg(struct dp_catalog_panel *panel,
{
struct dp_catalog_private *catalog;
struct dp_io_data *io_data;
u32 reg;
if (!panel) {
DP_ERR("invalid input\n");
@@ -1428,12 +1429,13 @@ static void dp_catalog_panel_tpg_cfg(struct dp_catalog_panel *panel,
if (!enable) {
dp_write(MMSS_DP_TPG_MAIN_CONTROL, 0x0);
dp_write(MMSS_DP_BIST_ENABLE, 0x0);
dp_write(MMSS_DP_TIMING_ENGINE_EN, 0x0);
reg = dp_read(MMSS_DP_TIMING_ENGINE_EN);
reg &= ~0x1;
dp_write(MMSS_DP_TIMING_ENGINE_EN, reg);
wmb(); /* ensure Timing generator is turned off */
return;
}
dp_write(MMSS_DP_INTF_CONFIG, 0x0);
dp_write(MMSS_DP_INTF_HSYNC_CTL,
panel->hsync_ctl);
dp_write(MMSS_DP_INTF_VSYNC_PERIOD_F0,
@@ -1459,7 +1461,9 @@ static void dp_catalog_panel_tpg_cfg(struct dp_catalog_panel *panel,
dp_write(MMSS_DP_TPG_VIDEO_CONFIG, 0x5);
wmb(); /* ensure TPG config is programmed */
dp_write(MMSS_DP_BIST_ENABLE, 0x1);
dp_write(MMSS_DP_TIMING_ENGINE_EN, 0x1);
reg = dp_read(MMSS_DP_TIMING_ENGINE_EN);
reg |= 0x1;
dp_write(MMSS_DP_TIMING_ENGINE_EN, reg);
wmb(); /* ensure Timing generator is turned on */
}

View File

@@ -1956,7 +1956,7 @@ static void dp_panel_handle_sink_request(struct dp_panel *dp_panel)
static void dp_panel_tpg_config(struct dp_panel *dp_panel, bool enable)
{
u32 hsync_start_x, hsync_end_x;
u32 hsync_start_x, hsync_end_x, hactive;
struct dp_catalog_panel *catalog;
struct dp_panel_private *panel;
struct dp_panel_info *pinfo;
@@ -1985,9 +1985,13 @@ static void dp_panel_tpg_config(struct dp_panel *dp_panel, bool enable)
return;
}
hactive = pinfo->h_active;
if (pinfo->widebus_en)
hactive >>= 1;
/* TPG config */
catalog->hsync_period = pinfo->h_sync_width + pinfo->h_back_porch +
pinfo->h_active + pinfo->h_front_porch;
hactive + pinfo->h_front_porch;
catalog->vsync_period = pinfo->v_sync_width + pinfo->v_back_porch +
pinfo->v_active + pinfo->v_front_porch;