Commit Graph

14882 Commits

Author SHA1 Message Date
Mitsuru IWASAKI
1b9518293e Oops, untested code was included accidentally.
Fixed.
2006-04-15 16:10:53 +00:00
Mitsuru IWASAKI
858a52f464 Import ACPI Dock Station support. Note that this is still very young.
Additional detach implementaions (or maybe improvement) for other
deivce drivers is required.

Reviewed by:	njl, imp
MFC after:	1 week
2006-04-15 12:31:34 +00:00
Maxim Konovalov
727e7d8621 o Fix printf(9) formatting: do not use hardcode "0x" and "#" flags
simultaneously.  Remove "#' flag to match a style of the rest of
file.

PR:		kern/85477
Submitted by:	Oliver Fromme
2006-04-15 11:41:40 +00:00
Maxim Konovalov
a09367f089 o s/PsuedoRAID/PseudoRAID/.
PR:		kern/94306
Submitted by:	Esa Karkkainen
2006-04-15 10:27:41 +00:00
Scott Long
f30cbfc63b Fix the interrupt handler to do the mandatory PCI flush before looking at
DMA memory.  The could contribute towards missed link state changes under
heavy bus load.
2006-04-15 08:13:06 +00:00
Matteo Riondato
1fe5a490ab Whitespace fix
Pointed out by: Nate Lawson
2006-04-14 17:26:04 +00:00
Søren Schmidt
3559734cee Dont poll for ATA_IDLE on a detached channel in suspend. 2006-04-14 16:25:42 +00:00
Doug Ambrisko
bc971e44ed Reduce the Linux ioctl range to what is needed. I didn't know what
I was doing when I first set the range up.
2006-04-14 16:13:28 +00:00
Matteo Riondato
c943ffcc29 Add device ID for Intel Pro/100 VE Network Connection card
PR:		kern/95729
Submitted by:	Nicky Bulthuis
MFC after:	1 day
2006-04-14 07:49:52 +00:00
Olivier Houchard
5d1e6e68fc Bring back arm-specific workaround from rev 1.15:
Do not use the IO-mapping to issue the reset on the 82546 on arm. For some
reason, it results in corrupted descriptors.
2006-04-13 15:10:25 +00:00
Ruslan Ermilov
28db813d07 Fix DEVICE_POLLING support (compile-only tested). 2006-04-13 14:12:26 +00:00
Ruslan Ermilov
3f0430b34f Re-apply changes to make this compile with -Wundef:
/usr/src/sys/modules/drm/radeon/../../../dev/drm/radeon_state.c:2976:5: "BITS_PER_LONG" is not defined

(Previous revision has trashed my changes.)
2006-04-13 11:16:59 +00:00
Paul Saab
7b76202b5a Fix the PHY support for the 5780. I mis-merged this from my sources. 2006-04-12 18:34:00 +00:00
Pawel Jakub Dawidek
4a531e8dae Correct an obvious typo.
MFC after:	1 week
2006-04-12 12:12:44 +00:00
Matt Jacob
5089bd63bd A large set of changes:
+ Add boatloads of KASSERTs and *really* check out more locking
issues (to catch recursions when we actually go to real locking
in CAM soon). The KASSERTs also caught lots of other issues like
using commands that were put back on free lists, etc.

+ Target mode: role setting is derived directly from port capabilities.
There is no need to set a role any more. Some target mode resources
are allocated early on (ELS), but target command buffer allocation
is deferred until the first lun enable.

+ Fix some breakages I introduced with target mode in that some commands
are *repeating* commands. That is, the reply shows up but the command
isn't really done (we don't free it). We still need to take it off the
pending list because when we resubmit it, bad things then  happen.

+ Fix more of the way that timed out commands and bus reset is done. The
actual TMF response code was being ignored.

+ For SPI, honor BIOS settings. This doesn't quite fix the problems we've
seen where we can't seem to (re)negotiate U320 on all drives but avoids
it instead by letting us honor the BIOS settings. I'm sure this is not
quite right and will have to change again soon.
2006-04-11 16:47:30 +00:00
Florent Thoumie
e79417e5d4 - Add support for the Acer Acerscan 640BT.
- Add documentation bits.

PR:		usb/95616
Submitted by:	Matthieu Guegan <lesaint@gcu.info>
Approved by:	cperciva (mentor)
MFC after:	3 days
2006-04-11 10:44:31 +00:00
Joseph Koshy
7c9f60e38f Fix a cut-n-paste bug that crept in.
Reported by:	"Pawel Worach" pawel.worach at gmail.com
2006-04-11 01:15:26 +00:00
Paul Saab
d8636a9ab7 Hook bce up to the build 2006-04-10 20:04:22 +00:00
Paul Saab
6caf734fd9 Add a driver for the Broadcom NetXtreme II (BCM5706/BCM5708)
PCI/PCIe Gigabit Ethernet adapeter.

Submitted by:	David Christensen
2006-04-10 19:55:23 +00:00
Pawel Jakub Dawidek
2c87962602 safe(4) doesn't support explicitly provided keys. Return an error instead
of encrypting/decrypting data with a wrong key.
2006-04-10 18:49:46 +00:00
Pawel Jakub Dawidek
483194fb9a ubsec(4) doesn't support explicitly provided keys. Return an error instead
of encrypting/decrypting data with a wrong key.
2006-04-10 18:37:46 +00:00
Florent Thoumie
281f5eff33 - Add support for the Epson RX425 scanner.
PR:		usb/95346
Submitted by:	Matthieu Guegan <lesaint@gcu.info>
Approved by:	cperciva (mentor)
MFC after:	3 days
2006-04-10 10:21:09 +00:00
Scott Long
d21c5e5e18 Fix some small bugs.
Submitted by: pjd
Found by: Coverity Prevent (tm)
2006-04-10 06:44:30 +00:00
Eric Anholt
72ab0eff0f Update to DRM CVS as of 2006-04-09. The most notable new feature is the updated
Radeon memmap code, which with a new DDX driver and DRI drivers should fix
long-term stability issues with Radeons.  Also adds support for r200's
ATI_fragment_shader, r300 texrect support and texture caching fixes, i915
vblank support and bugfixes, and new PCI IDs.
2006-04-09 20:45:45 +00:00
Philip Paeps
e13d42014a Add support for Asus W5A laptops.
Submitted by:	Pavel Martynenko <mpv -at- ip.net.ua>
X-MFC after:	3 days (or so)
2006-04-09 15:22:25 +00:00
Scott Long
93cfca2294 Rearrange locking in the alloc_commands and ioctl paths to avoid problems. 2006-04-08 06:05:29 +00:00
Scott Long
dce223cfb6 After further review and discussion, partially revert the previous commit.
The real problem was that ioctl handlers needed to call amr_wait_command()
with the list lock held.  This not only solves the completion race, it also
prevents bounce buffer corruption that could arise from amr_start() being
called without the proper locks held.

Discussed with: ps
MFC After: 3 days
2006-04-08 05:08:17 +00:00
Paul Saab
026d2aa333 Close a pesky race where after checking the BUSY flag in amr_wait_command,
the completion of the command can occur before tsleep is called and
the command ends up blocking forever since the wakeup has already
been called.

