On Mon, Apr 25, 2022 at 1:32 PM Philipp Hortmann < philipp.g.hortmann@gmail.com> wrote: > Hi, > > in this patch: > [PATCH 4/5] staging: vt6655: Replace two VNSvInPortD with ioread64_lo_hi > > I tried to combine two reads in one. > > if (ww == W_MAX_TIMEOUT) > return false; > - VNSvInPortD(iobase + MAC_REG_TSFCNTR, (u32 *)pqwCurrTSF); > - VNSvInPortD(iobase + MAC_REG_TSFCNTR + 4, (u32 *)pqwCurrTSF + 1); > + *pqwCurrTSF = ioread64_lo_hi(iobase + MAC_REG_TSFCNTR); > > return true; > } > > works fine on 64 bit machines but fails on 32 bit machines. > > Which of the following ways is the preferred one: > > How about #ifdef for 32/64 bit CPU. > Adding > #include > before #include "asm/io.h" > But it seems that this has never been used in a driver before? > > Switch back to two reads with ioread32? > > Or another proposal? > > Thanks for your support. > > Bye Philipp > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >