History log of /openbsd-current/sys/arch/sparc64/dev/ifb.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.27 14-May-2024 jsg

remove prototypes with no matching function


Revision tags: OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.26 15-Jul-2022 kettenis

Implement support for framebuffers that don't start on a page boundary.
This happens on the new 14" and 16" Macbook Pro where we deliberately use
a framebuffer that skips the first few lines to avoid "the notch".
The offset of the first pixel is added to struct wsdisplay_fbinfo. The
stride is added as well, mirroring the value returned by the
WSDISPLAYIO_LINEBYTES ioctl, such that we can retire that one in the
future. A compat ioctl is implemented to help the transition. The compat
code will be removed after OpenBSD 7.3 has been released.

ok miod@


Revision tags: OPENBSD_7_1_BASE
# 1.25 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.24 11-Mar-2021 jsg

spelling


Revision tags: OPENBSD_6_8_BASE
# 1.23 25-May-2020 jsg

change wsdisplay attribute type from long to uint32_t

miod explained it was initially a long as it was thought drivers may
need to allocate storage but in practice they don't need more than
32 bits for an attribute.

suggested and reviewed by miod@


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.22 20-Oct-2013 miod

Use C99 named initializers for struct wsdisplay_accessops fields.
No functional change.


Revision tags: OPENBSD_5_4_BASE
# 1.21 16-Jul-2013 miod

Enable jfb-style acceleration on XVR-600.


# 1.20 15-Jul-2013 miod

Use getpropstringA(), not getpropstring(), to get the card's name. This ensures
its value has not been clobbered when ifb_accel_identify() is invoked, and
restores textmode acceleration on Expert3D{,-Lite} and XVR-1200.
Broken since 1.17, sigh


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 20-Jul-2010 miod

opration -> operation


Revision tags: OPENBSD_4_7_BASE
# 1.18 05-Sep-2009 miod

Change the wsdisplay_emulops return types from void to int; emulops will now
return zero on success and nonzero on failure.
This commit only performs mechanical changes for the existing emulops to
always return zero.


Revision tags: OPENBSD_4_6_BASE
# 1.17 27-Jun-2009 miod

Stricter checks when deciding which acceleration code to use. Instead of
matching on pci id, and if no match is found, on pci subsystem id, match
on openfirmware device names (which amounts to a pci id AND subsystem id
exact match).

This makes XVR-500 cards (``bobcat'') run without acceleration. Which is
better than trying to use ``jfb'' acceleration and fail.

ok kettenis@


Revision tags: OPENBSD_4_5_BASE
# 1.16 21-Jan-2009 miod

Extend the acceleration code to handle jfb (XVR-600, XVR-1200) models, the
software only code is kept in case we can't reliably figure out what kind
of device we are facing.

Tested on XVR-1200 by Mattieu Baptiste, and on Expert3D-Lite by me.


# 1.15 19-Jan-2009 miod

The acceleration code would not work on XVR-600 and XVR-1200, so if it turns
out it doesn't work, fall back to dumb software routines until we know better.

Also, do not attach to the second head of the XVR-1200 yet, the second
node lacks basic frame buffer properties.

Tested by Mattieu Baptiste, thanks!


# 1.14 04-Jan-2009 miod

Allow registers to be mapped in WSDISPLAYIO_MODE_MAPPED mode, if
machdep.allowaperture > 0. To be used by the xserver shortly.


# 1.13 02-Jan-2009 miod

Accelerated routines for solid fills and inverted cursor.


# 1.12 01-Jan-2009 miod

Allow both overlay areas to be mmap()ed by userland in WSDISPLAYIO_MODE_MAPPED
mode.


# 1.11 29-Dec-2008 miod

Give ifb its own display type (be sure to make includes before rebuilding
wsconsctl)


# 1.10 29-Dec-2008 miod

Move ifb identification to its own routine. We can not simply have the ifb
probe win over vgafb, since one may configure a kernel with vgafb but without
ifb (especially slackers who forget to rerun config).


# 1.9 29-Dec-2008 miod