Submitted by:   ups
2006-04-08 02:23:27 +00:00
Gleb Smirnoff
2a7d090a2e Restore accidentially removed rev. 1.3 2006-04-07 10:18:24 +00:00
Gleb Smirnoff
a80d10932e Merge in new driver from Intel, version 5.1.5. Adds support for some
new chips and improves support for already supported ones.

Some details, important for future merges:
  - if_em.c merged manually, viewing diff between new vendor
    driver and previous one.
  - if_em_hw.h dropped in from vendor, and then restored revisions
    1.16, 1.17, 1.18.
  - if_em_hw.c dropped in from vendor, and then two liner change made,
    that restores support for two rare chips.
2006-04-06 17:09:03 +00:00
Warner Losh
dbafaeca13 newbus will zero softc, so no need to duplicate the zeroing here.
Plus a minor formatting nit in nearby code.
2006-04-04 23:29:17 +00:00
Pawel Jakub Dawidek
3d5e60cb6e Don't call bfe_release_resources() twice.
Found by:	Coverity Prevent analysis tool
CID:		600
MFC after:	1 week
2006-04-04 22:30:12 +00:00
Warner Losh
522bc71e0a Turn a file that was mostly style(9) compliant to a file that's really close
to being completely style(9).  The odd-ball indentation in a few places was
really distracting.
2006-04-04 19:30:47 +00:00
Marcel Moolenaar
9cd8d259f0 The Z8530 on the MacIO has an interrupt per channel. Deal with this
by having interrupt resource variables per channel. We don't set up
different interrupt handlers per channel, though.
2006-04-04 17:33:08 +00:00
Warner Losh
b2f9074c9d Replace hard coded '0' with symbolic constant IIC_UNKNOWN to reflect what
we're actually doing.
2006-04-04 17:08:40 +00:00
Paul Saab
cef5d0ae84 Add support for Intel cpu model's 5 & 6.
Approved by:	jkoshy
2006-04-04 02:36:04 +00:00
Nate Lawson
483568c509 Fix an off-by-one error in the port range detection. Cleanup some old
whitespace.
2006-04-04 02:22:38 +00:00
Marcel Moolenaar
a24d2e121e In z8530_divisor() return 0 if the calculated divisor is less than 0.
This happens when the baudrate is too high for the given RCLK.
2006-04-04 01:16:16 +00:00
Sam Leffler
a585a9a1bc o add opt_ath.h enable tweaking various config parameters for the driver
without modifying the source code
o default debug msgs and diag support to off

MFC after:	3 days
2006-04-03 18:14:02 +00:00
Ariff Abdullah
facebb04a5 Add device ID for nForce 410 MCP audio controller.
PR:		kern/95257
Submitted by:	cenix <cenixxx at gmail dot com>
MFC after:	3 days
2006-04-03 17:37:27 +00:00
Marcel Moolenaar
4437e2615f Remove unused variable 'error'. Forgotten in previous commit. 2006-04-02 21:58:09 +00:00
Marcel Moolenaar
5418a8aead Don't claim a SAB82532. We have scc(4) for that. 2006-04-02 21:50:45 +00:00
Marcel Moolenaar
8d1289fe6d Eliminate the sc_hasfifo flag from the softc. It was only used by
the NS8250 class driver. The UART has FIFOs if sc_rxfifosz>1, so
test for that instead.
While here properly initialize sc_rxfifosz and sc_txfifosz in the
case the UART doesn't have FIFOs.
2006-04-02 21:45:54 +00:00
Matt Jacob
33f3184660 Fix fat-fingered version define. 2006-04-01 19:49:55 +00:00
Marcel Moolenaar
634e63c986 Don't hold the hardware mutex across getc(). It can wait indefinitely
for a character to be received. Instead let getc() do any necesary
locking.
2006-04-01 19:04:54 +00:00
Matt Jacob
5e073106d5 Fix some of the previus changes 'better'.
There's something strange going on with async events. They seem
to be be treated differently for different Fusion implementations.
Some will really tell you when it's okay to free the request that
started them.  Some won't. Very disconcerting.

This is particularily bad when the chip (FC in this case) tells you
in the reply that it's not a continuation reply, which means you
can free the request that its associated with. However, if you do
that, I've found that additional async event replies come back for
that message context after you freed it. Very Bad Things Happen.

Put in a reply register debounce. Warn about out of range context
indices. Use more MPILIB defines where possible. Replace bzero with
memset. Add tons more KASSERTS. Do a *lot* more request free list
auditting and serial number usages. Get rid of the warning about
the short IOC Facts Reply.  Go back to 16 bits of context index.

Do a lot more target state auditting as well. Make a tag out
of not only the ioindex but the request index as well and worry
less about keeping a full serial number.
2006-04-01 07:12:18 +00:00
Marcel Moolenaar
ffc08b2147 Add a MacIO bus attachment. The Z8530 as present in the Mac needs
a different register shift and is fed by a different clock than
we use for UltraSPARC hardware. To deal with this, the regshft and
rclk fields in the class structure are removed and bus frontends
now pass the right regshft and rclk to the probe function where
they're put in the BAS and passed in to subordinate drivers.
2006-04-01 04:51:56 +00:00
Marcel Moolenaar
19ef0b1184 Fix cut-n-paste braino in previous commit: s/puc/scc/g
Pointy hat: marcel@
2006-03-31 21:55:53 +00:00
Marcel Moolenaar
1b0c333020 Add a DRIVER_MODULE declaration for fhc(4) as this attachement is
also used for the FHC bus.

Pointed out by: marius@
2006-03-31 17:39:49 +00:00
Ariff Abdullah
a1d444e140 MEGA Fixes / Cleanup
--------------------

- Seal the fate of long standing memory leak (4 years, 7 months) during
  pcm_unregister(). While destroying cdevs, scan / detect possible
  children and free its SLIST placeholder properly.
- Optimize channel allocation / numbering even further. Do brute cyclic
  checking only if the channel numbering screwed.
- Mega vchan create/destroy cleanup:
  o Implement pcm_setvchans() so everybody can use it freely instead
    of implementing their own, be it through sysctl or channel auto
    allocation.
  o Increase vchan creation/destruction resiliency:
    + it's possible to increase/decrease total vchans even during
      busy playback/recording. Busy channel will be left alone, untouched.
      Abusive test sample:
      # play whatever...
      #
         while : ; do
           sysctl hw.snd.pcm0.vchans=1
           sysctl hw.snd.pcm0.vchans=10
           sysctl hw.snd.pcm0.vchans=100
           sysctl hw.snd.pcm0.vchans=200
         done
      # Play something else, leave above loop running frantically.
    + Seal another 4 years old bug where it is possible to destroy (virtual)
      channel even when its cdevs being referenced by other process.
      The "First Come First Served" nature of dsp_clone() is the main
      culprit of this issue, and usually manifest itself as dangling
      channel <-> process association. Ensure that all of its cdevs
      are free from being referenced before destroying it (through
      ORPHAN_CDEVT() macross).

All these fixes (including previous fixes) will be MFCed, later.
2006-03-31 10:36:36 +00:00
Ariff Abdullah
9c271eba78 - Increase snddev refcount earlier while accessing through sysctl interface
to avoid possible device unregister race (impossible to reproduce, yet
  possible).
