diff mbox series

[v1,1/4] usb: typec: tps6598x: Add trace event for IRQ events

Message ID 1a430ea9630fefbcdf9628c4b64fe5366ed4a6df.1613058605.git.agx@sigxcpu.org (mailing list archive)
State Superseded
Headers show
Series usb: typec: tps6598x: Add IRQ flag and register tracing | expand

Commit Message

Guido Günther Feb. 11, 2021, 3:51 p.m. UTC
Allow to get irq event information via the tracing framework.  This
allows to inspect USB-C negotiation at runtime.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 drivers/usb/typec/Makefile         |  3 +
 drivers/usb/typec/tps6598x.c       |  9 ++-
 drivers/usb/typec/tps6598x.h       | 61 +++++++++++++++++++
 drivers/usb/typec/tps6598x_trace.h | 97 ++++++++++++++++++++++++++++++
 4 files changed, 167 insertions(+), 3 deletions(-)
 create mode 100644 drivers/usb/typec/tps6598x.h
 create mode 100644 drivers/usb/typec/tps6598x_trace.h

Comments

kernel test robot Feb. 11, 2021, 9:21 p.m. UTC | #1
Hi "Guido,

I love your patch! Perhaps something to improve:

[auto build test WARNING on usb/usb-testing]
[also build test WARNING on v5.11-rc7 next-20210211]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Guido-G-nther/usb-typec-tps6598x-Add-IRQ-flag-and-register-tracing/20210212-001108
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: mips-randconfig-r036-20210209 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # https://github.com/0day-ci/linux/commit/bb7c40815d7d301dc6d52b1213d82b18696abf14
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Guido-G-nther/usb-typec-tps6598x-Add-IRQ-flag-and-register-tracing/20210212-001108
        git checkout bb7c40815d7d301dc6d52b1213d82b18696abf14
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:51:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE,        "ERROR_DEVICE_INCOMPATIBLE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:31:48: note: expanded from macro 'TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE'
   #define TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE           BIT(0+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:52:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR,         "ERROR_CANNOT_PROVIDE_PWR" }, \
                     ^
   drivers/usb/typec/tps6598x.h:30:47: note: expanded from macro 'TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR'
   #define TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR            BIT(1+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:53:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER,      "ERROR_CAN_PROVIDE_PWR_LATER" }, \
                     ^
   drivers/usb/typec/tps6598x.h:29:50: note: expanded from macro 'TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER'
   #define TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER         BIT(2+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:54:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_POWER_EVENT_OCCURRED,       "ERROR_POWER_EVENT_OCCURRED" }, \
                     ^
   drivers/usb/typec/tps6598x.h:28:49: note: expanded from macro 'TPS_REG_INT_ERROR_POWER_EVENT_OCCURRED'
   #define TPS_REG_INT_ERROR_POWER_EVENT_OCCURRED          BIT(3+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:55:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_MISSING_GET_CAP_MESSAGE,    "ERROR_MISSING_GET_CAP_MESSAGE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:27:51: note: expanded from macro 'TPS_REG_INT_ERROR_MISSING_GET_CAP_MESSAGE'
   #define TPS_REG_INT_ERROR_MISSING_GET_CAP_MESSAGE       BIT(4+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:56:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_PROTOCOL_ERROR,             "ERROR_PROTOCOL_ERROR" }, \
                     ^
   drivers/usb/typec/tps6598x.h:26:43: note: expanded from macro 'TPS_REG_INT_ERROR_PROTOCOL_ERROR'
   #define TPS_REG_INT_ERROR_PROTOCOL_ERROR                BIT(6+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:57:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_MESSAGE_DATA,               "ERROR_MESSAGE_DATA" }, \
                     ^
   drivers/usb/typec/tps6598x.h:25:42: note: expanded from macro 'TPS_REG_INT_ERROR_MESSAGE_DATA'
   #define TPS_REG_INT_ERROR_MESSAGE_DATA                  BIT(7+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:58:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_DISCHARGE_FAILED,           "ERROR_DISCHARGE_FAILED" }, \
                     ^
   drivers/usb/typec/tps6598x.h:24:45: note: expanded from macro 'TPS_REG_INT_ERROR_DISCHARGE_FAILED'
   #define TPS_REG_INT_ERROR_DISCHARGE_FAILED              BIT(9+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:59:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_SRC_TRANSITION,                   "SRC_TRANSITION" }, \
                     ^
   drivers/usb/typec/tps6598x.h:23:38: note: expanded from macro 'TPS_REG_INT_SRC_TRANSITION'
   #define TPS_REG_INT_SRC_TRANSITION                      BIT(10+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:60:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_UNABLE_TO_SOURCE,           "ERROR_UNABLE_TO_SOURCE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:22:45: note: expanded from macro 'TPS_REG_INT_ERROR_UNABLE_TO_SOURCE'
   #define TPS_REG_INT_ERROR_UNABLE_TO_SOURCE              BIT(14+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:61:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_VDM_ENTERED_MODE,                 "VDM_ENTERED_MODE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:21:40: note: expanded from macro 'TPS_REG_INT_VDM_ENTERED_MODE'
   #define TPS_REG_INT_VDM_ENTERED_MODE                    BIT(17+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:62:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_VDM_MSG_SENT,                     "VDM_MSG_SENT" }, \
                     ^
   drivers/usb/typec/tps6598x.h:20:36: note: expanded from macro 'TPS_REG_INT_VDM_MSG_SENT'
   #define TPS_REG_INT_VDM_MSG_SENT                        BIT(18+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:63:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_DISCOVER_MODES_COMPLETE,          "DISCOVER_MODES_COMPLETE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:19:46: note: expanded from macro 'TPS_REG_INT_DISCOVER_MODES_COMPLETE'
   #define TPS_REG_INT_DISCOVER_MODES_COMPLETE             BIT(19+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:64:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_EXIT_MODES_COMPLETE,              "EXIT_MODES_COMPLETE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:18:43: note: expanded from macro 'TPS_REG_INT_EXIT_MODES_COMPLETE'
   #define TPS_REG_INT_EXIT_MODES_COMPLETE                 BIT(20+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:65:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_USER_VID_ALT_MODE_ENTERED,        "USER_VID_ALT_MODE_ENTERED" }, \
                     ^
   drivers/usb/typec/tps6598x.h:17:48: note: expanded from macro 'TPS_REG_INT_USER_VID_ALT_MODE_ENTERED'
   #define TPS_REG_INT_USER_VID_ALT_MODE_ENTERED           BIT(24+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:66:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_USER_VID_ALT_MODE_EXIT,           "USER_VID_ALT_MODE_EXIT" }, \
                     ^
   drivers/usb/typec/tps6598x.h:16:45: note: expanded from macro 'TPS_REG_INT_USER_VID_ALT_MODE_EXIT'
   #define TPS_REG_INT_USER_VID_ALT_MODE_EXIT              BIT(25+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:67:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM,       "USER_VID_ALT_MODE_ATTN_VDM" }, \
                     ^
   drivers/usb/typec/tps6598x.h:15:49: note: expanded from macro 'TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM'
   #define TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM          BIT(26+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
