Re: [PATCH v3 1/2] ASoC: Intel: maxim-common: get codec number from ACPI

From: Andy Shevchenko
Date: Thu Jul 27 2023 - 06:18:28 EST


On Thu, Jul 27, 2023 at 06:43:53PM +0800, Brent Lu wrote:
> Implement a helper function to get number of codecs from ACPI
> subsystem to remove the need of quirk flag in machine driver.

...

> static int max_98390_hw_params(struct snd_pcm_substream *substream,
> struct snd_pcm_hw_params *params)
> {
> struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
> struct snd_soc_dai *codec_dai;
> + int i, ret = 0;

Redundant assignment.

> for_each_rtd_codec_dais(rtd, i, codec_dai) {
> + if (i >= ARRAY_SIZE(max_98390_tdm_mask)) {
> dev_err(codec_dai->dev, "invalid codec index %d\n", i);
> return -ENODEV;
> }
>
> + ret = snd_soc_dai_set_tdm_slot(codec_dai, max_98390_tdm_mask[i].tx,
> + max_98390_tdm_mask[i].rx, 4,
> + params_width(params));
> + if (ret < 0) {
> + dev_err(codec_dai->dev, "fail to set tdm slot, ret %d\n",
> + ret);
> + return ret;
> }
> }
> return 0;
> }

...

> + case 2:
> + /* add regular speakers dapm route */
> + ret = snd_soc_dapm_add_routes(&card->dapm, max_98390_dapm_routes,
> + ARRAY_SIZE(max_98390_dapm_routes));
> + if (ret) {
> + dev_err(rtd->dev, "unable to add dapm routes, ret %d\n",
> + ret);
> + return ret;
> + }
> + break;
> + default:
> + dev_err(rtd->dev, "invalid codec number %d\n", num_codecs);

> + ret = -EINVAL;
> + break;

You can

return -EINVAL;

> }
> +
> return ret;

...

> +#define MAX_98390_ACPI_HID "MX98390"

> +#define MAX_98390_DEV0_NAME "i2c-MX98390:00"
> +#define MAX_98390_DEV1_NAME "i2c-MX98390:01"
> +#define MAX_98390_DEV2_NAME "i2c-MX98390:02"
> +#define MAX_98390_DEV3_NAME "i2c-MX98390:03"

Maybe (maybe, don't know subsystem preferences)

#define MAX_98390_DEV0_NAME "i2c-" MAX_98390_ACPI_HID ":00"
#define MAX_98390_DEV1_NAME "i2c-" MAX_98390_ACPI_HID ":01"
#define MAX_98390_DEV2_NAME "i2c-" MAX_98390_ACPI_HID ":02"
#define MAX_98390_DEV3_NAME "i2c-" MAX_98390_ACPI_HID ":03"

--
With Best Regards,
Andy Shevchenko