- Extra sanity check to ensure proper parent channel is being selected.
- Reset parent channel once all of its children gone.
2006-03-31 10:27:47 +00:00
Søren Schmidt
cd8a592bb3 Make the ATAPI sense data accessible when using the ioctl interface
MFC candidate.
2006-03-31 08:09:05 +00:00
Marcel Moolenaar
ce8f00136f Allow uart(4) to be built on PowerPC. 2006-03-31 01:42:55 +00:00
Scott Long
cadfc102f1 Revert to using acpi_max_threads instead of the hardcoded value of '3'. 2006-03-30 19:22:45 +00:00
Marcel Moolenaar
90730ac6d0 When we attach to either a SAB82532 or a Z8530, print a notice
saying that scc(4) should be configured into the kernel. This
helps people to migrate away from puc(4) for these devices.
2006-03-30 18:43:03 +00:00
Marcel Moolenaar
8af03381d8 Add support for scc(4). 2006-03-30 18:37:03 +00:00
Marcel Moolenaar
6174e6ed12 Add scc(4), a driver for serial communications controllers. These
controllers typically have multiple channels and support a number
of serial communications protocols. The scc(4) driver is itself
an umbrella driver that delegates the control over each channel
and mode to a subordinate driver (like uart(4)).
The scc(4) driver supports the Siemens SAB 82532 and the Zilog
Z8530 and replaces puc(4) for these devices.
2006-03-30 18:33:22 +00:00
Ariff Abdullah
844f9220aa Remove paranoid thread hijacking check. It cause wierd behaviour
(dangling channel - process association) especially in threaded
or fork()ed apps.
2006-03-30 06:17:03 +00:00
Marcel Moolenaar
0f0d108e27 In afd_describe(), don't initialize sizestring. On ia64, gcc(1) will
generate code that calls memset, which we don't have in the kernel.

MFC after: 3 days
2006-03-30 05:29:57 +00:00
Warner Losh
a49ed2a673 On some laptops, under very high loads, the socket event register read
in the ISR doesn't read the actual socket event register, but instead
reads garbage (usually 0xffffffff, but other times other things).
This totally violates the PCI spec, but happens rarely enough that a
workaround is in order.  This adds one test when we have a real
interrupt to service (which is very rare), and doesn't affect the
usualy 'nothing to see here' case at all.

Problem reported by many, but sam@ gave me this workaround after
diagnosing the problem.
2006-03-30 04:25:45 +00:00
Warner Losh
ee516cac43 Add a mask of valid socket events
While I'm hear, fix define<sp> to be define<tab>.
2006-03-30 04:12:28 +00:00
Marcel Moolenaar
793bcd17d5 Don't open if we're going away. 2006-03-30 03:26:52 +00:00
Nate Lawson
6e8e1dbdba Fix printf arg on 64-bit arch by casting to an int. The IO port is never
more than a couple digits anyway.

Pointy hat to:	njl
2006-03-29 18:47:59 +00:00
Nate Lawson
dbcb35ffb9 Add a blacklist for bad IO ports that AML should never touch. It seems
some systems were designed so that AML writes to various resources shared
with OS drivers, including the RTC, PIC, PCI, etc.  These writes could
collide with writes by the OS and should never be performed.  For now, we
print a message if such an access occurs, but do not block it.  To block
the access, the tunable "debug.acpi.block_bad_io" can be set to 1.  In the
future, we will flip the switch and this will become the default.

Information about this problem was found in Microsoft KB 283649.  They
block IO accesses if the BIOS indicates via _OSI that it is Windows 2001
or higher.  They always block accesses to the PIC, cascaded PIC, and ELCRs,
no matter how old the BIOS.
2006-03-29 06:41:56 +00:00
Nate Lawson
87a500cd3b Add reset register support. This is the only method to reboot some new
systems (blade servers).  On most systems, this is implemented as an IO
write to the SMI port and the BIOS generates the actual reset.

PR:		kern/94939
Submitted by:	dodell@ixsystems.com
Reviewed by:	jhb
MFC after:	3 weeks
2006-03-29 06:30:47 +00:00
Scott Long
aab582690e Fix 64-bit DMA. The problem was an incorrect flag check. Thanks to Paul
Saab for helping to track this down.  Fix a error with 32bit DMA size
calculation that seemed to be harmless.  Add a few micro-optimizations while
I'm here.
2006-03-28 23:59:07 +00:00
John Baldwin
a08d2e7fe1 - Conditionally acquire Giant in mdstart_vnode(), mdcreate_vnode(), and
mddestroy() only if the file is from a non-MPSAFE VFS.
- No longer unconditionally hold Giant in the md kthread for vnode-backed
  kthreads.
- Improve the handling of the thread exit race when destroying an md
  device.
2006-03-28 21:25:11 +00:00
Joseph Koshy
9282fe9cdb Forcibly turn off all PMCs at module unload time.
MFC after:	1 week
2006-03-28 14:09:21 +00:00
Scott Long
20df0de426 Handle invalid capacity parameters from the firmware. 2006-03-28 01:59:11 +00:00
Wojciech A. Koszek
c27a895433 Teach md(4) and mdconfig(8) how to understand XML. Right now there won't be
a problem with listing large number of md(4) devices. Either 'list' or
'query' mode uses XML.

Additionally, new functionality was introduced. It's possible to pass
multiple devices to -u:

	# ./mdconfig -l -u md0,md1

Approved by:	cognet (mentor)
2006-03-26 23:21:11 +00:00
Joseph Koshy
49874f6ea3 MFP4: Support for profiling dynamically loaded objects.
Kernel changes:

  Inform hwpmc of executable objects brought into the system by
  kldload() and mmap(), and of their removal by kldunload() and
  munmap().  A helper function linker_hwpmc_list_objects() has been
  added to "sys/kern/kern_linker.c" and is used by hwpmc to retrieve
  the list of currently loaded kernel modules.

  The unused `MAPPINGCHANGE' event has been deprecated in favour
  of separate `MAP_IN' and `MAP_OUT' events; this change reduces
  space wastage in the log.

  Bump the hwpmc's ABI version to "2.0.00".  Teach hwpmc(4) to
  handle the map change callbacks.

  Change the default per-cpu sample buffer size to hold
  32 samples (up from 16).

  Increment __FreeBSD_version.

libpmc(3) changes:

  Update libpmc(3) to deal with the new events in the log file; bring
  the pmclog(3) manual page in sync with the code.

pmcstat(8) changes:

  Introduce new options to pmcstat(8): "-r" (root fs path), "-M"
  (mapfile name), "-q"/"-v" (verbosity control).  Option "-k" now
  takes a kernel directory as its argument but will also work with
  the older invocation syntax.

  Rework string handling in pmcstat(8) to use an opaque type for
  interned strings.  Clean up ELF parsing code and add support for
  tracking dynamic object mappings reported by a v2.0.00 hwpmc(4).

  Report statistics at the end of a log conversion run depending
  on the requested verbosity level.

Reviewed by:	jhb, dds (kernel parts of an earlier patch)
Tested by:	gallatin (earlier patch)
2006-03-26 12:20:54 +00:00
Matt Jacob
a529c6a2dc Correct bad format args. Interesting- the lines that generated
the error on sparc64 hadn't changed since the last checkin, pass
LINT on other platforms and mpt doesn't work on sparc64 anyway
and the tinderbox build didn't work for me in a cross build case
on my main build machine (which runs RELENG_6). Sigh. Still
need to try harder.
2006-03-26 07:16:17 +00:00
Matt Jacob
c87e3f833c Some fairly major changes to this driver.
A) Fibre Channel Target Mode support mostly works
(SAS/SPI won't be too far behind). I'd say that
this probably works just about as well as isp(4)
does right now. Still, it and isp(4) and the whole
target mode stack need a bit of tightening.

B) The startup sequence has been changed so that
after all attaches are done, a set of enable functions
are called. The idea here is that the attaches do
whatever needs to be done *prior* to a port being
enabled and the enables do what need to be done for
enabling stuff for a port after it's been enabled.

