From patchwork Sun Aug 23 10:45:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731539 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 EF5D1913 for ; Sun, 23 Aug 2020 10:45:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CDC6D2072D for ; Sun, 23 Aug 2020 10:45:58 +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="J5x660c2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CDC6D2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E448E6E49A; Sun, 23 Aug 2020 10:45:56 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com [IPv6:2a00:1450:4864:20::142]) by gabe.freedesktop.org (Postfix) with ESMTPS id 896586E497 for ; Sun, 23 Aug 2020 10:45:55 +0000 (UTC) Received: by mail-lf1-x142.google.com with SMTP id j15so2971597lfg.7 for ; Sun, 23 Aug 2020 03:45:55 -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=N6N46LpxOxVN6dAnm9F7KtaktSmWE/xBhpj2MxaGLjI=; b=J5x660c2/IA/IV+ILWhui4IclOPYvqSTcXdYD4T6rNYSCqGqqQfyKGtQJ3av1telWb wgIKGaYkqZ3Z35H05g3DJSlEQ1IRnaiaw1ulgVEdIKIwpvFUY16YJseSkAGWBnxJ9OG4 TvqXcosjeidil4CxpFNCmH22G0TdQ83/bpxz/c/3NUvrAKJ+PYzNNCn3BRQi/nsWGrbT k+oPduiycGJ2gck364w5KnYthB1VN0LQzpMTQAVmj4lhKpAO7q7Qd1/Be5nz7uUE06zJ TPKoWBxWi5D/QpPR+pfdxMJNIJk/T7/9k35NxdGjbKuo2a4EZC9n1JbMB10Mjc0GeW7w wxeg== 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=N6N46LpxOxVN6dAnm9F7KtaktSmWE/xBhpj2MxaGLjI=; b=FOF07Bk9L3/uJz+PLgNx5dIp9D/cA8YE2RfncLTKH876kTEJ1D3ClPKOGETO77uDE2 E40cEWhMkMduJr+dIkW+On/t5LrXS3i1BOdyfkS334mWz+ArbvX/7DRNyNeLPXUBK/f8 0mtwBX7CALqeglZOFbvK9ARds5ZWy7GteW8S4VVLAVswiq6LPICygEUlyMBtbtGuY5Wu U77DjR2L+RFeA1C/YKKq1rEpdOTpBjzfiQd4n5o48kGhikfrOOQu0eYn20kQCuwOa56x rcA4R07FF5IyVVikjuZiztMsTpq3gQXalau5uzVIBHJj//sKqzI9CcxeeyLKVhGnYu2O 7pwg== X-Gm-Message-State: AOAM532GbL150oozUeNTyGuwCB6HP6bg44QyAHgexiQz85xqO9za6e/S KSZ9386gPnM86jL8i9zNnU9W2Y1BG/eFdQ== X-Google-Smtp-Source: ABdhPJxqyh/kD2Eec9HkAD0Ekqj986e6MT1i+8V2dC2ET3JQmabFWklihGxyRh/kTyz6He0XQOvoTw== X-Received: by 2002:ac2:4d16:: with SMTP id r22mr422847lfi.21.1598179553810; Sun, 23 Aug 2020 03:45:53 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:45:53 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 01/24] backlight: Silently fail backlight_update_status() if no device Date: Sun, 23 Aug 2020 12:45:09 +0200 Message-Id: <20200823104532.1024798-2-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" backlight_update_status() may be called from code that does not have any valid backlight device. To avoid ifdeffery and too much conditionals silently fail if the backlight_device is NULL. Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Reviewed-by: Daniel Thompson --- include/linux/backlight.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 614653e07e3a..190963ffb7fc 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -348,6 +348,9 @@ static inline int backlight_update_status(struct backlight_device *bd) { int ret = -ENOENT; + if (!bd) + return 0; + mutex_lock(&bd->update_lock); if (bd->ops && bd->ops->update_status) ret = bd->ops->update_status(bd); From patchwork Sun Aug 23 10:45:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731547 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 E131B913 for ; Sun, 23 Aug 2020 10:46:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BFD362072D for ; Sun, 23 Aug 2020 10:46: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="h5PJ/JQa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BFD362072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D07956E4A1; Sun, 23 Aug 2020 10:46:03 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD8306E497 for ; Sun, 23 Aug 2020 10:45:56 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id v12so6429388ljc.10 for ; Sun, 23 Aug 2020 03:45:56 -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=LDHEVusiKE3LU/z0ed6r9ko5jSq5It7ZMD8x3KyGe2E=; b=h5PJ/JQa8Goc7N2lsEmKt6Ah9v147nTIC1LE8RMV9jv3MvaZxTuKv4BdspXAzdCJV1 sWPVSpn2J66DFalxL9f2d3fPOoHA6WuawRK3GeGHfawswO6w0YkX6/PiEdTadjwuiGFs 7/Mk61z2D7j7EjKURYsq1lIyQdLtZK4BYI9YntNYEO/UUDnJNlKeRjyotzpwMdrLCVq7 a9QL/DvR1GdiKe+DjypJmFmNYRjH5SfeAlZbmbY55ODJw5EbUnKKG+7J9f/SlvunWZdk BE0xVYcHJqYf1LGnm7R5ggeUIQ+QjTG8COyWybMOFAVEqYqF3FMCzxl4R1b5v4s908/q h5PA== 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=LDHEVusiKE3LU/z0ed6r9ko5jSq5It7ZMD8x3KyGe2E=; b=ChVGhnVufxhu2Kb+4RXTTOaEEhWsODzKJKY18J5FbAWedheDo4lK0E3oGjtrJxqeQq u0ohELB3gfcVr3dtZKd8LkHq9vcLEy2U7jSfk0uXHcSlPH8UxEhTdBSWIzhbxmtVemvP AK8IGFmbAUc46Q2Kg7FFFU/GsR95W7l6ZWHZDPP3jaCUyyep9PEqtoKRk/nEwzf5djc6 uYYDIHYwIbtTtM4s1oANWsBK3pzLqcti9WOePqHcjKTVsdc1cJYYiPFDKSbVchhNpYNV o7Le2Z+3w3qOjLODrCfkiGR1sayrbK4JNmFPDqICVPCRsgRjenZwJjcpr7IrOByyshHo Z2PQ== X-Gm-Message-State: AOAM5307qsuh7Aet9StrLfXGyV11Zy1floJCreMVyFEd3UdZYcf1RLHd yaon1GqbRGAGX3Mj6r5KvDWxHKB4BWOVCg== X-Google-Smtp-Source: ABdhPJyf7D5jX+BVx+9pKg7gx6FCs7Yx5jmaZdvg7uD2jysTEpQVwfVGKekhpT29LekqY5cio6BUZg== X-Received: by 2002:a2e:7009:: with SMTP id l9mr427528ljc.274.1598179555064; Sun, 23 Aug 2020 03:45:55 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:45:54 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 02/24] backlight: Add DECLARE_* macro for device registration Date: Sun, 23 Aug 2020 12:45:10 +0200 Message-Id: <20200823104532.1024798-3-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Device registration almost always uses a struct backlight_properties variable to pass config info. Make it simpler and less error prone by the introduction of a number of macros. There is one macro for each type of backlight {firmware, platform, raw}. All members in struct backlight_properties are initialized. Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han --- include/linux/backlight.h | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 190963ffb7fc..93a47a6cf681 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -272,6 +272,69 @@ struct backlight_properties { enum backlight_scale scale; }; +/** + * BACKLIGHT_PROPS - init backlight_properties with default values + * + * This macro is used to initialize backlight_properties with default + * values. It is intended to be used when registering a backlight device + * and the properties needs to be adjusted at run-time, for example + * when the max_brightness is configurable. + * + * .. code-block:: c + * + * struct backlight_properties props = { + * BACKLIGHT_PROPS(0, 255, BACKLIGHT_RAW) + * }; + * ... + * props.max_brightness = new_max; + * err = devm_backlight_device_register(,,,, props); + * + */ +#define BACKLIGHT_PROPS(_brightness, _max_brightness, _type) \ + .brightness = _brightness, \ + .max_brightness = _max_brightness, \ + .power = FB_BLANK_POWERDOWN, \ + .type = _type, \ + .fb_blank = 0, \ + .state = 0, \ + .scale = BACKLIGHT_SCALE_UNKNOWN, + +/** + * DECLARE_BACKLIGHT_INIT_RAW - backlight_properties to init a raw + * backlight device + * + * This macro is used to initialize backlight_properties that is used when + * registering a raw backlight device. + */ +#define DECLARE_BACKLIGHT_INIT_RAW(name, _brightness, _max_brightness) \ + const struct backlight_properties name = { \ + BACKLIGHT_PROPS(_brightness, _max_brightness, BACKLIGHT_RAW) \ + } + +/** + * DECLARE_BACKLIGHT_INIT_PLATFORM - backlight_properties to init a platform + * backlight device + * + * This macro is used to initialize backlight_properties that is used when + * registering a platform backlight device. + */ +#define DECLARE_BACKLIGHT_INIT_PLATFORM(name, _brightness, _max_brightness) \ + const struct backlight_properties name = { \ + BACKLIGHT_PROPS(_brightness, _max_brightness, BACKLIGHT_PLATFORM) \ + } + +/** + * DECLARE_BACKLIGHT_INIT_FIRMWARE - backlight_properties to init a firmware + * backlight device + * + * This macro is used to initialize backlight_properties that is used when + * registering a firmware backlight device. + */ +#define DECLARE_BACKLIGHT_INIT_FIRMWARE(name, _brightness, _max_brightness) \ + const struct backlight_properties name = { \ + BACKLIGHT_PROPS(_brightness, _max_brightness, BACKLIGHT_FIRMWARE) \ + } + /** * struct backlight_device - backlight device data * From patchwork Sun Aug 23 10:45:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731541 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 B2B1B109B for ; Sun, 23 Aug 2020 10:46:01 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 90FED2072D for ; Sun, 23 Aug 2020 10:46:01 +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="Rru0BjCK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90FED2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 63D8B6E49C; Sun, 23 Aug 2020 10:45:59 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0DF1E6E497 for ; Sun, 23 Aug 2020 10:45:58 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id w14so6447200ljj.4 for ; Sun, 23 Aug 2020 03:45:57 -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=oazd1K/DiFoxSE0eXUpKTqDSP+znXZoQQbXi3awQMDA=; b=Rru0BjCKHKyWpAHFO2f/f2Pd8xnvFEa2pwInIvBs9THJk8ZX4NzC104gwiP0oHpv/R quBGebfbUApEevsHXGdCL1kcsLcIfTl2auvbDOoJktPxDOdVseUyvOPI67+EpDDZIGGS YgBgfcZCdVwNJ9kBOq4rLF2c+gg98kR9pNcdMUsU7DHD2DYhAchG2S2jAyq1ipnbZGZR 5Qbpa9SHubjKdFa9Hqm1mn6NuSW4b7AGDiac5GMy1pL8IXAS0kYXeD7GGHL/wnJW/Kk+ pisW8GDWgDGZXpVaDx1FY6YKE401bKX/UxmmF7xR00is6XfsuG8QmTtOVIenWKfR21rd eUdw== 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=oazd1K/DiFoxSE0eXUpKTqDSP+znXZoQQbXi3awQMDA=; b=iq+Dh7sA1Av3JpTkplSvUak2RlffoP4N1h7SAEuvk19+Umrm3shwJYuPrhrhdGAtxZ nEHnNgGrPYS+U/QbBIFMhUKQGXlgYaj1n0Q4iszmpltIIUq6ux//8i7Lph6UTYrz1k6d PKtD6GdCGQSD97uVjR+6g82b7Z0mTgfJqSunnJiSzvSrbSkqfLAd9jZ9J3U9R3/aEYKf oD60yTVSppi179k2+EKVo/Z7QdB14tw2BxSZu4mFWJ4JdnwTyjQ1gTTFtr0pfoKtRFDA UQL+GHEDC5f5vPn9BIiR64ydPiuP8XC9goAUxgIhM3BGtINEUZGGGqRm/LlFJ4Y08rex yboA== X-Gm-Message-State: AOAM531cdKjXiJt+0QMJJxhMYb8eKveMrDuYgGKda/aWuZAFkOmpSgPv xufYgw/vDrkTSJE4j7NU3/+DMYOm7+jS9A== X-Google-Smtp-Source: ABdhPJy4J6Y/eBN3OPr+gS/QAr0i8CDOuTHuWFLiwFDo3T218w/+gtXEzS/5FVieK9P2PqM2jYpD5A== X-Received: by 2002:a2e:9bc1:: with SMTP id w1mr396509ljj.79.1598179556272; Sun, 23 Aug 2020 03:45:56 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:45:55 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 03/24] backlight: Add get/set operations for brightness properties Date: Sun, 23 Aug 2020 12:45:11 +0200 Message-Id: <20200823104532.1024798-4-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add get and set operations to incapsualte access to backlight brightness. One easy win is that the get/set operations can be used when backlight is not included in the configuration, resulting in simpler code with less ifdef's and thus more readable code. The backlight_enable_brightness() update the brightness and enable the backlight. The backlight_update_brightness() force the brightness update and typical usage is to set brightness after registering a backlight device. Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Reviewed-by: Daniel Thompson --- include/linux/backlight.h | 74 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 93a47a6cf681..e390444bed13 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -492,6 +492,80 @@ static inline int backlight_get_brightness(const struct backlight_device *bd) return bd->props.brightness; } +/** + * backlight_get_actual_brightness - Returns the actual brightness + * + * On failure a negative error code is returned. + */ +static inline int backlight_get_actual_brightness(struct backlight_device *bd) +{ + if (bd && bd->ops && bd->ops->get_brightness) + return bd->ops->get_brightness(bd); + else + return -EINVAL; +} + +/** + * backlight_get_max_brightness - Returns maximum brightness + * + * This helper operation is preferred over direct access to + * &backlight_properties.max_brightness + * + * Returns 0 if backlight_device is NULL + */ + +static inline int backlight_get_max_brightness(const struct backlight_device *bd) +{ + if (bd) + return bd->props.max_brightness; + else + return 0; +} + +/** + * backlight_set_brightness - Set the brightness to the specified value + * + * This helper operation is preferred over direct assignment to + * &backlight_properties.brightness. + * + * If backlight_device is NULL then silently exit. + */ +static inline void backlight_set_brightness(struct backlight_device *bd, int brightness) +{ + if (bd) + bd->props.brightness = brightness; +} + +/** + * backlight_update_brightness - Update the brightness to the specified value + * + * Update brightness and force an update. + * + * If backlight_device is NULL then silently exit. + */ +static inline void backlight_update_brightness(struct backlight_device *bd, int brightness) +{ + if (bd) { + bd->props.brightness = brightness; + backlight_update_status(bd); + } +} + +/** + * backlight_enable_brightness - Enable backligt using specified brightness + * + * Enable brightness using the specified brightness. + * + * If backlight_device is NULL then silently exit. + */ +static inline void backlight_enable_brightness(struct backlight_device *bd, int brightness) +{ + if (bd) { + bd->props.brightness = brightness; + backlight_enable(bd); + } +} + struct backlight_device * backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, From patchwork Sun Aug 23 10:45:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731545 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 E52C2913 for ; Sun, 23 Aug 2020 10:46:06 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C34F72072D for ; Sun, 23 Aug 2020 10:46:06 +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="TqarjIaK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C34F72072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B267A6E49F; Sun, 23 Aug 2020 10:46:03 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 35B356E497 for ; Sun, 23 Aug 2020 10:45:59 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id 185so6438877ljj.7 for ; Sun, 23 Aug 2020 03:45:59 -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=yfGezRRrHisCV10uBCobfnKoT+rZyW4xgWzy2WX8Bos=; b=TqarjIaK85MMJ5oK1mPTMjKbR+HD8fZQ+5daGMuzOfezkhTFz8ZIQDHUNfoMNFE8UT QAWKK0z82CgO2G5iZ2rDdePv+wWGoxoivklLp5y3CRAeg26Wx22yPswYE4FJPLsKTMGl YA5Mt/r/ixzODC+6L6pe6vYCCJsoTKyrtINYYp0HPlfCWyjCPDg/gPpbGhSEhTfn9VBt jMII9Yg5xksbgIXKrzPt4EMawiy/3jYRPeBD7TbuByMllKVM0EY87mE/J7EgFVTSSWWv 3jyun0U0tzMsJNwaW15oExOMnbxb2foQFhs42NfCs20mWkQXqi3eGZQ+Ekjz0GaVdchZ 1+IA== 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=yfGezRRrHisCV10uBCobfnKoT+rZyW4xgWzy2WX8Bos=; b=oZZA2BObNT9TyW1BzuBj9tcYQ/JYobm1iQYbwTObX5jYymuPV8Imtprmwu8t3b2ZRM XfqkECwX06YXpqd5ijO0EJ/67lTxLDKzXMjI2ct/Co/d/T5RafDJDjcDXeI4IIwnqm0/ UQR2C0Rvjt5ROgOgnDsmCNWrfcbzTyEm3WlXzwQm/un2nBG5UsEjZnSJ1/WYWYvPTK/i ccUrYlwVowBm5wnpED2NFavdjNSVM9GN/Vv1w1OMuSfxi/NEYC68XzXbvLhH7UHqVAh7 X4XO9EwPEle16jf1UWxxI5OULY5Vdtu0/7Qe8NHgAK8P7mUZvOHy2DdyR77cwZ+Lhy7O 4c9w== X-Gm-Message-State: AOAM531I9UDVhkQycjwBqOpLi3mFE8WyjWYQFwhctw2B8TEO0v1tqCVC IshEwmLN+j09q7bbGU2hFwUxk3LhQfEahw== X-Google-Smtp-Source: ABdhPJylmsMgNHKjU0jsesDfxUM3lL332nxn2EIC74CtJJ/Ix5cAhotH6hft/lTib8jYJzRjN0Z+zA== X-Received: by 2002:a2e:b607:: with SMTP id r7mr407712ljn.356.1598179557493; Sun, 23 Aug 2020 03:45:57 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:45:57 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 04/24] backlight: gpio: Introduce backlight_{enable, disable} Date: Sun, 23 Aug 2020 12:45:12 +0200 Message-Id: <20200823104532.1024798-5-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Use backlight_{enable,disable} in the probe function to avoid hardcoding power handling in the driver. Move platform_set_drvdata() up as the enable/disable call will trigger a callback to the driver. Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Reviewed-by: Daniel Thompson --- drivers/video/backlight/gpio_backlight.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c index 6f78d928f054..dc9354dc5e6a 100644 --- a/drivers/video/backlight/gpio_backlight.c +++ b/drivers/video/backlight/gpio_backlight.c @@ -53,6 +53,7 @@ static int gpio_backlight_probe(struct platform_device *pdev) struct backlight_device *bl; struct gpio_backlight *gbl; int ret, init_brightness, def_value; + bool enable = false; gbl = devm_kzalloc(dev, sizeof(*gbl), GFP_KERNEL); if (gbl == NULL) @@ -82,16 +83,22 @@ static int gpio_backlight_probe(struct platform_device *pdev) return PTR_ERR(bl); } - /* Set the initial power state */ - if (!of_node || !of_node->phandle) + platform_set_drvdata(pdev, bl); + + /* Set the initial state */ + if (!of_node || !of_node->phandle) { /* Not booted with device tree or no phandle link to the node */ - bl->props.power = def_value ? FB_BLANK_UNBLANK - : FB_BLANK_POWERDOWN; - else if (gpiod_get_direction(gbl->gpiod) == 0 && - gpiod_get_value_cansleep(gbl->gpiod) == 0) - bl->props.power = FB_BLANK_POWERDOWN; + if (def_value) + enable = true; + } else if (!(gpiod_get_direction(gbl->gpiod) == 0 && + gpiod_get_value_cansleep(gbl->gpiod) == 0)) { + enable = true; + } + + if (enable) + backlight_enable(bl); else - bl->props.power = FB_BLANK_UNBLANK; + backlight_disable(bl); bl->props.brightness = 1; @@ -102,7 +109,6 @@ static int gpio_backlight_probe(struct platform_device *pdev) return ret; } - platform_set_drvdata(pdev, bl); return 0; } From patchwork Sun Aug 23 10:45:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731557 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 BDCA1109B for ; Sun, 23 Aug 2020 10:46:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9C8A520774 for ; Sun, 23 Aug 2020 10:46: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="WTITcuYD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9C8A520774 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 19C966E4A7; Sun, 23 Aug 2020 10:46:14 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4AC816E4A1 for ; Sun, 23 Aug 2020 10:46:00 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id y2so6467371ljc.1 for ; Sun, 23 Aug 2020 03:46:00 -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=oLlg5LeIyeQAEOLJXQkYpM/gY0D0nMLOnXxKrUQwpng=; b=WTITcuYD8EdulY2jlrnlC7Ol5J+wOKasvpSZQRdFQxcVGFEE9Ws7fETgZGWFqaiyLd YfHEkkArtaulupywIhzURxEg7XyE7EefTLJcCaOxDinSiE2ZyWF1twXiinvigq1Sa56A hlHhV4Epsx9RghYPsZ6QgkDy29q9om7FwoMKhWxgsUaEH85vsNEIVAp0cyOA5xl+HT1S cGqVt2x7IQdL1ClqX15Yq9d8JEltTK8825o2B3yHOC2rp78lX2R/doUidzKS3fW/hWkP ZDxZl4F1yN2Bfh+Tlq+6RcAEvstCF3OOfWXkRG9DLDWqitW8mSWqMzajp+ljXBrsCBWu Y4og== 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=oLlg5LeIyeQAEOLJXQkYpM/gY0D0nMLOnXxKrUQwpng=; b=PyV2M6ES4BqyhTqKidUniCi2evEyoJdrndaZD5NPGPcme5/cbtxdciOls7P5NLIu03 2QLGiFGghF2pSsVyUZ/qRPBRZsasQvb/8GxzpRKAcTGnCPFW0SybaHRUDeeGg/BEhCBF ZwGbPIN01gjhYoGUMw6DRDK7DMqdmEVfUKutKaw+9IzjPlxLm9nmrtz+RUuE4zwqSjYL UzC5fkUKGdSjgfjFhcldGWrGq1HgERv6AtU0jc0H9UIU1jbVJdV1ZxSIN0A16B5kokrh p3yUB+siaX9yHeJ3rMzP1FxKgry+pEjIVCt1kIIvyMYT1SIktUqqvH01ROqx3acBM3TA xo2w== X-Gm-Message-State: AOAM5307kpeleNkOdd3xQnjdYADMJ8NvBmYddCJbxsnKrkzJjD9oD93J Bb1cl/5R1lGPM+3NSQD5ZtnLEIT2WXMnyA== X-Google-Smtp-Source: ABdhPJzND27Igeji8vu73kZOGt8r/VbE1NaFKPfYJz2aLSoGxel19JEow2PU3kUmbcg7GXSo5A3udw== X-Received: by 2002:a2e:9003:: with SMTP id h3mr460407ljg.185.1598179558614; Sun, 23 Aug 2020 03:45:58 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:45:58 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 05/24] backlight: gpio: Use dev_err_probe() Date: Sun, 23 Aug 2020 12:45:13 +0200 Message-Id: <20200823104532.1024798-6-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Use dev_err_probe() to make some of the error handling simpler in the probe function. Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Reviewed-by: Daniel Thompson --- drivers/video/backlight/gpio_backlight.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c index dc9354dc5e6a..1d509b626b12 100644 --- a/drivers/video/backlight/gpio_backlight.c +++ b/drivers/video/backlight/gpio_backlight.c @@ -65,13 +65,9 @@ static int gpio_backlight_probe(struct platform_device *pdev) def_value = device_property_read_bool(dev, "default-on"); gbl->gpiod = devm_gpiod_get(dev, NULL, GPIOD_ASIS); - if (IS_ERR(gbl->gpiod)) { - ret = PTR_ERR(gbl->gpiod); - if (ret != -EPROBE_DEFER) - dev_err(dev, - "Error: The gpios parameter is missing or invalid.\n"); - return ret; - } + if (IS_ERR(gbl->gpiod)) + return dev_err_probe(dev, PTR_ERR(gbl->gpiod), + "The gpios parameter is missing or invalid.\n"); memset(&props, 0, sizeof(props)); props.type = BACKLIGHT_RAW; From patchwork Sun Aug 23 10:45:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731543 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 81DA7109B for ; Sun, 23 Aug 2020 10:46:04 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6018E20774 for ; Sun, 23 Aug 2020 10:46:04 +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="fcryxtmW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6018E20774 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4DF3A6E49D; Sun, 23 Aug 2020 10:46:03 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 89AC26E49D for ; Sun, 23 Aug 2020 10:46:01 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id w14so6447277ljj.4 for ; Sun, 23 Aug 2020 03:46:01 -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=aa37o/JC31NMJK0GouhMomg2dXjDz5rCwB/WTVPQexM=; b=fcryxtmWzWQ4MoFeKf/VL3QfkWO2742HwbCI2AYbUpxp0Aygk3xhI6kOAj3ejjKb6e 6bPmtnQVsPKfkGGg9wRy0fEXsssbc4gBff/Ujdc4HkOumF50ZfInaGCrOlBEBgAj15cE 9e7XgfOkhl0+BuoReg8sDtjRGwdQ3e+XX12FqJPRsAzXBjuW3tA1O46x4O3ePJUBpKAF x+oR+YO57M5dySmtLopQEU/+J1cXhN93yNqXbmUEv3l5U2JdyDnd0TE2TZHfO5Nw5x5I kZzv3G4b5/KA02+fRPwgjUwQoN85BS2FwdM0efvjlCZnbti9knjL6dH0DJnTzlJ6zKj7 hqEQ== 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=aa37o/JC31NMJK0GouhMomg2dXjDz5rCwB/WTVPQexM=; b=U/F3C/sjulDKz0HP9cimOH3tt17LfoV5cDbqi/zi0hdEDV3wmCbAPqJDhD+WtiHhjM 6JGJV5oiKYf4Z9n4OxLp2hb0Yk0r5Uyg+/Mb4K2WS5RT+stErVfdg+PVL19cauV3nb2A q6C/SWYBUPWUR1i5j3Vf4u0Vk07hQctswNE4PHM9Hy2XK8w0JurgsThaXMqEYUb2iMoK CzVSe7flIFQtOO/tWptfNFD5iG2VkQaCIuzmjIbuVShOr1nqDEiIkmmErhLes2Z78snH dAm5BLiy6uCp/Et5C2a+l77V3LYuiWu4ZSXQZHbME84QU6bZynbPkYZv68E7E9J3EJio OR0w== X-Gm-Message-State: AOAM5328dzFx9IcsFZJyZjCvidBpqG/PDvFSK2HmAVjdi1aI1QilZ5GB kIIr6B7Q+cU9ZT9MpeqJWS2NI9mrsNH3Ow== X-Google-Smtp-Source: ABdhPJxGJ+VV6Wf8IukG1KhClEaT/9kFe7QqsPrmBb/I7Svb1B/78shxp1BA7Rm9ywep+fboY+eoLA== X-Received: by 2002:a2e:990c:: with SMTP id v12mr451182lji.449.1598179559731; Sun, 23 Aug 2020 03:45:59 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:45:59 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 06/24] backlight: gpio: Use DECLARE_BACKLIGHT_INIT_RAW Date: Sun, 23 Aug 2020 12:45:14 +0200 Message-Id: <20200823104532.1024798-7-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Introduce use of DECLARE_BACKLIGHT_INIT_RAW when registering the backlight. Signed-off-by: Sam Ravnborg Cc: Lee Jones Cc: Daniel Thompson Cc: Jingoo Han Reviewed-by: Daniel Thompson --- drivers/video/backlight/gpio_backlight.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c index 1d509b626b12..13d44417446a 100644 --- a/drivers/video/backlight/gpio_backlight.c +++ b/drivers/video/backlight/gpio_backlight.c @@ -49,7 +49,7 @@ static int gpio_backlight_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct gpio_backlight_platform_data *pdata = dev_get_platdata(dev); struct device_node *of_node = dev->of_node; - struct backlight_properties props; + DECLARE_BACKLIGHT_INIT_RAW(props, 1, 1); struct backlight_device *bl; struct gpio_backlight *gbl; int ret, init_brightness, def_value; @@ -69,9 +69,6 @@ static int gpio_backlight_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(gbl->gpiod), "The gpios parameter is missing or invalid.\n"); - memset(&props, 0, sizeof(props)); - props.type = BACKLIGHT_RAW; - props.max_brightness = 1; bl = devm_backlight_device_register(dev, dev_name(dev), dev, gbl, &gpio_backlight_ops, &props); if (IS_ERR(bl)) { @@ -96,8 +93,6 @@ static int gpio_backlight_probe(struct platform_device *pdev) else backlight_disable(bl); - bl->props.brightness = 1; - init_brightness = backlight_get_brightness(bl); ret = gpiod_direction_output(gbl->gpiod, init_brightness); if (ret) { From patchwork Sun Aug 23 10:45:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731549 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 AF4F0109B for ; Sun, 23 Aug 2020 10:46:10 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8D9972072D for ; Sun, 23 Aug 2020 10:46:10 +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="UwpEL07n" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D9972072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5B8696E4A6; Sun, 23 Aug 2020 10:46:04 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB7056E49D for ; Sun, 23 Aug 2020 10:46:02 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id 185so6438957ljj.7 for ; Sun, 23 Aug 2020 03:46:02 -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=RhXpyMpua1abC/EmcPtseWLc5JJ/Kr/jXHKsQ/EiTsw=; b=UwpEL07nr13d2+pvsclRiiXC9i3AJjBzMLmZEJiUH8BZqDXABtg8B0CSaguN5pPsUf GnnXsa2UUHPFJQFDS3VOgyAAv74VTifivzYMVfuwOOPDWUfrlYmbuiBInbPzuqTZ9eHp qBVoMKDUWnJqiPt2OMlYAmeVSE2PDjL89rqhnp6sN0+Gikz0E2GrhIxD3tPUtl6rR0aq 2YHi8XtZE48qGgT53BRoAhqoWoyhytGOsfkIHZZdUjsfcOu16rJia5HlZ07wvMZc2soA 0DF+tAagLIWJjz8y5YyFtF/RrV2jeDVupir6jgDymmc5DkcT3KvwSXCWx2vKfkdk+kX0 U0mw== 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=RhXpyMpua1abC/EmcPtseWLc5JJ/Kr/jXHKsQ/EiTsw=; b=jK+a4Y/IGXDbP6EUE9JT/R3Be7QN5QGQ6x+qqASVkl2KQJjCs1QGYt4xEeOQioY9Qe e0z1JViDp9kU/NrI3mE6NzY8ed48/pDJwwyTaSqjPgpjRKX9Q0LkRXNiMAKgKD3vG7/d r2PxDQkdjDIf/URdMGbyedcdpz8r+vFyWWgC+GruSAr3/BxctyTttZsrYS860nRoq2+4 UwWWBH289qHBH90lLUBBQfHlbMR3nA3qAM58rf/3O3qagjHt4EEu4d/HQoZv6868MOtM TNPeKx1T5BAnAuS9P8+E0e251yxzLfY4Y69ioOgPj1xdFHX4nDZBPGhHLntPsaftZRK4 Z5YQ== X-Gm-Message-State: AOAM531+6RP8+/m6xCO2kB3893eZsMdK4i/YYRZLPg5xlwJ498R42odk J3HxCRIDe6e7BKo4VFAxNNSLOmzilGb1Pw== X-Google-Smtp-Source: ABdhPJx16AY5Em8toE9G9yE1IwdVxH5ePlmJ0/REnrakGFUE3NhfsppPcG5c6EWGuawJh+qylE95/w== X-Received: by 2002:a2e:9010:: with SMTP id h16mr462772ljg.316.1598179560931; Sun, 23 Aug 2020 03:46:00 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.45.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:00 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 07/24] drm/gma500: Backlight update Date: Sun, 23 Aug 2020 12:45:15 +0200 Message-Id: <20200823104532.1024798-8-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The backlight support is updated to utilise newly added macros and functions thus simplifying the code. - Introduced backlight_set_brightness() that can be called with a NULL backlight_device - backlight_update_status() can be called with a NULL backlight_device. Benefit from this by removing helper that otherwise was iffed'ed out - Use DECLARE_BACKLIGHT_INIT_PLATFORM() when creating backlight devices - Replace direct access to backlight_properties with get/set methods No functional changes, but a nice reduction in complexity and code. v2: - Use backlight_update_brightness() (Daniel) - Signed-off-by: Sam Ravnborg Cc: Patrik Jakobsson --- drivers/gpu/drm/gma500/backlight.c | 34 +++++------------------- drivers/gpu/drm/gma500/cdv_device.c | 24 +++++++---------- drivers/gpu/drm/gma500/mdfld_device.c | 9 ++----- drivers/gpu/drm/gma500/oaktrail_device.c | 10 ++----- drivers/gpu/drm/gma500/opregion.c | 2 +- drivers/gpu/drm/gma500/psb_device.c | 10 ++----- drivers/gpu/drm/gma500/psb_drv.c | 7 +---- 7 files changed, 24 insertions(+), 72 deletions(-) diff --git a/drivers/gpu/drm/gma500/backlight.c b/drivers/gpu/drm/gma500/backlight.c index 35600d070cb5..40b96d1277be 100644 --- a/drivers/gpu/drm/gma500/backlight.c +++ b/drivers/gpu/drm/gma500/backlight.c @@ -13,48 +13,27 @@ #include "intel_bios.h" #include "power.h" -#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE -static void do_gma_backlight_set(struct drm_device *dev) -{ - struct drm_psb_private *dev_priv = dev->dev_private; - backlight_update_status(dev_priv->backlight_device); -} -#endif - void gma_backlight_enable(struct drm_device *dev) { -#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE struct drm_psb_private *dev_priv = dev->dev_private; dev_priv->backlight_enabled = true; - if (dev_priv->backlight_device) { - dev_priv->backlight_device->props.brightness = dev_priv->backlight_level; - do_gma_backlight_set(dev); - } -#endif + backlight_update_brightness(dev_priv->backlight_device, + dev_priv->backlight_level); } void gma_backlight_disable(struct drm_device *dev) { -#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE struct drm_psb_private *dev_priv = dev->dev_private; dev_priv->backlight_enabled = false; - if (dev_priv->backlight_device) { - dev_priv->backlight_device->props.brightness = 0; - do_gma_backlight_set(dev); - } -#endif + backlight_update_brightness(dev_priv->backlight_device, 0); } void gma_backlight_set(struct drm_device *dev, int v) { -#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE struct drm_psb_private *dev_priv = dev->dev_private; dev_priv->backlight_level = v; - if (dev_priv->backlight_device && dev_priv->backlight_enabled) { - dev_priv->backlight_device->props.brightness = v; - do_gma_backlight_set(dev); - } -#endif + if (dev_priv->backlight_enabled) + backlight_update_brightness(dev_priv->backlight_device, v); } int gma_backlight_init(struct drm_device *dev) @@ -73,8 +52,7 @@ void gma_backlight_exit(struct drm_device *dev) #ifdef CONFIG_BACKLIGHT_CLASS_DEVICE struct drm_psb_private *dev_priv = dev->dev_private; if (dev_priv->backlight_device) { - dev_priv->backlight_device->props.brightness = 0; - backlight_update_status(dev_priv->backlight_device); + backlight_update_brightness(dev_priv->backlight_device, 0); backlight_device_unregister(dev_priv->backlight_device); } #endif diff --git a/drivers/gpu/drm/gma500/cdv_device.c b/drivers/gpu/drm/gma500/cdv_device.c index 4d216a0205f2..52ec1b427bf8 100644 --- a/drivers/gpu/drm/gma500/cdv_device.c +++ b/drivers/gpu/drm/gma500/cdv_device.c @@ -111,7 +111,7 @@ static int cdv_get_brightness(struct backlight_device *bd) static int cdv_set_brightness(struct backlight_device *bd) { struct drm_device *dev = bl_get_data(bd); - int level = bd->props.brightness; + int level = backlight_get_brightness(bd); u32 blc_pwm_ctl; /* Percentage 1-100% being valid */ @@ -145,21 +145,17 @@ static const struct backlight_ops cdv_ops = { static int cdv_backlight_init(struct drm_device *dev) { struct drm_psb_private *dev_priv = dev->dev_private; - struct backlight_properties props; + DECLARE_BACKLIGHT_INIT_PLATFORM(props, 0, 100); + struct backlight_device *bl; - memset(&props, 0, sizeof(struct backlight_properties)); - props.max_brightness = 100; - props.type = BACKLIGHT_PLATFORM; + bl = backlight_device_register("psb-bl", + NULL, (void *)dev, &cdv_ops, &props); + if (IS_ERR(bl)) + return PTR_ERR(bl); - cdv_backlight_device = backlight_device_register("psb-bl", - NULL, (void *)dev, &cdv_ops, &props); - if (IS_ERR(cdv_backlight_device)) - return PTR_ERR(cdv_backlight_device); - - cdv_backlight_device->props.brightness = - cdv_get_brightness(cdv_backlight_device); - backlight_update_status(cdv_backlight_device); - dev_priv->backlight_device = cdv_backlight_device; + cdv_backlight_device = bl; + backlight_update_brightness(bl, cdv_get_brightness(bl)); + dev_priv->backlight_device = bl; dev_priv->backlight_enabled = true; return 0; } diff --git a/drivers/gpu/drm/gma500/mdfld_device.c b/drivers/gpu/drm/gma500/mdfld_device.c index b718efccdcf2..674e6e619d9a 100644 --- a/drivers/gpu/drm/gma500/mdfld_device.c +++ b/drivers/gpu/drm/gma500/mdfld_device.c @@ -42,7 +42,7 @@ int mdfld_set_brightness(struct backlight_device *bd) struct drm_device *dev = (struct drm_device *)bl_get_data(mdfld_backlight_device); struct drm_psb_private *dev_priv = dev->dev_private; - int level = bd->props.brightness; + int level = backlight_get_brightness(bd); DRM_DEBUG_DRIVER("backlight level set to %d\n", level); @@ -113,12 +113,9 @@ static int device_backlight_init(struct drm_device *dev) static int mdfld_backlight_init(struct drm_device *dev) { - struct backlight_properties props; + DECLARE_BACKLIGHT_INIT_PLATFORM(props, BRIGHTNESS_MAX_LEVEL, BRIGHTNESS_MAX_LEVEL); int ret = 0; - memset(&props, 0, sizeof(struct backlight_properties)); - props.max_brightness = BRIGHTNESS_MAX_LEVEL; - props.type = BACKLIGHT_PLATFORM; mdfld_backlight_device = backlight_device_register("mdfld-bl", NULL, (void *)dev, &mdfld_ops, &props); @@ -129,8 +126,6 @@ static int mdfld_backlight_init(struct drm_device *dev) if (ret) return ret; - mdfld_backlight_device->props.brightness = BRIGHTNESS_MAX_LEVEL; - mdfld_backlight_device->props.max_brightness = BRIGHTNESS_MAX_LEVEL; backlight_update_status(mdfld_backlight_device); return 0; } diff --git a/drivers/gpu/drm/gma500/oaktrail_device.c b/drivers/gpu/drm/gma500/oaktrail_device.c index ade7e2416a66..52c0f1a35d3f 100644 --- a/drivers/gpu/drm/gma500/oaktrail_device.c +++ b/drivers/gpu/drm/gma500/oaktrail_device.c @@ -55,7 +55,7 @@ static int oaktrail_set_brightness(struct backlight_device *bd) { struct drm_device *dev = bl_get_data(oaktrail_backlight_device); struct drm_psb_private *dev_priv = dev->dev_private; - int level = bd->props.brightness; + int level = backlight_get_brightness(bd); u32 blc_pwm_ctl; u32 max_pwm_blc; @@ -136,13 +136,9 @@ static const struct backlight_ops oaktrail_ops = { static int oaktrail_backlight_init(struct drm_device *dev) { + DECLARE_BACKLIGHT_INIT_PLATFORM(props, 100, 100); struct drm_psb_private *dev_priv = dev->dev_private; int ret; - struct backlight_properties props; - - memset(&props, 0, sizeof(struct backlight_properties)); - props.max_brightness = 100; - props.type = BACKLIGHT_PLATFORM; oaktrail_backlight_device = backlight_device_register("oaktrail-bl", NULL, (void *)dev, &oaktrail_ops, &props); @@ -155,8 +151,6 @@ static int oaktrail_backlight_init(struct drm_device *dev) backlight_device_unregister(oaktrail_backlight_device); return ret; } - oaktrail_backlight_device->props.brightness = 100; - oaktrail_backlight_device->props.max_brightness = 100; backlight_update_status(oaktrail_backlight_device); dev_priv->backlight_device = oaktrail_backlight_device; return 0; diff --git a/drivers/gpu/drm/gma500/opregion.c b/drivers/gpu/drm/gma500/opregion.c index eab6d889bde9..68587cdf6206 100644 --- a/drivers/gpu/drm/gma500/opregion.c +++ b/drivers/gpu/drm/gma500/opregion.c @@ -163,7 +163,7 @@ static u32 asle_set_backlight(struct drm_device *dev, u32 bclp) if (bclp > 255) return ASLE_BACKLIGHT_FAILED; - gma_backlight_set(dev, bclp * bd->props.max_brightness / 255); + gma_backlight_set(dev, bclp * backlight_get_max_brightness(bd) / 255); asle->cblv = (bclp * 0x64) / 0xff | ASLE_CBLV_VALID; diff --git a/drivers/gpu/drm/gma500/psb_device.c b/drivers/gpu/drm/gma500/psb_device.c index ece994c4c21a..857681b860c4 100644 --- a/drivers/gpu/drm/gma500/psb_device.c +++ b/drivers/gpu/drm/gma500/psb_device.c @@ -92,7 +92,7 @@ static int psb_backlight_setup(struct drm_device *dev) static int psb_set_brightness(struct backlight_device *bd) { struct drm_device *dev = bl_get_data(psb_backlight_device); - int level = bd->props.brightness; + int level = backlight_get_brightness(bd); /* Percentage 1-100% being valid */ if (level < 1) @@ -110,13 +110,9 @@ static const struct backlight_ops psb_ops = { static int psb_backlight_init(struct drm_device *dev) { + DECLARE_BACKLIGHT_INIT_PLATFORM(props, 100, 100); struct drm_psb_private *dev_priv = dev->dev_private; int ret; - struct backlight_properties props; - - memset(&props, 0, sizeof(struct backlight_properties)); - props.max_brightness = 100; - props.type = BACKLIGHT_PLATFORM; psb_backlight_device = backlight_device_register("psb-bl", NULL, (void *)dev, &psb_ops, &props); @@ -129,8 +125,6 @@ static int psb_backlight_init(struct drm_device *dev) psb_backlight_device = NULL; return ret; } - psb_backlight_device->props.brightness = 100; - psb_backlight_device->props.max_brightness = 100; backlight_update_status(psb_backlight_device); dev_priv->backlight_device = psb_backlight_device; diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c index 2411eb9827b8..f13d9861e571 100644 --- a/drivers/gpu/drm/gma500/psb_drv.c +++ b/drivers/gpu/drm/gma500/psb_drv.c @@ -398,12 +398,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags) static inline void get_brightness(struct backlight_device *bd) { -#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE - if (bd) { - bd->props.brightness = bd->ops->get_brightness(bd); - backlight_update_status(bd); - } -#endif + backlight_update_brightness(bd, backlight_get_actual_brightness(bd)); } static long psb_unlocked_ioctl(struct file *filp, unsigned int cmd, From patchwork Sun Aug 23 10:45:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731555 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 46049913 for ; Sun, 23 Aug 2020 10:46:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 24A5120774 for ; Sun, 23 Aug 2020 10:46:19 +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="EPbfWmvF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 24A5120774 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5CCE46E4AE; Sun, 23 Aug 2020 10:46:14 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id E0C726E4A2 for ; Sun, 23 Aug 2020 10:46:03 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id f26so6430792ljc.8 for ; Sun, 23 Aug 2020 03:46:03 -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=X6PZuuW9bKJjgLOX5yF9RqFRPjdIKYkILnp0Ap/l4i0=; b=EPbfWmvFTM5RBovngysc+bkLtfGnDOVVDuwIQW2zhfXUDg1nvV4OdwipwZP383Y9BI pUKOGiHhmAMpvzY4lRxIjvP+8S57ZLE9w/p36ar+pmX5RuXDcHWnfNc4ZAUhzp5CzJDl brPviaKNLkaw9xgmny7S1lvCStuFV66RcMc+9MxvAZnSOfxrIAydomLKAi6yIvpy+k4A Gu12fm7g6grWSvSAB1kLX1uxQDDEKNWjOibCKZZJREszcHRFPXOb0DJpMPlQGqQJ48tL RF9rDR1P8E3zXYO8ftKaz/eIPMBov5jdvk9ZRBCsVqD0Xf3ceuhWSme0Djc1/nnDG/Q2 4cnA== 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=X6PZuuW9bKJjgLOX5yF9RqFRPjdIKYkILnp0Ap/l4i0=; b=RtlZq750nmcV3GDR1U1hlkvyVGKvPp9SbT7tEubyv5iWZYggvCcXO0HbOt+HE8gBxt xaCz6gHtDXctETZqi3vVbf1UVp4lXGB0naOtTuOynWQ1g7s2uZMylnT0JzpHwPy9JOEa jEe6BCloMKKlm9Zg3wmfVDhOig+MzHcyL9iniEewBLuoQzHCSOeAyhyWhvw8aHRu20PA h7UMhzUIZ7b/h1O8MQMm0Em4IJgLyvSBCiu5KPMw5Xd1Z7hjbvyigVtPIpLU2dzeEEg6 +ajxjc/3i7f2CshVBSgSvmN3R+2giJv8oDk8xKSPf5JTIc52SieTevRhyIKpFrRWYs3w qUhQ== X-Gm-Message-State: AOAM532uqO/rWgJI15B9Rg+41oSglbG87k4YXLwCQ9IaFwbm9qonePk1 GAZ/S0U+V/TW114GULBlIWjovU+4/CnhHA== X-Google-Smtp-Source: ABdhPJweQ5KQYSo2Gv07YcP6j+w0GnjvfierTLgHPyCrPWJkBrOeBsM//It9UyKMSn/zwtr+/iKc7g== X-Received: by 2002:a2e:b6cc:: with SMTP id m12mr398821ljo.256.1598179562184; Sun, 23 Aug 2020 03:46:02 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:01 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 08/24] drm/panel: asus-z00t-tm5p5-n35596: Backlight update Date: Sun, 23 Aug 2020 12:45:16 +0200 Message-Id: <20200823104532.1024798-9-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , Konrad Dybcio Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Update backlight to use macro for initialization and the backlight_get_brightness() operation to simply the update operation. Signed-off-by: Sam Ravnborg Cc: Konrad Dybcio Cc: Thierry Reding Cc: Sam Ravnborg --- .../gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c b/drivers/gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c index 39e0f0373f3c..ed742d374696 100644 --- a/drivers/gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c +++ b/drivers/gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c @@ -216,14 +216,9 @@ static const struct drm_panel_funcs tm5p5_nt35596_panel_funcs = { static int tm5p5_nt35596_bl_update_status(struct backlight_device *bl) { struct mipi_dsi_device *dsi = bl_get_data(bl); - u16 brightness = bl->props.brightness; + int brightness = backlight_get_brightness(bl); int ret; - 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; - dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; ret = mipi_dsi_dcs_set_display_brightness(dsi, brightness); @@ -238,7 +233,7 @@ static int tm5p5_nt35596_bl_update_status(struct backlight_device *bl) static int tm5p5_nt35596_bl_get_brightness(struct backlight_device *bl) { struct mipi_dsi_device *dsi = bl_get_data(bl); - u16 brightness = bl->props.brightness; + u16 brightness; int ret; dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; @@ -261,11 +256,7 @@ static struct backlight_device * tm5p5_nt35596_create_backlight(struct mipi_dsi_device *dsi) { struct device *dev = &dsi->dev; - const struct backlight_properties props = { - .type = BACKLIGHT_RAW, - .brightness = 255, - .max_brightness = 255, - }; + DECLARE_BACKLIGHT_INIT_RAW(props, 255, 255); return devm_backlight_device_register(dev, dev_name(dev), dev, dsi, &tm5p5_nt35596_bl_ops, &props); From patchwork Sun Aug 23 10:45:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731559 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 2D945913 for ; Sun, 23 Aug 2020 10:46:22 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0BEA22072D for ; Sun, 23 Aug 2020 10:46:22 +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="AzloU3dB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0BEA22072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 795026E4AF; Sun, 23 Aug 2020 10:46:14 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C8026E4A5 for ; Sun, 23 Aug 2020 10:46:05 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id v4so6472952ljd.0 for ; Sun, 23 Aug 2020 03:46: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=dF9d8I3c1JZSpH3dbgBGj3oM03ESV2nSsHHl2d6BUKI=; b=AzloU3dBhqn6eihWDQz1UdumZlzL7/jL/1M9ey4W8J0xF2sHsneglXAVR+b0RAt/p8 4Akb9IaVMnSc8keLL1u7bk2eHTO7/ZTb68uHhEq5jWhKp8pfw2ANEajfw3TlJ9D/Exry jPQ712KtnJMWBvvIYKbVxFAJluXrwV22GQch5lZ3+Wb4obLo1WY+BO6fJIdrp0rDqahC Ob40dOfJlsJBJX6+M9BXFOHcyAUd2RT8wzUANb9l99pMPh15lJwZjA10UjH/go4wMU/a DFw+JMiEXYV45To+Er6xHBWLC5PsDdT9Pvxoq5RL7sXx9q2YEjWh//vdm+rNep6SxIn0 z5sQ== 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=dF9d8I3c1JZSpH3dbgBGj3oM03ESV2nSsHHl2d6BUKI=; b=DotbFT6VOOTlblpj8ve34okrZk1RBtCJdE03oOrH+JqbMhZ4plYgScM43CSx7NWPBE uHKlvaXyrP74YXlbR8he8vAaVH7IaNbfg6aeGSe2t3G0w315pweR8A0cBQDcCahaSBld jd7/X9fNSzNvxRjRDENnFJIGZDz6WqMK0txJ1Vep7w2melhmPqDGxrPNYR9D5PlYiE6y fwxvZi1o2Vgn7zWhIMEBM6XvxvCB4IGTlfk1aOxXcXo14IEHbtTzZ9rbRn3VqzXvq8c9 w5gEDdO1JNG0BmTWHYKBrUJ+hdx10hTGilXnWrVmsNBFdje3Nk6lWRr4VIXLCMBwFIGy jrbw== X-Gm-Message-State: AOAM532zfK8Sb8jLFTfPQKU/DNL2+jNZ1ez/HY2zbkC0aSLbGEJtcn6w 0+/gHPofDeMkbL5LCCBl79P/AzJPLkP5Xg== X-Google-Smtp-Source: ABdhPJx3EESboLitrlv5FHBJ9EPz7jR1l6SYFmvGLVKF0tD4Gi2b+S04UDbwCrAEqwhF20oAtbgXWQ== X-Received: by 2002:a2e:91d2:: with SMTP id u18mr461792ljg.436.1598179563451; Sun, 23 Aug 2020 03:46:03 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:02 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 09/24] drm/panel: jdi-lt070me05000: Backlight update Date: Sun, 23 Aug 2020 12:45:17 +0200 Message-Id: <20200823104532.1024798-10-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , Vinay Simha BN Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Update backlight to use macro for initialization and the backlight_get_brightness() operation to simply the update operation. Use the drm_panel backlight functionality, which allowed the deletion of the enable and disable functions. Moved init of backlight device so it comes after drm_panel_init(). This is the order that is required by drm_panel. v2: - Use drm_panel based backlight Signed-off-by: Sam Ravnborg Cc: Vinay Simha BN Cc: Thierry Reding Cc: Sam Ravnborg --- .../gpu/drm/panel/panel-jdi-lt070me05000.c | 58 ++++--------------- 1 file changed, 11 insertions(+), 47 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c index 4bfd8c877c8e..d50dbe74b376 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -39,7 +39,6 @@ struct jdi_panel { struct gpio_desc *enable_gpio; struct gpio_desc *reset_gpio; struct gpio_desc *dcdc_en_gpio; - struct backlight_device *backlight; bool prepared; bool enabled; @@ -176,20 +175,6 @@ static void jdi_panel_off(struct jdi_panel *jdi) msleep(100); } -static int jdi_panel_disable(struct drm_panel *panel) -{ - struct jdi_panel *jdi = to_jdi_panel(panel); - - if (!jdi->enabled) - return 0; - - backlight_disable(jdi->backlight); - - jdi->enabled = false; - - return 0; -} - static int jdi_panel_unprepare(struct drm_panel *panel) { struct jdi_panel *jdi = to_jdi_panel(panel); @@ -272,20 +257,6 @@ static int jdi_panel_prepare(struct drm_panel *panel) return ret; } -static int jdi_panel_enable(struct drm_panel *panel) -{ - struct jdi_panel *jdi = to_jdi_panel(panel); - - if (jdi->enabled) - return 0; - - backlight_enable(jdi->backlight); - - jdi->enabled = true; - - return 0; -} - static const struct drm_display_mode default_mode = { .clock = 155493, .hdisplay = 1200, @@ -329,7 +300,7 @@ static int dsi_dcs_bl_get_brightness(struct backlight_device *bl) { struct mipi_dsi_device *dsi = bl_get_data(bl); int ret; - u16 brightness = bl->props.brightness; + u16 brightness; dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; @@ -349,7 +320,7 @@ static int dsi_dcs_bl_update_status(struct backlight_device *bl) dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; - ret = mipi_dsi_dcs_set_display_brightness(dsi, bl->props.brightness); + ret = mipi_dsi_dcs_set_display_brightness(dsi, backlight_get_brightness(bl)); if (ret < 0) return ret; @@ -367,22 +338,15 @@ static struct backlight_device * drm_panel_create_dsi_backlight(struct mipi_dsi_device *dsi) { struct device *dev = &dsi->dev; - struct backlight_properties props; - - memset(&props, 0, sizeof(props)); - props.type = BACKLIGHT_RAW; - props.brightness = 255; - props.max_brightness = 255; + DECLARE_BACKLIGHT_INIT_RAW(props, 255, 255); return devm_backlight_device_register(dev, dev_name(dev), dev, dsi, &dsi_bl_ops, &props); } static const struct drm_panel_funcs jdi_panel_funcs = { - .disable = jdi_panel_disable, .unprepare = jdi_panel_unprepare, .prepare = jdi_panel_prepare, - .enable = jdi_panel_enable, .get_modes = jdi_panel_get_modes, }; @@ -431,16 +395,16 @@ static int jdi_panel_add(struct jdi_panel *jdi) return ret; } - jdi->backlight = drm_panel_create_dsi_backlight(jdi->dsi); - if (IS_ERR(jdi->backlight)) { - ret = PTR_ERR(jdi->backlight); + drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs, + DRM_MODE_CONNECTOR_DSI); + + jdi->base.backlight = drm_panel_create_dsi_backlight(jdi->dsi); + if (IS_ERR(jdi->base.backlight)) { + ret = PTR_ERR(jdi->base.backlight); dev_err(dev, "failed to register backlight %d\n", ret); return ret; } - drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs, - DRM_MODE_CONNECTOR_DSI); - ret = drm_panel_add(&jdi->base); return ret; @@ -482,7 +446,7 @@ static int jdi_panel_remove(struct mipi_dsi_device *dsi) struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi); int ret; - ret = jdi_panel_disable(&jdi->base); + ret = drm_panel_disable(&jdi->base); if (ret < 0) dev_err(&dsi->dev, "failed to disable panel: %d\n", ret); @@ -500,7 +464,7 @@ static void jdi_panel_shutdown(struct mipi_dsi_device *dsi) { struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi); - jdi_panel_disable(&jdi->base); + drm_panel_disable(&jdi->base); } static struct mipi_dsi_driver jdi_panel_driver = { From patchwork Sun Aug 23 10:45:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731563 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 ECFFC913 for ; Sun, 23 Aug 2020 10:46:24 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CB11E2072D for ; Sun, 23 Aug 2020 10:46: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="lVmKX6xI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CB11E2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6E5856E4BA; Sun, 23 Aug 2020 10:46:16 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 711696E4A2 for ; Sun, 23 Aug 2020 10:46:06 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id f26so6430842ljc.8 for ; Sun, 23 Aug 2020 03:46:06 -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=7lWhA0BYbPCSLHXU1/4K+CyGmerfjzXfaP8MVDvqeBE=; b=lVmKX6xInmUbmU2AWmtGLOMZW0ujNTCEYxhdlWCaobw/U8i7o6AxjleoDkaGd95J90 I+BYeVEySTUAuGEwTPmCaSJgjzWoA8f6QPTNi3QqfFr+Ts561guyTqr2k/OEZC6dA8Xe MF63v66UmCMDmGYrB8M9nIhj1js/CRPksJ62yuDeG4rPA7/jp5FshEz6ni+VTLQ+dhla +03M+raqQG/NIlKFmoT45SqDW5XckoMGx9eVEUopslEsE+7ZCK1gxUuX9Mnu8bLwoVwI Bv9+SEwTnzD6/UuoYTTCha7iKSO/J5BXW9DsIOJPH0BGcc1xB5CkewxOpC0/un4n+JUm g5qA== 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=7lWhA0BYbPCSLHXU1/4K+CyGmerfjzXfaP8MVDvqeBE=; b=bu7lbyXsD7Mj7U6vCPOKhymN8VYFStF8ZKp7JunimBaBp0wFrIpgGYAoaXwRBwUu9Y cD4UMvsE2KvEhkDjZ6pTUf1GRAQPJmwNQkudYiqlH/R/sg80DoGTxWbfsHMZd3MEjTT+ Evg/ak4QFD/ZJCyK9n+GwCp69L7Kuz6WgYV+mt6Racv182at3CSdOevGW/JBD2onxeKX nLYidZ06byQBYIE6TajyA9PNzGOvTcu3qssWCqzMHRF0ElRjrJu46v0gF75MA2TDqU7r sBiGjd7ABtxXXsNi4d0lSflw5aED5Es0ELmyno9/RGQdheK76o0cT83R2Gm3AwfklZHx psFw== X-Gm-Message-State: AOAM5313FvlmLRDZpcurbgSxbQm9DH1nIj+VU3lKmqVoTvIqxrTv4Sge y60zVGztRSuCx0SyszlmzGfslYVPZOLLug== X-Google-Smtp-Source: ABdhPJwg1brrxjpNESG1fQGbFoD+LVBGn8t93D1s5RCtW1PPt9ivoEAQtEaBcUJpKpCxqxiHjWiI3g== X-Received: by 2002:a05:651c:294:: with SMTP id b20mr421482ljo.4.1598179564700; Sun, 23 Aug 2020 03:46:04 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:04 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 10/24] drm/panel: novatek-nt35510: Backlight update Date: Sun, 23 Aug 2020 12:45:18 +0200 Message-Id: <20200823104532.1024798-11-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Replace direct access to backlight_properties with backlight_get_brightness(). - Drop debug printout - Use macro for initialization Signed-off-by: Sam Ravnborg Cc: Linus Walleij Cc: Thierry Reding Cc: Sam Ravnborg Reviewed-by: Linus Walleij --- drivers/gpu/drm/panel/panel-novatek-nt35510.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c index 4a8fa908a2cf..ee4919a27480 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c @@ -654,10 +654,9 @@ static int nt35510_set_brightness(struct backlight_device *bl) { struct nt35510 *nt = bl_get_data(bl); struct mipi_dsi_device *dsi = to_mipi_dsi_device(nt->dev); - u8 brightness = bl->props.brightness; + u8 brightness = backlight_get_brightness(bl); int ret; - DRM_DEV_DEBUG(nt->dev, "set brightness %d\n", brightness); ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS, &brightness, sizeof(brightness)); @@ -943,16 +942,14 @@ static int nt35510_probe(struct mipi_dsi_device *dsi) } if (!nt->panel.backlight) { struct backlight_device *bl; + DECLARE_BACKLIGHT_INIT_RAW(props, 255, 255); bl = devm_backlight_device_register(dev, "nt35510", dev, nt, - &nt35510_bl_ops, NULL); + &nt35510_bl_ops, &props); if (IS_ERR(bl)) { DRM_DEV_ERROR(dev, "failed to register backlight device\n"); return PTR_ERR(bl); } - bl->props.max_brightness = 255; - bl->props.brightness = 255; - bl->props.power = FB_BLANK_POWERDOWN; nt->panel.backlight = bl; } From patchwork Sun Aug 23 10:45:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731553 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 D0161109B for ; Sun, 23 Aug 2020 10:46:17 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AC4072072D for ; Sun, 23 Aug 2020 10:46: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="HEPrc0pt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AC4072072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C9C576E4A5; Sun, 23 Aug 2020 10:46:13 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id C08166E4A5 for ; Sun, 23 Aug 2020 10:46:07 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id g6so6416390ljn.11 for ; Sun, 23 Aug 2020 03:46: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=tDAh/5RDQvY0YOjmGtHlH46aL/7DLKEfKHORvRyd4Ag=; b=HEPrc0pt15KA6kt2YSMGzEvtvYbjkKxMqj5DDlZakgqnYqMThNgYqkZXhbeGf33Po4 2lP8gFt7aKtCsiCdhzds4UD/dGg7DhNwhO5+Hz/HxFdH080PX7J4zdmfCGkOl8cRKZJS EGtrNJAnLXOpx32mobQtJ8HUSvJHjj0tOeCaMa9PK9MJsNfa092fTxGrfpPmFfpvtm7p dEkK4Vf/boQwvzVafdLvfJl/SQEhzcH9P1mcwPw10mspSv8059flXx21l9vBVuWb/Fsz HRhBEh39q4+m0YrG+py+sf0yWSgthrrVGFYgW0WoZEHzMxLyxYohcBmZbtQVCnfNd4XH 4nQA== 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=tDAh/5RDQvY0YOjmGtHlH46aL/7DLKEfKHORvRyd4Ag=; b=ekUCezwWUqmGoy7hKFC2MslmnSfd8do9Q/Znfd5Mz8Y7Li44EeDMzoh8v0cUINNPZ/ dQ5dMjpeywCoa/V/7cJX7ajMc/zccc6Y+RYCqKX3u0o77KRMZBn+k6oGsYQ1glIChrZs +ao950OomX+bGtwvh+w+j90CbnCV6e6M1+JLtjWk1yuQifiFq4fD1eIZ55RegEWVAixv bsa8Y8A+R0niFhFxtpO1qbQqw5W2G0dV90OfOAEoRnZITOzUVHug1C8liLb2yXED/m6s QrQ7r2xEVE6QOBhcG45Wnq21g2sK2TlE4oZ43ypdi6XXYKKD5lLf2ti5sNDML46o+ukI taZQ== X-Gm-Message-State: AOAM531WQeI/2etzlPTcOVcg4Ho1GMigjUI/ztQ5O8barlOYqXggThO6 CZPsjc1CICMAznRwUN8CCrnP9FU96Asrzw== X-Google-Smtp-Source: ABdhPJynAxUa0jW7TJ6Y4fm/6p8ThdkY5OkypbB/UMfo+seXj3tYCSQDM+xrKZoBHIHO0dKTgx9o6Q== X-Received: by 2002:a2e:9a8e:: with SMTP id p14mr419337lji.300.1598179566029; Sun, 23 Aug 2020 03:46:06 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:05 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 11/24] drm/panel: orisetech-otm8009a: Backlight update Date: Sun, 23 Aug 2020 12:45:19 +0200 Message-Id: <20200823104532.1024798-12-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , Philippe CORNU Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Replace direct access to backlight_properties with backlight_get_brightness(). - Use brightness and not power to determine if backlight is off - Use the devm_ variant for registering backlight device, and drop all explicit unregistering of the backlight device. Signed-off-by: Sam Ravnborg Cc: Philippe CORNU Cc: Thierry Reding Cc: Sam Ravnborg --- drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c index bb0c992171e8..e6534cca2a84 100644 --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c @@ -388,6 +388,7 @@ static const struct drm_panel_funcs otm8009a_drm_funcs = { static int otm8009a_backlight_update_status(struct backlight_device *bd) { struct otm8009a *ctx = bl_get_data(bd); + u8 brightness = backlight_get_brightness(bd); u8 data[2]; if (!ctx->prepared) { @@ -395,13 +396,13 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd) return -ENXIO; } - if (bd->props.power <= FB_BLANK_NORMAL) { + if (brightness > 0) { /* Power on the backlight with the requested brightness * Note We can not use mipi_dsi_dcs_set_display_brightness() * as otm8009a driver support only 8-bit brightness (1 param). */ data[0] = MIPI_DCS_SET_DISPLAY_BRIGHTNESS; - data[1] = bd->props.brightness; + data[1] = brightness; otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data)); /* set Brightness Control & Backlight on */ @@ -428,6 +429,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) struct device *dev = &dsi->dev; struct otm8009a *ctx; int ret; + DECLARE_BACKLIGHT_INIT_RAW(props, OTM8009A_BACKLIGHT_DEFAULT, OTM8009A_BACKLIGHT_MAX); ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); if (!ctx) @@ -462,25 +464,19 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev), dsi->host->dev, ctx, &otm8009a_backlight_ops, - NULL); + &props); if (IS_ERR(ctx->bl_dev)) { ret = PTR_ERR(ctx->bl_dev); dev_err(dev, "failed to register backlight: %d\n", ret); return ret; } - ctx->bl_dev->props.max_brightness = OTM8009A_BACKLIGHT_MAX; - ctx->bl_dev->props.brightness = OTM8009A_BACKLIGHT_DEFAULT; - ctx->bl_dev->props.power = FB_BLANK_POWERDOWN; - ctx->bl_dev->props.type = BACKLIGHT_RAW; - drm_panel_add(&ctx->panel); ret = mipi_dsi_attach(dsi); if (ret < 0) { dev_err(dev, "mipi_dsi_attach failed. Is host ready?\n"); drm_panel_remove(&ctx->panel); - backlight_device_unregister(ctx->bl_dev); return ret; } From patchwork Sun Aug 23 10:45:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731575 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 A684B109B for ; Sun, 23 Aug 2020 10:46:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8479B2072D for ; Sun, 23 Aug 2020 10:46:39 +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="qVR+Dxwb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8479B2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EC0B76E4C4; Sun, 23 Aug 2020 10:46:35 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com [IPv6:2a00:1450:4864:20::142]) by gabe.freedesktop.org (Postfix) with ESMTPS id 27AD76E4A5 for ; Sun, 23 Aug 2020 10:46:09 +0000 (UTC) Received: by mail-lf1-x142.google.com with SMTP id c8so2975647lfh.9 for ; Sun, 23 Aug 2020 03:46:09 -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=maHW2e0NnSMYHIlzXCYVNcTAjo21ZJ2pCny7UdG3764=; b=qVR+DxwbTbdo7zSxkLnOKKJP3WVmMRtNXzpr2JK25TNbE8mfyyzQv+1qOXFWIDp9U7 cfGyMAjYd5seTu+DaRuJrd5Haay6LG7WzQyHnzfmS4olfRh9gAdZLy31mxWqjH7fjBr0 2LFMafMCxUDdKu13KQSCnRFISOe29Vsye0CjDX0MeZyN9LSnjCz+qS7ZyfTE10SLh0At fdMU3mejmx5GuE84d/pPUYr8SwFUlibvymk8uxEP5Se4q75BoXt0J3AA3tp7X88zdvZ0 mpBS8VmceHCcPj+9aJCd9C3gDK5X3qZPkHzuS4m66CIOIHJsnMbojj8uNhX3CYy7pqKv k1fA== 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=maHW2e0NnSMYHIlzXCYVNcTAjo21ZJ2pCny7UdG3764=; b=aIEf8xFhrVt/ff/ijmd61S7TSDCEzlyAkPNFsC5dqqVGAqEFXZSJYMxdXvxIIFU6I0 j4nVnB5a1+BPJG08T2Ciiww77FAJxrsjKlAmqCHOOdaMz79TykW7eOkytLj035qatXhF vlUzMLBZm8k8h0J+7IfDZGkMhj4DbulTIvftRFuko3pndsmvXtC+FIYlCYAd5aaB2Oqo 360cMOP1wIoV3+08WwHUHns4i9z7VkaHsEssn5eSe0iTOcDTi7UCDPg3xQs1juomFin6 eLY67COCYK8DkPT89yeeVQXEfPo6TuO32XFsiDBSij2VFqzQVNG6zXNuGY6NFEfuBg9h 8WUw== X-Gm-Message-State: AOAM5325yuPSbrearIdrjOir+4JV06WD+bkikkaLraNyVEyVcvnlVG4k hTDwuWCOCN76Q6TMqHTlXpxUBwbUHiev7Q== X-Google-Smtp-Source: ABdhPJySOxJ+7w28VYMGADIsFaVdl8XLmsvAVmzJ1O50Mp4wyyF+k3updmNtH/tVEiHBybHQbJ+kCg== X-Received: by 2002:a19:4f5d:: with SMTP id a29mr420642lfk.107.1598179567438; Sun, 23 Aug 2020 03:46:07 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:07 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 12/24] drm/panel: raydium-rm67191: Backlight update Date: Sun, 23 Aug 2020 12:45:20 +0200 Message-Id: <20200823104532.1024798-13-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Robert Chiras , Daniel Vetter , Thierry Reding , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Replace direct access to backlight_properties with backlight_get_brightness(). - Use macro for initialization Signed-off-by: Sam Ravnborg Cc: Robert Chiras Cc: Thierry Reding Cc: Sam Ravnborg --- drivers/gpu/drm/panel/panel-raydium-rm67191.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c index 313637d53d28..5553db385dd5 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c @@ -479,7 +479,7 @@ static int rad_bl_get_brightness(struct backlight_device *bl) if (ret < 0) return ret; - bl->props.brightness = brightness; + backlight_set_brightness(bl, brightness); return brightness & 0xff; } @@ -495,7 +495,7 @@ static int rad_bl_update_status(struct backlight_device *bl) dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; - ret = mipi_dsi_dcs_set_display_brightness(dsi, bl->props.brightness); + ret = mipi_dsi_dcs_set_display_brightness(dsi, backlight_get_brightness(bl)); if (ret < 0) return ret; @@ -539,10 +539,10 @@ static int rad_init_regulators(struct rad_panel *rad) static int rad_panel_probe(struct mipi_dsi_device *dsi) { + DECLARE_BACKLIGHT_INIT_RAW(bl_props, 255, 255); struct device *dev = &dsi->dev; struct device_node *np = dev->of_node; struct rad_panel *panel; - struct backlight_properties bl_props; int ret; u32 video_mode; @@ -588,11 +588,6 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi) if (IS_ERR(panel->reset)) return PTR_ERR(panel->reset); - memset(&bl_props, 0, sizeof(bl_props)); - bl_props.type = BACKLIGHT_RAW; - bl_props.brightness = 255; - bl_props.max_brightness = 255; - panel->backlight = devm_backlight_device_register(dev, dev_name(dev), dev, dsi, &rad_bl_ops, &bl_props); From patchwork Sun Aug 23 10:45:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731573 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 23A57913 for ; Sun, 23 Aug 2020 10:46:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 01CDB2072D for ; Sun, 23 Aug 2020 10:46:37 +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="daNcE8X/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 01CDB2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 955F26E4C1; Sun, 23 Aug 2020 10:46:35 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7AD5F6E4A7 for ; Sun, 23 Aug 2020 10:46:10 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id v9so6452450ljk.6 for ; Sun, 23 Aug 2020 03:46: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=ms+vSs7TQLQTH9okRwORUwhTV9LkYUiiCyhq8TlkX0Y=; b=daNcE8X/FU5KqHBjaevNeNJsYRSzAfH0mYvQxEgYjicqQAKPSNeu4hUPj7FYVqjI37 Irby/sx6p4+GK25onyTheNAdM/JkSadvETNeZNfk89xJZnZEKaZ5W5u4h+ALORZLB10w u0fCxKdUmgXnlOGnw7kAom46WOoF84jvucnelvs2cAhfk1aL8Gg6qWM4bmUHLak3kjRm nhScsqn0jof0sdlfR7MnrxsbRGg0GE4N9XvlhAD/humrepF14h+ltbGgihzZYyh+ccB0 h1WuWVq/ttHa2vS3HWOTgxZgQTfhote0IgPahii9adTeKdRBtnSw5KF09C7E+4Yp0GYb irEA== 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=ms+vSs7TQLQTH9okRwORUwhTV9LkYUiiCyhq8TlkX0Y=; b=hmS2uJ6rE3gmxfeKmHUW6jERIB1+UKp8pFLjDOBwyDaLOFfXffK1X3fdv14LMtrfQa sFus+RVN2KLYDJOdanl8iDIBf3HUBzY2N6mMtPnOvuYBW/WtAobu+fM9UNlN9CirduNl KQkAODhE1KOst1yiahA+/LbZKrz+gTQe5iZ1omC3Zul1efwBXV18ieMSRo64sC73yxP5 lTP+aLvr2j4VvfmUrBCs6Dy7hcJbrvIYO92MGEBzjYdCVWSSByCA9Z8IBqxB+ZuJRUUP T/u+iofsnL24+ZVutqv9vRrdoiYHHTNbfocBPtoa351jMkHqGc7gJng9Mbc8HGGhzePX DPbg== X-Gm-Message-State: AOAM532xTeNyenSsKhUythXDIis/89Ciu26PC7rZNtGs3tiZSD+U5XAr AzDupjWZVabQ1eq/MLZCV1bei0P2xFKPTA== X-Google-Smtp-Source: ABdhPJxiiQlHKf1d7n8sav95arTYgW60M9ZNhCDgSHQd0EzV3RT1NSlt8+gXCsmLT5PMBtCQOeKCjA== X-Received: by 2002:a2e:9019:: with SMTP id h25mr445850ljg.186.1598179568686; Sun, 23 Aug 2020 03:46:08 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:08 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 13/24] drm/panel: samsung-s6e63m0: Backlight update Date: Sun, 23 Aug 2020 12:45:21 +0200 Message-Id: <20200823104532.1024798-14-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , =?utf-8?q?Pawe=C5=82_Chmiel?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use drm_panel backlight support - Use macro for backlight initialization Signed-off-by: Sam Ravnborg Cc: Paweł Chmiel Cc: Thierry Reding Cc: Sam Ravnborg --- drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c index a5f76eb4fa25..e30ef655a3c3 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c @@ -89,7 +89,6 @@ static u8 const s6e63m0_gamma_22[NUM_GAMMA_LEVELS][GAMMA_TABLE_COUNT] = { struct s6e63m0 { struct device *dev; struct drm_panel panel; - struct backlight_device *bl_dev; struct regulator_bulk_data supplies[2]; struct gpio_desc *reset_gpio; @@ -293,8 +292,6 @@ static int s6e63m0_disable(struct drm_panel *panel) if (!ctx->enabled) return 0; - backlight_disable(ctx->bl_dev); - s6e63m0_dcs_write_seq_static(ctx, MIPI_DCS_ENTER_SLEEP_MODE); msleep(200); @@ -355,8 +352,6 @@ static int s6e63m0_enable(struct drm_panel *panel) s6e63m0_dcs_write_seq_static(ctx, MIPI_DCS_SET_DISPLAY_ON); - backlight_enable(ctx->bl_dev); - ctx->enabled = true; return 0; @@ -395,7 +390,7 @@ static int s6e63m0_set_brightness(struct backlight_device *bd) { struct s6e63m0 *ctx = bl_get_data(bd); - int brightness = bd->props.brightness; + int brightness = backlight_get_brightness(bd); /* disable and set new gamma */ s6e63m0_dcs_write(ctx, s6e63m0_gamma_22[brightness], @@ -413,23 +408,21 @@ static const struct backlight_ops s6e63m0_backlight_ops = { static int s6e63m0_backlight_register(struct s6e63m0 *ctx) { - struct backlight_properties props = { - .type = BACKLIGHT_RAW, - .brightness = MAX_BRIGHTNESS, - .max_brightness = MAX_BRIGHTNESS - }; + DECLARE_BACKLIGHT_INIT_RAW(props, MAX_BRIGHTNESS, MAX_BRIGHTNESS); struct device *dev = ctx->dev; + struct backlight_device *bd; int ret = 0; - ctx->bl_dev = devm_backlight_device_register(dev, "panel", dev, ctx, - &s6e63m0_backlight_ops, - &props); - if (IS_ERR(ctx->bl_dev)) { - ret = PTR_ERR(ctx->bl_dev); + bd = devm_backlight_device_register(dev, "panel", dev, ctx, + &s6e63m0_backlight_ops, &props); + if (IS_ERR(bd)) { + ret = PTR_ERR(bd); DRM_DEV_ERROR(dev, "error registering backlight device (%d)\n", ret); + return ret; } + ctx->panel.backlight = bd; return ret; } From patchwork Sun Aug 23 10:45:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731551 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 D086A913 for ; Sun, 23 Aug 2020 10:46:14 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AF2E02072D for ; Sun, 23 Aug 2020 10:46: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="bIPZnx3V" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AF2E02072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 798E96E4A2; Sun, 23 Aug 2020 10:46:13 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) by gabe.freedesktop.org (Postfix) with ESMTPS id BFE6C6E4A5 for ; Sun, 23 Aug 2020 10:46:11 +0000 (UTC) Received: by mail-lf1-x141.google.com with SMTP id x64so2036307lff.0 for ; Sun, 23 Aug 2020 03:46: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=QNRC5wV4KEWH+GXJnLufA1liOvhhBAmH9Vb7hJtP3Rg=; b=bIPZnx3VD/Qu8tDO1+EXUJK3IdIlWnwB0FcaIVgRCl2fVF7IEOSvxAalhX6Kih8DsJ df4lM9VPbSuLlV+XKeMe2y0TdWEcRsGZIeV2VjpiemaAPGI4hcWWLIBnBB9Z4XqAWPM9 3cBIHLV3g0FKlXblDRLC1cJErBRX7XmQErmiFZETQ/RgJdOaMp3/O0y3TFQH9OSi8FVh pzEK71FSrshWdSwPjPfoicJaemH7CsY4s3hfzTzKx5ok2lz6KNwe79ihtNhGszIKBCwb 8oONJecasVoTtjwQtEdcMXLD9MZ2n0FgnDLGfJhlSl/RTbRjfdM1fQyque3f/Kn9yFLi g29Q== 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=QNRC5wV4KEWH+GXJnLufA1liOvhhBAmH9Vb7hJtP3Rg=; b=PIZFvPj6ctlBHYbUcGBHYxJbzXnpPgZnEBTFIP1uO7vAclOI/q2N5I5M9+OR56BIEC WbODMtVxZxHER95mI1wD9Ky5WVwzVa7l8Sj+MruW0b0Y5r/w1K2MpcCg3bhLz9job40+ gWuPkgVjExW0fPaH4EQhZpCZJ5392+7RO8DB3PVHo97/P+Tdog9iihYeUnZalJHEHMI9 2GhOf4ZgjnA+cDAFernLQU8P1fh0u+y5volkhFXIuDNscbuEpXBGygBhv6Hl/NYpmoxy qWFBjE9hFUd3fCieY/SZs35XAuet09EJex1nplf0+E3drsj7VBh5xWGg928oDqSogWbn 7qSw== X-Gm-Message-State: AOAM530ngW8iSuJxVAhz+Gf5oViY+0Xn5G3eWjyQcbjqGWYJ4ycWfH2C FwjIRxeft/MdqbS2SM5bzNItDaGMg4Rp2g== X-Google-Smtp-Source: ABdhPJwsWeG06kJGmNk7jZMS+CSLJKp7zfCcKxCepS2nrFfsAZ1dBjcBtmnozowmzrh+Ut0VqoKLJw== X-Received: by 2002:a19:8392:: with SMTP id f140mr406745lfd.45.1598179569975; Sun, 23 Aug 2020 03:46:09 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:09 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 14/24] drm/panel: samsung-s6e63j0x03: Backlight update Date: Sun, 23 Aug 2020 12:45:22 +0200 Message-Id: <20200823104532.1024798-15-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , Hoegeun Kwon Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use backlight support from drm_panel. This shifts this driver away from manually handling of power state. - Add helper function for registering backlight, like other samsung panel drivers do. - Use devm_ for backlight register thus benefit from automatic unregistering. Drop all explicit unregistering. Signed-off-by: Sam Ravnborg Cc: Thierry Reding Cc: Hoegeun Kwon Cc: Inki Dae Cc: Sam Ravnborg --- .../gpu/drm/panel/panel-samsung-s6e63j0x03.c | 53 +++++++++---------- 1 file changed, 24 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c index a3570e0a90a8..0b38fc5d7326 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c @@ -36,7 +36,6 @@ struct s6e63j0x03 { struct device *dev; struct drm_panel panel; - struct backlight_device *bl_dev; struct regulator_bulk_data supplies[2]; struct gpio_desc *reset_gpio; @@ -184,7 +183,6 @@ static unsigned int s6e63j0x03_get_brightness_index(unsigned int brightness) static int s6e63j0x03_update_gamma(struct s6e63j0x03 *ctx, unsigned int brightness) { - struct backlight_device *bl_dev = ctx->bl_dev; unsigned int index = s6e63j0x03_get_brightness_index(brightness); int ret; @@ -200,15 +198,13 @@ static int s6e63j0x03_update_gamma(struct s6e63j0x03 *ctx, if (ret < 0) return ret; - bl_dev->props.brightness = brightness; - return 0; } static int s6e63j0x03_set_brightness(struct backlight_device *bl_dev) { struct s6e63j0x03 *ctx = bl_get_data(bl_dev); - unsigned int brightness = bl_dev->props.brightness; + unsigned int brightness = backlight_get_brightness(bl_dev); return s6e63j0x03_update_gamma(ctx, brightness); } @@ -227,8 +223,6 @@ static int s6e63j0x03_disable(struct drm_panel *panel) if (ret < 0) return ret; - ctx->bl_dev->props.power = FB_BLANK_NORMAL; - ret = mipi_dsi_dcs_enter_sleep_mode(dsi); if (ret < 0) return ret; @@ -247,8 +241,6 @@ static int s6e63j0x03_unprepare(struct drm_panel *panel) if (ret < 0) return ret; - ctx->bl_dev->props.power = FB_BLANK_POWERDOWN; - return 0; } @@ -334,8 +326,6 @@ static int s6e63j0x03_prepare(struct drm_panel *panel) if (ret < 0) goto err; - ctx->bl_dev->props.power = FB_BLANK_NORMAL; - return 0; err: @@ -395,8 +385,6 @@ static int s6e63j0x03_enable(struct drm_panel *panel) if (ret < 0) return ret; - ctx->bl_dev->props.power = FB_BLANK_UNBLANK; - return 0; } @@ -432,6 +420,25 @@ static const struct drm_panel_funcs s6e63j0x03_funcs = { .get_modes = s6e63j0x03_get_modes, }; +static int s6e63j0x03_backlight_register(struct s6e63j0x03 *ctx) +{ + DECLARE_BACKLIGHT_INIT_RAW(props, DEFAULT_BRIGHTNESS, MAX_BRIGHTNESS); + struct device *dev = ctx->dev; + struct backlight_device *bd; + int ret = 0; + + bd = devm_backlight_device_register(dev, "panel", dev, ctx, + &s6e63j0x03_bl_ops, &props); + if (IS_ERR(bd)) { + ret = PTR_ERR(bd); + dev_err(dev, "error registering backlight device (%d)\n", ret); + return ret; + } + + ctx->panel.backlight = bd; + return ret; +} + static int s6e63j0x03_probe(struct mipi_dsi_device *dsi) { struct device *dev = &dsi->dev; @@ -469,20 +476,13 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi) drm_panel_init(&ctx->panel, dev, &s6e63j0x03_funcs, DRM_MODE_CONNECTOR_DSI); - ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx, - &s6e63j0x03_bl_ops, NULL); - if (IS_ERR(ctx->bl_dev)) { - dev_err(dev, "failed to register backlight device\n"); - return PTR_ERR(ctx->bl_dev); - } - - ctx->bl_dev->props.max_brightness = MAX_BRIGHTNESS; - ctx->bl_dev->props.brightness = DEFAULT_BRIGHTNESS; - ctx->bl_dev->props.power = FB_BLANK_POWERDOWN; + ret = s6e63j0x03_backlight_register(ctx); + if (ret) + return ret; ret = drm_panel_add(&ctx->panel); if (ret < 0) - goto unregister_backlight; + return ret; ret = mipi_dsi_attach(dsi); if (ret < 0) @@ -493,9 +493,6 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi) remove_panel: drm_panel_remove(&ctx->panel); -unregister_backlight: - backlight_device_unregister(ctx->bl_dev); - return ret; } @@ -506,8 +503,6 @@ static int s6e63j0x03_remove(struct mipi_dsi_device *dsi) mipi_dsi_detach(dsi); drm_panel_remove(&ctx->panel); - backlight_device_unregister(ctx->bl_dev); - return 0; } From patchwork Sun Aug 23 10:45:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731561 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 9657F913 for ; Sun, 23 Aug 2020 10:46:23 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 74AAD2072D for ; Sun, 23 Aug 2020 10:46: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="IfpqUiII" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74AAD2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8DF6A6E4B5; Sun, 23 Aug 2020 10:46:15 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 076336E4A5 for ; Sun, 23 Aug 2020 10:46:13 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id m22so6442265ljj.5 for ; Sun, 23 Aug 2020 03:46: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=CGjyfF6xlJLEfzU1EzO7NPKZQ2d79Yj/uLVZtkQ1OHc=; b=IfpqUiII/eU5YrnJp6zTwZsD/lRj6HilZJpfUhr8Sv7816lU692mHQoqdpXKyARkYg 82gk7nNCQ0SU0ZiqB7AqSjPIiulhgex/e4OSs4HTm1h2k0RkQ5onpVLNS3w//W8I0d9B dyZvBvzs0EvCXwNTFppYx47MRFs1AYwTa5UD/U/RBbCEIZ94zx4nxHSYwP/gZCuLlQ2i e8YFLdndxNKUyDSe1bFy8T6RNJDF8fhaUuvpU7c/x+EjVXsl/cylJn/WAOALmvXG5JFe R7wAQ8U8yNY56piHNTz9+gjygNen35w1cgp8KxFJLs/YnZlQsCChT164MG7sODBT9idp Ey6g== 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=CGjyfF6xlJLEfzU1EzO7NPKZQ2d79Yj/uLVZtkQ1OHc=; b=UPCqP76rqrSZhdo2TzOFfLfMrog3Cwf9aPBFYnUozgwFGSx2URp44m/4dKmkwnr8Gw qMLGdQONAMdHQmQjzi6uXpmwlOGDPZWYrp8VfCSsWLGl0e30esrqrZQM7yU2jpr+wV0B xDmtF9XsiKqiDUofCWcK+KJpop6jslFPhGLEEWdHB96a6xYD9GxA7k4S2bX+9ByWetC8 AIXVUaA1PS6ZLwrOjs0sy8LgQW4a9NUgRd8nk7tnGmMbH6cBaZnx7lc12UnSA22dC85f ySx3B1uJgNttjLg6f0RJ6AmcLQ7ALrQ5EU0nvCZc/YBia6g/ZLKk3EYK52uxST3drduQ U0DQ== X-Gm-Message-State: AOAM532xIlVt7Nd9IgvCkgI+i05HeC+MykvYI0GirVuKKgfSqb3EBKqC SfjIleoHftIrlGrDF0vtFUdBYn3wktQsXA== X-Google-Smtp-Source: ABdhPJwgoS7wpcUnDAOQR3clej/964RQG37/B6w7eQhCx1UWXX6aMy0piUAvXQb5OrWeODlbDxCiMg== X-Received: by 2002:a05:651c:153:: with SMTP id c19mr468172ljd.170.1598179571271; Sun, 23 Aug 2020 03:46:11 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:10 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 15/24] drm/panel: samsung-s6e3ha2: Backlight update Date: Sun, 23 Aug 2020 12:45:23 +0200 Message-Id: <20200823104532.1024798-16-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , Hoegeun Kwon Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use backlight support from drm_panel. This shifts this driver away from manually handling of power state. - Add helper function for registering backlight, like other samsung panel drivers do. - Register backlight driver after drm_panel_init - Use devm_ for backlight register thus benefit from automatic unregistering. Drop all explicit unregistering. In s6e3ha2_disable() a 40 ms delay was dropped. Using drm_panel support backlight is disabled before display is turned off, so delay after turning off the display is irrelevant. Signed-off-by: Sam Ravnborg Cc: Thierry Reding Cc: Sam Ravnborg Cc: Hoegeun Kwon Cc: Inki Dae --- drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 70 ++++++++----------- 1 file changed, 31 insertions(+), 39 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c index 36ebd5a4ac7b..563c24fcc987 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c @@ -233,7 +233,6 @@ struct s6e3ha2_panel_desc { struct s6e3ha2 { struct device *dev; struct drm_panel panel; - struct backlight_device *bl_dev; struct regulator_bulk_data supplies[2]; struct gpio_desc *reset_gpio; @@ -408,15 +407,10 @@ static int s6e3ha2_gamma_update(struct s6e3ha2 *ctx) return 0; } -static int s6e3ha2_get_brightness(struct backlight_device *bl_dev) -{ - return bl_dev->props.brightness; -} - static int s6e3ha2_set_vint(struct s6e3ha2 *ctx) { - struct backlight_device *bl_dev = ctx->bl_dev; - unsigned int brightness = bl_dev->props.brightness; + struct backlight_device *bl_dev = ctx->panel.backlight; + unsigned int brightness = backlight_get_brightness(bl_dev); unsigned char data[] = { 0xf4, 0x8b, vint_table[brightness * (S6E3HA2_VINT_STATUS_MAX - 1) / S6E3HA2_MAX_BRIGHTNESS] }; @@ -432,7 +426,7 @@ static unsigned int s6e3ha2_get_brightness_index(unsigned int brightness) static int s6e3ha2_update_gamma(struct s6e3ha2 *ctx, unsigned int brightness) { - struct backlight_device *bl_dev = ctx->bl_dev; + struct backlight_device *bl_dev = ctx->panel.backlight; unsigned int index = s6e3ha2_get_brightness_index(brightness); u8 data[S6E3HA2_GAMMA_CMD_CNT + 1] = { 0xca, }; int ret; @@ -442,7 +436,7 @@ static int s6e3ha2_update_gamma(struct s6e3ha2 *ctx, unsigned int brightness) s6e3ha2_dcs_write(ctx, data, ARRAY_SIZE(data))); s6e3ha2_call_write_func(ret, s6e3ha2_gamma_update(ctx)); - bl_dev->props.brightness = brightness; + backlight_set_brightness(bl_dev, brightness); return 0; } @@ -450,18 +444,15 @@ static int s6e3ha2_update_gamma(struct s6e3ha2 *ctx, unsigned int brightness) static int s6e3ha2_set_brightness(struct backlight_device *bl_dev) { struct s6e3ha2 *ctx = bl_get_data(bl_dev); - unsigned int brightness = bl_dev->props.brightness; + unsigned int brightness = backlight_get_brightness(bl_dev); int ret; if (brightness < S6E3HA2_MIN_BRIGHTNESS || - brightness > bl_dev->props.max_brightness) { + brightness > backlight_get_max_brightness(bl_dev)) { dev_err(ctx->dev, "Invalid brightness: %u\n", brightness); return -EINVAL; } - if (bl_dev->props.power > FB_BLANK_NORMAL) - return -EPERM; - s6e3ha2_call_write_func(ret, s6e3ha2_test_key_on_f0(ctx)); s6e3ha2_call_write_func(ret, s6e3ha2_update_gamma(ctx, brightness)); s6e3ha2_call_write_func(ret, s6e3ha2_aor_control(ctx)); @@ -472,7 +463,6 @@ static int s6e3ha2_set_brightness(struct backlight_device *bl_dev) } static const struct backlight_ops s6e3ha2_bl_ops = { - .get_brightness = s6e3ha2_get_brightness, .update_status = s6e3ha2_set_brightness, }; @@ -508,9 +498,6 @@ static int s6e3ha2_disable(struct drm_panel *panel) s6e3ha2_call_write_func(ret, mipi_dsi_dcs_enter_sleep_mode(dsi)); s6e3ha2_call_write_func(ret, mipi_dsi_dcs_set_display_off(dsi)); - msleep(40); - ctx->bl_dev->props.power = FB_BLANK_NORMAL; - return 0; } @@ -555,8 +542,6 @@ static int s6e3ha2_prepare(struct drm_panel *panel) if (ret < 0) goto err; - ctx->bl_dev->props.power = FB_BLANK_NORMAL; - return 0; err: @@ -588,7 +573,7 @@ static int s6e3ha2_enable(struct drm_panel *panel) s6e3ha2_call_write_func(ret, s6e3ha2_te_start_setting(ctx)); /* brightness setting */ - s6e3ha2_call_write_func(ret, s6e3ha2_set_brightness(ctx->bl_dev)); + s6e3ha2_call_write_func(ret, s6e3ha2_set_brightness(panel->backlight)); s6e3ha2_call_write_func(ret, s6e3ha2_aor_control(ctx)); s6e3ha2_call_write_func(ret, s6e3ha2_caps_elvss_set(ctx)); s6e3ha2_call_write_func(ret, s6e3ha2_gamma_update(ctx)); @@ -602,7 +587,6 @@ static int s6e3ha2_enable(struct drm_panel *panel) s6e3ha2_call_write_func(ret, s6e3ha2_test_key_off_f0(ctx)); s6e3ha2_call_write_func(ret, mipi_dsi_dcs_set_display_on(dsi)); - ctx->bl_dev->props.power = FB_BLANK_UNBLANK; return 0; } @@ -678,6 +662,25 @@ static const struct drm_panel_funcs s6e3ha2_drm_funcs = { .get_modes = s6e3ha2_get_modes, }; +static int s6e3ha2_backlight_register(struct s6e3ha2 *ctx) +{ + DECLARE_BACKLIGHT_INIT_RAW(props, S6E3HA2_DEFAULT_BRIGHTNESS, S6E3HA2_MAX_BRIGHTNESS); + struct device *dev = ctx->dev; + struct backlight_device *bd; + int ret = 0; + + bd = devm_backlight_device_register(dev, "panel", dev, ctx, + &s6e3ha2_bl_ops, &props); + if (IS_ERR(bd)) { + ret = PTR_ERR(bd); + dev_err(dev, "error registering backlight device (%d)\n", ret); + return ret; + } + + ctx->panel.backlight = bd; + return ret; +} + static int s6e3ha2_probe(struct mipi_dsi_device *dsi) { struct device *dev = &dsi->dev; @@ -721,23 +724,16 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi) return PTR_ERR(ctx->enable_gpio); } - ctx->bl_dev = backlight_device_register("s6e3ha2", dev, ctx, - &s6e3ha2_bl_ops, NULL); - if (IS_ERR(ctx->bl_dev)) { - dev_err(dev, "failed to register backlight device\n"); - return PTR_ERR(ctx->bl_dev); - } - - ctx->bl_dev->props.max_brightness = S6E3HA2_MAX_BRIGHTNESS; - ctx->bl_dev->props.brightness = S6E3HA2_DEFAULT_BRIGHTNESS; - ctx->bl_dev->props.power = FB_BLANK_POWERDOWN; - drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs, DRM_MODE_CONNECTOR_DSI); + ret = s6e3ha2_backlight_register(ctx); + if (ret) + return ret; + ret = drm_panel_add(&ctx->panel); if (ret < 0) - goto unregister_backlight; + return ret; ret = mipi_dsi_attach(dsi); if (ret < 0) @@ -748,9 +744,6 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi) remove_panel: drm_panel_remove(&ctx->panel); -unregister_backlight: - backlight_device_unregister(ctx->bl_dev); - return ret; } @@ -760,7 +753,6 @@ static int s6e3ha2_remove(struct mipi_dsi_device *dsi) mipi_dsi_detach(dsi); drm_panel_remove(&ctx->panel); - backlight_device_unregister(ctx->bl_dev); return 0; } From patchwork Sun Aug 23 10:45:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731569 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 3C667913 for ; Sun, 23 Aug 2020 10:46:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1A24720774 for ; Sun, 23 Aug 2020 10:46: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="hYCZmntR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1A24720774 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BA5056E49B; Sun, 23 Aug 2020 10:46:30 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 578206E4AB for ; Sun, 23 Aug 2020 10:46:14 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id f26so6431005ljc.8 for ; Sun, 23 Aug 2020 03:46: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=X+8Q2TDM3ai0df+vX1aS5w/AfWw+2B7q6iiQpKDOvxI=; b=hYCZmntRUDTIZ+UowLQKdUntCHNq4nsaQ1wtRjRoaohRpLM72GDly4mHgPbHWvJD8q YS10C5gufqvSsOhqSgTNLHlgEo2v98ITMWpR1UyoNvBj8jKShc8tKr4R8gITI4gxTof/ 63WipMo0IoG8tahwkhGsJnyxgJWMJHAegx98Dd0gXpxIvVaBUMrOVZYLOW+o9O4I1+n3 vLDitlQ31cxKAlu8YB59pEMMAobDXhJerPeWm4vyoQk53NdMZBJ11TjKqsVukhj5umTh hu+qMbf+syBu6fNN7UfIIY0GWO2MhSmDuQX3tQHzAE85jo8wKxRCpNQRfmzNWnB6zfW+ ouNg== 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=X+8Q2TDM3ai0df+vX1aS5w/AfWw+2B7q6iiQpKDOvxI=; b=WuMpmZq4aaM98VQaVaX977yG4iyazUcn+HRUoNlWinsN9PrahF06OgUP/K1+6slkrz tUQffFhf58dF5HjOKMLVXOp3oSYLZmkuZVzJb4yN4GqVqOsD06/VxQ4bY1FgO2LoHA9F HNbiaTq/36ssGEnGLnbk8D4cHr1drIC3B3s12ygifBSNt11yX/N5soWkeJ25/6R+7NAL TXS2X9+PaFpfULsxVZJOab+Ua3aELnaCMvJC7CaTPEsYV8QNLNgGRfE8q3iHymaOnqyd 3EXpmkhTvPcpxQ2kJ4Xdv4HFBFEJ2Ld6fuDfpQwu1P/7p1ytWCDtVUsifoaLItOQHkxL G+Pg== X-Gm-Message-State: AOAM532XGqNojBIM1Jky0d2xQJie/ZdkB+LdFljbnMSCjrlHyVGBHyaZ 0WwISbRvpApWL78qZln+8+kArvV/6FEpCA== X-Google-Smtp-Source: ABdhPJzXgYmVhWR6Im3hmiPPD46buYRJkmioLxYJ+jdFzVqVLRK8V+ueRgkY0JglHEy/Lbfpeuy0rA== X-Received: by 2002:a05:651c:1213:: with SMTP id i19mr443125lja.191.1598179572584; Sun, 23 Aug 2020 03:46:12 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:12 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 16/24] drm/panel: sony-acx424akp: Backlight update Date: Sun, 23 Aug 2020 12:45:24 +0200 Message-Id: <20200823104532.1024798-17-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use get method to read brightness - Use drm_panel support for backlight - This drops enable/disable operations as they are no longer needed. The enable/disable operations had some backlight related comments that are no longer valid. The only correct way to enable/disable backlight is using the backlight enable/disable helpers. - Use macro for backlight initialization Signed-off-by: Sam Ravnborg Acked-by: Linus Walleij Cc: Linus Walleij Cc: Thierry Reding Cc: Sam Ravnborg --- drivers/gpu/drm/panel/panel-sony-acx424akp.c | 49 ++++---------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c index c91e55b2d7a3..ce9ae8f1f5d7 100644 --- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c +++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c @@ -99,7 +99,7 @@ static int acx424akp_set_brightness(struct backlight_device *bl) struct acx424akp *acx = bl_get_data(bl); struct mipi_dsi_device *dsi = to_mipi_dsi_device(acx->dev); int period_ns = 1023; - int duty_ns = bl->props.brightness; + int duty_ns = backlight_get_brightness(bl); u8 pwm_ratio; u8 pwm_div; u8 par; @@ -332,8 +332,6 @@ static int acx424akp_prepare(struct drm_panel *panel) } } - acx->bl->props.power = FB_BLANK_NORMAL; - return 0; err_power_off: @@ -376,34 +374,6 @@ static int acx424akp_unprepare(struct drm_panel *panel) msleep(85); acx424akp_power_off(acx); - acx->bl->props.power = FB_BLANK_POWERDOWN; - - return 0; -} - -static int acx424akp_enable(struct drm_panel *panel) -{ - struct acx424akp *acx = panel_to_acx424akp(panel); - - /* - * The backlight is on as long as the display is on - * so no use to call backlight_enable() here. - */ - acx->bl->props.power = FB_BLANK_UNBLANK; - - return 0; -} - -static int acx424akp_disable(struct drm_panel *panel) -{ - struct acx424akp *acx = panel_to_acx424akp(panel); - - /* - * The backlight is on as long as the display is on - * so no use to call backlight_disable() here. - */ - acx->bl->props.power = FB_BLANK_NORMAL; - return 0; } @@ -435,18 +405,18 @@ static int acx424akp_get_modes(struct drm_panel *panel, } static const struct drm_panel_funcs acx424akp_drm_funcs = { - .disable = acx424akp_disable, .unprepare = acx424akp_unprepare, .prepare = acx424akp_prepare, - .enable = acx424akp_enable, .get_modes = acx424akp_get_modes, }; static int acx424akp_probe(struct mipi_dsi_device *dsi) { + struct backlight_device *bd; struct device *dev = &dsi->dev; struct acx424akp *acx; int ret; + DECLARE_BACKLIGHT_INIT_RAW(props, 512, 1023); acx = devm_kzalloc(dev, sizeof(struct acx424akp), GFP_KERNEL); if (!acx) @@ -496,15 +466,14 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi) drm_panel_init(&acx->panel, dev, &acx424akp_drm_funcs, DRM_MODE_CONNECTOR_DSI); - acx->bl = devm_backlight_device_register(dev, "acx424akp", dev, acx, - &acx424akp_bl_ops, NULL); - if (IS_ERR(acx->bl)) { + bd = devm_backlight_device_register(dev, "acx424akp", dev, acx, + &acx424akp_bl_ops, &props); + if (IS_ERR(bd)) { DRM_DEV_ERROR(dev, "failed to register backlight device\n"); - return PTR_ERR(acx->bl); + return PTR_ERR(bd); } - acx->bl->props.max_brightness = 1023; - acx->bl->props.brightness = 512; - acx->bl->props.power = FB_BLANK_POWERDOWN; + + acx->panel.backlight = bd; ret = drm_panel_add(&acx->panel); if (ret < 0) From patchwork Sun Aug 23 10:45: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: 11731581 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 79F14109B for ; Sun, 23 Aug 2020 10:46:43 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 589A32072D for ; Sun, 23 Aug 2020 10:46:43 +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="AjJn5fry" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 589A32072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 734256E4CA; Sun, 23 Aug 2020 10:46:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id D25FE6E4AB for ; Sun, 23 Aug 2020 10:46:15 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id w14so6447595ljj.4 for ; Sun, 23 Aug 2020 03:46: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=SeavNPqMhd//AZspSqHUZ2uIci8zHkbPfvSoePP/znU=; b=AjJn5fry1opA/W5E+lmdNIhz98sYqL2pg0LPGbGJngd1JitTZO13rMIM8/O66CtDXl y2D/IA7ONsMy1vAcmToY4dib/tK1OMKBN8byZov/21E3t6IEUFe8d7etKrI+p5xjX4jZ ES0K21Jp5yIMNUXWfJcTRpKo733+LylcUyn+G7Ms7EK/Ey5Sj9T2AQUr+RjbNVTVN48t SneqyO+ekmLxSaDu3yJl1uEClM6SaswGNGHLHjRhTfQoWlcpGaDsk9k9oXW5lpeI3T7s pTprtV8sJynjbOvf1mCJJHROwnaU5NSAxE6LOtpe6waXYPd63pp8c3WD01+5HH9R90ly qXhw== 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=SeavNPqMhd//AZspSqHUZ2uIci8zHkbPfvSoePP/znU=; b=pwJ+SbxiDb+rmO4eGUlM962GJmNQ7oEYlsYiPyANIxeYWMn4vqd726voqxpzKsXJRw Zm1z889aH0YoKr/4H7fzyPbWdDXMMpB5+9XP6EHlLC0ElZWn9pQ7dMFge51BJFfTVIGn 60btZKvxwlEIC60vgRsenrBD2Nk+GTYYRCYCq9m7I90xObqzU9yYRF11feQe0n2VH4Fv tztwI1RuJKz1qhLHUneAIUMPAVyyQxpnQVTB32WAgcXeMCtcr19XGiDyj5Av/EnyJb05 Nei+ToGWz27fKx6r3D7VQy40bxfwv6MioCJWcmSk2SuN4LD2dQyYdCmpwTjvCPr/sFjU Rczw== X-Gm-Message-State: AOAM5310re8P3tBteIjhfz+nrOSbc885qleiVfOB/MtHrYU8l6KNDxN7 7O+HzNIAP5hV3ZwBCP/l8dGmiDmNCvWTSg== X-Google-Smtp-Source: ABdhPJwvnzz7YpxMjNtIU9haWDR4w5plrB5KN3aiLRIEJZuSXZw71a+4TnwpKuN6oO3X/OLjjCIgCA== X-Received: by 2002:a2e:b5b3:: with SMTP id f19mr423662ljn.210.1598179573992; Sun, 23 Aug 2020 03:46:13 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:13 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 17/24] drm/panel: sony-acx565akm: Backlight update Date: Sun, 23 Aug 2020 12:45:25 +0200 Message-Id: <20200823104532.1024798-18-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Thierry Reding , Sam Ravnborg , Laurent Pinchart Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use backlight_get_brightness() helper - Use backlight_is_blank() helper - Use macro for initialization - Drop direct access to backlight properties - Use the devm_ variant for registering backlight device, and drop all explicit unregistering of the backlight device. - Register backligt after drm_panel_init Signed-off-by: Sam Ravnborg Cc: Laurent Pinchart Cc: Thierry Reding Cc: Sam Ravnborg --- drivers/gpu/drm/panel/panel-sony-acx565akm.c | 47 +++++++------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c index 5c4b6f6e5c2d..65da0160f2b8 100644 --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c @@ -298,13 +298,7 @@ static void acx565akm_set_brightness(struct acx565akm_panel *lcd, int level) static int acx565akm_bl_update_status_locked(struct backlight_device *dev) { struct acx565akm_panel *lcd = dev_get_drvdata(&dev->dev); - int level; - - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) - level = dev->props.brightness; - else - level = 0; + int level = backlight_get_brightness(dev); acx565akm_set_brightness(lcd, level); @@ -330,8 +324,7 @@ static int acx565akm_bl_get_intensity(struct backlight_device *dev) mutex_lock(&lcd->mutex); - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) + if (backlight_is_blank(dev)) intensity = acx565akm_get_actual_brightness(lcd); else intensity = 0; @@ -348,40 +341,32 @@ static const struct backlight_ops acx565akm_bl_ops = { static int acx565akm_backlight_init(struct acx565akm_panel *lcd) { - struct backlight_properties props = { - .fb_blank = FB_BLANK_UNBLANK, - .power = FB_BLANK_UNBLANK, - .type = BACKLIGHT_RAW, - }; + DECLARE_BACKLIGHT_INIT_RAW(props, 0, 255); + struct backlight_device *bd; int ret; - lcd->backlight = backlight_device_register(lcd->name, &lcd->spi->dev, - lcd, &acx565akm_bl_ops, - &props); - if (IS_ERR(lcd->backlight)) { - ret = PTR_ERR(lcd->backlight); - lcd->backlight = NULL; + bd = devm_backlight_device_register(&lcd->spi->dev, lcd->name, + &lcd->spi->dev, lcd, + &acx565akm_bl_ops, &props); + if (IS_ERR(bd)) { + ret = PTR_ERR(bd); return ret; } + lcd->backlight = bd; if (lcd->has_cabc) { - ret = sysfs_create_group(&lcd->backlight->dev.kobj, + ret = sysfs_create_group(&bd->dev.kobj, &acx565akm_cabc_attr_group); if (ret < 0) { dev_err(&lcd->spi->dev, "%s failed to create sysfs files\n", __func__); - backlight_device_unregister(lcd->backlight); return ret; } lcd->cabc_mode = acx565akm_get_hw_cabc_mode(lcd); } - lcd->backlight->props.max_brightness = 255; - lcd->backlight->props.brightness = acx565akm_get_actual_brightness(lcd); - - acx565akm_bl_update_status_locked(lcd->backlight); - + backlight_update_brightness(bd, acx565akm_get_actual_brightness(lcd)); return 0; } @@ -390,8 +375,6 @@ static void acx565akm_backlight_cleanup(struct acx565akm_panel *lcd) if (lcd->has_cabc) sysfs_remove_group(&lcd->backlight->dev.kobj, &acx565akm_cabc_attr_group); - - backlight_device_unregister(lcd->backlight); } /* ----------------------------------------------------------------------------- @@ -642,15 +625,15 @@ static int acx565akm_probe(struct spi_device *spi) return ret; } + drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs, + DRM_MODE_CONNECTOR_DPI); + if (lcd->has_bc) { ret = acx565akm_backlight_init(lcd); if (ret < 0) return ret; } - drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs, - DRM_MODE_CONNECTOR_DPI); - ret = drm_panel_add(&lcd->panel); if (ret < 0) { if (lcd->has_bc) From patchwork Sun Aug 23 10:45: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: 11731587 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 8E44C109B for ; Sun, 23 Aug 2020 10:46:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6C9142072D for ; Sun, 23 Aug 2020 10:46:47 +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="cIwftmEZ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6C9142072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 211FC6E4D2; Sun, 23 Aug 2020 10:46:37 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B2266E49B for ; Sun, 23 Aug 2020 10:46:17 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id i10so6452662ljn.2 for ; Sun, 23 Aug 2020 03:46: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=CvdLxjXaJn11TTJtwrNCJ2FiPaDtkOV4A0DapdP967U=; b=cIwftmEZ70Z4kNecN7JtApoAOOH1GPx5ZkzjlEnh/PomRr1qCSUqPp/SZjPaD2WwOt gZMqW5v9eLKLGRVGGTL3dJiOJVypgMb3bw4tvO9Ek9ryxOBXzegdHM7nBUPNu3ZUe76/ AxbdH9ej9r2mJKpvIrx74Ql3Rk2F0604Awsw/MXFjzH7r0fKY8wqYKku489gPJkzlIrl jEDLvA3kAK3gDwFMvMvUv7uopAiBFAoKkhBh/zXXdYpqKRkJpj9+sHQ1jJMka+mM6fMX S3+ez3YENC+cw+8mThH4sQXTvcMxCWkX/5Nhd/TUgxZMDPEDsl/WbutV/dkp2O4M24T6 1VFw== 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=CvdLxjXaJn11TTJtwrNCJ2FiPaDtkOV4A0DapdP967U=; b=dBHTyiDXCReVZ809HUi0vRUSPv3CzgryF8MGwOgkt/PkWAyxs1GoiVjWcSb7fdXMgc WOx8sIVK79qpZPlogRs5UDwxNOvZkjC99nWFYAeOF/uzuIxpln10+kFGp67yuBi2DkCS woG2t9aKB/5dmglniVQus4MTnUiN9tPhvIDLiOhrC25MMfqQn/lS8CwS1eAiidrwn45b KsxCu4EmuyYBB/bjlLpjAhOiWvsPO7GDaa2wFbaVgWTfPMIWqhgaK8z46EBoNtkSVwEb evmX3A5EJYmIGR21nMJA5QIOwT0SFBdvHuHbXwbEAjud9bkULgakx8nyAd+MNlvRLDbb oqkA== X-Gm-Message-State: AOAM533TXYa3x3hZxvMyjEregs8DOXUL2fFNdlh+1yNn1PpmahCi0+jv 1txR6OeilejeJs6WHxIF/ZKdrml8/3LjNg== X-Google-Smtp-Source: ABdhPJzdLFMCus5PyE+fYm/kg+LkHD9Zljc+pxDNJoD0Jx8/HVGfZw58602RqnUASqPBsyWJIXrFng== X-Received: by 2002:a2e:9812:: with SMTP id a18mr444294ljj.25.1598179575619; Sun, 23 Aug 2020 03:46:15 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:15 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 18/24] drm/bridge: parade-ps8622: Backlight update Date: Sun, 23 Aug 2020 12:45:26 +0200 Message-Id: <20200823104532.1024798-19-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Jonas Karlman , Daniel Vetter , Neil Armstrong , Andrzej Hajda , Laurent Pinchart , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use blacklight_get_brightness() helper - Use devm_ variant to register backlight device and drop explicit unregister - Use macro for initialization Signed-off-by: Sam Ravnborg Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec --- drivers/gpu/drm/bridge/parade-ps8622.c | 43 +++++++++++++------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c index d789ea2a7fb9..a46a883e0b8c 100644 --- a/drivers/gpu/drm/bridge/parade-ps8622.c +++ b/drivers/gpu/drm/bridge/parade-ps8622.c @@ -284,8 +284,7 @@ static int ps8622_send_config(struct ps8622_bridge *ps8622) goto error; /* FFh for 100% brightness, 0h for 0% brightness */ - err = ps8622_set(cl, 0x01, 0xa7, - ps8622->bl->props.brightness); + err = ps8622_set(cl, 0x01, 0xa7, backlight_get_brightness(ps8622->bl)); if (err) goto error; } else { @@ -331,18 +330,11 @@ static int ps8622_send_config(struct ps8622_bridge *ps8622) static int ps8622_backlight_update(struct backlight_device *bl) { struct ps8622_bridge *ps8622 = dev_get_drvdata(&bl->dev); - int ret, brightness = bl->props.brightness; - - if (bl->props.power != FB_BLANK_UNBLANK || - bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) - brightness = 0; if (!ps8622->enabled) return -EINVAL; - ret = ps8622_set(ps8622->client, 0x01, 0xa7, brightness); - - return ret; + return ps8622_set(ps8622->client, 0x01, 0xa7, backlight_get_brightness(bl)); } static const struct backlight_ops ps8622_backlight_ops = { @@ -521,7 +513,23 @@ static const struct drm_bridge_funcs ps8622_bridge_funcs = { .attach = ps8622_attach, }; -static const struct of_device_id ps8622_devices[] = { +static int ps8622_register_blacklight(struct device *dev, struct ps8622_bridge *ps8622) +{ + DECLARE_BACKLIGHT_INIT_RAW(props, PS8622_MAX_BRIGHTNESS, PS8622_MAX_BRIGHTNESS); + struct backlight_device *bl; + + bl = devm_backlight_device_register(dev, dev_name(dev), dev, + ps8622, &ps8622_backlight_ops, &props); + if (IS_ERR(bl)) { + DRM_ERROR("failed to register backlight\n"); + return PTR_ERR(bl); + } + + ps8622->bl = bl; + return 0; +} + +const struct of_device_id ps8622_devices[] = { {.compatible = "parade,ps8622",}, {.compatible = "parade,ps8625",}, {} @@ -581,17 +589,9 @@ static int ps8622_probe(struct i2c_client *client, } if (!of_find_property(dev->of_node, "use-external-pwm", NULL)) { - ps8622->bl = backlight_device_register("ps8622-backlight", - dev, ps8622, &ps8622_backlight_ops, - NULL); - if (IS_ERR(ps8622->bl)) { - DRM_ERROR("failed to register backlight\n"); - ret = PTR_ERR(ps8622->bl); - ps8622->bl = NULL; + ret = ps8622_register_blacklight(dev, ps8622); + if (ret) return ret; - } - ps8622->bl->props.max_brightness = PS8622_MAX_BRIGHTNESS; - ps8622->bl->props.brightness = PS8622_MAX_BRIGHTNESS; } ps8622->bridge.funcs = &ps8622_bridge_funcs; @@ -607,7 +607,6 @@ static int ps8622_remove(struct i2c_client *client) { struct ps8622_bridge *ps8622 = i2c_get_clientdata(client); - backlight_device_unregister(ps8622->bl); drm_bridge_remove(&ps8622->bridge); return 0; From patchwork Sun Aug 23 10:45: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: 11731571 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 2541D913 for ; Sun, 23 Aug 2020 10:46:35 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 035D320774 for ; Sun, 23 Aug 2020 10:46:35 +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="WCAQKgap" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 035D320774 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1FA696E4AB; Sun, 23 Aug 2020 10:46:31 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5A1F6E49B for ; Sun, 23 Aug 2020 10:46:18 +0000 (UTC) Received: by mail-lf1-x143.google.com with SMTP id k10so8595lfm.5 for ; Sun, 23 Aug 2020 03:46: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=5z9EEWBMFtfs7Md+ywwIsrQgvnrHejoYJr9Mbg3PvTc=; b=WCAQKgapZnnQkA/k40lPgjGyohpPlP6wFQys0N2YxdBPrGFP9dHIgX6Fi44md6BhgD fzjLo13IiaU9traVwTOKlGGmWAUufirsp8RMy/+OCTiYx6YwWDDRUFly5d6yvvFgtSff wEnykuMQq7OKa7t8aCK2yp1/uw+GM3tlw1UpxZD+8ORTMILoenU79Jd5jZxvwOulyR5e ou6Z5HCGq7oGmBp89t7BnaDpFb1jHdOVwYtjKCB8xx6Im+6jXer4gSy3yL8MW85FjtTv adBpOdY6HPG+goWOnosh5blW7fz4zKgG9gMOM+Lhlnh6qxgZix7KTXKqrGyYc9VrMlnU hDsQ== 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=5z9EEWBMFtfs7Md+ywwIsrQgvnrHejoYJr9Mbg3PvTc=; b=CIuwPQQwL6v84MoqyLeJYAEQlS8wNxOGAWMk6AOoBJPdgmXb/KFKUo8Sl1TAxPYhKf nbJEwGfyLCZyPOmdwlzUc1VtRQn+fuFWbtbtIJ0zXIWVRKjXbZ4ev7m5E1z+rCq0zIMM zL9JAy1i4blU4nmj6EoWv8biATH9/rQE2N5w1csYYSHYXf6c2Vd7LLqCptjCfCGVGrGK el6Hu5FtbN0QWBSGmyUP9nlEdhDWYOLmmEE2ohPSUQuIi+W7r1w1OlZBIIXL+LytBEJ1 ++BISIc7tONDgF4dk3aLHrjcvuikTX2sOuEFgxcawZaoimkjYeUEb7xf2wDZm6xDOZin nanQ== X-Gm-Message-State: AOAM53169TEu0ENR7oYVfwTUlHxNbUhFeoWpbbBQK5Futf+BbpMhta6G swVw3gY9W+TYKxL3SNi0jjmFvk7tFTY5ng== X-Google-Smtp-Source: ABdhPJyIFCWFqNvR9uTAE6OpxRDcC4pujWywA7XpGsvCrjncmdzyPOZQeKurGVSESFRzY6zO3QJxVg== X-Received: by 2002:a05:6512:687:: with SMTP id t7mr419744lfe.13.1598179576978; Sun, 23 Aug 2020 03:46:16 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:16 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 19/24] drm/tilcdc: Backlight update Date: Sun, 23 Aug 2020 12:45:27 +0200 Message-Id: <20200823104532.1024798-20-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Jyri Sarha , Tomi Valkeinen , Ezequiel Garcia , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Introduce backlight_{enable,disable} to enable/disable backlight. Dropped NULL check as backlight_{enable,disable} handles this. Signed-off-by: Sam Ravnborg Cc: Rob Clark Cc: Ezequiel Garcia Cc: Jyri Sarha Cc: Tomi Valkeinen --- drivers/gpu/drm/tilcdc/tilcdc_panel.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c index 12823d60c4e8..b6dd0a21fd0f 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c @@ -47,11 +47,10 @@ static void panel_encoder_dpms(struct drm_encoder *encoder, int mode) struct backlight_device *backlight = panel_encoder->mod->backlight; struct gpio_desc *gpio = panel_encoder->mod->enable_gpio; - if (backlight) { - backlight->props.power = mode == DRM_MODE_DPMS_ON ? - FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN; - backlight_update_status(backlight); - } + if (mode == DRM_MODE_DPMS_ON) + backlight_enable(backlight); + else + backlight_disable(backlight); if (gpio) gpiod_set_value_cansleep(gpio, From patchwork Sun Aug 23 10:45:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731579 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 3FD1F913 for ; Sun, 23 Aug 2020 10:46:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1E3BE2072D for ; Sun, 23 Aug 2020 10:46:42 +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="uQ/5BZTX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1E3BE2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 182C66E4C7; Sun, 23 Aug 2020 10:46:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0A77B89E5A; Sun, 23 Aug 2020 10:46:20 +0000 (UTC) Received: by mail-lf1-x141.google.com with SMTP id c15so2980833lfi.3; Sun, 23 Aug 2020 03:46:19 -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=z3SVFnrc3dKv6rnmDACLJKWWN6d5meVg920j76Ce3Lg=; b=uQ/5BZTX7445PkBmEtTH98ET/qo33GLwBJYqInZYlT+LomJ48Oqmm4f+lIU38Q+VHP FLHsceWkw5MBVmEVcrZg8ve3k3/4VCrgYfXtOpL0zeX+qu63Fj70/CpVSajRBm+DSurg J4IdiyU4HkbQ2XP2tKTm0IRabeGyz8TNM+J6+MLAE1t/JDEKREccz0GxoFHAi6K6USO6 fzaH4hvNFXffyTspfcYbbmDz/zKhQgPY65EREilIg7c0vEW812Xke0pRTsA1t1slXa8e KnRv0W6iVlk9OjNjIdRYTE4EuOoLir0xxEQ6rsFnLm44Arv2dzbzBCCtRLhMBqv41+IZ kJ8g== 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=z3SVFnrc3dKv6rnmDACLJKWWN6d5meVg920j76Ce3Lg=; b=JXFo7VeKya7HEgieqoWALdIrOAR2YdR/Izze0AZGPRkukocqAX0CQax0mwtL9LPan6 h73xzJpUB9EUddjP8L4qmDSqLLaw/Sxed9QS2LUa4LeV53bNWfIzLWuXuUv0VabgFIbz S2y1pr+cEghcprdI6ORy+GE5G9p9XlsT/3JyUsMAgbs81fxLXAoRoB4zHfGy/p8FkKog 6TEddCu6AZO/yzGjToG9Pq3Q2K/b8EwQXCJusEYwL8js7IKJ8yJ5xhGECp9NmW44cWDG gAtU3ckx5mqzqvhruxLdflCOlfMLh0ALw8wFRdYKveapMHakaGvyZWSUiL6QAEj1EiTi i7Jw== X-Gm-Message-State: AOAM533kFvzPsGDQnnldTU/d6Lb3TSCszEGFY/Ucjc6PQyP1NGfuRtSd 1SfLE/SE6fn/3zLHzZC7O605ENn+ys5NVA== X-Google-Smtp-Source: ABdhPJwdLx/H85RIKBryK6JKwVRLHHFuISPJdkzclcrqmzqUGzHZ0ysaEfqFUTs3vUBhPNltg6lbow== X-Received: by 2002:a19:848d:: with SMTP id g135mr417294lfd.1.1598179578264; Sun, 23 Aug 2020 03:46:18 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:17 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 20/24] drm/radeon: Backlight update Date: Sun, 23 Aug 2020 12:45:28 +0200 Message-Id: <20200823104532.1024798-21-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alex Deucher , Daniel Vetter , Sam Ravnborg , =?utf-8?q?Christian_K=C3=B6nig?= , amd-gfx@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use macros for initialization - Replace direct access to backlight_properties with get and set operations Signed-off-by: Sam Ravnborg Cc: Alex Deucher Cc: Christian König Cc: amd-gfx@lists.freedesktop.org --- drivers/gpu/drm/radeon/atombios_encoders.c | 24 +++++++++---------- .../gpu/drm/radeon/radeon_legacy_encoders.c | 16 +++++-------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index cc5ee1b3af84..300bec94dbff 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c @@ -145,14 +145,15 @@ atombios_set_backlight_level(struct radeon_encoder *radeon_encoder, u8 level) static u8 radeon_atom_bl_level(struct backlight_device *bd) { u8 level; + int brightness = backlight_get_brightness(bd); /* Convert brightness to hardware level */ - if (bd->props.brightness < 0) + if (brightness < 0) level = 0; - else if (bd->props.brightness > RADEON_MAX_BL_LEVEL) + else if (brightness > RADEON_MAX_BL_LEVEL) level = RADEON_MAX_BL_LEVEL; else - level = bd->props.brightness; + level = brightness; return level; } @@ -185,12 +186,13 @@ static const struct backlight_ops radeon_atom_backlight_ops = { void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, struct drm_connector *drm_connector) { + DECLARE_BACKLIGHT_INIT_RAW(props, 0, RADEON_MAX_BL_LEVEL); struct drm_device *dev = radeon_encoder->base.dev; struct radeon_device *rdev = dev->dev_private; struct backlight_device *bd; - struct backlight_properties props; struct radeon_backlight_privdata *pdata; struct radeon_encoder_atom_dig *dig; + int brightness; char bl_name[16]; /* Mac laptops with multiple GPUs use the gmux driver for backlight @@ -215,9 +217,6 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, goto error; } - memset(&props, 0, sizeof(props)); - props.max_brightness = RADEON_MAX_BL_LEVEL; - props.type = BACKLIGHT_RAW; snprintf(bl_name, sizeof(bl_name), "radeon_bl%d", dev->primary->index); bd = backlight_device_register(bl_name, drm_connector->kdev, @@ -232,16 +231,17 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, dig = radeon_encoder->enc_priv; dig->bl_dev = bd; - bd->props.brightness = radeon_atom_backlight_get_brightness(bd); + brightness = radeon_atom_backlight_get_brightness(bd); /* Set a reasonable default here if the level is 0 otherwise * fbdev will attempt to turn the backlight on after console * unblanking and it will try and restore 0 which turns the backlight * off again. */ - if (bd->props.brightness == 0) - bd->props.brightness = RADEON_MAX_BL_LEVEL; - bd->props.power = FB_BLANK_UNBLANK; - backlight_update_status(bd); + + if (brightness == 0) + brightness = RADEON_MAX_BL_LEVEL; + + backlight_enable_brightness(bd, brightness); DRM_INFO("radeon atom DIG backlight initialized\n"); rdev->mode_info.bl_encoder = radeon_encoder; diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index 44d060f75318..55e656acaedb 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c @@ -323,14 +323,15 @@ static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd) { struct radeon_backlight_privdata *pdata = bl_get_data(bd); uint8_t level; + int brightness = backlight_get_brightness(bd); /* Convert brightness to hardware level */ - if (bd->props.brightness < 0) + if (brightness < 0) level = 0; - else if (bd->props.brightness > RADEON_MAX_BL_LEVEL) + else if (brightness > RADEON_MAX_BL_LEVEL) level = RADEON_MAX_BL_LEVEL; else - level = bd->props.brightness; + level = brightness; if (pdata->negative) level = RADEON_MAX_BL_LEVEL - level; @@ -371,10 +372,10 @@ static const struct backlight_ops radeon_backlight_ops = { void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, struct drm_connector *drm_connector) { + DECLARE_BACKLIGHT_INIT_RAW(props, 0, RADEON_MAX_BL_LEVEL); struct drm_device *dev = radeon_encoder->base.dev; struct radeon_device *rdev = dev->dev_private; struct backlight_device *bd; - struct backlight_properties props; struct radeon_backlight_privdata *pdata; uint8_t backlight_level; char bl_name[16]; @@ -394,9 +395,6 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, goto error; } - memset(&props, 0, sizeof(props)); - props.max_brightness = RADEON_MAX_BL_LEVEL; - props.type = BACKLIGHT_RAW; snprintf(bl_name, sizeof(bl_name), "radeon_bl%d", dev->primary->index); bd = backlight_device_register(bl_name, drm_connector->kdev, @@ -443,9 +441,7 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, lvds->bl_dev = bd; } - bd->props.brightness = radeon_legacy_backlight_get_brightness(bd); - bd->props.power = FB_BLANK_UNBLANK; - backlight_update_status(bd); + backlight_enable_brightness(bd, radeon_legacy_backlight_get_brightness(bd)); DRM_INFO("radeon legacy LVDS backlight initialized\n"); rdev->mode_info.bl_encoder = radeon_encoder; From patchwork Sun Aug 23 10:45:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731583 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 D42D4109B for ; Sun, 23 Aug 2020 10:46:44 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B27722072D for ; Sun, 23 Aug 2020 10:46:44 +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="d2F0663F" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B27722072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 33C4C6E4C9; Sun, 23 Aug 2020 10:46:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D10889E5A; Sun, 23 Aug 2020 10:46:21 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id i10so6452743ljn.2; Sun, 23 Aug 2020 03:46: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=M1jpgR9xxaGL5haqqgC1fWn700aNJTB9DMqO/Z8CzRg=; b=d2F0663FtRSFSFJrFtiTAwk0kIaD3HZax9hdeBfVOXv1CRJg95rfknrG4MJeTUYXR/ BarACZPfn9tEaybE6/HiuSIu5CZVPOvMZcIBXUfwW1PfD4jToFFWPFx6fpUw0uMhNGEC fjiW0yc6Pitz0hcE7cIXGhvjmCXUqxaIRapba1Dvs8bx3G5MmDTubdDQ0QmPLrw3qJw4 zLMGhZHiC6SWceUhHfzeNe0GvN2Y5BjtdTgB3ry8XSatqatrllHVO+z8OB9ilfcNPDYu E7TD9kcIj2Nj/px2MrX/gflUM0axkvQQe3IcEbpS2IwYPdQTCXsDhQuMCpAMmGIUlYCn V4CA== 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=M1jpgR9xxaGL5haqqgC1fWn700aNJTB9DMqO/Z8CzRg=; b=lYUBlXxBc2/N5bqwNTGxDtrSmQw4irIUx8IHy7c7fT9uuBEr5KNS/b0qIpuFwBx+ff 8byu4yBS2dhmFUWGEgqDG96El5HBLTfYucpIUjxU3Yuy3nL0BXImaDGDyG6E52cNrUJs I/Sx14wH1cga2Q597BjVxLOcHD0bPnUUB4XSWURSNVCfuq5fYtRWMxcB/beh1zSjgN7a CBgiuyMTPerI7gxADFjN68Bl5nzorqc3GEqZLUYFJv8aoqYcCg7PMktigldZy5RgG9UQ Ul2IiUUyYJvrOj8lzaPh0/Bbde7C2eqknD35c3MMBkagpty/e0vWO9kGOqKbSVCQy5od Y5aQ== X-Gm-Message-State: AOAM5322j1OWnDq4fyRC27DvFnKdGycbHBfZhkX3yzNJGQlTwnITZje4 kTB2SCW8oisHexsvFnHFSjvEAByiUB6j3w== X-Google-Smtp-Source: ABdhPJw9Qh7yif2/z1V//jy2V7tcoga9LYfRxGe7rvVD0rjEnra9yJGxYJRobXtYX2cjtHFf813lNA== X-Received: by 2002:a2e:9f46:: with SMTP id v6mr431655ljk.66.1598179579622; Sun, 23 Aug 2020 03:46:19 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:19 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 21/24] drm/amdgpu/atom: Backlight update Date: Sun, 23 Aug 2020 12:45:29 +0200 Message-Id: <20200823104532.1024798-22-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alex Deucher , Daniel Vetter , Sam Ravnborg , =?utf-8?q?Christian_K=C3=B6nig?= , amd-gfx@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use macros for initialization - Replace direct access to backlight_properties with get and set operations Signed-off-by: Sam Ravnborg Cc: Alex Deucher Cc: Christian König Cc: amd-gfx@lists.freedesktop.org Cc: Sam Ravnborg --- .../gpu/drm/amd/amdgpu/atombios_encoders.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c index 1e94a9b652f7..882e1a3dad8b 100644 --- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c @@ -122,15 +122,16 @@ amdgpu_atombios_encoder_set_backlight_level(struct amdgpu_encoder *amdgpu_encode static u8 amdgpu_atombios_encoder_backlight_level(struct backlight_device *bd) { + int brightness = backlight_get_brightness(bd); u8 level; /* Convert brightness to hardware level */ - if (bd->props.brightness < 0) + if (brightness < 0) level = 0; - else if (bd->props.brightness > AMDGPU_MAX_BL_LEVEL) + else if (brightness > AMDGPU_MAX_BL_LEVEL) level = AMDGPU_MAX_BL_LEVEL; else - level = bd->props.brightness; + level = brightness; return level; } @@ -165,13 +166,12 @@ static const struct backlight_ops amdgpu_atombios_encoder_backlight_ops = { void amdgpu_atombios_encoder_init_backlight(struct amdgpu_encoder *amdgpu_encoder, struct drm_connector *drm_connector) { + DECLARE_BACKLIGHT_INIT_RAW(props, 0, AMDGPU_MAX_BL_LEVEL); struct drm_device *dev = amdgpu_encoder->base.dev; struct amdgpu_device *adev = dev->dev_private; struct backlight_device *bd; - struct backlight_properties props; struct amdgpu_backlight_privdata *pdata; struct amdgpu_encoder_atom_dig *dig; - u8 backlight_level; char bl_name[16]; /* Mac laptops with multiple GPUs use the gmux driver for backlight @@ -193,9 +193,6 @@ void amdgpu_atombios_encoder_init_backlight(struct amdgpu_encoder *amdgpu_encode goto error; } - memset(&props, 0, sizeof(props)); - props.max_brightness = AMDGPU_MAX_BL_LEVEL; - props.type = BACKLIGHT_RAW; snprintf(bl_name, sizeof(bl_name), "amdgpu_bl%d", dev->primary->index); bd = backlight_device_register(bl_name, drm_connector->kdev, @@ -207,14 +204,10 @@ void amdgpu_atombios_encoder_init_backlight(struct amdgpu_encoder *amdgpu_encode pdata->encoder = amdgpu_encoder; - backlight_level = amdgpu_atombios_encoder_get_backlight_level_from_reg(adev); - dig = amdgpu_encoder->enc_priv; dig->bl_dev = bd; - bd->props.brightness = amdgpu_atombios_encoder_get_backlight_brightness(bd); - bd->props.power = FB_BLANK_UNBLANK; - backlight_update_status(bd); + backlight_enable_brightness(bd, amdgpu_atombios_encoder_get_backlight_brightness(bd)); DRM_INFO("amdgpu atom DIG backlight initialized\n"); From patchwork Sun Aug 23 10:45:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sam Ravnborg X-Patchwork-Id: 11731585 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 2D622913 for ; Sun, 23 Aug 2020 10:46:46 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0BB592072D for ; Sun, 23 Aug 2020 10:46:46 +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="AAVJ/OtF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0BB592072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DEF2D6E4D0; Sun, 23 Aug 2020 10:46:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E5E689E5A for ; Sun, 23 Aug 2020 10:46:23 +0000 (UTC) Received: by mail-lj1-x242.google.com with SMTP id t6so6427467ljk.9 for ; Sun, 23 Aug 2020 03:46: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=1hXbEvstdn+3urKOHxL47/LkyajXZH1Ytgrb07IfjrA=; b=AAVJ/OtFufozfQMmDTHGmEHvA2I/eyNBaG0KfUCFb4mA2GQj8Lh1SJv+64Vvt3BPkG 1EckPV5OqPItoZPNlCJhmKikJ2KA6SSrcf2lAtLOy7cYrd6cU2VQCiWjsC6epLhE7ien GjXRDJl6AUbeYDJHFGcahVN+a7FmeQ7VemthT2SdI0V3tPJ9sWXwdYqnws5ny53DyUx6 QFqBD7vpssXWIvoefIrNqv2+gfBw8ghVho5VxkHUXotIyHM5PP2EX85Ejmc39dTWWL19 LVvp59raHV4xQuYo+KHqMwIynMxNHfB/pJwqTe61piEfwepgh9D9iIjpK/q6z8ypscer C+jA== 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=1hXbEvstdn+3urKOHxL47/LkyajXZH1Ytgrb07IfjrA=; b=NohvGYEJ7Vc1xc7h0aQMSu5ySBMCvGb1KKWXAN6owTynmh/aONhBxgfMyujx3wD86b TIX1LhhF6PeL7xEtR2VCedmU5lX+5E3SoTEEeGNBUo1KJiTuSuW7SF2fUKKIX9/unnir R58XBBqqgIMFpJXz53GyISVcVR3yWgVH8kXoa0gaF/uXLHGbUzftjaN5a4kJrn0xeK6H 1jNppfsNlPwxfX6y02PYN59xgOi3JZbsYvYytYQKHiq5/iy8bSxjF4AfzbA4bb11u2l7 EcEXoZ3+urb8dorN8k68KfS4xDcK8EgCar7rVM6ZYeCduvJpeUTJuvYh/p9JZ4D3XMe+ /eqA== X-Gm-Message-State: AOAM533RbTQVPQZuV4DVzKcyUI+3CzasZ9Orc3tMriI9U0q7kcbb+xf9 FMYHv4uJbnSnrgWIxMYleIgF3twOci9DpQ== X-Google-Smtp-Source: ABdhPJw5O2o6awB0uujXI3R5aYYZimuQXSpvIdLfnEOgwLUdjFL12iXJmzfds4XwAIN23zpSmW6mXw== X-Received: by 2002:a2e:8717:: with SMTP id m23mr456442lji.245.1598179581456; Sun, 23 Aug 2020 03:46:21 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:20 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 22/24] drm/i915: Backlight update Date: Sun, 23 Aug 2020 12:45:30 +0200 Message-Id: <20200823104532.1024798-23-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Chris Wilson , Manasi Navare , Hans de Goede , Rodrigo Vivi , Sam Ravnborg , Wambui Karuga Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Update backlight implementation to utilize newly added backlight functionality. - Use macros for initialization - Replace direct access to backlight_properties with get and set operations - Moved enable/disable after registering backlight device One side-effect of these changes is that the confusing power states are now replaced by backligt_{enable,disable}. Signed-off-by: Sam Ravnborg Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: "Ville Syrjälä" Cc: Chris Wilson Cc: Manasi Navare Cc: Wambui Karuga Cc: Hans de Goede Cc: Maarten Lankhorst Cc: Sam Ravnborg Reported-by: kernel test robot --- drivers/gpu/drm/i915/display/intel_panel.c | 88 +++++++++++----------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c index 3c5056dbf607..9c6643b41b90 100644 --- a/drivers/gpu/drm/i915/display/intel_panel.c +++ b/drivers/gpu/drm/i915/display/intel_panel.c @@ -716,11 +716,15 @@ void intel_panel_set_backlight_acpi(const struct drm_connector_state *conn_state hw_level = clamp_user_to_hw(connector, user_level, user_max); panel->backlight.level = hw_level; - if (panel->backlight.device) - panel->backlight.device->props.brightness = - scale_hw_to_user(connector, - panel->backlight.level, - panel->backlight.device->props.max_brightness); + if (panel->backlight.device) { + int brightness; + int max = backlight_get_max_brightness(panel->backlight.device); + + brightness = scale_hw_to_user(connector, + panel->backlight.level, + max); + backlight_set_brightness(panel->backlight.device, brightness); + } if (panel->backlight.enabled) intel_panel_actually_set_backlight(conn_state, hw_level); @@ -871,8 +875,7 @@ void intel_panel_disable_backlight(const struct drm_connector_state *old_conn_st mutex_lock(&dev_priv->backlight_lock); - if (panel->backlight.device) - panel->backlight.device->props.power = FB_BLANK_POWERDOWN; + backlight_disable(panel->backlight.device); panel->backlight.enabled = false; panel->backlight.disable(old_conn_state); @@ -1192,17 +1195,20 @@ static void __intel_panel_enable_backlight(const struct intel_crtc_state *crtc_s if (panel->backlight.level <= panel->backlight.min) { panel->backlight.level = panel->backlight.max; - if (panel->backlight.device) - panel->backlight.device->props.brightness = - scale_hw_to_user(connector, - panel->backlight.level, - panel->backlight.device->props.max_brightness); + if (panel->backlight.device) { + int brightness; + int max = backlight_get_max_brightness(panel->backlight.device); + + brightness = scale_hw_to_user(connector, + panel->backlight.level, + max); + backlight_set_brightness(panel->backlight.device, brightness); + } } panel->backlight.enable(crtc_state, conn_state); panel->backlight.enabled = true; - if (panel->backlight.device) - panel->backlight.device->props.power = FB_BLANK_UNBLANK; + backlight_enable(panel->backlight.device); } void intel_panel_enable_backlight(const struct intel_crtc_state *crtc_state, @@ -1288,10 +1294,11 @@ static int intel_backlight_device_update_status(struct backlight_device *bd) drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); DRM_DEBUG_KMS("updating intel_backlight, brightness=%d/%d\n", - bd->props.brightness, bd->props.max_brightness); - intel_panel_set_backlight(connector->base.state, bd->props.brightness, - bd->props.max_brightness); - + backlight_get_brightness(bd), + backlight_get_max_brightness(bd)); + intel_panel_set_backlight(connector->base.state, + backlight_get_brightness(bd), + backlight_get_max_brightness(bd)); /* * Allow flipping bl_power as a sub-state of enabled. Sadly the * backlight class device does not make it easy to to differentiate @@ -1299,13 +1306,10 @@ static int intel_backlight_device_update_status(struct backlight_device *bd) * callback needs to take this into account. */ if (panel->backlight.enabled) { - if (panel->backlight.power) { - bool enable = bd->props.power == FB_BLANK_UNBLANK && - bd->props.brightness != 0; - panel->backlight.power(connector, enable); - } + if (panel->backlight.power) + panel->backlight.power(connector, !backlight_is_blank(bd)); } else { - bd->props.power = FB_BLANK_POWERDOWN; + backlight_disable(bd); } drm_modeset_unlock(&dev->mode_config.connection_mutex); @@ -1322,12 +1326,12 @@ static int intel_backlight_device_get_brightness(struct backlight_device *bd) with_intel_runtime_pm(&dev_priv->runtime_pm, wakeref) { u32 hw_level; + int max = backlight_get_max_brightness(bd); drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); hw_level = intel_panel_get_backlight(connector); - ret = scale_hw_to_user(connector, - hw_level, bd->props.max_brightness); + ret = scale_hw_to_user(connector, hw_level, max); drm_modeset_unlock(&dev->mode_config.connection_mutex); } @@ -1344,7 +1348,12 @@ int intel_backlight_device_register(struct intel_connector *connector) { struct drm_i915_private *i915 = to_i915(connector->base.dev); struct intel_panel *panel = &connector->panel; - struct backlight_properties props; + /* + * Note: Everything should work even if the backlight device max + * presented to the userspace is arbitrarily chosen. + */ + DECLARE_BACKLIGHT_INIT_RAW(props, 0, panel->backlight.max); + int brightness; if (WARN_ON(panel->backlight.device)) return -ENODEV; @@ -1354,23 +1363,6 @@ int intel_backlight_device_register(struct intel_connector *connector) WARN_ON(panel->backlight.max == 0); - memset(&props, 0, sizeof(props)); - props.type = BACKLIGHT_RAW; - - /* - * Note: Everything should work even if the backlight device max - * presented to the userspace is arbitrarily chosen. - */ - props.max_brightness = panel->backlight.max; - props.brightness = scale_hw_to_user(connector, - panel->backlight.level, - props.max_brightness); - - if (panel->backlight.enabled) - props.power = FB_BLANK_UNBLANK; - else - props.power = FB_BLANK_POWERDOWN; - /* * Note: using the same name independent of the connector prevents * registration of multiple backlight devices in the driver. @@ -1388,6 +1380,14 @@ int intel_backlight_device_register(struct intel_connector *connector) return -ENODEV; } + brightness = scale_hw_to_user(connector, panel->backlight.level, panel->backlight.max); + backlight_set_brightness(panel->backlight.device, brightness); + + if (panel->backlight.enabled) + backlight_enable(panel->backlight.device); + else + backlight_disable(panel->backlight.device); + drm_dbg_kms(&i915->drm, "Connector %s backlight sysfs interface registered\n", connector->base.name); From patchwork Sun Aug 23 10:45: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: 11731567 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 C0840109B for ; Sun, 23 Aug 2020 10:46:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9F3C120774 for ; Sun, 23 Aug 2020 10:46:31 +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="Xae7aSPx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F3C120774 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8E7E589E5A; Sun, 23 Aug 2020 10:46:30 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id B7C4789E5A for ; Sun, 23 Aug 2020 10:46:24 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id v9so6452746ljk.6 for ; Sun, 23 Aug 2020 03:46: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=ZMwPo9+hRO7oQL+93/x+I1LlDVHjud/UjckxUZ0BGv4=; b=Xae7aSPx0pl6ZRpM7cpzpmzC5ZtR3hgHEiGzAtqSyIWS1VYH7XuMp/nMpQqJnCiDrD BJjCXLlzXYm2NO4PEarNp5sCtemqFIX3z2s5DFQ16HM3sycON3vKBgNdzVJVVlwunuFR xZwTqdlkpyfKaY8gT4cUMXmNzcNNKD7qT7ExFDPpwi2HXyDrSq7gUmeBpba0Sj8fRTZS 8hZMkM2zq8iK8dGNIkJ/5c/+VptPh2ATtliZJ6Em8rUkQFhf3Oab61REEoUrpY0Li/xB n1QmY18edm/pDzNosGl0n3MJWxoGRw7FZdjKVv2mkZi4EeQrZ685+OWYG7DVDGeCTjIu VnFg== 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=ZMwPo9+hRO7oQL+93/x+I1LlDVHjud/UjckxUZ0BGv4=; b=H1L+tJIa/DFygOCos7Yyqhu/rWZg128MATyLiHTrMiOITklrOmWUU0sFcdMXxazku/ tw5fSLtgwLMR3nANvxq5PmslVamrkqrqhTURegci69Mz19Op7F3c7IFCMkRAv/GhMKom BUsyO8HvipX2UdTwvMjwtg6GR/GYtGDZebi6+HN8qnH4JDCCjhpWW59VnyimZIlbMKlp WIW2hCDRcRT/OkxAeVelc/s2n68TtMOTVNRyd8AL7YpDWLuqDPODxDV6DnraPUq1NHJE KpxdL6B3cXR6W5lYHucqTEE5E7HHU86612jDR/So8nZjSB8hyXWaQkfsxi91g3nn8ypk Ie4Q== X-Gm-Message-State: AOAM532y728+6b5/S9dvKEVDZEqt6CbLTWXR2bZaQP2O+D9OAl9Iz9IB oLtgW/myjPRSOkQqDXEkWkhDMM7/SE5T4A== X-Google-Smtp-Source: ABdhPJw1LKNEImPCVBOA82i4UqJGro+ciuWODHdT0OvtGuUxbP/oFooR+7QmF3xEnFcZKwASePDbiw== X-Received: by 2002:a2e:b6c3:: with SMTP id m3mr455738ljo.450.1598179582921; Sun, 23 Aug 2020 03:46:22 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:22 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 23/24] drm/omap: display: Backlight update Date: Sun, 23 Aug 2020 12:45:31 +0200 Message-Id: <20200823104532.1024798-24-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Sebastian Reichel , Zheng Bin , Tomi Valkeinen , Laurent Pinchart , Sam Ravnborg Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Introduce backlight_{enable/disable) - Use get/set methods for backlight_properties - Drop redundant get_brightness() implementation The default implementation return the current brightness value - Use macro for backlight initialization v2: - Drop backlight_update() call as it is redundant (Sebastian) Signed-off-by: Sam Ravnborg Cc: Tomi Valkeinen Cc: Sebastian Reichel Cc: Laurent Pinchart Cc: Zheng Bin Cc: Sam Ravnborg Reviewed-by: Sebastian Reichel --- .../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 37 +++---------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index 3484b5d4a91c..39b3a7affbc8 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c @@ -110,17 +110,10 @@ static void dsicm_bl_power(struct panel_drv_data *ddata, bool enable) else return; - if (enable) { - backlight->props.fb_blank = FB_BLANK_UNBLANK; - backlight->props.state = ~(BL_CORE_FBBLANK | BL_CORE_SUSPENDED); - backlight->props.power = FB_BLANK_UNBLANK; - } else { - backlight->props.fb_blank = FB_BLANK_NORMAL; - backlight->props.power = FB_BLANK_POWERDOWN; - backlight->props.state |= BL_CORE_FBBLANK | BL_CORE_SUSPENDED; - } - - backlight_update_status(backlight); + if (enable) + backlight_enable(backlight); + else + backlight_disable(backlight); } static void hw_guard_start(struct panel_drv_data *ddata, int guard_msec) @@ -363,13 +356,7 @@ static int dsicm_bl_update_status(struct backlight_device *dev) struct panel_drv_data *ddata = dev_get_drvdata(&dev->dev); struct omap_dss_device *src = ddata->src; int r = 0; - int level; - - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) - level = dev->props.brightness; - else - level = 0; + int level = backlight_get_brightness(dev); dev_dbg(&ddata->pdev->dev, "update brightness to %d\n", level); @@ -390,17 +377,7 @@ static int dsicm_bl_update_status(struct backlight_device *dev) return r; } -static int dsicm_bl_get_intensity(struct backlight_device *dev) -{ - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) - return dev->props.brightness; - - return 0; -} - static const struct backlight_ops dsicm_bl_ops = { - .get_brightness = dsicm_bl_get_intensity, .update_status = dsicm_bl_update_status, }; @@ -1305,9 +1282,7 @@ static int dsicm_probe(struct platform_device *pdev) dsicm_hw_reset(ddata); if (ddata->use_dsi_backlight) { - struct backlight_properties props = { 0 }; - props.max_brightness = 255; - props.type = BACKLIGHT_RAW; + DECLARE_BACKLIGHT_INIT_RAW(props, 0, 255); bldev = devm_backlight_device_register(dev, dev_name(dev), dev, ddata, &dsicm_bl_ops, &props); From patchwork Sun Aug 23 10:45: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: 11731577 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 C72AF109B for ; Sun, 23 Aug 2020 10:46:40 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A5BB42072D for ; Sun, 23 Aug 2020 10:46:40 +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="NgHujceR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A5BB42072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 07D6C6E4C5; Sun, 23 Aug 2020 10:46:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 033C589E5A for ; Sun, 23 Aug 2020 10:46:26 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id w14so6447812ljj.4 for ; Sun, 23 Aug 2020 03:46:25 -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=7l6jdZamlqEsFmZWjsOIxeaEnRE65B410R46FIxqF2Y=; b=NgHujceRWQ7T502W1AGoMKPrxJeM7G6girgvVlbeV+j3Sw48PkyeztD30TGatNEnzH RXh4XtKCx3Mvu5JeNREsvGW5q88XeG1KLo5g/aEyJX0/wD7oVgMOd0DGH/uhqiHMA39A SA58BXG+lwmz3eShi+x9CsrarJsjw6qP/B/gVU1dndE9mhD9DJdvMjpq/RgNSbU7EqMx atKR5j5wgVu3joTuCYQkwRA4T/YMiGk7G3EXM3KvbIuRanBR8X+BHCPqQrP64A5AfqLG 9qwl2vU1M8BLf2x+SKUMrsCx+7Wl1SavV6CoS5P7sCcX/X340IJo55lfN0ROoxhTnQdS cfTA== 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=7l6jdZamlqEsFmZWjsOIxeaEnRE65B410R46FIxqF2Y=; b=ufxaH+zPtSDmstN82K4ZjJSlWdqnGO+Gb1EFwdi4oN8Y5zeRkuNO0cd6Oo9yagEDiI V1J0Hgb4gzpohGd520OfkK2atxD9KtWbkk4l6wInbagT7VTNJsKHM9Lc3Ws76xR5ZWVj nCxhJLqpY4JWuzBFq178MScMixyrfoWcbb2ssIJ38pQPoF8D02l0vpfehetPsC5r9+/8 UmAF5v8qnnslENDp6sXoqg09v5OTiZAlixrk9gnGIIY5ZcCXQaLkMrp3YjIlc81RIeHF jPcU76nHtrCib+s8IlWCXdvtTPvCUbrF+8Znbz5Ryd/hfpturHZwTx7zWoWzBOOQzttT xKgA== X-Gm-Message-State: AOAM530+cFU2+rFBEhFpcPAEK4mNHCHA1K78rImj9gDvCbIruUy9NyIM MKdsv+zoldJZ4fSv/d9wokISRH5vSboavQ== X-Google-Smtp-Source: ABdhPJya6ritx1IFagTY3VZYCPCibTXPllnn2aEVUQ08oCMufSBAE+kemNZ/qhACJp/hJuVtbECZ8w== X-Received: by 2002:a2e:8197:: with SMTP id e23mr483132ljg.406.1598179584290; Sun, 23 Aug 2020 03:46:24 -0700 (PDT) Received: from saturn.localdomain ([2a00:fd00:805f:db00:2509:20d7:e461:9c16]) by smtp.gmail.com with ESMTPSA id h13sm1516301lji.134.2020.08.23.03.46.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 03:46:23 -0700 (PDT) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Jingoo Han , Lee Jones , Daniel Thompson Subject: [PATCH v2 24/24] drm/shmobile: Backlight update Date: Sun, 23 Aug 2020 12:45:32 +0200 Message-Id: <20200823104532.1024798-25-sam@ravnborg.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200823104532.1024798-1-sam@ravnborg.org> References: <20200823104532.1024798-1-sam@ravnborg.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-renesas-soc@vger.kernel.org, Daniel Vetter , Kieran Bingham , Sam Ravnborg , Laurent Pinchart Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" - Use get/set methods for backlight_properties - Use macro for backlight initialization Signed-off-by: Sam Ravnborg Cc: Laurent Pinchart Cc: Kieran Bingham Cc: linux-renesas-soc@vger.kernel.org --- .../gpu/drm/shmobile/shmob_drm_backlight.c | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/shmobile/shmob_drm_backlight.c b/drivers/gpu/drm/shmobile/shmob_drm_backlight.c index f6628a5ee95f..634b49e50ded 100644 --- a/drivers/gpu/drm/shmobile/shmob_drm_backlight.c +++ b/drivers/gpu/drm/shmobile/shmob_drm_backlight.c @@ -18,13 +18,8 @@ static int shmob_drm_backlight_update(struct backlight_device *bdev) struct shmob_drm_connector *scon = bl_get_data(bdev); struct shmob_drm_device *sdev = scon->connector.dev->dev_private; const struct shmob_drm_backlight_data *bdata = &sdev->pdata->backlight; - int brightness = bdev->props.brightness; - if (bdev->props.power != FB_BLANK_UNBLANK || - bdev->props.state & BL_CORE_SUSPENDED) - brightness = 0; - - return bdata->set_brightness(brightness); + return bdata->set_brightness(backlight_get_brightness(bdev)); } static int shmob_drm_backlight_get_brightness(struct backlight_device *bdev) @@ -47,9 +42,10 @@ void shmob_drm_backlight_dpms(struct shmob_drm_connector *scon, int mode) if (scon->backlight == NULL) return; - scon->backlight->props.power = mode == DRM_MODE_DPMS_ON - ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN; - backlight_update_status(scon->backlight); + if (mode == DRM_MODE_DPMS_ON) + backlight_enable(scon->backlight); + else + backlight_disable(scon->backlight); } int shmob_drm_backlight_init(struct shmob_drm_connector *scon) @@ -59,21 +55,19 @@ int shmob_drm_backlight_init(struct shmob_drm_connector *scon) struct drm_connector *connector = &scon->connector; struct drm_device *dev = connector->dev; struct backlight_device *backlight; + DECLARE_BACKLIGHT_INIT_RAW(props, bdata->max_brightness, bdata->max_brightness); if (!bdata->max_brightness) return 0; backlight = backlight_device_register(bdata->name, dev->dev, scon, - &shmob_drm_backlight_ops, NULL); + &shmob_drm_backlight_ops, &props); if (IS_ERR(backlight)) { dev_err(dev->dev, "unable to register backlight device: %ld\n", PTR_ERR(backlight)); return PTR_ERR(backlight); } - backlight->props.max_brightness = bdata->max_brightness; - backlight->props.brightness = bdata->max_brightness; - backlight->props.power = FB_BLANK_POWERDOWN; backlight_update_status(backlight); scon->backlight = backlight;