lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202007312101.XCe8XQSp%lkp@intel.com>
Date:   Fri, 31 Jul 2020 21:18:16 +0800
From:   kernel test robot <lkp@...el.com>
To:     Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/char/pcmcia/cm4000_cs.c:312:23: sparse: sparse: cast removes
 address space '__iomem' of expression

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 <lkp@...el.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 <laforge@...monks.org>
:::::: CC: Linus Torvalds <torvalds@...osdl.org>

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

Download attachment ".config.gz" of type "application/gzip" (28745 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