This means that we also have events handled by their
proper handlers as we start up.

C) Conditional code that means that this driver goes
back all the way to RELENG_4 in terms of support.

D) Quite a lot of little nitty bug fixes- some discovered
by doing RELENG_4 support. We've been living under Giant
*waaaayyyyy* too long and it's made some of us (me) sloppy.

E) Some shutdown hook stuff that makes sure we don't blow
up during a reboot (like by the arrival of a new command
from an initiator).

There's been some testing and LINT checking, but not as
complete as would be liked. Regression testing with Fusion
RAID instances has not been possible. Caveat Emptor.

Sponsored by: LSI-Logic.
2006-03-25 07:08:27 +00:00
Scott Long
2e21a3ef7e Add a driver for the new LSI MegaRAID SAS controller family. The 'MFI' name
is derived from the phrase 'MegaRAID Firmware Interface' used by LSI.  This
driver provides a block interface to logical disks on the card and a minimal
management device.  It is MPSAFE, INTR_FAST, and 64-bit capable.

Thanks to Dell for providing hardware to test with and IronPort for
sponsoring the work.

Sponsored by: Dell, Ironport
MFC After: 3 days
2006-03-25 06:14:32 +00:00
Sam Leffler
512537d1a4 stop device so we don't panic on card removal when active
MFC after:	3 days
2006-03-24 19:11:26 +00:00
Warner Losh
1ab7d4c93d For each of the voltages that a card might support, make sure that the
socket also supports the voltage.  Some XV cards have appeared on the
scene (or cards that report they support XV), and in older machines
that have sockets that do not support XV, we were bogusly trying to
power them at XV rather than at 3.3V.  Now, power up the card at the
lowest voltage supported by both the card and the socket.

MFC After: 3 days
2006-03-24 07:52:00 +00:00
Warner Losh
4447272cb6 Add explicit dependency on cam. This is necessary when both aha.ko and
cam.ko are modules so that aha.ko's undefined symbols can be satisfied by
cam.ko.

Sumitted by: nork
Reviewed by: scottl
2006-03-24 06:33:25 +00:00
Oleg Bulyzhin
f78e78fd2f Add basic support for BCM5780 PHY.
Submitted by:	grehan
Approved by:	glebius (mentor)
MFC after:	1 week
2006-03-23 09:53:39 +00:00
Ariff Abdullah
6d52c3bf33 Don't set primary resume interrupt flag during channel initialization
since it can cause high interrupt rate (storm) and slowdown the entire
system.

Note: Please report back to me if this commit cause any abnormal
      behaviour, especially during suspend / resume.

Reported/Submitted by:	[1] Daan Vreeken [PA4DAN] <Danovitsch_at_vitsch dot net>
Reported/Confirmed by:	[2] Angka H. K. <harikurniawan at gmail dot com>

MFC after:		5 days

[1] http://lists.freebsd.org/mailman/htdig/freebsd-hackers/2004-December/009335.html
[2] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-March/003830.html
2006-03-22 22:24:23 +00:00
Ariff Abdullah
f2a1d71aaa Misc. fixups:
- [1] Make the driver friendly towards kernel without PREEMPTION.
  Use msleep(9) instead of simple unlock-check_variable-lock mechanisme
  since the later not really effective in non-preemptible kernel
  (especially during codec detection routine).
- Free most driver resources in a sane manner to avoid possible
  double free and panics especially during device detach and codec
  detection failure.

MFC after:	3 days

[1] http://lists.freebsd.org/pipermail/freebsd-questions/2006-March/116515.html
2006-03-22 21:29:47 +00:00
Ariff Abdullah
b422186846 We shouldn't really care about the return value of mixer_uninit(),
except EBUSY.
2006-03-22 20:50:04 +00:00
Gleb Smirnoff
e72f58bbd9 Add support for RTL8111B chip, that can be found on some mainboards,
for example ASUS P5PL2.

Tested by:	Vadim Frolov <vadim uch.net>
2006-03-22 07:33:03 +00:00
Ian Dowse
3ee42667a4 Correct the calculation of the report size and only look at reports
that have the specified kind, instead of assuming that there is
only one report of the right kind in the report descriptor.

Submitted by:	Morten Johansen
Obtained from:	NetBSD (indirectly)
PR:		usb/77604
2006-03-22 02:04:12 +00:00
Ariff Abdullah
c17cb0c68f Pointer align should be generic enough to handle awkward byte size
especially for true 24bit format.
2006-03-22 00:34:17 +00:00
Damien Bergamini
d0934eb173 o fixes the locking of if_init().
o don't send management frames if the IFF_DRV_RUNNING flag is not set.
  this prevents the timeout watchdog from being potentially re-armed
  when the interface is brought down.

fixes a crash that occurs with RT2661 based adapters.
reported by Arnaud Lacombe.
2006-03-21 21:15:43 +00:00
Hartmut Brandt
0108135cd6 Subtracting two pointers produces a ptrdiff_t not a size_t so use
the %td to print this instead of %zu or %d.
2006-03-21 15:00:10 +00:00
Hartmut Brandt
326570abe3 This driver has been MPSAFE from the beginning so declare the interrupt
as such.

Reminded by:	rwatson@
2006-03-21 14:56:42 +00:00
Hartmut Brandt
5b4d2450cc This driver has been MPSAFE from the beginning, so declare the interrupt
as such.

Reminded by:	rwatson@
2006-03-21 14:54:42 +00:00
Pyun YongHyeon
5dbde3ff57 Backout rev. 1.46. It caused Rx checksum offload breakage on little
endian systems.

Reported by:	joerg
Tested by:	joerg
2006-03-21 12:21:51 +00:00
Ariff Abdullah
3fdb3676ba Apply more thorough fixes while dealing with device opening and closing:
- Determine open direction using 'flags', not 'mode'. This bug exist since
  past 4 years.
- Don't allow opening the same device twice, be it in a same or different
  direction.
- O_RDWR is allowed, provided that it is done by a single open (for example
  by mixer(8)) and the underlying hardware support true full-duplex operation.
- Do various paranoid checking in case other process/thread trying to hijack
  the same device twice (or more).

MFC after:	5 days
2006-03-21 06:35:48 +00:00
Ariff Abdullah
02dbda9d17 Recover (?) support for AD1815 based ISA soundcards.
PR:		kern/94388
Submitted by:	Krzysztof Kotlenga <piernik at gmail dot com>
MFC after:	3 days
2006-03-21 03:47:25 +00:00
Ian Dowse
1ecfb7ed3d Oops - fix the build in the !USB_DEBUG case. 2006-03-18 17:57:34 +00:00
Ian Dowse
a6725353dd Let the EHCI hardware track the toggle state for bulk and interrupt
transfers. This fixes some cases where the software toggle tracking
was not doing the right thing. For example, a short transfer that
transferred 0 bytes of the requested qTD transfer size does cause
a toggle change, but the existing code was assuming it didn't.

