drivers/gpu/drm/openchrome/via_display.c |    2 
 drivers/gpu/drm/openchrome/via_display.h |    2 
 drivers/gpu/drm/openchrome/via_drv.h     |    2 
 drivers/gpu/drm/openchrome/via_fp.c      |  216 +++----------------------------
 4 files changed, 30 insertions(+), 192 deletions(-)

New commits:
commit 29915eb9e23df6ea30ac5133de148f9b442ac307
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Nov 3 21:58:01 2017 -0700

    drm/openchrome: Version bumped to 3.0.55
    
    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 c426c885acd4..ff8928be7147 100644
--- a/drivers/gpu/drm/openchrome/via_drv.h
+++ b/drivers/gpu/drm/openchrome/via_drv.h
@@ -34,7 +34,7 @@
 
 #define DRIVER_MAJOR           3
 #define DRIVER_MINOR           0
-#define DRIVER_PATCHLEVEL      54
+#define DRIVER_PATCHLEVEL      55
 
 #include <linux/module.h>
 
commit 8ead00caf42e930329531a72fd7022b5306786b7
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Nov 3 21:50:54 2017 -0700

    drm/openchrome: Remove old FP power on / off code
    
    The new code works much better than this old code.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_fp.c 
b/drivers/gpu/drm/openchrome/via_fp.c
index ecf0c00fb9b6..ac1f415685cf 100644
--- a/drivers/gpu/drm/openchrome/via_fp.c
+++ b/drivers/gpu/drm/openchrome/via_fp.c
@@ -28,9 +28,6 @@
 
 #include "via_drv.h"
 
-/* Encoder flags for LVDS */
-#define LVDS_DUAL_CHANNEL      1
-
 #define TD0 200
 #define TD1 25
 #define TD2 0
@@ -77,168 +74,6 @@ via_centering_timing(const struct drm_display_mode *mode,
 }
 
 static void
