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@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
- 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?
- yes, it's better to merge the hdmi common codes.
- 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.