[PATCH 1/2] drm/exynos: mixer: cleanup pixelformat handling
Tobias Jakobi
tjakobi at math.uni-bielefeld.de
Fri Apr 24 01:10:30 PDT 2015
On 2015-04-24 03:48, Joonyoung Shim wrote:
> Hi Tobias,
>
> On 04/23/2015 09:12 PM, Tobias Jakobi wrote:
>> Move the defines for the pixelformats that the mixer supports out
>> of mixer_graph_buffer() to the top of the source.
>> Then select the mixer pixelformat (pf) in mixer_graph_buffer() based
>> on
>> the plane's pf (and not bpp).
>> Also add handling of RGB565 and XRGB1555 to the switch statement and
>> exit early if the plane has an unsupported pf.
>>
>> Partially based on 'drm/exynos: enable/disable blend based on pixel
>> format' by Gustavo Padovan <gustavo.padovan at collabora.co.uk>.
>>
>> Signed-off-by: Tobias Jakobi <tjakobi at math.uni-bielefeld.de>
>> ---
>> drivers/gpu/drm/exynos/exynos_mixer.c | 32
>> ++++++++++++++++++++++----------
>> 1 file changed, 22 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c
>> b/drivers/gpu/drm/exynos/exynos_mixer.c
>> index fbec750..1bd23ee 100644
>> --- a/drivers/gpu/drm/exynos/exynos_mixer.c
>> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
>> @@ -44,6 +44,12 @@
>> #define MIXER_WIN_NR 3
>> #define MIXER_DEFAULT_WIN 0
>>
>> +/* The pixelformats that are natively supported by the mixer. */
>> +#define MIXER_PIXELFORMAT_RGB565 4
>> +#define MIXER_PIXELFORMAT_ARGB1555 5
>> +#define MIXER_PIXELFORMAT_ARGB4444 6
>> +#define MIXER_PIXELFORMAT_ARGB8888 7
>> +
>
> Seems be long, how about s/PIXELFORMAT/FORMAT or just MIXER_RGB565 ...
> ?
> Please use tab between define name and value.
How about MXR_FORMAT_XYZ, to stay consistent with the regs-mixer header?
>> struct mixer_resources {
>> int irq;
>> void __iomem *mixer_regs;
>> @@ -531,20 +537,26 @@ static void mixer_graph_buffer(struct
>> mixer_context *ctx, int win)
>>
>> plane = &ctx->planes[win];
>>
>> - #define RGB565 4
>> - #define ARGB1555 5
>> - #define ARGB4444 6
>> - #define ARGB8888 7
>> + switch (plane->pixel_format) {
>> + case DRM_FORMAT_XRGB4444:
>> + fmt = MIXER_PIXELFORMAT_ARGB4444;
>> + break;
>> +
>> + case DRM_FORMAT_XRGB1555:
>> + fmt = MIXER_PIXELFORMAT_ARGB1555;
>> + break;
>>
>> - switch (plane->bpp) {
>> - case 16:
>> - fmt = ARGB4444;
>> + case DRM_FORMAT_RGB565:
>> + fmt = MIXER_PIXELFORMAT_RGB565;
>> break;
>> - case 32:
>> - fmt = ARGB8888;
>> +
>> + case DRM_FORMAT_XRGB8888:
>> + fmt = MIXER_PIXELFORMAT_ARGB8888;
>> break;
>> +
>> default:
>> - fmt = ARGB8888;
>> + DRM_DEBUG_KMS("pixelformat unsupported by mixer\n");
>> + return;
>> }
>>
>> /* check if mixer supports requested scaling setup */
>>
>
> Hmm missing formats having alpha?
> DRM_FORMAT_ARGB4444
> DRM_FORMAT_ARGB1555
> DRM_FORMAT_ARGB8888
Should be obvious from my other mail. Blending/alpha is currently
screwed up, so we shouldn't add these formats at this point. At least
not before figuring out how to properly solve the issue.
> Thanks.
With best wishes,
Tobias
More information about the dri-devel
mailing list