drivers/gpu/drm/openchrome/via_crtc.c |   25 +++++++++++++------------
 drivers/gpu/drm/openchrome/via_drv.h  |    4 ++--
 2 files changed, 15 insertions(+), 14 deletions(-)

New commits:
commit 15f26a470d1b3d707f6d3245660cae8f4f2efc15
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Tue Mar 27 20:50:19 2018 -0700

    drm/openchrome: Version bumped to 3.0.79
    
    This version fixes corrupted hardware cursor(s) after standby resume
    and hardware cursor(s) being left displayed after switching to VT
    (Virtual Terminal). It will cause a minor regression of hardware
    cursor(s) being turned off right after standby resume, although it
    will turn back on when the associated input device is moved around the
    screen.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_drv.h 
b/drivers/gpu/drm/openchrome/via_drv.h
index 82a35c650d97..a86c9b5250a5 100644
--- a/drivers/gpu/drm/openchrome/via_drv.h
+++ b/drivers/gpu/drm/openchrome/via_drv.h
@@ -30,11 +30,11 @@
 #define DRIVER_AUTHOR       "OpenChrome Project"
 #define DRIVER_NAME         "openchrome"
 #define DRIVER_DESC         "OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE         "20180314"
+#define DRIVER_DATE         "20180327"
 
 #define DRIVER_MAJOR           3
 #define DRIVER_MINOR           0
-#define DRIVER_PATCHLEVEL      78
+#define DRIVER_PATCHLEVEL      79
 
 #include <linux/module.h>
 
commit 259ecea2de9c63abfc29d22bd16a78e4ecf56420
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Tue Mar 27 20:48:45 2018 -0700

    drm/openchrome: Fix for corrupted cursor(s) after standby resume
    
    This commit fixes corrupted hardware cursor(s) after standby resume
    likely introduced by commit 981d27b3a95a7df6fb6c6887b467f576bf8a8b97.
    Furthermore, it also fixes a bug that causes hardware cursor(s) to stay
    displayed after switching over to VT (Virtual Terminal). That being
    said, this commit will cause a minor regression of turning off the
    hardware cursor(s) right after standby resume, although they will be
    displayed again when the input device is moved around the screen.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_crtc.c 
b/drivers/gpu/drm/openchrome/via_crtc.c
index a1ea671939ab..ea559b04468a 100644
--- a/drivers/gpu/drm/openchrome/via_crtc.c
+++ b/drivers/gpu/drm/openchrome/via_crtc.c
@@ -394,6 +394,9 @@ static int via_crtc_cursor_move(struct drm_crtc *crtc, int 
x, int y)
                VIA_WRITE(HI_CENTEROFFSET, ((xoff << 16) | (yoff & 0x07ff)));
                break;
        }
+
+       via_show_cursor(crtc);
+
        return 0;
 }
 
@@ -1939,9 +1942,6 @@ static void via_iga1_crtc_prepare(struct drm_crtc *crtc)
 {
        DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-       /* Turn off the cursor */
-       via_hide_cursor(crtc);
-
        /* Blank the screen */
        if (crtc->enabled)
                via_iga1_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
@@ -1953,9 +1953,6 @@ static void via_iga1_crtc_commit(struct drm_crtc *crtc)
 {
        DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-       /* Turn on the cursor */
-       via_show_cursor(crtc);
-
        /* Turn on the monitor */
        if (crtc->enabled)
                via_iga1_crtc_dpms(crtc, DRM_MODE_DPMS_ON);
@@ -2112,6 +2109,11 @@ static int via_iga1_crtc_mode_set(struct drm_crtc *crtc,
 
        ret = via_iga1_crtc_mode_set_base(crtc, x, y, fb);
 
+       /* Specify the cursor pattern. */
+       via_cursor_address(crtc);
+
+       /* Turn off the cursor. */
+       via_hide_cursor(crtc);
 exit:
        DRM_DEBUG_KMS("Exiting %s.\n", __func__);
        return ret;
@@ -2228,9 +2230,6 @@ static void via_iga2_crtc_prepare(struct drm_crtc *crtc)
 {
        DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-       /* Turn off the cursor */
-       via_hide_cursor(crtc);
-
        /* Blank the screen */
        if (crtc->enabled)
                via_iga2_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
@@ -2242,9 +2241,6 @@ static void via_iga2_crtc_commit(struct drm_crtc *crtc)
 {
        DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-       /* Turn on the cursor */
-       via_show_cursor(crtc);
-
        /* Turn on the monitor */
        if (crtc->enabled)
                via_iga2_crtc_dpms(crtc, DRM_MODE_DPMS_ON);
@@ -2435,6 +2431,11 @@ static int via_iga2_crtc_mode_set(struct drm_crtc *crtc,
 
        ret = via_iga2_crtc_mode_set_base(crtc, x, y, fb);
 
+       /* Specify the cursor pattern. */
+       via_cursor_address(crtc);
+
+       /* Turn off the cursor. */
+       via_hide_cursor(crtc);
 exit:
        DRM_DEBUG_KMS("Exiting %s.\n", __func__);
        return ret;
_______________________________________________
Openchrome-devel mailing list
Openchrome-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to