diff --git a/src/nv_crtc.c b/src/nv_crtc.c index c736f60..dc2f31d 100644 --- a/src/nv_crtc.c +++ b/src/nv_crtc.c @@ -1323,7 +1323,7 @@ nv_crtc_mode_set_ramdac_regs(xf86CrtcPtr crtc, DisplayModePtr mode, DisplayModeP if (is_fp) { if (NVMatchModePrivate(mode, NV_MODE_CONSOLE)) /* seems to be used almost always */ regp->fp_control[nv_crtc->head] |= NV_RAMDAC_FP_CONTROL_MODE_SCALE; - else if (nv_output->scaling_mode == SCALE_PANEL) /* panel needs to scale */ + else if (nv_output->scaling_mode == SCALE_PANEL || nv_output->scaling_mode == SCALE_NOSCALE) regp->fp_control[nv_crtc->head] |= NV_RAMDAC_FP_CONTROL_MODE_CENTER; /* This is also true for panel scaling, so we must put the panel scale check first */ else if (mode->Clock == adjusted_mode->Clock) /* native mode */ @@ -1418,7 +1418,9 @@ nv_crtc_mode_set_ramdac_regs(xf86CrtcPtr crtc, DisplayModePtr mode, DisplayModeP if (is_fp && nv_output->scaling_mode != SCALE_NOSCALE) { regp->debug_0[nv_crtc->head] |= NV_RAMDAC_FP_DEBUG_0_XSCALE_ENABLED; regp->debug_0[nv_crtc->head] |= NV_RAMDAC_FP_DEBUG_0_YSCALE_ENABLED; - } else if (is_fp) { /* no_scale mode, so we must center it */ + } +#if 0 + else if (is_fp) { /* no_scale mode, so we must center it */ uint32_t diff; diff = nv_output->fpWidth - mode->HDisplay; @@ -1429,6 +1431,7 @@ nv_crtc_mode_set_ramdac_regs(xf86CrtcPtr crtc, DisplayModePtr mode, DisplayModeP regp->fp_vvalid_start = diff/2; regp->fp_vvalid_end = (nv_output->fpHeight - diff/2 - 1); } +#endif /* Is this crtc bound or output bound? */ /* Does the bios TMDS script try to change this sometimes? */ diff --git a/src/nv_output.c b/src/nv_output.c index 84ffb72..48f7439 100644 --- a/src/nv_output.c +++ b/src/nv_output.c @@ -1238,7 +1238,9 @@ static void nv_add_output(ScrnInfoPtr pScrn, int dcb_entry, const xf86OutputFunc if (nv_output->type == OUTPUT_LVDS || nv_output->type == OUTPUT_TMDS) { if (pNv->fpScaler) /* GPU Scaling */ nv_output->scaling_mode = SCALE_ASPECT; - else /* Panel scaling */ + else if (nv_output->type == OUTPUT_LVDS) + nv_output->scaling_mode = SCALE_NOSCALE; + else nv_output->scaling_mode = SCALE_PANEL; if (xf86GetOptValString(pNv->Options, OPTION_SCALING_MODE)) {