Reported and tested by: pav
MFC after:	2 weeks
2006-03-18 13:55:16 +00:00
Søren Schmidt
6f1b833f36 Properly use the sense key info 2006-03-18 13:14:38 +00:00
Joseph Koshy
66f3bc782b When deconfiguring a log, only stop PMCs that are in the RUNNING
state.
2006-03-18 03:54:07 +00:00
Ian Dowse
fad8387468 Sony DSC cameras with revision number 6.0 require the same quirk
as those reporting revision 5.0.

Reported by:	Brian Reichert
MFC after:	1 week
2006-03-17 18:16:22 +00:00
Gleb Smirnoff
a9620ec4be Remove dead code.
Submitted by:	oleg
2006-03-17 09:17:36 +00:00
Matt Jacob
a4ca1e0bb0 If we actually succeed in the Task Management Function where we
are aborting timed out commands, pull the request off the TAILQ.
2006-03-17 04:54:06 +00:00
Matt Jacob
9b7de73509 In mpt_complete_request_chain don't depend on somebody else to
remove the request from the TAILQ.
2006-03-17 04:52:27 +00:00
John Baldwin
9be0993cdb Add device-id for the Neteasy DRP-32TXD cardbus 10/100 card. It's another
ADMTek AN985 clone.

MFC after:	3 days
Tested by:	Lila liladude at aruba dot it
2006-03-16 20:00:39 +00:00
Joseph Koshy
9d0a2685e4 When compiled with -DDEBUG, only print the old value of a PMC in a
debugging message if the flag PMC_F_OLDVALUE was specified in the
PMC_OP_RW request being acted upon.  This should fix Coverity bug
CID 671.

Found by:	Coverity Prevent
MFC after:	3 weeks
2006-03-16 16:32:56 +00:00
Ariff Abdullah
945510a039 Restore CHN_F_BUSY flag which was removed accidentally in previous commit. 2006-03-16 08:01:10 +00:00
Ariff Abdullah
7982e7a465 Fix severe 8bit integer overflow during channel creation and destruction,
especially for vchans. It turns out that channel numbering always depend
on d->devcount counter (which keep increasing), while PCMMKMINOR() truncate
everything to 8bit length. At some point the truncation cause the newly
created character device overlapped with the existence one, causing erratic
overall system behaviour and panic. Easily reproduce with something like:

	(Luckily, only root can reproduce this)

	while : ; do
		sysctl hw.snd.pcm0.vchans=200
		sysctl hw.snd.pcm0.vchans=100
	done

- Enforce channel/chardev numbering within 8bit boundary. Return E2BIG
  if necessary.
- Traverse d->channels SLIST and try to reclaim "free" counter during channel
  creation. Don't rely on d->devcount at all.
- Destroy vchans in reverse order.

Anyway, this is not the fault of vchans. It is just that vchans are so cute
and begging to be abused ;) . Don't blame her.

Old, hidden bugs.. sigh..

MFC after:	3 days
2006-03-16 04:12:49 +00:00
Takanori Watanabe
3e7c5fe5b9 Add ALPS glide point ID and some compatibility IDs.
PR: kern/75008
2006-03-15 07:04:33 +00:00
Damien Bergamini
f3268efa7f Don't read channel list from EEPROM since we were already scanning all
802.11b channels (1-14) regardless of what EEPROM says.
2006-03-13 20:05:32 +00:00
Søren Schmidt
0118b48b7e Add support for the JMicron JMB361, 365 and 366 chips.
HW and documentation kindly provided by JMicron.
2006-03-13 14:01:37 +00:00
Søren Schmidt
124902face Put autosense data in the right place (needs a 4pos left shift). 2006-03-13 14:00:08 +00:00
Damien Bergamini
84ca76709f sync w/ iwi:
o fix locking
o use firmware(9)
o cosmetic
2006-03-12 19:01:00 +00:00
Damien Bergamini
1b996b2a23 o don't use '-' characters in firmware names
o call firmware_put() early to release the firmware module
o on firmware panics or watchdog timeouts, schedule a task to reinitialize
  the interface (we may sleep in iwi_init())
o discard oversized rx frames
2006-03-12 18:54:40 +00:00
Poul-Henning Kamp
65cdc7a7c4 Don't be noisy in case of shared interrupts. 2006-03-11 15:39:22 +00:00
Damien Bergamini
4f5d0153e4 add dependency with firmware module.
pointed out by Martin Wilke.
2006-03-11 13:30:21 +00:00
Ruslan Ermilov
0ec2de62a7 Fix build. 2006-03-11 08:36:15 +00:00
Philip Paeps
f3953b3844 Fix multicast support for cs89x0 chips. Just setting the RX_MULTCAST_ACCEPT
flag isn't enough - the filter needs to be set up too, or no multicast frames
are accepted.

Sponsored by:	Philips Industrial Applications (indirectly)
MFC after:	3 days
2006-03-10 23:50:53 +00:00
Damien Bergamini
389fb0b432 o acknowledge interrupts early in the interrupt handler
o stop processing interrupts after a firmware fatal error or a radio kill
o clarify the possible values for the 'antenna' sysctl.
o by default, let the firmware do antenna diversity.
  the  firmware will periodically switch to another antenna to evaluate the
  signal quality.
2006-03-10 20:35:09 +00:00
Damien Bergamini
bef9529d24 make use of the firmware(9) subsystem.
use intel's firmware version 3.0 layout.
2006-03-10 19:59:09 +00:00
Søren Schmidt
56728c9249 Module that adds support for using USB storage devices through the
ATA framework. Mainly written to be able to use USB Flash keys.
This is work in progress so use with care :)
Doesn't need CAM and cannot coexist with umass.c
2006-03-10 19:08:52 +00:00
Damien Bergamini
c56adf0a9a fix the locking. 2006-03-10 18:55:30 +00:00
Søren Schmidt
d95f23aab8 write the right unit # on verbose output. 2006-03-10 12:20:53 +00:00
Warner Losh
837d712d07 Don't dereference an uninitialized pointer. 2006-03-09 16:28:24 +00:00
Søren Schmidt
c4ee770324 Only use the channel in the request given to ata_completed if its
still present.
2006-03-09 10:25:35 +00:00
Søren Schmidt
a0f9099364 typo. 2006-03-09 10:24:03 +00:00
Søren Schmidt
2d7994d97e Get rid of all the "long long"/"maxint" casting around in printf's.
On all our platforms intmax == int64_t so simply using %j to print
int64_t's is safe all over, and doesn't pullute the code.
2006-03-09 08:34:44 +00:00
Joseph Koshy
fc9a2b80c4 When a process is de-configuring a log file, also stop all of its
PMCs that require a log file to operate.  This change should fix
PR 90269.

