diff options
author | Alin Năstac <mrness@gentoo.org> | 2007-05-19 04:53:29 +0000 |
---|---|---|
committer | Alin Năstac <mrness@gentoo.org> | 2007-05-19 04:53:29 +0000 |
commit | 09cea0ad14ebcee329193886ab1132b517ad51ec (patch) | |
tree | c7f73703fa652409964092825fb9cd8781abc707 /net-dialup/globespan-adsl/files | |
parent | scrub crap from patch (diff) | |
download | gentoo-2-09cea0ad14ebcee329193886ab1132b517ad51ec.tar.gz gentoo-2-09cea0ad14ebcee329193886ab1132b517ad51ec.tar.bz2 gentoo-2-09cea0ad14ebcee329193886ab1132b517ad51ec.zip |
Add upstream patch for supporting kernels newer than 2.6.17 (#177553).
(Portage version: 2.1.2.2)
Diffstat (limited to 'net-dialup/globespan-adsl/files')
-rw-r--r-- | net-dialup/globespan-adsl/files/digest-globespan-adsl-0.11-r1 | 3 | ||||
-rw-r--r-- | net-dialup/globespan-adsl/files/globespan-adsl-0.11-synch.patch | 85 |
2 files changed, 88 insertions, 0 deletions
diff --git a/net-dialup/globespan-adsl/files/digest-globespan-adsl-0.11-r1 b/net-dialup/globespan-adsl/files/digest-globespan-adsl-0.11-r1 new file mode 100644 index 000000000000..7cc12ee99fd4 --- /dev/null +++ b/net-dialup/globespan-adsl/files/digest-globespan-adsl-0.11-r1 @@ -0,0 +1,3 @@ +MD5 c3c60c83f6df30021e11da50a699dec9 eciadsl-usermode-0.11.tar.gz 323391 +RMD160 698730d008857317cc475ef87a9023296b064319 eciadsl-usermode-0.11.tar.gz 323391 +SHA256 2382f315fda4241a0043bac1dfc669f006d8e93e87fa382b263b1672972f4077 eciadsl-usermode-0.11.tar.gz 323391 diff --git a/net-dialup/globespan-adsl/files/globespan-adsl-0.11-synch.patch b/net-dialup/globespan-adsl/files/globespan-adsl-0.11-synch.patch new file mode 100644 index 000000000000..344ec3ddbd28 --- /dev/null +++ b/net-dialup/globespan-adsl/files/globespan-adsl-0.11-synch.patch @@ -0,0 +1,85 @@ +diff --git a/eciadsl-synch.c b/eciadsl-synch.c +index 27c1f34..31c51dc 100644 +--- a/eciadsl-synch.c ++++ b/eciadsl-synch.c +@@ -322,7 +322,7 @@ void read_endpoint(pusb_endpoint_t ep_int, int epnum){ + device. So we revert to the old behaviour : NO TIMEOUTS ... + */ + +- ret = pusb_endpoint_read(ep_int, lbuf, sizeof(lbuf), 0); ++ ret = pusb_endpoint_read_int(ep_int, lbuf, sizeof(lbuf)); + + if (ret < 0) + { +diff --git a/pusb-linux.c b/pusb-linux.c +index 79b7545..b5bf1dd 100644 +--- a/pusb-linux.c ++++ b/pusb-linux.c +@@ -340,6 +340,54 @@ int pusb_endpoint_rw_no_timeout(int fd, int ep, + return(purb->actual_length); + } + ++int pusb_endpoint_read_int_no_timeout(int fd, int ep, ++ unsigned char* buf, int size) ++{ ++ struct usbdevfs_urb urb, *purb = &urb; ++ int ret; ++ ++ memset(purb, 0, sizeof(urb)); ++ ++ purb->type = USBDEVFS_URB_TYPE_INTERRUPT; ++ purb->endpoint = ep; ++ purb->flags = 0; ++ purb->buffer = buf; ++ purb->buffer_length = size; ++ purb->signr = 0; ++ ++ do ++ { ++ ret = ioctl(fd, USBDEVFS_SUBMITURB, purb); ++ } ++ while (ret < 0 && errno == EINTR); ++ ++ if (ret < 0) ++ return(ret); ++ ++ do ++ { ++ ret = ioctl(fd, USBDEVFS_REAPURB, &purb); ++ } ++ while (ret < 0 && errno == EINTR); ++ ++ if (ret < 0) ++ return(ret); ++ ++ if (purb != &urb) ++ printf("purb=%p, &urb=%p\n", (void*)purb, (void*)&urb); ++ ++ if (purb->buffer != buf) ++ printf("purb->buffer=%p, buf=%p\n", (void*)purb->buffer, (void*)buf); ++ ++ return(purb->actual_length); ++} ++ ++int pusb_endpoint_read_int(pusb_endpoint_t ep, ++ unsigned char* buf, int size) ++{ ++ return(pusb_endpoint_read_int_no_timeout(ep->fd, ep->ep|USB_DIR_IN, buf, size)); ++} ++ + int pusb_endpoint_rw(int fd, int ep, unsigned char* buf, int size, int timeout) + { + struct usbdevfs_bulktransfer bulk; +diff --git a/pusb.h b/pusb.h +index 921543b..112e41f 100644 +--- a/pusb.h ++++ b/pusb.h +@@ -30,6 +30,8 @@ int pusb_release_interface(pusb_device_t dev,int interface); + pusb_endpoint_t pusb_endpoint_open(pusb_device_t dev, int epnum, int flags); + int pusb_endpoint_read(pusb_endpoint_t ep, + unsigned char *buf, int size, int timeout); ++int pusb_endpoint_read_int(pusb_endpoint_t ep, ++ unsigned char *buf, int size); + int pusb_endpoint_write(pusb_endpoint_t ep, + const unsigned char *buf, int size, int timeout); + |