diff options
| author | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2010-05-24 13:25:28 -0700 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-06-04 13:16:19 -0700 | 
| 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)  	if (NUM_TEST_NOOPS > 0)  		doorbell = xhci_setup_one_noop(xhci); +	if (xhci->quirks & XHCI_NEC_HOST) +		xhci_queue_vendor_command(xhci, 0, 0, 0, +				TRB_TYPE(TRB_NEC_GET_FW));  	if (xhci_start(xhci)) {  		xhci_halt(xhci); @@ -495,6 +498,8 @@ int xhci_run(struct usb_hcd *hcd)  	xhci_dbg(xhci, "// @%p = 0x%x\n", &xhci->op_regs->command, temp);  	if (doorbell)  		(*doorbell)(xhci); +	if (xhci->quirks & XHCI_NEC_HOST) +		xhci_ring_cmd_db(xhci);  	xhci_dbg(xhci, "Finished xhci_run\n");  	return 0; | 
