[PATCH 1/2] ASoC: SOF: Introduce optional callback of_machine_select
chunxu.li
chunxu.li at mediatek.com
Thu Aug 4 07:36:07 PDT 2022
On Thu, 2022-08-04 at 14:17 +0100, Mark Brown wrote:
> On Thu, Aug 04, 2022 at 05:13:58PM +0800, Chunxu Li wrote:
>
> > @@ -284,6 +284,7 @@ struct snd_sof_dsp_ops {
> > void (*machine_unregister)(struct snd_sof_dev *sdev,
> > void *pdata); /* optional */
> > struct snd_soc_acpi_mach * (*machine_select)(struct snd_sof_dev
> > *sdev); /*
> > optional */
> > + struct snd_sof_of_mach * (*of_machine_select)(struct
> > snd_sof_dev *sdev);
>
> I don't understand why we pass this in as a function when as far as I
> can see it should always be the standard operation provided by the
> core
> - why not just always call the function? We can tell at runtime if
> the
> system is using DT so there's no issue there and there shouldn't be
> any
> concerns with ACPI or other firmware interfaces.
Thanks for you advice, I'll remove the callback function, and directly
call sof_of_machine_select() in sof_machine_check() as following.
int sof_machine_check(struct snd_sof_dev *sdev)
{
snip...
const struct snd_sof_of_mach *of_mach;
/* find machine */
mach = snd_sof_machine_select(sdev);
if (mach) {
sof_pdata->machine = mach;
snd_sof_set_mach_params(mach, sdev);
return 0;
}
+ of_mach = sof_of_machine_select(sdev);
+ if (of_mach) {
+ sof_pdata->of_machine = of_mach;
+ return 0;
+ }
snip ...
}
More information about the Linux-mediatek
mailing list