Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-07 Thread 4ernov
Could anybody confirm this updated version, please?
Thanks in advance.

2010/12/6 Alexey Chernov 4er...@gmail.com:
 Another version of my patch without DVB code.

 Some comments:
 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.

 So the patch adds general support/detection of the card with working analog
 part, DVB part is not supported for now.

 Signed-off-by: Alexey Chernov 4er...@gmail.com

 diff -upr 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-12-03 
 00:16:09.0 +0300
 +++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-12-06 
 22:25:56.0 +0300
 @@ -309,6 +309,26 @@ 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 +516,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 +736,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) {
 @@ -967,6 +995,9 @@ void cx23885_gpio_setup(struct cx23885_d
                /* CX24228 GPIO */
                /* Connected to IF / Mux */
                break;
 +       case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
 +               cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */
 +               break;
        }
  }

 @@ -1218,6 +1249,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 +1277,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);
 diff -upr 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-12-03 
 00:16:09.0 +0300
 +++ v4l-dvb/drivers/media/video/cx23885/cx23885.h       2010-12-06 
 22:27:41.0 +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 0x0001
  #define GPIO_1 0x0002



Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-07 Thread Steven Toth
On 12/6/10 3:09 PM, Alexey Chernov wrote:
 Another version of my patch without DVB code.
 
 Some comments:
 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.
 
 So the patch adds general support/detection of the card with working analog 
 part, DVB part is not supported for now.

Thank you Alexey.

 
 Signed-off-by: Alexey Chernov 4er...@gmail.com

Here's my sign-off

Reviewed-By: Steven Toth st...@kernellabs.com

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com


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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-07 Thread 4ernov
Thank you very much, Steven.
Hope to test and post updated DVB part soon.

2010/12/7 Steven Toth st...@kernellabs.com:
 On 12/6/10 3:09 PM, Alexey Chernov wrote:
 Another version of my patch without DVB code.

 Some comments:
 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.

 So the patch adds general support/detection of the card with working analog
 part, DVB part is not supported for now.

 Thank you Alexey.


 Signed-off-by: Alexey Chernov 4er...@gmail.com

 Here's my sign-off

 Reviewed-By: Steven Toth st...@kernellabs.com

 --
 Steven Toth - Kernel Labs
 http://www.kernellabs.com


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

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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-06 Thread hermann pitton
Hi guys,

Am Sonntag, den 05.12.2010, 13:22 -0500 schrieb Devin Heitmueller:
 On Sun, Dec 5, 2010 at 12:09 PM, Alexey Chernov 4er...@gmail.com wrote:
  Hello, Steve,
  thank you very much for your comments!
 
  As for DVB maybe I'm not correct. The initialization itself, which the DVB
  part of patch is about, is fully tested by me and works successfully on my
  everyday PC. The thing I meant saying 'untested' concerned receiving DVB
  signal through the initialized device.
 
  So I think I was mistaken that the code itself is untested. I hope it's
  possible to add full of this patch.
 
 Hello Alexey,
 
 What I believe Steven is trying to say is the device successfully
 initializing is not enough to consider the DVB part of the driver to
 be working.  If you have not seen the device receiving digital
 television, the DVB parts of this patch should not be committed.
 
 There are a variety of other reasons why DVB streaming would not work
 even if the device properly initializes.  These can include an
 improperly configured IF, wrong GPIOs, missing power management code,
 etc.
 
 It is far worse for a user to be led to believe the driver should be
 working but doesn't then it is for the driver claim to not work with
 DVB at all.  This is how we end up with users wasting hours wondering
 what is wrong with their MythTV setup when in fact the driver never
 actually worked in the first place.
 
 Find someone to test the DVB parts of the board that it shows DVB
 streaming.  If you cannot do that, remove those parts from the patch
 until someone can be found who is able to test the functionality.
 
 Devin
 

Devin and Steven are totally right.

There should not be any untested hardware functionality enabled.

I have spend countless time, zillions of emails, often even years after
the initial support for a new device was enabled, to hunt down what
people did really test and what was only copy/paste from a previous card
entry.

Never add untested stuff !

We agreed, years ago, that even in a case we can likely expect a
standard behavior on some new hardware, given the expertise of someone
who might have seen maybe hundreds of similar devices previously, only
#if 0 for the untested stuff is allowed.

