#define SLOTSTATUS_READY        8
 #define SLOTSTATUS_OCCUPIED     (SLOTSTATUS_PRESENT|SLOTSTATUS_RESET|SLOTSTATUS_READY)
 
+DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
+
 struct budget_av {
        struct budget budget;
        struct video_device *vd;
 
        dev->ext_priv = budget_av;
 
-       if ((err = ttpci_budget_init(&budget_av->budget, dev, info, THIS_MODULE))) {
+       err = ttpci_budget_init(&budget_av->budget, dev, info, THIS_MODULE,
+                               adapter_nr);
+       if (err) {
                kfree(budget_av);
                return err;
        }
 
 module_param(ir_debug, int, 0644);
 MODULE_PARM_DESC(ir_debug, "enable debugging information for IR decoding");
 
+DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
+
 struct budget_ci_ir {
        struct input_dev *dev;
        struct tasklet_struct msp430_irq_tasklet;
 
        dev->ext_priv = budget_ci;
 
-       err = ttpci_budget_init(&budget_ci->budget, dev, info, THIS_MODULE);
+       err = ttpci_budget_init(&budget_ci->budget, dev, info, THIS_MODULE,
+                               adapter_nr);
        if (err)
                goto out2;
 
 
 MODULE_PARM_DESC(debug, "Turn on/off budget debugging (default:off).");
 MODULE_PARM_DESC(bufsize, "DMA buffer size in KB, default: 188, min: 188, max: 1410 (Activy: 564)");
 
-DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
-
 /****************************************************************************
  * TT budget / WinTV Nova
  ****************************************************************************/
 
 int ttpci_budget_init(struct budget *budget, struct saa7146_dev *dev,
                      struct saa7146_pci_extension_data *info,
-                     struct module *owner)
+                     struct module *owner, short *adapter_nums)
 {
        int ret = 0;
        struct budget_info *bi = info->ext_priv;
        printk("%s: dma buffer size %u\n", budget->dev->name, budget->buffer_size);
 
        ret = dvb_register_adapter(&budget->dvb_adapter, budget->card->name,
-                                  owner, &budget->dev->pci->dev, adapter_nr);
+                                  owner, &budget->dev->pci->dev, adapter_nums);
        if (ret < 0)
                return ret;
 
 
 
 #include "bsru6.h"
 
+DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
+
 #define budget_patch budget
 
 static struct saa7146_extension budget_extension;
 
        dprintk(2, "budget: %p\n", budget);
 
-       if ((err = ttpci_budget_init (budget, dev, info, THIS_MODULE))) {
-               kfree (budget);
+       err = ttpci_budget_init(budget, dev, info, THIS_MODULE, adapter_nr);
+       if (err) {
+               kfree(budget);
                return err;
        }
 
 
 module_param(diseqc_method, int, 0444);
 MODULE_PARM_DESC(diseqc_method, "Select DiSEqC method for subsystem id 13c2:1003, 0: default, 1: more reliable (for newer revisions only)");
 
+DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
+
 static void Set22K (struct budget *budget, int state)
 {
        struct saa7146_dev *dev=budget->dev;
 
        dev->ext_priv = budget;
 
-       if ((err = ttpci_budget_init (budget, dev, info, THIS_MODULE))) {
+       err = ttpci_budget_init(budget, dev, info, THIS_MODULE, adapter_nr);
+       if (err) {
                printk("==> failed\n");
                kfree (budget);
                return err;
 
 
 extern int ttpci_budget_init(struct budget *budget, struct saa7146_dev *dev,
                             struct saa7146_pci_extension_data *info,
-                            struct module *owner);
+                            struct module *owner, short *adapter_nums);
 extern void ttpci_budget_init_hooks(struct budget *budget);
 extern int ttpci_budget_deinit(struct budget *budget);
 extern void ttpci_budget_irq10_handler(struct saa7146_dev *dev, u32 * isr);