linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/4] usb: typec: tps6598x: Add IRQ flag and register tracing
@ 2021-02-11 15:51 Guido Günther
  2021-02-11 15:51 ` [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events Guido Günther
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Guido Günther @ 2021-02-11 15:51 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-kernel, linux-usb


This series adds tracing events for the chips IRQ and registers that are useful
to figure out the current data and power status. This came about since
diagnosing why a certain usb-c hub or dp-alt-mode adapter fails is hard with
the information in /sys/class/typec alone since this does not have a timeline
of events (and we don't want every typec user having to also buy a PD
analyzer). With this series debugging these kinds of things starts to become
fun:

   # echo 1 > /sys/kernel/debug/tracing/events/tps6598x/enable
   # cat /sys/kernel/debug/tracing/trace_pipe
   irq/79-0-003f-526     [003] ....   512.717871: tps6598x_irq: event1=PLUG_EVENT|DATA_STATUS_UPDATE|STATUS_UPDATE, event2=
   irq/79-0-003f-526     [003] ....   512.722408: tps6598x_status: conn: conn-Ra, pp_5v0: off, pp_hv: off, pp_ext: off, pp_cable: off, pwr-src: vin-3p3, vbus: vSafe0V, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE
   irq/79-0-003f-526     [003] ....   512.727127: tps6598x_data_status: DATA_CONNECTION|USB2_CONNECTION|USB3_CONNECTION
   irq/79-0-003f-526     [003] ....   512.769571: tps6598x_irq: event1=PP_SWITCH_CHANGED|STATUS_UPDATE, event2=
   irq/79-0-003f-526     [003] ....   512.773380: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: vSafe0V, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   512.872450: tps6598x_irq: event1=POWER_STATUS_UPDATE|PD_STATUS_UPDATE, event2=
   irq/79-0-003f-526     [003] ....   512.876311: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: vSafe0V, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   512.880237: tps6598x_power_status: conn: 1, pwr-role: source, typec: usb, bc: sdp
   irq/79-0-003f-526     [003] ....   513.072682: tps6598x_irq: event1=STATUS_UPDATE, event2=
   irq/79-0-003f-526     [003] ....   513.076390: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: vSafe5V, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   513.090676: tps6598x_irq: event1=ERROR_CANNOT_PROVIDE_PWR, event2=
   irq/79-0-003f-526     [003] ....   513.094368: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: vSafe5V, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   513.109606: tps6598x_irq: event1=NEW_CONTRACT_AS_PROVIDER|POWER_STATUS_UPDATE|STATUS_UPDATE|SRC_TRANSITION, event2=
   irq/79-0-003f-526     [003] ....   513.113777: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: pd, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   513.117475: tps6598x_power_status: conn: 1, pwr-role: source, typec: pd, bc: sdp
   irq/79-0-003f-526     [003] ....   513.137469: tps6598x_irq: event1=VDM_RECEIVED, event2=
   irq/79-0-003f-526     [003] ....   513.141570: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: pd, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   513.281926: tps6598x_irq: event1=VDM_RECEIVED, event2=
   irq/79-0-003f-526     [003] ....   513.285638: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: pd, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   513.300515: tps6598x_irq: event1=VDM_RECEIVED|DATA_STATUS_UPDATE, event2=
   irq/79-0-003f-526     [003] ....   513.304226: tps6598x_status: conn: conn-Ra, pp_5v0: out, pp_hv: off, pp_ext: off, pp_cable: in, pwr-src: vin-3p3, vbus: pd, usb-host: no, legacy: no, flags: PLUG_PRESENT|PORTROLE|DATAROLE|VCONN
   irq/79-0-003f-526     [003] ....   513.308302: tps6598x_data_status: DATA_CONNECTION|USB2_CONNECTION|USB3_CONNECTION|DP_CONNECTION, DP pinout D

It should not impose any problems for firmwares that don't have IRQs for the
registers enabled. The trace will then just be missing those events.

Patch is against next-20210210.



Guido Günther (4):
  usb: typec: tps6598x: Add trace event for IRQ events
  usb: typec: tps6598x: Add trace event for status register
  usb: typec: tps6598x: Add trace event for power status register
  usb: typec: tps6598x: Add trace event for data status

 drivers/usb/typec/Makefile         |   3 +
 drivers/usb/typec/tps6598x.c       |  66 ++++---
 drivers/usb/typec/tps6598x.h       | 182 +++++++++++++++++++
 drivers/usb/typec/tps6598x_trace.h | 283 +++++++++++++++++++++++++++++
 4 files changed, 508 insertions(+), 26 deletions(-)
 create mode 100644 drivers/usb/typec/tps6598x.h
 create mode 100644 drivers/usb/typec/tps6598x_trace.h

-- 
2.30.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events
  2021-02-11 15:51 [PATCH v1 0/4] usb: typec: tps6598x: Add IRQ flag and register tracing Guido Günther
@ 2021-02-11 15:51 ` Guido Günther
  2021-02-11 21:21   ` kernel test robot
  2021-02-11 15:51 ` [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register Guido Günther
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Guido Günther @ 2021-02-11 15:51 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-kernel, linux-usb

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

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>
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register
  2021-02-11 15:51 [PATCH v1 0/4] usb: typec: tps6598x: Add IRQ flag and register tracing Guido Günther
  2021-02-11 15:51 ` [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events Guido Günther
@ 2021-02-11 15:51 ` Guido Günther
  2021-02-11 18:04   ` kernel test robot
  2021-02-11 22:02   ` kernel test robot
  2021-02-11 15:51 ` [PATCH v1 3/4] usb: typec: tps6598x: Add trace event for power " Guido Günther
  2021-02-11 15:51 ` [PATCH v1 4/4] usb: typec: tps6598x: Add trace event for data status Guido Günther
  3 siblings, 2 replies; 9+ messages in thread
From: Guido Günther @ 2021-02-11 15:51 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-kernel, linux-usb

This allows to trace status information which helps to debug problems
with role switching, etc.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 drivers/usb/typec/tps6598x.c       | 26 ++++-----
 drivers/usb/typec/tps6598x.h       | 66 +++++++++++++++++++++
 drivers/usb/typec/tps6598x_trace.h | 94 ++++++++++++++++++++++++++++++
 3 files changed, 171 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/typec/tps6598x.c b/drivers/usb/typec/tps6598x.c
index bc34b35e909f..559aa175f948 100644
--- a/drivers/usb/typec/tps6598x.c
+++ b/drivers/usb/typec/tps6598x.c
@@ -37,13 +37,6 @@
 #define TPS_REG_POWER_STATUS		0x3f
 #define TPS_REG_RX_IDENTITY_SOP		0x48
 
-/* TPS_REG_STATUS bits */
-#define TPS_STATUS_PLUG_PRESENT		BIT(0)
-#define TPS_STATUS_ORIENTATION		BIT(4)
-#define TPS_STATUS_PORTROLE(s)		(!!((s) & BIT(5)))
-#define TPS_STATUS_DATAROLE(s)		(!!((s) & BIT(6)))
-#define TPS_STATUS_VCONN(s)		(!!((s) & BIT(7)))
-
 /* TPS_REG_SYSTEM_CONF bits */
 #define TPS_SYSCONF_PORTINFO(c)		((c) & 7)
 
@@ -258,9 +251,9 @@ static int tps6598x_connect(struct tps6598x *tps, u32 status)
 	}
 
 	typec_set_pwr_opmode(tps->port, mode);
-	typec_set_pwr_role(tps->port, TPS_STATUS_PORTROLE(status));
-	typec_set_vconn_role(tps->port, TPS_STATUS_VCONN(status));
-	tps6598x_set_data_role(tps, TPS_STATUS_DATAROLE(status), true);
+	typec_set_pwr_role(tps->port, TPS_STATUS_TO_TYPEC_PORTROLE(status));
+	typec_set_vconn_role(tps->port, TPS_STATUS_TO_TYPEC_VCONN(status));
+	tps6598x_set_data_role(tps, TPS_STATUS_TO_TYPEC_DATAROLE(status), true);
 
 	tps->partner = typec_register_partner(tps->port, &desc);
 	if (IS_ERR(tps->partner))
@@ -280,9 +273,10 @@ static void tps6598x_disconnect(struct tps6598x *tps, u32 status)
 		typec_unregister_partner(tps->partner);
 	tps->partner = NULL;
 	typec_set_pwr_opmode(tps->port, TYPEC_PWR_MODE_USB);
-	typec_set_pwr_role(tps->port, TPS_STATUS_PORTROLE(status));
-	typec_set_vconn_role(tps->port, TPS_STATUS_VCONN(status));
-	tps6598x_set_data_role(tps, TPS_STATUS_DATAROLE(status), false);
+	typec_set_pwr_role(tps->port, TPS_STATUS_TO_TYPEC_PORTROLE(status));
+	typec_set_vconn_role(tps->port, TPS_STATUS_TO_TYPEC_VCONN(status));
+	tps6598x_set_data_role(tps, TPS_STATUS_TO_TYPEC_DATAROLE(status), false);
+
 	power_supply_changed(tps->psy);
 }
 