>> drivers/usb/typec/./tps6598x_trace.h:86:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event1),
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:68:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM,      "USER_VID_ALT_MODE_OTHER_VDM" })
                     ^
   drivers/usb/typec/tps6598x.h:14:50: note: expanded from macro 'TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM'
   #define TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM         BIT(27+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
   drivers/usb/typec/./tps6598x_trace.h:87:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event2))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:51:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE,        "ERROR_DEVICE_INCOMPATIBLE" }, \
                     ^
   drivers/usb/typec/tps6598x.h:31:48: note: expanded from macro 'TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE'
   #define TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE           BIT(0+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
   drivers/usb/typec/./tps6598x_trace.h:87:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event2))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:52:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR,         "ERROR_CANNOT_PROVIDE_PWR" }, \
                     ^
   drivers/usb/typec/tps6598x.h:30:47: note: expanded from macro 'TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR'
   #define TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR            BIT(1+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:97:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:401:
   drivers/usb/typec/./tps6598x_trace.h:87:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event2))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:53:5: note: expanded from macro 'show_irq_flags'
                   { TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER,      "ERROR_CAN_PROVIDE_PWR_LATER" }, \
                     ^
   drivers/usb/typec/tps6598x.h:29:50: note: expanded from macro 'TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER'
   #define TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER         BIT(2+32)
                                                           ^
   include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
   #define BIT(nr)                 (UL(1) << (nr))
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/trace/trace_events.h:80:16: note: expanded from macro 'TRACE_EVENT'
                                PARAMS(print));                   \
                                ~~~~~~~^~~~~~~
   include/linux/tracepoint.h:97:25: note: expanded from macro 'PARAMS'
   #define PARAMS(args...) args
                           ^
   include/trace/trace_events.h:367:22: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_seq_printf(s, print);                                     \
                               ^~~~~
   In file included from drivers/usb/typec/tps6598x.c:21:

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SSB_EMBEDDED
   Depends on SSB && SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
   Selected by
   - BCM47XX_SSB && BCM47XX


