Hi Arnd, Andy,

On 15/5/2020 10:30 pm, Arnd Bergmann wrote:
On Fri, May 15, 2020 at 4:25 PM Andy Shevchenko
<andy.shevche...@gmail.com> wrote:

On Fri, May 15, 2020 at 4:48 PM kbuild test robot <l...@intel.com> wrote:

sparse warnings: (new ones prefixed by >>)

drivers/mtd/nand/raw/intel-nand-controller.c:441:24: sparse: sparse: incorrect 
type in argument 1 (different base types) @@    expected unsigned int val @@    
got restricted __be32 [assignedunsigned int val @@
drivers/mtd/nand/raw/intel-nand-controller.c:441:24: sparse:    expected 
unsigned int val
drivers/mtd/nand/raw/intel-nand-controller.c:441:24: sparse:    got restricted 
__be32 [assigned] [usertype] reg
    drivers/mtd/nand/raw/intel-nand-controller.c:444:24: sparse: sparse: 
incorrect type in argument 1 (different base types) @@    expected unsigned int 
val @@    got restricted __be32 [assignedunsigned int val @@
    drivers/mtd/nand/raw/intel-nand-controller.c:444:24: sparse:    expected 
unsigned int val
    drivers/mtd/nand/raw/intel-nand-controller.c:444:24: sparse:    got 
restricted __be32 [assigned] [usertype] reg

    440                  reg = cpu_to_be32(*pdata++);
  > 441                  writel(reg, ebu_host->hsnand + HSNAND_CMSG_0);
    442
    443                  reg = cpu_to_be32(*pdata);
    444                  writel(reg, ebu_host->hsnand + HSNAND_CMSG_1);

On BE:
cpu_to_be32 -> no-op
writel() -> converts reg to LE

On LE:
cpu_to_be32 -> converts to BE
writel() -> no-op (in terms of conversion)

Seems to me that the proper API (if above is intended) should be swab32().
But something tells me that above is broken (or my understanding is wrong).

iowrite_be32() is the correct way to store word into a big-endian mmio register,
if that is the intention here.
Thank you for suggestions to use iowrite32be(), it suits exactly.

Regards
Vadivel


       Arnd

Reply via email to