diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2018-05-09 19:12:20 -0700 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2018-05-09 19:12:20 -0700 |
commit | dea3a2dcc57e7f98deae4d6b0517ed0ca4840a48 (patch) | |
tree | 0f8c33af5b120211c14979416a5e98649ea1133f | |
parent | 3c882cf8e694c752541153a4a535f398fe7175c6 (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.c | 6 | ||||
-rw-r--r-- | src/via_ums.c | 13 | ||||
-rw-r--r-- | src/via_ums.h | 6 |
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; |