@@ -366,7 +360,7 @@ static int tps6598x_dr_set(struct typec_port *port, enum typec_data_role role)
 	if (ret)
 		goto out_unlock;
 
-	if (role != TPS_STATUS_DATAROLE(status)) {
+	if (role != TPS_STATUS_TO_TYPEC_DATAROLE(status)) {
 		ret = -EPROTO;
 		goto out_unlock;
 	}
@@ -396,7 +390,7 @@ static int tps6598x_pr_set(struct typec_port *port, enum typec_role role)
 	if (ret)
 		goto out_unlock;
 
-	if (role != TPS_STATUS_PORTROLE(status)) {
+	if (role != TPS_STATUS_TO_TYPEC_PORTROLE(status)) {
 		ret = -EPROTO;
 		goto out_unlock;
 	}
@@ -437,6 +431,7 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data)
 		dev_err(tps->dev, "%s: failed to read status\n", __func__);
 		goto err_clear_ints;
 	}
+	trace_tps6598x_status(status);
 
 	/* Handle plug insert or removal */
 	if ((event1 | event2) & TPS_REG_INT_PLUG_EVENT) {
@@ -612,6 +607,7 @@ static int tps6598x_probe(struct i2c_client *client)
 	ret = tps6598x_read32(tps, TPS_REG_STATUS, &status);
 	if (ret < 0)
 		return ret;
+	trace_tps6598x_status(status);
 
 	ret = tps6598x_read32(tps, TPS_REG_SYSTEM_CONF, &conf);
 	if (ret < 0)
diff --git a/drivers/usb/typec/tps6598x.h b/drivers/usb/typec/tps6598x.h
index 3040cfdd2b8f..ceea4de51021 100644
--- a/drivers/usb/typec/tps6598x.h
+++ b/drivers/usb/typec/tps6598x.h
@@ -9,6 +9,72 @@
 #ifndef __TPS6598X_H__
 #define __TPS6598X_H__
 
+/* TPS_REG_STATUS bits */
+#define TPS_STATUS_PLUG_PRESENT		BIT(0)
+#define TPS_STATUS_PLUG_UPSIDE_DOWN	BIT(4)
+#define TPS_STATUS_PORTROLE		BIT(5)
+#define TPS_STATUS_TO_TYPEC_PORTROLE(s) (!!((s) & TPS_STATUS_PORTROLE))
+#define TPS_STATUS_DATAROLE		BIT(6)
+#define TPS_STATUS_TO_TYPEC_DATAROLE(s)	(!!((s) & TPS_STATUS_DATAROLE))
+#define TPS_STATUS_VCONN		BIT(7)
+#define TPS_STATUS_TO_TYPEC_VCONN(s)	(!!((s) & TPS_STATUS_VCONN))
+#define TPS_STATUS_OVERCURRENT		BIT(16)
+#define TPS_STATUS_GOTO_MIN_ACTIVE	BIT(26)
+#define TPS_STATUS_BIST			BIT(27)
+#define TPS_STATUS_HIGH_VOLAGE_WARNING	BIT(28)
+#define TPS_STATUS_HIGH_LOW_VOLTAGE_WARNING BIT(29)
+
+#define TPS_STATUS_CONN_STATE_MASK		GENMASK(3, 1)
+#define TPS_STATUS_CONN_STATE(x)		FIELD_GET(TPS_STATUS_CONN_STATE_MASK, (x))
+#define TPS_STATUS_PP_5V0_SWITCH_MASK		GENMASK(9, 8)
+#define TPS_STATUS_PP_5V0_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_5V0_SWITCH_MASK, (x))
+#define TPS_STATUS_PP_HV_SWITCH_MASK		GENMASK(11, 10)
+#define TPS_STATUS_PP_HV_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_HV_SWITCH_MASK, (x))
+#define TPS_STATUS_PP_EXT_SWITCH_MASK		GENMASK(13, 12)
+#define TPS_STATUS_PP_EXT_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_EXT_SWITCH_MASK, (x))
+#define TPS_STATUS_PP_CABLE_SWITCH_MASK		GENMASK(15, 14)
+#define TPS_STATUS_PP_CABLE_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_CABLE_SWITCH_MASK, (x))
+#define TPS_STATUS_POWER_SOURCE_MASK		GENMASK(19, 18)
+#define TPS_STATUS_POWER_SOURCE(x)		FIELD_GET(TPS_STATUS_POWER_SOURCE_MASK, (x))
+#define TPS_STATUS_VBUS_STATUS_MASK		GENMASK(21, 20)
+#define TPS_STATUS_VBUS_STATUS(x)		FIELD_GET(TPS_STATUS_VBUS_STATUS_MASK, (x))
+#define TPS_STATUS_USB_HOST_PRESENT_MASK	GENMASK(23, 22)
+#define TPS_STATUS_USB_HOST_PRESENT(x)		FIELD_GET(TPS_STATUS_USB_HOST_PRESENT_MASK, (x))
+#define TPS_STATUS_LEGACY_MASK			GENMASK(25, 24)
+#define TPS_STATUS_LEGACY(x)			FIELD_GET(TPS_STATUS_LEGACY_MASK, (x))
+
+#define TPS_STATUS_CONN_STATE_NO_CONN		0
+#define TPS_STATUS_CONN_STATE_DISABLED		1
+#define TPS_STATUS_CONN_STATE_AUDIO_CONN	2
+#define TPS_STATUS_CONN_STATE_DEBUG_CONN	3
+#define TPS_STATUS_CONN_STATE_NO_CONN_R_A	4
+#define TPS_STATUS_CONN_STATE_RESERVED		5
+#define TPS_STATUS_CONN_STATE_CONN_NO_R_A	6
+#define TPS_STATUS_CONN_STATE_CONN_WITH_R_A	7
+
+#define TPS_STATUS_PP_SWITCH_STATE_DISABLED	0
+#define TPS_STATUS_PP_SWITCH_STATE_FAULT	1
+#define TPS_STATUS_PP_SWITCH_STATE_OUT		2
+#define TPS_STATUS_PP_SWITCH_STATE_IN		3
+
+#define TPS_STATUS_POWER_SOURCE_UNKNOWN		0
+#define TPS_STATUS_POWER_SOURCE_VIN_3P3		1
+#define TPS_STATUS_POWER_SOURCE_DEAD_BAT	2
+#define TPS_STATUS_POWER_SOURCE_VBUS		3
+
+#define TPS_STATUS_VBUS_STATUS_VSAFE0V		0
+#define TPS_STATUS_VBUS_STATUS_VSAFE5V		1
+#define TPS_STATUS_VBUS_STATUS_PD		2
+#define TPS_STATUS_VBUS_STATUS_FAULT		3
+
+#define TPS_STATUS_USB_HOST_PRESENT_NO		0
+#define TPS_STATUS_USB_HOST_PRESENT_PD_NO_USB	1
+#define TPS_STATUS_USB_HOST_PRESENT_NO_PD	2
+#define TPS_STATUS_USB_HOST_PRESENT_PD_USB	3
+
+#define TPS_STATUS_LEGACY_NO			0
+#define TPS_STATUS_LEGACY_SINK			1
+#define TPS_STATUS_LEGACY_SOURCE		2
 
 /* TPS_REG_INT_* bits */
 #define TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM		BIT(27+32)
diff --git a/drivers/usb/typec/tps6598x_trace.h b/drivers/usb/typec/tps6598x_trace.h
index 1467f5180a50..5aa0aa4d5209 100644
--- a/drivers/usb/typec/tps6598x_trace.h
+++ b/drivers/usb/typec/tps6598x_trace.h
@@ -67,6 +67,73 @@
 		{ 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" })
 
+#define TPS6598X_STATUS_FLAGS_MASK (GENMASK(31, 0) ^ (TPS_STATUS_CONN_STATE_MASK | \
+						      TPS_STATUS_PP_5V0_SWITCH_MASK | \
+						      TPS_STATUS_PP_HV_SWITCH_MASK | \
+						      TPS_STATUS_PP_EXT_SWITCH_MASK | \
+						      TPS_STATUS_PP_CABLE_SWITCH_MASK | \
+						      TPS_STATUS_POWER_SOURCE_MASK | \
+						      TPS_STATUS_VBUS_STATUS_MASK | \
+						      TPS_STATUS_USB_HOST_PRESENT_MASK | \
+						      TPS_STATUS_LEGACY_MASK))
+
+#define show_status_conn_state(status) \
+	__print_symbolic(TPS_STATUS_CONN_STATE((status)), \
+		{ TPS_STATUS_CONN_STATE_CONN_WITH_R_A,	"conn-Ra"  }, \
+		{ TPS_STATUS_CONN_STATE_CONN_NO_R_A,	"conn-no-Ra" }, \
+		{ TPS_STATUS_CONN_STATE_NO_CONN_R_A,	"no-conn-Ra" },	\
+		{ TPS_STATUS_CONN_STATE_DEBUG_CONN,	"debug"	 }, \
+		{ TPS_STATUS_CONN_STATE_AUDIO_CONN,	"audio"	 }, \
+		{ TPS_STATUS_CONN_STATE_DISABLED,	"disabled" }, \
+		{ TPS_STATUS_CONN_STATE_NO_CONN,	"no-conn" })
+
+#define show_status_pp_switch_state(status) \
+	__print_symbolic(status, \
+		{ TPS_STATUS_PP_SWITCH_STATE_IN,	"in" }, \
+		{ TPS_STATUS_PP_SWITCH_STATE_OUT,	"out" }, \
+		{ TPS_STATUS_PP_SWITCH_STATE_FAULT,	"fault" }, \
+		{ TPS_STATUS_PP_SWITCH_STATE_DISABLED,	"off" })
+
+#define show_status_power_sources(status) \
+	__print_symbolic(TPS_STATUS_POWER_SOURCE(status), \
+		{ TPS_STATUS_POWER_SOURCE_VBUS,		"vbus" }, \
+		{ TPS_STATUS_POWER_SOURCE_VIN_3P3,	"vin-3p3" }, \
+		{ TPS_STATUS_POWER_SOURCE_DEAD_BAT,	"dead-battery" }, \
+		{ TPS_STATUS_POWER_SOURCE_UNKNOWN,	"unknown" })
+
+#define show_status_vbus_status(status) \
+	__print_symbolic(TPS_STATUS_VBUS_STATUS(status), \
+		{ TPS_STATUS_VBUS_STATUS_VSAFE0V,	"vSafe0V" }, \
+		{ TPS_STATUS_VBUS_STATUS_VSAFE5V,	"vSafe5V" }, \
+		{ TPS_STATUS_VBUS_STATUS_PD,		"pd" }, \
+		{ TPS_STATUS_VBUS_STATUS_FAULT,		"fault" })
+
+#define show_status_usb_host_present(status) \
+	__print_symbolic(TPS_STATUS_USB_HOST_PRESENT(status), \
+		{ TPS_STATUS_USB_HOST_PRESENT_PD_USB,	 "pd-usb" }, \
+		{ TPS_STATUS_USB_HOST_PRESENT_NO_PD,	 "no-pd" }, \
+		{ TPS_STATUS_USB_HOST_PRESENT_PD_NO_USB, "pd-no-usb" }, \
+		{ TPS_STATUS_USB_HOST_PRESENT_NO,	 "no" })
+
+#define show_status_legacy(status) \
+	__print_symbolic(TPS_STATUS_LEGACY(status),	     \
+		{ TPS_STATUS_LEGACY_SOURCE,		 "source" }, \
+		{ TPS_STATUS_LEGACY_SINK,		 "sink" }, \
+		{ TPS_STATUS_LEGACY_NO,			 "no" })
+
+#define show_status_flags(flags) \
+	__print_flags((flags & TPS6598X_STATUS_FLAGS_MASK), "|", \
+		      { TPS_STATUS_PLUG_PRESENT,	"PLUG_PRESENT" }, \
+		      { TPS_STATUS_PLUG_UPSIDE_DOWN,	"UPSIDE_DOWN" }, \
+		      { TPS_STATUS_PORTROLE,		"PORTROLE" }, \
+		      { TPS_STATUS_DATAROLE,		"DATAROLE" }, \
+		      { TPS_STATUS_VCONN,		"VCONN" }, \
+		      { TPS_STATUS_OVERCURRENT,		"OVERCURRENT" }, \
+		      { TPS_STATUS_GOTO_MIN_ACTIVE,	"GOTO_MIN_ACTIVE" }, \
+		      { TPS_STATUS_BIST,		"BIST" }, \
+		      { TPS_STATUS_HIGH_VOLAGE_WARNING,	"HIGH_VOLAGE_WARNING" }, \
+		      { TPS_STATUS_HIGH_LOW_VOLTAGE_WARNING, "HIGH_LOW_VOLTAGE_WARNING" })
+
 TRACE_EVENT(tps6598x_irq,
 	    TP_PROTO(u64 event1,
 		     u64 event2),
@@ -87,6 +154,33 @@ TRACE_EVENT(tps6598x_irq,
 		      show_irq_flags(__entry->event2))
 );
 
+TRACE_EVENT(tps6598x_status,
+	    TP_PROTO(u32 status),
+	    TP_ARGS(status),
+
+	    TP_STRUCT__entry(
+			     __field(u32, status)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->status = status;
+			   ),
+
+	    TP_printk("conn: %s, pp_5v0: %s, pp_hv: %s, pp_ext: %s, pp_cable: %s, "
+		      "pwr-src: %s, vbus: %s, usb-host: %s, legacy: %s, flags: %s",
+		      show_status_conn_state(__entry->status),
+		      show_status_pp_switch_state(TPS_STATUS_PP_5V0_SWITCH(__entry->status)),
+		      show_status_pp_switch_state(TPS_STATUS_PP_HV_SWITCH(__entry->status)),
+		      show_status_pp_switch_state(TPS_STATUS_PP_EXT_SWITCH(__entry->status)),
+		      show_status_pp_switch_state(TPS_STATUS_PP_CABLE_SWITCH(__entry->status)),
+		      show_status_power_sources(__entry->status),
+		      show_status_vbus_status(__entry->status),
+		      show_status_usb_host_present(__entry->status),
+		      show_status_legacy(__entry->status),
+		      show_status_flags(__entry->status)
+		    )
+);
+
 #endif /* _TPS6598X_TRACE_H_ */
 
 /* This part must be outside protection */
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 3/4] usb: typec: tps6598x: Add trace event for power status register
  2021-02-11 15:51 [PATCH v1 0/4] usb: typec: tps6598x: Add IRQ flag and register tracing Guido Günther
  2021-02-11 15:51 ` [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events Guido Günther
  2021-02-11 15:51 ` [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register Guido Günther
@ 2021-02-11 15:51 ` Guido Günther
  2021-02-11 22:59   ` kernel test robot
  2021-02-11 15:51 ` [PATCH v1 4/4] usb: typec: tps6598x: Add trace event for data status Guido Günther
  3 siblings, 1 reply; 9+ messages in thread
From: Guido Günther @ 2021-02-11 15:51 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-kernel, linux-usb

Together with the PD status register this is vital for debugging power
negotiations at runtime.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 drivers/usb/typec/tps6598x.c       | 19 +++++++++------
 drivers/usb/typec/tps6598x.h       | 19 +++++++++++++++
 drivers/usb/typec/tps6598x_trace.h | 38 ++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/typec/tps6598x.c b/drivers/usb/typec/tps6598x.c
index 559aa175f948..3e6ad3ba7fc8 100644
--- a/drivers/usb/typec/tps6598x.c
+++ b/drivers/usb/typec/tps6598x.c
@@ -50,11 +50,6 @@ enum {
 	TPS_PORTINFO_SOURCE,
 };
 
-/* TPS_REG_POWER_STATUS bits */
-#define TPS_POWER_STATUS_CONNECTION	BIT(0)
-#define TPS_POWER_STATUS_SOURCESINK	BIT(1)
-#define TPS_POWER_STATUS_PWROPMODE(p)	(((p) & GENMASK(3, 2)) >> 2)
-
 /* TPS_REG_RX_IDENTITY_SOP */
 struct tps6598x_rx_identity_reg {
 	u8 status;
@@ -414,6 +409,7 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data)
 	u64 event1;
 	u64 event2;
 	u32 status;
+	u16 pwr_status;
 	int ret;
 
 	mutex_lock(&tps->lock);
@@ -433,6 +429,15 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data)
 	}
 	trace_tps6598x_status(status);
 
+	if ((event1 | event2) & TPS_REG_INT_POWER_STATUS_UPDATE) {
+		ret = tps6598x_read16(tps, TPS_REG_POWER_STATUS, &pwr_status);
+		if (ret < 0) {
+			dev_err(tps->dev, "failed to read power status: %d\n", ret);
+			goto err_clear_ints;
+		}
+		trace_tps6598x_power_status(pwr_status);
+	}
+
 	/* Handle plug insert or removal */
 	if ((event1 | event2) & TPS_REG_INT_PLUG_EVENT) {
 		if (status & TPS_STATUS_PLUG_PRESENT) {
@@ -497,8 +502,8 @@ static int tps6598x_psy_get_online(struct tps6598x *tps,
 	if (ret < 0)
 		return ret;
 
-	if ((pwr_status & TPS_POWER_STATUS_CONNECTION) &&
-	    (pwr_status & TPS_POWER_STATUS_SOURCESINK)) {
+	if (TPS_POWER_STATUS_CONNECTION(pwr_status) &&
+	    TPS_POWER_STATUS_SOURCESINK(pwr_status)) {
 		val->intval = 1;
 	} else {
 		val->intval = 0;
diff --git a/drivers/usb/typec/tps6598x.h b/drivers/usb/typec/tps6598x.h
index ceea4de51021..a2b76ee26f53 100644
--- a/drivers/usb/typec/tps6598x.h
+++ b/drivers/usb/typec/tps6598x.h
@@ -124,4 +124,23 @@
 #define TPS_REG_INT_HARD_RESET				BIT(1)
 #define TPS_REG_INT_PD_SOFT_RESET			BIT(0)
 
+/* TPS_REG_POWER_STATUS bits */
+#define TPS_POWER_STATUS_CONNECTION(x)  FIELD_GET(BIT(0), (x))
+#define TPS_POWER_STATUS_SOURCESINK(x)	FIELD_GET(BIT(1), (x))
+#define TPS_POWER_STATUS_BC12_DET(x)	FIELD_GET(BIT(2), (x))
+
+#define TPS_POWER_STATUS_TYPEC_CURRENT_MASK GENMASK(3, 2)
+#define TPS_POWER_STATUS_PWROPMODE(p)	    FIELD_GET(TPS_POWER_STATUS_TYPEC_CURRENT_MASK, (p))
+#define TPS_POWER_STATUS_BC12_STATUS_MASK   GENMASK(6, 5)
+#define TPS_POWER_STATUS_BC12_STATUS(p)	    FIELD_GET(TPS_POWER_STATUS_BC12_STATUS_MASK, (p))
+
+#define TPS_POWER_STATUS_TYPEC_CURRENT_USB     0
+#define TPS_POWER_STATUS_TYPEC_CURRENT_1A5     1
+#define TPS_POWER_STATUS_TYPEC_CURRENT_3A0     2
+#define TPS_POWER_STATUS_TYPEC_CURRENT_PD      3
+
+#define TPS_POWER_STATUS_BC12_STATUS_SDP 0
+#define TPS_POWER_STATUS_BC12_STATUS_CDP 2
+#define TPS_POWER_STATUS_BC12_STATUS_DCP 3
+
 #endif /* __TPS6598X_H__ */
diff --git a/drivers/usb/typec/tps6598x_trace.h b/drivers/usb/typec/tps6598x_trace.h
index 5aa0aa4d5209..c15327bb7bf1 100644
--- a/drivers/usb/typec/tps6598x_trace.h
+++ b/drivers/usb/typec/tps6598x_trace.h
@@ -134,6 +134,24 @@
 		      { TPS_STATUS_HIGH_VOLAGE_WARNING,	"HIGH_VOLAGE_WARNING" }, \
 		      { TPS_STATUS_HIGH_LOW_VOLTAGE_WARNING, "HIGH_LOW_VOLTAGE_WARNING" })
 
+#define show_power_status_source_sink(power_status) \
+	__print_symbolic(TPS_POWER_STATUS_SOURCESINK(power_status), \
+		{ 1, "sink" }, \
+		{ 0, "source" })
+
+#define show_power_status_typec_status(power_status) \
+	__print_symbolic(TPS_POWER_STATUS_PWROPMODE(power_status), \
+		{ TPS_POWER_STATUS_TYPEC_CURRENT_PD,  "pd" }, \
+		{ TPS_POWER_STATUS_TYPEC_CURRENT_3A0, "3.0A" }, \
+		{ TPS_POWER_STATUS_TYPEC_CURRENT_1A5, "1.5A" }, \
+		{ TPS_POWER_STATUS_TYPEC_CURRENT_USB, "usb" })
+
+#define show_power_status_bc12_status(power_status) \
+	__print_symbolic(TPS_POWER_STATUS_BC12_STATUS(power_status), \
+		{ TPS_POWER_STATUS_BC12_STATUS_DCP, "dcp" }, \
+		{ TPS_POWER_STATUS_BC12_STATUS_CDP, "cdp" }, \
+		{ TPS_POWER_STATUS_BC12_STATUS_SDP, "sdp" })
+
 TRACE_EVENT(tps6598x_irq,
 	    TP_PROTO(u64 event1,
 		     u64 event2),
@@ -181,6 +199,26 @@ TRACE_EVENT(tps6598x_status,
 		    )
 );
 
+TRACE_EVENT(tps6598x_power_status,
+	    TP_PROTO(u16 power_status),
+	    TP_ARGS(power_status),
+
+	    TP_STRUCT__entry(
+			     __field(u16, power_status)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->power_status = power_status;
+			   ),
+
+	    TP_printk("conn: %d, pwr-role: %s, typec: %s, bc: %s",
+		      !!TPS_POWER_STATUS_CONNECTION(__entry->power_status),
+		      show_power_status_source_sink(__entry->power_status),
+		      show_power_status_typec_status(__entry->power_status),
+		      show_power_status_bc12_status(__entry->power_status)
+		    )
+);
+
 #endif /* _TPS6598X_TRACE_H_ */
 
 /* This part must be outside protection */
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 4/4] usb: typec: tps6598x: Add trace event for data status
  2021-02-11 15:51 [PATCH v1 0/4] usb: typec: tps6598x: Add IRQ flag and register tracing Guido Günther
                   ` (2 preceding siblings ...)
  2021-02-11 15:51 ` [PATCH v1 3/4] usb: typec: tps6598x: Add trace event for power " Guido Günther
@ 2021-02-11 15:51 ` Guido Günther
  3 siblings, 0 replies; 9+ messages in thread
From: Guido Günther @ 2021-02-11 15:51 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-kernel, linux-usb

This is useful to debug DP negotiation and pin assignment even
when the firmware does all the work.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 drivers/usb/typec/tps6598x.c       | 12 ++++++-
 drivers/usb/typec/tps6598x.h       | 36 ++++++++++++++++++++
 drivers/usb/typec/tps6598x_trace.h | 54 ++++++++++++++++++++++++++++++
 3 files changed, 101 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/typec/tps6598x.c b/drivers/usb/typec/tps6598x.c
index 3e6ad3ba7fc8..a4ec8e56c2b9 100644
--- a/drivers/usb/typec/tps6598x.c
+++ b/drivers/usb/typec/tps6598x.c
@@ -36,6 +36,7 @@
 #define TPS_REG_CTRL_CONF		0x29
 #define TPS_REG_POWER_STATUS		0x3f
 #define TPS_REG_RX_IDENTITY_SOP		0x48
+#define TPS_REG_DATA_STATUS		0x5f
 
 /* TPS_REG_SYSTEM_CONF bits */
 #define TPS_SYSCONF_PORTINFO(c)		((c) & 7)
@@ -408,7 +409,7 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data)
 	struct tps6598x *tps = data;
 	u64 event1;
 	u64 event2;
