Re: ASUS U3100 Mini

2012-04-15 Thread Jan Prunk
The trick was with bad reception indoors.
I went testing to the balcony and framedrop dissapeared,
and I get a clear picture.
It seems that the Antenna is too weak in my apartment
to have a clear signal.

Kind regards,
Jan

On Sat, Apr 14, 2012 at 4:43 PM, Jan Prunk janpr...@gmail.com wrote:
 Hello Oliver,

 Thank you for your hint.

 I have written up a WIKI page for this device, which hasn't been
 written earlier.
 I am willing to test the device further, if any of the devs can give
 me further hints
 for that. It's still not in a full working mode. I mean video is
 somehow partially visible
 with VLC, but I am no expert in fine-tuning the device.

 The wiki page is located at
 http://linuxtv.org/wiki/index.php/ASUS_My_Cinema-U3100_Mini

 I will update the information there, if I will receive any further hints.

 Kind regards,
 Jan

 On Tue, Apr 10, 2012 at 11:32 AM, Oliver Schinagl
 oliver+l...@schinagl.nl wrote:
 Unfortunatly I am not familiar with the dib0700 device, so not sure if you
 need firmware (I assume so, check linuxtv wiki on any dib0700 device.

 To test the device in its most basic level, I think w_scan is the best bet,
 as it works without any other extra files.

 Oliver


 On 07-04-12 23:32Hello , Jan Prunk wrote:

 Hi Oliver !

 Thank you for your quick response.

 I assume that mine is a non-plus version.
 Do you know how I could proceed tuning the channel list,
 which I could then use in the combination with MPlayer ?

 Kind regards,
 Jan

 On Sat, Apr 7, 2012 at 10:15 PM, Oliver Schinagloliverl...@schinagl.nl
  wrote:

 Hi Jan,

 That page is probably not supported by linux-media and shows support
 (currently not working afaik) forthe U3100 mini PLUS. yes, minor
 difference
 in name, huge difference inside. The non-plus is a dib0700 based device,
 whereas the Plus is a af9035 based device. The non-plus should work out
 of
 the box on most distro's.

 Oliver


 On 07-04-12 20:21, Jan Prunk wrote:

 Hi !

 I have ASUS U3100 Mini USB Dongle and I would like to watch DVB-T
 TV streams with it on Debian. The dongle when its plugged in lights with
 the green light. Performing (dvb)scan segfaults.

 I (partially) followed these guides:

 http://linuxtv.org/wiki/index.php/Asus_U3100_Mini_plus_DVB-T

 I am using debian testing and it seems the device gets somehow
 recognised:

 [15120.976095] usb 3-1: USB disconnect, device number 2
 [15124.716041] usb 1-3: new high-speed USB device number 5 using
 ehci_hcd
 [15124.848958] usb 1-3: New USB device found, idVendor=0b05,
 idProduct=173f
 [15124.848964] usb 1-3: New USB device strings: Mfr=1, Product=2,
 SerialNumber=3
 [15124.848970] usb 1-3: Product: ASUS DVBT Tuner
 [15124.848974] usb 1-3: Manufacturer: ASUSTeK
 [15124.848977] usb 1-3: SerialNumber: 8500500875
 [15125.344564] IR NEC protocol handler initialized
 [15125.370992] IR RC5(x) protocol handler initialized
 [15125.409376] dib0700: loaded with support for 21 different
 device-types
 [15125.409588] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner'
 in cold state, will try to load a firmware
 [15125.412893] IR RC6 protocol handler initialized
 [15125.440888] IR JVC protocol handler initialized
 [15125.463698] dvb-usb: downloading firmware from file
 'dvb-usb-dib0700-1.20.fw'
 [15125.465236] IR Sony protocol handler initialized
 [15125.468745] IR MCE Keyboard/mouse protocol handler initialized
 [15125.473597] lirc_dev: IR Remote Control driver registered, major 249
 [15125.474883] IR LIRC bridge handler initialized
 [15125.671203] dib0700: firmware started successfully.
 [15126.172240] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner'
 in warm state.
 [15126.172346] dvb-usb: will pass the complete MPEG2 transport stream
 to the software demuxer.
 [15126.172902] DVB: registering new adapter (ASUS My Cinema U3100 Mini
 DVBT Tuner)
 [15126.390206] DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)...
 [15126.607078] DiB0070: successfully identified
 [15126.708031] Registered IR keymap rc-dib0700-rc5
 [15126.708271] input: IR-receiver inside an USB DVB receiver as
 /devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0/input12
 [15126.709054] rc0: IR-receiver inside an USB DVB receiver as
 /devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0
 [15126.710265] dvb-usb: schedule remote query interval to 50 msecs.
 [15126.710273] dvb-usb: ASUS My Cinema U3100 Mini DVBT Tuner
 successfully initialized and connected.
 [15126.710492] usbcore: registered new interface driver dvb_usb_dib0700
 [15557.359129] scan[3798]: segfault at 3 ip b7620aa6 sp bfc268ac error
 4 in libc-2.13.so[b75e2000+156000]
 [15650.161033] scan[3836]: segfault at 3 ip b766faa6 sp bf9974dc error
 4 in libc-2.13.so[b7631000+156000]

 After this I used the guide at:
 http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device

 Which resulted into:
 yang@vaio:~$ scan /usr/share/dvb/dvb-t/si-Ljubljana
  ~/.tzap/channels.conf
 scanning /usr/share/dvb/dvb-t/si-Ljubljana
 using '/dev/dvb/adapter0/frontend0' and 

[RFC] b2c2_flexcop_pci: Add suspend/resume support

2012-04-15 Thread Stefan Bauer
Dear linux-dvb developers, dear Matthias,


proper suspend and resume support for the b2c2_flexcop_pci driver is still 
missing as pointed out by these two bug reports:

https://bugs.gentoo.org/show_bug.cgi?id=288267
https://bugzilla.kernel.org/show_bug.cgi?id=14394

The first report contains a proposed patch to add suspend/resume support 
written by Matthias Schwarzott z...@gentoo.org. I and some others (see first 
bug report) confirm that it's actually working.

Behaviour without the patch: b2c2_flexcop_pci must be unloaded before 
suspending (means TV applications must be closed), and reloaded after resuming.
Behaviour with the patch: No module unloading/reloading necessary any more.
Known issues: TV application still needs to be closed before suspend. Otherwise 
the device is not functional (kaffeine shows only black screen) after resume. 
Reloading the module revives the device in that case.

I'd kindly ask you to review the attached patch by Matthias and consider its 
upstream inclusion after the issues are sorted out. I'm more than willing to 
assist and test as I can.


Kind regards,
Stefan Bauer
---8---
diff --git a/drivers/media/dvb/b2c2/flexcop-common.h 
b/drivers/media/dvb/b2c2/flexcop-common.h
index 437912e..c5f11a6 100644
--- a/drivers/media/dvb/b2c2/flexcop-common.h
+++ b/drivers/media/dvb/b2c2/flexcop-common.h
@@ -117,6 +117,9 @@ int flexcop_device_initialize(struct flexcop_device *);
 void flexcop_device_exit(struct flexcop_device *fc);
 void flexcop_reset_block_300(struct flexcop_device *fc);
 
+void flexcop_device_suspend(struct flexcop_device *fc);
+void flexcop_device_resume(struct flexcop_device *fc);
+
 /* from flexcop-dma.c */
 int flexcop_dma_allocate(struct pci_dev *pdev,
struct flexcop_dma *dma, u32 size);
diff --git a/drivers/media/dvb/b2c2/flexcop-pci.c 
b/drivers/media/dvb/b2c2/flexcop-pci.c
index 44f8fb5..1ef4b82 100644
--- a/drivers/media/dvb/b2c2/flexcop-pci.c
+++ b/drivers/media/dvb/b2c2/flexcop-pci.c
@@ -293,8 +293,6 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
 
info(card revision %x, fc_pci-pdev-revision);
 
-   if ((ret = pci_enable_device(fc_pci-pdev)) != 0)
-   return ret;
pci_set_master(fc_pci-pdev);
 
if ((ret = pci_request_regions(fc_pci-pdev, DRIVER_NAME)) != 0)
@@ -308,7 +306,6 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
goto err_pci_release_regions;
}
 
-   pci_set_drvdata(fc_pci-pdev, fc_pci);
spin_lock_init(fc_pci-irq_lock);
if ((ret = request_irq(fc_pci-pdev-irq, flexcop_pci_isr,
IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0)
@@ -319,7 +316,6 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
 
 err_pci_iounmap:
pci_iounmap(fc_pci-pdev, fc_pci-io_mem);
-   pci_set_drvdata(fc_pci-pdev, NULL);
 err_pci_release_regions:
pci_release_regions(fc_pci-pdev);
 err_pci_disable_device:
@@ -332,9 +328,7 @@ static void flexcop_pci_exit(struct flexcop_pci *fc_pci)
if (fc_pci-init_state  FC_PCI_INIT) {
free_irq(fc_pci-pdev-irq, fc_pci);
pci_iounmap(fc_pci-pdev, fc_pci-io_mem);
-   pci_set_drvdata(fc_pci-pdev, NULL);
pci_release_regions(fc_pci-pdev);
-   pci_disable_device(fc_pci-pdev);
}
fc_pci-init_state = ~FC_PCI_INIT;
 }
@@ -373,6 +367,11 @@ static int flexcop_pci_probe(struct pci_dev *pdev,
 
/* bus specific part */
fc_pci-pdev = pdev;
+   ret = pci_enable_device(pdev);
+   if (ret != 0)
+   goto err_kfree;
+
+   pci_set_drvdata(pdev, fc_pci);
if ((ret = flexcop_pci_init(fc_pci)) != 0)
goto err_kfree;
 
@@ -398,6 +397,7 @@ err_fc_exit:
 err_pci_exit:
flexcop_pci_exit(fc_pci);
 err_kfree:
+   pci_set_drvdata(pdev, NULL);
flexcop_device_kfree(fc);
return ret;
 }
@@ -415,9 +415,74 @@ static void flexcop_pci_remove(struct pci_dev *pdev)
flexcop_pci_dma_exit(fc_pci);
flexcop_device_exit(fc_pci-fc_dev);
flexcop_pci_exit(fc_pci);
+   pci_set_drvdata(pdev, NULL);
+   pci_disable_device(pdev);
flexcop_device_kfree(fc_pci-fc_dev);
 }
 
+#ifdef CONFIG_PM
+static int flexcop_pci_suspend(struct pci_dev *pdev, pm_message_t mesg)
+{
+   struct flexcop_pci *fc_pci = pci_get_drvdata(pdev);
+   struct flexcop_device *fc = fc_pci-fc_dev;
+
+   /* most parts are from flexcop_pci_remove */
+
+   if (irq_chk_intv  0)
+   cancel_delayed_work(fc_pci-irq_check_work);
+
+   flexcop_pci_dma_exit(fc_pci);
+   flexcop_device_suspend(fc);
+   flexcop_pci_exit(fc_pci);
+
+   pci_save_state(pdev);
+
+   pci_disable_device(pdev);
+   pci_set_power_state(pdev, pci_choose_state(pdev, mesg));
+
+   return 0;
+}
+
+static int flexcop_pci_resume(struct pci_dev *pdev)
+{
+   int ret;
+   struct flexcop_pci *fc_pci = 

[PATCH 1/6] m88ds3103, montage dvb-s/s2 demodulator driver

2012-04-15 Thread nibble.max
Montage m88ds3103 demodulator and ts2022 tuner driver.

Signed-off-by: Max nibble nibble@gmail.com
---
 drivers/media/dvb/frontends/Kconfig |7 +
 drivers/media/dvb/frontends/Makefile|2 +
 drivers/media/dvb/frontends/m88ds3103.c | 1851 +++
 drivers/media/dvb/frontends/m88ds3103.h |   53 +
 4 files changed, 1913 insertions(+)
 create mode 100644 drivers/media/dvb/frontends/m88ds3103.c
 create mode 100644 drivers/media/dvb/frontends/m88ds3103.h

diff --git a/drivers/media/dvb/frontends/Kconfig 
b/drivers/media/dvb/frontends/Kconfig
index e11adb6..d2bb312 100644
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
@@ -214,6 +214,13 @@ config DVB_CX24116
help
  A DVB-S/S2 tuner module. Say Y when you want to support this frontend.
 
+config DVB_M88DS3103
+   tristate Montage DS3103 based
+   depends on DVB_CORE  I2C
+   default m if DVB_FE_CUSTOMISE
+   help
+ A DVB-S/S2 tuner module. Say Y when you want to support this frontend.
+ 
 config DVB_SI21XX
tristate Silicon Labs SI21XX based
depends on DVB_CORE  I2C
diff --git a/drivers/media/dvb/frontends/Makefile 
b/drivers/media/dvb/frontends/Makefile
index 6ca7557..84ddf41 100644
--- a/drivers/media/dvb/frontends/Makefile
+++ b/drivers/media/dvb/frontends/Makefile
@@ -98,5 +98,7 @@ obj-$(CONFIG_DVB_A8293) += a8293.o
 obj-$(CONFIG_DVB_TDA10071) += tda10071.o
 obj-$(CONFIG_DVB_RTL2830) += rtl2830.o
 obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o
+obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o
 obj-$(CONFIG_DVB_AF9033) += af9033.o
 
+
diff --git a/drivers/media/dvb/frontends/m88ds3103.c 
b/drivers/media/dvb/frontends/m88ds3103.c
new file mode 100644
index 000..a186ba0
--- /dev/null
+++ b/drivers/media/dvb/frontends/m88ds3103.c
@@ -0,0 +1,1851 @@
+/*
+Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner 
driver
+
+Copyright (C) 2011 Max nibblenibble@gmail.com
+Copyright (C) 2010 Montage Technologywww.montage-tech.com
+Copyright (C) 2009 Konstantin Dimitrov.
+
+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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include linux/slab.h
+#include linux/kernel.h
+#include linux/module.h
+#include linux/moduleparam.h
+#include linux/init.h
+#include linux/firmware.h
+
+#include dvb_frontend.h
+#include m88ds3103.h
+
+static int debug;
+module_param(debug, int, 0644);
+MODULE_PARM_DESC(debug, Activates frontend debugging (default:0));
+
+#define dprintk(args...) \
+   do { \
+   if (debug) \
+   printk(KERN_INFO m88ds3103:  args); \
+   } while (0)
+
+#define FW_DOWN_SIZE 32
+#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE)
+#define DS3103_DEFAULT_FIRMWARE dvb-fe-ds3103.fw
+#define DS3000_DEFAULT_FIRMWARE dvb-fe-ds300x.fw
+#define MT_FE_MCLK_KHZ 96000 /* in kHz */
+#define MT_FE_CRYSTAL_KHZ   27000 /* in kHz */
+#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000
+#define DS3000_ID  0x3000
+#define DS3103_ID  0x3103
+#define TS2020_ID  0x2020
+#define TS2022_ID  0x2022
+#define UNKNOW_ID  0x
+
+/* For M88DS3103 demod dvbs mode.*/
+static u8 ds3103_dvbs_init_tab[] = {
+   0x23, 0x07,
+   0x08, 0x03,
+   0x0c, 0x02,
+   0x21, 0x54,
+   0x25, 0x82,
+   0x27, 0x31,
+   0x30, 0x08,
+   0x31, 0x40,
+   0x32, 0x32,
+   0x33, 0x35,
+   0x35, 0xff,
+   0x3a, 0x00,
+   0x37, 0x10,
+   0x38, 0x10,
+   0x39, 0x02,
+   0x42, 0x60,
+   0x4a, 0x80,
+   0x4b, 0x04,
+   0x4d, 0x91,
+   0x5d, 0xc8,
+   0x50, 0x36,
+   0x51, 0x36,
+   0x52, 0x36,
+   0x53, 0x36,
+   0x63, 0x0f,
+   0x64, 0x30,
+   0x65, 0x40,
+   0x68, 0x26,
+   0x69, 0x4c,
+   0x70, 0x20,
+   0x71, 0x70,
+   0x72, 0x04,
+   0x73, 0x00,
+   0x70, 0x40,
+   0x71, 0x70,
+   0x72, 0x04,
+   0x73, 0x00,
+   0x70, 0x60,
+   0x71, 0x70,
+   0x72, 0x04,
+   0x73, 0x00,
+   0x70, 0x80,
+   0x71, 0x70,
+   0x72, 0x04,
+   0x73, 0x00,
+   0x70, 0xa0,
+   0x71, 0x70,
+   0x72, 0x04,
+   0x73, 0x00,
+   0x70, 0x1f,
+   0x76, 0x38,
+   0x77, 0xa6,
+   0x78, 0x0c,
+   0x79, 0x80,
+   0x7f, 0x14,
+   0x7c, 0x00,
+   0xae, 0x82,
+ 

[PATCH 2/6] m88ds3103, dvbsky dvb-s2 usb box.

2012-04-15 Thread nibble.max
dvbsky dvb-s2 usb box based on montage m88ds3103 demodulator.

Signed-off-by: Max nibble nibble@gmail.com
---
 drivers/media/dvb/dvb-usb/Kconfig  |1 +
 drivers/media/dvb/dvb-usb/dw2102.c |  236 +++-
 2 files changed, 236 insertions(+), 1 deletion(-)

diff --git a/drivers/media/dvb/dvb-usb/Kconfig 
b/drivers/media/dvb/dvb-usb/Kconfig
index be1db75..bf63f29 100644
--- a/drivers/media/dvb/dvb-usb/Kconfig
+++ b/drivers/media/dvb/dvb-usb/Kconfig
@@ -279,6 +279,7 @@ config DVB_USB_DW2102
select DVB_STV0288 if !DVB_FE_CUSTOMISE
select DVB_STB6000 if !DVB_FE_CUSTOMISE
select DVB_CX24116 if !DVB_FE_CUSTOMISE
+   select DVB_M88DS3103 if !DVB_FE_CUSTOMISE
select DVB_SI21XX if !DVB_FE_CUSTOMISE
select DVB_TDA10023 if !DVB_FE_CUSTOMISE
select DVB_MT312 if !DVB_FE_CUSTOMISE
diff --git a/drivers/media/dvb/dvb-usb/dw2102.c 
b/drivers/media/dvb/dvb-usb/dw2102.c
index 451c5a7..0b1bbd2 100644
--- a/drivers/media/dvb/dvb-usb/dw2102.c
+++ b/drivers/media/dvb/dvb-usb/dw2102.c
@@ -19,6 +19,7 @@
 #include stb6000.h
 #include eds1547.h
 #include cx24116.h
+#include m88ds3103.h
 #include tda1002x.h
 #include mt312.h
 #include zl10039.h
@@ -882,6 +883,44 @@ static int s660_set_voltage(struct dvb_frontend *fe, 
fe_sec_voltage_t voltage)
return 0;
 }
 
+static int bstusb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t 
voltage)
+{
+
+   struct dvb_usb_adapter *udev_adap =
+   (struct dvb_usb_adapter *)(fe-dvb-priv);
+
+   u8 obuf[3] = { 0xe, 0x80, 0 };
+   u8 ibuf[] = { 0 };
+   
+   info(US6830: %s!\n, __func__);
+   
+   if (voltage == SEC_VOLTAGE_OFF)
+   obuf[2] = 0;
+   else 
+   obuf[2] = 1;
+   
+   if (dvb_usb_generic_rw(udev_adap-dev, obuf, 3, ibuf, 1, 0)  0)
+   err(command 0x0e transfer failed.);
+   
+   return 0;
+}
+
+static int bstusb_restart(struct dvb_frontend *fe)
+{
+
+   struct dvb_usb_adapter *udev_adap =
+   (struct dvb_usb_adapter *)(fe-dvb-priv);
+   
+   u8 obuf[3] = { 0x36, 3, 0 };
+   u8 ibuf[] = { 0 };
+   
+
+   if (dvb_usb_generic_rw(udev_adap-dev, obuf, 3, ibuf, 1, 0)  0)
+   err(command 0x36 transfer failed.);
+   
+   return 0;
+}
+
 static void dw210x_led_ctrl(struct dvb_frontend *fe, int offon)
 {
static u8 led_off[] = { 0 };
@@ -987,6 +1026,24 @@ static struct ds3000_config su3000_ds3000_config = {
.ci_mode = 1,
 };
 
+static struct m88ds3103_config US6830_ds3103_config = {
+   .demod_address = 0x68,
+   .ci_mode = 1,
+   .pin_ctrl = 0x83,
+   .ts_mode = 0,
+   .start_ctrl = bstusb_restart,
+   .set_voltage = bstusb_set_voltage,
+};
+
+static struct m88ds3103_config US6832_ds3103_config = {
+   .demod_address = 0x68,
+   .ci_mode = 1,
+   .pin_ctrl = 0x80,
+   .ts_mode = 0,
+   .start_ctrl = bstusb_restart,
+   .set_voltage = bstusb_set_voltage,
+};
+
 static int dw2104_frontend_attach(struct dvb_usb_adapter *d)
 {
struct dvb_tuner_ops *tuner_ops = NULL;
@@ -1214,6 +1271,72 @@ static int su3000_frontend_attach(struct dvb_usb_adapter 
*d)
return 0;
 }
 
+static int US6830_frontend_attach(struct dvb_usb_adapter *d)
+{
+   u8 obuf[3] = { 0xe, 0x83, 0 };
+   u8 ibuf[] = { 0 };
+
+
+   info(US6830: %s!\n, __func__);
+   
+   if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0)  0)
+   err(command 0x0e transfer failed.);
+
+   obuf[0] = 0xe;
+   obuf[1] = 0x83;
+   obuf[2] = 1;
+
+   if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0)  0)
+   err(command 0x0e transfer failed.);
+
+   obuf[0] = 0x51;
+
+   if (dvb_usb_generic_rw(d-dev, obuf, 1, ibuf, 1, 0)  0)
+   err(command 0x51 transfer failed.);
+
+   d-fe_adap[0].fe = dvb_attach(m88ds3103_attach, US6830_ds3103_config,
+   d-dev-i2c_adap);
+   if (d-fe_adap[0].fe == NULL)
+   return -EIO;
+
+   info(Attached M88DS3103!\n);
+
+   return 0;
+}
+
+static int US6832_frontend_attach(struct dvb_usb_adapter *d)
+{
+   u8 obuf[3] = { 0xe, 0x83, 0 };
+   u8 ibuf[] = { 0 };
+
+
+   info(US6832: %s!\n, __func__);
+   
+   if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0)  0)
+   err(command 0x0e transfer failed.);
+
+   obuf[0] = 0xe;
+   obuf[1] = 0x83;
+   obuf[2] = 1;
+
+   if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0)  0)
+   err(command 0x0e transfer failed.);
+
+   obuf[0] = 0x51;
+
+   if (dvb_usb_generic_rw(d-dev, obuf, 1, ibuf, 1, 0)  0)
+   err(command 0x51 transfer failed.);
+
+   d-fe_adap[0].fe = dvb_attach(m88ds3103_attach, US6832_ds3103_config,
+   d-dev-i2c_adap);
+   if (d-fe_adap[0].fe == 

[PATCH 3/6] m88ds3103, dvbsky dvb-s2 cx23883 pci card.

2012-04-15 Thread nibble.max
dvbsky dvb-s2 pci based on montage m88ds3103 demodulator.

Signed-off-by: Max nibble nibble@gmail.com
---
 drivers/media/video/cx88/Kconfig  |1 +
 drivers/media/video/cx88/cx88-cards.c |   22 +
 drivers/media/video/cx88/cx88-dvb.c   |   85 +
 drivers/media/video/cx88/cx88-input.c |4 ++
 drivers/media/video/cx88/cx88.h   |1 +
 5 files changed, 113 insertions(+)

diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig
index 3598dc0..0daef63 100644
--- a/drivers/media/video/cx88/Kconfig
+++ b/drivers/media/video/cx88/Kconfig
@@ -57,6 +57,7 @@ config VIDEO_CX88_DVB
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_CX24116 if !DVB_FE_CUSTOMISE
+   select DVB_M88DS3103 if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_STV0288 if !DVB_FE_CUSTOMISE
select DVB_STB6000 if !DVB_FE_CUSTOMISE
diff --git a/drivers/media/video/cx88/cx88-cards.c 
b/drivers/media/video/cx88/cx88-cards.c
index cbd5d11..059b22d 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -2309,6 +2309,18 @@ static const struct cx88_board cx88_boards[] = {
} },
.mpeg   = CX88_MPEG_DVB,
},
+   [CX88_BOARD_BST_PS8312] = {
+   .name   = Bestunar PS8312 DVB-S/S2,
+   .tuner_type = UNSET,
+   .radio_type = UNSET,
+   .tuner_addr = ADDR_UNSET,
+   .radio_addr = ADDR_UNSET,
+   .input  = {{
+   .type   = CX88_VMUX_DVB,
+   .vmux   = 0,
+   } },
+   .mpeg   = CX88_MPEG_DVB,
+   },
 };
 
 /* -- */
@@ -2813,6 +2825,10 @@ static const struct cx88_subid cx88_subids[] = {
.subvendor = 0x1822,
.subdevice = 0x0023,
.card  = CX88_BOARD_TWINHAN_VP1027_DVBS,
+   }, {
+   .subvendor = 0x14f1,
+   .subdevice = 0x8312,
+   .card  = CX88_BOARD_BST_PS8312,
},
 };
 
@@ -3547,6 +3563,12 @@ static void cx88_card_setup(struct cx88_core *core)
cx_write(MO_SRST_IO, 1);
msleep(100);
break;
+   case  CX88_BOARD_BST_PS8312:
+   cx_write(MO_GP1_IO, 0x808000);
+   msleep(100);
+   cx_write(MO_GP1_IO, 0x808080);
+   msleep(100);
+   break;  
} /*end switch() */
 
 
diff --git a/drivers/media/video/cx88/cx88-dvb.c 
b/drivers/media/video/cx88/cx88-dvb.c
index 003937c..5e19ef3 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -54,6 +54,7 @@
 #include stv0288.h
 #include stb6000.h
 #include cx24116.h
+#include m88ds3103.h
 #include stv0900.h
 #include stb6100.h
 #include stb6100_proc.h
@@ -458,6 +459,56 @@ static int tevii_dvbs_set_voltage(struct dvb_frontend *fe,
return core-prev_set_voltage(fe, voltage);
return 0;
 }
+/*CX88_BOARD_BST_PS8312*/
+static int bst_dvbs_set_voltage(struct dvb_frontend *fe,
+ fe_sec_voltage_t voltage)
+{
+   struct cx8802_dev *dev= fe-dvb-priv;
+   struct cx88_core *core = dev-core;
+
+   cx_write(MO_GP1_IO, 0x11);
+   switch (voltage) {
+   case SEC_VOLTAGE_13:
+   cx_write(MO_GP1_IO, 0x020200);
+   break;
+   case SEC_VOLTAGE_18:
+   cx_write(MO_GP1_IO, 0x020202);
+   break;
+   case SEC_VOLTAGE_OFF:
+   cx_write(MO_GP1_IO, 0x00);
+   break;
+   }
+
+   if (core-prev_set_voltage)
+   return core-prev_set_voltage(fe, voltage);
+   return 0;
+}
+
+static int bst_dvbs_set_voltage_v2(struct dvb_frontend *fe,
+ fe_sec_voltage_t voltage)
+{
+   struct cx8802_dev *dev= fe-dvb-priv;
+   struct cx88_core *core = dev-core;
+
+   cx_write(MO_GP1_IO, 0x01);
+   switch (voltage) {
+   case SEC_VOLTAGE_13:
+   cx_write(MO_GP1_IO, 0x020200);
+   break;
+   case SEC_VOLTAGE_18:
+
+   cx_write(MO_GP1_IO, 0x020202);
+   break;
+   case SEC_VOLTAGE_OFF:
+
+   cx_write(MO_GP1_IO, 0x10);
+   break;
+   }
+
+   if (core-prev_set_voltage)
+   return core-prev_set_voltage(fe, voltage);
+   return 0;
+}
 
 static int vp1027_set_voltage(struct dvb_frontend *fe,
fe_sec_voltage_t voltage)
@@ -700,6 +751,11 @@ static struct ds3000_config 

[PATCH 4/6] m88ds3103, dvbsky dvb-s2 cx23885 pcie card.

2012-04-15 Thread nibble.max
dvbsky dvb-s2 pcie based on montage m88ds3103 demodulator.

Signed-off-by: Max nibble nibble@gmail.com
---
 drivers/media/video/cx23885/Kconfig |1 +
 drivers/media/video/cx23885/cx23885-cards.c |  107 +++
 drivers/media/video/cx23885/cx23885-dvb.c   |   52 +
 drivers/media/video/cx23885/cx23885-f300.c  |   55 ++
 drivers/media/video/cx23885/cx23885-f300.h  |6 ++
 drivers/media/video/cx23885/cx23885-input.c |   15 
 drivers/media/video/cx23885/cx23885.h   |3 +
 7 files changed, 239 insertions(+)

diff --git a/drivers/media/video/cx23885/Kconfig 
b/drivers/media/video/cx23885/Kconfig
index b391e9b..20337c7 100644
--- a/drivers/media/video/cx23885/Kconfig
+++ b/drivers/media/video/cx23885/Kconfig
@@ -20,6 +20,7 @@ config VIDEO_CX23885
select DVB_LNBP21 if !DVB_FE_CUSTOMISE
select DVB_STV6110 if !DVB_FE_CUSTOMISE
select DVB_CX24116 if !DVB_FE_CUSTOMISE
+   select DVB_M88DS3103 if !DVB_FE_CUSTOMISE
select DVB_STV0900 if !DVB_FE_CUSTOMISE
select DVB_DS3000 if !DVB_FE_CUSTOMISE
select DVB_STV0367 if !DVB_FE_CUSTOMISE
diff --git a/drivers/media/video/cx23885/cx23885-cards.c 
b/drivers/media/video/cx23885/cx23885-cards.c
index 19b5499..fdf9d0f 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -497,6 +497,20 @@ struct cx23885_board cx23885_boards[] = {
.name   = TerraTec Cinergy T PCIe Dual,
.portb  = CX23885_MPEG_DVB,
.portc  = CX23885_MPEG_DVB,
+   },
+
+   [CX23885_BOARD_BST_PS8512] = {
+   .name   = Bestunar PS8512,
+   .portb  = CX23885_MPEG_DVB,
+   },
+   [CX23885_BOARD_DVBSKY_S950] = {
+   .name   = DVBSKY S950,
+   .portb  = CX23885_MPEG_DVB,
+   },
+   [CX23885_BOARD_DVBSKY_S952] = {
+   .name   = DVBSKY S952,
+   .portb  = CX23885_MPEG_DVB,
+   .portc  = CX23885_MPEG_DVB,
}
 };
 const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
@@ -705,6 +719,18 @@ struct cx23885_subid cx23885_subids[] = {
.subvendor = 0x153b,
.subdevice = 0x117e,
.card  = CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL,
+   }, {
+   .subvendor = 0x14f1,
+   .subdevice = 0x8512,
+   .card  = CX23885_BOARD_BST_PS8512,
+   }, {
+   .subvendor = 0x4254,
+   .subdevice = 0x0950,
+   .card  = CX23885_BOARD_DVBSKY_S950, 
+   }, {
+   .subvendor = 0x4254,
+   .subdevice = 0x0952,
+   .card  = CX23885_BOARD_DVBSKY_S952,
},
 };
 const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -1216,9 +1242,57 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
/* enable irq */
cx_write(GPIO_ISM, 0x);/* INTERRUPTS active low*/
break;
+   case CX23885_BOARD_DVBSKY_S950:
+   case CX23885_BOARD_BST_PS8512:  
+   cx23885_gpio_enable(dev, GPIO_2, 1);
+   cx23885_gpio_clear(dev, GPIO_2);
+   msleep(100);
+   cx23885_gpio_set(dev, GPIO_2);
+   break;
+   case CX23885_BOARD_DVBSKY_S952: 
+   cx_write(MC417_CTL, 0x0037);/* enable GPIO3-18 pins */
+   
+   cx23885_gpio_enable(dev, GPIO_2, 1);
+   cx23885_gpio_enable(dev, GPIO_11, 1);
+   
+   cx23885_gpio_clear(dev, GPIO_2);
+   cx23885_gpio_clear(dev, GPIO_11);
+   msleep(100);
+   cx23885_gpio_set(dev, GPIO_2);
+   cx23885_gpio_set(dev, GPIO_11);
+   
+   break;
}
 }
 
+static int cx23885_ir_patch(struct i2c_adapter *i2c, u8 reg, u8 mask)
+{
+   struct i2c_msg msgs[2];
+   u8 tx_buf[2], rx_buf[1];
+   /* Write register address */
+   tx_buf[0] = reg;
+   msgs[0].addr = 0x4c;
+   msgs[0].flags = 0;
+   msgs[0].len = 1;
+   msgs[0].buf = (char *) tx_buf;
+   /* Read data from register */
+   msgs[1].addr = 0x4c;
+   msgs[1].flags = I2C_M_RD;
+   msgs[1].len = 1;
+   msgs[1].buf = (char *) rx_buf;  
+   
+   i2c_transfer(i2c, msgs, 2);
+
+   tx_buf[0] = reg;
+   tx_buf[1] = rx_buf[0] | mask;
+   msgs[0].addr = 0x4c;
+   msgs[0].flags = 0;
+   msgs[0].len = 2;
+   msgs[0].buf = (char *) tx_buf;
+   
+   return i2c_transfer(i2c, msgs, 1);
+}
+
 int cx23885_ir_init(struct cx23885_dev *dev)
 {
static struct v4l2_subdev_io_pin_config ir_rxtx_pin_cfg[] = {
@@ -1301,6 +1375,20 @@ int cx23885_ir_init(struct cx23885_dev *dev)

cron job: media_tree daily build: WARNINGS

2012-04-15 Thread Hans Verkuil
This message is generated daily by a cron job that builds media_tree for
the kernels and architectures in the list below.

Results of the daily build of media_tree:

date:Sun Apr 15 19:00:19 CEST 2012
git hash:f4d4e7656b26a6013bc5072c946920d2e2c44e8e
gcc version:  i686-linux-gcc (GCC) 4.6.3
host hardware:x86_64
host os:  3.1-2.slh.1-amd64

linux-git-arm-eabi-exynos: WARNINGS
linux-git-arm-eabi-omap: WARNINGS
linux-git-armv5-ixp: WARNINGS
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: WARNINGS
linux-git-powerpc64: OK
linux-git-x86_64: WARNINGS
linux-2.6.31.12-i686: WARNINGS
linux-2.6.32.6-i686: WARNINGS
linux-2.6.33-i686: WARNINGS
linux-2.6.34-i686: WARNINGS
linux-2.6.35.3-i686: WARNINGS
linux-2.6.36-i686: WARNINGS
linux-2.6.37-i686: WARNINGS
linux-2.6.38.2-i686: WARNINGS
linux-2.6.39.1-i686: WARNINGS
linux-3.0-i686: OK
linux-3.1-i686: OK
linux-3.2.1-i686: OK
linux-3.3-i686: WARNINGS
linux-2.6.31.12-x86_64: WARNINGS
linux-2.6.32.6-x86_64: WARNINGS
linux-2.6.33-x86_64: WARNINGS
linux-2.6.34-x86_64: WARNINGS
linux-2.6.35.3-x86_64: WARNINGS
linux-2.6.36-x86_64: WARNINGS
linux-2.6.37-x86_64: WARNINGS
linux-2.6.38.2-x86_64: WARNINGS
linux-2.6.39.1-x86_64: WARNINGS
linux-3.0-x86_64: WARNINGS
linux-3.1-x86_64: WARNINGS
linux-3.2.1-x86_64: WARNINGS
linux-3.3-x86_64: WARNINGS
apps: WARNINGS
spec-git: WARNINGS
sparse: ERRORS

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/Sunday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Sunday.tar.bz2

The V4L-DVB specification from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/media.html
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ASUS U3100 Mini

2012-04-15 Thread Oliver Schinagl
That makes a lot of sense. I had the same issue initially with the plus, 
where I would only receive signals if the antenna was near the window.


On 04/15/12 10:26, Jan Prunk wrote:

The trick was with bad reception indoors.
I went testing to the balcony and framedrop dissapeared,
and I get a clear picture.
It seems that the Antenna is too weak in my apartment
to have a clear signal.

Kind regards,
Jan

On Sat, Apr 14, 2012 at 4:43 PM, Jan Prunkjanpr...@gmail.com  wrote:

Hello Oliver,

Thank you for your hint.

I have written up a WIKI page for this device, which hasn't been
written earlier.
I am willing to test the device further, if any of the devs can give
me further hints
for that. It's still not in a full working mode. I mean video is
somehow partially visible
with VLC, but I am no expert in fine-tuning the device.

The wiki page is located at
http://linuxtv.org/wiki/index.php/ASUS_My_Cinema-U3100_Mini

I will update the information there, if I will receive any further hints.

Kind regards,
Jan

On Tue, Apr 10, 2012 at 11:32 AM, Oliver Schinagl
oliver+l...@schinagl.nl  wrote:

Unfortunatly I am not familiar with the dib0700 device, so not sure if you
need firmware (I assume so, check linuxtv wiki on any dib0700 device.

To test the device in its most basic level, I think w_scan is the best bet,
as it works without any other extra files.

Oliver


On 07-04-12 23:32Hello , Jan Prunk wrote:


Hi Oliver !

Thank you for your quick response.

I assume that mine is a non-plus version.
Do you know how I could proceed tuning the channel list,
which I could then use in the combination with MPlayer ?

Kind regards,
Jan

On Sat, Apr 7, 2012 at 10:15 PM, Oliver Schinagloliverl...@schinagl.nl
  wrote:


Hi Jan,

That page is probably not supported by linux-media and shows support
(currently not working afaik) forthe U3100 mini PLUS. yes, minor
difference
in name, huge difference inside. The non-plus is a dib0700 based device,
whereas the Plus is a af9035 based device. The non-plus should work out
of
the box on most distro's.

Oliver


On 07-04-12 20:21, Jan Prunk wrote:


Hi !

I have ASUS U3100 Mini USB Dongle and I would like to watch DVB-T
TV streams with it on Debian. The dongle when its plugged in lights with
the green light. Performing (dvb)scan segfaults.

I (partially) followed these guides:

http://linuxtv.org/wiki/index.php/Asus_U3100_Mini_plus_DVB-T

I am using debian testing and it seems the device gets somehow
recognised:

[15120.976095] usb 3-1: USB disconnect, device number 2
[15124.716041] usb 1-3: new high-speed USB device number 5 using
ehci_hcd
[15124.848958] usb 1-3: New USB device found, idVendor=0b05,
idProduct=173f
[15124.848964] usb 1-3: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[15124.848970] usb 1-3: Product: ASUS DVBT Tuner
[15124.848974] usb 1-3: Manufacturer: ASUSTeK
[15124.848977] usb 1-3: SerialNumber: 8500500875
[15125.344564] IR NEC protocol handler initialized
[15125.370992] IR RC5(x) protocol handler initialized
[15125.409376] dib0700: loaded with support for 21 different
device-types
[15125.409588] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner'
in cold state, will try to load a firmware
[15125.412893] IR RC6 protocol handler initialized
[15125.440888] IR JVC protocol handler initialized
[15125.463698] dvb-usb: downloading firmware from file
'dvb-usb-dib0700-1.20.fw'
[15125.465236] IR Sony protocol handler initialized
[15125.468745] IR MCE Keyboard/mouse protocol handler initialized
[15125.473597] lirc_dev: IR Remote Control driver registered, major 249
[15125.474883] IR LIRC bridge handler initialized
[15125.671203] dib0700: firmware started successfully.
[15126.172240] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner'
in warm state.
[15126.172346] dvb-usb: will pass the complete MPEG2 transport stream
to the software demuxer.
[15126.172902] DVB: registering new adapter (ASUS My Cinema U3100 Mini
DVBT Tuner)
[15126.390206] DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)...
[15126.607078] DiB0070: successfully identified
[15126.708031] Registered IR keymap rc-dib0700-rc5
[15126.708271] input: IR-receiver inside an USB DVB receiver as
/devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0/input12
[15126.709054] rc0: IR-receiver inside an USB DVB receiver as
/devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0
[15126.710265] dvb-usb: schedule remote query interval to 50 msecs.
[15126.710273] dvb-usb: ASUS My Cinema U3100 Mini DVBT Tuner
successfully initialized and connected.
[15126.710492] usbcore: registered new interface driver dvb_usb_dib0700
[15557.359129] scan[3798]: segfault at 3 ip b7620aa6 sp bfc268ac error
4 in libc-2.13.so[b75e2000+156000]
[15650.161033] scan[3836]: segfault at 3 ip b766faa6 sp bf9974dc error
4 in libc-2.13.so[b7631000+156000]

After this I used the guide at:
http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device

Which resulted into:
yang@vaio:~$ scan /usr/share/dvb/dvb-t/si-Ljubljana
  ~/.tzap/channels.conf
scanning 

Re: [PATCH 2/2] ARM: mach-shmobile: sh7372 CEU supports up to 8188x8188 images

2012-04-15 Thread Simon Horman
On Wed, Mar 14, 2012 at 04:02:24PM +0100, Guennadi Liakhovetski wrote:
 Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de

Reviewed-by: Simon Horman ho...@verge.net.au

 ---
 
 This patch we can push some time after the first one in this series gets 
 in, no breakage is caused.
 
  arch/arm/mach-shmobile/board-ap4evb.c   |2 ++
  arch/arm/mach-shmobile/board-mackerel.c |2 ++
  2 files changed, 4 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/mach-shmobile/board-ap4evb.c 
 b/arch/arm/mach-shmobile/board-ap4evb.c
 index aab0a34..f67aa03 100644
 --- a/arch/arm/mach-shmobile/board-ap4evb.c
 +++ b/arch/arm/mach-shmobile/board-ap4evb.c
 @@ -1009,6 +1009,8 @@ static struct sh_mobile_ceu_companion csi2 = {
  
  static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
   .flags = SH_CEU_FLAG_USE_8BIT_BUS,
 + .max_width = 8188,
 + .max_height = 8188,
   .csi2 = csi2,
  };
  
 diff --git a/arch/arm/mach-shmobile/board-mackerel.c 
 b/arch/arm/mach-shmobile/board-mackerel.c
 index 9b42fbd..f790772 100644
 --- a/arch/arm/mach-shmobile/board-mackerel.c
 +++ b/arch/arm/mach-shmobile/board-mackerel.c
 @@ -1270,6 +1270,8 @@ static void mackerel_camera_del(struct 
 soc_camera_device *icd)
  
  static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
   .flags = SH_CEU_FLAG_USE_8BIT_BUS,
 + .max_width = 8188,
 + .max_height = 8188,
  };
  
  static struct resource ceu_resources[] = {
 -- 
 1.7.2.5
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-sh in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] dib0700: add new USB PID for the Elgato EyeTV DTT stick

2012-04-15 Thread Daniel

Hi,

This patch works fine, but the IR sensor doesn't seem to be enabled. 
It's not a problem, because the stick isn't sold with a remote control.


Sincerely,

Daniel


On 14/04/2012 15:14, Gianluca Gennari wrote:

Reported working here:
http://ubuntuforums.org/archive/index.php/t-1510188.html
http://ubuntuforums.org/archive/index.php/t-1756828.html
https://sites.google.com/site/slackwarestuff/home/elgato-eyetv

Signed-off-by: Gianluca Gennarigennar...@gmail.com
---
  drivers/media/dvb/dvb-usb/dib0700_devices.c |7 ++-
  drivers/media/dvb/dvb-usb/dvb-usb-ids.h |1 +
  2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c 
b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index f9e966a..510001d 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -3569,6 +3569,7 @@ struct usb_device_id dib0700_usb_id_table[] = {
{ USB_DEVICE(USB_VID_DIBCOM,USB_PID_DIBCOM_TFE7090E) },
{ USB_DEVICE(USB_VID_DIBCOM,USB_PID_DIBCOM_TFE7790E) },
  /* 80 */{ USB_DEVICE(USB_VID_DIBCOM,USB_PID_DIBCOM_TFE8096P) },
+   { USB_DEVICE(USB_VID_ELGATO,USB_PID_ELGATO_EYETV_DTT_2) },
{ 0 }   /* Terminating entry */
  };
  MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
@@ -3832,7 +3833,7 @@ struct dvb_usb_device_properties dib0700_devices[] = {
},
},

-   .num_device_descs = 11,
+   .num_device_descs = 12,
.devices = {
{   DiBcom STK7070P reference design,
{dib0700_usb_id_table[15], NULL },
@@ -3878,6 +3879,10 @@ struct dvb_usb_device_properties dib0700_devices[] = {
{dib0700_usb_id_table[50], NULL },
{ NULL },
},
+   {   Elgato EyeTV DTT rev. 2,
+   {dib0700_usb_id_table[81], NULL },
+   { NULL },
+   },
},

.rc.core = {
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 
b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index 94d3f8a..2418e41 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -335,6 +335,7 @@
  #define USB_PID_MYGICA_D689   0xd811
  #define USB_PID_ELGATO_EYETV_DIVERSITY0x0011
  #define USB_PID_ELGATO_EYETV_DTT  0x0021
+#define USB_PID_ELGATO_EYETV_DTT_2 0x003f
  #define USB_PID_ELGATO_EYETV_DTT_Dlx  0x0020
  #define USB_PID_ELGATO_EYETV_SAT  0x002a
  #define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD   0x5000

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html