Hi,

Here's a patch against 2.3.99-pre7-6 that removes all traces
of usb_request_irq, usb_release_irq, usb_request_bulk, and
usb_terminate_bulk as per the discussion a few days ago.

Thanks,

greg k-h
greg@(kroah|wirex).com
diff -Naur -X dontdiff linux-2.3.99-pre7-6/drivers/usb/usb.c 
linux-2.3.99-pre7-6-greg/drivers/usb/usb.c
--- linux-2.3.99-pre7-6/drivers/usb/usb.c       Mon May  8 14:25:49 2000
+++ linux-2.3.99-pre7-6-greg/drivers/usb/usb.c  Mon May  8 16:22:22 2000
@@ -668,50 +668,6 @@
 
        return usb_start_wait_urb(urb,timeout,actual_length);
 }
-/*-------------------------------------------------------------------*/
-
-void *usb_request_bulk(struct usb_device *dev, unsigned int pipe, usb_device_irq 
handler, void *data, int len, void *dev_id)
-{
-       urb_t *urb;
-       api_wrapper_data *awd;
-
-       if (!(urb=usb_alloc_urb(0)))
-               return NULL;
-       if (!(awd = kmalloc(sizeof(api_wrapper_data), in_interrupt() ? GFP_ATOMIC : 
GFP_KERNEL))) {
-               kfree(urb);
-               return NULL;
-       }
-
-       /* build urb */
-       FILL_BULK_URB(urb, dev, pipe, data, len, 
(usb_complete_t)usb_api_async_completion, awd);
-
-       awd->handler=handler;
-       awd->stuff=dev_id;
-       if (usb_submit_urb(urb) < 0) {
-               kfree(awd);
-               kfree(urb);
-               return NULL;
-       }
-       return urb;
-}
-
-// compatibility wrapper. Remove urb only if it is called before the
-// transaction's completion interrupt. If called from within the
-// completion handler (urb->completed==1), it does nothing, since the
-// qh is already removed 
-
-int usb_terminate_bulk(struct usb_device *dev, void *first)
-{
-       urb_t *urb=(urb_t*)first;
-       dbg("usb_terminate_bulk: urb:%p",urb);
-       if (!urb) // none found? there is nothing to remove!
-               return -ENODEV;
-  
-       usb_unlink_urb(urb);
-       kfree(urb->context);
-       kfree(urb);
-       return USB_ST_NOERROR;
-}
 
 /*
  * usb_release_bandwidth():
@@ -742,92 +698,6 @@
 #endif
 }
 
-int usb_request_irq(struct usb_device *dev, unsigned int pipe, usb_device_irq 
handler, int period, void *dev_id, void **handle)
-{
-       long    bustime;
-       int     ret;
-       struct irq_wrapper_data *wd;
-       urb_t *urb;
-       unsigned int maxsze = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
-
-       *handle = NULL;
-       
-       //dbg("irq: dev:%p pipe:%08X handler:%p period:%d dev_id:%p max:%d", dev, 
pipe, handler, period, dev_id, maxsze);
-       
-       /* Check host controller's bandwidth for this int. request. */
-       bustime = calc_bus_time (usb_pipeslow(pipe), usb_pipein(pipe), 0,
-                       usb_maxpacket(dev, pipe, usb_pipeout(pipe)));
-       bustime = NS_TO_US(bustime);    /* work in microseconds */
-       if (check_bandwidth_alloc (dev->bus->bandwidth_allocated, bustime))
-               return -EUSERS;  // no bandwidth left
-
-       if (!maxsze || !usb_pipeint(pipe))
-               return -EINVAL;
-
-       if (!(urb = usb_alloc_urb(0)))
-               return -ENOMEM;
-
-       if (!(wd = kmalloc(sizeof(struct irq_wrapper_data), in_interrupt() ? 
GFP_ATOMIC : GFP_KERNEL))) {
-               kfree(urb);
-               return -ENOMEM;
-       }
-       if (!(urb->transfer_buffer = kmalloc(maxsze, in_interrupt() ? GFP_ATOMIC : 
GFP_KERNEL))) {
-               kfree(urb);
-               kfree(wd);
-               return -ENOMEM;
-       }
-       wd->handler=handler;
-       wd->context=dev_id;
-       urb->dev = dev;
-       urb->pipe = pipe;
-       urb->transfer_buffer_length = urb->actual_length = maxsze;
-       urb->interval = period;
-       urb->context = wd;
-       urb->complete = irq_callback;
-       if ((ret = usb_submit_urb(urb)) < 0) {
-               kfree(wd);
-               kfree(urb->transfer_buffer);
-               kfree(urb);
-               return ret;
-       }
-       *handle = urb;
-
-       /* Claim the USB bandwidth if no error. */
-       if (!ret) {
-               dev->bus->bandwidth_allocated += bustime;
-               dev->bus->bandwidth_int_reqs++;
-               dbg("bw_alloc bumped to %d for %d requesters",
-                       dev->bus->bandwidth_allocated,
-                       dev->bus->bandwidth_int_reqs +
-                       dev->bus->bandwidth_isoc_reqs);
-       }
-
-       return ret;
-}
-
-int usb_release_irq(struct usb_device *dev, void *handle, unsigned int pipe)
-{
-       long    bustime;
-       int     err;
-       urb_t *urb = (urb_t*)handle;
-
-       if (!urb)
-               return -EBADF;
-       err=usb_unlink_urb(urb);
-       kfree(urb->context);
-       kfree(urb->transfer_buffer);
-       kfree(urb);
-
-       /* Return the USB bandwidth if no error. */
-       if (!err) {
-               bustime = calc_bus_time (usb_pipeslow(pipe), usb_pipein(pipe), 0,
-                               usb_maxpacket(dev, pipe, usb_pipeout(pipe)));
-               bustime = NS_TO_US(bustime);    /* work in microseconds */
-               usb_release_bandwidth(dev, bustime);
-       }
-       return err;
-}
-
 /*
  * usb_get_current_frame_number()
  *
@@ -1906,8 +1776,4 @@
 EXPORT_SYMBOL(usb_unlink_urb);
 
 EXPORT_SYMBOL(usb_control_msg);
-EXPORT_SYMBOL(usb_request_irq);
-EXPORT_SYMBOL(usb_release_irq);
 EXPORT_SYMBOL(usb_bulk_msg);
-EXPORT_SYMBOL(usb_request_bulk);
-EXPORT_SYMBOL(usb_terminate_bulk);
diff -Naur -X dontdiff linux-2.3.99-pre7-6/include/linux/usb.h 
linux-2.3.99-pre7-6-greg/include/linux/usb.h
--- linux-2.3.99-pre7-6/include/linux/usb.h     Mon May  8 14:25:53 2000
+++ linux-2.3.99-pre7-6-greg/include/linux/usb.h        Mon May  8 16:20:57 2000
@@ -558,12 +558,6 @@
 
 extern int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, 
__u8 requesttype, __u16 value, __u16 index, void *data, __u16 size, int timeout);
 
-extern int usb_request_irq(struct usb_device *, unsigned int, usb_device_irq, int, 
void *, void **);
-extern int usb_release_irq(struct usb_device *dev, void *handle, unsigned int pipe);
-
-extern void *usb_request_bulk(struct usb_device *, unsigned int, usb_device_irq, void 
*, int, void *);
-extern int usb_terminate_bulk(struct usb_device *, void *);
-
 extern void usb_init_root_hub(struct usb_device *dev);
 extern int usb_root_hub_string(int id, int serial, char *type, __u8 *data, int len);
 extern void usb_connect(struct usb_device *dev);

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to