Home | History | Annotate | Download | only in pcmcia
History log of /src/sys/dev/pcmcia/pcmcia.c
RevisionDateAuthorComments
 1.96  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.95  24-Apr-2021  thorpej branches: 1.95.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.94  26-Jul-2011  dyoung branches: 1.94.70;
Don't copy iobase and iosize members from pcmciabus_attach_args to the
pcmcia_softc because they're not used in any meaningful way.
 1.93  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.92  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.91  02-Apr-2009  dyoung During shutdown, detach devices in an orderly fashion.

Call the detach routine for every device in the device tree, starting
with the leaves and moving toward the root, expecting that each
(pseudo-)device driver will use the opportunity to gracefully commit
outstandings transactions to the underlying (pseudo-)device and to
relinquish control of the hardware to the system BIOS.

Detaching devices is not suitable for every shutdown: in an emergency,
or if the system state is inconsistent, we should resort to a fast,
simple shutdown that uses only the pmf(9) shutdown hooks and the
(deprecated) shutdownhooks. For now, if the flag RB_NOSYNC is set in
boothowto, opt for the fast, simple shutdown.

Add a device flag, DVF_DETACH_SHUTDOWN, that indicates by its presence
that it is safe to detach a device during shutdown. Introduce macros
CFATTACH_DECL3() and CFATTACH_DECL3_NEW() for creating autoconf
attachments with default device flags. Add DVF_DETACH_SHUTDOWN
to configuration attachments for atabus(4), atw(4) at cardbus(4),
cardbus(4), cardslot(4), com(4) at isa(4), elanpar(4), elanpex(4),
elansc(4), gpio(4), npx(4) at isa(4), nsphyter(4), pci(4), pcib(4),
pcmcia(4), ppb(4), sip(4), wd(4), and wdc(4) at isa(4).

Add a device-detachment "reason" flag, DETACH_SHUTDOWN, that tells the
autoconf code and a device driver that the reason for detachment is
system shutdown.

Add a sysctl, kern.detachall, that tells the system to try to detach
every device at shutdown, regardless of any device's DVF_DETACH_SHUTDOWN
flag. The default for kern.detachall is 0. SET IT TO 1, PLEASE, TO
HELP TEST AND DEBUG DEVICE DETACHMENT AT SHUTDOWN.

This is a work in progress. In future work, I aim to treat
pseudo-devices more thoroughly, and to gracefully tear down a stack of
(pseudo-)disk drivers and filesystems, including cgd(4), vnd(4), and
raid(4) instances at shutdown.

Also commit some changes that are not easily untangled from the rest:

(1) begin to simplify device_t locking: rename struct pmf_private to
device_lock, and incorporate device_lock into struct device.

(2) #include <sys/device.h> in sys/pmf.h in order to get some
definitions that it needs. Stop unnecessarily #including <sys/device.h>
in sys/arch/x86/include/pic.h to keep the amd64, xen, and i386 releases
building.
 1.90  15-Mar-2009  cegger ansify function definitions
 1.89  14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.88  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.87  03-Jul-2008  drochner branches: 1.87.4; 1.87.10;
split device/softc
Now I'm through - all my devices are split.
 1.86  05-Apr-2008  cegger branches: 1.86.4; 1.86.6; 1.86.8;
use aprint_*_dev and device_xname
 1.85  16-Dec-2007  dyoung branches: 1.85.6;
Improve pci, cbb, cardslot, cardbus, and pcmcia to support detachment
of this entire device tree:

pci0 at mainbus0
elansc0 at pci0
gpio0 at elansc0
cbb0 at pci0
cardslot0 at cbb0
cardbus0 at cardslot0
pcmcia0 at cardslot0
cbb1 at pci0
cardslot1 at cbb1
cardbus1 at cardslot1
rtw0 at cardbus1
pcmcia1 at cardslot1
sip0 at pci0
nsphyter0 at sip0
sip1 at pci0
nsphyter1 at sip1

Whew!
 1.84  09-Dec-2007  jmcneill branches: 1.84.2;
Merge jmcneill-pm branch.
 1.83  01-Dec-2007  jmcneill branches: 1.83.2; 1.83.4;
aprintify
 1.82  16-Nov-2006  christos branches: 1.82.22; 1.82.24; 1.82.30;
