aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2017-08-30 11:41:00 -0400
committerThierry Reding <treding@nvidia.com>2017-10-20 08:19:54 -0400
commita2f2f7403e1ea192ce79584d7050c46e455409dd (patch)
treeb303ec55ecd6a5cae2f5b1fa11fa2e8a8cd9fedb
parent39e08affecf0998be1b01f4752016e33fa98eb9a (diff)
drm/tegra: dc: Perform a complete reset sequence
In order for the reset to be applied properly, the module clock must be enabled during the assertion. Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--drivers/gpu/drm/tegra/dc.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index d5a63230e509..24a5ef4f5bb8 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -1997,8 +1997,22 @@ static int tegra_dc_probe(struct platform_device *pdev)
1997 return PTR_ERR(dc->rst); 1997 return PTR_ERR(dc->rst);
1998 } 1998 }
1999 1999
2000 if (!dc->soc->broken_reset) 2000 /* assert reset and disable clock */
2001 reset_control_assert(dc->rst); 2001 if (!dc->soc->broken_reset) {
2002 err = clk_prepare_enable(dc->clk);
2003 if (err < 0)
2004 return err;
2005
2006 usleep_range(2000, 4000);
2007
2008 err = reset_control_assert(dc->rst);
2009 if (err < 0)
2010 return err;
2011
2012 usleep_range(2000, 4000);
2013
2014 clk_disable_unprepare(dc->clk);
2015 }
2002 2016
2003 if (dc->soc->has_powergate) { 2017 if (dc->soc->has_powergate) {
2004 if (dc->pipe == 0) 2018 if (dc->pipe == 0)