[PATCH] drivers: Change calls to mdelay to msleep in order to stop CPU busy looping in mdfld_dsi_pkg_sender.c

Jani Nikula jani.nikula at linux.intel.com
Mon Nov 17 00:40:43 PST 2014


On Sat, 15 Nov 2014, Nicholas Krause <xerofoify at gmail.com> wrote:
> Changes the calls of mdelay to msleep in the driver file mdfld_dsi_pkg_sender.c
> in order to prevent CPU busy looping in order to save CPU cycles as this is
> considered bad form over sleeping the CPU for high resolution timer function
> calls as this driver needs in order to function properly.

The code paths are called with sender->lock spinlock held.

BR,
Jani.

>
> Signed-off-by: Nicholas Krause <xerofoify at gmail.com>
> ---
>  drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 15 +++++----------
>  1 file changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c b/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
> index 87885d8..77c656a 100644
> --- a/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
> +++ b/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
> @@ -335,13 +335,11 @@ static int send_pkg_prepare(struct mdfld_dsi_pkg_sender *sender, u8 data_type,
>  
>  	/*wait for 120 milliseconds in case exit_sleep_mode just be sent*/
>  	if (unlikely(cmd == DCS_ENTER_SLEEP_MODE)) {
> -		/*TODO: replace it with msleep later*/
> -		mdelay(120);
> +		msleep(120);
>  	}
>  
>  	if (unlikely(cmd == DCS_EXIT_SLEEP_MODE)) {
> -		/*TODO: replace it with msleep later*/
> -		mdelay(120);
> +		msleep(120);
>  	}
>  	return 0;
>  }
> @@ -364,15 +362,12 @@ static int send_pkg_done(struct mdfld_dsi_pkg_sender *sender, u8 data_type,
>  	/*update panel status*/
>  	if (unlikely(cmd == DCS_ENTER_SLEEP_MODE)) {
>  		sender->panel_mode |= MDFLD_DSI_PANEL_MODE_SLEEP;
> -		/*TODO: replace it with msleep later*/
> -		mdelay(120);
> +		msleep(120);
>  	} else if (unlikely(cmd == DCS_EXIT_SLEEP_MODE)) {
>  		sender->panel_mode &= ~MDFLD_DSI_PANEL_MODE_SLEEP;
> -		/*TODO: replace it with msleep later*/
> -		mdelay(120);
> +		msleep(120);
>  	} else if (unlikely(cmd == DCS_SOFT_RESET)) {
> -		/*TODO: replace it with msleep later*/
> -		mdelay(5);
> +		msleep(5);
>  	}
>  
>  	sender->status = MDFLD_DSI_PKG_SENDER_FREE;
> -- 
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the dri-devel mailing list