From patchwork Sun Jul 19 08:07:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672233 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 236F4913 for ; Sun, 19 Jul 2020 08:08:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0A3F2207FC for ; Sun, 19 Jul 2020 08:08:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="m0o1tttw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726038AbgGSIIG (ORCPT ); Sun, 19 Jul 2020 04:08:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIG (ORCPT ); Sun, 19 Jul 2020 04:08:06 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBF2AC0619D2; Sun, 19 Jul 2020 01:08:05 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id x9so17028659ljc.5; Sun, 19 Jul 2020 01:08:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BtmQn9giIZ5hxkwK3X6Uyd4+tt3rw+QxpQWl1Fgi+8Y=; b=m0o1tttwiUHt1WthakYIAwHFJ59daNJuz7IVB3JnCyaZz0w7mCjJ6LFSRCTv1VSwCd WXK46r7kRAh+iTw/TMN2yFIF+J9Z8mQ+ZOKP6H0DnZyADjwr3ngY0Qlt7IUpeY4EgNKz dh4WdXxzgKKv4/eDRbaqG5OfpsJLDgpYA5t1j4z8bRM+5efzTQOQNmboEntDAeywWq6u OtZeAcZSyLtZ5r0FXfHxbTGFA4kmecbigeHMZYRGnelcJ4srnqjv5hHeSSzTx14452Lh Zy6F72vANE1PNZsduLIbAhqqbYAh3Vzrbpjba5Yy1ZtuJYSkPM/OcQ4ieOqMd20JiUQO GpBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=BtmQn9giIZ5hxkwK3X6Uyd4+tt3rw+QxpQWl1Fgi+8Y=; b=Mzq7v6UHdz76edCUVpAPdTOMtk2QA1FSQo+F4sHI7+DD+vM5xTIBIE2C7RgZVV63Fj p8fWf7Fc6zfNnNkLccXI711i1SVlOJJbO2AMb7qD7sF8FcmG9gO2r3iidybe+0ig3T9U Ahn114xx5yN/QOrI0wkgIJOUMRueK6MWRr2dOQVYPDuHLURWPEKm04lXQ5EEemqyLy9B lyLaFAcV7G1+geQa9EUKobanTL6edawmYNgeNmoaXCl0YV/Y0+hAzlIHJsZgWclfbVGg awqH046UPQQGVy2ClQybcWRT+GfggneXArynyxgCWPq/EbQcFgnfrSpUO3O+uVtzDOha EXDg== X-Gm-Message-State: AOAM5315cblYmRKCzIt14mG2Evvv1sCbs/mCvpyJre7VNMnLUcp/BYFx OCFEUyF9MvcCP/i+mElcTm8= X-Google-Smtp-Source: ABdhPJycJq2U5Syxryg3drCdjc+s82C7Kvu1qoBVnwr5waApqzSlh47x0jMk/YdughkLZ1ra3potHQ== X-Received: by 2002:a2e:9e5a:: with SMTP id g26mr8280144ljk.207.1595146084147; Sun, 19 Jul 2020 01:08:04 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:03 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 01/19] backlight: refactor fb_notifier_callback() Date: Sun, 19 Jul 2020 10:07:25 +0200 Message-Id: <20200719080743.8560-2-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Increase readability of fb_notifier_callback() by removing a few indent levels. No functional change. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/backlight.c | 43 +++++++++++++++-------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 744ba58488e0..18501956dd87 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -58,28 +58,29 @@ static int fb_notifier_callback(struct notifier_block *self, bd = container_of(self, struct backlight_device, fb_notif); mutex_lock(&bd->ops_lock); - if (bd->ops) - if (!bd->ops->check_fb || - bd->ops->check_fb(bd, evdata->info)) { - fb_blank = *(int *)evdata->data; - if (fb_blank == FB_BLANK_UNBLANK && - !bd->fb_bl_on[node]) { - bd->fb_bl_on[node] = true; - if (!bd->use_count++) { - bd->props.state &= ~BL_CORE_FBBLANK; - bd->props.fb_blank = FB_BLANK_UNBLANK; - backlight_update_status(bd); - } - } else if (fb_blank != FB_BLANK_UNBLANK && - bd->fb_bl_on[node]) { - bd->fb_bl_on[node] = false; - if (!(--bd->use_count)) { - bd->props.state |= BL_CORE_FBBLANK; - bd->props.fb_blank = fb_blank; - backlight_update_status(bd); - } - } + + if (!bd->ops) + goto out; + if (bd->ops->check_fb && !bd->ops->check_fb(bd, evdata->info)) + goto out; + + fb_blank = *(int *)evdata->data; + if (fb_blank == FB_BLANK_UNBLANK && !bd->fb_bl_on[node]) { + bd->fb_bl_on[node] = true; + if (!bd->use_count++) { + bd->props.state &= ~BL_CORE_FBBLANK; + bd->props.fb_blank = FB_BLANK_UNBLANK; + backlight_update_status(bd); + } + } else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) { + bd->fb_bl_on[node] = false; + if (!(--bd->use_count)) { + bd->props.state |= BL_CORE_FBBLANK; + bd->props.fb_blank = fb_blank; + backlight_update_status(bd); } + } +out: mutex_unlock(&bd->ops_lock); return 0; } From patchwork Sun Jul 19 08:07:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672235 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8DF9F913 for ; Sun, 19 Jul 2020 08:08:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 76815207FC for ; Sun, 19 Jul 2020 08:08:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FAYHsxMf" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726024AbgGSIII (ORCPT ); Sun, 19 Jul 2020 04:08:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIH (ORCPT ); Sun, 19 Jul 2020 04:08:07 -0400 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43C75C0619D2; Sun, 19 Jul 2020 01:08:07 -0700 (PDT) Received: by mail-lj1-x244.google.com with SMTP id q4so17105713lji.2; Sun, 19 Jul 2020 01:08:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=O0SPsNNLLDKNzMQANE5E5Oyzv60rxxHp94XasELHeFk=; b=FAYHsxMfA7LSjuJ9SNKNKjT6muVZ086wH8lblSVm7uEVA5bk5/4XKprjx44PQ4ye9i CsDOprIILwui5Vv8gYUNzaF0SdJ7Xc0F+gCOL+DY9UQp3Jb1kMWB5QM1RivQJYzVJcRI I+bqt10R4kaJIfFsnJCWxjsVnflMHGid2KrBExd0MpMh+dD5+DzMgVi0mymN11+lp6J8 Nkh9Tk6xxJUJJivwKb6+5muH1s6LftMsbS8fPcpCuyrWuLrSH3nludTS3jsbEqiCykcR eHCpr3fyaFDN5rA8xPhRMY6+Ek1yB7N6TuGuWPOK+31tbzlkGeX+xL+6Ozi7rctl5rMm x5FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=O0SPsNNLLDKNzMQANE5E5Oyzv60rxxHp94XasELHeFk=; b=SI5ErwrK7d6FYwGsu5v4thU/b1onb+gnqx34p/iBmklLe+Lo55MgQm7x/U5Iqu8HR2 T3tx4M7cPd/b7PjHsMdNpry2NmPyGdkm9J0wCY3xazc98PZhcpFGrVIvuroXzbilbC4T cWORhbOzQqePKKQmrtcMlROR8CilpK395wCYk0aZ60XmYfjJ27fImfYFic3qWVArt0Lt MxFHORtDv2egi9jSBuU6l0MbdjfOHj1wPxUOqRU9yDPzKoZ4UCgJgwNqrwgYAEOmXdOW ERew1plfwTJMwaJ1LMW0IGYfCdbFFzc1uP5YmotGgWpCDNTTFVOXE8EDWPrAynxe6B9U QO4A== X-Gm-Message-State: AOAM531p6xej/8pNXK6b/kR6UmQgycO4ZMLpLtSCsN4IPyqWgoz07NQ0 ix7tVp92BHMsSvJ6LtdV5GE= X-Google-Smtp-Source: ABdhPJwrr27+mLQRzHwTEPcWxHY/5mguDpC10mIF1tbevGWDakKvIEcfc2iwgeOAYMGg04xNuXkK2A== X-Received: by 2002:a05:651c:88:: with SMTP id 8mr7335618ljq.136.1595146085762; Sun, 19 Jul 2020 01:08:05 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:05 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 02/19] backlight: add backlight_is_blank() Date: Sun, 19 Jul 2020 10:07:26 +0200 Message-Id: <20200719080743.8560-3-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The backlight support has three properties that express the state: - power - state - fb_blank It is un-documented and easy to get wrong. Add backlight_is_blank() helper to make it simpler for drivers to get the check of the state correct. A lot of drivers also includes checks for fb_blank. This check is redundant when the state is checked and thus not needed in this helper function. But added anyway to avoid introducing subtle bugs due to the creative use of fb_blank in some drivers. Introducing this helper will for some drivers results in added support for fb_blank. This will be a change in functionality, which will improve the backlight driver. Rolling out this helper to all relevant backlight drivers will eliminate almost all accesses to fb_blank. v5: - Improved changelog, added fb_blank to properties that express state (Daniel) v4: - struct backlight_device * is now const v3: - Clarified that the fb_blank support in backlight_is_blank() may result in functionality changes for the users (Emil) v2: - Added fb_blank condition (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Peter Ujfalusi Reviewed-by: Emil Velikov Reviewed-by: Daniel Vetter Cc: Emil Velikov Cc: Daniel Vetter Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 56e4580d4f55..56e51ebab740 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -175,6 +175,25 @@ static inline void backlight_put(struct backlight_device *bd) put_device(&bd->dev); } +/** + * backlight_is_blank - Return true if display is expected to be blank + * @bd: the backlight device + * + * Display is expected to be blank if any of these is true:: + * + * 1) if power in not UNBLANK + * 2) if fb_blank is not UNBLANK + * 3) if state indicate BLANK or SUSPENDED + * + * Returns true if display is expected to be blank, false otherwise. + */ +static inline bool backlight_is_blank(const struct backlight_device *bd) +{ + return bd->props.power != FB_BLANK_UNBLANK || + bd->props.fb_blank != FB_BLANK_UNBLANK || + bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK); +} + extern struct backlight_device *backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, const struct backlight_properties *props); From patchwork Sun Jul 19 08:07:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672237 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 02FD660D for ; Sun, 19 Jul 2020 08:08:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DF57820809 for ; Sun, 19 Jul 2020 08:08:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="i0E8gCL4" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726131AbgGSIIJ (ORCPT ); Sun, 19 Jul 2020 04:08:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIJ (ORCPT ); Sun, 19 Jul 2020 04:08:09 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC83DC0619D2; Sun, 19 Jul 2020 01:08:08 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id f5so17026125ljj.10; Sun, 19 Jul 2020 01:08:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7IVQg6N9Y7IT+7TfYzwS4f6zi+ddclNT7W4+DeE2wDo=; b=i0E8gCL48VpYyuEGykDhenbE3iBlRnlQ5FR4r7PXKxUOUAe0muJPVupH9d/Fk+n325 v5wig+bRKhZbAE10i+qkAgv0dyz6FZ5SLpA+MQzKOHFFmBCinyTtvZ2QjRWoyR/DwvEG yqLPjaOPDDSXcPvBPby1psHUWpgu3J8GQmbRxesQMcPAr90bf2wH74rMmyeTywwiDslS nn+HZ5RevlFCafij8xAC49Y4CornFojE+GgwsYwXRUQ600kXJRhP/r12OmX2JF2BEA/K jFPIAWHf70NeowfroGq5i42WVJxmD6GUx1i07ugPoDwhXwvvrI+m8Nbk3h1znbAN0bu7 PMsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=7IVQg6N9Y7IT+7TfYzwS4f6zi+ddclNT7W4+DeE2wDo=; b=E1xgIi2fbr28hYer8DbN5SSjmS1M2ww/qv7WhHKARG72NfocDPBrtKElCzdJQvFnk0 mi09l4nBFT305CYJ7cmcSBrIg6KUaglCvHZQmXFZt1kep+0eqaDxVvzethxl0mWY5FtO O55I2Pcvyz7kQl4m8EVs77hXXrfzeSk81NXnAK25IjGB1iuoMZzoVqnCeM7oQQ4zSqu9 KKQ1KCGKUfTwQIGGgy10KjSqfzPW0yR3ZHDc0RTg3qji/LNcvL0YeSgm45+iD6MRgoNM xu0rw/2TxZCgeN4ohcDAhYEtPYPpY/67jOPiztL/QwHnMAzPU0RJEMHHQ5ZtR9fnzDe2 tpuw== X-Gm-Message-State: AOAM530VxXpRKD3K+oo6vhnDGfA48SpNy4oTYxqIVIt60sOfXQkPJ6Ml JYnPkEUr/1eW84yWuNPS/lI= X-Google-Smtp-Source: ABdhPJxDEQw9zqp/E7cibISbe2kJD9a7+oyRLBO2wfiqQnoW5MHIuyj/0dlgQ4dS3nSDsdxFf/JRcw== X-Received: by 2002:a2e:8199:: with SMTP id e25mr7189788ljg.307.1595146087170; Sun, 19 Jul 2020 01:08:07 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:06 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 03/19] backlight: improve backlight_ops documentation Date: Sun, 19 Jul 2020 10:07:27 +0200 Message-Id: <20200719080743.8560-4-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Improve the documentation for backlight_ops and adapt it to kernel-doc style. v2: - Add intro for each field (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 59 +++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 6 deletions(-) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 56e51ebab740..dfb43ee02ea0 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -55,19 +55,66 @@ enum backlight_scale { struct backlight_device; struct fb_info; +/** + * struct backlight_ops - backlight operations + * + * The backlight operations are specifed when the backlight device is registered. + */ struct backlight_ops { + /** + * @options: Configure how operations are called from the core. + * + * The options parameter is used to adjust the behaviour of the core. + * Set BL_CORE_SUSPENDRESUME to get the update_status() operation called + * upon suspend and resume. + */ unsigned int options; #define BL_CORE_SUSPENDRESUME (1 << 0) - /* Notify the backlight driver some property has changed */ + /** + * @update_status: Operation called when properties have changed. + * + * Notify the backlight driver some property has changed. + * The update_status operation is protected by the update_lock. + * + * The backlight driver is expected to use backlight_is_blank() + * to check if the display is blanked and set brightness accordingly. + * update_status() is called when any of the properties has changed. + * + * RETURNS: + * + * 0 on sucees, negative error code if any failure occured. + */ int (*update_status)(struct backlight_device *); - /* Return the current backlight brightness (accounting for power, - fb_blank etc.) */ + + /** + * @get_brightness: Return the current backlight brightness. + * + * The driver may implement this as a readback from the HW. + * This operation is optional and if not present then the current + * brightness property value is used. + * + * RETURNS: + * + * A brightness value which is 0 or a positive numer. + * On failure a negative error code is returned. + */ int (*get_brightness)(struct backlight_device *); - /* Check if given framebuffer device is the one bound to this backlight; - return 0 if not, !=0 if it is. If NULL, backlight always matches the fb. */ - int (*check_fb)(struct backlight_device *, struct fb_info *); + + /** + * @check_fb: Check the framebuffer device. + * + * Check if given framebuffer device is the one bound to this backlight. + * This operation is optional and if not implemented it is assumed that the + * fbdev is always the one bound to the backlight. + * + * RETURNS: + * + * If info is NULL or the info matches the fbdev bound to the backlight return true. + * If info does not match the fbdev bound to the backlight return false. + */ + int (*check_fb)(struct backlight_device *bd, struct fb_info *info); }; /* This structure defines all the properties of a backlight */ From patchwork Sun Jul 19 08:07:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672239 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7B864913 for ; Sun, 19 Jul 2020 08:08:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5FD7E20809 for ; Sun, 19 Jul 2020 08:08:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FeXCC5uW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726170AbgGSIIL (ORCPT ); Sun, 19 Jul 2020 04:08:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIK (ORCPT ); Sun, 19 Jul 2020 04:08:10 -0400 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25D58C0619D2; Sun, 19 Jul 2020 01:08:10 -0700 (PDT) Received: by mail-lj1-x244.google.com with SMTP id e4so17046008ljn.4; Sun, 19 Jul 2020 01:08:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nbqgxv/h5SeSHOXMolpp1BPamIvzkqESgLDvhPwqMhU=; b=FeXCC5uWIx+xcOi69FiCd1WNxp1c/0jhf4TeSjclL5MQ77bSEs6eYcrjtY3c5MC2Kd pXnWznTPbn1EC8xVG2HU9EqNJHM7HiZ7QY10MsYNw05o+K3H+g426JRiY2HJMomejE05 iknc8vjgLAXT9POoZMjTVAAqfs5H4ARBf8CJKejX7PxYmW92/4TWwbTtiu8DXMtrfxqc aj5eHo0ic5j/N+HCl+zgtVeGL7vcQroTB8o1+bHOZndpn+y3YdaLyW1GzDBKzupjA9oj axFgVOOEew7dJ/Uz0JNPWu1rv9a3MhJxNILabroCh+Zs8LIhuYrTktu6ljiNwd8+kp+C ekVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=nbqgxv/h5SeSHOXMolpp1BPamIvzkqESgLDvhPwqMhU=; b=A16mSV5cUVnupwjxX3zz3MVv0Auc1NyCBMR0e9T0Uj2pVx5C5oHumcRjvOmdtziR7y btRihZ9Tka9q12oS76STIx0aQWyC63ExhfWKMgyPT03CMCxRwWaXyevEuIEWBxywXjSn 6Ve34HM3OW+JRrcRrwlrlNiDQLgyj9+O3NCn9Hqk+0FLrfgiOHRyHY6vryoRkSv+prZt mYL/wlOC+SMRMcsg72Pf+UzgiPc8KEJUjLc17chDQwB8SRxyIyXcYdpGeHKGUu8s1itS zYe3MUv3yzld8ksD0fKhopsiOUkNrZgxl1wKlo5aX1w6n9JBsOOWPqywwQaaZWe2uOQh hpwg== X-Gm-Message-State: AOAM533OK0/Cj9Jr9sjAuLQZkV+fwj8gNhByb2WioHkj9EkxCv1vbRa8 C0H49/yBhAR+U6b34/P0JYvcjcYSAHE= X-Google-Smtp-Source: ABdhPJyNcZ5EJA4eLpDENaVjpjfmWTUn7NaB1GxtAlwE27Hcf1R33YPb6lzXpJNzB9cCUKkhmuZ2AQ== X-Received: by 2002:a2e:9cc2:: with SMTP id g2mr7060773ljj.442.1595146088632; Sun, 19 Jul 2020 01:08:08 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:08 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 04/19] backlight: improve backlight_properties documentation Date: Sun, 19 Jul 2020 10:07:28 +0200 Message-Id: <20200719080743.8560-5-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Improve the documentation for backlight_properties and adapt it to kernel-doc style. v3: - Added missing '@' in kernel-doc v2: - Added into for each field (Daniel) - Re-written some parts to explain what to do, rather than what not to do. Partly based on suggestions from the review (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 96 ++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 11 deletions(-) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index dfb43ee02ea0..10518b00b059 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -117,28 +117,102 @@ struct backlight_ops { int (*check_fb)(struct backlight_device *bd, struct fb_info *info); }; -/* This structure defines all the properties of a backlight */ +/** + * struct backlight_properties - backlight properties + * + * This structure defines all the properties of a backlight. + */ struct backlight_properties { - /* Current User requested brightness (0 - max_brightness) */ + /** + * @brightness: The current brightness requested by the user. + * + * The backlight core makes sure the range is (0 to max_brightness) + * when the brightness is set via the sysfs attribute: + * /sys/class/backlight//brightness. + * + * This value can be set in the backlight_properties passed + * to devm_backlight_device_register() to set a default brightness + * value. + */ int brightness; - /* Maximal value for brightness (read-only) */ + + /** + * @max_brightness: The maximum brightness value. + * + * This value must be set in the backlight_properties passed to + * devm_backlight_device_register() and shall not be modified by the + * driver after registration. + */ int max_brightness; - /* Current FB Power mode (0: full on, 1..3: power saving - modes; 4: full off), see FB_BLANK_XXX */ + + /** + * @power: The current power mode. + * + * User space can configure the power mode using the sysfs + * attribute: /sys/class/backlight//bl_power + * When the power property is updated update_status() is called. + * + * The possible values are: (0: full on, 1 to 3: power saving + * modes; 4: full off), see FB_BLANK_XXX. + * + * When the backlight device is enabled @power is set + * to FB_BLANK_UNBLANK. When the backlight device is disabled + * @power is set to FB_BLANK_POWERDOWN. + */ int power; - /* FB Blanking active? (values as for power) */ - /* Due to be removed, please use (state & BL_CORE_FBBLANK) */ + + /** + * @fb_blank: The power state from the FBIOBLANK ioclt. + * + * When the FBIOBLANK ioctl is called @fb_blank is set to the + * blank parameter and the update_status() operation is called. + * + * When the backlight device is enabled @fb_blank is set + * to FB_BLANK_UNBLANK. When the backlight device is disabled + * @fb_blank is set to FB_BLANK_POWERDOWN. + * + * Backlight drivers should avoid using this property. It has been + * replaced by state & BL_CORE_FBLANK (although most drivers should + * use backlight_is_blank() as the preferred means to get the blank + * state). + * + * fb_blank is deprecated and will be removed. + */ int fb_blank; - /* Backlight type */ + + /** + * @type: The type of backlight supported. + * + * The backlight type allows userspace to make appropriate + * policy desicions based on the backlight type. + * + * This value must be set in the backlight_properties + * passed to devm_backlight_device_register(). + */ enum backlight_type type; - /* Flags used to signal drivers of state changes */ + + /** + * @state: The state of the backlight core. + * + * The state is a bitmask. BL_CORE_FBBLANK is set when the display + * is expected to be blank. BL_CORE_SUSPENDED is set when the + * driver is suspended. + * + * backlight drivers are excpected to use backlight_is_blank() + * in their update_status() operation rather than reading the + * state property. + * + * The state is maintained by the core and drivers may not modify it. + */ unsigned int state; - /* Type of the brightness scale (linear, non-linear, ...) */ - enum backlight_scale scale; #define BL_CORE_SUSPENDED (1 << 0) /* backlight is suspended */ #define BL_CORE_FBBLANK (1 << 1) /* backlight is under an fb blank event */ + /** + * @scale: The type of the brightness scale. + */ + enum backlight_scale scale; }; struct backlight_device { From patchwork Sun Jul 19 08:07:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672243 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1CB8160D for ; Sun, 19 Jul 2020 08:08:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 010822080D for ; Sun, 19 Jul 2020 08:08:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ORygfOwP" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726182AbgGSIIM (ORCPT ); Sun, 19 Jul 2020 04:08:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIM (ORCPT ); Sun, 19 Jul 2020 04:08:12 -0400 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9009BC0619D2; Sun, 19 Jul 2020 01:08:11 -0700 (PDT) Received: by mail-lj1-x241.google.com with SMTP id e4so17046033ljn.4; Sun, 19 Jul 2020 01:08:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3RUcaJY6Imga7z9yjmxNnpcAkotzVScUomdFLYOnGvQ=; b=ORygfOwPHmGDiAfidvtA6gezYW5vN+4TFXkhd7ENSWtDtuX32rd3n0xclJyZIlbRTS +wULYZiS5p0NFmiGibWftuzufX9MjwgsctIHUR5z3tT58wkoWlyJ/nF56YsdG1SrFwO+ VSjDelJugBlHMTCIXV51Zuij6OCPS7Jg7Z8Uvl7RvwhVGUwrg8/DNMZSLEcCUTj2dz4d YdIUXrVzei9PVbBd2KeloJPXM/zA7vSPNRAsbBim8BX/BP+nIw4C2DGNC+OJ7zpzfhiX sMYMBXAHrWzIFi18epUdKMy2TYq2oJgp5SZlo6lJlJ1Qp85g4cz7i9OuKxF9vcHzrPI1 rOZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3RUcaJY6Imga7z9yjmxNnpcAkotzVScUomdFLYOnGvQ=; b=tIeqXcjUXu4P4T4dJnfu2aVw+UuEYcG8UaTb/Fdvt51AxnWk661lCitfxCLzSNpmrC w6OB5S/hO1KVf0y32xY+i3bMZ0k3xw/Gb6re/Ku1RJjox/FWhNAREXgLzO8aTBz+f1A0 FXEdbvoEqVh0pdv6VVnvMz+LItJG10C+2Bq6Rro04nZ1l0PvPhEvzZKY+VYE+5ZM9U4C SONIoUgaeStOX6U0WJbuWgkbdgiRmLd7dkDMcAsp/kVRoIuOv+PO8k5wmXhzuzD56rds KA2hOPK8wXvktMWJdiL5SGVeEEsXmfEcjHu6Xoc4Sqo5Wr7FRtoTEy0popk51JN1Y6sQ Lysg== X-Gm-Message-State: AOAM530nw2MeJQuR8gkBjnmKLjrwXfddsU8JIgGncrCR+FwmK5c0Jum4 AQIsQHL+Wqq5aAiAHQYyx3c= X-Google-Smtp-Source: ABdhPJyyI/K6d3HgjhDDL7/rXHjc87MBW3+ZW7H3JRwctBUSNP94o7t67Tm6hLZJj1AfCgMxVfSpnQ== X-Received: by 2002:a2e:91c4:: with SMTP id u4mr8257366ljg.20.1595146090059; Sun, 19 Jul 2020 01:08:10 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:09 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 05/19] backlight: improve backlight_device documentation Date: Sun, 19 Jul 2020 10:07:29 +0200 Message-Id: <20200719080743.8560-6-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Improve the documentation for backlight_device and adapt it to kernel-doc style. The updated documentation is more strict on how locking is used. With the update neither update_lock nor ops_lock may be used outside the backlight core. This restriction was introduced to keep the locking simple by keeping it in the core. It was verified that this documents the current state by renaming update_lock => bl_update_lock and ops_lock => bl_ops_lock. The rename did not reveal any uses outside the backlight core. The rename is NOT part of this patch. v3: - Update changelog to explain locking details (Daniel) v2: - Add short intro to all fields (Daniel) - Updated description of update_lock (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Emil Velikov Reviewed-by: Daniel Thompson Reviewed-by: Jingoo Han Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 72 ++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 10518b00b059..7654fe5f1589 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -14,21 +14,6 @@ #include #include -/* Notes on locking: - * - * backlight_device->ops_lock is an internal backlight lock protecting the - * ops pointer and no code outside the core should need to touch it. - * - * Access to update_status() is serialised by the update_lock mutex since - * most drivers seem to need this and historically get it wrong. - * - * Most drivers don't need locking on their get_brightness() method. - * If yours does, you need to implement it in the driver. You can use the - * update_lock mutex if appropriate. - * - * Any other use of the locks below is probably wrong. - */ - enum backlight_update_reason { BACKLIGHT_UPDATE_HOTKEY, BACKLIGHT_UPDATE_SYSFS, @@ -215,30 +200,71 @@ struct backlight_properties { enum backlight_scale scale; }; +/** + * struct backlight_device - backlight device data + * + * This structure holds all data required by a backlight device. + */ struct backlight_device { - /* Backlight properties */ + /** + * @props: Backlight properties + */ struct backlight_properties props; - /* Serialise access to update_status method */ + /** + * @update_lock: The lock used when calling the update_status() operation. + * + * update_lock is an internal backlight lock that serialise access + * to the update_status() operation. The backlight core holds the update_lock + * when calling the update_status() operation. The update_lock shall not + * be used by backlight drivers. + */ struct mutex update_lock; - /* This protects the 'ops' field. If 'ops' is NULL, the driver that - registered this device has been unloaded, and if class_get_devdata() - points to something in the body of that driver, it is also invalid. */ + /** + * @ops_lock: The lock used around everything related to backlight_ops. + * + * ops_lock is an internal backlight lock that protects the ops pointer + * and is used around all accesses to ops and when the operations are + * invoked. The ops_lock shall not be used by backlight drivers. + */ struct mutex ops_lock; + + /** + * @ops: Pointer to the backlight operations. + * + * If ops is NULL, the driver that registered this device has been unloaded, + * and if class_get_devdata() points to something in the body of that driver, + * it is also invalid. + */ const struct backlight_ops *ops; - /* The framebuffer notifier block */ + /** + * @fb_notif: The framebuffer notifier block + */ struct notifier_block fb_notif; - /* list entry of all registered backlight devices */ + /** + * @entry: List entry of all registered backlight devices + */ struct list_head entry; + /** + * @dev: Parent device. + */ struct device dev; - /* Multiple framebuffers may share one backlight device */ + /** + * @fb_bl_on: The state of individual fbdev's. + * + * Multiple fbdev's may share one backlight device. The fb_bl_on + * records the state of the individual fbdev. + */ bool fb_bl_on[FB_MAX]; + /** + * @use_count: The number of uses of fb_bl_on. + */ int use_count; }; From patchwork Sun Jul 19 08:07:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672245 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 47F0060D for ; Sun, 19 Jul 2020 08:08:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2AF132173E for ; Sun, 19 Jul 2020 08:08:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fH3SGUi6" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726219AbgGSIIO (ORCPT ); Sun, 19 Jul 2020 04:08:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIO (ORCPT ); Sun, 19 Jul 2020 04:08:14 -0400 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0096C0619D2; Sun, 19 Jul 2020 01:08:12 -0700 (PDT) Received: by mail-lj1-x244.google.com with SMTP id d17so17062487ljl.3; Sun, 19 Jul 2020 01:08:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=76GYwHJgmpg1D+ufO0JSzMv0fcAJAUH2Ai/nlDiORJQ=; b=fH3SGUi6PCNnnzkTN7BquDl+u2btMvTf81oi3LU+7FneCF2MCGfqc7CKzni3O2OX6L KWnF534GMBpMZGFDjscLbUeFGk1AuYP5sDRxPStQJgp6W+Mh+rN6Ja54z6uvnAZ5LBUk DviY2+kn/YsIwezhGuLxaL4k5PJORjV3yCT3lcPcnNX4/ZWxydT9svNvr+OkZmHalkx5 vNpnpvg/lvJ7ZneIWDRrAvn5/Ng18ORLvC8Y9AKo2Nmwla7p+pT59d+uqegZZftgP+pJ kU4hss2AXLRGa5XO+M5rcOQvYA8MvVuHPG3mQWa+jRoB6vaNtZFm6PgQDcBfS8VcMidK dSlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=76GYwHJgmpg1D+ufO0JSzMv0fcAJAUH2Ai/nlDiORJQ=; b=TW5bR82FuQcHZKPpx8D/hsbCu36J6wNMrL0T0UuEHexNif6u+SS9pP1qx/MjnCzXfD nXR42LkFPCkZ3xsUUsHyTZrFbYI+z4BtdpuiCjIeQECnSBFDV7w1mwOBMu3mHSy/1OLA 8Y2cDv/D8kZWrZrzk0fua32p5bqzBiK7b31TjMgtZrq5BLbtssavVFLSTr/xbdxnbZtV 01bzC8oyl1M6ybZFlZ2YWzjtKDaiMMNPq7tPqEcIknPmcLZo8yrf56pCA3FbMMi0ffX4 iyiAkM5ddnll1w4tdp9EhFMV1CwDtVfUjoTTDKa3yhDO9zn6U+AkB8btBdSBxPDTwPdA DE/w== X-Gm-Message-State: AOAM532sOphLN0MRrYkHUJOAwwWJrXwWQ7H6GfXnhky5Sg7JaKdAn/8Z yNh6KHhRiZLsA9olLhDplRA= X-Google-Smtp-Source: ABdhPJwYCyvEJr4JKQu2wAiVlSR8RATflYb7drCCKaX0jVaBWgPcevLelVojOMKCgG3v5B+FO+PQvg== X-Received: by 2002:a05:651c:1b6:: with SMTP id c22mr6893563ljn.421.1595146091482; Sun, 19 Jul 2020 01:08:11 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:11 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 06/19] backlight: document inline functions in backlight.h Date: Sun, 19 Jul 2020 10:07:30 +0200 Message-Id: <20200719080743.8560-7-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Add documentation for the inline functions in backlight.h v2: - Fix spelling (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 7654fe5f1589..7d6cb61e10f5 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -268,6 +268,10 @@ struct backlight_device { int use_count; }; +/** + * backlight_update_status - force an update of the backlight device status + * @bd: the backlight device + */ static inline int backlight_update_status(struct backlight_device *bd) { int ret = -ENOENT; @@ -361,6 +365,18 @@ extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev) +/** + * bl_get_data - access devdata + * @bl_dev: pointer to backlight device + * + * When a backlight device is registered the driver has the possibility + * to supply a void * devdata. bl_get_data() return a pointer to the + * devdata. + * + * RETURNS: + * + * pointer to devdata stored while registering the backlight device. + */ static inline void * bl_get_data(struct backlight_device *bl_dev) { return dev_get_drvdata(&bl_dev->dev); From patchwork Sun Jul 19 08:07:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672249 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C216C1667 for ; Sun, 19 Jul 2020 08:08:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ABBCA2080D for ; Sun, 19 Jul 2020 08:08:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rTe9EDHI" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726274AbgGSIIP (ORCPT ); Sun, 19 Jul 2020 04:08:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59480 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIO (ORCPT ); Sun, 19 Jul 2020 04:08:14 -0400 Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CFEAC0619D4; Sun, 19 Jul 2020 01:08:14 -0700 (PDT) Received: by mail-lf1-x143.google.com with SMTP id y13so8178189lfe.9; Sun, 19 Jul 2020 01:08:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vYmiCB0MtpvvbRewOLH7Fp+n6izpRPTScgvaYJf2yds=; b=rTe9EDHIqjM1Y00rFLXvWizwbnluID02ic9eaNLptmDFg1+P+fR85RzF9W3iqnSjrp rCAolR1X67UJVyrkwypTtwh1c+lvqmS/8tRTQiqnBh4P+84UR3qzXt1GIpuVHM59GbIC Odgy2JF9olhe400rEGFfSokVU0Gwga/Np+PPRwYPcd9r4JJkw7a2/plpVdnw4W0+r998 TiJLttDKR2aUOK8450vjW2R+KtW1jsrP2+brgSikBVG3kz/iIwiWmnhsHTVOgReqHPv4 s1MJgRYy2lERhU62sGp4Zw7iVSlo9iFz4fa/ppCcRNjkCDoOpAf31wI+t04ksGEtt96p eYkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=vYmiCB0MtpvvbRewOLH7Fp+n6izpRPTScgvaYJf2yds=; b=fQvhM+k5jdS3r1QNal8Wcf7DHucH8dO4iZchrgZRCvYFD1II/b5WWghmBcvwjygzmW OH2u6IX3Qg/VzomJVP/fYa+5eqM5yWeba+1IKpegwfWiZjt2D9SSNB61imvr3m0fR/PZ X2BstwkzE0N4PFRwdp5lUSvP6nPFeIYJDaue8MeUmNoiq+uBIq+M3Qs4CKC5Eyxa2F0D +jiLxzwFb1bx/SSkVv/kvdgTysC7ip0RrgLqlOxPUtzm2iuOJixnVt45ZQfd0McB7PvH XCVc06q1xBc7Zbh3bEm17kx3Bi44O/2/1h8aECGoLLXHkxshOazRLEUwoPo8Fes34SmJ zVmg== X-Gm-Message-State: AOAM531+N0xLQjDALWEJGX/mGay8IVxXUR2U3jwkzpZQfuLYEgmxA1+M AL+ZFKvHbbRL7VxivFlrwGc= X-Google-Smtp-Source: ABdhPJy5cVGtNAuiTzKiKirU3wZgRjcJT9PYjTM+yqqzPVpq8sqJDG+GwWU81AtzClvSAXr+4RCc3A== X-Received: by 2002:a05:6512:1105:: with SMTP id l5mr8207304lfg.76.1595146092914; Sun, 19 Jul 2020 01:08:12 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:12 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 07/19] backlight: document enums in backlight.h Date: Sun, 19 Jul 2020 10:07:31 +0200 Message-Id: <20200719080743.8560-8-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Add kernel-doc documentation for the backlight enums v2: - Add intro to each enum member (Daniel) Except backlight type as line lenght was too long. The generated HTML is the same. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 7d6cb61e10f5..0f425b32e6be 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -14,26 +14,98 @@ #include #include +/** + * enum backlight_update_reason - what method was used to update backlight + * + * A driver indicates the method (reason) used for updating the backlight + * when calling backlight_force_update(). + */ enum backlight_update_reason { + /** + * @BACKLIGHT_UPDATE_HOTKEY: The backlight was updated using a hot-key. + */ BACKLIGHT_UPDATE_HOTKEY, + + /** + * @BACKLIGHT_UPDATE_SYSFS: The backlight was updated using sysfs. + */ BACKLIGHT_UPDATE_SYSFS, }; +/** + * enum backlight_type - the type of backlight control + * + * The type of interface used to control the backlight. + */ enum backlight_type { + /** + * @BACKLIGHT_RAW: + * + * The backlight is controlled using hardware registers. + */ BACKLIGHT_RAW = 1, + + /** + * @BACKLIGHT_PLATFORM: + * + * The backlight is controlled using a platform-specific interface. + */ BACKLIGHT_PLATFORM, + + /** + * @BACKLIGHT_FIRMWARE: + * + * The backlight is controlled using a standard firmware interface. + */ BACKLIGHT_FIRMWARE, + + /** + * @BACKLIGHT_TYPE_MAX: Number of entries. + */ BACKLIGHT_TYPE_MAX, }; +/** + * enum backlight_notification - the type of notification + * + * The notifications that is used for notification sent to the receiver + * that registered notifications using backlight_register_notifier(). + */ enum backlight_notification { + /** + * @BACKLIGHT_REGISTERED: The backlight device is registered. + */ BACKLIGHT_REGISTERED, + + /** + * @BACKLIGHT_UNREGISTERED: The backlight revice is unregistered. + */ BACKLIGHT_UNREGISTERED, }; +/** enum backlight_scale - the type of scale used for brightness values + * + * The type of scale used for brightness values. + */ enum backlight_scale { + /** + * @BACKLIGHT_SCALE_UNKNOWN: The scale is unknown. + */ BACKLIGHT_SCALE_UNKNOWN = 0, + + /** + * @BACKLIGHT_SCALE_LINEAR: The scale is linear. + * + * The linear scale will increase brightness the same for each step. + */ BACKLIGHT_SCALE_LINEAR, + + /** + * @BACKLIGHT_SCALE_NON_LINEAR: The scale is not linear. + * + * This is often used when the brightness values tries to adjust to + * the relative perception of the eye demanding a non-linear scale. + */ BACKLIGHT_SCALE_NON_LINEAR, }; From patchwork Sun Jul 19 08:07:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672251 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 489A1913 for ; Sun, 19 Jul 2020 08:08:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2BB6D207FC for ; Sun, 19 Jul 2020 08:08:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="relhOJV2" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726301AbgGSIIQ (ORCPT ); Sun, 19 Jul 2020 04:08:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIQ (ORCPT ); Sun, 19 Jul 2020 04:08:16 -0400 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4BD3C0619D2; Sun, 19 Jul 2020 01:08:15 -0700 (PDT) Received: by mail-lj1-x241.google.com with SMTP id d17so17062539ljl.3; Sun, 19 Jul 2020 01:08:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3pU79wxtbww6roS9uIbXD9qGkU3KQAUXqY3ZtmbUmbU=; b=relhOJV2rBxQLvDKZwQVhMUEHY42VOn3ztsnziT4XtJ55o0g32FOErD9/M5EMX1E8M 8750tZNld6pc2HNrK5KnKXjVVFHGl0WYKnI6njuQ94djfHBOOSXlkTdZSzdAm6fO6Cc7 0Hu76sVQK0LT2lz03iXHOwDHJ0pmWxnZX+gO4rJ3acPwkCpSs/XZya7ULdEhl6nIOIWR ZSf2lR9G+vnky8Vh85TI1aNucMtVot4x77UKZzBerjkfi+N+3HyhuhqudG6Sb5xbOds3 o4hoWGFJxrsR4c5dZSNV9cqMEjyAXM4CvwpNoahscpV126jEA6cQVlEQOjMf9hy9MwaG LyQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3pU79wxtbww6roS9uIbXD9qGkU3KQAUXqY3ZtmbUmbU=; b=sY97PkcGDv5dAG3JqceY+BEvBwoqQThQpnYgg/11hbmB/mvGDo+H+zkstPgethnMS3 jZMrrTRhAAGJk3dprs3zpT0v1JG4wwqiH4gK/aoXoMiVK7EEDMiXTgnvom7tcyDYyAGT j35syUAdx2lSOcARRqS1N6x/LXSNOgID2Bk4IWTeHk0VbwocNuU59Tt9WYeA/jYRxOJV EfMkjsfre70Ior4Dej031EPDIkfknilB13M/uHX8Rd8SWAt04IXfoNg8JxLi4dxbeZ8W rGrKUC6qGyDWfXtkaLPprWGofoTibA76gfWJCSchhMdNQx5Z9d73/8DIG+adkyodBKXm wSvQ== X-Gm-Message-State: AOAM530y2GOsM+yzu5eb/0ONAjASbPjiDICwxbVQ4HHcd3xuqPiocjzL i4hh3sFJDClDKDCgv7f2sW/o/W9PSqQ= X-Google-Smtp-Source: ABdhPJzqNdoC/a3lNcJPXSd+9XgjSCt9m/i8prqNnvnlNwScJeKMqoODjJ+wDiBuy2XG4kfa9Y9ZNg== X-Received: by 2002:a05:651c:1105:: with SMTP id d5mr8323213ljo.62.1595146094366; Sun, 19 Jul 2020 01:08:14 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:13 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 08/19] backlight: remove the unused backlight_bl driver Date: Sun, 19 Jul 2020 10:07:32 +0200 Message-Id: <20200719080743.8560-9-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The backlight_bl driver required initialization using struct generic_bl_info. As there are no more references to this struct there is no users left. So it is safe to delete the driver. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/Kconfig | 8 -- drivers/video/backlight/Makefile | 1 - drivers/video/backlight/generic_bl.c | 110 --------------------------- include/linux/backlight.h | 9 --- 4 files changed, 128 deletions(-) delete mode 100644 drivers/video/backlight/generic_bl.c diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig index 95c546cc8774..87f9fc238d28 100644 --- a/drivers/video/backlight/Kconfig +++ b/drivers/video/backlight/Kconfig @@ -173,14 +173,6 @@ config BACKLIGHT_EP93XX To compile this driver as a module, choose M here: the module will be called ep93xx_bl. -config BACKLIGHT_GENERIC - tristate "Generic (aka Sharp Corgi) Backlight Driver" - default y - help - Say y to enable the generic platform backlight driver previously - known as the Corgi backlight driver. If you have a Sharp Zaurus - SL-C7xx, SL-Cxx00 or SL-6000x say y. - config BACKLIGHT_IPAQ_MICRO tristate "iPAQ microcontroller backlight driver" depends on MFD_IPAQ_MICRO diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile index 2072d21b60f7..13463b99f1f9 100644 --- a/drivers/video/backlight/Makefile +++ b/drivers/video/backlight/Makefile @@ -31,7 +31,6 @@ obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o obj-$(CONFIG_BACKLIGHT_DA903X) += da903x_bl.o obj-$(CONFIG_BACKLIGHT_DA9052) += da9052_bl.o obj-$(CONFIG_BACKLIGHT_EP93XX) += ep93xx_bl.o -obj-$(CONFIG_BACKLIGHT_GENERIC) += generic_bl.o obj-$(CONFIG_BACKLIGHT_GPIO) += gpio_backlight.o obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o obj-$(CONFIG_BACKLIGHT_HP700) += jornada720_bl.o diff --git a/drivers/video/backlight/generic_bl.c b/drivers/video/backlight/generic_bl.c deleted file mode 100644 index 8fe63dbc8590..000000000000 --- a/drivers/video/backlight/generic_bl.c +++ /dev/null @@ -1,110 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Generic Backlight Driver - * - * Copyright (c) 2004-2008 Richard Purdie - */ - -#include -#include -#include -#include -#include -#include -#include - -static int genericbl_intensity; -static struct backlight_device *generic_backlight_device; -static struct generic_bl_info *bl_machinfo; - -static int genericbl_send_intensity(struct backlight_device *bd) -{ - int intensity = bd->props.brightness; - - if (bd->props.power != FB_BLANK_UNBLANK) - intensity = 0; - if (bd->props.state & BL_CORE_FBBLANK) - intensity = 0; - if (bd->props.state & BL_CORE_SUSPENDED) - intensity = 0; - - bl_machinfo->set_bl_intensity(intensity); - - genericbl_intensity = intensity; - - if (bl_machinfo->kick_battery) - bl_machinfo->kick_battery(); - - return 0; -} - -static int genericbl_get_intensity(struct backlight_device *bd) -{ - return genericbl_intensity; -} - -static const struct backlight_ops genericbl_ops = { - .options = BL_CORE_SUSPENDRESUME, - .get_brightness = genericbl_get_intensity, - .update_status = genericbl_send_intensity, -}; - -static int genericbl_probe(struct platform_device *pdev) -{ - struct backlight_properties props; - struct generic_bl_info *machinfo = dev_get_platdata(&pdev->dev); - const char *name = "generic-bl"; - struct backlight_device *bd; - - bl_machinfo = machinfo; - if (!machinfo->limit_mask) - machinfo->limit_mask = -1; - - if (machinfo->name) - name = machinfo->name; - - memset(&props, 0, sizeof(struct backlight_properties)); - props.type = BACKLIGHT_RAW; - props.max_brightness = machinfo->max_intensity; - bd = devm_backlight_device_register(&pdev->dev, name, &pdev->dev, - NULL, &genericbl_ops, &props); - if (IS_ERR(bd)) - return PTR_ERR(bd); - - platform_set_drvdata(pdev, bd); - - bd->props.power = FB_BLANK_UNBLANK; - bd->props.brightness = machinfo->default_intensity; - backlight_update_status(bd); - - generic_backlight_device = bd; - - dev_info(&pdev->dev, "Generic Backlight Driver Initialized.\n"); - return 0; -} - -static int genericbl_remove(struct platform_device *pdev) -{ - struct backlight_device *bd = platform_get_drvdata(pdev); - - bd->props.power = 0; - bd->props.brightness = 0; - backlight_update_status(bd); - - dev_info(&pdev->dev, "Generic Backlight Driver Unloaded\n"); - return 0; -} - -static struct platform_driver genericbl_driver = { - .probe = genericbl_probe, - .remove = genericbl_remove, - .driver = { - .name = "generic-bl", - }, -}; - -module_platform_driver(genericbl_driver); - -MODULE_AUTHOR("Richard Purdie "); -MODULE_DESCRIPTION("Generic Backlight Driver"); -MODULE_LICENSE("GPL"); diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 0f425b32e6be..8f2005a6f8a9 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -454,15 +454,6 @@ static inline void * bl_get_data(struct backlight_device *bl_dev) return dev_get_drvdata(&bl_dev->dev); } -struct generic_bl_info { - const char *name; - int max_intensity; - int default_intensity; - int limit_mask; - void (*set_bl_intensity)(int intensity); - void (*kick_battery)(void); -}; - #ifdef CONFIG_OF struct backlight_device *of_find_backlight_by_node(struct device_node *node); #else From patchwork Sun Jul 19 08:07:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672255 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A583560D for ; Sun, 19 Jul 2020 08:08:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8ECF1207FC for ; Sun, 19 Jul 2020 08:08:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DrMCaLN7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726312AbgGSIIS (ORCPT ); Sun, 19 Jul 2020 04:08:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIR (ORCPT ); Sun, 19 Jul 2020 04:08:17 -0400 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5DAFAC0619D2; Sun, 19 Jul 2020 01:08:17 -0700 (PDT) Received: by mail-lj1-x244.google.com with SMTP id x9so17028880ljc.5; Sun, 19 Jul 2020 01:08:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QMIhGECQ39mxsFBNf2RZfIR0vNjqITM52PNfMW2B2fM=; b=DrMCaLN734Ri4P8SqhdAMQEzdVLEPUC0MbptJBkJOnJWDe8EH1rk+SQWDmT3yoWYvs 7KqXeMmpHxTy9CDma8rd9kRmSY5z/Okp5TWV+MjNhlmA5gK0FAhVYtv4WcKOFlnPzNF1 3BbrfZ/FgOljtsOUcVipDIjOHZE+o7twRqZFPcUCa9eS1gfikEY6L+edCgRcECKJzBNu dXaUbib8vR9jC3nECUUdBjiLzCf8XuMa0Y9SJ6v4i7X7PSssefA6DANpkmRPkDGHgi6A mNqr00GuAbVbEq04HWnjnV0DZguN3vK5OlGYOG78UbW631bJBUoeGTD8Nqrp9qPKPn6i TWTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=QMIhGECQ39mxsFBNf2RZfIR0vNjqITM52PNfMW2B2fM=; b=UJQKloptQ5RYY9MMfBqe7JJtuIEPH5PF/XVGHKcOgRAx1yskVrHj5+r9LSG85MzVWR jgG4XQ+qB4TF+fBUEZPQUwRn1+IDMi0RPSGUa3dspkDt0SF1MHFRQArJDvFsdlHKF2aa K4iS824n3/8pkxvP2RzMteED0hHJyMQGC6gd2D5MH2kiMcPn8XqZ/ehnoajNofGZ1dld pIcUTJW64hTtb8dlHwdWuq2yKyTPKT8sxAp6bt7G9fxKGwopk3rcjVbBXa3lQjJxzMtb ShU8ImUvh/dZdRMU+M0tGJF26ZyGH2z8U4OBssTgKzcspxejEb6NGN/CFQOpBmRmHoV5 sAwg== X-Gm-Message-State: AOAM530D4zYSAsNtjqlaYko3zbtYSZg5HbuCrnCyOtdGZ3XjkcUFk84e YDQpG5wbmalOwePu73/lB8s= X-Google-Smtp-Source: ABdhPJykvLiMLexX3kWmPLDd9DX4t2wM3QhET+M7lM4xMxR7y0hTe4TGEX4+xcoiOxnSENfu2ss8sQ== X-Received: by 2002:a2e:9ac4:: with SMTP id p4mr8270437ljj.143.1595146095864; Sun, 19 Jul 2020 01:08:15 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:15 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 09/19] backlight: drop extern from prototypes Date: Sun, 19 Jul 2020 10:07:33 +0200 Message-Id: <20200719080743.8560-10-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org No need to put "extern" in front of prototypes. While touching the prototypes adjust indent to follow the kernel style. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 8f2005a6f8a9..c6ac4cbb9ddb 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -417,23 +417,26 @@ static inline bool backlight_is_blank(const struct backlight_device *bd) bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK); } -extern struct backlight_device *backlight_device_register(const char *name, - struct device *dev, void *devdata, const struct backlight_ops *ops, - const struct backlight_properties *props); -extern struct backlight_device *devm_backlight_device_register( - struct device *dev, const char *name, struct device *parent, - void *devdata, const struct backlight_ops *ops, - const struct backlight_properties *props); -extern void backlight_device_unregister(struct backlight_device *bd); -extern void devm_backlight_device_unregister(struct device *dev, - struct backlight_device *bd); -extern void backlight_force_update(struct backlight_device *bd, - enum backlight_update_reason reason); -extern int backlight_register_notifier(struct notifier_block *nb); -extern int backlight_unregister_notifier(struct notifier_block *nb); -extern struct backlight_device *backlight_device_get_by_type(enum backlight_type type); +struct backlight_device * +backlight_device_register(const char *name, struct device *dev, void *devdata, + const struct backlight_ops *ops, + const struct backlight_properties *props); +struct backlight_device * +devm_backlight_device_register(struct device *dev, const char *name, + struct device *parent, void *devdata, + const struct backlight_ops *ops, + const struct backlight_properties *props); +void backlight_device_unregister(struct backlight_device *bd); +void devm_backlight_device_unregister(struct device *dev, + struct backlight_device *bd); +void backlight_force_update(struct backlight_device *bd, + enum backlight_update_reason reason); +int backlight_register_notifier(struct notifier_block *nb); +int backlight_unregister_notifier(struct notifier_block *nb); struct backlight_device *backlight_device_get_by_name(const char *name); -extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned long brightness); +struct backlight_device *backlight_device_get_by_type(enum backlight_type type); +int backlight_device_set_brightness(struct backlight_device *bd, + unsigned long brightness); #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev) From patchwork Sun Jul 19 08:07:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672257 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 417BD60D for ; Sun, 19 Jul 2020 08:08:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 12595207FC for ; Sun, 19 Jul 2020 08:08:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FtF2pRbS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726388AbgGSIIT (ORCPT ); Sun, 19 Jul 2020 04:08:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIT (ORCPT ); Sun, 19 Jul 2020 04:08:19 -0400 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7504C0619D2; Sun, 19 Jul 2020 01:08:18 -0700 (PDT) Received: by mail-lj1-x244.google.com with SMTP id q7so17078650ljm.1; Sun, 19 Jul 2020 01:08:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=O4c9ly/L0FfgYEmNUVRjqrtL59zDVgm0wx/HOjFcQ3I=; b=FtF2pRbS5DQLXCD2a1YTmqhhahX6eGlpeO6iEjEHi22mGxNzv0K2je1AEjF28GvsBJ j2AXGJx3nvqDZsOgaBF39c8XucfX58qVEXwkyluUgJrpgaMK3mczQ0LNbNa7xZOZKC71 oH4pr15thIrbA+cmy76KaX+QamzLIhP2ymktDPUIsZ6Q/nZcRlKFtgjmm/3Sl5gnD83C I1ooVip9cKYmUSVWH8vyVt2RgfXTbVoAjrnjrZm6tfkTbTprpVpw4YqfsA95Tmp68HK6 D90XSlm2RdZQURxYim19ty8aLRjrCBA3nm+CbswQ9eG00C13xZ1NfKQInV2M3uf8vdN3 5zkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=O4c9ly/L0FfgYEmNUVRjqrtL59zDVgm0wx/HOjFcQ3I=; b=PGmuzMsJ+sTI+RmXepXPYitwgdGeH0mOCf3EfabIp9eS15mFSZoEr+VkOeU6o52ihS pqR5c/u7s6xYKbZ5RhA3JiLVirHM9zyFx4mBIO+IDstQPy2x2kJyC3sZyjCDOSr2NbTt IHjtEWbr7BaEM96hZEynLi2vhdlm5Hkh5bAEa98CI04QMc2oxEQjElHiEeSaAwW6KxRU N2JcmMQFrcf48+FmQbB2cKkrMxekVnhaRdPY/ALa2k7QWkpfihe8Tq06gwIq2jIPu2iI Fj5QfEkSCcwhm75rtruxctAr05iKXUWSn5zoxPtihUAnIwhCD752mDOl0FD4Mgui400s cw6g== X-Gm-Message-State: AOAM530YatXtNAhXRihH3Gx4VnBltCr5pWsxzFK0JKgqYUi/UWnV59hm 5ycohSrNDnzbg4w8+eaL858= X-Google-Smtp-Source: ABdhPJxQOn3En4bRkcA0sF5fcqezKrehiuhV6m4ZdNBfT6KXer5eDsKaYwKP9d7EBx8S9hJGZ++u+A== X-Received: by 2002:a05:651c:550:: with SMTP id q16mr7594805ljp.188.1595146097319; Sun, 19 Jul 2020 01:08:17 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:16 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 10/19] backlight: add overview and update existing doc Date: Sun, 19 Jul 2020 10:07:34 +0200 Message-Id: <20200719080743.8560-11-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Add overview chapter to backlight.c. Update existing kernel-doc to follow a more consistent style and drop kernel-doc for deprecated functions. v4: - Include updated devm_of_find_backlight doc (was accidently included in a later patch) v3: - Updated a few editorial details (Daniel) v2: - Sevaral editorial corrections that makes reading much easier (Daniel) - Spelling fixes (Daniel) - updated intro chapter with a little more info Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/backlight.c | 140 +++++++++++++++++++--------- 1 file changed, 98 insertions(+), 42 deletions(-) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 18501956dd87..93ae8c63fe4c 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -22,6 +22,47 @@ #include #endif +/** + * DOC: overview + * + * The backlight core supports implementing backlight drivers. + * + * A backlight driver registers a driver using + * devm_backlight_device_register(). The properties of the backlight + * driver such as type and max_brightness must be specified. + * When the core detect changes in for example brightness or power state + * the update_status() operation is called. The backlight driver shall + * implement this operation and use it to adjust backlight. + * + * Several sysfs attributes are provided by the backlight core:: + * + * - brightness R/W, set the requested brightness level + * - actual_brighness RO, the brightness level used by the HW + * - max_brightness RO, the maximum brightness level supported + * + * See Documentation/ABI/stable/sysfs-class-backlight for the full list. + * + * The backlight can be adjusted using the sysfs interface, and + * the backlight driver may also support adjusting backlight using + * a hot-key or some other platfrom or firmware specific way. + * + * The driver must implement the get_brightness() operation if + * the HW do not support all the levels that can be specified in + * brightness, thus providing user-space access to the actual level + * via the actual_brightness attribute. + * + * When the backlight changes this is reported to user-space using + * an uevent connected to the actual_brightness attribute. + * When brightness is set by platform specific means, for example + * a hot-key to adjust backlight, the driver must notify the backlight + * core that brightness has changed using backlight_force_update(). + * + * The backlight driver core receives notifications from fbdev and + * if the event is FB_EVENT_BLANK and if the value of blank, from the + * FBIOBLANK ioclt, results in a change in the backlight state the + * update_status() operation is called. + */ + static struct list_head backlight_dev_list; static struct mutex backlight_dev_list_mutex; static struct blocking_notifier_head backlight_notifier; @@ -40,9 +81,17 @@ static const char *const backlight_scale_types[] = { #if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \ defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)) -/* This callback gets called when something important happens inside a - * framebuffer driver. We're looking if that important event is blanking, - * and if it is and necessary, we're switching backlight power as well ... +/* + * fb_notifier_callback + * + * This callback gets called when something important happens inside a + * framebuffer driver. The backlight core only cares about FB_BLANK_UNBLANK + * which is reported to the driver using backlight_update_status() + * as a state change. + * + * There may be several fbdev's connected to the backlight device, + * in which case they are kept track of. A state change is only reported + * if there is a change in backlight for the specified fbdev. */ static int fb_notifier_callback(struct notifier_block *self, unsigned long event, void *data) @@ -324,7 +373,10 @@ ATTRIBUTE_GROUPS(bl_device); * @reason: reason for update * * Updates the internal state of the backlight in response to a hardware event, - * and generate a uevent to notify userspace + * and generates an uevent to notify userspace. A backlight driver shall call + * backlight_force_update() when the backlight is changed using, for example, + * a hot-key. The updated brightness is read using get_brightness() and the + * brightness value is reported using an uevent. */ void backlight_force_update(struct backlight_device *bd, enum backlight_update_reason reason) @@ -337,20 +389,7 @@ void backlight_force_update(struct backlight_device *bd, } EXPORT_SYMBOL(backlight_force_update); -/** - * backlight_device_register - create and register a new object of - * backlight_device class. - * @name: the name of the new object(must be the same as the name of the - * respective framebuffer device). - * @parent: a pointer to the parent device - * @devdata: an optional pointer to be stored for private driver use. The - * methods may retrieve it by using bl_get_data(bd). - * @ops: the backlight operations structure. - * @props: pointer to backlight's properties structure. - * - * Creates and registers new backlight device. Returns either an - * ERR_PTR() or a pointer to the newly allocated device. - */ +/* deprecated - use devm_backlight_device_register() */ struct backlight_device *backlight_device_register(const char *name, struct device *parent, void *devdata, const struct backlight_ops *ops, const struct backlight_properties *props) @@ -417,6 +456,15 @@ struct backlight_device *backlight_device_register(const char *name, } EXPORT_SYMBOL(backlight_device_register); +/** backlight_device_get_by_type - find first backlight device of a type + * @type: the type of backlight device + * + * Look up the first backlight device of the specified type + * + * RETURNS: + * + * Pointer to backlight device if any was found. Otherwise NULL. + */ struct backlight_device *backlight_device_get_by_type(enum backlight_type type) { bool found = false; @@ -456,12 +504,7 @@ struct backlight_device *backlight_device_get_by_name(const char *name) } EXPORT_SYMBOL(backlight_device_get_by_name); -/** - * backlight_device_unregister - unregisters a backlight device object. - * @bd: the backlight device object to be unregistered and freed. - * - * Unregisters a previously registered via backlight_device_register object. - */ +/* deprecated - use devm_backlight_device_unregister() */ void backlight_device_unregister(struct backlight_device *bd) { if (!bd) @@ -509,10 +552,12 @@ static int devm_backlight_device_match(struct device *dev, void *res, * backlight_register_notifier - get notified of backlight (un)registration * @nb: notifier block with the notifier to call on backlight (un)registration * - * @return 0 on success, otherwise a negative error code - * * Register a notifier to get notified when backlight devices get registered * or unregistered. + * + * RETURNS: + * + * 0 on success, otherwise a negative error code */ int backlight_register_notifier(struct notifier_block *nb) { @@ -524,10 +569,12 @@ EXPORT_SYMBOL(backlight_register_notifier); * backlight_unregister_notifier - unregister a backlight notifier * @nb: notifier block to unregister * - * @return 0 on success, otherwise a negative error code - * * Register a notifier to get notified when backlight devices get registered * or unregistered. + * + * RETURNS: + * + * 0 on success, otherwise a negative error code */ int backlight_unregister_notifier(struct notifier_block *nb) { @@ -536,20 +583,22 @@ int backlight_unregister_notifier(struct notifier_block *nb) EXPORT_SYMBOL(backlight_unregister_notifier); /** - * devm_backlight_device_register - resource managed backlight_device_register() + * devm_backlight_device_register - register a new backlight device * @dev: the device to register * @name: the name of the device - * @parent: a pointer to the parent device + * @parent: a pointer to the parent device (often the same as @dev) * @devdata: an optional pointer to be stored for private driver use * @ops: the backlight operations structure * @props: the backlight properties * - * @return a struct backlight on success, or an ERR_PTR on error + * Creates and registers new backlight device. When a backlight device + * is registered the configuration must be specified in the @props + * parameter. See description of &backlight_properties. * - * Managed backlight_device_register(). The backlight_device returned - * from this function are automatically freed on driver detach. - * See backlight_device_register() for more information. - */ + * RETURNS: + * + * struct backlight on success, or an ERR_PTR on error +*/ struct backlight_device *devm_backlight_device_register(struct device *dev, const char *name, struct device *parent, void *devdata, const struct backlight_ops *ops, @@ -576,13 +625,13 @@ struct backlight_device *devm_backlight_device_register(struct device *dev, EXPORT_SYMBOL(devm_backlight_device_register); /** - * devm_backlight_device_unregister - resource managed backlight_device_unregister() + * devm_backlight_device_unregister - unregister backlight device * @dev: the device to unregister * @bd: the backlight device to unregister * - * Deallocated a backlight allocated with devm_backlight_device_register(). + * Deallocates a backlight allocated with devm_backlight_device_register(). * Normally this function will not need to be called and the resource management - * code will ensure that the resource is freed. + * code will ensure that the resources are freed. */ void devm_backlight_device_unregister(struct device *dev, struct backlight_device *bd) @@ -673,12 +722,19 @@ static void devm_backlight_release(void *data) } /** - * devm_of_find_backlight - Resource-managed of_find_backlight() - * @dev: Device + * devm_of_find_backlight - find backlight for a device + * @dev: the device * - * Device managed version of of_find_backlight(). - * The reference on the backlight device is automatically + * This function looks for a property named 'backlight' on the DT node + * connected to @dev and looks up the backlight device. The lookup is + * device managed so the reference to the backlight device is automatically * dropped on driver detach. + * + * RETURNS: + * + * A pointer to the backlight device if found. + * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight + * device is found. NULL if there's no backlight property. */ struct backlight_device *devm_of_find_backlight(struct device *dev) { From patchwork Sun Jul 19 08:07:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672261 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A452D60D for ; Sun, 19 Jul 2020 08:08:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8C223207EA for ; Sun, 19 Jul 2020 08:08:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HuW3STOj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726389AbgGSIIV (ORCPT ); Sun, 19 Jul 2020 04:08:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIU (ORCPT ); Sun, 19 Jul 2020 04:08:20 -0400 Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com [IPv6:2a00:1450:4864:20::142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D3B9C0619D2; Sun, 19 Jul 2020 01:08:20 -0700 (PDT) Received: by mail-lf1-x142.google.com with SMTP id b30so5883458lfj.12; Sun, 19 Jul 2020 01:08:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wW63XUx9iwsgo3sF+eLJ1EmI31rAQ/9VoQVVmqYGrJA=; b=HuW3STOjnm+5nA7TKFdrHyzBWygB7TYqPWMehFXq2MvpLMqQEL0KGAe5sg2xHurSL7 yTEvfW8rP3bsTWPpPulplN7Wb7PBEHud8WVBnoIB/GPMUQk23NvL3VU4zJ6moNHIDeFl VqJFEgbISll+a9tCrHRVmVtdv8v8aanuM9QJCi4qsjrHtdaWn/5M2/pa6BHxOfK4UZlV V2+3LWiCOLWdJhmAFNRu74uELktGOPi1wf6XpnzVHs1rnwEQ4fiFRa5tUk+9NzAuwFIM +sVPLJJYBc73HiorGIirrriC+eL9Cd7R9NPUpSANVeOFwLamC83wwOcm5BK+h4lHwra7 GfSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=wW63XUx9iwsgo3sF+eLJ1EmI31rAQ/9VoQVVmqYGrJA=; b=sP9byqGmAjH18OJvzmbYS0hjZkaD5yTX9FETLRWqUkYVyY/sgco5BhZwUaKzZ9EYss 28vjs4qWxpvlnVL6+ViSdih5peyjiZaIt+r2UbaOSlBEtdDBwvZIqtdSmGVm4bfxVeTJ tw5/nBBBhh8XcEZOHOflrHVhnE7jLBGnpYvtoOvFBhaz9CBxxRkNhWq7JGQm7QFAapJ3 p3+CR7GnkrUoUY33YfH5MlIaPgk1rP1aTKXhrrqaxVqQ33oZOOUa7SGp/pglqLiy+mlC ikLQ7/7zhI6ZgXhMENnH53dbfNrB9VwWPVTni3tjHMEQsOrLr/y32oVZpnwnMevAtl9N bCVg== X-Gm-Message-State: AOAM531RORHKbX64nYS9yHS/OC0PXIqlUgWiSjNP1u+iRYFbfWd8DL/y +/0EqijqCN5nrO3qCB54TZ4= X-Google-Smtp-Source: ABdhPJwLvz2z9lmHimCaJxwSbfMyBaB/B0JnKaQ3Wdhc/h602Hub6VMpVFeHlh9jZTqOOYVvZJdHpg== X-Received: by 2002:a19:c1d6:: with SMTP id r205mr484342lff.141.1595146098916; Sun, 19 Jul 2020 01:08:18 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:18 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg , Daniel Vetter Subject: [PATCH v5 11/19] backlight: wire up kernel-doc documentation Date: Sun, 19 Jul 2020 10:07:35 +0200 Message-Id: <20200719080743.8560-12-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Include backlight so the documentation is now generated with make htmldocs and friends. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Reviewed-by: Emil Velikov Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Thomas Zimmermann Cc: David Airlie Cc: Daniel Vetter Cc: Jonathan Corbet --- Documentation/gpu/backlight.rst | 12 ++++++++++++ Documentation/gpu/index.rst | 1 + 2 files changed, 13 insertions(+) create mode 100644 Documentation/gpu/backlight.rst diff --git a/Documentation/gpu/backlight.rst b/Documentation/gpu/backlight.rst new file mode 100644 index 000000000000..9ebfc9d0aced --- /dev/null +++ b/Documentation/gpu/backlight.rst @@ -0,0 +1,12 @@ +================= +Backlight support +================= + +.. kernel-doc:: drivers/video/backlight/backlight.c + :doc: overview + +.. kernel-doc:: include/linux/backlight.h + :internal: + +.. kernel-doc:: drivers/video/backlight/backlight.c + :export: diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst index 1fcf8e851e15..c9a51e3bfb5a 100644 --- a/Documentation/gpu/index.rst +++ b/Documentation/gpu/index.rst @@ -12,6 +12,7 @@ Linux GPU Driver Developer's Guide drm-uapi drm-client drivers + backlight vga-switcheroo vgaarbiter todo From patchwork Sun Jul 19 08:07:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672265 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2DED8138C for ; Sun, 19 Jul 2020 08:08:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 16F82207EA for ; Sun, 19 Jul 2020 08:08:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ke0IBpPT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726395AbgGSIIW (ORCPT ); Sun, 19 Jul 2020 04:08:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIW (ORCPT ); Sun, 19 Jul 2020 04:08:22 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EEF88C0619D2; Sun, 19 Jul 2020 01:08:21 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id h22so17035245lji.9; Sun, 19 Jul 2020 01:08:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OJDKBzM5WCM/wOabtI6YcckSIiYQMrhs/j9cUZtSyfE=; b=ke0IBpPTuBlyL2cszAZT9C9ayT7fVfvVzC6OVH3QBVUidZxNtMEqCBCq0s6HPGBv11 gXWEqvswIX9DA5Xter6f8TUidX6LiV6GRtUhdh2SY0CWmxVl8cYs9CWI08MAB4nJYF4v J/UCP/A6eLnvH3XyzxH9hR8I0ZJbrB/LatKBwvGdnTK5AI06N63kiVytCbqnzJtvNL67 roPN+b6GObh6hOHmeMW/FixrnYeylnz5e1P5jPNTaDKnhPBKLkBLXfFp2TOCPvVu1Z6R X60dHm+H+0bghNBCCYLWQXetFC1paWcfrV/Pn+lw9QH28Ygvk/O9Dite+bT3jJbfT75K hp1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=OJDKBzM5WCM/wOabtI6YcckSIiYQMrhs/j9cUZtSyfE=; b=Z9TIeMU1grGxeMA27RZP4xaG6jTfDav0Z1WWrvRrEPO9LVZK33zIQGwscXDI3Ut54z +5OQbzKW236CqfR3MHnbWV88jMREmfywZAQ08FIjAc8Wh+ukWoxSXQx/9rB+hdOMVTcU /Gv1yg2YJd5vVIEHaT+EiqYbHxlpOse29Mxo+auwACEOwUSa45NZarUkTdDPARMI7JNe DlDTn+Y/ptY2424GlD81Im4agTWkfVb0slI8+RwBwUvvkRnGi0LdqlXXB+ktNGPIBx5X 9EZOa4wgUfDpjaBNyGIMN502YODRYK3nROC3AzWGBTCtmedRlfO4zDHpBWkVFR3oZQ/1 gARg== X-Gm-Message-State: AOAM531RjgDgnNxsuorKRsEEi0mDMSnsMaHaWUZ3kyK3s6cM6BIF7JaK BSnCL9XVZeeCVNsbBZrtW4A= X-Google-Smtp-Source: ABdhPJw6MoGAA6/OzdTbDIA16nVyRjHatL9PcGdLBKA3q4XDBNcAWImwR5+k5f9pz7bIALWGu643sg== X-Received: by 2002:a2e:9908:: with SMTP id v8mr7603333lji.186.1595146100487; Sun, 19 Jul 2020 01:08:20 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:20 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 12/19] backlight: introduce backlight_get_brightness() Date: Sun, 19 Jul 2020 10:07:36 +0200 Message-Id: <20200719080743.8560-13-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Based on an idea from Emil Velikov add a helper that checks backlight_is_blank() and return 0 as brightness if display is blank or the property value if not. This allows us to simplify the update_status() implementation in most of the backlight drivers. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Cc: Emil Velikov Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index c6ac4cbb9ddb..38db67588b16 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -417,6 +417,25 @@ static inline bool backlight_is_blank(const struct backlight_device *bd) bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK); } +/** + * backlight_get_brightness - Returns the current brightness value + * @bd: the backlight device + * + * Returns the current brightness value, taking in consideration the current + * state. If backlight_is_blank() returns true then return 0 as brightness + * otherwise return the current brightness property value. + * + * Backlight drivers are expected to use this function in their update_status() + * operation to get the brightness value. + */ +static inline int backlight_get_brightness(const struct backlight_device *bd) +{ + if (backlight_is_blank(bd)) + return 0; + else + return bd->props.brightness; +} + struct backlight_device * backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, From patchwork Sun Jul 19 08:07:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672267 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9A3AC60D for ; Sun, 19 Jul 2020 08:08:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7F929207DF for ; Sun, 19 Jul 2020 08:08:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dt0gJHZi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726404AbgGSIIY (ORCPT ); Sun, 19 Jul 2020 04:08:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIX (ORCPT ); Sun, 19 Jul 2020 04:08:23 -0400 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68C55C0619D2; Sun, 19 Jul 2020 01:08:23 -0700 (PDT) Received: by mail-lj1-x241.google.com with SMTP id q4so17106049lji.2; Sun, 19 Jul 2020 01:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cuNmp2Y8twclxYeBZp9lqPlgdVdohaDn7/kP95qzQpY=; b=dt0gJHZiY7ngqE3Aru5QIDfzR/4WGSTSyw/onfx1owTURKpd8/LZItKX/EmdKaKww6 hEY+0zYkVbTNplOGw96iVnVRNjbZWHPDFljhBoUh92L+g8R3zKPSCXN/FlSrE0ZrMQjL flVgCJgIHMHSllEEwnLlNoj5rphgeaU/JtmSmf30aDPkRG1UsPQDIXC5AHtRe/ec4dgi 6j8DGlmB4suQ+Zb6MIlniulvpsxURfSw431sQ8R77cVRxVq/hvOa/CPcLxEbVGpJSnNN Ig5KaCsrzH4eiJ7xwYAcyxRQC0geH0KiJ9u8rcjpokzamfO3VgZqFfy0nuIwC3Ivi/aK KGFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=cuNmp2Y8twclxYeBZp9lqPlgdVdohaDn7/kP95qzQpY=; b=mgCJ99XL3M66YSxkumFS1TJ4JpMSJHuKcUZeeU6C15bVRKu0NcfTk/z0latTujJz9S C++BTp7BFGNB6Aavv2xL48mJhTJK8I3qZy+JANRkpbnjPNN7csw9Nnc+briKzM2u7jyQ jCwbRMsMV4ahn/j/76cYYul6MKA37/DbL3RX6xd39qJaTCir2s3lS2jIT33LLrYXomg3 soSD74zUdUiyJKTbNlfGruqfDGDNPPyi7Ss3SwYXCPDudEMHjw8y78rx96CIMjejPXD0 qvvhU5IP3WHtY78NyOPA0kZbusJMA8xJW7noe76GCRsAWPoICJfADyK0dl8ob/OuTknz 73oA== X-Gm-Message-State: AOAM531HYx+1v1+5zQwwE21aiRTQtOQoGJaGYdgMJGQg5v6zAYB1erCe oHOLqqXYl0h115eQfz+Gca8= X-Google-Smtp-Source: ABdhPJxZxOr0snHuWFqr6G4SGAfzIJ3mgEFuX4BaVmV7mFdW770Cwt5XaQ0uxyD0rDUWC5CdQtyriA== X-Received: by 2002:a2e:800b:: with SMTP id j11mr7692089ljg.105.1595146101920; Sun, 19 Jul 2020 01:08:21 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:21 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 13/19] backlight: as3711_bl: simplify update_status Date: Sun, 19 Jul 2020 10:07:37 +0200 Message-Id: <20200719080743.8560-14-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Replaces the open-coded checks of the state, with the backlight_get_brightness() helper. This increases readability of the code and align the functionality across the drivers. Futhermore drop the debug prints in update_status(). If we need debug printing then we can add it to the backlight core. v2: - Use backlight_get_brightness() Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Cc: Emil Velikov --- drivers/video/backlight/as3711_bl.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/video/backlight/as3711_bl.c b/drivers/video/backlight/as3711_bl.c index 33f0f0f2e8b3..3b60019cdc2b 100644 --- a/drivers/video/backlight/as3711_bl.c +++ b/drivers/video/backlight/as3711_bl.c @@ -104,17 +104,10 @@ static int as3711_bl_update_status(struct backlight_device *bl) struct as3711_bl_data *data = bl_get_data(bl); struct as3711_bl_supply *supply = to_supply(data); struct as3711 *as3711 = supply->as3711; - int brightness = bl->props.brightness; + int brightness; int ret = 0; - dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, blank %x, state %x\n", - __func__, bl->props.brightness, bl->props.power, - bl->props.fb_blank, bl->props.state); - - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.fb_blank != FB_BLANK_UNBLANK || - bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) - brightness = 0; + brightness = backlight_get_brightness(bl); if (data->type == AS3711_BL_SU1) { ret = as3711_set_brightness_v(as3711, brightness, From patchwork Sun Jul 19 08:07:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672271 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 21B5F913 for ; Sun, 19 Jul 2020 08:08:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0953D20809 for ; Sun, 19 Jul 2020 08:08:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fi3Bs4uq" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726416AbgGSIIZ (ORCPT ); Sun, 19 Jul 2020 04:08:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIZ (ORCPT ); Sun, 19 Jul 2020 04:08:25 -0400 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCA2BC0619D2; Sun, 19 Jul 2020 01:08:24 -0700 (PDT) Received: by mail-lj1-x242.google.com with SMTP id q7so17078807ljm.1; Sun, 19 Jul 2020 01:08:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pcuwxUbNQ02ezWkTsCzZiUS7wW0ksGl96SStmrqrSfs=; b=fi3Bs4uqa9jVLVXLEM0m7dgPj6ibdld6VHgAfosz+EQUhP81hsD2D0IbWFKl0fkIMu oUMHCLR7FQptKSyQYl9FYPnjcFzr4WFocEw0LStcfh4EYZEZeOM/ef9dTBn/ZArY5k7s TNFlFmjVuDN5oORWxos8GhIV+e2LKsHLVMEK/V/i+48/pl2oxLQXfvxk9eAcOSEF+hFD phFmh5BRH7UFxHmchzRiAb+7MnPpppip950Tob6OnfXPKE/NKIUXTMgOjCt4ezmtPXZB 37+B+frmLwYj5V44HSeI7DtJ+O4X7ibFvuCn+aKp+KKJM5/eHmxVCacmhsjFbNjbnW6a 8c7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=pcuwxUbNQ02ezWkTsCzZiUS7wW0ksGl96SStmrqrSfs=; b=W74I1vCJn5FULiXFsSuntBxLGV07O4TUOs1fO8VpVfQLxT36dID8Z4P/EZERSbPAX3 hYOP4wE/bY/APIh9IRVZ4TNKZ4JjyGA/vr2+vTJex/aTnxmyF1nWd9sEZLo3k05v6OE3 8VAGKNfdehaykQ09gIAyRLXmLkCTwVkE3aSy1Usv+FIjDGMHZZHvOMuHBskl/k6EOfbU PFPr1U4ujp+vrahTGPpxeEeI8LvgjVQ0hawhgjMc8IK/mG0/MCt3cizQ02BYqnK3iMR1 gr59ZnkYazeIeYF3JbJ8Wrxq2jHAvG/BwJUjqRXWxli9OP7wUI/yWIxZ8Od/yk5y0Mrr iASQ== X-Gm-Message-State: AOAM5318l6C7A0Hjxy81TY43nRMjMYCu5R7g4/LsU41SKQgDwOtGc5V4 K7WOSRJfNH3zoVVW1/jbkPc= X-Google-Smtp-Source: ABdhPJw1ENiBQ0uLk0l74mX8NuTfduet72T4huNn0yGXdgzGp3lYKsspmCqsOIqOthPY0/A7OUkyKw== X-Received: by 2002:a2e:8505:: with SMTP id j5mr590968lji.65.1595146103398; Sun, 19 Jul 2020 01:08:23 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:22 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 14/19] backlight: cr_bllcd: introduce gpio-backlight semantics Date: Sun, 19 Jul 2020 10:07:38 +0200 Message-Id: <20200719080743.8560-15-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org cr_bllcd can turn backlight ON or OFF. Fix semantitics so they equals what we know from gpio-backlight. brightness == 0 => backlight off brightness == 1 => backlight on Use the backlight_get_brightness() helper to simplify the code. v2: - reworked to introduce gpio-backlight semantics (Daniel) Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Reviewed-by: Daniel Thompson --- drivers/video/backlight/cr_bllcd.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/video/backlight/cr_bllcd.c b/drivers/video/backlight/cr_bllcd.c index 4624b7b7c6a6..a24d42e1ea3c 100644 --- a/drivers/video/backlight/cr_bllcd.c +++ b/drivers/video/backlight/cr_bllcd.c @@ -63,22 +63,15 @@ static int cr_backlight_set_intensity(struct backlight_device *bd) u32 addr = gpio_bar + CRVML_PANEL_PORT; u32 cur = inl(addr); - if (bd->props.power == FB_BLANK_UNBLANK) - intensity = FB_BLANK_UNBLANK; - if (bd->props.fb_blank == FB_BLANK_UNBLANK) - intensity = FB_BLANK_UNBLANK; - if (bd->props.power == FB_BLANK_POWERDOWN) - intensity = FB_BLANK_POWERDOWN; - if (bd->props.fb_blank == FB_BLANK_POWERDOWN) - intensity = FB_BLANK_POWERDOWN; - - if (intensity == FB_BLANK_UNBLANK) { /* FULL ON */ - cur &= ~CRVML_BACKLIGHT_OFF; - outl(cur, addr); - } else if (intensity == FB_BLANK_POWERDOWN) { /* OFF */ + if (backlight_get_brightness(bd) == 0) { + /* OFF */ cur |= CRVML_BACKLIGHT_OFF; outl(cur, addr); - } /* anything else, don't bother */ + } else { + /* FULL ON */ + cur &= ~CRVML_BACKLIGHT_OFF; + outl(cur, addr); + } return 0; } @@ -90,9 +83,9 @@ static int cr_backlight_get_intensity(struct backlight_device *bd) u8 intensity; if (cur & CRVML_BACKLIGHT_OFF) - intensity = FB_BLANK_POWERDOWN; + intensity = 0; else - intensity = FB_BLANK_UNBLANK; + intensity = 1; return intensity; } From patchwork Sun Jul 19 08:07:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672275 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8BF15138C for ; Sun, 19 Jul 2020 08:08:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 747AE20809 for ; Sun, 19 Jul 2020 08:08:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GpOG2BPM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726421AbgGSII1 (ORCPT ); Sun, 19 Jul 2020 04:08:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSII0 (ORCPT ); Sun, 19 Jul 2020 04:08:26 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E115C0619D2; Sun, 19 Jul 2020 01:08:26 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id q4so17106112lji.2; Sun, 19 Jul 2020 01:08:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aaf0m4BLcrTG4bMWWq/JZ557CUtwpSzBtZ2OTxRtuus=; b=GpOG2BPM6f5ErHn2xTcOlwxzr5xwmH1d1aGpPaEJPXsgMC4QDyfeZkFgghp4piUO8y +5C+T+Kzr12eQ4+Bk2Hqer/2yy12yeqTyT7HNh7UzFPgTdfMsOBXc7STcsT1pvDYNcM9 ZbRlkNGMg34d9eYoXgR11qZ/5w14LeYcXhahnHNYTDFo9kIK7P0n2A0XEz9aYqw2hOaQ xMFk/+HZXNv9fG0MC8hrMKlb9tqBjTmh4OIe0tJEmjg3AzIwtDTQQnp6Owj+nlPrOHSn bh7VsAmWwEnU/mdJVN69dukCa6B0wytKhRD7zJ+SK/emst/IpfnyLSRkJo7DImz0sgfI AjjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=aaf0m4BLcrTG4bMWWq/JZ557CUtwpSzBtZ2OTxRtuus=; b=jVvLoVjgEkBmsmRHD3YrMNepwyLmwP0x3M/pxL1HsvSnOnfopbClkkZXZT+FYx2SRc N61wKiVDZYBPv9iJsoqWbnDXwZ4f0mShfM30oI+ej34NAO8adC57lJuZQ9oZCuDo1qT5 OHZsAWcVuRsocWYIbkj8Z005IW3SxSs89H8HsbxnvBuujjzSeXKnMhDlvdfoIN0cxqTX MClEgxB13kY3Q/UxLNpizoBzZ43IbVyN3mKRwUYmWnSUElIB9QVWfQpdbQy1/D7dUHy7 mt4H8DKQkgbyOcWinL4fzdKD/sQ1Ixd3R1ckPVZ2RNHKdQto3Q832HZysjAFIEy6oimF nu7g== X-Gm-Message-State: AOAM5305Ac7PiXOzUPusFYSftEWUeIwhFnmznKnQobNJZK137sQaJP/U i1XAx4FOhuCkJ/ja4su49mk= X-Google-Smtp-Source: ABdhPJybMbA1pMekauiLuL0JlrMRVGGlU0yp7hTxsmGJsZ92Yg3niEUhn+aR9X1ycKIdPJ3lX4crwQ== X-Received: by 2002:a2e:5806:: with SMTP id m6mr7129681ljb.23.1595146104801; Sun, 19 Jul 2020 01:08:24 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:24 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 15/19] backlight: gpio_backlight: simplify update_status() Date: Sun, 19 Jul 2020 10:07:39 +0200 Message-Id: <20200719080743.8560-16-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Introduce the use of backlight_get_brightness() to simplify the update_status() operation. With the simpler implementation drop the gpio_backlight_get_next_brightness() helper as it was now a one-liner. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/gpio_backlight.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c index 75409ddfba3e..6f78d928f054 100644 --- a/drivers/video/backlight/gpio_backlight.c +++ b/drivers/video/backlight/gpio_backlight.c @@ -21,24 +21,11 @@ struct gpio_backlight { struct gpio_desc *gpiod; }; -static int gpio_backlight_get_next_brightness(struct backlight_device *bl) -{ - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.fb_blank != FB_BLANK_UNBLANK || - bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) - brightness = 0; - - return brightness; -} - static int gpio_backlight_update_status(struct backlight_device *bl) { struct gpio_backlight *gbl = bl_get_data(bl); - int brightness = gpio_backlight_get_next_brightness(bl); - gpiod_set_value_cansleep(gbl->gpiod, brightness); + gpiod_set_value_cansleep(gbl->gpiod, backlight_get_brightness(bl)); return 0; } @@ -108,7 +95,7 @@ static int gpio_backlight_probe(struct platform_device *pdev) bl->props.brightness = 1; - init_brightness = gpio_backlight_get_next_brightness(bl); + init_brightness = backlight_get_brightness(bl); ret = gpiod_direction_output(gbl->gpiod, init_brightness); if (ret) { dev_err(dev, "failed to set initial brightness\n"); From patchwork Sun Jul 19 08:07:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672279 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 05B08138C for ; Sun, 19 Jul 2020 08:08:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E1C0A21741 for ; Sun, 19 Jul 2020 08:08:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qZbLaesp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726428AbgGSII2 (ORCPT ); Sun, 19 Jul 2020 04:08:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSII2 (ORCPT ); Sun, 19 Jul 2020 04:08:28 -0400 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2C76C0619D2; Sun, 19 Jul 2020 01:08:27 -0700 (PDT) Received: by mail-lj1-x244.google.com with SMTP id x9so17029131ljc.5; Sun, 19 Jul 2020 01:08:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hDwomWBaZyGmgAqcrUivq0LeYUSJfOi4w7mumAORuIo=; b=qZbLaespDfNwaOoZYjfwSw6uv2x1yI8DDERHdue+PXEnXZi63Azp8gN/o6R4QC9uOx Wa9NRMfnp4AF+nYsndHsy0/Rf0v6v5bcZ+LsJesG+AUfxfAjBwK4UoGNhAdffeDlG4Dd zM18q1hxAF4FFLXJNrD0rGFlDztvCd/LczZhAb4HDXSmAyJzC4zqDMaqjn3BLZV+dFlG uQRjjiTydR9+lcFtGZXKGBYIGYCJrDPYszDiwe6M4EcQ1+JviCm8AHkpV9za14e4TDhj cP/PXZRls6E9RZedtoijUBWUc8qP41t/uqSHMAFcg3H5H3I4Wlms6FKQaesrgyQfLUnZ sk/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=hDwomWBaZyGmgAqcrUivq0LeYUSJfOi4w7mumAORuIo=; b=fWh9SksFqaK7y8MFEG9nhZtVfJ/PRGkZNv9s6GiiHBa7XfX3FB3Co2h+YltYcBbAt2 cMfwY0106i0sjpkbv2psxMrRH4ciUW+4In5+02TV2BiLhzJ/leAoIyTH9dGtyeJDBXd1 dTaisjdWE39aK3oOQfs70sUBLoof6u4BMaEE/wlOc8TSGZqrltDOejPGFriHK6YLNwGv FP1uSgUDF9fUMUoBT5or+dC7Hh68kQS2Nuu5RNDh1jq+IQSgXafq6kBAbGMzxzhn721K TCS8EYO+FAMOwkJqMfiflfauRqY9rzAwVWaDDHEBslTM6rGkkt1eu5Oc2lcMdsUSdBoA YT4Q== X-Gm-Message-State: AOAM532cX5bUbg1OuVH7S5n7ICCZNcHLNoqAR54ukg5KAKZfwbo3DW/M omrL8zLxxPWdgnmWz7ZI6ac= X-Google-Smtp-Source: ABdhPJxl8rnN+FIc4hwfdlTsc9yUhDElaMadQ4i8ACenfj10jhR5RM+e3Rdb5asOLrfsrLf1PxnkFw== X-Received: by 2002:a2e:571c:: with SMTP id l28mr7549009ljb.432.1595146106225; Sun, 19 Jul 2020 01:08:26 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:25 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 16/19] backlight: jornada720_bl: introduce backlight_is_blank() Date: Sun, 19 Jul 2020 10:07:40 +0200 Message-Id: <20200719080743.8560-17-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Use the backlight_is_blank() helper to simplify the code a bit. The jornada720_bl driver distingush between backlight off and brightness set to 0. Thus this driver turn off backlight only when backlight_is_blank() returns true. v2: - Updated changelog (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/jornada720_bl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/backlight/jornada720_bl.c b/drivers/video/backlight/jornada720_bl.c index f0385f9cf9da..996f7ba3b373 100644 --- a/drivers/video/backlight/jornada720_bl.c +++ b/drivers/video/backlight/jornada720_bl.c @@ -54,7 +54,7 @@ static int jornada_bl_update_status(struct backlight_device *bd) jornada_ssp_start(); /* If backlight is off then really turn it off */ - if ((bd->props.power != FB_BLANK_UNBLANK) || (bd->props.fb_blank != FB_BLANK_UNBLANK)) { + if (backlight_is_blank(bd)) { ret = jornada_ssp_byte(BRIGHTNESSOFF); if (ret != TXDUMMY) { dev_info(&bd->dev, "brightness off timeout\n"); From patchwork Sun Jul 19 08:07:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672283 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B7F7C138C for ; Sun, 19 Jul 2020 08:08:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 95E00207EA for ; Sun, 19 Jul 2020 08:08:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IrCanXmj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726436AbgGSIIa (ORCPT ); Sun, 19 Jul 2020 04:08:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSII3 (ORCPT ); Sun, 19 Jul 2020 04:08:29 -0400 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4BBB4C0619D2; Sun, 19 Jul 2020 01:08:29 -0700 (PDT) Received: by mail-lj1-x242.google.com with SMTP id z24so17016376ljn.8; Sun, 19 Jul 2020 01:08:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2oUk5dB7J7+COnpUvZ6kNj04E6Mochd4jfjhtwnfEbs=; b=IrCanXmjvoAqf+Hjruy/ZoKWAwOC8nr6PLoyNOFxOEwEDiIoPRhIzunBJxpNqgozKA uV296DkD7i0r2jSOJE8ECAjP3EVMpEedTs6Gl9ippAoRI9fnLloY8TX9HRhKCHM31FIz K7nDiaJRJgnytwuVa4Kdy5ci/1JJN6sWlHnUrmIkIq3ME8v0mCeQmgZ8Dqd/iJWeBUoi 97X51oxz3dqvNTIznJhz4O/cJHfRSL2S6WAdFb32t0C/fBFA3KrMpAp+Byno/ac7eQ+N rL8cnyEHJcTfLvSP0JHfWiYTa+pO77dhRETiCbZdx+LJul/6/8bb+lol2KOeuRLnEl1r iHzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=2oUk5dB7J7+COnpUvZ6kNj04E6Mochd4jfjhtwnfEbs=; b=KCxIs5N1+DGKac9h1TkujQW9ANVRpY3a/RbZz3I9mgbnvlpFUCNWKUcA6dwavXncl5 vQeezaTaBxMQSBQa/IEnk+07fLdidCJd50s4mifwkXDhFrVTAE2dDBt50k5EOiYeithU mVmuevydX6ssigw26kqYzf8Wz0dPcy4xofxZGZ+L+7fVRKfSnuHcWSNNgQttt4KhdZ3q abzg4hj7ldnYrF/ZL3zIIHHaNVY/t8XxXSFHcfRkTfGb3zKIaXdtiB34J4C4Tb+jW/rp aH2VzNQ5/hH9zngKBfo9+z4ZK5KM6io06HiFLeTRijjhgTiWeWVozYjot9Kyaeabc6TK 2QXg== X-Gm-Message-State: AOAM5322cJx60M/WcY55jzMc7R4O/u57e/xMNJ9ZoxF0oK8zCEWDYhp5 s9QfKxLYyVqtBABGnktEbAY= X-Google-Smtp-Source: ABdhPJyQ7nsT10VYZhe/wlq1ENWZalb+MnBCDjVSFHoBIts/7BNTfXz41N1RXjR53Z4U4LsneSd8Tw== X-Received: by 2002:a2e:971a:: with SMTP id r26mr8563208lji.464.1595146107719; Sun, 19 Jul 2020 01:08:27 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:27 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 17/19] backlight: use backlight_get_brightness() Date: Sun, 19 Jul 2020 10:07:41 +0200 Message-Id: <20200719080743.8560-18-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Introduce the backlight_get_brightness() helper in all video/backlight/* drivers. This simplifies the code and align the implementation of the update_status() operation across the different backlight drivers. Some of the drivers gains a little extra functionality by the change as they now respect the fb_blank() ioctl. v2: - Fix spelling in subject (Uwe) Signed-off-by: Sam Ravnborg Cc: Uwe Kleine-König Reviewed-by: Daniel Thompson --- drivers/video/backlight/88pm860x_bl.c | 13 +------------ drivers/video/backlight/adp5520_bl.c | 10 +--------- drivers/video/backlight/adp8860_bl.c | 10 +--------- drivers/video/backlight/adp8870_bl.c | 10 +--------- drivers/video/backlight/bd6107.c | 7 +------ drivers/video/backlight/corgi_lcd.c | 8 +------- drivers/video/backlight/da903x_bl.c | 13 +------------ drivers/video/backlight/ep93xx_bl.c | 8 +------- drivers/video/backlight/hp680_bl.c | 6 +----- drivers/video/backlight/kb3886_bl.c | 6 +----- drivers/video/backlight/led_bl.c | 7 +------ drivers/video/backlight/lm3533_bl.c | 8 +------- drivers/video/backlight/locomolcd.c | 6 +----- drivers/video/backlight/lv5207lp.c | 7 +------ drivers/video/backlight/max8925_bl.c | 13 +------------ drivers/video/backlight/pwm_bl.c | 7 +------ drivers/video/backlight/qcom-wled.c | 7 +------ drivers/video/backlight/tps65217_bl.c | 10 +--------- drivers/video/backlight/wm831x_bl.c | 13 +------------ 19 files changed, 19 insertions(+), 150 deletions(-) diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c index 20d96a5ac384..25e409bbb1a2 100644 --- a/drivers/video/backlight/88pm860x_bl.c +++ b/drivers/video/backlight/88pm860x_bl.c @@ -121,18 +121,7 @@ static int pm860x_backlight_set(struct backlight_device *bl, int brightness) static int pm860x_backlight_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.state & BL_CORE_SUSPENDED) - brightness = 0; - - return pm860x_backlight_set(bl, brightness); + return pm860x_backlight_set(bl, backlight_get_brightness(bl)); } static int pm860x_backlight_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/adp5520_bl.c b/drivers/video/backlight/adp5520_bl.c index 0f63f76723a5..686988c3df3a 100644 --- a/drivers/video/backlight/adp5520_bl.c +++ b/drivers/video/backlight/adp5520_bl.c @@ -65,15 +65,7 @@ static int adp5520_bl_set(struct backlight_device *bl, int brightness) static int adp5520_bl_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - return adp5520_bl_set(bl, brightness); + return adp5520_bl_set(bl, backlight_get_brightness(bl)); } static int adp5520_bl_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/adp8860_bl.c b/drivers/video/backlight/adp8860_bl.c index 19968104fc47..ddc7f5f0401f 100644 --- a/drivers/video/backlight/adp8860_bl.c +++ b/drivers/video/backlight/adp8860_bl.c @@ -361,15 +361,7 @@ static int adp8860_bl_set(struct backlight_device *bl, int brightness) static int adp8860_bl_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - return adp8860_bl_set(bl, brightness); + return adp8860_bl_set(bl, backlight_get_brightness(bl)); } static int adp8860_bl_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c index 4c0032010cfe..8b5213a39527 100644 --- a/drivers/video/backlight/adp8870_bl.c +++ b/drivers/video/backlight/adp8870_bl.c @@ -399,15 +399,7 @@ static int adp8870_bl_set(struct backlight_device *bl, int brightness) static int adp8870_bl_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - return adp8870_bl_set(bl, brightness); + return adp8870_bl_set(bl, backlight_get_brightness(bl)); } static int adp8870_bl_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/bd6107.c b/drivers/video/backlight/bd6107.c index d5d5fb457e78..515184fbe33a 100644 --- a/drivers/video/backlight/bd6107.c +++ b/drivers/video/backlight/bd6107.c @@ -82,12 +82,7 @@ static int bd6107_write(struct bd6107 *bd, u8 reg, u8 data) static int bd6107_backlight_update_status(struct backlight_device *backlight) { struct bd6107 *bd = bl_get_data(backlight); - int brightness = backlight->props.brightness; - - if (backlight->props.power != FB_BLANK_UNBLANK || - backlight->props.fb_blank != FB_BLANK_UNBLANK || - backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) - brightness = 0; + int brightness = backlight_get_brightness(backlight); if (brightness) { bd6107_write(bd, BD6107_PORTSEL, BD6107_PORTSEL_LEDM(2) | diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c index 25ef0cbd7583..33f5d80495e6 100644 --- a/drivers/video/backlight/corgi_lcd.c +++ b/drivers/video/backlight/corgi_lcd.c @@ -420,13 +420,7 @@ static int corgi_bl_set_intensity(struct corgi_lcd *lcd, int intensity) static int corgi_bl_update_status(struct backlight_device *bd) { struct corgi_lcd *lcd = bl_get_data(bd); - int intensity = bd->props.brightness; - - if (bd->props.power != FB_BLANK_UNBLANK) - intensity = 0; - - if (bd->props.fb_blank != FB_BLANK_UNBLANK) - intensity = 0; + int intensity = backlight_get_brightness(bd); if (corgibl_flags & CORGIBL_SUSPENDED) intensity = 0; diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c index 62540e4bdedb..71f21bbc7a9f 100644 --- a/drivers/video/backlight/da903x_bl.c +++ b/drivers/video/backlight/da903x_bl.c @@ -77,18 +77,7 @@ static int da903x_backlight_set(struct backlight_device *bl, int brightness) static int da903x_backlight_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.state & BL_CORE_SUSPENDED) - brightness = 0; - - return da903x_backlight_set(bl, brightness); + return da903x_backlight_set(bl, backlight_get_brightness(bl)); } static int da903x_backlight_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/ep93xx_bl.c b/drivers/video/backlight/ep93xx_bl.c index 4149e0b2f83c..2387009d452d 100644 --- a/drivers/video/backlight/ep93xx_bl.c +++ b/drivers/video/backlight/ep93xx_bl.c @@ -36,13 +36,7 @@ static int ep93xxbl_set(struct backlight_device *bl, int brightness) static int ep93xxbl_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - return ep93xxbl_set(bl, brightness); + return ep93xxbl_set(bl, backlight_get_brightness(bl)); } static int ep93xxbl_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/hp680_bl.c b/drivers/video/backlight/hp680_bl.c index 8ea42b8d9bc8..9123c33def05 100644 --- a/drivers/video/backlight/hp680_bl.c +++ b/drivers/video/backlight/hp680_bl.c @@ -33,12 +33,8 @@ static void hp680bl_send_intensity(struct backlight_device *bd) { unsigned long flags; u16 v; - int intensity = bd->props.brightness; + int intensity = backlight_get_brightness(bd); - if (bd->props.power != FB_BLANK_UNBLANK) - intensity = 0; - if (bd->props.fb_blank != FB_BLANK_UNBLANK) - intensity = 0; if (hp680bl_suspended) intensity = 0; diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c index 1dfe13c18925..55794b239cff 100644 --- a/drivers/video/backlight/kb3886_bl.c +++ b/drivers/video/backlight/kb3886_bl.c @@ -87,12 +87,8 @@ static const struct dmi_system_id kb3886bl_device_table[] __initconst = { static int kb3886bl_send_intensity(struct backlight_device *bd) { - int intensity = bd->props.brightness; + int intensity = backlight_get_brightness(bd); - if (bd->props.power != FB_BLANK_UNBLANK) - intensity = 0; - if (bd->props.fb_blank != FB_BLANK_UNBLANK) - intensity = 0; if (kb3886bl_flags & KB3886BL_SUSPENDED) intensity = 0; diff --git a/drivers/video/backlight/led_bl.c b/drivers/video/backlight/led_bl.c index 3f66549997c8..f54d256e2d54 100644 --- a/drivers/video/backlight/led_bl.c +++ b/drivers/video/backlight/led_bl.c @@ -54,12 +54,7 @@ static void led_bl_power_off(struct led_bl_data *priv) static int led_bl_update_status(struct backlight_device *bl) { struct led_bl_data *priv = bl_get_data(bl); - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.fb_blank != FB_BLANK_UNBLANK || - bl->props.state & BL_CORE_FBBLANK) - brightness = 0; + int brightness = backlight_get_brightness(bl); if (brightness > 0) led_bl_set_brightness(priv, brightness); diff --git a/drivers/video/backlight/lm3533_bl.c b/drivers/video/backlight/lm3533_bl.c index 0c7830f793de..1df1b6643c0b 100644 --- a/drivers/video/backlight/lm3533_bl.c +++ b/drivers/video/backlight/lm3533_bl.c @@ -39,14 +39,8 @@ static inline int lm3533_bl_get_ctrlbank_id(struct lm3533_bl *bl) static int lm3533_bl_update_status(struct backlight_device *bd) { struct lm3533_bl *bl = bl_get_data(bd); - int brightness = bd->props.brightness; - if (bd->props.power != FB_BLANK_UNBLANK) - brightness = 0; - if (bd->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - return lm3533_ctrlbank_set_brightness(&bl->cb, (u8)brightness); + return lm3533_ctrlbank_set_brightness(&bl->cb, backlight_get_brightness(bd)); } static int lm3533_bl_get_brightness(struct backlight_device *bd) diff --git a/drivers/video/backlight/locomolcd.c b/drivers/video/backlight/locomolcd.c index cdc02e04f89d..297ee2e1ab0b 100644 --- a/drivers/video/backlight/locomolcd.c +++ b/drivers/video/backlight/locomolcd.c @@ -111,12 +111,8 @@ static int current_intensity; static int locomolcd_set_intensity(struct backlight_device *bd) { - int intensity = bd->props.brightness; + int intensity = backlight_get_brightness(bd); - if (bd->props.power != FB_BLANK_UNBLANK) - intensity = 0; - if (bd->props.fb_blank != FB_BLANK_UNBLANK) - intensity = 0; if (locomolcd_flags & LOCOMOLCD_SUSPENDED) intensity = 0; diff --git a/drivers/video/backlight/lv5207lp.c b/drivers/video/backlight/lv5207lp.c index c6ad73a784e2..1842ae9a55f8 100644 --- a/drivers/video/backlight/lv5207lp.c +++ b/drivers/video/backlight/lv5207lp.c @@ -46,12 +46,7 @@ static int lv5207lp_write(struct lv5207lp *lv, u8 reg, u8 data) static int lv5207lp_backlight_update_status(struct backlight_device *backlight) { struct lv5207lp *lv = bl_get_data(backlight); - int brightness = backlight->props.brightness; - - if (backlight->props.power != FB_BLANK_UNBLANK || - backlight->props.fb_blank != FB_BLANK_UNBLANK || - backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) - brightness = 0; + int brightness = backlight_get_brightness(backlight); if (brightness) { lv5207lp_write(lv, LV5207LP_CTRL1, diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c index 97cc260ff9d1..e607ec6fd4bf 100644 --- a/drivers/video/backlight/max8925_bl.c +++ b/drivers/video/backlight/max8925_bl.c @@ -64,18 +64,7 @@ static int max8925_backlight_set(struct backlight_device *bl, int brightness) static int max8925_backlight_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.state & BL_CORE_SUSPENDED) - brightness = 0; - - return max8925_backlight_set(bl, brightness); + return max8925_backlight_set(bl, backlight_get_brightness(bl)); } static int max8925_backlight_get_brightness(struct backlight_device *bl) diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index 82b8d7594701..eff64db2e02e 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -108,14 +108,9 @@ static int compute_duty_cycle(struct pwm_bl_data *pb, int brightness) static int pwm_backlight_update_status(struct backlight_device *bl) { struct pwm_bl_data *pb = bl_get_data(bl); - int brightness = bl->props.brightness; + int brightness = backlight_get_brightness(bl); struct pwm_state state; - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.fb_blank != FB_BLANK_UNBLANK || - bl->props.state & BL_CORE_FBBLANK) - brightness = 0; - if (pb->notify) brightness = pb->notify(pb->dev, brightness); diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c index c25c31199952..3bc7800eb0a9 100644 --- a/drivers/video/backlight/qcom-wled.c +++ b/drivers/video/backlight/qcom-wled.c @@ -433,14 +433,9 @@ static int wled5_ovp_delay(struct wled *wled) static int wled_update_status(struct backlight_device *bl) { struct wled *wled = bl_get_data(bl); - u16 brightness = bl->props.brightness; + u16 brightness = backlight_get_brightness(bl); int rc = 0; - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.fb_blank != FB_BLANK_UNBLANK || - bl->props.state & BL_CORE_FBBLANK) - brightness = 0; - mutex_lock(&wled->lock); if (brightness) { rc = wled->wled_set_brightness(wled, brightness); diff --git a/drivers/video/backlight/tps65217_bl.c b/drivers/video/backlight/tps65217_bl.c index 762e3feed097..8457166f357f 100644 --- a/drivers/video/backlight/tps65217_bl.c +++ b/drivers/video/backlight/tps65217_bl.c @@ -77,15 +77,7 @@ static int tps65217_bl_update_status(struct backlight_device *bl) { struct tps65217_bl *tps65217_bl = bl_get_data(bl); int rc; - int brightness = bl->props.brightness; - - if (bl->props.state & BL_CORE_SUSPENDED) - brightness = 0; - - if ((bl->props.power != FB_BLANK_UNBLANK) || - (bl->props.fb_blank != FB_BLANK_UNBLANK)) - /* framebuffer in low power mode or blanking active */ - brightness = 0; + int brightness = backlight_get_brightness(bl); if (brightness > 0) { rc = tps65217_reg_write(tps65217_bl->tps, diff --git a/drivers/video/backlight/wm831x_bl.c b/drivers/video/backlight/wm831x_bl.c index e55977d54c15..c5aaee205bdf 100644 --- a/drivers/video/backlight/wm831x_bl.c +++ b/drivers/video/backlight/wm831x_bl.c @@ -91,18 +91,7 @@ static int wm831x_backlight_set(struct backlight_device *bl, int brightness) static int wm831x_backlight_update_status(struct backlight_device *bl) { - int brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.fb_blank != FB_BLANK_UNBLANK) - brightness = 0; - - if (bl->props.state & BL_CORE_SUSPENDED) - brightness = 0; - - return wm831x_backlight_set(bl, brightness); + return wm831x_backlight_set(bl, backlight_get_brightness(bl)); } static int wm831x_backlight_get_brightness(struct backlight_device *bl) From patchwork Sun Jul 19 08:07:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672287 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2F302138C for ; Sun, 19 Jul 2020 08:08:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1823A207FC for ; Sun, 19 Jul 2020 08:08:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RZVey3SW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726446AbgGSIIb (ORCPT ); Sun, 19 Jul 2020 04:08:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIIb (ORCPT ); Sun, 19 Jul 2020 04:08:31 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D573DC0619D2; Sun, 19 Jul 2020 01:08:30 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id h22so17035474lji.9; Sun, 19 Jul 2020 01:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IDEH3J4Q+Jjiu+FxPrY8mOUxDmtf7lYrk8yEJzvKVUQ=; b=RZVey3SWCAEostOET4Prc4fJIq//QTGR6FobtObJ+eknE0vNlYugFxPfRGJbB+hpPQ pydeDarW6k7WvW8ctkt8YijlV4JvsVJdk0Rl5B4fyfm+rlCoSOR0XPzSGqnOHkpNefMK GMbLSKAGa4iM5XuIwf7DtNwiXhOxs7XF288qZ5hnBxrg6rDCjdyCORXYeJzIcJALtMNt lso8g+YNyfW6jVQlxFS7Ay90BSywb70ryp4U8qHpjXy3RxuBFJgYl9Kgo9OI6GeJlUrb esssmPdke8kFNT6+cbQRnF8KmS3FhjXsYevkLxaA/1kFdC7pnBHf6SnFwaap8HyL/pl6 n4uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=IDEH3J4Q+Jjiu+FxPrY8mOUxDmtf7lYrk8yEJzvKVUQ=; b=GNk+aFhTz4VmUuFgyVdxTCtwnBa8K7Ibf+JY6/PYRsGwaPi1YIrlgsNGLhkGtPe1si buaWfYeTdBINXd8vVjSwgsf9V40FyMS7t+uhZn2ir7cnDczNRpG0kHjEF8lnmn9pCYZx molZB3N7tQyjN+wrp7zyzDnqXEeS9mZfCr6ZyAkXoiUItZ6RccFxor81le1aIY/M9Ihy nd7xN6wHqH4Mt5ZGkO25B2lND1Kj45jkN8RLFstwbWcQG8sUvfIvXdsdb448+LH5s898 XPcKcXZn3fdTBWiGysvRjuVaFpSeSEKFK1VCpwuDB6SaPw6fOEZgGB0rXCxYOD1Y1qBB yPtA== X-Gm-Message-State: AOAM530FnmHlTGqkXSYY4WqnPrJJjpqJypptHouTyInswcni3tW6AwVt GUGMDqT8Y/yl4IWXKGF9xBg= X-Google-Smtp-Source: ABdhPJx31S8uL+DzfpbblGSuB6RPYkE/DcMSsq1zq8vUzlGE1rLjv9FeAN5ewmQ6Rux/w+ehFSGw1g== X-Received: by 2002:a2e:99d0:: with SMTP id l16mr7417620ljj.209.1595146109333; Sun, 19 Jul 2020 01:08:29 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:28 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 18/19] backlight: drop backlight_put() Date: Sun, 19 Jul 2020 10:07:42 +0200 Message-Id: <20200719080743.8560-19-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org There are no external users of backlight_put(). Drop it and open code the two users in backlight.c. Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/backlight.c | 7 +++++-- include/linux/backlight.h | 10 ---------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 93ae8c63fe4c..d8387c8e7112 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -718,7 +718,10 @@ EXPORT_SYMBOL(of_find_backlight); static void devm_backlight_release(void *data) { - backlight_put(data); + struct backlight_device *bd = data; + + if (bd) + put_device(&bd->dev); } /** @@ -746,7 +749,7 @@ struct backlight_device *devm_of_find_backlight(struct device *dev) return bd; ret = devm_add_action(dev, devm_backlight_release, bd); if (ret) { - backlight_put(bd); + put_device(&bd->dev); return ERR_PTR(ret); } return bd; diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 38db67588b16..f3b484c99789 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -388,16 +388,6 @@ static inline int backlight_disable(struct backlight_device *bd) return backlight_update_status(bd); } -/** - * backlight_put - Drop backlight reference - * @bd: the backlight device to put - */ -static inline void backlight_put(struct backlight_device *bd) -{ - if (bd) - put_device(&bd->dev); -} - /** * backlight_is_blank - Return true if display is expected to be blank * @bd: the backlight device From patchwork Sun Jul 19 08:07:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11672291 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E534A138C for ; Sun, 19 Jul 2020 08:08:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CCF26207EA for ; Sun, 19 Jul 2020 08:08:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GY8/416e" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726485AbgGSIId (ORCPT ); Sun, 19 Jul 2020 04:08:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725836AbgGSIId (ORCPT ); Sun, 19 Jul 2020 04:08:33 -0400 Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BE2AC0619D2; Sun, 19 Jul 2020 01:08:32 -0700 (PDT) Received: by mail-lf1-x141.google.com with SMTP id t9so8182696lfl.5; Sun, 19 Jul 2020 01:08:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9uNwKzv8b/C+0SI0qOFOrsb7npxZ7PTzq2BdWF06ubw=; b=GY8/416esOptHiTcw/hru9S/6/vqdc0yetjpC6SPZf7xPtxO7FP6ADL0+LdKqYdNX5 MZJHj3PUr6ys19l9+TGsMvagycygO8p25T8ixdmvOgRNAHQ2VomonsNYPX06+tBCnFjo GJaZn4IM50ItSes0ZOX4hOMHOYGW278fxUtfyTOklTkUErjNwtDEmLqUxnOzHfEYDMH+ W54+6nwZl0n5aGK8NW2W3tslN6ZiJw+15pQuv3wC6/kdV00bfIp0TUCXCVnxKoIzWbUe cdMEKz1sGLGNsnO9EukHPzelYqK57AqIDGf9mqxP2VXeBL4HEtJ9xjpOYYEBADn7VUKo e6Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=9uNwKzv8b/C+0SI0qOFOrsb7npxZ7PTzq2BdWF06ubw=; b=nq5CP2hH+ktwmOYFF0V4dSa0eH5BqpMQqgBkZyrm+ugY7aytLsOJlxrjH7YbGs6A67 dTYmbgSgFVdpju6yLm08Oil1FcrKiRrrUHJzrhzqZMP8PpySKmcMuhk99GmXPzNmU4df 7klVBMrAqyUDDhDT4bmhvjtntzUH7CjFCDD7jrUG2BRboXIzTyMH5mGZh0qofLzuarR/ F6t1Fc8RLbctrglnLzMzc8kvEEjgL/6RbrYrbSgQbHNeYSDd1DciHXroZ9wITqvWi16I fUCzUTp9hUVNzrvOB2wjR9JaT+qIJ4fbzkGR0J2WGYyJOzcrWAj/pVaj02CxHEaC6g6w kjQA== X-Gm-Message-State: AOAM530l31eb6G+3shmUryldEFs9LTaJnS0ojhqqSdlcKjMhmztVK6RE s+FOtGLYr85GJ6+AMZ5YlDo= X-Google-Smtp-Source: ABdhPJwIH7f1kYdsfJVH3BGHUjihRFZqPKBCA9Z4ih5Z5OGknuirQDjZF0kxMmmxuEi/yIgniGV3rA== X-Received: by 2002:ac2:4ec9:: with SMTP id p9mr779615lfr.142.1595146111102; Sun, 19 Jul 2020 01:08:31 -0700 (PDT) Received: from saturn.lan ([2a00:fd00:805f:db00:d5fe:fe9c:fc06:b74c]) by smtp.gmail.com with ESMTPSA id 72sm732407lfh.97.2020.07.19.01.08.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2020 01:08:30 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Cc: Andy Gross , Bartlomiej Zolnierkiewicz , Bjorn Andersson , Daniel Vetter , David Airlie , Emil Velikov , Jonathan Corbet , linux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Michael Hennerich , patches@opensource.cirrus.com, Support Opensource , Thierry Reding , Thomas Zimmermann , Uwe Kleine-Konig , Peter Ujfalusi , Tomi Valkeinen , Sam Ravnborg Subject: [PATCH v5 19/19] backlight: make of_find_backlight static Date: Sun, 19 Jul 2020 10:07:43 +0200 Message-Id: <20200719080743.8560-20-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200719080743.8560-1-sam@ravnborg.org> References: <20200719080743.8560-1-sam@ravnborg.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org There are no external users of of_find_backlight, as they have all changed to use the managed version. Make of_find_backlight static to prevent new external users. v3: - Move doc for devm_of_find_backlight out of this patch v2: - Editorial corrections (Daniel) - Returns => RETURNS (Daniel) Signed-off-by: Sam Ravnborg Reviewed-by: Daniel Thompson Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- drivers/video/backlight/backlight.c | 18 +----------------- include/linux/backlight.h | 6 ------ 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index d8387c8e7112..ff8406a15545 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -673,22 +673,7 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node) EXPORT_SYMBOL(of_find_backlight_by_node); #endif -/** - * of_find_backlight - Get backlight device - * @dev: Device - * - * This function looks for a property named 'backlight' on the DT node - * connected to @dev and looks up the backlight device. - * - * Call backlight_put() to drop the reference on the backlight device. - * - * Returns: - * A pointer to the backlight device if found. - * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight - * device is found. - * NULL if there's no backlight property. - */ -struct backlight_device *of_find_backlight(struct device *dev) +static struct backlight_device *of_find_backlight(struct device *dev) { struct backlight_device *bd = NULL; struct device_node *np; @@ -714,7 +699,6 @@ struct backlight_device *of_find_backlight(struct device *dev) return bd; } -EXPORT_SYMBOL(of_find_backlight); static void devm_backlight_release(void *data) { diff --git a/include/linux/backlight.h b/include/linux/backlight.h index f3b484c99789..8b43fd90d84a 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -477,14 +477,8 @@ of_find_backlight_by_node(struct device_node *node) #endif #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) -struct backlight_device *of_find_backlight(struct device *dev); struct backlight_device *devm_of_find_backlight(struct device *dev); #else -static inline struct backlight_device *of_find_backlight(struct device *dev) -{ - return NULL; -} - static inline struct backlight_device * devm_of_find_backlight(struct device *dev) {