lkml.org 
[lkml]   [2012]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] regmap: initialize all irqs to wake disabled
    Date
    From: Stephen Warren <swarren@nvidia.com>

    The kerneldoc for irq_set_irq_wake() says:

    Enable/disable power management wakeup mode, which is
    disabled by default.

    regmap_irq_set_wake() clears bits to enable wake for an interrupt,
    and sets bits to disable wake. Hence, we should set all bits in
    wake_buf initially, to mirror the expected disabled state.

    Signed-off-by: Stephen Warren <swarren@nvidia.com>
    ---
    drivers/base/regmap/regmap-irq.c | 15 +++++++++++++++
    1 files changed, 15 insertions(+), 0 deletions(-)

    diff --git a/drivers/base/regmap/regmap-irq.c b/drivers/base/regmap/regmap-irq.c
    index c7e5b18..75b6939 100644
    --- a/drivers/base/regmap/regmap-irq.c
    +++ b/drivers/base/regmap/regmap-irq.c
    @@ -314,6 +314,21 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags,
    }
    }

    + /* Wake is disabled by default */
    + if (d->wake_buf) {
    + for (i = 0; i < chip->num_regs; i++) {
    + d->wake_buf[i] = d->mask_buf_def[i];
    + reg = chip->wake_base +
    + (i * map->reg_stride * d->irq_reg_stride);
    + ret = regmap_write(map, reg, d->wake_buf[i]);
    + if (ret != 0) {
    + dev_err(map->dev, "Failed to set masks in 0x%x: %d\n",
    + reg, ret);
    + goto err_alloc;
    + }
    + }
    + }
    +
    if (irq_base)
    d->domain = irq_domain_add_legacy(map->dev->of_node,
    chip->num_irqs, irq_base, 0,
    --
    1.7.0.4


    \
     
     \ /
      Last update: 2012-08-01 20:21    [W:0.026 / U:122.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site