diff options
author | marius <marius@FreeBSD.org> | 2005-06-04 21:15:27 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2005-06-04 21:15:27 +0000 |
commit | 23691de771f141bf8ecad7539359abc3337a8830 (patch) | |
tree | d44a471956a7836f65f0c5a8ffbaf51898b6ca97 /sys/sparc64 | |
parent | a5dfc9120a1e79d33d0f8adb86f994e37a73df99 (diff) | |
download | FreeBSD-src-23691de771f141bf8ecad7539359abc3337a8830.zip FreeBSD-src-23691de771f141bf8ecad7539359abc3337a8830.tar.gz |
- In creator_configure() when probed for the high-level console return
the number of registered adapters instead of determining again whether
stdout is a supported card (and which might have failed to attach and
register).
- Drop creator_set_mode() and move the relevant parts to creator_fill_rect()
and creator_putc() respectively. This is a bit cleaner than having to
make sure that creator_set_mode() was called before creator_fill_rect()
or creator_putc() are used and matches better what Xorg does.
- Fix a bug in the handling of the FBIOSCURSOR IOCTL; the code was meant
to return ENODEV for all invocations expect when used to disable the
cursor and not just when used for enabling the cursor.
- In case the adapter is the OFW stdout move its OFW cursor to the start
of the last line on halt so OFW output doesn't get intermixed with what
FreeBSD left on the screen. With hindsight this is what the faking of a
hardware cursor which was removed in the last revision really was about,
i.e. to keep the OFW updated about the current cursor position. The new
approach however is simpler while producing the same result and doesn't
cause the first letter of the OFW output to be turned into a blank and
a newline.
- Add variable names to the prototypes of creator_cursor_*() which were
added in the last revision and list them alphabetically in order to match
the style of this file.
Diffstat (limited to 'sys/sparc64')
-rw-r--r-- | sys/sparc64/creator/creator.h | 7 | ||||
-rw-r--r-- | sys/sparc64/creator/creator_upa.c | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/sys/sparc64/creator/creator.h b/sys/sparc64/creator/creator.h index bb8162f..ce79582 100644 --- a/sys/sparc64/creator/creator.h +++ b/sys/sparc64/creator/creator.h @@ -234,9 +234,10 @@ struct creator_softc { int sc_flags; #define CREATOR_AFB (1 << 0) -#define CREATOR_CUREN (1 << 1) -#define CREATOR_CURINV (1 << 2) -#define CREATOR_PAC1 (1 << 3) +#define CREATOR_CONSOLE (1 << 1) +#define CREATOR_CUREN (1 << 2) +#define CREATOR_CURINV (1 << 3) +#define CREATOR_PAC1 (1 << 4) }; #endif /* !_DEV_FB_CREATOR_H_ */ diff --git a/sys/sparc64/creator/creator_upa.c b/sys/sparc64/creator/creator_upa.c index d7b1bb8..82c550f 100644 --- a/sys/sparc64/creator/creator_upa.c +++ b/sys/sparc64/creator/creator_upa.c @@ -301,4 +301,13 @@ creator_shutdown(void *v) FFB_WRITE(sc, FFB_DAC, FFB_DAC_VALUE2, sc->sc_flags & CREATOR_CURINV ? 0 : FFB_DAC_CUR_CTRL_P0 | FFB_DAC_CUR_CTRL_P1); + /* + * In case this is the console set the cursor of the stdout + * instance to the start of the last line so OFW output ends + * up beneath what FreeBSD left on the screen. + */ + if (sc->sc_flags & CREATOR_CONSOLE) { + OF_interpret("stdout @ is my-self 0 to column#", 0); + OF_interpret("stdout @ is my-self #lines 1 - to line#", 0); + } } |