Re: RESEND: Generating interrupts from a USB device driver?

From: Greg KH
Date: Tue Sep 03 2013 - 13:59:39 EST


On Mon, Sep 02, 2013 at 08:40:47PM -0500, Daniel Santos wrote:
> On 09/02/2013 06:07 PM, Greg KH wrote:
> >On Mon, Sep 02, 2013 at 05:46:58PM -0500, Daniel Santos wrote:
> >>Hello guys. I didn't get a response the last time so hopefully with
> >>3.11 out I'll get one this time.
> >>
> >>I need to be able to generate interrupts from a USB device driver while
> >>servicing the complete() function of an interrupt URB.
> >No you don't :)
> >
> >>While I realize that this may seem strange, the purpose is for a USB
> >>to SPI/GPIO bridge chip (the MCP2210). When something happens on the
> >>remote device where a chip is expecting it's interrupt out pin to
> >>trigger an interrupt on some local (to the board) microcontroller, the
> >>MCP2210 instead receives that signal and communicates it to the host
> >>the next time it's queried. This is the interrupt that I need to, in
> >>effect propagate locally. Since my spi_master and gpio_chip are all
> >>functioning now, this is the last step to get one of my spi protocol
> >>drivers working correctly.
> >Just pass the data up the spi stack in your interrupt endpoint handler.
> >No need to try to create a "real" interrupt. There are other USB SPI
> >drivers that should give you the idea of how to do it.
> Thanks for your response! I haven't been able to find these drivers,
> can you please point me to one? I guess I don't know the "spi stack"
> well enough to know how to propagate that notification up to the
> driver for the spi device (let alone that it was called a "stack" :)

Hm, I thought we used to have some of them, I guess people have been
saying they would write a driver for this type of hardware for a long
time now :(

Anyway, look at the spi core, I think you want to tie into the
spi_new_device() call in your usb driver, and start sending/receiving
data through the SPI interfaces the spi core provides.

The Linux SPI mailing list should be able to help you out a lot more
here than I can.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/