Commit Graph

3941 Commits

Author SHA1 Message Date
mycroft 306522b970 I can't actually use the FORCE register this way. Just try turning the socket
power off.
2004-08-12 13:42:17 +00:00
mycroft 6b8a90b3fe A bunch of random cleanup:
* Like the i82365 code, add a "delay" function that uses tsleep() to wait, and
  use this in the socket enable/disable paths.  This gets rid of the annoying
  system pauses during card insertion and removal.  (There are still some
  issues related to this in various drivers -- notably big delay()s in wi and
  xi.)
* Move the power-change delay out of pccbb_power() and into the PCMCIA backend
  code -- specifically, once in the disable path and once in the enable path.
  We were being pretty schizo about this before.  Make these use tsleep().
  (Note: This should be safe because card insertion/removal is handled by a
  kernel process, not in an interrupt handler.  It works for me with
  DIAGNOSTIC.)
* If we get a "bad Vcc" error, attempt to force the socket to power off, and
  return an error.  If we don't do this, we will get "bad Vcc" errors forever
  and never be able to use another card without rebooting, which is dumb.
  XXX I haven't been able to test this very well, because it doesn't fail for
  me in the first place.  :-)
* Clean up the socket mappings earlier in the enable path.
* Try to be consistent about clearing PWRCTL (which contains OE) before turning
  off power.
2004-08-12 07:15:49 +00:00
thorpej 77cc762658 Don't assume wdc-specific ATA / ATAPI code should be brought in if atabus
or atapibus are configured; use a separate wdc_common attribute to indicate
that the shared wdc code is also present.
2004-08-12 04:23:02 +00:00
mycroft 33ee9cbce7 Oops; fix a compile error. 2004-08-11 01:05:42 +00:00
mycroft 51be90e8ac Be more liberal in torching the old state in the disable and settype routines. 2004-08-11 01:04:40 +00:00
mycroft a23e15bcbe 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!
2004-08-11 00:18:18 +00:00
mycroft 900254667d Don't pass a MAC address to wi_attach() -- yet. 2004-08-07 17:13:27 +00:00
soren 3dce04c6cd - Don't attempt to clear the CELV bit by setting it high like the
FIFOE/BCIS/LVBCI bits; it's is cleared automatically by the hardware.
- Separate AUICH_DEBUG out from AUDIO_DEBUG and make it possible to debug
  interrupt handling separately.
- A little KNF.
2004-08-07 16:12:57 +00:00
mycroft a84492326e Rework the power sequencing so that I stop getting unrecoverable "bad Vcc"
errors with PCMCIA cards.

I've been using this change for almost a year, but accidentally blew it away
recently, and boy did that suck.
2004-08-06 21:39:47 +00:00
mycroft 369d9bb279 Regen. 2004-08-05 21:44:01 +00:00
mycroft ed38d701a1 Fix an Aironet product name, and normalize the usage of "Mini-PCI". 2004-08-05 21:43:46 +00:00
thorpej 867e9734f2 - Dump the mbuf chain if we encounter a "too many DMA segments" error
on transmit.
- On 82544 and up, allocate 4096 Tx descriptors rather than just 256.
  82543 and down must still use 256, due to errata.
- Allow up to 256 DMA segments per packet.  I have observed some truly
  pathological mbuf chains under certain (admittedly uncommon) workloads
  when jumbo frames are in use.
2004-08-05 19:11:11 +00:00
drochner f024db680d simplify some pointer arithmetics which uses typecasts on the LHS
so that gcc-3.4 doesn't complain
2004-08-05 16:43:59 +00:00
cube e16640cc67 Regen. 2004-08-05 16:26:41 +00:00
cube e492e6ec13 Add the GeForce 5900XT. Totally not related to Doom3 release. Honest. 2004-08-05 16:26:05 +00:00
lukem 7d850ebd8c consistently use "product<SPACE>" 2004-08-05 01:48:09 +00:00
mycroft 84ba128180 Regen. 2004-08-04 19:29:05 +00:00
mycroft 4460f20125 Normalize more names. 2004-08-04 19:28:52 +00:00
mycroft b648650d43 Regen. 2004-08-04 19:13:20 +00:00
mycroft d82da8f77c Normalize some product names. 2004-08-04 19:13:06 +00:00
mycroft fafdc69d20 Regen. 2004-08-04 17:18:19 +00:00
mycroft 4a0d5c9481 Remove vendor names from product strings. 2004-08-04 17:18:01 +00:00
drochner 8269afa5b8 Check return values of config_detach() for child devices and abort
our own detach() on errors.
2004-08-03 18:42:30 +00:00
drochner fc7a65f1b4 use joydetach() now that we have it 2004-08-03 18:38:52 +00:00
bouyer 73203a8277 Make it possible for (*dma_finish)() to abort quietly a DMA op. Use this
in wdc_reset_channel().
2004-08-02 22:20:54 +00:00
bouyer 83b6847565 Don't map the interrupt in pciide_mapregs_compat().
In default_chip_map() we'll do further checks to see if the channel should
really be enabled, and in case it's not we would keep the interrupt mapped.
Fix kern/26502 from Christian Biere.
2004-08-02 19:37:33 +00:00
mycroft bbbba5ecef Regen. 2004-08-02 19:25:46 +00:00
mycroft 909bd9c460 Add a device I missed. 2004-08-02 19:25:35 +00:00
mycroft 606b77842f Regen. 2004-08-02 19:10:48 +00:00
mycroft 90657a50ca Merge in data from cardbusdevs. 2004-08-02 19:10:35 +00:00
bouyer 574dd00e11 If acknowledge "bogus" interrupts (that is, interrupts that have happened
according to the controller-dependant registers while wdc was not waiting for
an interrupt). A reset can generate spurious interrupts (or even a flow of
spurious interrupts on the promise) that needs to be properly acknowledged.
2004-08-02 19:08:16 +00:00
mycroft bedcb9569b Regen. 2004-08-02 18:43:53 +00:00
mycroft 31a80e2d68 For the PCIVERBOSE case, separate vendors and products into separate tables.
Eliminating redundant pointers in the tables saves nearly 20K (20% of the table
size).  In the process, add a pci_findproduct() and make that and
pci_findvendor() return a "const char *".
2004-08-02 18:43:38 +00:00
mycroft 6b2c766b7e Regen. 2004-08-02 17:58:51 +00:00
mycroft 883e3cb011 Mmmm, Microsoft products. 2004-08-02 17:58:29 +00:00
joda c3800782de bridge memory and lower prefetch memory ranges are only 12 bits wide 2004-08-02 14:50:36 +00:00
drochner 04a2fc0f5a make the "generic" PCI bus enumeration code the standard case which
gets used if nothing else is defined in MD headers,
introduce a "PCI_MACHDEP_ENUMERATE_BUS" CPP definition which can
be used by MD headers (just 1 port atm) to plug in special code
2004-07-29 16:51:01 +00:00
cube 5258679d27 Regen. 2004-07-29 12:12:08 +00:00
cube b9eaa43c97 Add a bunch of devices that are in the Dell Dimension 8400 sitting on my
desk:  ATI Radeon X300, Broadcom BMC5751, Intel 915 chipset family (ICH6).
2004-07-29 12:11:31 +00:00
he 20304167d0 Add entries for TI CardBus bridges 1520 and 4520Yenta, as found in
IBM ThinkPad 40p and 41p respectively, so that the CardBus probes and
works on those machines.  Fixes PR#26380.
2004-07-28 15:32:49 +00:00
he 00e7d35ef0 Make the SSLOTS, MSLOTS and JSLOTS tunable (redefineable).
Bump the default values for these to the values used by FreeBSD,
and also adjust ti_init_rx_ring_jumbo() to use the same constant
that FreeBSD uses.  Yes, this consumes more kernel memory.

The effect of this is that you can use jumbo frames in a back-to-back
setup with TCP windows up to about 250KB and get ~930Mbit/s throughput,
while we were earlier limited to around 3-400Mbit/s, and trying to push
above that mark by widening the TCP window caused
  ti0: jumbo buffer allocation failed
messages to be logged and a corresponding stall in the traffic.
2004-07-27 07:59:51 +00:00
christos 1584cf1af7 regen 2004-07-27 01:01:17 +00:00
christos 81f4a7cae8 add compaq advanced systems management controller. 2004-07-27 01:01:00 +00:00
rumble dd003a35bd Add support for the controller found on the AMD (previously
NatSemi) Geode SC1100 controller (as found on the Soekris
NET4801). The chip has two bugs: the first requires dword
alignment, and the second cannot handle exact 64K transfers.

Also, fix a few typos while we're here.

Timings from FreeBSD. Reviewed by Manuel Bouyer.
2004-07-27 00:19:27 +00:00
rumble b6465064a7 regen. 2004-07-27 00:13:11 +00:00
rumble 611930ca2d Fix typos in the SC1100 IDE and AUDIO ids. 2004-07-27 00:12:10 +00:00
christos 452b7e16cb jason says that it is unclear if the new device is compatible with the old
one so disable it for now.
2004-07-25 18:04:52 +00:00
christos 34c5d0dc13 Match viatech's power controller (Sergio Jimenez) 2004-07-25 16:07:08 +00:00
christos 8d9bd7465d regen 2004-07-25 16:05:05 +00:00
christos cc5376ee65 Add viatech's VT8231 Power controller. (Sergio Jimenez) 2004-07-25 16:04:22 +00:00