From: Patrick Boettcher <pb@linuxtv.org>

Add module parameter to deactive remote control polling.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/media/dvb/dvb-usb/dvb-usb-common.h |    1 +
 drivers/media/dvb/dvb-usb/dvb-usb-init.c   |    4 ++++
 drivers/media/dvb/dvb-usb/dvb-usb-remote.c |    8 +++++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

diff -puN drivers/media/dvb/dvb-usb/dvb-usb-common.h~dvb-usb-add-module-parm-to-disable-remote-control-polling drivers/media/dvb/dvb-usb/dvb-usb-common.h
--- 25/drivers/media/dvb/dvb-usb/dvb-usb-common.h~dvb-usb-add-module-parm-to-disable-remote-control-polling	Mon Jun 27 15:37:02 2005
+++ 25-akpm/drivers/media/dvb/dvb-usb/dvb-usb-common.h	Mon Jun 27 15:37:02 2005
@@ -12,6 +12,7 @@
 #include "dvb-usb.h"
 
 extern int dvb_usb_debug;
+extern int dvb_usb_disable_rc_polling;
 
 #define deb_info(args...) dprintk(dvb_usb_debug,0x01,args)
 #define deb_xfer(args...) dprintk(dvb_usb_debug,0x02,args)
diff -puN drivers/media/dvb/dvb-usb/dvb-usb-init.c~dvb-usb-add-module-parm-to-disable-remote-control-polling drivers/media/dvb/dvb-usb/dvb-usb-init.c
--- 25/drivers/media/dvb/dvb-usb/dvb-usb-init.c~dvb-usb-add-module-parm-to-disable-remote-control-polling	Mon Jun 27 15:37:02 2005
+++ 25-akpm/drivers/media/dvb/dvb-usb/dvb-usb-init.c	Mon Jun 27 15:37:02 2005
@@ -18,6 +18,10 @@ int dvb_usb_debug;
 module_param_named(debug,dvb_usb_debug, int, 0644);
 MODULE_PARM_DESC(debug, "set debugging level (1=info,xfer=2,pll=4,ts=8,err=16,rc=32,fw=64 (or-able))." DVB_USB_DEBUG_STATUS);
 
+int dvb_usb_disable_rc_polling;
+module_param_named(disable_rc_polling, dvb_usb_disable_rc_polling, int, 0644);
+MODULE_PARM_DESC(disable_rc_polling, "disable remote control polling (default: 0).");
+
 /* general initialization functions */
 int dvb_usb_exit(struct dvb_usb_device *d)
 {
diff -puN drivers/media/dvb/dvb-usb/dvb-usb-remote.c~dvb-usb-add-module-parm-to-disable-remote-control-polling drivers/media/dvb/dvb-usb/dvb-usb-remote.c
--- 25/drivers/media/dvb/dvb-usb/dvb-usb-remote.c~dvb-usb-add-module-parm-to-disable-remote-control-polling	Mon Jun 27 15:37:02 2005
+++ 25-akpm/drivers/media/dvb/dvb-usb/dvb-usb-remote.c	Mon Jun 27 15:37:02 2005
@@ -21,6 +21,10 @@ static void dvb_usb_read_remote_control(
 	/* TODO: need a lock here.  We can simply skip checking for the remote control
 	   if we're busy. */
 
+	/* when the parameter has been set to 1 via sysfs while the driver was running */
+	if (dvb_usb_disable_rc_polling)
+		return;
+
 	if (d->props.rc_query(d,&event,&state)) {
 		err("error while querying for an remote control event.");
 		goto schedule;
@@ -85,7 +89,9 @@ schedule:
 int dvb_usb_remote_init(struct dvb_usb_device *d)
 {
 	int i;
-	if (d->props.rc_key_map == NULL)
+	if (d->props.rc_key_map == NULL ||
+		d->props.rc_query == NULL ||
+		dvb_usb_disable_rc_polling)
 		return 0;
 
 	/* Initialise the remote-control structures.*/
_