-	u32 status;
+	u32 status, data_status;
 	u16 pwr_status;
 	int ret;
 
@@ -438,6 +439,15 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data)
 		trace_tps6598x_power_status(pwr_status);
 	}
 
+	if ((event1 | event2) & TPS_REG_INT_DATA_STATUS_UPDATE) {
+		ret = tps6598x_read32(tps, TPS_REG_DATA_STATUS, &data_status);
+		if (ret < 0) {
+			dev_err(tps->dev, "failed to read data status: %d\n", ret);
+			goto err_clear_ints;
+		}
+		trace_tps6598x_data_status(data_status);
+	}
+
 	/* Handle plug insert or removal */
 	if ((event1 | event2) & TPS_REG_INT_PLUG_EVENT) {
 		if (status & TPS_STATUS_PLUG_PRESENT) {
diff --git a/drivers/usb/typec/tps6598x.h b/drivers/usb/typec/tps6598x.h
index a2b76ee26f53..3794d75ffada 100644
--- a/drivers/usb/typec/tps6598x.h
+++ b/drivers/usb/typec/tps6598x.h
@@ -143,4 +143,40 @@
 #define TPS_POWER_STATUS_BC12_STATUS_CDP 2
 #define TPS_POWER_STATUS_BC12_STATUS_DCP 3
 
+/* TPS_REG_DATA_STATUS bits */
+#define TPS_DATA_STATUS_DATA_CONNECTION	     BIT(0)
+#define TPS_DATA_STATUS_UPSIDE_DOWN	     BIT(1)
+#define TPS_DATA_STATUS_ACTIVE_CABLE	     BIT(2)
+#define TPS_DATA_STATUS_USB2_CONNECTION	     BIT(4)
+#define TPS_DATA_STATUS_USB3_CONNECTION	     BIT(5)
+#define TPS_DATA_STATUS_USB3_GEN2	     BIT(6)
+#define TPS_DATA_STATUS_USB_DATA_ROLE	     BIT(7)
+#define TPS_DATA_STATUS_DP_CONNECTION	     BIT(8)
+#define TPS_DATA_STATUS_DP_SINK		     BIT(9)
+#define TPS_DATA_STATUS_TBT_CONNECTION	     BIT(16)
+#define TPS_DATA_STATUS_TBT_TYPE	     BIT(17)
+#define TPS_DATA_STATUS_OPTICAL_CABLE	     BIT(18)
+#define TPS_DATA_STATUS_ACTIVE_LINK_TRAIN    BIT(20)
+#define TPS_DATA_STATUS_FORCE_LSX	     BIT(23)
+#define TPS_DATA_STATUS_POWER_MISMATCH	     BIT(24)
+
+#define TPS_DATA_STATUS_DP_PIN_ASSIGNMENT_MASK GENMASK(11, 10)
+#define TPS_DATA_STATUS_DP_PIN_ASSIGNMENT(x) \
+	FIELD_GET(TPS_DATA_STATUS_DP_PIN_ASSIGNMENT_MASK, (x))
+#define TPS_DATA_STATUS_TBT_CABLE_SPEED_MASK   GENMASK(27, 25)
+#define TPS_DATA_STATUS_TBT_CABLE_SPEED	       FIELD_GET(TPS_DATA_STATUS_TBT_CABLE_SPEED_MASK, (x))
+#define TPS_DATA_STATUS_TBT_CABLE_GEN_MASK     GENMASK(29, 28)
+#define TPS_DATA_STATUS_TBT_CABLE_GEN	       FIELD_GET(TPS_DATA_STATUS_TBT_CABLE_GEN_MASK, (x))
+
+/* Map data status to DP spec assignments */
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT(x) \
+	((TPS_DATA_STATUS_DP_PIN_ASSIGNMENT(x) << 1) | \
+		FIELD_GET(TPS_DATA_STATUS_USB3_CONNECTION, (x)))
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_E    0
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_F    BIT(0)
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_C    BIT(1)
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_D    (BIT(1) | BIT(0))
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_A    BIT(2)
+#define TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_B    (BIT(2) | BIT(1))
+
 #endif /* __TPS6598X_H__ */
diff --git a/drivers/usb/typec/tps6598x_trace.h b/drivers/usb/typec/tps6598x_trace.h
index c15327bb7bf1..0ec264bb2042 100644
--- a/drivers/usb/typec/tps6598x_trace.h
+++ b/drivers/usb/typec/tps6598x_trace.h
@@ -152,6 +152,41 @@
 		{ TPS_POWER_STATUS_BC12_STATUS_CDP, "cdp" }, \
 		{ TPS_POWER_STATUS_BC12_STATUS_SDP, "sdp" })
 
+#define TPS_DATA_STATUS_FLAGS_MASK (GENMASK(31, 0) ^ (TPS_DATA_STATUS_DP_PIN_ASSIGNMENT_MASK | \
+						      TPS_DATA_STATUS_TBT_CABLE_SPEED_MASK | \
+						      TPS_DATA_STATUS_TBT_CABLE_GEN_MASK))
+
+#define show_data_status_flags(data_status) \
+	__print_flags(data_status & TPS_DATA_STATUS_FLAGS_MASK, "|", \
+		{ TPS_DATA_STATUS_DATA_CONNECTION,	"DATA_CONNECTION" }, \
+		{ TPS_DATA_STATUS_UPSIDE_DOWN,		"DATA_UPSIDE_DOWN" }, \
+		{ TPS_DATA_STATUS_ACTIVE_CABLE,		"ACTIVE_CABLE" }, \
+		{ TPS_DATA_STATUS_USB2_CONNECTION,	"USB2_CONNECTION" }, \
+		{ TPS_DATA_STATUS_USB3_CONNECTION,	"USB3_CONNECTION" }, \
+		{ TPS_DATA_STATUS_USB3_GEN2,		"USB3_GEN2" }, \
+		{ TPS_DATA_STATUS_USB_DATA_ROLE,	"USB_DATA_ROLE" }, \
+		{ TPS_DATA_STATUS_DP_CONNECTION,	"DP_CONNECTION" }, \
+		{ TPS_DATA_STATUS_DP_SINK,		"DP_SINK" }, \
+		{ TPS_DATA_STATUS_TBT_CONNECTION,	"TBT_CONNECTION" }, \
+		{ TPS_DATA_STATUS_TBT_TYPE,		"TBT_TYPE" }, \
+		{ TPS_DATA_STATUS_OPTICAL_CABLE,	"OPTICAL_CABLE" }, \
+		{ TPS_DATA_STATUS_ACTIVE_LINK_TRAIN,	"ACTIVE_LINK_TRAIN" }, \
+		{ TPS_DATA_STATUS_FORCE_LSX,		"FORCE_LSX" }, \
+		{ TPS_DATA_STATUS_POWER_MISMATCH,	"POWER_MISMATCH" })
+
+#define show_data_status_dp_pin_assignment(data_status) \
+	__print_symbolic(TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT(data_status), \
+		{ TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_E, "E" }, \
+		{ TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_F, "F" }, \
+		{ TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_C, "C" }, \
+		{ TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_D, "D" }, \
+		{ TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_A, "A" }, \
+		{ TPS_DATA_STATUS_DP_SPEC_PIN_ASSIGNMENT_B, "B" })
+
+#define maybe_show_data_status_dp_pin_assignment(data_status) \
+	(data_status & TPS_DATA_STATUS_DP_CONNECTION ? \
+	 show_data_status_dp_pin_assignment(data_status) : "")
+
 TRACE_EVENT(tps6598x_irq,
 	    TP_PROTO(u64 event1,
 		     u64 event2),
@@ -219,6 +254,25 @@ TRACE_EVENT(tps6598x_power_status,
 		    )
 );
 
