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;