Hi Samuel,
First bad commit (maybe != root cause):
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 52e44129fba5cfc4e351fdb5e45849afc74d9a53
commit: 2067fd92d75b6d9085a43caf050bca5d88c491b8 staging/speakup: Move out of staging
date: 9 months ago
config: riscv-randconfig-s032-20210411 (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.3-279-g6d5d9b42-dirty
#
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 2067fd92d75b6d9085a43caf050bca5d88c491b8
# 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(a)intel.com>
sparse warnings: (new ones prefixed by >>)
> drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse:
sparse: cast removes address space '__iomem' of expression
> drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: sparse: incorrect type
in argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: got void *
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: sparse: cast removes
address space '__iomem' of expression
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: got void *
drivers/accessibility/speakup/speakup_dtlk.c: note: in included file (through
arch/riscv/include/asm/io.h, include/linux/io.h,
drivers/accessibility/speakup/spk_types.h, ...):
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *
@@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem
*addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *
@@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem
*addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *
@@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem
*addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:564:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:564:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:564:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:564:16: sparse: got void *
--
> drivers/accessibility/speakup/serialio.c:139:9: sparse: sparse:
cast removes address space '__iomem' of expression
> drivers/accessibility/speakup/serialio.c:139:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:139:9:
sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:139:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:142:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:142:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:142:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:142:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:144:9: sparse: sparse: cast removes address
space '__iomem' of expression
> drivers/accessibility/speakup/serialio.c:144:9: sparse: sparse:
incorrect type in argument 1 (different address spaces) @@ expected void const
volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:144:9: sparse: expected void const volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:144:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:145:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:145:9: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:145:9: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:145:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:146:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:146:9: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:146:9: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:146:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:147:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:147:9: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:147:9: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:147:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:148:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:148:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:148:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:148:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:155:16: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:155:16: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:155:16: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:155:16: sparse: got void *
drivers/accessibility/speakup/serialio.c:160:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:160:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:160:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:160:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:165:19: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:165:19: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:165:19: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:165:19: sparse: got void *
drivers/accessibility/speakup/serialio.c:167:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:167:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:167:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:167:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:87:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:87:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:87:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:87:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:88:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:88:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:88:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:88:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:89:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:89:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:89:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:89:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:90:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:90:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:90:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:90:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:93:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:93:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:93:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:93:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:94:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:94:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:94:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:94:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:97:13: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:97:13: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:97:13: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:97:13: sparse: got void *
drivers/accessibility/speakup/serialio.c:208:9: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:208:9: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:208:9: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:208:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:230:16: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:230:16: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const volatile [noderef]
__iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:230:16: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:230:16: sparse: got void *
drivers/accessibility/speakup/serialio.c:299:25: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:299:25: sparse: sparse: incorrect type in
argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem
*addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:299:25: sparse: expected void volatile
[noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:299:25: sparse: got void *
drivers/accessibility/speakup/serialio.c: note: in included file (through
arch/riscv/include/asm/io.h, include/linux/io.h, include/linux/irq.h, ...):
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *
@@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem
*addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *
@@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem
*addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@
got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef]
__iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space
'__iomem' of expression
vim +/__iomem +334 drivers/accessibility/speakup/speakup_dtlk.c
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 315
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 316
static int synth_probe(struct spk_synth *synth)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 317 {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 318
unsigned int port_val = 0;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 319 int
i = 0;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 320
struct synth_settings *sp;
8e69a811068657 drivers/staging/speakup/speakup_dtlk.c Domagoj Trsan 2014-09-09 321
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 322
pr_info("Probing for DoubleTalk.\n");
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 323 if
(port_forced) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 324
speakup_info.port_tts = port_forced;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 325
pr_info("probe forced to %x by kernel command line\n",
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 326
speakup_info.port_tts);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 327 if
((port_forced & 0xf) != 0xf)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 328
pr_info("warning: port base should probably end with f\n");
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 329 if
(synth_request_region(speakup_info.port_tts - 1,
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 330
SYNTH_IO_EXTENT)) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 331
pr_warn("sorry, port already reserved\n");
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 332
return -EBUSY;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 333 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 @334
port_val = inw(speakup_info.port_tts - 1);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 335
synth_lpc = speakup_info.port_tts - 1;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 336 }
else {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 337 for
(i = 0; synth_portlist[i]; i++) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 338 if
(synth_request_region(synth_portlist[i],
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 339
SYNTH_IO_EXTENT))
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 340
continue;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 341
port_val = inw(synth_portlist[i]) & 0xfbff;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 342 if
(port_val == 0x107f) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 343
synth_lpc = synth_portlist[i];
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 344
speakup_info.port_tts = synth_lpc + 1;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 345
break;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 346 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 347
synth_release_region(synth_portlist[i],
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 348
SYNTH_IO_EXTENT);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 349 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 350 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 351
port_val &= 0xfbff;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 352 if
(port_val != 0x107f) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 353
pr_info("DoubleTalk PC: not found\n");
7aa4d5c8ffed00 drivers/staging/speakup/speakup_dtlk.c Alan Cox 2014-12-15 354 if
(synth_lpc)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 355
synth_release_region(synth_lpc, SYNTH_IO_EXTENT);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 356
return -ENODEV;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 357 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 358
while (inw_p(synth_lpc) != 0x147f)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 359
cpu_relax(); /* wait until it's ready */
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 360 sp =
synth_interrogate(synth);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 361
pr_info("%s: %03x-%03x, ROM ver %s, s/n %u, driver: %s\n",
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 362
synth->long_name, synth_lpc, synth_lpc + SYNTH_IO_EXTENT - 1,
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 363
sp->rom_version, sp->serial_number, synth->version);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 364
synth->alive = 1;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 365
return 0;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 366 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 367
:::::: The code at line 334 was first introduced by commit
:::::: c6e3fd22cd538365bfeb82997d5b89562e077d42 Staging: add speakup to the staging
directory
:::::: TO: William Hubbs <w.d.hubbs(a)gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org