--- zzzz-none-000/linux-2.6.39.4/drivers/usb/storage/usb.c 2011-08-03 19:43:28.000000000 +0000 +++ puma6-atom-6490-729/linux-2.6.39.4/drivers/usb/storage/usb.c 2021-11-10 13:38:17.000000000 +0000 @@ -78,7 +78,12 @@ MODULE_DESCRIPTION("USB Mass Storage driver for Linux"); MODULE_LICENSE("GPL"); +/* == 20160718 AVM/WKR need delay for UMTS modeswitch ==*/ +#if defined (CONFIG_USB_SERIAL_OPTION) || defined (CONFIG_USB_SERIAL_OPTION_MODULE) +static unsigned int delay_use = 5; +#else static unsigned int delay_use = 1; +#endif module_param(delay_use, uint, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(delay_use, "seconds to delay before using a new device"); @@ -1012,6 +1017,19 @@ struct us_data *us; int result; + /* == AVM/WK 20140917 Patch from AVM Kernel 2.6.32 + * Filter out all AVM (057C) mass storage devices... + */ + struct usb_device *udev; + #define AVM_VENDOR_ID 0x057C + udev = interface_to_usbdev(intf); + if (le16_to_cpu(udev->descriptor.idVendor) == AVM_VENDOR_ID) { + printk (KERN_INFO "USB Mass Storage device (%04x:%04x) ignored!\n", + le16_to_cpu(udev->descriptor.idVendor), + le16_to_cpu(udev->descriptor.idProduct)); + return -ENODEV; + } + /* * If libusual is configured, let it decide whether a standard * device should be handled by usb-storage or by ub.