Message ID | 20230828174856.122559-1-biju.das.jz@bp.renesas.com |
---|---|
State | Accepted |
Commit | ad191992330cfeb80ba341d1e75d9fe2719ced68 |
Headers | show |
Series | [v2] ASoC: cs42xx8-i2c: Simplify probe() | expand |
On Mon, Aug 28, 2023 at 06:48:56PM +0100, Biju Das wrote: > Simplify probe() by replacing of_match_device->i2c_get_match_data() and > extend matching support for ID table. Also replace > dev_err()->dev_err_probe() to simplify the code. ... Can also be struct device *dev = &i2c->dev; > int ret; > struct cs42xx8_driver_data *drvdata; > - const struct of_device_id *of_id; > - > - of_id = of_match_device(cs42xx8_of_match, &i2c->dev); > - if (!of_id) { > - dev_err(&i2c->dev, "failed to find driver data\n"); > - return -EINVAL; > - } > > - drvdata = (struct cs42xx8_driver_data *)of_id->data; > + drvdata = (struct cs42xx8_driver_data *)i2c_get_match_data(i2c); > + if (!drvdata) > + return dev_err_probe(&i2c->dev, -EINVAL, > + "failed to find driver data\n"); return dev_err_probe(dev, -EINVAL, "failed to find driver data\n");
Hi Andy, > Subject: Re: [PATCH v2] ASoC: cs42xx8-i2c: Simplify probe() > > On Mon, Aug 28, 2023 at 06:48:56PM +0100, Biju Das wrote: > > Simplify probe() by replacing of_match_device->i2c_get_match_data() > > and extend matching support for ID table. Also replace > > dev_err()->dev_err_probe() to simplify the code. > > ... > > Can also be > > struct device *dev = &i2c->dev; > > > int ret; > > struct cs42xx8_driver_data *drvdata; > > - const struct of_device_id *of_id; > > - > > - of_id = of_match_device(cs42xx8_of_match, &i2c->dev); > > - if (!of_id) { > > - dev_err(&i2c->dev, "failed to find driver data\n"); > > - return -EINVAL; > > - } > > > > - drvdata = (struct cs42xx8_driver_data *)of_id->data; > > + drvdata = (struct cs42xx8_driver_data *)i2c_get_match_data(i2c); > > + if (!drvdata) > > > + return dev_err_probe(&i2c->dev, -EINVAL, > > + "failed to find driver data\n"); > > return dev_err_probe(dev, -EINVAL, "failed to find driver > data\n"); True, Cheers, Biju
diff --git a/sound/soc/codecs/cs42xx8-i2c.c b/sound/soc/codecs/cs42xx8-i2c.c index a422472820fb..9028c0f0fe77 100644 --- a/sound/soc/codecs/cs42xx8-i2c.c +++ b/sound/soc/codecs/cs42xx8-i2c.c @@ -18,21 +18,15 @@ #include "cs42xx8.h" -static const struct of_device_id cs42xx8_of_match[]; - static int cs42xx8_i2c_probe(struct i2c_client *i2c) { int ret; struct cs42xx8_driver_data *drvdata; - const struct of_device_id *of_id; - - of_id = of_match_device(cs42xx8_of_match, &i2c->dev); - if (!of_id) { - dev_err(&i2c->dev, "failed to find driver data\n"); - return -EINVAL; - } - drvdata = (struct cs42xx8_driver_data *)of_id->data; + drvdata = (struct cs42xx8_driver_data *)i2c_get_match_data(i2c); + if (!drvdata) + return dev_err_probe(&i2c->dev, -EINVAL, + "failed to find driver data\n"); ret = cs42xx8_probe(&i2c->dev, devm_regmap_init_i2c(i2c, &cs42xx8_regmap_config), drvdata);