aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/firewire/firedtv-dvb.c
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2009-11-08 16:30:54 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 15:41:42 -0500
commit87918334792a4d8a73b0511466b77bd6aa055db3 (patch)
tree56f9e71c5d88cb0bf3a027a56588fb33c232f733 /drivers/media/dvb/firewire/firedtv-dvb.c
parent6e25abb522e055beeaf887f50a49cb370acc62b6 (diff)
V4L/DVB (13400): firedtv: port to new firewire core
The firedtv DVB driver will now work not only on top of the old ieee1394 driver stack but also on the new firewire driver stack. Alongside to the firedtv-1394.c backend for driver binding and I/O, the firedtv-fw.c backend is added. Depending on which of the two 1394 stacks is configured, one or the other or both backends will be built into the firedtv driver. This has been tested with a DVB-T and a DVB-C box on x86-64 and x86-32 together with a few different controllers (Agere FW323, a NEC chip, TI TSB82AA2, TSB43AB22/A, VIA VT6306). Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/firewire/firedtv-dvb.c')
-rw-r--r--drivers/media/dvb/firewire/firedtv-dvb.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/media/dvb/firewire/firedtv-dvb.c b/drivers/media/dvb/firewire/firedtv-dvb.c
index 5742fde79d99..fc9996c13e13 100644
--- a/drivers/media/dvb/firewire/firedtv-dvb.c
+++ b/drivers/media/dvb/firewire/firedtv-dvb.c
@@ -297,7 +297,7 @@ struct firedtv *fdtv_alloc(struct device *dev,
297#define AVC_UNIT_SPEC_ID_ENTRY 0x00a02d 297#define AVC_UNIT_SPEC_ID_ENTRY 0x00a02d
298#define AVC_SW_VERSION_ENTRY 0x010001 298#define AVC_SW_VERSION_ENTRY 0x010001
299 299
300static struct ieee1394_device_id fdtv_id_table[] = { 300const struct ieee1394_device_id fdtv_id_table[] = {
301 { 301 {
302 /* FloppyDTV S/CI and FloppyDTV S2 */ 302 /* FloppyDTV S/CI and FloppyDTV S2 */
303 .match_flags = MATCH_FLAGS, 303 .match_flags = MATCH_FLAGS,
@@ -346,12 +346,23 @@ MODULE_DEVICE_TABLE(ieee1394, fdtv_id_table);
346 346
347static int __init fdtv_init(void) 347static int __init fdtv_init(void)
348{ 348{
349 return fdtv_1394_init(fdtv_id_table); 349 int ret;
350
351 ret = fdtv_fw_init();
352 if (ret < 0)
353 return ret;
354
355 ret = fdtv_1394_init();
356 if (ret < 0)
357 fdtv_fw_exit();
358
359 return ret;
350} 360}
351 361
352static void __exit fdtv_exit(void) 362static void __exit fdtv_exit(void)
353{ 363{
354 fdtv_1394_exit(); 364 fdtv_1394_exit();
365 fdtv_fw_exit();
355} 366}
356 367
357module_init(fdtv_init); 368module_init(fdtv_init);