09.04.2020 20:52, Thierry Reding пишет: ... > +static int tegra210_emc_set_rate(struct device *dev, > + const struct tegra210_clk_emc_config *config) > +{ > + struct tegra210_emc *emc = dev_get_drvdata(dev); > + struct tegra210_emc_timing *timing = NULL; > + unsigned long rate = config->rate; > + s64 last_change_delay; > + unsigned long flags; > + unsigned int i; > + > + if (rate == emc->last->rate * 1000UL) > + return 0; Isn't it possible that parent is changed, while the rate is not? I think the clock change should proceed in this case.