Commit Graph

11195 Commits

Author SHA1 Message Date
Søren Schmidt
4ee3fbe86b Make the test for ATA PCI legacy addressing mode more robust.
Add code (currently ifdef'd out) to allow ATA PCI native addressing.
Fix the altio offset for ATA PCI devices.
2004-04-21 20:03:26 +00:00
Nate Lawson
af807c0f33 Add comments, including restoring the PIIX4 errata comment, to indicate
what the ACPI-safe workaround is intended to fix.  Requested by phk.

Set the bushandle and tag when attaching the timer, don't do it each time
in read_counter().  Pointed out by bde.

Move test_counter() to the end.  Staticize acpi_timer_reg.
2004-04-21 18:07:21 +00:00
Brian Feldman
a7d7f349bd This driver certainly works fine turning INTR_MPSAFE back on. For those
of you with other cards, please do review and test the drivers for
MP-safety and disable Giant in the interrupt routines when you are
sure of proper functionality.
2004-04-21 04:23:51 +00:00
Scott Long
bf91c20547 Remove all of the old __FreeBSD_version code that provided FreeBSD 2.2.x and
3.x shims.
2004-04-21 03:59:52 +00:00
Scott Long
4e28e03aa5 Begin the slow, painful process of cleaning up asr. This eliminates many of the
bogus casts of NULL.  It also distracts me while I procrastinate on useful work.
2004-04-21 03:51:39 +00:00
Bill Paul
e4cd85db6f Fix the problems people have been having with the Intel 2100B Centrino
wireless ever since I added the new spinlock code. Previously, I added
a special ndis_rxeof_serial() function to insure that when we receive
a packet, we never end up calling the MiniportReturnPacket() routine
until after the receive handler has finished. I set things up so that
ndis_rxeof_serial() would only be used for serialized miniports since
they depend on this property. Well, it turns out deserialized miniports
depend on a similar property: you can't let MiniportReturnPacket() be
called from the same context as the receive handler at all. The 2100B
driver happens to use a single spinlock for all of its synchronization,
and it tries to acquire it both while in MiniportHandleInterrupt() and
in MiniportReturnPacket(), so if we call MiniportReturnPacket() from
the MiniportHandleInterrupt() context, we will end up trying to acquire
the spinlock recursively, which you can't do.

To fix this, I made the ndis_rxeof_serial() handler the default. An
alternate solution would be to make ndis_return_packet() submit
the call to MiniportReturnPacket() to the NDIS task queue thread.
I may do that in the future, after I've tested things a bit more.
2004-04-21 02:29:28 +00:00
Nate Lawson
75988358a2 Fix several bugs where 32-bit timers and wraparound were not properly
supported.  Symptoms of this bug included unnecessary use of ACPI-safe
and a dmesg that has deltas of about 2^24:

    ACPI timer looks BAD  min = 2, max = 16777206, width = 16777204
    ACPI timer looks BAD  min = 2, max = 7, width = 5
    ACPI timer looks GOOD min = 4, max = 5, width = 1
    ACPI timer looks BAD  min = 2, max = 16777206, width = 16777204
    ACPI timer looks BAD  min = 2, max = 7, width = 5
    ACPI timer looks BAD  min = 2, max = 16777210, width = 16777208
    ACPI timer looks BAD  min = 4, max = 16777189, width = 16777185
    ACPI timer looks GOOD min = 4, max = 5, width = 1
    ACPI timer looks BAD  min = 2, max = 7, width = 5
    ACPI timer looks BAD  min = 4, max = 16777189, width = 16777185

To fix this:
* Use a 32 bit timecounter mask when the timer is 32 bits.
* In test_counter(), use the acpi_TimerDelta function which handles 24/32
  bit timers and wraparound.

Miscellaneous fixes:
* Use C99 initializers for timecounter struct.
* Use u_int and uint32_t where appropriate instead of unsigned.
* Remove whitespace-only lines
* Remove the old PIIX4 PCI workaround.  The timecounter testing code has
  been in use for long enough to prove it's functional.
2004-04-21 00:48:16 +00:00
Nate Lawson
8d01ceefd8 Remove extran parens. 2004-04-21 00:38:54 +00:00
Nate Lawson
eea17c34cd Move the timer difference convenience function from acpi_cpu.c to make it
globally available.  acpi_TimerDelta() subtracts two readings from the
ACPI PM timer and returns the difference.  It properly distinguishes between
24-bit and 32-bit timers and handles wraparound.
2004-04-21 00:36:15 +00:00
Søren Schmidt
470fcc93b9 Do not pre-allocate resources for BAR's on ATA MASTERDEV's thats on
the standard ATA primary and secondary addresses.

Reintroduce the size 1 ALTIO space so that we can have both ATA and
floppies back working.
2004-04-20 20:57:29 +00:00
Nate Lawson
43813837ed Style fixes. 2004-04-20 17:13:08 +00:00
Nate Lawson
7744b4a36d Delete an unused file which no longer compiles anyway.
Approved by:	mdodd
2004-04-20 15:33:24 +00:00
Nate Lawson
0b84952197 Allow the AC adapter device to be disabled with debug.acpi.disable="acad".
Even though documented, this option was never enabled even in rev 1.1.

Submitted by:	sos
2004-04-20 13:09:17 +00:00
David E. O'Brien
bbd8da91aa Use BSD spelling, no SysV. 2004-04-19 18:44:04 +00:00
Søren Schmidt
9036df118c Move a verbose printf before the first exit so we get a chance
to see what was there.
2004-04-19 18:29:43 +00:00
Nate Lawson
4ed2b85d66 Add a temporary workaround for acpi_AppendBufferResource() returning with
a NULL crsbuf pointer.  This shouldn't happen if it returns AE_OK.  We'll
figure out why this is happening later.

Submitted by:	Bruno Ducrot <ducrot@poupinou.org>
2004-04-19 17:52:20 +00:00
Paul Saab
3c6b835326 There's no need to call ciss_report_request in the passthru ioctl
routine since the error will be reported back to the user buffer.
This will quiet down the bootverbose case when using an ACU which
does brute force discovery of the physical and logical devices.
2004-04-19 17:16:06 +00:00
Paul Saab
2e80ca8a68 Report only new new events when initially attaching to the controller. 2004-04-19 00:57:29 +00:00
Bruce Evans
8a148d55b7 Moved the function pointer in struct puc_device_description to the end
of the struct, so that a placeholder for it (or unportable C99
initializers) are not needed for entries that don't use it.  Use a C99
initializer for the 1 entry that uses it.  Removed 91 placeholders.
This also restores API compatibility with NetBSD and RELENG_4 for most
entries.
2004-04-18 14:37:27 +00:00
Bruce Evans
bd1516c8e6 Miscellaneous style fixes, including yet another attempt to get the
0x1393/0x1041 entry and its bad templates right.
2004-04-18 07:36:41 +00:00
Bruce Evans
361994141b Fixed some style bugs in rev.1.1 (only 2 entries were misformatted). 2004-04-18 07:06:45 +00:00
Bruce Evans
afe167a0e0 Fixed some style bugs (perfect tab lossage on every line) in rev.1.4. 2004-04-18 06:49:26 +00:00
Bruce Evans
3fd635c702 Fixed some style bugs (misformatting) in rev.1.9. 2004-04-18 06:42:27 +00:00
Bruce Evans
921e623763 Oops, fixed some more style bugs (tab lossage) in rev.1.28. Fixed the
same style bug in revs.1.20, 1.18, 1.15 and 1.12.
2004-04-18 06:36:12 +00:00
Bruce Evans
00dcaee469 Fixed some style bugs in rev.1.24. Almost every line was misformatted,
and Oxford was misspelled.
2004-04-18 05:52:35 +00:00
Bruce Evans
e096ea4428 Fixed some style bugs (formatting errors) in rev.1.25. 2004-04-18 05:46:37 +00:00
Bruce Evans
d4e132ea17 Fixed some style bugs (tab lossage) in rev.1.26.
Removed the requirement for a particular subvendor/subproduct in
rev.1.26 (VScom PCI-800L card).  While the BARs, etc., may depend on
the sub-ids, this is not known to be so, and I think it is better to
guess that they don't.  The decision to check sub-id checks in this
file is apparently random; for VScom cards they were checked in 3 of
8 cases.

Reviewed by:	timeout by committer (joerg) after 6 months
2004-04-18 05:30:02 +00:00
Bruce Evans
ba8fc6ca62 Fixed some style bugs in rev.1.28. Almost every line was misindented. 2004-04-18 04:48:53 +00:00
Bruce Evans
0efcc68bc8 Fixed a style bug (insertion sort error) in rev.1.29. This file should
be sorted in the same order as misc/pci_vendors (on vendor/device id),
and already partly is.
2004-04-18 04:44:28 +00:00
Bruce Evans
3f7fbb5497 Fixed some style bugs in previous commit. Almmost every line was
misformatted.
2004-04-18 04:31:58 +00:00
Paul Saab
78d033619f move the cleanup of the control device into ciss_free and add some
ifdefs for the diffrent kthread_create API between -current and
-stable
2004-04-18 02:39:01 +00:00
Atsushi Onoe
433ce5a478 Use IFF_ALLMULTI instead of if_amcount to decide if all multicast should
be received.  Pointed out by Luigi Rizzo.
2004-04-18 01:05:02 +00:00
Max Khon
a59b7fd5a4 Add 354k and 512k support.
Fix quality stats.

Submitted by:	Stanislav A Svirid <count@riss-telecom.ru>
2004-04-17 20:30:05 +00:00
Mark Murray
5564b4b984 Add a Davies-Meyer style hash to the output. This is still pure
Nehemiah chip, but the work is all done in hardware.

There are three opportunities to add other entropy; the Data
Buffer, the Cipher's IV and the Cipher's key. A future commit
will exploit these opportunities.
2004-04-17 19:26:53 +00:00
Mark Murray
fa2d865bad More removal of the abortive locking code; malloc buffers when
needed, rather than potentially reusing contents.
2004-04-17 19:23:15 +00:00
Colin Percival
a58deb4616 Add support for Exsys EX-41098 cards.
PR:		kern/65040
Submitted by:	Stefan Grundmann <sg-sendpr@waset.de>
Tested by:	buildkernel
"Just commit it" by: phk
2004-04-17 11:57:34 +00:00
Maxime Henrion
0335702b9f Don't check for device_get_softc() returning NULL, it can't happen. 2004-04-17 10:25:04 +00:00
Paul Saab
c61314601b Add support for the HP Modular Smart Array 20 & 500 storage arrays.
Logical volumes on these devices show up as LUNs behind another
controller (also known as proxy controller).  In order to issue
firmware commands for a volume on a proxy controller, they must be
targeted at the address of the proxy controller it is attached to,
not the Host/PCI controller.

A proxy controller is defined as a device listed in the INQUIRY
PHYSICAL LUNS command who's L2 and L3 SCSI addresses are zero.  The
corresponding address returned defines which "bus" the controller
lives on and we use this to create a virtual CAM bus.

A logical volume's addresses first byte defines the logical drive
number.  The second byte defines the bus that it is attached to
which corresponds to the BUS of the proxy controller's found or the
Host/PCI controller.

Change event notification to be handled in its own kernel thread.
This is needed since some events may require the driver to sleep
on some operations and this cannot be done during interrupt context.
With this change, it is now possible to create and destroy logical
volumes from FreeBSD, but it requires a native application to
construct the proper firmware commands which is not publicly
available.

Special thanks to John Cagle @ HP for providing remote access to
all the hardware and beating on the storage engineers at HP to
answer my questions.
2004-04-16 23:00:01 +00:00
Paul Saab
a32168b78e Whitespace cleanup. 2004-04-16 21:03:38 +00:00
Mark Murray
55636152d5 Attempts to make this device Giant-free were ill-conceived as
uiomove(9) is not properly locked. So, return to NEEDGIANT
mode. Later, when uiomove is finely locked, I'll revisit.

While I'm here, provide some temporary debugging output to
help catch blocking startups.
2004-04-16 17:10:54 +00:00
Mark Murray
2a8b87d883 Default to harvesting everything. This is to help give a faster
startup. harvesting can be turned OFF in etc/rc.d/* if it is a
burden.
2004-04-16 17:07:11 +00:00
Nate Lawson
a50f2c9f42 Disable the new wake GPE behavior. With it enabled, my laptop won't stay
suspended after the second try.  Intel is working on a fix to properly
differentiate the non-standard wake/runtime GPEs from wake-only GPEs.
2004-04-16 16:27:37 +00:00
Warner Losh
f77ad99d59 ooops. I disabled pci_enable_io_modes not pci_do_powerstate in the last
commit.  That was in error.

Noticed by: sos
2004-04-16 15:01:54 +00:00
Luigi Rizzo
3c56e09895 Remove two variables that became unused because of last commit.
Reported by: tinderbox
2004-04-16 06:58:39 +00:00
David E. O'Brien
a1f60844da Fix building on L64 machines. 2004-04-16 05:34:14 +00:00
David E. O'Brien
38974555bd Add support for the ADMtek AN8513 USB Ethernet adapter.
Submitted by:	taxman <taxman@freedombi.com>
2004-04-16 05:24:45 +00:00
David E. O'Brien
e5b1e74d89 Correct $FreeBSD$ style. 2004-04-16 05:22:11 +00:00
Warner Losh
b24afb1761 make the bad bar warning less scary, and toss it behind a bootverbose.
It is harmless, but freaking people out.
2004-04-16 04:53:19 +00:00
Warner Losh
d966428737 Turn off the power stuff for a little while longer. There appears to be
something subtle wrong with it.
2004-04-16 04:50:54 +00:00
Luigi Rizzo
0318355d0e Remove improper use of if_addrhead in device drivers to check
if the link-level address has been initialized already.

The majority of modern drivers never does this and works fine, which
makes me think that the check is totally unnecessary and a residue
of cut&paste from other drivers.

This change is done to simplify locking because now almost none of the
drivers uses this field. The exceptions are "ct" "ctau" and "cx"
where i am not sure if i can remove that part.
2004-04-15 20:31:10 +00:00