Since the merge window is now open, this series is posted as an RFC. Any comments would be appreciated. I'm hoping to get any issues addressed so the series will be ready when the staging tree is opened after the merge window closes. Currently this driver uses a static array to pass the usb_interface from the usb_driver to the comedi_driver. This puts a limitation on the number of USB devices that can be connected and it makes the USB (*probe) -> comedi (*auto_attach) and comedi (*detach) -> USB (*disconnect) process overly complicated. By pushing all the USB (*probe) functionality into the comedi (*auto_attach) and the USB (*disconnect) into the comedi (*detach), the USB device limitation is removed since the private data can be kzalloc'ed. We can also remove the static array as well as the semaphore that protected it. The rest of this series just removes any unnecessary cruft in the driver and cleans up the rest of the driver. H Hartley Sweeten (39): staging: comedi: usbduxfast: request firmware synchronously staging: comedi: usbduxfast: remove COMEDI_DEBUG noise in usb (*probe) staging: comedi: usbduxfast: use a local var for the usbduxfastsub_s staging: comedi: usbduxfast: rename usb_interface variables staging: comedi: usbduxfast: rename usb_device variables staging: comedi: usbduxfast: rename usbduxfastsub_s variables staging: comedi: usbduxfast: remove 'owner' from usb_driver staging: comedi: usbduxfast: tidy up usbduxfast_attach_common() staging: comedi: usbduxfast: remove all COMEDI_DEBUG messages staging: comedi: usbduxfast: tidy up usbduxfastsub_ai_Irq() staging: comedi: usbduxfast: Use comedi_usb_auto_unconfig() for (*disconnect) staging: comedi: usbduxfast: Move usb_driver (*probe) into comedi_driver staging: comedi: usbduxfast: remove some unused defines staging: comedi: usbduxfast: absorb tidy_up() into the (*detach) staging: comedi: usbduxfast: remove 'probed' from private data staging: comedi: usbduxfast: remove 'attached' from private data staging: comedi: usbduxfast: remove 'ifnum' from private data staging: comedi: usbduxfast: don't pass the private data directly staging: comedi: usbduxfast: remove 'comedidev' from the private data staging: comedi: usbduxfast: use dev->class_dev for all dev_{level} messages staging: comedi: usbduxfast: remove 'intf' from the private data staging: comedi: usbduxfast: remove 'usb' from the private data staging: comedi: usbduxfast: rename 'urbIn' in private data staging: comedi: usbduxfast: rename 'insnBuffer' from private data staging: comedi: usbduxfast: rename 'transfer_buffer' in private data staging: comedi: usbduxfast: rename 'dux_commands' in private data staging: comedi: usbduxfast: remove extra dev_err() messages staging: comedi: usbduxfast: tidy up send_dux_commands() staging: comedi: usbduxfast: tidy up usbduxfastsub_unlink_InURBs() staging: comedi: usbduxfast: tidy up usbduxfast_ai_stop() staging: comedi: usbduxfast: tidy up usbduxfast_ai_cancel() staging: comedi: usbduxfast: fix a > 80 char line issue staging: comedi: usbduxfast: tidy up firmwareUpload() staging: comedi: usbduxfast: move usbduxfast_upload_firmware() staging: comedi: usbduxfast: consolidate the firmware upload staging: comedi: usbduxfast: rename CamelCase 'minSamplPer' staging: comedi: usbduxfast: rename usbduxfastsub_submit_InURBs() staging: comedi: usbduxfast: introduce usbduxfast_cmd_data() staging: comedi: usbduxfast: tidy up usbduxfast_ai_insn_read() drivers/staging/comedi/drivers/usbduxfast.c | 1292 +++++++++------------------ 1 file changed, 408 insertions(+), 884 deletions(-) -- 1.8.1.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel