Commit 2437aeb4 authored by Frank Schaefer's avatar Frank Schaefer Committed by Mauro Carvalho Chehab

[media] em28xx: get rid of the dummy clock source

The v4l2 dummy clock has been added with commit fc5d0f8a
("V4L2: em28xx: register a V4L2 clock source") to be able to use the ov2640
soc_camera driver.
Since commit 46796cfc ("ov2640: use standard clk and enable it") it is
no longer required.
Signed-off-by: default avatarFrank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 4d584436
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/usb.h> #include <linux/usb.h>
#include <media/i2c/mt9v011.h> #include <media/i2c/mt9v011.h>
#include <media/v4l2-clk.h>
#include <media/v4l2-common.h> #include <media/v4l2-common.h>
/* Possible i2c addresses of Micron sensors */ /* Possible i2c addresses of Micron sensors */
...@@ -311,17 +310,9 @@ int em28xx_detect_sensor(struct em28xx *dev) ...@@ -311,17 +310,9 @@ int em28xx_detect_sensor(struct em28xx *dev)
int em28xx_init_camera(struct em28xx *dev) int em28xx_init_camera(struct em28xx *dev)
{ {
char clk_name[V4L2_CLK_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; struct em28xx_v4l2 *v4l2 = dev->v4l2;
int ret = 0;
v4l2_clk_name_i2c(clk_name, sizeof(clk_name),
i2c_adapter_id(adap), client->addr);
v4l2->clk = v4l2_clk_register_fixed(clk_name, -EINVAL);
if (IS_ERR(v4l2->clk))
return PTR_ERR(v4l2->clk);
switch (dev->em28xx_sensor) { switch (dev->em28xx_sensor) {
case EM28XX_MT9V011: case EM28XX_MT9V011:
...@@ -351,10 +342,8 @@ int em28xx_init_camera(struct em28xx *dev) ...@@ -351,10 +342,8 @@ int em28xx_init_camera(struct em28xx *dev)
pdata.xtal = v4l2->sensor_xtal; pdata.xtal = v4l2->sensor_xtal;
if (NULL == if (NULL ==
v4l2_i2c_new_subdev_board(&v4l2->v4l2_dev, adap, v4l2_i2c_new_subdev_board(&v4l2->v4l2_dev, adap,
&mt9v011_info, NULL)) { &mt9v011_info, NULL))
ret = -ENODEV; return -ENODEV;
break;
}
/* probably means GRGB 16 bit bayer */ /* probably means GRGB 16 bit bayer */
v4l2->vinmode = 0x0d; v4l2->vinmode = 0x0d;
v4l2->vinctl = 0x00; v4l2->vinctl = 0x00;
...@@ -410,10 +399,8 @@ int em28xx_init_camera(struct em28xx *dev) ...@@ -410,10 +399,8 @@ int em28xx_init_camera(struct em28xx *dev)
subdev = subdev =
v4l2_i2c_new_subdev_board(&v4l2->v4l2_dev, adap, v4l2_i2c_new_subdev_board(&v4l2->v4l2_dev, adap,
&ov2640_info, NULL); &ov2640_info, NULL);
if (NULL == subdev) { if (subdev == NULL)
ret = -ENODEV; return -ENODEV;
break;
}
format.format.code = MEDIA_BUS_FMT_YUYV8_2X8; format.format.code = MEDIA_BUS_FMT_YUYV8_2X8;
format.format.width = 640; format.format.width = 640;
...@@ -430,14 +417,9 @@ int em28xx_init_camera(struct em28xx *dev) ...@@ -430,14 +417,9 @@ int em28xx_init_camera(struct em28xx *dev)
} }
case EM28XX_NOSENSOR: case EM28XX_NOSENSOR:
default: default:
ret = -EINVAL; return -EINVAL;
} }
if (ret < 0) { return 0;
v4l2_clk_unregister_fixed(v4l2->clk);
v4l2->clk = NULL;
}
return ret;
} }
EXPORT_SYMBOL_GPL(em28xx_init_camera); EXPORT_SYMBOL_GPL(em28xx_init_camera);
...@@ -43,7 +43,6 @@ ...@@ -43,7 +43,6 @@
#include <media/v4l2-common.h> #include <media/v4l2-common.h>
#include <media/v4l2-ioctl.h> #include <media/v4l2-ioctl.h>
#include <media/v4l2-event.h> #include <media/v4l2-event.h>
#include <media/v4l2-clk.h>
#include <media/drv-intf/msp3400.h> #include <media/drv-intf/msp3400.h>
#include <media/tuner.h> #include <media/tuner.h>
...@@ -2140,11 +2139,6 @@ static int em28xx_v4l2_fini(struct em28xx *dev) ...@@ -2140,11 +2139,6 @@ 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 (v4l2->clk) {
v4l2_clk_unregister_fixed(v4l2->clk);
v4l2->clk = NULL;
}
kref_put(&v4l2->ref, em28xx_free_v4l2); kref_put(&v4l2->ref, em28xx_free_v4l2);
mutex_unlock(&dev->lock); mutex_unlock(&dev->lock);
......
...@@ -510,7 +510,6 @@ struct em28xx_v4l2 { ...@@ -510,7 +510,6 @@ 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 video_device vdev; struct video_device vdev;
struct video_device vbi_dev; struct video_device vbi_dev;
......
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