iio: adc: max1363: merge calls to of_match_device and of_device_get_match_data
Quoted 19 lines · On Mon, 21 May 2018 11:49:09 +0200 Julia Lawall <[email protected]> wrote:
Drop call to
of_match_device, which is subsumed by the subsequent call toof_device_get_match_data. The code becomes simpler, and a temporary variable can be dropped.The semantic match that makes this change is as follows:
(http://coccinelle.lip6.fr/)// <smpl>
@r@
local idexpression match;
identifier i;
expression x, dev, e, e1;
@@(quoted diff) +2
-3- match@i = of_match_device(x, dev); - if (match) e = of_device_get_match_data(dev); - else e = e1; + e = of_device_get_match_data(dev); + if (!e) e = e1;
Quoted 8 lines
@@
identifier r.i;
@@
- const structof_device_id*i;
... when != i
// </smpl>Signed-off-by Julia Lawall <[email protected]>
Sorry, this got lost in my inbox.
Anyhow, no applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it.
Thanks,
Jonathan
Quoted 32 lines
--- drivers/iio/adc/max1363.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)drivers/iio/adc/max1363.c +2
-6@@ -1575,7 +1575,6 @@ static int max1363_probe(struct i2c_client *client,struct max1363_state *st;struct iio_dev *indio_dev;struct regulator *vref; -const struct of_device_id *match; indio_dev =devm_iio_device_alloc (&client->dev,sizeof (struct max1363_state ));@@ -1602,11 +1601,8 @@ static int max1363_probe(struct i2c_client *client,/* this is only used for device removal purposes */ i2c_set_clientdata (client, indio_dev); - match =of_match_device (of_match_ptr (max1363_of_match), - &client->dev); -if (match) - st->chip_info =of_device_get_match_data (&client->dev); -else + st->chip_info =of_device_get_match_data (&client->dev); +if (!st->chip_info) st->chip_info = &max1363_chip_info_tbl[id->driver_data]; st->client = client;