All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
To: Jacek Anaszewski <j.anaszewski@samsung.com>, linux-leds@vger.kernel.orv
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] leds: powernv: Implement brightness_set_blocking op
Date: Mon, 23 Nov 2015 14:32:43 +0530	[thread overview]
Message-ID: <5652D633.4060203@linux.vnet.ibm.com> (raw)
In-Reply-To: <1448034066-22978-1-git-send-email-j.anaszewski@samsung.com>

On 11/20/2015 09:11 PM, Jacek Anaszewski wrote:
> Since brightness setting can sleep for this driver, implement
> brightness_set_blocking op, instead of brightness_set.
> It makes this driver compatible with LED triggers.

Hello  Jacek,

Thanks for the patch. Looks good.. I will test this patch later this week and
update you the results.

I assume this patch is on top of LED git tree.

-Vasant

> 
> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
> Cc: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
> ---
>  drivers/leds/leds-powernv.c |   16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/leds/leds-powernv.c b/drivers/leds/leds-powernv.c
> index 1e75e1f..dd76f34 100644
> --- a/drivers/leds/leds-powernv.c
> +++ b/drivers/leds/leds-powernv.c
> @@ -77,7 +77,7 @@ static int powernv_get_led_type(const char *led_type_desc)
>   * This function is called from work queue task context when ever it gets
>   * scheduled. This function can sleep at opal_async_wait_response call.
>   */
> -static void powernv_led_set(struct powernv_led_data *powernv_led,
> +static int powernv_led_set(struct powernv_led_data *powernv_led,
>  			    enum led_brightness value)
>  {
>  	int rc, token;
> @@ -99,7 +99,7 @@ static void powernv_led_set(struct powernv_led_data *powernv_led,
>  		if (token != -ERESTARTSYS)
>  			dev_err(dev, "%s: Couldn't get OPAL async token\n",
>  				__func__);
> -		return;
> +		return token;
>  	}
>  
>  	rc = opal_leds_set_ind(token, powernv_led->loc_code,
> @@ -125,6 +125,7 @@ static void powernv_led_set(struct powernv_led_data *powernv_led,
>  
>  out_token:
>  	opal_async_release_token(token);
> +	return rc;
>  }
>  
>  /*
> @@ -173,20 +174,23 @@ static enum led_brightness powernv_led_get(struct powernv_led_data *powernv_led)
>   * LED classdev 'brightness_get' function. This schedules work
>   * to update LED state.
>   */
> -static void powernv_brightness_set(struct led_classdev *led_cdev,
> +static int powernv_brightness_set(struct led_classdev *led_cdev,
>  				   enum led_brightness value)
>  {
>  	struct powernv_led_data *powernv_led =
>  		container_of(led_cdev, struct powernv_led_data, cdev);
>  	struct powernv_led_common *powernv_led_common = powernv_led->common;
> +	int rc;
>  
>  	/* Do not modify LED in unload path */
>  	if (powernv_led_common->led_disabled)
> -		return;
> +		return 0;
>  
>  	mutex_lock(&powernv_led_common->lock);
> -	powernv_led_set(powernv_led, value);
> +	rc = powernv_led_set(powernv_led, value);
>  	mutex_unlock(&powernv_led_common->lock);
> +
> +	return rc;
>  }
>  
>  /* LED classdev 'brightness_get' function */
> @@ -227,7 +231,7 @@ static int powernv_led_create(struct device *dev,
>  		return -ENOMEM;
>  	}
>  
> -	powernv_led->cdev.brightness_set = powernv_brightness_set;
> +	powernv_led->cdev.brightness_set_blocking = powernv_brightness_set;
>  	powernv_led->cdev.brightness_get = powernv_brightness_get;
>  	powernv_led->cdev.brightness = LED_OFF;
>  	powernv_led->cdev.max_brightness = LED_FULL;
> 

  reply	other threads:[~2015-11-23  9:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-20 15:41 [PATCH] leds: powernv: Implement brightness_set_blocking op Jacek Anaszewski
2015-11-23  9:02 ` Vasant Hegde [this message]
  -- strict thread matches above, loose matches on Subject: below --
2015-11-20 15:46 Jacek Anaszewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5652D633.4060203@linux.vnet.ibm.com \
    --to=hegdevasant@linux.vnet.ibm.com \
    --cc=j.anaszewski@samsung.com \
    --cc=linux-leds@vger.kernel.orv \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.