@@ -1181,12 +1181,17 @@ static struct soc_camera_platform_info camera_info = {
.set_capture = camera_set_capture,
};
-static struct soc_camera_link camera_link = {
- .bus_id = 0,
- .add_device = mackerel_camera_add,
- .del_device = mackerel_camera_del,
- .module_name = "soc_camera_platform",
- .priv = &camera_info,
+static struct soc_camera_desc camera_link = {
+ .subdev_desc = {
+ .sd_pdata.host_priv = &camera_link,
+ .drv_priv = &camera_info,
+ },
+ .host_desc = {
+ .bus_id = 0,
+ .add_device = mackerel_camera_add,
+ .del_device = mackerel_camera_del,
+ .module_name = "soc_camera_platform",
+ },
};
static struct platform_device *camera_device;
@@ -1198,13 +1203,13 @@ static void mackerel_camera_release(struct device *dev)
static int mackerel_camera_add(struct soc_camera_device *icd)
{
- return soc_camera_platform_add(icd, &camera_device, &camera_link,
- mackerel_camera_release, 0);
+ return soc_camera_platform_add(icd, &camera_device,
+ &camera_link.subdev_desc, mackerel_camera_release, 0);
}
static void mackerel_camera_del(struct soc_camera_device *icd)
{
- soc_camera_platform_del(icd, camera_device, &camera_link);
+ soc_camera_platform_del(icd, camera_device, &camera_link.subdev_desc);
}
static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
@@ -351,12 +351,17 @@ static struct soc_camera_platform_info camera_info = {
.set_capture = camera_set_capture,
};
-static struct soc_camera_link camera_link = {
- .bus_id = 0,
- .add_device = ap325rxa_camera_add,
- .del_device = ap325rxa_camera_del,
- .module_name = "soc_camera_platform",
- .priv = &camera_info,
+static struct soc_camera_desc camera_link = {
+ .subdev_desc = {
+ .sd_pdata.host_priv = &camera_link,
+ .drv_priv = &camera_info,
+ },
+ .host_desc = {
+ .bus_id = 0,
+ .module_name = "soc_camera_platform",
+ .add_device = ap325rxa_camera_add,
+ .del_device = ap325rxa_camera_del,
+ },
};
static struct platform_device *camera_device;
@@ -368,21 +373,22 @@ static void ap325rxa_camera_release(struct device *dev)
static int ap325rxa_camera_add(struct soc_camera_device *icd)
{
- int ret = soc_camera_platform_add(icd, &camera_device, &camera_link,
- ap325rxa_camera_release, 0);
+ int ret = soc_camera_platform_add(icd, &camera_device,
+ &camera_link.subdev_desc, ap325rxa_camera_release, 0);
if (ret < 0)
return ret;
ret = camera_probe();
if (ret < 0)
- soc_camera_platform_del(icd, camera_device, &camera_link);
+ soc_camera_platform_del(icd, camera_device,
+ &camera_link.subdev_desc);
return ret;
}
static void ap325rxa_camera_del(struct soc_camera_device *icd)
{
- soc_camera_platform_del(icd, camera_device, &camera_link);
+ soc_camera_platform_del(icd, camera_device, &camera_link.subdev_desc);
}
#endif /* CONFIG_I2C */
@@ -505,12 +511,17 @@ static struct ov772x_camera_info ov7725_info = {
.edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0),
};
-static struct soc_camera_link ov7725_link = {
- .bus_id = 0,
- .power = ov7725_power,
- .board_info = &ap325rxa_i2c_camera[0],
- .i2c_adapter_id = 0,
- .priv = &ov7725_info,
+static struct soc_camera_desc ov7725_link = {
+ .subdev_desc = {
+ .sd_pdata.host_priv = &ov7725_link,
+ .power = ov7725_power,
+ .drv_priv = &ov7725_info,
+ },
+ .host_desc = {
+ .bus_id = 0,
+ .board_info = &ap325rxa_i2c_camera[0],
+ .i2c_adapter_id = 0,
+ },
};
static struct platform_device ap325rxa_camera[] = {
@@ -34,12 +34,10 @@ static inline void soc_camera_platform_release(struct platform_device **pdev)
static inline int soc_camera_platform_add(struct soc_camera_device *icd,
struct platform_device **pdev,
- struct soc_camera_link *plink,
+ struct soc_camera_subdev_desc *ssdd,
void (*release)(struct device *dev),
int id)
{
- struct soc_camera_subdev_desc *ssdd =
- (struct soc_camera_subdev_desc *)plink;
struct soc_camera_platform_info *info = ssdd->drv_priv;
int ret;
@@ -70,10 +68,8 @@ static inline int soc_camera_platform_add(struct soc_camera_device *icd,
static inline void soc_camera_platform_del(const struct soc_camera_device *icd,
struct platform_device *pdev,
- const struct soc_camera_link *plink)
+ const struct soc_camera_subdev_desc *ssdd)
{
- const struct soc_camera_subdev_desc *ssdd =
- (const struct soc_camera_subdev_desc *)plink;
if (&icd->sdesc->subdev_desc != ssdd || !pdev)
return;
This patch completes removal of struct soc_camera_link by all platforms. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> --- arch/arm/mach-shmobile/board-mackerel.c | 23 ++++++++++------ arch/sh/boards/mach-ap325rxa/setup.c | 43 +++++++++++++++++++----------- include/media/soc_camera_platform.h | 8 +---- 3 files changed, 43 insertions(+), 31 deletions(-)