int stage1_pointer;
 };
 
-static int sprd_platform_compr_trigger(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_trigger(struct snd_soc_component *component,
+                                      struct snd_compr_stream *cstream,
                                       int cmd);
 
 static void sprd_platform_compr_drain_notify(void *arg)
        snd_compr_fragment_elapsed(cstream);
 }
 
-static int sprd_platform_compr_dma_config(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_dma_config(struct snd_soc_component *component,
+                                         struct snd_compr_stream *cstream,
                                          struct snd_compr_params *params,
                                          int channel)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        struct sprd_compr_stream *stream = runtime->private_data;
        struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-       struct snd_soc_component *component =
-               snd_soc_rtdcom_lookup(rtd, DRV_NAME);
        struct device *dev = component->dev;
        struct sprd_compr_data *data = snd_soc_dai_get_drvdata(asoc_rtd_to_cpu(rtd, 0));
        struct sprd_pcm_dma_params *dma_params = data->dma_params;
        return ret;
 }
 
-static int sprd_platform_compr_set_params(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_set_params(struct snd_soc_component *component,
+                                         struct snd_compr_stream *cstream,
                                          struct snd_compr_params *params)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        struct sprd_compr_stream *stream = runtime->private_data;
-       struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-       struct snd_soc_component *component =
-               snd_soc_rtdcom_lookup(rtd, DRV_NAME);
        struct device *dev = component->dev;
        struct sprd_compr_params compr_params = { };
        int ret;
         * means once the source channel's transaction is done, it will trigger
         * the destination channel's transaction automatically.
         */
-       ret = sprd_platform_compr_dma_config(cstream, params, 1);
+       ret = sprd_platform_compr_dma_config(component, cstream, params, 1);
        if (ret) {
                dev_err(dev, "failed to config stage 1 DMA: %d\n", ret);
                return ret;
        }
 
-       ret = sprd_platform_compr_dma_config(cstream, params, 0);
+       ret = sprd_platform_compr_dma_config(component, cstream, params, 0);
        if (ret) {
                dev_err(dev, "failed to config stage 0 DMA: %d\n", ret);
                goto config_err;
        return ret;
 }
 
-static int sprd_platform_compr_open(struct snd_compr_stream *cstream)
+static int sprd_platform_compr_open(struct snd_soc_component *component,
+                                   struct snd_compr_stream *cstream)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-       struct snd_soc_component *component =
-               snd_soc_rtdcom_lookup(rtd, DRV_NAME);
        struct device *dev = component->dev;
        struct sprd_compr_data *data = snd_soc_dai_get_drvdata(asoc_rtd_to_cpu(rtd, 0));
        struct sprd_compr_stream *stream;
        return ret;
 }
 
-static int sprd_platform_compr_free(struct snd_compr_stream *cstream)
+static int sprd_platform_compr_free(struct snd_soc_component *component,
+                                   struct snd_compr_stream *cstream)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        struct sprd_compr_stream *stream = runtime->private_data;
-       struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-       struct snd_soc_component *component =
-               snd_soc_rtdcom_lookup(rtd, DRV_NAME);
        struct device *dev = component->dev;
        int stream_id = cstream->direction, i;
 
        return 0;
 }
 
-static int sprd_platform_compr_trigger(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_trigger(struct snd_soc_component *component,
+                                      struct snd_compr_stream *cstream,
                                       int cmd)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        struct sprd_compr_stream *stream = runtime->private_data;
-       struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-       struct snd_soc_component *component =
-               snd_soc_rtdcom_lookup(rtd, DRV_NAME);
        struct device *dev = component->dev;
        int channels = stream->num_channels, ret = 0, i;
        int stream_id = cstream->direction;
        return ret;
 }
 
-static int sprd_platform_compr_pointer(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_pointer(struct snd_soc_component *component,
+                                      struct snd_compr_stream *cstream,
                                       struct snd_compr_tstamp *tstamp)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        return 0;
 }
 
-static int sprd_platform_compr_copy(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_copy(struct snd_soc_component *component,
+                                   struct snd_compr_stream *cstream,
                                    char __user *buf, size_t count)
 {
        struct snd_compr_runtime *runtime = cstream->runtime;
        return count;
 }
 
-static int sprd_platform_compr_get_caps(struct snd_compr_stream *cstream,
+static int sprd_platform_compr_get_caps(struct snd_soc_component *component,
+                                       struct snd_compr_stream *cstream,
                                        struct snd_compr_caps *caps)
 {
        caps->direction = cstream->direction;
 }
 
 static int
-sprd_platform_compr_get_codec_caps(struct snd_compr_stream *cstream,
+sprd_platform_compr_get_codec_caps(struct snd_soc_component *component,
+                                  struct snd_compr_stream *cstream,
                                   struct snd_compr_codec_caps *codec)
 {
        switch (codec->codec) {
        return 0;
 }
 
-const struct snd_compr_ops sprd_platform_compr_ops = {
+const struct snd_compress_ops sprd_platform_compress_ops = {
        .open = sprd_platform_compr_open,
        .free = sprd_platform_compr_free,
        .set_params = sprd_platform_compr_set_params,