lkml.org 
[lkml]   [2015]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] drm/tegra: Reset the SOR during initialization
25.03.2015 11:59, Tomeu Vizoso пишет:
> As there isn't a way for the firmware on the Nyan chromebooks to hand
> over the display to the kernel, and the kernel isn't redoing the whole
> configuration at present.
>
> With this patch, the SOR is brought to a known state and we get correct
> display on every boot.
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
>
> ---
>
> v7: * Move the reset to the host1x_client_ops.init callback as
> suggested by Thierry
> * Reduced the time during which the reset line is asserted from
> 20ms to 2ms
> ---
> drivers/gpu/drm/tegra/sor.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index 2afe478..027a25d22 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -1354,12 +1354,30 @@ static int tegra_sor_init(struct host1x_client *client)
> }
> }
>
> + /*
> + * XXX: Remove this reset once proper hand-over from firmware to
> + * kernel is possible.
> + */
> + err = reset_control_assert(sor->rst);
> + if (err < 0) {
> + dev_err(sor->dev, "failed to assert SOR reset: %d\n", err);
> + return err;
> + }
> +
> err = clk_prepare_enable(sor->clk);
> if (err < 0) {
> dev_err(sor->dev, "failed to enable clock: %d\n", err);
> return err;
> }
>
> + msleep(2);
> +
> + err = reset_control_deassert(sor->rst);
> + if (err < 0) {
> + dev_err(sor->dev, "failed to deassert SOR reset: %d\n", err);
> + return err;
> + }
> +
> err = clk_prepare_enable(sor->clk_safe);
> if (err < 0)
> return err;
>

According to kernel doc, you should use usleep_range() instead of msleep().

https://www.kernel.org/doc/Documentation/timers/timers-howto.txt

--
Dmitry


\
 
 \ /
  Last update: 2015-03-26 10:41    [W:0.064 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site