From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60668) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UI2TC-00058F-Ju for qemu-devel@nongnu.org; Tue, 19 Mar 2013 15:45:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UI2T7-000446-8b for qemu-devel@nongnu.org; Tue, 19 Mar 2013 15:45:14 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:17140) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UI2T7-00042K-3R for qemu-devel@nongnu.org; Tue, 19 Mar 2013 15:45:09 -0400 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MJX000S2AV6KJA0@mailout3.w1.samsung.com> for qemu-devel@nongnu.org; Tue, 19 Mar 2013 19:45:06 +0000 (GMT) Received: from mitsyankoPC.rnd.samsung.ru ([106.109.129.86]) by eusync2.samsung.com (Oracle Communications Messaging Server 7u4-23.01(7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPA id <0MJX008ZMAUWFTA0@eusync2.samsung.com> for qemu-devel@nongnu.org; Tue, 19 Mar 2013 19:45:06 +0000 (GMT) From: Igor Mitsyanko Date: Tue, 19 Mar 2013 23:44:55 +0400 Message-id: <1363722296-29940-2-git-send-email-i.mitsyanko@gmail.com> In-reply-to: <1363722296-29940-1-git-send-email-i.mitsyanko@gmail.com> References: <1363722296-29940-1-git-send-email-i.mitsyanko@gmail.com> Subject: [Qemu-devel] [PATCH 1/2] exynos4210_fimd.c: fix display resize bug introduced after console revamp List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, kraxel@redhat.com, i.mitsyanko@samsung.com In exynos4210 display update function, we were acquiring DisplaySurface pointer before calling screen resize function, not paying attention that resize procedure can replace current DisplaySurface with newly allocated one. Right thing to do is to initialize DisplaySurface AFTER a call to resize function. Signed-off-by: Igor Mitsyanko --- hw/exynos4210_fimd.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/exynos4210_fimd.c b/hw/exynos4210_fimd.c index bf316c6..333456a 100644 --- a/hw/exynos4210_fimd.c +++ b/hw/exynos4210_fimd.c @@ -1243,7 +1243,7 @@ static void exynos4210_update_resolution(Exynos4210fimdState *s) static void exynos4210_fimd_update(void *opaque) { Exynos4210fimdState *s = (Exynos4210fimdState *)opaque; - DisplaySurface *surface = qemu_console_surface(s->console); + DisplaySurface *surface; Exynos4210fimdWindow *w; int i, line; hwaddr fb_line_addr, inc_size; @@ -1256,11 +1256,12 @@ static void exynos4210_fimd_update(void *opaque) const int global_height = ((s->vidtcon[2] >> FIMD_VIDTCON2_VER_SHIFT) & FIMD_VIDTCON2_SIZE_MASK) + 1; - if (!s || !s->console || !surface_bits_per_pixel(surface) || - !s->enabled) { + if (!s || !s->console || !s->enabled || + surface_bits_per_pixel(qemu_console_surface(s->console)) == 0) { return; } exynos4210_update_resolution(s); + surface = qemu_console_surface(s->console); for (i = 0; i < NUM_OF_WINDOWS; i++) { w = &s->window[i]; -- 1.7.5.4