* [PATCH v2 1/2] drm/exynos: mixer: cleanup pixelformat handling
@ 2015-04-25 18:06 Tobias Jakobi
2015-04-25 18:06 ` [PATCH v2 2/2] drm/exynos: cleanup exynos_drm_plane Tobias Jakobi
0 siblings, 1 reply; 3+ messages in thread
From: Tobias Jakobi @ 2015-04-25 18:06 UTC (permalink / raw)
To: linux-samsung-soc; +Cc: Tobias Jakobi, gustavo.padovan, dri-devel
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@collabora.co.uk>.
v2: Use the shorter MXR_FORMAT as prefix.
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Tobias Jakobi <tjakobi@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..534a594 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 MXR_FORMAT_RGB565 4
+#define MXR_FORMAT_ARGB1555 5
+#define MXR_FORMAT_ARGB4444 6
+#define MXR_FORMAT_ARGB8888 7
+
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 = MXR_FORMAT_ARGB4444;
+ break;
+
+ case DRM_FORMAT_XRGB1555:
+ fmt = MXR_FORMAT_ARGB1555;
+ break;
- switch (plane->bpp) {
- case 16:
- fmt = ARGB4444;
+ case DRM_FORMAT_RGB565:
+ fmt = MXR_FORMAT_RGB565;
break;
- case 32:
- fmt = ARGB8888;
+
+ case DRM_FORMAT_XRGB8888:
+ fmt = MXR_FORMAT_ARGB8888;
break;
+
default:
- fmt = ARGB8888;
+ DRM_DEBUG_KMS("pixelformat unsupported by mixer\n");
+ return;
}
/* check if mixer supports requested scaling setup */
--
2.0.5
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 2/2] drm/exynos: cleanup exynos_drm_plane
2015-04-25 18:06 [PATCH v2 1/2] drm/exynos: mixer: cleanup pixelformat handling Tobias Jakobi
@ 2015-04-25 18:06 ` Tobias Jakobi
2015-04-27 6:58 ` Joonyoung Shim
0 siblings, 1 reply; 3+ messages in thread
From: Tobias Jakobi @ 2015-04-25 18:06 UTC (permalink / raw)
To: linux-samsung-soc
Cc: dri-devel, gustavo.padovan, jy0922.shim, inki.dae, Tobias Jakobi
Remove the unused fields of struct exynos_drm_plane.
v2: Remove index_color as well, also unused (thanks Joonyoung).
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
---
drivers/gpu/drm/exynos/exynos_drm_drv.h | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
index e12ecb5..b1014c6 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -71,13 +71,6 @@ enum exynos_drm_output_type {
* @dma_addr: array of bus(accessed by dma) address to the memory region
* allocated for a overlay.
* @zpos: order of overlay layer(z position).
- * @index_color: if using color key feature then this value would be used
- * as index color.
- * @default_win: a window to be enabled.
- * @color_key: color key on or off.
- * @local_path: in case of lcd type, local path mode on or off.
- * @transparency: transparency on or off.
- * @activated: activated or not.
* @enabled: enabled or not.
* @resume: to resume or not.
*
@@ -108,13 +101,7 @@ struct exynos_drm_plane {
uint32_t pixel_format;
dma_addr_t dma_addr[MAX_FB_BUFFER];
unsigned int zpos;
- unsigned int index_color;
- bool default_win:1;
- bool color_key:1;
- bool local_path:1;
- bool transparency:1;
- bool activated:1;
bool enabled:1;
bool resume:1;
};
--
2.0.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2 2/2] drm/exynos: cleanup exynos_drm_plane
2015-04-25 18:06 ` [PATCH v2 2/2] drm/exynos: cleanup exynos_drm_plane Tobias Jakobi
@ 2015-04-27 6:58 ` Joonyoung Shim
0 siblings, 0 replies; 3+ messages in thread
From: Joonyoung Shim @ 2015-04-27 6:58 UTC (permalink / raw)
To: Tobias Jakobi, linux-samsung-soc; +Cc: dri-devel, gustavo.padovan, inki.dae
Hi Tobias,
On 04/26/2015 03:06 AM, Tobias Jakobi wrote:
> Remove the unused fields of struct exynos_drm_plane.
>
> v2: Remove index_color as well, also unused (thanks Joonyoung).
>
> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
> ---
> drivers/gpu/drm/exynos/exynos_drm_drv.h | 13 -------------
> 1 file changed, 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> index e12ecb5..b1014c6 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> @@ -71,13 +71,6 @@ enum exynos_drm_output_type {
> * @dma_addr: array of bus(accessed by dma) address to the memory region
> * allocated for a overlay.
> * @zpos: order of overlay layer(z position).
> - * @index_color: if using color key feature then this value would be used
> - * as index color.
> - * @default_win: a window to be enabled.
> - * @color_key: color key on or off.
> - * @local_path: in case of lcd type, local path mode on or off.
> - * @transparency: transparency on or off.
> - * @activated: activated or not.
> * @enabled: enabled or not.
> * @resume: to resume or not.
> *
> @@ -108,13 +101,7 @@ struct exynos_drm_plane {
> uint32_t pixel_format;
> dma_addr_t dma_addr[MAX_FB_BUFFER];
> unsigned int zpos;
> - unsigned int index_color;
>
> - bool default_win:1;
> - bool color_key:1;
> - bool local_path:1;
> - bool transparency:1;
> - bool activated:1;
> bool enabled:1;
> bool resume:1;
> };
>
Acked-by: Joonyoung Shim <jy0922.shim@samsung.com>
Thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-04-27 6:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-25 18:06 [PATCH v2 1/2] drm/exynos: mixer: cleanup pixelformat handling Tobias Jakobi
2015-04-25 18:06 ` [PATCH v2 2/2] drm/exynos: cleanup exynos_drm_plane Tobias Jakobi
2015-04-27 6:58 ` Joonyoung Shim
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.