lkml.org 
[lkml]   [2013]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC PATCH 1/4] DRIVERS: IRQCHIP: Add crossbar irqchip driver
    On Wed, 18 Sep 2013, Santosh Shilimkar wrote:
    > On Friday 13 September 2013 10:55 AM, Santosh Shilimkar wrote:
    > > On Friday 13 September 2013 10:24 AM, Thomas Gleixner wrote:
    >
    > [...]
    >
    > >> Before you dig into MSI, lets talk about irq domains first.
    > >>
    > >> GIC implements a legacy irq domain, i.e. a linear domain of all
    > >> possible GIC interrupts with a 1:1 mapping.
    > >>
    > >> So why can't you make use of irq domains and have the whole routing
    > >> business implemented sanely?
    > >>
    > >> What's needed is in gic_init_bases():
    > >>
    > >> if (of_property_read(node, "routable_irqs", &nr_routable_irqs) {
    > >> irq_domain_add_legacy(nr_gic_irqs);
    > >> } else {
    > >> irq_domain_add_legacy(nr_per_cpu_irqs);
    > >> irq_domain_add_linear(nr_routable_irqs);
    > >> }
    > >>
    > >> Now that separate domain has an xlate function which grabs a free GIC
    > >> irq from a bitmap and returns the hardware irq number in the gic
    > >> space. The map/unmap callbacks take care of setting up / tearing down
    > >> the route in the crossbar.
    > >>
    > >> Thoughts?
    > >>
    > > This sounds pretty good idea. We will explore above option.
    > > Thanks Thomas.
    > >
    > After further looking into this, the irqdomain approach lets us
    > setup the map only once during the init. This is similar to
    > the earlier approach of cross-bar driver where at probe time
    > the router was setup. The whole debate started with the fact
    > that we shouldn't fix the irq mapping at probe and should
    > dynamically change the mapping based on [request/free]_irq()
    > to be able to maximize the use of the IP.

    Well, that's what irq_of_parse_and_map() resp. irq_create_mapping and
    irq_dispose_mapping() are for.

    It requires changes to drivers, but you can't get that thing for free.

    Thanks,

    tglx


    \
     
     \ /
      Last update: 2013-09-19 01:01    [W:0.025 / U:0.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site