summaryrefslogtreecommitdiff
path: root/packages/linux/linux-ezx-2.6.21/mux-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-ezx-2.6.21/mux-fix.patch')
-rw-r--r--packages/linux/linux-ezx-2.6.21/mux-fix.patch164
1 files changed, 0 insertions, 164 deletions
diff --git a/packages/linux/linux-ezx-2.6.21/mux-fix.patch b/packages/linux/linux-ezx-2.6.21/mux-fix.patch
deleted file mode 100644
index b820762f41..0000000000
--- a/packages/linux/linux-ezx-2.6.21/mux-fix.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-Index: linux-2.6.20.7/drivers/char/ts0710_mux_usb.c
-===================================================================
---- linux-2.6.20.7.orig/drivers/char/ts0710_mux_usb.c 2007-04-21 18:07:45.000000000 +0200
-+++ linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-21 20:55:13.000000000 +0200
-@@ -626,7 +626,6 @@
- }
-
- interface = &intf->cur_altsetting->desc;
-- endpoint = &intf->cur_altsetting->endpoint[0].desc;
- /* Start checking for two bulk endpoints or ... FIXME: This is a future
- * enhancement...*/
- bvd_dbg("usb_ipc_probe: Number of Endpoints:%d",
-@@ -638,30 +637,26 @@
-
- ep_cnt = have_bulk_in_mux = have_bulk_out_mux = 0;
-
-- bvd_dbg("usb_ipc_probe: endpoint[0] is:%x",
-- (&endpoint[0])->bEndpointAddress);
-- bvd_dbg("usb_ipc_probe: endpoint[1] is:%x ",
-- (&endpoint[1])->bEndpointAddress);
--
- while (ep_cnt < interface->bNumEndpoints) {
--
-- if (!have_bulk_in_mux && IS_EP_BULK_IN(endpoint[ep_cnt])) {
-- bvd_dbg("usb_ipc_probe: bEndpointAddress(IN) is:%x ",
-- (&endpoint[ep_cnt])->bEndpointAddress);
-- have_bulk_in_mux =
-- (&endpoint[ep_cnt])->bEndpointAddress;
-- readsize = (&endpoint[ep_cnt])->wMaxPacketSize;
-+ endpoint = &intf->cur_altsetting->endpoint[ep_cnt].desc;
-+ bvd_dbg("usb_ipc_probe: endpoint[%i] is: %x", ep_cnt,
-+ endpoint->bEndpointAddress);
-+
-+ if (!have_bulk_in_mux && IS_EP_BULK_IN(*endpoint)) {
-+ bvd_dbg("usb_ipc_probe: bEndpointAddress(IN) is: %x ",
-+ endpoint->bEndpointAddress);
-+ have_bulk_in_mux = endpoint->bEndpointAddress;
-+ readsize = endpoint->wMaxPacketSize;
- bvd_dbg("usb_ipc_probe: readsize=%d", readsize);
- ep_cnt++;
- continue;
- }
-
-- if (!have_bulk_out_mux && IS_EP_BULK_OUT(endpoint[ep_cnt])) {
-- bvd_dbg("usb_ipc_probe: bEndpointAddress(OUT) is:%x ",
-- (&endpoint[ep_cnt])->bEndpointAddress);
-- have_bulk_out_mux =
-- (&endpoint[ep_cnt])->bEndpointAddress;
-- writesize = (&endpoint[ep_cnt])->wMaxPacketSize;
-+ if (!have_bulk_out_mux && IS_EP_BULK_OUT(*endpoint)) {
-+ bvd_dbg("usb_ipc_probe: bEndpointAddress(OUT) is: %x ",
-+ endpoint->bEndpointAddress);
-+ have_bulk_out_mux = endpoint->bEndpointAddress;
-+ writesize = endpoint->wMaxPacketSize;
- bvd_dbg("usb_ipc_probe: writesize=%d", writesize);
- ep_cnt++;
- continue;
-@@ -718,21 +713,27 @@
- bvd_ipc->bh_bp.func = usbipc_bh_bp_func;
- bvd_ipc->bh_bp.data = (unsigned long) bvd_ipc;
-
-+ bvd_dbg("after assignements");
- /*Build a write urb*/
-+ usb_init_urb(&bvd_ipc->writeurb_mux);
- usb_fill_bulk_urb(&bvd_ipc->writeurb_mux, usbdev,
- usb_sndbulkpipe(bvd_ipc->ipc_dev,
- bvd_ipc->bulk_out_ep_mux),
- bvd_ipc->obuf, writesize, usb_ipc_write_bulk,
- bvd_ipc);
- //bvd_ipc->writeurb_mux.transfer_flags |= USB_ASYNC_UNLINK;
-+ bvd_dbg("after write urb");
-
- /*Build a read urb and send a IN token first time*/
-+ usb_init_urb(&bvd_ipc->readurb_mux);
- usb_fill_bulk_urb(&bvd_ipc->readurb_mux, usbdev,
- usb_rcvbulkpipe(usbdev, bvd_ipc->bulk_in_ep_mux),
- bvd_ipc->ibuf, readsize, usb_ipc_read_bulk, bvd_ipc);
- //bvd_ipc->readurb_mux.transfer_flags |= USB_ASYNC_UNLINK;
-+ bvd_dbg("after read urb");
-
-- usb_driver_claim_interface(&usb_ipc_driver, intf, bvd_ipc);
-+ //usb_driver_claim_interface(&usb_ipc_driver, intf, bvd_ipc);
-+ bvd_dbg("after claim interface");
- //usb_driver_claim_interface(&usb_ipc_driver, &ipccfg->interface[1], bvd_ipc);
-
- // a2590c: dsplog is not supported by this driver
-@@ -740,6 +741,8 @@
- // &ipccfg->interface[2], bvd_ipc);
- /*send a IN token first time*/
- bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev;
-+ bvd_dbg("after assignement");
-+
- if (usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC))
- printk("usb_ipc_prob: usb_submit_urb(read mux bulk) failed!\n");
-
-@@ -750,7 +753,7 @@
- tasklet_schedule(&bvd_ipc->bh);
- }
-
-- printk("usb_ipc_probe: completed probe!");
-+ printk("usb_ipc_probe: completed probe!\n");
- usb_set_intfdata(intf, &bvd_ipc);
- return 0;
- }
-@@ -760,21 +763,23 @@
- //struct usb_device *usbdev = interface_to_usbdev(intf);
- struct ipc_usb_data *bvd_ipc_disconnect = usb_get_intfdata(intf);
-
-- printk("usb_ipc_disconnect:*** \n");
-
-+ printk("usb_ipc_disconnect. bvd_ipc_disconnect address: %p\n", bvd_ipc_disconnect);
-+
-+ //FIXME: Memory leak?
- if ((UHCRHPS3 & 0x4) == 0)
-- usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux);
-+ // usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux);
-
-- usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux);
-+ //usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux);
-
- bvd_ipc_disconnect->ipc_flag = IPC_USB_PROBE_NOT_READY;
- kfree(bvd_ipc_disconnect->ibuf);
- kfree(bvd_ipc_disconnect->obuf);
-
-- usb_driver_release_interface(&usb_ipc_driver,
-- bvd_ipc_disconnect->ipc_dev->actconfig->interface[0]);
-- usb_driver_release_interface(&usb_ipc_driver,
-- bvd_ipc_disconnect->ipc_dev->actconfig->interface[1]);
-+ //usb_driver_release_interface(&usb_ipc_driver,
-+ // bvd_ipc_disconnect->ipc_dev->actconfig->interface[0]);
-+ //usb_driver_release_interface(&usb_ipc_driver,
-+ // bvd_ipc_disconnect->ipc_dev->actconfig->interface[1]);
-
- //a2590c: dsplog interface is not supported by this driver
- //usb_driver_release_interface(&usb_ipc_driver, &bvd_ipc_disconnect->ipc_dev->actconfig->interface[2]);
-@@ -803,13 +808,6 @@
- int result;
-
- bvd_dbg("init usb_ipc");
-- /* register driver at the USB subsystem */
-- result = usb_register(&usb_ipc_driver);
-- if (result < 0) {
-- err ("usb ipc driver could not be registered");
-- return result;
-- }
--
- /*init the related mux interface*/
- if (!(bvd_ipc = kzalloc(sizeof(struct ipc_usb_data), GFP_KERNEL))) {
- err("usb_ipc_init: Out of memory.");
-@@ -836,6 +834,14 @@
- usb_for_mux_driver = &ipcusb_tty_driver;
- usb_for_mux_tty = &ipcusb_tty;
-
-+ /* register driver at the USB subsystem */
-+ // this was called before bvd_ipc was allocated
-+ result = usb_register(&usb_ipc_driver);
-+ if (result < 0) {
-+ err ("usb ipc driver could not be registered");
-+ return result;
-+ }
-+
- /* init timers for ipcusb read process and usb suspend */
- init_timer(&ipcusb_timer);
- ipcusb_timer.function = ipcusb_timeout;