void gk20a_reset_priv_ring(struct gk20a *g) { if (tegra_platform_is_linsim()) return; gk20a_reset(g, mc_enable_priv_ring_enabled_f()); if (g->ops.clock_gating.slcg_priring_load_gating_prod) g->ops.clock_gating.slcg_priring_load_gating_prod(g, g->slcg_enabled); gk20a_writel(g,pri_ringmaster_command_r(), 0x4); gk20a_writel(g, pri_ringstation_sys_decode_config_r(), 0x2); gk20a_readl(g, pri_ringstation_sys_decode_config_r()); }
void gk20a_reset_priv_ring(struct gk20a *g) { u32 data; data = gk20a_readl(g, trim_sys_gpc2clk_out_r()); data = set_field(data, trim_sys_gpc2clk_out_bypdiv_m(), trim_sys_gpc2clk_out_bypdiv_f(0)); gk20a_writel(g, trim_sys_gpc2clk_out_r(), data); gk20a_reset(g, mc_enable_priv_ring_enabled_f()); if (g->ops.clock_gating.slcg_priring_load_gating_prod) g->ops.clock_gating.slcg_priring_load_gating_prod(g, g->slcg_enabled); gk20a_writel(g,pri_ringmaster_command_r(), 0x4); gk20a_writel(g, pri_ringstation_sys_decode_config_r(), 0x2); gk20a_readl(g, pri_ringstation_sys_decode_config_r()); }