drivers/gpu/drm/via/via_crtc.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

New commits:
commit fe1cf74897f740ab3e31733649a435d1a9353e09
Author: James Simmons <jsimm...@infradead.org>
Date:   Sat Mar 30 18:13:29 2013 -0400

    Another IRQ issue. This time it is with vblank irq happening when nothing 
is mapped to the crtc. To handle this a crtc disable function is introduce that 
turns off the vbl, cursor, and power downs the crtc not in use.

diff --git a/drivers/gpu/drm/via/via_crtc.c b/drivers/gpu/drm/via/via_crtc.c
index 3933e00..c923936 100644
--- a/drivers/gpu/drm/via/via_crtc.c
+++ b/drivers/gpu/drm/via/via_crtc.c
@@ -901,6 +901,19 @@ via_crtc_dpms(struct drm_crtc *crtc, int mode)
 }
 
 static void
+via_crtc_disable(struct drm_crtc *crtc)
+{
+       struct via_crtc *iga = container_of(crtc, struct via_crtc, base);
+
+       drm_vblank_off(crtc->dev, iga->index);
+
+       /* Turn off the cursor */
+       via_hide_cursor(crtc);
+
+       via_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
+}
+
+static void
 via_crtc_prepare(struct drm_crtc *crtc)
 {
        /* Turn off the cursor */
@@ -1258,6 +1271,7 @@ via_iga2_mode_set_base_atomic(struct drm_crtc *crtc, 
struct drm_framebuffer *fb,
 
 static const struct drm_crtc_helper_funcs via_iga1_helper_funcs = {
        .dpms = via_crtc_dpms,
+       .disable = via_crtc_disable,
        .prepare = via_crtc_prepare,
        .commit = via_crtc_commit,
        .mode_fixup = via_crtc_mode_fixup,
@@ -1269,6 +1283,7 @@ static const struct drm_crtc_helper_funcs 
via_iga1_helper_funcs = {
 
 static const struct drm_crtc_helper_funcs via_iga2_helper_funcs = {
        .dpms = via_crtc_dpms,
+       .disable = via_crtc_disable,
        .prepare = via_crtc_prepare,
        .commit = via_crtc_commit,
        .mode_fixup = via_crtc_mode_fixup,
_______________________________________________
Openchrome-devel mailing list
Openchrome-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to