[openchrome-devel] xf86-video-openchrome: Branch 'main' - 9 commits - configure.ac src/via_ch7xxx.c src/via_display.c src/via_ums.c src/via_ums.h

Kevin Brace kevinbrace at kemper.freedesktop.org
Fri May 28 22:37:40 UTC 2021


 configure.ac      |    2 
 src/via_ch7xxx.c  |    1 
 src/via_display.c |  316 +++++++++++-------------------------------------------
 src/via_ums.c     |    4 
 src/via_ums.h     |    3 
 5 files changed, 72 insertions(+), 254 deletions(-)

New commits:
commit 9721ba4664902dc3a5f3cc0f142195dbab57b925
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 15:17:01 2021 -0700

    Version bumped to 0.6.403
    
    Mostly code refactoring, but there was one fix for VX900 chipset's
    IGA2 not being able to properly handle a horizontal resolution > 2048.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/configure.ac b/configure.ac
index 5ae93bd..70b0190 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-openchrome],
-        [0.6.402],
+        [0.6.403],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit f65ee550945e6ad594d9ecfac29455b1891a4b47
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 15:12:59 2021 -0700

    Rename iga_crtc_*() to via_crtc_*()
    
    Also, rename iga_crtc_funcs{} to via_crtc_funcs{}.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index 3b290c9..66d6142 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3075,7 +3075,7 @@ ViaShadowCRTCSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
 }
 
 static void
-iga_crtc_dpms(xf86CrtcPtr crtc, int mode)
+via_crtc_dpms(xf86CrtcPtr crtc, int mode)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3116,7 +3116,7 @@ iga_crtc_dpms(xf86CrtcPtr crtc, int mode)
 }
 
 static void
-iga_crtc_save(xf86CrtcPtr crtc)
+via_crtc_save(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3135,7 +3135,7 @@ iga_crtc_save(xf86CrtcPtr crtc)
 }
 
 static void
-iga_crtc_restore(xf86CrtcPtr crtc)
+via_crtc_restore(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3154,7 +3154,7 @@ iga_crtc_restore(xf86CrtcPtr crtc)
 }
 
 static Bool
-iga_crtc_lock(xf86CrtcPtr crtc)
+via_crtc_lock(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
 
@@ -3168,7 +3168,7 @@ iga_crtc_lock(xf86CrtcPtr crtc)
 }
 
 static void
-iga_crtc_unlock(xf86CrtcPtr crtc)
+via_crtc_unlock(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
 
@@ -3180,7 +3180,7 @@ iga_crtc_unlock(xf86CrtcPtr crtc)
 }
 
 static Bool
-iga_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
+via_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
                         DisplayModePtr adjusted_mode)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
@@ -3237,7 +3237,7 @@ iga_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
 }
 
 static void
-iga_crtc_prepare(xf86CrtcPtr crtc)
+via_crtc_prepare(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3258,7 +3258,7 @@ iga_crtc_prepare(xf86CrtcPtr crtc)
 }
 
 static void
-iga_crtc_mode_set(xf86CrtcPtr crtc,
+via_crtc_mode_set(xf86CrtcPtr crtc,
                     DisplayModePtr mode, DisplayModePtr adjusted_mode,
                     int x, int y)
 {
@@ -3336,7 +3336,7 @@ iga_crtc_mode_set(xf86CrtcPtr crtc,
 }
 
 static void
-iga_crtc_commit(xf86CrtcPtr crtc)
+via_crtc_commit(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3357,7 +3357,7 @@ iga_crtc_commit(xf86CrtcPtr crtc)
 }
 
 static void
-iga_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
+via_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
                     int size)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
@@ -3407,7 +3407,7 @@ iga_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
     and in all other bpps the fg and bg are in 8-8-8 RGB format.
 */
 static void
-iga_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg)
+via_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3435,7 +3435,7 @@ iga_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg)
 }
 
 static void
-iga_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
+via_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3463,7 +3463,7 @@ iga_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
 }
 
 static void
-iga_crtc_show_cursor(xf86CrtcPtr crtc)
+via_crtc_show_cursor(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3476,7 +3476,7 @@ iga_crtc_show_cursor(xf86CrtcPtr crtc)
 }
 
 static void
-iga_crtc_hide_cursor(xf86CrtcPtr crtc)
+via_crtc_hide_cursor(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3489,7 +3489,7 @@ iga_crtc_hide_cursor(xf86CrtcPtr crtc)
 }
 
 static void
-iga_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
+via_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3510,7 +3510,7 @@ iga_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
 }
 
 static void
