Re: [PATCH] mfd: mc13xxx: Add mc34708 adc support

From: Lukasz Majewski
Date: Thu Apr 12 2018 - 10:45:18 EST


Hi Joe,

> On Wed, 2018-04-11 at 16:09 +0200, Lukasz Majewski wrote:
> > From: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
> >
> > The mc34708 has an improved adc. The older variants will always
> > convert a fixed order of channels. The mc34708 can do up to eight
> > conversions in arbitrary channel order. Currently this extended
> > feature is not supported. We only support touchscreen conversions
> > now, which will be sampled in a data format compatible to the older
> > chips in order to keep the API between the mfd and the touchscreen
> > driver.
> []
> > diff --git a/drivers/mfd/mc13xxx-core.c
> > b/drivers/mfd/mc13xxx-core.c
> []
> > +static int mc34708_adc_conversion(struct mc13xxx *mc13xxx,
> > unsigned int mode,
> > + unsigned int channel, u8 ato, bool atox,
> > + unsigned int *sample)
> > +{
> > + int ret, i;
> []
> > + if (mc13xxx->adcflags & MC13XXX_ADC_WORKING) {
> > + ret = -EBUSY;
> > + goto out;
> > + }
>
> This doesn't work.
>
> > []
> > + mc13xxx_irq_free(mc13xxx, MC34708_IRQ_TSDONE,
> > &adcdone_data); +
> > + if (!ret) {
> > + ret = -ETIMEDOUT;
> > + goto out;
> > + }
> []
> > +out:
> > + ret = mc13xxx_reg_write(mc13xxx, MC13XXX_ADC0, old_adc0);
>
> ret is reassigned here, so the ret = -<FOO>
> uses above don't do what is expected.

Right. Thanks for spotting this. I will fix it in v2.

>
> > +
> > + mc13xxx->adcflags &= ~MC13XXX_ADC_WORKING;
> > + mc13xxx_unlock(mc13xxx);
> > +
> > + return ret;
> > +}
>




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@xxxxxxx

Attachment: pgpq5ZKyL8zh_.pgp
Description: OpenPGP digital signature