"Virtual" Interrupts -- Need help please
From: Daniel Santos
Date: Sat Sep 07 2013 - 20:18:53 EST
I've posted a number of requests for aid on this and have gotten very
little responses and none that were helpful. I have spent at least 24
hours of research time on this and just a little direction from somebody
who knows this subsystem can help me immensely as the IRQ subsystem is
new to me.
This is for the MCP2210 driver (a USB to SPI/GPIO bridge) and my driver
is the first of its class for the Linux kernel, giving me less to look
at as an example. I intend to use standard drivers for whatever I have
connected at the other end. For this to work, I need to supply
interrupts for some of these drivers to work correctly. How do I do
this? Every thing else on this driver is ready to go and my handler
functions for this are empty and waiting for some code.
So do i create an IRQ domain and then call generic_handle_irq() from my
URB complete() function? If so, which type of IRQ Domain is appropriate
for this? Unlike typical platform devices, these are dynamically added
and removed throughout the life of the kernel, adding to the challenge.
So, if I understand correctly, my base IRQ number needs to be
dynamically generated. How should I manage this?
Finally, if you have any example drivers that are doing something
similar, that would be SO very helpful as well!
I have some secondary (and less important) questions about how to
integrate this with device drivers that want a DT / open firmware config
(which I know almost nothing about at this time), but that can wait.
Any help *greatly* appreciated and thank you in advance!
Daniel
PS: If interested, my current driver here:
https://github.com/daniel-santos/mcp2210-linux. I haven't sought review
yet because I want to finish it first.
--
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/