Lines Matching refs:port
40 size_t parport_ieee1284_write_compat (struct parport *port, in parport_ieee1284_write_compat() argument
48 struct pardevice *dev = port->physport->cad; in parport_ieee1284_write_compat()
52 if (port->irq != PARPORT_IRQ_NONE) { in parport_ieee1284_write_compat()
53 parport_enable_irq (port); in parport_ieee1284_write_compat()
57 port->physport->ieee1284.phase = IEEE1284_PH_FWD_DATA; in parport_ieee1284_write_compat()
58 parport_write_control (port, ctl); in parport_ieee1284_write_compat()
59 parport_data_forward (port); in parport_ieee1284_write_compat()
71 if (!parport_wait_peripheral (port, mask, val)) in parport_ieee1284_write_compat()
76 if ((parport_read_status (port) & in parport_ieee1284_write_compat()
104 parport_wait_event (port, wait); in parport_ieee1284_write_compat()
117 DPRINTK (KERN_DEBUG "%s: Timed out\n", port->name); in parport_ieee1284_write_compat()
123 parport_write_data (port, byte); in parport_ieee1284_write_compat()
127 parport_write_control (port, ctl | PARPORT_CONTROL_STROBE); in parport_ieee1284_write_compat()
130 parport_write_control (port, ctl); in parport_ieee1284_write_compat()
143 port->physport->ieee1284.phase = IEEE1284_PH_FWD_IDLE; in parport_ieee1284_write_compat()
149 size_t parport_ieee1284_read_nibble (struct parport *port, in parport_ieee1284_read_nibble() argument
166 (parport_read_status(port) & PARPORT_STATUS_ERROR)) { in parport_ieee1284_read_nibble()
171 parport_frob_control (port, in parport_ieee1284_read_nibble()
176 port->ieee1284.phase = IEEE1284_PH_REV_DATA; in parport_ieee1284_read_nibble()
177 if (parport_wait_peripheral (port, in parport_ieee1284_read_nibble()
182 port->name, i/2); in parport_ieee1284_read_nibble()
183 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, 0); in parport_ieee1284_read_nibble()
189 nibble = parport_read_status (port) >> 3; in parport_ieee1284_read_nibble()
196 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, 0); in parport_ieee1284_read_nibble()
199 if (parport_wait_peripheral (port, in parport_ieee1284_read_nibble()
205 port->name); in parport_ieee1284_read_nibble()
219 if (parport_read_status (port) & PARPORT_STATUS_ERROR) { in parport_ieee1284_read_nibble()
223 port->name, i/2); in parport_ieee1284_read_nibble()
226 parport_frob_control (port, in parport_ieee1284_read_nibble()
229 port->physport->ieee1284.phase = IEEE1284_PH_REV_IDLE; in parport_ieee1284_read_nibble()
232 port->physport->ieee1284.phase = IEEE1284_PH_HBUSY_DAVAIL; in parport_ieee1284_read_nibble()
240 size_t parport_ieee1284_read_byte (struct parport *port, in parport_ieee1284_read_byte() argument
254 if (parport_read_status (port) & PARPORT_STATUS_ERROR) { in parport_ieee1284_read_byte()
259 parport_data_reverse (port); in parport_ieee1284_read_byte()
262 parport_frob_control (port, in parport_ieee1284_read_byte()
267 port->physport->ieee1284.phase = IEEE1284_PH_REV_DATA; in parport_ieee1284_read_byte()
268 if (parport_wait_peripheral (port, in parport_ieee1284_read_byte()
272 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, in parport_ieee1284_read_byte()
275 port->name); in parport_ieee1284_read_byte()
279 byte = parport_read_data (port); in parport_ieee1284_read_byte()
283 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, 0); in parport_ieee1284_read_byte()
286 if (parport_wait_peripheral (port, in parport_ieee1284_read_byte()
291 port->name); in parport_ieee1284_read_byte()
296 parport_frob_control (port, in parport_ieee1284_read_byte()
302 parport_frob_control (port, PARPORT_CONTROL_STROBE, 0); in parport_ieee1284_read_byte()
307 if (parport_read_status (port) & PARPORT_STATUS_ERROR) { in parport_ieee1284_read_byte()
311 port->name, count); in parport_ieee1284_read_byte()
314 parport_frob_control (port, in parport_ieee1284_read_byte()
317 port->physport->ieee1284.phase = IEEE1284_PH_REV_IDLE; in parport_ieee1284_read_byte()
320 port->physport->ieee1284.phase = IEEE1284_PH_HBUSY_DAVAIL; in parport_ieee1284_read_byte()
334 int ecp_forward_to_reverse (struct parport *port) in ecp_forward_to_reverse() argument
339 parport_frob_control (port, in ecp_forward_to_reverse()
342 parport_data_reverse (port); in ecp_forward_to_reverse()
346 parport_frob_control (port, in ecp_forward_to_reverse()
351 retval = parport_wait_peripheral (port, in ecp_forward_to_reverse()
356 port->name); in ecp_forward_to_reverse()
357 port->ieee1284.phase = IEEE1284_PH_REV_IDLE; in ecp_forward_to_reverse()
360 port->name); in ecp_forward_to_reverse()
361 port->ieee1284.phase = IEEE1284_PH_ECP_DIR_UNKNOWN; in ecp_forward_to_reverse()
368 int ecp_reverse_to_forward (struct parport *port) in ecp_reverse_to_forward() argument
373 parport_frob_control (port, in ecp_reverse_to_forward()
380 retval = parport_wait_peripheral (port, in ecp_reverse_to_forward()
385 parport_data_forward (port); in ecp_reverse_to_forward()
387 port->name); in ecp_reverse_to_forward()
388 port->ieee1284.phase = IEEE1284_PH_FWD_IDLE; in ecp_reverse_to_forward()
392 port->name); in ecp_reverse_to_forward()
393 port->ieee1284.phase = IEEE1284_PH_ECP_DIR_UNKNOWN; in ecp_reverse_to_forward()
403 size_t parport_ieee1284_ecp_write_data (struct parport *port, in parport_ieee1284_ecp_write_data() argument
414 port = port->physport; in parport_ieee1284_ecp_write_data()
416 if (port->ieee1284.phase != IEEE1284_PH_FWD_IDLE) in parport_ieee1284_ecp_write_data()
417 if (ecp_reverse_to_forward (port)) in parport_ieee1284_ecp_write_data()
420 port->ieee1284.phase = IEEE1284_PH_FWD_DATA; in parport_ieee1284_ecp_write_data()
423 parport_frob_control (port, in parport_ieee1284_ecp_write_data()
429 unsigned long expire = jiffies + port->cad->timeout; in parport_ieee1284_ecp_write_data()
434 parport_write_data (port, byte); in parport_ieee1284_ecp_write_data()
435 parport_frob_control (port, PARPORT_CONTROL_STROBE, in parport_ieee1284_ecp_write_data()
439 if (!parport_wait_peripheral (port, in parport_ieee1284_ecp_write_data()
444 parport_frob_control (port, in parport_ieee1284_ecp_write_data()
452 DPRINTK (KERN_DEBUG "%s: ECP transfer stalled!\n", port->name); in parport_ieee1284_ecp_write_data()
454 parport_frob_control (port, PARPORT_CONTROL_INIT, in parport_ieee1284_ecp_write_data()
457 if (parport_read_status (port) & PARPORT_STATUS_PAPEROUT) { in parport_ieee1284_ecp_write_data()
459 parport_frob_control (port, PARPORT_CONTROL_INIT, 0); in parport_ieee1284_ecp_write_data()
463 parport_frob_control (port, PARPORT_CONTROL_INIT, 0); in parport_ieee1284_ecp_write_data()
465 if (!(parport_read_status (port) & PARPORT_STATUS_PAPEROUT)) in parport_ieee1284_ecp_write_data()
469 port->name); in parport_ieee1284_ecp_write_data()
474 parport_frob_control (port, PARPORT_CONTROL_STROBE, 0); in parport_ieee1284_ecp_write_data()
476 if (parport_wait_peripheral (port, in parport_ieee1284_ecp_write_data()
483 port->ieee1284.phase = IEEE1284_PH_FWD_IDLE; in parport_ieee1284_ecp_write_data()
490 size_t parport_ieee1284_ecp_read_data (struct parport *port, in parport_ieee1284_ecp_read_data() argument
496 struct pardevice *dev = port->cad; in parport_ieee1284_ecp_read_data()
503 port = port->physport; in parport_ieee1284_ecp_read_data()
505 if (port->ieee1284.phase != IEEE1284_PH_REV_IDLE) in parport_ieee1284_ecp_read_data()
506 if (ecp_forward_to_reverse (port)) in parport_ieee1284_ecp_read_data()
509 port->ieee1284.phase = IEEE1284_PH_REV_DATA; in parport_ieee1284_ecp_read_data()
512 ctl = parport_read_control (port); in parport_ieee1284_ecp_read_data()
515 parport_write_control (port, in parport_ieee1284_ecp_read_data()
524 while (parport_wait_peripheral (port, PARPORT_STATUS_ACK, 0)) { in parport_ieee1284_ecp_read_data()
537 if (count && dev->port->irq != PARPORT_IRQ_NONE) { in parport_ieee1284_ecp_read_data()
544 parport_wait_event (port, msecs_to_jiffies(40)); in parport_ieee1284_ecp_read_data()
557 command = (parport_read_status (port) & in parport_ieee1284_ecp_read_data()
561 byte = parport_read_data (port); in parport_ieee1284_ecp_read_data()
569 port->name, byte); in parport_ieee1284_ecp_read_data()
572 else if (port->ieee1284.mode != IEEE1284_MODE_ECPRLE) in parport_ieee1284_ecp_read_data()
575 port->name); in parport_ieee1284_ecp_read_data()
582 "for next time\n", port->name, in parport_ieee1284_ecp_read_data()
591 parport_write_control (port, ctl); in parport_ieee1284_ecp_read_data()
594 if (parport_wait_peripheral (port, PARPORT_STATUS_ACK, in parport_ieee1284_ecp_read_data()
603 port->name, byte); in parport_ieee1284_ecp_read_data()
609 parport_write_control (port, in parport_ieee1284_ecp_read_data()
623 port->name, rle_count); in parport_ieee1284_ecp_read_data()
632 port->ieee1284.phase = IEEE1284_PH_REV_IDLE; in parport_ieee1284_ecp_read_data()
638 size_t parport_ieee1284_ecp_write_addr (struct parport *port, in parport_ieee1284_ecp_write_addr() argument
649 port = port->physport; in parport_ieee1284_ecp_write_addr()
651 if (port->ieee1284.phase != IEEE1284_PH_FWD_IDLE) in parport_ieee1284_ecp_write_addr()
652 if (ecp_reverse_to_forward (port)) in parport_ieee1284_ecp_write_addr()
655 port->ieee1284.phase = IEEE1284_PH_FWD_DATA; in parport_ieee1284_ecp_write_addr()
658 parport_frob_control (port, in parport_ieee1284_ecp_write_addr()
665 unsigned long expire = jiffies + port->cad->timeout; in parport_ieee1284_ecp_write_addr()
670 parport_write_data (port, byte); in parport_ieee1284_ecp_write_addr()
671 parport_frob_control (port, PARPORT_CONTROL_STROBE, in parport_ieee1284_ecp_write_addr()
675 if (!parport_wait_peripheral (port, in parport_ieee1284_ecp_write_addr()
680 parport_frob_control (port, in parport_ieee1284_ecp_write_addr()
688 DPRINTK (KERN_DEBUG "%s: ECP transfer stalled!\n", port->name); in parport_ieee1284_ecp_write_addr()
690 parport_frob_control (port, PARPORT_CONTROL_INIT, in parport_ieee1284_ecp_write_addr()
693 if (parport_read_status (port) & PARPORT_STATUS_PAPEROUT) { in parport_ieee1284_ecp_write_addr()
695 parport_frob_control (port, PARPORT_CONTROL_INIT, 0); in parport_ieee1284_ecp_write_addr()
699 parport_frob_control (port, PARPORT_CONTROL_INIT, 0); in parport_ieee1284_ecp_write_addr()
701 if (!(parport_read_status (port) & PARPORT_STATUS_PAPEROUT)) in parport_ieee1284_ecp_write_addr()
705 port->name); in parport_ieee1284_ecp_write_addr()
710 parport_frob_control (port, PARPORT_CONTROL_STROBE, 0); in parport_ieee1284_ecp_write_addr()
712 if (parport_wait_peripheral (port, in parport_ieee1284_ecp_write_addr()
719 port->ieee1284.phase = IEEE1284_PH_FWD_IDLE; in parport_ieee1284_ecp_write_addr()
730 size_t parport_ieee1284_epp_write_data (struct parport *port, in parport_ieee1284_epp_write_data() argument
738 parport_frob_control (port, in parport_ieee1284_epp_write_data()
745 port->ops->data_forward (port); in parport_ieee1284_epp_write_data()
748 parport_write_data (port, *bp); in parport_ieee1284_epp_write_data()
749 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, in parport_ieee1284_epp_write_data()
753 if (parport_poll_peripheral (port, PARPORT_STATUS_BUSY, 0, 10)) in parport_ieee1284_epp_write_data()
757 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, 0); in parport_ieee1284_epp_write_data()
760 if (parport_poll_peripheral (port, PARPORT_STATUS_BUSY, in parport_ieee1284_epp_write_data()
768 parport_frob_control (port, PARPORT_CONTROL_STROBE, 0); in parport_ieee1284_epp_write_data()
774 size_t parport_ieee1284_epp_read_data (struct parport *port, in parport_ieee1284_epp_read_data() argument
782 parport_frob_control (port, in parport_ieee1284_epp_read_data()
788 port->ops->data_reverse (port); in parport_ieee1284_epp_read_data()
791 parport_frob_control (port, in parport_ieee1284_epp_read_data()
795 if (parport_wait_peripheral (port, PARPORT_STATUS_BUSY, 0)) { in parport_ieee1284_epp_read_data()
799 *bp = parport_read_data (port); in parport_ieee1284_epp_read_data()
802 parport_frob_control (port, PARPORT_CONTROL_AUTOFD, 0); in parport_ieee1284_epp_read_data()
805 if (parport_poll_peripheral (port, PARPORT_STATUS_BUSY, in parport_ieee1284_epp_read_data()
812 port->ops->data_forward (port); in parport_ieee1284_epp_read_data()
818 size_t parport_ieee1284_epp_write_addr (struct parport *port, in parport_ieee1284_epp_write_addr() argument
826 parport_frob_control (port, in parport_ieee1284_epp_write_addr()
833 port->ops->data_forward (port); in parport_ieee1284_epp_write_addr()
836 parport_write_data (port, *bp); in parport_ieee1284_epp_write_addr()
837 parport_frob_control (port, PARPORT_CONTROL_SELECT, in parport_ieee1284_epp_write_addr()
841 if (parport_poll_peripheral (port, PARPORT_STATUS_BUSY, 0, 10)) in parport_ieee1284_epp_write_addr()
845 parport_frob_control (port, PARPORT_CONTROL_SELECT, 0); in parport_ieee1284_epp_write_addr()
848 if (parport_poll_peripheral (port, PARPORT_STATUS_BUSY, in parport_ieee1284_epp_write_addr()
856 parport_frob_control (port, PARPORT_CONTROL_STROBE, 0); in parport_ieee1284_epp_write_addr()
862 size_t parport_ieee1284_epp_read_addr (struct parport *port, in parport_ieee1284_epp_read_addr() argument
870 parport_frob_control (port, in parport_ieee1284_epp_read_addr()
876 port->ops->data_reverse (port); in parport_ieee1284_epp_read_addr()
879 parport_frob_control (port, PARPORT_CONTROL_SELECT, in parport_ieee1284_epp_read_addr()
883 if (parport_wait_peripheral (port, PARPORT_STATUS_BUSY, 0)) { in parport_ieee1284_epp_read_addr()
887 *bp = parport_read_data (port); in parport_ieee1284_epp_read_addr()
890 parport_frob_control (port, PARPORT_CONTROL_SELECT, in parport_ieee1284_epp_read_addr()
894 if (parport_poll_peripheral (port, PARPORT_STATUS_BUSY, in parport_ieee1284_epp_read_addr()
900 port->ops->data_forward (port); in parport_ieee1284_epp_read_addr()