[alsa-devel] [PATCH] ASoC: bytcr_rt5640: Allow quirk set via module option
Takashi Iwai
tiwai at suse.de
Fri Apr 21 22:31:57 CEST 2017
On Fri, 21 Apr 2017 22:28:05 +0200,
Pierre-Louis Bossart wrote:
>
>
>
> On 04/21/2017 03:15 PM, Takashi Iwai wrote:
> > The bytcr-rt5640 driver has a few quirk setups depending on the board,
> > where the quirk value is set by DMI matching. When you have a new
> > device to add the support, you often experience to try the different
> > quirk by trial-and-error. Or, you may have a development model that
> > still has no proper DMI string. In either case, you'd need to compile
> > the driver at each time.
> >
> > This patch introduces a module option to override the quirk value on
> > the fly. User can boot like snd-soc-sst-bytcr-rt5640.quirk=0x4004 to
> > override the default value without recompilation. It's a raw value,
> > so user needs to check the source code for the meaning of each bit.
> I am doing similar things at the moment, I folded IN1 and IN3 quirks
> together and was about to add a control to force
> single-ended/differential mics. The use of a parameter is not bad, we
> could stick it in a modprobe file and avoid writing more code.
>
> That said, unless I am missing something, the problem with this
> parameter is that it will be overwritten by
> DMI quirks or the settings detected by the driver, see e.g. this code.
>
> /* change defaults for Baytrail-CR capture */
> byt_rt5640_quirk |= BYT_RT5640_IN1_MAP;
> byt_rt5640_quirk |= BYT_RT5640_DIFF_MIC;
> } else {
> byt_rt5640_quirk |= (BYT_RT5640_DMIC1_MAP |
> BYT_RT5640_DMIC_EN);
> }
>
> /* check quirks before creating card */
> dmi_check_system(byt_rt5640_quirk_table);
> log_quirks(&pdev->dev);
>
> We may need a second variable to force the .quirk parameter to be used
> as is and avoid applying changes done at run-time.
Well, I somehow hesitated a complete override, but yeah, it'd be
sometimes more helpful. OK, let me respin the patch quickly...
thanks,
Takashi
More information about the Alsa-devel
mailing list