svn commit: r205982 - stable/8/sys/dev/syscons
Jung-uk Kim
jkim at FreeBSD.org
Wed Mar 31 15:39:47 UTC 2010
Author: jkim
Date: Wed Mar 31 15:39:46 2010
New Revision: 205982
URL: http://svn.freebsd.org/changeset/base/205982
Log:
MFC: r205550, r205605, r205865
Sync. pixel mode support for syscons(4) with HEAD.
- Separate 24-bit pixel draw from 32-bit case. Although it is slower, we do
not want to write a useless zero to inaccessible memory region.
- We only want the dummy palette for direct color mode.
Modified:
stable/8/sys/dev/syscons/scvgarndr.c
stable/8/sys/dev/syscons/scvidctl.c
stable/8/sys/dev/syscons/syscons.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/dev/syscons/scvgarndr.c
==============================================================================
--- stable/8/sys/dev/syscons/scvgarndr.c Wed Mar 31 15:32:36 2010 (r205981)
+++ stable/8/sys/dev/syscons/scvgarndr.c Wed Mar 31 15:39:46 2010 (r205982)
@@ -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]); \
Modified: stable/8/sys/dev/syscons/scvidctl.c
==============================================================================
--- stable/8/sys/dev/syscons/scvidctl.c Wed Mar 31 15:32:36 2010 (r205981)
+++ stable/8/sys/dev/syscons/scvidctl.c Wed Mar 31 15:39:46 2010 (r205982)
@@ -741,7 +741,7 @@ sc_vid_ioctl(struct tty *tp, u_long cmd,
#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,
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);
Modified: stable/8/sys/dev/syscons/syscons.c
==============================================================================
--- stable/8/sys/dev/syscons/syscons.c Wed Mar 31 15:32:36 2010 (r205981)
+++ stable/8/sys/dev/syscons/syscons.c Wed Mar 31 15:39:46 2010 (r205982)
@@ -2127,7 +2127,7 @@ restore_scrn_saver_mode(scr_stat *scp, i
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
More information about the svn-src-all
mailing list