linux/drivers/usb/typec/ucsi/trace.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#define CREATE_TRACE_POINTS
   3#include "ucsi.h"
   4#include "trace.h"
   5
   6static const char * const ucsi_cmd_strs[] = {
   7        [0]                             = "Unknown command",
   8        [UCSI_PPM_RESET]                = "PPM_RESET",
   9        [UCSI_CANCEL]                   = "CANCEL",
  10        [UCSI_CONNECTOR_RESET]          = "CONNECTOR_RESET",
  11        [UCSI_ACK_CC_CI]                = "ACK_CC_CI",
  12        [UCSI_SET_NOTIFICATION_ENABLE]  = "SET_NOTIFICATION_ENABLE",
  13        [UCSI_GET_CAPABILITY]           = "GET_CAPABILITY",
  14        [UCSI_GET_CONNECTOR_CAPABILITY] = "GET_CONNECTOR_CAPABILITY",
  15        [UCSI_SET_UOM]                  = "SET_UOM",
  16        [UCSI_SET_UOR]                  = "SET_UOR",
  17        [UCSI_SET_PDM]                  = "SET_PDM",
  18        [UCSI_SET_PDR]                  = "SET_PDR",
  19        [UCSI_GET_ALTERNATE_MODES]      = "GET_ALTERNATE_MODES",
  20        [UCSI_GET_CAM_SUPPORTED]        = "GET_CAM_SUPPORTED",
  21        [UCSI_GET_CURRENT_CAM]          = "GET_CURRENT_CAM",
  22        [UCSI_SET_NEW_CAM]              = "SET_NEW_CAM",
  23        [UCSI_GET_PDOS]                 = "GET_PDOS",
  24        [UCSI_GET_CABLE_PROPERTY]       = "GET_CABLE_PROPERTY",
  25        [UCSI_GET_CONNECTOR_STATUS]     = "GET_CONNECTOR_STATUS",
  26        [UCSI_GET_ERROR_STATUS]         = "GET_ERROR_STATUS",
  27};
  28
  29const char *ucsi_cmd_str(u64 raw_cmd)
  30{
  31        u8 cmd = raw_cmd & GENMASK(7, 0);
  32
  33        return ucsi_cmd_strs[(cmd >= ARRAY_SIZE(ucsi_cmd_strs)) ? 0 : cmd];
  34}
  35
  36const char *ucsi_cci_str(u32 cci)
  37{
  38        if (UCSI_CCI_CONNECTOR(cci)) {
  39                if (cci & UCSI_CCI_ACK_COMPLETE)
  40                        return "Event pending (ACK completed)";
  41                if (cci & UCSI_CCI_COMMAND_COMPLETE)
  42                        return "Event pending (command completed)";
  43                return "Connector Change";
  44        }
  45        if (cci & UCSI_CCI_ACK_COMPLETE)
  46                return "ACK completed";
  47        if (cci & UCSI_CCI_COMMAND_COMPLETE)
  48                return "Command completed";
  49
  50        return "";
  51}
  52
  53static const char * const ucsi_recipient_strs[] = {
  54        [UCSI_RECIPIENT_CON]            = "port",
  55        [UCSI_RECIPIENT_SOP]            = "partner",
  56        [UCSI_RECIPIENT_SOP_P]          = "plug (prime)",
  57        [UCSI_RECIPIENT_SOP_PP]         = "plug (double prime)",
  58};
  59
  60const char *ucsi_recipient_str(u8 recipient)
  61{
  62        return ucsi_recipient_strs[recipient];
  63}
  64