]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ENGR00211764 IPUv3 fb: support pan display with fb_set_var
authorLiu Ying <Ying.Liu@freescale.com>
Wed, 30 May 2012 08:14:06 +0000 (16:14 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:12:01 +0000 (14:12 +0200)
commita0cdaf9387b2b903a4165cb41faca9e5f23f1949
treeb0a3d30f48a83170089d2b85dce93ffbddf3e0f4
parentf77cd8da563fec59400341903e1f27372fb00be8
ENGR00211764 IPUv3 fb: support pan display with fb_set_var

Users may call FBIOPUT_VSCREENINFO ioctrl to do pan display.
This ioctrl relies on fb_set_var() to do the job. fb_set_var()
calls custom fb_set_par() method and then calls custom
fb_pan_display() method. The current implementation of ipuv3fb
reinitializes IPU display controller every time the custom
fb_set_par() method is called, which makes the display flash
if fb_set_var() is called to do panning frequently. The custom
fb_pan_display() method checks if the current xoffset and
yoffset are different from previous ones before doing actual
panning, which prevents the panning from happening within the
fb_set_var() context. This patch checks new var info to decide
whether we really need to reinitialize IPU display controller.
We ignore xoffset and yoffset update because it doesn't require
to reinitialize the controller. Users may specify activate field
of var info with FB_ACTIVATE_NOW and FB_ACTIVATE_FORCE to
reinialize the controller by force. Meanwhile, this patch removes
the check in custom fb_pan_display() method mentioned before to
have the panning work within fb_set_var() context. It doesn't
hurt to do panning again if there is no update for xoffset and
yoffset.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
drivers/video/mxc/mxc_ipuv3_fb.c