summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/media/soc_camera.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
index 0bad8f1d7e8..344d8990477 100644
--- a/include/media/soc_camera.h
+++ b/include/media/soc_camera.h
@@ -126,28 +126,34 @@ struct soc_camera_link {
void (*free_bus)(struct soc_camera_link *);
};
-static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev)
+static inline struct soc_camera_device *to_soc_camera_dev(const struct device *dev)
{
return container_of(dev, struct soc_camera_device, dev);
}
-static inline struct soc_camera_host *to_soc_camera_host(struct device *dev)
+static inline struct soc_camera_host *to_soc_camera_host(const struct device *dev)
{
struct v4l2_device *v4l2_dev = dev_get_drvdata(dev);
return container_of(v4l2_dev, struct soc_camera_host, v4l2_dev);
}
-static inline struct soc_camera_link *to_soc_camera_link(struct soc_camera_device *icd)
+static inline struct soc_camera_link *to_soc_camera_link(const struct soc_camera_device *icd)
{
return icd->dev.platform_data;
}
-static inline struct device *to_soc_camera_control(struct soc_camera_device *icd)
+static inline struct device *to_soc_camera_control(const struct soc_camera_device *icd)
{
return dev_get_drvdata(&icd->dev);
}
+static inline struct v4l2_subdev *soc_camera_to_subdev(const struct soc_camera_device *icd)
+{
+ struct device *control = to_soc_camera_control(icd);
+ return dev_get_drvdata(control);
+}
+
int soc_camera_host_register(struct soc_camera_host *ici);
void soc_camera_host_unregister(struct soc_camera_host *ici);