__unused removal on arguments; approved by core.
 1.81  24-Oct-2006  drochner kill the "irq" llocator for pcmcia - this doesn't make sense because
irq mapping is done by the controller, and it is not used anywhere afaict
 1.80  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.79  29-Mar-2006  thorpej branches: 1.79.4; 1.79.8; 1.79.10;
Replace device_locators() with device_locator(), and use it.
 1.78  11-Dec-2005  christos branches: 1.78.4; 1.78.6; 1.78.8; 1.78.10; 1.78.12;
merge ktrace-lwp.
 1.77  26-Aug-2005  drochner use XXXCF_NLOCS constants instead of magic numbers
 1.76  25-Aug-2005  drochner kill a number of autoconf submatch functions which follow the
standard scheme:
if (<configured> != <wildcard> && <configured> != <real>)
then fail
else
ask device match function

This is handled by config_stdsubmatch() now.
 1.75  25-Aug-2005  drochner replace the "locdesc_t" structure carrying the number of locators
explicitely by a plain integer array
the length in now known to all relevant parties, so this avoids
duplication of information, and we can allocate that thing in
drivers without hacks
 1.74  15-Aug-2005  christos PR/30995: Wada Keiji: pcmcia interface can't use ne2000 compatible card
Call pcmcia_socket_settype sooner. I removed the later call, so the submitter
should test the final code before I close the PR.
 1.73  27-Feb-2005  perry branches: 1.73.2; 1.73.4;
nuke trailing whitespace
 1.72  04-Feb-2005  perry de-__P
 1.71  18-Aug-2004  drochner branches: 1.71.4; 1.71.6;
Allow to rescan and detach by user request, using the new autoconf
functions.
For later rescans (eg after a driver LKM was loaded) to make sense,
don't consider it an error if no driver was attached on the initial
bus scan.
Someone who understands the enable/disable/powerup/down stuff please
review this.
 1.70  12-Aug-2004  mycroft Simplify a little. Pass down the card type from pcmcia_function_enable(),
which just gets it from the config entry for the function it's enabling.
Multifunction cards are defined to be of type I/O on every function, so there
is no possibility of accidentally switching.
 1.69  12-Aug-2004  mycroft If the card is being detached, do not try to write the CCR to disable the
function.
 1.68  12-Aug-2004  mycroft Always write the IOBASE/IOLIMIT registers if they're set in the CCR mask. We
can't really rely on multifunction devices having a CIS that reflects this --
e.g. some cards use a combined Ethernet+modem chip, but only actually serve
one of the functions. (We have to assume the configuration index reflects the
bits needed to enable the function.)
 1.67  12-Aug-2004  mycroft Write the configuration option register -- possibly switching the device into
its I/O mode -- as the *last* write to the CCR.
 1.66  12-Aug-2004  mycroft Don't call socket_settype() to enable I/O interrupts until after we've written
the CCR.
 1.65  12-Aug-2004  mycroft My previous understanding of the I/O base/limit registers was incorrect.
However, so was the old code. Now it works correctly. :-)
 1.64  11-Aug-2004  mycroft Output a message if we fail to find anything useful in the CIS, rather than
appearing to do nothing.
 1.63  11-Aug-2004  mycroft Do not ever set IOIS8. We are not running on an 8088.
 1.62  11-Aug-2004  mycroft Always use PCMCIA_WIDTH_AUTO rather than PCMCIA_WIDTH_IO16. This spec is
pretty clear on how this works.
 1.61  11-Aug-2004  mycroft Fix uninitialized variable warnings (which did not appear on x86).
 1.60  11-Aug-2004  mycroft Rather than having a call up from the low-level driver to get the card type,
instead have a call down from the PCMCIA mid-layer to set it. Use this from
pcmcia_function_enable(). (Currently the policy is the same, but this would
allow for more flexibility in deciding which mode to use.)

Now it is safe to hold the socket enabled during attach, so do that. Only
one enable/disable cycle to attach a card now!
 1.59  10-Aug-2004  mycroft Move the socket reference counting into pcmcia_socket_{enable,disable}(), and
use that where needed.
 1.58  10-Aug-2004  mycroft Whoops, look at both the ID numbers and the CIS strings in each pcmcia_product.
It's dumb that drivers depend on this, but...
 1.57  10-Aug-2004  mycroft Now that all the silly string printing is gone, move the location where we
