Lines Matching +full:total +full:- +full:timeout

1 // SPDX-License-Identifier: GPL-2.0-only
2 /* -*- linux-c -*-
3 * dtlk.c - DoubleTalk PC driver for Linux
8 * 2000-03-18 Jim Van Zandt: Fix polling.
20 The DoubleTalk PC contains four voice synthesizers: text-to-speech
40 This driver was written for use with the text-to-speech
57 #include <linux/errno.h> /* for -EBUSY */
134 /* printk("DoubleTalk PC - dtlk_read()\n"); */ in dtlk_read()
137 return -EINVAL; in dtlk_read()
144 return -EFAULT; in dtlk_read()
149 if (file->f_flags & O_NONBLOCK) in dtlk_read()
156 return -EAGAIN; in dtlk_read()
171 return -EFAULT; in dtlk_write()
182 return -EINVAL; in dtlk_write()
198 /* the RDY bit goes zero 2-3 usec in dtlk_write()
200 180-190 usec later. Here, we wait in dtlk_write()
214 if (file->f_flags & O_NONBLOCK) in dtlk_write()
221 printk("dtlk: write timeout. " in dtlk_write()
225 return -EBUSY; in dtlk_write()
229 return -EAGAIN; in dtlk_write()
241 printk("<%ld>", jiffies-j); in dtlk_poll()
285 return -EINVAL; in dtlk_ioctl()
293 return -EINVAL; in dtlk_ioctl()
305 return -EBUSY; in dtlk_open()
309 return -ENXIO; in dtlk_open()
340 printk(KERN_ERR "DoubleTalk PC - cannot register device\n"); in dtlk_init()
371 /* ------------------------------------------------------------------------ */
397 return -EBUSY; in dtlk_dev_probe()
401 printk("DoubleTalk PC - Port %03x = %04x\n", in dtlk_dev_probe()
414 printk("DoubleTalk PC at %03x-%03x, " in dtlk_dev_probe()
417 DTLK_IO_EXTENT - 1, in dtlk_dev_probe()
418 sp->rom_version, sp->serial_number); in dtlk_dev_probe()
497 printk(KERN_INFO "DoubleTalk PC - not found\n"); in dtlk_dev_probe()
498 return -ENODEV; in dtlk_dev_probe()
504 printk(KERN_INFO"\nDoubleTalk PC - MINOR: %d, OPCODE: %d, ERROR: %d\n",
515 int total, i; in dtlk_interrogate() local
519 for (total = 0, i = 0; i < 50; i++) { in dtlk_interrogate()
520 buf[total] = dtlk_read_tts(); in dtlk_interrogate()
521 if (total > 2 && buf[total] == 0x7f) in dtlk_interrogate()
523 if (total < sizeof(struct dtlk_settings)) in dtlk_interrogate()
524 total++; in dtlk_interrogate()
540 if (i < sizeof(status.rom_version) - 1) in dtlk_interrogate()
578 printk(KERN_ERR "dtlk_read_tts() timeout\n"); in dtlk_read_tts()
590 printk(KERN_ERR "dtlk_read_tts() timeout\n"); in dtlk_read_tts()
602 /* no need to test -- this is only called when the port is readable */ in dtlk_read_lpc()
608 /* acknowledging a read takes 3-4 in dtlk_read_lpc()
612 while (inb_p(dtlk_port_lpc) != 0x7f && --retries > 0); in dtlk_read_lpc()
614 printk(KERN_ERR "dtlk_read_lpc() timeout\n"); in dtlk_read_lpc()
624 /* printk("dtlk_write_bytes(\"%-*s\", %d)\n", n, buf, n); */ in dtlk_write_bytes()
626 while (n-- > 0) in dtlk_write_bytes()
647 printk(KERN_ERR "dtlk_write_tts() timeout\n"); in dtlk_write_tts()
650 /* the RDY bit goes zero 2-3 usec after writing, and goes in dtlk_write_tts()
651 1 again 180-190 usec later. Here, we wait up to 10 in dtlk_write_tts()