Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5c7ed5c authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: dwc3: expose dwc3_trb_type_string()



That helper can be used from our tracepoint interface with very minor
edits. Let's do so.

Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 90abb425
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -124,6 +124,34 @@ dwc3_gadget_link_string(enum dwc3_link_state link_state)
	}
}

/**
 * dwc3_trb_type_string - returns TRB type as a string
 * @type: the type of the TRB
 */
static inline const char *dwc3_trb_type_string(unsigned int type)
{
	switch (type) {
	case DWC3_TRBCTL_NORMAL:
		return "normal";
	case DWC3_TRBCTL_CONTROL_SETUP:
		return "setup";
	case DWC3_TRBCTL_CONTROL_STATUS2:
		return "status2";
	case DWC3_TRBCTL_CONTROL_STATUS3:
		return "status3";
	case DWC3_TRBCTL_CONTROL_DATA:
		return "data";
	case DWC3_TRBCTL_ISOCHRONOUS_FIRST:
		return "isoc-first";
	case DWC3_TRBCTL_ISOCHRONOUS:
		return "isoc";
	case DWC3_TRBCTL_LINK_TRB:
		return "link";
	default:
		return "UNKNOWN";
	}
}

static inline const char *dwc3_ep0_state_string(enum dwc3_ep0_state state)
{
	switch (state) {
+2 −25
Original line number Diff line number Diff line
@@ -644,30 +644,6 @@ static int dwc3_ep_transfer_type_show(struct seq_file *s, void *unused)
	return 0;
}

static inline const char *dwc3_trb_type_string(struct dwc3_trb *trb)
{
	switch (DWC3_TRBCTL_TYPE(trb->ctrl)) {
	case DWC3_TRBCTL_NORMAL:
		return "normal";
	case DWC3_TRBCTL_CONTROL_SETUP:
		return "setup";
	case DWC3_TRBCTL_CONTROL_STATUS2:
		return "status2";
	case DWC3_TRBCTL_CONTROL_STATUS3:
		return "status3";
	case DWC3_TRBCTL_CONTROL_DATA:
		return "data";
	case DWC3_TRBCTL_ISOCHRONOUS_FIRST:
		return "isoc-first";
	case DWC3_TRBCTL_ISOCHRONOUS:
		return "isoc";
	case DWC3_TRBCTL_LINK_TRB:
		return "link";
	default:
		return "UNKNOWN";
	}
}

static int dwc3_ep_trb_ring_show(struct seq_file *s, void *unused)
{
	struct dwc3_ep		*dep = s->private;
@@ -688,10 +664,11 @@ static int dwc3_ep_trb_ring_show(struct seq_file *s, void *unused)

	for (i = 0; i < DWC3_TRB_NUM; i++) {
		struct dwc3_trb *trb = &dep->trb_pool[i];
		unsigned int type = DWC3_TRBCTL_TYPE(trb->ctrl);

		seq_printf(s, "%08x%08x,%d,%s,%d,%d,%d,%d,%d,%d\n",
				trb->bph, trb->bpl, trb->size,
				dwc3_trb_type_string(trb),
				dwc3_trb_type_string(type),
				!!(trb->ctrl & DWC3_TRB_CTRL_IOC),
				!!(trb->ctrl & DWC3_TRB_CTRL_ISP_IMI),
				!!(trb->ctrl & DWC3_TRB_CTRL_CSP),
+1 −30
Original line number Diff line number Diff line
@@ -273,36 +273,7 @@ DECLARE_EVENT_CLASS(dwc3_log_trb,
		__entry->ctrl & DWC3_TRB_CTRL_CSP ? 'S' : 's',
		__entry->ctrl & DWC3_TRB_CTRL_ISP_IMI ? 'S' : 's',
		__entry->ctrl & DWC3_TRB_CTRL_IOC ? 'C' : 'c',
		({char *s;
		switch (__entry->ctrl & 0x3f0) {
		case DWC3_TRBCTL_NORMAL:
			s = "normal";
			break;
		case DWC3_TRBCTL_CONTROL_SETUP:
			s = "setup";
			break;
		case DWC3_TRBCTL_CONTROL_STATUS2:
			s = "status2";
			break;
		case DWC3_TRBCTL_CONTROL_STATUS3:
			s = "status3";
			break;
		case DWC3_TRBCTL_CONTROL_DATA:
			s = "data";
			break;
		case DWC3_TRBCTL_ISOCHRONOUS_FIRST:
			s = "isoc-first";
			break;
		case DWC3_TRBCTL_ISOCHRONOUS:
			s = "isoc";
			break;
		case DWC3_TRBCTL_LINK_TRB:
			s = "link";
			break;
		default:
			s = "UNKNOWN";
			break;
		} s; })
		  dwc3_trb_type_string(DWC3_TRBCTL_TYPE(__entry->ctrl))
	)
);