History log of /src/sys/arch/arm/iomd/vidcvideo.c |
Revision | | Date | Author | Comments |
1.51 |
| 05-Jan-2025 |
andvar | Fix some typos in comments.
|
1.50 |
| 27-Sep-2022 |
skrll | Remove unnecessary sys/malloc.h include
|
1.49 |
| 26-Dec-2021 |
andvar | fix various typos, mainly in comments.
|
1.48 |
| 20-Aug-2021 |
andvar | fix various typos in comments and log messages.
|
1.47 |
| 07-Aug-2021 |
thorpej | Merge thorpej-cfargs2.
|
1.46 |
| 24-Apr-2021 |
thorpej | branches: 1.46.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.45 |
| 24-Jan-2018 |
riastradh | branches: 1.45.18; Fix integer overflows noted by Silvio Cesare of InfoSect.
Someone^TM should name these idioms so we can eliminate this class of copypasta bug.
|
1.44 |
| 21-Jan-2014 |
christos | tuck in variables that are only used in the #if 0 block
|
1.43 |
| 14-May-2012 |
skrll | branches: 1.43.2; 1.43.4; device_t/softc split struct device * -> device_t struct cfdata * -> cfdata_t Use aprint*
|
1.42 |
| 10-May-2012 |
skrll | u_int*_t -> uint*_t
|
1.41 |
| 14-Feb-2012 |
skrll | Whitespace in previous.
Ride previous releng OK.
|
1.40 |
| 14-Feb-2012 |
skrll | Pass RI_NO_AUTO to rasops_init so that rasops doesn't attempt to allocate memory as we're too early in kernel startup for this.
My A7000 boots now.
OK releng. ack 3 nak 0.
|
1.39 |
| 01-Jul-2011 |
dyoung | branches: 1.39.2; 1.39.6; #include <sys/bus.h> instead of <machine/bus.h>.
|
1.38 |
| 21-Oct-2009 |
snj | Remove 3rd and 4th clauses. OK'd by Tohru Nishimura and Reinoud Zandijk (copyright holders).
|
1.37 |
| 18-Mar-2009 |
cegger | bzero -> memset
|
1.36 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.35 |
| 29-Apr-2008 |
matt | branches: 1.35.8; 1.35.14; Change IPL_LEVELS to NIPL. current_spl_level is dead.
|
1.34 |
| 29-Feb-2008 |
chris | branches: 1.34.2; 1.34.4; Misc updates to hopefully improve vidcvideo console usability: * add virtual consoles by using wsdisplay_vcons * make use of generic scrollback support for consoles * enable colour support for vidcvideo consoles * use the default NetBSD font, rather than picking a sony one * make kernel output green, so it's obvious.
This was tested at 800x600 in 8bpp on an A7000+ and 2MB VRAM RiscPC.
To actually benefit from these changes wscons=YES needs to be added to your rc.conf
|
1.33 |
| 05-Feb-2008 |
chris | branches: 1.33.2; 1.33.6; Fix up vidcvideo to be useable on a Write-Back processor, IE StrongArm, during boot and ddb.
This is done by routing all requests for changes to the screen into one function. The function can then determine if interrupts are enabled or disabled, and either flush them to screen immediately or set them up for the next flyback irq.
Also if we have nothing to do, disable the flyback irq, and re-enable when we have something to do. This avoids taking an interrupt for every vsync, IE 50-75Hz, just to do nothing.
This makes ddb usable and the boot dmesg visable with an SA.
lmbench now reports that the A7000+ has a 14Mhz CPU, rather than 4Mhz (it's actually 48Mhz)
Tested on SA Risc-PC and A7000+
|
1.32 |
| 03-Feb-2008 |
chris | Use memmove rather than memcpy when moving rows around the framebuffer.
This fixes a problem where scrolling down fills the whole screen with the first line on screen.
|
1.31 |
| 04-Mar-2007 |
christos | branches: 1.31.16; 1.31.20; 1.31.22; 1.31.28; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.30 |
| 24-Jan-2007 |
hubertf | branches: 1.30.2; Remove duplicate #includes, patch contributed in private mail by Slava Semushin <slava.semushin@gmail.com>.
To verify that no nasty side effects of duplicate includes (or their removal) have an effect here, I've compiled an i386/ALL kernel with and without the patch, and the only difference in the resulting .o files was in shifted line numbers in some assert() calls. The comparison of the .o files was based on the output of "objdump -D".
Thanks to martin@ for the input on testing.
|
1.29 |
| 21-Oct-2006 |
bjh21 | Remove cruft left over from when this code was copied from some TURBOchannel framebuffer or other.
|
1.28 |
| 19-Aug-2006 |
bjh21 | branches: 1.28.2; 1.28.4; Arrange things so that if MONITOR isn't defined in the kernel configration, we use the standard mode list from videomode.c rather than one generated by makemodes.awk. This is less useful than it might be since without a useful frame rate from the bootloader we're likely to end up choosing a screen mode that's either flickery or too fast for the monitor (or DRAM bandwidth).
|
1.27 |
| 17-Aug-2006 |
bjh21 | Switch to using the MI struct videomode for storing VIDC video timings. struct videomode doesn't have a way to record border widths (though I wonder if VESA's "margins" are the same thing), so we now just treat them as zero. Tested on my NC, which still seems to be working.
|
1.26 |
| 05-Aug-2006 |
bjh21 | bcopy -> memcpy bzero -> memset
|
1.25 |
| 05-Aug-2006 |
bjh21 | ANSIfy, un-__P, and generally KNF.
|
1.24 |
| 25-Apr-2006 |
snj | s/allready/already/
|
1.23 |
| 15-Apr-2006 |
jmmv | Remove the getwschar and putwschar accessops from wsdisplay drivers as requested by uwe@. These were wrong because they were receiving an emulcookie yet they were accessops (thus having to receive an accesscookie). Instead, just handle the WSDISPLAYIO_{GET,PUT}WSCHAR ioctls from the driver's ioctl accessop.
As this reduces the amount of code needed to handle these operations to two small functions in each driver, remove the WSDISPLAY_CHARFUNCS kernel option.
Reviewed by, at least, uwe@ and macallan@. No objections in tech-kern@.
|
1.22 |
| 12-Apr-2006 |
jmmv | 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.21 |
| 11-Dec-2005 |
christos | branches: 1.21.4; 1.21.6; 1.21.8; 1.21.10; 1.21.12; merge ktrace-lwp.
|
1.20 |
| 13-Nov-2003 |
chs | branches: 1.20.16; eliminate uvm_useracc() in favor of checking the return value of copyin() or copyout().
uvm_useracc() tells us whether the mapping permissions allow access to the desired part of an address space, and many callers assume that this is the same as knowing whether an attempt to access that part of the address space will succeed. however, access to user space can fail for reasons other than insufficient permission, most notably that paging in any non-resident data can fail due to i/o errors. most of the callers of uvm_useracc() make the above incorrect assumption. the rest are all misguided optimizations, which optimize for the case where an operation will fail. we'd rather optimize for operations succeeding, in which case we should just attempt the access and handle failures due to insufficient permissions the same way we handle i/o errors. since there appear to be no good uses of uvm_useracc(), we'll just remove it.
|
1.19 |
| 07-Nov-2003 |
he | Suppress apparently-bogus -Wunitialized warnings, the compiler does not detect that set / use occur under equal conditions in following if() statements.
|
1.18 |
| 24-Oct-2003 |
chris | Don't pass NULL as an integer.
|
1.17 |
| 06-May-2003 |
reinoud | branches: 1.17.2; Some entries were missing so i'd better add them for completion.
|
1.16 |
| 02-Oct-2002 |
thorpej | Add trailing ; to CFATTACH_DECL
|
1.15 |
| 01-Oct-2002 |
thorpej | Use CFATTACH_DECL().
|
1.14 |
| 06-Aug-2002 |
itojun | integer overflow. from silvio@qualys.com
|
1.13 |
| 04-Jul-2002 |
junyoung | alloc_attr -> allocattr
Approved by Matthias Drochner.
|
1.12 |
| 19-Jun-2002 |
bjh21 | Move over to using a 6:5:5 R:G:B palette in 16-bit display modes, and abstract the palette generation to work with arbitrary numbers of bits. This allows X to work after a fashion, since it tries to put the VIDC into a 6:5:5 mode itself (which we ignore). Anything that actually tries to take advantage of the DirectColor visual it offers will still be screwed, but I hope such applications are rare.
|
1.11 |
| 03-Apr-2002 |
reinoud | branches: 1.11.2; 1.11.4; Fix the mmap'ing of the screen memory. The way it was implemented completely sucked... I wonder how it was even working (....)
Thanks to Jason for pointing out the problem.
|
1.10 |
| 24-Mar-2002 |
thorpej | * arm_byte_to_page() -> arm_btop() * arm_page_to_byte() -> arm_ptob()
|
1.9 |
| 23-Mar-2002 |
reinoud | Big rototil of the vidcvideo code to cleanup illogical structures and to incorporate write back support for processors not having a write through cache.
The current fb_devconfig structure now really holds the device's configuration and the softc really only holds the attachment information. This used to be mixed giving rise to weird stuctures and cross references.
The number of vertical syncs before the video memory writeback is triggered is configurable ... default is to wait for 5 Vsync .. aprox minumum 10 times a second, but more likely in the order of 12,5 times a second. When printing is in progress no write back is performed... only after the waiting time. The reasoning behind this is that as long as the screen is printed too the cache will be purged of dirty data anyway due to the processing and new screen memory useage.
|
1.8 |
| 23-Mar-2002 |
reinoud | Fix up typos.
|
1.7 |
| 23-Mar-2002 |
reinoud | Fix typo.
|
1.6 |
| 23-Mar-2002 |
reinoud | Allthough this patch doesn't look that much it adds a few things that were on the port-acorn32's TODO list for quite some time :
- when the serial console is selected, don't exclude the screen alltogether; currently the keyboard is still not attached but that might be a configuration problem in the GENERIC console or a failure to explicitly connect to a wsmux. This needs further investigation.
- create a framework for the display memory writeback on vsync for StrongARM processors since they don't have a write-trough cache. This is to solve the lazy screen update that is very evident in single user mode on these processors; the cache isn't flushed/written back that often and parts of the screen can thus be resident in the cache but not written out to memory yet.
- clean up some loose ends in the code.
|
1.5 |
| 17-Mar-2002 |
atatat | Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for indicating an unhandled "command". ERESTART is -1, which can lead to confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been placed at -4. No ioctl code should now return -1 anywhere. The ioctl() system call is now properly restartable.
|
1.4 |
| 13-Mar-2002 |
ad | Reorganise the wsfont stuff slightly so that multiple display adapters with different bit/byte order requirements can co-exist happily.
|
1.3 |
| 18-Feb-2002 |
bjh21 | Add a prototype for vidcvideo_config_wscons().
|
1.2 |
| 27-Nov-2001 |
thorpej | branches: 1.2.2; Use <machine/intr.h> rather than <machine/irqhandler.h>
|
1.1 |
| 05-Oct-2001 |
reinoud | branches: 1.1.4; Initial commit of the splitting off of arch/acorn32 from arch/arm32.
The IOMD/VIDC combination is now moved to arch/arm/iomd together. These files still need a lot of cleaning up :( .... esp. the RC7500 support that is still dormant in it; this needs either to be removed or split out for RC7500's ``VIDC'' video/audio variant.
Apart from the RC7500 support wich is still in arch/arm32 the iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.
This split still uses some small parts of arch/arm32 .... those are the MI parts that haven't been moved yet.
RiscPC/A7000 have been tested and confirmed to build as should NC.
|
1.1.4.8 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.1.4.7 |
| 13-Aug-2002 |
nathanw | Catch up to -current.
|
1.1.4.6 |
| 01-Aug-2002 |
nathanw | Catch up to -current.
|
1.1.4.5 |
| 17-Apr-2002 |
nathanw | Catch up to -current.
|
1.1.4.4 |
| 01-Apr-2002 |
nathanw | Catch up to -current. (CVS: It's not just a program. It's an adventure!)
|
1.1.4.3 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.1.4.2 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.1.4.1 |
| 05-Oct-2001 |
nathanw | file vidcvideo.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
|
1.2.2.6 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.2.2.5 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.2.2.4 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.2.2.3 |
| 16-Mar-2002 |
jdolecek | Catch up with -current.
|
1.2.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.2.2.1 |
| 27-Nov-2001 |
thorpej | file vidcvideo.c was added on branch kqueue on 2002-01-10 19:38:21 +0000
|
1.11.4.2 |
| 07-Aug-2002 |
lukem | Pull up revision 1.14 (requested by itojun in ticket #616): integer overflow. from silvio@qualys.com
|
1.11.4.1 |
| 21-Jun-2002 |
lukem | Pull up revision 1.12 (requested by bjh21 in ticket #328): Move over to using a 6:5:5 R:G:B palette in 16-bit display modes, and abstract the palette generation to work with arbitrary numbers of bits. This allows X to work after a fashion, since it tries to put the VIDC into a 6:5:5 mode itself (which we ignore). Anything that actually tries to take advantage of the DirectColor visual it offers will still be screwed, but I hope such applications are rare.
|
1.11.2.2 |
| 30-Aug-2002 |
gehenna | catch up with -current.
|
1.11.2.1 |
| 16-Jul-2002 |
gehenna | catch up with -current.
|
1.17.2.4 |
| 21-Nov-2004 |
skrll | Adapt to branch
|
1.17.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.17.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.17.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.20.16.7 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.20.16.6 |
| 11-Feb-2008 |
yamt | sync with head.
|
1.20.16.5 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.20.16.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.20.16.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.20.16.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.20.16.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.21.12.1 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.21.10.2 |
| 11-May-2006 |
elad | sync with head
|
1.21.10.1 |
| 19-Apr-2006 |
elad | sync with head - hopefully this will work
|
1.21.8.3 |
| 03-Sep-2006 |
yamt | sync with head.
|
1.21.8.2 |
| 11-Aug-2006 |
yamt | sync with head
|
1.21.8.1 |
| 24-May-2006 |
yamt | sync with head.
|
1.21.6.2 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.21.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.21.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.28.4.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.28.2.2 |
| 01-Feb-2007 |
ad | Sync with head.
|
1.28.2.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.30.2.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.31.28.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.31.22.1 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.31.20.4 |
| 21-Mar-2008 |
chris | Sync with head.
|
1.31.20.3 |
| 09-Feb-2008 |
chris | Fixup vidcvideo, current_spl_level is replaced with current_ipl_level.
|
1.31.20.2 |
| 09-Feb-2008 |
chris | Sync to HEAD.
|
1.31.20.1 |
| 09-Feb-2008 |
chris | Add initial reworking of acorn32 to use new interrupt code.
Note that cats probably won't work currently as acorn32 changed the way that the pic is registered, it has to provide the irq lines as on acorn32 we attach the iomd after we need to register irqs for the pioc. So we setup the irqs for iomd before malloc etc are available. This needs to be fixed.
More work is still needed to update most of the podulebus drivers. First I need to add podulebus wrapper for interrupts that handles the maskaddr and maskbits. Exposing them to the common irq code is wrong.
|
1.31.16.1 |
| 28-Feb-2008 |
rjs | Sync with HEAD.
|
1.33.6.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.33.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.33.2.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.34.4.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.34.4.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.34.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.34.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.35.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.35.8.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.39.6.2 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
1.39.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.39.2.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.39.2.2 |
| 23-May-2012 |
yamt | sync with head.
|
1.39.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.43.4.1 |
| 18-May-2014 |
rmind | sync with head
|
1.43.2.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.45.18.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.46.8.1 |
| 04-Aug-2021 |
thorpej | Adapt to CFARGS().
|