drivers/gpu/drm/via/crtc_hw.h     |  102 ++++++++++++++++++++++++++++++++++----
 drivers/gpu/drm/via/via_analog.c  |    2 
 drivers/gpu/drm/via/via_display.c |    6 +-
 drivers/gpu/drm/via/via_display.h |    6 +-
 drivers/gpu/drm/via/via_drv.h     |    4 -
 drivers/gpu/drm/via/via_fp.c      |   79 ++++++++++++++++++++++++-----
 drivers/gpu/drm/via/via_hdmi.c    |    8 +-
 drivers/gpu/drm/via/via_tmds.c    |    2 
 8 files changed, 173 insertions(+), 36 deletions(-)

New commits:
commit 4a781fcaac1f0d253abb161a97f96256bae00bd1
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 18:15:17 2017 -0500

    Version bumped to 3.0.36
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
index c37c47df813..9c7cbd85e0c 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         "20170617"
+#define DRIVER_DATE         "20170629"
 
 #define DRIVER_MAJOR           3
 #define DRIVER_MINOR           0
-#define DRIVER_PATCHLEVEL      35
+#define DRIVER_PATCHLEVEL      36
 
 #include <linux/module.h>
 
commit dbddf7319cac60027582ca50ec545a6d5aef8500
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 15:26:00 2017 -0500

    Rename diport variable as di_port
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/via_analog.c b/drivers/gpu/drm/via/via_analog.c
index 730541c81a3..1c513bdfe6f 100644
--- a/drivers/gpu/drm/via/via_analog.c
+++ b/drivers/gpu/drm/via/via_analog.c
@@ -275,7 +275,7 @@ via_analog_init(struct drm_device *dev)
 
        enc->base.possible_crtcs = BIT(0);
        enc->base.possible_clones = 0;
-       enc->diPort = VIA_DI_PORT_NONE;
+       enc->di_port = VIA_DI_PORT_NONE;
 
        drm_mode_connector_attach_encoder(&con->base, &enc->base);
 }
diff --git a/drivers/gpu/drm/via/via_display.c 
b/drivers/gpu/drm/via/via_display.c
index 898c1adc1e2..324d47d23e6 100644
--- a/drivers/gpu/drm/via/via_display.c
+++ b/drivers/gpu/drm/via/via_display.c
@@ -49,7 +49,7 @@ via_encoder_commit(struct drm_encoder *encoder)
                value = BIT(4);
 
        /* Set IGA source and turn on DI port clock */
