Hi Ban, On Tue, 2021-06-15 at 21:03 +0800, Ban Tao wrote: > The Allwinner H6 and later SoCs have an DMIC block > which is capable of capture. > > Signed-off-by: Ban Tao <fengzheng923@xxxxxxxxx> [...] > diff --git a/sound/soc/sunxi/sun50i-dmic.c b/sound/soc/sunxi/sun50i-dmic.c > new file mode 100644 > index 000000000000..78d512d93974 > --- /dev/null > +++ b/sound/soc/sunxi/sun50i-dmic.c > @@ -0,0 +1,408 @@ [...] > + host->rst = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); > + if (IS_ERR(host->rst) && PTR_ERR(host->rst) == -EPROBE_DEFER) { > + ret = -EPROBE_DEFER; > + dev_err(&pdev->dev, "Failed to get reset: %d\n", ret); > + return ret; > + } Please don't ignore errors. For example: if (IS_ERR(host->rst)) return dev_err_probe(&pdev->dev, PTR_ERR(host->rst), "Failed to get reset\n"); devm_reset_control_get_optional_exclusive() will return NULL if no reset is specified in the device tree. > + if (!IS_ERR(host->rst)) > + reset_control_deassert(host->rst); Then this is not necessary. Just use: reset_control_deassert(host->rst); regards Philipp