Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp377799rwi; Mon, 10 Oct 2022 01:27:12 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5N42bzwq3RCUyRN8IDI4fuXJmoC+Qe/qAao4JF4hjTMkLm600Zw10/vGj4K1sZ6/QbDn0U X-Received: by 2002:a17:907:a48:b0:77c:51b0:5aeb with SMTP id be8-20020a1709070a4800b0077c51b05aebmr14161974ejc.61.1665390432357; Mon, 10 Oct 2022 01:27:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665390432; cv=none; d=google.com; s=arc-20160816; b=ONIqw85imjUVD4u1Qv0F8JXFPsP5LIPyJ/4DPVYJdXKVkXq/PnE8I4aGM+xYud8trR cgOcKHvvxkasr8TXvLk2k1jz/zYkiukpbhmNNy2mPAiVgY+WOMU4rcj3pEIZCsDKn7jO 9AXUCm1TlzbPdoZJ9xn48H4IfDHeMFZBFX6d/w2uTvJU5eY6knQsFOwF9Ib2CWT83nMy XbBHuHdnqSVnDkboTpASTm9xFTqoJbEceJoEspwrpTaM0PvggfyifzDL7nQ29j5/jg8a UZF1xEI0SyoBC4ZVxxVzuK9wDKXyxgtKNVoMIasIk638op6aQ99Q57NOE+cdYda94u2G oNZg== 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 :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=gNeu1W9OAX47UTRL5GuZrgIh4zKGf9tt4BDSERSLktg=; b=v+/gwE7kSOkp1j8NAaFhHERnf+u5L6FzAyvHfmn3kan4jn88pMXZPMW5P2ZtgbZ2CO aLtVg+PM70MJn4C6d9tpsq/gPkSjQw6idrBR1xL8wGkx71PC67l+qszUXf+2AfBSCXSV 4Y/86ry7DHJ8ji6KNwiIOkxFn28Yo+deWDxH0OQX1sVedXHAOhFgfEIKgxMjI85R81V7 OjTHyyWTWtOsEIjrCbdiIDZUPPm7TD+DHVRAqsHZ6ULm5Hmj/fR0CPkY22QHmfQ8Kmuv XoJhPaRMKAqfpSgzgMRKgL3bEXoa4s8kXgIUbRAkhDgvIWB6RL+XMlEY9/Hmm8tUZDNM nPdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=URwsqnjp; 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 di14-20020a170906730e00b0070fc7c9d71dsi7755341ejc.989.2022.10.10.01.26.47; Mon, 10 Oct 2022 01:27:12 -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=URwsqnjp; 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 S232155AbiJJHkj (ORCPT + 99 others); Mon, 10 Oct 2022 03:40:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231232AbiJJHkJ (ORCPT ); Mon, 10 Oct 2022 03:40:09 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0BC494CA1C for ; Mon, 10 Oct 2022 00:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665387312; 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=gNeu1W9OAX47UTRL5GuZrgIh4zKGf9tt4BDSERSLktg=; b=URwsqnjpnD05+H2D6VILIXUDpbrqtvcZwq8/MiXHolPIyjMboeYjp1MIns7M3UJT5e2EA9 LmQV67gYEiu1yQcSffAnssb3EGboCHbmJeTJoEpTgmYNgOjKygHV+s0ICKrTmXGSanCymr 4q1QJ4vSNLj/hgPYrIVaAECeCtlrxYk= Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-624-we_Nj1KcM_69Hl9meA4Ypg-1; Mon, 10 Oct 2022 03:35:11 -0400 X-MC-Unique: we_Nj1KcM_69Hl9meA4Ypg-1 Received: by mail-ed1-f72.google.com with SMTP id dz21-20020a0564021d5500b004599f697666so8315857edb.18 for ; Mon, 10 Oct 2022 00:35:10 -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:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gNeu1W9OAX47UTRL5GuZrgIh4zKGf9tt4BDSERSLktg=; b=DoEuE6/CNrHJeJ0sVOJaFaKt07wo/IfPoAS/S9hoF41qQflfz/UhP+89WN3KnpB6S3 1OGkdMFdL9LDQD8Y4nBi4HJT1wrUTWxYLoKsABvPrY0WIS9qH1rgMO7rt7F9DKZdpPyK S5kRoVnjFW4VVrRj4kY8wuZq95XQbeVqYLPakPBxwGJziZNqwsKZ1IWBQTtBO8rnj6Gf usZiZtdoTWr9OPF6TyFN1bdyBR+lJnf7iG84zApHJV2crXTYclEh+mgQguQKzI2buNV3 A8JG22/2pcqsjukq/6BsOJd6WpqvdBFT9iwnnOqErMslHoLloVr+uDVxMeLeEqf260Ld yhiA== X-Gm-Message-State: ACrzQf3cyAGCesuWhknrTw2oW4FGdNhRi78RaAWvHWDhimE8MvO7Kjko EM0dS2MEXL+jBCsB26gdqjYkarT4AbhPN2aQwlbKeM4UnsJ8XuMa23be/3i5nclhhkxeiWPVNJZ axGxaQuZLDEtUYflrQpEB56Wu X-Received: by 2002:a17:907:2e0b:b0:78d:387d:1579 with SMTP id ig11-20020a1709072e0b00b0078d387d1579mr13336433ejc.761.1665387309444; Mon, 10 Oct 2022 00:35:09 -0700 (PDT) X-Received: by 2002:a17:907:2e0b:b0:78d:387d:1579 with SMTP id ig11-20020a1709072e0b00b0078d387d1579mr13336414ejc.761.1665387309187; Mon, 10 Oct 2022 00:35:09 -0700 (PDT) Received: from [10.40.98.142] ([78.108.130.194]) by smtp.gmail.com with ESMTPSA id b38-20020a509f29000000b00458b41d9460sm6517366edf.92.2022.10.10.00.35.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Oct 2022 00:35:08 -0700 (PDT) Message-ID: <5a3df562-2416-7f5c-30f0-d20cbe69c17d@redhat.com> Date: Mon, 10 Oct 2022 09:35:07 +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 6.0 19/44] ACPI: video: Change disable_backlight_sysfs_if quirks to acpi_backlight=native 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: <20221009234932.1230196-1-sashal@kernel.org> <20221009234932.1230196-19-sashal@kernel.org> Content-Language: en-US From: Hans de Goede In-Reply-To: <20221009234932.1230196-19-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=unavailable 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:49, 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 p.s. I'll also copy and paste this reply to the other stable series kernels where this has been cherry-picked. > --- > 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 5cbe2196176d..8da63f146fe1 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. > @@ -1758,9 +1713,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.