Loading Documentation/devicetree/bindings/display/msm/sde.txt +7 −16 Original line number Diff line number Diff line Loading @@ -130,14 +130,10 @@ Optional properties: control register. Number of offsets defined should match the number of offsets defined in property: qcom,sde-sspp-off. - qcom,sde-sspp-danger-lut: Array of u32 values indicating the danger luts on each sspp. Number of offsets defined should match the number of offsets defined in property: qcom,sde-sspp-off. - qcom,sde-sspp-safe-lut: Array of u32 values indicating the safe luts on each sspp. Number of offsets defined should match the number of offsets defined in property: qcom,sde-sspp-off. - qcom,sde-sspp-danger-lut: A 3 cell property, with a format of <linear, tile, nrt>, indicating the danger luts on sspp. - qcom,sde-sspp-safe-lut: A 3 cell property, with a format of <linear, tile, nrt>, indicating the safe luts on sspp. - qcom,sde-sspp-qseed-off: A u32 offset value indicates the qseed block offset from sspp base. It will install qseed property on vig and rgb sspp pipes. Loading Loading @@ -314,14 +310,6 @@ Example: qcom,sde-qseed-type = "qseedv2"; qcom,sde-highest-bank-bit = <15>; qcom,sde-has-mixer-gc; qcom,sde-sspp-danger-lut = <0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xaa 0xaa 0xbb 0xbb>; qcom,sde-sspp-safe-lut = <0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0xaa 0xaa 0xbb 0xbb>; qcom,sde-sspp-max-rects = <1 1 1 1 1 1 1 1 1 1 Loading @@ -343,6 +331,9 @@ Example: qcom,sde-wb-id = <2>; qcom,sde-sspp-danger-lut = <0x000f 0xffff 0x0000>; qcom,sde-sspp-safe-lut = <0xfffc 0xff00 0xffff>; qcom,sde-vbif-off = <0 0>; qcom,sde-vbif-id = <0 1>; qcom,sde-vbif-default-ot-rd-limit = <32>; Loading drivers/gpu/drm/msm/sde/sde_hw_catalog.c +37 −2 Original line number Diff line number Diff line Loading @@ -71,6 +71,9 @@ /* maximum XIN halt timeout in usec */ #define VBIF_XIN_HALT_TIMEOUT 0x4000 #define DEFAULT_CREQ_LUT_NRT 0x0 #define DEFAULT_PIXEL_RAM_SIZE (50 * 1024) /************************************************************* * DTSI PROPERTY INDEX *************************************************************/ Loading Loading @@ -506,6 +509,7 @@ static void _sde_sspp_setup_vig(struct sde_mdss_cfg *sde_cfg, sspp->id = SSPP_VIG0 + *vig_count; sspp->clk_ctrl = SDE_CLK_CTRL_NONE; sblk->format_list = plane_formats_yuv; set_bit(SDE_SSPP_QOS, &sspp->features); (*vig_count)++; } Loading @@ -528,6 +532,7 @@ static void _sde_sspp_setup_rgb(struct sde_mdss_cfg *sde_cfg, sspp->id = SSPP_RGB0 + *rgb_count; sspp->clk_ctrl = SDE_CLK_CTRL_NONE; sblk->format_list = plane_formats; set_bit(SDE_SSPP_QOS, &sspp->features); (*rgb_count)++; } Loading @@ -553,6 +558,7 @@ static void _sde_sspp_setup_dma(struct sde_mdss_cfg *sde_cfg, sspp->id = SSPP_DMA0 + *dma_count; sspp->clk_ctrl = SDE_CLK_CTRL_NONE; sblk->format_list = plane_formats; set_bit(SDE_SSPP_QOS, &sspp->features); (*dma_count)++; } Loading @@ -566,12 +572,23 @@ static int sde_sspp_parse_dt(struct device_node *np, struct sde_sspp_cfg *sspp; struct sde_sspp_sub_blks *sblk; u32 vig_count = 0, dma_count = 0, rgb_count = 0, cursor_count = 0; u32 danger_count = 0, safe_count = 0; rc = _validate_dt_entry(np, sspp_prop, ARRAY_SIZE(sspp_prop), prop_count, &off_count); if (rc) goto end; rc = _validate_dt_entry(np, &sspp_prop[SSPP_DANGER], 1, &prop_count[SSPP_DANGER], &danger_count); if (rc) goto end; rc = _validate_dt_entry(np, &sspp_prop[SSPP_SAFE], 1, &prop_count[SSPP_SAFE], &safe_count); if (rc) goto end; rc = _read_dt_entry(np, sspp_prop, ARRAY_SIZE(sspp_prop), prop_count, prop_value, bit_value); if (rc) Loading Loading @@ -619,9 +636,27 @@ static int sde_sspp_parse_dt(struct device_node *np, sblk->maxvdeciexp = MAX_VERT_DECIMATION; sspp->xin_id = prop_value[SSPP_XIN][i]; sblk->danger_lut_linear = prop_value[SSPP_DANGER][i]; sblk->safe_lut_linear = prop_value[SSPP_SAFE][i]; sblk->danger_lut_linear = prop_value[SSPP_DANGER][0]; sblk->danger_lut_tile = prop_value[SSPP_DANGER][1]; sblk->danger_lut_nrt = prop_value[SSPP_DANGER][2]; sblk->safe_lut_linear = prop_value[SSPP_SAFE][0]; sblk->safe_lut_tile = prop_value[SSPP_SAFE][1]; sblk->safe_lut_nrt = prop_value[SSPP_SAFE][2]; sblk->creq_lut_nrt = DEFAULT_CREQ_LUT_NRT; sblk->pixel_ram_size = DEFAULT_PIXEL_RAM_SIZE; sblk->src_blk.len = prop_value[SSPP_SIZE][0]; SDE_DEBUG( "xin:%d danger:%x/%x/%x safe:%x/%x/%x creq:%x ram:%d\n", sspp->xin_id, sblk->danger_lut_linear, sblk->danger_lut_tile, sblk->danger_lut_nrt, sblk->safe_lut_linear, sblk->safe_lut_tile, sblk->safe_lut_nrt, sblk->creq_lut_nrt, sblk->pixel_ram_size); } end: Loading Loading
Documentation/devicetree/bindings/display/msm/sde.txt +7 −16 Original line number Diff line number Diff line Loading @@ -130,14 +130,10 @@ Optional properties: control register. Number of offsets defined should match the number of offsets defined in property: qcom,sde-sspp-off. - qcom,sde-sspp-danger-lut: Array of u32 values indicating the danger luts on each sspp. Number of offsets defined should match the number of offsets defined in property: qcom,sde-sspp-off. - qcom,sde-sspp-safe-lut: Array of u32 values indicating the safe luts on each sspp. Number of offsets defined should match the number of offsets defined in property: qcom,sde-sspp-off. - qcom,sde-sspp-danger-lut: A 3 cell property, with a format of <linear, tile, nrt>, indicating the danger luts on sspp. - qcom,sde-sspp-safe-lut: A 3 cell property, with a format of <linear, tile, nrt>, indicating the safe luts on sspp. - qcom,sde-sspp-qseed-off: A u32 offset value indicates the qseed block offset from sspp base. It will install qseed property on vig and rgb sspp pipes. Loading Loading @@ -314,14 +310,6 @@ Example: qcom,sde-qseed-type = "qseedv2"; qcom,sde-highest-bank-bit = <15>; qcom,sde-has-mixer-gc; qcom,sde-sspp-danger-lut = <0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xaa 0xaa 0xbb 0xbb>; qcom,sde-sspp-safe-lut = <0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0xaa 0xaa 0xbb 0xbb>; qcom,sde-sspp-max-rects = <1 1 1 1 1 1 1 1 1 1 Loading @@ -343,6 +331,9 @@ Example: qcom,sde-wb-id = <2>; qcom,sde-sspp-danger-lut = <0x000f 0xffff 0x0000>; qcom,sde-sspp-safe-lut = <0xfffc 0xff00 0xffff>; qcom,sde-vbif-off = <0 0>; qcom,sde-vbif-id = <0 1>; qcom,sde-vbif-default-ot-rd-limit = <32>; Loading
drivers/gpu/drm/msm/sde/sde_hw_catalog.c +37 −2 Original line number Diff line number Diff line Loading @@ -71,6 +71,9 @@ /* maximum XIN halt timeout in usec */ #define VBIF_XIN_HALT_TIMEOUT 0x4000 #define DEFAULT_CREQ_LUT_NRT 0x0 #define DEFAULT_PIXEL_RAM_SIZE (50 * 1024) /************************************************************* * DTSI PROPERTY INDEX *************************************************************/ Loading Loading @@ -506,6 +509,7 @@ static void _sde_sspp_setup_vig(struct sde_mdss_cfg *sde_cfg, sspp->id = SSPP_VIG0 + *vig_count; sspp->clk_ctrl = SDE_CLK_CTRL_NONE; sblk->format_list = plane_formats_yuv; set_bit(SDE_SSPP_QOS, &sspp->features); (*vig_count)++; } Loading @@ -528,6 +532,7 @@ static void _sde_sspp_setup_rgb(struct sde_mdss_cfg *sde_cfg, sspp->id = SSPP_RGB0 + *rgb_count; sspp->clk_ctrl = SDE_CLK_CTRL_NONE; sblk->format_list = plane_formats; set_bit(SDE_SSPP_QOS, &sspp->features); (*rgb_count)++; } Loading @@ -553,6 +558,7 @@ static void _sde_sspp_setup_dma(struct sde_mdss_cfg *sde_cfg, sspp->id = SSPP_DMA0 + *dma_count; sspp->clk_ctrl = SDE_CLK_CTRL_NONE; sblk->format_list = plane_formats; set_bit(SDE_SSPP_QOS, &sspp->features); (*dma_count)++; } Loading @@ -566,12 +572,23 @@ static int sde_sspp_parse_dt(struct device_node *np, struct sde_sspp_cfg *sspp; struct sde_sspp_sub_blks *sblk; u32 vig_count = 0, dma_count = 0, rgb_count = 0, cursor_count = 0; u32 danger_count = 0, safe_count = 0; rc = _validate_dt_entry(np, sspp_prop, ARRAY_SIZE(sspp_prop), prop_count, &off_count); if (rc) goto end; rc = _validate_dt_entry(np, &sspp_prop[SSPP_DANGER], 1, &prop_count[SSPP_DANGER], &danger_count); if (rc) goto end; rc = _validate_dt_entry(np, &sspp_prop[SSPP_SAFE], 1, &prop_count[SSPP_SAFE], &safe_count); if (rc) goto end; rc = _read_dt_entry(np, sspp_prop, ARRAY_SIZE(sspp_prop), prop_count, prop_value, bit_value); if (rc) Loading Loading @@ -619,9 +636,27 @@ static int sde_sspp_parse_dt(struct device_node *np, sblk->maxvdeciexp = MAX_VERT_DECIMATION; sspp->xin_id = prop_value[SSPP_XIN][i]; sblk->danger_lut_linear = prop_value[SSPP_DANGER][i]; sblk->safe_lut_linear = prop_value[SSPP_SAFE][i]; sblk->danger_lut_linear = prop_value[SSPP_DANGER][0]; sblk->danger_lut_tile = prop_value[SSPP_DANGER][1]; sblk->danger_lut_nrt = prop_value[SSPP_DANGER][2]; sblk->safe_lut_linear = prop_value[SSPP_SAFE][0]; sblk->safe_lut_tile = prop_value[SSPP_SAFE][1]; sblk->safe_lut_nrt = prop_value[SSPP_SAFE][2]; sblk->creq_lut_nrt = DEFAULT_CREQ_LUT_NRT; sblk->pixel_ram_size = DEFAULT_PIXEL_RAM_SIZE; sblk->src_blk.len = prop_value[SSPP_SIZE][0]; SDE_DEBUG( "xin:%d danger:%x/%x/%x safe:%x/%x/%x creq:%x ram:%d\n", sspp->xin_id, sblk->danger_lut_linear, sblk->danger_lut_tile, sblk->danger_lut_nrt, sblk->safe_lut_linear, sblk->safe_lut_tile, sblk->safe_lut_nrt, sblk->creq_lut_nrt, sblk->pixel_ram_size); } end: Loading