Re: [PATCH 03/10] usb/amd5536udc: move disconnect code into ISR

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

 



On 10.02.2012 14:00, Sebastian Andrzej Siewior wrote:
On Wed, Feb 08, 2012 at 11:10:13AM +0100, Thomas Dahlmann wrote:
On disconnect the controller is reset (all buffers and registers are
cleared) and device interrupts are enabled after that to be able to
react on upcoming connects. At first I implemented the
disconnect/reset in the ISR and as mentioned I got system hangs due
to some kind of PCI core hang inside the CS5536 controller. I worked
together with the chip designers of CS5536 to find the root cause but
if I remember right we could not find it. Doing the reset out of ISR
solved the problem. This development happened around 2006 so I cannot
remember all circumstances.

Hmm. Maybe an additional delay is required after some kind of operation.

When I remeber right it was not a problem of a delay but that the CPU and Southbridge are in interrupt cycle. Doing the reset inside interrupt cycle could deadlock the southbridge for some reason. So the reset had to be outside of interrupt cycle / ISR.

If you could get rid of global variables by using the work queue instead of tasklet I would think we should use the work queue.

I have the time I will bring up a CS5536 system and try it out.

I have to do that after work. Currently I have to solve some family issues so this will not happen during the next 2 weeks.

As mentioned it would be great if you could submit the patch as
you proposed.

Thanks for your help!

Thomas
--
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