Re: [PATCH] regmap: irq: clear status when disable irq

From: Mark Brown
Date: Mon Oct 14 2013 - 07:10:02 EST


On Mon, Oct 14, 2013 at 12:23:53PM +0800, Yi Zhang wrote:

> Change-Id: I371201f365c5a8470073a393068cfeb4e3d14a03

Don't include noise like this in upstream submissions.

> + /* Ack masked but set interrupts */
> + reg = d->chip->status_base +
> + (i * map->reg_stride * d->irq_reg_stride);
> + ret = regmap_read(d->map, reg, &d->status_buf[i]);
> + if (ret != 0)
> + dev_err(d->map->dev, "Failed to read IRQ status: %d\n",
> + ret);

No, this isn't good - it'll read the hardware interrupt status again.
This will break any devices that are clear on read since enabled
interrupts will also be read. I'd suggest unconditionally acknowledging
all masked interrupts as the simplest approach, obviously it'd be better
to only acknowledge newly masked interrupts but that is more complex to
implement.

Attachment: signature.asc
Description: Digital signature