Home | History | Annotate | Download | only in pcmcia
History log of /src/sys/dev/pcmcia/com_pcmcia.c
RevisionDateAuthorComments
 1.62  08-Dec-2018  thorpej Clean up initialization of com_regs structure, in preparation for
some additional changers.
 1.61  23-Nov-2009  rmind branches: 1.61.62; 1.61.64;
Remove some unecessary includes sys/user.h header.
 1.60  12-Nov-2009  dyoung Call com_detach() before doing any bus-specific detachment.

Don't use com_activate(), it's going away.
 1.59  27-Aug-2008  christos pmf_register.
 1.58  28-Apr-2008  martin branches: 1.58.2; 1.58.6;
Remove clause 3 and 4 from TNF licenses
 1.57  14-Mar-2008  cube branches: 1.57.2; 1.57.4;
Split device_t and softc for all com(4) devices (well, everything that
uses a com_softc backend). Use proper types and ansify where appropriate.
 1.56  19-Oct-2007  ad branches: 1.56.12; 1.56.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.55  22-Sep-2007  kiyohara branches: 1.55.4;
Add TDK Bluetooth PC Card.
and reorder.
 1.54  16-Nov-2006  christos branches: 1.54.8; 1.54.22; 1.54.24;
__unused removal on arguments; approved by core.
 1.53  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.52  13-Jul-2006  gdamore branches: 1.52.4; 1.52.6;
Add an option COM_REGMAP to allow com(4) to use an array of register indices.
This allows us to convert aucom to just another com attachment, and cleanup
some code in the com_arbus.c.

Additionally, we use a common com_cleanup routine rather than having a
zillion copies of it in the attachment points.

This has been tested on a number architectures, and it has been shown to get
close to comparable performance when COM_REGMAP is defined, and comparable
when it is not defined.

Approved by core@. Fixes PR port-evbmips/32362.
 1.51  11-Dec-2005  christos branches: 1.51.4; 1.51.8; 1.51.16;
merge ktrace-lwp.
 1.50  04-Feb-2005  perry branches: 1.50.6;
de-__P
 1.49  11-Aug-2004  mycroft branches: 1.49.4; 1.49.6;
Always use PCMCIA_WIDTH_AUTO rather than PCMCIA_WIDTH_IO16. This spec is
pretty clear on how this works.
 1.48  10-Aug-2004  mycroft Remove an extra printf().
 1.47  10-Aug-2004  mycroft Replace another home-grown matching function.
 1.46  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.45  10-Aug-2004  mycroft Copyright maintenance.
 1.44  10-Aug-2004  mycroft Use pcmcia_function_{configure,unconfigure}().
 1.43  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.42  09-Aug-2004  mycroft Do io_map() and intr_establish() before enabling the function, always. This
prevents "stray interrupts" during attach.
 1.41  09-Aug-2004  mycroft Use PCMCIA_WIDTH_AUTO, not PCMCIA_WIDTH_IO16, since we (sometimes) do 8-bit
access.
 1.40  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.39  07-Aug-2004  mycroft Clean up attach messages.
 1.38  07-Aug-2004  mycroft Clean up attach messages.
 1.37  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.36  07-Jul-2004  mycroft More PCMCIA_STR_* elimination.
 1.35  06-Jul-2004  mycroft Fix alignment argument to pcmcia_io_alloc() to prevent a gratuitous panic,
per PR 6069.
 1.34  23-Oct-2003  uwe Add missing newline at the end of an error message.
 1.33  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.32  02-Oct-2002  thorpej branches: 1.32.6;
Add trailing ; to CFATTACH_DECL.
 1.31  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.30  27-Sep-2002  thorpej Declare all cfattach structures const.
 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  13-Apr-2002  christos branches: 1.28.2;
PR/16058: Tero Kivinen: Don't attempt to free resources that we failed to
get in the attach phase.
 1.27  03-Apr-2002  christos make sure that we don't die if attach fails and we pull the card.
 1.26  10-Mar-2002  cyber _io_alloc and _io_map work in pairs, dont try to do anything with the data
until afterward the _io_map.
In some pcmcia chipsets the _io_alloc is a noop.
 1.25  24-Dec-2001  christos enable the card before trying to establish an interrupt because we need the
ccr mapped on multi-function cards.
 1.24  24-Dec-2001  christos when we disable, we first disestablish the interrupt and then the card.
when we enable, we first configure the card and then establish the interrupt.
This is so that the ccr is mapped on multifunction cards.
 1.23  15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.22  13-Nov-2001  lukem add RCSIDs
 1.21  14-Aug-1999  tron branches: 1.21.14; 1.21.16;
