summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/saa7134/saa7134-core.c
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <devnull@localhost>2005-10-06 21:37:02 +0000
committerNickolay V. Shmyrev <devnull@localhost>2005-10-06 21:37:02 +0000
commit54060236a7efe01640b889d00c8f7b65918faa7a (patch)
treef51a5e8d2eebd6e6d607ff08b7a93ef2c18e8754 /linux/drivers/media/video/saa7134/saa7134-core.c
parent96412f4acdf97fa45b5058d4e05dca7eb4db18f1 (diff)
downloadmediapointer-dvb-s2-54060236a7efe01640b889d00c8f7b65918faa7a.tar.gz
mediapointer-dvb-s2-54060236a7efe01640b889d00c8f7b65918faa7a.tar.bz2
* Makefile:
* saa7134-alsa.c: (saa7134_dma_stop), (saa7134_dma_start), (saa7134_irq_alsa_done), (snd_card_saa7134_capture_trigger), (dsp_buffer_conf), (dsp_buffer_init), (snd_card_saa7134_pcm_prepare), (snd_card_saa7134_capture_prepare), (snd_card_saa7134_pointer), (snd_card_saa7134_capture_pointer), (snd_card_saa7134_runtime_free), (snd_card_saa7134_hw_params), (snd_card_saa7134_hw_free), (dsp_buffer_free), (saa7134_cap_close), (saa7134_cap_open), (snd_card_saa7134_capture_open), (snd_card_saa7134_capture_close), (snd_card_saa7134_pcm), (snd_saa7134_volume_info), (snd_saa7134_volume_get), (snd_saa7134_volume_put), (snd_saa7134_capsrc_info), (snd_saa7134_capsrc_get), (snd_saa7134_capsrc_put), (snd_card_saa7134_new_mixer), (snd_saa7134_free), (snd_saa7134_dev_free), (alsa_card_saa7134_create), (alsa_card_saa7134_exit): * saa7134-core.c: (saa7134_irq), (saa7134_initdev), (saa7134_finidev): * saa7134-oss.c: (dsp_rec_start): * saa7134-reg.h: * saa7134.h: - Alsa support for saa7134 that should work. Wonderful patch from Ricardo. Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org>
Diffstat (limited to 'linux/drivers/media/video/saa7134/saa7134-core.c')
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-core.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/linux/drivers/media/video/saa7134/saa7134-core.c b/linux/drivers/media/video/saa7134/saa7134-core.c
index 6a5398922..bd10a0293 100644
--- a/linux/drivers/media/video/saa7134/saa7134-core.c
+++ b/linux/drivers/media/video/saa7134/saa7134-core.c
@@ -1,5 +1,5 @@
/*
- * $Id: saa7134-core.c,v 1.41 2005/09/14 23:11:39 nsh Exp $
+ * $Id: saa7134-core.c,v 1.42 2005/10/06 21:37:02 nsh Exp $
*
* device driver for philips saa7134 based TV cards
* driver core
@@ -59,6 +59,10 @@ static unsigned int oss = 0;
module_param(oss, int, 0444);
MODULE_PARM_DESC(oss,"register oss devices (default: no)");
+static unsigned int alsa = 0;
+module_param(alsa, int, 0444);
+MODULE_PARM_DESC(alsa,"register alsa devices (default: no)");
+
static unsigned int latency = UNSET;
module_param(latency, int, 0444);
MODULE_PARM_DESC(latency,"pci latency timer");
@@ -648,13 +652,19 @@ static irqreturn_t saa7134_irq(int irq, void *dev_id, struct pt_regs *regs)
card_has_mpeg(dev))
saa7134_irq_ts_done(dev,status);
- if ((report & SAA7134_IRQ_REPORT_DONE_RA3))
- saa7134_irq_oss_done(dev,status);
+ if ((report & SAA7134_IRQ_REPORT_DONE_RA3)) {
+ if (oss) {
+ saa7134_irq_oss_done(dev,status);
+ } else if (alsa) {
+ saa7134_irq_alsa_done(dev,status);
+ }
+ }
if ((report & (SAA7134_IRQ_REPORT_GPIO16 |
SAA7134_IRQ_REPORT_GPIO18)) &&
dev->remote)
saa7134_input_irq(dev);
+
}
if (10 == loop) {
@@ -1075,6 +1085,10 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
goto fail5;
printk(KERN_INFO "%s: registered device mixer%d\n",
dev->name,dev->oss.minor_mixer >> 4);
+ } else if (alsa) {
+ alsa_card_saa7134_create(dev);
+ printk(KERN_INFO "%s: registered ALSA devices\n",
+ dev->name);
}
break;
}
@@ -1102,6 +1116,8 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
case PCI_DEVICE_ID_PHILIPS_SAA7135:
if (oss)
unregister_sound_dsp(dev->oss.minor_dsp);
+ else if (alsa)
+ alsa_card_saa7134_exit();
break;
}
fail4:
@@ -1161,7 +1177,8 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev)
if (oss) {
unregister_sound_mixer(dev->oss.minor_mixer);
unregister_sound_dsp(dev->oss.minor_dsp);
- }
+ } else if (alsa)
+ alsa_card_saa7134_exit();
break;
}
saa7134_unregister_video(dev);