Even if we have muxes, gpios etc, we can take from windows drivers, .inf
files or regspy.exe/DScaler for example, it is still not really safe to
enable such untested inputs and leave only a comment in the code like
untested, taken from the .inf or so.

PCI cards for example, with the same subvendor and subdevice ID, can
have never ending new revisions, changing almost everything they started
with on the first revision for _multiple_ times.

Audio and video muxes, all sort of gpio controls from all sort of chips
on the board, the AGC, the LNA type, the i2c gate, the IR support ...

All you can imagine and more really happens concerning hardware, and we
have cases where even eeprom decoding doesn't help and some unknown
vendor specific checksums come into the game.

We still are in need of full hardware documentation, down to the
smallest chip and any line on the PCB, and do miss it.

And overall this is improved by more and more hidden devices in products
with a seal stating, if broken any warranty is gone, and soldered RF
shielding over the relevant parts, hardly to remove without breaking the
device.

Never add untested stuff.

Cheers,
Hermann






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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-06 Thread 4ernov
2010/12/6 hermann pitton hermann-pit...@arcor.de:
 Hi guys,

Hello, Hermann,

 Am Sonntag, den 05.12.2010, 13:22 -0500 schrieb Devin Heitmueller:
 On Sun, Dec 5, 2010 at 12:09 PM, Alexey Chernov 4er...@gmail.com wrote:
  Hello, Steve,
  thank you very much for your comments!
 
  As for DVB maybe I'm not correct. The initialization itself, which the DVB
  part of patch is about, is fully tested by me and works successfully on my
  everyday PC. The thing I meant saying 'untested' concerned receiving DVB
  signal through the initialized device.
 
  So I think I was mistaken that the code itself is untested. I hope it's
  possible to add full of this patch.

 Hello Alexey,

 What I believe Steven is trying to say is the device successfully
 initializing is not enough to consider the DVB part of the driver to
 be working.  If you have not seen the device receiving digital
 television, the DVB parts of this patch should not be committed.

 There are a variety of other reasons why DVB streaming would not work
 even if the device properly initializes.  These can include an
 improperly configured IF, wrong GPIOs, missing power management code,
 etc.

 It is far worse for a user to be led to believe the driver should be
 working but doesn't then it is for the driver claim to not work with
 DVB at all.  This is how we end up with users wasting hours wondering
 what is wrong with their MythTV setup when in fact the driver never
 actually worked in the first place.

 Find someone to test the DVB parts of the board that it shows DVB
 streaming.  If you cannot do that, remove those parts from the patch
 until someone can be found who is able to test the functionality.

 Devin


 Devin and Steven are totally right.

 There should not be any untested hardware functionality enabled.

 I have spend countless time, zillions of emails, often even years after
 the initial support for a new device was enabled, to hunt down what
 people did really test and what was only copy/paste from a previous card
 entry.

 Never add untested stuff !

 We agreed, years ago, that even in a case we can likely expect a
 standard behavior on some new hardware, given the expertise of someone
 who might have seen maybe hundreds of similar devices previously, only
 #if 0 for the untested stuff is allowed.

 Even if we have muxes, gpios etc, we can take from windows drivers, .inf
 files or regspy.exe/DScaler for example, it is still not really safe to
 enable such untested inputs and leave only a comment in the code like
 untested, taken from the .inf or so.

 PCI cards for example, with the same subvendor and subdevice ID, can
 have never ending new revisions, changing almost everything they started
 with on the first revision for _multiple_ times.

 Audio and video muxes, all sort of gpio controls from all sort of chips
 on the board, the AGC, the LNA type, the i2c gate, the IR support ...

 All you can imagine and more really happens concerning hardware, and we
 have cases where even eeprom decoding doesn't help and some unknown
 vendor specific checksums come into the game.

 We still are in need of full hardware documentation, down to the
 smallest chip and any line on the PCB, and do miss it.

 And overall this is improved by more and more hidden devices in products
 with a seal stating, if broken any warranty is gone, and soldered RF
 shielding over the relevant parts, hardly to remove without breaking the
 device.

 Never add untested stuff.

 Cheers,
 Hermann


Thank you for this detailed information. You're right and I totally
agree with you.