-       switch (enc->diPort) {
+       switch (enc->di_port) {
        case VIA_DI_PORT_DVP0:
                /* DVP0 Data Source Selection. */
                svga_wcrt_mask(VGABASE, 0x96, value, BIT(4));
@@ -158,7 +158,7 @@ via_encoder_disable(struct drm_encoder *encoder)
        /* First turn off the display */
        encoder_funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
 
-       switch (enc->diPort) {
+       switch (enc->di_port) {
        case VIA_DI_PORT_DVP0:
                svga_wseq_mask(VGABASE, 0x1E, 0x00, BIT(7) | BIT(6));
                break;
@@ -212,7 +212,7 @@ via_set_sync_polarity(struct drm_encoder *encoder, struct 
drm_display_mode *mode
        if (adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC)
                syncreg |= BIT(5);
 
-       switch (enc->diPort) {
+       switch (enc->di_port) {
        case VIA_DI_PORT_DVP0:
                svga_wcrt_mask(VGABASE, 0x96, syncreg, BIT(6) | BIT(5));
                break;
diff --git a/drivers/gpu/drm/via/via_display.h 
b/drivers/gpu/drm/via/via_display.h
index b178dfe2274..802d7100ac1 100644
--- a/drivers/gpu/drm/via/via_display.h
+++ b/drivers/gpu/drm/via/via_display.h
@@ -95,7 +95,7 @@ struct via_connector {
 struct via_encoder {
        struct drm_encoder base;
        uint32_t flags;
-       int diPort;
+       u32 di_port;
        struct via_connector cons[];
 };
 
@@ -170,7 +170,7 @@ extern int via_connector_mode_valid(struct drm_connector 
*connector,
 extern void via_connector_destroy(struct drm_connector *connector);
 extern int via_get_edid_modes(struct drm_connector *connector);
 
-extern void via_hdmi_init(struct drm_device *dev, int diPort);
+extern void via_hdmi_init(struct drm_device *dev, u32 di_port);
 extern void via_analog_init(struct drm_device *dev);
 extern void via_lvds_init(struct drm_device *dev);
 extern int via_tmds_init(struct drm_device *dev);
diff --git a/drivers/gpu/drm/via/via_fp.c b/drivers/gpu/drm/via/via_fp.c
index 07fd48cd750..be8d621fd4a 100644
--- a/drivers/gpu/drm/via/via_fp.c
+++ b/drivers/gpu/drm/via/via_fp.c
@@ -73,7 +73,7 @@ via_enable_internal_lvds(struct drm_encoder *encoder)
        struct drm_device *dev = encoder->dev;
 
        /* Turn on LCD panel */
-       if ((enc->diPort & VIA_DI_PORT_DFPL) || (enc->diPort == 
VIA_DI_PORT_DVP1)) {
+       if ((enc->di_port & VIA_DI_PORT_DFPL) || (enc->di_port == 
VIA_DI_PORT_DVP1)) {
                if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) ||
                    (dev->pdev->device == PCI_DEVICE_ID_VIA_CLE266)) {
                        /* Software control power sequence ON */
@@ -104,7 +104,7 @@ via_enable_internal_lvds(struct drm_encoder *encoder)
                }
        }
 
-       if (enc->diPort & VIA_DI_PORT_DFPH) {
+       if (enc->di_port & VIA_DI_PORT_DFPH) {
                if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) ||
                    (dev->pdev->device == PCI_DEVICE_ID_VIA_CLE266)) {
                        /* Software control power sequence ON */
@@ -144,9 +144,9 @@ via_enable_internal_lvds(struct drm_encoder *encoder)
                 * power on both LVDS0 and LVDS1 */
                svga_wcrt_mask(VGABASE, 0xD2, 0x00, BIT(7) | BIT(6));
        } else {
-               if (enc->diPort & VIA_DI_PORT_DFPL)
+               if (enc->di_port & VIA_DI_PORT_DFPL)
                        svga_wcrt_mask(VGABASE, 0xD2, 0x00, BIT(7));
-               else if (enc->diPort & VIA_DI_PORT_DFPH)
+               else if (enc->di_port & VIA_DI_PORT_DFPH)
                        svga_wcrt_mask(VGABASE, 0xD2, 0x00, BIT(6));
        }
 }
@@ -159,7 +159,7 @@ via_disable_internal_lvds(struct drm_encoder *encoder)
        struct drm_device *dev = encoder->dev;
 
        /* Turn off LCD panel */
-       if ((enc->diPort & VIA_DI_PORT_DFPL) || (enc->diPort == 
VIA_DI_PORT_DVP1)) {
+       if ((enc->di_port & VIA_DI_PORT_DFPL) || (enc->di_port == 
VIA_DI_PORT_DVP1)) {
                /* Set LCD software power sequence off */
                if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) ||
                    (dev->pdev->device == PCI_DEVICE_ID_VIA_CLE266)) {
@@ -185,7 +185,7 @@ via_disable_internal_lvds(struct drm_encoder *encoder)
                }
        }
 
-       if (enc->diPort & VIA_DI_PORT_DFPH) {
+       if (enc->di_port & VIA_DI_PORT_DFPH) {
                /* Set LCD software power sequence off */
                if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) ||
                    (dev->pdev->device == PCI_DEVICE_ID_VIA_CLE266)) {
@@ -220,9 +220,9 @@ via_disable_internal_lvds(struct drm_encoder *encoder)
                 * power off both LVDS0 and LVDS1 */
                svga_wcrt_mask(VGABASE, 0xD2, 0xC0, BIT(7) | BIT(6));
        } else {
-               if (enc->diPort & VIA_DI_PORT_DFPL)
+               if (enc->di_port & VIA_DI_PORT_DFPL)
                        svga_wcrt_mask(VGABASE, 0xD2, BIT(7), BIT(7));
-               else if (enc->diPort & VIA_DI_PORT_DFPH)
+               else if (enc->di_port & VIA_DI_PORT_DFPH)
                        svga_wcrt_mask(VGABASE, 0xD2, BIT(6), BIT(6));
        }
 }
@@ -231,7 +231,7 @@ via_disable_internal_lvds(struct drm_encoder *encoder)
  * Sets flat panel display source.
  */
 static void
-via_fp_display_source(struct via_device *dev_priv, int di_port, int index)
+via_fp_display_source(struct via_device *dev_priv, u32 di_port, int index)
 {
        u8 display_source = index & 0x01;
 
@@ -816,30 +816,30 @@ via_lvds_init(struct drm_device *dev)
 
        switch (dev->pdev->device) {
        case PCI_DEVICE_ID_VIA_CLE266:
-               enc->diPort = VIA_DI_PORT_DVP1;
+               enc->di_port = VIA_DI_PORT_DVP1;
                break;
 
        case PCI_DEVICE_ID_VIA_VX875:
        case PCI_DEVICE_ID_VIA_VX900_VGA:
-               enc->diPort = VIA_DI_PORT_DFPL;
+               enc->di_port = VIA_DI_PORT_DFPL;
                break;
 
        default:
-               enc->diPort = VIA_DI_PORT_DFPH;
+               enc->di_port = VIA_DI_PORT_DFPH;
                break;
        }
 
        /* There has to be a way to detect TTL LVDS
         * For now we use the DMI to handle this */
        if (dmi_check_system(via_ttl_lvds))
-               enc->diPort = VIA_DI_PORT_DFPL | VIA_DI_PORT_DVP1;
+               enc->di_port = VIA_DI_PORT_DFPL | VIA_DI_PORT_DVP1;
 
        reg_value = 0x00;
-       if (enc->diPort == VIA_DI_PORT_DFPH) {
+       if (enc->di_port == VIA_DI_PORT_DFPH) {
                if (!is_msb)
                        reg_value = BIT(0);
                svga_wcrt_mask(VGABASE, 0xD2, reg_value, BIT(0));
-       } else if (enc->diPort == VIA_DI_PORT_DFPL) {
+       } else if (enc->di_port == VIA_DI_PORT_DFPL) {
                if (!is_msb)
                        reg_value = BIT(1);
                svga_wcrt_mask(VGABASE, 0xD2, reg_value, BIT(1));
diff --git a/drivers/gpu/drm/via/via_hdmi.c b/drivers/gpu/drm/via/via_hdmi.c
index 1ef194dd328..bde11475a7c 100644
--- a/drivers/gpu/drm/via/via_hdmi.c
+++ b/drivers/gpu/drm/via/via_hdmi.c
@@ -254,7 +254,7 @@ via_hdmi_enc_mode_set(struct drm_encoder *encoder,
                struct via_connector *con = container_of(connector, struct 
via_connector, base);
                bool audio_off = (con->flags & HDMI_AUDIO_ENABLED);
 
-               if (enc->diPort == VIA_DI_PORT_NONE)
+               if (enc->di_port == VIA_DI_PORT_NONE)
                        via_hdmi_native_mode_set(iga, adjusted_mode, audio_off);
 
                if (!iga->index)
@@ -344,7 +344,7 @@ via_hdmi_enc_mode_set(struct drm_encoder *encoder,
        }
 
        /* Patch for clock skew */
-       if (enc->diPort == VIA_DI_PORT_DVP1) {
+       if (enc->di_port == VIA_DI_PORT_DVP1) {
                switch (dev->pdev->device) {
                case PCI_DEVICE_ID_VIA_VT3157:  /* CX700 */
                        svga_wcrt_mask(VGABASE, 0x65, 0x0B, 0x0F);
@@ -645,7 +645,7 @@ static const struct drm_connector_helper_funcs 
via_hdmi_connector_helper_funcs =
 };
 
 void
-via_hdmi_init(struct drm_device *dev, int diport)
+via_hdmi_init(struct drm_device *dev, u32 di_port)
 {
        struct via_connector *dvi, *hdmi;
        struct via_encoder *enc;
@@ -664,7 +664,7 @@ via_hdmi_init(struct drm_device *dev, int diport)
 
        enc->base.possible_crtcs = BIT(1) | BIT(0);
        enc->base.possible_clones = 0;
-       enc->diPort = diport;
+       enc->di_port = di_port;
 
        /* Setup the HDMI connector */
        drm_connector_init(dev, &hdmi->base, &via_hdmi_connector_funcs,
diff --git a/drivers/gpu/drm/via/via_tmds.c b/drivers/gpu/drm/via/via_tmds.c
index e66d9935b23..7fbf9275e76 100644
--- a/drivers/gpu/drm/via/via_tmds.c
+++ b/drivers/gpu/drm/via/via_tmds.c
@@ -234,7 +234,7 @@ via_tmds_init(struct drm_device *dev)
 
        enc->base.possible_crtcs = BIT(1) | BIT(0);
        enc->base.possible_clones = 0;
-       enc->diPort = VIA_DI_PORT_DFPL;
+       enc->di_port = VIA_DI_PORT_DFPL;
 
        /* Piece together our DVI-D connector */
        con = &enc->cons[0];
commit ea501f87141838d00fac153b5234c99036f9f9a3
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 15:12:02 2017 -0500

    Added via_fp_display_source
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/via_display.h 
b/drivers/gpu/drm/via/via_display.h
index 12154bbbd18..b178dfe2274 100644
--- a/drivers/gpu/drm/via/via_display.h
+++ b/drivers/gpu/drm/via/via_display.h
@@ -85,7 +85,9 @@ struct via_connector {
 #define VIA_DI_PORT_DVP0               BIT(2)
 #define VIA_DI_PORT_DVP1               BIT(3)
 #define VIA_DI_PORT_DFPL               BIT(4)
+#define VIA_DI_PORT_FPDPLOW            BIT(4)
 #define VIA_DI_PORT_DFPH               BIT(5)
+#define VIA_DI_PORT_FPDPHIGH           BIT(5)
 #define VIA_DI_PORT_DFP                        BIT(6)
 #define VIA_DI_PORT_LVDS1              BIT(7)
 #define VIA_DI_PORT_LVDS2              BIT(8)
diff --git a/drivers/gpu/drm/via/via_fp.c b/drivers/gpu/drm/via/via_fp.c
index a7c6d451e61..07fd48cd750 100644
--- a/drivers/gpu/drm/via/via_fp.c
+++ b/drivers/gpu/drm/via/via_fp.c
@@ -227,6 +227,57 @@ via_disable_internal_lvds(struct drm_encoder *encoder)
        }
 }
 
+/*
+ * Sets flat panel display source.
+ */
+static void
+via_fp_display_source(struct via_device *dev_priv, int di_port, int index)
+{
+       u8 display_source = index & 0x01;
+
+       DRM_DEBUG_KMS("Entered via_fp_display_source.\n");
+
+       switch(di_port) {
+       case VIA_DI_PORT_DVP0:
+               via_dvp0_set_display_source(VGABASE, display_source);
+               break;
+       case VIA_DI_PORT_DVP1:
+               via_dvp1_set_display_source(VGABASE, display_source);
+               break;
+       case VIA_DI_PORT_FPDPLOW:
+               via_fpdp_low_set_display_source(VGABASE, display_source);
+               via_dvp1_set_display_source(VGABASE, display_source);
+               break;
+       case VIA_DI_PORT_FPDPHIGH:
+               via_fpdp_high_set_display_source(VGABASE, display_source);
+               via_dvp0_set_display_source(VGABASE, display_source);
+               break;
+       case (VIA_DI_PORT_FPDPLOW |
+               VIA_DI_PORT_FPDPHIGH):
+               via_fpdp_low_set_display_source(VGABASE, display_source);
+               via_fpdp_high_set_display_source(VGABASE, display_source);
+               break;
+       case VIA_DI_PORT_LVDS1:
+               via_lvds1_set_display_source(VGABASE, display_source);
+               break;
+       case VIA_DI_PORT_LVDS2:
+               via_lvds2_set_display_source(VGABASE, display_source);
+               break;
+       case (VIA_DI_PORT_LVDS1 |
+               VIA_DI_PORT_LVDS2):
+               via_lvds1_set_display_source(VGABASE, display_source);
+               via_lvds2_set_display_source(VGABASE, display_source);
+               break;
+       default:
+               break;
+       }
+
+       DRM_DEBUG_KMS("FP Display Source: IGA%d\n",
+                       display_source + 1);
+
+       DRM_DEBUG_KMS("Exiting via_fp_display_source.\n");
+}
+
 static void
 via_lvds_dpms(struct drm_encoder *encoder, int mode)
 {
commit c6174e3d1254d7985d75ad899fe6c0320ef7f9e5
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 14:37:10 2017 -0500

    Fixing indentation inside crtc_hw.h
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index 6c3436c04f2..9885f5ce523 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -119,8 +119,8 @@ static inline void
 via_dvp0_set_display_source(void __iomem *regs, u8 display_source)
 {
        /* 3X5.96[4] - DVP0 Data Source Selection
-       *             0: Primary Display
-       *             1: Secondary Display */
+        *             0: Primary Display
+        *             1: Secondary Display */
        svga_wcrt_mask(regs, 0x96, display_source << 4, BIT(4));
        DRM_DEBUG_KMS("DVP0 Display Source: IGA%d\n",
                        (display_source & 0x01) + 1);
@@ -152,8 +152,8 @@ static inline void
 via_dvp1_set_display_source(void __iomem *regs, u8 display_source)
 {
        /* 3X5.9B[4] - DVP1 Data Source Selection
-       *             0: Primary Display
-       *             1: Secondary Display */
+        *             0: Primary Display
+        *             1: Secondary Display */
        svga_wcrt_mask(regs, 0x9B, display_source << 4, BIT(4));
        DRM_DEBUG_KMS("DVP1 Display Source: IGA%d\n",
                        (display_source & 0x01) + 1);
@@ -235,10 +235,10 @@ static inline void
 via_fpdp_low_set_io_pad_state(void __iomem *regs, u8 io_pad_state)
 {
        /* 3C5.2A[1:0] - FPDP Low I/O Pad Control
-       *               0x: Pad always off
-       *               10: Depend on the other control signal
-       *               11: Pad on/off according to the
-       *                   Power Management Status (PMS) */
+        *               0x: Pad always off
+        *               10: Depend on the other control signal
+        *               11: Pad on/off according to the
+        *                   Power Management Status (PMS) */
        svga_wcrt_mask(regs, 0x2A, io_pad_state, BIT(1) | BIT(0));
        DRM_DEBUG_KMS("FPDP Low I/O Pad State: %s\n",
                        ((io_pad_state & (BIT(1) | BIT(0))) == 0x03) ? "On" :
@@ -254,8 +254,8 @@ static inline void
 via_fpdp_low_set_display_source(void __iomem *regs, u8 display_source)
 {
        /* 3X5.99[4] - FPDP Low Data Source Selection
-       *             0: Primary Display
-       *             1: Secondary Display */
+        *             0: Primary Display
+        *             1: Secondary Display */
        svga_wcrt_mask(regs, 0x99, display_source << 4, BIT(4));
        DRM_DEBUG_KMS("FPDP Low Display Source: IGA%d\n",
                        (display_source & 0x01) + 1);
@@ -287,8 +287,8 @@ static inline void
 via_fpdp_high_set_display_source(void __iomem *regs, u8 display_source)
 {
        /* 3X5.97[4] - FPDP High Data Source Selection
-       *             0: Primary Display
-       *             1: Secondary Display */
+        *             0: Primary Display
+        *             1: Secondary Display */
        svga_wcrt_mask(regs, 0x97, display_source << 4, BIT(4));
        DRM_DEBUG_KMS("FPDP High Display Source: IGA%d\n",
                        (display_source & 0x01) + 1);
@@ -446,11 +446,11 @@ via_tmds_set_sync_polarity(void __iomem *regs, u8 
syncPolarity)
 {
        /* Set TMDS (DVI) sync polarity. */
        /* 3X5.97[6] - DVI (TMDS) VSYNC Polarity
-       *              0: Positive
-       *              1: Negative
-       * 3X5.97[5] - DVI (TMDS) HSYNC Polarity
-       *              0: Positive
-       *              1: Negative */
+        *              0: Positive
+        *              1: Negative
+        * 3X5.97[5] - DVI (TMDS) HSYNC Polarity
+        *              0: Positive
+        *              1: Negative */
        svga_wcrt_mask(regs, 0x97, syncPolarity << 5, BIT(6) | BIT(5));
        DRM_DEBUG_KMS("TMDS (DVI) Horizontal Sync Polarity: %s\n",
                        (syncPolarity & BIT(0)) ? "-" : "+");
commit 7e45f432b80f9f989b5359aa4451a8d2a3c54a2e
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 14:33:21 2017 -0500

    via_lvds2_set_display_source
    
    Added via_lvds2_set_display_source
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index 3afb01b033f..6c3436c04f2 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -410,6 +410,20 @@ via_lvds2_set_io_pad_setting(void __iomem *regs, u8 
io_pad_state)
 }
 
 /*
+ * Sets CX700 or later single chipset's LVDS2 display source.
+ */
+static inline void
+via_lvds2_set_display_source(void __iomem *regs, u8 display_source)
+{
+       /* 3X5.97[4] - LVDS Channel 2 Data Source Selection
+        *             0: Primary Display
+        *             1: Secondary Display */
+       svga_wcrt_mask(regs, 0x97, display_source << 4, BIT(4));
+       DRM_DEBUG_KMS("LVDS2 Display Source: IGA%d\n",
+                       (display_source & 0x01) + 1);
+}
+
+/*
  * Sets CX700 / VX700 and VX800 chipsets' TMDS (DVI) power state.
  */
 static inline void
commit aa1e2cbcb428a19993262e912c7b963c76db15b1
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 14:32:25 2017 -0500

    Added via_lvds1_set_display_source
    
    This is an inline function.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index a1d3e58a6b1..3afb01b033f 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -377,6 +377,20 @@ via_lvds1_set_io_pad_setting(void __iomem *regs, u8 
io_pad_state)
 }
 
 /*
+ * Sets CX700 or later single chipset's LVDS1 display source.
+ */
+static inline void
+via_lvds1_set_display_source(void __iomem *regs, u8 display_source)
+{
+       /* 3X5.99[4] - LVDS Channel 1 Data Source Selection
+        *             0: Primary Display
+        *             1: Secondary Display */
+       svga_wcrt_mask(regs, 0x99, display_source << 4, BIT(4));
+       DRM_DEBUG_KMS("LVDS1 Display Source: IGA%d\n",
+                       (display_source & 0x01) + 1);
+}
+
+/*
  * Sets LVDS2 I/O pad state.
  */
 static inline void
commit b393f19f006e3d4466f0f14165ee9b4409218609
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 14:14:43 2017 -0500

    Added via_fpdp_high_set_display_source
    
    This is an inline function.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index 92dac654e5e..a1d3e58a6b1 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -281,6 +281,20 @@ via_fpdp_high_set_io_pad_state(void __iomem *regs, u8 
io_pad_state)
 }
 
 /*
+ * Sets FPDP (Flat Panel Display Port) High interface display source.
+ */
+static inline void
+via_fpdp_high_set_display_source(void __iomem *regs, u8 display_source)
+{
+       /* 3X5.97[4] - FPDP High Data Source Selection
+       *             0: Primary Display
+       *             1: Secondary Display */
+       svga_wcrt_mask(regs, 0x97, display_source << 4, BIT(4));
+       DRM_DEBUG_KMS("FPDP High Display Source: IGA%d\n",
+                       (display_source & 0x01) + 1);
+}
+
+/*
  * Sets CX700 or later single chipset's LVDS1 power sequence type.
  */
 static inline void
commit 805e1ef732634b3aacd8095f5c4f7148403c7351
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Jun 29 13:48:08 2017 -0500

    Added via_fpdp_low_set_display_source
    
    This is an inline function.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index 23f0e0999c4..92dac654e5e 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -248,6 +248,20 @@ via_fpdp_low_set_io_pad_state(void __iomem *regs, u8 
io_pad_state)
 }
 
 /*
+ * Sets FPDP (Flat Panel Display Port) Low interface display source.
+ */
+static inline void
+via_fpdp_low_set_display_source(void __iomem *regs, u8 display_source)
+{
+       /* 3X5.99[4] - FPDP Low Data Source Selection
+       *             0: Primary Display
+       *             1: Secondary Display */
+       svga_wcrt_mask(regs, 0x99, display_source << 4, BIT(4));
+       DRM_DEBUG_KMS("FPDP Low Display Source: IGA%d\n",
+                       (display_source & 0x01) + 1);
+}
+
+/*
  * Sets FPDP (Flat Panel Display Port) High I/O pad state
  */
 static inline void
commit 9ebf2e9c03be56eb3f55e479e49e21a6c4684e00
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Wed Jun 28 23:51:44 2017 -0500

    Added via_dvp1_set_display_source
    
    This is an inline function.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index da666e38740..23f0e0999c4 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -146,6 +146,20 @@ via_dvp1_set_io_pad_state(void __iomem *regs, u8 
io_pad_state)
 }
 
 /*
+ * Sets the display source of DVP1 (Digital Video Port 1) interface.
+ */
+static inline void
+via_dvp1_set_display_source(void __iomem *regs, u8 display_source)
+{
+       /* 3X5.9B[4] - DVP1 Data Source Selection
+       *             0: Primary Display
+       *             1: Secondary Display */
+       svga_wcrt_mask(regs, 0x9B, display_source << 4, BIT(4));
+       DRM_DEBUG_KMS("DVP1 Display Source: IGA%d\n",
+                       (display_source & 0x01) + 1);
+}
+
+/*
  * Sets analog (VGA) DAC output state.
  */
 static inline void
commit 3fa6dc3d27049eac0dc40769ff9f0e287af622fa
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Wed Jun 28 23:30:23 2017 -0500

    Added via_dvp0_set_display_source
    
    This is an inline function.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/crtc_hw.h b/drivers/gpu/drm/via/crtc_hw.h
index 388fd3fb3ec..da666e38740 100644
--- a/drivers/gpu/drm/via/crtc_hw.h
+++ b/drivers/gpu/drm/via/crtc_hw.h
@@ -113,6 +113,20 @@ via_dvp0_set_io_pad_state(void __iomem *regs, u8 
io_pad_state)
 }
 
 /*
+ * Sets the display source of DVP0 (Digital Video Port 0) interface.
+ */
+static inline void
+via_dvp0_set_display_source(void __iomem *regs, u8 display_source)
+{
+       /* 3X5.96[4] - DVP0 Data Source Selection
+       *             0: Primary Display
+       *             1: Secondary Display */
+       svga_wcrt_mask(regs, 0x96, display_source << 4, BIT(4));
+       DRM_DEBUG_KMS("DVP0 Display Source: IGA%d\n",
+                       (display_source & 0x01) + 1);
+}
+
+/*
  * Sets DVP1 (Digital Video Port 1) I/O pad state.
  */
 static inline void
_______________________________________________
Openchrome-devel mailing list
Openchrome-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to