Lines Matching full:pp

49 	struct parport *pp;  member
99 struct parport *pp; in async_complete() local
105 pp = priv->pp; in async_complete()
116 if (rq->reg[2] & rq->reg[1] & 0x10 && pp) in async_complete()
117 parport_generic_irq(pp); in async_complete()
193 static int get_1284_register(struct parport *pp, unsigned char reg, unsigned char *val, gfp_t mem_f… in get_1284_register() argument
202 if (!pp) in get_1284_register()
204 priv = pp->private_data; in get_1284_register()
229 static int set_1284_register(struct parport *pp, unsigned char reg, unsigned char val, gfp_t mem_fl… in set_1284_register() argument
234 if (!pp) in set_1284_register()
236 priv = pp->private_data; in set_1284_register()
257 static int change_mode(struct parport *pp, int m) in change_mode() argument
259 struct parport_uss720_private *priv = pp->private_data; in change_mode()
263 if (get_1284_register(pp, 6, &reg, GFP_KERNEL)) in change_mode()
271 if (change_mode(pp, ECR_PS2)) in change_mode()
277 unsigned long expire = jiffies + pp->physport->cad->timeout; in change_mode()
283 if (get_1284_register(pp, 6, &reg, GFP_KERNEL)) in change_mode()
297 if (set_1284_register(pp, 6, m << 5, GFP_KERNEL)) in change_mode()
299 if (get_1284_register(pp, 6, &reg, GFP_KERNEL)) in change_mode()
307 static int clear_epp_timeout(struct parport *pp) in clear_epp_timeout() argument
311 if (get_1284_register(pp, 1, &stat, GFP_KERNEL)) in clear_epp_timeout()
322 struct parport *pp = (struct parport *)dev_id;
323 struct parport_uss720_private *priv = pp->private_data;
330 parport_generic_irq(pp);
335 static void parport_uss720_write_data(struct parport *pp, unsigned char d) in parport_uss720_write_data() argument
337 set_1284_register(pp, 0, d, GFP_KERNEL); in parport_uss720_write_data()
340 static unsigned char parport_uss720_read_data(struct parport *pp) in parport_uss720_read_data() argument
344 if (get_1284_register(pp, 0, &ret, GFP_KERNEL)) in parport_uss720_read_data()
349 static void parport_uss720_write_control(struct parport *pp, unsigned char d) in parport_uss720_write_control() argument
351 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_write_control()
354 if (set_1284_register(pp, 2, d, GFP_KERNEL)) in parport_uss720_write_control()
359 static unsigned char parport_uss720_read_control(struct parport *pp) in parport_uss720_read_control() argument
361 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_read_control()
365 static unsigned char parport_uss720_frob_control(struct parport *pp, unsigned char mask, unsigned c… in parport_uss720_frob_control() argument
367 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_frob_control()
373 if (set_1284_register(pp, 2, d, GFP_ATOMIC)) in parport_uss720_frob_control()
379 static unsigned char parport_uss720_read_status(struct parport *pp) in parport_uss720_read_status() argument
383 if (get_1284_register(pp, 1, &ret, GFP_ATOMIC)) in parport_uss720_read_status()
388 static void parport_uss720_disable_irq(struct parport *pp) in parport_uss720_disable_irq() argument
390 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_disable_irq()
394 if (set_1284_register(pp, 2, d, GFP_KERNEL)) in parport_uss720_disable_irq()
399 static void parport_uss720_enable_irq(struct parport *pp) in parport_uss720_enable_irq() argument
401 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_enable_irq()
405 if (set_1284_register(pp, 2, d, GFP_KERNEL)) in parport_uss720_enable_irq()
410 static void parport_uss720_data_forward (struct parport *pp) in parport_uss720_data_forward() argument
412 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_data_forward()
416 if (set_1284_register(pp, 2, d, GFP_KERNEL)) in parport_uss720_data_forward()
421 static void parport_uss720_data_reverse (struct parport *pp) in parport_uss720_data_reverse() argument
423 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_data_reverse()
427 if (set_1284_register(pp, 2, d, GFP_KERNEL)) in parport_uss720_data_reverse()
438 static void parport_uss720_save_state(struct parport *pp, struct parport_state *s) in parport_uss720_save_state() argument
440 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_save_state()
443 if (get_1284_register(pp, 2, NULL, GFP_ATOMIC)) in parport_uss720_save_state()
450 static void parport_uss720_restore_state(struct parport *pp, struct parport_state *s) in parport_uss720_restore_state() argument
452 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_restore_state()
454 set_1284_register(pp, 2, s->u.pc.ctr, GFP_ATOMIC); in parport_uss720_restore_state()
455 set_1284_register(pp, 6, s->u.pc.ecr, GFP_ATOMIC); in parport_uss720_restore_state()
456 get_1284_register(pp, 2, NULL, GFP_ATOMIC); in parport_uss720_restore_state()
461 static size_t parport_uss720_epp_read_data(struct parport *pp, void *buf, size_t length, int flags) in parport_uss720_epp_read_data() argument
463 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_epp_read_data()
466 if (change_mode(pp, ECR_EPP)) in parport_uss720_epp_read_data()
469 if (get_1284_register(pp, 4, (char *)buf, GFP_KERNEL)) in parport_uss720_epp_read_data()
473 clear_epp_timeout(pp); in parport_uss720_epp_read_data()
477 change_mode(pp, ECR_PS2); in parport_uss720_epp_read_data()
481 static size_t parport_uss720_epp_write_data(struct parport *pp, const void *buf, size_t length, int… in parport_uss720_epp_write_data() argument
484 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_epp_write_data()
487 if (change_mode(pp, ECR_EPP)) in parport_uss720_epp_write_data()
490 if (set_1284_register(pp, 4, (char *)buf, GFP_KERNEL)) in parport_uss720_epp_write_data()
493 if (get_1284_register(pp, 1, NULL, GFP_KERNEL)) in parport_uss720_epp_write_data()
496 clear_epp_timeout(pp); in parport_uss720_epp_write_data()
500 change_mode(pp, ECR_PS2); in parport_uss720_epp_write_data()
503 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_epp_write_data()
510 if (change_mode(pp, ECR_EPP)) in parport_uss720_epp_write_data()
515 change_mode(pp, ECR_PS2); in parport_uss720_epp_write_data()
520 static size_t parport_uss720_epp_read_addr(struct parport *pp, void *buf, size_t length, int flags) in parport_uss720_epp_read_addr() argument
522 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_epp_read_addr()
525 if (change_mode(pp, ECR_EPP)) in parport_uss720_epp_read_addr()
528 if (get_1284_register(pp, 3, (char *)buf, GFP_KERNEL)) in parport_uss720_epp_read_addr()
532 clear_epp_timeout(pp); in parport_uss720_epp_read_addr()
536 change_mode(pp, ECR_PS2); in parport_uss720_epp_read_addr()
540 static size_t parport_uss720_epp_write_addr(struct parport *pp, const void *buf, size_t length, int… in parport_uss720_epp_write_addr() argument
542 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_epp_write_addr()
545 if (change_mode(pp, ECR_EPP)) in parport_uss720_epp_write_addr()
548 if (set_1284_register(pp, 3, *(char *)buf, GFP_KERNEL)) in parport_uss720_epp_write_addr()
551 if (get_1284_register(pp, 1, NULL, GFP_KERNEL)) in parport_uss720_epp_write_addr()
554 clear_epp_timeout(pp); in parport_uss720_epp_write_addr()
558 change_mode(pp, ECR_PS2); in parport_uss720_epp_write_addr()
562 static size_t parport_uss720_ecp_write_data(struct parport *pp, const void *buffer, size_t len, int… in parport_uss720_ecp_write_data() argument
564 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_ecp_write_data()
571 if (change_mode(pp, ECR_ECP)) in parport_uss720_ecp_write_data()
576 change_mode(pp, ECR_PS2); in parport_uss720_ecp_write_data()
580 static size_t parport_uss720_ecp_read_data(struct parport *pp, void *buffer, size_t len, int flags) in parport_uss720_ecp_read_data() argument
582 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_ecp_read_data()
589 if (change_mode(pp, ECR_ECP)) in parport_uss720_ecp_read_data()
594 change_mode(pp, ECR_PS2); in parport_uss720_ecp_read_data()
598 static size_t parport_uss720_ecp_write_addr(struct parport *pp, const void *buffer, size_t len, int… in parport_uss720_ecp_write_addr() argument
602 if (change_mode(pp, ECR_ECP)) in parport_uss720_ecp_write_addr()
605 if (set_1284_register(pp, 5, *(char *)buffer, GFP_KERNEL)) in parport_uss720_ecp_write_addr()
609 change_mode(pp, ECR_PS2); in parport_uss720_ecp_write_addr()
613 static size_t parport_uss720_write_compat(struct parport *pp, const void *buffer, size_t len, int f… in parport_uss720_write_compat() argument
615 struct parport_uss720_private *priv = pp->private_data; in parport_uss720_write_compat()
622 if (change_mode(pp, ECR_PPF)) in parport_uss720_write_compat()
627 change_mode(pp, ECR_PS2); in parport_uss720_write_compat()
678 struct parport *pp; in uss720_probe() local
709 priv->pp = NULL; in uss720_probe()
714 pp = parport_register_port(0, PARPORT_IRQ_NONE, PARPORT_DMA_NONE, &parport_uss720_ops); in uss720_probe()
715 if (!pp) { in uss720_probe()
720 priv->pp = pp; in uss720_probe()
721 pp->private_data = priv; in uss720_probe()
722 pp->modes = PARPORT_MODE_PCSPP | PARPORT_MODE_TRISTATE | PARPORT_MODE_EPP | PARPORT_MODE_COMPAT; in uss720_probe()
724 pp->modes |= PARPORT_MODE_ECP; in uss720_probe()
725 pp->dev = &usbdev->dev; in uss720_probe()
728 set_1284_register(pp, 7, 0x00, GFP_KERNEL); in uss720_probe()
729 set_1284_register(pp, 6, 0x30, GFP_KERNEL); /* PS/2 mode */ in uss720_probe()
730 set_1284_register(pp, 2, 0x0c, GFP_KERNEL); in uss720_probe()
736 ret = get_1284_register(pp, 0, &reg, GFP_KERNEL); in uss720_probe()
746 parport_announce_port(pp); in uss720_probe()
748 usb_set_intfdata(intf, pp); in uss720_probe()
759 struct parport *pp = usb_get_intfdata(intf); in uss720_disconnect() local
764 if (pp) { in uss720_disconnect()
765 priv = pp->private_data; in uss720_disconnect()
766 priv->pp = NULL; in uss720_disconnect()
768 parport_remove_port(pp); in uss720_disconnect()
769 parport_put_port(pp); in uss720_disconnect()