1
0

parallel cable transfer cleanup

This commit is contained in:
michael 2007-03-17 00:43:00 +00:00
parent ae413cee9c
commit 28e7c3682e

View File

@ -239,6 +239,7 @@ int usb_deviceinfo(unsigned char *buf) {
int pp_transfer(WD_TRANSFER *tr, int fd, unsigned int request, unsigned char *wdioctl) { int pp_transfer(WD_TRANSFER *tr, int fd, unsigned int request, unsigned char *wdioctl) {
int ret = 0; int ret = 0;
unsigned long port = (unsigned long)tr->dwPort;
unsigned char val; unsigned char val;
DPRINTF("dwPort: 0x%lx, cmdTrans: %lu, dwbytes: %ld, fautoinc: %ld, dwoptions: %ld\n", DPRINTF("dwPort: 0x%lx, cmdTrans: %lu, dwbytes: %ld, fautoinc: %ld, dwoptions: %ld\n",
@ -258,65 +259,57 @@ int pp_transfer(WD_TRANSFER *tr, int fd, unsigned int request, unsigned char *wd
if (parportfd < 0) if (parportfd < 0)
return ret; return ret;
switch((unsigned long)tr->dwPort - ppbase) { if (port == ppbase + PP_DATA) {
case PP_DATA: DPRINTF("data port\n");
DPRINTF("data port\n"); switch(tr->cmdTrans) {
switch(tr->cmdTrans) { case PP_READ:
case PP_READ: ret = 0; /* We don't support reading of the data port */
ret = 0; /* We don't support reading of the data port */ break;
break;
case PP_WRITE: case PP_WRITE:
ret = ioctl(parportfd, PPWDATA, &val); ret = ioctl(parportfd, PPWDATA, &val);
break; break;
default: default:
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans); fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
ret = -1; ret = -1;
break; break;
} }
break; } else if (port == ppbase + PP_STATUS) {
DPRINTF("status port\n");
switch(tr->cmdTrans) {
case PP_READ:
ret = ioctl(parportfd, PPRSTATUS, &val);
break;
case PP_STATUS: case PP_WRITE:
DPRINTF("status port\n"); ret = 0; /* Status Port is readonly */
switch(tr->cmdTrans) { break;
case PP_READ:
ret = ioctl(parportfd, PPRSTATUS, &val);
break;
case PP_WRITE: default:
ret = 0; /* Status Port is readonly */ fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
break; ret = -1;
break;
}
} else if (port == ppbase + PP_CONTROL) {
DPRINTF("control port\n");
switch(tr->cmdTrans) {
case PP_READ:
ret = ioctl(parportfd, PPRCONTROL, &val);
break;
default: case PP_WRITE:
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans); ret = ioctl(parportfd, PPWCONTROL, &val);
ret = -1; break;
break;
}
break;
case PP_CONTROL: default:
DPRINTF("control port\n"); fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
switch(tr->cmdTrans) { ret = -1;
case PP_READ: break;
ret = ioctl(parportfd, PPRCONTROL, &val); }
break; } else {
DPRINTF("access to unsupported address range (probably ECP)!\n");
case PP_WRITE: ret = 0;
ret = ioctl(parportfd, PPWCONTROL, &val);
break;
default:
fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
ret = -1;
break;
}
break;
default:
DPRINTF("access to unsupported address range (probably ECP)!\n");
ret = 0;
break;
} }
tr->Data.Byte = val; tr->Data.Byte = val;