Commit e5ab9f18 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge tag 'for-usb-next-2012-04-08' of...

Merge tag 'for-usb-next-2012-04-08' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next

Sarah writes:

	xHCI misc cleanup patches for 3.10

	Hi Greg,

	Here's three cleanup patches for 3.10.  Nothing big here, just some debugging
	output changes, a macro rename, and a math macro change that should have no
	behavioral effects.

	Tested on the Intel Panther Point xHCI host, with USB storage and mouse, with
	xHCI debugging turned on.  I don't have the TI host that causes the debugging
	output changes to trigger.

	Sarah Sharp
parents 8c68e84f 58b1d799
...@@ -51,7 +51,7 @@ static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci, ...@@ -51,7 +51,7 @@ static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci,
return NULL; return NULL;
} }
memset(seg->trbs, 0, SEGMENT_SIZE); memset(seg->trbs, 0, TRB_SEGMENT_SIZE);
/* If the cycle state is 0, set the cycle bit to 1 for all the TRBs */ /* If the cycle state is 0, set the cycle bit to 1 for all the TRBs */
if (cycle_state == 0) { if (cycle_state == 0) {
for (i = 0; i < TRBS_PER_SEGMENT; i++) for (i = 0; i < TRBS_PER_SEGMENT; i++)
...@@ -467,7 +467,7 @@ struct xhci_ring *xhci_dma_to_transfer_ring( ...@@ -467,7 +467,7 @@ struct xhci_ring *xhci_dma_to_transfer_ring(
{ {
if (ep->ep_state & EP_HAS_STREAMS) if (ep->ep_state & EP_HAS_STREAMS)
return radix_tree_lookup(&ep->stream_info->trb_address_map, return radix_tree_lookup(&ep->stream_info->trb_address_map,
address >> SEGMENT_SHIFT); address >> TRB_SEGMENT_SHIFT);
return ep->ring; return ep->ring;
} }
...@@ -478,7 +478,7 @@ static struct xhci_ring *dma_to_stream_ring( ...@@ -478,7 +478,7 @@ static struct xhci_ring *dma_to_stream_ring(
u64 address) u64 address)
{ {
return radix_tree_lookup(&stream_info->trb_address_map, return radix_tree_lookup(&stream_info->trb_address_map,
address >> SEGMENT_SHIFT); address >> TRB_SEGMENT_SHIFT);
} }
#endif /* CONFIG_USB_XHCI_HCD_DEBUGGING */ #endif /* CONFIG_USB_XHCI_HCD_DEBUGGING */
...@@ -514,7 +514,7 @@ static int xhci_test_radix_tree(struct xhci_hcd *xhci, ...@@ -514,7 +514,7 @@ static int xhci_test_radix_tree(struct xhci_hcd *xhci,
cur_ring = stream_info->stream_rings[cur_stream]; cur_ring = stream_info->stream_rings[cur_stream];
for (addr = cur_ring->first_seg->dma; for (addr = cur_ring->first_seg->dma;
addr < cur_ring->first_seg->dma + SEGMENT_SIZE; addr < cur_ring->first_seg->dma + TRB_SEGMENT_SIZE;
addr += trb_size) { addr += trb_size) {
mapped_ring = dma_to_stream_ring(stream_info, addr); mapped_ring = dma_to_stream_ring(stream_info, addr);
if (cur_ring != mapped_ring) { if (cur_ring != mapped_ring) {
...@@ -662,7 +662,7 @@ struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci, ...@@ -662,7 +662,7 @@ struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci,
cur_stream, (unsigned long long) addr); cur_stream, (unsigned long long) addr);
key = (unsigned long) key = (unsigned long)
(cur_ring->first_seg->dma >> SEGMENT_SHIFT); (cur_ring->first_seg->dma >> TRB_SEGMENT_SHIFT);
ret = radix_tree_insert(&stream_info->trb_address_map, ret = radix_tree_insert(&stream_info->trb_address_map,
key, cur_ring); key, cur_ring);
if (ret) { if (ret) {
...@@ -693,7 +693,7 @@ struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci, ...@@ -693,7 +693,7 @@ struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci,
if (cur_ring) { if (cur_ring) {
addr = cur_ring->first_seg->dma; addr = cur_ring->first_seg->dma;
radix_tree_delete(&stream_info->trb_address_map, radix_tree_delete(&stream_info->trb_address_map,
addr >> SEGMENT_SHIFT); addr >> TRB_SEGMENT_SHIFT);
xhci_ring_free(xhci, cur_ring); xhci_ring_free(xhci, cur_ring);
stream_info->stream_rings[cur_stream] = NULL; stream_info->stream_rings[cur_stream] = NULL;
} }
...@@ -764,7 +764,7 @@ void xhci_free_stream_info(struct xhci_hcd *xhci, ...@@ -764,7 +764,7 @@ void xhci_free_stream_info(struct xhci_hcd *xhci,
if (cur_ring) { if (cur_ring) {
addr = cur_ring->first_seg->dma; addr = cur_ring->first_seg->dma;
radix_tree_delete(&stream_info->trb_address_map, radix_tree_delete(&stream_info->trb_address_map,
addr >> SEGMENT_SHIFT); addr >> TRB_SEGMENT_SHIFT);
xhci_ring_free(xhci, cur_ring); xhci_ring_free(xhci, cur_ring);
stream_info->stream_rings[cur_stream] = NULL; stream_info->stream_rings[cur_stream] = NULL;
} }
...@@ -2305,7 +2305,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) ...@@ -2305,7 +2305,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags)
* so we pick the greater alignment need. * so we pick the greater alignment need.
*/ */
xhci->segment_pool = dma_pool_create("xHCI ring segments", dev, xhci->segment_pool = dma_pool_create("xHCI ring segments", dev,
SEGMENT_SIZE, 64, xhci->page_size); TRB_SEGMENT_SIZE, 64, xhci->page_size);
/* See Table 46 and Note on Figure 55 */ /* See Table 46 and Note on Figure 55 */
xhci->device_pool = dma_pool_create("xHCI input/output contexts", dev, xhci->device_pool = dma_pool_create("xHCI input/output contexts", dev,
......
...@@ -417,9 +417,9 @@ static void compliance_mode_recovery(unsigned long arg) ...@@ -417,9 +417,9 @@ static void compliance_mode_recovery(unsigned long arg)
* Compliance Mode Detected. Letting USB Core * Compliance Mode Detected. Letting USB Core
* handle the Warm Reset * handle the Warm Reset
*/ */
xhci_dbg(xhci, "Compliance Mode Detected->Port %d!\n", xhci_dbg(xhci, "Compliance mode detected->port %d\n",
i + 1); i + 1);
xhci_dbg(xhci, "Attempting Recovery routine!\n"); xhci_dbg(xhci, "Attempting compliance mode recovery\n");
hcd = xhci->shared_hcd; hcd = xhci->shared_hcd;
if (hcd->state == HC_STATE_SUSPENDED) if (hcd->state == HC_STATE_SUSPENDED)
...@@ -457,7 +457,7 @@ static void compliance_mode_recovery_timer_init(struct xhci_hcd *xhci) ...@@ -457,7 +457,7 @@ static void compliance_mode_recovery_timer_init(struct xhci_hcd *xhci)
set_timer_slack(&xhci->comp_mode_recovery_timer, set_timer_slack(&xhci->comp_mode_recovery_timer,
msecs_to_jiffies(COMP_MODE_RCVRY_MSECS)); msecs_to_jiffies(COMP_MODE_RCVRY_MSECS));
add_timer(&xhci->comp_mode_recovery_timer); add_timer(&xhci->comp_mode_recovery_timer);
xhci_dbg(xhci, "Compliance Mode Recovery Timer Initialized.\n"); xhci_dbg(xhci, "Compliance mode recovery timer initialized\n");
} }
/* /*
...@@ -733,8 +733,11 @@ void xhci_stop(struct usb_hcd *hcd) ...@@ -733,8 +733,11 @@ void xhci_stop(struct usb_hcd *hcd)
/* Deleting Compliance Mode Recovery Timer */ /* Deleting Compliance Mode Recovery Timer */
if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) &&
(!(xhci_all_ports_seen_u0(xhci)))) (!(xhci_all_ports_seen_u0(xhci)))) {
del_timer_sync(&xhci->comp_mode_recovery_timer); del_timer_sync(&xhci->comp_mode_recovery_timer);
xhci_dbg(xhci, "%s: compliance mode recovery timer deleted\n",
__func__);
}
if (xhci->quirks & XHCI_AMD_PLL_FIX) if (xhci->quirks & XHCI_AMD_PLL_FIX)
usb_amd_dev_put(); usb_amd_dev_put();
...@@ -930,7 +933,8 @@ int xhci_suspend(struct xhci_hcd *xhci) ...@@ -930,7 +933,8 @@ int xhci_suspend(struct xhci_hcd *xhci)
if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) &&
(!(xhci_all_ports_seen_u0(xhci)))) { (!(xhci_all_ports_seen_u0(xhci)))) {
del_timer_sync(&xhci->comp_mode_recovery_timer); del_timer_sync(&xhci->comp_mode_recovery_timer);
xhci_dbg(xhci, "Compliance Mode Recovery Timer Deleted!\n"); xhci_dbg(xhci, "%s: compliance mode recovery timer deleted\n",
__func__);
} }
/* step 5: remove core well power */ /* step 5: remove core well power */
......
...@@ -1238,8 +1238,8 @@ union xhci_trb { ...@@ -1238,8 +1238,8 @@ union xhci_trb {
#define TRBS_PER_SEGMENT 64 #define TRBS_PER_SEGMENT 64
/* Allow two commands + a link TRB, along with any reserved command TRBs */ /* Allow two commands + a link TRB, along with any reserved command TRBs */
#define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3) #define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3)
#define SEGMENT_SIZE (TRBS_PER_SEGMENT*16) #define TRB_SEGMENT_SIZE (TRBS_PER_SEGMENT*16)
#define SEGMENT_SHIFT (__ffs(SEGMENT_SIZE)) #define TRB_SEGMENT_SHIFT (ilog2(TRB_SEGMENT_SIZE))
/* TRB buffer pointers can't cross 64KB boundaries */ /* TRB buffer pointers can't cross 64KB boundaries */
#define TRB_MAX_BUFF_SHIFT 16 #define TRB_MAX_BUFF_SHIFT 16
#define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT) #define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment