diff options
author | Liu Ying <Ying.Liu@freescale.com> | 2013-08-15 18:01:40 +0800 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2013-10-30 09:54:51 +0800 |
commit | ef75850e345b994f60f25a4c328c6d914672838d (patch) | |
tree | 80f479e0f212d573aec7c0d70c27dc5a42f32bef /drivers/video | |
parent | 43c717a6c1fdb7cd7cfb2646cb551769ab2dae86 (diff) |
ENGR00275419-1 mxc dispdrv: introduce post init interface
This patch adds a new post init interface in the mxc display
driver. It may do necessary deferred operations after a
display device's dev_id and disp_id pass usage check. This
is a feasible way to avoid any setup being overwitten or
damaged by a late coming display device which uses the same
dev_id and disp_id with a display already registered.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/mxc/mxc_dispdrv.c | 2 | ||||
-rw-r--r-- | drivers/video/mxc/mxc_dispdrv.h | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/video/mxc/mxc_dispdrv.c b/drivers/video/mxc/mxc_dispdrv.c index 2e6da99c4f68..5193c7deef00 100644 --- a/drivers/video/mxc/mxc_dispdrv.c +++ b/drivers/video/mxc/mxc_dispdrv.c @@ -18,6 +18,8 @@ * A display device driver could call mxc_dispdrv_register(drv) in its dev_probe() function. * Move all dev_probe() things into mxc_dispdrv_driver->init(), init() function should init * and feedback setting; + * Necessary deferred operations can be done in mxc_dispdrv_driver->post_init(), + * after dev_id and disp_id pass usage check; * Move all dev_remove() things into mxc_dispdrv_driver->deinit(); * Move all dev_suspend() things into fb_notifier for SUSPEND, if there is; * Move all dev_resume() things into fb_notifier for RESUME, if there is; diff --git a/drivers/video/mxc/mxc_dispdrv.h b/drivers/video/mxc/mxc_dispdrv.h index d6dcf19dc404..127fd08ea391 100644 --- a/drivers/video/mxc/mxc_dispdrv.h +++ b/drivers/video/mxc/mxc_dispdrv.h @@ -33,6 +33,8 @@ struct mxc_dispdrv_setting { struct mxc_dispdrv_driver { const char *name; int (*init) (struct mxc_dispdrv_handle *, struct mxc_dispdrv_setting *); + /* deferred operations after dev_id and disp_id pass usage check */ + int (*post_init) (struct mxc_dispdrv_handle *, int dev_id, int disp_id); void (*deinit) (struct mxc_dispdrv_handle *); /* display driver enable function for extension */ int (*enable) (struct mxc_dispdrv_handle *); |