Home | History | Annotate | Download | only in pcmcia
History log of /src/sys/dev/pcmcia/if_ep_pcmcia.c
RevisionDateAuthorComments
 1.64  07-Jul-2016  msaitoh KNF. Remove extra spaces. No functional change.
 1.63  05-Sep-2009  tsutsui branches: 1.63.22; 1.63.40;
Replace shutdownhook_establish(9) with pmf_device_register1(9) in
MI epconfig() and ep_detach(), and remove pmf(9) calls in pcmcia attachment.
Tested on ep0 at pci, but pcmcia attachment is untested.
 1.62  27-Aug-2008  christos device_t changes, pmf, minor knf.
 1.61  28-Apr-2008  martin branches: 1.61.2; 1.61.6;
Remove clause 3 and 4 from TNF licenses
 1.60  05-Apr-2008  cegger branches: 1.60.2; 1.60.4;
use aprint_*_dev and device_xname
 1.59  19-Oct-2007  ad branches: 1.59.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.58  16-Nov-2006  christos branches: 1.58.8; 1.58.22; 1.58.24; 1.58.28;
__unused removal on arguments; approved by core.
 1.57  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.56  24-Sep-2006  jmcneill Add "name" parameter to powerhook_establish, to aid debugging. No objections
on tech-kern@
 1.55  11-Jul-2006  peter branches: 1.55.4; 1.55.6;
Add power hooks for "ep* at pcmcia?".

ok christos@
 1.54  11-Dec-2005  christos branches: 1.54.4; 1.54.8; 1.54.16;
merge ktrace-lwp.
 1.53  04-Feb-2005  perry branches: 1.53.6;
de-__P
 1.52  10-Aug-2004  mycroft branches: 1.52.4; 1.52.6;
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.51  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.50  10-Aug-2004  mycroft More careful about cleaning up pointers.
 1.49  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.48  10-Aug-2004  mycroft Copyright maintenance.
 1.47  09-Aug-2004  mycroft Minor code reduction.
 1.46  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.45  09-Aug-2004  mycroft Do our io_map()s and intr_establish()es earlier.
 1.44  09-Aug-2004  mycroft Use PCMCIA_WIDTH_AUTO, not PCMCIA_WIDTH_IO16, since we (sometimes) do 8-bit
access.
 1.43  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.42  07-Jul-2004  mycroft Clean up attach messages.
 1.41  02-Oct-2002  thorpej branches: 1.41.6;
Add trailing ; to CFATTACH_DECL.
 1.40  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.39  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.38  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.37  10-Mar-2002  christos branches: 1.37.4;
Search for space to attach a 3c562d correctly. From Hayakawa Koichi
<haya@netbsd.org>, thanks.
 1.36  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.35  13-Nov-2001  lukem add RCSIDs
 1.34  01-Jul-2001  thorpej branches: 1.34.2;
Remove unneeded include files. From Onno van der Linden.
 1.33  08-May-2000  augustss branches: 1.33.4; 1.33.6;
Swap the order of disabling the function and disestablishing the interrupt
on detach. This avoid accessing unmapped registers on multi-function cards.
 1.32  13-Mar-2000  cgd tabbing consistency on the 3c1 entry
 1.31  13-Mar-2000  cgd add an entry to the product table for the 3C1. This seems to work,
at least as necessary to pull out the MAC address, etc. Not actually
tested xmit & rcv yet.
 1.30  08-Feb-2000  enami - Bail out from attach stage if failed to enable card, number of iospace
or memspace is unexpected, failed to map iospace or failed to configure
the controller properly.
- Disestablish an interrupt handler if failed to enable card.
 1.29  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.28  02-Feb-2000  augustss Move detach operations around a little to simplify (and perhaps get it
right?). Prompted by Jason, itojun and myself.
 1.27  02-Feb-2000  augustss Make sure to get rid of shutdown hook and ttach media on detach.
 1.26  02-Feb-2000  itojun wrap bpfdetach() with NBPFILTER > 0.
 1.25  02-Feb-2000  augustss Make ep driver detachable.
 1.24  11-Oct-1999  thorpej branches: 1.24.2;
Add support for the 3Com/Megahertz 3CCFEM556BI 10/100 Ethernet/Modem combo.
 1.23  14-Aug-1999  tron branches: 1.23.2;
