Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1659207
| From | Christopher Bostic <cbostic@linux.vnet.ibm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v8 06/24] drivers/fsi: Set up links for slave communication |
| Date | 2017-06-06 23:10 +0200 |
| Message-ID | <tPtTI-5H7-5@gated-at.bofh.it> (permalink) |
| References | <tPtTH-5H7-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Enable each link and send a break command, and try to detect a slave by
reading from the SMODE register.
Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
drivers/fsi/fsi-core.c | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index 1ec9790..235f17a 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -133,12 +133,45 @@ static int fsi_master_write(struct fsi_master *master, int link,
return master->write(master, link, slave_id, addr, val, size);
}
+static int fsi_master_link_enable(struct fsi_master *master, int link)
+{
+ if (master->link_enable)
+ return master->link_enable(master, link);
+
+ return 0;
+}
+
+/*
+ * Issue a break command on this link
+ */
+static int fsi_master_break(struct fsi_master *master, int link)
+{
+ if (master->send_break)
+ return master->send_break(master, link);
+
+ return 0;
+}
+
static int fsi_master_scan(struct fsi_master *master)
{
- int link;
+ int link, rc;
+
+ for (link = 0; link < master->n_links; link++) {
+ rc = fsi_master_link_enable(master, link);
+ if (rc) {
+ dev_dbg(&master->dev,
+ "enable link %d failed: %d\n", link, rc);
+ continue;
+ }
+ rc = fsi_master_break(master, link);
+ if (rc) {
+ dev_dbg(&master->dev,
+ "break to link %d failed: %d\n", link, rc);
+ continue;
+ }
- for (link = 0; link < master->n_links; link++)
fsi_slave_init(master, link, 0);
+ }
return 0;
}
--
1.8.2.2
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v8 00/24] FSI device driver implementation Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:10 +0200 [PATCH v8 06/24] drivers/fsi: Set up links for slave communication Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:10 +0200 [PATCH v8 01/24] drivers/fsi: Add fsi master definition Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:10 +0200 [PATCH v8 11/24] drivers/fsi: Add master unscan Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:10 +0200 [PATCH v8 05/24] drivers/fsi: Add slave & master read/write APIs Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:10 +0200 [PATCH v8 04/24] lib: Add crc4 module Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:10 +0200 [PATCH v8 12/24] drivers/fsi: Add documentation for GPIO bindings Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 24/24] drivers/fsi: Add module license to core driver Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 19/24] drivers/fsi: Add GPIO based FSI master Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 14/24] drivers/fsi: Add sysfs files for FSI master & slave accesses Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 20/24] drivers/fsi/gpio: Add tracepoints for GPIO master Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 22/24] drivers/fsi: Add hub master support Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 17/24] drivers/fsi: Add error handling for slave Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 16/24] drivers/fsi: Add tracepoints for low-level operations Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 10/24] drivers/fsi: Add device read/write/peek API Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 21/24] drivers/fsi: Add SCOM FSI client device driver Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 18/24] drivers/fsi: Document FSI master sysfs files in ABI Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 08/24] drivers/fsi: Set slave SMODE to init communication Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 15/24] drivers/fsi: expose direct-access slave API Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 07/24] drivers/fsi: Implement slave initialisation Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 02/24] drivers/fsi: Add slave definition Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 13/24] drivers/fsi: Add client driver register utilities Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 23/24] drivers/fsi: Use asynchronous slave mode Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 03/24] drivers/fsi: Add empty master scan Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200 [PATCH v8 09/24] drivers/fsi: scan slaves & register devices Christopher Bostic <cbostic@linux.vnet.ibm.com> - 2017-06-06 23:20 +0200
csiph-web