Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/agp.c
RevisionDateAuthorComments
 1.88  22-May-2022  andvar fix various small typos, mainly in comments.
 1.87  10-Nov-2019  chs in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.86  15-Oct-2019  msaitoh Use unsigned to avoid undefined behavior in agpattach(). Found by kUBSan.
 1.85  27-Aug-2018  riastradh branches: 1.85.6;
Fill struct agp_info::ai_devid with the PCI id.
 1.84  27-Feb-2017  msaitoh branches: 1.84.12; 1.84.14;
Decode AGP capability.
 1.83  25-Jul-2014  dholland branches: 1.83.4; 1.83.8; 1.83.12;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.82  12-Jun-2014  riastradh Extend agp_generic_bind_memory with bounds to check.

New routine agp_generic_bind_memory_bounded.

Use it in agp_i810 to replace the pile of code I wrote as a
replacement which is apparently broken.
 1.81  16-Mar-2014  dholland branches: 1.81.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.80  06-Apr-2012  plunky branches: 1.80.2; 1.80.4;
device_pmf_is_registered() is not required
 1.79  04-Apr-2011  dyoung branches: 1.79.4; 1.79.8;
Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9),
pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match
predicate passed to pciide_compat_intr_establish() should ever modify
their pci_attach_args argument, so make their pci_attach_args arguments
const and deal with the fallout throughout the kernel.

For the most part, these changes add a 'const' where there was no
'const' before, however, some drivers and MD code used to modify
pci_attach_args. Now those drivers either copy their pci_attach_args
and modify the copy, or refrain from modifying pci_attach_args:

Xen: according to Manuel Bouyer, writing to pci_attach_args in
pci_intr_map() was a leftover from Xen 2. Probably a bug. I
stopped writing it. I have not tested this change.

siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args.
Probably a bug. I use a temporary variable. I have not tested this
change.

slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args.
Probably a bug. Use a local pci_attach_args. I have not tested
this change.

viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the
caller's pci_attach_args. Probably a bug. Make a local copy of the
caller's pci_attach_args and modify the copy. I have not tested
this change.

While I'm here, make pci_mapreg_submap() static.

With these changes in place, I have tested the compilation of these
kernels:

alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-eb NSLU2
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX
HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200
KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR
TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sgimips GENERIC32_IP2x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC

As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels
with or without my patches in place:

### evbmips-el GDIUM

nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop

### evbarm-el MPCSA_GENERIC
src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc'

### ia64 GENERIC

/tmp/genassym.28085/assym.c: In function 'f111':
/tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb'
/tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type

### sgimips GENERIC32_IP3x

