summaryrefslogtreecommitdiff
path: root/drivers/fsi/fsi-master-gpio.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2017-06-07 00:08:55 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-09 12:52:09 +0300
commit1247cf7ab876b6f1da7028bff64b3d89130dd8e3 (patch)
tree5a3a2b78b273ba270180a7ec77b80bd3e1d7647a /drivers/fsi/fsi-master-gpio.c
parentac0385d9f609e836e82213c75a24ae87f8fe1c9f (diff)
downloadlinux-1247cf7ab876b6f1da7028bff64b3d89130dd8e3.tar.xz
drivers/fsi/gpio: Add tracepoints for GPIO master
Trace low level input/output GPIO operations. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/fsi/fsi-master-gpio.c')
-rw-r--r--drivers/fsi/fsi-master-gpio.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c
index d467e61065a9..a5d6e705b3c5 100644
--- a/drivers/fsi/fsi-master-gpio.c
+++ b/drivers/fsi/fsi-master-gpio.c
@@ -61,6 +61,9 @@ struct fsi_master_gpio {
struct gpio_desc *gpio_mux; /* Mux control */
};
+#define CREATE_TRACE_POINTS
+#include <trace/events/fsi_master_gpio.h>
+
#define to_fsi_master_gpio(m) container_of(m, struct fsi_master_gpio, master)
struct fsi_gpio_msg {
@@ -126,6 +129,8 @@ static void serial_in(struct fsi_master_gpio *master, struct fsi_gpio_msg *msg,
msg->msg |= ~in_bit & 0x1; /* Data is active low */
}
msg->bits += num_bits;
+
+ trace_fsi_master_gpio_in(master, num_bits, msg->msg);
}
static void serial_out(struct fsi_master_gpio *master,
@@ -137,6 +142,8 @@ static void serial_out(struct fsi_master_gpio *master,
uint64_t last_bit = ~0;
int next_bit;
+ trace_fsi_master_gpio_out(master, cmd->bits, cmd->msg);
+
if (!cmd->bits) {
dev_warn(master->dev, "trying to output 0 bits\n");
return;
@@ -458,6 +465,8 @@ static int fsi_master_gpio_break(struct fsi_master *_master, int link)
if (link != 0)
return -ENODEV;
+ trace_fsi_master_gpio_break(master);
+
set_sda_output(master, 1);
sda_out(master, 1);
clock_toggle(master, FSI_PRE_BREAK_CLOCKS);