-iga_crtc_destroy(xf86CrtcPtr crtc)
+via_crtc_destroy(xf86CrtcPtr crtc)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
 
@@ -3526,7 +3526,7 @@ iga_crtc_destroy(xf86CrtcPtr crtc)
 
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2
 static void
-iga_crtc_set_origin(xf86CrtcPtr crtc, int x, int y)
+via_crtc_set_origin(xf86CrtcPtr crtc, int x, int y)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
     drmmode_crtc_private_ptr iga = crtc->driver_private;
@@ -3547,24 +3547,24 @@ iga_crtc_set_origin(xf86CrtcPtr crtc, int x, int y)
 }
 #endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2 */
 
-const xf86CrtcFuncsRec iga_crtc_funcs = {
-    .dpms                   = iga_crtc_dpms,
-    .save                   = iga_crtc_save,
-    .restore                = iga_crtc_restore,
-    .lock                   = iga_crtc_lock,
-    .unlock                 = iga_crtc_unlock,
-    .mode_fixup             = iga_crtc_mode_fixup,
-    .prepare                = iga_crtc_prepare,
-    .mode_set               = iga_crtc_mode_set,
-    .commit                 = iga_crtc_commit,
-    .gamma_set              = iga_crtc_gamma_set,
-    .set_cursor_colors      = iga_crtc_set_cursor_colors,
-    .set_cursor_position    = iga_crtc_set_cursor_position,
-    .show_cursor            = iga_crtc_show_cursor,
-    .hide_cursor            = iga_crtc_hide_cursor,
-    .load_cursor_argb       = iga_crtc_load_cursor_argb,
-    .destroy                = iga_crtc_destroy,
+const xf86CrtcFuncsRec via_crtc_funcs = {
+    .dpms                   = via_crtc_dpms,
+    .save                   = via_crtc_save,
+    .restore                = via_crtc_restore,
+    .lock                   = via_crtc_lock,
+    .unlock                 = via_crtc_unlock,
+    .mode_fixup             = via_crtc_mode_fixup,
+    .prepare                = via_crtc_prepare,
+    .mode_set               = via_crtc_mode_set,
+    .commit                 = via_crtc_commit,
+    .gamma_set              = via_crtc_gamma_set,
+    .set_cursor_colors      = via_crtc_set_cursor_colors,
+    .set_cursor_position    = via_crtc_set_cursor_position,
+    .show_cursor            = via_crtc_show_cursor,
+    .hide_cursor            = via_crtc_hide_cursor,
+    .load_cursor_argb       = via_crtc_load_cursor_argb,
+    .destroy                = via_crtc_destroy,
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2
-    .set_origin             = iga_crtc_set_origin,
+    .set_origin             = via_crtc_set_origin,
 #endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2 */
 };
diff --git a/src/via_ums.c b/src/via_ums.c
index 44b1225..c7e5d56 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -1477,7 +1477,7 @@ viaUMSPreInit(ScrnInfoPtr pScrn)
         goto free_mmio;
     }
 
-    iga1 = xf86CrtcCreate(pScrn, &iga_crtc_funcs);
+    iga1 = xf86CrtcCreate(pScrn, &via_crtc_funcs);
     if (!iga1) {
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "xf86CrtcCreate failed.\n");
         free(iga1_rec);
@@ -1495,7 +1495,7 @@ viaUMSPreInit(ScrnInfoPtr pScrn)
         goto free_mmio;
     }
 
-    iga2 = xf86CrtcCreate(pScrn, &iga_crtc_funcs);
+    iga2 = xf86CrtcCreate(pScrn, &via_crtc_funcs);
     if (!iga2) {
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "xf86CrtcCreate failed.\n");
         xf86CrtcDestroy(iga1);
diff --git a/src/via_ums.h b/src/via_ums.h
index 8391745..d77d0a5 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -1621,7 +1621,7 @@ void viaIGA2SetDisplayRegister(ScrnInfoPtr pScrn, DisplayModePtr mode);
 void viaIGA2Save(ScrnInfoPtr pScrn);
 void viaIGA2Restore(ScrnInfoPtr pScrn);
 void ViaShadowCRTCSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
-extern const xf86CrtcFuncsRec iga_crtc_funcs;
+extern const xf86CrtcFuncsRec via_crtc_funcs;
 
 /* via_analog.c */
 void viaAnalogProbe(ScrnInfoPtr pScrn);
commit e8165d3b91a039b2d75355c4fb0dd2f2d941e908
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 15:03:36 2021 -0700

    Minor modifications to iga_crtc_destroy()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index 290e497..3b290c9 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3509,6 +3509,21 @@ iga_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
     }
 }
 