PR:		kern/90269
MFC after:	1 week
2006-03-09 02:08:12 +00:00
Sam Leffler
d0d425bf53 correct ni_txrate when using a fixed rate; fixes current rate reporting
MFC after:	3 days
2006-03-09 00:28:44 +00:00
Søren Schmidt
59de60dd73 ATA_USB will need to hook into the delayed boot identify to have
interrupts running, so externalize it.
2006-03-08 16:39:01 +00:00
Søren Schmidt
d0bf5478e0 Always read the TOC in acd_read_toc even if MEDIA_CHANGED wasn't set.
Since we cannot (reliably) detect when media has been removed before we
try to touch it, this could leave stale TOC's around.
2006-03-08 10:14:39 +00:00
Søren Schmidt
de0ed44e2f Bail out of afd_sense if ENODEV. 2006-03-08 09:21:48 +00:00
John Baldwin
e1e31c0e43 Clean up the way we handle auxiliary commands for a given ddb command
table.  Previously, the ddb code knew of each linker set of auxiliary
commands and which explicit command list they were tied to.  These changes
add a simple command_table struct that contains both the static list of
commands and the pointers for any auxiliary linker set of additional
commands.  This also makes it possible for other arbitrary command tables
to be defined in other parts of the kernel w/o having to edit ddb itself.

The DB_SET macro has also been trimmed down to just creating an entry in
a linker set.  A new DB_FUNC macro does what the old DB_SET did which is
to not only add an entry to the linker set but also to include a function
prototype for the function being added.  With these changes, it's now also
possible to create aliases for ddb functions using DB_SET() directly if
desired.
2006-03-07 22:17:06 +00:00
Damien Bergamini
a6991cc704 Disable 802.11e support for now. Did some cleanup while I'm here. 2006-03-07 20:48:23 +00:00
Matt Jacob
7a49a0d1fb Add a serial number for requests so we don't just depend on a request pointer
to try and do forensics on what has occurred.
2006-03-07 17:56:40 +00:00
Søren Schmidt
f09934b191 Poll device for readiness before trying to get geometry etc. 2006-03-07 16:05:38 +00:00
Søren Schmidt
a68193c985 Only look for ICRC and CORR errors on ATA devices not ATAPI. 2006-03-07 14:27:54 +00:00
Ariff Abdullah
ead3cc4315 Add another inverted amplifier sense quirk for Kvazar-Micro Senator 3592XT.
Submitted by:	[1] Alexandr Krivulya <admin at marcom-group.com>
MFC after:	3 days

[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-March/003773.html
2006-03-07 05:48:14 +00:00
Max Laier
3e3a2a7ddc Fix the build. %ju prints uintmax_t not unsigned long long (which is
actually "longer" than uintmax_t for the understanding of printf).
2006-03-06 16:02:06 +00:00
Mike Silbersack
2017e1cbae Fix include paths to make this compile. 2006-03-05 23:27:51 +00:00
Søren Schmidt
62fba1c397 Add USB modes. 2006-03-05 21:32:38 +00:00
Damien Bergamini
945bfeec5f Import microcodes for RT2561, RT2561S and RT2661 chipsets.
With permission from Ralink Technology.
2006-03-05 20:41:51 +00:00
Damien Bergamini
9c6307b145 Add support for the second (RT2561/RT2561S) and third (RT2661 MIMO XR)
generations of 802.11abg chipsets from Ralink Technology.
Get rid of the pccard front-end while I'm here since all adapters are
cardbus ones.

Obtained from:	OpenBSD
2006-03-05 20:36:56 +00:00
Søren Schmidt
b83fcd52ba Update atapi-fd to support direct devices such as disks. 2006-03-05 20:30:54 +00:00
Poul-Henning Kamp
327643e3ca When we get an unknown ATAPI comand, try it even if it is not listed,
in all likelyhood just passing it through will work.
2006-03-05 17:52:32 +00:00
Ariff Abdullah
428feeb3b9 Add another inverted amplifier sense quirk for Sony VAIO Type T.
PR:		kern/94056
Submitted by:	Yoshihiko Sarumaru <mistral at imasy.or.jp>
MFC after:	3 days
2006-03-05 02:26:51 +00:00
Matt Jacob
1977cbd6cf turn some WARNs for unknown events into INFOs 2006-03-04 21:46:34 +00:00
Yaroslav Tykhiy
375ce6798f Take the functionality contained in the former "options TDFX_LINUX"
into a separate module.  Accordingly, convert the option into a device
named similarly.

Note for MFC: Perhaps the option should stay in RELENG_6 for POLA reasons.

Suggested by:	scottl
Reviewed by:	cokane
MFC after:	5 days
2006-03-03 21:37:38 +00:00
Gleb Smirnoff
f051cb85e8 Correctly switch IFCAP_VLAN_HWTAGGING on and off.
Reported & tested by:	Peter Blok <pblok bsd4all.org>
2006-03-03 12:32:51 +00:00
Matt Jacob
c1504bc00d micro fix from justin 2006-03-03 07:04:43 +00:00
Maksim Yevmenkin
af0618e9d4 Fix endian bugs accessing ioctl arguments that are passed by value.
Pointed out by:	marius
MFC after:	1 day
2006-03-03 00:46:28 +00:00
Maksim Yevmenkin
b569776d07 Provide ability to disable kbdmux(4) with the hint.kbdmux.0.disabled="1" hint.
Document hint in the kbdmux(4) man page.

Requested by:	scottl
MFC after:	1 day
2006-03-01 18:34:48 +00:00
Roman Kurakin
c068fdddc4 Update low-level code. (to version 1.4)
Obtained from:	Cronyx Engineering
MFC after:	3 days
2006-03-01 09:50:20 +00:00
Søren Schmidt
0b03bcd2f9 Work around the deadlock that occours when ATA waits for the taskqueue
to call back for completition and something else is holding the taskqueue
waiting for ATA to return data.
This should clear up the "semaphore timeout !! DANGER Will Robinson !!"
in most situations, and log "taskqueue timeout - completing request directly"
instead, with a delayed "WARNING - freeing taskqueue zombie request" when
the taskqueue finally calls us back with the now stale request.
(It would have been nice if there was a way to remove a scheduled item from
 a taskqueue, but that is not currently implemented in the kernel).

A real fix for this is in the works but wont make it to 6.1RELEASE

definite MFC candidate.
2006-03-01 07:48:41 +00:00
Scott Long
3469383f4f Big update to the iir driver:
- Don't use a common buffer in the softc to store per-command data.  Reserve
  a buffer in the command itself.
- Don't allocate DMA memory for the kernel command structures when all you
  really need is DMA memory for the scratch buffer embedded in them.  Instead
  allocate a slab for the scratch buffers and divide it up as needed.
- Call bus_dmamap_unload() at the completion of commands.
- Preserve and clear the CAM CCB status flags at completion.
- Reorder some low-level command operations to try to close races.
- Limit the simq to 32 commands for now.  There are some serious problems
  with the driver under load that are not well understood, so keeping the
  simq lower helps avoid this.  It has been tested at a higher value, but
  this is a safe value that doesn't show much performance degredation.

These changes allow the driver to work reliably with >4GB of memory on i386
and amd64, and also work around deadlocks seen under very high load in
certain situations.  The work-around is far from ideal, but without and
documentation it is hard to know what the right fix is.

MFC candidate
2006-03-01 07:24:39 +00:00
Warner Losh
e8bfdb2a33 Don't free ifaces yet, should fix a panic 2006-03-01 06:31:24 +00:00
Maksim Yevmenkin
d168d95487 Integrate kbdmux(4) into syscons(4) and kbd code.
By default syscons(4) will look for the kbdmux(4) keyboard first, and then,
if not found, look for any keyboard.

Current kbd code is modified so if kbdmux(4) is the current keyboard, all
new keyboards are automatically added to the kbdmux(4).

Switch to kbdmux(4) can be done at boot time, by loading kbdmux module at
the loader prompt, or at runtime, by kldload'ing the kbdmux module and
releasing current active keyboard.

If, for whatever reason, kbdmux(4) is not required/desired then just do
not load it and everything should work as before. It is also possible to
kldunload kbdmux at runtime and syscons(4) will automatically switch to
the first available keyboard.

No response from:	freebsd-current@
MFC after:		1 day
2006-02-28 23:46:23 +00:00
Matt Jacob
29ae59edff Fix mpt_reset to try mpt_hard_reset more than once, and to try
mpt_soft_reset more than once. And to wait for MPT_DB_STATE_READY
twice. I mean, this is crucial- give the IOC a chance to get
ready.

If mpt_reset is called to reinit things, and we succeed, make
sure to re-enable interrupts. This is what has mostly led to
system lockup after having to hard reset the chip. Also, if
we think that interrupts aren't function in mpt_cam_timeout,
for goodness sake, turn them on again.

In read_cfg_header, return distinguishing errnos so the caller
can decide what's an error. It's *not* an error to fail to
read a RAID page from a non-RAID capable device like the FC929X.

Some whitespace fixes (removing spaces from ends of lines).
2006-02-28 07:44:50 +00:00
Maksim Yevmenkin
2d6b1da721 Make ukbd(4) to not delay break scancodes in "raw" mode.
Developed with:		Norbert Koch < NKoch at demig dot de >
No response from:	freebsd-current@
Tested by:		Norbert Koch < NKoch at demig dot de >
MFC after:		1 day
2006-02-28 03:34:06 +00:00
Maksim Yevmenkin
40a3c5ea70 Plug memory leak
MFC after:	1 day
2006-02-27 21:47:38 +00:00
Warner Losh
04a6a8a8e5 Since we set the decription, we don't need to also print it. Noticed by: ru@ 2006-02-27 19:40:37 +00:00
Warner Losh
b0e8c55437 Don't forget to free the ifaces when we free the ivars 2006-02-27 19:36:22 +00:00
Sam Leffler
ebecf80294 backout 1.136 until we can resolve report that it causes output to stall 2006-02-27 17:20:23 +00:00
Maksim Yevmenkin
0722466d60 Disable custom locking in the vkbd(4) for now and make it rely on the
Giant mutex (just like the rest of keyboard drivers and syscons(4) do).

Tested by:	markus
MFC after:	1 day
2006-02-27 06:17:48 +00:00
Ian Dowse
564d760afe Add the Tripp-Lite U209-000-R serial adapter.
PR:		usb/78543, usb/93347
MFC after:	1 week
2006-02-27 01:01:27 +00:00
Matt Jacob
6a9fa0152c Remove the ill-considered effect of using the type definitions as
distributed by LSI-Logic. For FreeBSD, just use the posix defines
instead of trying to figure out how wide an int is. Apologies to all.
2006-02-26 22:50:14 +00:00
Matt Jacob
c6435ff3dd propagate role of device for ISP_GET_PDBINFO 2006-02-26 22:40:56 +00:00
Ian Dowse
cc06b755fe The UQ_OPEN_CLEARSTALL entry added in revision 1.48 is no longer
required now that we save the data toggle when closing a pipe.

Verified by:	Fredrik Lindberg
2006-02-26 22:20:45 +00:00
Warner Losh
6e5832cd99 Repo copy de driver to dev/de, and adjust. 2006-02-26 17:52:04 +00:00
Matt Jacob
8b14319c98 Shorten the time for waiting for TMF commands to complete- let's
not hang the system for 5 seconds. If a TMF doesn't complete within,
oh, say 500ms, that's enough.

Put in a printout to catch mpt_recover_commands being activated with
no commands.
2006-02-26 07:46:09 +00:00
Matt Jacob
ca8ee7080f a) Delay for port enable to succeed should be 30 seconds (at least) for
*both* SAS and FC, not just SAS.