+TRACE_EVENT(tps6598x_data_status,
+	    TP_PROTO(u32 data_status),
+	    TP_ARGS(data_status),
+
+	    TP_STRUCT__entry(
+			     __field(u32, data_status)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->data_status = data_status;
+			   ),
+
+	    TP_printk("%s%s%s",
+		      show_data_status_flags(__entry->data_status),
+		      __entry->data_status & TPS_DATA_STATUS_DP_CONNECTION ? ", DP pinout " : "",
+		      maybe_show_data_status_dp_pin_assignment(__entry->data_status)
+		    )
+);
+
 #endif /* _TPS6598X_TRACE_H_ */
 
 /* This part must be outside protection */
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register
  2021-02-11 15:51 ` [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register Guido Günther
@ 2021-02-11 18:04   ` kernel test robot
  2021-02-11 22:02   ` kernel test robot
  1 sibling, 0 replies; 9+ messages in thread
From: kernel test robot @ 2021-02-11 18:04 UTC (permalink / raw)
  To: Guido Günther, Heikki Krogerus, Greg Kroah-Hartman,
	linux-kernel, linux-usb
  Cc: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 10616 bytes --]

Hi "Guido,

I love your patch! Yet something to improve:

[auto build test ERROR on usb/usb-testing]
[also build test ERROR 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: microblaze-randconfig-r026-20210209 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
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
        # https://github.com/0day-ci/linux/commit/17785e43289bc7b92db7b401cd53a37c7a9faed2
        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 17785e43289bc7b92db7b401cd53a37c7a9faed2
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=microblaze 

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

All errors (new ones prefixed by >>):

   drivers/usb/typec/./tps6598x_trace.h:137:1: note: in expansion of macro 'TRACE_EVENT'
     137 | TRACE_EVENT(tps6598x_irq,
         | ^~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:152:6: note: in expansion of macro 'TP_printk'
     152 |      TP_printk("event1=%s, event2=%s",
         |      ^~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:22:2: note: in expansion of macro '__print_flags'
      22 |  __print_flags(flags, "|", \
         |  ^~~~~~~~~~~~~
   drivers/usb/typec/tps6598x.h:83:48: note: in expansion of macro 'BIT'
      83 | #define TPS_REG_INT_USER_VID_ALT_MODE_ENTERED  BIT(24+32)
         |                                                ^~~
   drivers/usb/typec/./tps6598x_trace.h:65:5: note: in expansion of macro 'TPS_REG_INT_USER_VID_ALT_MODE_ENTERED'
      65 |   { TPS_REG_INT_USER_VID_ALT_MODE_ENTERED, "USER_VID_ALT_MODE_ENTERED" }, \
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:154:9: note: in expansion of macro 'show_irq_flags'
     154 |         show_irq_flags(__entry->event2))
         |         ^~~~~~~~~~~~~~
   include/vdso/bits.h:7:26: warning: left shift count >= width of type [-Wshift-count-overflow]
       7 | #define BIT(nr)   (UL(1) << (nr))
         |                          ^~
   include/trace/trace_events.h:367:22: note: in definition of macro 'DECLARE_EVENT_CLASS'
     367 |  trace_seq_printf(s, print);     \
         |                      ^~~~~
   include/trace/trace_events.h:80:9: note: in expansion of macro 'PARAMS'
      80 |         PARAMS(print));         \
         |         ^~~~~~
   drivers/usb/typec/./tps6598x_trace.h:137:1: note: in expansion of macro 'TRACE_EVENT'
     137 | TRACE_EVENT(tps6598x_irq,
         | ^~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:152:6: note: in expansion of macro 'TP_printk'
     152 |      TP_printk("event1=%s, event2=%s",
         |      ^~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:22:2: note: in expansion of macro '__print_flags'
      22 |  __print_flags(flags, "|", \
         |  ^~~~~~~~~~~~~
   drivers/usb/typec/tps6598x.h:82:45: note: in expansion of macro 'BIT'
      82 | #define TPS_REG_INT_USER_VID_ALT_MODE_EXIT  BIT(25+32)
         |                                             ^~~
   drivers/usb/typec/./tps6598x_trace.h:66:5: note: in expansion of macro 'TPS_REG_INT_USER_VID_ALT_MODE_EXIT'
      66 |   { TPS_REG_INT_USER_VID_ALT_MODE_EXIT,  "USER_VID_ALT_MODE_EXIT" }, \
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:154:9: note: in expansion of macro 'show_irq_flags'
     154 |         show_irq_flags(__entry->event2))
         |         ^~~~~~~~~~~~~~
   include/vdso/bits.h:7:26: warning: left shift count >= width of type [-Wshift-count-overflow]
       7 | #define BIT(nr)   (UL(1) << (nr))
         |                          ^~
   include/trace/trace_events.h:367:22: note: in definition of macro 'DECLARE_EVENT_CLASS'
     367 |  trace_seq_printf(s, print);     \
         |                      ^~~~~
   include/trace/trace_events.h:80:9: note: in expansion of macro 'PARAMS'
      80 |         PARAMS(print));         \
         |         ^~~~~~
   drivers/usb/typec/./tps6598x_trace.h:137:1: note: in expansion of macro 'TRACE_EVENT'
     137 | TRACE_EVENT(tps6598x_irq,
         | ^~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:152:6: note: in expansion of macro 'TP_printk'
     152 |      TP_printk("event1=%s, event2=%s",
         |      ^~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:22:2: note: in expansion of macro '__print_flags'
      22 |  __print_flags(flags, "|", \
         |  ^~~~~~~~~~~~~
   drivers/usb/typec/tps6598x.h:81:49: note: in expansion of macro 'BIT'
      81 | #define TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM  BIT(26+32)
         |                                                 ^~~
   drivers/usb/typec/./tps6598x_trace.h:67:5: note: in expansion of macro 'TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM'
      67 |   { TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM, "USER_VID_ALT_MODE_ATTN_VDM" }, \
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:154:9: note: in expansion of macro 'show_irq_flags'
     154 |         show_irq_flags(__entry->event2))
         |         ^~~~~~~~~~~~~~
   include/vdso/bits.h:7:26: warning: left shift count >= width of type [-Wshift-count-overflow]
       7 | #define BIT(nr)   (UL(1) << (nr))
         |                          ^~
   include/trace/trace_events.h:367:22: note: in definition of macro 'DECLARE_EVENT_CLASS'
     367 |  trace_seq_printf(s, print);     \
         |                      ^~~~~
   include/trace/trace_events.h:80:9: note: in expansion of macro 'PARAMS'
      80 |         PARAMS(print));         \
         |         ^~~~~~
   drivers/usb/typec/./tps6598x_trace.h:137:1: note: in expansion of macro 'TRACE_EVENT'
     137 | TRACE_EVENT(tps6598x_irq,
         | ^~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:152:6: note: in expansion of macro 'TP_printk'
     152 |      TP_printk("event1=%s, event2=%s",
         |      ^~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:22:2: note: in expansion of macro '__print_flags'
      22 |  __print_flags(flags, "|", \
         |  ^~~~~~~~~~~~~
   drivers/usb/typec/tps6598x.h:80:50: note: in expansion of macro 'BIT'
      80 | #define TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM  BIT(27+32)
         |                                                  ^~~
   drivers/usb/typec/./tps6598x_trace.h:68:5: note: in expansion of macro 'TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM'
      68 |   { TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM, "USER_VID_ALT_MODE_OTHER_VDM" })
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:154:9: note: in expansion of macro 'show_irq_flags'
     154 |         show_irq_flags(__entry->event2))
         |         ^~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h: In function 'trace_raw_output_tps6598x_status':
>> drivers/usb/typec/tps6598x.h:28:35: error: implicit declaration of function 'FIELD_GET'; did you mean 'FOLL_GET'? [-Werror=implicit-function-declaration]
      28 | #define TPS_STATUS_CONN_STATE(x)  FIELD_GET(TPS_STATUS_CONN_STATE_MASK, (x))
         |                                   ^~~~~~~~~
   include/trace/trace_events.h:367:22: note: in definition of macro 'DECLARE_EVENT_CLASS'
     367 |  trace_seq_printf(s, print);     \
         |                      ^~~~~
   include/trace/trace_events.h:80:9: note: in expansion of macro 'PARAMS'
      80 |         PARAMS(print));         \
         |         ^~~~~~
   drivers/usb/typec/./tps6598x_trace.h:157:1: note: in expansion of macro 'TRACE_EVENT'
     157 | TRACE_EVENT(tps6598x_status,
         | ^~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:169:6: note: in expansion of macro 'TP_printk'
     169 |      TP_printk("conn: %s, pp_5v0: %s, pp_hv: %s, pp_ext: %s, pp_cable: %s, "
         |      ^~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:81:2: note: in expansion of macro '__print_symbolic'
      81 |  __print_symbolic(TPS_STATUS_CONN_STATE((status)), \
         |  ^~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:81:19: note: in expansion of macro 'TPS_STATUS_CONN_STATE'
      81 |  __print_symbolic(TPS_STATUS_CONN_STATE((status)), \
         |                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/./tps6598x_trace.h:171:9: note: in expansion of macro 'show_status_conn_state'
     171 |         show_status_conn_state(__entry->status),
         |         ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +28 drivers/usb/typec/tps6598x.h

    26	
    27	#define TPS_STATUS_CONN_STATE_MASK		GENMASK(3, 1)
  > 28	#define TPS_STATUS_CONN_STATE(x)		FIELD_GET(TPS_STATUS_CONN_STATE_MASK, (x))
    29	#define TPS_STATUS_PP_5V0_SWITCH_MASK		GENMASK(9, 8)
    30	#define TPS_STATUS_PP_5V0_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_5V0_SWITCH_MASK, (x))
    31	#define TPS_STATUS_PP_HV_SWITCH_MASK		GENMASK(11, 10)
    32	#define TPS_STATUS_PP_HV_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_HV_SWITCH_MASK, (x))
    33	#define TPS_STATUS_PP_EXT_SWITCH_MASK		GENMASK(13, 12)
    34	#define TPS_STATUS_PP_EXT_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_EXT_SWITCH_MASK, (x))
    35	#define TPS_STATUS_PP_CABLE_SWITCH_MASK		GENMASK(15, 14)
    36	#define TPS_STATUS_PP_CABLE_SWITCH(x)		FIELD_GET(TPS_STATUS_PP_CABLE_SWITCH_MASK, (x))
    37	#define TPS_STATUS_POWER_SOURCE_MASK		GENMASK(19, 18)
    38	#define TPS_STATUS_POWER_SOURCE(x)		FIELD_GET(TPS_STATUS_POWER_SOURCE_MASK, (x))
    39	#define TPS_STATUS_VBUS_STATUS_MASK		GENMASK(21, 20)
    40	#define TPS_STATUS_VBUS_STATUS(x)		FIELD_GET(TPS_STATUS_VBUS_STATUS_MASK, (x))
    41	#define TPS_STATUS_USB_HOST_PRESENT_MASK	GENMASK(23, 22)
    42	#define TPS_STATUS_USB_HOST_PRESENT(x)		FIELD_GET(TPS_STATUS_USB_HOST_PRESENT_MASK, (x))
    43	#define TPS_STATUS_LEGACY_MASK			GENMASK(25, 24)
    44	#define TPS_STATUS_LEGACY(x)			FIELD_GET(TPS_STATUS_LEGACY_MASK, (x))
    45	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34033 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events
  2021-02-11 15:51 ` [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events Guido Günther
@ 2021-02-11 21:21   ` kernel test robot
  0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2021-02-11 21:21 UTC (permalink / raw)
  To: Guido Günther, Heikki Krogerus, Greg Kroah-Hartman,
	linux-kernel, linux-usb
  Cc: kbuild-all, clang-built-linux

[-- Attachment #1: Type: text/plain, Size: 41351 bytes --]

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36305 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register
  2021-02-11 15:51 ` [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register Guido Günther
  2021-02-11 18:04   ` kernel test robot
@ 2021-02-11 22:02   ` kernel test robot
  1 sibling, 0 replies; 9+ messages in thread
From: kernel test robot @ 2021-02-11 22:02 UTC (permalink / raw)
  To: Guido Günther, Heikki Krogerus, Greg Kroah-Hartman,
	linux-kernel, linux-usb
  Cc: kbuild-all, clang-built-linux

[-- Attachment #1: Type: text/plain, Size: 17068 bytes --]

Hi "Guido,

I love your patch! Yet something to improve:

[auto build test ERROR on usb/usb-testing]
[also build test ERROR 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/17785e43289bc7b92db7b401cd53a37c7a9faed2
        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 17785e43289bc7b92db7b401cd53a37c7a9faed2
        # 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 errors (new ones prefixed by >>):

                   { TPS_REG_INT_USER_VID_ALT_MODE_ENTERED,        "USER_VID_ALT_MODE_ENTERED" }, \
                     ^
   drivers/usb/typec/tps6598x.h:83: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:191:
   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:154:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event2))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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:82: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:191:
   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:154:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event2))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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:81: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:191:
   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:154:9: warning: shift count >= width of type [-Wshift-count-overflow]
                         show_irq_flags(__entry->event2))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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:80: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:191:
   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:171:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_conn_state(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:81:19: note: expanded from macro 'show_status_conn_state'
           __print_symbolic(TPS_STATUS_CONN_STATE((status)), \
                            ^
   drivers/usb/typec/tps6598x.h:28:35: note: expanded from macro 'TPS_STATUS_CONN_STATE'
   #define TPS_STATUS_CONN_STATE(x)                FIELD_GET(TPS_STATUS_CONN_STATE_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:172:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_5V0_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:30:38: note: expanded from macro 'TPS_STATUS_PP_5V0_SWITCH'
   #define TPS_STATUS_PP_5V0_SWITCH(x)             FIELD_GET(TPS_STATUS_PP_5V0_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:173:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_HV_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:32:37: note: expanded from macro 'TPS_STATUS_PP_HV_SWITCH'
   #define TPS_STATUS_PP_HV_SWITCH(x)              FIELD_GET(TPS_STATUS_PP_HV_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:174:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_EXT_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:34:38: note: expanded from macro 'TPS_STATUS_PP_EXT_SWITCH'
   #define TPS_STATUS_PP_EXT_SWITCH(x)             FIELD_GET(TPS_STATUS_PP_EXT_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:175:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_CABLE_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:36:40: note: expanded from macro 'TPS_STATUS_PP_CABLE_SWITCH'
   #define TPS_STATUS_PP_CABLE_SWITCH(x)           FIELD_GET(TPS_STATUS_PP_CABLE_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:176:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_power_sources(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:98:19: note: expanded from macro 'show_status_power_sources'
           __print_symbolic(TPS_STATUS_POWER_SOURCE(status), \
                            ^
   drivers/usb/typec/tps6598x.h:38:37: note: expanded from macro 'TPS_STATUS_POWER_SOURCE'
   #define TPS_STATUS_POWER_SOURCE(x)              FIELD_GET(TPS_STATUS_POWER_SOURCE_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:177:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_vbus_status(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:105:19: note: expanded from macro 'show_status_vbus_status'
           __print_symbolic(TPS_STATUS_VBUS_STATUS(status), \
                            ^
   drivers/usb/typec/tps6598x.h:40:36: note: expanded from macro 'TPS_STATUS_VBUS_STATUS'
   #define TPS_STATUS_VBUS_STATUS(x)               FIELD_GET(TPS_STATUS_VBUS_STATUS_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:178:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_usb_host_present(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:112:19: note: expanded from macro 'show_status_usb_host_present'
           __print_symbolic(TPS_STATUS_USB_HOST_PRESENT(status), \
                            ^
   drivers/usb/typec/tps6598x.h:42:41: note: expanded from macro 'TPS_STATUS_USB_HOST_PRESENT'
   #define TPS_STATUS_USB_HOST_PRESENT(x)          FIELD_GET(TPS_STATUS_USB_HOST_PRESENT_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:191:
   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:179:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_legacy(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:119:19: note: expanded from macro 'show_status_legacy'
           __print_symbolic(TPS_STATUS_LEGACY(status),          \
                            ^
   drivers/usb/typec/tps6598x.h:44:32: note: expanded from macro 'TPS_STATUS_LEGACY'
   #define TPS_STATUS_LEGACY(x)                    FIELD_GET(TPS_STATUS_LEGACY_MASK, (x))
                                                   ^

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 +/FIELD_GET +171 drivers/usb/typec/./tps6598x_trace.h

   156	
   157	TRACE_EVENT(tps6598x_status,
   158		    TP_PROTO(u32 status),
   159		    TP_ARGS(status),
   160	
   161		    TP_STRUCT__entry(
   162				     __field(u32, status)
   163				     ),
   164	
   165		    TP_fast_assign(
   166				   __entry->status = status;
   167				   ),
   168	
   169		    TP_printk("conn: %s, pp_5v0: %s, pp_hv: %s, pp_ext: %s, pp_cable: %s, "
   170			      "pwr-src: %s, vbus: %s, usb-host: %s, legacy: %s, flags: %s",
 > 171			      show_status_conn_state(__entry->status),
   172			      show_status_pp_switch_state(TPS_STATUS_PP_5V0_SWITCH(__entry->status)),
   173			      show_status_pp_switch_state(TPS_STATUS_PP_HV_SWITCH(__entry->status)),
   174			      show_status_pp_switch_state(TPS_STATUS_PP_EXT_SWITCH(__entry->status)),
   175			      show_status_pp_switch_state(TPS_STATUS_PP_CABLE_SWITCH(__entry->status)),
   176			      show_status_power_sources(__entry->status),
   177			      show_status_vbus_status(__entry->status),
   178			      show_status_usb_host_present(__entry->status),
   179			      show_status_legacy(__entry->status),
   180			      show_status_flags(__entry->status)
   181			    )
   182	);
   183	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36305 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 3/4] usb: typec: tps6598x: Add trace event for power status register
  2021-02-11 15:51 ` [PATCH v1 3/4] usb: typec: tps6598x: Add trace event for power " Guido Günther
@ 2021-02-11 22:59   ` kernel test robot
  0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2021-02-11 22:59 UTC (permalink / raw)
  To: Guido Günther, Heikki Krogerus, Greg Kroah-Hartman,
	linux-kernel, linux-usb
  Cc: kbuild-all, clang-built-linux

[-- Attachment #1: Type: text/plain, Size: 14040 bytes --]

Hi "Guido,

I love your patch! Yet something to improve:

[auto build test ERROR on usb/usb-testing]
[also build test ERROR 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/e726633dc82c8537d76fed3f4a2e55a28bc3e670
        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 e726633dc82c8537d76fed3f4a2e55a28bc3e670
        # 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 errors (new ones prefixed by >>):

   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:190:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_5V0_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:30:38: note: expanded from macro 'TPS_STATUS_PP_5V0_SWITCH'
   #define TPS_STATUS_PP_5V0_SWITCH(x)             FIELD_GET(TPS_STATUS_PP_5V0_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:191:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_HV_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:32:37: note: expanded from macro 'TPS_STATUS_PP_HV_SWITCH'
   #define TPS_STATUS_PP_HV_SWITCH(x)              FIELD_GET(TPS_STATUS_PP_HV_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:192:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_EXT_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:34:38: note: expanded from macro 'TPS_STATUS_PP_EXT_SWITCH'
   #define TPS_STATUS_PP_EXT_SWITCH(x)             FIELD_GET(TPS_STATUS_PP_EXT_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:193:37: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_pp_switch_state(TPS_STATUS_PP_CABLE_SWITCH(__entry->status)),
                                                     ^
   drivers/usb/typec/tps6598x.h:36:40: note: expanded from macro 'TPS_STATUS_PP_CABLE_SWITCH'
   #define TPS_STATUS_PP_CABLE_SWITCH(x)           FIELD_GET(TPS_STATUS_PP_CABLE_SWITCH_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:194:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_power_sources(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:98:19: note: expanded from macro 'show_status_power_sources'
           __print_symbolic(TPS_STATUS_POWER_SOURCE(status), \
                            ^
   drivers/usb/typec/tps6598x.h:38:37: note: expanded from macro 'TPS_STATUS_POWER_SOURCE'
   #define TPS_STATUS_POWER_SOURCE(x)              FIELD_GET(TPS_STATUS_POWER_SOURCE_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:195:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_vbus_status(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:105:19: note: expanded from macro 'show_status_vbus_status'
           __print_symbolic(TPS_STATUS_VBUS_STATUS(status), \
                            ^
   drivers/usb/typec/tps6598x.h:40:36: note: expanded from macro 'TPS_STATUS_VBUS_STATUS'
   #define TPS_STATUS_VBUS_STATUS(x)               FIELD_GET(TPS_STATUS_VBUS_STATUS_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:196:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_usb_host_present(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:112:19: note: expanded from macro 'show_status_usb_host_present'
           __print_symbolic(TPS_STATUS_USB_HOST_PRESENT(status), \
                            ^
   drivers/usb/typec/tps6598x.h:42:41: note: expanded from macro 'TPS_STATUS_USB_HOST_PRESENT'
   #define TPS_STATUS_USB_HOST_PRESENT(x)          FIELD_GET(TPS_STATUS_USB_HOST_PRESENT_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:197:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         show_status_legacy(__entry->status),
                         ^
   drivers/usb/typec/./tps6598x_trace.h:119:19: note: expanded from macro 'show_status_legacy'
           __print_symbolic(TPS_STATUS_LEGACY(status),          \
                            ^
   drivers/usb/typec/tps6598x.h:44:32: note: expanded from macro 'TPS_STATUS_LEGACY'
   #define TPS_STATUS_LEGACY(x)                    FIELD_GET(TPS_STATUS_LEGACY_MASK, (x))
                                                   ^
   In file included from drivers/usb/typec/tps6598x.c:21:
   In file included from drivers/usb/typec/./tps6598x_trace.h:229:
   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:215:11: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                         !!TPS_POWER_STATUS_CONNECTION(__entry->power_status),
                           ^
   drivers/usb/typec/tps6598x.h:128:41: note: expanded from macro 'TPS_POWER_STATUS_CONNECTION'
   #define TPS_POWER_STATUS_CONNECTION(x)  FIELD_GET(BIT(0), (x))
                                           ^
>> drivers/usb/typec/tps6598x.c:235:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
           mode = TPS_POWER_STATUS_PWROPMODE(pwr_status);
                  ^
   drivers/usb/typec/tps6598x.h:133:43: note: expanded from macro 'TPS_POWER_STATUS_PWROPMODE'
   #define TPS_POWER_STATUS_PWROPMODE(p)       FIELD_GET(TPS_POWER_STATUS_TYPEC_CURRENT_MASK, (p))
                                               ^
   drivers/usb/typec/tps6598x.c:505:6: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
           if (TPS_POWER_STATUS_CONNECTION(pwr_status) &&
               ^
   drivers/usb/typec/tps6598x.h:128:41: note: expanded from macro 'TPS_POWER_STATUS_CONNECTION'
   #define TPS_POWER_STATUS_CONNECTION(x)  FIELD_GET(BIT(0), (x))
                                           ^
   drivers/usb/typec/tps6598x.c:527:7: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
                   if (TPS_POWER_STATUS_PWROPMODE(pwr_status) == TYPEC_PWR_MODE_PD)
                       ^
   drivers/usb/typec/tps6598x.h:133:43: note: expanded from macro 'TPS_POWER_STATUS_PWROPMODE'
   #define TPS_POWER_STATUS_PWROPMODE(p)       FIELD_GET(TPS_POWER_STATUS_TYPEC_CURRENT_MASK, (p))
                                               ^
   36 warnings and 13 errors generated.

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 +/FIELD_GET +235 drivers/usb/typec/tps6598x.c

18a6c866bb191f Bryan O'Donoghue 2020-05-12  220  
0a4c005bd1715d Heikki Krogerus  2017-09-25  221  static int tps6598x_connect(struct tps6598x *tps, u32 status)
0a4c005bd1715d Heikki Krogerus  2017-09-25  222  {
0a4c005bd1715d Heikki Krogerus  2017-09-25  223  	struct typec_partner_desc desc;
0a4c005bd1715d Heikki Krogerus  2017-09-25  224  	enum typec_pwr_opmode mode;
0a4c005bd1715d Heikki Krogerus  2017-09-25  225  	u16 pwr_status;
0a4c005bd1715d Heikki Krogerus  2017-09-25  226  	int ret;
0a4c005bd1715d Heikki Krogerus  2017-09-25  227  
0a4c005bd1715d Heikki Krogerus  2017-09-25  228  	if (tps->partner)
0a4c005bd1715d Heikki Krogerus  2017-09-25  229  		return 0;
0a4c005bd1715d Heikki Krogerus  2017-09-25  230  
0a4c005bd1715d Heikki Krogerus  2017-09-25  231  	ret = tps6598x_read16(tps, TPS_REG_POWER_STATUS, &pwr_status);
0a4c005bd1715d Heikki Krogerus  2017-09-25  232  	if (ret < 0)
0a4c005bd1715d Heikki Krogerus  2017-09-25  233  		return ret;
0a4c005bd1715d Heikki Krogerus  2017-09-25  234  
0a4c005bd1715d Heikki Krogerus  2017-09-25 @235  	mode = TPS_POWER_STATUS_PWROPMODE(pwr_status);
0a4c005bd1715d Heikki Krogerus  2017-09-25  236  
0a4c005bd1715d Heikki Krogerus  2017-09-25  237  	desc.usb_pd = mode == TYPEC_PWR_MODE_PD;
0a4c005bd1715d Heikki Krogerus  2017-09-25  238  	desc.accessory = TYPEC_ACCESSORY_NONE; /* XXX: handle accessories */
0a4c005bd1715d Heikki Krogerus  2017-09-25  239  	desc.identity = NULL;
0a4c005bd1715d Heikki Krogerus  2017-09-25  240  
0a4c005bd1715d Heikki Krogerus  2017-09-25  241  	if (desc.usb_pd) {
0a4c005bd1715d Heikki Krogerus  2017-09-25  242  		ret = tps6598x_read_partner_identity(tps);
0a4c005bd1715d Heikki Krogerus  2017-09-25  243  		if (ret)
0a4c005bd1715d Heikki Krogerus  2017-09-25  244  			return ret;
0a4c005bd1715d Heikki Krogerus  2017-09-25  245  		desc.identity = &tps->partner_identity;
0a4c005bd1715d Heikki Krogerus  2017-09-25  246  	}
0a4c005bd1715d Heikki Krogerus  2017-09-25  247  
0a4c005bd1715d Heikki Krogerus  2017-09-25  248  	typec_set_pwr_opmode(tps->port, mode);
17785e43289bc7 Guido Günther    2021-02-11  249  	typec_set_pwr_role(tps->port, TPS_STATUS_TO_TYPEC_PORTROLE(status));
17785e43289bc7 Guido Günther    2021-02-11  250  	typec_set_vconn_role(tps->port, TPS_STATUS_TO_TYPEC_VCONN(status));
17785e43289bc7 Guido Günther    2021-02-11  251  	tps6598x_set_data_role(tps, TPS_STATUS_TO_TYPEC_DATAROLE(status), true);
0a4c005bd1715d Heikki Krogerus  2017-09-25  252  
cf6e06cddf2972 Heikki Krogerus  2018-03-02  253  	tps->partner = typec_register_partner(tps->port, &desc);
cf6e06cddf2972 Heikki Krogerus  2018-03-02  254  	if (IS_ERR(tps->partner))
cf6e06cddf2972 Heikki Krogerus  2018-03-02  255  		return PTR_ERR(tps->partner);
cf6e06cddf2972 Heikki Krogerus  2018-03-02  256  
0a4c005bd1715d Heikki Krogerus  2017-09-25  257  	if (desc.identity)
0a4c005bd1715d Heikki Krogerus  2017-09-25  258  		typec_partner_set_identity(tps->partner);
0a4c005bd1715d Heikki Krogerus  2017-09-25  259  
10eb0b6ac63a15 Guido Günther    2020-12-05  260  	power_supply_changed(tps->psy);
10eb0b6ac63a15 Guido Günther    2020-12-05  261  
0a4c005bd1715d Heikki Krogerus  2017-09-25  262  	return 0;
0a4c005bd1715d Heikki Krogerus  2017-09-25  263  }
0a4c005bd1715d Heikki Krogerus  2017-09-25  264  

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36305 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-02-11 23:01 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-11 15:51 [PATCH v1 0/4] usb: typec: tps6598x: Add IRQ flag and register tracing Guido Günther
2021-02-11 15:51 ` [PATCH v1 1/4] usb: typec: tps6598x: Add trace event for IRQ events Guido Günther
2021-02-11 21:21   ` kernel test robot
2021-02-11 15:51 ` [PATCH v1 2/4] usb: typec: tps6598x: Add trace event for status register Guido Günther
2021-02-11 18:04   ` kernel test robot
2021-02-11 22:02   ` kernel test robot
2021-02-11 15:51 ` [PATCH v1 3/4] usb: typec: tps6598x: Add trace event for power " Guido Günther
2021-02-11 22:59   ` kernel test robot
2021-02-11 15:51 ` [PATCH v1 4/4] usb: typec: tps6598x: Add trace event for data status Guido Günther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).