> > > + > > + ret = ad4000_read_sample(st, chan); > > + if (ret) > > + return ret; > > + > > + if (st->cnv_gpio) > > + gpiod_set_value_cansleep(st->cnv_gpio, GPIOD_OUT_LOW); > > + > > + if (chan->scan_type.storagebits > 16) > > + sample = get_unaligned_be32(&st->scan.data); > > + else > > + sample = get_unaligned_be16(&st->scan.data); > > data is aligned, so be32/16_to_cpu() should be fine. Also, Jonathan > will suggest to use &st->scan.data.sample_b32/16 here too. :-) Sparse may well complain as well and no one likes build warnings ;)