Received: by 2002:ab2:6a05:0:b0:1f8:1780:a4ed with SMTP id w5csp523550lqo; Fri, 10 May 2024 07:07:13 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVsSYxyiAQDzihlHc3nro/V6uc+D6InGeqgq9Z1owdifs8jirLb/tjnUvjXvyoAEVcToMsuJHmZHR4S6+01YinQbYO5fkilV9bTHtEO9A== X-Google-Smtp-Source: AGHT+IGAYeDM0Y5feZdRjqRRDzsQjnmcB9f9BR1en3xFBNiOTqd1xhLAxLIJ3MNq/QJk7l7nqW2T X-Received: by 2002:a17:90a:b38c:b0:29c:5708:b922 with SMTP id 98e67ed59e1d1-2b6cc76f920mr3024825a91.26.1715350033507; Fri, 10 May 2024 07:07:13 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715350033; cv=pass; d=google.com; s=arc-20160816; b=bOwoYA09xfSAA5OFmlR2kb4CSGGmjlY5DY23QtpW5tV9NM0v/0Rbw/neMQqLrhhPmr QBAbE99NjeWaX11YYZyg7NYJ/dQ+LC75zFSUJiby2eSJoM7Q6Bh9bd5eFPRqc0aauZK5 yOEG1F4V6ZQnISMNcx3xjztcym8Rk+izo2P9D8y16Ozv6KMO9M4moJvZeKLimqNyNnxQ gM/VV3KOckg4wMLasPS2SwyQx1LR6MFLc6ECAeJwvNtR0f//Lw0fh5G4x+cR5bdyVa8X SL7g0z9ksG1BE1bfJnCtSDwS7OqZhPPQHGOCp718pZneVc8vhR1dKOzrw0OcKeqCKRCG xckQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=4Lodk90ri7IHwcvMxx/e70A4FRvXBlrmGWrU3YQqlhU=; fh=N0T2N1QJt8Nx3QiT4i32NLGudaK1IPKX5Zx5lIb1yZg=; b=KV9j9Fx6yeNlMY2I5aCIIbP56CjK1Qm4rnnper2YRy1MMyyAVDBSXTWIajevUS+/NA hzAwGrMSTBxcXaypjKkO8H2ltycFjUZRo/g8p9LEpemYxbtC5jmJUtvijNmEdZm9LZbo mfGx7kf9Pou2wynzTzTxI1MEWODtwqPI4KTwVFW4Ph2d8mfXXtX1ImYblMuizlCVAyxW HlMhCSdaAGm1zn6t+zTrT8CiZgcyV4cqtbEjDA01ShCYWd2a+UMjL9ugATe6qECEBQdZ AYmhr8z3aowlqnEvWs13B9eKKmwLD/tVsVgDrf+QrOZPTDA1yJjw55V1GGEpDJnmsxW5 xaFg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@rjwysocki.net header.s=dkim header.b=l2XMWdQ8; arc=pass (i=1 spf=pass spfdomain=rjwysocki.net); spf=pass (google.com: domain of linux-kernel+bounces-175860-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-175860-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 98e67ed59e1d1-2b67158c2ffsi3787462a91.162.2024.05.10.07.07.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 May 2024 07:07:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-175860-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=fail header.i=@rjwysocki.net header.s=dkim header.b=l2XMWdQ8; arc=pass (i=1 spf=pass spfdomain=rjwysocki.net); spf=pass (google.com: domain of linux-kernel+bounces-175860-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-175860-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id D2714285215 for ; Fri, 10 May 2024 14:06:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E9067172790; Fri, 10 May 2024 14:05:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=rjwysocki.net header.i=@rjwysocki.net header.b="l2XMWdQ8" Received: from cloudserver094114.home.pl (cloudserver094114.home.pl [79.96.170.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 803D7171E76; Fri, 10 May 2024 14:05:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.96.170.134 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715349905; cv=none; b=SegMaoQXVbQ72d+oiiJ77Fm5l3P3w10lJWTorbjln688ZetdWz177xA+HIWd+royrXZ7mdqwQIpO3O6Jng6mZwixD8hYxBPmQ9U5DXJ6nSuJCbHKdT0Nhxrjfpw3gnprdhE0bSHdbIkXdHyrixL1lOsgSr/PSdHSfHOg+9uuI6U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715349905; c=relaxed/simple; bh=6nnNI+8ttiFCVavSCR50MiS+cUzOw7OlaLziYY2qETc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JUt2cRuRj0JmTS2XSgSo9WpNojL1jk1T6mIhliQeTyIx1HkZiGt72/KVW8S+c/ujouge9TPnjIKAX/ACsGLWC4dVl5hRcYKMX6Kif8erhryaGAPL5vLtK/hvH1YuH0V2QpToIKHnoGSKBg0Gmmh8B5oPtHM/4coQ15Hx25z+9k8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rjwysocki.net; spf=pass smtp.mailfrom=rjwysocki.net; dkim=fail (2048-bit key) header.d=rjwysocki.net header.i=@rjwysocki.net header.b=l2XMWdQ8 reason="signature verification failed"; arc=none smtp.client-ip=79.96.170.134 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rjwysocki.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rjwysocki.net Received: from localhost (127.0.0.1) (HELO v370.home.net.pl) by /usr/run/smtp (/usr/run/postfix/private/idea_relay_lmtp) via UNIX with SMTP (IdeaSmtpServer 6.0.0) id 6b0375304aaebbe4; Fri, 10 May 2024 16:05:00 +0200 Received: from kreacher.localnet (unknown [195.136.19.94]) (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 cloudserver094114.home.pl (Postfix) with ESMTPSA id 9074F21031DA; Fri, 10 May 2024 16:04:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rjwysocki.net; s=dkim; t=1715349900; bh=6nnNI+8ttiFCVavSCR50MiS+cUzOw7OlaLziYY2qETc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=l2XMWdQ872QdrlLeyaN7JHPOWUJecjwtmOIr4EpJWKkFjQFA/jdNExKyf4/jJ5sZV 1TJ3TcqDcbx0HAPSGOEzgK24w7iLdf1Q9P7Zbu7JE07tqV5sj7i00YwPv5tGIk1Mfd TjMjAOXnoG4RXd+AutK7uUSlT4HsZHyJCv9OvxohbRlrgPO+4iWbqhAQ6V7kA8psce FwOz6SCIufQHO0xmlgSmbRw1FRiulA2SBxWCDuGQpTkegbscJw2SAbUdidTKsQQNrs 9apId3o8muIVhavcaTQu29LnGtk5c/mYcMiYZZ1EbxBpSTuQtmYiW++1Oy51jAXuW2 RtUzSjn38htEg== From: "Rafael J. Wysocki" To: Linux ACPI Cc: LKML , Andy Shevchenko , Hans de Goede , Mario Limonciello , Armin Wolf , Heikki Krogerus Subject: [PATCH v1 1/2] ACPI: EC: Install address space handler at the namespace root Date: Fri, 10 May 2024 16:03:39 +0200 Message-ID: <4926735.31r3eYUQgx@kreacher> In-Reply-To: <5787281.DvuYhMxLoT@kreacher> References: <5787281.DvuYhMxLoT@kreacher> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8" X-CLIENT-IP: 195.136.19.94 X-CLIENT-HOSTNAME: 195.136.19.94 X-VADE-SPAMSTATE: clean X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvledrvdefkedgjeduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecujffqoffgrffnpdggtffipffknecuuegrihhlohhuthemucduhedtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufffkfgjfhgggfgtsehtufertddttdejnecuhfhrohhmpedftfgrfhgrvghlucflrdcuhgihshhotghkihdfuceorhhjfiesrhhjfiihshhotghkihdrnhgvtheqnecuggftrfgrthhtvghrnhepjedtueefgeevueffgfehjeehteekfefhheeuffevgfefhedtgeffhfevteffteetnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghdpuhgvfhhirdhorhhgnecukfhppeduleehrddufeeirdduledrleegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepudelhedrudefiedrudelrdelgedphhgvlhhopehkrhgvrggthhgvrhdrlhhotggrlhhnvghtpdhmrghilhhfrhhomhepfdftrghfrggvlhculfdrucghhihsohgtkhhifdcuoehrjhifsehrjhifhihsohgtkhhirdhnvghtqedpnhgspghrtghpthhtohepjedprhgtphhtthhopehlihhnuhigqdgrtghpihesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopegrnhgurhhihidrshhhvghvtghhvghnkhhosehlihhnuhigrdhinhhtvghlrdgtohhm pdhrtghpthhtohephhguvghgohgvuggvsehrvgguhhgrthdrtghomhdprhgtphhtthhopehmrghrihhordhlihhmohhntghivghllhhosegrmhgurdgtohhmpdhrtghpthhtohepfigprghrmhhinhesghhmgidruggv X-DCC--Metrics: v370.home.net.pl 1024; Body=7 Fuz1=7 Fuz2=7 From: Rafael J. Wysocki It is reported that _DSM evaluation fails in ucsi_acpi_dsm() on Lenovo IdeaPad Pro 5 due to a missing address space handler for the EC address space: ACPI Error: No handler for Region [ECSI] (000000007b8176ee) [EmbeddedControl] (20230628/evregion-130) This happens because the EC driver only registers the EC address space handler for operation regions defined in the EC device scope of the ACPI namespace while the operation region being accessed by the _DSM in question is located beyond that scope. To address this, modify the ACPI EC driver to install the EC address space handler at the root of the ACPI namespace. Note that this change is consistent with some examples in the ACPI specification in which EC operation regions located outside the EC device scope are used (for example, see Section 9.17.15 in ACPI 6.5), so the current behavior of the EC driver is arguably questionable. Reported-by: webcaptcha Link: https://bugzilla.kernel.org/show_bug.cgi?id=218789 Link: https://uefi.org/specs/ACPI/6.5/09_ACPI_Defined_Devices_and_Device_Specific_Objects.html#example-asl-code Link: https://lore.kernel.org/linux-acpi/Zi+0whTvDbAdveHq@kuha.fi.intel.com Suggested-by: Heikki Krogerus Signed-off-by: Rafael J. Wysocki --- drivers/acpi/ec.c | 10 +++++----- drivers/acpi/internal.h | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) Index: linux-pm/drivers/acpi/ec.c =================================================================== --- linux-pm.orig/drivers/acpi/ec.c +++ linux-pm/drivers/acpi/ec.c @@ -1488,7 +1488,7 @@ static int ec_install_handlers(struct ac if (!test_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags)) { acpi_ec_enter_noirq(ec); - status = acpi_install_address_space_handler_no_reg(ec->handle, + status = acpi_install_address_space_handler_no_reg(ACPI_ROOT_OBJECT, ACPI_ADR_SPACE_EC, &acpi_ec_space_handler, NULL, ec); @@ -1497,11 +1497,10 @@ static int ec_install_handlers(struct ac return -ENODEV; } set_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags); - ec->address_space_handler_holder = ec->handle; } if (call_reg && !test_bit(EC_FLAGS_EC_REG_CALLED, &ec->flags)) { - acpi_execute_reg_methods(ec->handle, ACPI_ADR_SPACE_EC); + acpi_execute_reg_methods(ACPI_ROOT_OBJECT, ACPI_ADR_SPACE_EC); set_bit(EC_FLAGS_EC_REG_CALLED, &ec->flags); } @@ -1555,8 +1554,9 @@ static void ec_remove_handlers(struct ac { if (test_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags)) { if (ACPI_FAILURE(acpi_remove_address_space_handler( - ec->address_space_handler_holder, - ACPI_ADR_SPACE_EC, &acpi_ec_space_handler))) + ACPI_ROOT_OBJECT, + ACPI_ADR_SPACE_EC, + &acpi_ec_space_handler))) pr_err("failed to remove space handler\n"); clear_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags); } Index: linux-pm/drivers/acpi/internal.h =================================================================== --- linux-pm.orig/drivers/acpi/internal.h +++ linux-pm/drivers/acpi/internal.h @@ -186,7 +186,6 @@ enum acpi_ec_event_state { struct acpi_ec { acpi_handle handle; - acpi_handle address_space_handler_holder; int gpe; int irq; unsigned long command_addr;