From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753292AbdA3XEo (ORCPT ); Mon, 30 Jan 2017 18:04:44 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:34842 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752818AbdA3XEm (ORCPT ); Mon, 30 Jan 2017 18:04:42 -0500 Message-ID: <588FC682.9040503@gmail.com> Date: Mon, 30 Jan 2017 23:04:34 +0000 From: Sudip Mukherjee User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Jingoo Han , Lee Jones , Bartlomiej Zolnierkiewicz CC: linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org Subject: Re: [PATCH] backlight: report error on failure References: <1484774630-4228-1-git-send-email-sudipm.mukherjee@gmail.com> In-Reply-To: <1484774630-4228-1-git-send-email-sudipm.mukherjee@gmail.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 18 January 2017 09:23 PM, Sudip Mukherjee wrote: > It is possible to update the backlight power and the brightness using > the sysfs and on writing it either returns the count or if the callback > function does not exist then returns the error code 'ENXIO'. > > We have a situation where the userspace client is writing to the sysfs > to update the power and since the callback function exists the client > receives the return value as count and considers the operation to be > successful. That is correct as the write to the sysfs was successful. > But there is no way to know if the actual operation was done or not. > > backlight_update_status() returns the error code if it fails. Pass that > to the userspace client who is trying to update the power so that the > client knows that the operation failed. > > Signed-off-by: Sudip Mukherjee > --- A gentle ping. -- Regards Sudip > drivers/video/backlight/backlight.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c > index 288318a..74b72b5 100644 > --- a/drivers/video/backlight/backlight.c > +++ b/drivers/video/backlight/backlight.c > @@ -146,9 +146,9 @@ static ssize_t bl_power_store(struct device *dev, struct device_attribute *attr, > pr_debug("set power to %lu\n", power); > if (bd->props.power != power) { > bd->props.power = power; > - backlight_update_status(bd); > + rc = backlight_update_status(bd); > } > - rc = count; > + rc = rc ? rc : count; > } > mutex_unlock(&bd->ops_lock); > > @@ -176,8 +176,7 @@ int backlight_device_set_brightness(struct backlight_device *bd, > else { > pr_debug("set brightness to %lu\n", brightness); > bd->props.brightness = brightness; > - backlight_update_status(bd); > - rc = 0; > + rc = backlight_update_status(bd); > } > } > mutex_unlock(&bd->ops_lock); >