-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Tuesday, April 21, 2015 5:59 PM To: Jie, Yang Cc: broonie@kernel.org; alsa-devel@alsa-project.org; Girdwood, Liam R Subject: Re: [PATCH v7 4/7] ALSA: hda - Update to use the new jack kctls method
At Tue, 21 Apr 2015 16:05:42 +0800, Jie Yang wrote:
In the new jack kctls design, snd_kcontrol can be created during snd_jack_new(), or calling snd_jack_add_new_kctls() to create and attach to the created jack later.
Here we create jack kctls at the jack creating stage, for both phantom/non-phantom jack.
Signed-off-by: Jie Yang yang.jie@intel.com
sound/pci/hda/hda_jack.c | 53 +++++++++++++++++------------------------------- sound/pci/hda/hda_jack.h | 4 +--- 2 files changed, 20 insertions(+), 37 deletions(-)
diff --git a/sound/pci/hda/hda_jack.c b/sound/pci/hda/hda_jack.c index f45c488..3447853 100644 --- a/sound/pci/hda/hda_jack.c +++ b/sound/pci/hda/hda_jack.c @@ -132,11 +132,11 @@ void snd_hda_jack_tbl_clear(struct hda_codec *codec)
for (i = 0; i < codec->jacktbl.used; i++, jack++) { struct hda_jack_callback *cb, *next; -#ifdef CONFIG_SND_HDA_INPUT_JACK
- /* free jack instances manually when clearing/reconfiguring
*/
if (!codec->bus->shutdown && jack->jack) snd_device_free(codec->bus->card, jack->jack); -
#endif
- for (cb = jack->callback; cb; cb = next) { next = cb->next; kfree(cb);
@@ -337,20 +337,16 @@ void snd_hda_jack_report_sync(struct
hda_codec *codec)
jack = codec->jacktbl.list; for (i = 0; i < codec->jacktbl.used; i++, jack++) if (jack->nid) {
if (!jack->kctl || jack->block_report)
if (!jack->jack_kctl || jack->block_report)
The all checks of jack->kctl should be replaced with jack->jack. That is, you don't have to care about kctl any longer in the hdaudio side.
OK, will change them.
Takashi