John L. Utz III | 20 Aug 02:14

PATCH - vt1618 7.1 Audio

Signed-off-by: John L. Utz III john.utz <at> dmx.com

diff --git a/pci/ac97/ac97_codec.c b/pci/ac97/ac97_codec.c
index d0023e9..a34f1ea 100644
--- a/pci/ac97/ac97_codec.c
+++ b/pci/ac97/ac97_codec.c
@@ -168,7 +168,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[]  
= {
  { 0x54584e20, 0xffffffff, "TLC320AD9xC",	NULL,		NULL },
  { 0x56494161, 0xffffffff, "VIA1612A",		NULL,		NULL }, // modified ICE1232  
with S/PDIF
  { 0x56494170, 0xffffffff, "VIA1617A",		patch_vt1617a,	NULL }, // modified  
VT1616 with S/PDIF
-{ 0x56494182, 0xffffffff, "VIA1618",		NULL,		NULL },
+{ 0x56494182, 0xffffffff, "VIA1618",		patch_vt1618,   NULL }, // clean  
sheet of crinkled paper
  { 0x57454301, 0xffffffff, "W83971D",		NULL,		NULL },
  { 0x574d4c00, 0xffffffff, "WM9701,WM9701A",	NULL,		NULL },
  { 0x574d4C03, 0xffffffff, "WM9703,WM9707,WM9708,WM9717", patch_wolfson03,  
NULL},
@@ -609,7 +609,6 @@ AC97_SINGLE("PC Speaker Playback Volume",  
AC97_PC_BEEP, 1, 15, 1)
  static const struct snd_kcontrol_new snd_ac97_controls_mic_boost =
  	AC97_SINGLE("Mic Boost (+20dB)", AC97_MIC, 6, 1, 0);

-
  static const char* std_rec_sel[] = {"Mic", "CD", "Video", "Aux", "Line",  
"Mix", "Mix Mono", "Phone"};
  static const char* std_3d_path[] = {"pre 3D", "post 3D"};
  static const char* std_mix[] = {"Mix", "Mic"};
(Continue reading)

Brian Rhodes | 20 Aug 00:24

pcm write from posix threads

When calling snd_pcm_write* from a thread how do you safely cancel the 
thread?  I've tried masking the signals which are used in alsa lib, yet 
I am getting a segfault on pthread_exit().  My thread is looping doing 
the following.

testcancel
snd_pcm_wait
snd_pcm_avail
snd_pcm_writei

I am checking return values to handle those functions being woken up by 
pthread cancel and attempting to exit.  In testing the process it 
performs fine until I start actually writing data.  Once I write some 
data, a pthread_exit will segfault.  My cancellation routine is calling 
snd_pcm_drop, then doing a cancel followed by join.
Andreas Mohr | 19 Aug 22:33

[PATCH] Try to make our poor little ALS4000 driver worthy of its copious public specs (first step)

[with not-quite-so-unintentional CCs added]

Hi,

there you have it: Linux developers are hypocrites ;)

Never omitting any opportunity to complain about missing vendor
cooperation, but what do they do once people actually do publish ample specs? -
yeah, you got that right: NOTHING!!

Let's try to change that, at least one bit at a time. ;)

ChangeLog:
- use specs-derived register name enums instead of open-coded numeric
values, for better understanding of things
- fix naming confusion ("gcr" was _NOT_ the GCR register stuff, but
  instead the io _base_ which has multiplexed _access_ to GCR config
  space, at _sub_ registers 0x08 and 0x0c)
- add FIXME comments about a race condition and MPU401 features

Oh, and I chose an abbreviated "ALS4K" prefix since I would have gotten
finger cramps otherwise.

Patch created on 2.6.27-rc1-git4 (no als4000.c changes up to -rc3, verified),
pushed through checkpatch.pl, verified on my ALS4000 card.

More work to follow... e.g. would be nice to get audio wakeup things to work,
since this would probably be the first (if admittedly crappy) sound card/driver
combo on Linux to support such features, thus a nice broadening of
Linux capabilities.
(Continue reading)

Krzysztof Helt | 19 Aug 21:50

[PATCH] opl3sa2: replace nd_opl3sa2_info_xxx() with snd_wss_info_xxx()

From: Krzysztof Helt <krzysztof.h1 <at> wp.pl>

Replace snd_opl3sa2_info_xxx() with snd_wss_info_xxx().
Drop check of card->private_data which cannot be NULL
if card is not NULL (spotted by Rene Herman).

Signed-off-by: Krzysztof Helt <krzysztof.h1 <at> wp.pl>
---

diff -urp linux-ref/sound/isa/opl3sa2.c linux-2.6/sound/isa/opl3sa2.c
--- linux-ref/sound/isa/opl3sa2.c	2008-08-20 21:19:04.000000000 +0200
+++ linux-2.6/sound/isa/opl3sa2.c	2008-08-20 21:19:29.000000000 +0200
@@ -300,7 +300,7 @@ static irqreturn_t snd_opl3sa2_interrupt
 	struct snd_opl3sa2 *chip;
 	int handled = 0;

-	if (card == NULL || card->private_data == NULL)
+	if (card == NULL)
 		return IRQ_NONE;

 	chip = card->private_data;
@@ -338,29 +338,18 @@ static irqreturn_t snd_opl3sa2_interrupt

 #define OPL3SA2_SINGLE(xname, xindex, reg, shift, mask, invert) \
 { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
-  .info = snd_opl3sa2_info_single, \
+  .info = snd_wss_info_single, \
   .get = snd_opl3sa2_get_single, .put = snd_opl3sa2_put_single, \
   .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 #define OPL3SA2_SINGLE_TLV(xname, xindex, reg, shift, mask, invert, xtlv) \
(Continue reading)

Trent Piepho | 19 Aug 19:04

Re: [snd-bt87x]: seems cannot powerup after powerdown...

On Tue, 19 Aug 2008, Dmitry Butskoy wrote:
> Takashi Iwai wrote:
> > Added Clemens and alsa-devel to Cc.
> >
> > At Mon, 18 Aug 2008 19:22:20 +0400,
> > Dmitry Butskoy wrote:
> >
> >> Hi,
> >>
> >> Recently snd-bt87x driver has started to use CTL_A_PWRDN bit, see
> >> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.26.y.git;a=commitdiff;h=950fb626dc28e17ae4ad01dba07957bdc6e0b997
> >>
> >> Unfortunately, it produces a regression, at least in my case.
> >>
> >> I have "AVerMedia TVPhone 98" card, lspci is:

Which PCM device are you using?
Bugs Bane | 19 Aug 15:56

ALSA Driver DB Says to Contact You if I have This Hardware... So Here I am.

Hi there,

I have an Edirol 100FX. It has two modes, standard and advanced. The driver
DB says it's currently supported for standard mode only, but to get in touch
if I have this device so advanced mode can be worked on.

I'm wondering what info I can supply to be of help?

lsusb reads:
Bus 004 Device 002: ID 0582:0046 Roland Corp.

Bugsbane
Jaroslav Kysela | 19 Aug 14:26

alsa-utils,alsa-plugins v1.0.18rc2

Hello all,

	I released alsa-utils and alsa-plugins v1.0.18rc2 packages. The 
changelog is available here:

http://www.alsa-project.org/main/index.php/Changes_v1.0.18rc1_v1.0.18rc2

					Jaroslav

-----
Jaroslav Kysela <perex <at> perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
Takashi Iwai | 19 Aug 12:53

Re: [snd-bt87x]: seems cannot powerup after powerdown...

Added Clemens and alsa-devel to Cc.

At Mon, 18 Aug 2008 19:22:20 +0400,
Dmitry Butskoy wrote:
> 
> Hi,
> 
> Recently snd-bt87x driver has started to use CTL_A_PWRDN bit, see
> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.26.y.git;a=commitdiff;h=950fb626dc28e17ae4ad01dba07957bdc6e0b997
> 
> Unfortunately, it produces a regression, at least in my case.
> 
> I have "AVerMedia TVPhone 98" card, lspci is:
> > 03:05.0 Multimedia video controller: Brooktree Corporation Bt878 Video 
> > Capture (rev 11)
> > 03:05.1 Multimedia controller: Brooktree Corporation Bt878 Audio 
> > Capture (rev 11)
> My card has no additional chip for digital sound, hence only analog is 
> available.
> 
> After upgrading from 2.6.23 to 2.6.25, I have discovered no more sound 
> from my snd-bt87x device. Considering the code changes in the dirver, 
> I've guessed that it could be some power issues.
> 
> Compiling the newest driver without CTL_A_PWRDN (ie. with that changes 
> reverted back) I got the sound back again.
> 
> Note, that it is not enough to rmmod the old module and insmod the new. 
> I have to reboot computer completely with the new driver to take changes 
> in effect.
(Continue reading)

Jaroslav Kysela | 18 Aug 17:28

alsactl init - next round

Hello,

	The 'alsactl init' command becomes more powerful now.

- support for dB
- better support for enumerated controls
- better "ready to use" udev support, expected use:
    RUN="/usr/sbin/alsactl -r /var/run/alsactl.init restore $name"
- initialization using a guess method - the init/default configuration
    mostly copied from the alsaconf script, see
    http://git.alsa-project.org/?p=alsa-utils.git;a=blob_plain;f=alsactl/init/default;hb=HEAD

The cardinfo database is slowly filling. We have over 120 files there now. 
Any volunteer for watching of these files and writting a suitable 
configuration files for 'alsactl init' here?

I'm not sure about the initialization procedure. I selected the method - 
look to database and if not found - use the default "guess" method 
(without any warranty). But the opposite way is also possible - do a 
universal initialization and modify only special parameters for specific 
hardware.

						Jaroslav

-----
Jaroslav Kysela <perex <at> perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
Jaroslav Kysela | 18 Aug 16:24

1.0.18rc1 release. alsa-lib 1.0.17a

Hi all,

	I released alsa-driver, alsa-utils, and alsa-plugins packages 
version 1.0.18rc1. The alsa-lib tree had a few short bugfix commits - so 
stable alsa-lib 1.0.17a is available for download now.
	For changes see:

http://www.alsa-project.org/main/index.php/Changes_v1.0.17_v1.0.17a
http://www.alsa-project.org/main/index.php/Changes_v1.0.17a_v1.0.18rc1

						Jaroslav

-----
Jaroslav Kysela <perex <at> perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
Takashi Iwai | 18 Aug 14:42

Re: maestro3 & es1988: mic range too low

At Mon, 18 Aug 2008 15:28:00 +0300,
Ilkka Tengvall wrote:
> 
> >> the reasoning for the original patch sounds reasonable. The
> >> mic volume is tunable, only at the very low range. I recall the laptop
> >> came with Win98, and there was no problem then with the sound -> not a
> >> HW problem. I have never got this laptop mic working with linux, so
> >> this is not anything that broke recently. I see there is
> >> check_volume_resolution function which tries to guess some of the
> >> register ranges, but maybe it get's it wrong with this HW.
> >
> > Maybe, maybe not.  You should check rather ac97 registers in
> > /proc/asound/card0/codec97#0/ac97#0-0+regs.  If build with
> > CONFIG_SND_DEBUG=y, you can write to the register directly, too.
> > See Documentaiton[/sound/alsa]/Procfile.txt.
> >
> 
> I checked this file. It seems it gets the regs right for the mic
> (range 0x1f). The capture range is 0xf. I don't have the specs to
> compare it against, so I assume there is nothing to do more here.

Which registers, exactly?

> It seems mic value decreases while going up to full, where as capture
> increases.

I guess the former one is the mic loopback volume (attenuation), so no
wonder it behaves so.

> Another difference is maybe stereo / mono related, the
(Continue reading)


Gmane