Commit a5e4aa4d authored by Daniel Mack's avatar Daniel Mack Committed by Felipe Balbi

usb: musb: cppi41: tweak hrtimer values

Intensive tests with USB audio devices connected to a musb host port
have shown reproducible pops and clicks in both the playback and the
capture stream.

These are related to how the early_tx hrtimer is set up, and it turns
out they can be fixed by reducing the timer's slack value from 40 to
25 us. Also, when the callback is ran without taking action, it should
be rescheduled 20 us later instead of 50 us.
Reported-and-tested-by: default avatarSven Neumann <neumann@teufel.de>
Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent eb11adab
...@@ -200,7 +200,7 @@ static enum hrtimer_restart cppi41_recheck_tx_req(struct hrtimer *timer) ...@@ -200,7 +200,7 @@ static enum hrtimer_restart cppi41_recheck_tx_req(struct hrtimer *timer)
if (!list_empty(&controller->early_tx_list)) { if (!list_empty(&controller->early_tx_list)) {
ret = HRTIMER_RESTART; ret = HRTIMER_RESTART;
hrtimer_forward_now(&controller->early_tx, hrtimer_forward_now(&controller->early_tx,
ktime_set(0, 50 * NSEC_PER_USEC)); ktime_set(0, 20 * NSEC_PER_USEC));
} }
spin_unlock_irqrestore(&musb->lock, flags); spin_unlock_irqrestore(&musb->lock, flags);
...@@ -278,7 +278,7 @@ static void cppi41_dma_callback(void *private_data) ...@@ -278,7 +278,7 @@ static void cppi41_dma_callback(void *private_data)
hrtimer_start_range_ns(&controller->early_tx, hrtimer_start_range_ns(&controller->early_tx,
ktime_set(0, usecs * NSEC_PER_USEC), ktime_set(0, usecs * NSEC_PER_USEC),
40 * NSEC_PER_USEC, 20 * NSEC_PER_USEC,
HRTIMER_MODE_REL); HRTIMER_MODE_REL);
} }
} }
......
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