aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci.h
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2012-07-11 11:22:39 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-16 19:54:26 -0400
commit8c5bf7be56f1a8aecc1f802f132d53f556a9bc45 (patch)
treed3b22a284f3f81b804bf9898928f866cfb8a45cd /drivers/usb/host/ehci.h
parent55934eb3b9fa52eb53b9d7342267fc73c38206aa (diff)
USB: EHCI: don't refcount iso_stream structures
This patch (as1580) makes ehci_iso_stream structures behave more like QHs, in that they will remain allocated until their isochronous endpoint is disabled. This will come in useful in the future, when periodic bandwidth gets allocated as an altsetting is installed rather than on-the-fly. For now, the change to the ehci_iso_stream lifetimes means that each structure is always deallocated at exactly one spot in ehci_endpoint_disable() and never used again. As a result, it is no longer necessary to use reference counting on these things, and the patch removes it. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r--drivers/usb/host/ehci.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index bcfbb175e2b4..755e30b0000b 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -386,7 +386,7 @@ struct ehci_qh_hw {
386} __attribute__ ((aligned(32))); 386} __attribute__ ((aligned(32)));
387 387
388struct ehci_qh { 388struct ehci_qh {
389 struct ehci_qh_hw *hw; 389 struct ehci_qh_hw *hw; /* Must come first */
390 /* the rest is HCD-private */ 390 /* the rest is HCD-private */
391 dma_addr_t qh_dma; /* address of qh */ 391 dma_addr_t qh_dma; /* address of qh */
392 union ehci_shadow qh_next; /* ptr to qh; or periodic */ 392 union ehci_shadow qh_next; /* ptr to qh; or periodic */
@@ -453,7 +453,6 @@ struct ehci_iso_stream {
453 /* first field matches ehci_hq, but is NULL */ 453 /* first field matches ehci_hq, but is NULL */
454 struct ehci_qh_hw *hw; 454 struct ehci_qh_hw *hw;
455 455
456 u32 refcount;
457 u8 bEndpointAddress; 456 u8 bEndpointAddress;
458 u8 highspeed; 457 u8 highspeed;
459 struct list_head td_list; /* queued itds/sitds */ 458 struct list_head td_list; /* queued itds/sitds */