print a newline so it doesn't have to be done in every driver.
 1.56  10-Aug-2004  mycroft Enhance pcmcia_product_lookup():
* Remove the "expected function" value. This was just causing problems with
multifunction cards. Differentiating the functions is better done by
checking the function type (which we now do in ep and sm).
* Add support for matching CIS strings. This necessitated changing the calling
pattern a little too.

Use this enhanced version rather than driver-specific versions that do the
same thing.

Also, remove the last vestiges of PCMCIA_STR_*.
 1.55  10-Aug-2004  mycroft Print diagnostics in only one place if intr_establish() or function_enable()
fails.

Also, be a little more careful about passing up error values, and consistently
clear our interrupt handler pointer.
 1.54  10-Aug-2004  mycroft Move the location of a printf() I added.
 1.53  10-Aug-2004  mycroft Be robust against child devices failing to handle the socket refcnt properly --
force it to 0 when a card is detached, possibly disabling the socket in the
process.

Add several new functions:
* pcmcia_config_alloc(pf, cfe)
Tries to allocate all the I/O and memory spaces in a config entry.
* pcmcia_config_free(pf)
Frees all the I/O and memory spaces for the active configuration.
* pcmcia_config_map(pf)
Maps all the allocated I/O and memory spaces for the active configuration.
* pcmcia_config_unmap(pf)
Unmaps all the allocated I/O and memory spaces for the active configuration.

And two higher-level functions:
* pcmcia_function_configure(pf, validator)
Tries to find a CIS config entry that it can allocate the spaces for. Each
entry is verified by calling the "validator" function -- which can also do
card- and driver-specific fixups. If successful, the regions are all mapped.
* pcmcia_function_unconfigure(pf)
Equivalent to calling both pcmcia_config_unmap() and pcmcia_config_free().

Most drivers are expected to use the latter two functions, which will greatly
reduce the amount of crufty code.
 1.52  09-Aug-2004  mycroft Dispense with all the interrupt multiplexing code here, and assume that the
underlying implementation DTRT. This has the side effect of causing us to
ignore the INTR and INTRACK bits in the CCR -- but this seems for the best
anyway, since they are not reliably implemented. (I note that Linux doesn't
bother either.)
 1.51  09-Aug-2004  mycroft Add newlines to the messages...
 1.50  09-Aug-2004  mycroft Whoops, nuke an unused variable.
 1.49  09-Aug-2004  mycroft Assume that io_map/unmap and intr_establish/disestablish will not be called
with the function enabled. If this happens, issue a warning. (This is only
really important for multifunction cards.)

This allows me to get rid of a bunch of extra code.
 1.48  09-Aug-2004  mycroft Make pcmcia_function_disable() primarily responsible for disabling the CCR
bits. pcmcia_intr_disestablish() continues to do this as a stopgap.
 1.47  09-Aug-2004  mycroft If the function is not enabled, do not attempt to immediately update the CCR.
XXX This is a stopgap until all drivers are converted to do their io_maps and
intr_establishes before function_enable.
 1.46  09-Aug-2004  mycroft Fix a debugging printf().
 1.45  09-Aug-2004  mycroft Do not set INTRACK ourselves.
 1.44  09-Aug-2004  mycroft Implement the correct (I think) interrupt acknowledgement sequence.
 1.43  09-Aug-2004  mycroft Multifunction fixes:
* Don't call handlers for functions that are not enabled.
* Always call the handler if the function doesn't support the STATUS register.
While I'm here, divide the CCR numbers by 2.
 1.42  08-Aug-2004  mycroft Copyright maintenance.
 1.41  08-Aug-2004  mycroft Remove the "offset" and "size" arguments to pcmcia_io_map(). In the singular
case (ne@pcmcia) where we were using these to create a subregion, it is better
handled by calling bus_space_subregion().

Now there is a 1:1 mapping between I/O spaces in the config table and windows
mapped in the function. Rework the multifunction mapping code to take
advantage of this by using both I/O base addresses if necessary.
 1.40  08-Aug-2004  mycroft pcmcia_socket_{enable,disable}() weren't used. Reimplement them as public
functions taking a pcmcia* device structure.

XXX This is a method of last resort for dealing with stupid/insane cards that
we need to probe harder before we can choose a config entry. It should not be
used by most drivers.
 1.39  06-Aug-2004  mycroft Put a comma before the last CIS string too.
 1.38  07-Jul-2004  mycroft More cleanup:
