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.
Takashi