Hi Joe,

> On Wed, 2018-04-11 at 16:09 +0200, Lukasz Majewski wrote:
> > From: Sascha Hauer <[email protected]>
> > 
> > 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: [email protected]

Attachment: pgp9g5EDFLZXB.pgp
Description: OpenPGP digital signature

Reply via email to