drm/exynos: fix accidental on-stack copy of exynos_drm_plane
gcc rightfully complains about excessive stack usage in the fimd_win_set_pixfmt() function: drivers/gpu/drm/exynos/exynos_drm_fimd.c: In function 'fimd_win_set_pixfmt': drivers/gpu/drm/exynos/exynos_drm_fimd.c:750:1: error: the frame size of 1032 bytes is larger than 1024 byte drivers/gpu/drm/exynos/exynos5433_drm_decon.c: In function 'decon_win_set_pixfmt': drivers/gpu/drm/exynos/exynos5433_drm_decon.c:381:1: error: the frame size of 1032 bytes is larger than 1024 bytes There is really no reason to copy the large exynos_drm_plane structure to the stack before using one of its members, so just use a pointer instead. Fixes: 6f8ee5c21722 ("drm/exynos: fimd: Make plane alpha configurable") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
477552e1d3
commit
960b537e91
@ -319,9 +319,9 @@ static void decon_win_set_bldmod(struct decon_context *ctx, unsigned int win,
|
||||
static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
|
||||
struct drm_framebuffer *fb)
|
||||
{
|
||||
struct exynos_drm_plane plane = ctx->planes[win];
|
||||
struct exynos_drm_plane *plane = &ctx->planes[win];
|
||||
struct exynos_drm_plane_state *state =
|
||||
to_exynos_plane_state(plane.base.state);
|
||||
to_exynos_plane_state(plane->base.state);
|
||||
unsigned int alpha = state->base.alpha;
|
||||
unsigned int pixel_alpha;
|
||||
unsigned long val;
|
||||
|
@ -661,9 +661,9 @@ static void fimd_win_set_bldmod(struct fimd_context *ctx, unsigned int win,
|
||||
static void fimd_win_set_pixfmt(struct fimd_context *ctx, unsigned int win,
|
||||
struct drm_framebuffer *fb, int width)
|
||||
{
|
||||
struct exynos_drm_plane plane = ctx->planes[win];
|
||||
struct exynos_drm_plane *plane = &ctx->planes[win];
|
||||
struct exynos_drm_plane_state *state =
|
||||
to_exynos_plane_state(plane.base.state);
|
||||
to_exynos_plane_state(plane->base.state);
|
||||
uint32_t pixel_format = fb->format->format;
|
||||
unsigned int alpha = state->base.alpha;
|
||||
u32 val = WINCONx_ENWIN;
|
||||
|
Loading…
x
Reference in New Issue
Block a user