Age | Commit message (Collapse) | Author |
|
|
|
On suspend, the apm code calls each function in its powerhook list. This list
contains pointers to functions that are to be executed on PWR_SUSPEND and
PWR_RESUME. One of these functions is pcmcia_power() which calls xxx_activate()
for each PC Card that is connected with the action DVACT_ACTIVATE (where xxx
is the name of the driver for the PC Card). On resume, the same thing happens,
except the action is DVACT_ACTIVATE.
Clearly, if a card is gone when we resume, trying to activate it is a bad idea.
This commit adds a pcic_power() function that runs before pcmcia_power(). On
resume, it uses pcic_intr_socket() to detect any events that occurred while we
were suspended. (I had to split pcic_event_thread() into a threaded part and
a non-threaded part, since the thread will not run when we are in interrupt
context, but I need the events to be processed before pcmcia_power() runs.) So,
by the time pcic_power() is through, all events that occurred during suspend
have been processed, and pcmcia_power() will not try to activate cards that are
not there since they have already been completely and properly detached.
Note that event handling for card removals first calls the deactivate functions
on the card then the detach functions. When we suspend, apm does the deactivate
for us. So on resume, if we detect a card has been removed, we skip the
deactivation step and just detach. We use the DVF_ACTIVE bit to determine
whether or not deactivation has already occurred. Deactivating a device that
has already been deactivated causes a panic.
|
|
config_activate() and config_deactivate() routines instead. This way, the
DVF_ACTIVE bit gets updated appropriately.
|
|
|
|
out. :-( It was never noticed until now since I didn't have an actual D-Link
550TX card to test with. Thanks to Gardner Cohen for sending me one of these.
|
|
|
|
|
|
|
|
waiting for resources, use the built-in facilities in tsleep.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
support CMD 648/649 UDMA66 controllers
fix promise UDMA66 cable check
|
|
|
|
|
|
|
|
the last commit for AX88190 support. There are at least three variants of ne's
that have manufacturer id 0x143 (Linksys) + product id 0xc1ab. Each one has its
enaddr in a different place.
The matching code for PCMCIA NE2000 is really gross. In particular, the flags
field in ne2000_devs (for NE2000DVF_DL10019 and NE2000_AX88190) is a complete
hack. The driver should really try each method of reading the Ethernet address
(from the ROM, DL10019, and AX88190) and choose the one that generates the
correct checksum.
I plan to fix this later...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the existing ones using 64bit vars. This makes netscape-solaris works on
sparc.
Particular note to those who want to try netscape:
- netscape 4.73 was used for testing on a ss5 with -current.
- apparently solaris uses pipes for communicating with the X server. I've
checked the libraries I've installed from a solaris 2.6 box, and although
there are references to X11-unix, it fails when it tries to open
X11-pipe/X0, so in order to test it you need to specify -display <box ip>:0
or it won't start.
- i got some errors when starting, but besides that, it works fine.
- it's not slow, but you better have all the requiered files in the correct
paths, or it'll take some time to start.
|
|
event notification from the pcic (if an interrupt is available) or allow the
insertion and removal of PCMCIA devices even if there is no IRQ for the pcic.
Each socket is checked for status change every 0.5 seconds using art's timeout
code. Insertion and removal events should no longer ever go unnoticed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
affects 905B only.
|
|
|
|
|
|
|
|
angelos, be more careful :)
|
|
|
|
|
|
poor man's encrypted file system with this. Blame the Greek. okay niklas@
|
|
remove restriction on scoped IPv6 address.
TODO: confirm it with other IPv6 AH implementation. since we use very
similar logic between KAME IPv6 AH and OpenBSD IPv6 AH, it is possible that
both side is making the same mistake or whatever
|
|
|
|
|
|
some laptops. Only seems to cause problems with some card, notably
wavelan and aironet.
|
|
function.
|
|
-march=ix86. (as it was done for 486).
|