Received: by 2002:a05:6358:701b:b0:131:369:b2a3 with SMTP id 27csp83581rwo; Fri, 21 Jul 2023 08:51:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlFuEEDe0eU9ivTdOr2Ny7CecdT/gPGDka6Cz8IZVqLD4BjIkDSSI/aELQEs79GZqgENkJxd X-Received: by 2002:a05:6a00:b85:b0:67b:f249:35e3 with SMTP id g5-20020a056a000b8500b0067bf24935e3mr544220pfj.26.1689954715427; Fri, 21 Jul 2023 08:51:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689954715; cv=none; d=google.com; s=arc-20160816; b=lqvFKYFe4/kvaRkJTiR4tv24iGgFp7fPyAORbppxtBTa/ULYYSkXp+oB5cW+K9nsxc JwSCjTObBpZpaVSU0a1YbbuhHSUbFfYDtcO13wam7o3Q8/zmEXAsVEidZ6SoLDtUBg6K 3C1zN4h+4uxd7I8cgjXQ3/cj8mr8KwTbBpbdmStfzz/J5I8qHwFqJXnjXKcrD+3gcwUr 1NQEMlqiZDcuimZK1rPbIisyb85Uv8Nokvj8JVzq0eKt9ZZEyea52eZoQwsCJJ5J0vRz Dl0SG9XZyY+4WV8tcxyfsVCwi/+UiLDi+oRD4pmyDTgHyJWDjS9Clx6TDSa7tR1GXasB vt2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Ce8ROm7GD4JAsILKV21vfET07MwWq4GnXXI4EwwUbYs=; fh=vcc007C1+SvL+lkU5qpv6CmtrmcF/qZPD2XlFq1HQt4=; b=vzrlwJ/2dKUQR4wn5gZXCNgQvMw/In2ZzRQfjD6b31A0n0teAww0NRrnMCQxayVdhy 2Z4N1OppuhcrRYd3LFi/a25kkt27b0adJ7ABUDQRQTkb2rMkpj39LmKXDwYjhZ8L6VS1 70PlQ7S2tj4sAPHbv7GzPaZ4ZeYt1B0LnkoajmekDqf+5hG389h/ZdxmpiYsnZ3yFwhH KHx7+zClHdvqrC0VdIpsi3DHRO9OSH2BeBtb8LKv9YzC54uzCKug+e9Lu1WqrRDPuWiH kLGZdi6P+n9MWGhhUpmM/uCslPcXCQ5ZiQHqFvG49y8uBl9025pbNg8eMWcv215ZNbpQ ynbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=KPdeNJq0; 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=canonical.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fd13-20020a056a002e8d00b0068632b6bc90si3495193pfb.114.2023.07.21.08.51.42; Fri, 21 Jul 2023 08:51:55 -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=@canonical.com header.s=20210705 header.b=KPdeNJq0; 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=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230128AbjGUPXo (ORCPT + 99 others); Fri, 21 Jul 2023 11:23:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231843AbjGUPXZ (ORCPT ); Fri, 21 Jul 2023 11:23:25 -0400 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 360F83AB6; Fri, 21 Jul 2023 08:23:02 -0700 (PDT) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 7EB9E3F30D; Fri, 21 Jul 2023 15:22:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1689952954; bh=Ce8ROm7GD4JAsILKV21vfET07MwWq4GnXXI4EwwUbYs=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=KPdeNJq0nBYQ2rVgU5ZOqtJLRnsBt9JCbPDbYwzm1DtsFYrAlU2SsHiWJVsOnn8Cx 5+ql8zLYXESOoi7blIJSYAUeeAQ85UbmlB5QHPNMvIPDVnsmqb+vNYeCzWGB+vGEQv npbbAaYsuzPc+u/9ECXc6V22ww6XYp9kkzHfOj6It7jYuSpuqhgGU7ahBx1rKaR6Eb cdVDX0ZAXBEq1eZ2SIK73bD86ER77kNfD7A3fCN9KZ692+h2h49O349LsgamOEUGzs 1Ez6bNubQAku0R969HEfxy1rl2JTAm3C0+k+64ARwY+VmD84KPCpkkFc/BuTaZG8Og PXDTvSvWwbp7Q== From: Kai-Heng Feng To: rafael@kernel.org, lenb@kernel.org, hdegoede@redhat.com Cc: Kai-Heng Feng , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3] ACPI: video: Put ACPI video and its child devices to D0 at boot Date: Fri, 21 Jul 2023 23:21:43 +0800 Message-Id: <20230721152143.3108017-1-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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 Screen brightness can only be changed once on HP ZBook Fury 16 G10. Vendor identified the root cause as Linux doesn't invoke _PS0 at boot for all ACPI devices: Scope (\_SB.PC00.GFX0) { Scope (DD1F) { Method (_PS0, 0, Serialized) // _PS0: Power State 0 { If (CondRefOf (\_SB.PC00.LPCB.EC0.SSBC)) { \_SB.PC00.LPCB.EC0.SSBC () } } ... } ... } The \_SB.PC00.GFX0.DD1F is the panel device, and its _PS0 needs to be executed to make the brightness control work properly. _PS0 doesn't get invoked for this device because _PSC is missing, which violates ACPI spec 6.3, section 7.3.6. Commit 7cd8407d53ef ("ACPI / PM: Do not execute _PS0 for devices without _PSC during initialization") tried to workaround missing _PSC on defective firmwares, but got reverted because of regression. So the safest approach is to use acpi_device_fix_up_power_extended() to put ACPI video and its child devices to D0 to workaround the issue. Link: https://bugzilla.kernel.org/show_bug.cgi?id=217683 Signed-off-by: Kai-Heng Feng --- v3: - Wording change to make it clear it's a firmware issue. - Specify the device name in comment. v2: - Wording - Bugzilla - Add comment drivers/acpi/acpi_video.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c index 62f4364e4460..1732780a672b 100644 --- a/drivers/acpi/acpi_video.c +++ b/drivers/acpi/acpi_video.c @@ -2027,6 +2027,12 @@ static int acpi_video_bus_add(struct acpi_device *device) if (error) goto err_put_video; + /* + * HP ZBook Fury 16 G10 requires ACPI video's child devices have _PS0 + * evaluated to have functional panel brightness control. + */ + acpi_device_fix_up_power_extended(device); + pr_info("%s [%s] (multi-head: %s rom: %s post: %s)\n", ACPI_VIDEO_DEVICE_NAME, acpi_device_bid(device), video->flags.multihead ? "yes" : "no", -- 2.34.1