Skip to content

Commit

Permalink
V4L/DVB (5775): Alsa fix for SAA7134 based "KNC One TV-Station DVR" card
Browse files Browse the repository at this point in the history
Sound recording doesn't work for this card because ACNI and ACPF
are not set before snd_card_saa7134_capture_prepare(). As a result
timeout occurs. These registers aren't poked because thread
never gets wake up signal. ACNI initialization is done in the
thread.
Sound is muted when capture stops. Shouldn't be because it may
be used during TV playback.

Signed-off-by: Rafal Bilski <rafalbilski@interia.pl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Rafał Bilski authored and Mauro Carvalho Chehab committed Jul 18, 2007
1 parent 6d7930e commit aac0ca6
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
16 changes: 11 additions & 5 deletions drivers/media/video/saa7134/saa7134-alsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ typedef struct snd_card_saa7134 {
struct saa7134_dev *dev;

unsigned long iobase;
int irq;
s16 irq;
u16 mute_was_on;

spinlock_t lock;
} snd_card_saa7134_t;
Expand Down Expand Up @@ -589,8 +590,10 @@ static int snd_card_saa7134_capture_close(struct snd_pcm_substream * substream)
snd_card_saa7134_t *saa7134 = snd_pcm_substream_chip(substream);
struct saa7134_dev *dev = saa7134->dev;

dev->ctl_mute = 1;
saa7134_tvaudio_setmute(dev);
if (saa7134->mute_was_on) {
dev->ctl_mute = 1;
saa7134_tvaudio_setmute(dev);
}
return 0;
}

Expand Down Expand Up @@ -637,8 +640,11 @@ static int snd_card_saa7134_capture_open(struct snd_pcm_substream * substream)
runtime->private_free = snd_card_saa7134_runtime_free;
runtime->hw = snd_card_saa7134_capture;

dev->ctl_mute = 0;
saa7134_tvaudio_setmute(dev);
if (dev->ctl_mute != 0) {
saa7134->mute_was_on = 1;
dev->ctl_mute = 0;
saa7134_tvaudio_setmute(dev);
}

if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0)
return err;
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/saa7134/saa7134-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ struct saa7134_board saa7134_boards[] = {
.inputs = {{
.name = name_tv,
.vmux = 1,
.amux = LINE2,
.amux = TV,
.tv = 1,
.gpio = 0x20000,
},{
Expand Down

0 comments on commit aac0ca6

Please sign in to comment.