From: christopher.lee.bostic@gmail.com
To: openbmc@lists.ozlabs.org
Cc: joel@jms.id.au, zahrens@us.ibm.com, xxpetri@de.ibm.com,
Chris Bostic <cbostic@us.ibm.com>
Subject: [PATCH linux v6 14/18] drivers/fsi: Set up links for slave communication
Date: Sun, 30 Oct 2016 17:09:16 -0500 [thread overview]
Message-ID: <1477865379-11566-15-git-send-email-christopher.lee.bostic@gmail.com> (raw)
In-Reply-To: <1477865379-11566-1-git-send-email-christopher.lee.bostic@gmail.com>
From: Chris Bostic <cbostic@us.ibm.com>
Enable each link and send a break command in preparation
for scanning each link for slaves.
Signed-off-by: Chris Bostic <cbostic@us.ibm.com>
---
V3 - Remove definition of BREAK command from fsi-master.h
- Remove definitions of fsi_master_fake for set_smode
and break
- Remove master->set_smode master dependent function and
moved to a generic base master set_smode.
- Add fsi_master_link_enable with master type dependencies
V4 - Remove all references to set smode
- Remove file fsi-slave.h
- Move link break and enable up into master scan
- Change rc = func(); return rc; coding to return func();
Note this is still in place in fsi_master_send_break in
anticipation of changes coming up in next patch of this
series.
- Fix comment spelling error
- Use dev_dbg instead of dev_info when link enable or break
fails
- Remove explicit set of master->break and
master->link_enable to NULL due to kzalloc
v6 - Don't return error if master->link_enable or
master->break are not defined.
---
drivers/fsi/fsi-core.c | 38 +++++++++++++++++++++++++++++++++++---
drivers/fsi/fsi-master.h | 2 ++
2 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index 95e867e..7fc15ab 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -288,16 +288,48 @@ static int fsi_slave_init(struct fsi_master *master,
/* FSI master support */
+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, slave_id;
+ int link, slave_id, 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 with:%d\n", link, rc);
+ continue;
+ }
+ rc = fsi_master_break(master, link);
+ if (rc) {
+ dev_dbg(master->dev,
+ "Break to link:%d failed with:%d\n", link, rc);
+ continue;
+ }
- for (link = 0; link < master->n_links; link++)
for (slave_id = 0; slave_id < FSI_N_SLAVES; slave_id++)
fsi_slave_init(master, link, slave_id);
+ }
return 0;
-
}
int fsi_master_register(struct fsi_master *master)
diff --git a/drivers/fsi/fsi-master.h b/drivers/fsi/fsi-master.h
index cafb433..56aad0e 100644
--- a/drivers/fsi/fsi-master.h
+++ b/drivers/fsi/fsi-master.h
@@ -29,6 +29,8 @@ struct fsi_master {
int (*write)(struct fsi_master *, int link,
uint8_t slave, uint32_t addr,
const void *val, size_t size);
+ int (*send_break)(struct fsi_master *, int link);
+ int (*link_enable)(struct fsi_master *, int link);
};
extern int fsi_master_register(struct fsi_master *master);
--
1.8.2.2
next prev parent reply other threads:[~2016-10-30 22:10 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-30 22:09 [PATCH linux v6 00/18] FSI device driver introduction christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 01/18] fsi: Add empty fsi bus definitions christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 02/18] fsi: Add device & driver definitions christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 03/18] fsi: add driver to device matches christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 04/18] fsi: Add fsi master definition christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 05/18] fsi: Add fake master driver christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 06/18] fsi: enable debug christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 07/18] fsi: Add slave definition christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 08/18] fsi: Add empty master scan christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 09/18] fsi: Add crc4 helpers christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 10/18] fsi: Implement slave initialisation christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 11/18] fsi: scan slaves & register devices christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 12/18] fsi: Add device read/write/peek functions christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 13/18] drivers/fsi: Minor updates to FSI core christopher.lee.bostic
2016-10-31 1:24 ` Jeremy Kerr
2016-11-03 16:49 ` Christopher Bostic
2016-10-30 22:09 ` christopher.lee.bostic [this message]
2016-10-30 22:09 ` [PATCH linux v6 15/18] drivers/fsi: Set slave SMODE to init communications christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 16/18] drivers/fsi: Add GPIO FSI master christopher.lee.bostic
2016-11-02 3:56 ` Alistair Popple
2016-11-03 17:33 ` Christopher Bostic
2016-10-30 22:09 ` [PATCH linux v6 17/18] drivers/fsi: Add client driver register utilities christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 18/18] drivers/fsi: Add SCOM FSI client device driver christopher.lee.bostic
2016-10-31 1:22 ` Jeremy Kerr
2016-11-03 16:47 ` Christopher Bostic
2016-11-13 23:44 ` Alistair Popple
2016-11-14 17:13 ` Christopher Bostic
2016-11-14 22:43 ` Christopher Bostic
2016-10-30 22:09 ` [PATCH linux v6 00/18] FSI device driver introduction christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 01/18] fsi: Add empty fsi bus definitions christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 02/18] fsi: Add device & driver definitions christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 03/18] fsi: add driver to device matches christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 04/18] fsi: Add fsi master definition christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 05/18] fsi: Add fake master driver christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 06/18] fsi: enable debug christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 07/18] fsi: Add slave definition christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 08/18] fsi: Add empty master scan christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 09/18] fsi: Add crc4 helpers christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 10/18] fsi: Implement slave initialisation christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 11/18] fsi: scan slaves & register devices christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 12/18] fsi: Add device read/write/peek functions christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 13/18] drivers/fsi: Minor updates to FSI core christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 14/18] drivers/fsi: Set up links for slave communication christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 15/18] drivers/fsi: Set slave SMODE to init communications christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 16/18] drivers/fsi: Add GPIO FSI master christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 17/18] drivers/fsi: Add client driver register utilities christopher.lee.bostic
2016-10-30 22:09 ` [PATCH linux v6 18/18] drivers/fsi: Add SCOM FSI client device driver christopher.lee.bostic
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=1477865379-11566-15-git-send-email-christopher.lee.bostic@gmail.com \
--to=christopher.lee.bostic@gmail.com \
--cc=cbostic@us.ibm.com \
--cc=joel@jms.id.au \
--cc=openbmc@lists.ozlabs.org \
--cc=xxpetri@de.ibm.com \
--cc=zahrens@us.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.