Commit Graph

109 Commits

Author SHA1 Message Date
bde
5f62f0e8d0 Changed the type of an isa/general interrupt handler to take a
`void *' arg.  Fixed or hid most of the resulting type mismatches.
Handlers can now be updated locally (except for reworking their
global declarations in isa_device.h).
1998-06-18 15:32:09 +00:00
dfr
1d5f38ac22 This commit fixes various 64bit portability problems required for
FreeBSD/alpha.  The most significant item is to change the command
argument to ioctl functions from int to u_long.  This change brings us
inline with various other BSD versions.  Driver writers may like to
use (__FreeBSD_version == 300003) to detect this change.

The prototype FreeBSD/alpha machdep will follow in a couple of days
time.
1998-06-07 17:13:14 +00:00
kato
9d55c8f6ae Include pc98.h instead of isa.h when PC98 is defined. 1998-05-05 13:21:08 +00:00
nate
56d762105b - Give up trying for a simple solution for correctly recognizing if a card
was really removed, or simply 'faked' by a suspend/resume.  Keep track
  of both current and previous state, and send that information to the
  userland programs.

[
XXX - This breaks binary compatability with older pccardd programs, but
they don't work reliably. :(
]
1998-04-20 15:21:02 +00:00
nate
26ef0a3053 - Only poll the PCIC controller for insertion/removal events if the
controller hasn't been assigned an IRQ.
1998-04-20 15:15:20 +00:00
bde
b598f559b2 Support compiling with `gcc -ansi'. 1998-04-15 17:47:40 +00:00
nate
dc4e7fd7a9 - Whoops, better have the structure created before trying to use it in
the patch I just submitted.

Noticed by:     phk
1998-04-09 14:01:13 +00:00
nate
4c738b0efc - Fix bug I introduced a few months ago. If a driver fails the probe,
correctly unregister the interrupt from the system.

[ My fix is much simpler than the one provided in the PR ]

PR:		6249
1998-04-08 15:00:02 +00:00
hosokawa
309af0bbe2 Uninitialized pointer reference may happen on particular environment.
(for example, it kills my new laptop, Toshiba Libretto 100....)
1998-03-19 16:19:16 +00:00
bde
d185d33240 Removed unused #includes. 1998-02-25 05:58:50 +00:00
nate
b4a0168724 - Removed typo in Copyright and added Id. 1998-02-07 20:41:20 +00:00
eivind
71ddd31390 Make all file-system (MFS, FFS, NFS, LFS, DEVFS) related option new-style.
This introduce an xxxFS_BOOT for each of the rootable filesystems.
(Presently not required, but encouraged to allow a smooth move of option *FS
to opt_dontuse.h later.)

LFS is temporarily disabled, and will be re-enabled tomorrow.
1998-01-24 02:54:56 +00:00
nate
e5842c1bb3 - Support for multiple PD6832 controllers. Each found 6832 is assigned
and initializes the next two ports in order starting at 03e0.  This
  also patches pcic_p.h to reduce the I/O ports mapped from 4 to 2.

Submitted by:	Ted Faber <faber@ISI.EDU>
1998-01-20 21:11:03 +00:00
msmith
d9810a8a17 Specify the minor number correctly when creating devfs entries. 1998-01-02 13:35:06 +00:00
nate
f62923dce9 - Remove the code that cleared out the registers (previously enabled by the
option PCIC_NOCLRREGS).  This is now the default behavior since it's
  apparently required for the CLPD6832, and doesn't negatively affect
  any of my test machines.

Requested by:	Ted Faber <faber@ISI.EDU>
1997-12-02 23:23:14 +00:00
nate
efe10091d3 - Add necessary include files and fix bugs in last. 1997-12-02 22:27:58 +00:00
nate
781ba4a835 - Bring in code removed from /sys/pccard/pcic.c, including DEVICE IDs, and
more bootverbose code.
- Style nits.

