diff -r 84bd0617f712 -r 46b5358fa358 linux/drivers/media/dvb/siano/Kconfig
--- a/linux/drivers/media/dvb/siano/Kconfig	Tue Jan 13 14:17:23 2009 +0200
+++ b/linux/drivers/media/dvb/siano/Kconfig	Tue Jan 13 14:20:32 2009 +0200
@@ -2,25 +2,69 @@
 # Siano Mobile Silicon Digital TV device configuration
 #
 
-config DVB_SIANO_SMS1XXX
-	tristate "Siano SMS1XXX USB dongle support"
-	depends on DVB_CORE && USB
+config SMS_SIANO_MDTV
+	tristate "Siano MDTV receiver"
+	default m
 	---help---
-	  Choose Y here if you have a USB dongle with a SMS1XXX chipset.
+	Choose Y or M here if you have MDTV receiver with a Siano chipset.
 
-	  To compile this driver as a module, choose M here: the
-	  module will be called sms1xxx.
+	To compile this driver as a module, choose M here
+	(The modules will be called smsmdtv).
 
-config DVB_SIANO_SMS1XXX_SMS_IDS
-	bool "Enable support for Siano Mobile Silicon default USB IDs"
-	depends on DVB_SIANO_SMS1XXX
+	Note: All dependents, if selected, will be part of this module.
+
+	Further documentation on this driver can be found on the WWW at http://www.siano-ms.com/
+
+if SMS_SIANO_MDTV
+
+# Kernel sub systems support
+
+config SMS_DVB3_SUBSYS
+	bool "DVB v.3 Subsystem support"
 	default y
 	---help---
-	  Choose Y here if you have a USB dongle with a SMS1XXX chipset
-	  that uses Siano Mobile Silicon's default usb vid:pid.
+	Choose if you would like to have DVB v.3 kernel sub-system support.
 
-	  Choose N here if you would prefer to use Siano's external driver.
+config SMS_DVB5_S2API_SUBSYS
+	bool "DVB v.5 (S2 API) Subsystem support"
+	default n
+	---help---
+	Choose if you would like to have DVB v.5 (S2 API) kernel sub-system support.
 
-	  Further documentation on this driver can be found on the WWW at
-	  <http://www.siano-ms.com/>.
+config SMS_HOSTLIB_SUBSYS
+	bool "Host Library Subsystem support"
+	default n
+	---help---
+	Choose if you would like to have Siano's host library kernel sub-system support.
 
+if SMS_HOSTLIB_SUBSYS
+
+config SMS_NET_SUBSYS
+	bool "Siano Network Adapter"
+	default n
+	---help---
+	Choose if you would like to have Siano's network adapter support.
+
+endif # SMS_HOSTLIB_SUBSYS
+
+# Hardware interfaces support
+
+config SMS_USB_DRV
+	bool "USB interface support"
+	default y
+	---help---
+	Choose if you would like to have Siano's support for USB interface
+
+config SMS_SDIO_DRV
+	bool "SDIO interface support"
+	default n
+	---help---
+	Choose if you would like to have Siano's support for SDIO interface
+
+config SMS_SPI_PXA310_DRV
+	bool "PXA 310 SPI interface support"
+	default n
+	---help---
+	Choose if you would like to have Siano's support for PXA 310 SPI interface
+
+endif # SMS_SIANO_MDTV
diff -r 84bd0617f712 -r 46b5358fa358 linux/drivers/media/dvb/siano/Makefile
--- a/linux/drivers/media/dvb/siano/Makefile	Tue Jan 13 14:17:23 2009 +0200
+++ b/linux/drivers/media/dvb/siano/Makefile	Tue Jan 13 14:20:32 2009 +0200
@@ -1,8 +1,102 @@ sms1xxx-objs := smscoreapi.o smsusb.o sm
-sms1xxx-objs := smscoreapi.o smsusb.o smsdvb.o sms-cards.o
+###############################################################################
+#
+# Siano Mobile Silicon, Inc.
+# MDTV receiver kernel modules.
+# Copyright (C) 2006-2008, Uri Shkolnik
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+###############################################################################
 
-obj-$(CONFIG_DVB_SIANO_SMS1XXX) += sms1xxx.o
 
-EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
+# Local variables initialization
+SMS_DVB3_SUBSYS := 0
+SMS_DVB5_S2API_SUBSYS := 0
+SMS_HOSTLIB_SUBSYS := 0
+
+SMS_USB_DRV := 0
+SMS_SDIO_DRV := 0
+SMS_SPI_PXA310_DRV := 0
+
+
+# Default object, include in every build variant
+SMSOBJ := smscoreapi.o sms-cards.o
 
 EXTRA_CFLAGS += $(extra-cflags-y) $(extra-cflags-m)
 
+
+# Kernel subsystems support
+ifdef CONFIG_SMS_DVB3_SUBSYS
+ifneq ($(CONFIG_SMS_DVB3_SUBSYS),n)
+SMS_DVB3_SUBSYS := 1
+EXTRA_CFLAGS += -DSMS_DVB3_SUBSYS -Idrivers/media/dvb/dvb-core
+SMSOBJ += smsdvb.o
+endif
+endif
+
+ifdef CONFIG_SMS_DVB5_S2API_SUBSYS
+ifneq ($(CONFIG_SMS_DVB5_S2API_SUBSYS),n)
+SMS_DVB5_S2API_SUBSYS := 1
+EXTRA_CFLAGS += -DSMS_DVB5_S2API_SUBSYS
+endif
+endif
+
+ifdef CONFIG_SMS_HOSTLIB_SUBSYS
+ifneq ($(CONFIG_SMS_HOSTLIB_SUBSYS),n)
+SMS_HOSTLIB_SUBSYS := 1
+EXTRA_CFLAGS += -DSMS_HOSTLIB_SUBSYS
+SMSOBJ += smschar.o
+endif
+endif
+
+ifdef CONFIG_SMS_NET_SUBSYS
+ifneq ($(CONFIG_SMS_NET_SUBSYS),n)
+SMS_NET_SUBSYS := 1
+EXTRA_CFLAGS += -DSMS_NET_SUBSYS
+SMSOBJ += smsnet.o
+endif
+endif
+
+# Hardware (host) interfaces support
+ifdef CONFIG_SMS_USB_DRV
+ifneq ($(CONFIG_SMS_USB_DRV),n)
+SMS_USB_DRV := 1
+EXTRA_CFLAGS += -DSMS_USB_DRV
+SMSOBJ += smsusb.o
+endif
+endif
+
+ifdef CONFIG_SMS_SDIO_DRV
+ifneq ($(CONFIG_SMS_SDIO_DRV),n)
+SMS_SDIO_DRV := 1
+EXTRA_CFLAGS += -DSMS_SDIO_DRV
+SMSOBJ += smssdio.o
+endif
+endif
+
+ifdef CONFIG_SMS_SPI_PXA310_DRV
+ifneq ($(CONFIG_SMS_SPI_PXA310_DRV),n)
+SMS_SPI_PXA310_DRV := 1
+EXTRA_CFLAGS += -DSMS_SPI_PXA310_DRV
+SMSOBJ += smsspilog.o smsspicommon.o smsspiphy_pxa.o
+endif
+endif
+
+# All selected in one module named smsmdtv
+smsmdtv-objs := $(SMSOBJ)
+
+obj-$(CONFIG_SMS_SIANO_MDTV) := smsmdtv.o
+
+
+
