summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlin Năstac <mrness@gentoo.org>2007-05-19 04:53:29 +0000
committerAlin Năstac <mrness@gentoo.org>2007-05-19 04:53:29 +0000
commit09cea0ad14ebcee329193886ab1132b517ad51ec (patch)
treec7f73703fa652409964092825fb9cd8781abc707 /net-dialup/globespan-adsl/files
parentscrub crap from patch (diff)
downloadgentoo-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-r13
-rw-r--r--net-dialup/globespan-adsl/files/globespan-adsl-0.11-synch.patch85
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);
+