Fw: Re: [PATCH 3/3] drm/exynos: enable/disable blend based on pixel format
Tobias Jakobi
tjakobi at math.uni-bielefeld.de
Fri Apr 17 05:31:25 PDT 2015
Hello Joonyoung,
> Gesendet: Freitag, 17. April 2015 um 08:16 Uhr
> Von: "Joonyoung Shim" <jy0922.shim at samsung.com>
> An: "Gustavo Padovan" <gustavo at padovan.org>,
> linux-samsung-soc at vger.kernel.org
> Cc: dri-devel at lists.freedesktop.org, inki.dae at samsung.com, "Gustavo
> Padovan" <gustavo.padovan at collabora.co.uk>
> Betreff: Re: [PATCH 3/3] drm/exynos: enable/disable blend based on
> pixel format
> Hi Gustavo,
>
> On 03/19/2015 11:27 PM, Gustavo Padovan wrote:
>> From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
>>
>> Change the switch to use the pixel_format instead of bpp to figure out
>> if we need to enable or disable the layer blending.
>>
>
> The default concept is ok about enable or disable of pixel blending
> feature by pixel_format, but it will make to possible blending with
> background layer. I'm not sure whether it's proper or not.
Wouldn't this be solved by only allowing non-alpha formats for the
primary plane, or am I confusing the plane ordering?
With best wishes,
Tobias
>
> Thanks.
>
>> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
>> ---
>> drivers/gpu/drm/exynos/exynos_mixer.c | 29
>> +++++++++++++++++++++++++----
>> 1 file changed, 25 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c
>> b/drivers/gpu/drm/exynos/exynos_mixer.c
>> index 7aff88f..0c54098 100644
>> --- a/drivers/gpu/drm/exynos/exynos_mixer.c
>> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
>> @@ -529,7 +529,7 @@ static void mixer_graph_buffer(struct
>> mixer_context *ctx, int win)
>> unsigned int x_ratio, y_ratio;
>> unsigned int src_x_offset, src_y_offset, dst_x_offset, dst_y_offset;
>> dma_addr_t dma_addr;
>> - unsigned int fmt;
>> + unsigned int fmt, blend;
>> u32 val;
>>
>> win_data = &ctx->win_data[win];
>> @@ -539,15 +539,26 @@ static void mixer_graph_buffer(struct
>> mixer_context *ctx, int win)
>> #define ARGB4444 6
>> #define ARGB8888 7
>>
>> - switch (win_data->bpp) {
>> - case 16:
>> + switch (win_data->pixel_format) {
>> + case DRM_FORMAT_ARGB4444:
>> fmt = ARGB4444;
>> + blend = 1;
>> break;
>> - case 32:
>> +
>> + case DRM_FORMAT_ARGB8888:
>> + fmt = ARGB8888;
>> + blend = 1;
>> + break;
>> +
>> + case DRM_FORMAT_XRGB8888:
>> fmt = ARGB8888;
>> + blend = 0;
>> break;
>> +
>> default:
>> fmt = ARGB8888;
>> + blend = 0;
>> + break;
>> }
>>
>> if (win_data->crtc_width != win_data->src_width ||
>> @@ -586,6 +597,16 @@ static void mixer_graph_buffer(struct
>> mixer_context *ctx, int win)
>> mixer_reg_write(res, MXR_GRAPHIC_SPAN(win),
>> win_data->fb_pitch / (win_data->bpp >> 3));
>>
>> + if (blend) {
>> + val = MXR_GRP_CFG_BLEND_PRE_MUL;
>> + val |= MXR_GRP_CFG_PIXEL_BLEND_EN;
>> + } else {
>> + val = 0;
>> + }
>> + mixer_reg_writemask(res, MXR_GRAPHIC_CFG(win), val,
>> + MXR_GRP_CFG_BLEND_PRE_MUL
>> + | MXR_GRP_CFG_PIXEL_BLEND_EN);
>> +
>> /* setup display size */
>> if (ctx->mxr_ver == MXR_VER_128_0_0_184 &&
>> win == MIXER_DEFAULT_WIN) {
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe
> linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the dri-devel
mailing list