]> git.zerfleddert.de Git - usb-driver/blobdiff - usb-driver.c
always set ecpbase correctly.
[usb-driver] / usb-driver.c
index cd9807a9017d5391df1e650abf50c1e80b0426b0..1c5b18b2d8f4b3ae3b29f116b8729f73bda1865f 100644 (file)
@@ -360,17 +360,20 @@ int do_wdioctl(int fd, unsigned int request, unsigned char *wdioctl) {
                                        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) {
+                                       if (cr->Card.dwItems > 1 && cr->Card.Item[1].I.IO.dwBytes) {
+                                               DPRINTF("ECP mode requested\n");
                                                ecpbase = cr->Card.Item[1].I.IO.dwBytes;
                                                /* 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;
Impressum, Datenschutz