dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: dri-devel@lists.freedesktop.org,
	Jingoo Han <jingoohan1@gmail.com>,
	Lee Jones <lee.jones@linaro.org>,
	Daniel Thompson <daniel.thompson@linaro.org>,
	Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-pwm@vger.kernel.org,
	Support Opensource <support.opensource@diasemi.com>,
	Michael Hennerich <michael.hennerich@analog.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Jonathan Corbet <corbet@lwn.net>,
	Douglas Anderson <dianders@chromium.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Jani Nikula <jani.nikula@intel.com>,
	Andy Gross <agross@kernel.org>,
	Thierry Reding <thierry.reding@gmail.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	linux-arm-msm@vger.kernel.org,
	Russell King <linux@armlinux.org.uk>,
	Sam Ravnborg <sam@ravnborg.org>,
	patches@opensource.cirrus.com,
	Uwe Kleine-Konig <u.kleine-koenig@pengutronix.de>
Subject: [PATCH v2 03/16] backlight: add backlight_is_blank()
Date: Sun, 17 May 2020 21:01:26 +0200	[thread overview]
Message-ID: <20200517190139.740249-4-sam@ravnborg.org> (raw)
In-Reply-To: <20200517190139.740249-1-sam@ravnborg.org>

The backlight support has two properties that express the state:
- power
- state

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 bug
due to the creative use in some drivers.

Rolling out this helper to all relevant backlight drivers
will eliminate almost all accesses to fb_blank.

v2:
  - Added fb_blank condition (Daniel)

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c7d6b2e8c3b5..a0a083b35c47 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(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);
-- 
2.25.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2020-05-17 19:02 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-17 19:01 [PATCH v2 0/16] backlight updates Sam Ravnborg
2020-05-17 19:01 ` [PATCH v2 01/16] video: amba-clcd: use devm_of_find_backlight Sam Ravnborg
2020-05-18  8:10   ` Linus Walleij
2020-05-18 10:16     ` Sam Ravnborg
2020-05-25  8:42       ` Linus Walleij
2020-05-25 11:01         ` Sam Ravnborg
2020-05-17 19:01 ` [PATCH v2 02/16] backlight: refactor fb_notifier_callback() Sam Ravnborg
2020-05-18 14:54   ` Daniel Thompson
2020-05-20 10:41   ` Emil Velikov
2020-05-17 19:01 ` Sam Ravnborg [this message]
2020-05-18 15:00   ` [PATCH v2 03/16] backlight: add backlight_is_blank() Daniel Thompson
2020-05-20 10:45   ` Emil Velikov
2020-05-28 13:39   ` Peter Ujfalusi
2020-05-17 19:01 ` [PATCH v2 04/16] backlight: improve backlight_ops documentation Sam Ravnborg
2020-05-18 15:02   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 05/16] backlight: improve backlight_properties documentation Sam Ravnborg
2020-05-18 15:53   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 06/16] backlight: improve backlight_device documentation Sam Ravnborg
2020-05-18 16:03   ` Daniel Thompson
2020-05-18 17:03     ` Jani Nikula
2020-05-18 17:58       ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 07/16] backlight: document inline functions in backlight.h Sam Ravnborg
2020-05-18 16:04   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 08/16] backlight: document enums " Sam Ravnborg
2020-05-18 16:15   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 09/16] backlight: remove the unused backlight_bl driver Sam Ravnborg
2020-05-18 16:17   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 10/16] backlight: drop extern from prototypes Sam Ravnborg
2020-05-18 16:22   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 11/16] backlight: add overview and update existing doc Sam Ravnborg
2020-05-18 16:44   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 12/16] backlight: wire up kernel-doc documentation Sam Ravnborg
2020-05-18 16:50   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 13/16] backlight: make of_find_backlight static Sam Ravnborg
2020-05-18 16:53   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 14/16] backlight: drop backlight_put() Sam Ravnborg
2020-05-18 16:53   ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 15/16] backlight: make of_find_backlight_by_node() static Sam Ravnborg
2020-05-17 20:22   ` kbuild test robot
2020-05-17 20:53   ` kbuild test robot
2020-05-18 16:56   ` Daniel Thompson
2020-05-18 18:12     ` Sam Ravnborg
2020-05-18 19:56       ` Daniel Thompson
2020-05-17 19:01 ` [PATCH v2 16/16] backlight: use backlight_is_blank() in all backlight drivers Sam Ravnborg
2020-05-18 16:59   ` Daniel Thompson
2020-05-20 10:56   ` Emil Velikov
2020-05-20 15:11     ` Daniel Thompson
2020-05-28 13:39   ` Peter Ujfalusi
2020-05-28 13:43     ` Peter Ujfalusi
2020-05-20 11:01 ` [PATCH v2 0/16] backlight updates Emil Velikov

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=20200517190139.740249-4-sam@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=agross@kernel.org \
    --cc=airlied@linux.ie \
    --cc=b.zolnierkie@samsung.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=corbet@lwn.net \
    --cc=daniel.thompson@linaro.org \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dianders@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=jingoohan1@gmail.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=michael.hennerich@analog.com \
    --cc=patches@opensource.cirrus.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=support.opensource@diasemi.com \
    --cc=thierry.reding@gmail.com \
    --cc=tomi.valkeinen@ti.com \
    --cc=tzimmermann@suse.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).