11220 Commits

Author SHA1 Message Date
wpaul
1291cc3eae Correct KASSERT()s that check for initialization of mutexes in ndis_detach(),
which are different now that I'm not using mutex pools anymore.

Noticed by: des
2004-04-23 17:15:14 +00:00
marius
541bfdc704 Add a stopgap for the EBus breakage on sparc64 since the PCI code does
resource pre-allocation. The problem is that the BARs of the EBus bridges
contain the ranges for the resources for the EBus devices beyond the bridge.
So when the EBus code tries to allocate the resource for an EBus device
it's already allocated by the PCI code.
To be removed again as soon as we have a proper solution in the EBus Code.

Reviewed by:	tmm
Approved by:	marcel (mentor)
2004-04-23 15:48:48 +00:00
imp
800bba64fe Start programming the bus numbers for the pci<->cardbus. When the
secondary bus is 0, we program the primary bus, the secondary bus and
the suborindate bus.  This isn't ideal, since we start at parent_bus +
1 and store this in a static.

Ideally, we'd walk the tree and assign bus numbers.  However, that's
harder to accomplish without some help from the bus layer which we're
not planning on doing that until 6.

This fixes my CardBus problems on my Sony PCG-Z1WA, and might fix the
Dells that have had problems.
2004-04-23 05:25:13 +00:00
wpaul
8e27464c81 Set the INTR_MPSAFE flag. 2004-04-22 21:49:18 +00:00
philip
46d76e027d Add the ACPI Asus extras driver. Provides support for cool ACPI-controled
gadgets (hotkeys, lcd, ...) on Asus laptops.  I aim to closely track the
acpi4asus project which implements these features in the Linux kernel.

If this breaks your laptop, please let me know how it does it :-)

Approved by:	njl (mentor)
2004-04-22 21:29:02 +00:00
wpaul
6bc1da1c05 Ok, _really_ fix the Intel 2100B Centrino deadlock problems this time.
(I hope.)

My original instinct to make ndis_return_packet() asynchronous was correct.
Making ndis_rxeof() submit packets to the stack asynchronously fixes
one recursive spinlock acquisition, but it's also possible for it to
happen via the ndis_txeof() path too. So:

- In if_ndis.c, revert ndis_rxeof() to its old behavior (and don't bother
  putting ndis_rxeof_serial() back since we don't need it anymore).

- In kern_ndis.c, make ndis_return_packet() submit the call to the
  MiniportReturnPacket() function to the "ndis swi" thread so that
  it always happens in another context no matter who calls it.
2004-04-22 07:08:39 +00:00
ps
ea882c9688 define some new fields in the physical drive structure and pad the
structure to 512 bytes.
2004-04-22 06:23:47 +00:00
njl
9804d2d83f Fix the build. opt_asr.h is gone.
Beer or equivalent to?	njl
2004-04-22 02:22:18 +00:00
njl
1699468b99 Fix stepping in ddb by not checking for a maximum interval. The ACPI-safe
workaround was for hardware where the clock was not latched, not for
hardware that was too slow.  Also, make variable names more specific for ddb
printing.
2004-04-22 01:50:08 +00:00
scottl
0ec35169f1 Remove more sead code. 2004-04-21 20:58:48 +00:00
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