aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/ttpci
diff options
context:
space:
mode:
authorJanne Grunau <janne-dvb@grunau.be>2008-04-09 18:13:13 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:08:00 -0400
commit78e92006f410a4044f8c1760c25ac9d11d259aa2 (patch)
tree293de8abe261420df2db5e12936ec2721ea52c7c /drivers/media/dvb/ttpci
parent9950c1b5b4b86d4aae12853c2f0a0ef11d976764 (diff)
V4L/DVB (7538): Adds selectable adapter numbers as per module option
The adapter_nr module options can be used to allocate static adapter numbers on a driver level. It avoids problems with changing DVB apapter numbers after warm/cold boot or device unplugging and repluging. Each driver holds DVB_MAX_ADAPTER long array of the preferred order of adapter numbers. options dvb-usb-dib0700 adapter_nr=7,6,5,4,3,2,1,0 would result in a reversed allocation of adapter numbers. With adapter_nr=2,5 it tries first to get adapter number 2 and 5. If both are already in use it will allocate the lowest free adapter number. Signed-off-by: Janne Grunau <janne-dvb@grunau.be> Acked-by: Hermann Pitton <hermann.pitton@arcor.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/ttpci')
-rw-r--r--drivers/media/dvb/ttpci/av7110.c4
-rw-r--r--drivers/media/dvb/ttpci/budget-core.c7
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
index 78919b9e14dc..747e7f1a6267 100644
--- a/drivers/media/dvb/ttpci/av7110.c
+++ b/drivers/media/dvb/ttpci/av7110.c
@@ -112,6 +112,8 @@ MODULE_PARM_DESC(wss_cfg_16_9, "WSS 16:9 - default 0x0007 - bit 15: disable, 14:
112module_param(tv_standard, int, 0444); 112module_param(tv_standard, int, 0444);
113MODULE_PARM_DESC(tv_standard, "TV standard: 0 PAL (default), 1 NTSC"); 113MODULE_PARM_DESC(tv_standard, "TV standard: 0 PAL (default), 1 NTSC");
114 114
115DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
116
115static void restart_feeds(struct av7110 *av7110); 117static void restart_feeds(struct av7110 *av7110);
116 118
117static int av7110_num; 119static int av7110_num;
@@ -2461,7 +2463,7 @@ static int __devinit av7110_attach(struct saa7146_dev* dev,
2461 goto err_kfree_0; 2463 goto err_kfree_0;
2462 2464
2463 ret = dvb_register_adapter(&av7110->dvb_adapter, av7110->card_name, 2465 ret = dvb_register_adapter(&av7110->dvb_adapter, av7110->card_name,
2464 THIS_MODULE, &dev->pci->dev); 2466 THIS_MODULE, &dev->pci->dev, adapter_nr);
2465 if (ret < 0) 2467 if (ret < 0)
2466 goto err_put_firmware_1; 2468 goto err_put_firmware_1;
2467 2469
diff --git a/drivers/media/dvb/ttpci/budget-core.c b/drivers/media/dvb/ttpci/budget-core.c
index 06bbce42fcd7..18cac4b12ab2 100644
--- a/drivers/media/dvb/ttpci/budget-core.c
+++ b/drivers/media/dvb/ttpci/budget-core.c
@@ -57,6 +57,8 @@ module_param_named(bufsize, dma_buffer_size, int, 0444);
57MODULE_PARM_DESC(debug, "Turn on/off budget debugging (default:off)."); 57MODULE_PARM_DESC(debug, "Turn on/off budget debugging (default:off).");
58MODULE_PARM_DESC(bufsize, "DMA buffer size in KB, default: 188, min: 188, max: 1410 (Activy: 564)"); 58MODULE_PARM_DESC(bufsize, "DMA buffer size in KB, default: 188, min: 188, max: 1410 (Activy: 564)");
59 59
60DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
61
60/**************************************************************************** 62/****************************************************************************
61 * TT budget / WinTV Nova 63 * TT budget / WinTV Nova
62 ****************************************************************************/ 64 ****************************************************************************/
@@ -471,9 +473,10 @@ int ttpci_budget_init(struct budget *budget, struct saa7146_dev *dev,
471 budget->buffer_width, budget->buffer_height); 473 budget->buffer_width, budget->buffer_height);
472 printk("%s: dma buffer size %u\n", budget->dev->name, budget->buffer_size); 474 printk("%s: dma buffer size %u\n", budget->dev->name, budget->buffer_size);
473 475
474 if ((ret = dvb_register_adapter(&budget->dvb_adapter, budget->card->name, owner, &budget->dev->pci->dev)) < 0) { 476 ret = dvb_register_adapter(&budget->dvb_adapter, budget->card->name,
477 owner, &budget->dev->pci->dev, adapter_nr);
478 if (ret < 0)
475 return ret; 479 return ret;
476 }
477 480
478 /* set dd1 stream a & b */ 481 /* set dd1 stream a & b */
479 saa7146_write(dev, DD1_STREAM_B, 0x00000000); 482 saa7146_write(dev, DD1_STREAM_B, 0x00000000);