Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp351609rwi; Mon, 10 Oct 2022 00:55:57 -0700 (PDT) X-Google-Smtp-Source: AMsMyM70BAIO7AOPjCqo03uoUP+ludJjNJlHRSdYI0Zg7tOWk6AHK8SMXcCGbKTs3w8UKYox8ymX X-Received: by 2002:a17:90a:d48b:b0:20a:97fb:3eb with SMTP id s11-20020a17090ad48b00b0020a97fb03ebmr29449016pju.189.1665388557126; Mon, 10 Oct 2022 00:55:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665388557; cv=none; d=google.com; s=arc-20160816; b=d6r1nul0p5OvgLe8j71ekkLMChqpSN8ajof1plpcz4ObRqS5DpeEJsZRkOhBFwkT5B dllFd66wQ3F7XoGsBGiMBC6yzzGzM+rrdTGTeZabyh8VzweLGFy76wR5ucsNsy2+98IO 4tN4oxePov7ksSPaiN87+1+pvXpZtrsx42WimxrjXNb0mFNu8glcDUsZTkBa7p77xa2x RYcMCB4Mhq3xUskjcKYldOZfY305MYUyL/cw+zm+pzb225AejUQwyYkCydY3ylGaE6gR k8K0UHZJLo6nG5LiGnXlynWAmDfyoLCM7MFXJneay0TS3T1lpBKTBkVXnczwyj+CdLIa u9bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=3QIAgch2Vqve53ZyvQLAWpmF39hyanv1cw0cewhoByo=; b=oyrg+31mHcz0RjmsyOiwqECb7ua4n4qwHPEfAgJrOEVhtBoKNWjHx6FFk9aA/NdPnR FeCe0YOTjjBhe9Rjq8AJWbOIlDvVcK8+/PNCnv+y/4u03iy2YMQd3WS13arZa256pCLU pzpRCIJLoa6AFKWoUUMBcoYDqGq+G/9mnjsS+NpCqvBckG+Wra5cQR3QOU2D910jxX8Q ZSL2glQSZ9FR1+J6Qr3CVB3S555aY7tv3WIGT8heBK6j22n5tL66Du/O8JF5jJ+iFz1r NVnsJ6ErcDTLikioIHevA49fA1e7M08zWy/nisJfFcgFBQcgy+ZDG6rDstLpTA/2pqhf Btug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=KZ6Qc6dw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q15-20020a17090a430f00b0020b205215f1si10840696pjg.118.2022.10.10.00.55.44; Mon, 10 Oct 2022 00:55:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=KZ6Qc6dw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231791AbiJJHkp (ORCPT + 99 others); Mon, 10 Oct 2022 03:40:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231757AbiJJHkL (ORCPT ); Mon, 10 Oct 2022 03:40:11 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B91FF66A78 for ; Mon, 10 Oct 2022 00:35:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665387333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3QIAgch2Vqve53ZyvQLAWpmF39hyanv1cw0cewhoByo=; b=KZ6Qc6dwTqfskVY3ru8HIbV+Zd4XjWhq9+eJTUJ8QLWokAcRWBdkwWr4vYGrFhbJsgiAh6 AvSUjW81HCuRBoKG/5WIwbCKikjDgAIHM3shV7bLRmXfUizuuyrbd0LvLHrt2ijwdT/Gzl wPfe1dzFCexLM9cPSbddvPPjiOCtGJo= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-437-7w771RpYODG2U4XROMlClg-1; Mon, 10 Oct 2022 03:35:32 -0400 X-MC-Unique: 7w771RpYODG2U4XROMlClg-1 Received: by mail-ej1-f72.google.com with SMTP id gn33-20020a1709070d2100b00787e6fbcb72so4044567ejc.3 for ; Mon, 10 Oct 2022 00:35:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3QIAgch2Vqve53ZyvQLAWpmF39hyanv1cw0cewhoByo=; b=RIhRQOA8Pel+qhgNYQsVE56iTkjnNJf6IPDDKoHQyaE0tF99T1RY1pc4gkf1+CHj+p 91HrUyx6t49+DwOYGLvsQQPT86BQuMRLA1PXMSLE+kcem1EivNuzg7xd5c3NEc5arqzW BZtkMud/mSwdkM2Wl8Ee5JAVRSr53B903M4SW9mUGDqFmsTvbpI9Hcm1j2iniNwZFcyB RfwC8yC8JmjvNiAGVYZOFe5kWEP5UMRqqUviRjsWGAt1wWmW8NtLEZhwW5z+74Y83VKq Dxi0RtImwOwRrdEko/K5Ci6koQ6O2AZxbFvsD8tT0oy+dSD37g3jlP/xUj7DeOEW+fQK zajQ== X-Gm-Message-State: ACrzQf053+CoYQjcJjs8fyRGKX/tQQmnLKRrYOq9h9wAq56hR02boD4V khE6B4rFpYL5iOsuwjf3Drtg20yEwEiyVOpS4VNEXN2BkwCS6dGYTCTOTJDiSt1Xq0pClhn9KHF ZXX1T+JYAtxeUx/gI57jWMtAM X-Received: by 2002:a17:906:794b:b0:783:8db0:95a5 with SMTP id l11-20020a170906794b00b007838db095a5mr14042337ejo.728.1665387331477; Mon, 10 Oct 2022 00:35:31 -0700 (PDT) X-Received: by 2002:a17:906:794b:b0:783:8db0:95a5 with SMTP id l11-20020a170906794b00b007838db095a5mr14042323ejo.728.1665387331248; Mon, 10 Oct 2022 00:35:31 -0700 (PDT) Received: from [10.40.98.142] ([78.108.130.194]) by smtp.gmail.com with ESMTPSA id kx6-20020a170907774600b00738795e7d9bsm4999789ejc.2.2022.10.10.00.35.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Oct 2022 00:35:30 -0700 (PDT) Message-ID: <22a37743-a9d4-c59a-a602-19eb00d3d90c@redhat.com> Date: Mon, 10 Oct 2022 09:35:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [PATCH AUTOSEL 5.19 16/36] ACPI: video: Change disable_backlight_sysfs_if quirks to acpi_backlight=native Content-Language: en-US To: Sasha Levin , linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Rafael J . Wysocki" , Arvid Norlander , rafael@kernel.org, linux-acpi@vger.kernel.org References: <20221009235222.1230786-1-sashal@kernel.org> <20221009235222.1230786-16-sashal@kernel.org> From: Hans de Goede In-Reply-To: <20221009235222.1230786-16-sashal@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 10/10/22 01:52, Sasha Levin wrote: > From: Hans de Goede > > [ Upstream commit c5b94f5b7819348c59f9949b2b75c341a114cdd4 ] > > Some Toshibas have a broken acpi-video interface for brightness control > and need a special firmware call on resume to turn the panel back on. > So far these have been using the disable_backlight_sysfs_if workaround > to deal with this. > > The recent x86/acpi backlight refactoring has broken this workaround: > 1. This workaround relies on acpi_video_get_backlight_type() returning > acpi_video so that the acpi_video code actually runs; and > 2. this relies on the actual native GPU driver to offer the sysfs > backlight interface to userspace. > > After the refactor this breaks since the native driver will no > longer register its backlight-device if acpi_video_get_backlight_type() > does not return native and making it return native breaks 1. > > Keeping the acpi_video backlight handling on resume active, while not > using it to set the brightness, is necessary because it does a _BCM > call on resume which is necessary to turn the panel back on on resume. > > Looking at the DSDT shows that this _BCM call results in a Toshiba > HCI_SET HCI_LCD_BRIGHTNESS call, which turns the panel back on. > > This kind of special vendor specific handling really belongs in > the vendor specific acpi driver. An earlier patch in this series > modifies toshiba_acpi to make the necessary HCI_SET call on resume > on affected models. > > With toshiba_acpi taking care of the HCI_SET call on resume, > the acpi_video code no longer needs to call _BCM on resume. > > So instead of using the (now broken) disable_backlight_sysfs_if > workaround, simply setting acpi_backlight=native to disable > the broken apci-video interface is sufficient fix things now. > > After this there are no more users of the disable_backlight_sysfs_if > flag and as discussed above the flag also no longer works as intended, > so remove the disable_backlight_sysfs_if flag entirely. > > Acked-by: Rafael J. Wysocki > Tested-by: Arvid Norlander > Signed-off-by: Hans de Goede > Signed-off-by: Sasha Levin This patch goes hand in hand with: commit 3cb1f40dfdc3 ("drivers/platform: toshiba_acpi: Call HCI_PANEL_POWER_ON on resume on some models") and without that commit also being present it will cause a regression on the quirkes Toshiba models. This really is part of the big x86/ACPI backlight handling refactor which has landed in 6.1 and as such is not intended for older kernels, please drop this from the stable series. Regards, Hans > --- > drivers/acpi/acpi_video.c | 48 ------------------------------------- > drivers/acpi/video_detect.c | 35 +++++++++++++++++++++++++++ > 2 files changed, 35 insertions(+), 48 deletions(-) > > diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c > index eaea733b368a..bd972d28df5d 100644 > --- a/drivers/acpi/acpi_video.c > +++ b/drivers/acpi/acpi_video.c > @@ -47,9 +47,6 @@ module_param(brightness_switch_enabled, bool, 0644); > static bool allow_duplicates; > module_param(allow_duplicates, bool, 0644); > > -static int disable_backlight_sysfs_if = -1; > -module_param(disable_backlight_sysfs_if, int, 0444); > - > #define REPORT_OUTPUT_KEY_EVENTS 0x01 > #define REPORT_BRIGHTNESS_KEY_EVENTS 0x02 > static int report_key_events = -1; > @@ -382,14 +379,6 @@ static int video_set_bqc_offset(const struct dmi_system_id *d) > return 0; > } > > -static int video_disable_backlight_sysfs_if( > - const struct dmi_system_id *d) > -{ > - if (disable_backlight_sysfs_if == -1) > - disable_backlight_sysfs_if = 1; > - return 0; > -} > - > static int video_set_device_id_scheme(const struct dmi_system_id *d) > { > device_id_scheme = true; > @@ -462,40 +451,6 @@ static const struct dmi_system_id video_dmi_table[] = { > }, > }, > > - /* > - * Some machines have a broken acpi-video interface for brightness > - * control, but still need an acpi_video_device_lcd_set_level() call > - * on resume to turn the backlight power on. We Enable backlight > - * control on these systems, but do not register a backlight sysfs > - * as brightness control does not work. > - */ > - { > - /* https://bugzilla.kernel.org/show_bug.cgi?id=21012 */ > - .callback = video_disable_backlight_sysfs_if, > - .ident = "Toshiba Portege R700", > - .matches = { > - DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > - DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE R700"), > - }, > - }, > - { > - /* https://bugs.freedesktop.org/show_bug.cgi?id=82634 */ > - .callback = video_disable_backlight_sysfs_if, > - .ident = "Toshiba Portege R830", > - .matches = { > - DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > - DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE R830"), > - }, > - }, > - { > - /* https://bugzilla.kernel.org/show_bug.cgi?id=21012 */ > - .callback = video_disable_backlight_sysfs_if, > - .ident = "Toshiba Satellite R830", > - .matches = { > - DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > - DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE R830"), > - }, > - }, > /* > * Some machine's _DOD IDs don't have bit 31(Device ID Scheme) set > * but the IDs actually follow the Device ID Scheme. > @@ -1767,9 +1722,6 @@ static void acpi_video_dev_register_backlight(struct acpi_video_device *device) > if (result) > return; > > - if (disable_backlight_sysfs_if > 0) > - return; > - > name = kasprintf(GFP_KERNEL, "acpi_video%d", count); > if (!name) > return; > diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c > index 5d7f38016a24..c370de174fd3 100644 > --- a/drivers/acpi/video_detect.c > +++ b/drivers/acpi/video_detect.c > @@ -514,6 +514,41 @@ static const struct dmi_system_id video_detect_dmi_table[] = { > DMI_MATCH(DMI_BOARD_NAME, "PF5LUXG"), > }, > }, > + /* > + * These Toshibas have a broken acpi-video interface for brightness > + * control. They also have an issue where the panel is off after > + * suspend until a special firmware call is made to turn it back > + * on. This is handled by the toshiba_acpi kernel module, so that > + * module must be enabled for these models to work correctly. > + */ > + { > + /* https://bugzilla.kernel.org/show_bug.cgi?id=21012 */ > + .callback = video_detect_force_native, > + /* Toshiba Portégé R700 */ > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > + DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE R700"), > + }, > + }, > + { > + /* Portégé: https://bugs.freedesktop.org/show_bug.cgi?id=82634 */ > + /* Satellite: https://bugzilla.kernel.org/show_bug.cgi?id=21012 */ > + .callback = video_detect_force_native, > + /* Toshiba Satellite/Portégé R830 */ > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > + DMI_MATCH(DMI_PRODUCT_NAME, "R830"), > + }, > + }, > + { > + .callback = video_detect_force_native, > + /* Toshiba Satellite/Portégé Z830 */ > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > + DMI_MATCH(DMI_PRODUCT_NAME, "Z830"), > + }, > + }, > + > /* > * Desktops which falsely report a backlight and which our heuristics > * for this do not catch.