+static void
+iga_crtc_destroy(xf86CrtcPtr crtc)
+{
+    ScrnInfoPtr pScrn = crtc->scrn;
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered %s.\n", __func__));
+
+    if (crtc->driver_private)
+        free(crtc->driver_private);
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting %s.\n", __func__));
+}
+
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2
 static void
 iga_crtc_set_origin(xf86CrtcPtr crtc, int x, int y)
@@ -3532,13 +3547,6 @@ iga_crtc_set_origin(xf86CrtcPtr crtc, int x, int y)
 }
 #endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2 */
 
-static void
-iga_crtc_destroy(xf86CrtcPtr crtc)
-{
-    if (crtc->driver_private)
-        free(crtc->driver_private);
-}
-
 const xf86CrtcFuncsRec iga_crtc_funcs = {
     .dpms                   = iga_crtc_dpms,
     .save                   = iga_crtc_save,
@@ -3555,8 +3563,8 @@ const xf86CrtcFuncsRec iga_crtc_funcs = {
     .show_cursor            = iga_crtc_show_cursor,
     .hide_cursor            = iga_crtc_hide_cursor,
     .load_cursor_argb       = iga_crtc_load_cursor_argb,
+    .destroy                = iga_crtc_destroy,
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2
     .set_origin             = iga_crtc_set_origin,
 #endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2 */
-    .destroy                = iga_crtc_destroy,
 };
commit 6eaef9ed173ad7e032919c97dce5bf7132c1af17
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 14:59:51 2021 -0700

    Streamline iga*_crtc_funcs{} into iga_crtc_funcs{}
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index d05ecb6..290e497 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3539,29 +3539,7 @@ iga_crtc_destroy(xf86CrtcPtr crtc)
         free(crtc->driver_private);
 }
 
-const xf86CrtcFuncsRec iga1_crtc_funcs = {
-    .dpms                   = iga_crtc_dpms,
-    .save                   = iga_crtc_save,
-    .restore                = iga_crtc_restore,
-    .lock                   = iga_crtc_lock,
-    .unlock                 = iga_crtc_unlock,
-    .mode_fixup             = iga_crtc_mode_fixup,
-    .prepare                = iga_crtc_prepare,
-    .mode_set               = iga_crtc_mode_set,
-    .commit                 = iga_crtc_commit,
-    .gamma_set              = iga_crtc_gamma_set,
-    .set_cursor_colors      = iga_crtc_set_cursor_colors,
-    .set_cursor_position    = iga_crtc_set_cursor_position,
-    .show_cursor            = iga_crtc_show_cursor,
-    .hide_cursor            = iga_crtc_hide_cursor,
-    .load_cursor_argb       = iga_crtc_load_cursor_argb,
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2
-    .set_origin             = iga_crtc_set_origin,
-#endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 2 */
-    .destroy                = iga_crtc_destroy,
-};
-
-const xf86CrtcFuncsRec iga2_crtc_funcs = {
+const xf86CrtcFuncsRec iga_crtc_funcs = {
     .dpms                   = iga_crtc_dpms,
     .save                   = iga_crtc_save,
     .restore                = iga_crtc_restore,
diff --git a/src/via_ums.c b/src/via_ums.c
index 9f1a216..44b1225 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -1477,7 +1477,7 @@ viaUMSPreInit(ScrnInfoPtr pScrn)
         goto free_mmio;
     }
 
-    iga1 = xf86CrtcCreate(pScrn, &iga1_crtc_funcs);
+    iga1 = xf86CrtcCreate(pScrn, &iga_crtc_funcs);
     if (!iga1) {
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "xf86CrtcCreate failed.\n");
         free(iga1_rec);
@@ -1495,7 +1495,7 @@ viaUMSPreInit(ScrnInfoPtr pScrn)
         goto free_mmio;
     }
 
-    iga2 = xf86CrtcCreate(pScrn, &iga2_crtc_funcs);
+    iga2 = xf86CrtcCreate(pScrn, &iga_crtc_funcs);
     if (!iga2) {
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "xf86CrtcCreate failed.\n");
         xf86CrtcDestroy(iga1);
diff --git a/src/via_ums.h b/src/via_ums.h
index ef3a856..8391745 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -1621,8 +1621,7 @@ void viaIGA2SetDisplayRegister(ScrnInfoPtr pScrn, DisplayModePtr mode);
 void viaIGA2Save(ScrnInfoPtr pScrn);
 void viaIGA2Restore(ScrnInfoPtr pScrn);
 void ViaShadowCRTCSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
-extern const xf86CrtcFuncsRec iga1_crtc_funcs;
-extern const xf86CrtcFuncsRec iga2_crtc_funcs;
+extern const xf86CrtcFuncsRec iga_crtc_funcs;
 
 /* via_analog.c */
 void viaAnalogProbe(ScrnInfoPtr pScrn);
commit b2479a3833e87beb2c4bb6f98dbe09c3ddda2294
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 14:47:04 2021 -0700

    Delete iga*_crtc_shadow_*()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index 32ae026..d05ecb6 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3400,23 +3400,6 @@ iga_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
                         "Exiting %s.\n", __func__));
 }
 
-static void *
-iga1_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
-{
-    return NULL;
-}
-
-static PixmapPtr
-iga1_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
-{
-    return NULL;
-}
-
-static void
-iga1_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data)
-{
-}
-
 /*
     Set the cursor foreground and background colors.  In 8bpp, fg and
     bg are indices into the current colormap unless the
@@ -3567,9 +3550,6 @@ const xf86CrtcFuncsRec iga1_crtc_funcs = {
     .mode_set               = iga_crtc_mode_set,
     .commit                 = iga_crtc_commit,
     .gamma_set              = iga_crtc_gamma_set,
-    .shadow_create          = iga1_crtc_shadow_create,
-    .shadow_allocate        = iga1_crtc_shadow_allocate,
-    .shadow_destroy         = iga1_crtc_shadow_destroy,
     .set_cursor_colors      = iga_crtc_set_cursor_colors,
     .set_cursor_position    = iga_crtc_set_cursor_position,
     .show_cursor            = iga_crtc_show_cursor,
@@ -3581,23 +3561,6 @@ const xf86CrtcFuncsRec iga1_crtc_funcs = {
     .destroy                = iga_crtc_destroy,
 };
 
-static void *
-iga2_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
-{
-    return NULL;
-}
-
-static PixmapPtr
-iga2_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
-{
-    return NULL;
-}
-
-static void
-iga2_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data)
-{
-}
-
 const xf86CrtcFuncsRec iga2_crtc_funcs = {
     .dpms                   = iga_crtc_dpms,
     .save                   = iga_crtc_save,
@@ -3609,9 +3572,6 @@ const xf86CrtcFuncsRec iga2_crtc_funcs = {
     .mode_set               = iga_crtc_mode_set,
     .commit                 = iga_crtc_commit,
     .gamma_set              = iga_crtc_gamma_set,
-    .shadow_create          = iga2_crtc_shadow_create,
-    .shadow_allocate        = iga2_crtc_shadow_allocate,
-    .shadow_destroy         = iga2_crtc_shadow_destroy,
     .set_cursor_colors      = iga_crtc_set_cursor_colors,
     .set_cursor_position    = iga_crtc_set_cursor_position,
     .show_cursor            = iga_crtc_show_cursor,
commit 02e83dbf242fea1a0a703a0f08df0f00f1f94fd9
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 14:25:01 2021 -0700

    Code simplification and correction for iga_crtc_gamma_set()
    
    Palette will be loaded after palette related control registers are
    set (i.e., VIALoadRgbLut() is now going to be called at the end).
    viaIGA2SetPaletteLUTResolution() will be called with a bool type
    parameter instead for a value.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index b9d9df7..32ae026 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3378,80 +3378,24 @@ iga_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
         /* Set palette LUT to 8-bit mode. */
         viaIGA1SetPaletteLUTResolution(pScrn, TRUE);
 
