[PATCH] staging: comedi: remove this_board macro in the s526 driver

H Hartley Sweeten hartleys at visionengravers.com
Wed May 23 16:53:07 UTC 2012


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




More information about the devel mailing list