[alsa-devel] [PATCH]Support MCP89 and GT21x hdmi audio

Takashi Iwai tiwai at suse.de
Wed Mar 3 07:44:23 CET 2010


At Wed, 3 Mar 2010 12:06:11 +0800,
Wei Ni wrote:
> 
> Hi, Takashi
> Could we add a new "#define AZX_MAX_SLOTS 8", and use it in the function
> azx_command_addr() and azx_response_addr() to instead of AZX_MAX_CODECS

Simpler would be to change AZX_MAX_CODECS to 8, define
AZX_DEFAULT_CODECS 4 and use it in azx_codec_create() like:

	max_slots = azx_max_codecs[chip->driver_type];
	if (!max_slots)
		max_slots = AZX_DEFAULT_CODECS;


Takashi

> Thanks
> Wei.
> 
> -----Original Message-----
> From: Wei Ni 
> Sent: Wednesday, March 03, 2010 11:28 AM
> To: 'Takashi Iwai'
> Cc: 'Pavel Hofman'; 'alsa-devel'; 'linux-kernel'; 'akpm'
> Subject: RE: [alsa-devel] [PATCH]Support MCP89 and GT21x hdmi audio
> 
> Hi, Takashi
> I still have a question about AZX_MAX_CODECS.
> In azx_command_addr() and azx_response_addr(), they use AZX_MAX_CODECS like
> If (addr >= AZX_MAX_CODECS) {
>     snd_BUG();
>     addr = 0;
> }
> The azx_max_codes[] could not be used in these functions.
> How could we do in these functions?
> 
> Thanks
> Wei.
> 
> -----Original Message-----
> From: Takashi Iwai [mailto:tiwai at suse.de] 
> Sent: Tuesday, March 02, 2010 5:55 PM
> To: Wei Ni
> Cc: 'Pavel Hofman'; 'alsa-devel'; 'linux-kernel'; 'akpm'
> Subject: Re: [alsa-devel] [PATCH]Support MCP89 and GT21x hdmi audio
> 
> At Tue, 2 Mar 2010 17:43:28 +0800,
> Wei Ni wrote:
> > 
> > Hi, Takashi
> > 1. About AZX_MAX_CODECS, on our new chipset, the codec_mask=0x31, it means
> > the codec connect on the slot0, slot4, slot5, and on some GT2xx, the codec
> > will connect to slot6 or slot7, although these chip at most have 4 codecs.
> > So I change the AZX_MAX_CODECS to 8 directly.
> > In hda_intel.c, the azx_command_addr(), azx_response_addr(), and
> > azx_codec_create() use the AZX_MAX_CODECS, if it set as 4, the driver will
> > not detect the codecs which connect to slot4~7.
> 
> Yeah, I understand it.  But, as mentioned, changing this to *all*
> controller chips is dangerous.
> We have already a quirk for controller chips to set max codecs depending
> on the chip model.  Right now, only teradici chip sets to 1.
> 
> So, add "#define AZX_DEFAULT_CODECS 4", and use this value unless
> azx_max_codecs[] is defined.  And, for the new controller chip
> supporting more than 4, it can has 8 in azx_max_codecs[].
> 
> Is it feasible?
> 
> > 2. yes, it's better to merge the hdmi common codes.
> > 3. About ELD, yes, we need to change the Makefile and Kconfig as well.
> > Could you help me to change it.
> 
> In sound/pci/hda/Makefile, hda_eld.c is built into snd-hda-codec-intelhdmi
> by the following rule:
> 
> snd-hda-codec-intelhdmi-objs :=	patch_intelhdmi.o hda_eld.o
> 
> Since now hda_eld.c is used in two modules, this has to be in the common
> place, such as snd-hda-codec.  For this, uncomment the line:
> 
> # snd-hda-codec-$(CONFIG_SND_HDA_ELD) += hda_eld.o
> 
> and remove hda_eld.o from snd-hda-codec-intelhdmi-objs line.
> 
> For Kconfig, right now we have the definition
> 
> config SND_HDA_ELD
> 	def_bool y
> 	depends on SND_HDA_CODEC_INTELHDMI
> 
> Change depends on like
> 
> 	depends on SND_HDA_CODEC_INTELHDMI || SND_HDA_CODEC_NVHDMI
> 
> This can be done via "select" instead.  But, we'd merge all hdmi codes
> later, so which way to choose is no big matter.
> 
> 
> thanks,
> 
> Takashi
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information.  Any unauthorized review, use, disclosure or distribution
> is prohibited.  If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------
> 


More information about the Alsa-devel mailing list