diff options
| author | Jeremy Kerr <jk@ozlabs.org> | 2017-06-06 17:08:55 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-06-09 05:52:09 -0400 |
| commit | 1247cf7ab876b6f1da7028bff64b3d89130dd8e3 (patch) | |
| tree | 5a3a2b78b273ba270180a7ec77b80bd3e1d7647a /drivers/fsi | |
| parent | ac0385d9f609e836e82213c75a24ae87f8fe1c9f (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.c | 9 |
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 | ||
| 66 | struct fsi_gpio_msg { | 69 | struct 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 | ||
| 131 | static void serial_out(struct fsi_master_gpio *master, | 136 | static 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); |