Low-hanging fruit: while the blitter is still an untamed beast, implement
eraserows as one low-style line of solid fills, and then as many copyrect
calls as necessary to fill the complete area.


# 1.8 28-Dec-2008 miod

Use acceleated operations for copycols, too.


# 1.7 28-Dec-2008 kettenis

Make blitter ``go the other way'' when scrolling down.


# 1.6 27-Dec-2008 miod

It turns out that parasites are caused by (some) pixel writes with the
high bit set; restrict ourselves to 7bpp operation. This brings back
text-mode color support.

joint work with kettenis@


# 1.5 27-Dec-2008 kettenis

Use hardware acceleration for scrolling and make sure we only use the low bit
of each pixel value. This avoids "overlay artifacts" and turns ifb(4) into
a usable console framebuffer.

help from miod@


# 1.4 27-Dec-2008 miod

Sync the sparc64 fb* api with the recent changes done on sparc.


# 1.3 27-Dec-2008 kettenis

Make sure we pick the right PCI BARs on Expert3D cards (which have an extra
BAR that we need to skip).

ok miod@


Revision tags: OPENBSD_4_4_BASE
# 1.2 23-Mar-2008 miod

typo; deraadt


# 1.1 23-Mar-2008 miod

Not-functional-enough driver for the Sun Expert3D cards, put in tree as an
incentive for further tinkering only; not for the faint of heart.


# 1.26 15-Jul-2022 kettenis

Implement support for framebuffers that don't start on a page boundary.
This happens on the new 14" and 16" Macbook Pro where we deliberately use
a framebuffer that skips the first few lines to avoid "the notch".
The offset of the first pixel is added to struct wsdisplay_fbinfo. The
stride is added as well, mirroring the value returned by the
WSDISPLAYIO_LINEBYTES ioctl, such that we can retire that one in the
future. A compat ioctl is implemented to help the transition. The compat
code will be removed after OpenBSD 7.3 has been released.

ok miod@


Revision tags: OPENBSD_7_1_BASE
# 1.25 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.24 11-Mar-2021 jsg

spelling


Revision tags: OPENBSD_6_8_BASE
# 1.23 25-May-2020 jsg

change wsdisplay attribute type from long to uint32_t

miod explained it was initially a long as it was thought drivers may
need to allocate storage but in practice they don't need more than
32 bits for an attribute.

suggested and reviewed by miod@


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.22 20-Oct-2013 miod

Use C99 named initializers for struct wsdisplay_accessops fields.
No functional change.


Revision tags: OPENBSD_5_4_BASE
# 1.21 16-Jul-2013 miod

Enable jfb-style acceleration on XVR-600.


# 1.20 15-Jul-2013 miod

Use getpropstringA(), not getpropstring(), to get the card's name. This ensures
its value has not been clobbered when ifb_accel_identify() is invoked, and
restores textmode acceleration on Expert3D{,-Lite} and XVR-1200.
Broken since 1.17, sigh


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 20-Jul-2010 miod

opration -> operation


Revision tags: OPENBSD_4_7_BASE
# 1.18 05-Sep-2009 miod

Change the wsdisplay_emulops return types from void to int; emulops will now
return zero on success and nonzero on failure.
This commit only performs mechanical changes for the existing emulops to
always return zero.


Revision tags: OPENBSD_4_6_BASE
# 1.17 27-Jun-2009 miod

Stricter checks when deciding which acceleration code to use. Instead of
matching on pci id, and if no match is found, on pci subsystem id, match
on openfirmware device names (which amounts to a pci id AND subsystem id
exact match).

This makes XVR-500 cards (``bobcat'') run without acceleration. Which is
better than trying to use ``jfb'' acceleration and fail.

ok kettenis@


Revision tags: OPENBSD_4_5_BASE
# 1.16 21-Jan-2009 miod

Extend the acceleration code to handle jfb (XVR-600, XVR-1200) models, the
software only code is kept in case we can't reliably figure out what kind
of device we are facing.

Tested on XVR-1200 by Mattieu Baptiste, and on Expert3D-Lite by me.


# 1.15 19-Jan-2009 miod

