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"