All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] remove AC97 existing control
@ 2005-03-22 12:45 fmoraes
  2005-03-23 14:58 ` Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: fmoraes @ 2005-03-22 12:45 UTC (permalink / raw)
  To: alsa-devel

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

This patch should fix bug report 752 by removing the existing control from the AC97.


Sign off: Francisco Moraes


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

Index: alsa-kernel/pci/emu10k1/emu10k1x.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emu10k1x.c,v
retrieving revision 1.7
diff -u -r1.7 emu10k1x.c
--- alsa-kernel/pci/emu10k1/emu10k1x.c	21 Mar 2005 08:13:32 -0000	1.7
+++ alsa-kernel/pci/emu10k1/emu10k1x.c	22 Mar 2005 12:35:48 -0000
@@ -1201,6 +1201,25 @@
 	.put =          snd_emu10k1x_spdif_put
 };
 
+static int remove_ctl(snd_card_t *card, const char *name)
+{
+	snd_ctl_elem_id_t id;
+	memset(&id, 0, sizeof(id));
+	strcpy(id.name, name);
+	id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
+	return snd_ctl_remove_id(card, &id);
+}
+
+static snd_kcontrol_t *ctl_find(snd_card_t *card, const char *name)
+{
+	snd_ctl_elem_id_t sid;
+	memset(&sid, 0, sizeof(sid));
+	/* FIXME: strcpy is bad. */
+	strcpy(sid.name, name);
+	sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
+	return snd_ctl_find_id(card, &sid);
+}
+
 static int __devinit snd_emu10k1x_mixer(emu10k1x_t *emu)
 {
 	int err;
@@ -1215,6 +1234,11 @@
 		return -ENOMEM;
 	if ((err = snd_ctl_add(card, kctl)))
 		return err;
+	if ((kctl = ctl_find(card, SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT))) != NULL) {
+		/* already defined by ac97, remove it */
+		/* FIXME: or do we need both controls? */
+		remove_ctl(card, SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT));
+	}
 	if ((kctl = snd_ctl_new1(&snd_emu10k1x_spdif_control, emu)) == NULL)
 		return -ENOMEM;
 	if ((err = snd_ctl_add(card, kctl)))

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] remove AC97 existing control
  2005-03-22 12:45 [PATCH] remove AC97 existing control fmoraes
@ 2005-03-23 14:58 ` Takashi Iwai
  2005-03-24 13:24   ` Francisco Moraes
  0 siblings, 1 reply; 4+ messages in thread
From: Takashi Iwai @ 2005-03-23 14:58 UTC (permalink / raw)
  To: fmoraes; +Cc: alsa-devel

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

At Tue, 22 Mar 2005 07:45:15 -0500,
fmoraes@nc.rr.com wrote:
> 
> This patch should fix bug report 752 by removing the existing control from the AC97.
> 
> 
> Sign off: Francisco Moraes

Right now I created a patch to prevent SPDIF controls on ac97 for
drivers which are known to work without AC97 spdif (conflicting with
the native SPDIF support).

The patch is below.  I guess this will do the same job as this patch.
Could you check whether it works?


Takashi

[-- Attachment #2: Type: text/plain, Size: 4378 bytes --]

Index: alsa-kernel/include/ac97_codec.h
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/include/ac97_codec.h,v
retrieving revision 1.63
diff -u -r1.63 ac97_codec.h
--- alsa-kernel/include/ac97_codec.h	10 Mar 2005 14:29:43 -0000	1.63
+++ alsa-kernel/include/ac97_codec.h	23 Mar 2005 14:09:04 -0000
@@ -356,6 +356,7 @@
 #define AC97_SCAP_INDEP_SDIN	(1<<6)	/* independent SDIN */
 #define AC97_SCAP_INV_EAPD	(1<<7)	/* inverted EAPD */
 #define AC97_SCAP_DETECT_BY_VENDOR (1<<8) /* use vendor registers for read tests */
+#define AC97_SCAP_NO_SPDIF	(1<<9)	/* don't build SPDIF controls */
 
 /* ac97->flags */
 #define AC97_HAS_PC_BEEP	(1<<0)	/* force PC Speaker usage */
Index: alsa-kernel/pci/atiixp.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/atiixp.c,v
retrieving revision 1.34
diff -u -r1.34 atiixp.c
--- alsa-kernel/pci/atiixp.c	14 Mar 2005 17:21:25 -0000	1.34
+++ alsa-kernel/pci/atiixp.c	23 Mar 2005 14:09:04 -0000
@@ -1376,6 +1376,8 @@
 		ac97.pci = chip->pci;
 		ac97.num = i;
 		ac97.scaps = AC97_SCAP_SKIP_MODEM;
+		if (! chip->spdif_over_aclink)
+			ac97.scaps |= AC97_SCAP_NO_SPDIF;
 		if ((err = snd_ac97_mixer(pbus, &ac97, &chip->ac97[i])) < 0) {
 			chip->ac97[i] = NULL; /* to be sure */
 			snd_printdd("atiixp: codec %d not available for audio\n", i);
Index: alsa-kernel/pci/ac97/ac97_codec.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/ac97/ac97_codec.c,v
retrieving revision 1.171
diff -u -r1.171 ac97_codec.c
--- alsa-kernel/pci/ac97/ac97_codec.c	18 Mar 2005 16:55:36 -0000	1.171
+++ alsa-kernel/pci/ac97/ac97_codec.c	23 Mar 2005 14:09:04 -0000
@@ -1486,7 +1486,7 @@
 	}
 
 	/* build S/PDIF controls */
-	if (ac97->ext_id & AC97_EI_SPDIF) {
+	if ((ac97->ext_id & AC97_EI_SPDIF) && !(ac97->scaps & AC97_SCAP_NO_SPDIF)) {
 		if (ac97->build_ops->build_spdif) {
 			if ((err = ac97->build_ops->build_spdif(ac97)) < 0)
 				return err;
Index: alsa-kernel/pci/au88x0/au88x0_mixer.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/au88x0/au88x0_mixer.c,v
retrieving revision 1.4
diff -u -r1.4 au88x0_mixer.c
--- alsa-kernel/pci/au88x0/au88x0_mixer.c	8 Nov 2004 11:43:40 -0000	1.4
+++ alsa-kernel/pci/au88x0/au88x0_mixer.c	23 Mar 2005 14:09:04 -0000
@@ -26,6 +26,7 @@
 	memset(&ac97, 0, sizeof(ac97));
 	// Intialize AC97 codec stuff.
 	ac97.private_data = vortex;
+	ac97.scaps = AC97_SCAP_NO_SPDIF;
 	err = snd_ac97_mixer(pbus, &ac97, &vortex->codec);
 	vortex->isquad = ((vortex->codec == NULL) ?  0 : (vortex->codec->ext_id&0x80));
 	return err;
Index: alsa-kernel/pci/emu10k1/emu10k1x.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/emu10k1/emu10k1x.c,v
retrieving revision 1.7
diff -u -r1.7 emu10k1x.c
--- alsa-kernel/pci/emu10k1/emu10k1x.c	21 Mar 2005 18:31:30 -0000	1.7
+++ alsa-kernel/pci/emu10k1/emu10k1x.c	23 Mar 2005 14:09:04 -0000
@@ -749,6 +749,7 @@
 
 	memset(&ac97, 0, sizeof(ac97));
 	ac97.private_data = chip;
+	ac97.scaps = AC97_SCAP_NO_SPDIF;
 	return snd_ac97_mixer(pbus, &ac97, &chip->ac97);
 }
 
Index: alsa-kernel/pci/emu10k1/emumixer.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/emu10k1/emumixer.c,v
retrieving revision 1.31
diff -u -r1.31 emumixer.c
--- alsa-kernel/pci/emu10k1/emumixer.c	17 Mar 2005 15:58:58 -0000	1.31
+++ alsa-kernel/pci/emu10k1/emumixer.c	23 Mar 2005 14:09:04 -0000
@@ -806,6 +806,7 @@
 		memset(&ac97, 0, sizeof(ac97));
 		ac97.private_data = emu;
 		ac97.private_free = snd_emu10k1_mixer_free_ac97;
+		ac97.scaps = AC97_SCAP_NO_SPDIF;
 		if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0)
 			return err;
 		if (emu->audigy) {
@@ -923,11 +924,6 @@
 			return -ENOMEM;
 		if ((err = snd_ctl_add(card, kctl)))
 			return err;
-		if ((kctl = ctl_find(card, SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT))) != NULL) {
-			/* already defined by ac97, remove it */
-			/* FIXME: or do we need both controls? */
-			remove_ctl(card, SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT));
-		}
 		if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_control, emu)) == NULL)
 			return -ENOMEM;
 		if ((err = snd_ctl_add(card, kctl)))

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] remove AC97 existing control
  2005-03-23 14:58 ` Takashi Iwai
@ 2005-03-24 13:24   ` Francisco Moraes
  2005-03-24 17:49     ` Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: Francisco Moraes @ 2005-03-24 13:24 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:

>At Tue, 22 Mar 2005 07:45:15 -0500,
>fmoraes@nc.rr.com wrote:
>  
>
>>This patch should fix bug report 752 by removing the existing control from the AC97.
>>
>>
>>Sign off: Francisco Moraes
>>    
>>
>
>Right now I created a patch to prevent SPDIF controls on ac97 for
>drivers which are known to work without AC97 spdif (conflicting with
>the native SPDIF support).
>
>The patch is below.  I guess this will do the same job as this patch.
>Could you check whether it works?
>  
>

I tested the patch and it works on my system, but I don't have the AC97 
problem, so I cannot confirm that it does fixes the problem, although it 
looks like from the changes. Also, the ca0106 driver has the same exact 
code.

Francisco



-------------------------------------------------------
This SF.net email is sponsored by Microsoft Mobile & Embedded DevCon 2005
Attend MEDC 2005 May 9-12 in Vegas. Learn more about the latest Windows
Embedded(r) & Windows Mobile(tm) platforms, applications & content.  Register
by 3/29 & save $300 http://ads.osdn.com/?ad_id=6883&alloc_id=15149&op=click

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] remove AC97 existing control
  2005-03-24 13:24   ` Francisco Moraes
@ 2005-03-24 17:49     ` Takashi Iwai
  0 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2005-03-24 17:49 UTC (permalink / raw)
  To: Francisco Moraes; +Cc: alsa-devel

At Thu, 24 Mar 2005 08:24:03 -0500,
Francisco Moraes wrote:
> 
> Takashi Iwai wrote:
> 
> >At Tue, 22 Mar 2005 07:45:15 -0500,
> >fmoraes@nc.rr.com wrote:
> >  
> >
> >>This patch should fix bug report 752 by removing the existing control from the AC97.
> >>
> >>
> >>Sign off: Francisco Moraes
> >>    
> >>
> >
> >Right now I created a patch to prevent SPDIF controls on ac97 for
> >drivers which are known to work without AC97 spdif (conflicting with
> >the native SPDIF support).
> >
> >The patch is below.  I guess this will do the same job as this patch.
> >Could you check whether it works?
> >  
> >
> 
> I tested the patch and it works on my system, but I don't have the AC97 
> problem, so I cannot confirm that it does fixes the problem, although it 
> looks like from the changes. Also, the ca0106 driver has the same exact 
> code.

Now ca0106 driver was changed on CVS, too.


Takashi


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-03-24 17:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-22 12:45 [PATCH] remove AC97 existing control fmoraes
2005-03-23 14:58 ` Takashi Iwai
2005-03-24 13:24   ` Francisco Moraes
2005-03-24 17:49     ` Takashi Iwai

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.