11210 Commits

Author SHA1 Message Date
scottl
4497606cff Don't indent preprocessor tokens. 2004-04-21 20:56:08 +00:00
imp
ec1a468923 ata devices in legacy are special, and we must treat them as such.
While I would have prefered to have a solution that didn't move
knowledge of this into the pci layer.  However, this is literally the
only exception that's listed in the PCI standard to the usual way of
decoding BARs.  atapci devices in legacy mode now ignore the first 4
bars and hard code the values to the legacy ide values (well, for each
of the controllers that are in legacy mode).  The 5th bar is handled
normally.

Remove the zero bar handling.  zero bars should be ignored at all
other times, and since we handle that specially, we don't need the
older workaround.
2004-04-21 20:19:56 +00:00
scottl
541b648af3 Remove ASR_MEASURE_PERFORMANCE. It hasn't been able to compile in several
years.
2004-04-21 20:14:45 +00:00
scottl
a1ffaf8fa3 Use offsetof() instead of hand-rolling something equivalent. 2004-04-21 20:09:45 +00:00
sos
5e6e9f86ba 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
njl
e0daa88c39 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
green
5ec8677925 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
scottl
151234b98a 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
scottl
3e99cc579d 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
wpaul
4b52f76c1d 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
njl
5622dd6994 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
njl
b74ccf7ef7 Remove extran parens. 2004-04-21 00:38:54 +00:00
njl
6c165fc101 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
sos
144f138e6f 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
njl
3818a02710 Style fixes. 2004-04-20 17:13:08 +00:00
njl
e194db2386 Delete an unused file which no longer compiles anyway.
Approved by:	mdodd
2004-04-20 15:33:24 +00:00
njl
8059c69810 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
obrien
dbae7a3e81 Use BSD spelling, no SysV. 2004-04-19 18:44:04 +00:00
sos
313fe9e05d 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
njl
fce4fe318a 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
ps
59dc6aea9d 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
ps
c52a120a7c Report only new new events when initially attaching to the controller. 2004-04-19 00:57:29 +00:00
bde
dcf2df91b4 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
bde
9b6badb0bd 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
bde
b6f1351303 Fixed some style bugs in rev.1.1 (only 2 entries were misformatted). 2004-04-18 07:06:45 +00:00
bde
42d7e0957c Fixed some style bugs (perfect tab lossage on every line) in rev.1.4. 2004-04-18 06:49:26 +00:00
bde
e703f5f230 Fixed some style bugs (misformatting) in rev.1.9. 2004-04-18 06:42:27 +00:00
bde
4b66cd5199 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
bde
a35fc6d0e4 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
bde
0de7c6ce59 Fixed some style bugs (formatting errors) in rev.1.25. 2004-04-18 05:46:37 +00:00
bde
6cd0e4679a 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
bde
e7d5b45ae6 Fixed some style bugs in rev.1.28. Almost every line was misindented. 2004-04-18 04:48:53 +00:00
bde
7a9f01be2c 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
bde
61c930ed50 Fixed some style bugs in previous commit. Almmost every line was
misformatted.
2004-04-18 04:31:58 +00:00
ps
a5053e5684 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
onoe
9ce8f42312 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
fjoe
2844b52a85 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
markm
f34e8fe1dd 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
markm
8106e11ada More removal of the abortive locking code; malloc buffers when
needed, rather than potentially reusing contents.
2004-04-17 19:23:15 +00:00
cperciva
0ecadbbd1d 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
mux
b04760a2c0 Don't check for device_get_softc() returning NULL, it can't happen. 2004-04-17 10:25:04 +00:00
ps
a7a31583b7 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
ps
b1cb657e60 Whitespace cleanup. 2004-04-16 21:03:38 +00:00
markm
ebabd2ca88 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
markm
c23e5e71d7 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
njl
8d672f8640 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
imp
69bb06df08 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
302df84787 Remove two variables that became unused because of last commit.
Reported by: tinderbox
2004-04-16 06:58:39 +00:00
obrien
d9be63e8eb Fix building on L64 machines. 2004-04-16 05:34:14 +00:00
obrien
dd09fa8865 Add support for the ADMtek AN8513 USB Ethernet adapter.
Submitted by:	taxman <taxman@freedombi.com>
2004-04-16 05:24:45 +00:00