diff options
Diffstat (limited to 'drivers/media/i2c/soc_camera/imx074.c')
| -rw-r--r-- | drivers/media/i2c/soc_camera/imx074.c | 27 | 
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/media/i2c/soc_camera/imx074.c b/drivers/media/i2c/soc_camera/imx074.c index f8534eec9de..a2a5cbbdbe2 100644 --- a/drivers/media/i2c/soc_camera/imx074.c +++ b/drivers/media/i2c/soc_camera/imx074.c @@ -271,9 +271,9 @@ static int imx074_g_chip_ident(struct v4l2_subdev *sd,  static int imx074_s_power(struct v4l2_subdev *sd, int on)  {  	struct i2c_client *client = v4l2_get_subdevdata(sd); -	struct soc_camera_link *icl = soc_camera_i2c_to_link(client); +	struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); -	return soc_camera_set_power(&client->dev, icl, on); +	return soc_camera_set_power(&client->dev, ssdd, on);  }  static int imx074_g_mbus_config(struct v4l2_subdev *sd, @@ -430,10 +430,9 @@ static int imx074_probe(struct i2c_client *client,  {  	struct imx074 *priv;  	struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); -	struct soc_camera_link *icl = soc_camera_i2c_to_link(client); -	int ret; +	struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); -	if (!icl) { +	if (!ssdd) {  		dev_err(&client->dev, "IMX074: missing platform data!\n");  		return -EINVAL;  	} @@ -444,7 +443,7 @@ static int imx074_probe(struct i2c_client *client,  		return -EIO;  	} -	priv = kzalloc(sizeof(struct imx074), GFP_KERNEL); +	priv = devm_kzalloc(&client->dev, sizeof(struct imx074), GFP_KERNEL);  	if (!priv)  		return -ENOMEM; @@ -452,23 +451,15 @@ static int imx074_probe(struct i2c_client *client,  	priv->fmt	= &imx074_colour_fmts[0]; -	ret = imx074_video_probe(client); -	if (ret < 0) { -		kfree(priv); -		return ret; -	} - -	return ret; +	return imx074_video_probe(client);  }  static int imx074_remove(struct i2c_client *client)  { -	struct imx074 *priv = to_imx074(client); -	struct soc_camera_link *icl = soc_camera_i2c_to_link(client); +	struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); -	if (icl->free_bus) -		icl->free_bus(icl); -	kfree(priv); +	if (ssdd->free_bus) +		ssdd->free_bus(ssdd);  	return 0;  }  |