V4L/DVB (11798): xc5000: add "no_poweroff" module option
authorDevin Heitmueller <dheitmueller@kernellabs.com>
Tue, 28 Apr 2009 16:53:38 +0000 (13:53 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 21:21:06 +0000 (18:21 -0300)
Provide for the ability for a user to disable putting the tuner to sleep, in
case he doesn't want to incur the cost of reloading the firmware when starting
up his/her application.  The module options are intentionally identical to
xc3028.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/xc5000.c

index efc43123952ddd10b66f7400183e85e8275d4b96..bc294b9eb48826c7c2f19bd64a5240019ea6e2af 100644 (file)
@@ -36,6 +36,12 @@ static int debug;
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off).");
 
+static int no_poweroff;
+module_param(no_poweroff, int, 0644);
+MODULE_PARM_DESC(no_poweroff, "0 (default) powers device off when not used.\n"
+       "\t\t1 keep device energized and with tuner ready all the times.\n"
+       "\t\tFaster, but consumes more power and keeps the device hotter");
+
 static DEFINE_MUTEX(xc5000_list_mutex);
 static LIST_HEAD(hybrid_tuner_instance_list);
 
@@ -857,6 +863,10 @@ static int xc5000_sleep(struct dvb_frontend *fe)
 
        dprintk(1, "%s()\n", __func__);
 
+       /* Avoid firmware reload on slow devices */
+       if (no_poweroff)
+               return 0;
+
        /* According to Xceive technical support, the "powerdown" register
           was removed in newer versions of the firmware.  The "supported"
           way to sleep the tuner is to pull the reset pin low for 10ms */