From af7214914ab9ead9356652eed35004482265372d Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Tue, 30 Mar 2021 22:48:50 +0800 Subject: [PATCH] ANDROID: usb: typec: tcpm: Add vendor hook to store partner source capabilities Add a hook after receiving the source capabilities from the partner port. Pass the address of the source capability array so that vendor code is able to access them. OOT bug: Bug: 181629276 Bug: 169215197 Signed-off-by: Kyle Tso Change-Id: I11c4a7919c248690e63c3bfbebfa6b8d711175a6 --- drivers/android/vendor_hooks.c | 1 + drivers/usb/typec/tcpm/tcpm.c | 3 +++ include/trace/hooks/typec.h | 7 +++++++ 3 files changed, 11 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 53838cdcf1b5..3eff2ce672b0 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -219,6 +219,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cache_show); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpci_override_toggling); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_typec_tcpci_chk_contaminant); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_typec_tcpci_get_vbus); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_store_partner_src_caps); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_task_time); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gpio_block_read); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ep_create_wakeup_source); diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 94a888cdae53..3107ee9ffccb 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -2276,6 +2276,9 @@ static void tcpm_pd_data_request(struct tcpm_port *port, tcpm_validate_caps(port, port->source_caps, port->nr_source_caps); + trace_android_vh_typec_store_partner_src_caps(port, &port->nr_source_caps, + &port->source_caps); + /* * Adjust revision in subsequent message headers, as required, * to comply with 6.2.1.1.5 of the USB PD 3.0 spec. We don't diff --git a/include/trace/hooks/typec.h b/include/trace/hooks/typec.h index 70687f2376a7..00a76b2ec777 100644 --- a/include/trace/hooks/typec.h +++ b/include/trace/hooks/typec.h @@ -5,6 +5,7 @@ #if !defined(_TRACE_HOOK_TYPEC_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_HOOK_TYPEC_H #include +#include #include /* * Following tracepoints are not exported in tracefs and provide a @@ -12,6 +13,7 @@ */ struct tcpci; struct tcpci_data; +struct tcpm_port; #ifndef TYPEC_TIMER #define TYPEC_TIMER @@ -46,6 +48,11 @@ DECLARE_HOOK(android_vh_typec_tcpm_get_timer, TP_PROTO(const char *state, enum typec_timer timer, unsigned int *msecs), TP_ARGS(state, timer, msecs)); +DECLARE_HOOK(android_vh_typec_store_partner_src_caps, + TP_PROTO(struct tcpm_port *port, unsigned int *nr_source_caps, + u32 (*source_caps)[PDO_MAX_OBJECTS]), + TP_ARGS(port, nr_source_caps, source_caps)); + #endif /* _TRACE_HOOK_UFSHCD_H */ /* This part must be outside protection */ #include