Lines Matching +full:serial +full:- +full:number
1 // SPDX-License-Identifier: GPL-2.0-only
46 the board doesn't correctly handle word accesses - only
92 static unsigned int irq; /* interrupt number IRQ */
100 static unsigned int numboards; /* number of installed boards */
103 static unsigned int WriteErrorCount; /* number of write error */
104 static unsigned int ReadErrorCount; /* number of read error */
105 static unsigned int DeviceErrorCount; /* number of device error */
147 if (apbs[boardno - 1].RamIO) { in ac_register_board()
149 boardno, physloc, boardno, apbs[boardno-1].PhysIO); in ac_register_board()
153 boardno--; in ac_register_board()
192 /* No mem and irq given - check for a PCI card */ in applicom_init()
201 return -EIO; in applicom_init()
212 return -EIO; in applicom_init()
216 applicom_pci_devnames[dev->device-1], in applicom_init()
218 dev->irq); in applicom_init()
229 if (request_irq(dev->irq, &ac_interrupt, IRQF_SHARED, "Applicom PCI", &dummy)) { in applicom_init()
230 printk(KERN_INFO "Could not allocate IRQ %d for PCI Applicom device.\n", dev->irq); in applicom_init()
233 apbs[boardno - 1].RamIO = NULL; in applicom_init()
239 writeb(0x40, apbs[boardno - 1].RamIO + RAM_IT_FROM_PC); in applicom_init()
241 apbs[boardno - 1].irq = dev->irq; in applicom_init()
253 return -ENXIO; in applicom_init()
279 apbs[boardno - 1].RamIO = NULL; in applicom_init()
282 apbs[boardno - 1].irq = irq; in applicom_init()
285 apbs[boardno - 1].irq = 0; in applicom_init()
308 int serial; in applicom_init() local
309 char boardname[(SERIAL_NUMBER - TYPE_CARD) + 1]; in applicom_init()
314 for (serial = 0; serial < SERIAL_NUMBER - TYPE_CARD; serial++) in applicom_init()
315 boardname[serial] = readb(apbs[i].RamIO + TYPE_CARD + serial); in applicom_init()
317 boardname[serial] = 0; in applicom_init()
325 serial = (readb(apbs[i].RamIO + SERIAL_NUMBER) << 16) + in applicom_init()
329 if (serial != 0) in applicom_init()
330 printk(" S/N %d\n", serial); in applicom_init()
338 return -ENXIO; in applicom_init()
357 unsigned int NumCard; /* Board number 1 -> 8 */ in ac_write()
358 unsigned int IndexCard; /* Index board number 0 -> 7 */ in ac_write()
373 warncount--; in ac_write()
375 return -EINVAL; in ac_write()
379 return -EFAULT; in ac_write()
383 return -EFAULT; in ac_write()
385 NumCard = st_loc.num_card; /* board number to send */ in ac_write()
386 TicCard = st_loc.tic_des_from_pc; /* tic number to send */ in ac_write()
387 IndexCard = NumCard - 1; in ac_write()
390 return -EINVAL; in ac_write()
394 return -EINVAL; in ac_write()
431 return -EIO; in ac_write()
448 return -EINTR; in ac_write()
460 /* Which is best - lock down the pages with rawio and then in ac_write()
492 st_loc->tic_owner_to_pc = readb(apbs[IndexCard].RamIO + TIC_OWNER_TO_PC); in do_ac_read()
493 st_loc->numcard_owner_to_pc = readb(apbs[IndexCard].RamIO + NUMCARD_OWNER_TO_PC); in do_ac_read()
551 return -EINVAL; in ac_read()
579 return -EFAULT; in ac_read()
581 return -EFAULT; in ac_read()
596 return -EIO; in ac_read()
605 /* OK - No boards had data for us. Sleep now */ in ac_read()
611 return -EINTR; in ac_read()
682 i--; in ac_interrupt()
717 IndexCard = adgl->num_card-1; in ac_ioctl()
733 ret = -EFAULT; in ac_ioctl()
738 adgl->conf_end_test[i] = readb(pmem++); in ac_ioctl()
740 adgl->error_code[i] = readb(pmem++); in ac_ioctl()
742 adgl->parameter_error[i] = readb(pmem++); in ac_ioctl()
744 adgl->vers = readb(pmem); in ac_ioctl()
747 adgl->reserv1[i] = readb(pmem++); in ac_ioctl()
748 *(int *)&adgl->reserv1[20] = in ac_ioctl()
754 ret = -EFAULT; in ac_ioctl()
760 writeb(adgl->data_from_pc_ready, in ac_ioctl()
773 writeb(adgl->tic_des_from_pc, pmem); in ac_ioctl()
777 adgl->tic_owner_to_pc = readb(pmem++); in ac_ioctl()
778 adgl->numcard_owner_to_pc = readb(pmem); in ac_ioctl()
780 ret = -EFAULT; in ac_ioctl()
783 writeb(adgl->num_card, apbs[IndexCard].RamIO + NUMCARD_OWNER_TO_PC); in ac_ioctl()
784 writeb(adgl->num_card, apbs[IndexCard].RamIO + NUMCARD_DES_FROM_PC); in ac_ioctl()
785 writeb(adgl->num_card, apbs[IndexCard].RamIO + NUMCARD_ACK_FROM_PC); in ac_ioctl()
791 printk(KERN_INFO "Number of installed boards . %d\n", (int) numboards); in ac_ioctl()
793 printk(KERN_INFO "Interrupt IRQ number ....... %d\n", (int) irq); in ac_ioctl()
795 int serial; in ac_ioctl() local
796 char boardname[(SERIAL_NUMBER - TYPE_CARD) + 1]; in ac_ioctl()
801 for (serial = 0; serial < SERIAL_NUMBER - TYPE_CARD; serial++) in ac_ioctl()
802 boardname[serial] = readb(apbs[i].RamIO + TYPE_CARD + serial); in ac_ioctl()
803 boardname[serial] = 0; in ac_ioctl()
812 serial = (readb(apbs[i].RamIO + SERIAL_NUMBER) << 16) + in ac_ioctl()
816 if (serial != 0) in ac_ioctl()
817 printk(" S/N %d\n", serial); in ac_ioctl()
835 ret = -ENOTTY; in ac_ioctl()
845 pr_warn("APPLICOM driver IOCTL, bad board number %d\n", in ac_ioctl()
847 warncount--; in ac_ioctl()
851 return -EINVAL; in ac_ioctl()