summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorGuchun Chen <guchunc@codeaurora.org>2017-07-06 11:16:40 +0800
committerGuchun Chen <guchunc@codeaurora.org>2017-07-10 13:35:46 +0800
commitf4ae45e8d5db27f66f1db7ba2a9578e002acb9ac (patch)
tree637e39ffcbbed8c23cc3208179331a105378fb7b /drivers/gpu/drm
parent0f6cf457b2bdcd335b710a5c5f27f234da076696 (diff)
msm: sde: fix kernel booting failure in sde driver
This issue is caused by change 1974734. With that change, kernel booting will fail in sde driver. [drm:sde_wb_drm_init:601] [sde error]invalid params [drm:_sde_kms_setup_displays:691] [sde error]wb bridge 0 init failed, -22 [drm:_sde_init_phy_plane:2663] [sde error][5]no valid formats for plane [drm:sde_plane_init:2746] [sde error]_sde_init_phy_plane error vp=0 [drm:_sde_kms_drm_obj_init:861] [sde error]sde_plane_init failed [drm:sde_kms_hw_init:1288] [sde error]modeset init failed: -22 msm_drm 900000.qcom,mdss_mdp: kms hw init failed: -22 sblk->format_list should be put back to _sde_sspp_setup_vig, _sde_sspp_setup_rgb, _sde_sspp_setup_cursor,_sde_sspp_setup_dma and sde_wb_parse_dt, otherwise, it will fail when populating the pixel format which pipe supported in sde_plane_init. Change-Id: I479886d7d7e676a10f8a26bd372aad847dd03163 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/msm/sde/sde_hw_catalog.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/sde/sde_hw_catalog.c b/drivers/gpu/drm/msm/sde/sde_hw_catalog.c
index eb398fbee816..d308e06b0a50 100644
--- a/drivers/gpu/drm/msm/sde/sde_hw_catalog.c
+++ b/drivers/gpu/drm/msm/sde/sde_hw_catalog.c
@@ -689,6 +689,7 @@ static void _sde_sspp_setup_vig(struct sde_mdss_cfg *sde_cfg,
{
sblk->maxupscale = MAX_SSPP_UPSCALE;
sblk->maxdwnscale = MAX_SSPP_DOWNSCALE;
+ sblk->format_list = plane_formats_yuv;
sspp->id = SSPP_VIG0 + *vig_count;
sspp->clk_ctrl = SDE_CLK_CTRL_VIG0 + *vig_count;
sspp->type = SSPP_TYPE_VIG;
@@ -759,6 +760,7 @@ static void _sde_sspp_setup_rgb(struct sde_mdss_cfg *sde_cfg,
{
sblk->maxupscale = MAX_SSPP_UPSCALE;
sblk->maxdwnscale = MAX_SSPP_DOWNSCALE;
+ sblk->format_list = plane_formats;
sspp->id = SSPP_RGB0 + *rgb_count;
sspp->clk_ctrl = SDE_CLK_CTRL_RGB0 + *rgb_count;
sspp->type = SSPP_TYPE_RGB;
@@ -799,6 +801,7 @@ static void _sde_sspp_setup_cursor(struct sde_mdss_cfg *sde_cfg,
set_bit(SDE_SSPP_CURSOR, &sspp->features);
sblk->maxupscale = SSPP_UNITY_SCALE;
sblk->maxdwnscale = SSPP_UNITY_SCALE;
+ sblk->format_list = cursor_formats;
sspp->id = SSPP_CURSOR0 + *cursor_count;
sspp->clk_ctrl = SDE_CLK_CTRL_CURSOR0 + *cursor_count;
sspp->type = SSPP_TYPE_CURSOR;
@@ -812,6 +815,7 @@ static void _sde_sspp_setup_dma(struct sde_mdss_cfg *sde_cfg,
{
sblk->maxupscale = SSPP_UNITY_SCALE;
sblk->maxdwnscale = SSPP_UNITY_SCALE;
+ sblk->format_list = plane_formats;
sspp->id = SSPP_DMA0 + *dma_count;
sspp->clk_ctrl = SDE_CLK_CTRL_DMA0 + *dma_count;
sspp->type = SSPP_TYPE_DMA;
@@ -1291,6 +1295,7 @@ static int sde_wb_parse_dt(struct device_node *np,
wb->xin_id = PROP_VALUE_ACCESS(prop_value, WB_XIN_ID, i);
wb->vbif_idx = VBIF_NRT;
wb->len = PROP_VALUE_ACCESS(prop_value, WB_LEN, 0);
+ wb->format_list = wb2_formats;
if (!prop_exists[WB_LEN])
wb->len = DEFAULT_SDE_HW_BLOCK_LEN;
sblk->maxlinewidth = sde_cfg->max_wb_linewidth;