Add support for 3Com 3CXEM556B-INT as suggested by Noriyuki KOIZUMI in
PR kern/8188.
 1.20  23-May-1999  christos KNF!
 1.19  24-Dec-1998  marc branches: 1.19.4;
The PCMCIA_PRODUCT_3COM_3CXEM556 requires the same CCR hack as the
3c562.
 1.18  20-Dec-1998  nathanw Avoid using "generic" configuration table entries during first
resource allocation attempt - would crash system if a generic entry
preceded a workable specific entry.
Rearrange a little for clarity.
 1.17  19-Nov-1998  thorpej Make the attachment messages a little prettier:

com3 at pcmcia1 function 0 port 0x2e8-0x2ef: serial device
com3: ns16550a, working fifo

I.e. don't wrap the line.
 1.16  19-Nov-1998  thorpej Add support for hot-swapping PCMCIA serial devices.
 1.15  22-Aug-1998  msaitoh Allocate an I/O according to the config table entries.
Auto assign is done only when all cfe->iospace[0].start fails.
 1.14  17-Aug-1998  nathanw Reduce com_devs[] to those devices (one!) that we need to match by CIS
string comparison. Change com_dev_match() somewhat to reflect that.
 1.13  15-Aug-1998  mycroft Assign my copyrights to TNF.
 1.12  15-Aug-1998  thorpej Don't bother with the num_memspace check. It makes some otherwise-working
cards (e.g. Xircom CM33) fail needlessly.

From Jan van Doorn <jdoorn@nc.com>, PR #5580.
 1.11  13-Aug-1998  nathanw Rototill match algorithim. New scheme:

1. Does the function claim to be a serial port?
2. Does the function's configuration table present all four
standard ISA com port ranges?
3. Is the device in our table?

New serial devices do not need to be added to the table unless they
fail both (1) and (2).
 1.10  30-Jul-1998  thorpej Add the Simple Technology Communicator 28.8.
 1.9  19-Jul-1998  christos branches: 1.9.2;
Add a devlist2h.awk so that we don't sprinkle the same constants over
each device driver file and use it.
 1.8  13-Jul-1998  nathanw Add three more cards:
- USRobotics WorldPort 14.4 modem
- Mototola Personal Messenger 100c CDPD modem
- Socket Communications PageCard

Note: Most of this should be replaced with a com-port-detecting
heuristic better than the previous two.
 1.7  30-Jun-1998  augustss Add another modem card.
 1.6  23-Jun-1998  briggs Correct the order of arguments to pmatch().
 1.5  21-Jun-1998  christos Fix a variety of bogocities:
- Don't enable interrupts on attach time; we don't have to
- Don't assume that because a card has a cfe entry that matches one
of the standard com ports, is a modem; my floppy was recognized as
a modem! Require a match of the cis strings against *[Mm][Oo][Dd][Ee][Mm]*
- Print things in order so that we don't mess up the output with un-needed
newlines
- Using an array of cis identifiers to find e modem should not use the
function number; it is not reliable. For example 3c562[A-D] are different
Maybe this can go away altogether and print parts of the cis strings
 1.4  09-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.3  01-Feb-1998  marc use an array of serial devices, not a cascaded if
add power management support
 1.2  16-Oct-1997  thorpej Pull marc-pcmcia branch down from trunk.
 1.1  30-Jul-1997  marc branches: 1.1.2;
file com_pcmcia.c was initially added on branch marc-pcmcia.
 1.1.2.14  16-Oct-1997  thorpej Adjust for new "com" driver home.
 1.1.2.13  15-Oct-1997  thorpej Move a few bus-specific things into bus-specific softc structures and
nesting a com_softc within them.
 1.1.2.12  15-Oct-1997  enami No need to cast a generic pointer.
 1.1.2.11  14-Oct-1997  thorpej Explicitly align the allocated i/o space region to the size of the allocation.
This was previously implied, but we must explicitly specify it since some
cards may have more strict alignment requirements.
 1.1.2.10  06-Oct-1997  enami Include dev/isa/comreg.h to import the constant COM_FREQ. Initialize
sc->sc_frequency with COM_FREQ.
 1.1.2.9  13-Sep-1997  mycroft Recognize the modem portion of the IBM Home and Away card.
 1.1.2.8  23-Aug-1997  thorpej Update for changes to pcmcia function manipulation.
 1.1.2.7  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.6  05-Aug-1997  matt Suppress spurious printf.
 1.1.2.5  02-Aug-1997  matt If the device function matches COM[1-4] then it's a good bet
that's it's a com device. This hueristic works well for my
Multitech modem.