b) Don't tell the chip we want it to do FIFO signalling if we actually
don't set up the address where the FIFO signal is supposed to be written
(oops).
2006-02-26 07:44:31 +00:00
Ian Dowse
78e3c96cc9 Save and restore the data toggle value when a pipe to an endpoint
is closed and then reopened. This appears to be necessary now that
we no longer clear endpoint stalls every time a pipe is opened.
Previously we could assume an initial toggle value of zero because
the clear-stall operation resets the device's toggle state.

Reported by:	Holger Kipp
MFC after:	3 days
2006-02-26 02:57:57 +00:00
Maksim Yevmenkin
65b70c1dfd Put a comment, explaining why kbdmux(4) had to be fixed.
While I'm here fix a couple of whitespaces.

Requested by:	netchild
MFC after:	1 day
2006-02-25 22:59:01 +00:00
Maksim Yevmenkin
fd4df69975 Fix hard lockup caused by kbdmux(4) when kbdmux(4), PS/2 keyboard
(atkbd(4)) and PS/2 mouse (psm(4)) are used together.

Turns out that atkbd(4) check_char() method may return "true" while
read_char() method returns NOKEY. When this happens kbdmux(4) was
simply stuck in the dead loop. Avoid dead loop in kbdmux(4) by breaking
out of the loop if read_char() method returns NOKEY.

It almost seems like a bug in atkkbd(4), atkbd_check_char() calls
kbdc_data_ready(), and, the later will return "true" if there are
pending data in either kbd or aux queue. However, because both aux
and kbd are on the same controller, I'm not sure if this is a bug
or feature.

Tested by:	markus
MFC after:	1 day
2006-02-25 21:59:29 +00:00
Ian Dowse
b184cddcc2 Add a missing ohci_waitintr() call that allows polled operation of
bulk transfers to have a chance of working.

PR:		usb/93720
Submitted by:	Nate Nielsen
MFC after:	1 week
2006-02-25 17:44:29 +00:00
Søren Schmidt
a62b100d96 Fix ata_reinit so it does things in the right order to prevent panic's.
Lock the channel so master/slave setups wont trash during reinit.
2006-02-25 17:27:33 +00:00
Matt Jacob
0b80d21bdf Role a microrev of the MPI Library in preparation for target mode work.
Make my portions of the license clearer.

Thank Chris Ellsworth for his support in getting a bunch of this done.
2006-02-25 07:45:54 +00:00
Sam Leffler
8fe92b6cf6 fix a race whereby a tx descriptor might get reused before the hardware
is finished with it; this may only occur when the tx queue is setup as
dba-gated but since the fix is cheap apply it to all queues

while here make the queue depth signed for use in assertions

