On Wed, Jul 02, 2008 at 11:27:17AM -0400, Jon Smirl wrote: > On 7/1/08, Grant Likely <grant.likely@xxxxxxxxxxxx> wrote: > > +static struct of_snd_soc_device * > > +of_snd_soc_get_device(struct device_node *codec_node) > > +{ > > + struct of_snd_soc_device *of_soc; > > + > > + list_for_each_entry(of_soc, &of_snd_soc_device_list, list) { > > + if (of_soc->codec_node == codec_node) > > + return of_soc; > > + } > > + > > + of_soc = kzalloc(sizeof(struct of_snd_soc_device), GFP_KERNEL); > > + if (!of_soc) > > + return NULL; > > + > > + /* Initialize the structure and add it to the global list */ > > + of_soc->codec_node = codec_node; > > + of_soc->id = of_snd_soc_next_index++; > > + of_soc->machine.dai_link = &of_soc->dai_link; > > + of_soc->machine.num_links = 1; > > + of_soc->device.machine = &of_soc->machine; > > + of_soc->dai_link.ops = &of_snd_soc_ops; > > + list_add(&of_soc->list, &of_snd_soc_device_list); > > + > > + return of_soc; > > +} > > Isn't this performing the same basic function as this code (except for > spi)? Should this list be maintained in alsa or should there be an > equivalent for searching the spi bus? If you follow the link to the > codec node and get it's parent you know which bus to search. But it > might be simpler to just search the buses sequentially for the node. > > static int of_dev_node_match(struct device *dev, void *data) > { > return dev->archdata.of_node == data; > } > > struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) > { > struct device *dev; > > dev = bus_find_device(&i2c_bus_type, NULL, node, > of_dev_node_match); > if (!dev) > return NULL; > > return to_i2c_client(dev); > } > EXPORT_SYMBOL(of_find_i2c_device_by_node); Yes, but you hadn't written these functions when I wrote this helper. :-P. I believe ASoC v2 makes all this stuff unnecessary, but I'm waiting for v2 to hit mainline before I port forward. g. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel