diff options
Diffstat (limited to 'drivers/gpu/drm/sun4i/sun4i_backend.c')
| -rw-r--r-- | drivers/gpu/drm/sun4i/sun4i_backend.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c index 4e29f4fe4a05..072ea113e6be 100644 --- a/drivers/gpu/drm/sun4i/sun4i_backend.c +++ b/drivers/gpu/drm/sun4i/sun4i_backend.c @@ -856,6 +856,13 @@ static int sun4i_backend_bind(struct device *dev, struct device *master,  		ret = PTR_ERR(backend->mod_clk);  		goto err_disable_bus_clk;  	} + +	ret = clk_set_rate_exclusive(backend->mod_clk, 300000000); +	if (ret) { +		dev_err(dev, "Couldn't set the module clock frequency\n"); +		goto err_disable_bus_clk; +	} +  	clk_prepare_enable(backend->mod_clk);  	backend->ram_clk = devm_clk_get(dev, "ram"); @@ -932,6 +939,7 @@ static int sun4i_backend_bind(struct device *dev, struct device *master,  err_disable_ram_clk:  	clk_disable_unprepare(backend->ram_clk);  err_disable_mod_clk: +	clk_rate_exclusive_put(backend->mod_clk);  	clk_disable_unprepare(backend->mod_clk);  err_disable_bus_clk:  	clk_disable_unprepare(backend->bus_clk); @@ -952,6 +960,7 @@ static void sun4i_backend_unbind(struct device *dev, struct device *master,  		sun4i_backend_free_sat(dev);  	clk_disable_unprepare(backend->ram_clk); +	clk_rate_exclusive_put(backend->mod_clk);  	clk_disable_unprepare(backend->mod_clk);  	clk_disable_unprepare(backend->bus_clk);  	reset_control_assert(backend->reset); |