vim +86 drivers/usb/typec/./tps6598x_trace.h

    20	
    21	#define show_irq_flags(flags) \
    22		__print_flags(flags, "|", \
    23			{ TPS_REG_INT_PD_SOFT_RESET,			"PD_SOFT_RESET" }, \
    24			{ TPS_REG_INT_HARD_RESET,			"HARD_RESET" }, \
    25			{ TPS_REG_INT_PLUG_EVENT,			"PLUG_EVENT" }, \
    26			{ TPS_REG_INT_PR_SWAP_COMPLETE,			"PR_SWAP_COMPLETE" }, \
    27			{ TPS_REG_INT_DR_SWAP_COMPLETE,			"DR_SWAP_COMPLETE" }, \
    28			{ TPS_REG_INT_RDO_RECEIVED_FROM_SINK,		"RDO_RECEIVED_FROM_SINK" }, \
    29			{ TPS_REG_INT_BIST,				"BIST" }, \
    30			{ TPS_REG_INT_OVERCURRENT,			"OVERCURRENT" }, \
    31			{ TPS_REG_INT_ATTENTION_RECEIVED,		"ATTENTION_RECEIVED" }, \
    32			{ TPS_REG_INT_VDM_RECEIVED,			"VDM_RECEIVED" }, \
    33			{ TPS_REG_INT_NEW_CONTRACT_AS_CONSUMER,		"NEW_CONTRACT_AS_CONSUMER" }, \
    34			{ TPS_REG_INT_NEW_CONTRACT_AS_PROVIDER,		"NEW_CONTRACT_AS_PROVIDER" }, \
    35			{ TPS_REG_INT_SOURCE_CAP_MESSAGE_READY,		"SOURCE_CAP_MESSAGE_READY" }, \
    36			{ TPS_REG_INT_SINK_CAP_MESSAGE_READY,		"SINK_CAP_MESSAGE_READY" }, \
    37			{ TPS_REG_INT_PR_SWAP_REQUESTED,		"PR_SWAP_REQUESTED" }, \
    38			{ TPS_REG_INT_GOTO_MIN_RECEIVED,		"GOTO_MIN_RECEIVED" }, \
    39			{ TPS_REG_INT_USB_HOST_PRESENT,			"USB_HOST_PRESENT" }, \
    40			{ TPS_REG_INT_USB_HOST_PRESENT_NO_LONGER,	"USB_HOST_PRESENT_NO_LONGER" }, \
    41			{ TPS_REG_INT_HIGH_VOLTAGE_WARNING,		"HIGH_VOLTAGE_WARNING" }, \
    42			{ TPS_REG_INT_PP_SWITCH_CHANGED,		"PP_SWITCH_CHANGED" }, \
    43			{ TPS_REG_INT_POWER_STATUS_UPDATE,		"POWER_STATUS_UPDATE" }, \
    44			{ TPS_REG_INT_DATA_STATUS_UPDATE,		"DATA_STATUS_UPDATE" }, \
    45			{ TPS_REG_INT_STATUS_UPDATE,			"STATUS_UPDATE" }, \
    46			{ TPS_REG_INT_PD_STATUS_UPDATE,			"PD_STATUS_UPDATE" }, \
    47			{ TPS_REG_INT_ADC_LOW_THRESHOLD,		"ADC_LOW_THRESHOLD" }, \
    48			{ TPS_REG_INT_ADC_HIGH_THRESHOLD,		"ADC_HIGH_THRESHOLD" }, \
    49			{ TPS_REG_INT_CMD1_COMPLETE,			"CMD1_COMPLETE" }, \
    50			{ TPS_REG_INT_CMD2_COMPLETE,			"CMD2_COMPLETE" }, \
    51			{ TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE,	"ERROR_DEVICE_INCOMPATIBLE" }, \
    52			{ TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR,		"ERROR_CANNOT_PROVIDE_PWR" }, \
    53			{ TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER,	"ERROR_CAN_PROVIDE_PWR_LATER" }, \
    54			{ TPS_REG_INT_ERROR_POWER_EVENT_OCCURRED,	"ERROR_POWER_EVENT_OCCURRED" }, \
    55			{ TPS_REG_INT_ERROR_MISSING_GET_CAP_MESSAGE,	"ERROR_MISSING_GET_CAP_MESSAGE" }, \
    56			{ TPS_REG_INT_ERROR_PROTOCOL_ERROR,		"ERROR_PROTOCOL_ERROR" }, \
    57			{ TPS_REG_INT_ERROR_MESSAGE_DATA,		"ERROR_MESSAGE_DATA" }, \
    58			{ TPS_REG_INT_ERROR_DISCHARGE_FAILED,		"ERROR_DISCHARGE_FAILED" }, \
    59			{ TPS_REG_INT_SRC_TRANSITION,			"SRC_TRANSITION" }, \
    60			{ TPS_REG_INT_ERROR_UNABLE_TO_SOURCE,		"ERROR_UNABLE_TO_SOURCE" }, \
    61			{ TPS_REG_INT_VDM_ENTERED_MODE,			"VDM_ENTERED_MODE" }, \
    62			{ TPS_REG_INT_VDM_MSG_SENT,			"VDM_MSG_SENT" }, \
    63			{ TPS_REG_INT_DISCOVER_MODES_COMPLETE,		"DISCOVER_MODES_COMPLETE" }, \
    64			{ TPS_REG_INT_EXIT_MODES_COMPLETE,		"EXIT_MODES_COMPLETE" }, \
    65			{ TPS_REG_INT_USER_VID_ALT_MODE_ENTERED,	"USER_VID_ALT_MODE_ENTERED" }, \
    66			{ TPS_REG_INT_USER_VID_ALT_MODE_EXIT,		"USER_VID_ALT_MODE_EXIT" }, \
    67			{ TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM,	"USER_VID_ALT_MODE_ATTN_VDM" }, \
    68			{ TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM,	"USER_VID_ALT_MODE_OTHER_VDM" })
    69	
    70	TRACE_EVENT(tps6598x_irq,
    71		    TP_PROTO(u64 event1,
    72			     u64 event2),
    73		    TP_ARGS(event1, event2),
    74	
    75		    TP_STRUCT__entry(
    76				     __field(u64, event1)
    77				     __field(u64, event2)
    78				     ),
    79	
    80		    TP_fast_assign(
    81				   __entry->event1 = event1;
    82				   __entry->event2 = event2;
    83				   ),
    84	
    85		    TP_printk("event1=%s, event2=%s",
  > 86			      show_irq_flags(__entry->event1),
    87			      show_irq_flags(__entry->event2))
    88	);
    89	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff mbox series

