All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <jdelvare@suse.de>
To: Linux I2C <linux-i2c@vger.kernel.org>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Subject: [PATCH v3 5/6] i2c: i801: Call i801_check_pre() from i801_access()
Date: Thu, 16 Feb 2023 17:14:51 +0100	[thread overview]
Message-ID: <20230216171451.2e87b061@endymion.delvare> (raw)
In-Reply-To: <20230216170830.206f0bb9@endymion.delvare>

From: Heiner Kallweit <hkallweit1@gmail.com>

This avoids code duplication, in a next step we'll call
i801_check_post() from i801_transaction() as well.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
---
 drivers/i2c/busses/i2c-i801.c |   13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

--- linux-6.1.orig/drivers/i2c/busses/i2c-i801.c
+++ linux-6.1/drivers/i2c/busses/i2c-i801.c
@@ -462,10 +462,6 @@ static int i801_transaction(struct i801_
 	unsigned long result;
 	const struct i2c_adapter *adap = &priv->adapter;
 
-	status = i801_check_pre(priv);
-	if (status < 0)
-		return status;
-
 	if (priv->features & FEATURE_IRQ) {
 		reinit_completion(&priv->done);
 		outb_p(xact | SMBHSTCNT_INTREN | SMBHSTCNT_START,
@@ -653,10 +649,6 @@ static int i801_block_transaction_byte_b
 	if (command == I2C_SMBUS_BLOCK_PROC_CALL)
 		return -EOPNOTSUPP;
 
-	status = i801_check_pre(priv);
-	if (status < 0)
-		return status;
-
 	len = data->block[0];
 
 	if (read_write == I2C_SMBUS_WRITE) {
@@ -891,6 +883,10 @@ static s32 i801_access(struct i2c_adapte
 
 	pm_runtime_get_sync(&priv->pci_dev->dev);
 
+	ret = i801_check_pre(priv);
+	if (ret)
+		goto out;
+
 	hwpec = (priv->features & FEATURE_SMBUS_PEC) && (flags & I2C_CLIENT_PEC)
 		&& size != I2C_SMBUS_QUICK
 		&& size != I2C_SMBUS_I2C_BLOCK_DATA;
@@ -913,6 +909,7 @@ static s32 i801_access(struct i2c_adapte
 	 */
 	if (hwpec)
 		outb_p(inb_p(SMBAUXCTL(priv)) & ~SMBAUXCTL_CRC, SMBAUXCTL(priv));
+out:
 	/*
 	 * Unlock the SMBus device for use by BIOS/ACPI,
 	 * and clear status flags if not done already.

-- 
Jean Delvare
SUSE L3 Support

  parent reply	other threads:[~2023-02-16 16:14 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-16 16:08 [PATCH v3 0/6] i2c: i801: Series with minor improvements (second half) Jean Delvare
2023-02-16 16:10 ` [PATCH v3 1/6] i2c: i801: Add i801_simple_transaction(), complementing i801_block_transaction() Jean Delvare
2023-02-17 21:40   ` Wolfram Sang
2023-02-16 16:11 ` [PATCH v3 2/6] i2c: i801: Handle SMBAUXCTL_E32B in i801_block_transaction_by_block only Jean Delvare
2023-02-17 21:40   ` Wolfram Sang
2023-02-16 16:12 ` [PATCH v3 3/6] i2c: i801: Centralize configuring non-block commands in i801_simple_transaction Jean Delvare
2023-02-17 21:40   ` Wolfram Sang
2023-02-16 16:14 ` [PATCH v3 4/6] i2c: i801: Centralize configuring block commands in i801_block_transaction Jean Delvare
2023-02-17 21:41   ` Wolfram Sang
2023-02-16 16:14 ` Jean Delvare [this message]
2023-02-17 21:41   ` [PATCH v3 5/6] i2c: i801: Call i801_check_pre() from i801_access() Wolfram Sang
2023-02-16 16:15 ` [PATCH v3 6/6] i2c: i801: Call i801_check_post() " Jean Delvare
2023-02-17 21:42   ` Wolfram Sang

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=20230216171451.2e87b061@endymion.delvare \
    --to=jdelvare@suse.de \
    --cc=hkallweit1@gmail.com \
    --cc=linux-i2c@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.