-via_enable_internal_lvds(struct drm_encoder *encoder)
-{
-       struct via_encoder *enc = container_of(encoder, struct via_encoder, 
base);
-       struct via_device *dev_priv = encoder->dev->dev_private;
-       struct drm_device *dev = encoder->dev;
-
-       /* Turn on LCD panel */
-       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 */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(7));
-                       svga_wcrt_mask(VGABASE, 0x91, BIT(0), BIT(0));
-                       /* Delay td0 msec. */
-                       mdelay(200);
-                       /* VDD ON */
-                       svga_wcrt_mask(VGABASE, 0x91, BIT(4), BIT(4));
-                       /* Delay td1 msec. */
-                       mdelay(25);
-                       /* DATA ON */
-                       svga_wcrt_mask(VGABASE, 0x91, BIT(3), BIT(3));
-                       /* VEE ON (unused on vt3353) */
-                       svga_wcrt_mask(VGABASE, 0x91, BIT(2), BIT(2));
-                       /* Delay td3 msec. */
-                       mdelay(250);
-                       /* Back-Light ON */
-                       svga_wcrt_mask(VGABASE, 0x91, BIT(1), BIT(1));
-               } else {
-                       /* Use first power sequence control: *
-                        * Use hardware control power sequence. */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(0));
-                       /* Turn on back light and panel path. */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(7) | BIT(6));
-                       /* Turn on hardware power sequence. */
-                       svga_wcrt_mask(VGABASE, 0x6A, BIT(3), BIT(3));
-               }
-       }
-
-       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 */
-                       svga_wcrt_mask(VGABASE, 0xD4, 0x00, BIT(1));
-                       svga_wcrt_mask(VGABASE, 0xD3, BIT(0), BIT(0));
-                       /* Delay td0 msec. */
-                       mdelay(200);
-                       /* VDD ON */
-                       svga_wcrt_mask(VGABASE, 0xD3, BIT(4), BIT(4));
-                       /* Delay td1 msec. */
-                       mdelay(25);
-                       /* DATA ON */
-                       svga_wcrt_mask(VGABASE, 0xD3, BIT(3), BIT(3));
-                       /* VEE ON (unused on vt3353) */
-                       svga_wcrt_mask(VGABASE, 0xD3, BIT(2), BIT(2));
-                       /* Delay td3 msec. */
-                       mdelay(250);
-                       /* Back-Light ON */
-                       svga_wcrt_mask(VGABASE, 0xD3, BIT(1), BIT(1));
-               } else {
-            /* Turn on panel path. */
-            svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(5));
-            /* Turn on back light. */
-            svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(6));
-                       /* Use hardware control power sequence. */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0x00, BIT(0));
-                       /* Turn on back light and panel path. */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0x00, BIT(7) | BIT(6));
-                       /* Turn on hardware power sequence. */
-                       svga_wcrt_mask(VGABASE, 0xD4, BIT(1), BIT(1));
-               }
-       }
-
-       /* Power on LVDS channel. */
-       if (enc->flags & LVDS_DUAL_CHANNEL) {
-               /* For high resolution LCD (internal),
-                * power on both LVDS0 and LVDS1 */
-               svga_wcrt_mask(VGABASE, 0xD2, 0x00, BIT(7) | BIT(6));
-       } else {
-               if (enc->di_port & VIA_DI_PORT_DFPL)
-                       svga_wcrt_mask(VGABASE, 0xD2, 0x00, BIT(7));
-               else if (enc->di_port & VIA_DI_PORT_DFPH)
-                       svga_wcrt_mask(VGABASE, 0xD2, 0x00, BIT(6));
-       }
-}
-
-static void
-via_disable_internal_lvds(struct drm_encoder *encoder)
-{
-       struct via_encoder *enc = container_of(encoder, struct via_encoder, 
base);
-       struct via_device *dev_priv = encoder->dev->dev_private;
-       struct drm_device *dev = encoder->dev;
-
-       /* Turn off LCD panel */
-       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)) {
-                       /* Back-Light OFF */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(1));
-                       /* Delay td3 msec. */
-                       mdelay(250);
-                       /* VEE OFF (unused on vt3353) */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(2));
-                       /* DATA OFF */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(3));
-                       /* Delay td1 msec. */
-                       mdelay(25);
-                       /* VDD OFF */
-                       svga_wcrt_mask(VGABASE, 0x91, 0x00, BIT(4));
-               } else {
-                       /* Use first power sequence control: *
-                        * Turn off power sequence. */
-                       svga_wcrt_mask(VGABASE, 0x6A, 0x00, BIT(3));
-
-                       /* Turn off back light and panel path. */
-                       svga_wcrt_mask(VGABASE, 0x91, 0xC0, BIT(7) | BIT(6));
-               }
-       }
-
-       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)) {
-                       /* Back-Light OFF */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0x00, BIT(1));
-                       /* Delay td3 msec. */
-                       mdelay(250);
-                       /* VEE OFF */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0x00, BIT(2));
-                       /* DATA OFF */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0x00, BIT(3));
-                       /* Delay td1 msec. */
-                       mdelay(25);
-                       /* VDD OFF */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0x00, BIT(4));
-               } else {
-                       /* Use second power sequence control: *
-                        * Turn off power sequence. */
-                       svga_wcrt_mask(VGABASE, 0xD4, 0x00, BIT(1));
-                       /* Turn off back light and panel path. */
-                       svga_wcrt_mask(VGABASE, 0xD3, 0xC0, BIT(7) | BIT(6));
-            /* Turn off back light. */
-            svga_wcrt_mask(VGABASE, 0x91, BIT(6), BIT(6));
-            /* Turn off panel path. */
-            svga_wcrt_mask(VGABASE, 0x91, BIT(5), BIT(5));
-               }
-       }
-
-       /* Power off LVDS channel. */
-       if (enc->flags & LVDS_DUAL_CHANNEL) {
-               /* For high resolution LCD (internal) we
-                * power off both LVDS0 and LVDS1 */
-               svga_wcrt_mask(VGABASE, 0xD2, 0xC0, BIT(7) | BIT(6));
-       } else {
-               if (enc->di_port & VIA_DI_PORT_DFPL)
-                       svga_wcrt_mask(VGABASE, 0xD2, BIT(7), BIT(7));
-               else if (enc->di_port & VIA_DI_PORT_DFPH)
-                       svga_wcrt_mask(VGABASE, 0xD2, BIT(6), BIT(6));
-       }
-}
-
-static void
 via_fp_castle_rock_soft_power_seq(struct via_device *dev_priv,
                                        bool power_state)
 {
@@ -1453,7 +1288,6 @@ void via_fp_probe(struct drm_device *dev)
 void via_fp_init(struct drm_device *dev)
 {
        struct via_device *dev_priv = dev->dev_private;
-       bool dual_channel = false;
        struct via_connector *con;
        struct via_encoder *enc;
 
@@ -1506,9 +1340,6 @@ void via_fp_init(struct drm_device *dev)
                enc->di_port = VIA_DI_PORT_NONE;
        }
 
-       if (dual_channel)
-               enc->flags |= LVDS_DUAL_CHANNEL;
-
        /* Put it all together */
        drm_mode_connector_attach_encoder(&con->base, &enc->base);
 exit:
commit f6731874fea9b23ec81fc1b28c3846901abd3bf7
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Nov 3 21:49:30 2017 -0700

    drm/openchrome: Replace via_lcd* labels with via_fp*
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_fp.c 
b/drivers/gpu/drm/openchrome/via_fp.c
index f9f553013cd3..ecf0c00fb9b6 100644
--- a/drivers/gpu/drm/openchrome/via_fp.c
+++ b/drivers/gpu/drm/openchrome/via_fp.c
@@ -1014,7 +1014,7 @@ exit:
        return ret;
 }
 
