Browse Source

[media] dvb_usb_v2: make remote controller optional

Make it possible to compile dvb_usb_v2 driver without the remote
controller (RC-core).

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Antti Palosaari 12 years ago
parent
commit
0c87c66aa3

+ 2 - 1
drivers/media/usb/dvb-usb-v2/Kconfig

@@ -1,6 +1,6 @@
 config DVB_USB_V2
 config DVB_USB_V2
 	tristate "Support for various USB DVB devices v2"
 	tristate "Support for various USB DVB devices v2"
-	depends on DVB_CORE && USB && I2C && RC_CORE
+	depends on DVB_CORE && USB && I2C
 	help
 	help
 	  By enabling this you will be able to choose the various supported
 	  By enabling this you will be able to choose the various supported
 	  USB1.1 and USB2.0 DVB devices.
 	  USB1.1 and USB2.0 DVB devices.
@@ -113,6 +113,7 @@ config DVB_USB_IT913X
 config DVB_USB_LME2510
 config DVB_USB_LME2510
 	tristate "LME DM04/QQBOX DVB-S USB2.0 support"
 	tristate "LME DM04/QQBOX DVB-S USB2.0 support"
 	depends on DVB_USB_V2
 	depends on DVB_USB_V2
+	depends on RC_CORE
 	select DVB_TDA10086 if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_TDA10086 if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_TDA826X if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_TDA826X if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT

+ 9 - 0
drivers/media/usb/dvb-usb-v2/dvb_usb.h

@@ -400,4 +400,13 @@ extern int dvb_usbv2_reset_resume(struct usb_interface *);
 extern int dvb_usbv2_generic_rw(struct dvb_usb_device *, u8 *, u16, u8 *, u16);
 extern int dvb_usbv2_generic_rw(struct dvb_usb_device *, u8 *, u16, u8 *, u16);
 extern int dvb_usbv2_generic_write(struct dvb_usb_device *, u8 *, u16);
 extern int dvb_usbv2_generic_write(struct dvb_usb_device *, u8 *, u16);
 
 
+/* stub implementations that will be never called when RC-core is disabled */
+#if !defined(CONFIG_RC_CORE) && !defined(CONFIG_RC_CORE_MODULE)
+#define rc_repeat(args...)
+#define rc_keydown(args...)
+#define rc_keydown_notimeout(args...)
+#define rc_keyup(args...)
+#define rc_g_keycode_from_table(args...) 0
+#endif
+
 #endif
 #endif

+ 12 - 0
drivers/media/usb/dvb-usb-v2/dvb_usb_core.c

@@ -102,6 +102,7 @@ static int dvb_usbv2_i2c_exit(struct dvb_usb_device *d)
 	return 0;
 	return 0;
 }
 }
 
 
+#if defined(CONFIG_RC_CORE) || defined(CONFIG_RC_CORE_MODULE)
 static void dvb_usb_read_remote_control(struct work_struct *work)
 static void dvb_usb_read_remote_control(struct work_struct *work)
 {
 {
 	struct dvb_usb_device *d = container_of(work,
 	struct dvb_usb_device *d = container_of(work,
@@ -202,6 +203,17 @@ static int dvb_usbv2_remote_exit(struct dvb_usb_device *d)
 
 
 	return 0;
 	return 0;
 }
 }
+#else
+static int dvb_usbv2_remote_init(struct dvb_usb_device *d)
+{
+	return 0;
+}
+
+static int dvb_usbv2_remote_exit(struct dvb_usb_device *d)
+{
+	return 0;
+}
+#endif
 
 
 static void dvb_usb_data_complete(struct usb_data_stream *stream, u8 *buf,
 static void dvb_usb_data_complete(struct usb_data_stream *stream, u8 *buf,
 		size_t len)
 		size_t len)