From: Eddie James <eajames@linux.ibm.com>
To: linux-fsi@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org, alistair@popple.id.au,
joel@jms.id.au, jk@ozlabs.org, andrew@codeconstruct.com.au,
eajames@linux.ibm.com, ninad@linux.ibm.com
Subject: [PATCH 08/15] fsi: core: Reset errors instead of clearing interrupts
Date: Tue, 17 Sep 2024 12:16:40 -0500 [thread overview]
Message-ID: <20240917171647.1403910-9-eajames@linux.ibm.com> (raw)
In-Reply-To: <20240917171647.1403910-1-eajames@linux.ibm.com>
The proper way to clear error conditions is to use the SRES
register rather than simple clearing SISC.
Signed-off-by: Eddie James <eajames@linux.ibm.com>
---
drivers/fsi/fsi-core.c | 9 +++++----
drivers/fsi/fsi-slave.h | 6 ++++++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index 8ce187bbaf22..53d61ea46a4f 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -166,7 +166,7 @@ static int fsi_slave_calc_addr(struct fsi_slave *slave, uint32_t *addrp,
static int fsi_slave_report_and_clear_errors(struct fsi_slave *slave)
{
struct fsi_master *master = slave->master;
- __be32 irq, stat;
+ __be32 irq, reset, stat;
int rc, link;
uint8_t id;
@@ -187,9 +187,10 @@ static int fsi_slave_report_and_clear_errors(struct fsi_slave *slave)
be32_to_cpu(stat), be32_to_cpu(irq));
trace_fsi_slave_error(slave, be32_to_cpu(irq), be32_to_cpu(stat));
- /* clear interrupts */
- return fsi_master_write(master, link, id, FSI_SLAVE_BASE + FSI_SISC,
- &irq, sizeof(irq));
+ /* reset errors */
+ reset = cpu_to_be32(FSI_SRES_ERRS);
+ return fsi_master_write(master, link, id, FSI_SLAVE_BASE + FSI_SRES, &reset,
+ sizeof(reset));
}
/* Encode slave local bus echo delay */
diff --git a/drivers/fsi/fsi-slave.h b/drivers/fsi/fsi-slave.h
index fabc0b66d5bf..e9fd4be6f376 100644
--- a/drivers/fsi/fsi-slave.h
+++ b/drivers/fsi/fsi-slave.h
@@ -24,6 +24,7 @@
#define FSI_SSI1M 0x1c /* S : Set slave interrupt 1 mask */
#define FSI_SCI1M 0x20 /* C : Clear slave interrupt 1 mask */
#define FSI_SLBUS 0x30 /* W : LBUS Ownership */
+#define FSI_SRES 0x34 /* W : Reset */
#define FSI_SRSIC0 0x68 /* C : Clear remote interrupt condition */
#define FSI_SRSIC4 0x6c /* C : Clear remote interrupt condition */
#define FSI_SRSIM0 0x70 /* R/W: Remote interrupt mask */
@@ -90,6 +91,11 @@
*/
#define FSI_SLBUS_FORCE 0x80000000 /* Force LBUS ownership */
+/*
+ * SRES fields
+ */
+#define FSI_SRES_ERRS 0x40000000 /* Reset FSI slave errors */
+
/*
* LLMODE fields
*/
--
2.43.0
next prev parent reply other threads:[~2024-09-17 17:17 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-17 17:16 [PATCH 00/15] fsi: Fixes and improvements Eddie James
2024-09-17 17:16 ` [PATCH 01/15] fsi: hub: Set master index to link number plus one Eddie James
2024-09-17 17:16 ` [PATCH 02/15] fsi: Move slave definitions to fsi-slave.h Eddie James
2024-09-17 17:16 ` [PATCH 03/15] fsi: Fix slave addressing after break command Eddie James
2024-09-17 17:16 ` [PATCH 04/15] fsi: core: Use a defined value for default echo delay Eddie James
2024-09-17 17:16 ` [PATCH 05/15] fsi: core: Calculate local bus clock frequency Eddie James
2024-09-17 17:16 ` [PATCH 06/15] fsi: core: Improve master read/write/error traces Eddie James
2024-09-17 17:16 ` [PATCH 07/15] fsi: core: Add slave error trace Eddie James
2024-09-17 17:16 ` Eddie James [this message]
2024-09-17 17:16 ` [PATCH 09/15] fsi: core: Add slave spinlock Eddie James
2024-09-17 17:16 ` [PATCH 10/15] fsi: core: Allow cfam device type aliases Eddie James
2024-09-17 17:16 ` [PATCH 11/15] fsi: scom: Update compatible string to match documentation Eddie James
2024-09-17 17:16 ` [PATCH 12/15] fsi: occ: Get device number from FSI minor number API Eddie James
2024-09-20 11:50 ` kernel test robot
2024-09-20 13:54 ` kernel test robot
2024-09-20 19:03 ` kernel test robot
2024-09-17 17:16 ` [PATCH 13/15] fsi: occ: Find next available child rather than node name match Eddie James
2024-09-17 17:16 ` [PATCH 14/15] fsi: sbefifo: Prevent async FFDC collection for Odyssey SBEFIFOs Eddie James
2024-09-17 17:16 ` [PATCH 15/15] fsi: i2cr: Reduce status checks for read operations Eddie James
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=20240917171647.1403910-9-eajames@linux.ibm.com \
--to=eajames@linux.ibm.com \
--cc=alistair@popple.id.au \
--cc=andrew@codeconstruct.com.au \
--cc=jk@ozlabs.org \
--cc=joel@jms.id.au \
--cc=linux-fsi@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ninad@linux.ibm.com \
/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.