My idea was just to take other people who interested in it to test
what they can. If it's impossible, no problem, I'll remove it.

Also it could be much better overall if it wouldn't take one 4-5 weeks
to add a single patch praying someone at least to answer you and when
it is finally confirmed some big critical problems suddenly appear. I
don't think the things you mention will improve much if it would stay
like this.

Updated version of patch (without DVB) will be posted this evening. I
also consulted a little bit with Gotview support team and there're
some chances to test DVB part by myself, will try to do it.

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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-06 Thread Halim Sahin
Hi,
Is there a way to add such drivers to staging branch etc to make 
testing simple?

Some times I don't understand why drivers are included with their current
design and others not.
Having extra repos like s2-liplianin is great but why were drivers there
and non merged upstream?
Popular multimedia distros are using that branch and not official driver
:-(.

Maybe some kind of decision in v4l-dvb should be adapted to fit other
requirements.
Getting useful answers to questions or problems is another example eg:
http://www.mail-archive.com/linux-media@vger.kernel.org/msg12758.html
http://www.mail-archive.com/linux-media@vger.kernel.org/msg21646.html

I asked about several problems (last 6 months) but got not one useful
answer from the lists (linux-media / v4l-dvb).
Like this:
tda8261_cfg.h:
This header-file contains more than only declarations :-(.

printk of tuned frequencies or used bandwith is maybe useful for
debuging purposes but not for stable drivers in linux kernel.
These printk's should be removed or changed to use an vebbose or debug
module parameter.
Otherwise you get your kernel log filed with useless tda messages
and big syslog files.

Sorry it's really frustrating to ask without getting any kind of
answers.

Regarding that new driver:
I agree the new code should be tested with real dvb/... hardware
before merging it upstream.



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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-06 Thread 4ernov
Hello, Halim,

2010/12/6 Halim Sahin halim.sa...@freenet.de:
 Hi,
 Is there a way to add such drivers to staging branch etc to make
 testing simple?

 Some times I don't understand why drivers are included with their current
 design and others not.
 Having extra repos like s2-liplianin is great but why were drivers there
 and non merged upstream?
 Popular multimedia distros are using that branch and not official driver
 :-(.

 Maybe some kind of decision in v4l-dvb should be adapted to fit other
 requirements.
 Getting useful answers to questions or problems is another example eg:
 http://www.mail-archive.com/linux-media@vger.kernel.org/msg12758.html
 http://www.mail-archive.com/linux-media@vger.kernel.org/msg21646.html

 I asked about several problems (last 6 months) but got not one useful
 answer from the lists (linux-media / v4l-dvb).
 Like this:
 tda8261_cfg.h:
 This header-file contains more than only declarations :-(.

 printk of tuned frequencies or used bandwith is maybe useful for
 debuging purposes but not for stable drivers in linux kernel.
 These printk's should be removed or changed to use an vebbose or debug
 module parameter.
 Otherwise you get your kernel log filed with useless tda messages
 and big syslog files.

 Sorry it's really frustrating to ask without getting any kind of
 answers.

 Regarding that new driver:
 I agree the new code should be tested with real dvb/... hardware
 before merging it upstream.


thank you for some kind of support. Yes, I decided to remove this
problem DVB block from patch for now but I'll try to test it and
finally post here, too.


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

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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-06 Thread Alexey Chernov
Another version of my patch without DVB code.

Some comments:
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.

So the patch adds general support/detection of the card with working analog 
part, DVB part is not supported for now.

Signed-off-by: Alexey Chernov 4er...@gmail.com

diff -upr 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.c2010-12-03 
00:16:09.0 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-12-06 
22:25:56.0 +0300
@@ -309,6 +309,26 @@ 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 +516,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 +736,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) {
@@ -967,6 +995,9 @@ void cx23885_gpio_setup(struct cx23885_d
/* CX24228 GPIO */
/* Connected to IF / Mux */
break;
+   case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
+   cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */
+   break;
}
 }
 
@@ -1218,6 +1249,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 +1277,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);
diff -upr 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-12-03 
00:16:09.0 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885.h   2010-12-06 
22:27:41.0 +0300
@@ -84,6 +84,7 @@
 #define CX23885_BOARD_HAUPPAUGE_HVR129026
 #define CX23885_BOARD_MYGICA_X8558PRO  27
 #define CX23885_BOARD_LEADTEK_WINFAST_PXTV1200 28
+#define CX23885_BOARD_GOTVIEW_X5_3D_HYBRID 29
 
 #define GPIO_0 0x0001
 #define GPIO_1 0x0002
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread Alexey Chernov
On Sunday 05 December 2010 17:20:05 Igor M. Liplianin wrote:
 В сообщении от 21 ноября 2010 01:51:36 автор Alexey Chernov написал:
  Hello,
 
 Hello Alexey,

Hello Igor,

thank you very much for reviewing the patch and your suggestions. I've fixed 
everything you've mentioned:

  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 4er...@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.0 +0300
  +++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-11-21
  02:09:54.0 +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.0 +0300
  +++ v4l-dvb/drivers/media/video/cx23885/cx23885-dvb.c   2010-11-21
  02:09:54.0 +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,
 
 Why is this not lower case?

Fixed it.

  +};
  +
  
   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, 

Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread Steven Toth
 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.

Excellent, another card profile. Thanks Alexey!

Hmm, we generally don't add code to the kernel that hasn't been
tested. For this reason I need to nak your patch.

Either have someone test the code and report success to this mailing
list or consider removing the untested code.

Regards,

- Steve

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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread Igor M. Liplianin
В сообщении от 5 декабря 2010 17:07:05 автор Alexey Chernov написал:
 On Sunday 05 December 2010 17:20:05 Igor M. Liplianin wrote:
  В сообщении от 21 ноября 2010 01:51:36 автор Alexey Chernov написал:
   Hello,
  
  Hello Alexey,
 
 Hello Igor,
 
 thank you very much for reviewing the patch and your suggestions. I've
 fixed
 
 everything you've mentioned:
   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 4er...@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.0 +0300
   +++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c   2010-11-21
   02:09:54.0 +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.0 +0300
   +++ v4l-dvb/drivers/media/video/cx23885/cx23885-dvb.c 2010-11-21
   02:09:54.0 +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,
  
  Why is this not lower case?
 
 Fixed it.
 
   +};
   +
   
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);
   

Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread Alexey Chernov
Hello, Steve,
thank you very much for your comments!

As for DVB maybe I'm not correct. The initialization itself, which the DVB 
part of patch is about, is fully tested by me and works successfully on my 
everyday PC. The thing I meant saying 'untested' concerned receiving DVB 
signal through the initialized device.

So I think I was mistaken that the code itself is untested. I hope it's 
possible to add full of this patch.

On Sunday 05 December 2010 18:51:13 Steven Toth wrote:
  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.
 
 Excellent, another card profile. Thanks Alexey!
 
 Hmm, we generally don't add code to the kernel that hasn't been
 tested. For this reason I need to nak your patch.
 
 Either have someone test the code and report success to this mailing
 list or consider removing the untested code.
 
 Regards,
 
 - Steve
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread Steven Toth
 So I think I was mistaken that the code itself is untested. I hope it's
 possible to add full of this patch.

Has the DVB related change proven that it enables digital TV streaming?

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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread Devin Heitmueller
On Sun, Dec 5, 2010 at 12:09 PM, Alexey Chernov 4er...@gmail.com wrote:
 Hello, Steve,
 thank you very much for your comments!

 As for DVB maybe I'm not correct. The initialization itself, which the DVB
 part of patch is about, is fully tested by me and works successfully on my
 everyday PC. The thing I meant saying 'untested' concerned receiving DVB
 signal through the initialized device.

 So I think I was mistaken that the code itself is untested. I hope it's
 possible to add full of this patch.

Hello Alexey,

What I believe Steven is trying to say is the device successfully
initializing is not enough to consider the DVB part of the driver to
be working.  If you have not seen the device receiving digital
television, the DVB parts of this patch should not be committed.

There are a variety of other reasons why DVB streaming would not work
even if the device properly initializes.  These can include an
improperly configured IF, wrong GPIOs, missing power management code,
etc.

It is far worse for a user to be led to believe the driver should be
working but doesn't then it is for the driver claim to not work with
DVB at all.  This is how we end up with users wasting hours wondering
what is wrong with their MythTV setup when in fact the driver never
actually worked in the first place.

