diff options
author | Lajos Molnar <molnar@ti.com> | 2011-06-22 19:28:24 -0500 |
---|---|---|
committer | Rebecca Schultz Zavin <rebecca@android.com> | 2011-07-11 17:00:32 -0700 |
commit | b77e0f19fe564ec32287a6a3a1183fe6713d0f91 (patch) | |
tree | 78b0377575edd429e909c0d38c9c80a584a29c1d /include | |
parent | d0cf5c4d69561db81fd2ddcdd12f8c65169c0ce8 (diff) | |
download | kernel_samsung_tuna-b77e0f19fe564ec32287a6a3a1183fe6713d0f91.zip kernel_samsung_tuna-b77e0f19fe564ec32287a6a3a1183fe6713d0f91.tar.gz kernel_samsung_tuna-b77e0f19fe564ec32287a6a3a1183fe6713d0f91.tar.bz2 |
OMAP: DSSCOMP: Added gralloc adaptation layer
Added dsscomp_gralloc_queue() to queue a DSS composition from gralloc.
This allows passing page list information for non-contiguous buffers,
and a callback funtion.
This gralloc layer automatically uses TILER1D areas to pin
non-contiguous buffers, so that they become contiguous and can
can be displayed by DSS. We only use dsscomp_gralloc_queue() for
displaying a composition, so set the mode for DISPLAY.
Also added new ioctl to test gralloc adaptaion layer.
dsscomp_gralloc_init() does two things: it receives pointer to
the device, and allocates TILER container areas.
DSSCOMP is initialized before TILER, which causes problems.
Thus, dsscomp_gralloc_init() stores the device pointer separately
from allocating the memory. This way each part can fail
independently.
Added dsscomp_gralloc_init() within dsscomp_gralloc_queue() as
it may be called before using the dsscomp device vs the file
pointer.
Using semaphore to keep track of available tiler slots. This
is needed because we are releasing tiler slots in a work
queue, that may get scheduled too late:
- we release tiler slots when a composition is eclipsed in a
work queue, as tiler_unpin_memory may be blocking.
- we also release tiler slots if a composition has failed to
be set.
PVRSVC's callback is called when the composition is first
displayed or eclipsed. It also gets called if a composition
fails to queue to avoid a similar check and call from the
called of queue().
Change-Id: I69d0a0c9fe452f05d846c6a38e314c5ac52d70e6
Signed-off-by: Lajos Molnar <molnar@ti.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/video/dsscomp.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/video/dsscomp.h b/include/video/dsscomp.h index 0900f7a..6248493 100644 --- a/include/video/dsscomp.h +++ b/include/video/dsscomp.h @@ -554,4 +554,6 @@ struct dsscomp_wait_data { #define DSSCOMP_QUERY_DISPLAY _IOWR('O', 131, struct dsscomp_display_info) #define DSSCOMP_WAIT _IOW('O', 132, struct dsscomp_wait_data) +#define DSSCOMP_SETUP_MGR_G _IOW('O', 127, struct dsscomp_setup_mgr_data) + #endif |