diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-06-05 19:28:34 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-06-05 19:28:34 +0000 |
commit | 93460aac464e1f4fe5f35916ed91f496df4ec903 (patch) | |
tree | c41dba1ef958c6089966f23ed26e86df141009f2 /sys | |
parent | 29a898d7edf8152528c68ed2a6acf4216803ffcc (diff) |
Save some more state such that we recover from X changing depth on us.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/sparc64/dev/gfxp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/arch/sparc64/dev/gfxp.c b/sys/arch/sparc64/dev/gfxp.c index 7d60eebb716..8b6081ef9ae 100644 --- a/sys/arch/sparc64/dev/gfxp.c +++ b/sys/arch/sparc64/dev/gfxp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: gfxp.c,v 1.7 2009/06/05 19:09:52 kettenis Exp $ */ +/* $OpenBSD: gfxp.c,v 1.8 2009/06/05 19:28:33 kettenis Exp $ */ /* * Copyright (c) 2009 Mark Kettenis. @@ -75,6 +75,7 @@ #define PM2_FB_READ_MODE 0x8a80 #define PM2_FB_BLOCK_COLOR 0x8ac8 +#define PM2_FB_READ_PIXEL 0x8ad0 #define PM2_FILTER_MODE 0x8c00 #define PM2_FM_PASS_SYNC_TAG 0x00000400 @@ -113,6 +114,7 @@ struct gfxp_softc { /* Saved state to clean up after X11. */ uint32_t sc_read_mode; + uint32_t sc_read_pixel; }; int gfxp_ioctl(void *, u_long, caddr_t, int, struct proc *); @@ -425,6 +427,8 @@ gfxp_init(struct gfxp_softc *sc) /* XXX Save. */ sc->sc_read_mode = bus_space_read_4(sc->sc_mmiot, sc->sc_mmioh, PM2_FB_READ_MODE); + sc->sc_read_pixel = bus_space_read_4(sc->sc_mmiot, sc->sc_mmioh, + PM2_FB_READ_PIXEL); } void @@ -436,6 +440,8 @@ gfxp_reinit(struct gfxp_softc *sc) /* XXX Restore. */ bus_space_write_4(sc->sc_mmiot, sc->sc_mmioh, PM2_FB_READ_MODE, sc->sc_read_mode); + bus_space_write_4(sc->sc_mmiot, sc->sc_mmioh, + PM2_FB_READ_PIXEL, sc->sc_read_pixel); /* Disable cursor. */ gfxp_indexed_write(sc, PM2V_CURSOR_MODE, 0x10); |