Commit Graph

14676 Commits

Author SHA1 Message Date
jkoshy
1ad16902d3 Forcibly turn off all PMCs at module unload time.
MFC after:	1 week
2006-03-28 14:09:21 +00:00
scottl
b99f1961b8 Handle invalid capacity parameters from the firmware. 2006-03-28 01:59:11 +00:00
wkoszek
2a5afd7475 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
jkoshy
48e5e4792d 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
mjacob
600bbc4ea0 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
mjacob
6b6242717c 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
scottl
fe1496da44 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
55a952dbe3 stop device so we don't panic on card removal when active
MFC after:	3 days
2006-03-24 19:11:26 +00:00
imp
946071cfb7 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
imp
71dd9df592 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
f7341a30ca 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
98d6dd1b77 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
5f934f2781 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
835b687c81 We shouldn't really care about the return value of mixer_uninit(),
except EBUSY.
2006-03-22 20:50:04 +00:00
glebius
d663b33f93 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
iedowse
e6e3da5866 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
58fb8ecbe6 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
01ea11e489 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
harti
a1a2e842fa 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
harti
cfaf71ad4b 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
harti
470a08aa5e 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
yongari
95a983bc16 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
6e1625d978 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
c23b0abf4f 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
iedowse
d4f801f4ab Oops - fix the build in the !USB_DEBUG case. 2006-03-18 17:57:34 +00:00
iedowse
d6749fb19b 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
sos
c1d9ed7049 Properly use the sense key info 2006-03-18 13:14:38 +00:00
jkoshy
ba6139a897 When deconfiguring a log, only stop PMCs that are in the RUNNING
state.
2006-03-18 03:54:07 +00:00
iedowse
e4e5cf764a 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
glebius
1131839756 Remove dead code.
Submitted by:	oleg
2006-03-17 09:17:36 +00:00
mjacob
5976ce32c3 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
mjacob
4a446c8f7d 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
jhb
87b2271d28 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
jkoshy
48046f6ef3 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
5dcaf86e4a Restore CHN_F_BUSY flag which was removed accidentally in previous commit. 2006-03-16 08:01:10 +00:00
ariff
865b6c5d99 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
takawata
27a5754a56 Add ALPS glide point ID and some compatibility IDs.
PR: kern/75008
2006-03-15 07:04:33 +00:00
damien
62c5cabd64 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
sos
936cd92dd2 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
sos
ad0f6e357b Put autosense data in the right place (needs a 4pos left shift). 2006-03-13 14:00:08 +00:00
damien
c30e4662de sync w/ iwi:
o fix locking
o use firmware(9)
o cosmetic
2006-03-12 19:01:00 +00:00
damien
0deb63e384 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
phk
4bed556ee9 Don't be noisy in case of shared interrupts. 2006-03-11 15:39:22 +00:00
damien
aeed4af186 add dependency with firmware module.
pointed out by Martin Wilke.
2006-03-11 13:30:21 +00:00
ru
c9697894bf Fix build. 2006-03-11 08:36:15 +00:00
philip
dffb931651 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
799fc2f615 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
fb0aee8aca make use of the firmware(9) subsystem.
use intel's firmware version 3.0 layout.
2006-03-10 19:59:09 +00:00
sos
5419ca4c93 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
25007ede44 fix the locking. 2006-03-10 18:55:30 +00:00