@@ -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;
}
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(+)