On Tue, Mar 10, 2020 at 07:29:42PM +0300, Dmitry Osipenko wrote: > 10.03.2020 18:19, Thierry Reding пишет: > > From: Joseph Lo > > > > The EMC clock needs to carefully coordinate with the EMC controller > > programming to make sure external memory can be properly clocked. Do so > > by hooking up the EMC clock with an EMC provider that will specify which > > rates are supported by the EMC and provide a callback to use for setting > > the clock rate at the EMC. > > > > Based on work by Peter De Schrijver . > > > > Signed-off-by: Joseph Lo > > Signed-off-by: Thierry Reding > > --- > > Changes in v5: > > - major rework and cleanup > > ... > > +EXPORT_SYMBOL_GPL(tegra210_clk_emc_attach); > > + > > +void tegra210_clk_emc_detach(struct clk *clk) > > +{ > > + struct tegra210_clk_emc *emc = to_tegra210_clk_emc(__clk_get_hw(clk)); > > + > > + emc->provider = NULL; > > +} > > +EXPORT_SYMBOL_GPL(tegra210_clk_emc_detach);... > > +config TEGRA210_EMC > > + bool "NVIDIA Tegra210 External Memory Controller driver" > > > I'd remove all the exports for now, given that the driver is built-in. I was able to make the driver work as a loadable module, so I've kept the exports where needed and made TEGRA210_EMC tristate. Thierry