Re: [PATCH] support of GoTView PCI-E X5 3D Hybrid in cx23885
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
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
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
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/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
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
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
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
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
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
В сообщении от 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
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
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
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/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
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
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
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
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); +