[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240917171647.1403910-16-eajames@linux.ibm.com>
Date: Tue, 17 Sep 2024 12:16:47 -0500
From: Eddie James <eajames@...ux.ibm.com>
To: linux-fsi@...ts.ozlabs.org
Cc: linux-kernel@...r.kernel.org, alistair@...ple.id.au, joel@....id.au,
jk@...abs.org, andrew@...econstruct.com.au, eajames@...ux.ibm.com,
ninad@...ux.ibm.com
Subject: [PATCH 15/15] fsi: i2cr: Reduce status checks for read operations
As an optimization, only check the status register if the eight
byte i2c read operation returns 0xffffffffffffffff. This indicates
that the I2C Responder operation failed and the status register
will provide the reason. Otherwise, the operation was successful,
so no status check is necessary.
Signed-off-by: Eddie James <eajames@...ux.ibm.com>
---
drivers/fsi/fsi-master-i2cr.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/fsi/fsi-master-i2cr.c b/drivers/fsi/fsi-master-i2cr.c
index 61e55740946b..44dbc7029942 100644
--- a/drivers/fsi/fsi-master-i2cr.c
+++ b/drivers/fsi/fsi-master-i2cr.c
@@ -145,9 +145,11 @@ int fsi_master_i2cr_read(struct fsi_master_i2cr *i2cr, u32 addr, u64 *data)
if (ret)
goto unlock;
- ret = i2cr_check_status(i2cr->client);
- if (ret)
- goto unlock;
+ if (*data == 0xffffffffffffffffull) {
+ ret = i2cr_check_status(i2cr->client);
+ if (ret)
+ goto unlock;
+ }
trace_i2cr_read(i2cr->client, command, data);
--
2.43.0
Powered by blists - more mailing lists