From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) (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 DFEE43043CF for ; Fri, 24 Apr 2026 22:01:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777068074; cv=none; b=bF1N7e3M9EQ2mXKZgPxxFS5HgLDiuA4Nb2lxCfJlD1ZXRZtbAtApH1gl+JFDBBbN82QrVgqJGLyuIFhEl1kFi07/4zGgiKB+x1vNQZPboRTXuhWn7oRnhPMiiF5mpcBXTopXqnrZmZZGLl89ZPThtZ6nbtOb9QLF0VN4+WVLpHg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777068074; c=relaxed/simple; bh=SgpABllvXTrrFe/JQQVF8RwwJ9FmWuh1BBQVz5IsZDM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=HCdPMMKK6BPziDsRFPb2vwY6KzivIhURLltHwhDUnZ3TybeAY/HuY4QiSHCjBsiOHwJh8HOB4Nx+KIbtKrQiw2/sb8L/EZyr/5Xl9ycwhsxzk+oYFiEG5lsvgJb0Mvqsyrw6/EHDHPjpraj7x5qdfdR03DepOcqLmYL1Fll8s3Y= 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=oTK7OQgT; arc=none smtp.client-ip=209.85.167.182 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="oTK7OQgT" Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-47bdee5bfc4so452332b6e.1 for ; Fri, 24 Apr 2026 15:01:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777068072; x=1777672872; 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=ahF7cKkpd8LfIy+caOhLjgF6XGeAImE+egeOfwAJjxM=; b=oTK7OQgTKqS/rSLDafo8iKNNPYdOu5TzQx4kY+I1+LW8AiSGTPqRU45pekkjTDEs7Z rp18XPslyJNNYZdlpx5UH/sB61ZmS4/ik7ODqWA4Ajt/ru8dlj0SrAaVkbuQ8K9pQcTO ysRTop126o1ECfUVL4XHFI6H6XSBkHuLWfKWy/Lje96a5ZGG9FHxlL8qU3/lM1QiGYBK jyyE5nJmVXwciXXkZ2Ut+ndnUZNrXYEohnTqUDIvOSKt7bLTdlFJN82kZQ2ejxf0IaAh FeXPWk3zZt7T/Y2UEHcNqPIJO63xO/87ybGnlmAO49eYCqC/hobgXdBaVn5y65UhpFOE tT7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777068072; x=1777672872; 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=ahF7cKkpd8LfIy+caOhLjgF6XGeAImE+egeOfwAJjxM=; b=gIGKLucf1CPjfH2CgMl4Q++qQaLgjPLOwTIvtaKcmyCDIlF73X9gsCoWKV4gCEBc57 cPvVNjDo1frpCVMLJ4bWuXzEhlQw3uBsj5ov2xSUb6ULGNplkbGLK8xXIDIgSQKACYxG sK17wIyzU0YX5B/es39VBUDcaurc/mMPg0b5TcvFQ1GSZnGa0UOfRKcvatu11Os1CP5t w7ev40htFSuv1Ywr4qjtapPX+d5Ygw8xsKdm1/zt7W2rb6NYkEVR1mjtmSSUPxnEn07s dT5Odm1ol+0hFEeFqwvbZ0eHZb8zHVVcMnoy7aCgzHGPXGTpfh7mpgCSS7W/jSUTIufn mOzg== X-Forwarded-Encrypted: i=1; AFNElJ/N3+SSVZRmlI+hjvO8FN8ZFNcTR1Gwb/mHwTkNNFP1Wtah6wSOkEm0TXwxas0aVNb2sWhfdNHG3wH2xQA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw1h/GMDs5XMnbnSaA72WfspoHHVC/5J6yFiT+EQl6CAVH8Zdd3 TpdhPy/mh3uTIzYnwb6F2kai3eR27GwiRmC3rxEXfcBSo3kseD6ngy/R X-Gm-Gg: AeBDietzSWo5WOssAAD3kkWunw0Udx2KelFrTZnhFQ7yl/RDnA0g/xV6rN0qwzbl+kv OTUnlltLeWjAQ+7twRMoJbevCOehKmg9Nwy3AWmbnhnfkmV0PLFN9ypiCM+GMz1uvA3ZH93xJLe 8TgX8QK3x9sVnKsPyS2IwBwERIo2Ua6RVvo47PfN6XL4PnI6D/nRr/ov6WBLB45hIZ9hTPfRvah BRuVczGOPHbRv8/qIi4mvwhfn4fkY9fsoNnE4o5Zetnk/jFHT3toXLj0Gwckwql8pqW1bX+o6vO u/wscj0+gnEQPJ5VdyNzRbsb6+/O+7ENiLRMrlmJiv6I0AvIGxTBAWVTjLimmHXhrT/any1xsdf 3k5x9tgfB1oh/ONYinsKe4zTMWDngt0SU/cpxOB17sJGyFOPvkBE2ZxeGT3WMfzxaklzoqeF2RY GEiGtzez1m5ol9btjk+B2Qrzm4/Jde39q1oZfA1GBCF5Kv5L30RkFkgKqGmukLMEAQen4+C15Od mMbV3Y= X-Received: by 2002:a05:6808:4f0a:b0:450:b249:71bb with SMTP id 5614622812f47-4799bf4bb0fmr15003579b6e.19.1777068071827; Fri, 24 Apr 2026 15:01:11 -0700 (PDT) Received: from linuxescape.lan (23-88-128-2.fttp.usinternet.com. [23.88.128.2]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-42b9ac6f2a3sm22966707fac.16.2026.04.24.15.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Apr 2026 15:01:11 -0700 (PDT) From: Maxwell Doose To: rafael@kernel.org, lenb@kernel.org Cc: andy@kernel.org, westeri@kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] ACPI: pmic: Replace mutex_lock/unlock() with guard()/scoped_guard() Date: Fri, 24 Apr 2026 17:01:10 -0500 Message-ID: <20260424220110.25929-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. Refactor control flow in affected functions by using direct returns, as we no longer need to manually unlock mutexes at the end of functions. This will simplify the return logic of affected functions. 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. drivers/acpi/pmic/intel_pmic.c | 69 +++++++++++++++------------------- 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/drivers/acpi/pmic/intel_pmic.c b/drivers/acpi/pmic/intel_pmic.c index 134e9ca8eaa2..5c37a8f28e71 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(&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,27 +180,23 @@ static acpi_status intel_pmic_thermal_handler(u32 function, if (result == -ENOENT) return AE_BAD_PARAMETER; - mutex_lock(&opregion->lock); + scoped_guard(&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, + 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); - - if (result < 0) { - if (result == -EINVAL) - return AE_BAD_PARAMETER; else - return AE_ERROR; + return AE_BAD_PARAMETER; + } + if (result < 0) + return AE_ERROR; + return AE_OK; } @@ -345,7 +339,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 +347,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(&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) { + 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) { - ret = regmap_update_bits(intel_pmic_opregion->regmap, - reg_address, mask, value); - } else { - 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; + return regmap_update_bits(intel_pmic_opregion->regmap, + reg_address, mask, value); } - } 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); + 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); + return -ENXIO; + } - 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