The acceleration code would not work on XVR-600 and XVR-1200, so if it turns
out it doesn't work, fall back to dumb software routines until we know better.

Also, do not attach to the second head of the XVR-1200 yet, the second
node lacks basic frame buffer properties.

Tested by Mattieu Baptiste, thanks!


# 1.14 04-Jan-2009 miod

Allow registers to be mapped in WSDISPLAYIO_MODE_MAPPED mode, if
machdep.allowaperture > 0. To be used by the xserver shortly.


# 1.13 02-Jan-2009 miod

Accelerated routines for solid fills and inverted cursor.


# 1.12 01-Jan-2009 miod

Allow both overlay areas to be mmap()ed by userland in WSDISPLAYIO_MODE_MAPPED
mode.


# 1.11 29-Dec-2008 miod

Give ifb its own display type (be sure to make includes before rebuilding
wsconsctl)


# 1.10 29-Dec-2008 miod

Move ifb identification to its own routine. We can not simply have the ifb
probe win over vgafb, since one may configure a kernel with vgafb but without
ifb (especially slackers who forget to rerun config).


# 1.9 29-Dec-2008 miod

Low-hanging fruit: while the blitter is still an untamed beast, implement
eraserows as one low-style line of solid fills, and then as many copyrect
calls as necessary to fill the complete area.


# 1.8 28-Dec-2008 miod

Use acceleated operations for copycols, too.


# 1.7 28-Dec-2008 kettenis

Make blitter ``go the other way'' when scrolling down.


# 1.6 27-Dec-2008 miod

It turns out that parasites are caused by (some) pixel writes with the
high bit set; restrict ourselves to 7bpp operation. This brings back
text-mode color support.

joint work with kettenis@


# 1.5 27-Dec-2008 kettenis

Use hardware acceleration for scrolling and make sure we only use the low bit
of each pixel value. This avoids "overlay artifacts" and turns ifb(4) into
a usable console framebuffer.

help from miod@


# 1.4 27-Dec-2008 miod

Sync the sparc64 fb* api with the recent changes done on sparc.


# 1.3 27-Dec-2008 kettenis

Make sure we pick the right PCI BARs on Expert3D cards (which have an extra
BAR that we need to skip).

ok miod@


Revision tags: OPENBSD_4_4_BASE
# 1.2 23-Mar-2008 miod

typo; deraadt


# 1.1 23-Mar-2008 miod

Not-functional-enough driver for the Sun Expert3D cards, put in tree as an
incentive for further tinkering only; not for the faint of heart.


# 1.25 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.24 11-Mar-2021 jsg

spelling


Revision tags: OPENBSD_6_8_BASE
# 1.23 25-May-2020 jsg

change wsdisplay attribute type from long to uint32_t

miod explained it was initially a long as it was thought drivers may
need to allocate storage but in practice they don't need more than
32 bits for an attribute.

suggested and reviewed by miod@


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.22 20-Oct-2013 miod

Use C99 named initializers for struct wsdisplay_accessops fields.
No functional change.


Revision tags: OPENBSD_5_4_BASE
# 1.21 16-Jul-2013 miod

Enable jfb-style acceleration on XVR-600.


# 1.20 15-Jul-2013 miod

Use getpropstringA(), not getpropstring(), to get the card's name. This ensures
its value has not been clobbered when ifb_accel_identify() is invoked, and
restores textmode acceleration on Expert3D{,-Lite} and XVR-1200.
Broken since 1.17, sigh


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 20-Jul-2010 miod

opration -> operation


Revision tags: OPENBSD_4_7_BASE
# 1.18 05-Sep-2009 miod

Change the wsdisplay_emulops return types from void to int; emulops will now
return zero on success and nonzero on failure.
This commit only performs mechanical changes for the existing emulops to
always return zero.


Revision tags: OPENBSD_4_6_BASE
# 1.17 27-Jun-2009 miod

Stricter checks when deciding which acceleration code to use. Instead of
matching on pci id, and if no match is found, on pci subsystem id, match
on openfirmware device names (which amounts to a pci id AND subsystem id
exact match).

This makes XVR-500 cards (``bobcat'') run without acceleration. Which is
better than trying to use ``jfb'' acceleration and fail.