crmfb.o: In function `crmfb_attach':
crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid'
crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid'
crmfb.c:(.text+0x234c): undefined reference to `edid_parse'
crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse'
crmfb.c:(.text+0x2354): undefined reference to `edid_print'
crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
 1.78  24-Feb-2011  matt Add Intel Pineview support
 1.77  15-Feb-2011  jmcneill add AGP v3 support to agp_generic_enable from FreeBSD
 1.76  13-Nov-2010  uebayasi branches: 1.76.2; 1.76.4;
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.75  10-Oct-2010  christos restore binary compatibility for amd64; requested by joerg.
 1.74  02-Oct-2010  jym Revert christos@ fix for the i386 paddr_t change and agp_allocate.

Make 'physical' element of the struct agp_allocate an uint32_t. This
is similar to what other kernels do (at least Solaris and Linux).

This patch should make xserver work again within an i386 userland in a
64 bits paddr_t world.

Thanks to Iain Hibbert for reporting the break, and providing initial hints.

See http://mail-index.netbsd.org/current-users/2010/09/27/msg014418.html
 1.73  28-Sep-2010  christos make this compile.
 1.72  28-Sep-2010  christos - fixes from Jean-Yves Migeon
- handle transitional paddr_t period for i386
 1.71  27-Sep-2010  christos move all the compat code here, and #ifdef __i386__ from mrg.
 1.70  27-Sep-2010  christos backwards compat code for paddr_t being 32 bits.
 1.69  16-Jun-2010  riz Add AGP support for a number of Intel onboard devices, including
82G41, 82B43, E7221, 82965GME, and "Iron Lake". Device
types (i915, i965, G33, and G4X variants) from the Linux Intel AGP
driver, and (for 82G41) from Henry Bent in PR#42906.

There are a few more varieties that should be relatively low-hanging
fruit ("Pineview" and "Sandy Bridge"), but will require a little bit
of rejiggering of the "chiptype".

OK mrg@
 1.68  24-Feb-2010  dyoung branches: 1.68.2;
A pointer typedef entails trading too much flexibility to declare const
and non-const types, and the kernel uses both const and non-const
PMF qualifiers and device suspensors, so change the pmf_qual_t and
device_suspensor_t typedefs from "pointers to const" to non-pointer,
non-const types.
 1.67  24-Feb-2010  jym - Use ctob() instead of ptoa() to obtain physical addresses from frame
numbers. Using ptoa() will cast to vaddr_t, which might no be adequate
for architectures where sizeof(paddr_t) > sizeof(vaddr_t) (like i386 PAE).

- small fix inside AGP heuristics to avoid masking high order bits for
systems with more than 4GB.

Reviewed by bouyer@.

See also http://mail-index.netbsd.org/tech-kern/2010/02/22/msg007373.html
 1.66  08-Jan-2010  dyoung branches: 1.66.2;
Expand PMF_FN_* macros.
 1.65  27-Jan-2009  markd Add some more Intel G4X class chipsets. Also fix gtt_size for G4X chipsets.
Partially from FreeBSD. There is still an issue here as G4X chipsets
report an aperture size of 0.
 1.64  29-Nov-2008  christos Add support for the Intel G45 AGP. From Arnaud Lacombe
 1.63  08-Nov-2008  christos Support for Intel G35 as found on Asus P5E-VM HDMI motherboard from
Milos Negovanovic
 1.62  17-Oct-2008  christos branches: 1.62.2; 1.62.4; 1.62.8;
add missing free.
 1.61  22-Aug-2008  tnn AGP support for Intel 945GME chipset, found on Acer Aspire One.
 1.60  19-Aug-2008  matthias Add agp support for Intel 946gz.
 1.59  09-Jun-2008  freza branches: 1.59.4;
o Split device_t/softc for agp(4).
o agp_ali.c: remove unused 'agp' member from agp_ali_softc.
o drm: agp_find_device() returns 'void *', not a device_t.
o Use device_t, cfdata_t instead of struct pointers.
o Don't cast void pointers in assignments.
 1.58  08-Jun-2008  tsutsui Replace device_lookup() with device_lookup_private() on getting softc
for future device_t/softc spilt.
 1.57  19-Apr-2008  njoly branches: 1.57.2; 1.57.4;
Add missing agp support for ALI M1689 chipset, for PR/35416.
 1.56  10-Apr-2008  cegger branches: 1.56.2;
use aprint_*_dev and device_xname
 1.55  29-Feb-2008  dyoung Use PMF_FN_ARGS, PMF_FN_PROTO.
 1.54  09-Dec-2007  jmcneill branches: 1.54.6; 1.54.10;
Merge jmcneill-pm branch.
 1.53  05-Dec-2007  ad branches: 1.53.2;
Match the docs: MUTEX_DRIVER/SPIN are now only for porting code written
for Solaris.
 1.52  24-Nov-2007  markd branches: 1.52.2;
Add agp support for Intel Q35/G33/Q33.
 1.51  12-Nov-2007  joerg Merge bunch of AGP changes from jmcneill-pm.
 1.50  30-Oct-2007  jnemeth branches: 1.50.2;
PR/37201 - Yasushi Oshima -- Intel 82965G chipset support
 1.49  19-Oct-2007  ad machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.48  15-Aug-2007  markd branches: 1.48.2; 1.48.6;
Add agp support for i965Q.

Based on a patch for FreeBSD by Eric Anholt.
OKed on tech-kern some months ago.
 1.47  04-Aug-2007  kiyohara branches: 1.47.2;
Add support agp_amd64. Imported from FreeBSD.
 1.46  06-Mar-2007  xtraeme branches: 1.46.2; 1.46.10; 1.46.14;
Use a mutex rather than lockmgr. Approved by Andrew Doran.
 1.45  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.44  18-Dec-2006  christos branches: 1.44.2;
Don't cleanup memory mappings twice. From Blair Sadewitz
 1.43  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.42  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.41  27-Aug-2006  christos branches: 1.41.2; 1.41.4;
complete initialization
 1.40  17-Aug-2006  christos Fix all the -D*DEBUG* code that it was rotting away and did not even compile.
Mostly from Arnaud Lacombe, many thanks!
 1.39  30-Jul-2006  simonb Add support for 82945GM and (untested) 82945P AGP. FreeBSD and
Linux both treat the 945 series exactly the same as the 915 series
for AGP, so just match a few extra device IDs.
 1.38  27-Jun-2006  tron Make this build with GCC 4.x.
 1.37  16-Jan-2006  christos branches: 1.37.2; 1.37.6; 1.37.14;
PR/32550: Michael Eriksson: No agp(4) support for i915 integrated graphics
 1.36  11-Dec-2005  christos branches: 1.36.2;
merge ktrace-lwp.
 1.35  28-Jun-2005  thorpej branches: 1.35.2;
Use ANSI function decls and static.
 1.34  27-Feb-2005  perry branches: 1.34.2;
nuke trailing whitespace
 1.33  30-Aug-2004  drochner branches: 1.33.4; 1.33.6;
Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.32  13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.31  26-Aug-2003  tron Add support for i865G integrated graphics support to agp(4). Patches
contributed by Michael D. Allen in PR port-i386/22600.
 1.30  24-Aug-2003  tron Add a missing blank line between two functions.
 1.29  20-Jul-2003  hannken Add support for i855 agp. From FreeBSD.

Approved by: Frank van der Linden <fvdl@netbsd.org>
 1.28  29-Jun-2003  fvdl branches: 1.28.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.27  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.26  24-Feb-2003  tron Don't match a PCI graphics card in a system which supports an AGP.
Patch supplied by Quentin Garnier in PR kern/19256.
 1.25  01-Feb-2003  thorpej Add extensible malloc types, adapted from FreeBSD. This turns
malloc types into a structure, a pointer to which is passed around,
instead of an int constant. Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.
 1.24  31-Jan-2003  thorpej Use aprint_*().
 1.23  13-Dec-2002  scw Add support for i830/i845 agp. From Shingo WATANABE (on tech-x11) and
FreeBSD, with cleanup/KNF by me.

Note: These chipsets are not well supported by the i810 driver in
NetBSD's in-tree xsrc (based on XFree86 4.2.1 at this time). However,
the driver works perfectly using bleeding-edge XFree86-current on my
Omnibook's i830MG with these agp changes.
 1.22  23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.21  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.20  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.19  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.18  19-Sep-2002  nathanw Slight wording cleanup in a comment.
 1.17  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.16  11-Aug-2002  drochner -avoid lock leak in error case
-Free AGP memory on close, to avoid a memory leak in case
the X server doesn't free it explicitely.
(It appears that the X server never calls AGPIOC_DEALLOCATE.)
Fixes PR kern/17869 by Emmanuel Dreyfus.
 1.15  27-Jun-2002  drochner Only allow the bus_dmamem_alloc() code to sleep if no physically contigous
pages are insisted in.
Atm, the pglistalloc code does the same automatically, but this might change.
 1.14  22-Jan-2002  augustss branches: 1.14.8; 1.14.10;
Don't pretend we can handle i830; it needs a somewhat different AGP driver.
(I added i830 to quickly.)
 1.13  14-Jan-2002  augustss Add i830M to agp chip tables.
 1.12  13-Nov-2001  lukem add RCSID
 1.11  01-Oct-2001  fvdl Don't map the aperture into KVA, it isn't needed.
 1.10  16-Sep-2001  thorpej branches: 1.10.2; 1.10.4;
agp_generic_bind_memory(): Don't return NULL if we can't malloc
memory, return ENOMEM.
 1.9  15-Sep-2001  thorpej agpopen(): check for NULL softc before dereferencing it.
 1.8  15-Sep-2001  drochner normalize error message if agp_map_aperture() fails
 1.7  15-Sep-2001  thorpej Give each AGP controller its own attribute, and let the "agpbus"
device (rather, the device that carries that attribute) also
carry one or more attributes indicating which type of controller
it might be.

This will allow systems that might have AGP, but would never have
e.g. an Intel PCI-Host bridge, to trim out code that won't be used.
 1.6  15-Sep-2001  thorpej Use bus_space_mmap() to mmap the aperture.
 1.5  15-Sep-2001  thorpej Clean up the AGP match/attach code somewhat.
 1.4  14-Sep-2001  drochner -plug some resource leaks
-don't clear memory ranges on "release"

The X server survives a screen switch now.
 1.3  13-Sep-2001  drochner -allocate DMA maps as large as necessary in the worst case
-allocate space for DMA segments as much as necessary
-fix format warnings in a debug output
-don't try to access AGP capability stuff in the PCI config header
if it doesn't exist (as on the i810)
 1.2  11-Sep-2001  fvdl branches: 1.2.2;
Fix i810/other intel chipsets attach mishap.
 1.1  10-Sep-2001  fvdl AGP GART support code. Originally written by Doug Rabson for FreeBSD,
modifications to fit it into the NetBSD device/config structure and
to use bus_dma by me.
 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  11-Feb-2002  jdolecek Sync w/ -current.
 1.2.2.3  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.2  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.2.1  11-Sep-2001  thorpej file agp.c was added on branch kqueue on 2001-09-13 01:15:49 +0000
 1.10.4.4  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.10.4.3  10-Oct-2001  fvdl Convert all remaining devices.
 1.10.4.2  01-Oct-2001  fvdl Catch up with -current.
 1.10.4.1  16-Sep-2001  fvdl file agp.c was added on branch thorpej-devvp on 2001-10-01 12:45:50 +0000
 1.10.2.11  19-Dec-2002  thorpej Sync with HEAD.
 1.10.2.10  11-Nov-2002  nathanw Catch up to -current
 1.10.2.9  18-Oct-2002  nathanw Catch up to -current.
 1.10.2.8  17-Sep-2002  nathanw Catch up to -current.
 1.10.2.7  13-Aug-2002  nathanw Catch up to -current.
 1.10.2.6  01-Aug-2002  nathanw Catch up to -current.
 1.10.2.5  28-Feb-2002  nathanw Catch up to -current.
 1.10.2.4  14-Nov-2001  nathanw Catch up to -current.
 1.10.2.3  08-Oct-2001  nathanw Catch up to -current.
 1.10.2.2  21-Sep-2001  nathanw Catch up to -current.
 1.10.2.1  16-Sep-2001  nathanw file agp.c was added on branch nathanw_sa on 2001-09-21 22:35:52 +0000
 1.14.10.3  16-Jun-2003  grant Pull up revision 1.26 (requested by tron in ticket #1181):

Don't match a PCI graphics card in a system which supports an AGP.
Patch supplied by Quentin Garnier in PR kern/19256.
 1.14.10.2  28-Jan-2003  jmc Pullup revisions 1.14-1.15 (requested by manu in ticket #1073. Missed in
initial pullup)
Only allow the bus_dmamem_alloc() code to sleep if no physically
contigous pages are insisted in.
 1.14.10.1  26-Jan-2003  jmc Pullup revisions 1.15-1.16 (requested by manu in ticket #1073)
-avoid lock leak in error case
-Free AGP memory on close, to avoid a memory leak in case
the X server doesn't free it explicitely.
(It appears that the X server never calls AGPIOC_DEALLOCATE.)
 1.14.8.3  29-Aug-2002  gehenna catch up with -current.
 1.14.8.2  15-Jul-2002  gehenna catch up with -current.
 1.14.8.1  16-May-2002  gehenna Add the character device switch.
 1.28.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.28.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.28.2.5  21-Sep-2004  skrll Fix the sync with head I botched.
 1.28.2.4  18-Sep-2004  skrll Sync with HEAD.
 1.28.2.3  03-Sep-2004  skrll Sync with HEAD
 1.28.2.2  03-Aug-2004  skrll Sync with HEAD
 1.28.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.33.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.33.4.1  29-Apr-2005  kent sync with -current
 1.34.2.1  14-Feb-2006  riz Pull up following revision(s) (requested by tron in ticket #1168):
sys/dev/pci/agp_i810.c: revision 1.28
sys/arch/i386/pci/pchb.c: revision 1.57
sys/dev/pci/agpvar.h: revision 1.11
sys/dev/pci/agp_via.c: revision 1.9
sys/dev/pci/agp.c: revision 1.37
sys/dev/pci/agpreg.h: revision 1.10
sys/dev/pci/pcidevs: revision 1.757
sys/dev/pci/agp_amd.c: revision 1.14
sys/dev/pci/agp_intel.c: revision 1.17
sys/dev/pci/agp_sis.c: revision 1.8
sys/dev/pci/agp_ali.c: revision 1.9
sys/arch/i386/pci/pchb_rnd.c: revision 1.16
PR/32550: Michael Eriksson: No agp(4) support for i915 integrated graphics
 1.35.2.8  17-Mar-2008  yamt sync with head.
 1.35.2.7  21-Jan-2008  yamt sync with head
 1.35.2.6  07-Dec-2007  yamt sync with head
 1.35.2.5  15-Nov-2007  yamt sync with head.
 1.35.2.4  27-Oct-2007  yamt sync with head.
 1.35.2.3  03-Sep-2007  yamt sync with head.
 1.35.2.2  30-Dec-2006  yamt sync with head.
 1.35.2.1  21-Jun-2006  yamt sync with head.
 1.36.2.1  01-Feb-2006  yamt sync with head.
 1.37.14.1  13-Jul-2006  gdamore Merge from HEAD.
 1.37.6.2  03-Sep-2006  yamt sync with head.
 1.37.6.1  11-Aug-2006  yamt sync with head
 1.37.2.1  09-Sep-2006  rpaulo sync with head
 1.41.4.3  21-Dec-2006  yamt sync with head.
 1.41.4.2  10-Dec-2006  yamt sync with head.
 1.41.4.1  22-Oct-2006  yamt sync with head
 1.41.2.2  12-Jan-2007  ad Sync with head.
 1.41.2.1  18-Nov-2006  ad Sync with head.
 1.44.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.46.14.12  09-Dec-2007  jmcneill Sync with HEAD.
 1.46.14.11  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.46.14.10  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.46.14.9  06-Nov-2007  joerg Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
 1.46.14.8  31-Oct-2007  joerg Sync with HEAD.
 1.46.14.7  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.46.14.6  01-Oct-2007  joerg Extend device API by device_power_private and device_power_set_private.
The latter is a temporary mean until the pnp_register API itself is
overhault. This functions allow a generic power handler to store its
state independent of the driver.

Use this and revamp the PCI power handling. Pretty much all PCI devices
had power handlers that did the same thing, generalize this in
pci_generic_power_register/deregister and the handler. This interface
offers callbacks for the drivers to save and restore state on
transistions. After a long discussion with jmcneill@ it was considered
to be powerful enough until evidence is shown that devices can handle
D1/D2 with less code and higher speed than without the full
save/restore. The generic code is carefully written to handle device
without PCI-PM support and ensure that the correct registers are written
to when D3 loses all state.

Reimplement the generic PCI network device handling on
top of PCI generic power handling.

Introduce pci_disable_retry as used and implemented locally at least by
ath(4) and iwi(4). Use it in this drivers to restore behaviour from
before the introduction of generic PCI network handling.

Convert all PCI drivers that were using pnp_register to the new
framework. The only exception is vga(4) as it is commonly used as
console device. Add a note therein that this should be fixed later.
 1.46.14.5  06-Sep-2007  jmcneill agp(4) products list ordering fix, from Nicholas Joly on current-users.
 1.46.14.4  27-Aug-2007  jmcneill Add 965PM support.
 1.46.14.3  16-Aug-2007  jmcneill Sync with HEAD.
 1.46.14.2  06-Aug-2007  jmcneill Move agp_i810_power to agp, since it does nothing specific to the i810
hardware. Allow agp front-ends to override the default power handler if
specific configuration needs to take place, and expose agp_power via
agpvar.h so the front-ends can call back to it to do generic initialization.
 1.46.14.1  04-Aug-2007  jmcneill Sync with HEAD.
 1.46.10.1  15-Aug-2007  skrll Sync with HEAD.
 1.46.2.2  23-Oct-2007  ad Sync with head.
 1.46.2.1  20-Aug-2007  ad Sync with HEAD.
 1.47.2.2  04-Aug-2007  kiyohara Add support agp_amd64. Imported from FreeBSD.
 1.47.2.1  04-Aug-2007  kiyohara file agp.c was added on branch matt-mips64 on 2007-08-04 09:33:06 +0000
 1.48.6.2  13-Nov-2007  bouyer Sync with HEAD
 1.48.6.1  25-Oct-2007  bouyer Sync with HEAD.
 1.48.2.3  23-Mar-2008  matt sync with HEAD
 1.48.2.2  09-Jan-2008  matt sync with HEAD
 1.48.2.1  06-Nov-2007  matt sync with HEAD
 1.50.2.3  27-Dec-2007  mjf Sync with HEAD.
 1.50.2.2  08-Dec-2007  mjf Sync with HEAD.
 1.50.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.52.2.2  26-Dec-2007  ad Sync with head.
 1.52.2.1  08-Dec-2007  ad Sync with head.
 1.53.2.1  11-Dec-2007  yamt sync with head.
 1.54.10.6  17-Jan-2009  mjf Sync with HEAD.
 1.54.10.5  28-Sep-2008  mjf Sync with HEAD.
 1.54.10.4  29-Jun-2008  mjf Sync with HEAD.
 1.54.10.3  02-Jun-2008  mjf Sync with HEAD.
 1.54.10.2  03-Apr-2008  mjf Sync with HEAD.
 1.54.10.1  29-Mar-2008  mjf - etc/devfsd.conf: Add some rules to give nodes like /dev/tty and
/dev/null better default modes, i.e. 0666.

- sbin/init: Run devfsd -s before going to multiuser.

- sys/arch: Provide arm32, i386, sparc with a mem_init() function to request
device nodes for /dev/null, /dev/zero, etc.

- sys/dev: Convert rnd, wd, agp, raid, cd, sd, wsdisplay, wskbd, wsmouse,
wsmux, tty, bpf, swap to devfs New World Order.

- sys/fs/devfs: Make the visibility attribute of device nodes configurable.
Also provide a function to mount a devfs on boot.

- sys/kern: Add a new boot flag, -n. This disables devfs support. Unless
the -n flag is specified the kernel will mount a devfs file
system on boot.
 1.54.6.1  24-Mar-2008  keiichi sync with head.
 1.56.2.2  17-Jun-2008  yamt sync with head.
 1.56.2.1  18-May-2008  yamt sync with head.
 1.57.4.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.57.4.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.57.2.3  11-Aug-2010  yamt sync with head.
 1.57.2.2  11-Mar-2010  yamt sync with head
 1.57.2.1  04-May-2009  yamt sync with head.
 1.59.4.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.59.4.1  19-Oct-2008  haad Sync with HEAD.
 1.62.8.1  21-Apr-2010  matt sync to netbsd-5
 1.62.4.2  19-May-2011  bouyer Pull up following revision(s) (requested by jmcneill in ticket #1560):
sys/sys/agpio.h: revision 1.10
sys/dev/pci/agp_via.c: revision 1.21
sys/dev/pci/agp.c: revision 1.77
add AGP v3 support to agp_generic_enable from FreeBSD
 1.62.4.1  05-May-2009  bouyer Pull up following revision(s) (requested by snj in ticket #737):
sys/arch/x86/pci/pchb.c: revisions 1.15 - 1.17
sys/dev/pci/agp.c: revisions 1.63 - 1.65
sys/dev/pci/agp_i810.c: revisions 1.57 - 1.64
sys/dev/pci/pcidevs: revisions 1.965, 1.967 via patch
sys/dev/pci/agpreg.h: revision 1.20
Add AGP support for Intel G35, G45, and Q45.
 1.62.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.62.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.66.2.3  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.66.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.66.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.68.2.3  21-Apr-2011  rmind sync with head
 1.68.2.2  05-Mar-2011  rmind sync with head
 1.68.2.1  03-Jul-2010  rmind sync with head
 1.76.4.2  05-Mar-2011  bouyer Sync with HEAD
 1.76.4.1  17-Feb-2011  bouyer Sync with HEAD
 1.76.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.79.8.1  29-Apr-2012  mrg sync to latest -current.
 1.79.4.2  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.79.4.1  17-Apr-2012  yamt sync with head
 1.80.4.1  18-May-2014  rmind sync with head
 1.80.2.2  03-Dec-2017  jdolecek update from HEAD
 1.80.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.81.2.1  10-Aug-2014  tls Rebase.
 1.83.12.1  21-Apr-2017  bouyer Sync with HEAD
 1.83.8.1  20-Mar-2017  pgoyette Sync with HEAD
 1.83.4.1  28-Aug-2017  skrll Sync with HEAD
 1.84.14.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.84.14.1  10-Jun-2019  christos Sync with HEAD
 1.84.12.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.85.6.1  31-Jan-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #672):

sys/dev/ic/tulip.c: revision 1.198
sys/dev/pci/if_jme.c: revision 1.45
sys/dev/pci/agp.c: revision 1.86
sys/dev/pci/if_lii.c: revision 1.27
sys/dev/acpi/thinkpad_acpi.c: revision 1.47
sys/dev/scsipi/scsipi_base.c: revision 1.183
sys/dev/ic/aic6915reg.h: revision 1.6

Fix undefined behavior in thinkpad_mask_init(). Found by kUBSan.

Use unsigned when initialize the transmit completion ring to avoid undefined
behavior. Found by kUBSan.

Avoid undefined behavior when setting multicast address. found by kUBSan.

Use unsigned to avoid undefined behavior in agpattach(). Found by kUBSan.

Avoid undefined behavior in jme_mii_write(). Found by kUBSan.

Use unsigned to avoid undefined behavior in lii_setmulti().

Use unsigned to avoid undefined behavior in scsipi_{get,put}_tag().

Found by kUBSan.

RSS XML Feed