* [linux-dvb] Support for Compro VideoMate S350
@ 2009-05-25 14:03 optitron optitronov
2009-06-20 1:45 ` O&M Ugarcina
0 siblings, 1 reply; 9+ messages in thread
From: optitron optitronov @ 2009-05-25 14:03 UTC (permalink / raw)
To: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 97 bytes --]
Hi, whats the current status of this card?
is this allready merged to v4l-dvb???
thanks
optitron
[-- Attachment #1.2: Type: text/html, Size: 117 bytes --]
[-- Attachment #2: Type: text/plain, Size: 228 bytes --]
_______________________________________________
linux-dvb users mailing list
For V4L/DVB development, please use instead linux-media@vger.kernel.org
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350
2009-05-25 14:03 [linux-dvb] Support for Compro VideoMate S350 optitron optitronov
@ 2009-06-20 1:45 ` O&M Ugarcina
2009-06-20 13:33 ` Igor M. Liplianin
0 siblings, 1 reply; 9+ messages in thread
From: O&M Ugarcina @ 2009-06-20 1:45 UTC (permalink / raw)
To: linux-media
Hello Guys,
I have one of these "paper weights" - that is a S350 , it has been
sitting on the shelf for the past 2 years . And I would really like to
use it . We have a driver for it here :
http://article.gmane.org/gmane.linux.drivers.dvb/38163 . Please what
needs to be done to get this driver merged into the tree ? C'mon guys
lets get this one in .
Best Regards
Milorad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350
2009-06-20 1:45 ` O&M Ugarcina
@ 2009-06-20 13:33 ` Igor M. Liplianin
2009-06-23 12:18 ` O&M Ugarcina
0 siblings, 1 reply; 9+ messages in thread
From: Igor M. Liplianin @ 2009-06-20 13:33 UTC (permalink / raw)
To: mo.ucina; +Cc: linux-media, Jan D. Louw
[-- Attachment #1: Type: text/plain, Size: 922 bytes --]
On 20 June 2009 04:45:49 O&M Ugarcina wrote:
> Hello Guys,
>
> I have one of these "paper weights" - that is a S350 , it has been
> sitting on the shelf for the past 2 years . And I would really like to
> use it . We have a driver for it here :
> http://article.gmane.org/gmane.linux.drivers.dvb/38163 . Please what
> needs to be done to get this driver merged into the tree ? C'mon guys
> lets get this one in .
>
> Best Regards
> Milorad
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Patches (hg export) against recent linuxtv tree.
Feel free to test.
It includes TeVii S630 as well, which already tested by me.
As for Compro, I have report about successfully working one.
--
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks
[-- Attachment #2: 12094.patch --]
[-- Type: text/x-diff, Size: 10739 bytes --]
# HG changeset patch
# User Igor M. Liplianin <liplianin@me.by>
# Date 1245502308 -10800
# Node ID 9da94d6ff07d13481c15c756c4802eb15d923d16
# Parent 2899ad868fc69dd57310f1833fb67155060b06f0
Add ce5039(zl10039) tuner support.
From: Igor M. Liplianin <liplianin@me.by>
The code from Jan D. Louw with some minor changes.
http://article.gmane.org/gmane.linux.drivers.dvb/38163
Tested with TeVii S630 DVB-S USB card by me (Igor)
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
diff -r 2899ad868fc6 -r 9da94d6ff07d linux/drivers/media/dvb/frontends/Kconfig
--- a/linux/drivers/media/dvb/frontends/Kconfig Thu Jun 18 19:31:36 2009 +0200
+++ b/linux/drivers/media/dvb/frontends/Kconfig Sat Jun 20 15:51:48 2009 +0300
@@ -81,6 +81,13 @@
help
A DVB-S tuner module. Say Y when you want to support this frontend.
+config DVB_ZL10039
+ tristate "Zarlink ZL10039 silicon tuner"
+ depends on DVB_CORE && I2C
+ default m if DVB_FE_CUSTOMISE
+ help
+ A DVB-S tuner module. Say Y when you want to support this frontend.
+
config DVB_S5H1420
tristate "Samsung S5H1420 based"
depends on DVB_CORE && I2C
diff -r 2899ad868fc6 -r 9da94d6ff07d linux/drivers/media/dvb/frontends/Makefile
--- a/linux/drivers/media/dvb/frontends/Makefile Thu Jun 18 19:31:36 2009 +0200
+++ b/linux/drivers/media/dvb/frontends/Makefile Sat Jun 20 15:51:48 2009 +0300
@@ -31,6 +31,7 @@
obj-$(CONFIG_DVB_NXT6000) += nxt6000.o
obj-$(CONFIG_DVB_MT352) += mt352.o
obj-$(CONFIG_DVB_ZL10036) += zl10036.o
+obj-$(CONFIG_DVB_ZL10039) += zl10039.o
obj-$(CONFIG_DVB_ZL10353) += zl10353.o
obj-$(CONFIG_DVB_CX22702) += cx22702.o
obj-$(CONFIG_DVB_DRX397XD) += drx397xD.o
diff -r 2899ad868fc6 -r 9da94d6ff07d linux/drivers/media/dvb/frontends/zl10039.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linux/drivers/media/dvb/frontends/zl10039.c Sat Jun 20 15:51:48 2009 +0300
@@ -0,0 +1,308 @@
+/*
+ * Driver for Zarlink ZL10039 DVB-S tuner
+ *
+ * Copyright 2007 Jan D. Louw <jd.louw@mweb.co.za>
+ *
+ * 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/module.h>
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/slab.h>
+#include <linux/dvb/frontend.h>
+
+#include "dvb_frontend.h"
+#include "zl10039.h"
+
+static int debug;
+
+#define dprintk(args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG args); \
+ } while (0)
+
+enum zl10039_model_id {
+ ID_ZL10039 = 1
+};
+
+struct zl10039_state {
+ struct i2c_adapter *i2c;
+ u8 i2c_addr;
+ u8 id;
+};
+
+enum zl10039_reg_addr {
+ PLL0 = 0,
+ PLL1,
+ PLL2,
+ PLL3,
+ RFFE,
+ BASE0,
+ BASE1,
+ BASE2,
+ LO0,
+ LO1,
+ LO2,
+ LO3,
+ LO4,
+ LO5,
+ LO6,
+ GENERAL
+};
+
+static int zl10039_read(const struct zl10039_state *state,
+ const enum zl10039_reg_addr reg, u8 *buf,
+ const size_t count)
+{
+ u8 regbuf[] = { reg };
+ struct i2c_msg msg[] = {
+ {/* Write register address */
+ .addr = state->i2c_addr,
+ .flags = 0,
+ .buf = regbuf,
+ .len = 1,
+ }, {/* Read count bytes */
+ .addr = state->i2c_addr,
+ .flags = I2C_M_RD,
+ .buf = buf,
+ .len = count,
+ },
+ };
+
+ dprintk("%s\n", __func__);
+
+ if (i2c_transfer(state->i2c, msg, 2) != 2) {
+ dprintk("%s: i2c read error\n", __func__);
+ return -EREMOTEIO;
+ }
+
+ return 0; /* Success */
+}
+
+static int zl10039_write(struct zl10039_state *state,
+ const enum zl10039_reg_addr reg, const u8 *src,
+ const size_t count)
+{
+ u8 buf[count + 1];
+ struct i2c_msg msg = {
+ .addr = state->i2c_addr,
+ .flags = 0,
+ .buf = buf,
+ .len = count + 1,
+ };
+
+ dprintk("%s\n", __func__);
+ /* Write register address and data in one go */
+ buf[0] = reg;
+ memcpy(&buf[1], src, count);
+ if (i2c_transfer(state->i2c, &msg, 1) != 1) {
+ dprintk("%s: i2c write error\n", __func__);
+ return -EREMOTEIO;
+ }
+
+ return 0; /* Success */
+}
+
+static inline int zl10039_readreg(struct zl10039_state *state,
+ const enum zl10039_reg_addr reg, u8 *val)
+{
+ return zl10039_read(state, reg, val, 1);
+}
+
+static inline int zl10039_writereg(struct zl10039_state *state,
+ const enum zl10039_reg_addr reg,
+ const u8 val)
+{
+ return zl10039_write(state, reg, &val, 1);
+}
+
+static int zl10039_init(struct dvb_frontend *fe)
+{
+ struct zl10039_state *state = fe->tuner_priv;
+ int ret;
+
+ dprintk("%s\n", __func__);
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
+ /* Reset logic */
+ ret = zl10039_writereg(state, GENERAL, 0x40);
+ if (ret < 0) {
+ dprintk("Note: i2c write error normal when resetting the "
+ "tuner\n");
+ }
+ /* Wake up */
+ ret = zl10039_writereg(state, GENERAL, 0x01);
+ if (ret < 0) {
+ dprintk("Tuner power up failed\n");
+ return ret;
+ }
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 0);
+
+ return 0;
+}
+
+static int zl10039_sleep(struct dvb_frontend *fe)
+{
+ struct zl10039_state *state = fe->tuner_priv;
+ int ret;
+
+ dprintk("%s\n", __func__);
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
+ ret = zl10039_writereg(state, GENERAL, 0x80);
+ if (ret < 0) {
+ dprintk("Tuner sleep failed\n");
+ return ret;
+ }
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 0);
+
+ return 0;
+}
+
+static int zl10039_set_params(struct dvb_frontend *fe,
+ struct dvb_frontend_parameters *params)
+{
+ struct zl10039_state *state = fe->tuner_priv;
+ u8 buf[6];
+ u8 bf;
+ u32 fbw;
+ u32 div;
+ int ret;
+
+ dprintk("%s\n", __func__);
+ dprintk("Set frequency = %d, symbol rate = %d\n",
+ params->frequency, params->u.qpsk.symbol_rate);
+
+ /* Assumed 10.111 MHz crystal oscillator */
+ /* Cancelled num/den 80 to prevent overflow */
+ div = (params->frequency * 1000) / 126387;
+ fbw = (params->u.qpsk.symbol_rate * 27) / 32000;
+ /* Cancelled num/den 10 to prevent overflow */
+ bf = ((fbw * 5088) / 1011100) - 1;
+
+ /*PLL divider*/
+ buf[0] = (div >> 8) & 0x7f;
+ buf[1] = (div >> 0) & 0xff;
+ /*Reference divider*/
+ /* Select reference ratio of 80 */
+ buf[2] = 0x1D;
+ /*PLL test modes*/
+ buf[3] = 0x40;
+ /*RF Control register*/
+ buf[4] = 0x6E; /* Bypass enable */
+ /*Baseband filter cutoff */
+ buf[5] = bf;
+
+ /* Open i2c gate */
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
+ /* BR = 10, Enable filter adjustment */
+ ret = zl10039_writereg(state, BASE1, 0x0A);
+ if (ret < 0)
+ goto error;
+ /* Write new config values */
+ ret = zl10039_write(state, PLL0, buf, sizeof(buf));
+ if (ret < 0)
+ goto error;
+ /* BR = 10, Disable filter adjustment */
+ ret = zl10039_writereg(state, BASE1, 0x6A);
+ if (ret < 0)
+ goto error;
+
+ /* Close i2c gate */
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 0);
+ return 0;
+error:
+ dprintk("Error setting tuner\n");
+ return ret;
+}
+
+static int zl10039_release(struct dvb_frontend *fe)
+{
+ struct zl10039_state *state = fe->tuner_priv;
+
+ dprintk("%s\n", __func__);
+ kfree(state);
+ fe->tuner_priv = NULL;
+ return 0;
+}
+
+static struct dvb_tuner_ops zl10039_ops = {
+ .release = zl10039_release,
+ .init = zl10039_init,
+ .sleep = zl10039_sleep,
+ .set_params = zl10039_set_params,
+};
+
+struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
+ u8 i2c_addr, struct i2c_adapter *i2c)
+{
+ struct zl10039_state *state = NULL;
+
+ dprintk("%s\n", __func__);
+ state = kmalloc(sizeof(struct zl10039_state), GFP_KERNEL);
+ if (state == NULL)
+ goto error;
+
+ state->i2c = i2c;
+ state->i2c_addr = i2c_addr;
+
+ /* Open i2c gate */
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
+ /* check if this is a valid tuner */
+ if (zl10039_readreg(state, GENERAL, &state->id) < 0) {
+ /* Close i2c gate */
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 0);
+ goto error;
+ }
+ /* Close i2c gate */
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 0);
+
+ state->id = state->id & 0x0f;
+ switch (state->id) {
+ case ID_ZL10039:
+ strcpy(fe->ops.tuner_ops.info.name,
+ "Zarlink ZL10039 DVB-S tuner");
+ break;
+ default:
+ dprintk("Chip ID=%x does not match a known type\n", state->id);
+ break;
+ goto error;
+ }
+
+ memcpy(&fe->ops.tuner_ops, &zl10039_ops, sizeof(struct dvb_tuner_ops));
+ fe->tuner_priv = state;
+ dprintk("Tuner attached @ i2c address 0x%02x\n", i2c_addr);
+ return fe;
+error:
+ kfree(state);
+ return NULL;
+}
+EXPORT_SYMBOL(zl10039_attach);
+
+module_param(debug, int, 0644);
+MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
+MODULE_DESCRIPTION("Zarlink ZL10039 DVB-S tuner driver");
+MODULE_AUTHOR("Jan D. Louw <jd.louw@mweb.co.za>");
+MODULE_LICENSE("GPL");
diff -r 2899ad868fc6 -r 9da94d6ff07d linux/drivers/media/dvb/frontends/zl10039.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linux/drivers/media/dvb/frontends/zl10039.h Sat Jun 20 15:51:48 2009 +0300
@@ -0,0 +1,40 @@
+/*
+ Driver for Zarlink ZL10039 DVB-S tuner
+
+ Copyright (C) 2007 Jan D. Louw <jd.louw@mweb.co.za>
+
+ 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.
+*/
+
+#ifndef ZL10039_H
+#define ZL10039_H
+
+#if defined(CONFIG_DVB_ZL10039) || (defined(CONFIG_DVB_ZL10039_MODULE) \
+ && defined(MODULE))
+struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
+ u8 i2c_addr,
+ struct i2c_adapter *i2c);
+#else
+static inline struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
+ u8 i2c_addr,
+ struct i2c_adapter *i2c)
+{
+ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
+ return NULL;
+}
+#endif /* CONFIG_DVB_ZL10039 */
+
+#endif /* ZL10039_H */
[-- Attachment #3: 12095.patch --]
[-- Type: text/x-diff, Size: 8472 bytes --]
# HG changeset patch
# User Igor M. Liplianin <liplianin@me.by>
# Date 1245502458 -10800
# Node ID 54a5eca28b5dd2607774d1bc883ffda9f69463e6
# Parent 9da94d6ff07d13481c15c756c4802eb15d923d16
Add TeVii S630 USB DVB-S card support.
From: Igor M. Liplianin <liplianin@me.by>
The card includes Intel ce5039(Zarlink zl10039) tuner
and Intel ce6313 (Zarlink zl10313) demod.
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
diff -r 9da94d6ff07d -r 54a5eca28b5d linux/drivers/media/dvb/dvb-usb/Kconfig
--- a/linux/drivers/media/dvb/dvb-usb/Kconfig Sat Jun 20 15:51:48 2009 +0300
+++ b/linux/drivers/media/dvb/dvb-usb/Kconfig Sat Jun 20 15:54:18 2009 +0300
@@ -253,7 +253,7 @@
Afatech AF9005 based receiver.
config DVB_USB_DW2102
- tristate "DvbWorld DVB-S/S2 USB2.0 support"
+ tristate "DvbWorld & TeVii DVB-S/S2 USB2.0 support"
depends on DVB_USB
select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE
@@ -262,9 +262,11 @@
select DVB_CX24116 if !DVB_FE_CUSTOMISE
select DVB_SI21XX if !DVB_FE_CUSTOMISE
select DVB_TDA10021 if !DVB_FE_CUSTOMISE
+ select DVB_MT312 if !DVB_FE_CUSTOMISE
+ select DVB_ZL10039 if !DVB_FE_CUSTOMISE
help
Say Y here to support the DvbWorld DVB-S/S2 USB2.0 receivers
- and the TeVii S650.
+ and the TeVii S650, S630.
config DVB_USB_CINERGY_T2
tristate "Terratec CinergyT2/qanu USB 2.0 DVB-T receiver"
diff -r 9da94d6ff07d -r 54a5eca28b5d linux/drivers/media/dvb/dvb-usb/dw2102.c
--- a/linux/drivers/media/dvb/dvb-usb/dw2102.c Sat Jun 20 15:51:48 2009 +0300
+++ b/linux/drivers/media/dvb/dvb-usb/dw2102.c Sat Jun 20 15:54:18 2009 +0300
@@ -1,6 +1,6 @@
/* DVB USB framework compliant Linux driver for the
* DVBWorld DVB-S 2101, 2102, DVB-S2 2104, DVB-C 3101,
-* TeVii S600, S650 Cards
+* TeVii S600, S630, S650 Cards
* Copyright (C) 2008,2009 Igor M. Liplianin (liplianin@me.by)
*
* This program is free software; you can redistribute it and/or modify it
@@ -18,6 +18,8 @@
#include "eds1547.h"
#include "cx24116.h"
#include "tda1002x.h"
+#include "mt312.h"
+#include "zl10039.h"
#ifndef USB_PID_DW2102
#define USB_PID_DW2102 0x2102
@@ -39,6 +41,10 @@
#define USB_PID_TEVII_S650 0xd650
#endif
+#ifndef USB_PID_TEVII_S630
+#define USB_PID_TEVII_S630 0xd630
+#endif
+
#define DW210X_READ_MSG 0
#define DW210X_WRITE_MSG 1
@@ -436,6 +442,69 @@
return num;
}
+static int s630_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
+ int num)
+{
+ struct dvb_usb_device *d = i2c_get_adapdata(adap);
+ int ret = 0;
+
+ if (!d)
+ return -ENODEV;
+ if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+ return -EAGAIN;
+
+ switch (num) {
+ case 2: { /* read */
+ u8 ibuf[msg[1].len], obuf[3];
+ obuf[0] = msg[1].len;
+ obuf[1] = (msg[0].addr << 1);
+ obuf[2] = msg[0].buf[0];
+
+ ret = dw210x_op_rw(d->udev, 0x90, 0, 0,
+ obuf, 3, DW210X_WRITE_MSG);
+ msleep(5);
+ ret = dw210x_op_rw(d->udev, 0x91, 0, 0,
+ ibuf, msg[1].len, DW210X_READ_MSG);
+ memcpy(msg[1].buf, ibuf, msg[1].len);
+ break;
+ }
+ case 1:
+ switch (msg[0].addr) {
+ case 0x60:
+ case 0x0e: {
+ /* write to zl10313, zl10039 register, */
+ u8 obuf[msg[0].len + 2];
+ obuf[0] = msg[0].len + 1;
+ obuf[1] = (msg[0].addr << 1);
+ memcpy(obuf + 2, msg[0].buf, msg[0].len);
+ ret = dw210x_op_rw(d->udev, 0x80, 0, 0,
+ obuf, msg[0].len + 2, DW210X_WRITE_MSG);
+ break;
+ }
+ case (DW2102_RC_QUERY): {
+ u8 ibuf[4];
+ ret = dw210x_op_rw(d->udev, 0xb8, 0, 0,
+ ibuf, 4, DW210X_READ_MSG);
+ msg[0].buf[0] = ibuf[3];
+ break;
+ }
+ case (DW2102_VOLTAGE_CTRL): {
+ u8 obuf[2];
+ obuf[0] = 0x03;
+ obuf[1] = msg[0].buf[0];
+ ret = dw210x_op_rw(d->udev, 0x8a, 0, 0,
+ obuf, 2, DW210X_WRITE_MSG);
+ break;
+ }
+ }
+
+ break;
+ }
+
+ mutex_unlock(&d->i2c_mutex);
+ return num;
+}
+
static u32 dw210x_i2c_func(struct i2c_adapter *adapter)
{
return I2C_FUNC_I2C;
@@ -481,6 +550,14 @@
#endif
};
+static struct i2c_algorithm s630_i2c_algo = {
+ .master_xfer = s630_i2c_transfer,
+ .functionality = dw210x_i2c_func,
+#ifdef NEED_ALGO_CONTROL
+ .algo_control = dummy_algo_control,
+#endif
+};
+
static int dw210x_read_mac_address(struct dvb_usb_device *d, u8 mac[6])
{
int i;
@@ -505,6 +582,37 @@
return 0;
};
+static int s630_read_mac_address(struct dvb_usb_device *d, u8 mac[6])
+{
+ int i, ret;
+ u8 buf[3], eeprom[256], eepromline[16];
+
+ for (i = 0; i < 256; i++) {
+ buf[0] = 1;
+ buf[1] = 0xa0;
+ buf[2] = i;
+ ret = dw210x_op_rw(d->udev, 0x90, 0, 0,
+ buf, 3, DW210X_WRITE_MSG);
+ ret = dw210x_op_rw(d->udev, 0x91, 0, 0,
+ buf, 1, DW210X_READ_MSG);
+ if (ret < 0) {
+ err("read eeprom failed.");
+ return -1;
+ } else {
+ eepromline[i % 16] = buf[0];
+ eeprom[i] = buf[0];
+ }
+
+ if ((i % 16) == 15) {
+ deb_xfer("%02x: ", i - 15);
+ debug_dump(eepromline, 16, deb_xfer);
+ }
+ }
+
+ memcpy(mac, eeprom + 16, 6);
+ return 0;
+};
+
static int dw210x_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
{
static u8 command_13v[1] = {0x00};
@@ -550,6 +658,10 @@
.invert = 1,
};
+static struct mt312_config zl313_config = {
+ .demod_address = 0x0e,
+};
+
static int dw2104_frontend_attach(struct dvb_usb_adapter *d)
{
if ((d->fe = dvb_attach(cx24116_attach, &dw2104_config,
@@ -611,6 +723,18 @@
return -EIO;
}
+static int s630_frontend_attach(struct dvb_usb_adapter *d)
+{
+ d->fe = dvb_attach(mt312_attach, &zl313_config,
+ &d->dev->i2c_adap);
+ if (d->fe != NULL) {
+ d->fe->ops.set_voltage = dw210x_set_voltage;
+ info("Attached zl10313!\n");
+ return 0;
+ }
+ return -EIO;
+}
+
static int dw2102_tuner_attach(struct dvb_usb_adapter *adap)
{
dvb_attach(dvb_pll_attach, adap->fe, 0x60,
@@ -634,6 +758,14 @@
return 0;
}
+static int s630_zl10039_tuner_attach(struct dvb_usb_adapter *adap)
+{
+ dvb_attach(zl10039_attach, adap->fe, 0x60,
+ &adap->dev->i2c_adap);
+
+ return 0;
+}
+
static struct dvb_usb_rc_key dw210x_rc_keys[] = {
{ 0xf8, 0x0a, KEY_Q }, /*power*/
{ 0xf8, 0x0c, KEY_M }, /*mute*/
@@ -778,7 +910,7 @@
}
*state = REMOTE_NO_KEY_PRESSED;
- if (dw2102_i2c_transfer(&d->i2c_adap, &msg, 1) == 1) {
+ if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) {
for (i = 0; i < keymap_size ; i++) {
if (keymap[i].data == msg.buf[0]) {
*state = REMOTE_KEY_PRESSED;
@@ -807,6 +939,7 @@
{USB_DEVICE(0x9022, USB_PID_TEVII_S650)},
{USB_DEVICE(USB_VID_TERRATEC, USB_PID_CINERGY_S)},
{USB_DEVICE(USB_VID_CYPRESS, USB_PID_DW3101)},
+ {USB_DEVICE(0x9022, USB_PID_TEVII_S630)},
{ }
};
@@ -821,6 +954,7 @@
u8 reset16[] = {0, 0, 0, 0, 0, 0, 0};
const struct firmware *fw;
const char *filename = "dvb-usb-dw2101.fw";
+
switch (dev->descriptor.idProduct) {
case 0x2101:
ret = request_firmware(&fw, filename, &dev->dev);
@@ -1068,6 +1202,48 @@
}
};
+static struct dvb_usb_device_properties s630_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .firmware = "dvb-usb-s630.fw",
+ .no_reconnect = 1,
+
+ .i2c_algo = &s630_i2c_algo,
+ .rc_key_map = tevii_rc_keys,
+ .rc_key_map_size = ARRAY_SIZE(tevii_rc_keys),
+ .rc_interval = 150,
+ .rc_query = dw2102_rc_query,
+
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s630_read_mac_address,
+ .adapter = {
+ {
+ .frontend_attach = s630_frontend_attach,
+ .streaming_ctrl = NULL,
+ .tuner_attach = s630_zl10039_tuner_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"TeVii S630 USB",
+ {&dw2102_table[6], NULL},
+ {NULL},
+ },
+ }
+};
+
static int dw2102_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
@@ -1076,6 +1252,8 @@
0 == dvb_usb_device_init(intf, &dw2104_properties,
THIS_MODULE, NULL, adapter_nr) ||
0 == dvb_usb_device_init(intf, &dw3101_properties,
+ THIS_MODULE, NULL, adapter_nr) ||
+ 0 == dvb_usb_device_init(intf, &s630_properties,
THIS_MODULE, NULL, adapter_nr)) {
return 0;
}
@@ -1109,6 +1287,6 @@
MODULE_AUTHOR("Igor M. Liplianin (c) liplianin@me.by");
MODULE_DESCRIPTION("Driver for DVBWorld DVB-S 2101, 2102, DVB-S2 2104,"
" DVB-C 3101 USB2.0,"
- " TeVii S600, S650 USB2.0 devices");
+ " TeVii S600, S630, S650 USB2.0 devices");
MODULE_VERSION("0.1");
MODULE_LICENSE("GPL");
[-- Attachment #4: 12096.patch --]
[-- Type: text/x-diff, Size: 6899 bytes --]
# HG changeset patch
# User Igor M. Liplianin <liplianin@me.by>
# Date 1245503232 -10800
# Node ID 160a27343cbadd8db4dcb6e9f6cd095635c402fb
# Parent 54a5eca28b5dd2607774d1bc883ffda9f69463e6
Add support for Compro VideoMate S350 DVB-S PCI card.
From: Igor M. Liplianin <liplianin@me.by>
Add Compro VideoMate S350 DVB-S driver.
The card uses zl10313, zl10039, saa7130 integrated circuits.
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
diff -r 54a5eca28b5d -r 160a27343cba linux/drivers/media/common/ir-keymaps.c
--- a/linux/drivers/media/common/ir-keymaps.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/common/ir-keymaps.c Sat Jun 20 16:07:12 2009 +0300
@@ -2800,3 +2800,51 @@
[0x1b] = KEY_B, /*recall*/
};
EXPORT_SYMBOL_GPL(ir_codes_dm1105_nec);
+
+IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE] = {
+ [0x00] = KEY_TV,
+ [0x01] = KEY_DVD,
+ [0x04] = KEY_RECORD,
+ [0x05] = KEY_VIDEO, /* TV/Video */
+ [0x07] = KEY_STOP,
+ [0x08] = KEY_PLAYPAUSE,
+ [0x0a] = KEY_REWIND,
+ [0x0f] = KEY_FASTFORWARD,
+ [0x10] = KEY_CHANNELUP,
+ [0x12] = KEY_VOLUMEUP,
+ [0x13] = KEY_CHANNELDOWN,
+ [0x14] = KEY_MUTE,
+ [0x15] = KEY_VOLUMEDOWN,
+ [0x16] = KEY_1,
+ [0x17] = KEY_2,
+ [0x18] = KEY_3,
+ [0x19] = KEY_4,
+ [0x1a] = KEY_5,
+ [0x1b] = KEY_6,
+ [0x1c] = KEY_7,
+ [0x1d] = KEY_8,
+ [0x1e] = KEY_9,
+ [0x1f] = KEY_0,
+ [0x21] = KEY_SLEEP,
+ [0x24] = KEY_ZOOM,
+ [0x25] = KEY_LAST, /* Recall */
+ [0x26] = KEY_SUBTITLE, /* CC */
+ [0x27] = KEY_LANGUAGE, /* MTS */
+ [0x29] = KEY_CHANNEL, /* SURF */
+ [0x2b] = KEY_A,
+ [0x2c] = KEY_B,
+ [0x2f] = KEY_SHUFFLE, /* Snapshot */
+ [0x23] = KEY_RADIO,
+ [0x02] = KEY_PREVIOUSSONG,
+ [0x06] = KEY_NEXTSONG,
+ [0x03] = KEY_EPG,
+ [0x09] = KEY_SETUP,
+ [0x22] = KEY_BACKSPACE,
+ [0x0c] = KEY_UP,
+ [0x0e] = KEY_DOWN,
+ [0x0b] = KEY_LEFT,
+ [0x0d] = KEY_RIGHT,
+ [0x11] = KEY_ENTER,
+ [0x20] = KEY_TEXT,
+};
+EXPORT_SYMBOL_GPL(ir_codes_videomate_s350);
diff -r 54a5eca28b5d -r 160a27343cba linux/drivers/media/video/saa7134/Kconfig
--- a/linux/drivers/media/video/saa7134/Kconfig Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/Kconfig Sat Jun 20 16:07:12 2009 +0300
@@ -47,6 +47,7 @@
select DVB_TDA10048 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
+ select DVB_ZL10039 if !DVB_FE_CUSTOMISE
---help---
This adds support for DVB cards based on the
Philips saa7134 chip.
diff -r 54a5eca28b5d -r 160a27343cba linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Jun 20 16:07:12 2009 +0300
@@ -5155,6 +5155,25 @@
.gpio = 0x00,
},
},
+ [SAA7134_BOARD_VIDEOMATE_S350] = {
+ /* Jan D. Louw <jd.louw@mweb.co.za */
+ .name = "Compro VideoMate S350/S300",
+ .audio_clock = 0x00187de7,
+ .tuner_type = TUNER_ABSENT,
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
+ .mpeg = SAA7134_MPEG_DVB,
+ .inputs = { {
+ .name = name_comp1,
+ .vmux = 0,
+ .amux = LINE1,
+ }, {
+ .name = name_svideo,
+ .vmux = 8, /* Not tested */
+ .amux = LINE1
+ } },
+ },
};
const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -6262,7 +6281,12 @@
.subvendor = 0x1461, /* Avermedia Technologies Inc */
.subdevice = 0xf31d,
.driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
-
+ }, {
+ .vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
+ .subvendor = 0x185b,
+ .subdevice = 0xc900,
+ .driver_data = SAA7134_BOARD_VIDEOMATE_S350,
}, {
/* --- boards without eeprom + subsystem ID --- */
.vendor = PCI_VENDOR_ID_PHILIPS,
@@ -6776,6 +6800,11 @@
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
break;
+ case SAA7134_BOARD_VIDEOMATE_S350:
+ dev->has_remote = SAA7134_REMOTE_GPIO;
+ saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00008000, 0x00008000);
+ saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
+ break;
}
return 0;
}
diff -r 54a5eca28b5d -r 160a27343cba linux/drivers/media/video/saa7134/saa7134-dvb.c
--- a/linux/drivers/media/video/saa7134/saa7134-dvb.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c Sat Jun 20 16:07:12 2009 +0300
@@ -56,6 +56,7 @@
#include "zl10353.h"
#include "zl10036.h"
+#include "zl10039.h"
#include "mt312.h"
MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
@@ -968,6 +969,10 @@
.tuner_address = 0x60,
};
+static struct mt312_config zl10313_compro_s350_config = {
+ .demod_address = 0x0e,
+};
+
static struct lgdt3305_config hcw_lgdt3305_config = {
.i2c_addr = 0x0e,
.mpeg_mode = LGDT3305_MPEG_SERIAL,
@@ -1477,6 +1482,16 @@
}
}
break;
+ case SAA7134_BOARD_VIDEOMATE_S350:
+ fe0->dvb.frontend = dvb_attach(mt312_attach,
+ &zl10313_compro_s350_config, &dev->i2c_adap);
+ if (fe0->dvb.frontend)
+ if (dvb_attach(zl10039_attach, fe0->dvb.frontend,
+ 0x60, &dev->i2c_adap) == NULL)
+ wprintk("%s: No zl10039 found!\n",
+ __func__);
+
+ break;
default:
wprintk("Huh? unknown DVB card?\n");
break;
diff -r 54a5eca28b5d -r 160a27343cba linux/drivers/media/video/saa7134/saa7134-input.c
--- a/linux/drivers/media/video/saa7134/saa7134-input.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c Sat Jun 20 16:07:12 2009 +0300
@@ -646,6 +646,11 @@
mask_keycode = 0x7f;
polling = 40; /* ms */
break;
+ case SAA7134_BOARD_VIDEOMATE_S350:
+ ir_codes = ir_codes_videomate_s350;
+ mask_keycode = 0x003f00;
+ mask_keydown = 0x040000;
+ break;
}
if (NULL == ir_codes) {
printk("%s: Oops: IR config error [card=%d]\n",
diff -r 54a5eca28b5d -r 160a27343cba linux/drivers/media/video/saa7134/saa7134.h
--- a/linux/drivers/media/video/saa7134/saa7134.h Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134.h Sat Jun 20 16:07:12 2009 +0300
@@ -293,6 +293,7 @@
#define SAA7134_BOARD_BEHOLD_607RDS_MK5 166
#define SAA7134_BOARD_BEHOLD_609RDS_MK3 167
#define SAA7134_BOARD_BEHOLD_609RDS_MK5 168
+#define SAA7134_BOARD_VIDEOMATE_S350 169
#define SAA7134_MAXBOARDS 32
#define SAA7134_INPUT_MAX 8
diff -r 54a5eca28b5d -r 160a27343cba linux/include/media/ir-common.h
--- a/linux/include/media/ir-common.h Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/include/media/ir-common.h Sat Jun 20 16:07:12 2009 +0300
@@ -162,6 +162,7 @@
extern IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE];
#endif
/*
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350
2009-06-20 13:33 ` Igor M. Liplianin
@ 2009-06-23 12:18 ` O&M Ugarcina
2009-06-23 15:04 ` Igor M. Liplianin
0 siblings, 1 reply; 9+ messages in thread
From: O&M Ugarcina @ 2009-06-23 12:18 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Jan D. Louw
Thanks for that Igor,
I have just pulled the latest hg and tried to apply patches . Patches
12094 and 12095 went in with no problem . However patch 12096 failed
with this output :
[root@localhost v4l-dvb]# patch -p1 < 12096.patch
patching file linux/drivers/media/common/ir-keymaps.c
Hunk #1 FAILED at 2800.
1 out of 1 hunk FAILED -- saving rejects to file
linux/drivers/media/common/ir-keymaps.c.rej
patching file linux/drivers/media/video/saa7134/Kconfig
patching file linux/drivers/media/video/saa7134/saa7134-cards.c
patching file linux/drivers/media/video/saa7134/saa7134-dvb.c
patching file linux/drivers/media/video/saa7134/saa7134-input.c
patching file linux/drivers/media/video/saa7134/saa7134.h
patching file linux/include/media/ir-common.h
Hunk #1 FAILED at 162.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/media/ir-common.h.rej
[root@localhost v4l-dvb]#
I will attach the rej files to the email .
[root@localhost v4l-dvb]# cat linux/drivers/media/common/ir-keymaps.c.rej
***************
*** 2800,2802 ****
[0x1b] = KEY_B, /*recall*/
};
EXPORT_SYMBOL_GPL(ir_codes_dm1105_nec);
--- 2800,2850 ----
[0x1b] = KEY_B, /*recall*/
};
EXPORT_SYMBOL_GPL(ir_codes_dm1105_nec);
+
+ IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE] = {
+ [0x00] = KEY_TV,
+ [0x01] = KEY_DVD,
+ [0x04] = KEY_RECORD,
+ [0x05] = KEY_VIDEO, /* TV/Video */
+ [0x07] = KEY_STOP,
+ [0x08] = KEY_PLAYPAUSE,
+ [0x0a] = KEY_REWIND,
+ [0x0f] = KEY_FASTFORWARD,
+ [0x10] = KEY_CHANNELUP,
+ [0x12] = KEY_VOLUMEUP,
+ [0x13] = KEY_CHANNELDOWN,
+ [0x14] = KEY_MUTE,
+ [0x15] = KEY_VOLUMEDOWN,
+ [0x16] = KEY_1,
+ [0x17] = KEY_2,
+ [0x18] = KEY_3,
+ [0x19] = KEY_4,
+ [0x1a] = KEY_5,
+ [0x1b] = KEY_6,
+ [0x1c] = KEY_7,
+ [0x1d] = KEY_8,
+ [0x1e] = KEY_9,
+ [0x1f] = KEY_0,
+ [0x21] = KEY_SLEEP,
+ [0x24] = KEY_ZOOM,
+ [0x25] = KEY_LAST, /* Recall */
+ [0x26] = KEY_SUBTITLE, /* CC */
+ [0x27] = KEY_LANGUAGE, /* MTS */
+ [0x29] = KEY_CHANNEL, /* SURF */
+ [0x2b] = KEY_A,
+ [0x2c] = KEY_B,
+ [0x2f] = KEY_SHUFFLE, /* Snapshot */
+ [0x23] = KEY_RADIO,
+ [0x02] = KEY_PREVIOUSSONG,
+ [0x06] = KEY_NEXTSONG,
+ [0x03] = KEY_EPG,
+ [0x09] = KEY_SETUP,
+ [0x22] = KEY_BACKSPACE,
+ [0x0c] = KEY_UP,
+ [0x0e] = KEY_DOWN,
+ [0x0b] = KEY_LEFT,
+ [0x0d] = KEY_RIGHT,
+ [0x11] = KEY_ENTER,
+ [0x20] = KEY_TEXT,
+ };
+ EXPORT_SYMBOL_GPL(ir_codes_videomate_s350);
[root@localhost v4l-dvb]# cat linux/include/media/ir-common.h.rej
***************
*** 162,167 ****
extern IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
#endif
/*
--- 162,168 ----
extern IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
+ extern IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE];
#endif
/*
[root@localhost v4l-dvb]#
Best Regards
Milorad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350
2009-06-23 12:18 ` O&M Ugarcina
@ 2009-06-23 15:04 ` Igor M. Liplianin
2009-06-24 10:10 ` O&M Ugarcina
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Igor M. Liplianin @ 2009-06-23 15:04 UTC (permalink / raw)
To: mo.ucina; +Cc: linux-media, Jan D. Louw
[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]
On 23 June 2009 15:18:38 O&M Ugarcina wrote:
> Thanks for that Igor,
>
> I have just pulled the latest hg and tried to apply patches . Patches
> 12094 and 12095 went in with no problem . However patch 12096 failed
> with this output :
>
> [root@localhost v4l-dvb]# patch -p1 < 12096.patch
> patching file linux/drivers/media/common/ir-keymaps.c
> Hunk #1 FAILED at 2800.
> 1 out of 1 hunk FAILED -- saving rejects to file
> linux/drivers/media/common/ir-keymaps.c.rej
> patching file linux/drivers/media/video/saa7134/Kconfig
> patching file linux/drivers/media/video/saa7134/saa7134-cards.c
> patching file linux/drivers/media/video/saa7134/saa7134-dvb.c
> patching file linux/drivers/media/video/saa7134/saa7134-input.c
> patching file linux/drivers/media/video/saa7134/saa7134.h
> patching file linux/include/media/ir-common.h
> Hunk #1 FAILED at 162.
> 1 out of 1 hunk FAILED -- saving rejects to file
> linux/include/media/ir-common.h.rej
> [root@localhost v4l-dvb]#
>
I recreate last patch just now.
Igor
[-- Attachment #2: 12135.patch --]
[-- Type: text/x-diff, Size: 6883 bytes --]
# HG changeset patch
# User Igor M. Liplianin <liplianin@me.by>
# Date 1245768974 -10800
# Node ID 170087b85e38857ab2ce629777ce4adb548c42b6
# Parent ae94525150167d61862a860b92a03dcb0f1c584b
Add support for Compro VideoMate S350 DVB-S PCI card.
From: Igor M. Liplianin <liplianin@me.by>
Add Compro VideoMate S350 DVB-S driver.
The card uses zl10313, zl10039, saa7130 integrated circuits.
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
diff -r ae9452515016 -r 170087b85e38 linux/drivers/media/common/ir-keymaps.c
--- a/linux/drivers/media/common/ir-keymaps.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/common/ir-keymaps.c Tue Jun 23 17:56:14 2009 +0300
@@ -2823,3 +2823,51 @@
[0x13] = KEY_CAMERA,
};
EXPORT_SYMBOL_GPL(ir_codes_evga_indtube);
+
+IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE] = {
+ [0x00] = KEY_TV,
+ [0x01] = KEY_DVD,
+ [0x04] = KEY_RECORD,
+ [0x05] = KEY_VIDEO, /* TV/Video */
+ [0x07] = KEY_STOP,
+ [0x08] = KEY_PLAYPAUSE,
+ [0x0a] = KEY_REWIND,
+ [0x0f] = KEY_FASTFORWARD,
+ [0x10] = KEY_CHANNELUP,
+ [0x12] = KEY_VOLUMEUP,
+ [0x13] = KEY_CHANNELDOWN,
+ [0x14] = KEY_MUTE,
+ [0x15] = KEY_VOLUMEDOWN,
+ [0x16] = KEY_1,
+ [0x17] = KEY_2,
+ [0x18] = KEY_3,
+ [0x19] = KEY_4,
+ [0x1a] = KEY_5,
+ [0x1b] = KEY_6,
+ [0x1c] = KEY_7,
+ [0x1d] = KEY_8,
+ [0x1e] = KEY_9,
+ [0x1f] = KEY_0,
+ [0x21] = KEY_SLEEP,
+ [0x24] = KEY_ZOOM,
+ [0x25] = KEY_LAST, /* Recall */
+ [0x26] = KEY_SUBTITLE, /* CC */
+ [0x27] = KEY_LANGUAGE, /* MTS */
+ [0x29] = KEY_CHANNEL, /* SURF */
+ [0x2b] = KEY_A,
+ [0x2c] = KEY_B,
+ [0x2f] = KEY_SHUFFLE, /* Snapshot */
+ [0x23] = KEY_RADIO,
+ [0x02] = KEY_PREVIOUSSONG,
+ [0x06] = KEY_NEXTSONG,
+ [0x03] = KEY_EPG,
+ [0x09] = KEY_SETUP,
+ [0x22] = KEY_BACKSPACE,
+ [0x0c] = KEY_UP,
+ [0x0e] = KEY_DOWN,
+ [0x0b] = KEY_LEFT,
+ [0x0d] = KEY_RIGHT,
+ [0x11] = KEY_ENTER,
+ [0x20] = KEY_TEXT,
+};
+EXPORT_SYMBOL_GPL(ir_codes_videomate_s350);
diff -r ae9452515016 -r 170087b85e38 linux/drivers/media/video/saa7134/Kconfig
--- a/linux/drivers/media/video/saa7134/Kconfig Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/Kconfig Tue Jun 23 17:56:14 2009 +0300
@@ -47,6 +47,7 @@
select DVB_TDA10048 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
+ select DVB_ZL10039 if !DVB_FE_CUSTOMISE
---help---
This adds support for DVB cards based on the
Philips saa7134 chip.
diff -r ae9452515016 -r 170087b85e38 linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Tue Jun 23 17:56:14 2009 +0300
@@ -5155,6 +5155,25 @@
.gpio = 0x00,
},
},
+ [SAA7134_BOARD_VIDEOMATE_S350] = {
+ /* Jan D. Louw <jd.louw@mweb.co.za */
+ .name = "Compro VideoMate S350/S300",
+ .audio_clock = 0x00187de7,
+ .tuner_type = TUNER_ABSENT,
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
+ .mpeg = SAA7134_MPEG_DVB,
+ .inputs = { {
+ .name = name_comp1,
+ .vmux = 0,
+ .amux = LINE1,
+ }, {
+ .name = name_svideo,
+ .vmux = 8, /* Not tested */
+ .amux = LINE1
+ } },
+ },
};
const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -6262,7 +6281,12 @@
.subvendor = 0x1461, /* Avermedia Technologies Inc */
.subdevice = 0xf31d,
.driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
-
+ }, {
+ .vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
+ .subvendor = 0x185b,
+ .subdevice = 0xc900,
+ .driver_data = SAA7134_BOARD_VIDEOMATE_S350,
}, {
/* --- boards without eeprom + subsystem ID --- */
.vendor = PCI_VENDOR_ID_PHILIPS,
@@ -6776,6 +6800,11 @@
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
break;
+ case SAA7134_BOARD_VIDEOMATE_S350:
+ dev->has_remote = SAA7134_REMOTE_GPIO;
+ saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00008000, 0x00008000);
+ saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
+ break;
}
return 0;
}
diff -r ae9452515016 -r 170087b85e38 linux/drivers/media/video/saa7134/saa7134-dvb.c
--- a/linux/drivers/media/video/saa7134/saa7134-dvb.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c Tue Jun 23 17:56:14 2009 +0300
@@ -56,6 +56,7 @@
#include "zl10353.h"
#include "zl10036.h"
+#include "zl10039.h"
#include "mt312.h"
MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
@@ -968,6 +969,10 @@
.tuner_address = 0x60,
};
+static struct mt312_config zl10313_compro_s350_config = {
+ .demod_address = 0x0e,
+};
+
static struct lgdt3305_config hcw_lgdt3305_config = {
.i2c_addr = 0x0e,
.mpeg_mode = LGDT3305_MPEG_SERIAL,
@@ -1477,6 +1482,16 @@
}
}
break;
+ case SAA7134_BOARD_VIDEOMATE_S350:
+ fe0->dvb.frontend = dvb_attach(mt312_attach,
+ &zl10313_compro_s350_config, &dev->i2c_adap);
+ if (fe0->dvb.frontend)
+ if (dvb_attach(zl10039_attach, fe0->dvb.frontend,
+ 0x60, &dev->i2c_adap) == NULL)
+ wprintk("%s: No zl10039 found!\n",
+ __func__);
+
+ break;
default:
wprintk("Huh? unknown DVB card?\n");
break;
diff -r ae9452515016 -r 170087b85e38 linux/drivers/media/video/saa7134/saa7134-input.c
--- a/linux/drivers/media/video/saa7134/saa7134-input.c Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c Tue Jun 23 17:56:14 2009 +0300
@@ -646,6 +646,11 @@
mask_keycode = 0x7f;
polling = 40; /* ms */
break;
+ case SAA7134_BOARD_VIDEOMATE_S350:
+ ir_codes = ir_codes_videomate_s350;
+ mask_keycode = 0x003f00;
+ mask_keydown = 0x040000;
+ break;
}
if (NULL == ir_codes) {
printk("%s: Oops: IR config error [card=%d]\n",
diff -r ae9452515016 -r 170087b85e38 linux/drivers/media/video/saa7134/saa7134.h
--- a/linux/drivers/media/video/saa7134/saa7134.h Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/drivers/media/video/saa7134/saa7134.h Tue Jun 23 17:56:14 2009 +0300
@@ -293,6 +293,7 @@
#define SAA7134_BOARD_BEHOLD_607RDS_MK5 166
#define SAA7134_BOARD_BEHOLD_609RDS_MK3 167
#define SAA7134_BOARD_BEHOLD_609RDS_MK5 168
+#define SAA7134_BOARD_VIDEOMATE_S350 169
#define SAA7134_MAXBOARDS 32
#define SAA7134_INPUT_MAX 8
diff -r ae9452515016 -r 170087b85e38 linux/include/media/ir-common.h
--- a/linux/include/media/ir-common.h Sat Jun 20 15:54:18 2009 +0300
+++ b/linux/include/media/ir-common.h Tue Jun 23 17:56:14 2009 +0300
@@ -163,6 +163,7 @@
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE];
#endif
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350
2009-06-23 15:04 ` Igor M. Liplianin
@ 2009-06-24 10:10 ` O&M Ugarcina
2009-06-27 9:09 ` [linux-dvb] Support for Compro VideoMate S350 - Testing Results O&M Ugarcina
2009-08-13 18:17 ` [linux-dvb] Support for Compro VideoMate S350 Mauro Carvalho Chehab
2 siblings, 0 replies; 9+ messages in thread
From: O&M Ugarcina @ 2009-06-24 10:10 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Jan D. Louw
Thanks Igor,
I have tried the second version of the 12096 patch and it applied
perfectly . Also I ran a make on the dvb drivers , and they all compiled
without error . So everything is good now . Next step is to install the
drivers and the Compro S350 card into the PC . One question please , I
only need these new drivers to get the S350 working , so which .ko's do
I need to install ? I am quite happy to have the other stuff such as
webcams ...etc. from the kernel .
Best Regards
Milorad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350 - Testing Results
2009-06-23 15:04 ` Igor M. Liplianin
2009-06-24 10:10 ` O&M Ugarcina
@ 2009-06-27 9:09 ` O&M Ugarcina
2009-06-27 11:48 ` Igor M. Liplianin
2009-08-13 18:17 ` [linux-dvb] Support for Compro VideoMate S350 Mauro Carvalho Chehab
2 siblings, 1 reply; 9+ messages in thread
From: O&M Ugarcina @ 2009-06-27 9:09 UTC (permalink / raw)
To: Igor M. Liplianin, linux-media; +Cc: Jan D. Louw
Hello Igor ,
I want to thank you for making those patches available . I have been
able to patch the latest HG pull and to compile and install the drivers
. I decided to install the whole lot as it was a bit hard to workout
just the ko's responsible for the S350 . After installing the card I
have this from dmesg :
saa7130/34: v4l2 driver version 0.2.15 loaded
saa7134 0000:04:01.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
saa7130[0]: found at 0000:04:01.0, rev: 1, irq: 22, latency: 64, mmio:
0xfeaffc00
saa7130[0]: subsystem: 185b:c900, board: Compro VideoMate S350/S300
[card=169,autodetected]
saa7130[0]: board init: gpio is 843f00
input: saa7134 IR (Compro VideoMate S3 as
/devices/pci0000:00/0000:00:1e.0/0000:04:01.0/input/input5
iTCO_vendor_support: vendor-support=0
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.03 (30-Apr-2008)
iTCO_wdt: Found a ICH8 or ICH8R TCO device (Version=2, TCOBASE=0x0860)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
parport_pc 00:0b: reported by Plug and Play ACPI
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE,EPP]
saa7130[0]: i2c eeprom 00: 5b 18 00 c9 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7130[0]: i2c eeprom 10: 00 ff 86 0f ff 20 ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 20: 01 40 01 02 02 01 03 01 08 ff 00 87 ff ff ff ff
saa7130[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 40: ff d6 00 c0 86 1c 02 01 02 ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff cb
saa7130[0]: i2c eeprom 60: 30 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 70: 00 00 00 10 03 9c ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: registered device video0 [v4l2]
saa7130[0]: registered device vbi0
i801_smbus 0000:00:1f.3: enabling device (0001 -> 0003)
i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
ACPI: I/O resource 0000:00:1f.3 [0x400-0x41f] conflicts with ACPI region
SMRG [0x400-0x40f]
ACPI: Device needs an ACPI driver
ppdev: user-space parallel port driver
dvb_init() allocating 1 frontend
HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
HDA Intel 0000:00:1b.0: setting latency timer to 64
cx88/0: cx2388x v4l2 driver version 0.0.7 loaded
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.7 loaded
DVB: registering new adapter (saa7130[0])
DVB: registering adapter 0 frontend 0 (Zarlink ZL10313 DVB-S).
I was able to tune into my favourite satellite with mythtv with no
problems . I also was able to tune to another satellite using the mythtv
configuration for 4 way diseqc . So 4 way diseqc works fine for me .
Picture is satble and very good , sound also is ok . I will just run it
now to see how the system stability is over a longer period of time .
One small issue I have noticed : and that is in mythtv the signal
strength indicator shows very low with S350 now . Before I was getting
with TT1500S around 79 to 89% while now with S350 I see about 18% for
the same channel .
Best Regards
Milorad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350 - Testing Results
2009-06-27 9:09 ` [linux-dvb] Support for Compro VideoMate S350 - Testing Results O&M Ugarcina
@ 2009-06-27 11:48 ` Igor M. Liplianin
0 siblings, 0 replies; 9+ messages in thread
From: Igor M. Liplianin @ 2009-06-27 11:48 UTC (permalink / raw)
To: mo.ucina; +Cc: linux-media, Jan D. Louw
On 27 June 2009 12:09:20 O&M Ugarcina wrote:
> Hello Igor ,
>
> I want to thank you for making those patches available . I have been
> able to patch the latest HG pull and to compile and install the drivers
> . I decided to install the whole lot as it was a bit hard to workout
> just the ko's responsible for the S350 . After installing the card I
> have this from dmesg :
>
> saa7130/34: v4l2 driver version 0.2.15 loaded
> saa7134 0000:04:01.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> saa7130[0]: found at 0000:04:01.0, rev: 1, irq: 22, latency: 64, mmio:
> 0xfeaffc00
> saa7130[0]: subsystem: 185b:c900, board: Compro VideoMate S350/S300
> [card=169,autodetected]
> saa7130[0]: board init: gpio is 843f00
> input: saa7134 IR (Compro VideoMate S3 as
> /devices/pci0000:00/0000:00:1e.0/0000:04:01.0/input/input5
> iTCO_vendor_support: vendor-support=0
> iTCO_wdt: Intel TCO WatchDog Timer Driver v1.03 (30-Apr-2008)
> iTCO_wdt: Found a ICH8 or ICH8R TCO device (Version=2, TCOBASE=0x0860)
> iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
> parport_pc 00:0b: reported by Plug and Play ACPI
> parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE,EPP]
> saa7130[0]: i2c eeprom 00: 5b 18 00 c9 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
> saa7130[0]: i2c eeprom 10: 00 ff 86 0f ff 20 ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom 20: 01 40 01 02 02 01 03 01 08 ff 00 87 ff ff ff ff
> saa7130[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom 40: ff d6 00 c0 86 1c 02 01 02 ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff cb
> saa7130[0]: i2c eeprom 60: 30 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom 70: 00 00 00 10 03 9c ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7130[0]: registered device video0 [v4l2]
> saa7130[0]: registered device vbi0
> i801_smbus 0000:00:1f.3: enabling device (0001 -> 0003)
> i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
> ACPI: I/O resource 0000:00:1f.3 [0x400-0x41f] conflicts with ACPI region
> SMRG [0x400-0x40f]
> ACPI: Device needs an ACPI driver
> ppdev: user-space parallel port driver
> dvb_init() allocating 1 frontend
> HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> HDA Intel 0000:00:1b.0: setting latency timer to 64
> cx88/0: cx2388x v4l2 driver version 0.0.7 loaded
> cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.7 loaded
> DVB: registering new adapter (saa7130[0])
> DVB: registering adapter 0 frontend 0 (Zarlink ZL10313 DVB-S).
>
>
> I was able to tune into my favourite satellite with mythtv with no
> problems . I also was able to tune to another satellite using the mythtv
> configuration for 4 way diseqc . So 4 way diseqc works fine for me .
> Picture is satble and very good , sound also is ok . I will just run it
> now to see how the system stability is over a longer period of time .
>
> One small issue I have noticed : and that is in mythtv the signal
> strength indicator shows very low with S350 now . Before I was getting
> with TT1500S around 79 to 89% while now with S350 I see about 18% for
> the same channel .
It is not about more or less sensitivity, it is about how to represent :(
I have positive reports about Compro S350 in russian also.
http://forum.free-x.de/wbb/index.php?page=Thread&threadID=474
I will try to push :)
>
> Best Regards
>
> Milorad
Best Regards
Igor
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [linux-dvb] Support for Compro VideoMate S350
2009-06-23 15:04 ` Igor M. Liplianin
2009-06-24 10:10 ` O&M Ugarcina
2009-06-27 9:09 ` [linux-dvb] Support for Compro VideoMate S350 - Testing Results O&M Ugarcina
@ 2009-08-13 18:17 ` Mauro Carvalho Chehab
2 siblings, 0 replies; 9+ messages in thread
From: Mauro Carvalho Chehab @ 2009-08-13 18:17 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: mo.ucina, linux-media, Jan D. Louw
Em Tue, 23 Jun 2009 18:04:28 +0300
"Igor M. Liplianin" <liplianin@me.by> escreveu:
> On 23 June 2009 15:18:38 O&M Ugarcina wrote:
> > Thanks for that Igor,
> >
> > I have just pulled the latest hg and tried to apply patches . Patches
> > 12094 and 12095 went in with no problem . However patch 12096 failed
> > with this output :
> >
> > [root@localhost v4l-dvb]# patch -p1 < 12096.patch
> > patching file linux/drivers/media/common/ir-keymaps.c
> > Hunk #1 FAILED at 2800.
> > 1 out of 1 hunk FAILED -- saving rejects to file
> > linux/drivers/media/common/ir-keymaps.c.rej
> > patching file linux/drivers/media/video/saa7134/Kconfig
> > patching file linux/drivers/media/video/saa7134/saa7134-cards.c
> > patching file linux/drivers/media/video/saa7134/saa7134-dvb.c
> > patching file linux/drivers/media/video/saa7134/saa7134-input.c
> > patching file linux/drivers/media/video/saa7134/saa7134.h
> > patching file linux/include/media/ir-common.h
> > Hunk #1 FAILED at 162.
> > 1 out of 1 hunk FAILED -- saving rejects to file
> > linux/include/media/ir-common.h.rej
> > [root@localhost v4l-dvb]#
> >
>
> I recreate last patch just now.
Igor,
As this patch seems to depend on a new demod not yet merged, I'll assume that
this patch is an RFC. Please send me a pull request when you have it ready for
upstream.
Cheers,
Mauro
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-08-13 18:17 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-25 14:03 [linux-dvb] Support for Compro VideoMate S350 optitron optitronov
2009-06-20 1:45 ` O&M Ugarcina
2009-06-20 13:33 ` Igor M. Liplianin
2009-06-23 12:18 ` O&M Ugarcina
2009-06-23 15:04 ` Igor M. Liplianin
2009-06-24 10:10 ` O&M Ugarcina
2009-06-27 9:09 ` [linux-dvb] Support for Compro VideoMate S350 - Testing Results O&M Ugarcina
2009-06-27 11:48 ` Igor M. Liplianin
2009-08-13 18:17 ` [linux-dvb] Support for Compro VideoMate S350 Mauro Carvalho Chehab
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.