int atomisp_css_update_stream(struct atomisp_sub_device *asd)
 {
-       int ret;
        struct atomisp_device *isp = asd->isp;
 
        if (__destroy_streams(asd, true))
        if (__destroy_pipes(asd, true))
                dev_warn(isp->dev, "destroy pipe failed.\n");
 
-       ret = __create_pipes(asd);
-       if (ret) {
-               dev_err(isp->dev, "create pipe failed %d.\n", ret);
-               return -EIO;
-       }
-
-       ret = __create_streams(asd);
-       if (ret) {
-               dev_warn(isp->dev, "create stream failed %d.\n", ret);
-               __destroy_pipes(asd, true);
-               return -EIO;
-       }
-
-       return 0;
+       return atomisp_create_pipes_stream(asd);
 }
 
 int atomisp_css_init(struct atomisp_device *isp)
         * recreated in the next stream on.
         */
        if (!asd->stream_prepared) {
-               if (__create_pipes(asd)) {
-                       dev_err(isp->dev, "create pipe error.\n");
-                       return -EINVAL;
-               }
-               if (__create_streams(asd)) {
-                       dev_err(isp->dev, "create stream error.\n");
-                       ret = -EINVAL;
-                       goto stream_err;
-               }
+               ret = atomisp_create_pipes_stream(asd);
+               if (ret)
+                       return ret;
        }
        /*
         * SP can only be started one time