xhci: Show host status when watchdog triggers and host is assumed dead.

Additional debugging to show xHC USBSTS register when stop endpoint
command watchdog triggers and host is assumed dead.

useful to know the current status before the controller is stopped by
the xhci driver and everything is released and freed.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20200312144517.1593-4-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
此提交包含在:
Mathias Nyman
2020-03-12 16:45:11 +02:00
提交者 Greg Kroah-Hartman
父節點 76eac5d21a
當前提交 9c1aa36efd
共有 2 個檔案被更改,包括 33 行新增0 行删除

查看文件

@@ -2589,6 +2589,35 @@ static inline const char *xhci_decode_portsc(u32 portsc)
return str;
}
static inline const char *xhci_decode_usbsts(u32 usbsts)
{
static char str[256];
int ret = 0;
if (usbsts == ~(u32)0)
return " 0xffffffff";
if (usbsts & STS_HALT)
ret += sprintf(str + ret, " HCHalted");
if (usbsts & STS_FATAL)
ret += sprintf(str + ret, " HSE");
if (usbsts & STS_EINT)
ret += sprintf(str + ret, " EINT");
if (usbsts & STS_PORT)
ret += sprintf(str + ret, " PCD");
if (usbsts & STS_SAVE)
ret += sprintf(str + ret, " SSS");
if (usbsts & STS_RESTORE)
ret += sprintf(str + ret, " RSS");
if (usbsts & STS_SRE)
ret += sprintf(str + ret, " SRE");
if (usbsts & STS_CNR)
ret += sprintf(str + ret, " CNR");
if (usbsts & STS_HCE)
ret += sprintf(str + ret, " HCE");
return str;
}
static inline const char *xhci_decode_doorbell(u32 slot, u32 doorbell)
{
static char str[256];