On Sun, 2019-12-15 at 15:57 +0000, Jonathan Cameron wrote: > [External] > > On Tue, 10 Dec 2019 16:04:02 -0500 > Sasha Levin <sashal@xxxxxxxxxx> wrote: > > > From: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > > > > [ Upstream commit fe2392c67db9730d46f11fc4fadfa7bffa8843fa ] > > > > The iio_triggered_buffer_{predisable,postenable} functions > > attach/detach > > the poll functions. > > > > The iio_triggered_buffer_postenable() should be called before (to > > attach > > the poll func) and then the > > > > The iio_triggered_buffer_predisable() function is hooked directly > > without > > anything, which is probably fine, as the postenable() version seems to > > also > > do some reset/wake-up of the device. > > This will mean it will be easier when removing it; i.e. it just gets > > removed. > > Ah. I should have added a note to this one as well. This is more general > rework, that is a fix in the sense of bringing things towards a standard > way of doing things rather than 'fixing' a known bug. > > Alex, for any more of these, lets not have fix in the title (though they > sort of do 'fix' things). > Ack. I don't think there are many drivers left though. But will keep this in mind. Thanks Alex > Thanks, > > Jonathan > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > > --- > > drivers/iio/pressure/zpa2326.c | 16 +++++++++------- > > 1 file changed, 9 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/iio/pressure/zpa2326.c > > b/drivers/iio/pressure/zpa2326.c > > index 9d0d07930236e..99dfe33ee402f 100644 > > --- a/drivers/iio/pressure/zpa2326.c > > +++ b/drivers/iio/pressure/zpa2326.c > > @@ -1243,6 +1243,11 @@ static int zpa2326_postenable_buffer(struct > > iio_dev *indio_dev) > > const struct zpa2326_private *priv = iio_priv(indio_dev); > > int err; > > > > + /* Plug our own trigger event handler. */ > > + err = iio_triggered_buffer_postenable(indio_dev); > > + if (err) > > + goto err; > > + > > if (!priv->waken) { > > /* > > * We were already power supplied. Just clear hardware FIFO > > to > > @@ -1250,7 +1255,7 @@ static int zpa2326_postenable_buffer(struct > > iio_dev *indio_dev) > > */ > > err = zpa2326_clear_fifo(indio_dev, 0); > > if (err) > > - goto err; > > + goto err_buffer_predisable; > > } > > > > if (!iio_trigger_using_own(indio_dev) && priv->waken) { > > @@ -1260,16 +1265,13 @@ static int zpa2326_postenable_buffer(struct > > iio_dev *indio_dev) > > */ > > err = zpa2326_config_oneshot(indio_dev, priv->irq); > > if (err) > > - goto err; > > + goto err_buffer_predisable; > > } > > > > - /* Plug our own trigger event handler. */ > > - err = iio_triggered_buffer_postenable(indio_dev); > > - if (err) > > - goto err; > > - > > return 0; > > > > +err_buffer_predisable: > > + iio_triggered_buffer_predisable(indio_dev); > > err: > > zpa2326_err(indio_dev, "failed to enable buffering (%d)", err); > >