On Tue, 29 Jul 2008 09:15:39 +0200 Dominik Brodowski wrote: > By calling pcmcia_loop_config(), a pcmcia driver can iterate over all > available configuration options. During a driver's probe() phase, one > doesn't need to use pcmcia_get_{first,next}_tuple, pcmcia_get_tuple_data > and pcmcia_parse_tuple directly in most if not all cases. > > Signed-off-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> > --- > Documentation/pcmcia/driver-changes.txt | 6 +++ > drivers/pcmcia/pcmcia_resource.c | 57 +++++++++++++++++++++++++++++++ > include/pcmcia/cistpl.h | 6 +++ > 3 files changed, 69 insertions(+), 0 deletions(-) > > By calling pcmcia_loop_config(), a pcmcia driver can iterate over all > available configuration options. During a driver's probe() phase, one > doesn't need to use pcmcia_get_{first,next}_tuple, pcmcia_get_tuple_data > and pcmcia_parse_tuple directly in most if not all cases. > > Signed-off-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> > --- > Documentation/pcmcia/driver-changes.txt | 6 +++ > drivers/pcmcia/pcmcia_resource.c | 63 +++++++++++++++++++++++++++++++ > include/pcmcia/cistpl.h | 6 +++ > 3 files changed, 75 insertions(+), 0 deletions(-) > > diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c > index 4884a18..0fa48aa 100644 > --- a/drivers/pcmcia/pcmcia_resource.c > +++ b/drivers/pcmcia/pcmcia_resource.c > @@ -909,3 +909,66 @@ void pcmcia_disable_device(struct pcmcia_device *p_dev) { > pcmcia_release_window(p_dev->win); > } > EXPORT_SYMBOL(pcmcia_disable_device); > + > + Hi, One more comment here (sorry I missed it earlier): The kernel-doc comment needs to immediately precede the function, so that struct pcmcia_cfg_mem needs to be moved to before the kernel-doc block... > +/** > + * pcmcia_loop_config() - loop over configuration options > + * @p_dev: the struct pcmcia_device which we need to loop for. > + * @conf_check: function to call for each configuration option. > + * It gets passed the struct pcmcia_device, the CIS data > + * describing the configuration option, and private data > + * being passed to pcmcia_loop_config() > + * @priv_data: private data to be passed to the conf_check function. > + * > + * pcmcia_loop_config() loops over all configuration options, and calls > + * the driver-specific conf_check() for each one, checking whether > + * it is a valid one. > + */ > + > +struct pcmcia_cfg_mem { > + tuple_t tuple; > + cisparse_t parse; > + u8 buf[256]; > +}; > + > +int pcmcia_loop_config(struct pcmcia_device *p_dev, > + int (*conf_check) (struct pcmcia_device *p_dev, > + cistpl_cftable_entry_t *cfg, > + void *priv_data), > + void *priv_data) > +{ ... > +} > +EXPORT_SYMBOL(pcmcia_loop_config); --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html