-        switch (pScrn->bitsPerPixel) {
-        case 8:
-            /* IGA1 will access the palette LUT. */
-            viaSetPaletteLUTAccess(pScrn, 0x00);
-
-            VIALoadRgbLut(pScrn, 0, size, colors);
-
-            /* Turn gamma correction off. */
-            viaIGA1SetGamma(pScrn, FALSE);
-            break;
-        case 16:
-            /* IGA1 will access the palette LUT. */
-            viaSetPaletteLUTAccess(pScrn, 0x00);
-
-            VIALoadRgbLut(pScrn, 0, size, colors);
-
-            /* Turn gamma correction off. */
-            viaIGA1SetGamma(pScrn, FALSE);
-            break;
-        case 32:
-            /* IGA1 will access the palette LUT. */
-            viaSetPaletteLUTAccess(pScrn, 0x00);
-
-            VIALoadRgbLut(pScrn, 0, size, colors);
+        /* IGA1 will access the palette LUT. */
+        viaSetPaletteLUTAccess(pScrn, 0x00);
 
-            /* Turn gamma correction off. */
-            viaIGA1SetGamma(pScrn, FALSE);
-            break;
-        default:
-            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                        "Unsupported color depth: %d\n",
-                        pScrn->bitsPerPixel);
-            break;
-        }
+        /* Turn gamma correction off. */
+        viaIGA1SetGamma(pScrn, FALSE);
     } else {
         /* Set palette LUT to 8-bit mode. */
-        viaIGA2SetPaletteLUTResolution(pScrn, 0x01);
+        viaIGA2SetPaletteLUTResolution(pScrn, TRUE);
 
-        switch (pScrn->bitsPerPixel) {
-        case 8:
-            /* IGA2 will access the palette LUT. */
-            viaSetPaletteLUTAccess(pScrn, 0x01);
+        /* IGA2 will access the palette LUT. */
+        viaSetPaletteLUTAccess(pScrn, 0x01);
 
-            VIALoadRgbLut(pScrn, 0, size, colors);
-
-            /* Turn gamma correction off. */
-            viaIGA2SetGamma(pScrn, FALSE);
-            break;
-        case 16:
-            /* IGA2 will access the palette LUT. */
-            viaSetPaletteLUTAccess(pScrn, 0x01);
-
-            VIALoadRgbLut(pScrn, 0, size, colors);
-
-            /* Turn gamma correction off. */
-            viaIGA2SetGamma(pScrn, FALSE);
-            break;
-        case 32:
-            /* IGA2 will access the palette LUT. */
-            viaSetPaletteLUTAccess(pScrn, 0x01);
-
-            VIALoadRgbLut(pScrn, 0, size, colors);
-
-            /* Turn gamma correction off. */
-            viaIGA2SetGamma(pScrn, FALSE);
-            break;
-        default:
-            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                        "Unsupported color depth: %d\n",
-                        pScrn->bitsPerPixel);
-            break;
-        }
+        /* Turn gamma correction off. */
+        viaIGA2SetGamma(pScrn, FALSE);
     }
 
+    VIALoadRgbLut(pScrn, 0, size, colors);
+
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Exiting %s.\n", __func__));
 }
commit 5fd106e1b04a9b19b8905bb61a42a309e7eb8feb
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 14:14:15 2021 -0700

    Merge iga*_crtc_gamma_set() into iga_crtc_gamma_set()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index a3919ff..b9d9df7 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3357,15 +3357,16 @@ iga_crtc_commit(xf86CrtcPtr crtc)
 }
 
 static void
-iga1_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
+iga_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
                     int size)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
+    drmmode_crtc_private_ptr iga = crtc->driver_private;
     LOCO colors[size];
     int i;
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Entering iga1_crtc_gamma_set.\n"));
+                        "Entered %s.\n", __func__));
 
     for (i = 0; i < size; i++) {
         colors[i].red = red[i] >> 8;
@@ -3373,46 +3374,86 @@ iga1_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
         colors[i].blue = blue[i] >> 8;
     }
 