-struct drm_connector_funcs via_lcd_connector_funcs = {
+struct drm_connector_funcs via_fp_connector_funcs = {
        .dpms = drm_helper_connector_dpms,
        .detect = via_fp_detect,
        .fill_modes = drm_helper_probe_single_connector_modes,
@@ -1023,7 +1023,7 @@ struct drm_connector_funcs via_lcd_connector_funcs = {
 };
 
 static int
-via_lcd_get_modes(struct drm_connector *connector)
+via_fp_get_modes(struct drm_connector *connector)
 {
        struct via_connector *con = container_of(connector, struct 
via_connector, base);
        struct drm_device *dev = connector->dev;
@@ -1183,7 +1183,7 @@ via_lcd_get_modes(struct drm_connector *connector)
 }
 
 static int
-via_lcd_mode_valid(struct drm_connector *connector,
+via_fp_mode_valid(struct drm_connector *connector,
                        struct drm_display_mode *mode)
 {
        struct drm_property *prop = 
connector->dev->mode_config.scaling_mode_property;
@@ -1231,9 +1231,9 @@ via_lcd_mode_valid(struct drm_connector *connector,
        return MODE_OK;
 }
 
-struct drm_connector_helper_funcs via_lcd_connector_helper_funcs = {
-       .get_modes = via_lcd_get_modes,
-       .mode_valid = via_lcd_mode_valid,
+struct drm_connector_helper_funcs via_fp_connector_helper_funcs = {
+       .get_modes = via_fp_get_modes,
+       .mode_valid = via_fp_mode_valid,
        .best_encoder = via_best_encoder,
 };
 
@@ -1470,9 +1470,9 @@ void via_fp_init(struct drm_device *dev)
        con = &enc->cons[0];
        INIT_LIST_HEAD(&con->props);
 
-       drm_connector_init(dev, &con->base, &via_lcd_connector_funcs,
+       drm_connector_init(dev, &con->base, &via_fp_connector_funcs,
                                DRM_MODE_CONNECTOR_LVDS);
-       drm_connector_helper_add(&con->base, &via_lcd_connector_helper_funcs);
+       drm_connector_helper_add(&con->base, &via_fp_connector_helper_funcs);
        drm_connector_register(&con->base);
 
        if (dev_priv->int_fp1_presence) {
commit 49817ccdbadb771dbbbad59b4099188f7448c315
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Nov 3 21:48:42 2017 -0700

    drm/openchrome: Replace via_lcd_detect with via_fp_detect
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_fp.c 
b/drivers/gpu/drm/openchrome/via_fp.c
index ca2ba71d8372..f9f553013cd3 100644
--- a/drivers/gpu/drm/openchrome/via_fp.c
+++ b/drivers/gpu/drm/openchrome/via_fp.c
@@ -918,20 +918,27 @@ const struct drm_encoder_funcs via_lvds_enc_funcs = {
        .destroy = via_encoder_cleanup,
 };
 
-/* detect this connector connect status */
+/* Detect FP presence. */
 static enum drm_connector_status
-via_lcd_detect(struct drm_connector *connector,  bool force)
+via_fp_detect(struct drm_connector *connector,  bool force)
 {
        struct via_connector *con = container_of(connector,
                                        struct via_connector, base);
+       struct via_device *dev_priv = connector->dev->dev_private;
        enum drm_connector_status ret = connector_status_disconnected;
        struct i2c_adapter *i2c_bus;
        struct edid *edid = NULL;
+       u8 mask;
 
        DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
        drm_mode_connector_update_edid_property(connector, edid);
 
+       if (machine_is_olpc()) {
+               ret = connector_status_connected;
+               goto exit;
+       }
+
        if (con->i2c_bus & VIA_I2C_BUS2) {
                i2c_bus = via_find_ddc_bus(0x31);
        } else if (con->i2c_bus & VIA_I2C_BUS3) {
@@ -949,19 +956,19 @@ via_lcd_detect(struct drm_connector *connector,  bool 
force)
                        ret = connector_status_connected;
                }
        } else {
-               struct via_device *dev_priv = connector->dev->dev_private;
-               u8 mask = BIT(1);
-
-               if (connector->dev->pdev->device == PCI_DEVICE_ID_VIA_CLE266)
+               if (connector->dev->pdev->device ==
+                       PCI_DEVICE_ID_VIA_CLE266) {
                        mask = BIT(3);
+               } else {
+                       mask = BIT(1);
+               }
 
-               if (vga_rcrt(VGABASE, 0x3B) & mask)
-                       ret = connector_status_connected;
-
-               if (machine_is_olpc())
+               if (vga_rcrt(VGABASE, 0x3B) & mask) {
                        ret = connector_status_connected;
+               }
        }
 
+exit:
        DRM_DEBUG_KMS("Exiting %s.\n", __func__);
        return ret;
 }
@@ -1009,7 +1016,7 @@ exit:
 
 struct drm_connector_funcs via_lcd_connector_funcs = {
        .dpms = drm_helper_connector_dpms,
-       .detect = via_lcd_detect,
+       .detect = via_fp_detect,
        .fill_modes = drm_helper_probe_single_connector_modes,
        .set_property = via_fp_set_property,
        .destroy = via_connector_destroy,
commit fce635e8b9e04e5e0cf3542bae8320d3ab356b7f
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Nov 3 21:46:32 2017 -0700

    drm/openchrome: Rename via_lvds_init to via_fp_init
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_display.c 
b/drivers/gpu/drm/openchrome/via_display.c
index 95eb322ab641..6a0b76b3cf1e 100644
--- a/drivers/gpu/drm/openchrome/via_display.c
+++ b/drivers/gpu/drm/openchrome/via_display.c
@@ -506,7 +506,7 @@ via_modeset_init(struct drm_device *dev)
 
        via_analog_init(dev);
 
-       via_lvds_init(dev);
+       via_fp_init(dev);
 
        switch (dev->pdev->device) {
        case PCI_DEVICE_ID_VIA_VX900_VGA:
diff --git a/drivers/gpu/drm/openchrome/via_display.h 
b/drivers/gpu/drm/openchrome/via_display.h
index fde38d90416f..7281c22797d6 100644
--- a/drivers/gpu/drm/openchrome/via_display.h
+++ b/drivers/gpu/drm/openchrome/via_display.h
@@ -186,7 +186,7 @@ extern void via_fp_probe(struct drm_device *dev);
 
 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 void via_tmds_init(struct drm_device *dev);
+extern void via_fp_init(struct drm_device *dev);
 
 #endif
diff --git a/drivers/gpu/drm/openchrome/via_fp.c 
b/drivers/gpu/drm/openchrome/via_fp.c
index 3f4c11ba1315..ca2ba71d8372 100644
--- a/drivers/gpu/drm/openchrome/via_fp.c
+++ b/drivers/gpu/drm/openchrome/via_fp.c
@@ -1443,7 +1443,7 @@ void via_fp_probe(struct drm_device *dev)
        DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 }
 
-void via_lvds_init(struct drm_device *dev)
+void via_fp_init(struct drm_device *dev)
 {
        struct via_device *dev_priv = dev->dev_private;
        bool dual_channel = false;
_______________________________________________
Openchrome-devel mailing list
Openchrome-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to