Lines Matching +full:mode +full:- +full:xxx
1 // SPDX-License-Identifier: GPL-2.0
4 * National Instruments boards using tnt4882 or compatible chips (at-gpib, etc).
38 // Measurement Computing PCI-488 same design as PCI-GPIB with TNT5004
65 iowrite8(AUX_PAGEIN, priv->nec7210_priv.mmiobase + AUXMR * priv->nec7210_priv.offset); in tnt_paged_readb()
67 return ioread8(priv->nec7210_priv.mmiobase + offset); in tnt_paged_readb()
73 iowrite8(AUX_PAGEIN, priv->nec7210_priv.mmiobase + AUXMR * priv->nec7210_priv.offset); in tnt_paged_writeb()
75 iowrite8(value, priv->nec7210_priv.mmiobase + offset); in tnt_paged_writeb()
81 void __iomem *address = priv->nec7210_priv.mmiobase + offset; in tnt_readb()
84 spinlock_t *register_lock = &priv->nec7210_priv.register_page_lock; in tnt_readb()
92 switch (priv->nec7210_priv.type) { in tnt_readb()
98 retval = tnt_paged_readb(priv, offset - tnt_pagein_offset); in tnt_readb()
118 void __iomem *address = priv->nec7210_priv.mmiobase + offset; in tnt_writeb()
120 spinlock_t *register_lock = &priv->nec7210_priv.register_page_lock; in tnt_writeb()
127 switch (priv->nec7210_priv.type) { in tnt_writeb()
133 tnt_paged_writeb(priv, value, offset - tnt_pagein_offset); in tnt_writeb()
157 tnt_priv = board->private_data; in tnt4882_line_status()
183 struct tnt4882_priv *tnt_priv = board->private_data; in tnt4882_t1_delay()
184 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in tnt4882_t1_delay()
188 if (nec_priv->type == NEC7210) in tnt4882_t1_delay()
242 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in drain_fifo_words()
247 word = ioread16(nec_priv->mmiobase + FIFOB); in drain_fifo_words()
256 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in tnt4882_release_holdoff()
262 * tnt4882 not in one-chip mode won't always release holdoff unless we in tnt4882_release_holdoff()
263 * are in the right mode when release handshake command is given in tnt4882_release_holdoff()
265 if (sasr_bits & AEHS_BIT) /* holding off due to holdoff on end mode*/ { in tnt4882_release_holdoff()
268 } else if (sasr_bits & ANHS1_BIT) { /* held off due to holdoff on all data mode*/ in tnt4882_release_holdoff()
283 struct tnt4882_priv *tnt_priv = board->private_data; in tnt4882_accel_read()
284 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in tnt4882_accel_read()
291 clear_bit(DEV_CLEAR_BN, &nec_priv->state); in tnt4882_accel_read()
292 clear_bit(ADR_CHANGE_BN, &nec_priv->state); in tnt4882_accel_read()
295 if (nec_priv->type != TNT4882 && nec_priv->type != TNT5004) in tnt4882_accel_read()
299 tnt_writeb(tnt_priv, nec_priv->auxa_bits | HR_HLDA, CCR); in tnt4882_accel_read()
305 hw_count = -length; in tnt4882_accel_read()
316 spin_lock_irqsave(&board->spinlock, flags); in tnt4882_accel_read()
317 tnt_priv->imr3_bits |= HR_DONE | HR_NEF; in tnt4882_accel_read()
318 tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in tnt4882_accel_read()
319 spin_unlock_irqrestore(&board->spinlock, flags); in tnt4882_accel_read()
322 test_bit(RECEIVED_END_BN, &nec_priv->state) == 0 && in tnt4882_accel_read()
325 if (wait_event_interruptible(board->wait, in tnt4882_accel_read()
328 test_bit(RECEIVED_END_BN, &nec_priv->state) || in tnt4882_accel_read()
329 test_bit(DEV_CLEAR_BN, &nec_priv->state) || in tnt4882_accel_read()
330 test_bit(ADR_CHANGE_BN, &nec_priv->state) || in tnt4882_accel_read()
331 test_bit(TIMO_NUM, &board->status))) { in tnt4882_accel_read()
332 retval = -ERESTARTSYS; in tnt4882_accel_read()
335 if (test_bit(TIMO_NUM, &board->status)) { in tnt4882_accel_read()
336 retval = -ETIMEDOUT; in tnt4882_accel_read()
339 if (test_bit(DEV_CLEAR_BN, &nec_priv->state)) { in tnt4882_accel_read()
340 retval = -EINTR; in tnt4882_accel_read()
343 if (test_bit(ADR_CHANGE_BN, &nec_priv->state)) { in tnt4882_accel_read()
344 retval = -EINTR; in tnt4882_accel_read()
348 spin_lock_irqsave(&board->spinlock, flags); in tnt4882_accel_read()
349 count += drain_fifo_words(tnt_priv, &buffer[count], length - count); in tnt4882_accel_read()
350 tnt_priv->imr3_bits |= HR_NEF; in tnt4882_accel_read()
351 tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in tnt4882_accel_read()
352 spin_unlock_irqrestore(&board->spinlock, flags); in tnt4882_accel_read()
359 spin_lock_irqsave(&board->spinlock, flags); in tnt4882_accel_read()
360 tnt_priv->imr3_bits |= HR_DONE | HR_NEF; in tnt4882_accel_read()
361 tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in tnt4882_accel_read()
362 spin_unlock_irqrestore(&board->spinlock, flags); in tnt4882_accel_read()
364 if (wait_event_interruptible(board->wait, in tnt4882_accel_read()
366 test_bit(RECEIVED_END_BN, &nec_priv->state) || in tnt4882_accel_read()
367 test_bit(DEV_CLEAR_BN, &nec_priv->state) || in tnt4882_accel_read()
368 test_bit(ADR_CHANGE_BN, &nec_priv->state) || in tnt4882_accel_read()
369 test_bit(TIMO_NUM, &board->status))) { in tnt4882_accel_read()
370 retval = -ERESTARTSYS; in tnt4882_accel_read()
372 if (test_bit(TIMO_NUM, &board->status)) in tnt4882_accel_read()
373 retval = -ETIMEDOUT; in tnt4882_accel_read()
374 if (test_bit(DEV_CLEAR_BN, &nec_priv->state)) in tnt4882_accel_read()
375 retval = -EINTR; in tnt4882_accel_read()
376 if (test_bit(ADR_CHANGE_BN, &nec_priv->state)) in tnt4882_accel_read()
377 retval = -EINTR; in tnt4882_accel_read()
378 count += drain_fifo_words(tnt_priv, &buffer[count], length - count); in tnt4882_accel_read()
395 if (test_and_clear_bit(RECEIVED_END_BN, &nec_priv->state)) in tnt4882_accel_read()
401 set_bit(RFD_HOLDOFF_BN, &nec_priv->state); in tnt4882_accel_read()
428 return -count; in tnt_transfer_count()
434 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in write_wait()
436 if (wait_event_interruptible(board->wait, in write_wait()
439 test_bit(BUS_ERROR_BN, &nec_priv->state) || in write_wait()
440 test_bit(DEV_CLEAR_BN, &nec_priv->state) || in write_wait()
441 test_bit(TIMO_NUM, &board->status))) in write_wait()
442 return -ERESTARTSYS; in write_wait()
444 if (test_bit(TIMO_NUM, &board->status)) in write_wait()
445 return -ETIMEDOUT; in write_wait()
446 if (test_and_clear_bit(BUS_ERROR_BN, &nec_priv->state)) in write_wait()
447 return (send_commands) ? -ENOTCONN : -ECOMM; in write_wait()
448 if (test_bit(DEV_CLEAR_BN, &nec_priv->state)) in write_wait()
449 return -EINTR; in write_wait()
458 struct tnt4882_priv *tnt_priv = board->private_data; in generic_write()
459 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in generic_write()
466 clear_bit(DEV_CLEAR_BN, &nec_priv->state); in generic_write()
470 if (nec_priv->type != TNT4882 && nec_priv->type != TNT5004) in generic_write()
481 if (nec_priv->type != TNT4882 && nec_priv->type != TNT5004) in generic_write()
489 hw_count = -length; in generic_write()
498 spin_lock_irqsave(&board->spinlock, flags); in generic_write()
499 tnt_priv->imr3_bits |= HR_DONE; in generic_write()
500 tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in generic_write()
501 spin_unlock_irqrestore(&board->spinlock, flags); in generic_write()
510 spin_lock_irqsave(&board->spinlock, flags); in generic_write()
517 iowrite16(word, nec_priv->mmiobase + FIFOB); in generic_write()
520 // tnt_priv->imr3_bits |= HR_NFF; in generic_write()
521 // tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in generic_write()
522 spin_unlock_irqrestore(&board->spinlock, flags); in generic_write()
541 *bytes_written = length - tnt_transfer_count(tnt_priv); in generic_write()
559 struct tnt4882_priv *priv = board->private_data; in tnt4882_internal_interrupt()
563 spin_lock_irqsave(&board->spinlock, flags); in tnt4882_internal_interrupt()
565 nec7210_interrupt(board, &priv->nec7210_priv); in tnt4882_internal_interrupt()
569 imr3_bits = priv->imr3_bits; in tnt4882_internal_interrupt()
573 // XXX don't need this wakeup, one below should do? in tnt4882_internal_interrupt()
574 // wake_up_interruptible(&board->wait); in tnt4882_internal_interrupt()
577 priv->imr3_bits &= ~HR_NFF; in tnt4882_internal_interrupt()
579 priv->imr3_bits &= ~HR_NEF; in tnt4882_internal_interrupt()
581 priv->imr3_bits &= ~HR_DONE; in tnt4882_internal_interrupt()
583 dev_dbg(board->gpib_dev, "minor %i isr0 0x%x imr0 0x%x isr3 0x%x imr3 0x%x\n", in tnt4882_internal_interrupt()
584 board->minor, isr0_bits, priv->imr0_bits, isr3_bits, imr3_bits); in tnt4882_internal_interrupt()
585 tnt_writeb(priv, priv->imr3_bits, IMR3); in tnt4882_internal_interrupt()
586 wake_up_interruptible(&board->wait); in tnt4882_internal_interrupt()
588 spin_unlock_irqrestore(&board->spinlock, flags); in tnt4882_internal_interrupt()
601 struct tnt4882_priv *priv = board->private_data; in tnt4882_read()
602 struct nec7210_priv *nec_priv = &priv->nec7210_priv; in tnt4882_read()
606 retval = nec7210_read(board, &priv->nec7210_priv, buffer, length, end, bytes_read); in tnt4882_read()
611 set_bit(RFD_HOLDOFF_BN, &nec_priv->state); in tnt4882_read()
621 struct tnt4882_priv *priv = board->private_data; in tnt4882_write()
623 return nec7210_write(board, &priv->nec7210_priv, buffer, length, send_eoi, bytes_written); in tnt4882_write()
629 struct tnt4882_priv *priv = board->private_data; in tnt4882_command_unaccel()
631 return nec7210_command(board, &priv->nec7210_priv, buffer, length, bytes_written); in tnt4882_command_unaccel()
636 struct tnt4882_priv *priv = board->private_data; in tnt4882_take_control()
638 return nec7210_take_control(board, &priv->nec7210_priv, synchronous); in tnt4882_take_control()
643 struct tnt4882_priv *priv = board->private_data; in tnt4882_go_to_standby()
645 return nec7210_go_to_standby(board, &priv->nec7210_priv); in tnt4882_go_to_standby()
650 struct tnt4882_priv *priv = board->private_data; in tnt4882_request_system_control()
657 retval = nec7210_request_system_control(board, &priv->nec7210_priv, request_control); in tnt4882_request_system_control()
667 struct tnt4882_priv *priv = board->private_data; in tnt4882_interface_clear()
669 nec7210_interface_clear(board, &priv->nec7210_priv, assert); in tnt4882_interface_clear()
674 struct tnt4882_priv *priv = board->private_data; in tnt4882_remote_enable()
676 nec7210_remote_enable(board, &priv->nec7210_priv, enable); in tnt4882_remote_enable()
681 struct tnt4882_priv *priv = board->private_data; in tnt4882_enable_eos()
683 return nec7210_enable_eos(board, &priv->nec7210_priv, eos_byte, compare_8_bits); in tnt4882_enable_eos()
688 struct tnt4882_priv *priv = board->private_data; in tnt4882_disable_eos()
690 nec7210_disable_eos(board, &priv->nec7210_priv); in tnt4882_disable_eos()
697 struct tnt4882_priv *priv = board->private_data; in tnt4882_update_status()
699 spin_lock_irqsave(&board->spinlock, flags); in tnt4882_update_status()
700 board->status &= ~clear_mask; in tnt4882_update_status()
701 nec7210_update_status_nolock(board, &priv->nec7210_priv); in tnt4882_update_status()
705 set_bit(SRQI_NUM, &board->status); in tnt4882_update_status()
707 clear_bit(SRQI_NUM, &board->status); in tnt4882_update_status()
708 spin_unlock_irqrestore(&board->spinlock, flags); in tnt4882_update_status()
709 return board->status; in tnt4882_update_status()
714 struct tnt4882_priv *priv = board->private_data; in tnt4882_primary_address()
716 return nec7210_primary_address(board, &priv->nec7210_priv, address); in tnt4882_primary_address()
721 struct tnt4882_priv *priv = board->private_data; in tnt4882_secondary_address()
723 return nec7210_secondary_address(board, &priv->nec7210_priv, address, enable); in tnt4882_secondary_address()
728 struct tnt4882_priv *tnt_priv = board->private_data; in tnt4882_parallel_poll()
730 if (tnt_priv->nec7210_priv.type != NEC7210) { in tnt4882_parallel_poll()
731 tnt_priv->auxg_bits |= RPP2_BIT; in tnt4882_parallel_poll()
732 write_byte(&tnt_priv->nec7210_priv, tnt_priv->auxg_bits, AUXMR); in tnt4882_parallel_poll()
734 *result = read_byte(&tnt_priv->nec7210_priv, CPTR); in tnt4882_parallel_poll()
735 tnt_priv->auxg_bits &= ~RPP2_BIT; in tnt4882_parallel_poll()
736 write_byte(&tnt_priv->nec7210_priv, tnt_priv->auxg_bits, AUXMR); in tnt4882_parallel_poll()
739 return nec7210_parallel_poll(board, &tnt_priv->nec7210_priv, result); in tnt4882_parallel_poll()
745 struct tnt4882_priv *priv = board->private_data; in tnt4882_parallel_poll_configure()
747 if (priv->nec7210_priv.type == TNT5004) { in tnt4882_parallel_poll_configure()
749 write_byte(&priv->nec7210_priv, AUXRI | 0x4, AUXMR); in tnt4882_parallel_poll_configure()
752 write_byte(&priv->nec7210_priv, PPR | config, AUXMR); in tnt4882_parallel_poll_configure()
755 write_byte(&priv->nec7210_priv, PPR | 0x10, AUXMR); in tnt4882_parallel_poll_configure()
757 nec7210_parallel_poll_configure(board, &priv->nec7210_priv, config); in tnt4882_parallel_poll_configure()
763 struct tnt4882_priv *priv = board->private_data; in tnt4882_parallel_poll_response()
765 nec7210_parallel_poll_response(board, &priv->nec7210_priv, ist); in tnt4882_parallel_poll_response()
774 struct tnt4882_priv *priv = board->private_data; in tnt4882_serial_poll_response()
776 nec7210_serial_poll_response(board, &priv->nec7210_priv, status); in tnt4882_serial_poll_response()
782 struct tnt4882_priv *priv = board->private_data; in tnt4882_serial_poll_response2()
788 spin_lock_irqsave(&board->spinlock, flags); in tnt4882_serial_poll_response2()
790 priv->nec7210_priv.srq_pending = 1; in tnt4882_serial_poll_response2()
791 clear_bit(SPOLL_NUM, &board->status); in tnt4882_serial_poll_response2()
794 priv->nec7210_priv.srq_pending = 0; in tnt4882_serial_poll_response2()
803 write_byte(&priv->nec7210_priv, AUX_REQT, AUXMR); in tnt4882_serial_poll_response2()
805 write_byte(&priv->nec7210_priv, AUX_REQF, AUXMR); in tnt4882_serial_poll_response2()
809 * serial poll mode SP1, and not accidentally triggering mode SP3. in tnt4882_serial_poll_response2()
811 write_byte(&priv->nec7210_priv, status & ~request_service_bit, SPMR); in tnt4882_serial_poll_response2()
812 spin_unlock_irqrestore(&board->spinlock, flags); in tnt4882_serial_poll_response2()
817 struct tnt4882_priv *priv = board->private_data; in tnt4882_serial_poll_status()
819 return nec7210_serial_poll_status(board, &priv->nec7210_priv); in tnt4882_serial_poll_status()
824 struct tnt4882_priv *priv = board->private_data; in tnt4882_return_to_local()
826 nec7210_return_to_local(board, &priv->nec7210_priv); in tnt4882_return_to_local()
831 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in tnt4882_board_reset()
833 tnt_priv->imr0_bits = 0; in tnt4882_board_reset()
834 tnt_writeb(tnt_priv, tnt_priv->imr0_bits, IMR0); in tnt4882_board_reset()
835 tnt_priv->imr3_bits = 0; in tnt4882_board_reset()
836 tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in tnt4882_board_reset()
846 board->private_data = kmalloc(sizeof(struct tnt4882_priv), GFP_KERNEL); in tnt4882_allocate_private()
847 if (!board->private_data) in tnt4882_allocate_private()
848 return -1; in tnt4882_allocate_private()
849 tnt_priv = board->private_data; in tnt4882_allocate_private()
851 init_nec7210_private(&tnt_priv->nec7210_priv); in tnt4882_allocate_private()
857 kfree(board->private_data); in tnt4882_free_private()
858 board->private_data = NULL; in tnt4882_free_private()
863 struct nec7210_priv *nec_priv = &tnt_priv->nec7210_priv; in tnt4882_init()
869 // turn off one-chip mode in tnt4882_init()
872 // make sure we are in 7210 mode in tnt4882_init()
878 // turn on one-chip mode in tnt4882_init()
879 if (nec_priv->type == TNT4882 || nec_priv->type == TNT5004) in tnt4882_init()
885 // read-clear isr0 in tnt4882_init()
889 tnt_priv->imr3_bits = HR_TLCI; in tnt4882_init()
890 tnt_writeb(tnt_priv, tnt_priv->imr3_bits, IMR3); in tnt4882_init()
896 write_byte(&tnt_priv->nec7210_priv, AUX_HLDI, AUXMR); in tnt4882_init()
898 set_bit(RFD_HOLDOFF_BN, &nec_priv->state); in tnt4882_init()
900 tnt_priv->auxg_bits = AUXRG | NTNL_BIT; in tnt4882_init()
901 write_byte(&tnt_priv->nec7210_priv, tnt_priv->auxg_bits, AUXMR); in tnt4882_init()
905 tnt_priv->imr0_bits = TNT_IMR0_ALWAYS_BITS | TNT_ATNI_BIT | TNT_IFCIE_BIT; in tnt4882_init()
906 tnt_writeb(tnt_priv, tnt_priv->imr0_bits, IMR0); in tnt4882_init()
917 board->status = 0; in ni_pci_attach()
920 return -ENOMEM; in ni_pci_attach()
921 tnt_priv = board->private_data; in ni_pci_attach()
922 nec_priv = &tnt_priv->nec7210_priv; in ni_pci_attach()
923 nec_priv->type = TNT4882; in ni_pci_attach()
924 nec_priv->read_byte = nec7210_locking_iomem_read_byte; in ni_pci_attach()
925 nec_priv->write_byte = nec7210_locking_iomem_write_byte; in ni_pci_attach()
926 nec_priv->offset = atgpib_reg_offset; in ni_pci_attach()
929 return -ENODEV; in ni_pci_attach()
931 for (mite = mite_devices; mite; mite = mite->next) { in ni_pci_attach()
934 if (mite->used) in ni_pci_attach()
936 if (config->pci_bus >= 0 && config->pci_bus != mite->pcidev->bus->number) in ni_pci_attach()
938 if (config->pci_slot >= 0 && config->pci_slot != PCI_SLOT(mite->pcidev->devfn)) in ni_pci_attach()
948 // support for Measurement Computing PCI-488 in ni_pci_attach()
961 return -ENODEV; in ni_pci_attach()
963 tnt_priv->mite = mite; in ni_pci_attach()
964 retval = mite_setup(tnt_priv->mite); in ni_pci_attach()
968 nec_priv->mmiobase = tnt_priv->mite->daq_io_addr; in ni_pci_attach()
971 retval = request_irq(mite_irq(tnt_priv->mite), tnt4882_interrupt, isr_flags, "ni-pci-gpib", in ni_pci_attach()
974 dev_err(board->gpib_dev, "failed to obtain pci irq %d\n", mite_irq(tnt_priv->mite)); in ni_pci_attach()
977 tnt_priv->irq = mite_irq(tnt_priv->mite); in ni_pci_attach()
982 nec_priv->type = TNT4882; in ni_pci_attach()
985 nec_priv->type = TNT5004; in ni_pci_attach()
995 struct tnt4882_priv *tnt_priv = board->private_data; in ni_pci_detach()
999 nec_priv = &tnt_priv->nec7210_priv; in ni_pci_detach()
1001 if (nec_priv->mmiobase) in ni_pci_detach()
1003 if (tnt_priv->irq) in ni_pci_detach()
1004 free_irq(tnt_priv->irq, board); in ni_pci_detach()
1005 if (tnt_priv->mite) in ni_pci_detach()
1006 mite_unsetup(tnt_priv->mite); in ni_pci_detach()
1015 if (!*dev || !(*dev)->card) in ni_isapnp_find()
1016 return -ENODEV; in ni_isapnp_find()
1018 return -EBUSY; in ni_isapnp_find()
1021 return -EAGAIN; in ni_isapnp_find()
1025 return -EINVAL; in ni_isapnp_find()
1040 board->status = 0; in ni_isa_attach_common()
1043 return -ENOMEM; in ni_isa_attach_common()
1044 tnt_priv = board->private_data; in ni_isa_attach_common()
1045 nec_priv = &tnt_priv->nec7210_priv; in ni_isa_attach_common()
1046 nec_priv->type = chipset; in ni_isa_attach_common()
1047 nec_priv->read_byte = nec7210_locking_ioport_read_byte; in ni_isa_attach_common()
1048 nec_priv->write_byte = nec7210_locking_ioport_write_byte; in ni_isa_attach_common()
1049 nec_priv->offset = atgpib_reg_offset; in ni_isa_attach_common()
1051 // look for plug-n-play board in ni_isa_attach_common()
1052 if (config->ibbase == 0) { in ni_isa_attach_common()
1058 tnt_priv->pnp_dev = dev; in ni_isa_attach_common()
1062 iobase = config->ibbase; in ni_isa_attach_common()
1063 irq = config->ibirq; in ni_isa_attach_common()
1067 return -EBUSY; in ni_isa_attach_common()
1069 nec_priv->mmiobase = ioport_map(iobase, atgpib_iosize); in ni_isa_attach_common()
1070 if (!nec_priv->mmiobase) in ni_isa_attach_common()
1071 return -EBUSY; in ni_isa_attach_common()
1076 dev_err(board->gpib_dev, "failed to request ISA irq %d\n", irq); in ni_isa_attach_common()
1079 tnt_priv->irq = irq; in ni_isa_attach_common()
1103 struct tnt4882_priv *tnt_priv = board->private_data; in ni_isa_detach()
1107 nec_priv = &tnt_priv->nec7210_priv; in ni_isa_detach()
1108 if (nec_priv->iobase) in ni_isa_detach()
1110 if (tnt_priv->irq) in ni_isa_detach()
1111 free_irq(tnt_priv->irq, board); in ni_isa_detach()
1112 if (nec_priv->mmiobase) in ni_isa_detach()
1113 ioport_unmap(nec_priv->mmiobase); in ni_isa_detach()
1114 if (nec_priv->iobase) in ni_isa_detach()
1115 release_region(nec_priv->iobase, atgpib_iosize); in ni_isa_detach()
1116 if (tnt_priv->pnp_dev) in ni_isa_detach()
1117 pnp_device_detach(tnt_priv->pnp_dev); in ni_isa_detach()
1144 .local_parallel_poll_mode = NULL, // XXX
1172 .local_parallel_poll_mode = NULL, // XXX
1200 .local_parallel_poll_mode = NULL, // XXX
1228 .local_parallel_poll_mode = NULL, // XXX
1256 .local_parallel_poll_mode = NULL, // XXX
1284 .local_parallel_poll_mode = NULL, // XXX
1312 .local_parallel_poll_mode = NULL, // XXX
1340 .local_parallel_poll_mode = NULL, // XXX
1359 // support for Measurement Computing PCI-488
1540 * You may not want to use a linked list for this -- for example, the
1568 /* Allocate space for private device-specific data */ in ni_gpib_probe()
1571 return -ENOMEM; in ni_gpib_probe()
1573 info->p_dev = link; in ni_gpib_probe()
1574 link->priv = info; in ni_gpib_probe()
1581 * device, and can be hard-wired here. in ni_gpib_probe()
1583 link->config_flags = CONF_ENABLE_IRQ | CONF_AUTO_SET_IO; in ni_gpib_probe()
1591 * This deletes a driver "instance". The device is de-registered
1598 struct local_info_t *info = link->priv; in ni_gpib_remove()
1599 //struct struct gpib_board *dev = info->dev; in ni_gpib_remove()
1601 if (info->dev) in ni_gpib_remove()
1602 ni_pcmcia_detach(info->dev); in ni_gpib_remove()
1627 //struct local_info_t *info = link->priv; in ni_gpib_config()
1628 //struct gpib_board *dev = info->dev; in ni_gpib_config()
1633 dev_warn(&link->dev, "no configuration found\n"); in ni_gpib_config()
1658 //struct local_info_t *info = link->priv; in ni_gpib_suspend()
1659 //struct struct gpib_board *dev = info->dev; in ni_gpib_suspend()
1661 if (link->open) in ni_gpib_suspend()
1662 dev_warn(&link->dev, "Device still open\n"); in ni_gpib_suspend()
1670 //struct local_info_t *info = link->priv; in ni_gpib_resume()
1671 //struct struct gpib_board *dev = info->dev; in ni_gpib_resume()
1673 /*if (link->open) { in ni_gpib_resume()
1683 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0c71), // NI PCMCIA-GPIB+
1721 return -ENODEV; in ni_pcmcia_attach()
1723 info = curr_dev->priv; in ni_pcmcia_attach()
1724 info->dev = board; in ni_pcmcia_attach()
1726 board->status = 0; in ni_pcmcia_attach()
1729 return -ENOMEM; in ni_pcmcia_attach()
1731 tnt_priv = board->private_data; in ni_pcmcia_attach()
1732 nec_priv = &tnt_priv->nec7210_priv; in ni_pcmcia_attach()
1733 nec_priv->type = TNT4882; in ni_pcmcia_attach()
1734 nec_priv->read_byte = nec7210_locking_ioport_read_byte; in ni_pcmcia_attach()
1735 nec_priv->write_byte = nec7210_locking_ioport_write_byte; in ni_pcmcia_attach()
1736 nec_priv->offset = atgpib_reg_offset; in ni_pcmcia_attach()
1738 if (!request_region(curr_dev->resource[0]->start, resource_size(curr_dev->resource[0]), in ni_pcmcia_attach()
1740 return -ENOMEM; in ni_pcmcia_attach()
1742 nec_priv->mmiobase = ioport_map(curr_dev->resource[0]->start, in ni_pcmcia_attach()
1743 resource_size(curr_dev->resource[0])); in ni_pcmcia_attach()
1744 if (!nec_priv->mmiobase) in ni_pcmcia_attach()
1745 return -ENOMEM; in ni_pcmcia_attach()
1748 retval = request_irq(curr_dev->irq, tnt4882_interrupt, isr_flags, DRV_NAME, board); in ni_pcmcia_attach()
1750 dev_err(board->gpib_dev, "failed to obtain PCMCIA irq %d\n", curr_dev->irq); in ni_pcmcia_attach()
1753 tnt_priv->irq = curr_dev->irq; in ni_pcmcia_attach()
1762 struct tnt4882_priv *tnt_priv = board->private_data; in ni_pcmcia_detach()
1766 nec_priv = &tnt_priv->nec7210_priv; in ni_pcmcia_detach()
1767 if (tnt_priv->irq) in ni_pcmcia_detach()
1768 free_irq(tnt_priv->irq, board); in ni_pcmcia_detach()
1769 if (nec_priv->mmiobase) in ni_pcmcia_detach()
1770 ioport_unmap(nec_priv->mmiobase); in ni_pcmcia_detach()
1771 if (nec_priv->iobase) { in ni_pcmcia_detach()
1773 release_region(nec_priv->iobase, pcmcia_gpib_iosize); in ni_pcmcia_detach()
1796 .local_parallel_poll_mode = NULL, // XXX
1824 .local_parallel_poll_mode = NULL, // XXX