diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2009-07-05 13:03:14 +0200 |
---|---|---|
committer | Lars-Peter Clausen <lars@metafoo.de> | 2009-07-05 13:03:14 +0200 |
commit | 74b16fcdba85a6f851ffe2ecb63a0f16235285a0 (patch) | |
tree | 700cbedd856f286ae8668ff3b6b57a295af64af9 /src/glamo-driver.c | |
parent | 69ccc9307c6b6a1aeb1f51ea732af20d52a66685 (diff) |
Implement support for engine ioctls. The glamo Xorg driver should only touch
cmdq or 2d registers, so we enable/disable engines through framebuffer ioctls.
This needs support from the kernel side.
Diffstat (limited to 'src/glamo-driver.c')
-rw-r--r-- | src/glamo-driver.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/glamo-driver.c b/src/glamo-driver.c index a280f98..6d0c6a4 100644 --- a/src/glamo-driver.c +++ b/src/glamo-driver.c @@ -743,7 +743,9 @@ fail2: static void GlamoSaveHW(ScrnInfoPtr pScrn) { GlamoPtr pGlamo = GlamoPTR(pScrn); +#ifndef HAS_ENGINE_IOCTLS volatile char *mmio = pGlamo->reg_base; +#endif #if JBT6K74_SET_STATE int fd; @@ -758,11 +760,13 @@ GlamoSaveHW(ScrnInfoPtr pScrn) { } #endif +#ifndef HAS_ENGINE_IOCTLS pGlamo->saved_clock_2d = MMIO_IN16(mmio, GLAMO_REG_CLOCK_2D); pGlamo->saved_clock_isp = MMIO_IN16(mmio, GLAMO_REG_CLOCK_ISP); pGlamo->saved_clock_gen5_1 = MMIO_IN16(mmio, GLAMO_REG_CLOCK_GEN5_1); pGlamo->saved_clock_gen5_2 = MMIO_IN16(mmio, GLAMO_REG_CLOCK_GEN5_2); pGlamo->saved_hostbus_2 = MMIO_IN16(mmio, GLAMO_REG_HOSTBUS(2)); +#endif if (ioctl(pGlamo->fb_fd, FBIOGET_VSCREENINFO, (void*)(&pGlamo->fb_saved_var)) == -1) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -774,15 +778,20 @@ GlamoSaveHW(ScrnInfoPtr pScrn) { static void GlamoRestoreHW(ScrnInfoPtr pScrn) { GlamoPtr pGlamo = GlamoPTR(pScrn); +#ifndef HAS_ENGINE_IOCTLS volatile char *mmio = pGlamo->reg_base; +#endif #ifdef JBT6K74_SET_STATE int fd; #endif + if (ioctl(pGlamo->fb_fd, FBIOPUT_VSCREENINFO, (void*)(&pGlamo->fb_saved_var)) == -1) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Framebuffer ioctl FBIOSET_FSCREENINFO failed: %s", strerror(errno)); } + +#ifndef HAS_ENGINE_IOCTLS MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_2D, GLAMO_CLOCK_2D_EN_M6CLK | GLAMO_CLOCK_2D_EN_M7CLK | GLAMO_CLOCK_2D_EN_GCLK | GLAMO_CLOCK_2D_DG_M7CLK | @@ -794,6 +803,7 @@ GlamoRestoreHW(ScrnInfoPtr pScrn) { MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2), GLAMO_HOSTBUS2_MMIO_EN_CMDQ | GLAMO_HOSTBUS2_MMIO_EN_2D, pGlamo->saved_hostbus_2); +#endif #ifdef JBT6K74_SET_STATE fd = open(pGlamo->jbt6k74_state_path, O_WRONLY); |