summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Brace <kevinbrace@gmx.com>2018-05-09 19:12:20 -0700
committerKevin Brace <kevinbrace@gmx.com>2018-05-09 19:12:20 -0700
commitdea3a2dcc57e7f98deae4d6b0517ed0ca4840a48 (patch)
tree0f8c33af5b120211c14979416a5e98649ea1133f
parent3c882cf8e694c752541153a4a535f398fe7175c6 (diff)
Fix for Samsung NC20 netbook
Samsung NC20 netbook actually has the FP connected to VX800 chipset's LVDS2 (LVDS Channel 2) rather than the more logical LVDS1 (LVDS Channel 1). The code previously assumed that computer device vendor connects FP to LVDS1 if only one FP is in use. Tested-by: sebastien <lacsebastien@gmail.com> Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r--src/via_fp.c6
-rw-r--r--src/via_ums.c13
-rw-r--r--src/via_ums.h6
3 files changed, 25 insertions, 0 deletions
diff --git a/src/via_fp.c b/src/via_fp.c
index 1e8716e..c536417 100644
--- a/src/via_fp.c
+++ b/src/via_fp.c
@@ -1407,6 +1407,12 @@ viaFPProbe(ScrnInfoPtr pScrn)
pVIADisplay->intFP2Presence = FALSE;
pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
+ } else if (pVIADisplay->isSamsungNC20) {
+ pVIADisplay->intFP1Presence = FALSE;
+ pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE;
+ pVIADisplay->intFP2Presence = TRUE;
+ pVIADisplay->intFP2DIPort = VIA_DI_PORT_LVDS2;
+
/* 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 b877c80..9b0e3d8 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -985,6 +985,19 @@ umsPreInit(ScrnInfoPtr pScrn)
pVIADisplay->isQuantaIL1 = FALSE;
}
+ /* Samsung NC20 netbook has its FP connected to LVDS2
+ * rather than the more logical LVDS1, hence, a special
+ * flag register is needed for properly controlling its
+ * FP. */
+ if ((pVia->Chipset == VIA_VX800) &&
+ (SUBVENDOR_ID(pVia->PciInfo) == 0x144d) &&
+ (SUBSYS_ID(pVia->PciInfo) == 0xc04e)) {
+
+ pVIADisplay->isSamsungNC20 = TRUE;
+ } else {
+ pVIADisplay->isSamsungNC20 = 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 efcc5cc..14fb18e 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -214,6 +214,12 @@ typedef struct _VIADISPLAY {
* is needed for properly controlling its FP. */
Bool isQuantaIL1;
+ /* Samsung NC20 netbook has its FP connected to LVDS2
+ * rather than the more logical LVDS1, hence, a special
+ * flag register is needed for properly controlling its
+ * FP. */
+ Bool isSamsungNC20;
+
/* OLPC XO-1.5 */
Bool isOLPCXO15;