> > > + do { > > + err = regmap_read(priv->aio_ctl_map, STX104_ADC_STATUS, &adc_status); > > + if (err) > > + return err; > > + } while (u8_get_bits(adc_status, STX104_CNV)); > > Hmm... Isn't it a potential infinite loop (e.g., ther hardware / firmware > is broken)? > > Why not using regmap_read_poll_timeout() (or its atomic variant, depends on > the case)? Just to shortcut things as I'm looking at this. That's currently handled in patch 2. Argument being this is a direct conversion of existing code, whereas changing to xxx_poll_timeout() is an improvement. I'm fine with it just being rolled into first patch with a note in the patch description though if that works better.