CDC class devices working again with Linux

General discussions about V-USB, our firmware-only implementation of a low speed USB device on Atmel's AVR microcontrollers
Post Reply
basti79

CDC class devices working again with Linux

Post by basti79 » Fri Aug 28, 2009 5:17 pm

Hi @ all,

as documented CDC class devices were a little problematic under Linux. Normally Buld endpoints are now allowed for low speed devices. Starting around Kernel version 2.6.23 Linux converts Bulk endpoints to Interrupt Endpoints for Low Speed devices. This make the cdc-acm driver stop working with V-USB.

Now the good News: Since Kernel 2.6.31-rc3 a patch is included which makes the driver work again. :D

From http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.31-rc3:
commit 5186ffee2320942c3dc9745f7930e0eb15329ca6
Author: Arseniy Lartsev <ars3n@yandex.ru>
Date: Wed Jul 1 16:27:26 2009 +0400

USB: cdc-acm: work around some broken devices

This patch introduces a work around for cdc-acm devices which are
low speed contrary to the specification, which requires bulk endpoints
which are banned in low speed and converted by usbcore to virtual
interrupt endpoints if they are used nevertheless.

Signed-off-by: Arseniy Lartsev <ars3n@yandex.ru>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


I've tried this patch in an 2.6.30 Kernel and it works fine!

Greets
Sebastian.

Post Reply