diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-09-23 00:23:10 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:06:07 -0400 |
commit | c72ba8e6ae7376d20e509a9a54a2dd45fb483fc2 (patch) | |
tree | 4f2b407b086309b411e7d7ea80c2a0a71ac604d9 /drivers | |
parent | 44243fc2ef99948bc9b046901880885616dd5e89 (diff) |
V4L/DVB: saa7134: get rid of I2C_HW_SAA7134
The only reason for keeping I2C_HW_SAA7134 is to allow setting a
per-device polling interval. Just move this info to the platform
data, allowing drivers to change it per device, where needed.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/ir-kbd-i2c.c | 12 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-i2c.c | 1 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 5 |
3 files changed, 10 insertions, 8 deletions
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c index 91b2c88d4d72..5a000c65ae98 100644 --- a/drivers/media/video/ir-kbd-i2c.c +++ b/drivers/media/video/ir-kbd-i2c.c | |||
@@ -259,15 +259,9 @@ static void ir_key_poll(struct IR_i2c *ir) | |||
259 | static void ir_work(struct work_struct *work) | 259 | static void ir_work(struct work_struct *work) |
260 | { | 260 | { |
261 | struct IR_i2c *ir = container_of(work, struct IR_i2c, work.work); | 261 | struct IR_i2c *ir = container_of(work, struct IR_i2c, work.work); |
262 | int polling_interval = 100; | ||
263 | |||
264 | /* MSI TV@nywhere Plus requires more frequent polling | ||
265 | otherwise it will miss some keypresses */ | ||
266 | if (ir->c->adapter->id == I2C_HW_SAA7134 && ir->c->addr == 0x30) | ||
267 | polling_interval = 50; | ||
268 | 262 | ||
269 | ir_key_poll(ir); | 263 | ir_key_poll(ir); |
270 | schedule_delayed_work(&ir->work, msecs_to_jiffies(polling_interval)); | 264 | schedule_delayed_work(&ir->work, msecs_to_jiffies(ir->polling_interval)); |
271 | } | 265 | } |
272 | 266 | ||
273 | /* ----------------------------------------------------------------------- */ | 267 | /* ----------------------------------------------------------------------- */ |
@@ -292,6 +286,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) | |||
292 | 286 | ||
293 | ir->c = client; | 287 | ir->c = client; |
294 | ir->input = input_dev; | 288 | ir->input = input_dev; |
289 | ir->polling_interval = DEFAULT_POLLING_INTERVAL; | ||
295 | i2c_set_clientdata(client, ir); | 290 | i2c_set_clientdata(client, ir); |
296 | 291 | ||
297 | switch(addr) { | 292 | switch(addr) { |
@@ -343,6 +338,9 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) | |||
343 | if (init_data->type) | 338 | if (init_data->type) |
344 | ir_type = init_data->type; | 339 | ir_type = init_data->type; |
345 | 340 | ||
341 | if (init_data->polling_interval) | ||
342 | ir->polling_interval = init_data->polling_interval; | ||
343 | |||
346 | switch (init_data->internal_get_key_func) { | 344 | switch (init_data->internal_get_key_func) { |
347 | case IR_KBD_GET_KEY_CUSTOM: | 345 | case IR_KBD_GET_KEY_CUSTOM: |
348 | /* The bridge driver provided us its own function */ | 346 | /* The bridge driver provided us its own function */ |
diff --git a/drivers/media/video/saa7134/saa7134-i2c.c b/drivers/media/video/saa7134/saa7134-i2c.c index da41b6b1e64a..2d3f6d265bbf 100644 --- a/drivers/media/video/saa7134/saa7134-i2c.c +++ b/drivers/media/video/saa7134/saa7134-i2c.c | |||
@@ -328,7 +328,6 @@ static struct i2c_algorithm saa7134_algo = { | |||
328 | static struct i2c_adapter saa7134_adap_template = { | 328 | static struct i2c_adapter saa7134_adap_template = { |
329 | .owner = THIS_MODULE, | 329 | .owner = THIS_MODULE, |
330 | .name = "saa7134", | 330 | .name = "saa7134", |
331 | .id = I2C_HW_SAA7134, | ||
332 | .algo = &saa7134_algo, | 331 | .algo = &saa7134_algo, |
333 | }; | 332 | }; |
334 | 333 | ||
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index 0b336ca6d55b..52a1ee5aefd0 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
@@ -959,6 +959,11 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev) | |||
959 | dev->init_data.name = "MSI TV@nywhere Plus"; | 959 | dev->init_data.name = "MSI TV@nywhere Plus"; |
960 | dev->init_data.get_key = get_key_msi_tvanywhere_plus; | 960 | dev->init_data.get_key = get_key_msi_tvanywhere_plus; |
961 | dev->init_data.ir_codes = RC_MAP_MSI_TVANYWHERE_PLUS; | 961 | dev->init_data.ir_codes = RC_MAP_MSI_TVANYWHERE_PLUS; |
962 | /* | ||
963 | * MSI TV@nyware Plus requires more frequent polling | ||
964 | * otherwise it will miss some keypresses | ||
965 | */ | ||
966 | dev->init_data.polling_interval = 50; | ||
962 | info.addr = 0x30; | 967 | info.addr = 0x30; |
963 | /* MSI TV@nywhere Plus controller doesn't seem to | 968 | /* MSI TV@nywhere Plus controller doesn't seem to |
964 | respond to probes unless we read something from | 969 | respond to probes unless we read something from |