No significant functional changes.
1997-12-02 22:13:59 +00:00
nate
90dedcdd03 - Remove PCI code from here, now that the PCI framework lives in /sys/pci. 1997-12-02 21:31:35 +00:00
nate
56dacb56e8 - Framework for PCI/CardBus controllers running in PCMCIA emulation
mode.  Currently, the only supported controller is the Cirrus Logic
  PD6832, but others can be supported with docs on them.

Submitted by:	Ted Faber <faber@ISI.EDU>
1997-12-02 21:26:41 +00:00
nate
74865cf25a - Renamed 'card.h' to 'cardinfo.h', to avoid namespace collisions with
the card.h that config builds.

[ Repository renaming done in the background to save the card.h history ]
1997-11-18 21:04:01 +00:00
nate
0bdadfcd1b MF22:
(update_intr_masks might not need to be done in 3.X, but the new generic
 interrupt code is incomplete w/regard to support for the PCCARD code, so
 to avoid any potential problems use it.  It can't hurt).

- Correctly register pcic_imask with the system interrupt code.

- Call update_intr_masks() so that pcic_imask modifications that occur
  when card interrupts are registered get updated in the system
  interrupt code.
1997-11-15 14:20:31 +00:00
nate
dc73737576 - Reset the pcic controller interrupt 'poll' timeout *after* we call the
interrupt routine.
1997-11-04 17:50:23 +00:00
nate
f6deed1a05 - More style nits (sorry, I should have done this last time). 1997-10-28 20:58:53 +00:00
nate
44f2868788 - Style nit. 1997-10-28 20:50:58 +00:00
nate
2e553bc250 - Disable cards when doing a suspend by emulating that they have been
removed.  Add a new state 'suspend' so we 'fake' insertion events at
  resume time for the cards that have been suspended.

[
The code still works if you remove the card during suspend, switch the
card during suspend, or combinations of both.
]

Reviewed by:	frf@xocolatl.com
1997-10-28 17:51:25 +00:00
nate
fa55951ed5 - Instead of relying on a functional call to register PCARD-capable drivers,
use a Linker Set.  Note, if a driver is loaded as an LKM  if will have
  to use the function call, but since none of the existing drivers
  are loadable, this made things cleaner and boot messages nicer.

Obtained from:	PAO-970616
1997-10-26 21:08:42 +00:00
nate
84c3cb0136 - Patch the 'skeleton' example driver to be more consistant with the new
state of the world.
1997-10-26 21:01:44 +00:00
nate
0689fa1ceb - 'Beep' support now happens in it's own separate file, so you can mess
around with different noises for the different events and not have it
  affect other files.

Inspired by:	PAO
1997-10-26 06:06:54 +00:00
nate
2f55d3018b - Functional changes to PCCARD support.
* Kill individual drivers 'suspend' routines, since there's no simple/safe
   way to suspend/resume a card w/out going through the complete probe
   at initialization time.
 * Default to using the apm_pccard_resume sysctl code, which basically
   pretends the card was removed, and then re-inserted.  Suspend/resume
   is now 'emulated' with a fake insert/removal.  (Hence we no longer
   need the driver-specific suspend routines.)
1997-10-26 04:54:16 +00:00
nate
c68183d0b8 - Do a bunch of gratuitous changes intended to make the code easier to
follow.
 * Rename/reorder all of the pccard structures, change many of the member
   names to be descriptive, and follow more closely other 'bus' drivers
   naming schemes.
 * Rename a bunch of parameter and local variable names to be more
   consistant in the code.
 * Renamed the PCCARD 'crd' device to be the 'card' device
 * KNF and make the code consistant where it was obvious.
 * ifdef'd out some unused code
1997-10-26 04:36:24 +00:00
nate
bc21da1f3f - Call 'callout_handle_init' on the two timeout channels after they are
created in the new slot controller structure.
1997-10-26 02:55:31 +00:00
nate
35f6cb0d89 - KNF the PCI stuff, no functional changes. 1997-10-25 21:02:44 +00:00
nate
3eaafbfd4a - Recognize the Cirrus Logic PD6729/6730 PC-Card Controller behind the
PCI bus.

[ Re-organized the code to be easier to extend, based on Michael's patch ]

Submitted by:	Michael Reifenberger <root@totum.plaut.de>
1997-10-24 15:39:00 +00:00
nate
58e051f462 - Use the definitions found in <i386/isa/isa.h> instead of rolling our
own definition of ISA_HOLE_START.  We shouldn't need to include
  bus/processor specific code in here, but it is required.  At least by
  doing it this way it becomes more obvious where the bogusness is.

Obtained from:	email with bde
1997-10-24 15:27:16 +00:00
nate
ec74e6f8df - defined constant ISA_HOLE_START (would be nice to include machine/pmap.h,
but it has too much baggage).
- create a new routine 'unregister_device_interrupt', which is now used
  instead of having two routines with the same code snippet.
- Minor cleanups and commenting.

[ No functional changes, just moving things around ]
1997-10-23 22:54:47 +00:00
nate
26825b2fa5 - Move the untimeout code call out of the check for pwr_off_pending. It
shouldn't make any difference, but did on a couple of test systems.
1997-10-23 19:00:16 +00:00
nate
a952c7a5aa - Fix braino in last commit. (Slow networks should be outlawed!) 1997-10-23 04:53:32 +00:00
nate
fdcf922d4f - When doing suspend/resume, only try to suspend those drivers on active
slots.  Otherwise, we try to suspend drivers who have been disabled
  already.

[
The only reason the drivers are still on the list is because of race
conditions where the card is removed while the driver is in use.  We
leave the drivers on the slot list (leaving all of their structures in
place in case a process is using it) but set it's state to empty so that
further uses by the pccard code know not to expect active cards.
]
1997-10-23 02:30:39 +00:00
nate
74b704148b Back our V1.36, due to reports of badness. (IRQ's are again allocated
from the 'lower' interrupts to the 'higher' interrupts.)  We need to
find a way to set the interrupt for the controller in the config file.

Determined by:	handy@sag.space.lockheed.com
1997-10-23 02:25:14 +00:00
nate
251c8be0fe - Simplify code by removing a variable which was initialized once, never
modified, and was expected to have the initialized value.
1997-10-23 00:51:29 +00:00
wollman
2ab6ede5b5 LEarn about the TI 1131. 1997-10-17 16:34:08 +00:00
nate
ecf78217f1 - Bring in APM_PCCARD_RESUME support from PAO, FreeBSD style. This new
sysctl option 'fakes' like a card was removed and inserted when the
  machine is brought up again from a suspend.  It is disabled by default,
  and the old code is used.
Obtained from:	PAO
1997-10-06 05:46:03 +00:00
nate
f58026beed - Include <sys/interrupt.h> to avoid compiler errors. 1997-10-06 04:32:42 +00:00
nate
8c30ca691b - Fix braino in last commit. 1997-10-06 04:02:42 +00:00
nate
6bcfcc5792 Modem cards send the speaker audio (dialing noises) to the host's
speaker.  Cirrus Logic PCIC chips must enable this.  There is also a Low
Power Dynamic Mode bit that claims to reduce power consumption by 30%,
so enable it and hope for the best.

PR:		4650
Submitted by:	Nick Sayer <nsayer@quack.kfu.com>
1997-10-06 03:17:36 +00:00
nate
46da712d66 - Allocate the 'PCIC' interrupt from the last available (higher #) IRQ
instead of the first available, like Win95 does.  This appears to help
  on some machines, and avoids potential problems with built-in serial
  ports which tend to live at IRQ 3, which is usually picked with the
  old method.
1997-10-06 02:56:15 +00:00
nate
d4fe8d6ee9 - Don't start at IRQ 0 in build-freelist, but instead start at IRQ 1.
(Not sure if this makes muich difference, but you never know.)
1997-10-06 02:54:19 +00:00
nate
34e8b1944e - Style police
- Updated some comments using data from the most recent PAO release.

Obtained (partially) from:	PAO-970616
1997-10-06 02:46:38 +00:00
gibbs
a415512fd4 Update for new callout interface. 1997-09-21 22:02:25 +00:00
peter
796eb5ce0a Update select -> poll in drivers. 1997-09-14 03:19:42 +00:00