Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4ae45e8 authored by Guchun Chen's avatar Guchun Chen
Browse files

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: default avatarGuchun Chen <guchunc@codeaurora.org>
parent 0f6cf457
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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;