ok kettenis@


Revision tags: OPENBSD_4_5_BASE
# 1.16 21-Jan-2009 miod

Extend the acceleration code to handle jfb (XVR-600, XVR-1200) models, the
software only code is kept in case we can't reliably figure out what kind
of device we are facing.

Tested on XVR-1200 by Mattieu Baptiste, and on Expert3D-Lite by me.


# 1.15 19-Jan-2009 miod

The acceleration code would not work on XVR-600 and XVR-1200, so if it turns
out it doesn't work, fall back to dumb software routines until we know better.

Also, do not attach to the second head of the XVR-1200 yet, the second
node lacks basic frame buffer properties.

Tested by Mattieu Baptiste, thanks!


# 1.14 04-Jan-2009 miod

Allow registers to be mapped in WSDISPLAYIO_MODE_MAPPED mode, if
machdep.allowaperture > 0. To be used by the xserver shortly.


# 1.13 02-Jan-2009 miod

Accelerated routines for solid fills and inverted cursor.


# 1.12 01-Jan-2009 miod

Allow both overlay areas to be mmap()ed by userland in WSDISPLAYIO_MODE_MAPPED
mode.


# 1.11 29-Dec-2008 miod

Give ifb its own display type (be sure to make includes before rebuilding
wsconsctl)


# 1.10 29-Dec-2008 miod

Move ifb identification to its own routine. We can not simply have the ifb
probe win over vgafb, since one may configure a kernel with vgafb but without
ifb (especially slackers who forget to rerun config).


# 1.9 29-Dec-2008 miod

Low-hanging fruit: while the blitter is still an untamed beast, implement
eraserows as one low-style line of solid fills, and then as many copyrect
calls as necessary to fill the complete area.


# 1.8 28-Dec-2008 miod

Use acceleated operations for copycols, too.


# 1.7 28-Dec-2008 kettenis

Make blitter ``go the other way'' when scrolling down.


# 1.6 27-Dec-2008 miod

It turns out that parasites are caused by (some) pixel writes with the
high bit set; restrict ourselves to 7bpp operation. This brings back
text-mode color support.

joint work with kettenis@


# 1.5 27-Dec-2008 kettenis

Use hardware acceleration for scrolling and make sure we only use the low bit
of each pixel value. This avoids "overlay artifacts" and turns ifb(4) into
a usable console framebuffer.

help from miod@


# 1.4 27-Dec-2008 miod

Sync the sparc64 fb* api with the recent changes done on sparc.


# 1.3 27-Dec-2008 kettenis

Make sure we pick the right PCI BARs on Expert3D cards (which have an extra
BAR that we need to skip).

ok miod@


Revision tags: OPENBSD_4_4_BASE
# 1.2 23-Mar-2008 miod

typo; deraadt


# 1.1 23-Mar-2008 miod

Not-functional-enough driver for the Sun Expert3D cards, put in tree as an
incentive for further tinkering only; not for the faint of heart.


# 1.24 11-Mar-2021 jsg

spelling


Revision tags: OPENBSD_6_8_BASE
# 1.23 25-May-2020 jsg

change wsdisplay attribute type from long to uint32_t

miod explained it was initially a long as it was thought drivers may
need to allocate storage but in practice they don't need more than
32 bits for an attribute.

suggested and reviewed by miod@


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.22 20-Oct-2013 miod

Use C99 named initializers for struct wsdisplay_accessops fields.
No functional change.


Revision tags: OPENBSD_5_4_BASE
# 1.21 16-Jul-2013 miod

Enable jfb-style acceleration on XVR-600.


# 1.20 15-Jul-2013 miod

Use getpropstringA(), not getpropstring(), to get the card's name. This ensures
its value has not been clobbered when ifb_accel_identify() is invoked, and
restores textmode acceleration on Expert3D{,-Lite} and XVR-1200.
Broken since 1.17, sigh


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 20-Jul-2010 miod

opration -> operation


Revision tags: OPENBSD_4_7_BASE
# 1.18 05-Sep-2009 miod

