Commit 2c52a2fc authored by Frank Schaefer's avatar Frank Schaefer Committed by Mauro Carvalho Chehab

[media] em28xx: move struct v4l2_clk *clk from struct em28xx to struct v4l2

The current clock definition applies only to the V4L2 side of the
driver. Move its struct pointer to the v4l2_dev, where it belongs.
Signed-off-by: default avatarFrank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent abc1308f
...@@ -330,13 +330,14 @@ int em28xx_init_camera(struct em28xx *dev) ...@@ -330,13 +330,14 @@ int em28xx_init_camera(struct em28xx *dev)
char clk_name[V4L2_SUBDEV_NAME_SIZE]; char clk_name[V4L2_SUBDEV_NAME_SIZE];
struct i2c_client *client = &dev->i2c_client[dev->def_i2c_bus]; struct i2c_client *client = &dev->i2c_client[dev->def_i2c_bus];
struct i2c_adapter *adap = &dev->i2c_adap[dev->def_i2c_bus]; struct i2c_adapter *adap = &dev->i2c_adap[dev->def_i2c_bus];
struct em28xx_v4l2 *v4l2 = dev->v4l2;
int ret = 0; int ret = 0;
v4l2_clk_name_i2c(clk_name, sizeof(clk_name), v4l2_clk_name_i2c(clk_name, sizeof(clk_name),
i2c_adapter_id(adap), client->addr); i2c_adapter_id(adap), client->addr);
dev->clk = v4l2_clk_register_fixed(clk_name, "mclk", -EINVAL); v4l2->clk = v4l2_clk_register_fixed(clk_name, "mclk", -EINVAL);
if (IS_ERR(dev->clk)) if (IS_ERR(v4l2->clk))
return PTR_ERR(dev->clk); return PTR_ERR(v4l2->clk);
switch (dev->em28xx_sensor) { switch (dev->em28xx_sensor) {
case EM28XX_MT9V011: case EM28XX_MT9V011:
...@@ -448,8 +449,8 @@ int em28xx_init_camera(struct em28xx *dev) ...@@ -448,8 +449,8 @@ int em28xx_init_camera(struct em28xx *dev)
} }
if (ret < 0) { if (ret < 0) {
v4l2_clk_unregister_fixed(dev->clk); v4l2_clk_unregister_fixed(v4l2->clk);
dev->clk = NULL; v4l2->clk = NULL;
} }
return ret; return ret;
......
...@@ -1970,9 +1970,9 @@ static int em28xx_v4l2_fini(struct em28xx *dev) ...@@ -1970,9 +1970,9 @@ static int em28xx_v4l2_fini(struct em28xx *dev)
v4l2_ctrl_handler_free(&v4l2->ctrl_handler); v4l2_ctrl_handler_free(&v4l2->ctrl_handler);
v4l2_device_unregister(&v4l2->v4l2_dev); v4l2_device_unregister(&v4l2->v4l2_dev);
if (dev->clk) { if (v4l2->clk) {
v4l2_clk_unregister_fixed(dev->clk); v4l2_clk_unregister_fixed(v4l2->clk);
dev->clk = NULL; v4l2->clk = NULL;
} }
kref_put(&v4l2->ref, em28xx_free_v4l2); kref_put(&v4l2->ref, em28xx_free_v4l2);
......
...@@ -504,6 +504,7 @@ struct em28xx_v4l2 { ...@@ -504,6 +504,7 @@ struct em28xx_v4l2 {
struct v4l2_device v4l2_dev; struct v4l2_device v4l2_dev;
struct v4l2_ctrl_handler ctrl_handler; struct v4l2_ctrl_handler ctrl_handler;
struct v4l2_clk *clk;
}; };
struct em28xx_audio { struct em28xx_audio {
...@@ -569,7 +570,6 @@ struct em28xx { ...@@ -569,7 +570,6 @@ struct em28xx {
unsigned int has_alsa_audio:1; unsigned int has_alsa_audio:1;
unsigned int is_audio_only:1; unsigned int is_audio_only:1;
struct v4l2_clk *clk;
struct em28xx_board board; struct em28xx_board board;
/* Webcam specific fields */ /* Webcam specific fields */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment