On Wednesday, May 23, 2012 9:49 AM, Ian Abbott wrote: > On 2012-05-23 17:28, H Hartley Sweeten wrote: >> Side-note on the boardinfo stuff. >> >> I wonder if it makes sense to create a common boardinfo struct >> and modify the comedi_driver struct a bit. Something like: >> >> struct comedi_boardinfo { >> const char *name; >> unsigned short vendor; >> unsigned short device; >> void *private; >> }; >> >> struct comedi_driver { >> struct comedi_driver *next; >> >> const char *driver_name; >> struct module *module; >> int (*attach) (struct comedi_device *, struct comedi_devconfig *); >> void (*detach) (struct comedi_device *); >> int (*attach_pci) (struct comedi_device *, struct pci_dev *); >> int (*attach_usb) (struct comedi_device *, struct usb_interface *); >> >> u32 num_boards; >> struct comedi_boardinfo *board; >> }; >> >> This would allow comedi_recognize() to walk the boardinfo >> to find the match without all the ugly casts. It should also >> allow creating a common comedi_find_pcidev() for all the >> comedi pci drivers to use when probing for the board_ptr. >> >> This would create a bit of churn but I think it would be a >> lot cleaner in the end. >> >> What do you think? > > Please don't do this yet. We might want to implement auto configuration > for device types that have no concept of vendor ID or product ID, such > as PCMCIA, platform devices, SPI devices etc., either by adding extra > attach_xxx hooks to struct comedi_driver for the more common bus types, > or a more generic attach_generic hook for the less common bus types. > > Also, it would waste space in the ISA-only drivers. OK. I'll hold off on doing anything like this. But, I think we would actually save space in all the drivers. I just need to think about it a bit more. Regards, Hartley _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel