usb: dwc2: Delete unused functionality
Deleted dwc2_hcd_dump_frrem() function, because it used undefined parameters from dwc2_hsotg structure. The function body was in #ifdef statement and was never compiled. Also removed that parameters from dwc2_hsotg structure, which were used only in dwc2_hcd_dump_frrem() function. And also delete dwc2_sample_frrem macro, because without dwc2_hcd_dump_frrem() function it's lose its purpose. Acked-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
abd064a19d
commit
e890f1dae3
|
@ -1021,24 +1021,6 @@ struct dwc2_hsotg {
|
||||||
struct kmem_cache *desc_gen_cache;
|
struct kmem_cache *desc_gen_cache;
|
||||||
struct kmem_cache *desc_hsisoc_cache;
|
struct kmem_cache *desc_hsisoc_cache;
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
u32 frrem_samples;
|
|
||||||
u64 frrem_accum;
|
|
||||||
|
|
||||||
u32 hfnum_7_samples_a;
|
|
||||||
u64 hfnum_7_frrem_accum_a;
|
|
||||||
u32 hfnum_0_samples_a;
|
|
||||||
u64 hfnum_0_frrem_accum_a;
|
|
||||||
u32 hfnum_other_samples_a;
|
|
||||||
u64 hfnum_other_frrem_accum_a;
|
|
||||||
|
|
||||||
u32 hfnum_7_samples_b;
|
|
||||||
u64 hfnum_7_frrem_accum_b;
|
|
||||||
u32 hfnum_0_samples_b;
|
|
||||||
u64 hfnum_0_frrem_accum_b;
|
|
||||||
u32 hfnum_other_samples_b;
|
|
||||||
u64 hfnum_other_frrem_accum_b;
|
|
||||||
#endif
|
|
||||||
#endif /* CONFIG_USB_DWC2_HOST || CONFIG_USB_DWC2_DUAL_ROLE */
|
#endif /* CONFIG_USB_DWC2_HOST || CONFIG_USB_DWC2_DUAL_ROLE */
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \
|
#if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \
|
||||||
|
|
|
@ -3996,7 +3996,6 @@ void dwc2_hcd_dump_state(struct dwc2_hsotg *hsotg)
|
||||||
(p_tx_status & TXSTS_QSPCAVAIL_MASK) >> TXSTS_QSPCAVAIL_SHIFT);
|
(p_tx_status & TXSTS_QSPCAVAIL_MASK) >> TXSTS_QSPCAVAIL_SHIFT);
|
||||||
dev_dbg(hsotg->dev, " P Tx FIFO Space Avail: %d\n",
|
dev_dbg(hsotg->dev, " P Tx FIFO Space Avail: %d\n",
|
||||||
(p_tx_status & TXSTS_FSPCAVAIL_MASK) >> TXSTS_FSPCAVAIL_SHIFT);
|
(p_tx_status & TXSTS_FSPCAVAIL_MASK) >> TXSTS_FSPCAVAIL_SHIFT);
|
||||||
dwc2_hcd_dump_frrem(hsotg);
|
|
||||||
dwc2_dump_global_registers(hsotg);
|
dwc2_dump_global_registers(hsotg);
|
||||||
dwc2_dump_host_registers(hsotg);
|
dwc2_dump_host_registers(hsotg);
|
||||||
dev_dbg(hsotg->dev,
|
dev_dbg(hsotg->dev,
|
||||||
|
@ -4005,75 +4004,6 @@ void dwc2_hcd_dump_state(struct dwc2_hsotg *hsotg)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* NOTE: This function will be removed once the peripheral controller code
|
|
||||||
* is integrated and the driver is stable
|
|
||||||
*/
|
|
||||||
void dwc2_hcd_dump_frrem(struct dwc2_hsotg *hsotg)
|
|
||||||
{
|
|
||||||
#ifdef DWC2_DUMP_FRREM
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at SOF:\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->frrem_samples, hsotg->frrem_accum,
|
|
||||||
hsotg->frrem_samples > 0 ?
|
|
||||||
hsotg->frrem_accum / hsotg->frrem_samples : 0);
|
|
||||||
dev_dbg(hsotg->dev, "\n");
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at start_transfer (uframe 7):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_7_samples,
|
|
||||||
hsotg->hfnum_7_frrem_accum,
|
|
||||||
hsotg->hfnum_7_samples > 0 ?
|
|
||||||
hsotg->hfnum_7_frrem_accum / hsotg->hfnum_7_samples : 0);
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at start_transfer (uframe 0):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_0_samples,
|
|
||||||
hsotg->hfnum_0_frrem_accum,
|
|
||||||
hsotg->hfnum_0_samples > 0 ?
|
|
||||||
hsotg->hfnum_0_frrem_accum / hsotg->hfnum_0_samples : 0);
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at start_transfer (uframe 1-6):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_other_samples,
|
|
||||||
hsotg->hfnum_other_frrem_accum,
|
|
||||||
hsotg->hfnum_other_samples > 0 ?
|
|
||||||
hsotg->hfnum_other_frrem_accum / hsotg->hfnum_other_samples :
|
|
||||||
0);
|
|
||||||
dev_dbg(hsotg->dev, "\n");
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at sample point A (uframe 7):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_7_samples_a, hsotg->hfnum_7_frrem_accum_a,
|
|
||||||
hsotg->hfnum_7_samples_a > 0 ?
|
|
||||||
hsotg->hfnum_7_frrem_accum_a / hsotg->hfnum_7_samples_a : 0);
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at sample point A (uframe 0):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_0_samples_a, hsotg->hfnum_0_frrem_accum_a,
|
|
||||||
hsotg->hfnum_0_samples_a > 0 ?
|
|
||||||
hsotg->hfnum_0_frrem_accum_a / hsotg->hfnum_0_samples_a : 0);
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at sample point A (uframe 1-6):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_other_samples_a, hsotg->hfnum_other_frrem_accum_a,
|
|
||||||
hsotg->hfnum_other_samples_a > 0 ?
|
|
||||||
hsotg->hfnum_other_frrem_accum_a / hsotg->hfnum_other_samples_a
|
|
||||||
: 0);
|
|
||||||
dev_dbg(hsotg->dev, "\n");
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at sample point B (uframe 7):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_7_samples_b, hsotg->hfnum_7_frrem_accum_b,
|
|
||||||
hsotg->hfnum_7_samples_b > 0 ?
|
|
||||||
hsotg->hfnum_7_frrem_accum_b / hsotg->hfnum_7_samples_b : 0);
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at sample point B (uframe 0):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_0_samples_b, hsotg->hfnum_0_frrem_accum_b,
|
|
||||||
(hsotg->hfnum_0_samples_b > 0) ?
|
|
||||||
hsotg->hfnum_0_frrem_accum_b / hsotg->hfnum_0_samples_b : 0);
|
|
||||||
dev_dbg(hsotg->dev, "Frame remaining at sample point B (uframe 1-6):\n");
|
|
||||||
dev_dbg(hsotg->dev, " samples %u, accum %llu, avg %llu\n",
|
|
||||||
hsotg->hfnum_other_samples_b, hsotg->hfnum_other_frrem_accum_b,
|
|
||||||
(hsotg->hfnum_other_samples_b > 0) ?
|
|
||||||
hsotg->hfnum_other_frrem_accum_b / hsotg->hfnum_other_samples_b
|
|
||||||
: 0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
struct wrapper_priv_data {
|
struct wrapper_priv_data {
|
||||||
struct dwc2_hsotg *hsotg;
|
struct dwc2_hsotg *hsotg;
|
||||||
};
|
};
|
||||||
|
|
|
@ -783,19 +783,6 @@ int dwc2_hcd_is_b_host(struct dwc2_hsotg *hsotg);
|
||||||
*/
|
*/
|
||||||
void dwc2_hcd_dump_state(struct dwc2_hsotg *hsotg);
|
void dwc2_hcd_dump_state(struct dwc2_hsotg *hsotg);
|
||||||
|
|
||||||
/**
|
|
||||||
* dwc2_hcd_dump_frrem() - Dumps the average frame remaining at SOF
|
|
||||||
*
|
|
||||||
* @hsotg: The DWC2 HCD
|
|
||||||
*
|
|
||||||
* This can be used to determine average interrupt latency. Frame remaining is
|
|
||||||
* also shown for start transfer and two additional sample points.
|
|
||||||
*
|
|
||||||
* NOTE: This function will be removed once the peripheral controller code
|
|
||||||
* is integrated and the driver is stable
|
|
||||||
*/
|
|
||||||
void dwc2_hcd_dump_frrem(struct dwc2_hsotg *hsotg);
|
|
||||||
|
|
||||||
/* URB interface */
|
/* URB interface */
|
||||||
|
|
||||||
/* Transfer flags */
|
/* Transfer flags */
|
||||||
|
@ -813,47 +800,4 @@ int dwc2_host_get_speed(struct dwc2_hsotg *hsotg, void *context);
|
||||||
void dwc2_host_complete(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
|
void dwc2_host_complete(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
|
||||||
int status);
|
int status);
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
/*
|
|
||||||
* Macro to sample the remaining PHY clocks left in the current frame. This
|
|
||||||
* may be used during debugging to determine the average time it takes to
|
|
||||||
* execute sections of code. There are two possible sample points, "a" and
|
|
||||||
* "b", so the _letter_ argument must be one of these values.
|
|
||||||
*
|
|
||||||
* To dump the average sample times, read the "hcd_frrem" sysfs attribute. For
|
|
||||||
* example, "cat /sys/devices/lm0/hcd_frrem".
|
|
||||||
*/
|
|
||||||
#define dwc2_sample_frrem(_hcd_, _qh_, _letter_) \
|
|
||||||
do { \
|
|
||||||
struct hfnum_data _hfnum_; \
|
|
||||||
struct dwc2_qtd *_qtd_; \
|
|
||||||
\
|
|
||||||
_qtd_ = list_entry((_qh_)->qtd_list.next, struct dwc2_qtd, \
|
|
||||||
qtd_list_entry); \
|
|
||||||
if (usb_pipeint(_qtd_->urb->pipe) && \
|
|
||||||
(_qh_)->start_active_frame != 0 && !_qtd_->complete_split) { \
|
|
||||||
_hfnum_.d32 = dwc2_readl((_hcd_)->regs + HFNUM); \
|
|
||||||
switch (_hfnum_.b.frnum & 0x7) { \
|
|
||||||
case 7: \
|
|
||||||
(_hcd_)->hfnum_7_samples_##_letter_++; \
|
|
||||||
(_hcd_)->hfnum_7_frrem_accum_##_letter_ += \
|
|
||||||
_hfnum_.b.frrem; \
|
|
||||||
break; \
|
|
||||||
case 0: \
|
|
||||||
(_hcd_)->hfnum_0_samples_##_letter_++; \
|
|
||||||
(_hcd_)->hfnum_0_frrem_accum_##_letter_ += \
|
|
||||||
_hfnum_.b.frrem; \
|
|
||||||
break; \
|
|
||||||
default: \
|
|
||||||
(_hcd_)->hfnum_other_samples_##_letter_++; \
|
|
||||||
(_hcd_)->hfnum_other_frrem_accum_##_letter_ += \
|
|
||||||
_hfnum_.b.frrem; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
#else
|
|
||||||
#define dwc2_sample_frrem(_hcd_, _qh_, _letter_) do {} while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __DWC2_HCD_H__ */
|
#endif /* __DWC2_HCD_H__ */
|
||||||
|
|
Loading…
Reference in New Issue