Reviewed by:	apatti
MFC after:	2 weeks
2006-02-24 23:10:08 +00:00
Ariff Abdullah
df010ca869 Trim unnecessary pointer alignment. 2006-02-24 09:29:32 +00:00
Marcel Moolenaar
ea54941449 Replace our local UART_SIGMASK_* with the global SER_MASK_*. 2006-02-24 05:40:17 +00:00
Marcel Moolenaar
0bb90c9d57 When we probe a SAB82532, return BUS_PROBE_GENERIC. This allows puc(4)
or scc(4) to grab the device by default. In fact, we probably shouldn't
even claim the device at all...
2006-02-24 05:36:44 +00:00
Marcel Moolenaar
2d5118050a MFp4:
Stop using our local UART_IPEND_* and instead use the global SER_INT_*
as defined in <sys/serial.h>.
2006-02-24 02:42:26 +00:00
Marcel Moolenaar
c9ccf50a36 MFp4:
Return BUS_PROBE_LOW_PRIORITY for a successful probe. This is in
preparation of the introduction of scc(4), which is going to handle
SCCs in the near future.
2006-02-24 02:06:57 +00:00
Marcel Moolenaar
1ba1685b25 MFp4:
Add CHAN_A & CHAN_B for channel register offsets.
While here, fix a comment.
2006-02-24 02:03:35 +00:00
Søren Schmidt
28baad63bd Keep the parent device (in this case the channel) around in ata_request,
so we dont panic device removal or failure.
Clean up ata_fail_requests to prevent the queue munging to fail.
2006-02-23 20:15:22 +00:00
John Baldwin
de49f3252c Remove some dead code.
Coverity ID:	822
Found by:	Coverity Prevent
Reviewed by:	ariff
MFC after:	1 week
2006-02-23 19:23:55 +00:00
John Baldwin
9fc9d84b9b - Use callout_init_mtx() to initialize toffhandle callout using the fdc's
mutex.
- Don't use callout_drain() to stop the toffhandle callout while holding the
  fdc mutex (this could deadlock) in functions called from softclock
  (callouts aren't allowed to do voluntary sleeps).  Instead, use
  callout_stop().  Note that since we hold the associated mutex and are now
  using callout_init_mtx(), callout_stop() is just as effective as
  callout_drain().  (Though callout_drain() is still needed in detach to
  make sure softclock isn't contesting on our mutex before we destroy the
  mutex.)
- Remove unused callout 'tohandle' from softc.

MFC after:	1 week
2006-02-23 19:11:16 +00:00
Søren Schmidt
c94b3e542e In ata_cmd_allocate() only call ata_pci_allocate once.
found by:	jhb@
2006-02-23 18:52:15 +00:00
John Baldwin
44a4a80962 Check the return value of copyin() and return an error if it fails.
Coverity ID:	839
Found by:	Coverity Prevent
MFC after:	1 week
Reviewed by:	ps, scottl
2006-02-23 18:05:38 +00:00
John Baldwin
93d74675d6 G/C unused variable. 2006-02-22 21:47:04 +00:00
John Baldwin
57fb5e6097 - Use bus_setup_intr() and bus_teardown_intr() to register device driver
interrupt handlers rather than BUS_SETUP_INTR() and BUS_TEARDOWN_INTR().
  Uses of the BUS_*() versions in the implementation of foo_intr methods
  in bus drivers were not changed.  Mostly this just means that some
  drivers might start printing diagnostic messages like [FAST] when
  appropriate as well as honoring mpsafenet=0.
- Fix two more of the ppbus drivers' identify routines to function
  correctly in the mythical case of a machine with more than one ppbus.
2006-02-22 18:16:26 +00:00
John Baldwin
3df4e47b1e Use bus_setup_intr() rather than invoking BUS_SETUP_INTR() directly so that
puc still prints out [FAST] on Peter's box.
2006-02-22 17:19:10 +00:00
Gleb Smirnoff
9cc9484cb5 Back out 1.112,1.113. I don't have enough resources to fix breakages
introduced by this change.
2006-02-22 14:11:16 +00:00
Matt Jacob
696e0ce44d Remove commented out qualifier to dumping a message. 2006-02-22 05:19:50 +00:00
Marius Strobl
0c05ab41ab - In the interrupt handler clear the interrupt source flags before
processing the interrupt events. If we clear them afterwards we
  can completely miss some events as the NIC can change the source
  flags while we're in the handler. In order to not get another
  interrupt while we're in ifp->if_input() with the driver lock
  dropped we now turn off NIC interrupts while in the interrupt
  handler. Previously this was meant to be achieved by clearing the
  interrupt source flags after processing the interrupt events but
  didn't really work as clearing these flags doesn't actually
  acknowledge and re-enable the events.
  This fixes the device timeouts seen with the VMware LANCE.
- Relax the watchdog timer somewhat; don't enable it until the last
  packet is enqueued and if there is a TX interrupt but there are
  still outstanding ones reload the timer.

Reported and tested by:	Morten Rodal <morten@rodal.no>
MFC after:		3 days
2006-02-21 20:20:43 +00:00
Yoshihiro Takahashi
c15ff0bc7b Initialize the port_bst and port_bsh variables.
The ed driver on pc98 was broken by if_edvar.h rev1.31.

Reported by:	Kaho Toshikazu (kaho at elam kais kyoto-u ac jp)
Tested by:	Eiji Kato (ekato at a1 mbn or jp)
MFC after:	3 days
2006-02-21 12:01:39 +00:00
Nate Lawson
ce1a23d397 Remove unused variable.
Coverity ID:	558
Found by:	Coverity Prevent
2006-02-21 03:19:24 +00:00
Nate Lawson
987b1ad6d5 Remove unused variable.
Coverity ID:	548
Found by:	Coverity Prevent
2006-02-21 03:16:58 +00:00
Nate Lawson
6dd47e5b2a Remove unused variable.
Coverity ID:	546
Found by:	Coverity Prevent
2006-02-21 03:15:26 +00:00
Sam Leffler
b197bba53b correct check for whether wpa is enabled
MFC after:	3 days
2006-02-20 20:49:56 +00:00
Bernd Walter
4d3d7085f6 Copy MAC address to fix alignment problems.
Tested on alpha (AS600) with RTL8169S
Suggested by: jhb
2006-02-20 10:29:40 +00:00
Andrew Gallatin
b2fc195e1b 10GbE mode driver and binary firmware for Myricom's PCI-express NICs.
More info regarding these nics can be found at http://www.myri.com.

Please note that the files
sys/dev/myri10ge/{mcp_gen_header.h,myri10ge_mcp.h} are internally
shared between all our drivers (solaris, macosx, windows, linux, etc).
I'd like to keep these files unchanged, so I can just import newer
versions of them when the firmware API/ABI changes.  This means I'm
stuck with some of the crazy-long #define names, and possibly
non-style(9) characteristics of these files.

Many thanks to mlaier for doing firmware(9) just as I
needed it, and to scottl for his helpful review.

Reviewed by: scottl, glebius
Sponsored by: Myricom Inc.
2006-02-19 22:39:19 +00:00
Ian Dowse
199a2380fe Add a UQ_OPEN_CLEARSTALL quirk for devices that need a clear-stall
operation when a pipe is opened, and add an entry for the ST Micro
biometric CPU.

Submitted by:	Fredrik Lindberg
MFC after:	1 week
2006-02-19 14:48:02 +00:00
Ariff Abdullah
050519958c - Fix severe crackling after long running and abusive module load / unload by
forcing DMA alignment to default buffer size.
- Make sure DMA pointer properly aligned to avoid being truncated by caller
  which causing severe underruns and random popping (especially in 32bit
  playback / recording).
- Add AC97 inverted external amplifier quirk for Maxselect x710s
  - http://maxselect.ru/

MFC after:	1 week
2006-02-18 10:24:48 +00:00
Ariff Abdullah
fba6b23875 Fix random popping while playing in 32bit by increasing default buffer size
from 4096 to 8192.

MFC after:	1 week
2006-02-18 10:23:37 +00:00