summaryrefslogtreecommitdiffstats
path: root/drivers/fsi
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2017-06-06 17:08:55 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-09 05:52:09 -0400
commit1247cf7ab876b6f1da7028bff64b3d89130dd8e3 (patch)
tree5a3a2b78b273ba270180a7ec77b80bd3e1d7647a /drivers/fsi
parentac0385d9f609e836e82213c75a24ae87f8fe1c9f (diff)
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')
-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 {
61 struct gpio_desc *gpio_mux; /* Mux control */ 61 struct gpio_desc *gpio_mux; /* Mux control */
62}; 62};
63 63
64#define CREATE_TRACE_POINTS
65#include <trace/events/fsi_master_gpio.h>
66
64#define to_fsi_master_gpio(m) container_of(m, struct fsi_master_gpio, master) 67#define to_fsi_master_gpio(m) container_of(m, struct fsi_master_gpio, master)
65 68
66struct fsi_gpio_msg { 69struct fsi_gpio_msg {
@@ -126,6 +129,8 @@ static void serial_in(struct fsi_master_gpio *master, struct fsi_gpio_msg *msg,
126 msg->msg |= ~in_bit & 0x1; /* Data is active low */ 129 msg->msg |= ~in_bit & 0x1; /* Data is active low */
127 } 130 }
128 msg->bits += num_bits; 131 msg->bits += num_bits;
132
133 trace_fsi_master_gpio_in(master, num_bits, msg->msg);
129} 134}
130 135
131static void serial_out(struct fsi_master_gpio *master, 136static void serial_out(struct fsi_master_gpio *master,
@@ -137,6 +142,8 @@ static void serial_out(struct fsi_master_gpio *master,
137 uint64_t last_bit = ~0; 142 uint64_t last_bit = ~0;
138 int next_bit; 143 int next_bit;
139 144
145 trace_fsi_master_gpio_out(master, cmd->bits, cmd->msg);
146
140 if (!cmd->bits) { 147 if (!cmd->bits) {
141 dev_warn(master->dev, "trying to output 0 bits\n"); 148 dev_warn(master->dev, "trying to output 0 bits\n");
142 return; 149 return;
@@ -458,6 +465,8 @@ static int fsi_master_gpio_break(struct fsi_master *_master, int link)
458 if (link != 0) 465 if (link != 0)
459 return -ENODEV; 466 return -ENODEV;
460 467
468 trace_fsi_master_gpio_break(master);
469
461 set_sda_output(master, 1); 470 set_sda_output(master, 1);
462 sda_out(master, 1); 471 sda_out(master, 1);
463 clock_toggle(master, FSI_PRE_BREAK_CLOCKS); 472 clock_toggle(master, FSI_PRE_BREAK_CLOCKS);