lkml.org 
[lkml]   [2010]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 10/19] genirq; Provide compat handling for chip->enable()
    Wrap the old chip function enable() until the migration is complete and
    the old chip functions are removed.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    kernel/irq/chip.c | 25 ++++++++++++++++++++-----
    kernel/irq/resend.c | 2 +-
    2 files changed, 21 insertions(+), 6 deletions(-)
    Index: linux-2.6-tip/kernel/irq/chip.c
    ===================================================================
    --- linux-2.6-tip.orig/kernel/irq/chip.c
    +++ linux-2.6-tip/kernel/irq/chip.c
    @@ -290,9 +290,9 @@ EXPORT_SYMBOL_GPL(set_irq_nested_thread)
    /*
    * default enable function
    */
    -static void default_enable(unsigned int irq)
    +static void default_enable(struct irq_data *data)
    {
    - struct irq_desc *desc = irq_to_desc(irq);
    + struct irq_desc *desc = irq_data_to_desc(data);

    desc->chip->irq_unmask(&desc->irq_data);
    desc->status &= ~IRQ_MASKED;
    @@ -312,7 +312,7 @@ static unsigned int default_startup(unsi
    {
    struct irq_desc *desc = irq_to_desc(irq);

    - desc->chip->enable(irq);
    + desc->chip->irq_enable(&desc->irq_data);
    return 0;
    }

    @@ -353,6 +353,11 @@ static void compat_irq_eoi(struct irq_da
    irq_data_to_desc(data)->chip->eoi(data->irq);
    }

    +static void compat_irq_enable(struct irq_data *data)
    +{
    + irq_data_to_desc(data)->chip->enable(data->irq);
    +}
    +
    static void compat_bus_lock(struct irq_data *data)
    {
    irq_data_to_desc(data)->chip->bus_lock(data->irq);
    @@ -368,8 +373,18 @@ static void compat_bus_sync_unlock(struc
    */
    void irq_chip_set_defaults(struct irq_chip *chip)
    {
    - if (!chip->enable)
    - chip->enable = default_enable;
    + /*
    + * Compat fixup functions need to be before we set the
    + * defaults for enable/disable/startup/shutdown
    + */
    + if (chip->enable)
    + chip->irq_enable = compat_irq_enable;
    +
    + /*
    + * The real defaults
    + */
    + if (!chip->irq_enable)
    + chip->irq_enable = default_enable;
    if (!chip->disable)
    chip->disable = default_disable;
    if (!chip->startup)
    Index: linux-2.6-tip/kernel/irq/resend.c
    ===================================================================
    --- linux-2.6-tip.orig/kernel/irq/resend.c
    +++ linux-2.6-tip/kernel/irq/resend.c
    @@ -60,7 +60,7 @@ void check_irq_resend(struct irq_desc *d
    /*
    * Make sure the interrupt is enabled, before resending it:
    */
    - desc->chip->enable(irq);
    + desc->chip->irq_enable(&desc->irq_data);

    /*
    * We do not resend level type interrupts. Level type



    \
     
     \ /
      Last update: 2010-09-27 20:11    [W:0.022 / U:0.360 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site