On Fri, 21 Jul 2023 08:16:03 +0100 Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote: > Replace of_device_get_match_data() and i2c_match_id() by i2c_get_match > _data() by making similar I2C and DT-based matching table. > > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> Applied to the togreg branch of iio.git and pushed out as testing for autobuilders to have a poke at it. Thanks, Jonathan > --- > v1->v2: > * Added similar similar I2C and DT-based matching table. > * Fixed typo i2c_get_match_data(dev)->i2c_get_match_data(client). > * Dropped error check as all tables have data pointers. > > Note: > This patch is only compile tested. > --- > drivers/iio/potentiometer/mcp4018.c | 34 +++++++++++++++-------------- > 1 file changed, 18 insertions(+), 16 deletions(-) > > diff --git a/drivers/iio/potentiometer/mcp4018.c b/drivers/iio/potentiometer/mcp4018.c > index 89daecc90305..b064e86ecce8 100644 > --- a/drivers/iio/potentiometer/mcp4018.c > +++ b/drivers/iio/potentiometer/mcp4018.c > @@ -99,20 +99,24 @@ static const struct iio_info mcp4018_info = { > .write_raw = mcp4018_write_raw, > }; > > +#define MCP4018_ID_TABLE(name, cfg) { \ > + name, .driver_data = (kernel_ulong_t)&mcp4018_cfg[cfg], \ > +} > + > static const struct i2c_device_id mcp4018_id[] = { > - { "mcp4017-502", MCP4018_502 }, > - { "mcp4017-103", MCP4018_103 }, > - { "mcp4017-503", MCP4018_503 }, > - { "mcp4017-104", MCP4018_104 }, > - { "mcp4018-502", MCP4018_502 }, > - { "mcp4018-103", MCP4018_103 }, > - { "mcp4018-503", MCP4018_503 }, > - { "mcp4018-104", MCP4018_104 }, > - { "mcp4019-502", MCP4018_502 }, > - { "mcp4019-103", MCP4018_103 }, > - { "mcp4019-503", MCP4018_503 }, > - { "mcp4019-104", MCP4018_104 }, > - {} > + MCP4018_ID_TABLE("mcp4017-502", MCP4018_502), > + MCP4018_ID_TABLE("mcp4017-103", MCP4018_103), > + MCP4018_ID_TABLE("mcp4017-503", MCP4018_503), > + MCP4018_ID_TABLE("mcp4017-104", MCP4018_104), > + MCP4018_ID_TABLE("mcp4018-502", MCP4018_502), > + MCP4018_ID_TABLE("mcp4018-103", MCP4018_103), > + MCP4018_ID_TABLE("mcp4018-503", MCP4018_503), > + MCP4018_ID_TABLE("mcp4018-104", MCP4018_104), > + MCP4018_ID_TABLE("mcp4019-502", MCP4018_502), > + MCP4018_ID_TABLE("mcp4019-103", MCP4018_103), > + MCP4018_ID_TABLE("mcp4019-503", MCP4018_503), > + MCP4018_ID_TABLE("mcp4019-104", MCP4018_104), > + { /* sentinel */ } > }; > MODULE_DEVICE_TABLE(i2c, mcp4018_id); > > @@ -157,9 +161,7 @@ static int mcp4018_probe(struct i2c_client *client) > i2c_set_clientdata(client, indio_dev); > data->client = client; > > - data->cfg = device_get_match_data(dev); > - if (!data->cfg) > - data->cfg = &mcp4018_cfg[i2c_match_id(mcp4018_id, client)->driver_data]; > + data->cfg = i2c_get_match_data(client); > > indio_dev->info = &mcp4018_info; > indio_dev->channels = &mcp4018_channel;