From 5c0d0b21fd3868672b5a550093efa7a72e458ed7 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Date: Sat, 25 Aug 2007 08:35:31 -0300
Subject: [PATCH] V4L/DVB (12789): tm6000: fix DVB dependency

Compilation were causing errors, if DVB_CORE weren't selected.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
---
 drivers/staging/tm6000/Kconfig        | 6 ++++++
 drivers/staging/tm6000/Makefile       | 8 +++++---
 drivers/staging/tm6000/tm6000-cards.c | 4 ++++
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/tm6000/Kconfig b/drivers/staging/tm6000/Kconfig
index 841e026ecef0..231dda3d4bbf 100644
--- a/drivers/staging/tm6000/Kconfig
+++ b/drivers/staging/tm6000/Kconfig
@@ -12,3 +12,9 @@ config VIDEO_TM6000
 	  an external software decoder to watch TV on your computer.
 
 	  Say Y if you own such a device and want to use it.
+
+config VIDEO_TM6000_DVB
+	bool "DVB Support for tm6000 based TV cards"
+	depends on VIDEO_TM6000 && DVB_CORE
+	---help---
+	  This adds support for DVB cards based on the tm5600/tm6000 chip.
diff --git a/drivers/staging/tm6000/Makefile b/drivers/staging/tm6000/Makefile
index 1fefe057d4e8..9b0e5b5bf3db 100644
--- a/drivers/staging/tm6000/Makefile
+++ b/drivers/staging/tm6000/Makefile
@@ -1,10 +1,12 @@
 tm6000-objs := tm6000-cards.o \
 		   tm6000-core.o  \
 		   tm6000-i2c.o   \
-		   tm6000-video.o \
-		   tm6000-dvb.o \
-		   hack.o \
+		   tm6000-video.o
 
+ifeq ($(CONFIG_VIDEO_TM6000_DVB),y)
+tm6000-objs := tm6000-dvb.o \
+		   hack.o
+endif
 
 obj-$(CONFIG_VIDEO_TM6000) += tm6000.o
 
diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index b41b3a46779f..608de59c9c13 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -191,12 +191,14 @@ static int tm6000_init_dev(struct tm6000_core *dev)
 			rc = -ENOMEM;
 			goto err;
 		}
+#ifdef CONFIG_VIDEO_TM6000_DVB
 		rc = tm6000_dvb_register(dev);
 		if(rc < 0) {
 			kfree(dev->dvb);
 			dev->dvb = NULL;
 			goto err;
 		}
+#endif
 	}
 err:
 	mutex_unlock(&dev->lock);
@@ -401,10 +403,12 @@ static void tm6000_usb_disconnect(struct usb_interface *interface)
 
 	mutex_lock(&dev->lock);
 
+#ifdef CONFIG_VIDEO_TM6000_DVB
 	if(dev->dvb) {
 		tm6000_dvb_unregister(dev);
 		kfree(dev->dvb);
 	}
+#endif
 
 	tm6000_v4l2_unregister(dev);
 
-- 
2.20.1