Patch

diff --git a/drivers/usb/typec/Makefile b/drivers/usb/typec/Makefile
index d03b48c4b864..27aa12129190 100644
--- a/drivers/usb/typec/Makefile
+++ b/drivers/usb/typec/Makefile
@@ -1,4 +1,7 @@ 
 # SPDX-License-Identifier: GPL-2.0
+# define_trace.h needs to know how to find our header
+CFLAGS_tps6598x.o		:= -I$(src)
+
 obj-$(CONFIG_TYPEC)		+= typec.o
 typec-y				:= class.o mux.o bus.o
 obj-$(CONFIG_TYPEC)		+= altmodes/
diff --git a/drivers/usb/typec/tps6598x.c b/drivers/usb/typec/tps6598x.c
index 6e6ef6317523..bc34b35e909f 100644
--- a/drivers/usb/typec/tps6598x.c
+++ b/drivers/usb/typec/tps6598x.c
@@ -6,6 +6,8 @@ 
  * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
  */
 
+#include "tps6598x.h"
+
 #include <linux/i2c.h>
 #include <linux/acpi.h>
 #include <linux/module.h>
@@ -15,6 +17,9 @@ 
 #include <linux/usb/typec.h>
 #include <linux/usb/role.h>
 
+#define CREATE_TRACE_POINTS
+#include "tps6598x_trace.h"
+
 /* Register offsets */
 #define TPS_REG_VID			0x00
 #define TPS_REG_MODE			0x03
@@ -32,9 +37,6 @@ 
 #define TPS_REG_POWER_STATUS		0x3f
 #define TPS_REG_RX_IDENTITY_SOP		0x48
 
-/* TPS_REG_INT_* bits */
-#define TPS_REG_INT_PLUG_EVENT		BIT(3)
-
 /* TPS_REG_STATUS bits */
 #define TPS_STATUS_PLUG_PRESENT		BIT(0)
 #define TPS_STATUS_ORIENTATION		BIT(4)
@@ -428,6 +430,7 @@  static irqreturn_t tps6598x_interrupt(int irq, void *data)
 		dev_err(tps->dev, "%s: failed to read events\n", __func__);
 		goto err_unlock;
 	}
+	trace_tps6598x_irq(event1, event2);
 
 	ret = tps6598x_read32(tps, TPS_REG_STATUS, &status);
 	if (ret) {
diff --git a/drivers/usb/typec/tps6598x.h b/drivers/usb/typec/tps6598x.h
new file mode 100644
index 000000000000..3040cfdd2b8f
--- /dev/null
+++ b/drivers/usb/typec/tps6598x.h
@@ -0,0 +1,61 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Driver for TI TPS6598x USB Power Delivery controller family
+ *
+ * Copyright (C) 2017, Intel Corporation
+ * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
+ */
+
+#ifndef __TPS6598X_H__
+#define __TPS6598X_H__
+
+
+/* TPS_REG_INT_* bits */
+#define TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM		BIT(27+32)
+#define TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM		BIT(26+32)
+#define TPS_REG_INT_USER_VID_ALT_MODE_EXIT		BIT(25+32)
+#define TPS_REG_INT_USER_VID_ALT_MODE_ENTERED		BIT(24+32)
+#define TPS_REG_INT_EXIT_MODES_COMPLETE			BIT(20+32)
+#define TPS_REG_INT_DISCOVER_MODES_COMPLETE		BIT(19+32)
+#define TPS_REG_INT_VDM_MSG_SENT			BIT(18+32)
+#define TPS_REG_INT_VDM_ENTERED_MODE			BIT(17+32)
+#define TPS_REG_INT_ERROR_UNABLE_TO_SOURCE		BIT(14+32)
+#define TPS_REG_INT_SRC_TRANSITION			BIT(10+32)
+#define TPS_REG_INT_ERROR_DISCHARGE_FAILED		BIT(9+32)
+#define TPS_REG_INT_ERROR_MESSAGE_DATA			BIT(7+32)
+#define TPS_REG_INT_ERROR_PROTOCOL_ERROR		BIT(6+32)
+#define TPS_REG_INT_ERROR_MISSING_GET_CAP_MESSAGE	BIT(4+32)
+#define TPS_REG_INT_ERROR_POWER_EVENT_OCCURRED		BIT(3+32)
+#define TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER		BIT(2+32)
+#define TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR		BIT(1+32)
+#define TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE		BIT(0+32)
+#define TPS_REG_INT_CMD2_COMPLETE			BIT(31)
+#define TPS_REG_INT_CMD1_COMPLETE			BIT(30)
+#define TPS_REG_INT_ADC_HIGH_THRESHOLD			BIT(29)
+#define TPS_REG_INT_ADC_LOW_THRESHOLD			BIT(28)
+#define TPS_REG_INT_PD_STATUS_UPDATE			BIT(27)
+#define TPS_REG_INT_STATUS_UPDATE			BIT(26)
+#define TPS_REG_INT_DATA_STATUS_UPDATE			BIT(25)
+#define TPS_REG_INT_POWER_STATUS_UPDATE			BIT(24)
+#define TPS_REG_INT_PP_SWITCH_CHANGED			BIT(23)
+#define TPS_REG_INT_HIGH_VOLTAGE_WARNING		BIT(22)
+#define TPS_REG_INT_USB_HOST_PRESENT_NO_LONGER		BIT(21)
+#define TPS_REG_INT_USB_HOST_PRESENT			BIT(20)
+#define TPS_REG_INT_GOTO_MIN_RECEIVED			BIT(19)
+#define TPS_REG_INT_PR_SWAP_REQUESTED			BIT(17)
+#define TPS_REG_INT_SINK_CAP_MESSAGE_READY		BIT(15)
+#define TPS_REG_INT_SOURCE_CAP_MESSAGE_READY		BIT(14)
+#define TPS_REG_INT_NEW_CONTRACT_AS_PROVIDER		BIT(13)
+#define TPS_REG_INT_NEW_CONTRACT_AS_CONSUMER		BIT(12)
+#define TPS_REG_INT_VDM_RECEIVED			BIT(11)
+#define TPS_REG_INT_ATTENTION_RECEIVED			BIT(10)
+#define TPS_REG_INT_OVERCURRENT				BIT(9)
+#define TPS_REG_INT_BIST				BIT(8)
+#define TPS_REG_INT_RDO_RECEIVED_FROM_SINK		BIT(7)
+#define TPS_REG_INT_DR_SWAP_COMPLETE			BIT(5)
+#define TPS_REG_INT_PR_SWAP_COMPLETE			BIT(4)
+#define TPS_REG_INT_PLUG_EVENT				BIT(3)
+#define TPS_REG_INT_HARD_RESET				BIT(1)
+#define TPS_REG_INT_PD_SOFT_RESET			BIT(0)
+
+#endif /* __TPS6598X_H__ */
diff --git a/drivers/usb/typec/tps6598x_trace.h b/drivers/usb/typec/tps6598x_trace.h
new file mode 100644
index 000000000000..1467f5180a50
--- /dev/null
+++ b/drivers/usb/typec/tps6598x_trace.h
@@ -0,0 +1,97 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Driver for TI TPS6598x USB Power Delivery controller family
+ *
+ * Copyright (C) 2020 Purism SPC
+ * Author: Guido Günther <agx@sigxcpu.org>
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM tps6598x
+
+#if !defined(_TPS6598x_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
+#define _TPS6598X_TRACE_H_
+
+#include "tps6598x.h"
+
+#include <linux/stringify.h>
+#include <linux/types.h>
+#include <linux/tracepoint.h>
+
+#define show_irq_flags(flags) \
+	__print_flags(flags, "|", \
+		{ TPS_REG_INT_PD_SOFT_RESET,			"PD_SOFT_RESET" }, \
+		{ TPS_REG_INT_HARD_RESET,			"HARD_RESET" }, \
+		{ TPS_REG_INT_PLUG_EVENT,			"PLUG_EVENT" }, \
+		{ TPS_REG_INT_PR_SWAP_COMPLETE,			"PR_SWAP_COMPLETE" }, \
+		{ TPS_REG_INT_DR_SWAP_COMPLETE,			"DR_SWAP_COMPLETE" }, \
+		{ TPS_REG_INT_RDO_RECEIVED_FROM_SINK,		"RDO_RECEIVED_FROM_SINK" }, \
+		{ TPS_REG_INT_BIST,				"BIST" }, \
+		{ TPS_REG_INT_OVERCURRENT,			"OVERCURRENT" }, \
+		{ TPS_REG_INT_ATTENTION_RECEIVED,		"ATTENTION_RECEIVED" }, \
+		{ TPS_REG_INT_VDM_RECEIVED,			"VDM_RECEIVED" }, \
+		{ TPS_REG_INT_NEW_CONTRACT_AS_CONSUMER,		"NEW_CONTRACT_AS_CONSUMER" }, \
+		{ TPS_REG_INT_NEW_CONTRACT_AS_PROVIDER,		"NEW_CONTRACT_AS_PROVIDER" }, \
+		{ TPS_REG_INT_SOURCE_CAP_MESSAGE_READY,		"SOURCE_CAP_MESSAGE_READY" }, \
+		{ TPS_REG_INT_SINK_CAP_MESSAGE_READY,		"SINK_CAP_MESSAGE_READY" }, \
+		{ TPS_REG_INT_PR_SWAP_REQUESTED,		"PR_SWAP_REQUESTED" }, \
+		{ TPS_REG_INT_GOTO_MIN_RECEIVED,		"GOTO_MIN_RECEIVED" }, \
+		{ TPS_REG_INT_USB_HOST_PRESENT,			"USB_HOST_PRESENT" }, \
+		{ TPS_REG_INT_USB_HOST_PRESENT_NO_LONGER,	"USB_HOST_PRESENT_NO_LONGER" }, \
+		{ TPS_REG_INT_HIGH_VOLTAGE_WARNING,		"HIGH_VOLTAGE_WARNING" }, \
+		{ TPS_REG_INT_PP_SWITCH_CHANGED,		"PP_SWITCH_CHANGED" }, \
+		{ TPS_REG_INT_POWER_STATUS_UPDATE,		"POWER_STATUS_UPDATE" }, \
+		{ TPS_REG_INT_DATA_STATUS_UPDATE,		"DATA_STATUS_UPDATE" }, \
+		{ TPS_REG_INT_STATUS_UPDATE,			"STATUS_UPDATE" }, \
+		{ TPS_REG_INT_PD_STATUS_UPDATE,			"PD_STATUS_UPDATE" }, \
+		{ TPS_REG_INT_ADC_LOW_THRESHOLD,		"ADC_LOW_THRESHOLD" }, \
+		{ TPS_REG_INT_ADC_HIGH_THRESHOLD,		"ADC_HIGH_THRESHOLD" }, \
+		{ TPS_REG_INT_CMD1_COMPLETE,			"CMD1_COMPLETE" }, \
+		{ TPS_REG_INT_CMD2_COMPLETE,			"CMD2_COMPLETE" }, \
+		{ TPS_REG_INT_ERROR_DEVICE_INCOMPATIBLE,	"ERROR_DEVICE_INCOMPATIBLE" }, \
+		{ TPS_REG_INT_ERROR_CANNOT_PROVIDE_PWR,		"ERROR_CANNOT_PROVIDE_PWR" }, \
+		{ TPS_REG_INT_ERROR_CAN_PROVIDE_PWR_LATER,	"ERROR_CAN_PROVIDE_PWR_LATER" }, \
+		{ TPS_REG_INT_ERROR_POWER_EVENT_OCCURRED,	"ERROR_POWER_EVENT_OCCURRED" }, \
+		{ TPS_REG_INT_ERROR_MISSING_GET_CAP_MESSAGE,	"ERROR_MISSING_GET_CAP_MESSAGE" }, \
+		{ TPS_REG_INT_ERROR_PROTOCOL_ERROR,		"ERROR_PROTOCOL_ERROR" }, \
+		{ TPS_REG_INT_ERROR_MESSAGE_DATA,		"ERROR_MESSAGE_DATA" }, \
+		{ TPS_REG_INT_ERROR_DISCHARGE_FAILED,		"ERROR_DISCHARGE_FAILED" }, \
+		{ TPS_REG_INT_SRC_TRANSITION,			"SRC_TRANSITION" }, \
+		{ TPS_REG_INT_ERROR_UNABLE_TO_SOURCE,		"ERROR_UNABLE_TO_SOURCE" }, \
+		{ TPS_REG_INT_VDM_ENTERED_MODE,			"VDM_ENTERED_MODE" }, \
+		{ TPS_REG_INT_VDM_MSG_SENT,			"VDM_MSG_SENT" }, \
+		{ TPS_REG_INT_DISCOVER_MODES_COMPLETE,		"DISCOVER_MODES_COMPLETE" }, \
+		{ TPS_REG_INT_EXIT_MODES_COMPLETE,		"EXIT_MODES_COMPLETE" }, \
+		{ TPS_REG_INT_USER_VID_ALT_MODE_ENTERED,	"USER_VID_ALT_MODE_ENTERED" }, \
+		{ TPS_REG_INT_USER_VID_ALT_MODE_EXIT,		"USER_VID_ALT_MODE_EXIT" }, \
+		{ TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM,	"USER_VID_ALT_MODE_ATTN_VDM" }, \
+		{ TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM,	"USER_VID_ALT_MODE_OTHER_VDM" })
+
+TRACE_EVENT(tps6598x_irq,
+	    TP_PROTO(u64 event1,
+		     u64 event2),
+	    TP_ARGS(event1, event2),
+
+	    TP_STRUCT__entry(
+			     __field(u64, event1)
+			     __field(u64, event2)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->event1 = event1;
+			   __entry->event2 = event2;
+			   ),
+
+	    TP_printk("event1=%s, event2=%s",
+		      show_irq_flags(__entry->event1),
+		      show_irq_flags(__entry->event2))
+);
+
+#endif /* _TPS6598X_TRACE_H_ */
+
+/* This part must be outside protection */
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_FILE tps6598x_trace
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH .
+#include <trace/define_trace.h>