Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb7e6984 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "USB: EHCI: fix performance regression"



This reverts commit fa38dfcc.

It wasn't really a regression and David and Alan are still working
through the issues reported.

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 185e3dea
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -84,8 +84,7 @@ static const char hcd_name [] = "ehci_hcd";
#define EHCI_IAA_MSECS		10		/* arbitrary */
#define EHCI_IO_JIFFIES		(HZ/10)		/* io watchdog > irq_thresh */
#define EHCI_ASYNC_JIFFIES	(HZ/20)		/* async idle timeout */
#define EHCI_SHRINK_JIFFIES	(HZ/100)	/* async qh unlink delay */
#define EHCI_SHRINK_UFRAMES	(10*8)		/* same value in uframes */
#define EHCI_SHRINK_JIFFIES	(HZ/200)	/* async qh unlink delay */

/* Initial IRQ latency:  faster than hw default */
static int log2_irq_thresh = 0;		// 0 to 6
+7 −8
Original line number Diff line number Diff line
@@ -1116,7 +1116,8 @@ static void scan_async (struct ehci_hcd *ehci)
	struct ehci_qh		*qh;
	enum ehci_timer_action	action = TIMER_IO_WATCHDOG;

	ehci->stamp = ehci_readl(ehci, &ehci->regs->frame_index);
	if (!++(ehci->stamp))
		ehci->stamp++;
	timer_action_done (ehci, TIMER_ASYNC_SHRINK);
rescan:
	qh = ehci->async->qh_next.qh;
@@ -1147,14 +1148,12 @@ static void scan_async (struct ehci_hcd *ehci)
			 * doesn't stay idle for long.
			 * (plus, avoids some kind of re-activation race.)
			 */
			if (list_empty(&qh->qtd_list) &&
					qh->qh_state == QH_STATE_LINKED) {
				if (!ehci->reclaim &&
				    ((ehci->stamp - qh->stamp) & 8191) >=
						EHCI_SHRINK_UFRAMES)
					start_unlink_async(ehci, qh);
				else
			if (list_empty (&qh->qtd_list)) {
				if (qh->stamp == ehci->stamp)
					action = TIMER_ASYNC_SHRINK;
				else if (!ehci->reclaim
					    && qh->qh_state == QH_STATE_LINKED)
					start_unlink_async (ehci, qh);
			}

			qh = qh->qh_next.qh;