Commit Graph

2649 Commits

Author SHA1 Message Date
Takashi Iwai
16ded52538 [ALSA] hda-codec - Add support of more models with ALC codecs
HDA Codec driver,HDA Intel driver
Merged the work of pshou <pshou@realtek.com.tw> for the support of
more models with ALC codecs: ALC880 ASUS, Uniwill, FSC1734, generic 6-stack,
and ALC260 HP.  Tests with the real hardwares are appreciated.

The codec patch is cleaned up:  The preset configuration of codecs are
stored in the table and copied to the spec instance.

Added/fixed comments.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:51 +02:00
Takashi Iwai
5ecd7022f5 [ALSA] hda-codec - Allow sub_device=0 in board config check
HDA Codec driver
Allow sub_device=0 in board config check.  This means that every device
with the given sub vendor ID will match.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:47 +02:00
Takashi Iwai
05acb863a2 [ALSA] hda-codec - Clean up and fix ALC-codec support code
HDA Codec driver
Clean up and fix ALC-codec support code.

The last addition of bound volume is fixed now to handle correctly
the bound 'mute switches'.  The analog loopback should work better.
The init verbs are fixed together with this change.

The numbers are replaced with macros for better readability.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:44 +02:00
Takashi Iwai
4b3acaf5b5 [ALSA] hda-codec - Feed front signals to all surrounds
HDA Codec driver
Feed front signals to all surround channels if no data is given
for surround channels.

It seems that CLFE works as expected (only center outputs) even if
connected from the front line - at least on my test system.
If this change causes problems on other system (e.g. only the left
channel is transferred to the center channel), please let me know...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:40 +02:00
Takashi Iwai
3e289f16ec [ALSA] hda-codec - Print all AMP IN values
HDA generic driver
Print all AMP IN values when multiple nodes are connected.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:36 +02:00
Takashi Iwai
1ccc67d692 [ALSA] Disable MPU401 on SIS7018
Trident driver
Disable MPU401 support on SIS7018 since it results in kernel freeze.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:33 +02:00
Takashi Iwai
41e41f1f34 [ALSA] Fix the analog loopback volumes of ALC codecs
HDA Codec driver
Fix the analog loopback volumes of ALC codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:30 +02:00
Takashi Iwai
ead9b7c399 [ALSA] Fix the PCM mixer switch for AD1986A
HDA Codec driver
Fix the PCM mixer switch for AD1986a (it was a typo).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:27 +02:00
Takashi Iwai
4a19faee63 [ALSA] Fix the handling of amp cache in hda-codec
HDA Codec driver
Fixed the handling of amp cache in hda-codec driver.
The confliction of cache values with different indices should be fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:24 +02:00
Jaroslav Kysela
96d078154b [ALSA] via82xx - fixed entry for Umax AB 595T (VIA K8N800A - VT8237)
VIA82xx driver
As the original reporter noted, the NO_VRA must be used for loud volumes.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:28:21 +02:00
James Courtier-Dutton
c82bf829c0 [ALSA] ca0106: Fix 96000 Hz audio playback.
CA0106 driver

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-06-22 12:28:18 +02:00
Takashi Iwai
5470440a2a [ALSA] Add documentation for HDSP MADI
Documentation
Added documentation for HDSP MADI driver by Winfried Ritsch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:15 +02:00
Takashi Iwai
763f356cd8 [ALSA] Add HDSP MADI driver
HDSPM driver,PCI drivers,RME9652 driver
Added RME Hammerfall DSP MADI driver by Winfried Ritsch.
(Moved from alsa-driver tree to mainline.)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:11 +02:00
Christoph Schulz
375389288a [ALSA] cs4236-irq-handling-fix.patch
CS4236+ driver
Background: The card/chipset supports an external MIDI interrupt.  By
default, this interrupt isn't used (because the isapnp mechanism chooses a
configuration without an assigned interrupt).  If the user wishes to
explicitly select an interrupt via the mpu_irq parameter for such a
configured device, it doesn't work: The driver always shows:

isapnp MPU: port=0x330, irq=-1

(note the 'irq=-1')

Problem: The driver only allows to set the irq if pnp_irq_valid returns
true for this particular pnp device.  This, however, is only true if an
interrupt has already been assigned (pnp_valid_irq returns true if the flag
IORESOURCE_IRQ is set and IORESOURCE_UNSET is not set).  If no interrupt
has been assigned so far, IORESOURCE_UNSET is set and pnp_irq_valid returns
false, thereby inhibiting the selection of a valid irq.

Solution: Don't check for a valid (= already assigned) irq at the point of
calling pnp_resource_change.

Tested successfully on Linux 2.6.11.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:28:06 +02:00
Jaroslav Kysela
5ac0fab95c [ALSA] OSS PCM emulation - The 2nd final fix for SNDCTL_DSP_GETOPTR problem
ALSA<-OSS emulation
The problem was negative/wrong result (info.bytes) in a specific condition at
playback startup.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:28:03 +02:00
Takashi Iwai
98c7f2121d [ALSA] Add FSC T3010 quirk
Intel8x0 driver
Added ac97_quirk for FSC T3010.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:27:59 +02:00
Jaroslav Kysela
fb4bd0adc4 [ALSA] OSS PCM emulation - The final fix for SNDCTL_DSP_GETOPTR problem
ALSA<-OSS emulation
The problem was negative result (info.bytes) in a specific condition at
playback startup.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:57 +02:00
Takashi Iwai
21cb2a2ec5 [ALSA] Fix races between PCM drain and other ops
PCM Midlevel
Fix semaphore races between PCM drain and other ops.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:27:53 +02:00
Takashi Iwai
ce43fbaece [ALSA] hda-intel - Fix Oops in the error path
HDA Intel driver
Fixed Oops in the error path from probe function of snd-hda-intel driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:27:50 +02:00
Takashi Iwai
b6a969155b [ALSA] Add write support to snd-page-alloc proc file
Documentation,Memalloc module,RME HDSP driver,RME9652 driver
Add the write support to snd-page-alloc proc file for buffer pre-allocation.
Removed the pre-allocation codes via module options.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:27:47 +02:00
Jesper Juhl
4d572776d4 [ALSA] Remove redundant NULL checks before kfree
Timer Midlevel,ALSA sequencer,ALSA<-OSS sequencer,Digigram VX core
I2C tea6330t,GUS Library,VIA82xx driver,VIA82xx-modem driver
CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,YMFPCI driver
Digigram VX Pocket driver,Common EMU synth,USB generic driver,USB USX2Y
Checking a pointer for NULL before calling kfree() on it is redundant,
kfree() deals with NULL pointers just fine.
This patch removes such checks from sound/

This patch also makes another, but closely related, change.
It avoids casting pointers about to be kfree()'ed.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:27:43 +02:00
James Courtier-Dutton
6fd8b87f0e [ALSA] AC97 - renamed vendor/device to subvendor/subdevice where appropriate
Intel8x0 driver
To avoid confusion, the structure members vendor/device were renamed
to subvendor/subdevice, because we compare them with PCI subsystem vendor
and subsystem device.

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-06-22 12:27:37 +02:00
Jaroslav Kysela
69ad07cf98 [ALSA] AC97 - renamed vendor/device to subvendor/subdevice where appropriate
AC97 Codec,ATIIXP driver,VIA82xx driver
To avoid confusion, the structure members vendor/device were renamed
to subvendor/subdevice, because we compare them with PCI subsystem vendor
and subsystem device.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:34 +02:00
Jaroslav Kysela
745cac56ba [ALSA] via82xx - added 0x1071/0x8399 to while list
VIA82xx driver
- 0x1071, 0x8399 == VIA_DXS_ENABLE
- Umax AB 595T (VIA K8N800A - VT8237)
- reporter: Honza Machacek <Hloupy.Honza@centrum.cz>

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:30 +02:00
Sasha Khapyorsky
5cbff89cbc [ALSA] Modem support for ALI5451
ALI5451 driver
This patch adds modem support for ali5451. Since it is same pci device
all is done in ali5451.c.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:27 +02:00
Tobias Klauser
299676b1d7 [ALSA] sound/pci/ca0106: Use the DMA_32BIT_MASK constant
CA0106 driver
Use the DMA_32BIT_MASK constant from dma-mapping.h
when calling pci_set_dma_mask() or pci_set_consistent_dma_mask()
See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details

Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
Signed-off-by: Domen Puncer <domen@coderock.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:24 +02:00
Sasha Khapyorsky
83a5b72ad7 [ALSA] PCI modem drivers update
ATIIXP-modem driver,Intel8x0-modem driver,VIA82xx-modem driver
Modem drivers (atiixp-modem, intel8x0m, via82xx-modem) migration
for using MC97 generic modem mixer for off-hook operation.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:21 +02:00
Sasha Khapyorsky
87d61c290b [ALSA] MC97 modem mixer in sound/pci/ac97
AC97 Codec
Simple MC97 modem mixer with two common controls: Off-hook and CID,
and Si3056 MC specific control: Modem Speaker.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:18 +02:00
James Courtier-Dutton
8fabab15dc [ALSA] Be more specific with which I2C channel to use.
CA0106 driver

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-06-22 12:27:14 +02:00
James Courtier-Dutton
883130b476 [ALSA] Implement S32_LE(24bit) and 96000 capture rates etc.
CA0106 driver

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-06-22 12:27:12 +02:00
James Courtier-Dutton
ed144f3cdc [ALSA] Add Mic capture support.
CA0106 driver
Notes: This adds a new mixer item to switch between Mic and Line-in.

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-06-22 12:27:09 +02:00
James Courtier-Dutton
7199acdc74 [ALSA] Implement support for Line-in capture on SB Live 24bit.
CA0106 driver
Notes: MIC capture not tested yet.

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-06-22 12:27:06 +02:00
Jaroslav Kysela
da04b128cf Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-06-22 12:19:24 +02:00
Linus Torvalds
2a5a68b840 Merge rsync://oss.sgi.com/git/xfs-2.6 2005-06-21 19:51:18 -07:00
Jesper Juhl
990a8baf56 [PATCH] md: remove unneeded NULL checks before kfree
This patch removes some unneeded checks of pointers being NULL before
calling kfree() on them.  kfree() handles NULL pointers just fine, checking
first is pointless.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:48 -07:00
NeilBrown
8a5e9cf1d6 [PATCH] md: make sure md/bitmap doesn't try to write a page with active writeback
Due to the use of write-behind, it is possible for md to write a page to
the bitmap file that is still completing writeback.  This is not allowed.

With this patch, we detect those cases and either force a sync write, or
back off and try later, as appropriate.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:47 -07:00
NeilBrown
39730960d9 [PATCH] Two small fixes for md verion-1 superblocks.
1/ Must typecast int to (sector_t) before inverting or we
 might not invert enough bits.

2/ When "bitmap_offset" was added to mdp_superblock_1, we didn't increase
   the count of words-used (96 to 100).

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:47 -07:00
NeilBrown
7bfa19f274 [PATCH] md: allow md to update multiple superblocks in parallel.
currently, md updates all superblocks (one on each device) in series.  It
waits for one write to complete before starting the next.  This isn't a big
problem as superblock updates don't happen that often.

However it is neater to do it in parallel, and if the drives in the array have
gone to "sleep" after a period of idleness, then waking them is parallel is
faster (and someone else should be worrying about power drain).

Futher, we will need parallel superblock updates for a future patch which
keeps the intent-logging bitmap near the superblock.

Also remove the silly code that retired superblock updates 100 times.  This
simply never made sense.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:47 -07:00
NeilBrown
a654b9d8f8 [PATCH] md: allow md intent bitmap to be stored near the superblock.
This provides an alternate to storing the bitmap in a separate file.  The
bitmap can be stored at a given offset from the superblock.  Obviously the
creator of the array must make sure this doesn't intersect with data....
After is good for version-0.90 superblocks.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:47 -07:00
NeilBrown
3d310eb7b3 [PATCH] md: fix deadlock due to md thread processing delayed requests.
Before completing a 'write' the md superblock might need to be updated.
This is best done by the md_thread.

The current code schedules this up and queues the write request for later
handling by the md_thread.

However some personalities (Raid5/raid6) will deadlock if the md_thread
tries to submit requests to its own array.

So this patch changes things so the processes submitting the request waits
for the superblock to be written and then submits the request itself.

This fixes a recently-created deadlock in raid5/raid6

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:46 -07:00
NeilBrown
41158c7eb2 [PATCH] md: optimise reconstruction when re-adding a recently failed drive.
When an array is degraded, bit in the intent-bitmap are never cleared.  So if
a recently failed drive is re-added, we only need to reconstruct the block
that are still reflected in the bitmap.

This patch adds support for this re-adding.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:46 -07:00
NeilBrown
289e99e8ed [PATCH] md: initialise sync_blocks in raid1 resync
Otherwise it could have a random value and might BUG.  This fixes a BUG
during resync problem in raid1 introduced by the bitmap-based-intent-loggin
patches.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:46 -07:00
NeilBrown
ab7a30c705 [PATCH] md: fix bug when raid1 attempts a partial reconstruct.
The logic here is wrong.  if fullsync is 0, it WILL BUG.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:46 -07:00
NeilBrown
191ea9b2c7 [PATCH] md: raid1 support for bitmap intent logging
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:46 -07:00
NeilBrown
aa3163f816 [PATCH] md: don't skip bitmap pages due to lack of bit that we just cleared.
When looking for pages that need cleaning we skip pages that don't have
BITMAP_PAGE_CLEAN set.  But if it is the 'current' page we will have cleared
that bit ourselves, so skipping it is wrong.  So: move the 'skip this page'
inside 'if page != lastpage'.

Also fold call of file_page_offset into the one place where the value (bit) is
used.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:45 -07:00
NeilBrown
77ad4bc706 [PATCH] md: enable the bitmap write-back daemon and wait for it.
Currently we don't wait for updates to the bitmap to be flushed to disk
properly.  The infrastructure all there, but it isn't being used....

A separate kernel thread (bitmap_writeback_daemon) is needed to wait for each
page as we cannot get callbacks when a page write completes.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:45 -07:00
NeilBrown
bfb39fba4e [PATCH] md: check return value of write_page, rather than ignore it
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:45 -07:00
NeilBrown
a2cff26ad1 [PATCH] md: improve debug-printing of bitmap superblock.
- report sync_size properly  - need /2 to convert sectors to KB
- move everything over 2 spaces to allow proper spelling of
  "events cleared".

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:45 -07:00
akpm@osdl.org
fc7ca163a4 [PATCH] md printk fix
A u64 is not an unsigned long long.  On power4 it is `long', and printk warns.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:45 -07:00
NeilBrown
cdbb4cc2e5 [PATCH] md: make sure md bitmap is cleared on a clean start.
As the array-wide clean bit (in the superblock) is set more agressively than
the bits in the bitmap are cleared, it is possible to have an array which is
clean despite there being bits set in the bitmap.

These bits will currently never get cleared, as they can only be cleared by a
resync pass, which never happens.

No, when reading bits from disk, be aware of whether the whole array is known
to be in sync, and act accordingly.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:44 -07:00