15.01.2021 17:01, Dmitry Osipenko пишет:
@@ -65,12 +65,32 @@ static int tegra30_ahub_runtime_resume(struct device *dev) { int ret;
ret = reset_control_assert(ahub->reset);
if (ret)
return ret;
ret = clk_bulk_prepare_enable(ahub->nclocks, ahub->clocks); if (ret) return ret;
ret = reset_control_reset(ahub->reset);
if (ret) {
clk_bulk_disable_unprepare(ahub->nclocks, ahub->clocks);
return ret;
}
regcache_cache_only(ahub->regmap_apbif, false); regcache_cache_only(ahub->regmap_ahub, false);
regcache_mark_dirty(ahub->regmap_apbif);
regcache_mark_dirty(ahub->regmap_ahub);
ret = regcache_sync(ahub->regmap_apbif);
if (ret)
return ret;
ret = regcache_sync(ahub->regmap_ahub);
if (ret)
return ret;
The regcache syncing is corrected now in v2, but I missed to disable the clocks in the error path :) I'll make a v3 around next Tuesday. If you'll spot anything else that needs to be improved, please let me know.