All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
To: Adrian Bunk <bunk@stusta.de>
Cc: Linus Torvalds <torvalds@osdl.org>,
	Sergey Vlasov <vsu@altlinux.ru>,
	Ricardo Cerqueira <v4l@cerqueira.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	video4linux-list@redhat.com, perex@suse.cz,
	alsa-devel@alsa-project.org
Subject: Re: [Alsa-devel] 2.6.15-rc6: boot failure in saa7134-alsa.c
Date: Tue, 20 Dec 2005 18:35:30 -0200	[thread overview]
Message-ID: <1135110930.7822.18.camel@localhost> (raw)
In-Reply-To: <20051220191412.GA4578@stusta.de>

[-- Attachment #1: Type: text/plain, Size: 439 bytes --]

Em Ter, 2005-12-20 às 20:14 +0100, Adrian Bunk escreveu:
> (plus disabling building of saa7134-oss.o because
> otherwise saa7134-alsa.o wouldn't do anything). 

	This patch should fix alsa-oss incompatibilities when both are linked
as module. It will also require either -oss or -alsa if it is statically
linked.

	It doesn't address the OOPS because of sound late init.

	Adrian,

	Please test and give us some feedback.

Cheers, 
Mauro.

[-- Attachment #2: v4l_dvb_3200_fix_saa7134_alsa_oss_collisions.patch --]
[-- Type: text/x-patch, Size: 5500 bytes --]

V4L/DVB (3200): Fix saa7134 ALSA/OSS collisions

From: Ricardo Cerqueira <v4l@cerqueira.org>

- When ALSA or OSS are loaded, check if the other is present
Fixed hotplug notifiers cleanup on module removal
- The saa7134 DMA sound modules now have their own Kconfig entries, and
if built statically enforce exclusivity
- SND_PCM_OSS isn't necessary for the OSS driver

Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
---

 drivers/media/video/saa7134/Kconfig        |   26 ++++++++++++++++++++++++--
 drivers/media/video/saa7134/Makefile       |    7 +++++--
 drivers/media/video/saa7134/saa7134-alsa.c |   13 ++++++++++---
 drivers/media/video/saa7134/saa7134-oss.c  |   15 ++++++++++++---
 4 files changed, 51 insertions(+), 10 deletions(-)

diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig
index c512c44..c0f604a 100644
--- a/drivers/media/video/saa7134/Kconfig
+++ b/drivers/media/video/saa7134/Kconfig
@@ -1,11 +1,10 @@
 config VIDEO_SAA7134
 	tristate "Philips SAA7134 support"
-	depends on VIDEO_DEV && PCI && I2C && SOUND && SND
+	depends on VIDEO_DEV && PCI && I2C
 	select VIDEO_BUF
 	select VIDEO_IR
 	select VIDEO_TUNER
 	select CRC32
-	select SND_PCM_OSS
 	---help---
 	  This is a video4linux driver for Philips SAA713x based
 	  TV cards.
@@ -13,6 +12,29 @@ config VIDEO_SAA7134
 	  To compile this driver as a module, choose M here: the
 	  module will be called saa7134.
 
+config VIDEO_SAA7134_ALSA
+	tristate "Philips SAA7134 DMA audio support"
+	depends on VIDEO_SAA7134 && SOUND && SND && (!VIDEO_SAA7134_OSS || VIDEO_SAA7134_OSS = m)
+	select SND_PCM_OSS
+	---help---
+	  This is a video4linux driver for direct (DMA) audio in
+	  Philips SAA713x based TV cards using ALSA
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called saa7134-alsa.
+
+config VIDEO_SAA7134_OSS
+	tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)"
+	depends on VIDEO_SAA7134 && SOUND_PRIME && (!VIDEO_SAA7134_ALSA || VIDEO_SAA7134_ALSA = m)
+	---help---
+	  This is a video4linux driver for direct (DMA) audio in
+	  Philips SAA713x based TV cards using OSS
+
+	  This is deprecated in favor of the ALSA module
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called saa7134-oss.
+
 config VIDEO_SAA7134_DVB
 	tristate "DVB/ATSC Support for saa7134 based TV cards"
 	depends on VIDEO_SAA7134 && DVB_CORE
diff --git a/drivers/media/video/saa7134/Makefile b/drivers/media/video/saa7134/Makefile
index 134f83a..1ba9984 100644
--- a/drivers/media/video/saa7134/Makefile
+++ b/drivers/media/video/saa7134/Makefile
@@ -4,8 +4,11 @@ saa7134-objs :=	saa7134-cards.o saa7134-
 		saa7134-video.o saa7134-input.o
 
 obj-$(CONFIG_VIDEO_SAA7134) +=  saa7134.o saa7134-empress.o \
-				saa6752hs.o saa7134-alsa.o \
-				saa7134-oss.o
+				saa6752hs.o
+
+obj-$(CONFIG_VIDEO_SAA7134_ALSA) += saa7134-alsa.o
+obj-$(CONFIG_VIDEO_SAA7134_OSS) += saa7134-oss.o
+
 obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o
 
 EXTRA_CFLAGS += -I$(src)/..
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c
index 953d5fe..ac608b1 100644
--- a/drivers/media/video/saa7134/saa7134-alsa.c
+++ b/drivers/media/video/saa7134/saa7134-alsa.c
@@ -989,6 +989,14 @@ static int saa7134_alsa_init(void)
 	struct saa7134_dev *dev = NULL;
 	struct list_head *list;
 
+	if (!dmasound_init && !dmasound_exit) {
+		dmasound_init = alsa_device_init;
+		dmasound_exit = alsa_device_exit;
+	} else {
+		printk(KERN_WARNING "saa7134 ALSA: can't load, DMA sound handler already assigned (probably to OSS)\n");
+		return -EBUSY;
+	}
+
 	printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n");
 
 	list_for_each(list,&saa7134_devlist) {
@@ -1001,9 +1009,6 @@ static int saa7134_alsa_init(void)
 		}
 	}
 
-	dmasound_init = alsa_device_init;
-	dmasound_exit = alsa_device_exit;
-
 	if (dev == NULL)
 		printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n");
 
@@ -1023,6 +1028,8 @@ static void saa7134_alsa_exit(void)
 		snd_card_free(snd_saa7134_cards[idx]);
 	}
 
+	dmasound_init = NULL;
+	dmasound_exit = NULL;
 	printk(KERN_INFO "saa7134 ALSA driver for DMA sound unloaded\n");
 
 	return;
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c
index 513a699..0061acf 100644
--- a/drivers/media/video/saa7134/saa7134-oss.c
+++ b/drivers/media/video/saa7134/saa7134-oss.c
@@ -959,8 +959,17 @@ static int saa7134_oss_init(void)
 	struct saa7134_dev *dev = NULL;
 	struct list_head *list;
 
+	if (!dmasound_init && !dmasound_exit) {
+		dmasound_init = oss_device_init;
+		dmasound_exit = oss_device_exit;
+	} else {
+		printk(KERN_WARNING "saa7134 OSS: can't load, DMA sound handler already assigned (probably to ALSA)\n");
+		return -EBUSY;
+	}
+
 	printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n");
 
+
 	list_for_each(list,&saa7134_devlist) {
 		dev = list_entry(list, struct saa7134_dev, devlist);
 		if (dev->dmasound.priv_data == NULL) {
@@ -974,9 +983,6 @@ static int saa7134_oss_init(void)
 	if (dev == NULL)
 		printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n");
 
-	dmasound_init = oss_device_init;
-	dmasound_exit = oss_device_exit;
-
 	return 0;
 
 }
@@ -997,6 +1003,9 @@ static void saa7134_oss_exit(void)
 
 	}
 
+	dmasound_init = NULL;
+	dmasound_exit = NULL;
+
 	printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n");
 
 	return;

  parent reply	other threads:[~2005-12-20 20:35 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-19  0:47 Linux 2.6.15-rc6 Linus Torvalds
2005-12-19  1:30 ` Diego Calleja
2005-12-19  5:41   ` Willy Tarreau
2005-12-20 13:18 ` 2.6.15-rc6: boot failure in saa7134-alsa.c Adrian Bunk
2005-12-20 15:52   ` Sergey Vlasov
2005-12-20 15:52   ` [Alsa-devel] " Sergey Vlasov
2005-12-20 18:24     ` Linus Torvalds
2005-12-20 18:24     ` [Alsa-devel] " Linus Torvalds
     [not found]       ` <20051220183455.GC19797@master.mivlgu.local>
2005-12-20 18:57         ` Linus Torvalds
2005-12-20 18:57         ` Linus Torvalds
2005-12-20 19:14       ` [Alsa-devel] " Adrian Bunk
2005-12-20 19:23         ` Mauro Carvalho Chehab
2005-12-20 19:59         ` Linus Torvalds
2005-12-20 19:59           ` [Alsa-devel] " Linus Torvalds
2005-12-20 20:23           ` Adrian Bunk
2005-12-20 20:23           ` [Alsa-devel] " Adrian Bunk
2005-12-20 20:41             ` Linus Torvalds
2005-12-20 20:41               ` [Alsa-devel] " Linus Torvalds
2005-12-20 20:47               ` James Courtier-Dutton
2005-12-20 20:47               ` [Alsa-devel] " James Courtier-Dutton
2005-12-20 21:06                 ` Linus Torvalds
2005-12-20 21:06                 ` [Alsa-devel] " Linus Torvalds
2005-12-20 21:13                 ` [RFC: 2.6 patch] Makefile: sound/ must come before drivers/ Adrian Bunk
2005-12-20 21:13                 ` Adrian Bunk
2005-12-20 21:24                   ` [Alsa-devel] " Jaroslav Kysela
2005-12-20 21:24                   ` Jaroslav Kysela
2005-12-20 22:09                   ` Linus Torvalds
2005-12-20 22:09                     ` Linus Torvalds
2005-12-21 14:21                     ` Takashi Iwai
2005-12-21 14:21                       ` Takashi Iwai
2005-12-21 20:49                       ` Mauro Carvalho Chehab
2005-12-22 15:32                         ` Takashi Iwai
2005-12-22 16:06                           ` Mauro Carvalho Chehab
2005-12-22 16:06                           ` Mauro Carvalho Chehab
2005-12-22 16:17                             ` Takashi Iwai
2005-12-22 16:38                               ` Mauro Carvalho Chehab
2005-12-22 16:17                             ` Takashi Iwai
2005-12-22 15:32                         ` Takashi Iwai
2005-12-21 14:23             ` 2.6.15-rc6: boot failure in saa7134-alsa.c Takashi Iwai
2005-12-21 14:23             ` [Alsa-devel] " Takashi Iwai
2005-12-21 18:22               ` Adrian Bunk
2005-12-21 18:22                 ` [Alsa-devel] " Adrian Bunk
2005-12-21 18:38                 ` Takashi Iwai
2005-12-21 18:38                   ` [Alsa-devel] " Takashi Iwai
2005-12-21 22:40                   ` Adrian Bunk
2005-12-21 22:40                   ` [Alsa-devel] " Adrian Bunk
2005-12-22 11:39                     ` Takashi Iwai
2005-12-22 11:39                     ` [Alsa-devel] " Takashi Iwai
2005-12-20 20:35           ` James Courtier-Dutton
2005-12-20 20:35             ` [Alsa-devel] " James Courtier-Dutton
2005-12-20 21:03             ` Linus Torvalds
2005-12-20 21:03               ` [Alsa-devel] " Linus Torvalds
2005-12-20 22:17               ` Lee Revell
2005-12-20 22:17                 ` [Alsa-devel] " Lee Revell
2005-12-21  1:29                 ` Linus Torvalds
2005-12-21  1:29                   ` [Alsa-devel] " Linus Torvalds
2005-12-21 13:29                 ` Stephen Clark
2005-12-21 14:39               ` Takashi Iwai
2005-12-21 14:39                 ` [Alsa-devel] " Takashi Iwai
2005-12-21 18:32                 ` Linus Torvalds
2005-12-21 18:32                   ` [Alsa-devel] " Linus Torvalds
2005-12-21 18:52                   ` Takashi Iwai
2005-12-21 18:52                     ` [Alsa-devel] " Takashi Iwai
2005-12-21 22:42                     ` Adrian Bunk
2005-12-21 22:42                       ` [Alsa-devel] " Adrian Bunk
2005-12-21 22:50                     ` R C
2005-12-21 22:50                     ` R C
2005-12-21 16:58               ` [Alsa-devel] " Steve deRosier
2005-12-21 18:32                 ` Linus Torvalds
2005-12-21 18:32                   ` [Alsa-devel] " Linus Torvalds
2005-12-21 18:41                   ` Takashi Iwai
2005-12-20 20:35         ` Mauro Carvalho Chehab [this message]
2005-12-22  0:59           ` Adrian Bunk
2005-12-22 11:15             ` Mauro Carvalho Chehab
2005-12-22 11:15             ` [Alsa-devel] " Mauro Carvalho Chehab
2005-12-22  0:59           ` Adrian Bunk
2005-12-20 19:14       ` Adrian Bunk
2005-12-20 13:18 ` Adrian Bunk
2005-12-22  1:13 ` 2.6.15-rc6: known regressions in the kernel Bugzilla Adrian Bunk
2005-12-22  7:15   ` Greg KH
2005-12-22 12:04     ` Takashi Iwai
2005-12-29 13:23       ` Adrian Bunk
2005-12-29 13:23       ` Adrian Bunk
2005-12-30 19:31         ` Lee Revell
2005-12-30 19:31         ` Lee Revell
2005-12-22  8:52   ` Andrew Morton
2005-12-22 13:57     ` Adrian Bunk
2005-12-22 14:08       ` Andrew Morton
2005-12-22 23:12         ` Adrian Bunk
2005-12-23 15:28         ` Bill Davidsen
2005-12-23 17:32           ` Michael Krufky
2005-12-24  3:54             ` Andrew Morton
2005-12-25 20:25               ` Bill Davidsen
2005-12-26  1:59               ` Michael Krufky
2005-12-26  2:21               ` Lee Revell
2005-12-22 17:11       ` Brice Goglin
     [not found]       ` <200512222152.05427.p_christ@hol.gr>
     [not found]         ` <1135291436.14685.7.camel@localhost>
2005-12-22 22:55           ` Mike Krufky
     [not found]             ` <200512230121.48882.p_christ@hol.gr>
2005-12-23  1:07               ` Michael Krufky
2005-12-23 11:50       ` Gottfried Haider
2006-01-02 16:00         ` Adrian Bunk
2006-01-04 16:38           ` Greg KH
2005-12-22 15:16     ` David S. Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1135110930.7822.18.camel@localhost \
    --to=mchehab@brturbo.com.br \
    --cc=alsa-devel@alsa-project.org \
    --cc=bunk@stusta.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@suse.cz \
    --cc=torvalds@osdl.org \
    --cc=v4l@cerqueira.org \
    --cc=video4linux-list@redhat.com \
    --cc=vsu@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.