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]