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