History log of /src/sys/dev/pci/pm2fb.c |
Revision | | Date | Author | Comments |
1.37 |
| 04-Jun-2025 |
macallan | enable font loading
|
1.36 |
| 04-Jun-2025 |
macallan | make pipeline overrun protection in pm2fb_putchar_aa() actually work. Doh.
|
1.35 |
| 25-Sep-2022 |
thorpej | branches: 1.35.10; Remove unnecessary include of <sys/malloc.h>.
|
1.34 |
| 19-Dec-2021 |
andvar | s/forground/foreground/ in comments.
|
1.33 |
| 07-Aug-2021 |
thorpej | Merge thorpej-cfargs2.
|
1.32 |
| 24-Apr-2021 |
thorpej | branches: 1.32.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.31 |
| 22-Dec-2019 |
thorpej | branches: 1.31.10; Cleanup i2c bus acquire / release, centralizing all of the logic into iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks no longer need to be provided by back-end controller drivers (only if they need special handling, e.g. powering on the i2c controller). This results in the removal of a bunch of rendundant code from each back-end controller driver.
Assert that we are not in hard interrupt context in iic_acquire_bus(), iic_exec(), and iic_release_bus().
|
1.30 |
| 03-Sep-2018 |
riastradh | Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
1.29 |
| 16-Dec-2016 |
macallan | branches: 1.29.14; 1.29.16; use hardware rendering for anti-aliased fonts
|
1.28 |
| 16-Sep-2015 |
macallan | branches: 1.28.2; prop_dictionary_get_bool() doesn't return FALSE if the property doesn't exist, so initialize things first. No more console stealing on sparc64.
|
1.27 |
| 17-Dec-2014 |
macallan | - add support for Permedia 2 - make this work on alpha from Naruaki Etomi
|
1.26 |
| 09-Dec-2014 |
macallan | begin to address PR 49229: - program aperture endianness to match host, now xf86-video-wsfb works as expected - properly restore the colour map when er-entering terminal emulation
|
1.25 |
| 09-Oct-2013 |
macallan | branches: 1.25.6; support WSDISPLAYIO_GET_FBINFO
|
1.24 |
| 15-Sep-2013 |
martin | Remove/comment out unused variables, initialize a few others.
|
1.23 |
| 30-Jul-2013 |
macallan | avoid uninitialized use of defattr
|
1.22 |
| 28-Jun-2013 |
christos | branches: 1.22.2; this could have never worked. Cleanup bogus code. http://m00nbsd.net/ae123a9bae03f7dde5c6d654412daf5a.html
|
1.21 |
| 06-Oct-2012 |
macallan | don't crash when we're not the console
|
1.20 |
| 04-Oct-2012 |
macallan | support underlined characters while there, make sure the glyph cache doesn't exceed 2048 lines since that's the drawing engine's limit
|
1.19 |
| 13-Sep-2012 |
macallan | make video modes work that need a screen width which isn't directly supported by the rendering engine - just use the next higher supported stride
|
1.18 |
| 13-Sep-2012 |
macallan | add mode setting support While there, don't pretend to support the Permedia2 non-V - I don't have the hardware and it has never been tested in the first place. The only hardware this has been tested on is a TechSource Raptor GFX 8P / Sun PGX32 which happens to be a Permedia2V with Sun firmware.
|
1.17 |
| 12-Sep-2012 |
macallan | support anti-aliased fonts in 8 bit while there, fix pm2fb_bitblt() packed mode, for real this time TODO: - use packed mode when uploading glyphs - let the hardware do the alpha blending if possible - mode setting
|
1.16 |
| 05-Sep-2012 |
macallan | branches: 1.16.2; fix horizontal scrolling in 8bit, while there use an R3G3B2 palette
|
1.15 |
| 05-Sep-2012 |
macallan | some preparations for mode setting support and such: - DDC2 support, so far only used for WSDISPLAYIO_GET_EDID - fix 8 bit support, use packed mode for some extra speed - pm2 and pm2v have different DACs, deal with it where appropriate
|
1.14 |
| 23-May-2012 |
macallan | first step to fix PR 46461 - don't jump through a NULL pointer when we're not the console but the firmware set up the graphics hardware anyway
|
1.13 |
| 13-Mar-2012 |
elad | Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
1.12 |
| 30-Jan-2012 |
drochner | Use pci_aprint_devinfo(9) instead of pci_devinfo+aprint_{normal,naive} where it looks straightforward, and pci_aprint_devinfo_fancy in a few others where drivers want to supply their own device names instead of the pcidevs generated one. More complicated cases, where names are composed at runtime, are left alone for now. It certainly makes sense to simplify the drivers here rather than inventing a catch-all API. This should serve as as example for new drivers, and also ensure consistent output in the AB_QUIET ("boot -q") case. Also, it avoids excessive stack usage where drivers attach child devices because the buffer for the device name is not kept on the local stack anymore.
|
1.11 |
| 11-Jan-2012 |
macallan | use rasops_init(0, 0)
|
1.10 |
| 24-Nov-2011 |
macallan | branches: 1.10.2; fix debug build
|
1.9 |
| 24-Nov-2011 |
macallan | #include "opt_pm2fb.h"
|
1.8 |
| 24-Nov-2011 |
macallan | support DDC2, so far only for WSDISPLAYIO_GET_EDID
|
1.7 |
| 22-Jan-2011 |
cegger | branches: 1.7.4; Implement new WSDISPLAYIO_GET_BUSID ioctl. It returns the bus id and allows userland (like Xorg) to create mapping of ttyE? and bus id. For now only PCI is implemented.
First discussed with macallan@ then public on tech-kern@ and tech-x11@
|
1.6 |
| 16-Dec-2010 |
cegger | branches: 1.6.2; 1.6.4; ioctl: KNF switch-case, remove useless brackets
|
1.5 |
| 13-Nov-2010 |
uebayasi | Don't pull in the whole uvm(9) API to access only PAGE_SIZE and some other constants. These are provided by sys/param.h now.
|
1.4 |
| 04-May-2010 |
macallan | use alternate font if available ( for autogenerated box drawing characters )
|
1.3 |
| 16-Mar-2010 |
macallan | Implement character drawing by hardware so we don't need to map the framebuffer anymore. Also do some cleanup, remove no longer relevant debugging code etc.
|
1.2 |
| 28-Oct-2009 |
macallan | branches: 1.2.2; 1.2.4; 1.2.6; fix occasionally wrong colours in rectangle fills
|
1.1 |
| 28-Oct-2009 |
macallan | A driver for the Permedia 2 graphics processor, so far it's been tested only on sparc64 with a Sun PGX32 / TechSource Raptor GFX 8P So far it accelerates block copies, rectangle fills and the cursor, it supports the usual wsdisplay / vcons stuff. TODO: - character drawing by hardware so we don't need to map the framebuffer - DDC2 support - mode setting This driver still relies on the firmware to set up graphics modes etc. so it won't work on x86 ( or non-OpenFirmware for that matter ) unless you use the VESA BIOS to set up graphics and pass the right properties ( width, height etc. ) to the driver. For the same reason it will work only if it's the OpenFirmware console.
|
1.2.6.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.2.6.1 |
| 30-May-2010 |
rmind | sync with head
|
1.2.4.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.2.4.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.2.4.1 |
| 28-Oct-2009 |
yamt | file pm2fb.c was added on branch yamt-nfs-mp on 2010-03-11 15:03:59 +0000
|
1.2.2.2 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.2.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.6.4.1 |
| 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.6.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.7.4.3 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.7.4.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.7.4.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.10.2.3 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
1.10.2.2 |
| 05-Apr-2012 |
mrg | sync to latest -current.
|
1.10.2.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.16.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.16.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.16.2.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.22.2.2 |
| 18-May-2014 |
rmind | sync with head
|
1.22.2.1 |
| 28-Aug-2013 |
rmind | sync with head
|
1.25.6.3 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.25.6.2 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.25.6.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.28.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.29.16.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.29.16.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.29.14.1 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.31.10.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.32.8.1 |
| 04-Aug-2021 |
thorpej | Adapt to CFARGS().
|
1.35.10.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|