Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
***************************
diff -ru v4l-dvb-85f583ec85d6/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c v4l-dvb-asus/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
--- v4l-dvb-85f583ec85d6/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c	Sun Nov 25 14:44:20 2007
+++ v4l-dvb-asus/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c	Mon Nov 26 07:32:33 2007
@@ -230,6 +230,27 @@
 	}
 };
 
+static int stk7700P2_frontend_attach(struct dvb_usb_adapter *adap)
+{
+	if (adap->id == 0) {
+		dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
+		msleep(10);
+		dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
+		dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
+		dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
+		dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
+		msleep(10);
+		dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
+		msleep(10);
+		dib7000p_i2c_enumeration(&adap->dev->i2c_adap,1,18,stk7700d_dib7000p_mt2266_config);
+	}
+
+	adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,0x80+(adap->id << 1),
+				&stk7700d_dib7000p_mt2266_config[adap->id]);
+
+	return adap->fe == NULL ? -ENODEV : 0;
+}
+
 static int stk7700d_frontend_attach(struct dvb_usb_adapter *adap)
 {
 	if (adap->id == 0) {
@@ -851,6 +872,9 @@
 		{ USB_DEVICE(USB_VID_COMPRO,    USB_PID_COMPRO_VIDEOMATE_U500_PC) },
 /* 20 */{ USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_EXPRESS) },
 /* 21 */{ USB_DEVICE(USB_VID_GIGABYTE, USB_PID_GIGABYTE_U7000) },
+/* 22 */{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14BR) },
+/* 23 */{ USB_DEVICE(USB_VID_ASUS, USB_PID_ASUS_U3000) },
+/* 24 */{ USB_DEVICE(USB_VID_ASUS, USB_PID_ASUS_U3100) },
 		{ 0 }		/* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
@@ -1009,6 +1033,25 @@
 		.num_adapters = 1,
 		.adapter = {
 			{
+				.frontend_attach  = stk7700P2_frontend_attach,
+				.tuner_attach     = stk7700d_tuner_attach,
+
+				DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
+			},
+		},
+
+		.num_device_descs = 1,
+		.devices = {
+			{   "ASUS My Cinema U3000 Mini DVBT Tuner",
+				{ &dib0700_usb_id_table[23], NULL },
+				{ NULL },
+			},
+		}
+	}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
+
+		.num_adapters = 1,
+		.adapter = {
+			{
 				.frontend_attach  = stk7070p_frontend_attach,
 				.tuner_attach     = dib7070p_tuner_attach,
 
@@ -1018,7 +1061,7 @@
 			},
 		},
 
-		.num_device_descs = 2,
+		.num_device_descs = 4,
 		.devices = {
 			{   "DiBcom STK7070P reference design",
 				{ &dib0700_usb_id_table[15], NULL },
@@ -1026,6 +1069,14 @@
 			},
 			{   "Pinnacle PCTV DVB-T Flash Stick",
 				{ &dib0700_usb_id_table[16], NULL },
+				{ NULL },
+			},
+			{   "Artec T14BR DVB-T",
+				{ &dib0700_usb_id_table[22], NULL },
+				{ NULL },
+			},
+			{   "ASUS My Cinema U3100 Mini DVBT Tuner",
+				{ &dib0700_usb_id_table[24], NULL },
 				{ NULL },
 			},
 		}
diff -ru v4l-dvb-85f583ec85d6/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h v4l-dvb-asus/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
--- v4l-dvb-85f583ec85d6/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h	Sun Nov 25 14:44:20 2007
+++ v4l-dvb-asus/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h	Mon Nov 26 01:20:19 2007
@@ -16,6 +16,7 @@
 #define USB_VID_ALINK				0x05e3
 #define USB_VID_ANCHOR				0x0547
 #define USB_VID_ANUBIS_ELECTRONIC		0x10fd
+#define USB_VID_ASUS				0x0b05
 #define USB_VID_AVERMEDIA			0x07ca
 #define USB_VID_COMPRO				0x185b
 #define USB_VID_COMPRO_UNK			0x145f
@@ -103,6 +104,7 @@
 #define USB_PID_ULTIMA_TVBOX_USB2_WARM			0x810a
 #define USB_PID_ARTEC_T14_COLD				0x810b
 #define USB_PID_ARTEC_T14_WARM				0x810c
+#define USB_PID_ARTEC_T14BR				0x810f
 #define USB_PID_ULTIMA_TVBOX_USB2_FX_COLD		0x8613
 #define USB_PID_ULTIMA_TVBOX_USB2_FX_WARM		0x1002
 #define USB_PID_UNK_HYPER_PALTEK_COLD			0x005e
@@ -179,5 +181,8 @@
 #define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM		0x0513
 /* dom pour gigabyte u7000 */
 #define USB_PID_GIGABYTE_U7000				0x7001
+
+#define USB_PID_ASUS_U3000				0x171f
+#define USB_PID_ASUS_U3100				0x173f
 
 #endif