pcmcia1: CIS version 2.0 or 2.01
pcmcia1: CIS info: Multi-Tech, MT2834LT, FAX MODEM
pcmcia1: Manufacturer code ffffffff, product ffff
pcmcia1: function 0: multi-function, ccr addr 100 mask 3
pcmcia1: function 0, config table entry 32: I/O card; irq mask 86bc; iomask b, iospace 3f8-3ff; audio
pcmcia1: function 0, config table entry 33: I/O card; irq mask 86bc; iomask b, iospace 2f8-2ff; io8 audio
pcmcia1: function 0, config table entry 34: I/O card; irq mask 86bc; iomask b, iospace 3e8-3ef; io8 audio
pcmcia1: function 0, config table entry 35: I/O card; irq mask 86bc; iomask b, iospace 2e8-2ef; io8 audio
com1 at pcmcia1 function 0: ns16550a, working fifo
 1.1.2.4  31-Jul-1997  thorpej Remove some gratuitous debugging printfs; this information is already
displayed elsewhere.
 1.1.2.3  30-Jul-1997  thorpej This file wasn't updated for the #ifndef __CGD_INDIRECT_CONFIG ->
#ifdef __BROKEN_INDIRECT_CONFIG change.
 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.9.2.1  08-Aug-1998  eeh Revert cdevsw mmap routines to return int.
 1.19.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.21.16.4  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.21.16.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.21.16.2  16-Mar-2002  jdolecek Catch up with -current.
 1.21.16.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.21.14.6  18-Oct-2002  nathanw Catch up to -current.
 1.21.14.5  20-Jun-2002  nathanw Catch up to -current.
 1.21.14.4  17-Apr-2002  nathanw Catch up to -current.
 1.21.14.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.21.14.2  08-Jan-2002  nathanw Catch up to -current.
 1.21.14.1  14-Nov-2001  nathanw Catch up to -current.
 1.28.2.1  20-Jun-2002  gehenna catch up with -current.
 1.32.6.5  04-Feb-2005  skrll Sync with HEAD.
 1.32.6.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.32.6.3  18-Sep-2004  skrll Sync with HEAD.
 1.32.6.2  12-Aug-2004  skrll Sync with HEAD.
 1.32.6.1  03-Aug-2004  skrll Sync with HEAD
 1.49.6.1  12-Feb-2005  yamt sync with head.
 1.49.4.1  29-Apr-2005  kent sync with -current
 1.50.6.3  17-Mar-2008  yamt sync with head.
 1.50.6.2  27-Oct-2007  yamt sync with head.
 1.50.6.1  30-Dec-2006  yamt sync with head.
 1.51.16.4  17-Jun-2006  gdamore Undo the undo. Restore COM_INIT_REGS.
 1.51.16.3  17-Jun-2006  gdamore Revert COM_INIT_REGS.
 1.51.16.2  16-Jun-2006  gdamore Remove useless prototype for undefined com_pcmcia_cleanup.
 1.51.16.1  15-Jun-2006  gdamore Adapt to new com framework.
 1.51.8.1  11-Aug-2006  yamt sync with head
 1.51.4.1  09-Sep-2006  rpaulo sync with head
 1.52.6.2  10-Dec-2006  yamt sync with head.
 1.52.6.1  22-Oct-2006  yamt sync with head
 1.52.4.1  18-Nov-2006  ad Sync with head.
 1.54.24.2  23-Mar-2008  matt sync with HEAD
 1.54.24.1  06-Nov-2007  matt sync with HEAD
 1.54.22.2  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.54.22.1  02-Oct-2007  joerg Sync with HEAD.
 1.54.8.2  23-Oct-2007  ad Sync with head.
 1.54.8.1  09-Oct-2007  ad Sync with head.
 1.55.4.1  25-Oct-2007  bouyer Sync with HEAD.
 1.56.16.3  28-Sep-2008  mjf Sync with HEAD.
 1.56.16.2  02-Jun-2008  mjf Sync with HEAD.
 1.56.16.1  03-Apr-2008  mjf Sync with HEAD.
 1.56.12.1  24-Mar-2008  keiichi sync with head.
 1.57.4.3  11-Mar-2010  yamt sync with head
 1.57.4.2  04-May-2009  yamt sync with head.
 1.57.4.1  16-May-2008  yamt sync with head.
 1.57.2.1  18-May-2008  yamt sync with head.
 1.58.6.1  19-Oct-2008  haad Sync with HEAD.
 1.58.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.61.64.1  10-Jun-2019  christos Sync with HEAD
 1.61.62.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts

RSS XML Feed