Change the wsdisplay_emulops return types from void to int; emulops will now
return zero on success and nonzero on failure.
This commit only performs mechanical changes for the existing emulops to
always return zero.


Revision tags: OPENBSD_4_6_BASE
# 1.17 27-Jun-2009 miod

Stricter checks when deciding which acceleration code to use. Instead of
matching on pci id, and if no match is found, on pci subsystem id, match
on openfirmware device names (which amounts to a pci id AND subsystem id
exact match).

This makes XVR-500 cards (``bobcat'') run without acceleration. Which is
better than trying to use ``jfb'' acceleration and fail.

ok kettenis@


Revision tags: OPENBSD_4_5_BASE
# 1.16 21-Jan-2009 miod

Extend the acceleration code to handle jfb (XVR-600, XVR-1200) models, the
software only code is kept in case we can't reliably figure out what kind
of device we are facing.

Tested on XVR-1200 by Mattieu Baptiste, and on Expert3D-Lite by me.


# 1.15 19-Jan-2009 miod

The acceleration code would not work on XVR-600 and XVR-1200, so if it turns
out it doesn't work, fall back to dumb software routines until we know better.

Also, do not attach to the second head of the XVR-1200 yet, the second
node lacks basic frame buffer properties.

Tested by Mattieu Baptiste, thanks!


# 1.14 04-Jan-2009 miod

Allow registers to be mapped in WSDISPLAYIO_MODE_MAPPED mode, if
machdep.allowaperture > 0. To be used by the xserver shortly.


# 1.13 02-Jan-2009 miod

Accelerated routines for solid fills and inverted cursor.


# 1.12 01-Jan-2009 miod

Allow both overlay areas to be mmap()ed by userland in WSDISPLAYIO_MODE_MAPPED
mode.


# 1.11 29-Dec-2008 miod

Give ifb its own display type (be sure to make includes before rebuilding
wsconsctl)


# 1.10 29-Dec-2008 miod

Move ifb identification to its own routine. We can not simply have the ifb
probe win over vgafb, since one may configure a kernel with vgafb but without
ifb (especially slackers who forget to rerun config).


# 1.9 29-Dec-2008 miod

Low-hanging fruit: while the blitter is still an untamed beast, implement
eraserows as one low-style line of solid fills, and then as many copyrect
calls as necessary to fill the complete area.


# 1.8 28-Dec-2008 miod

Use acceleated operations for copycols, too.


# 1.7 28-Dec-2008 kettenis

Make blitter ``go the other way'' when scrolling down.


# 1.6 27-Dec-2008 miod

It turns out that parasites are caused by (some) pixel writes with the
high bit set; restrict ourselves to 7bpp operation. This brings back
text-mode color support.

joint work with kettenis@


# 1.5 27-Dec-2008 kettenis

Use hardware acceleration for scrolling and make sure we only use the low bit
of each pixel value. This avoids "overlay artifacts" and turns ifb(4) into
a usable console framebuffer.

help from miod@


# 1.4 27-Dec-2008 miod

Sync the sparc64 fb* api with the recent changes done on sparc.


# 1.3 27-Dec-2008 kettenis

Make sure we pick the right PCI BARs on Expert3D cards (which have an extra
BAR that we need to skip).

ok miod@


Revision tags: OPENBSD_4_4_BASE
# 1.2 23-Mar-2008 miod

typo; deraadt


# 1.1 23-Mar-2008 miod

Not-functional-enough driver for the Sun Expert3D cards, put in tree as an
incentive for further tinkering only; not for the faint of heart.


# 1.23 25-May-2020 jsg

change wsdisplay attribute type from long to uint32_t

miod explained it was initially a long as it was thought drivers may
need to allocate storage but in practice they don't need more than
32 bits for an attribute.

suggested and reviewed by miod@


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.22 20-Oct-2013 miod

Use C99 named initializers for struct wsdisplay_accessops fields.
No functional change.


Revision tags: OPENBSD_5_4_BASE
# 1.21 16-Jul-2013 miod

Enable jfb-style acceleration on XVR-600.


# 1.20 15-Jul-2013 miod

