diff options
author | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2010-05-24 16:25:28 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-06-04 16:16:19 -0400 |
commit | 0238634d02dd10b678ebe9ea5d8803483277ee93 (patch) | |
tree | 5978fcfdc185e15e407fb16e52daef4225c19882 /drivers/usb/host/xhci.c | |
parent | ed07453fd356025cc25272629e982f5e4607632c (diff) |
USB: xhci: Print NEC firmware version.
The NEC xHCI host controller firmware version can be found by putting a
vendor-specific command on the command ring and extracting the BCD
encoded-version out of the vendor-specific event TRB.
The firmware version debug line in dmesg will look like:
xhci_hcd 0000:05:00.0: NEC firmware version 30.21
(NEC merged with Renesas Technologies and became Renesas Electronics on
April 1, 2010. I have their OK to merge this vendor-specific code.)
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Satoshi Otani <satoshi.otani.xm@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/xhci.c')
-rw-r--r-- | drivers/usb/host/xhci.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 8a49c6716b69..27345cd04da0 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
@@ -486,6 +486,9 @@ int xhci_run(struct usb_hcd *hcd) | |||
486 | 486 | ||
487 | if (NUM_TEST_NOOPS > 0) | 487 | if (NUM_TEST_NOOPS > 0) |
488 | doorbell = xhci_setup_one_noop(xhci); | 488 | doorbell = xhci_setup_one_noop(xhci); |
489 | if (xhci->quirks & XHCI_NEC_HOST) | ||
490 | xhci_queue_vendor_command(xhci, 0, 0, 0, | ||
491 | TRB_TYPE(TRB_NEC_GET_FW)); | ||
489 | 492 | ||
490 | if (xhci_start(xhci)) { | 493 | if (xhci_start(xhci)) { |
491 | xhci_halt(xhci); | 494 | xhci_halt(xhci); |
@@ -495,6 +498,8 @@ int xhci_run(struct usb_hcd *hcd) | |||
495 | xhci_dbg(xhci, "// @%p = 0x%x\n", &xhci->op_regs->command, temp); | 498 | xhci_dbg(xhci, "// @%p = 0x%x\n", &xhci->op_regs->command, temp); |
496 | if (doorbell) | 499 | if (doorbell) |
497 | (*doorbell)(xhci); | 500 | (*doorbell)(xhci); |
501 | if (xhci->quirks & XHCI_NEC_HOST) | ||
502 | xhci_ring_cmd_db(xhci); | ||
498 | 503 | ||
499 | xhci_dbg(xhci, "Finished xhci_run\n"); | 504 | xhci_dbg(xhci, "Finished xhci_run\n"); |
500 | return 0; | 505 | return 0; |