tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   d8b9faec54ae4bc2fff68bcd0befa93ace8256ce
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to 
define address spaces
date:   6 weeks ago
config: riscv-randconfig-s032-20200731 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-115-g5fc204f2-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=riscv 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/char/pcmcia/cm4000_cs.c:312:23: sparse: sparse: cast removes address 
>> space '__iomem' of expression
>> drivers/char/pcmcia/cm4000_cs.c:312:23: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void const volatile 
>> [noderef] __iomem *addr @@     got void * @@
>> drivers/char/pcmcia/cm4000_cs.c:312:23: sparse:     expected void const 
>> volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:312:23: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:313:34: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:313:34: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:313:34: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:313:34: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:429:9: sparse: sparse: cast removes address 
space '__iomem' of expression
>> drivers/char/pcmcia/cm4000_cs.c:429:9: sparse: sparse: incorrect type in 
>> argument 2 (different address spaces) @@     expected void volatile 
>> [noderef] __iomem *addr @@     got void * @@
>> drivers/char/pcmcia/cm4000_cs.c:429:9: sparse:     expected void volatile 
>> [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:429:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:433:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:433:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:433:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:433:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:444:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:444:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:444:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:444:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:492:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:492:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:492:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:492:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:499:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:499:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:499:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:499:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:507:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:507:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:507:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:507:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:508:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:508:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:508:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:508:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:519:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:519:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:519:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:519:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:522:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:522:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:522:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:522:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:529:21: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:529:21: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:529:21: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:529:21: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:563:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:563:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:563:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:563:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:568:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:568:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:568:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:568:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:569:32: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:569:32: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:569:32: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:569:32: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:581:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:581:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:581:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:581:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:608:13: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:608:13: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:608:13: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:608:13: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:614:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:614:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:614:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:614:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:615:14: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:615:14: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:615:14: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:615:14: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:621:9: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:621:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:621:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:621:9: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:694:23: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:694:23: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:694:23: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:694:23: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:738:26: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:738:26: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:738:26: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:738:26: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:745:25: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:745:25: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:745:25: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:745:25: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:762:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:762:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:762:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:762:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:765:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:765:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:765:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:765:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:766:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:766:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:766:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:766:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:767:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:767:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:767:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4000_cs.c:767:17: sparse:     got void *
   drivers/char/pcmcia/cm4000_cs.c:770:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4000_cs.c:770:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4000_cs.c:770:17: sparse:     expected void volatile 
[noderef] __iomem *addr
--
>> drivers/char/pcmcia/synclink_cs.c:340:17: sparse: sparse: cast removes 
>> address space '__iomem' of expression
>> drivers/char/pcmcia/synclink_cs.c:340:17: sparse: sparse: incorrect type in 
>> argument 2 (different address spaces) @@     expected void volatile 
>> [noderef] __iomem *addr @@     got void * @@
>> drivers/char/pcmcia/synclink_cs.c:340:17: sparse:     expected void volatile 
>> [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:340:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:343:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:343:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:343:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:343:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:350:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:350:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:350:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:350:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:353:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:353:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:353:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:353:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3279:9: sparse: sparse: cast removes 
address space '__iomem' of expression
>> drivers/char/pcmcia/synclink_cs.c:3279:9: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void const volatile 
>> [noderef] __iomem *addr @@     got void * @@
>> drivers/char/pcmcia/synclink_cs.c:3279:9: sparse:     expected void const 
>> volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3279:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3279:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3279:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3279:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3279:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3262:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse:     expected void 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3561:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse:     expected void 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3563:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3575:13: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3575:13: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3575:13: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3575:13: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3577:13: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3577:13: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3577:13: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3577:13: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3580:18: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3580:18: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3580:18: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3580:18: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3594:15: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3594:15: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3594:15: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3594:15: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3606:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3606:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3606:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3606:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse:     expected void 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3609:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse:     expected void 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3611:17: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3339:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3339:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3339:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3339:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3340:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3340:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3340:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3340:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3341:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3341:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3341:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3341:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3342:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3342:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3342:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3342:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3347:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3347:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3347:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3347:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3359:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3359:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3359:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3359:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3383:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3383:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3383:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3383:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3023:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3023:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3023:9: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/synclink_cs.c:3023:9: sparse:     got void *
   drivers/char/pcmcia/synclink_cs.c:3069:9: sparse: sparse: cast removes 
address space '__iomem' of expression
   drivers/char/pcmcia/synclink_cs.c:3069:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/synclink_cs.c:3069:9: sparse:     expected void volatile 
[noderef] __iomem *addr
--
>> drivers/char/pcmcia/cm4040_cs.c:110:28: sparse: sparse: cast removes address 
>> space '__iomem' of expression
>> drivers/char/pcmcia/cm4040_cs.c:110:28: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void const volatile 
>> [noderef] __iomem *addr @@     got void * @@
>> drivers/char/pcmcia/cm4040_cs.c:110:28: sparse:     expected void const 
>> volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:110:28: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:144:22: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4040_cs.c:144:22: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4040_cs.c:144:22: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:144:22: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:178:9: sparse: sparse: cast removes address 
space '__iomem' of expression
>> drivers/char/pcmcia/cm4040_cs.c:178:9: sparse: sparse: incorrect type in 
>> argument 2 (different address spaces) @@     expected void volatile 
>> [noderef] __iomem *addr @@     got void * @@
>> drivers/char/pcmcia/cm4040_cs.c:178:9: sparse:     expected void volatile 
>> [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:178:9: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:192:22: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4040_cs.c:192:22: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4040_cs.c:192:22: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:192:22: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:252:33: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4040_cs.c:252:33: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4040_cs.c:252:33: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:252:33: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:279:35: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4040_cs.c:279:35: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4040_cs.c:279:35: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:279:35: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:311:14: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4040_cs.c:311:14: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4040_cs.c:311:14: sparse:     expected void const 
volatile [noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:311:14: sparse:     got void *
   drivers/char/pcmcia/cm4040_cs.c:399:17: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/char/pcmcia/cm4040_cs.c:399:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/char/pcmcia/cm4040_cs.c:399:17: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/char/pcmcia/cm4040_cs.c:399:17: sparse:     got void *
--
>> drivers/rtc/rtc-bq4802.c:32:16: sparse: sparse: cast removes address space 
>> '__iomem' of expression
>> drivers/rtc/rtc-bq4802.c:32:16: sparse: sparse: incorrect type in argument 1 
>> (different address spaces) @@     expected void const volatile [noderef] 
>> __iomem *addr @@     got void * @@
>> drivers/rtc/rtc-bq4802.c:32:16: sparse:     expected void const volatile 
>> [noderef] __iomem *addr
   drivers/rtc/rtc-bq4802.c:32:16: sparse:     got void *
   drivers/rtc/rtc-bq4802.c:37:9: sparse: sparse: cast removes address space 
'__iomem' of expression
>> drivers/rtc/rtc-bq4802.c:37:9: sparse: sparse: incorrect type in argument 2 
>> (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *addr @@     got void * @@
>> drivers/rtc/rtc-bq4802.c:37:9: sparse:     expected void volatile [noderef] 
>> __iomem *addr
   drivers/rtc/rtc-bq4802.c:37:9: sparse:     got void *

vim +/__iomem +312 drivers/char/pcmcia/cm4000_cs.c

c1986ee9bea3d8 Harald Welte      2005-11-13  303  
ecb8a8472f6d31 Olof Johansson    2008-02-04  304  static unsigned short 
io_read_num_rec_bytes(unsigned int iobase,
ecb8a8472f6d31 Olof Johansson    2008-02-04  305                                
            unsigned short *s)
c1986ee9bea3d8 Harald Welte      2005-11-13  306  {
c1986ee9bea3d8 Harald Welte      2005-11-13  307        unsigned short tmp;
c1986ee9bea3d8 Harald Welte      2005-11-13  308  
c1986ee9bea3d8 Harald Welte      2005-11-13  309        tmp = *s = 0;
c1986ee9bea3d8 Harald Welte      2005-11-13  310        do {
c1986ee9bea3d8 Harald Welte      2005-11-13  311                *s = tmp;
c1986ee9bea3d8 Harald Welte      2005-11-13 @312                tmp = 
inb(REG_NUM_BYTES(iobase)) |
c1986ee9bea3d8 Harald Welte      2005-11-13  313                                
(inb(REG_FLAGS0(iobase)) & 4 ? 0x100 : 0);
c1986ee9bea3d8 Harald Welte      2005-11-13  314        } while (tmp != *s);
c1986ee9bea3d8 Harald Welte      2005-11-13  315  
c1986ee9bea3d8 Harald Welte      2005-11-13  316        return *s;
c1986ee9bea3d8 Harald Welte      2005-11-13  317  }
c1986ee9bea3d8 Harald Welte      2005-11-13  318  
c1986ee9bea3d8 Harald Welte      2005-11-13  319  static int parse_atr(struct 
cm4000_dev *dev)
c1986ee9bea3d8 Harald Welte      2005-11-13  320  {
c1986ee9bea3d8 Harald Welte      2005-11-13  321        unsigned char any_t1, 
any_t0;
c1986ee9bea3d8 Harald Welte      2005-11-13  322        unsigned char ch, ifno;
c1986ee9bea3d8 Harald Welte      2005-11-13  323        int ix, done;
c1986ee9bea3d8 Harald Welte      2005-11-13  324  
c1986ee9bea3d8 Harald Welte      2005-11-13  325        DEBUGP(3, dev, "-> 
parse_atr: dev->atr_len = %i\n", dev->atr_len);
c1986ee9bea3d8 Harald Welte      2005-11-13  326  
c1986ee9bea3d8 Harald Welte      2005-11-13  327        if (dev->atr_len < 3) {
c1986ee9bea3d8 Harald Welte      2005-11-13  328                DEBUGP(5, dev, 
"parse_atr: atr_len < 3\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  329                return 0;
c1986ee9bea3d8 Harald Welte      2005-11-13  330        }
c1986ee9bea3d8 Harald Welte      2005-11-13  331  
c1986ee9bea3d8 Harald Welte      2005-11-13  332        if (dev->atr[0] == 0x3f)
c1986ee9bea3d8 Harald Welte      2005-11-13  333                
set_bit(IS_INVREV, &dev->flags);
c1986ee9bea3d8 Harald Welte      2005-11-13  334        else
c1986ee9bea3d8 Harald Welte      2005-11-13  335                
clear_bit(IS_INVREV, &dev->flags);
c1986ee9bea3d8 Harald Welte      2005-11-13  336        ix = 1;
c1986ee9bea3d8 Harald Welte      2005-11-13  337        ifno = 1;
c1986ee9bea3d8 Harald Welte      2005-11-13  338        ch = dev->atr[1];
c1986ee9bea3d8 Harald Welte      2005-11-13  339        dev->proto = 0;         
/* XXX PROTO */
c1986ee9bea3d8 Harald Welte      2005-11-13  340        any_t1 = any_t0 = done 
= 0;
c1986ee9bea3d8 Harald Welte      2005-11-13  341        dev->ta1 = 0x11;        
/* defaults to 9600 baud */
c1986ee9bea3d8 Harald Welte      2005-11-13  342        do {
c1986ee9bea3d8 Harald Welte      2005-11-13  343                if (ifno == 1 
&& (ch & 0x10)) {
c1986ee9bea3d8 Harald Welte      2005-11-13  344                        /* read 
first interface byte and TA1 is present */
c1986ee9bea3d8 Harald Welte      2005-11-13  345                        
dev->ta1 = dev->atr[2];
c1986ee9bea3d8 Harald Welte      2005-11-13  346                        
DEBUGP(5, dev, "Card says FiDi is 0x%.2x\n", dev->ta1);
c1986ee9bea3d8 Harald Welte      2005-11-13  347                        ifno++;
c1986ee9bea3d8 Harald Welte      2005-11-13  348                } else if 
((ifno == 2) && (ch & 0x10)) { /* TA(2) */
c1986ee9bea3d8 Harald Welte      2005-11-13  349                        
dev->ta1 = 0x11;
c1986ee9bea3d8 Harald Welte      2005-11-13  350                        ifno++;
c1986ee9bea3d8 Harald Welte      2005-11-13  351                }
c1986ee9bea3d8 Harald Welte      2005-11-13  352  
c1986ee9bea3d8 Harald Welte      2005-11-13  353                DEBUGP(5, dev, 
"Yi=%.2x\n", ch & 0xf0);
c1986ee9bea3d8 Harald Welte      2005-11-13  354                ix += ((ch & 
0x10) >> 4)        /* no of int.face chars */
c1986ee9bea3d8 Harald Welte      2005-11-13  355                    +((ch & 
0x20) >> 5)
c1986ee9bea3d8 Harald Welte      2005-11-13  356                    + ((ch & 
0x40) >> 6)
c1986ee9bea3d8 Harald Welte      2005-11-13  357                    + ((ch & 
0x80) >> 7);
c1986ee9bea3d8 Harald Welte      2005-11-13  358                /* 
ATRLENCK(dev,ix); */
c1986ee9bea3d8 Harald Welte      2005-11-13  359                if (ch & 0x80) 
{        /* TDi */
c1986ee9bea3d8 Harald Welte      2005-11-13  360                        ch = 
dev->atr[ix];
c1986ee9bea3d8 Harald Welte      2005-11-13  361                        if ((ch 
& 0x0f)) {
c1986ee9bea3d8 Harald Welte      2005-11-13  362                                
any_t1 = 1;
c1986ee9bea3d8 Harald Welte      2005-11-13  363                                
DEBUGP(5, dev, "card is capable of T=1\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  364                        } else {
c1986ee9bea3d8 Harald Welte      2005-11-13  365                                
any_t0 = 1;
c1986ee9bea3d8 Harald Welte      2005-11-13  366                                
DEBUGP(5, dev, "card is capable of T=0\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  367                        }
c1986ee9bea3d8 Harald Welte      2005-11-13  368                } else
c1986ee9bea3d8 Harald Welte      2005-11-13  369                        done = 
1;
c1986ee9bea3d8 Harald Welte      2005-11-13  370        } while (!done);
c1986ee9bea3d8 Harald Welte      2005-11-13  371  
c1986ee9bea3d8 Harald Welte      2005-11-13  372        DEBUGP(5, dev, "ix=%d 
noHist=%d any_t1=%d\n",
c1986ee9bea3d8 Harald Welte      2005-11-13  373              ix, dev->atr[1] & 
15, any_t1);
c1986ee9bea3d8 Harald Welte      2005-11-13  374        if (ix + 1 + 
(dev->atr[1] & 0x0f) + any_t1 != dev->atr_len) {
c1986ee9bea3d8 Harald Welte      2005-11-13  375                DEBUGP(5, dev, 
"length error\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  376                return 0;
c1986ee9bea3d8 Harald Welte      2005-11-13  377        }
c1986ee9bea3d8 Harald Welte      2005-11-13  378        if (any_t0)
c1986ee9bea3d8 Harald Welte      2005-11-13  379                
set_bit(IS_ANY_T0, &dev->flags);
c1986ee9bea3d8 Harald Welte      2005-11-13  380  
c1986ee9bea3d8 Harald Welte      2005-11-13  381        if (any_t1) {           
/* compute csum */
c1986ee9bea3d8 Harald Welte      2005-11-13  382                dev->atr_csum = 
0;
c1986ee9bea3d8 Harald Welte      2005-11-13  383  #ifdef ATR_CSUM
c1986ee9bea3d8 Harald Welte      2005-11-13  384                for (i = 1; i < 
dev->atr_len; i++)
c1986ee9bea3d8 Harald Welte      2005-11-13  385                        
dev->atr_csum ^= dev->atr[i];
c1986ee9bea3d8 Harald Welte      2005-11-13  386                if 
(dev->atr_csum) {
c1986ee9bea3d8 Harald Welte      2005-11-13  387                        
set_bit(IS_BAD_CSUM, &dev->flags);
c1986ee9bea3d8 Harald Welte      2005-11-13  388                        
DEBUGP(5, dev, "bad checksum\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  389                        goto 
return_0;
c1986ee9bea3d8 Harald Welte      2005-11-13  390                }
c1986ee9bea3d8 Harald Welte      2005-11-13  391  #endif
c1986ee9bea3d8 Harald Welte      2005-11-13  392                if (any_t0 == 0)
c1986ee9bea3d8 Harald Welte      2005-11-13  393                        
dev->proto = 1; /* XXX PROTO */
c1986ee9bea3d8 Harald Welte      2005-11-13  394                
set_bit(IS_ANY_T1, &dev->flags);
c1986ee9bea3d8 Harald Welte      2005-11-13  395        }
c1986ee9bea3d8 Harald Welte      2005-11-13  396  
c1986ee9bea3d8 Harald Welte      2005-11-13  397        return 1;
c1986ee9bea3d8 Harald Welte      2005-11-13  398  }
c1986ee9bea3d8 Harald Welte      2005-11-13  399  
c1986ee9bea3d8 Harald Welte      2005-11-13  400  struct card_fixup {
c1986ee9bea3d8 Harald Welte      2005-11-13  401        char atr[12];
c1986ee9bea3d8 Harald Welte      2005-11-13  402        u_int8_t atr_len;
c1986ee9bea3d8 Harald Welte      2005-11-13  403        u_int8_t stopbits;
c1986ee9bea3d8 Harald Welte      2005-11-13  404  };
c1986ee9bea3d8 Harald Welte      2005-11-13  405  
c1986ee9bea3d8 Harald Welte      2005-11-13  406  static struct card_fixup 
card_fixups[] = {
c1986ee9bea3d8 Harald Welte      2005-11-13  407        {       /* ACOS */
c1986ee9bea3d8 Harald Welte      2005-11-13  408                .atr = { 0x3b, 
0xb3, 0x11, 0x00, 0x00, 0x41, 0x01 },
c1986ee9bea3d8 Harald Welte      2005-11-13  409                .atr_len = 7,
c1986ee9bea3d8 Harald Welte      2005-11-13  410                .stopbits = 
0x03,
c1986ee9bea3d8 Harald Welte      2005-11-13  411        },
c1986ee9bea3d8 Harald Welte      2005-11-13  412        {       /* Motorola */
c1986ee9bea3d8 Harald Welte      2005-11-13  413                .atr = {0x3b, 
0x76, 0x13, 0x00, 0x00, 0x80, 0x62, 0x07,
c1986ee9bea3d8 Harald Welte      2005-11-13  414                        0x41, 
0x81, 0x81 },
c1986ee9bea3d8 Harald Welte      2005-11-13  415                .atr_len = 11,
c1986ee9bea3d8 Harald Welte      2005-11-13  416                .stopbits = 
0x04,
c1986ee9bea3d8 Harald Welte      2005-11-13  417        },
c1986ee9bea3d8 Harald Welte      2005-11-13  418  };
c1986ee9bea3d8 Harald Welte      2005-11-13  419  
c1986ee9bea3d8 Harald Welte      2005-11-13  420  static void 
set_cardparameter(struct cm4000_dev *dev)
c1986ee9bea3d8 Harald Welte      2005-11-13  421  {
c1986ee9bea3d8 Harald Welte      2005-11-13  422        int i;
9a017a910346af Dominik Brodowski 2010-07-24  423        unsigned int iobase = 
dev->p_dev->resource[0]->start;
c1986ee9bea3d8 Harald Welte      2005-11-13  424        u_int8_t stopbits = 
0x02; /* ISO default */
c1986ee9bea3d8 Harald Welte      2005-11-13  425  
c1986ee9bea3d8 Harald Welte      2005-11-13  426        DEBUGP(3, dev, "-> 
set_cardparameter\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  427  
c1986ee9bea3d8 Harald Welte      2005-11-13  428        dev->flags1 = 
dev->flags1 | (((dev->baudv - 1) & 0x0100) >> 8);
c1986ee9bea3d8 Harald Welte      2005-11-13 @429        xoutb(dev->flags1, 
REG_FLAGS1(iobase));
c1986ee9bea3d8 Harald Welte      2005-11-13  430        DEBUGP(5, dev, "flags1 
= 0x%02x\n", dev->flags1);
c1986ee9bea3d8 Harald Welte      2005-11-13  431  
c1986ee9bea3d8 Harald Welte      2005-11-13  432        /* set baudrate */
c1986ee9bea3d8 Harald Welte      2005-11-13  433        xoutb((unsigned 
char)((dev->baudv - 1) & 0xFF), REG_BAUDRATE(iobase));
c1986ee9bea3d8 Harald Welte      2005-11-13  434  
c1986ee9bea3d8 Harald Welte      2005-11-13  435        DEBUGP(5, dev, "baudv = 
%i -> write 0x%02x\n", dev->baudv,
c1986ee9bea3d8 Harald Welte      2005-11-13  436              ((dev->baudv - 1) 
& 0xFF));
c1986ee9bea3d8 Harald Welte      2005-11-13  437  
c1986ee9bea3d8 Harald Welte      2005-11-13  438        /* set stopbits */
c1986ee9bea3d8 Harald Welte      2005-11-13  439        for (i = 0; i < 
ARRAY_SIZE(card_fixups); i++) {
c1986ee9bea3d8 Harald Welte      2005-11-13  440                if 
(!memcmp(dev->atr, card_fixups[i].atr,
c1986ee9bea3d8 Harald Welte      2005-11-13  441                            
card_fixups[i].atr_len))
c1986ee9bea3d8 Harald Welte      2005-11-13  442                        
stopbits = card_fixups[i].stopbits;
c1986ee9bea3d8 Harald Welte      2005-11-13  443        }
c1986ee9bea3d8 Harald Welte      2005-11-13  444        xoutb(stopbits, 
REG_STOPBITS(iobase));
c1986ee9bea3d8 Harald Welte      2005-11-13  445  
c1986ee9bea3d8 Harald Welte      2005-11-13  446        DEBUGP(3, dev, "<- 
set_cardparameter\n");
c1986ee9bea3d8 Harald Welte      2005-11-13  447  }
c1986ee9bea3d8 Harald Welte      2005-11-13  448  

:::::: The code at line 312 was first introduced by commit
:::::: c1986ee9bea3d880bcf0d3f1a31e055778f306c7 [PATCH] New Omnikey Cardman 
4000 driver

:::::: TO: Harald Welte <lafo...@gnumonks.org>
:::::: CC: Linus Torvalds <torva...@g5.osdl.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to