- (*port)->base = (unsigned long)cr->Card.Item[0].I.IO.dwAddr;
- (*port)->num = max+1;
- (*port)->next = NULL;
-
- DPRINTF("parallel port not in linked list, new entry: %d\n", (*port)->num);
- }
-
- snprintf(ppdev, sizeof(ppdev), "/dev/parport%d", (*port)->num);
- DPRINTF("opening %s\n", ppdev);
- parportfd = open(ppdev, O_RDWR|O_EXCL);
-
- if (parportfd < 0)
- fprintf(stderr,"Can't open %s: %s\n", ppdev, strerror(errno));
- }
-
- if (parportfd >= 0) {
- int pmode;
-
- if (ioctl(parportfd, PPCLAIM) == -1)
- return ret;
-
- ecpbase = 0;
- pmode = IEEE1284_MODE_COMPAT;
- if (ioctl(parportfd, PPNEGOT, &pmode) == -1)
- return ret;
-
- if (cr->Card.dwItems > 1 && cr->Card.Item[1].I.IO.dwAddr) {
- DPRINTF("ECP mode requested\n");
- ecpbase = (unsigned long)cr->Card.Item[1].I.IO.dwAddr;
- /* TODO: Implement ECP mode */
-#if 0
- pmode = IEEE1284_MODE_ECP;
-
- if (ioctl(parportfd, PPNEGOT, &pmode) == -1) {
- ecpbase = 0;
- pmode = IEEE1284_MODE_COMPAT;
- if (ioctl(parportfd, PPNEGOT, &pmode) == -1)
- return ret;
- }
-#endif
- }
-
- cr->hCard = parportfd;
- ppbase = (unsigned long)cr->Card.Item[0].I.IO.dwAddr;