On Sat, 26 Oct 2013, Charles Keepax wrote: > We need to make sure we reset back to our starting state, especially > making sure that we have disabled poll in the register cache. > > Signed-off-by: Charles Keepax <ckee...@opensource.wolfsonmicro.com> > --- > drivers/extcon/extcon-arizona.c | 10 +++++++++- > 1 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c > index 92eb486..3ce7b49 100644 > --- a/drivers/extcon/extcon-arizona.c > +++ b/drivers/extcon/extcon-arizona.c > @@ -572,6 +572,14 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data) > goto out; > } else if (!ret) { > dev_dbg(arizona->dev, "Ignoring HPDET for removed cable\n"); > + > + /* Reset back to starting range */ > + regmap_update_bits(arizona->regmap, > + ARIZONA_HEADPHONE_DETECT_1, > + ARIZONA_HP_IMPEDANCE_RANGE_MASK | > + ARIZONA_HP_POLL, > + 0); > + > goto done; > } > > @@ -607,9 +615,9 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data) > dev_err(arizona->dev, "Failed to report HP/line: %d\n", > ret); > > +done: > arizona_extcon_do_magic(info, 0); > > -done: > if (id_gpio) > gpio_set_value_cansleep(id_gpio, 0); >
What happens if we don't update the bits and we still do magic in the new error path? Does that adversely affect any later 'goto done's? -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/