<html><body><p><tt>From: Christopher Bostic <cbostic@us.ibm.com><br>Date: Thu, 9 Jun 2016 13:42:59 -0500<br></tt><br><tt>Initial FSI device driver stubs</tt><br><tt><br>---<br> drivers/Makefile      |  1 +<br> drivers/fsi/Makefile  |  5 +++++<br> drivers/fsi/fsiinit.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++<br> drivers/fsi/fsiinit.h | 45 ++++++++++++++++++++++++++++++++++++++++++<br> 4 files changed, 105 insertions(+)<br> create mode 100644 drivers/fsi/Makefile<br> create mode 100644 drivers/fsi/fsiinit.c<br> create mode 100644 drivers/fsi/fsiinit.h<br><br>diff --git a/drivers/Makefile b/drivers/Makefile<br>index 795d0ca..8ea7c58 100644<br>--- a/drivers/Makefile<br>+++ b/drivers/Makefile<br>@@ -172,3 +172,4 @@ obj-$(CONFIG_STM)        += hwtracing/stm/<br> obj-$(CONFIG_ANDROID)        += android/<br> obj-$(CONFIG_NVMEM)        += nvmem/<br> obj-$(CONFIG_FPGA)        += fpga/<br>+obj-$(CONFIG_FSI)        += fsi/<br>diff --git a/drivers/fsi/Makefile b/drivers/fsi/Makefile<br>new file mode 100644<br>index 0000000..f547c08<br>--- /dev/null<br>+++ b/drivers/fsi/Makefile<br>@@ -0,0 +1,5 @@<br>+#<br>+# Makefile for the FSI bus specific drivers.<br>+#<br>+<br>+obj-y        += fsiinit.o<br>diff --git a/drivers/fsi/fsiinit.c b/drivers/fsi/fsiinit.c<br>new file mode 100644<br>index 0000000..d7902d8<br>--- /dev/null<br>+++ b/drivers/fsi/fsiinit.c<br>@@ -0,0 +1,54 @@<br>+/*<br>+ * Copyright (c) International Business Machines Corp., 2012<br>+ *<br>+ * FSI Master device driver<br>+ *<br>+ * Thomas Richter, IBM Boeblingen, Germany, 17-Jun-2010<br>+ * Christopher Bostic, IBM Austin, TX  2016<br>+ *<br>+ */<br>+<br>+#include <linux/init.h><br>+#include <linux/module.h><br>+#include "fsiinit.h"<br>+<br>+MODULE_AUTHOR("Christopher Bostic cbostic@us.ibm.com");<br>+MODULE_DESCRIPTION("FSI master device driver");<br>+<br>+#define FSIDD_MAJOR    0        /* FSI device driver major */<br>+#define    FSIDD_TOSTR(x)    #x<br>+#define    FSIDD_VERNO    4000<br>+#define    FSIDD_VER(x)    FSIDD_TOSTR(x)<br>+<br>+struct fsidd fsidd = {        /* FSI device driver structure definition */<br>+    .magic = FSI_DD_MAGIC,<br>+    .strno = FSI_DD_STRNO,<br>+};<br>+<br>+<br>+static int fsi_start(void)<br>+{<br>+    int rc = 0;<br>+<br>+<br>+    printk("FSI DD %s installation ok\n", fsidd.vstr);<br>+    return rc;<br>+}<br>+<br>+static void fsi_exit(void)<br>+{<br>+<br>+}<br>+<br>+static int __init fsi_init(void)<br>+{<br>+    int rc = 0;<br>+<br>+    /* Set up the host controller */<br>+    fsi_start();<br>+    return rc;<br>+}<br>+<br>+module_init(fsi_init);<br>+module_exit(fsi_exit);<br>+<br>diff --git a/drivers/fsi/fsiinit.h b/drivers/fsi/fsiinit.h<br>new file mode 100644<br>index 0000000..2383610<br>--- /dev/null<br>+++ b/drivers/fsi/fsiinit.h<br>@@ -0,0 +1,45 @@<br>+/*<br>+ * Copyright (c) International Business Machines Corp., 2010<br>+ *<br>+ * FSI Master device driver<br>+ *<br>+ * Thomas Richter, IBM Boeblingen, Germany, Jun-2010<br>+ * Christopher Bostic, IBM Austin, TX 2013<br>+ *<br>+ *<br>+ * Structure definitions and defines.<br>+ */<br>+<br>+#ifndef DRIVERS_FSIINIT_H<br>+#define DRIVERS_FSIINIT_H<br>+<br>+#include <linux/kernel.h><br>+#include <linux/types.h><br>+#include <linux/kobject.h><br>+#include <linux/workqueue.h><br>+#include <linux/hrtimer.h><br>+<br>+#define VSTRLEN        32        /* Version string length */<br>+<br>+enum {<br>+    FSI_DD_MAGIC = 0x64644632,    /* ddF2 */<br>+    FSI_DD_STRNO = 0x1        /* Structure version number */<br>+};<br>+<br>+struct fsidd {                /* FSI Main structure */<br>+    unsigned long magic;        /* Magic number */<br>+    unsigned long strno;        /* Structure version number */<br>+    char vstr[VSTRLEN];        /* Version string */<br>+    dev_t major;            /* Major number of device */<br>+    struct workqueue_struct *hotp_wq;    /* Hot plug work queue */<br>+    wait_queue_head_t error_wq;    /* Wait queue for port errors */<br>+    wait_queue_head_t lbus_wq;    /* Wait queue for lbus events */<br>+    wait_queue_head_t irq_wq;    /* Wait queue for IRQ loops */<br>+    wait_queue_head_t link_wq;    /* Wait queue for link changes */<br>+    unsigned long state;        /* State driver is in */<br>+    struct kobject kobj;        /* Anchor point in /sys/kernel */<br>+};<br>+<br>+#define    to_fsidd(a)        container_of(a, struct fsidd, kobj)<br>+<br>+#endif /* DRIVERS_FSIINIT_H */<br>-- <br>1.8.2.2<br></tt><br><br><br>
<table border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td width="650" colspan="2" valign="middle"><hr width="100%" size="2" align="left"></td></tr>
<tr valign="top"><td width="398"><b><i><font size="4" color="#466BB0" face="Arial">Christopher L Bostic</font></i></b><br><br><b><font size="2" color="#466BB0" face="Arial">Phone:</font></b><font size="2" color="#5F5F5F" face="Arial"> </font><b><font size="2" color="#333333" face="Arial">1-512-286-5411</font></b><font size="2" color="#466BB0" face="Arial"> | </font><b><font size="2" color="#466BB0" face="Arial">Tie-Line:</font></b><font size="2" color="#5F5F5F" face="Arial"> </font><b><font size="2" color="#333333" face="Arial">363-5411</font></b><b><font size="2" color="#466BB0" face="Arial"><br></font></b><br>Enterprise Systems Group - Power Firmware <br>Service Processor Microcode Development  Dept 3ALS<br>11400 Burnet Road<br>Austin, TX 78759<br></td><td width="252"><div align="right"><img src="cid:1__=8FBBF54ADFC7B2448f9e8a93df938690918c8FB@" width="87" height="30" alt="IBM"><font size="2" color="#5F5F5F" face="Arial"><br></font></div></td></tr></table><br><BR>
</body></html>