diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2010-03-31 15:39:46 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2010-03-31 15:39:46 +0000 |
| commit | 86a2d033e46170f119c7a04cf6136669a8af7940 (patch) | |
| tree | cfc40a589c853c402e5618e65fc0fdacc5624362 /sys/dev/syscons | |
| parent | 824d100ff7d3d3ef50963478cac2721315010f1c (diff) | |
Notes
Diffstat (limited to 'sys/dev/syscons')
| -rw-r--r-- | sys/dev/syscons/scvgarndr.c | 10 | ||||
| -rw-r--r-- | sys/dev/syscons/scvidctl.c | 4 | ||||
| -rw-r--r-- | sys/dev/syscons/syscons.c | 4 |
3 files changed, 13 insertions, 5 deletions
diff --git a/sys/dev/syscons/scvgarndr.c b/sys/dev/syscons/scvgarndr.c index fd823ce434ba..dbee6f200d4a 100644 --- a/sys/dev/syscons/scvgarndr.c +++ b/sys/dev/syscons/scvgarndr.c @@ -181,9 +181,17 @@ static u_short mouse_or_mask[16] = { #define vga_drawpxl(pos, color) \ switch (scp->sc->adp->va_info.vi_depth) { \ case 32: \ - case 24: \ writel(pos, vga_palette32[color]); \ break; \ + case 24: \ + if (((pos) & 1) == 0) { \ + writew(pos, vga_palette32[color]); \ + writeb(pos + 2, vga_palette32[color] >> 16);\ + } else { \ + writeb(pos, vga_palette32[color]); \ + writew(pos + 1, vga_palette32[color] >> 8);\ + } \ + break; \ case 16: \ if (scp->sc->adp->va_info.vi_pixel_fsizes[1] == 5)\ writew(pos, vga_palette15[color]); \ diff --git a/sys/dev/syscons/scvidctl.c b/sys/dev/syscons/scvidctl.c index 0f55499bac74..5c3dc8e39796 100644 --- a/sys/dev/syscons/scvidctl.c +++ b/sys/dev/syscons/scvidctl.c @@ -741,7 +741,7 @@ sc_vid_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) #ifndef SC_NO_PALETTE_LOADING #ifdef SC_PIXEL_MODE - if ((adp->va_flags & V_ADP_DAC8) != 0) + if (adp->va_info.vi_mem_model == V_INFO_MM_DIRECT) vidd_load_palette(adp, scp->sc->palette2); else #endif @@ -802,7 +802,7 @@ sc_vid_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) if (scp == scp->sc->cur_scp) { set_mode(scp); #ifndef SC_NO_PALETTE_LOADING - if ((adp->va_flags & V_ADP_DAC8) != 0) + if (adp->va_info.vi_mem_model == V_INFO_MM_DIRECT) vidd_load_palette(adp, scp->sc->palette2); else vidd_load_palette(adp, scp->sc->palette); diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 8dffe5cd5380..1819225b3662 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -2127,7 +2127,7 @@ restore_scrn_saver_mode(scr_stat *scp, int changemode) if (set_mode(scp) == 0) { #ifndef SC_NO_PALETTE_LOADING #ifdef SC_PIXEL_MODE - if ((scp->sc->adp->va_flags & V_ADP_DAC8) != 0) + if (scp->sc->adp->va_info.vi_mem_model == V_INFO_MM_DIRECT) vidd_load_palette(scp->sc->adp, scp->sc->palette2); else #endif @@ -2536,7 +2536,7 @@ exchange_scr(sc_softc_t *sc) #ifndef SC_NO_PALETTE_LOADING if (ISGRAPHSC(sc->old_scp)) { #ifdef SC_PIXEL_MODE - if ((sc->adp->va_flags & V_ADP_DAC8) != 0) + if (sc->adp->va_info.vi_mem_model == V_INFO_MM_DIRECT) vidd_load_palette(sc->adp, sc->palette2); else #endif |
