Re: ehci_hcd: fatal error, HC died with usbaudio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 1 Apr 2010, Alan Stern wrote:

> > When I set SYNC_URBS to 3 and apply your ehci-sched fix, I get the
> > following results:
> > 
> > http://xes-inc.com/sources/debug/test-with-syncurbs-3.txt
> 
> The resubmission should not have failed.  Please repeat this test with
> CONFIG_USB_DEBUG enabled in the kernel.  Also, you can remove the stack
> dump you added to ehci_irq(), and insert the following in 
> iso_stream_schedule():
> 
> 		/* Tried to schedule too far into the future? */
> 		if (unlikely(((start - now) & (mod - 1)) + span
> 					>= mod - 2 * SCHEDULE_SLOP)) {
> +			ehci_info(ehci, "now %u next %u start %u span %u uframe %d\n",
> +				now, next, start, span, stream->next_uframe);
> 			status = -EFBIG;
> 			goto fail;
> 		}

On further thought, I see what the problem is.  It should work okay 
with SYNC_URBS set to 2.

With 3, let's say the first URB completes in frame N.  The second URB
is scheduled for frame N+64 and the third for frame N+128.  When the
first is resubmitted it will be scheduled for frame N+192, leaving the
next available slot at N+256, which is too far in the future.

Of course, all this is irrelevant to the matter of what messes up your 
EHCI controller, since the controller fails even when there are no sync 
URBs.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux