On Wednesday 02 February 2005 11:50 am, Ben Greenberg wrote: > > I am currently working on an academic project where we would like to > have several net2280 device cards operating in a single machine. It > appears that the current version of the net2280 driver (from 2.6.10 > kernel) will not bind to more than one card. Why is this?
Because that driver isn't geared towards academic projects, it's geared to supporting projects that can achieve USB-IF certification. Which means that there may only ever be one upstream USB link. > I am unsure > if the limiting factor is the usb_gadget_register_device() function in > net2280.c or some lower level function that is getting called. I'm a > newbie at Linux device drivers, but I'm learning fast. I've found > plenty of information on writing PCI drivers, but the usb gadget > framework looks different. The USB specification says there's only one upstream link. You won't find embedded CPUs, for example, that provide more than one USB peripheral controller. Accordingly, API frameworks to run inside USB peripherals have no reason to promote use of more than one. > Does anyone have any general information as to what would need to be > changed to allow multiple cards to get initialized? I would like to > work on a patch to enable this. There's a comment in net2280.c that describes the essentials: /* keeping it simple: * - one bus driver, initted first; * - one function driver, initted second * * most of the work to support multiple net2280 controllers would * be to associate this gadget driver (yes?) with all of them, or * perhaps to bind specific drivers to specific devices. */ If this is for an academic project, surely that suffices. :) And while you're mucking around in there, maybe you can find and fix that problem that crept in a while back which allows only one binding of a gadget driver to the chip ... it's no longer possible to rmmod one gadget driver and then modprobe an updated version (or a different version altogether). I think the story is that one of those patches removed some essential chip reset; like maybe it enters a suspended state after the 'rmmod', but the 'modprobe' doesn't take it out of that state. - Dave ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel