30.01.2020 13:33, Sameer Pujar пишет: ... > +#include <linux/module.h> > +#include <linux/regmap.h> > +#include "tegra_cif.h" > + > +void tegra_set_cif(struct regmap *regmap, unsigned int reg, > + struct tegra_cif_conf *conf) > +{ > + unsigned int value; > + > + value = (conf->threshold << TEGRA_ACIF_CTRL_FIFO_TH_SHIFT) | > + ((conf->audio_ch - 1) << TEGRA_ACIF_CTRL_AUDIO_CH_SHIFT) | > + ((conf->client_ch - 1) << TEGRA_ACIF_CTRL_CLIENT_CH_SHIFT) | > + (conf->audio_bits << TEGRA_ACIF_CTRL_AUDIO_BITS_SHIFT) | > + (conf->client_bits << TEGRA_ACIF_CTRL_CLIENT_BITS_SHIFT) | > + (conf->expand << TEGRA_ACIF_CTRL_EXPAND_SHIFT) | > + (conf->stereo_conv << TEGRA_ACIF_CTRL_STEREO_CONV_SHIFT) | > + (conf->replicate << TEGRA_ACIF_CTRL_REPLICATE_SHIFT) | > + (conf->truncate << TEGRA_ACIF_CTRL_TRUNCATE_SHIFT) | > + (conf->mono_conv << TEGRA_ACIF_CTRL_MONO_CONV_SHIFT); > + > + regmap_update_bits(regmap, reg, TEGRA_ACIF_UPDATE_MASK, value); > +} > +EXPORT_SYMBOL_GPL(tegra_set_cif); Are you going to add more stuff into this source file later on? If not, then it's too much to have a separate driver module just for a single tiny function, you should move it into the header file (make it inline).