On Mon, Oct 26, 2020 at 01:17:11AM +0300, Dmitry Osipenko wrote: > Multiple Tegra drivers need to retrieve Memory Controller and there is > duplication of the retrieval code among the drivers. This patch removes > the duplication and fixes put_device() which was missed in the duplicated > code. > > EMC drivers now use new common devm_tegra_get_memory_controller() helper > instead of opencoding the MC retrieval. > > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > --- > drivers/memory/tegra/mc.c | 48 ++++++++++++++++++++++++ > drivers/memory/tegra/tegra124-emc.c | 18 ++------- > drivers/memory/tegra/tegra210-emc-core.c | 39 +++++-------------- > drivers/memory/tegra/tegra30-emc.c | 18 ++------- > include/soc/tegra/mc.h | 10 +++++ > 5 files changed, 74 insertions(+), 59 deletions(-) > > diff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c > index ec8403557ed4..12ea2c79205a 100644 > --- a/drivers/memory/tegra/mc.c > +++ b/drivers/memory/tegra/mc.c > @@ -42,6 +42,54 @@ static const struct of_device_id tegra_mc_of_match[] = { > }; > MODULE_DEVICE_TABLE(of, tegra_mc_of_match); > > +static void tegra_mc_devm_action_put_device(void *data) > +{ > + struct tegra_mc *mc = data; > + > + put_device(mc->dev); > +} > + > +/** > + * devm_tegra_get_memory_controller() - get Tegra Memory Controller handle > + * @dev: device pointer for the consumer device > + * > + * This function will search for the Memory Controller node in a device-tree > + * and retrieve the Memory Controller handle. > + * > + * Return: ERR_PTR() on error or a valid pointer to a struct tegra_mc. > + */ > +struct tegra_mc *devm_tegra_get_memory_controller(struct device *dev) Usually 'get' is a suffix (for example in clk, gpiod, iio, led), so: devm_tegra_memory_controller_get() Best regards, Krzysztof