aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2010-09-24 09:04:06 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-22 19:55:32 -0400
commitaa55f3a46fe799b3c8396c57f4b4074252f635da (patch)
tree88cf4237a1dae03388a1bfd56573ce9f2bacaa6f /drivers/media/video/cx18
parent84d0d4f0674c55d0625bd1b6eb91dba4ef3948f9 (diff)
[media] cx18: Don't use module names to load I2C modules
With the v4l2_i2c_new_subdev* functions now supporting loading modules based on modaliases, replace the hardcoded module name passed to those functions by NULL. The sub-devices without a listed module name don't result in and I2C sub-device being created, as they either are IR devices or don't have an I2C address listed. It's thus safe to rely on modaliases only. All corresponding I2C modules have been checked, and all of them include a module aliases table with names corresponding to what the cx18 driver uses. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18')
-rw-r--r--drivers/media/video/cx18/cx18-i2c.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/drivers/media/video/cx18/cx18-i2c.c b/drivers/media/video/cx18/cx18-i2c.c
index 73ce90c2f577..a09caf883170 100644
--- a/drivers/media/video/cx18/cx18-i2c.c
+++ b/drivers/media/video/cx18/cx18-i2c.c
@@ -71,19 +71,6 @@ static const u8 hw_bus[] = {
71}; 71};
72 72
73/* This array should match the CX18_HW_ defines */ 73/* This array should match the CX18_HW_ defines */
74static const char * const hw_modules[] = {
75 "tuner", /* CX18_HW_TUNER */
76 NULL, /* CX18_HW_TVEEPROM */
77 "cs5345", /* CX18_HW_CS5345 */
78 NULL, /* CX18_HW_DVB */
79 NULL, /* CX18_HW_418_AV */
80 NULL, /* CX18_HW_GPIO_MUX */
81 NULL, /* CX18_HW_GPIO_RESET_CTRL */
82 NULL, /* CX18_HW_Z8F0811_IR_TX_HAUP */
83 NULL, /* CX18_HW_Z8F0811_IR_RX_HAUP */
84};
85
86/* This array should match the CX18_HW_ defines */
87static const char * const hw_devicenames[] = { 74static const char * const hw_devicenames[] = {
88 "tuner", 75 "tuner",
89 "tveeprom", 76 "tveeprom",
@@ -126,7 +113,6 @@ int cx18_i2c_register(struct cx18 *cx, unsigned idx)
126 struct v4l2_subdev *sd; 113 struct v4l2_subdev *sd;
127 int bus = hw_bus[idx]; 114 int bus = hw_bus[idx];
128 struct i2c_adapter *adap = &cx->i2c_adap[bus]; 115 struct i2c_adapter *adap = &cx->i2c_adap[bus];
129 const char *mod = hw_modules[idx];
130 const char *type = hw_devicenames[idx]; 116 const char *type = hw_devicenames[idx];
131 u32 hw = 1 << idx; 117 u32 hw = 1 << idx;
132 118
@@ -136,15 +122,15 @@ int cx18_i2c_register(struct cx18 *cx, unsigned idx)
136 if (hw == CX18_HW_TUNER) { 122 if (hw == CX18_HW_TUNER) {
137 /* special tuner group handling */ 123 /* special tuner group handling */
138 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev, 124 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev,
139 adap, mod, type, 0, cx->card_i2c->radio); 125 adap, NULL, type, 0, cx->card_i2c->radio);
140 if (sd != NULL) 126 if (sd != NULL)
141 sd->grp_id = hw; 127 sd->grp_id = hw;
142 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev, 128 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev,
143 adap, mod, type, 0, cx->card_i2c->demod); 129 adap, NULL, type, 0, cx->card_i2c->demod);
144 if (sd != NULL) 130 if (sd != NULL)
145 sd->grp_id = hw; 131 sd->grp_id = hw;
146 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev, 132 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev,
147 adap, mod, type, 0, cx->card_i2c->tv); 133 adap, NULL, type, 0, cx->card_i2c->tv);
148 if (sd != NULL) 134 if (sd != NULL)
149 sd->grp_id = hw; 135 sd->grp_id = hw;
150 return sd != NULL ? 0 : -1; 136 return sd != NULL ? 0 : -1;
@@ -158,7 +144,8 @@ int cx18_i2c_register(struct cx18 *cx, unsigned idx)
158 return -1; 144 return -1;
159 145
160 /* It's an I2C device other than an analog tuner or IR chip */ 146 /* It's an I2C device other than an analog tuner or IR chip */
161 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev, adap, mod, type, hw_addrs[idx], NULL); 147 sd = v4l2_i2c_new_subdev(&cx->v4l2_dev, adap, NULL, type, hw_addrs[idx],
148 NULL);
162 if (sd != NULL) 149 if (sd != NULL)
163 sd->grp_id = hw; 150 sd->grp_id = hw;
164 return sd != NULL ? 0 : -1; 151 return sd != NULL ? 0 : -1;