cleanup parallel support a bit
This commit is contained in:
parent
57fade8e35
commit
ae413cee9c
80
usb-driver.c
80
usb-driver.c
@ -258,33 +258,65 @@ int pp_transfer(WD_TRANSFER *tr, int fd, unsigned int request, unsigned char *wd
|
||||
if (parportfd < 0)
|
||||
return ret;
|
||||
|
||||
switch(tr->cmdTrans) {
|
||||
case 10: /* Read Byte */
|
||||
if ((unsigned long)tr->dwPort == ppbase) { /* Data Port */
|
||||
ret = 0; /* We don't support reading of the data port */
|
||||
} else if ((unsigned long)tr->dwPort == ppbase + 1) { /* Status Port */
|
||||
DPRINTF("status port\n");
|
||||
ret = ioctl(parportfd, PPRSTATUS, &val);
|
||||
} else if ((unsigned long)tr->dwPort == ppbase + 2) { /* Control Port */
|
||||
DPRINTF("control port\n");
|
||||
ret = ioctl(parportfd, PPRCONTROL, &val);
|
||||
switch((unsigned long)tr->dwPort - ppbase) {
|
||||
case PP_DATA:
|
||||
DPRINTF("data port\n");
|
||||
switch(tr->cmdTrans) {
|
||||
case PP_READ:
|
||||
ret = 0; /* We don't support reading of the data port */
|
||||
break;
|
||||
|
||||
case PP_WRITE:
|
||||
ret = ioctl(parportfd, PPWDATA, &val);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 13: /* Write Byte */
|
||||
if ((unsigned long)tr->dwPort == ppbase) { /* Data Port */
|
||||
DPRINTF("data port\n");
|
||||
ret = ioctl(parportfd, PPWDATA, &val);
|
||||
} else if ((unsigned long)tr->dwPort == ppbase + 1) { /* Status Port */
|
||||
ret = 0; /* Status Port is readonly */
|
||||
} else if ((unsigned long)tr->dwPort == ppbase + 2) { /* Control Port */
|
||||
DPRINTF("control port\n");
|
||||
ret = ioctl(parportfd, PPWCONTROL, &val);
|
||||
break;
|
||||
|
||||
case PP_STATUS:
|
||||
DPRINTF("status port\n");
|
||||
switch(tr->cmdTrans) {
|
||||
case PP_READ:
|
||||
ret = ioctl(parportfd, PPRSTATUS, &val);
|
||||
break;
|
||||
|
||||
case PP_WRITE:
|
||||
ret = 0; /* Status Port is readonly */
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
case PP_CONTROL:
|
||||
DPRINTF("control port\n");
|
||||
switch(tr->cmdTrans) {
|
||||
case PP_READ:
|
||||
ret = ioctl(parportfd, PPRCONTROL, &val);
|
||||
break;
|
||||
|
||||
case PP_WRITE:
|
||||
ret = ioctl(parportfd, PPWCONTROL, &val);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
|
||||
ret = -1;
|
||||
break;
|
||||
DPRINTF("access to unsupported address range (probably ECP)!\n");
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
tr->Data.Byte = val;
|
||||
|
@ -22,6 +22,12 @@
|
||||
|
||||
#define MAGIC 0xa410b413UL
|
||||
|
||||
#define PP_DATA 0
|
||||
#define PP_STATUS 1
|
||||
#define PP_CONTROL 2
|
||||
#define PP_READ 10
|
||||
#define PP_WRITE 13
|
||||
|
||||
#define WDU_GET_MAX_PACKET_SIZE(x) ((unsigned short) (((x) & 0x7ff) * (1 + (((x) & 0x1800) >> 11))))
|
||||
|
||||
/* http://www.jungo.com/support/documentation/windriver/811/wdusb_man_mhtml/node78.html#SECTION001734000000000000000 */
|
||||
|
Reference in New Issue
Block a user