History log of /drivers/gpu/drm/armada/armada_crtc.c
Revision Date Author Comments
178e561f514fca4863c06a4af3501172e5627eb1 12-Oct-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: convert to use vblank_on/off calls

A future commit changes the way various vblank calls behave, which
causes drivers to break. Converting to use the drm_crtc_vblank_on/off
calls avoids this breakage.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
c5488307dd679ea3fc23fec77dbf27191c2becda 12-Oct-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: fix page_flip refcounting leak

A refcounting leak was found of the original frame buffer attached to
the CRTC when using the page_flip ioctl, resulting in the frame buffer
never being freed.

This was not obvious initially, as if the page flip subsequently
re-attaches the original frame buffer, the refcounts will be balanced.
However, if the original frame buffer is freed, then it will be leaked.

Fix this by ensuring that we take a reference on the incoming fb, but
rely on the queued work to drop that ref count.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
9611cb93fa65dde199f4f888bd034ffc80c7adf0 15-Jun-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: register crtc with port

Register the CRTC with the port node so that the DRM OF helpers can
find the appropriate CRTC. This is important so that encoders can
identify their corresponding possible CRTCs.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
d8c96083cf5e4a910c20836414e8a06ebcf07317 22-Apr-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: permit CRTCs to be registered as separate devices

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
42e62ba7a484e12a77b9e330a29bbf7c99d3e60e 22-Apr-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: make variant a CRTC thing

Move the variant pointer into the armada_crtc structure, and update for
the resulting changes.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
3ecea269959afaae50b001deb294cfb9539dbea3 22-Apr-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: move variant initialisation to CRTC init

Move the variant initialisation entirely to the CRTC init function -
the variant support is really about the CRTC properties than the whole
system, and we want to treat each CRTC individually when we support DT.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
d016540722bb412ffa8376a9db0de757ce915bfb 22-Apr-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: use number of CRTCs registered

Use the number of CRTCs registered to size the vblank arrays rather than
our own count. Number CRTCs using this as well. This permits us to
register CRTCs as components in the near future rather than as part of a
single device.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
e5d9ddfbb79667fb4b16db07c3282a2304fbf3ff 26-Apr-2014 Russell King <rmk+kernel@arm.linux.org.uk> drm/armada: move IRQ handling into CRTC

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
c9d53c0f2d23c792e4b9cf1551b63de4516f839e 11-Jun-2014 Jingoo Han <jg1.han@samsung.com> devres: remove devm_request_and_ioremap()

devm_request_and_ioremap() was obsoleted by the commit 7509657
("lib: devres: Introduce devm_ioremap_resource()") and has been
deprecated for a long time. So, let's remove this function.
In addition, all usages of devm_request_and_ioremap() are also
removed.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
c39b06951f1dc2e384650288676c5b7dcc0ec92c 07-Apr-2014 Russell King <rmk+kernel@arm.linux.org.uk> DRM: armada: fix corruption while loading cursors

Loading cursors to the LCD controller's SRAM can be corrupted when the
configured pixel clock is relatively slow. This seems to be caused
when we write back-to-back to the SRAM registers.

There doesn't appear to be any status register we can read to check
when an access has completed.

Inserting a dummy read between the writes appears to fix the problem.

Cc: <stable@vger.kernel.org> # 3.13
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
f4510a2752b75ad5847b7935b68c233cab497f97 02-Apr-2014 Matt Roper <matthew.d.roper@intel.com> drm: Replace crtc fb with primary plane fb (v3)

Now that CRTC's have a primary plane, there's no need to track the
framebuffer in the CRTC. Replace all references to the CRTC fb with the
primary plane's fb.

This patch was generated by the Coccinelle semantic patching tool using
the following rules:

@@ struct drm_crtc C; @@
- (C).fb
+ C.primary->fb

@@ struct drm_crtc *C; @@
- (C)->fb
+ C->primary->fb

v3: Generate patch via coccinelle. Actual removal of crtc->fb has been
moved to a subsequent patch.

v2: Fixup several lingering crtc->fb instances that were missed in the
first patch iteration. [Rob Clark]

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
662af0d8228ced3c7b3d3012a73dce929fc27574 19-May-2013 Russell King <rmk+kernel@arm.linux.org.uk> DRM: Armada: Add support for ARGB 32x64 or 64x32 hardware cursors

This patch adds ARGB hardware cursor support to the DRM driver for the
Marvell Armada SoCs. ARGB cursors are supported at either 32x64 or
64x32 resolutions.

Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
96f60e37dc66091bde8d5de136ff6fda09f2d799 15-Aug-2012 Russell King <rmk+kernel@arm.linux.org.uk> DRM: Armada: Add Armada DRM driver

This patch adds support for the pair of LCD controllers on the Marvell
Armada 510 SoCs. This driver supports:
- multiple contiguous scanout buffers for video and graphics
- shm backed cacheable buffer objects for X pixmaps for Vivante GPU
acceleration
- dual lcd0 and lcd1 crt operation
- video overlay on each LCD crt via DRM planes
- page flipping of the main scanout buffers
- DRM prime for buffer export/import

This driver is trivial to extend to other Armada SoCs.

Included in this commit is the core driver with no output support; output
support is platform and encoder driver dependent.

Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>