Commit Graph

13738 Commits

Author SHA1 Message Date
netchild
cc33905d69 Fix hang at init for MagicMedia 256A[VX] chips. [1]
In case this causes trouble for some other chipsets add a comment how to
proceed. If we don't get bugreports, this should be removed after a while
(some releases?).

PR:		56617 [1], 29465, 39260, 40574,	68225
Submitted by:	Matthew E. Gove <mgove@comcast.net> [1]
2005-09-11 17:30:27 +00:00
netchild
fedf7d75e8 Power up the external amplifiers additionally to powering up the DAC and ADC.
PR:		47029
Submitted by:	Anish Mistry <mistry.7@osu.edu>
Tested by:	David Murphy <dm@dmz.ie>
2005-09-11 14:15:05 +00:00
netchild
f5ccdce26c Add some ad_wait_init() calls to fix some problems in some configs (e.g.
PC98, CS4231A, "pcm0: play interrupt timeout").

PR:		45682
Submitted by:	Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
2005-09-11 13:59:02 +00:00
netchild
e017759312 Allow to record non 8bit-mono formats even in half-duplex configurations.
PR:		45679
Submitted by:	Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
2005-09-11 13:49:24 +00:00
phk
fd5205fdd9 Do not destroy the queue mutex until the thread is done with it. 2005-09-11 12:35:32 +00:00
netchild
3af413ca70 Fix misdetection of the sound chip on PC98 systems. The submitter doesn't
believe that there are PC98 systems with an OPTi chip.

I don't know enough about this special PC architecture to be sure about
this, so let's find out by letting people with such a system complain in
case this commit breaks the sound system for them. It's easy to revert
then.

PR:		45673
Submitted by:	Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
2005-09-11 10:07:12 +00:00
netchild
34f358a569 Fix a bug in volume calculation, this sometimes gives a USB audio device an
unexpected value (when the volume is high).

Submitted by:	Kazuhito HONDA <kazuhito@ph.noda.tus.ac.jp>
2005-09-11 09:15:42 +00:00
imp
638a6dba07 Change hw.pci.do_powerstate from a boolean to a range. 0 means the
same as today: do no power management.  1 means be conservative about
what you power down (any device class that has caused problems gets
added here).  2 means be agressive about what gets powered down (any
device class that's fundamental to the system is here).  3 means power
them all down, reguardless.  The default is 1.

The effect in the default system is to add mass storage devices to the
list that we don't power down.  From all the pciconf -l lists that
I've seen for the aac and amr issue, the bad device has been a mass
storage device class.

This is an attempt at a compromise between the very small number of
systems that have extreme issues with powerdown, and the very large
number of systems that gain real benefits from powerdown (I get about
20% more battery life when I attach a minimal set of drivers on my
Sony).  Hopefully it will strike the proper balance.

MFC After: 3 days (before next beta)
2005-09-11 04:09:44 +00:00
imp
c6e2bab518 Allow one to access the cached values for CMDREG, CACHELNSZ, MINGNT,
MAXLAT and LATTIMER.

Improve error message when a bogus RID type is requested for a bar.
2005-09-11 03:22:03 +00:00
obrien
ec43c1e2cf Don't pollute the entire kernel build with -I$S/dev/twa. 2005-09-11 00:52:05 +00:00
netchild
756320bcbb - channel.h
* New definition CHN_F_HAS_VCHAN.
- channel.c
  * Use CHN_F_HAS_VCHAN to mark channel with vchan capability instead
    of relying on SLIST_EMPTY(&channel->children) == true for better
    clarification and future possible usages of children (like
    'slave' channel).
  * Various fixes, including blocksize / format bps allignment,
    better 24bit seeking (mplayer, others).
  * Improve format chain building, it's now possible to record something
    to a format non-native to the soundcard through various feeder format
    converters or to higher sampling rate. This also gains another feature,
    like doing vchan mixing on non s16le soundcard such as sb8.
- sound.c
  * Increase robustness within various function that handle vchan
    creation / termination (these function need a total rewrite, but
    that would cause other major rewrite within various places too!).
    As far as its robustness can be guaranteed, leave it as is.
  * Optimize channel ordering, prefer *real* hardware playback
    channels over virtual channels. cat /dev/sndstat should look
    better.
  * Increase sndstat verbosity to include bufsoft/bufhard allocation.
- vchan.c
  * Fix LOR 119.
    - http://sources.zabbadoz.net/freebsd/lor.html#119
  * Reorder / increase robustness of vchan_create() / destroy().
    Enforce destroy_dev() during destroy operation, fix possible
    panic / dangling character device.
    - http://lists.freebsd.org/pipermail/freebsd-current/2005-May/050308.html
  * Tolerate a little bit more during mixing process, this should help
    non s16le soundcards.

Note: Recoring in a non-native rate/format may result in overruns. A friendly
      application is wavrec from audio/wavplay. The problem is under
      investigation.

Submitted by:	Ariff Abdullah <skywizard@MyBSD.org.my>
2005-09-10 18:10:31 +00:00
netchild
c0f53576aa Release lock for a while during chn_reset() / pcm_chnalloc() operation
while malloc()ing, this fixes LOR 129.

See
 - http://lists.freebsd.org/pipermail/freebsd-current/2005-June/051157.html
 - http://lists.freebsd.org/pipermail/freebsd-current/2005-August/054620.html
 - http://sources.zabbadoz.net/freebsd/lor.html#129

Submitted by:	Ariff Abdullah <skywizard@MyBSD.org.my>
2005-09-10 17:51:38 +00:00
netchild
a0eea69ee0 - fake.c
* Add missing A_LAW / MU_LAW format.
- feeder.c
  * Fix format chain building. Traverse backward instead of forward
    during format chainning.
- feeder_fmt.c
  * Add missing alaw/mulaw converter.
  * Add 16 -> 24/32bit converter.
  * whitespace cleanup.
- sound.h
  * alaw / mulaw are member of AFMT_8BIT.

Submitted by:	Ariff Abdullah <skywizard@MyBSD.org.my>
2005-09-10 17:47:39 +00:00
netchild
5849edeb02 - Few buggy codecs (STAC9704, probably others) return inconsistent
ac97_rdcd() value. Enable aggresive workaround.
- Fix mixer resolution detection for 5/6 bit register, carefully not to
  overflow others.

PR:		84728
Submitted by:	Ariff Abdullah <skywizard@MyBSD.org.my>
2005-09-10 17:42:59 +00:00
netchild
75b8646c9b Fix panic caused by full duplex operation.
From the PR:
---snip---
The vibra16X supports full duplex. I traced the Windows driver, and what is
does is that it programs one DMA channel 8-bit, and the other 16-bit. There
might be some kind of auto detection logic here, because it always uses 8-bit
for playback, even if I play 16-bit sound ...
---snip---

PR:		80977
Submitted by:	Hans Petter Selasky <hselasky@c2i.net>
2005-09-10 17:33:58 +00:00
imp
0ba77c956d MFp4:
Reduce the size of ed a little by removing some CIS based entries (others
likely can be removed too):
o The D-Link DFE-670TXD doesn't need its own entry based on strings.
o The Xircom CompactCard appears to be a TDK design, so list it there by ID
  and remove the strings.

Increase the size of ed a little:
o Add support for the Addtron AE-660CT and Addtron AE-660.  This is a very
  generic NE-2000 clone (so generic that its CIS tags say NE-2000 generic
  card!).
2005-09-10 00:17:55 +00:00
imp
fc07baa460 Minor improvement for the suspend case for Ricoh based (and others)
CardBus bridges.
2005-09-08 17:18:42 +00:00
imp
ef20387462 The ed driver lock is already held in the mii frobbing routines. Remove
locking from these routines.
2005-09-08 17:17:13 +00:00
imp
1ca9efc182 Add note about what ED_DEFAULT_MAC_OFFSET applies to 2005-09-08 17:16:23 +00:00
scottl
28cd9f9628 Fix a typo that broke LINT. 2005-09-08 14:13:36 +00:00
kensmith
d937ab24bb Move hme_stop() after ether_ifdetach() and if_free() to prevent a
memory-referenced-after-free panic if the hme interface fails to
attach.

Patch obtained from:	marius
Suggested same thing:	brooks

MFC after:	3 days
2005-09-08 13:50:16 +00:00
scottl
2a42f59489 Import new version of the HPTMV driver from Highpoint. The major change
here is the support for amd64, as well as possible support for PAE.  Many
thanks to Highpoint for continuing to support FreeBSD.

Obtained from:  Steve Chang @ Highpoint
MFC After: 3 days.
2005-09-07 23:33:26 +00:00
imp
13128dd1ca Sorting the belly button lint of history:
o Note that the first 255 locations are reserved for JEDEC Ids from
	  publication 106 (current revision Q, each one verified with
	  JEDEC and the PMCICA).
	o Move ADAPTEC2 to the right section.
	o Sort TOSHIBA2 numerically.
2005-09-07 22:13:31 +00:00
rodrigc
ab91f18851 In set_mouse_pos(), try to avoid division by zero errors. 2005-09-07 15:19:03 +00:00
obrien
34dc93c2f2 Reorder code to not depend on an ISO-C illegal forward extern declaration. 2005-09-07 09:53:35 +00:00
imp
07f3583b5a Consistancy is the hobgoblin of small minds:
o DLINK -> DL100XX
2005-09-07 03:34:24 +00:00
imp
1c4b0b9c5f Minor reorg of pccard attach code to fix ax88x90 case broken after fixing
dl100xx case.
o We no longer acquire and release resources during attach many times.  We now
  do it once at the beginning.
o Move setting the resource offsets to just after acquiring the ports in
  attach.
o Move ax88x90 code to the end of the file, just after the dl100xx specific
  code.
o Rename ed_pccard_Linksys to ed_pccard_dl100xx to reflect the underlying
  chipset.
o Pass the ed_product structure into ed_pccard_{dl100xx,ax88x90} and have
  those routines test the flags to see if this card should be probed in that
  way.
o transition from ed_probe_Novell to ed_probe_Novell_generic since we already
  have the resources setup.
o Move use of ed_probe_Novell_generic into ed_pccard_dl100xx to be more
  consistant with ax88x90 case.
o simplify the code where we probe for the chipsets
2005-09-07 03:30:58 +00:00
imp
aa9d523c41 o Expose ed_probe_Novel_generic, it is useful for pccard case.
o Fix a now stale comment.  There are likely many others like them, but this
  one definitely hasn't been true since DELAY was introduced into the tree.
2005-09-07 03:20:33 +00:00
imp
6543a6f5bc Fix DL100xx based cards. Don't drop resources. It was approrpiate in
the probe code that this used to be part of, but as part of the
attach, we shouldn't be dropping the resources here.

Also, allocate the proper rid in the ax88x90 setup.
2005-09-07 00:00:16 +00:00
imp
767662ea7f move away from K&R function definitions 2005-09-06 23:15:21 +00:00
imp
a9d0faae5c Work around a bug I've seen on Linksys EC2T cards. For some reason,
as yet unknown, those cards report their MAC address a byte at a time.
However, other AX88x90 cards report the MAC address a word at a time.
Add a heuristic which looks at the high order bytes of the first 6
words.  If they are all '0', assume the card is behaving like the
Linksys EC2T card.  Since the default prefix for these cards appears
to be 00:e0:98, this appears to be a safe heuristic.  While some cards
have been observed with different prefixes, they all work with this
heuristic.

I'm unsure if this is a bug in the EC2T card, or if it is a bug in the
initialization of the card.  No other OS has this heuristic (although
w/o it, the MAC address that is used works).
2005-09-06 22:55:32 +00:00
imp
7cd18dbbe8 Go ahead and | in ED_CR_PAGE_0, even though this doesn't change things
at all.  It makes the code clearer.

fix a comment comments about why we need to write i/o address to certain
registers.
2005-09-06 22:46:41 +00:00
imp
442673342b It turns out that many of the ambicom cards have their CIS resources
listed in different orders.  Since it is easy to identify the Modem
resources vs the Ethernet resources by looking at the size, use that
rather than hard coded rids.  For such parts, go ahead and guess which
rid we should use based on the size.  This guess appears reliable for
the two example cards that I have with different CIS info.
2005-09-06 22:44:26 +00:00
rodrigc
72540a43ca In sc_set_text_mode(), reset fontwidth if it is <= 0.
Eliminates division by zero errors in syscons driver.

Reported by:	keramida, Slawa Olhovchenkov <slw at zxy dot spb dot ru>,
		Kyryll Mirnenko <mirya at matrix dot kiev dot ua>
Tested by:	keramida, rodrigc
2005-09-06 20:38:39 +00:00
sos
a3b63345a1 Fix problem with finding the still working disk in a broken mirror on VIA. 2005-09-06 19:17:48 +00:00
pjd
4f6bd877d3 When bge_stop() is called from bge_detach(), mii is already NULL, so check
before trying to use it.
This fix allows to 'kldunload if_bge' without panicing.

Reviewed by:	bz
MFC after:	3 days
2005-09-04 06:35:59 +00:00
imp
18134b1f30 More consistantly return the correct BAR size. Before, we'd only
return the correct bar size if we encountered a 64-bit BAR that had
its resources already assigned.  If the resources weren't yet
assigned, we'd bogusly assume it was a 32-bit bar and return 1.
2005-09-03 23:15:46 +00:00
imp
bb0954b57a MFp4: kill bogus comment 2005-09-02 03:15:51 +00:00
imp
496d9adeda At some point in the past, we read the PROM by words. Now we read
PROM by bytes.  Adjust the extraction of the MAC address from this data
to reflect this change.

This gets the AX88x90 based PC Cards MAC address working again (my
UMAX Ethernet and Linksys EC2T cards now work).

MFC After: 3 days
2005-09-01 20:08:24 +00:00
jhb
4452d59526 Typo in comment. 2005-09-01 16:41:42 +00:00
imp
9b54632324 Treat resources that are 0xfffff.... as being 'unassigned'.
Reviewed by: jhb
Tested by: Mark Kirkwood
MFC After: 3 days
2005-09-01 02:42:34 +00:00
pjd
06122c40eb - Add md_mtx lock to protect ID number and list of devices.
- Always check mdnew() return value, as even in !autounit case
  kthread_create() can fail.

Those two changes fix serval panics provked by simple stress test.

Tested by:	Kris The BugMagnet
MFC after:	3 days
2005-08-31 19:45:11 +00:00
jhb
273bd540cc - Only call txp_release_resources() once if attach fails.
- Set errno to ENXIO instead of 0 in several attach failure cases.
- Setup the interrupt handler at the very end of txp_attach() after
  ether_ifattach().
- Various whitespace fixes in function prototypes.
2005-08-31 18:09:54 +00:00
imp
2f4cafe2dd Update for a few recently discovered Olicom token ring cards:
OC3231 Token Ring + 28.8 modem
	OC3232 Token Ring + 33.6 modem
2005-08-31 17:00:48 +00:00
rodrigc
3829ee490a FDOPT_NORETRY is an option, and must be compared with fd->options,
not fd->flags.

PR:		kern/85481
Submitted by:	Lev Levinson <llevinson at inbox dot ru>
MFC after:	1 day
2005-08-30 23:12:18 +00:00
rodrigc
202872e9e6 Prevent division by zero errors in sc_mouse_move()
by explicitly setting sc->font_width, in the same
places where sc->font_size is set, instead of
relying on the default initialized value of 0 for sc->font_width.

PR:		kern/84836
Reported by:	Andrey V. Elsukov <bu7cher at yandex dot ru>
MFC after:	2 days
2005-08-30 18:58:17 +00:00
imp
43850fb15e Add back dropped if_media.h include 2005-08-30 05:24:53 +00:00
scottl
e9c5b0a58c Correct previous commit. 2005-08-29 20:06:02 +00:00
imp
3c8a222751 Better comment 2005-08-29 18:45:21 +00:00
sos
ab2182f5fc In ata_mode2str() properly list -1 as UNSUPPORTED. 2005-08-29 18:19:06 +00:00