#include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <media/soc_camera.h>
-
-struct soc_camera_platform_info {
-       int iface;
-       char *format_name;
-       unsigned long format_depth;
-       struct v4l2_pix_format format;
-       unsigned long bus_param;
-       int (*set_capture)(struct soc_camera_platform_info *info, int enable);
-};
+#include <media/soc_camera_platform.h>
 
 struct soc_camera_platform_priv {
        struct soc_camera_platform_info *info;
 
 static int soc_camera_platform_init(struct soc_camera_device *icd)
 {
+       struct soc_camera_platform_info *p = soc_camera_platform_get_info(icd);
+
+       if (p->power)
+               p->power(1);
+
        return 0;
 }
 
 static int soc_camera_platform_release(struct soc_camera_device *icd)
 {
+       struct soc_camera_platform_info *p = soc_camera_platform_get_info(icd);
+
+       if (p->power)
+               p->power(0);
+
        return 0;
 }