Message ID | 20200903132109.1914011-7-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qcom: pm8150: add support for thermal monitoring | expand |
On 0903, Dmitry Baryshkov wrote: > Use of_device_get_match_data() instead of hand-coding it manually. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/iio/adc/qcom-spmi-adc5.c | 16 +++++----------- > 1 file changed, 5 insertions(+), 11 deletions(-) > > diff --git a/drivers/iio/adc/qcom-spmi-adc5.c b/drivers/iio/adc/qcom-spmi-adc5.c > index c2da8f068b87..0ac0b81bab7d 100644 > --- a/drivers/iio/adc/qcom-spmi-adc5.c > +++ b/drivers/iio/adc/qcom-spmi-adc5.c > @@ -14,6 +14,7 @@ > #include <linux/math64.h> > #include <linux/module.h> > #include <linux/of.h> > +#include <linux/of_device.h> > #include <linux/platform_device.h> > #include <linux/regmap.h> > #include <linux/slab.h> > @@ -807,8 +808,6 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) > struct adc5_channel_prop prop, *chan_props; > struct device_node *child; > unsigned int index = 0; > - const struct of_device_id *id; > - const struct adc5_data *data; > int ret; > > adc->nchannels = of_get_available_child_count(node); > @@ -827,24 +826,19 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) > > chan_props = adc->chan_props; > iio_chan = adc->iio_chans; > - id = of_match_node(adc5_match_table, node); > - if (id) > - data = id->data; > - else > - data = &adc5_data_pmic; > - adc->data = data; > + adc->data = of_device_get_match_data(adc->dev); I think you're missing the else condition to fallback to default dev data incase the device is not part of of_device_id. Thanks, Mani > > for_each_available_child_of_node(node, child) { > - ret = adc5_get_dt_channel_data(adc, &prop, child, data); > + ret = adc5_get_dt_channel_data(adc, &prop, child, adc->data); > if (ret) { > of_node_put(child); > return ret; > } > > prop.scale_fn_type = > - data->adc_chans[prop.channel].scale_fn_type; > + adc->data->adc_chans[prop.channel].scale_fn_type; > *chan_props = prop; > - adc_chan = &data->adc_chans[prop.channel]; > + adc_chan = &adc->data->adc_chans[prop.channel]; > > iio_chan->channel = prop.channel; > iio_chan->datasheet_name = prop.datasheet_name; > -- > 2.28.0 >
diff --git a/drivers/iio/adc/qcom-spmi-adc5.c b/drivers/iio/adc/qcom-spmi-adc5.c index c2da8f068b87..0ac0b81bab7d 100644 --- a/drivers/iio/adc/qcom-spmi-adc5.c +++ b/drivers/iio/adc/qcom-spmi-adc5.c @@ -14,6 +14,7 @@ #include <linux/math64.h> #include <linux/module.h> #include <linux/of.h> +#include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/regmap.h> #include <linux/slab.h> @@ -807,8 +808,6 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) struct adc5_channel_prop prop, *chan_props; struct device_node *child; unsigned int index = 0; - const struct of_device_id *id; - const struct adc5_data *data; int ret; adc->nchannels = of_get_available_child_count(node); @@ -827,24 +826,19 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) chan_props = adc->chan_props; iio_chan = adc->iio_chans; - id = of_match_node(adc5_match_table, node); - if (id) - data = id->data; - else - data = &adc5_data_pmic; - adc->data = data; + adc->data = of_device_get_match_data(adc->dev); for_each_available_child_of_node(node, child) { - ret = adc5_get_dt_channel_data(adc, &prop, child, data); + ret = adc5_get_dt_channel_data(adc, &prop, child, adc->data); if (ret) { of_node_put(child); return ret; } prop.scale_fn_type = - data->adc_chans[prop.channel].scale_fn_type; + adc->data->adc_chans[prop.channel].scale_fn_type; *chan_props = prop; - adc_chan = &data->adc_chans[prop.channel]; + adc_chan = &adc->data->adc_chans[prop.channel]; iio_chan->channel = prop.channel; iio_chan->datasheet_name = prop.datasheet_name;
Use of_device_get_match_data() instead of hand-coding it manually. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/iio/adc/qcom-spmi-adc5.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)