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

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon Dec 5 00:44:12 UTC 2016


 drivers/gpu/drm/via/via_crtc.c |    8 ++------
 drivers/gpu/drm/via/via_drv.h  |    4 ++--
 drivers/gpu/drm/via/via_lvds.c |    2 +-
 3 files changed, 5 insertions(+), 9 deletions(-)

New commits:
commit 0c9cca82db05378eff129dae3efaed653ee6c001
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Sun Dec 4 16:42:51 2016 -0800

    Version bumped to 3.0.3
    
    This version fixes a bug where FP (Flat Panel) only configuration
    (i.e., laptop) was not working properly.
    
    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 8c77b39..3ba95e6 100644
--- a/drivers/gpu/drm/via/via_drv.h
+++ b/drivers/gpu/drm/via/via_drv.h
@@ -27,11 +27,11 @@
 #define DRIVER_AUTHOR       "The OpenChrome Project"
 #define DRIVER_NAME         "via"
 #define DRIVER_DESC         "VIA Technologies UniChrome / Chrome9"
-#define DRIVER_DATE         "20161128"
+#define DRIVER_DATE         "20161204"
 
 #define DRIVER_MAJOR		3
 #define DRIVER_MINOR		0
-#define DRIVER_PATCHLEVEL	2
+#define DRIVER_PATCHLEVEL	3
 
 #include <linux/module.h>
 
commit 52c137487da1fd043b0b01240526ccda37de4338
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Sun Dec 4 15:08:24 2016 -0800

    Fix for FP only use (laptop) not working correctly
    
    It was observed that if analog VGA and FP (Flat Panel) were
    connected during boot time, FP worked, but if only FP was connected,
    FP was not displaying the correct image. The code currently has issues
    when IGA1 is assigned to FP. Previously IGA1 or IGA2 can be assigned
    to FP. Now, only IGA2 will be assigned to FP. This bug fix solves
    OpenChrome DRM for VIA Technologies Chrome IGP laptop usability issue.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/via/via_crtc.c b/drivers/gpu/drm/via/via_crtc.c
index 4594f8b..6f83bfb 100644
--- a/drivers/gpu/drm/via/via_crtc.c
+++ b/drivers/gpu/drm/via/via_crtc.c
@@ -1003,7 +1003,6 @@ via_crtc_dpms(struct drm_crtc *crtc, int mode)
 		if (iga->index) {
 			/* turn off CRT screen (IGA2) */
 			svga_wcrt_mask(VGABASE, 0x6B, BIT(2), BIT(2));
-			disable_second_display_channel(VGABASE);
 			/* clear for TV clock */
 			svga_wcrt_mask(VGABASE, 0x6C, 0x00, 0x0F);
 		} else {
@@ -1019,7 +1018,6 @@ via_crtc_dpms(struct drm_crtc *crtc, int mode)
 			drm_vblank_post_modeset(crtc->dev, iga->index);
 		if (iga->index) {
 			/* turn on CRT screen (IGA2) */
-			enable_second_display_channel(VGABASE);
 			svga_wcrt_mask(VGABASE, 0x6B, 0x00, BIT(2));
 		} else {
 			/* turn on CRT screen (IGA1) */
@@ -1364,6 +1362,8 @@ via_iga2_mode_set_base_atomic(struct drm_crtc *crtc, struct drm_framebuffer *fb,
 	pitch = ALIGN(fb->pitches[0], 16);
 	load_value_to_registers(VGABASE, &iga->offset, pitch >> 3);
 
+	enable_second_display_channel(VGABASE);
+
 	return 0;
 }
 
@@ -1405,10 +1405,6 @@ via_crtc_init(struct drm_device *dev, int index)
 		drm_crtc_init(dev, crtc, &via_iga2_funcs);
 		drm_crtc_helper_add(crtc, &via_iga2_helper_funcs);
 
-		/* Always start off IGA2 disabled until we detected something
-		   attached to it */
-		disable_second_display_channel(VGABASE);
-
 		iga->timings.htotal.count = ARRAY_SIZE(iga2_hor_total);
 		iga->timings.htotal.regs = iga2_hor_total;
 
diff --git a/drivers/gpu/drm/via/via_lvds.c b/drivers/gpu/drm/via/via_lvds.c
index b648162..c85c708 100644
--- a/drivers/gpu/drm/via/via_lvds.c
+++ b/drivers/gpu/drm/via/via_lvds.c
@@ -753,7 +753,7 @@ via_lvds_init(struct drm_device *dev)
 				DRM_MODE_ENCODER_LVDS);
 	drm_encoder_helper_add(&enc->base, &via_lvds_helper_funcs);
 
-	enc->base.possible_crtcs = BIT(1) | BIT(0);
+	enc->base.possible_crtcs = BIT(1);
 
 	switch (dev->pdev->device) {
 	case PCI_DEVICE_ID_VIA_CLE266:


More information about the Openchrome-devel mailing list