V4L/DVB (4840): Budget: diseqc_method module parameter for cards with subsystem-id...
authorOliver Endriss <o.endriss@gmx.de>
Sun, 19 Nov 2006 05:15:37 +0000 (02:15 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 26 Nov 2006 10:52:37 +0000 (08:52 -0200)
New module parameter diseqc_method for cards with subsystem-id 13c2:1003.
- 0: unreliable method, can be used by all board revisions (default)
- 1: reliable method, works for newer board layouts only
The parameter has no effect for cards with other subsystem-ids.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/ttpci/budget.c

index e28617bd5641bedec1f271a1ae0b6331b1112c2b..56f1c80defc63deead3ec65349f727408ace2e7f 100644 (file)
 #include "lnbp21.h"
 #include "bsru6.h"
 
+static int diseqc_method;
+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)");
+
 static void Set22K (struct budget *budget, int state)
 {
        struct saa7146_dev *dev=budget->dev;
@@ -382,7 +386,11 @@ static void frontend_init(struct budget *budget)
                if (budget->dvb_frontend) {
                        budget->dvb_frontend->ops.tuner_ops.set_params = alps_bsru6_tuner_set_params;
                        budget->dvb_frontend->tuner_priv = &budget->i2c_adap;
-                       budget->dvb_frontend->ops.set_tone = budget_set_tone;
+                       if (budget->dev->pci->subsystem_device == 0x1003 && diseqc_method == 0) {
+                               budget->dvb_frontend->ops.diseqc_send_master_cmd = budget_diseqc_send_master_cmd;
+                               budget->dvb_frontend->ops.diseqc_send_burst = budget_diseqc_send_burst;
+                               budget->dvb_frontend->ops.set_tone = budget_set_tone;
+                       }
                        break;
                }
                break;