The model option of snd-hda-intel or SOF driver is useful for testing / debugging quirks. Since many devices have multiple codecs and the quirk is rather codec-specific, it's often difficult to pass the model to the proper target.
This patch adds the equivalent model option to IDT/Sigmatel codec driver, so that user can optionally specify the option for the codec instead of snd-hda-intel or SOF drivers.
That is, you can pass the boot option like snd_hda_codec_idt.model=foobar or snd_hda_codec_idt.model=103c:3610 for applying a quirk no matter whether you use snd-hda-intel or SOF.
The model option of snd-hda-intel or SOF is still effective. When the option is given for both, the option for the controller driver wins.
Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_sigmatel.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 7f340f18599c..f3143f8b59f0 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -17,6 +17,7 @@ #include <linux/pci.h> #include <linux/dmi.h> #include <linux/module.h> +#include <linux/moduleparam.h> #include <sound/core.h> #include <sound/jack.h> #include <sound/hda_codec.h> @@ -26,6 +27,11 @@ #include "hda_jack.h" #include "hda_generic.h"
+/* codec-specific model option -- equivalent with snd-hda-intel.model option */ +static char *codec_model; +module_param_named(model, codec_model, charp, 0444); +MODULE_PARM_DESC(model, "Use the given board model."); + enum { STAC_REF, STAC_9200_OQO, @@ -4494,6 +4500,11 @@ static int alloc_stac_spec(struct hda_codec *codec) codec->no_trigger_sense = 1; /* seems common with STAC/IDT codecs */ spec->gen.dac_min_mute = true; codec->patch_ops = stac_patch_ops; + + /* assign optional modelname; freed at snd_hda_codec_dev_release() */ + if (!codec->modelname && codec_model) + codec->modelname = kstrdup(codec_model, GFP_KERNEL); + return 0; }