*** /usr/src/linux-source-2.6.12/drivers/usb/class/cdc-acm.c.orig 2005-12-06 18:18:06.000000000 -0700 --- /usr/src/linux-source-2.6.12/drivers/usb/class/cdc-acm.c 2005-12-06 18:19:45.000000000 -0700 *************** *** 73,78 **** --- 73,79 ---- #define DRIVER_AUTHOR "Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik" #define DRIVER_DESC "USB Abstract Control Model driver for USB modems and ISDN adapters" + static ushort maxszc = 0, maxszw = 0, maxszr = 0; static struct usb_driver acm_driver; static struct tty_driver *acm_tty_driver; static struct acm *acm_table[ACM_TTY_MINORS]; *************** *** 686,694 **** } memset(acm, 0, sizeof(struct acm)); ! ctrlsize = le16_to_cpu(epctrl->wMaxPacketSize); ! readsize = le16_to_cpu(epread->wMaxPacketSize); ! acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize); acm->control = control_interface; acm->data = data_interface; acm->minor = minor; --- 687,698 ---- } memset(acm, 0, sizeof(struct acm)); ! //ctrlsize = le16_to_cpu(epctrl->wMaxPacketSize); ! //readsize = le16_to_cpu(epread->wMaxPacketSize); ! //acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize); ! ctrlsize = (le16_to_cpu(epctrl->wMaxPacketSize) > maxszc)?le16_to_cpu(epctrl->wMaxPacketSize):maxszc; ! readsize = (le16_to_cpu(epread->wMaxPacketSize) > maxszr)?le16_to_cpu(epread->wMaxPacketSize):maxszr; ! acm->writesize = (le16_to_cpu(epwrite->wMaxPacketSize) > maxszw)?le16_to_cpu(epwrite->wMaxPacketSize):maxszw; acm->control = control_interface; acm->data = data_interface; acm->minor = minor; *************** *** 940,942 **** --- 944,952 ---- MODULE_DESCRIPTION( DRIVER_DESC ); MODULE_LICENSE("GPL"); + module_param(maxszc, ushort,0); + MODULE_PARM_DESC(maxszc,"User specified USB endpoint control size"); + module_param(maxszr, ushort,0); + MODULE_PARM_DESC(maxszr,"User specified USB endpoint read size"); + module_param(maxszw, ushort,0); + MODULE_PARM_DESC(maxszw,"User specified USB endpoint write size");