From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oa1-f41.google.com (mail-oa1-f41.google.com [209.85.160.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C94F326738D for ; Mon, 27 Apr 2026 23:11:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777331483; cv=none; b=bZczv4sPiQmqSE5DqkcznIxEvV4FY9piP3sHTT4hRStmqnQuS3SXpl7A1gYmIUT55UDGVbsf1O/QT53o3UEyzIAkA6V9yuQ6k04z1HjxBjBD2MyIVEIi70HvRxWWMzdngCrg9ptH6RiiSIxzOQojYTUbeC4qWSw/I4LjJwA6ifQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777331483; c=relaxed/simple; bh=9epae0Y17V03nwPv50Q4iZhYe2dwcmJD1z1kPgH8V8k=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ZXeZkXsyhZ/FFzeub+Z3umgtRo9EO5cyKCik7g1lPxr9rWAjjgL3ZXPDUGrynSn23qsNG5OVgoSENlX5ZUje8NBVb/Q4LKx44aYZ12Pijh7UbnSkEkDExgv7SoWceK76ENN7AgFrS4mTVS0NMNbrvrky+UkvHrWa2C7E8xFmYMM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=sWWa8TLA; arc=none smtp.client-ip=209.85.160.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sWWa8TLA" Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-40974bf7781so9170923fac.0 for ; Mon, 27 Apr 2026 16:11:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777331481; x=1777936281; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=hQJuwVnLXkBQ+b908Jxq9pZvBupGjkmcb1ReNC4HqXI=; b=sWWa8TLAMLqmhHoGJIyj8WmmGF0eeXBVQw8tJuKI1xMCeFMC0aOxtMbQ9CZ1e9fR5T fQNnyxEB4QM1D+MItbPl9A1Keg8tR6u1TGA5vD0P2cE34PkojYleRIf8ueqrGG2NsNxi KSuYPAGaGt5lfwIekYY5thTPSiEV+5y6bBzV2DhPf/m5Yf6ArKJ2pv3OQfHm+i5Apy89 v86tb8x+yQHbLol96Oxhjh1rXCLJ/sLXFwj4UgfI9MQxwEOwdU7ZS8U/P46k6ALL1LZK myOw0ebMraYs1SijNCU3VQhES/HTaIyn/EizeaqZ+eIgetjusAxd37KEkgfKBcPLS+Pu SjnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777331481; x=1777936281; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hQJuwVnLXkBQ+b908Jxq9pZvBupGjkmcb1ReNC4HqXI=; b=GETXiTO7opWC0YSUysOJ4fh0ERboFcekAjWQ/WQTJZ+XRHCo2AEOm8ul5HZB7pdrzv ykvPBLBK9QBGkJmv2+RO45GhArHqOTdgiPSsCup89nYMTSafwetOpAhp9EDTwFU1v6Lo SzNRZUdDviKpLx1nXujyM8aBZwaTMJsssVZyo9jk/Ndjmn50MM5Cz6xnNX0JHe730K0z 9UFXJYU/CBWtnkUB79bLcqA9ecnyPUBUa4lhlAUCup27p+ZVwD1IXJecKiTQH5SX+RGG T294mf5Ts1WJ0QDRz7dfL2RHRBPPVhudbobmCrrpXK8BWj+qVeJ3xjyaVFg+P3vZTrcw ut0A== X-Forwarded-Encrypted: i=1; AFNElJ/ou9c0u4VtfixXpQDqkFU7gG8DPkmNW5dXFUfmK3IZZWuZNHCCbTIOspGAZjLWJrISulZzDJC4yAQBvoI=@vger.kernel.org X-Gm-Message-State: AOJu0YwHWNYbJaVaGBiCb++vDg2+3cG5D50mUF9G73iSk1JW7tNN23+z pxZ1qZyh8M/y43zqvrd/KJTORLCDZ+8pKdeOa59Dl3tojz/tQlJoNGqj X-Gm-Gg: AeBDietB6w3ic7doqXEib2FZxXSgHlkHseCJEUAVrTju3H1NHC/dx4tJ84wlV4owrIB PRX6f2Kghp7BOWNtxtzD+ogdMsaAh+sFqUjtJgeHhMzEw99LsjDSrparHfv1S8Nf8HFfjVbwBgN F0NSvJXCzSMQuOTFAhTQwpKpeOYHTbtYJg3sJIJQ0FWrcn/5V1fs/h54LfdUaQCvr+5SeMBl7A9 maF0RdQXZP9MFj6hYUJ7D9NDaLT5pyGvTiLqzi/AqbIwL0Wx9Z0w6Hb7jVQnFFPhAJpypHf9I93 JDUCd6rviY1eO2WyFeilmtQ8EQ7f2xVrrnrLwoQYVLFJj9sCXlVz/x7Zj+djg1MYiugLhzGTzZd c6DSdcboUoGQTN0t4BpVP0nuUXXzvKzl8v8YADhBVKvnMwY8Mc4O8vmTPpMi2uoIMjkxaRNtZBp P8Xqz2iLIOl2yVNT9j5WjjjegVLeFiMHtGYCzFWFdwOMj567DXM1jhOCZKp2hDrzNsD3bV X-Received: by 2002:a05:6820:c2c2:10b0:694:a30c:24fc with SMTP id 006d021491bc7-6965c62c627mr228236eaf.7.1777331480729; Mon, 27 Apr 2026 16:11:20 -0700 (PDT) Received: from linuxescape.lan (23-88-128-2.fttp.usinternet.com. [23.88.128.2]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6965b951a17sm471949eaf.8.2026.04.27.16.11.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 16:11:20 -0700 (PDT) From: Maxwell Doose To: rafael@kernel.org, lenb@kernel.org Cc: Andy Shevchenko , Mika Westerberg , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3] ACPI: pmic: Replace mutex_lock/unlock() with guard()/scoped_guard() Date: Mon, 27 Apr 2026 18:11:19 -0500 Message-ID: <20260427231119.55486-1-m32285159@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Replace mutex_lock() and unlock() macros with the newer guard() and scoped_guard() macros. This will help modernize and clean the code. In intel_soc_pmic_exec_mipi_pmic_seq_element(): While at it, remove now redundant "ret" variable. Signed-off-by: Maxwell Doose --- v2: - Refactored control flow in certain functions as suggested by Andy. - Indent code in scoped_guard block as suggested by Andy. - Fix parameter list alignment issues that I found while making this v2. v3: - Fixed guard(mutex)() and scoped_guard() syntax. - Added some logical and style changes per Andy's request. The requested changes and my personal thoughts can be found at https://lore.kernel.org/linux-acpi/ae8QBnSs9fYvkv_i@ashevche-desk.local/ drivers/acpi/pmic/intel_pmic.c | 64 +++++++++++++++------------------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/drivers/acpi/pmic/intel_pmic.c b/drivers/acpi/pmic/intel_pmic.c index 134e9ca8eaa2..19a97d085efb 100644 --- a/drivers/acpi/pmic/intel_pmic.c +++ b/drivers/acpi/pmic/intel_pmic.c @@ -67,14 +67,12 @@ static acpi_status intel_pmic_power_handler(u32 function, if (result == -ENOENT) return AE_BAD_PARAMETER; - mutex_lock(&opregion->lock); + guard(mutex)(&opregion->lock); result = function == ACPI_READ ? d->get_power(regmap, reg, bit, value64) : d->update_power(regmap, reg, bit, *value64 == 1); - mutex_unlock(&opregion->lock); - return result ? AE_ERROR : AE_OK; } @@ -182,19 +180,16 @@ static acpi_status intel_pmic_thermal_handler(u32 function, if (result == -ENOENT) return AE_BAD_PARAMETER; - mutex_lock(&opregion->lock); - - if (pmic_thermal_is_temp(address)) - result = pmic_thermal_temp(opregion, reg, function, value64); - else if (pmic_thermal_is_aux(address)) - result = pmic_thermal_aux(opregion, reg, function, value64); - else if (pmic_thermal_is_pen(address)) - result = pmic_thermal_pen(opregion, reg, bit, - function, value64); - else - result = -EINVAL; - - mutex_unlock(&opregion->lock); + scoped_guard(mutex, &opregion->lock) { + if (pmic_thermal_is_temp(address)) + result = pmic_thermal_temp(opregion, reg, function, value64); + else if (pmic_thermal_is_aux(address)) + result = pmic_thermal_aux(opregion, reg, function, value64); + else if (pmic_thermal_is_pen(address)) + result = pmic_thermal_pen(opregion, reg, bit, function, value64); + else + result = -EINVAL; + } if (result < 0) { if (result == -EINVAL) @@ -345,7 +340,6 @@ int intel_soc_pmic_exec_mipi_pmic_seq_element(u16 i2c_address, u32 reg_address, u32 value, u32 mask) { const struct intel_pmic_opregion_data *d; - int ret; if (!intel_pmic_opregion) { pr_warn("%s: No PMIC registered\n", __func__); @@ -354,30 +348,28 @@ int intel_soc_pmic_exec_mipi_pmic_seq_element(u16 i2c_address, u32 reg_address, d = intel_pmic_opregion->data; - mutex_lock(&intel_pmic_opregion->lock); + guard(mutex)(&intel_pmic_opregion->lock); if (d->exec_mipi_pmic_seq_element) { - ret = d->exec_mipi_pmic_seq_element(intel_pmic_opregion->regmap, - i2c_address, reg_address, - value, mask); - } else if (d->pmic_i2c_address) { - if (i2c_address == d->pmic_i2c_address) { - ret = regmap_update_bits(intel_pmic_opregion->regmap, - reg_address, mask, value); - } else { + return d->exec_mipi_pmic_seq_element(intel_pmic_opregion->regmap, + i2c_address, reg_address, + value, mask); + } + + if (d->pmic_i2c_address) { + if (i2c_address != d->pmic_i2c_address) { pr_err("%s: Unexpected i2c-addr: 0x%02x (reg-addr 0x%x value 0x%x mask 0x%x)\n", - __func__, i2c_address, reg_address, value, mask); - ret = -ENXIO; + __func__, i2c_address, reg_address, value, mask); + return -ENXIO; } - } else { - pr_warn("%s: Not implemented\n", __func__); - pr_warn("%s: i2c-addr: 0x%x reg-addr 0x%x value 0x%x mask 0x%x\n", - __func__, i2c_address, reg_address, value, mask); - ret = -EOPNOTSUPP; - } - mutex_unlock(&intel_pmic_opregion->lock); + return regmap_update_bits(intel_pmic_opregion->regmap, + reg_address, mask, value); + } - return ret; + pr_warn("%s: Not implemented\n", __func__); + pr_warn("%s: i2c-addr: 0x%x reg-addr 0x%x value 0x%x mask 0x%x\n", + __func__, i2c_address, reg_address, value, mask); + return -EOPNOTSUPP; } EXPORT_SYMBOL_GPL(intel_soc_pmic_exec_mipi_pmic_seq_element); -- 2.53.0