Use getpropstringA(), not getpropstring(), to get the card's name. This ensures
its value has not been clobbered when ifb_accel_identify() is invoked, and
restores textmode acceleration on Expert3D{,-Lite} and XVR-1200.
Broken since 1.17, sigh


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 20-Jul-2010 miod

opration -> operation


Revision tags: OPENBSD_4_7_BASE
# 1.18 05-Sep-2009 miod

Change the wsdisplay_emulops return types from void to int; emulops will now
return zero on success and nonzero on failure.
This commit only performs mechanical changes for the existing emulops to
always return zero.


Revision tags: OPENBSD_4_6_BASE
# 1.17 27-Jun-2009 miod

Stricter checks when deciding which acceleration code to use. Instead of
matching on pci id, and if no match is found, on pci subsystem id, match
on openfirmware device names (which amounts to a pci id AND subsystem id
exact match).

This makes XVR-500 cards (``bobcat'') run without acceleration. Which is
better than trying to use ``jfb'' acceleration and fail.

ok kettenis@


Revision tags: OPENBSD_4_5_BASE
# 1.16 21-Jan-2009 miod

Extend the acceleration code to handle jfb (XVR-600, XVR-1200) models, the
software only code is kept in case we can't reliably figure out what kind
of device we are facing.

Tested on XVR-1200 by Mattieu Baptiste, and on Expert3D-Lite by me.


# 1.15 19-Jan-2009 miod

The acceleration code would not work on XVR-600 and XVR-1200, so if it turns
out it doesn't work, fall back to dumb software routines until we know better.

Also, do not attach to the second head of the XVR-1200 yet, the second
node lacks basic frame buffer properties.

Tested by Mattieu Baptiste, thanks!


# 1.14 04-Jan-2009 miod

Allow registers to be mapped in WSDISPLAYIO_MODE_MAPPED mode, if
machdep.allowaperture > 0. To be used by the xserver shortly.


# 1.13 02-Jan-2009 miod

Accelerated routines for solid fills and inverted cursor.


# 1.12 01-Jan-2009 miod

Allow both overlay areas to be mmap()ed by userland in WSDISPLAYIO_MODE_MAPPED
mode.


# 1.11 29-Dec-2008 miod

Give ifb its own display type (be sure to make includes before rebuilding
wsconsctl)


# 1.10 29-Dec-2008 miod

Move ifb identification to its own routine. We can not simply have the ifb
probe win over vgafb, since one may configure a kernel with vgafb but without
ifb (especially slackers who forget to rerun config).


# 1.9 29-Dec-2008 miod

Low-hanging fruit: while the blitter is still an untamed beast, implement
eraserows as one low-style line of solid fills, and then as many copyrect
calls as necessary to fill the complete area.


# 1.8 28-Dec-2008 miod

Use acceleated operations for copycols, too.


# 1.7 28-Dec-2008 kettenis

Make blitter ``go the other way'' when scrolling down.


# 1.6 27-Dec-2008 miod

It turns out that parasites are caused by (some) pixel writes with the
high bit set; restrict ourselves to 7bpp operation. This brings back
text-mode color support.

joint work with kettenis@


# 1.5 27-Dec-2008 kettenis

Use hardware acceleration for scrolling and make sure we only use the low bit
of each pixel value. This avoids "overlay artifacts" and turns ifb(4) into
a usable console framebuffer.

help from miod@


# 1.4 27-Dec-2008 miod

Sync the sparc64 fb* api with the recent changes done on sparc.


# 1.3 27-Dec-2008 kettenis

Make sure we pick the right PCI BARs on Expert3D cards (which have an extra
BAR that we need to skip).

ok miod@


Revision tags: OPENBSD_4_4_BASE
# 1.2 23-Mar-2008 miod

typo; deraadt


# 1.1 23-Mar-2008 miod

Not-functional-enough driver for the Sun Expert3D cards, put in tree as an
incentive for further tinkering only; not for the faint of heart.


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.22 20-Oct-2013 miod

Use C99 named initializers for struct wsdisplay_accessops fields.
No functional change.