Add support for 3Com 3CXEM556B-INT as suggested by Noriyuki KOIZUMI in
PR kern/8188.
 1.22  09-May-1999  thorpej Fix a couple of problems w/ 3c574 support. Doesn't quite work yet, but
it's a little closer.
 1.21  24-Dec-1998  marc branches: 1.21.2; 1.21.4;
add an entry to the products array for the
PCMCIA_PRODUCT_3COM_3CXEM556.

This device requires the same CCR hack as the 3c562.
 1.20  18-Nov-1998  thorpej branches: 1.20.2;
Now that the *_activate() functions don't do things which are attachment
specific, move them into the chipset drivers.
 1.19  18-Nov-1998  thorpej Move the i/o window unmap and i/o space free into *_detach().
 1.18  17-Nov-1998  thorpej Add detach and activate entry points. Mostly functional except for
#ifdef notyet'd if_delref() and if_detach(), which will be fixed up
when that code is committed.
 1.17  04-Nov-1998  fvdl Add the 'ex' driver, a DMA driver for 3Com 90x and 90xB cards. Rename
constants from EP_ to ELINK_ since they're now used in the ex driver as well.
 1.16  17-Aug-1998  thorpej First-crack at RoadRunner (3c574-TX 10/100Mbps PCMCIA). Doens't yet use
any of the RoadRunner speed hacks.
 1.15  15-Aug-1998  thorpej Fix a brain'o that caused the 3c589 to not match.
 1.14  15-Aug-1998  thorpej Look up the PCMCIA 3Com products in a table-driven fashion, like the
PCI products.
 1.13  12-Aug-1998  thorpej Completely rewrite media selection. Add support for the MII/PHY on
the 3Com 3c905-TX and 3c905-T4. Fix handling of the MII on the
3c595-MII and 3c597-MII (can't talk to the PHYs on these cards; just
use "manual" for the external MII port).

Fixes kern/4782 (Chris Demetriou).
 1.12  20-Jul-1998  mellon Fix typo.
 1.11  19-Jul-1998  christos Add a devlist2h.awk so that we don't sprinkle the same constants over
each device driver file and use it.
 1.10  05-Jul-1998  jonathan defopt NS, NSIP.
 1.9  05-Jul-1998  jonathan defopt INET, NETATALK.
 1.8  09-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.7  31-Mar-1998  thorpej Don't establish the interrupt handler just to read the MAC address.
 1.6  09-Mar-1998  christos - more 3c562 magic; document that the 0x88 tuple only works in 3c562a-c
and not in d where it goes back to use the eeprom method. So we detect
when the tuple method fails and fall back to the original method.
- even more 3c562 magic; the updated linux driver mentions that addresses
0x??00-0x??7f only work instead of the previous...
 1.5  01-Feb-1998  marc fix up the power management code to dtrt with the 3c562A mfc card (and
hopefully the other variants)
 1.4  11-Jan-1998  marc change the initial loop condition not to round up if the iobase starts
<= 0x70
 1.3  30-Nov-1997  drochner fix argument declaration inconsistency in the
non-"__BROKEN_INDIRECT_CONFIG" case
 1.2  16-Oct-1997  thorpej branches: 1.2.2;
Pull marc-pcmcia branch down from trunk.
 1.1  30-Jul-1997  marc branches: 1.1.2;
file if_ep_pcmcia.c was initially added on branch marc-pcmcia.
 1.1.2.15  16-Oct-1997  thorpej Copyright/license update.
 1.1.2.14  16-Oct-1997  thorpej Don't try to run off the end of the allowable i/o allocation range.
 1.1.2.13  16-Oct-1997  thorpej In the 3c562 case, pay attention to the "i/o allocation range start" when
doing the Very Special i/o allocation this card apparently needs.
 1.1.2.12  16-Oct-1997  thorpej Simplify the match function a bit.
 1.1.2.11  16-Oct-1997  thorpej Don't establish our interrupt hander at attach time. Instead, establish
it in the enable hook, and disestablish it in the disable hook. This gives
us two wins:

- Allows us to more fairly allocate an interrupt after other
devices which can't do dynamic allocation have hooked up
theirs.

- In the event the default interrupt allocation scheme is bad,
this allows us to bring an interface down, patch a kernel
variable (eventually, run a program that does the right
thing for us) to set up an interrupt allocation scheme suitable
for our laptop model, bring the interface back up, and have
the Right Thing happen.
 1.1.2.10  15-Oct-1997  enami No need to cast a generic pointer.
 1.1.2.9  14-Oct-1997  thorpej KNF, RCS IDs.
 1.1.2.8  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.7  29-Sep-1997  thorpej Make the "enable" and "disable" hooks take pointers to the softc, rather
than void * and a separately specified argument.
 1.1.2.6  27-Sep-1997  marc added enable/disable hooks for elink3 layer to do power management.
 1.1.2.5  23-Aug-1997  thorpej Update for changes to pcmcia function manipulation.
 1.1.2.4  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.3  31-Jul-1997  thorpej Remove some gratuitous debugging printfs; this information is already
displayed elsewhere.
 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.2.2.1  07-Feb-1998  mellon Pull up 1.3 and 1.4 (marc)
 1.20.2.1  11-Dec-1998  kenh The beginnings of interface detach support. Still some bugs, but mostly
works for me.

This work was originally by Bill Studenmund, and cleaned up by me.
 1.21.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.21.2.2  08-Feb-2000  he Pull up revisions 1.23-1.24 (requested by enami):
Add support for 3Com/Megaherz 10/100 Ethernet Modem combined
card (3CCFEM556BI and 3CXEM556B-INT). Should fix PR#8331 and
PR#8188.
 1.21.2.1  06-Feb-2000  he Pull up revision 1.22 (requested by enami):
Add support for the 3Com 3c574. Partially based on PR#8331.
 1.23.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.24.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.33.6.6  18-Oct-2002  nathanw Catch up to -current.
 1.33.6.5  20-Jun-2002  nathanw Catch up to -current.
 1.33.6.4  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.33.6.3  08-Jan-2002  nathanw Catch up to -current.
 1.33.6.2  14-Nov-2001  nathanw Catch up to -current.
 1.33.6.1  24-Aug-2001  nathanw Catch up with -current.
 1.33.4.1  28-Mar-2002  he Pull up revision 1.37 (requested by haya):
Search for space to attach 3c562 correctly.
 1.34.2.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.34.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.34.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.34.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.37.4.1  20-Jun-2002  gehenna catch up with -current.
 1.41.6.5  04-Feb-2005  skrll Sync with HEAD.
 1.41.6.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.41.6.3  18-Sep-2004  skrll Sync with HEAD.
 1.41.6.2  12-Aug-2004  skrll Sync with HEAD.
 1.41.6.1  03-Aug-2004  skrll Sync with HEAD
 1.52.6.1  12-Feb-2005  yamt sync with head.
 1.52.4.1  29-Apr-2005  kent sync with -current
 1.53.6.2  27-Oct-2007  yamt sync with head.
 1.53.6.1  30-Dec-2006  yamt sync with head.
 1.54.16.1  13-Jul-2006  gdamore Merge from HEAD.
 1.54.8.1  11-Aug-2006  yamt sync with head
 1.54.4.1  09-Sep-2006  rpaulo sync with head
 1.55.6.2  10-Dec-2006  yamt sync with head.
 1.55.6.1  22-Oct-2006  yamt sync with head
 1.55.4.1  18-Nov-2006  ad Sync with head.
 1.58.28.1  25-Oct-2007  bouyer Sync with HEAD.
 1.58.24.1  06-Nov-2007  matt sync with HEAD
 1.58.22.1  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.58.8.1  23-Oct-2007  ad Sync with head.
 1.59.16.2  28-Sep-2008  mjf Sync with HEAD.
 1.59.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.60.4.3  16-Sep-2009  yamt sync with head
 1.60.4.2  04-May-2009  yamt sync with head.
 1.60.4.1  16-May-2008  yamt sync with head.
 1.60.2.1  18-May-2008  yamt sync with head.
 1.61.6.1  19-Oct-2008  haad Sync with HEAD.
 1.61.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.63.40.1  09-Jul-2016  skrll Sync with HEAD
 1.63.22.1  03-Dec-2017  jdolecek update from HEAD

RSS XML Feed