[Openchrome-devel] drm-openchrome: 4 commits - drivers/gpu/drm

Kevin Brace kevinbrace at kemper.freedesktop.org
Fri Apr 7 00:22:37 UTC 2017


 drivers/gpu/drm/via/crtc_hw.h    |   20 +++++++++++++++++
 drivers/gpu/drm/via/via_analog.c |   45 ++++++++++++++++++++++++++++++++++++++-
 drivers/gpu/drm/via/via_drv.h    |    4 +--
 3 files changed, 66 insertions(+), 3 deletions(-)

New commits:
commit ea3c88f5ce76f7e98952c4503b8170fb2d6d0472
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Thu Apr 6 17:21:54 2017 -0700

    Version bumped to 3.0.27
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
index 9a84b3312fe..4cd3b54d9a1 100644
--- a/drivers/gpu/drm/via/via_drv.h
+++ b/drivers/gpu/drm/via/via_drv.h
@@ -30,11 +30,11 @@
 #define DRIVER_AUTHOR       "The OpenChrome Project"
 #define DRIVER_NAME         "via"
 #define DRIVER_DESC         "OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE         "20170404"
+#define DRIVER_DATE         "20170406"
 
 #define DRIVER_MAJOR		3
 #define DRIVER_MINOR		0
-#define DRIVER_PATCHLEVEL	26
+#define DRIVER_PATCHLEVEL	27
 
 #include <linux/module.h>
 
commit dea14e358c2ce1ce71e939488d9d0a2c14985069
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Thu Apr 6 17:20:05 2017 -0700

    Added via_analog_mode_set
    
    This function was added to via_analog.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/via/via_analog.c b/drivers/gpu/drm/via/via_analog.c
index e8113a41c01..02ea47c229b 100644
--- a/drivers/gpu/drm/via/via_analog.c
+++ b/drivers/gpu/drm/via/via_analog.c
@@ -115,10 +115,27 @@ via_dac_mode_fixup(struct drm_encoder *encoder,
 	return true;
 }
 
+/*
+ * Handle analog (VGA) mode setting.
+ */
+static void
+via_analog_mode_set(struct drm_encoder *encoder,
+                    struct drm_display_mode *mode,
+                    struct drm_display_mode *adjusted_mode)
+{
+    struct via_device *dev_priv = encoder->dev->dev_private;
+
+    DRM_DEBUG_KMS("Entered via_analog_mode_set.\n");
+
+    viaAnalogSyncPolarity(dev_priv, adjusted_mode->flags);
+
+    DRM_DEBUG_KMS("Exiting via_analog_mode_set.\n");
+}
+
 static const struct drm_encoder_helper_funcs via_dac_enc_helper_funcs = {
 	.dpms = via_analog_dpms,
 	.mode_fixup = via_dac_mode_fixup,
-	.mode_set = via_set_sync_polarity,
+	.mode_set = via_analog_mode_set,
 	.prepare = via_encoder_prepare,
 	.commit = via_encoder_commit,
 	.disable = via_encoder_disable,
commit 65d846e16b5fc58bcd565fed5d49e4ad12f79798
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Thu Apr 6 17:11:26 2017 -0700

    Added viaAnalogSyncPolarity
    
    This function was added to via_analog.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/via/via_analog.c b/drivers/gpu/drm/via/via_analog.c
index 47ae89766fa..e8113a41c01 100644
--- a/drivers/gpu/drm/via/via_analog.c
+++ b/drivers/gpu/drm/via/via_analog.c
@@ -41,6 +41,32 @@ viaAnalogOutput(struct via_device *dev_priv, bool outputState)
     DRM_DEBUG("Exiting viaAnalogOutput.\n");
 }
 
+/*
+ * Set analog (VGA) sync polarity.
+ */
+static void
+viaAnalogSyncPolarity(struct via_device *dev_priv, unsigned int flags)
+{
+    u8 syncPolarity = 0x00;
+
+    DRM_DEBUG_KMS("Entered viaAnalogSyncPolarity.\n");
+
+    if (flags & DRM_MODE_FLAG_NHSYNC) {
+        syncPolarity |= BIT(0);
+    }
+
+    if (flags & DRM_MODE_FLAG_NVSYNC) {
+        syncPolarity |= BIT(1);
+    }
+
+    viaAnalogSetSyncPolarity(VGABASE, syncPolarity);
+    DRM_INFO("Analog (VGA) Horizontal Sync Polarity: %s\n",
+                (syncPolarity & BIT(0)) ? "-" : "+");
+    DRM_INFO("Analog (VGA) Vertical Sync Polarity: %s\n",
+                (syncPolarity & BIT(1)) ? "-" : "+");
+
+    DRM_DEBUG_KMS("Exiting viaAnalogSyncPolarity.\n");
+}
 
 /*
  * Routines for controlling stuff on the analog port
commit 1b2657bcd1596611d1ae91dcb62d8e64444838f7
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Thu Apr 6 17:09:17 2017 -0700

    Added viaAnalogSetSyncPolarity
    
    This inline function was added to crtc_hw.h.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index adc737b2e71..702a2e0fcd2 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -101,6 +101,26 @@ viaAnalogSetDACOutput(void __iomem *regs, bool outputState)
 }
 
 /*
+ * Sets analog (VGA) sync polarity.
+ */
+static inline void
+viaAnalogSetSyncPolarity(void __iomem *regs, u8 syncPolarity)
+{
+    /* Set analog (VGA) sync polarity. */
+    /* 3C2[7] - Analog Vertical Sync Polarity
+     *          0: Positive
+     *          1: Negative
+     * 3C2[6] - Analog Horizontal Sync Polarity
+     *          0: Positive
+     *          1: Negative */
+    svga_wmisc_mask(regs, syncPolarity << 6, (BIT(1) | BIT(0)) << 6);
+    DRM_DEBUG_KMS("Analog (VGA) Horizontal Sync Polarity: %s\n",
+                (syncPolarity & BIT(0)) ? "-" : "+");
+    DRM_DEBUG_KMS("Analog (VGA) Vertical Sync Polarity: %s\n",
+                (syncPolarity & BIT(1)) ? "-" : "+");
+}
+
+/*
  * Sets CX700 or later single chipset's LVDS1 power sequence type.
  */
 static inline void


More information about the Openchrome-devel mailing list