72d0c3363e88d1816b0fef3687ff58e6553a7889 |
|
12-Mar-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: send page-flip event after endwin The endwin irq indicates that DSS has finished scanning out a buffer. Use this to trigger page-flip event to userspace, so this happens only *after* the previous buffer is finished. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/drivers/staging/omapdrm/omap_drv.h
|
f6b6036e56ca17378dd0294b684db623abd6a901 |
|
05-Mar-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: debugfs for object and fb tracking Add some additional debugfs file to aid in tracking buffer usage. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/drivers/staging/omapdrm/omap_drv.h
|
b33f34d3d10b9b00ca568740e7099da107d525b9 |
|
05-Mar-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: defer unpin until scanout completes When flipping, defer unpinning until scanout completes, as indicated by the appropriate END_WIN irq. This also re-organizes things a bit, in replacing omap_fb_{pin,unpin} with omap_fb_replace(), to make it easier to add support for scanout synchronized DMM refill mode (flipping by just reprogramming DMM synchronized with DSS scanout). Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/drivers/staging/omapdrm/omap_drv.h
|
5609f7fe306508d77e0dcf1de2c9a957b6af1e06 |
|
05-Mar-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: add a workqueue Add a workqueue for omapdrm driver, which is needed for at least a couple things currently: (1) moving omap_gem_roll() to a non-atomic context, (2) synchronizing page flips w/ DSS scanout related irq's (in particular not unmapping previous buffer until DSS finishes scanout). Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/drivers/staging/omapdrm/omap_drv.h
|
a890e6623ae024d28f855d672e72649fa2cb511e |
|
05-Mar-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: get supported color formats from ovl Get the supported formats for a plane from ovl's supported_modes bitmask. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/drivers/staging/omapdrm/omap_drv.h
|
2f53700df17bf52332056c1e85b23bcf64c77e57 |
|
16-Jan-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: updates for DSS fifomerge API changes Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
9a0774e0991c82a95ef5e5848b318bd15aba0dcd |
|
16-Jan-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: multiplanar and YUV support Add support in framebuffer objects for other color formats and multi- planar YUV (NV12). Since this requires changing the API between the plane and fb for getting scanout information (paddr, etc), take advantage of the opportunity and put in place a way to allow fb's to be unpinned when they are not being scanned out. Now, before start of scanout the plane calls omap_framebuffer_pin() which takes care to pin all the backing bo's, then omap_framebuffer_update_scanout() however many times to update the scanout address(es), etc, and then when finished omap_framebuffer_unpin(). Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
bb5c2d9aaaa26a55e684c175c431df95aa178233 |
|
16-Jan-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: add drm_plane support Because framebuffer layer and overlay scanout video pipes are basically thing in OMAP display subsystem (the only difference being that the first video pipe does not support scaling or YUV formats), much of the CRTC code is pulled into the plane implementation, and a private plane object is used by the CRTC object. This avoids code duplication between the plane and CRTC. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
ae43d7ca4047b126adedcf7028c1ff99ed18703c |
|
16-Jan-2012 |
Rob Clark <rob@ti.com> |
staging: drm/omap: drm API update: addfb2 Update to reflect changes in: "drm: add an fb creation ioctl that takes a pixel format v5" Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
6169a1488fe2f76e80bd49c18e41be5bbbf29f3f |
|
16-Dec-2011 |
Andy Gross <andy.gross@ti.com> |
staging: drm/omap: add debugfs support Right now just a tiler_map file to dump a 2d map of which areas in tiler/dmm have pinned buffers (or reservations). In the future more could be added. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
a6a918274116d8edc25eb20f6097dedf97b108e2 |
|
10-Dec-2011 |
Rob Clark <rob@ti.com> |
staging: drm/omap: DMM based hardware scrolling console Add support for YWRAP scrolling by shuffling pages around in DMM instead of sw blits. Note that fbcon only utilizes this mode if the y resolution is divided evenly by the font height. So, for example, a 1920x1080 display using a 16 pixel tall font will not utilize this, but a 1280x1024 display would. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
f7f9f4536a09f9f73c800663df2e600c9405e1ef |
|
06-Dec-2011 |
Rob Clark <rob@ti.com> |
drm/omap: add GEM support for tiled/dmm buffers TILER/DMM provides two features for omapdrm GEM objects: 1) providing a physically contiguous view to discontiguous memory for hw initiators that cannot otherwise support discontiguous buffers (DSS scanout, IVAHD video decode/encode, etc) 2) providing untiling for 2d tiled buffers, which are used in some cases to provide rotation and reduce memory bandwidth for hw initiators that tend to access data in 2d block patterns. For 2d tiled buffers, there are some additional complications when it comes to userspace mmap'ings. For non-tiled buffers, the original (potentially physically discontiguous) pages are used to back the mmap. For tiled buffers, we need to mmap via the tiler/dmm region to provide an unswizzled view of the buffer. But (a) the buffer is not necessarily pinned in TILER all the time (it can be unmapped when there is no DMA access to the buffer), and (b) when they are they are pinned, they not necessarily page aligned from the perspective of the CPU. And non-page aligned userspace buffer mapping is evil. To solve this, we reserve one or more small regions in each of the 2d containers when the driver is loaded to use as a "user-GART" where we can create a second page-aligned mapping of parts of the buffer being accessed from userspace. Page faulting is used to evict and remap different regions of whichever buffers are being accessed from user- space. Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|
cd5351f4d2b1b884d8c21a7636d5c0ea3b69d123 |
|
12-Nov-2011 |
Rob Clark <rob@ti.com> |
staging: add omapdrm DRM/KMS driver for TI OMAP platforms A DRM display driver for TI OMAP platform. Similar to omapfb (fbdev) and omap_vout (v4l2 display) drivers in the past, this driver uses the DSS2 driver to access the display hardware, including support for HDMI, DVI, and various types of LCD panels. And it implements GEM support for buffer allocation (for KMS as well as offscreen buffers used by the xf86-video-omap userspace xorg driver). The driver maps CRTCs to overlays, encoders to overlay-managers, and connectors to dssdev's. Note that this arrangement might change slightly when support for drm_plane overlays is added. For GEM support, non-scanout buffers are using the shmem backed pages provided by GEM core (In drm_gem_object_init()). In the case of scanout buffers, which need to be physically contiguous, those are allocated with CMA and use drm_gem_private_object_init(). See userspace xorg driver: git://github.com/robclark/xf86-video-omap.git Refer to this link for CMA (Continuous Memory Allocator): http://lkml.org/lkml/2011/8/19/302 Links to previous versions of the patch: v1: http://lwn.net/Articles/458137/ v2: http://patches.linaro.org/4156/ v3: http://patches.linaro.org/4688/ v4: http://patches.linaro.org/4791/ History: v5: move headers from include/drm at Greg KH's request, minor rebasing on 3.2-rc1, pull in private copies of drm_gem_{get,put}_pages() because "drm/gem: add functions to get/put pages" patch is not merged yet v4: bit of rework of encoder/connector _dpms() code, modeset_init() rework to not use nested functions, update TODO.txt v3: minor cleanups, improved error handling for dev_load(), some minor API changes that will be needed later for tiled buffer support v2: replace omap_vram with CMA for scanout buffer allocation, remove unneeded functions, use dma_addr_t for physical addresses, error handling cleanup, refactor attach/detach pages into common drm functions, split non-userspace-facing API into omap_priv.h, remove plugin API v1: original Signed-off-by: Rob Clark <rob@ti.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/staging/omapdrm/omap_drv.h
|