summaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap/media/0003-v4l-subdev-Merge-v4l2_i2c_new_subdev_cfg-and-v4l2_i2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap/media/0003-v4l-subdev-Merge-v4l2_i2c_new_subdev_cfg-and-v4l2_i2.patch')
-rw-r--r--extras/recipes-kernel/linux/linux-omap/media/0003-v4l-subdev-Merge-v4l2_i2c_new_subdev_cfg-and-v4l2_i2.patch132
1 files changed, 132 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap/media/0003-v4l-subdev-Merge-v4l2_i2c_new_subdev_cfg-and-v4l2_i2.patch b/extras/recipes-kernel/linux/linux-omap/media/0003-v4l-subdev-Merge-v4l2_i2c_new_subdev_cfg-and-v4l2_i2.patch
new file mode 100644
index 00000000..6cca7eaa
--- /dev/null
+++ b/extras/recipes-kernel/linux/linux-omap/media/0003-v4l-subdev-Merge-v4l2_i2c_new_subdev_cfg-and-v4l2_i2.patch
@@ -0,0 +1,132 @@
1From 2c7009851d70caeb91ac806b133b7d77c5c2ca19 Mon Sep 17 00:00:00 2001
2From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
3Date: Thu, 8 Jul 2010 12:01:09 +0200
4Subject: [PATCH 03/43] v4l: subdev: Merge v4l2_i2c_new_subdev_cfg and v4l2_i2c_new_subdev
5
6v4l2_i2c_new_subdev is a thin wrapper around v4l2_i2c_new_subdev_cfg,
7which is itself a wrapper around v4l2_i2c_new_subdev_board.
8
9The intermediate v4l2_i2c_new_subdev_cfg function is called directly by
10the ivtv and cafe-ccic drivers only. Merge it with v4l2_i2c_new_subdev
11and use v4l2_i2c_new_subdev_board in the ivtv and cafe-ccic drivers.
12
13Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
14---
15 drivers/media/video/cafe_ccic.c | 11 +++++++++--
16 drivers/media/video/ivtv/ivtv-i2c.c | 11 +++++++++--
17 drivers/media/video/v4l2-common.c | 7 ++-----
18 include/media/v4l2-common.h | 13 +------------
19 4 files changed, 21 insertions(+), 21 deletions(-)
20
21diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
22index 0dfff50..6e23add 100644
23--- a/drivers/media/video/cafe_ccic.c
24+++ b/drivers/media/video/cafe_ccic.c
25@@ -1992,6 +1992,7 @@ static int cafe_pci_probe(struct pci_dev *pdev,
26 {
27 int ret;
28 struct cafe_camera *cam;
29+ struct i2c_board_info info;
30 struct ov7670_config sensor_cfg = {
31 /* This controller only does SMBUS */
32 .use_smbus = true,
33@@ -2065,8 +2066,14 @@ static int cafe_pci_probe(struct pci_dev *pdev,
34 sensor_cfg.clock_speed = 45;
35
36 cam->sensor_addr = 0x42;
37- cam->sensor = v4l2_i2c_new_subdev_cfg(&cam->v4l2_dev, &cam->i2c_adapter,
38- "ov7670", 0, &sensor_cfg, cam->sensor_addr, NULL);
39+
40+ memset(&info, 0, sizeof(info));
41+ strlcpy(info.type, "ov7670", sizeof(info.type));
42+ info.addr = cam->sensor_addr;
43+ info.platform_data = &sensor_cfg;
44+
45+ cam->sensor = v4l2_i2c_new_subdev_board(&cam->v4l2_dev,
46+ &cam->i2c_adapter, &info, NULL);
47 if (cam->sensor == NULL) {
48 ret = -ENODEV;
49 goto out_smbus;
50diff --git a/drivers/media/video/ivtv/ivtv-i2c.c b/drivers/media/video/ivtv/ivtv-i2c.c
51index 665191c..6651a6c 100644
52--- a/drivers/media/video/ivtv/ivtv-i2c.c
53+++ b/drivers/media/video/ivtv/ivtv-i2c.c
54@@ -267,10 +267,17 @@ int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
55 adap, type, 0, I2C_ADDRS(hw_addrs[idx]));
56 } else if (hw == IVTV_HW_CX25840) {
57 struct cx25840_platform_data pdata;
58+ struct i2c_board_info info;
59
60 pdata.pvr150_workaround = itv->pvr150_workaround;
61- sd = v4l2_i2c_new_subdev_cfg(&itv->v4l2_dev,
62- adap, type, 0, &pdata, hw_addrs[idx], NULL);
63+
64+ memset(&info, 0, sizeof(info));
65+ strlcpy(info.type, type, sizeof(info.type));
66+ info.addr = hw_addrs[idx];
67+ info.platform_data = &pdata;
68+
69+ sd = v4l2_i2c_new_subdev_board(&itv->v4l2_dev, adap, &info,
70+ NULL);
71 } else {
72 sd = v4l2_i2c_new_subdev(&itv->v4l2_dev,
73 adap, type, hw_addrs[idx], NULL);
74diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
75index b5eb1f3..e007e61 100644
76--- a/drivers/media/video/v4l2-common.c
77+++ b/drivers/media/video/v4l2-common.c
78@@ -428,9 +428,8 @@ error:
79 }
80 EXPORT_SYMBOL_GPL(v4l2_i2c_new_subdev_board);
81
82-struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev,
83+struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
84 struct i2c_adapter *adapter, const char *client_type,
85- int irq, void *platform_data,
86 u8 addr, const unsigned short *probe_addrs)
87 {
88 struct i2c_board_info info;
89@@ -440,12 +439,10 @@ struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev,
90 memset(&info, 0, sizeof(info));
91 strlcpy(info.type, client_type, sizeof(info.type));
92 info.addr = addr;
93- info.irq = irq;
94- info.platform_data = platform_data;
95
96 return v4l2_i2c_new_subdev_board(v4l2_dev, adapter, &info, probe_addrs);
97 }
98-EXPORT_SYMBOL_GPL(v4l2_i2c_new_subdev_cfg);
99+EXPORT_SYMBOL_GPL(v4l2_i2c_new_subdev);
100
101 /* Return i2c client address of v4l2_subdev. */
102 unsigned short v4l2_i2c_subdev_addr(struct v4l2_subdev *sd)
103diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
104index 239125a..565fb32 100644
105--- a/include/media/v4l2-common.h
106+++ b/include/media/v4l2-common.h
107@@ -138,21 +138,10 @@ struct v4l2_subdev_ops;
108
109 /* Load an i2c module and return an initialized v4l2_subdev struct.
110 The client_type argument is the name of the chip that's on the adapter. */
111-struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev,
112+struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
113 struct i2c_adapter *adapter, const char *client_type,
114- int irq, void *platform_data,
115 u8 addr, const unsigned short *probe_addrs);
116
117-/* Load an i2c module and return an initialized v4l2_subdev struct.
118- The client_type argument is the name of the chip that's on the adapter. */
119-static inline struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
120- struct i2c_adapter *adapter, const char *client_type,
121- u8 addr, const unsigned short *probe_addrs)
122-{
123- return v4l2_i2c_new_subdev_cfg(v4l2_dev, adapter, client_type, 0, NULL,
124- addr, probe_addrs);
125-}
126-
127 struct i2c_board_info;
128
129 struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct v4l2_device *v4l2_dev,
130--
1311.6.6.1
132