-    /* Set palette LUT to 8-bit mode. */
-    viaIGA1SetPaletteLUTResolution(pScrn, TRUE);
+    if (!iga->index) {
+        /* Set palette LUT to 8-bit mode. */
+        viaIGA1SetPaletteLUTResolution(pScrn, TRUE);
 
-    switch (pScrn->bitsPerPixel) {
-    case 8:
-        /* IGA1 will access the palette LUT. */
-        viaSetPaletteLUTAccess(pScrn, 0x00);
+        switch (pScrn->bitsPerPixel) {
+        case 8:
+            /* IGA1 will access the palette LUT. */
+            viaSetPaletteLUTAccess(pScrn, 0x00);
 
-        VIALoadRgbLut(pScrn, 0, size, colors);
+            VIALoadRgbLut(pScrn, 0, size, colors);
 
-        /* Turn gamma correction off. */
-        viaIGA1SetGamma(pScrn, FALSE);
-        break;
-    case 16:
-        /* IGA1 will access the palette LUT. */
-        viaSetPaletteLUTAccess(pScrn, 0x00);
+            /* Turn gamma correction off. */
+            viaIGA1SetGamma(pScrn, FALSE);
+            break;
+        case 16:
+            /* IGA1 will access the palette LUT. */
+            viaSetPaletteLUTAccess(pScrn, 0x00);
 
-        VIALoadRgbLut(pScrn, 0, size, colors);
+            VIALoadRgbLut(pScrn, 0, size, colors);
 
-        /* Turn gamma correction off. */
-        viaIGA1SetGamma(pScrn, FALSE);
-        break;
-    case 32:
-        /* IGA1 will access the palette LUT. */
-        viaSetPaletteLUTAccess(pScrn, 0x00);
+            /* Turn gamma correction off. */
+            viaIGA1SetGamma(pScrn, FALSE);
+            break;
+        case 32:
+            /* IGA1 will access the palette LUT. */
+            viaSetPaletteLUTAccess(pScrn, 0x00);
 
-        VIALoadRgbLut(pScrn, 0, size, colors);
+            VIALoadRgbLut(pScrn, 0, size, colors);
 
-        /* Turn gamma correction off. */
-        viaIGA1SetGamma(pScrn, FALSE);
-        break;
-    default:
-        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                    "Unsupported color depth: %d\n",
-                    pScrn->bitsPerPixel);
-        break;
+            /* Turn gamma correction off. */
+            viaIGA1SetGamma(pScrn, FALSE);
+            break;
+        default:
+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                        "Unsupported color depth: %d\n",
+                        pScrn->bitsPerPixel);
+            break;
+        }
+    } else {
+        /* Set palette LUT to 8-bit mode. */
+        viaIGA2SetPaletteLUTResolution(pScrn, 0x01);
+
+        switch (pScrn->bitsPerPixel) {
+        case 8:
+            /* IGA2 will access the palette LUT. */
+            viaSetPaletteLUTAccess(pScrn, 0x01);
+
+            VIALoadRgbLut(pScrn, 0, size, colors);
+
+            /* Turn gamma correction off. */
+            viaIGA2SetGamma(pScrn, FALSE);
+            break;
+        case 16:
+            /* IGA2 will access the palette LUT. */
+            viaSetPaletteLUTAccess(pScrn, 0x01);
+
+            VIALoadRgbLut(pScrn, 0, size, colors);
+
+            /* Turn gamma correction off. */
+            viaIGA2SetGamma(pScrn, FALSE);
+            break;
+        case 32:
+            /* IGA2 will access the palette LUT. */
+            viaSetPaletteLUTAccess(pScrn, 0x01);
+
+            VIALoadRgbLut(pScrn, 0, size, colors);
+
+            /* Turn gamma correction off. */
+            viaIGA2SetGamma(pScrn, FALSE);
+            break;
+        default:
+            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                        "Unsupported color depth: %d\n",
+                        pScrn->bitsPerPixel);
+            break;
+        }
     }
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Exiting iga1_crtc_gamma_set.\n"));
+                        "Exiting %s.\n", __func__));
 }
 
 static void *
