int snd_soc_dapm_weak_routes(struct snd_soc_dapm_context *dapm,
                             const struct snd_soc_dapm_route *route, int num);
 void snd_soc_dapm_free_widget(struct snd_soc_dapm_widget *w);
-void snd_soc_dapm_reset_cache(struct snd_soc_dapm_context *dapm);
 
 /* dapm events */
 void snd_soc_dapm_stream_event(struct snd_soc_pcm_runtime *rtd, int stream,
        bool has_second_set;
 };
 
-struct snd_soc_dapm_wcache {
-       struct snd_soc_dapm_widget *widget;
-};
-
 /* DAPM context */
 struct snd_soc_dapm_context {
        enum snd_soc_bias_level bias_level;
        enum snd_soc_bias_level target_bias_level;
        struct list_head list;
 
-       struct snd_soc_dapm_wcache path_sink_cache;
-       struct snd_soc_dapm_wcache path_source_cache;
+       struct snd_soc_dapm_widget *wcache_sink;
+       struct snd_soc_dapm_widget *wcache_source;
 
 #ifdef CONFIG_DEBUG_FS
        struct dentry *debugfs_dapm;
 
 }
 
 static struct snd_soc_dapm_widget *
-dapm_wcache_lookup(struct snd_soc_dapm_wcache *wcache, const char *name)
+dapm_wcache_lookup(struct snd_soc_dapm_widget *w, const char *name)
 {
-       struct snd_soc_dapm_widget *w = wcache->widget;
-
        if (w) {
                struct list_head *wlist = &w->dapm->card->widgets;
                const int depth = 2;
        return NULL;
 }
 
-static inline void dapm_wcache_update(struct snd_soc_dapm_wcache *wcache,
-                                     struct snd_soc_dapm_widget *w)
-{
-       wcache->widget = w;
-}
-
 /**
  * snd_soc_dapm_force_bias_level() - Sets the DAPM bias level
  * @dapm: The DAPM context for which to set the level
 }
 EXPORT_SYMBOL_GPL(snd_soc_dapm_free_widget);
 
-void snd_soc_dapm_reset_cache(struct snd_soc_dapm_context *dapm)
-{
-       dapm->path_sink_cache.widget = NULL;
-       dapm->path_source_cache.widget = NULL;
-}
-
 /* free all dapm widgets and resources */
 static void dapm_free_widgets(struct snd_soc_dapm_context *dapm)
 {
                        continue;
                snd_soc_dapm_free_widget(w);
        }
-       snd_soc_dapm_reset_cache(dapm);
+
+       dapm->wcache_sink       = NULL;
+       dapm->wcache_source     = NULL;
 }
 
 static struct snd_soc_dapm_widget *dapm_find_widget(
                source = route->source;
        }
 
-       wsource = dapm_wcache_lookup(&dapm->path_source_cache, source);
-       wsink = dapm_wcache_lookup(&dapm->path_sink_cache, sink);
+       wsource = dapm_wcache_lookup(dapm->wcache_source, source);
+       wsink   = dapm_wcache_lookup(dapm->wcache_sink,   sink);
 
        if (wsink && wsource)
                goto skip_search;
        }
 
 skip_search:
-       dapm_wcache_update(&dapm->path_sink_cache, wsink);
-       dapm_wcache_update(&dapm->path_source_cache, wsource);
+       /* update cache */
+       dapm->wcache_sink       = wsink;
+       dapm->wcache_source     = wsource;
 
        ret = snd_soc_dapm_add_path(dapm, wsource, wsink, route->control,
                route->connected);