drivers/gpu/drm/openchrome/via_display.h | 5 + drivers/gpu/drm/openchrome/via_drv.h | 2 drivers/gpu/drm/openchrome/via_fp.c | 152 +++++-------------------------- 3 files changed, 35 insertions(+), 124 deletions(-)
New commits: commit 004aaac377059aef5c3b98f0ba794e38dd41af63 Author: Kevin Brace <kevinbr...@gmx.com> Date: Fri Nov 3 22:06:40 2017 -0700 drm/openchrome: Version bumped to 3.0.56 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 ff8928be7147..7f4d04270b98 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 55 +#define DRIVER_PATCHLEVEL 56 #include <linux/module.h> commit bcacb15676c22d37f83afe348da8059cbe354cf1 Author: Kevin Brace <kevinbr...@gmx.com> Date: Fri Nov 3 22:06:02 2017 -0700 drm/openchrome: Remove polarity inversion code for 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 05bd062740da..1000d278c887 100644 --- a/drivers/gpu/drm/openchrome/via_fp.c +++ b/drivers/gpu/drm/openchrome/via_fp.c @@ -669,47 +669,12 @@ via_fp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct via_crtc *iga = container_of(encoder->crtc, struct via_crtc, base); struct via_encoder *enc = container_of(encoder, struct via_encoder, base); struct via_device *dev_priv = encoder->dev->dev_private; - u8 syncreg = 0; /* PCI Device ID */ u16 chipset = encoder->dev->pdev->device; DRM_DEBUG_KMS("Entered %s.\n", __func__); - if (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC) - syncreg |= BIT(6); - if (adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC) - syncreg |= BIT(5); - - switch (enc->di_port) { - case VIA_DI_PORT_DVP0: - svga_wcrt_mask(VGABASE, 0x96, syncreg, BIT(6) | BIT(5)); - break; - - case VIA_DI_PORT_DVP1: - svga_wcrt_mask(VGABASE, 0x9B, syncreg, BIT(6) | BIT(5)); - break; - - case VIA_DI_PORT_DFPH: - svga_wcrt_mask(VGABASE, 0x97, syncreg, BIT(6) | BIT(5)); - break; - - case VIA_DI_PORT_DFPL: - svga_wcrt_mask(VGABASE, 0x99, syncreg, BIT(6) | BIT(5)); - break; - - /* For TTL Type LCD */ - case (VIA_DI_PORT_DFPL + VIA_DI_PORT_DVP1): - svga_wcrt_mask(VGABASE, 0x99, syncreg, BIT(6) | BIT(5)); - svga_wcrt_mask(VGABASE, 0x9B, syncreg, BIT(6) | BIT(5)); - break; - - default: - DRM_ERROR("No DIPort.\n"); - case VIA_DI_PORT_NONE: - break; - } - /* Temporary implementation.*/ switch (chipset) { case PCI_DEVICE_ID_VIA_P4M900: commit e625083ba68dddcd5878753406505aaf1c39a188 Author: Kevin Brace <kevinbr...@gmx.com> Date: Fri Nov 3 22:04:41 2017 -0700 drm/openchrome: Add FP native screen resolution Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/via_display.h b/drivers/gpu/drm/openchrome/via_display.h index 7281c22797d6..e59fb23d2bb8 100644 --- a/drivers/gpu/drm/openchrome/via_display.h +++ b/drivers/gpu/drm/openchrome/via_display.h @@ -78,6 +78,11 @@ #define VIA_TMDS_NONE 0x0 #define VIA_TMDS_VT1632 BIT(0) +typedef struct _via_fp_info { + u32 x; + u32 y; +} via_fp_info; + struct via_crtc { struct drm_crtc base; struct ttm_bo_kmap_obj cursor_kmap; diff --git a/drivers/gpu/drm/openchrome/via_fp.c b/drivers/gpu/drm/openchrome/via_fp.c index ac1f415685cf..05bd062740da 100644 --- a/drivers/gpu/drm/openchrome/via_fp.c +++ b/drivers/gpu/drm/openchrome/via_fp.c @@ -33,6 +33,26 @@ #define TD2 0 #define TD3 25 +/* Non-I2C bus FP native screen resolution information table.*/ +static via_fp_info via_fp_info_table[] = { + { 640, 480}, + { 800, 600}, + {1024, 768}, + {1280, 768}, + {1280, 1024}, + {1400, 1050}, + {1600, 1200}, + {1280, 800}, + { 800, 480}, + {1024, 768}, + {1366, 768}, + {1024, 768}, + {1280, 768}, + {1280, 1024}, + {1400, 1050}, + {1600, 1200} +}; + /* caculate the cetering timing using mode and adjusted_mode */ static void @@ -911,93 +931,10 @@ via_fp_get_modes(struct drm_connector *connector) kfree(edid); } } else { - reg_value = (vga_rcrt(VGABASE, 0x3F) & 0x0F); + reg_value = (vga_rcrt(VGABASE, 0x3f) & 0x0f); hdisplay = vdisplay = 0; - - switch (reg_value) { - case 0x00: - hdisplay = 640; - vdisplay = 480; - break; - - case 0x01: - hdisplay = 800; - vdisplay = 600; - break; - - case 0x02: - hdisplay = 1024; - vdisplay = 768; - break; - - case 0x03: - hdisplay = 1280; - vdisplay = 768; - break; - - case 0x04: - hdisplay = 1280; - vdisplay = 1024; - break; - - case 0x05: - hdisplay = 1400; - vdisplay = 1050; - break; - - case 0x06: - hdisplay = 1440; - vdisplay = 900; - break; - - case 0x07: - hdisplay = 1280; - vdisplay = 800; - break; - - case 0x08: - hdisplay = 800; - vdisplay = 480; - break; - - case 0x09: - hdisplay = 1024; - vdisplay = 600; - break; - - case 0x0A: - hdisplay = 1366; - vdisplay = 768; - break; - - case 0x0B: - hdisplay = 1600; - vdisplay = 1200; - break; - - case 0x0C: - hdisplay = 1280; - vdisplay = 768; - break; - - case 0x0D: - hdisplay = 1280; - vdisplay = 1024; - break; - - case 0x0E: - hdisplay = 1600; - vdisplay = 1200; - break; - - case 0x0F: - hdisplay = 480; - vdisplay = 640; - break; - - default: - break; - } + hdisplay = via_fp_info_table[reg_value].x; + vdisplay = via_fp_info_table[reg_value].y; if (hdisplay && vdisplay) { native_mode = drm_cvt_mode(dev, hdisplay, vdisplay, @@ -1291,6 +1228,8 @@ void via_fp_init(struct drm_device *dev) struct via_connector *con; struct via_encoder *enc; + DRM_DEBUG_KMS("Entered %s.\n", __func__); + if ((!(dev_priv->int_fp1_presence)) && (!(dev_priv->int_fp2_presence))) { goto exit; @@ -1298,9 +1237,10 @@ void via_fp_init(struct drm_device *dev) enc = kzalloc(sizeof(*enc) + sizeof(*con), GFP_KERNEL); if (!enc) { - DRM_INFO("Failed to allocate LVDS output\n"); - return; + DRM_ERROR("Failed to allocate FP.\n"); + goto exit; } + con = &enc->cons[0]; INIT_LIST_HEAD(&con->props); @@ -1343,5 +1283,6 @@ void via_fp_init(struct drm_device *dev) /* Put it all together */ drm_mode_connector_attach_encoder(&con->base, &enc->base); exit: + DRM_DEBUG_KMS("Exiting %s.\n", __func__); return; } _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel