configure.ac | 2 +- src/via_fp.c | 53 +++++++++++++++++++++++++++++++---------------------- src/via_ums.c | 12 ++++++++++++ src/via_ums.h | 5 +++++ 4 files changed, 49 insertions(+), 23 deletions(-)
New commits: commit 3e84ab948b489b20c61a825d58403e4a0ec67993 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Mar 12 13:23:53 2018 -0700 Version bumped to 0.6.172 FP related cleanup and special code to support Quanta IL1 netbook FP. The code to support Quanta IL1 netbook is untested. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index 2cabc8b..9f1e275 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.6.171], + [0.6.172], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit 452f31fbe1e4e510e84891318723ec28095b4b0f Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Mar 12 13:21:22 2018 -0700 Code cleanup of viaFPProbe Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_fp.c b/src/via_fp.c index 6ac400b..1e8716e 100644 --- a/src/via_fp.c +++ b/src/via_fp.c @@ -1306,15 +1306,16 @@ viaFPProbe(ScrnInfoPtr pScrn) CARD8 cr3b; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaFPProbe.\n")); + "Entered %s.\n", __func__)); sr12 = hwp->readSeq(hwp, 0x12); + sr13 = hwp->readSeq(hwp, 0x13); + cr3b = hwp->readCrtc(hwp, 0x3B); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "SR12: 0x%02X\n", sr12)); - sr13 = hwp->readSeq(hwp, 0x13); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "SR13: 0x%02X\n", sr13)); - cr3b = hwp->readCrtc(hwp, 0x3B); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CR3B: 0x%02X\n", sr13)); @@ -1324,20 +1325,18 @@ viaFPProbe(ScrnInfoPtr pScrn) if ((sr12 & BIT(4)) || (cr3b & BIT(3))) { pVIADisplay->intFP1Presence = TRUE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_DIP0; - pVIADisplay->intFP2Presence = FALSE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; } else { pVIADisplay->intFP1Presence = FALSE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE; - pVIADisplay->intFP2Presence = FALSE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; } + pVIADisplay->intFP2Presence = FALSE; + pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; break; case VIA_KM400: + case VIA_K8M800: case VIA_P4M800PRO: case VIA_PM800: - case VIA_K8M800: /* 3C5.13[3] - DVP0D8 pin strapping * 0: AGP pins are used for AGP * 1: AGP pins are used by FPDP @@ -1346,16 +1345,13 @@ viaFPProbe(ScrnInfoPtr pScrn) pVIADisplay->intFP1Presence = TRUE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPHIGH | VIA_DI_PORT_FPDPLOW; - pVIADisplay->intFP2Presence = FALSE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; - } else { pVIADisplay->intFP1Presence = FALSE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE; - pVIADisplay->intFP2Presence = FALSE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; } + pVIADisplay->intFP2Presence = FALSE; + pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; break; case VIA_P4M890: case VIA_K8M890: @@ -1367,18 +1363,20 @@ viaFPProbe(ScrnInfoPtr pScrn) * 1: 24-bit FPDP (Flat Panel Display Port) */ if (sr12 & BIT(4)) { pVIADisplay->intFP1Presence = TRUE; - pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPLOW - | VIA_DI_PORT_FPDPHIGH; - pVIADisplay->intFP2Presence = FALSE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; + pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPLOW | + VIA_DI_PORT_FPDPHIGH; } else { pVIADisplay->intFP1Presence = TRUE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPLOW; - pVIADisplay->intFP2Presence = FALSE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; } + } else { + pVIADisplay->intFP1Presence = FALSE; + pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE; + } + pVIADisplay->intFP2Presence = FALSE; + pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; break; case VIA_CX700: case VIA_VX800: @@ -1474,7 +1472,7 @@ viaFPProbe(ScrnInfoPtr pScrn) } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaFPProbe.\n")); + "Exiting %s.\n", __func__)); } void commit fa273a4f36b61f1f39231506784a3da86dadfb43 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Mar 12 13:04:46 2018 -0700 Limit FP support to only one FP for now Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_fp.c b/src/via_fp.c index e0069fb..6ac400b 100644 --- a/src/via_fp.c +++ b/src/via_fp.c @@ -1418,8 +1418,12 @@ viaFPProbe(ScrnInfoPtr pScrn) } else if ((!(sr13 & BIT(7))) && (!(sr13 & BIT(6)))) { pVIADisplay->intFP1Presence = TRUE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_LVDS1; - pVIADisplay->intFP2Presence = TRUE; - pVIADisplay->intFP2DIPort = VIA_DI_PORT_LVDS2; + + /* + * For now, don't support the second FP. + */ + pVIADisplay->intFP2Presence = FALSE; + pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; } else if ((!(sr13 & BIT(7))) && (sr13 & BIT(6))) { pVIADisplay->intFP1Presence = FALSE; pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE; commit 0e484ecb936445efa8004178855a6bd46f0eaa26 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Mar 12 12:59:24 2018 -0700 Add special code to support Quanta IL1 netbook FP Quanta IL1 netbook has its FP (Flat Panel) connected to DVP1 (Digital Video Port 1) rather than LVDS Channel 1. There really is no way to detect this other than looking at PCI subvendor and subdevice ID. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_fp.c b/src/via_fp.c index 80dd5ea..e0069fb 100644 --- a/src/via_fp.c +++ b/src/via_fp.c @@ -1402,6 +1402,13 @@ viaFPProbe(ScrnInfoPtr pScrn) pVIADisplay->intFP2Presence = TRUE; pVIADisplay->intFP2DIPort = VIA_DI_PORT_LVDS2; + } else if (pVIADisplay->isQuantaIL1) { + /* From the Quanta IL1 schematic. */ + pVIADisplay->intFP1Presence = TRUE; + pVIADisplay->intFP1DIPort = VIA_DI_PORT_DVP1; + pVIADisplay->intFP2Presence = FALSE; + pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE; + /* 3C5.13[7:6] - Integrated LVDS / DVI Mode Select * (DVP1D15-14 pin strapping) * 00: LVDS1 + LVDS2 diff --git a/src/via_ums.c b/src/via_ums.c index e3f37af..b877c80 100644 --- a/src/via_ums.c +++ b/src/via_ums.c @@ -973,6 +973,18 @@ umsPreInit(ScrnInfoPtr pScrn) pVIADisplay->isVIANanoBook = FALSE; } + /* Checking for Quanta IL1 netbook. This is necessary + * due to its flat panel connected to DVP1 (Digital + * Video Port 1) rather than its LVDS channel. */ + if ((pVia->Chipset == VIA_VX800) && + (SUBVENDOR_ID(pVia->PciInfo) == 0x152D) && + (SUBSYS_ID(pVia->PciInfo) == 0x0771)) { + + pVIADisplay->isQuantaIL1 = TRUE; + } else { + pVIADisplay->isQuantaIL1 = FALSE; + } + /* Checking for OLPC XO-1.5. */ if ((pVia->Chipset == VIA_VX855) && (SUBVENDOR_ID(pVia->PciInfo) == 0x152D) && diff --git a/src/via_ums.h b/src/via_ums.h index 4edd556..4bf6160 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -209,6 +209,11 @@ typedef struct _VIADISPLAY { * Design Manufacturer) name. */ Bool isVIANanoBook; + /* Quanta IL1 netbook has its FP connected to DVP1 + * rather than LVDS, hence, a special flag register + * is needed for properly controlling its FP. */ + Bool isQuantaIL1; + /* OLPC XO-1.5 */ Bool isOLPCXO15; _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel