From: Thorsten Blum <blum@kernel.org>
To: "Hans de Goede" <hansg@kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Thorsten Blum <blum@kernel.org>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH] platform/x86: apple-gmux: Use guard(mutex) to simplify the code
Date: Thu, 5 Nov 2026 14:08:27 +0100 [thread overview]
Message-ID: <20261105130826.345690-3-blum@kernel.org> (raw)
Use guard(mutex) and remove the manual mutex_unlock() calls. Return
several results directly and drop the now-unused local variables.
Signed-off-by: Thorsten Blum <blum@kernel.org>
---
drivers/platform/x86/apple-gmux.c | 48 +++++++++----------------------
1 file changed, 14 insertions(+), 34 deletions(-)
diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple-gmux.c
index 9c728ac4e045..6c7790012011 100644
--- a/drivers/platform/x86/apple-gmux.c
+++ b/drivers/platform/x86/apple-gmux.c
@@ -169,41 +169,32 @@ static int gmux_index_wait_complete(struct apple_gmux_data *gmux_data)
static u8 gmux_index_read8(struct apple_gmux_data *gmux_data, int port)
{
- u8 val;
-
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
gmux_index_wait_ready(gmux_data);
outb((port & 0xff), gmux_data->iostart + GMUX_PORT_READ);
gmux_index_wait_complete(gmux_data);
- val = inb(gmux_data->iostart + GMUX_PORT_VALUE);
- mutex_unlock(&gmux_data->index_lock);
- return val;
+ return inb(gmux_data->iostart + GMUX_PORT_VALUE);
}
static void gmux_index_write8(struct apple_gmux_data *gmux_data, int port,
u8 val)
{
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
outb(val, gmux_data->iostart + GMUX_PORT_VALUE);
gmux_index_wait_ready(gmux_data);
outb(port & 0xff, gmux_data->iostart + GMUX_PORT_WRITE);
gmux_index_wait_complete(gmux_data);
- mutex_unlock(&gmux_data->index_lock);
}
static u32 gmux_index_read32(struct apple_gmux_data *gmux_data, int port)
{
- u32 val;
-
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
gmux_index_wait_ready(gmux_data);
outb((port & 0xff), gmux_data->iostart + GMUX_PORT_READ);
gmux_index_wait_complete(gmux_data);
- val = inl(gmux_data->iostart + GMUX_PORT_VALUE);
- mutex_unlock(&gmux_data->index_lock);
- return val;
+ return inl(gmux_data->iostart + GMUX_PORT_VALUE);
}
static void gmux_index_write32(struct apple_gmux_data *gmux_data, int port,
@@ -212,7 +203,7 @@ static void gmux_index_write32(struct apple_gmux_data *gmux_data, int port,
int i;
u8 tmpval;
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
for (i = 0; i < 4; i++) {
tmpval = (val >> (i * 8)) & 0xff;
@@ -222,7 +213,6 @@ static void gmux_index_write32(struct apple_gmux_data *gmux_data, int port,
gmux_index_wait_ready(gmux_data);
outb(port & 0xff, gmux_data->iostart + GMUX_PORT_WRITE);
gmux_index_wait_complete(gmux_data);
- mutex_unlock(&gmux_data->index_lock);
}
static int gmux_mmio_wait(struct apple_gmux_data *gmux_data)
@@ -241,24 +231,20 @@ static int gmux_mmio_wait(struct apple_gmux_data *gmux_data)
static u8 gmux_mmio_read8(struct apple_gmux_data *gmux_data, int port)
{
- u8 val;
-
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
gmux_mmio_wait(gmux_data);
iowrite8((port & 0xff), gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT);
- iowrite8(GMUX_MMIO_READ | sizeof(val),
+ iowrite8(GMUX_MMIO_READ | sizeof(u8),
gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND);
gmux_mmio_wait(gmux_data);
- val = ioread8(gmux_data->iomem_base);
- mutex_unlock(&gmux_data->index_lock);
- return val;
+ return ioread8(gmux_data->iomem_base);
}
static void gmux_mmio_write8(struct apple_gmux_data *gmux_data, int port,
u8 val)
{
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
gmux_mmio_wait(gmux_data);
iowrite8(val, gmux_data->iomem_base);
@@ -267,35 +253,29 @@ static void gmux_mmio_write8(struct apple_gmux_data *gmux_data, int port,
gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND);
gmux_mmio_wait(gmux_data);
- mutex_unlock(&gmux_data->index_lock);
}
static u32 gmux_mmio_read32(struct apple_gmux_data *gmux_data, int port)
{
- u32 val;
-
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
gmux_mmio_wait(gmux_data);
iowrite8((port & 0xff), gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT);
- iowrite8(GMUX_MMIO_READ | sizeof(val),
+ iowrite8(GMUX_MMIO_READ | sizeof(u32),
gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND);
gmux_mmio_wait(gmux_data);
- val = ioread32be(gmux_data->iomem_base);
- mutex_unlock(&gmux_data->index_lock);
- return val;
+ return ioread32be(gmux_data->iomem_base);
}
static void gmux_mmio_write32(struct apple_gmux_data *gmux_data, int port,
u32 val)
{
- mutex_lock(&gmux_data->index_lock);
+ guard(mutex)(&gmux_data->index_lock);
iowrite32be(val, gmux_data->iomem_base);
iowrite8(port & 0xff, gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT);
iowrite8(GMUX_MMIO_WRITE | sizeof(val),
gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND);
gmux_mmio_wait(gmux_data);
- mutex_unlock(&gmux_data->index_lock);
}
static u8 gmux_read8(struct apple_gmux_data *gmux_data, int port)
reply other threads:[~2026-11-05 13:09 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261105130826.345690-3-blum@kernel.org \
--to=blum@kernel.org \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.