forked from Minki/linux
usb: musb: cppi41: decrease indentation level
no functional changes, clean up only. Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
ccf5fb6981
commit
1b61625f8b
@ -225,10 +225,12 @@ static void cppi41_dma_callback(void *private_data)
|
||||
struct dma_channel *channel = private_data;
|
||||
struct cppi41_dma_channel *cppi41_channel = channel->private_data;
|
||||
struct musb_hw_ep *hw_ep = cppi41_channel->hw_ep;
|
||||
struct cppi41_dma_controller *controller;
|
||||
struct musb *musb = hw_ep->musb;
|
||||
unsigned long flags;
|
||||
struct dma_tx_state txstate;
|
||||
u32 transferred;
|
||||
int is_hs = 0;
|
||||
bool empty;
|
||||
|
||||
spin_lock_irqsave(&musb->lock, flags);
|
||||
@ -251,58 +253,58 @@ static void cppi41_dma_callback(void *private_data)
|
||||
empty = musb_is_tx_fifo_empty(hw_ep);
|
||||
if (empty) {
|
||||
cppi41_trans_done(cppi41_channel);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* On AM335x it has been observed that the TX interrupt fires
|
||||
* too early that means the TXFIFO is not yet empty but the DMA
|
||||
* engine says that it is done with the transfer. We don't
|
||||
* receive a FIFO empty interrupt so the only thing we can do is
|
||||
* to poll for the bit. On HS it usually takes 2us, on FS around
|
||||
* 110us - 150us depending on the transfer size.
|
||||
* We spin on HS (no longer than than 25us and setup a timer on
|
||||
* FS to check for the bit and complete the transfer.
|
||||
*/
|
||||
controller = cppi41_channel->controller;
|
||||
|
||||
if (is_host_active(musb)) {
|
||||
if (musb->port1_status & USB_PORT_STAT_HIGH_SPEED)
|
||||
is_hs = 1;
|
||||
} else {
|
||||
struct cppi41_dma_controller *controller;
|
||||
int is_hs = 0;
|
||||
/*
|
||||
* On AM335x it has been observed that the TX interrupt fires
|
||||
* too early that means the TXFIFO is not yet empty but the DMA
|
||||
* engine says that it is done with the transfer. We don't
|
||||
* receive a FIFO empty interrupt so the only thing we can do is
|
||||
* to poll for the bit. On HS it usually takes 2us, on FS around
|
||||
* 110us - 150us depending on the transfer size.
|
||||
* We spin on HS (no longer than than 25us and setup a timer on
|
||||
* FS to check for the bit and complete the transfer.
|
||||
*/
|
||||
controller = cppi41_channel->controller;
|
||||
|
||||
if (is_host_active(musb)) {
|
||||
if (musb->port1_status & USB_PORT_STAT_HIGH_SPEED)
|
||||
is_hs = 1;
|
||||
} else {
|
||||
if (musb->g.speed == USB_SPEED_HIGH)
|
||||
is_hs = 1;
|
||||
}
|
||||
if (is_hs) {
|
||||
unsigned wait = 25;
|
||||
|
||||
do {
|
||||
empty = musb_is_tx_fifo_empty(hw_ep);
|
||||
if (empty)
|
||||
break;
|
||||
wait--;
|
||||
if (!wait)
|
||||
break;
|
||||
udelay(1);
|
||||
} while (1);
|
||||
if (musb->g.speed == USB_SPEED_HIGH)
|
||||
is_hs = 1;
|
||||
}
|
||||
if (is_hs) {
|
||||
unsigned wait = 25;
|
||||
|
||||
do {
|
||||
empty = musb_is_tx_fifo_empty(hw_ep);
|
||||
if (empty) {
|
||||
cppi41_trans_done(cppi41_channel);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
list_add_tail(&cppi41_channel->tx_check,
|
||||
&controller->early_tx_list);
|
||||
if (!hrtimer_is_queued(&controller->early_tx)) {
|
||||
unsigned long usecs = cppi41_channel->total_len / 10;
|
||||
if (empty)
|
||||
break;
|
||||
wait--;
|
||||
if (!wait)
|
||||
break;
|
||||
udelay(1);
|
||||
} while (1);
|
||||
|
||||
hrtimer_start_range_ns(&controller->early_tx,
|
||||
empty = musb_is_tx_fifo_empty(hw_ep);
|
||||
if (empty) {
|
||||
cppi41_trans_done(cppi41_channel);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
list_add_tail(&cppi41_channel->tx_check,
|
||||
&controller->early_tx_list);
|
||||
if (!hrtimer_is_queued(&controller->early_tx)) {
|
||||
unsigned long usecs = cppi41_channel->total_len / 10;
|
||||
|
||||
hrtimer_start_range_ns(&controller->early_tx,
|
||||
ktime_set(0, usecs * NSEC_PER_USEC),
|
||||
20 * NSEC_PER_USEC,
|
||||
HRTIMER_MODE_REL);
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
spin_unlock_irqrestore(&musb->lock, flags);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user