The patch number 9769 was added via Mauro Carvalho Chehab <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel
If anyone has any objections, please let us know by sending a message to:
[EMAIL PROTECTED]
------
From: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
tuner-xc2028: powers device of when not used
Since the firmware load is now fast on most boards, better to keep the tuner
off by default. A modprobe parameter were added to keep the old behavior,
to be used by old devices.
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
linux/drivers/media/common/tuners/tuner-xc2028.c | 19 ++++++++-------
1 file changed, 11 insertions(+), 8 deletions(-)
diff -r 6bab82c6096e -r 7276a5854219
linux/drivers/media/common/tuners/tuner-xc2028.c
--- a/linux/drivers/media/common/tuners/tuner-xc2028.c Wed Dec 03 15:32:11
2008 -0200
+++ b/linux/drivers/media/common/tuners/tuner-xc2028.c Fri Dec 05 11:31:16
2008 -0200
@@ -31,6 +31,12 @@ static int debug;
static int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "enable verbose debug messages");
+
+static int no_poweroff;
+module_param(no_poweroff, int, 0644);
+MODULE_PARM_DESC(debug, "0 (default) powers device off when not used.\n"
+ "1 keep device energized and with tuner ready all the times.\n"
+ " Faster, but consumes more power and keeps the device hotter\n");
static char audio_std[8];
module_param_string(audio_std, audio_std, sizeof(audio_std), 0);
@@ -1095,16 +1101,16 @@ static int xc2028_set_params(struct dvb_
T_DIGITAL_TV, type, 0, demod);
}
-#if 0
-/* This is needed at sleep (S1/S3), but not at fe_standby. Otherwise,
- firmware will be loaded on every open()
- */
static int xc2028_sleep(struct dvb_frontend *fe)
{
struct xc2028_data *priv = fe->tuner_priv;
int rc = 0;
- tuner_dbg("%s called\n", __func__);
+ /* Avoid firmware reload on slow devices */
+ if (no_poweroff)
+ return;
+
+ tuner_dbg("Putting xc2028/3028 into poweroff mode.\n");
mutex_lock(&priv->lock);
@@ -1119,7 +1125,6 @@ static int xc2028_sleep(struct dvb_front
return rc;
}
-#endif
static int xc2028_dvb_release(struct dvb_frontend *fe)
{
@@ -1200,9 +1205,7 @@ static const struct dvb_tuner_ops xc2028
.get_frequency = xc2028_get_frequency,
.get_rf_strength = xc2028_signal,
.set_params = xc2028_set_params,
-#if 0
.sleep = xc2028_sleep,
-#endif
#if 0
int (*get_bandwidth)(struct dvb_frontend *fe, u32 *bandwidth);
int (*get_status)(struct dvb_frontend *fe, u32 *status);
---
Patch is available at:
http://linuxtv.org/hg/v4l-dvb/rev/7276a5854219c0b13360b7d1279e539fe4613c3f
_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits