⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diffs.patch.txt

📁 PL2303 Linux驱动源码 drivers/usb/serial/usb-serial
💻 TXT
字号:
--- linux-2.2.16-usb/./drivers/usb/serial/usb-serial.h	Mon May  7 01:26:48 2001+++ linux-2.2.16-usb-james/./drivers/usb/serial/usb-serial.h	Fri Oct 27 04:41:25 2000@@ -49,6 +49,13 @@ 	int			bulk_out_size; 	struct urb *		write_urb; +        spinlock_t 		lock;+        unsigned char           *xmit_buf;+        int                     xmit_head;+        int                     xmit_tail;+        int                     xmit_cnt;++ 	wait_queue_head_t	write_wait;  	void *			private;	/* data private to the specific port */@@ -117,6 +124,7 @@   extern struct usb_serial_device_type handspring_device;+extern struct usb_serial_device_type pl2303_device; extern struct usb_serial_device_type whiteheat_fake_device; extern struct usb_serial_device_type whiteheat_device; extern struct usb_serial_device_type ftdi_sio_device;--- linux-2.2.16-usb/./drivers/usb/serial/usbserial.c	Mon May  7 01:26:48 2001+++ linux-2.2.16-usb-james/./drivers/usb/serial/usbserial.c	Mon Oct 30 00:36:23 2000@@ -226,6 +226,9 @@ #else 	#undef DEBUG #endif++#undef DEBUG+ #include <linux/usb.h>  /* Module information */@@ -234,6 +237,8 @@  #include "usb-serial.h" +#include "pl2303.h"+ #define MAX(a,b)	(((a)>(b))?(a):(b))  /* function prototypes for a "generic" type serial converter (no flow control, not all endpoints needed) */@@ -284,6 +289,9 @@ 	&whiteheat_fake_device, 	&whiteheat_device, #endif+#ifdef CONFIG_USB_SERIAL_PL2303+	&pl2303_device,+#endif #ifdef CONFIG_USB_SERIAL_VISOR 	&handspring_device, #endif@@ -841,6 +849,8 @@ 	}  #ifdef DEBUG+#endif+#if 1 	if (urb->actual_length) { 		printk (KERN_DEBUG __FILE__ ": data read - length = %d, data = ", urb->actual_length); 		for (i = 0; i < urb->actual_length; ++i) {@@ -968,7 +978,30 @@ 			interrupt_in_endpoint[num_interrupt_in] = endpoint; 			++num_interrupt_in; 		}+	}			++/* BEGIN HORRIBLE HACK FOR PL2303*/++	if ((dev->descriptor.idVendor == PL2303_VENDOR_ID) &&+		    (dev->descriptor.idProduct == PL2303_PRODUCT_ID) && (ifnum==1)) {++	/* check out the endpoints of the other interface*/+	interface = &dev->actconfig->interface[ifnum ^ 1].altsetting[0];+	for (i = 0; i < interface->bNumEndpoints; ++i) {+		endpoint = &interface->endpoint[i];+		+		if ((endpoint->bEndpointAddress & 0x80) &&+		    ((endpoint->bmAttributes & 3) == 0x03)) {+			/* we found a interrupt in endpoint */+			dbg("found interrupt in");+			interrupt_pipe = HAS;+			interrupt_in_endpoint[num_interrupt_in] = endpoint;+			++num_interrupt_in;+		} 	}+	}++/*END HORRIBLE HACK FOR PL2303 */ 	 	/* verify that we found all of the endpoints that we need */ 	if (!((interrupt_pipe & type->needs_interrupt_in) &&

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -