Deleted Added
full compact
26c26
< * $Id: ppb_1284.c,v 1.3 1998/01/31 07:23:06 eivind Exp $
---
> * $Id: ppb_1284.c,v 1.4 1998/08/03 19:14:31 msmith Exp $
110c110
< ppb_wctr(dev, AUTOFEED | nSTROBE | nINIT | nSELECTIN);
---
> ppb_wctr(dev, AUTOFEED & ~(STROBE | SELECTIN));
118,121d117
< #ifdef DEBUG_1284
< printf("nibble_1284_inbyte: nibble[%d]=0x%x\n", i, nibble[i]);
< #endif
<
123c119
< ppb_wctr(dev, nAUTOFEED | nSTROBE | nINIT | nSELECTIN);
---
> ppb_wctr(dev, 0 & ~(AUTOFEED | STROBE | SELECTIN));
133,136d128
< #ifdef DEBUG_1284
< printf("nibble_1284_inbyte: byte=0x%x\n", *buffer);
< #endif
<
163c155
< * nibble_1284_mode()
---
> * ppb_1284_negociate()
168c160
< nibble_1284_mode(struct ppb_device *dev, int mode)
---
> ppb_1284_negociate(struct ppb_device *dev, int mode)
170d161
< char ctrl;
171a163
> int phase = 0;
173c165,166
< ctrl = ppb_rctr(dev);
---
> ppb_wctr(dev, (nINIT | SELECTIN) & ~(STROBE | AUTOFEED));
> DELAY(1);
176c169
< DELAY(5);
---
> DELAY(1);
178,183c171
< ppb_wctr(dev, (ctrl & ~SELECTIN) | AUTOFEED);
< if ((error = do_1284_wait(dev, nACK | ERROR | SELECT | nFAULT,
< ERROR | SELECT | nFAULT))) {
< ppb_wctr(dev, ctrl);
< return (error);
< }
---
> ppb_wctr(dev, (nINIT | AUTOFEED) & ~(STROBE | SELECTIN));
185,186c173,175
< ppb_wctr(dev, ppb_rctr(dev) | STROBE);
< DELAY(5);
---
> if ((error = do_1284_wait(dev, nACK | PERROR | SELECT | nFAULT,
> PERROR | SELECT | nFAULT)))
> goto error;
188c177,179
< ppb_wctr(dev, ppb_rctr(dev) & ~STROBE);
---
> phase = 1;
>
> ppb_wctr(dev, (nINIT | STROBE | AUTOFEED) & ~SELECTIN);
191c182
< ppb_wctr(dev, ppb_rctr(dev) & ~AUTOFEED);
---
> ppb_wctr(dev, nINIT & ~(SELECTIN | AUTOFEED | STROBE));
192a184,195
> #if 0 /* not respected by most devices */
> if ((error = do_1284_wait(dev, nACK, nACK)))
> goto error;
>
> if (mode == 0)
> if ((error = do_1284_wait(dev, SELECT, 0)))
> goto error;
> else
> if ((error = do_1284_wait(dev, SELECT, SELECT)))
> goto error;
> #endif
>
193a197,202
>
> error:
> if (bootverbose)
> printf("%s: status=0x%x %d\n", __FUNCTION__, ppb_rstr(dev), phase);
>
> return (error);
194a204,231
>
> int
> ppb_1284_terminate(struct ppb_device *dev, int how)
> {
> int error;
>
> switch (how) {
> case VALID_STATE:
>
> ppb_wctr(dev, SELECTIN & ~(STROBE | AUTOFEED));
>
> if ((error = do_1284_wait(dev, nACK | nBUSY | nFAULT, nFAULT)))
> return (error);
>
> ppb_wctr(dev, (SELECTIN | AUTOFEED) & ~STROBE);
>
> if ((error = do_1284_wait(dev, nACK, nACK)))
> return (error);
>
> ppb_wctr(dev, SELECTIN & ~(STROBE | AUTOFEED));
> break;
>
> default:
> return (EINVAL);
> }
>
> return (0);
> }