Hi, On Mon, Mar 24, 2014 at 09:21:40AM -0600, David Mosberger wrote: > Felipe, > > On Mon, Mar 24, 2014 at 7:31 AM, Felipe Balbi <balbi@xxxxxx> wrote: > > > Why do you need to run your IRQ handler when an URQ gets enqueued ? That > > doesn't make much sense :-s > > Please see the comments at the start of the file: spi_sync() is > blocking and must not be called while holding spinlocks or with > interrupts disabled. The purpose of max3421_spi_thread() is to handle sure, but this is why we have threaded IRQ support. > all SPI transactions (implicitly serializing them). An interrupt is > just one of the reasons to wake up the SPI thread. Adding URBs, > removing them, or performing a bus reset are other reasons. you didn't tell me why. Why do you need to run that inside the same thread ? Why can't you do that from inside ->urb_enqueue() itself ? > You can think of max3421_spi_thread() as implementing the state > machine that would normally be implemented in silicon with a "smart" > controller such as OHCI or similar. yada, yada, yada... still didn't answer my original question. -- balbi
Attachment:
signature.asc
Description: Digital signature