Home | History | Annotate | Download | only in gio
History log of /src/sys/arch/sgimips/gio/newport.c
RevisionDateAuthorComments
 1.23  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.22  24-Apr-2021  thorpej branches: 1.22.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.21  21-Nov-2020  thorpej branches: 1.21.2;
malloc(9) -> kmem(9)
 1.20  10-May-2019  macallan branches: 1.20.10;
general overhaul, in no particular order:
- use MIPS_PHYS_TO_KSEG1()
- get rid of duplicated rasops_allocattr() and _mapchar() methods
- use rasops_init()
- support fonts that aren't 8x16
- use fastclear mode for rectangle fills
- don't mess with XMAP9's config register
- initialize all 32 XMAP9 mode registers, just in case
- make newport_fill_rectangle() use x, y, wi, he like everyone else
- use R3G3B2 palette in preparation for alpha font support
 1.19  25-Aug-2015  macallan branches: 1.19.18;
- pass the right address to bus_space_mmap() so this works on N32 kernels
- don't mess with XMAP9 when switching to graphics mode
 1.18  02-Jun-2014  macallan branches: 1.18.4;
more __unused()
 1.17  11-Jan-2012  macallan branches: 1.17.6; 1.17.20;
adjust for wsfont_find() change
 1.16  11-Jan-2012  macallan use rasops_init(0,0)
 1.15  12-May-2009  macallan branches: 1.15.12; 1.15.16;
remove leftover debug code
 1.14  04-Mar-2009  macallan No need to have two pre-defined screen types - just adapt to whatever video
mode we find. Also, redraw screen when X exits.
TODO: find out why characters are drawn upside down, for some bizarre reason
this happens right after exiting X but the last line is normal.
 1.13  13-Feb-2009  macallan Don't bother drawing a cursor until wsdisplay attaches. This works around
the deadlock I've seen with the previous version.
While there do some KNF policing.
 1.12  12-Feb-2009  macallan Become a good vcons citizen.
Also, don't use the cursor sprite as text cursor - it's not worth the pain and
the sprite doesn't have an invert-background plane either so the cursor wasn't
transparent.
Instead blit the cursor using the appropriate ROPs. This way we get rid of the
cursor misplacement problem as well.
While there also use device_t.
TODO: arbitrary font sizes, cleanup, support for mapping all blitter registers
so we can use them from X.
 1.11  10-Feb-2009  macallan A bunch of bugfixes:
- set blitter direction appropriately so scrolling downwards works now
- remove a bunch of false +1 so we only copy/erase what we really need to
- slightly change the logic for the cursor sprite offset so it works on this
Indy ( I think what matters is VC2 revision 0 )
TODO: virtual consoles, fonts wider than 8 pixels
 1.10  04-Mar-2007  christos branches: 1.10.44; 1.10.52; 1.10.54; 1.10.58; 1.10.62;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.9  29-Dec-2006  rumble branches: 1.9.2;
IP12 (and perhaps other systems) appear to be buggy and incapable of
reliably supporting badaddr(). False negatives appear to occur
approximately 1.8 percent of the time, although neither false positives
nor consecutive false negatives occur. We take advantage of the latter
property and always use a wrapper that makes multiple checks.

My IP12 no longer sees occasional ghost devices and related panics during
boot.
 1.8  28-Dec-2006  rumble Do not rely on the Product ID Word to be 0x04 since there is no such
thing for graphics options. Since we're removing this, ensure that we can
read the probe registers before proceeding.
 1.7  12-Apr-2006  jmmv branches: 1.7.8;
Add an extra cookie to the ioctl and mmap wsdisplay accessops that points
to the screen on which they are being called. The driver cannot guess
this by itself but it is needed to implement, at least, the getwschar and
putwschar functions in the correct place. There are no functional changes
yet.

Tested on i386 (vga, vga_raster, machfb, vesafb), macppc and sparc64.
Suggested and reviewed by macallan@.
 1.6  11-Dec-2005  christos branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; 1.6.12;
merge ktrace-lwp.
 1.5  07-Feb-2004  sekiya branches: 1.5.4; 1.5.18;
More newport driver tweaks:

* detect and store vc2 revision. This is (likely) the important factor in
determining the proper cursor offset, so add a bit of logic that does the
right thing on my revision 0 vc2. This will have to be determined
empirically, revision by revision.
* take a stab at detecting framebuffer depth. SGI does it quite differently,
but their algorithm doesn't work, so we'll do it along the same lines as
linux.
* implement newport_mmap() for use by X. The necessary xsrc commits have been
made (with the notable exception of the config/cf changes, which probably
shouldn't go in until 4.4.0 has been imported).
 1.4  26-Jan-2004  lonewolf Remove unused dc_screens from the softc, the driver does not support multiple
screens.
 1.3  26-Jan-2004  sekiya Slight modifications to newport driver:

* Add resolution and depth variables to softc (for use in X driver, although
depth detection is currently problematic),
* Store more information about various chip revisions,
* Implement ioctls to help the X driver detect device presence and geometry.
 1.2  22-Jan-2004  lonewolf Correctly read the board revision.
 1.1  15-Dec-2003  lonewolf Support for SGI NG1 ("newport") graphics controller.
 1.5.18.3  03-Sep-2007  yamt sync with head.
 1.5.18.2  30-Dec-2006  yamt sync with head.
 1.5.18.1  21-Jun-2006  yamt sync with head.
 1.5.4.5  13-Jan-2005  skrll Adapt to branch
 1.5.4.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.4.3  18-Sep-2004  skrll Sync with HEAD.
 1.5.4.2  03-Aug-2004  skrll Sync with HEAD
 1.5.4.1  07-Feb-2004  skrll file newport.c was added on branch ktrace-lwp on 2004-08-03 10:40:06 +0000
 1.6.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.6.10.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.6.8.1  24-May-2006  yamt sync with head.
 1.6.6.1  22-Apr-2006  simonb Sync with head.
 1.6.4.1  09-Sep-2006  rpaulo sync with head
 1.7.8.1  12-Jan-2007  ad Sync with head.
 1.9.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.10.62.1  29-Dec-2010  matt Merge changes from netbsd-5.
 1.10.58.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.10.54.5  26-Sep-2009  snj Pull up following revision(s) (requested by macallan in ticket #977):
sys/arch/sgimips/gio/newport.c: revision 1.15
remove leftover debug code
 1.10.54.4  26-Sep-2009  snj Pull up following revision(s) (requested by macallan in ticket #1009):
sys/arch/sgimips/gio/newport.c: revision 1.14
No need to have two pre-defined screen types - just adapt to whatever
video mode we find. Also, redraw screen when X exits.
TODO: find out why characters are drawn upside down, for some bizarre
reason this happens right after exiting X but the last line is normal.
 1.10.54.3  26-Sep-2009  snj Pull up following revision(s) (requested by macallan in ticket #974):
sys/arch/sgimips/gio/newport.c: revision 1.13
Don't bother drawing a cursor until wsdisplay attaches. This works
around the deadlock I've seen with the previous version.
While there do some KNF policing.
 1.10.54.2  26-Sep-2009  snj Pull up following revision(s) (requested by macallan in ticket #981):
sys/arch/sgimips/gio/files.gio: revision 1.10
sys/arch/sgimips/gio/newport.c: revision 1.12
Become a good vcons citizen.
Also, don't use the cursor sprite as text cursor - it's not worth the
pain and the sprite doesn't have an invert-background plane either so
the cursor wasn't transparent.
Instead blit the cursor using the appropriate ROPs. This way we get
rid of the cursor misplacement problem as well.
While there also use device_t.
TODO: arbitrary font sizes, cleanup, support for mapping all blitter
registers so we can use them from X.
 1.10.54.1  26-Sep-2009  snj Pull up following revision(s) (requested by macallan in ticket #963):
sys/arch/sgimips/gio/newport.c: revision 1.11
A bunch of bugfixes:
- set blitter direction appropriately so scrolling downwards works now
- remove a bunch of false +1 so we only copy/erase what we really need
to
- slightly change the logic for the cursor sprite offset so it works
on this Indy ( I think what matters is VC2 revision 0 )
TODO: virtual consoles, fonts wider than 8 pixels
 1.10.52.2  28-Apr-2009  skrll Sync with HEAD.
 1.10.52.1  03-Mar-2009  skrll Sync with HEAD.
 1.10.44.2  16-May-2009  yamt sync with head
 1.10.44.1  04-May-2009  yamt sync with head.
 1.15.16.1  18-Feb-2012  mrg merge to -current.
 1.15.12.1  17-Apr-2012  yamt sync with head
 1.17.20.1  10-Aug-2014  tls Rebase.
 1.17.6.2  03-Dec-2017  jdolecek update from HEAD
 1.17.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.4.1  22-Sep-2015  skrll Sync with HEAD
 1.19.18.1  10-Jun-2019  christos Sync with HEAD
 1.20.10.1  14-Dec-2020  thorpej Sync w/ HEAD.
 1.21.2.1  21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.22.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed