Message ID | 20180626232605.13420-7-benh@kernel.crashing.org |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | fsi: Fixes and Coldfire coprocessor offload | expand |
On 27 June 2018 at 08:55, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote: > This adds a few more tracepoints that have proven useful when > debugging issues with the FSI bus. > > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reviewed-by: Joel Stanley <joel@jms.id.au> > --- > drivers/fsi/fsi-master-gpio.c | 16 ++++--- > include/trace/events/fsi_master_gpio.h | 59 ++++++++++++++++++++++++++ > 2 files changed, 69 insertions(+), 6 deletions(-) > > diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c > index 48e0e65b2982..a00a85aa6d56 100644 > --- a/drivers/fsi/fsi-master-gpio.c > +++ b/drivers/fsi/fsi-master-gpio.c > @@ -130,10 +130,17 @@ static void set_sda_output(struct fsi_master_gpio *master, int value) > > static void clock_zeros(struct fsi_master_gpio *master, int count) > { > + trace_fsi_master_gpio_clock_zeros(master, count); > set_sda_output(master, 1); > clock_toggle(master, count); > } > > +static void echo_delay(struct fsi_master_gpio *master) > +{ > + clock_zeros(master, master->t_echo_delay); > +} This doesn't look like it belongs in this patch. You've just moved it up. Not worth a re-spin. > + > + > static void serial_in(struct fsi_master_gpio *master, struct fsi_gpio_msg *msg, > uint8_t num_bits) > { > @@ -279,16 +286,19 @@ static void build_ar_command(struct fsi_master_gpio *master, > addr_bits = 2; > opcode_bits = 2; > opcode = FSI_GPIO_CMD_SAME_AR; > + trace_fsi_master_gpio_cmd_same_addr(master); > > } else if (check_relative_address(master, id, addr, &rel_addr)) { > /* 8 bits plus sign */ > addr_bits = 9; > addr = rel_addr; > opcode = FSI_GPIO_CMD_REL_AR; > + trace_fsi_master_gpio_cmd_rel_addr(master, rel_addr); > > } else { > addr_bits = 21; > opcode = FSI_GPIO_CMD_ABS_AR; > + trace_fsi_master_gpio_cmd_abs_addr(master, addr); > } > > /* > @@ -337,12 +347,6 @@ static void build_epoll_command(struct fsi_gpio_msg *cmd, uint8_t slave_id) > msg_push_crc(cmd); > } > > -static void echo_delay(struct fsi_master_gpio *master) > -{ > - set_sda_output(master, 1); > - clock_toggle(master, master->t_echo_delay); > -} > - > static void build_term_command(struct fsi_gpio_msg *cmd, uint8_t slave_id) > { > cmd->bits = 0;
On Thu, 2018-06-28 at 13:41 +0930, Joel Stanley wrote: > On 27 June 2018 at 08:55, Benjamin Herrenschmidt > <benh@kernel.crashing.org> wrote: > > This adds a few more tracepoints that have proven useful when > > debugging issues with the FSI bus. > > > > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> > > Reviewed-by: Joel Stanley <joel@jms.id.au> > > > --- > > drivers/fsi/fsi-master-gpio.c | 16 ++++--- > > include/trace/events/fsi_master_gpio.h | 59 ++++++++++++++++++++++++++ > > 2 files changed, 69 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c > > index 48e0e65b2982..a00a85aa6d56 100644 > > --- a/drivers/fsi/fsi-master-gpio.c > > +++ b/drivers/fsi/fsi-master-gpio.c > > @@ -130,10 +130,17 @@ static void set_sda_output(struct fsi_master_gpio *master, int value) > > > > static void clock_zeros(struct fsi_master_gpio *master, int count) > > { > > + trace_fsi_master_gpio_clock_zeros(master, count); > > set_sda_output(master, 1); > > clock_toggle(master, count); > > } > > > > +static void echo_delay(struct fsi_master_gpio *master) > > +{ > > + clock_zeros(master, master->t_echo_delay); > > +} > > This doesn't look like it belongs in this patch. > > You've just moved it up. Not worth a re-spin. I've done more, I made it use clock_zeros() instead of open coding it in order to share the tracepoint. > > > + > > + > > static void serial_in(struct fsi_master_gpio *master, struct fsi_gpio_msg *msg, > > uint8_t num_bits) > > { > > @@ -279,16 +286,19 @@ static void build_ar_command(struct fsi_master_gpio *master, > > addr_bits = 2; > > opcode_bits = 2; > > opcode = FSI_GPIO_CMD_SAME_AR; > > + trace_fsi_master_gpio_cmd_same_addr(master); > > > > } else if (check_relative_address(master, id, addr, &rel_addr)) { > > /* 8 bits plus sign */ > > addr_bits = 9; > > addr = rel_addr; > > opcode = FSI_GPIO_CMD_REL_AR; > > + trace_fsi_master_gpio_cmd_rel_addr(master, rel_addr); > > > > } else { > > addr_bits = 21; > > opcode = FSI_GPIO_CMD_ABS_AR; > > + trace_fsi_master_gpio_cmd_abs_addr(master, addr); > > } > > > > /* > > @@ -337,12 +347,6 @@ static void build_epoll_command(struct fsi_gpio_msg *cmd, uint8_t slave_id) > > msg_push_crc(cmd); > > } > > > > -static void echo_delay(struct fsi_master_gpio *master) > > -{ > > - set_sda_output(master, 1); > > - clock_toggle(master, master->t_echo_delay); > > -} > > - > > static void build_term_command(struct fsi_gpio_msg *cmd, uint8_t slave_id) > > { > > cmd->bits = 0;
diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c index 48e0e65b2982..a00a85aa6d56 100644 --- a/drivers/fsi/fsi-master-gpio.c +++ b/drivers/fsi/fsi-master-gpio.c @@ -130,10 +130,17 @@ static void set_sda_output(struct fsi_master_gpio *master, int value) static void clock_zeros(struct fsi_master_gpio *master, int count) { + trace_fsi_master_gpio_clock_zeros(master, count); set_sda_output(master, 1); clock_toggle(master, count); } +static void echo_delay(struct fsi_master_gpio *master) +{ + clock_zeros(master, master->t_echo_delay); +} + + static void serial_in(struct fsi_master_gpio *master, struct fsi_gpio_msg *msg, uint8_t num_bits) { @@ -279,16 +286,19 @@ static void build_ar_command(struct fsi_master_gpio *master, addr_bits = 2; opcode_bits = 2; opcode = FSI_GPIO_CMD_SAME_AR; + trace_fsi_master_gpio_cmd_same_addr(master); } else if (check_relative_address(master, id, addr, &rel_addr)) { /* 8 bits plus sign */ addr_bits = 9; addr = rel_addr; opcode = FSI_GPIO_CMD_REL_AR; + trace_fsi_master_gpio_cmd_rel_addr(master, rel_addr); } else { addr_bits = 21; opcode = FSI_GPIO_CMD_ABS_AR; + trace_fsi_master_gpio_cmd_abs_addr(master, addr); } /* @@ -337,12 +347,6 @@ static void build_epoll_command(struct fsi_gpio_msg *cmd, uint8_t slave_id) msg_push_crc(cmd); } -static void echo_delay(struct fsi_master_gpio *master) -{ - set_sda_output(master, 1); - clock_toggle(master, master->t_echo_delay); -} - static void build_term_command(struct fsi_gpio_msg *cmd, uint8_t slave_id) { cmd->bits = 0; diff --git a/include/trace/events/fsi_master_gpio.h b/include/trace/events/fsi_master_gpio.h index 389082132433..70ef66e63e84 100644 --- a/include/trace/events/fsi_master_gpio.h +++ b/include/trace/events/fsi_master_gpio.h @@ -50,6 +50,22 @@ TRACE_EVENT(fsi_master_gpio_out, ) ); +TRACE_EVENT(fsi_master_gpio_clock_zeros, + TP_PROTO(const struct fsi_master_gpio *master, int clocks), + TP_ARGS(master, clocks), + TP_STRUCT__entry( + __field(int, master_idx) + __field(int, clocks) + ), + TP_fast_assign( + __entry->master_idx = master->master.idx; + __entry->clocks = clocks; + ), + TP_printk("fsi-gpio%d clock %d zeros", + __entry->master_idx, __entry->clocks + ) +); + TRACE_EVENT(fsi_master_gpio_break, TP_PROTO(const struct fsi_master_gpio *master), TP_ARGS(master), @@ -107,6 +123,49 @@ TRACE_EVENT(fsi_master_gpio_poll_response_busy, __entry->master_idx, __entry->busy) ); +TRACE_EVENT(fsi_master_gpio_cmd_abs_addr, + TP_PROTO(const struct fsi_master_gpio *master, u32 addr), + TP_ARGS(master, addr), + TP_STRUCT__entry( + __field(int, master_idx) + __field(u32, addr) + ), + TP_fast_assign( + __entry->master_idx = master->master.idx; + __entry->addr = addr; + ), + TP_printk("fsi-gpio%d: Sending ABS_ADR %06x", + __entry->master_idx, __entry->addr) +); + +TRACE_EVENT(fsi_master_gpio_cmd_rel_addr, + TP_PROTO(const struct fsi_master_gpio *master, u32 rel_addr), + TP_ARGS(master, rel_addr), + TP_STRUCT__entry( + __field(int, master_idx) + __field(u32, rel_addr) + ), + TP_fast_assign( + __entry->master_idx = master->master.idx; + __entry->rel_addr = rel_addr; + ), + TP_printk("fsi-gpio%d: Sending REL_ADR %03x", + __entry->master_idx, __entry->rel_addr) +); + +TRACE_EVENT(fsi_master_gpio_cmd_same_addr, + TP_PROTO(const struct fsi_master_gpio *master), + TP_ARGS(master), + TP_STRUCT__entry( + __field(int, master_idx) + ), + TP_fast_assign( + __entry->master_idx = master->master.idx; + ), + TP_printk("fsi-gpio%d: Sending SAME_ADR", + __entry->master_idx) +); + #endif /* _TRACE_FSI_MASTER_GPIO_H */ #include <trace/define_trace.h>
This adds a few more tracepoints that have proven useful when debugging issues with the FSI bus. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- drivers/fsi/fsi-master-gpio.c | 16 ++++--- include/trace/events/fsi_master_gpio.h | 59 ++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 6 deletions(-)