* Print "devinfo" in a canonial place (like we do in the SCSI code).
* Use aprint_{error,normal}() during attach.
* More PCMCIA_STR_* removal.
 1.37  07-Jul-2004  mycroft Modify the format of pcmcia_devinfo() slightly.
 1.36  22-Oct-2003  briggs Maintain reference count properly for nested enables/disables.
 1.35  01-Jan-2003  thorpej branches: 1.35.2;
Use aprint_normal() in cfprint routines.
 1.34  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.33  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.32  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.31  27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.30  27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.29  01-Jun-2002  lukem SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field). whilst it's O(n),
this mirrors the functionality of SLIST_REMOVE() (the other
singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups
 1.28  15-Dec-2001  soren branches: 1.28.8;
To make dev/pcmcia work on platforms with 64-bit bus_addr_t and
32-bit bus_size_t (sparc), change the pcmcia_mem_map(9) offsetp
argument to bus_size_t as it is used as a bus_space offset.
 1.27  15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.26  13-Nov-2001  lukem add RCSIDs
 1.25  13-May-2001  jmc branches: 1.25.2;
Turn off PCMCIADEBUG by default. This should get set with options in a config file
 1.24  29-Apr-2001  christos don't put a trailing comma in pcmcia_devinfo. All the drivers use
printf("%s\n", devinfo) and it looks stupid.
 1.23  28-Jul-2000  drochner branches: 1.23.2;
print parent device name too, so we know which socket a card was probed at
and whether pcmcia or cardbus
 1.22  08-May-2000  augustss KNF some comments.
 1.21  26-Feb-2000  uch IT8368E legacy mode requires mode change between I/O access and
attribute memory access. XXX
 1.20  22-Feb-2000  chopps remove bogus debug (was reading unmapped CCR)
 1.19  08-Feb-2000  enami - Don't rely on implicit declaration.
- Sinc wi/ existing coding style.
 1.18  07-Feb-2000  augustss Add a pcmcia_devinfo() function (akin to pci_devinfo). It generates a
string suitable for printing in the attach message.
 1.17  05-Feb-2000  nathanw LP64 printf fixes.
 1.16  04-Feb-2000  cgd replace the *_lookup table entry match/lookup functions in all of
these drivers with a single common function (which supports tables
of variable-sized structures). Things are mostly as they were before:
tables are terminated by entry with NULL name, etc. There's also
the ability to call a driver-specific match function which can be used
to augment the table lookup.
 1.15  23-Jan-2000  aymeric add right casts to printf bus_space parameters
 1.14  15-Oct-1999  haya branches: 1.14.2;
This is the first check-in of CardBus driver. CardBus driver contains
CardBus bus stub, YENTA PCI-CardBus bridge (cbb), 3Com 3C575TX driver
(ex) and Intel fxp driver.

TODO:
o Conform to the KNF more strictly.
o Be unified with pcmcia code as much as possible.
o Add more drivers for CardBus card, such as APA-1480 or USB card.

The affected files are listed below.

sys/arch/i386/conf/files.i386
sys/arch/macppc/conf/files.macppc
sys/conf/files
sys/dev/ic/elinkxl.c
sys/dev/ic/elinkxlvar.h
sys/dev/ic/i82365.c
sys/dev/ic/i82365var.h
sys/dev/isa/i82365_isasubr.c
sys/dev/pci/files.pci
sys/dev/pcmcia/pcmcia.c
sys/dev/pcmcia/pcmciachip.h

The added files are listed below.

sys/arch/i386/conf/CARDBUS
sys/arch/i386/include/rbus_machdep.h
sys/arch/i386/i386/rbus_machdep.c
sys/arch/macppc/include/rbus_machdep.h
sys/arch/macppc/macppc/rbus_machdep.c
sys/dev/cardbus/if_ex_cardbus.c
sys/dev/cardbus/Makefile.cardbusdevs
sys/dev/cardbus/cardbus.c
sys/dev/cardbus/cardbus_map.c
sys/dev/cardbus/cardbusdevs
sys/dev/cardbus/cardbusdevs.h
sys/dev/cardbus/cardbusdevs_data.h
sys/dev/cardbus/cardbusvar.h
sys/dev/cardbus/cardslot.c
sys/dev/cardbus/cardslotvar.h
sys/dev/cardbus/devlist2h.awk
sys/dev/cardbus/files.cardbus
sys/dev/cardbus/if_fxp_cardbus.c
sys/dev/cardbus/pccardcis.h
sys/dev/cardbus/rbus.c
sys/dev/cardbus/rbus.h
sys/dev/pci/pccbb.c
sys/dev/pci/pccbbreg.h
sys/dev/pci/pccbbvar.h
 1.13  24-Dec-1998  marc branches: 1.13.8;
add quirk support for cards which lie extensively about their CIS
 1.12  24-Dec-1998  marc add code to permit pcmcia intr debugging
 1.11  17-Nov-1998  thorpej Finish implementing interrupt-driven card insertion and removal support.

- Deactivate the card on removal and queue a REMOVAL event for the socket's
event thread to finish the detach.
- Queue an INSERTION event for the socket's event thread on insertion.

Implement a few missing infrastructure pieces to support this.

Hot swapping of PCMCIA cards now "works". (Not quite; things like network
devices need changes for their respestive subsystems. These changes are
coming soon...)
 1.10  14-Nov-1998  thorpej Make a comment about what pcmcia_detach_card() should do.
 1.9  13-Aug-1998  eeh Merge paddr_t changes into the main branch.
 1.8  09-Jun-1998  thorpej branches: 1.8.2;
Nuke __BROKEN_INDIRECT_CONFIG.
 1.7  05-Jun-1998  enami In the function pcmcia_card_gettype:
- When there is only one pcmcia function, don't use first config
entry to determine card type. Instead, use the config entry
actually used to initialize the pcmcia function if it is already
initialized, else a card is memory-type.
- Don't put a space after cast.
- Use SIMPLEQ_FIRST/NEXT macro.
 1.6  07-Mar-1998  christos - remove duplicate setting of CCR
- fix debugging code so that it compiles
- reorder the disabling code so that it is more logical
- add splhigh()/splx() in the first establish setting for symmetry
 1.5  01-Feb-1998  marc rewrite mfc intr management not to use unexported spl* functions
add mfc iobase/iosize support
add power management support
 1.4  12-Jan-1998  thorpej Update for changes to config.
 1.3  19-Oct-1997  enami Include locators.h and use symbolic name comes from it.
 1.2  16-Oct-1997  thorpej Pull marc-pcmcia branch down from trunk.
 1.1  30-Jul-1997  marc branches: 1.1.2;
file pcmcia.c was initially added on branch marc-pcmcia.
 1.1.2.14  16-Oct-1997  thorpej Copyright/license update.
 1.1.2.13  16-Oct-1997  thorpej Pass down the start and side of the i/o space allocation range to
the "pcmcia" layer so that drivers with Very Special i/o space allocation
needs can know what range they should be dealing with.
 1.1.2.12  15-Oct-1997  enami defopt PCMCIAVERBOSE.
 1.1.2.11  15-Oct-1997  enami No need to cast a generic pointer.
 1.1.2.10  14-Oct-1997  thorpej KNF, RCS IDs.
 1.1.2.9  29-Sep-1997  thorpej - In pcmcia_function_enable(), don't panic if the function is already
enabled; just return, instead.
- In pcmcia_function_disable(), add a check for "function is already
disabled", and, if it is, just return.
 1.1.2.8  27-Sep-1997  marc - add a card_gettype function to the chip->pcmcia interface, and remove
the variable from the card_attach function
- add power management calls
 1.1.2.7  23-Aug-1997  thorpej Split up pcmcia_enable_function() into pcmcia_function_init() and
pcmcia_function_enable(). Implement pcmcia_function_disable().
If the enabled count on a socket reaches 0, call the chipset-level
socket disable function. If the enabled count becomes non-0, call
the chipset-level socket enable function.
 1.1.2.6  11-Aug-1997  thorpej Pass the PCMCIA function structure rather than an IRQ mask to the
interrupt establish function.
 1.1.2.5  10-Aug-1997  thorpej Create a structure to encapsulate information about allocated i/o and
mem space on the pcmcia bus. Use this in chip-level window enable
functions rather than making assumptions about the bus space handles.

Also, clean up lots of debugging prints. Use patchables to enable them.
 1.1.2.4  31-Jul-1997  thorpej Pay attention to the "valid IRQ mask" in a device's CIS information.
This adds an additional "irqmask" argument to the chip-level "intr_establish"
functions.
 1.1.2.3  30-Jul-1997  thorpej If Really Verbse Debugging is compiled in, use a patchable variable to
turn the messages on/off, so you can clean up the output without rebuilding.
 1.1.2.2  30-Jul-1997  marc add the pcmcia device dir.
 1.1.2.1  30-Jul-1997  marc added pcmcia infrastructure and a few devices
 1.8.2.1  30-Jul-1998  eeh Split vm_offset_t and vm_size_t into paddr_t, psize_t, vaddr_t, and vsize_t.
 1.13.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.14.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.23.2.6  03-Jan-2003  thorpej Sync with HEAD.
 1.23.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.23.2.4  20-Jun-2002  nathanw Catch up to -current.
 1.23.2.3  08-Jan-2002  nathanw Catch up to -current.
 1.23.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.23.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.25.2.3  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.25.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.25.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.28.8.1  20-Jun-2002  gehenna catch up with -current.
 1.35.2.8  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.35.2.7  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.35.2.6  04-Feb-2005  skrll Sync with HEAD.
 1.35.2.5  21-Sep-2004  skrll Fix the sync with head I botched.
 1.35.2.4  18-Sep-2004  skrll Sync with HEAD.
 1.35.2.3  25-Aug-2004  skrll Sync with HEAD.
 1.35.2.2  12-Aug-2004  skrll Sync with HEAD.
 1.35.2.1  03-Aug-2004  skrll Sync with HEAD
 1.71.6.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.71.6.1  12-Feb-2005  yamt sync with head.
 1.71.4.1  29-Apr-2005  kent sync with -current
 1.73.4.4  21-Jan-2008  yamt sync with head
 1.73.4.3  07-Dec-2007  yamt sync with head
 1.73.4.2  30-Dec-2006  yamt sync with head.
 1.73.4.1  21-Jun-2006  yamt sync with head.
 1.73.2.1  12-Sep-2005  tron Pull up following revision(s) (requested by christos in ticket #761):
sys/dev/pcmcia/pcmcia.c: revision 1.74
PR/30995: Wada Keiji: pcmcia interface can't use ne2000 compatible card
Call pcmcia_socket_settype sooner. I removed the later call, so the submitter
should test the final code before I close the PR.
 1.78.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.78.10.1  19-Apr-2006  elad sync with head.
 1.78.8.1  01-Apr-2006  yamt sync with head.
 1.78.6.1  22-Apr-2006  simonb Sync with head.
 1.78.4.1  09-Sep-2006  rpaulo sync with head
 1.79.10.2  10-Dec-2006  yamt sync with head.
 1.79.10.1  22-Oct-2006  yamt sync with head
 1.79.8.1  18-Nov-2006  ad Sync with head.
 1.79.4.1  15-Jun-2006  gdamore Adapt to new com framework.
 1.82.30.2  27-Dec-2007  mjf Sync with HEAD.
 1.82.30.1  08-Dec-2007  mjf Sync with HEAD.
 1.82.24.1  09-Jan-2008  matt sync with HEAD
 1.82.22.4  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.82.22.3  01-Dec-2007  jmcneill Sync with HEAD.
 1.82.22.2  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.82.22.1  04-Sep-2007  joerg Add a basic generic network power management handler for PCMCIA as well.
Contrary to the versions for PCI/Cardbus, expect the caller to provide
the status variable as we currently have no way in hardware to do that.

This handler should be extended to power down/power up the slots on
D0/D3 transistions.
 1.83.4.1  11-Dec-2007  yamt sync with head.
 1.83.2.1  26-Dec-2007  ad Sync with head.
 1.84.2.1  02-Jan-2008  bouyer Sync with HEAD
 1.85.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.85.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.86.8.1  18-Jul-2008  simonb Sync with head.
 1.86.6.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.86.4.2  16-May-2009  yamt sync with head
 1.86.4.1  04-May-2009  yamt sync with head.
 1.87.10.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.87.4.1  28-Apr-2009  skrll Sync with HEAD.
 1.94.70.3  28-Mar-2021  thorpej - Unwrap a line.
- No need to be explcit about interface attribute.
 1.94.70.2  22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.94.70.1  22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.95.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed