From: Alexey Chernov <4ernov@gmail.com>
To: linux-media@vger.kernel.org
Cc: stoth@kernellabs.com
Subject: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885
Date: Sun, 21 Nov 2010 02:51:36 +0300 [thread overview]
Message-ID: <201011210251.36592.4ernov@gmail.com> (raw)
Hello,
I've added support of GoTView PCI-E X5 3D Hybrid to cx23885 module (thanks to
help of Gotview support team). Some details:
1. Everything initialize properly except radio.
2. All analog inputs (TV, composite, S-Video) are tested by myself in several
TV norms (SECAM-D, PAL, NTSC), everything work fine. DVB isn't tested properly
due to absense of DVB signal.
So the patch adds general support/detection of the card with working analog
part and hopefully working (untested) DVB part. I hope it will be useful.
Signed-off-by: Alexey Chernov <4ernov@gmail.com>
diff -uprB v4l-dvb.orig/drivers/media/video/cx23885/cx23885-cards.c v4l-
dvb/drivers/media/video/cx23885/cx23885-cards.c
--- v4l-dvb.orig/drivers/media/video/cx23885/cx23885-cards.c 2010-11-20
22:24:11.000000000 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-11-21
02:09:54.000000000 +0300
@@ -309,6 +309,24 @@ struct cx23885_board cx23885_boards[] =
CX25840_COMPONENT_ON,
} },
},
+ [CX23885_BOARD_GOTVIEW_X5_3D_HYBRID] = {
+ .name = "GoTView X5 3D Hybrid",
+ .tuner_type = TUNER_XC5000,
+ .tuner_addr = 0x64,
+ .porta = CX23885_ANALOG_VIDEO,
+ .portb = CX23885_MPEG_DVB,
+ .input = {{
+ .type = CX23885_VMUX_TELEVISION,
+ .vmux = CX25840_VIN2_CH1 | CX25840_VIN5_CH2,
+ .gpio0 = 0x02,
+ }, {
+ .type = CX23885_VMUX_COMPOSITE1,
+ .vmux = CX23885_VMUX_COMPOSITE1,
+ }, {
+ .type = CX23885_VMUX_SVIDEO,
+ .vmux = CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4,
+ } },
+ },
};
const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
@@ -496,6 +514,10 @@ struct cx23885_subid cx23885_subids[] =
.subvendor = 0x107d,
.subdevice = 0x6f22,
.card = CX23885_BOARD_LEADTEK_WINFAST_PXTV1200,
+ }, {
+ .subvendor = 0x5654,
+ .subdevice = 0x2390,
+ .card = CX23885_BOARD_GOTVIEW_X5_3D_HYBRID,
},
};
const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -712,6 +734,10 @@ int cx23885_tuner_callback(void *priv, i
else if (port->nr == 2)
bitmask = 0x04;
break;
+ case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
+ /* Tuner Reset Command */
+ bitmask = 0x02;
+ break;
}
if (bitmask) {
@@ -1218,6 +1244,7 @@ void cx23885_card_setup(struct cx23885_d
case CX23885_BOARD_HAUPPAUGE_HVR1850:
case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
case CX23885_BOARD_HAUPPAUGE_HVR1290:
+ case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
default:
ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
@@ -1245,6 +1272,7 @@ void cx23885_card_setup(struct cx23885_d
case CX23885_BOARD_MAGICPRO_PROHDTVE2:
case CX23885_BOARD_HAUPPAUGE_HVR1290:
case CX23885_BOARD_LEADTEK_WINFAST_PXTV1200:
+ case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
&dev->i2c_bus[2].i2c_adap,
NULL, "cx25840", 0x88 >> 1, NULL);
Только в v4l-dvb/drivers/media/video/cx23885: cx23885-cards.c~
diff -uprB v4l-dvb.orig/drivers/media/video/cx23885/cx23885-dvb.c v4l-
dvb/drivers/media/video/cx23885/cx23885-dvb.c
--- v4l-dvb.orig/drivers/media/video/cx23885/cx23885-dvb.c 2010-11-20
22:24:11.000000000 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-dvb.c 2010-11-21
02:09:54.000000000 +0300
@@ -460,6 +460,10 @@ static struct xc5000_config mygica_x8506
.if_khz = 5380,
};
+static struct zl10353_config gotview_x5_3d_hybrid_zl10353_config = {
+ .demod_address = 0x0F,
+};
+
static int cx23885_dvb_set_frontend(struct dvb_frontend *fe,
struct dvb_frontend_parameters *param)
{
@@ -484,6 +488,9 @@ static int cx23885_dvb_set_frontend(stru
/* Select Digital TV */
cx23885_gpio_set(dev, GPIO_0);
break;
+ case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
+ cx23885_gpio_set(dev, GPIO_1);
+ break;
}
return 0;
}
@@ -966,6 +973,24 @@ static int dvb_register(struct cx23885_t
break;
}
break;
+ case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
+ i2c_bus = &dev->i2c_bus[port->nr - 1];
+
+ fe0->dvb.frontend = dvb_attach(zl10353_attach,
+ &gotview_x5_3d_hybrid_zl10353_config,
+ &i2c_bus->i2c_adap);
+
+ if (fe0->dvb.frontend != NULL) {
+ struct xc5000_config cfg;
+ cfg.i2c_address = 0x64;
+
+ i2c_bus = &dev->i2c_bus[port->nr];
+
+ dvb_attach(xc5000_attach, fe0->dvb.frontend,
+ &i2c_bus->i2c_adap,
+ &cfg);
+ }
+ break;
default:
printk(KERN_INFO "%s: The frontend of your DVB/ATSC card "
diff -uprB v4l-dvb.orig/drivers/media/video/cx23885/cx23885.h v4l-
dvb/drivers/media/video/cx23885/cx23885.h
--- v4l-dvb.orig/drivers/media/video/cx23885/cx23885.h 2010-11-20
22:24:11.000000000 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885.h 2010-11-21
02:09:54.000000000 +0300
@@ -84,6 +84,7 @@
#define CX23885_BOARD_HAUPPAUGE_HVR1290 26
#define CX23885_BOARD_MYGICA_X8558PRO 27
#define CX23885_BOARD_LEADTEK_WINFAST_PXTV1200 28
+#define CX23885_BOARD_GOTVIEW_X5_3D_HYBRID 29
#define GPIO_0 0x00000001
#define GPIO_1 0x00000002
next reply other threads:[~2010-11-20 23:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-20 23:51 Alexey Chernov [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-11-03 19:09 [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885 Alexey Chernov
2010-10-29 20:00 Alexey Chernov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201011210251.36592.4ernov@gmail.com \
--to=4ernov@gmail.com \
--cc=linux-media@vger.kernel.org \
--cc=stoth@kernellabs.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.