x86: Allow I/O functions to use pointers
authorSimon Glass <sjg@chromium.org>
Sat, 12 Mar 2016 05:07:07 +0000 (22:07 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Thu, 17 Mar 2016 02:27:25 +0000 (10:27 +0800)
commit005174d661e0860a2af1be3025c2214142916ab4
treedecf168ce122d37d70487ff25d6598c5788c971d
parent30928c1151225f4f318521bb3e04fa8431f7a938
x86: Allow I/O functions to use pointers

It is common with memory-mapped I/O to use the address of a structure member
to access memory, as in:

   struct some_regs {
      u32 ctrl;
      u32 data;
   }

   struct some_regs *regs = (struct some_regs *)BASE_ADDRESS;

   writel(1, &reg->ctrl);
   writel(2, &reg->data);

This does not currently work with inl(), outl(), etc. Add a cast to permit
this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/include/asm/io.h