Find someone to test the DVB parts of the board that it shows DVB
streaming.  If you cannot do that, remove those parts from the patch
until someone can be found who is able to test the functionality.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread 4ernov
2010/12/5 Steven Toth st...@kernellabs.com:
 So I think I was mistaken that the code itself is untested. I hope it's
 possible to add full of this patch.

 Has the DVB related change proven that it enables digital TV streaming?

Yes, it enables digital TV streaming (tested using GStreamer dvbsrc
element on adapter created for this card).

 --
 Steven Toth - Kernel Labs
 http://www.kernellabs.com

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


Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-12-05 Thread 4ernov
Hello, Devin,

2010/12/5 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Sun, Dec 5, 2010 at 12:09 PM, Alexey Chernov 4er...@gmail.com wrote:
 Hello, Steve,
 thank you very much for your comments!

 As for DVB maybe I'm not correct. The initialization itself, which the DVB
 part of patch is about, is fully tested by me and works successfully on my
 everyday PC. The thing I meant saying 'untested' concerned receiving DVB
 signal through the initialized device.

 So I think I was mistaken that the code itself is untested. I hope it's
 possible to add full of this patch.

 Hello Alexey,

 What I believe Steven is trying to say is the device successfully
 initializing is not enough to consider the DVB part of the driver to
 be working.  If you have not seen the device receiving digital
 television, the DVB parts of this patch should not be committed.

 There are a variety of other reasons why DVB streaming would not work
 even if the device properly initializes.  These can include an
 improperly configured IF, wrong GPIOs, missing power management code,
 etc.

 It is far worse for a user to be led to believe the driver should be
 working but doesn't then it is for the driver claim to not work with
 DVB at all.  This is how we end up with users wasting hours wondering
 what is wrong with their MythTV setup when in fact the driver never
 actually worked in the first place.

Thank you for additional description.

I agree with you that successful DVB initialization and my tests
doesn't necessarily guarantee its full proper work. But I can't see
any reasons why the code can't be included. I think not including this
code harms far more.
I see a lot of people using binary distros on Gotview forum at least
which would like to test Linux drivers for their cards. They could
test them in wide variety of different circumstances. But they are
normal users and they don't want even to hear about any patches and
kernel builds. If DVB works in their distro's kernel maybe someone
would test it on real signal. If it is not even initialized, nobody
would test it.
Not even saying about big efforts which took me this DVB part of patch
(I should say, most part of the time spent on this patch).

 Find someone to test the DVB parts of the board that it shows DVB
 streaming.  If you cannot do that, remove those parts from the patch
 until someone can be found who is able to test the functionality.

Surely I tried to find someone to test the DVB parts but DVB-T is not
spread so wide here in Russia where Gotview cards seem to be primarily
sold and I wasn't able to find anybody. Gotview support team was also
unable to help me with this problem.

So, is it impossible now to accept the patch in its current state?

 Devin

 --
 Devin J. Heitmueller - Kernel Labs
 http://www.kernellabs.com

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


[PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-11-20 Thread Alexey Chernov
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 4er...@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.c2010-11-20 
22:24:11.0 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-11-21 
02:09:54.0 +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.0 +0300
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-dvb.c   2010-11-21 
02:09:54.0 +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,
+   

[PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-11-03 Thread Alexey Chernov
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.
3. Thanks to GoTView for providing information about the card.

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 4er...@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.c2010-10-28 
22:04:10.0 +0400
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-10-29 
23:23:47.0 +0400
@@ -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,
cx25840, cx25840, 0x88  1, NULL);
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-10-28 
22:04:10.0 +0400
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-dvb.c   2010-10-29 
23:24:53.0 +0400
@@ -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,
+   

[PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885

2010-10-29 Thread Alexey Chernov
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 4er...@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.c2010-10-28 
22:04:10.0 +0400
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-cards.c 2010-10-29 
23:23:47.0 +0400
@@ -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,
cx25840, cx25840, 0x88  1, NULL);
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-10-28 
22:04:10.0 +0400
+++ v4l-dvb/drivers/media/video/cx23885/cx23885-dvb.c   2010-10-29 
23:24:53.0 +0400
@@ -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);
+