Revision tags: OPENBSD_5_4_BASE
# 1.21 16-Jul-2013 miod

Enable jfb-style acceleration on XVR-600.


# 1.20 15-Jul-2013 miod

Use getpropstringA(), not getpropstring(), to get the card's name. This ensures
its value has not been clobbered when ifb_accel_identify() is invoked, and
restores textmode acceleration on Expert3D{,-Lite} and XVR-1200.
Broken since 1.17, sigh


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 20-Jul-2010 miod

opration -> operation


Revision tags: OPENBSD_4_7_BASE
# 1.18 05-Sep-2009 miod

Change the wsdisplay_emulops return types from void to int; emulops will now
return zero on success and nonzero on failure.
This commit only performs mechanical changes for the existing emulops to
always return zero.


Revision tags: OPENBSD_4_6_BASE
# 1.17 27-Jun-2009 miod

Stricter checks when deciding which acceleration code to use. Instead of
matching on pci id, and if no match is found, on pci subsystem id, match
on openfirmware device names (which amounts to a pci id AND subsystem id
exact match).

This makes XVR-500 cards (``bobcat'') run without acceleration. Which is
better than trying to use ``jfb'' acceleration and fail.

ok kettenis@


Revision tags: OPENBSD_4_5_BASE
# 1.16 21-Jan-2009 miod

Extend the acceleration code to handle jfb (XVR-600, XVR-1200) models, the
software only code is kept in case we can't reliably figure out what kind
of device we are facing.

Tested on XVR-1200 by Mattieu Baptiste, and on Expert3D-Lite by me.


# 1.15 19-Jan-2009 miod

The acceleration code would not work on XVR-600 and XVR-1200, so if it turns
out it doesn't work, fall back to dumb software routines until we know better.

Also, do not attach to the second head of the XVR-1200 yet, the second
node lacks basic frame buffer properties.

Tested by Mattieu Baptiste, thanks!


# 1.14 04-Jan-2009 miod

Allow registers to be mapped in WSDISPLAYIO_MODE_MAPPED mode, if
machdep.allowaperture > 0. To be used by the xserver shortly.


# 1.13 02-Jan-2009 miod

Accelerated routines for solid fills and inverted cursor.


# 1.12 01-Jan-2009 miod

Allow both overlay areas to be mmap()ed by userland in WSDISPLAYIO_MODE_MAPPED
mode.


# 1.11 29-Dec-2008 miod

Give ifb its own display type (be sure to make includes before rebuilding
wsconsctl)


# 1.10 29-Dec-2008 miod

Move ifb identification to its own routine. We can not simply have the ifb
probe win over vgafb, since one may configure a kernel with vgafb but without
ifb (especially slackers who forget to rerun config).


# 1.9 29-Dec-2008 miod

Low-hanging fruit: while the blitter is still an untamed beast, implement
eraserows as one low-style line of solid fills, and then as many copyrect
calls as necessary to fill the complete area.


# 1.8 28-Dec-2008 miod

Use acceleated operations for copycols, too.


# 1.7 28-Dec-2008 kettenis

Make blitter ``go the other way'' when scrolling down.


# 1.6 27-Dec-2008 miod

It turns out that parasites are caused by (some) pixel writes with the
high bit set; restrict ourselves to 7bpp operation. This brings back
text-mode color support.

joint work with kettenis@


# 1.5 27-Dec-2008 kettenis

Use hardware acceleration for scrolling and make sure we only use the low bit
of each pixel value. This avoids "overlay artifacts" and turns ifb(4) into
a usable console framebuffer.

help from miod@


# 1.4 27-Dec-2008 miod

Sync the sparc64 fb* api with the recent changes done on sparc.


# 1.3 27-Dec-2008 kettenis

Make sure we pick the right PCI BARs on Expert3D cards (which have an extra
BAR that we need to skip).

ok miod@


Revision tags: OPENBSD_4_4_BASE
# 1.2 23-Mar-2008 miod

typo; deraadt


# 1.1 23-Mar-2008 miod

Not-functional-enough driver for the Sun Expert3D cards, put in tree as an
incentive for further tinkering only; not for the faint of heart.