int (*init)(struct snd_soc_component *component);
 
        /* function mark */
-       struct snd_pcm_substream *mark_module;
+       void *mark_module;
        struct snd_pcm_substream *mark_open;
        struct snd_pcm_substream *mark_hw_params;
        struct snd_pcm_substream *mark_trigger;
 #define snd_soc_component_module_get_when_open(component, substream)   \
        snd_soc_component_module_get(component, substream, 1)
 int snd_soc_component_module_get(struct snd_soc_component *component,
-                                struct snd_pcm_substream *substream,
-                                int upon_open);
+                                void *mark, int upon_open);
 #define snd_soc_component_module_put_when_remove(component)    \
        snd_soc_component_module_put(component, NULL, 0, 0)
 #define snd_soc_component_module_put_when_close(component, substream, rollback) \
        snd_soc_component_module_put(component, substream, 1, rollback)
 void snd_soc_component_module_put(struct snd_soc_component *component,
-                                 struct snd_pcm_substream *substream,
-                                 int upon_open, int rollback);
+                                 void *mark, int upon_open, int rollback);
 
 static inline void snd_soc_component_set_drvdata(struct snd_soc_component *c,
                                                 void *data)
 
 EXPORT_SYMBOL_GPL(snd_soc_component_set_jack);
 
 int snd_soc_component_module_get(struct snd_soc_component *component,
-                                struct snd_pcm_substream *substream,
-                                int upon_open)
+                                void *mark, int upon_open)
 {
        int ret = 0;
 
            !try_module_get(component->dev->driver->owner))
                ret = -ENODEV;
 
-       /* mark substream if succeeded */
+       /* mark module if succeeded */
        if (ret == 0)
-               soc_component_mark_push(component, substream, module);
+               soc_component_mark_push(component, mark, module);
 
        return soc_component_ret(component, ret);
 }
 
 void snd_soc_component_module_put(struct snd_soc_component *component,
-                                 struct snd_pcm_substream *substream,
-                                 int upon_open, int rollback)
+                                 void *mark, int upon_open, int rollback)
 {
-       if (rollback && !soc_component_mark_match(component, substream, module))
+       if (rollback && !soc_component_mark_match(component, mark, module))
                return;
 
        if (component->driver->module_get_upon_open == !!upon_open)
                module_put(component->dev->driver->owner);
 
-       /* remove marked substream */
-       soc_component_mark_pop(component, substream, module);
+       /* remove the mark from module */
+       soc_component_mark_pop(component, mark, module);
 }
 
 int snd_soc_component_open(struct snd_soc_component *component,