First pass at fixing/updating generic IRQ content, there's still more to do. Signed-off-by: Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> --- diff --git a/Documentation/DocBook/genericirq.tmpl b/Documentation/DocBook/genericirq.tmpl index b342234..820790f 100644 --- a/Documentation/DocBook/genericirq.tmpl +++ b/Documentation/DocBook/genericirq.tmpl @@ -79,7 +79,7 @@ </para> <para> This documentation is provided to developers who want to implement - an interrupt subsystem based for their architecture, with the help + an interrupt subsystem based on their architecture, with the help of the generic IRQ handling layer. </para> </chapter> @@ -87,8 +87,8 @@ <chapter id="rationale"> <title>Rationale</title> <para> - The original implementation of interrupt handling in Linux is using - the __do_IRQ() super-handler, which is able to deal with every + The original implementation of interrupt handling in Linux used + the __do_IRQ() super-handler, which was able to deal with every type of interrupt logic. </para> <para> @@ -100,11 +100,11 @@ <listitem><para>Edge type</para></listitem> <listitem><para>Simple type</para></listitem> </itemizedlist> - During the implementation we identified another type: + During the implementation, we identified another type: <itemizedlist> <listitem><para>Fast EOI type</para></listitem> </itemizedlist> - In the SMP world of the __do_IRQ() super-handler another type + In the SMP world of the __do_IRQ() super-handler, another type was identified: <itemizedlist> <listitem><para>Per CPU type</para></listitem> @@ -121,7 +121,7 @@ structures and their ->ack(), ->end() [etc.] callbacks to differentiate the flow control in the super-handler. This leads to a mix of flow logic and lowlevel hardware logic, and it also leads - to unnecessary code duplication: for example in i386, there is a + to unnecessary code duplication; for example, in i386, there is a ioapic_level_irq and a ioapic_edge_irq irq-type which share many of the lowlevel details but have different flow handling. </para> @@ -152,12 +152,8 @@ and add a (sub)architecture specific 'edge type' implementation. </para> <para> - To make the transition to the new model easier and prevent the - breakage of existing implementations, the __do_IRQ() super-handler - is still available. This leads to a kind of duality for the time - being. Over time the new model should be used in more and more - architectures, as it enables smaller and cleaner IRQ subsystems. - It's deprecated for three years now and about to be removed. + The __do_IRQ() super-handler was entirely removed in 2011, and has + been superseded by generic_handle_irq(). </para> </chapter> <chapter id="bugs"> @@ -182,7 +178,7 @@ <para> Each interrupt is described by an interrupt descriptor structure irq_desc. The interrupt is referenced by an 'unsigned int' numeric - value which selects the corresponding interrupt decription structure + value which selects the corresponding interrupt description structure in the descriptor structures array. The descriptor structure contains status information and pointers to the interrupt flow method and the interrupt chip structure @@ -445,7 +441,7 @@ if (desc->irq_data.chip->irq_eoi) <title>__do_IRQ entry point</title> <para> The original implementation __do_IRQ() was an alternative entry - point for all types of interrupts. It not longer exists. + point for all types of interrupts. It no longer exists. </para> <para> This handler turned out to be not suitable for all -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html