diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2009-08-25 10:53:23 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-18 23:19:18 -0400 |
commit | a4c56fd8892e51d675f7665ddee4fd9d7e5c2cc3 (patch) | |
tree | bf19f94a6bf467e2a366a9de9a229ff1149baf76 /drivers/media/video/mt9m111.c | |
parent | 6a6c8786725c0b3d143674effa8b772f47b1c189 (diff) |
V4L/DVB (12535): soc-camera: remove .init() and .release() methods from struct soc_camera_ops
Remove unneeded soc-camera operations, this also makes the soc-camera API to
v4l2 subdevices thinner.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/mt9m111.c')
-rw-r--r-- | drivers/media/video/mt9m111.c | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c index 920dd53c4cfa..186902f9be2e 100644 --- a/drivers/media/video/mt9m111.c +++ b/drivers/media/video/mt9m111.c | |||
@@ -672,13 +672,9 @@ static const struct v4l2_queryctrl mt9m111_controls[] = { | |||
672 | }; | 672 | }; |
673 | 673 | ||
674 | static int mt9m111_resume(struct soc_camera_device *icd); | 674 | static int mt9m111_resume(struct soc_camera_device *icd); |
675 | static int mt9m111_init(struct soc_camera_device *icd); | ||
676 | static int mt9m111_release(struct soc_camera_device *icd); | ||
677 | 675 | ||
678 | static struct soc_camera_ops mt9m111_ops = { | 676 | static struct soc_camera_ops mt9m111_ops = { |
679 | .init = mt9m111_init, | ||
680 | .resume = mt9m111_resume, | 677 | .resume = mt9m111_resume, |
681 | .release = mt9m111_release, | ||
682 | .query_bus_param = mt9m111_query_bus_param, | 678 | .query_bus_param = mt9m111_query_bus_param, |
683 | .set_bus_param = mt9m111_set_bus_param, | 679 | .set_bus_param = mt9m111_set_bus_param, |
684 | .controls = mt9m111_controls, | 680 | .controls = mt9m111_controls, |
@@ -880,9 +876,8 @@ static int mt9m111_resume(struct soc_camera_device *icd) | |||
880 | return ret; | 876 | return ret; |
881 | } | 877 | } |
882 | 878 | ||
883 | static int mt9m111_init(struct soc_camera_device *icd) | 879 | static int mt9m111_init(struct i2c_client *client) |
884 | { | 880 | { |
885 | struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd)); | ||
886 | struct mt9m111 *mt9m111 = to_mt9m111(client); | 881 | struct mt9m111 *mt9m111 = to_mt9m111(client); |
887 | int ret; | 882 | int ret; |
888 | 883 | ||
@@ -899,22 +894,6 @@ static int mt9m111_init(struct soc_camera_device *icd) | |||
899 | return ret; | 894 | return ret; |
900 | } | 895 | } |
901 | 896 | ||
902 | static int mt9m111_release(struct soc_camera_device *icd) | ||
903 | { | ||
904 | struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd)); | ||
905 | struct mt9m111 *mt9m111 = to_mt9m111(client); | ||
906 | int ret; | ||
907 | |||
908 | ret = reg_clear(RESET, MT9M111_RESET_CHIP_ENABLE); | ||
909 | if (!ret) | ||
910 | mt9m111->powered = 0; | ||
911 | |||
912 | if (ret < 0) | ||
913 | dev_err(&client->dev, "mt9m11x release failed: %d\n", ret); | ||
914 | |||
915 | return ret; | ||
916 | } | ||
917 | |||
918 | /* | 897 | /* |
919 | * Interface active, can use i2c. If it fails, it can indeed mean, that | 898 | * Interface active, can use i2c. If it fails, it can indeed mean, that |
920 | * this wasn't our capture interface, so, we wait for the right one | 899 | * this wasn't our capture interface, so, we wait for the right one |
@@ -934,10 +913,13 @@ static int mt9m111_video_probe(struct soc_camera_device *icd, | |||
934 | to_soc_camera_host(icd->dev.parent)->nr != icd->iface) | 913 | to_soc_camera_host(icd->dev.parent)->nr != icd->iface) |
935 | return -ENODEV; | 914 | return -ENODEV; |
936 | 915 | ||
937 | ret = mt9m111_enable(client); | 916 | mt9m111->autoexposure = 1; |
938 | if (ret) | 917 | mt9m111->autowhitebalance = 1; |
939 | goto ei2c; | 918 | |
940 | ret = mt9m111_reset(client); | 919 | mt9m111->swap_rgb_even_odd = 1; |
920 | mt9m111->swap_rgb_red_blue = 1; | ||
921 | |||
922 | ret = mt9m111_init(client); | ||
941 | if (ret) | 923 | if (ret) |
942 | goto ei2c; | 924 | goto ei2c; |
943 | 925 | ||
@@ -962,12 +944,6 @@ static int mt9m111_video_probe(struct soc_camera_device *icd, | |||
962 | 944 | ||
963 | dev_info(&client->dev, "Detected a MT9M11x chip ID %x\n", data); | 945 | dev_info(&client->dev, "Detected a MT9M11x chip ID %x\n", data); |
964 | 946 | ||
965 | mt9m111->autoexposure = 1; | ||
966 | mt9m111->autowhitebalance = 1; | ||
967 | |||
968 | mt9m111->swap_rgb_even_odd = 1; | ||
969 | mt9m111->swap_rgb_red_blue = 1; | ||
970 | |||
971 | ei2c: | 947 | ei2c: |
972 | return ret; | 948 | return ret; |
973 | } | 949 | } |