diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 5 | ||||
-rw-r--r-- | src/smi.h | 2 | ||||
-rw-r--r-- | src/smi_driver.c | 10 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 87ca97f..5170211 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -36,7 +36,6 @@ siliconmotion_drv_la_SOURCES = \ smi_xaa.c \ smi_exa.c \ smi_dac.c \ - smi_dga.c \ smi_driver.c \ smi.h \ smi_i2c.c \ @@ -52,3 +51,7 @@ siliconmotion_drv_la_SOURCES = \ smilynx.h \ smi501_crtc.c \ smi501_output.c + +if !XMODES +siliconmotion_drv_la_SOURCES += smi_dga.c +endif @@ -390,8 +390,10 @@ void SMI_LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indicies, xf86MonPtr SMI_ddc1(ScrnInfoPtr pScrn); void SMI_PrintRegs(ScrnInfoPtr pScrn); +#ifndef HAVE_XMODES /* smi_dga.c */ Bool SMI_DGAInit(ScreenPtr pScrn); +#endif /* smi_video.c */ void SMI_InitVideo(ScreenPtr pScreen); diff --git a/src/smi_driver.c b/src/smi_driver.c index c7c18f3..8b6e78b 100644 --- a/src/smi_driver.c +++ b/src/smi_driver.c @@ -1716,11 +1716,15 @@ SMI_ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) SMI_PrintRegs(pScrn); miInitializeBackingStore(pScreen); - + +#ifdef HAVE_XMODES + xf86DiDGAInit(pScreen, (unsigned long)(pSmi->FBBase + pScrn->fbOffset)); +#else /* hardware cursor needs to wrap this layer */ - if(!pSmi->NoAccel && !pSmi->useEXA) + if (!pSmi->NoAccel && !pSmi->useEXA) SMI_DGAInit(pScreen); - +#endif + /* Initialise cursor functions */ miDCInitialize(pScreen, xf86GetPointerScreenFuncs()); |