@@ -3581,7 +3622,7 @@ const xf86CrtcFuncsRec iga1_crtc_funcs = {
     .prepare                = iga_crtc_prepare,
     .mode_set               = iga_crtc_mode_set,
     .commit                 = iga_crtc_commit,
-    .gamma_set              = iga1_crtc_gamma_set,
+    .gamma_set              = iga_crtc_gamma_set,
     .shadow_create          = iga1_crtc_shadow_create,
     .shadow_allocate        = iga1_crtc_shadow_allocate,
     .shadow_destroy         = iga1_crtc_shadow_destroy,
@@ -3596,65 +3637,6 @@ const xf86CrtcFuncsRec iga1_crtc_funcs = {
     .destroy                = iga_crtc_destroy,
 };
 
-static void
-iga2_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
-                    int size)
-{
-    ScrnInfoPtr pScrn = crtc->scrn;
-    LOCO colors[size];
-    int i;
-
-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Entering iga2_crtc_gamma_set.\n"));
-
-    for (i = 0; i < size; i++) {
-        colors[i].red = red[i] >> 8;
-        colors[i].green = green[i] >> 8;
-        colors[i].blue = blue[i] >> 8;
-    }
-
-    /* Set palette LUT to 8-bit mode. */
-    viaIGA2SetPaletteLUTResolution(pScrn, 0x01);
-
-    switch (pScrn->bitsPerPixel) {
-    case 8:
-        /* IGA2 will access the palette LUT. */
-        viaSetPaletteLUTAccess(pScrn, 0x01);
-
-        VIALoadRgbLut(pScrn, 0, size, colors);
-
-        /* Turn gamma correction off. */
-        viaIGA2SetGamma(pScrn, FALSE);
-        break;
-    case 16:
-        /* IGA2 will access the palette LUT. */
-        viaSetPaletteLUTAccess(pScrn, 0x01);
-
-        VIALoadRgbLut(pScrn, 0, size, colors);
-
-        /* Turn gamma correction off. */
-        viaIGA2SetGamma(pScrn, FALSE);
-        break;
-    case 32:
-        /* IGA2 will access the palette LUT. */
-        viaSetPaletteLUTAccess(pScrn, 0x01);
-
-        VIALoadRgbLut(pScrn, 0, size, colors);
-
-        /* Turn gamma correction off. */
-        viaIGA2SetGamma(pScrn, FALSE);
-        break;
-    default:
-        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                    "Unsupported color depth: %d\n",
-                    pScrn->bitsPerPixel);
-        break;
-    }
-
-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Exiting iga2_crtc_gamma_set.\n"));
-}
-
 static void *
 iga2_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
 {
@@ -3682,7 +3664,7 @@ const xf86CrtcFuncsRec iga2_crtc_funcs = {
     .prepare                = iga_crtc_prepare,
     .mode_set               = iga_crtc_mode_set,
     .commit                 = iga_crtc_commit,
-    .gamma_set              = iga2_crtc_gamma_set,
+    .gamma_set              = iga_crtc_gamma_set,
     .shadow_create          = iga2_crtc_shadow_create,
     .shadow_allocate        = iga2_crtc_shadow_allocate,
     .shadow_destroy         = iga2_crtc_shadow_destroy,
commit 8d22ccb81421182ee5c0172f6c297c28ab1f8521
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 14:03:24 2021 -0700

    24 bpp (Bits Per Pixel) is not supported by Chrome IGP
    
    However, 32 bpp is supported instead.  Drop almost all references to
    24 bpp.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ch7xxx.c b/src/via_ch7xxx.c
index 20c15b9..b60e598 100644
--- a/src/via_ch7xxx.c
+++ b/src/via_ch7xxx.c
@@ -430,7 +430,6 @@ CH7xxxModeCrtc(xf86CrtcPtr crtc, DisplayModePtr mode)
             case 16:
                 CRTC = Table.CRTC2_16BPP;
                 break;
-            case 24:
             case 32:
                 CRTC = Table.CRTC2_32BPP;
                 break;
diff --git a/src/via_display.c b/src/via_display.c
index 98e9c62..a3919ff 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -115,7 +115,6 @@ viaIGA1SetColorDepth(ScrnInfoPtr pScrn, CARD8 bitsPerPixel)
     case 16:
         ViaSeqMask(hwp, 0x15, 0x14, 0x1C);
         break;
-    case 24:
     case 32:
         ViaSeqMask(hwp, 0x15, 0x1C, 0x1C);
         break;
@@ -125,7 +124,6 @@ viaIGA1SetColorDepth(ScrnInfoPtr pScrn, CARD8 bitsPerPixel)
 
     if ((bitsPerPixel == 8)
         || (bitsPerPixel == 16)
-        || (bitsPerPixel == 24)
         || (bitsPerPixel == 32)) {
 
         xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@@ -314,7 +312,6 @@ viaIGA2SetColorDepth(ScrnInfoPtr pScrn, CARD8 bitsPerPixel)
         case 16:
             ViaCrtcMask(hwp, 0x67, 0x40, 0xC0);
             break;
-        case 24:
         case 32:
             ViaCrtcMask(hwp, 0x67, 0xC0, 0xC0);
             break;
@@ -324,7 +321,6 @@ viaIGA2SetColorDepth(ScrnInfoPtr pScrn, CARD8 bitsPerPixel)
 
     if ((bitsPerPixel == 8)
         || (bitsPerPixel == 16)
-        || (bitsPerPixel == 24)
         || (bitsPerPixel == 32)) {
 
         xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@@ -487,7 +483,6 @@ VIALoadRgbLut(ScrnInfoPtr pScrn, int start, int numColors, LOCO *colors)
             break;
         case 8:
         case 16:
-        case 24:
         case 32:
             for (i = start; i < numColors; i++) {
                 hwp->writeDacWriteAddr(hwp, i);
@@ -2664,7 +2659,7 @@ ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayModePtr mode)
                     hwp->writeCrtc(hwp, 0x68, 0x67);/* depth 6, threshold 7 */
                 }
             } else {
-                if ((pScrn->bitsPerPixel >= 24)
+                if ((pScrn->bitsPerPixel == 32)
                     && (((mode->VDisplay > 768)
                          && (pVia->MemClk <= VIA_MEM_DDR200)) ||
                         ((mode->HDisplay > 1280)
@@ -3400,7 +3395,6 @@ iga1_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
         /* Turn gamma correction off. */
         viaIGA1SetGamma(pScrn, FALSE);
         break;
-    case 24:
     case 32:
         /* IGA1 will access the palette LUT. */
         viaSetPaletteLUTAccess(pScrn, 0x00);
@@ -3641,7 +3635,6 @@ iga2_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
         /* Turn gamma correction off. */
         viaIGA2SetGamma(pScrn, FALSE);
         break;
-    case 24:
     case 32:
         /* IGA2 will access the palette LUT. */
         viaSetPaletteLUTAccess(pScrn, 0x01);
commit 306a763f62b2e4ca4ed1e5d55d1cf4327443b95b
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri May 28 13:52:57 2021 -0700

    Merge iga*_crtc_mode_fixup() into iga_crtc_mode_fixup()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index 6550869..98e9c62 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -3185,10 +3185,11 @@ iga_crtc_unlock(xf86CrtcPtr crtc)
 }
 
 static Bool
-iga1_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
+iga_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
                         DisplayModePtr adjusted_mode)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
+    drmmode_crtc_private_ptr iga = crtc->driver_private;
     VIAPtr pVia = VIAPTR(pScrn);
     CARD32 temp;
     ModeStatus modestatus;
@@ -3202,7 +3203,12 @@ iga1_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
         return FALSE;
     }
 
-    modestatus = viaIGA1ModeValid(pScrn, mode);
+    if (!iga->index) {
+        modestatus = viaIGA1ModeValid(pScrn, mode);
+    } else {
+        modestatus = viaIGA2ModeValid(pScrn, mode);
+    }
+
     if (modestatus != MODE_OK) {
         xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Not using mode \"%s\" : %s.\n",
                    mode->name, xf86ModeStatusToString(modestatus));
@@ -3577,7 +3583,7 @@ const xf86CrtcFuncsRec iga1_crtc_funcs = {
     .restore                = iga_crtc_restore,
     .lock                   = iga_crtc_lock,
     .unlock                 = iga_crtc_unlock,
-    .mode_fixup             = iga1_crtc_mode_fixup,
+    .mode_fixup             = iga_crtc_mode_fixup,
     .prepare                = iga_crtc_prepare,
     .mode_set               = iga_crtc_mode_set,
     .commit                 = iga_crtc_commit,
@@ -3596,57 +3602,6 @@ const xf86CrtcFuncsRec iga1_crtc_funcs = {
     .destroy                = iga_crtc_destroy,
 };
 
-static Bool
-iga2_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode,
-                        DisplayModePtr adjusted_mode)
-{
-    ScrnInfoPtr pScrn = crtc->scrn;
-    VIAPtr pVia = VIAPTR(pScrn);
-    CARD32 temp;
-    ModeStatus modestatus;
-
-    if ((mode->Clock < pScrn->clockRanges->minClock) ||
-        (mode->Clock > pScrn->clockRanges->maxClock)) {
-        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                   "Clock for mode \"%s\" outside of allowed range (%u (%u - %u))\n",
-                   mode->name, mode->Clock, pScrn->clockRanges->minClock,
-                   pScrn->clockRanges->maxClock);
-        return FALSE;
-    }
-
-    modestatus = viaIGA2ModeValid(pScrn, mode);
-    if (modestatus != MODE_OK) {
-        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Not using mode \"%s\" : %s.\n",
-                   mode->name, xf86ModeStatusToString(modestatus));
-        return FALSE;
-    }
-
-    temp = mode->CrtcHDisplay * mode->CrtcVDisplay * mode->VRefresh *
-            (pScrn->bitsPerPixel >> 3);
-    if (pVia->pVIADisplay->Bandwidth < temp) {
-        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                    "Required bandwidth is not available. (%u > %u)\n",
-                    (unsigned)temp, (unsigned)pVia->pVIADisplay->Bandwidth);
-        return FALSE;
-    }
-
-    if (!pScrn->bitsPerPixel) {
-        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                    "Invalid bpp information.\n");
-        return FALSE;
-    }
-
-    /* 16 is the Chrome IGP display controller memory alignment. */
-    if (crtc->x % (16 / ((pScrn->bitsPerPixel + 7) >> 3))) {
-        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                    "The X location specified is not properly aligned "
-                    "to Chrome IGP's memory alignment.\n");
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
 static void
 iga2_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
                     int size)
@@ -3730,7 +3685,7 @@ const xf86CrtcFuncsRec iga2_crtc_funcs = {
     .restore                = iga_crtc_restore,
     .lock                   = iga_crtc_lock,
     .unlock                 = iga_crtc_unlock,
-    .mode_fixup             = iga2_crtc_mode_fixup,
+    .mode_fixup             = iga_crtc_mode_fixup,
     .prepare                = iga_crtc_prepare,
     .mode_set               = iga_crtc_mode_set,
     .commit                 = iga_crtc_commit,


More information about the openchrome-devel mailing list