On 05/07/2015 02:48 PM, Mark Brown wrote: [...]
+skip_search:
- if (cache) {
cache->sink = wsink;
cache->source = wsource;
- }
Putting this into a store hit function would be good.
mutex_lock_nested(&dapm->card->dapm_mutex, SND_SOC_DAPM_CLASS_INIT); for (i = 0; i < num; i++) {
r = snd_soc_dapm_add_route(dapm, route);
r = snd_soc_dapm_add_route(dapm, route, &cache);
Should we just have the cache in the dapm context or the card instead of locally? It's only two pointers at the minute so there doesn't seem to be much cost from keeping it around and it might generate somme more hits for some use cases. Or to put it another way why is the cache optional and created and re-created here like this?
I don't think the cache will produce hits anywhere else other then adding routes from the same route table. That's the only place were the same widget or widgets close to each other are accessed sequentially. I'd prefer to keep it locally.