* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox