S2API - First release
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Here's where all of the new S2API patches will now appear:
http://linuxtv.org/hg/~stoth/s2
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the tune.c app demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]
Obviously, tune.c isn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.
QAM/ATSC are working well, the HVR4000 changes look fine according to the debug log (although I have no local satellite feed for testing tonight). DVB-T should just work as-is, but I can't test this for a day or so. I.E. I've tested what I can in the US but we might have a few bugs or gotchas!
If anyone is willing to pull the tree and begin testing with the tune.c app then please post all feedback on this thread. [2]
I've received a lot of good feedback of the original 2007 patches. I expect to start merging those changes of the coming days. Don't be too concerned that your changes are not yet merged, keep watching the S2API tree and they will soon appear ... along with a lot of general code cleanup (checkpatch violations)
I expect to catchup on my older email tomorrow.
Regards to all,
- Steve
[1] I'll need to review and diff any of the newer HVR4000 driver derivatives that people have been using, before merging those changes into the S2API tree.
[2] Remember you're going to need the cx24116 firmware if you're specifically testing the HVR4000.... but you probably already know that! :)
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 7 lines
Quoted 6 lines
Steven Toth wrote:
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API.Steven
Quoted 7 lines
Your statement about tuning older modulation types not being a requirement worries me. I would have thought it was an important requirement from an application perspective to be able to tune old and new modulation types through one api. The services I use (BSkyB and Freesat) are mostly DVB-S with very little if any S2. But I would like to be able to tune them via my (not so) new S2 card. Maybe I have misinterpreted what you meant.
I imagine that there isn't really any need to use the S2 API to tune older modulation types, because you just use the existing API if you want the old style tuning.
However I would agree that if the new API supports both old and new style tuning, then that is nicer for anyone writing a new app, as they only have to code for the S2API, and get support for all tuning styles. Unless I too am not understanding :)
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 14 lines · Stephen Rowles
Quoted 5 lines
Quoted 5 lines
Steven Toth wrote:
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API.Quoted 8 lines
Quoted 1 line
Steven
Your statement about tuning older modulation types not being a requirement worries me. I would have thought it was an important requirement from an application perspective to be able to tune old and new modulation types through one api. The services I use (BSkyB and Freesat) are mostly DVB-S with very little if any S2. But I would like to be able to tune them via my (not so) new S2 card. Maybe I have misinterpreted what you meant.
Quoted 3 lines
I imagine that there isn't really any need to use the S2 API to tune older modulation types, because you just use the existing API if you want the old style tuning.
Correct, it's the developers choice.
Quoted 5 lines
However I would agree that if the new API supports both old and new style tuning, then that is nicer for anyone writing a new app, as they only have to code for the S2API, and get support for all tuning styles. Unless I too am not understanding :)
Correct again, it supports old and new tuners.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 2 lines · Roger James
The services I use (BSkyB and
Freesat) are mostly DVB-S with very little if any S2.
Howdy,
Just to clarify things, in fact, BSkyB is indeed making rather heavy use of DVB-S2, with -- based on what I've read and results of previous `scan's (as I have no DVB-S2-capable tuner), two more transponders recently or about to switch from DVB-S to DVB-S2.
If I am to trust my manually-added notes to my frequency list, that is bringing the number of DVB-S2 transponders at 28E to almost ten, more or less.
However, as I understand it, the specs from Freesat for the SD receivers do not include DVB-S2 ability (or is it H.264, or both?) and Sky SD receivers also do not support this (nor dynamic PMT, thus the need for umpteen regional variants of ITV1 and BBC1 and not-so-many C4/+1) and as a result, pretty much lock the broadcasters into a far less efficient use of the scarce spectrum for the near future.
The existing HDTV Freesat/FTA services are H.264 over DVB-S, but all Freesat-HD receivers will need to tune DVB-S2, and it is likely that BBC-HD will in the not-terribly-distant future be using a DVB-S2 transponder. Likewise ITV-HD, C4HD when it makes it to Freesat, and all the regular channels that get HD versions.
BSkyB actually makes the most use of DVB-S2 for DTH satellite in europe that I am aware of, but these services are pretty much exclusively subscription services.
I agree that due to compatibility with SD services, DVB-S reception will be a necessity for quite some time to come in many markets.
barry bouwsma
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 6 lines · Roger James
Quoted 3 lines · Steven Toth
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API.
Steven,
Quoted 7 lines
Your statement about tuning older modulation types not being a requirement worries me. I would have thought it was an important requirement from an application perspective to be able to tune old and new modulation types through one api. The services I use (BSkyB and Freesat) are mostly DVB-S with very little if any S2. But I would like to be able to tune them via my (not so) new S2 card. Maybe I have misinterpreted what you meant.
Late night, odd choice of words.
The new API is capable of tuning the old and new products. For application developers it's not mandatory to move all of your tuning code to the new API just to support all of your current DVB products.
The S2 API support is written to support every current and new DVB card we're likely to see over the next 10 years, it's flexible... I'm simply saying that application developers can slowly migrate their code to it ... you don't have to move all of your tuning code to the new API in one go.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
В сообщении от 4 September 2008 07:54:33 Steven Toth написал(а):
Quoted 59 lines
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Here's where all of the new S2API patches will now appear:
http://linuxtv.org/hg/~stoth/s2
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the
tune.capp demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]Obviously,
tune.cisn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.QAM/ATSC are working well, the HVR4000 changes look fine according to the debug log (although I have no local satellite feed for testing tonight). DVB-T should just work as-is, but I can't test this for a day or so. I.E. I've tested what I can in the US but we might have a few bugs or gotchas!
If anyone is willing to pull the tree and begin testing with the
tune.capp then please post all feedback on this thread. [2]I've received a lot of good feedback of the original 2007 patches. I expect to start merging those changes of the coming days. Don't be too concerned that your changes are not yet merged, keep watching the S2API tree and they will soon appear ... along with a lot of general code cleanup (checkpatch violations)
I expect to catchup on my older email tomorrow.
Regards to all,
- Steve
[1] I'll need to review and diff any of the newer HVR4000 driver derivatives that people have been using, before merging those changes into the S2API tree.
[2] Remember you're going to need the cx24116 firmware if you're specifically testing the HVR4000.... but you probably already know that! :)
Quoted 4 lines
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Good news. I will test it with my cx24116 based cards (not HVR4000)
Igor
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 60 lines · Igor M. Liplianin
В сообщении от 4 September 2008 07:54:33 Steven Toth написал(а):
Quoted 59 lines
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Here's where all of the new S2API patches will now appear:
http://linuxtv.org/hg/~stoth/s2
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the
tune.capp demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]Obviously,
tune.cisn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.QAM/ATSC are working well, the HVR4000 changes look fine according to the debug log (although I have no local satellite feed for testing tonight). DVB-T should just work as-is, but I can't test this for a day or so. I.E. I've tested what I can in the US but we might have a few bugs or gotchas!
If anyone is willing to pull the tree and begin testing with the
tune.capp then please post all feedback on this thread. [2]I've received a lot of good feedback of the original 2007 patches. I expect to start merging those changes of the coming days. Don't be too concerned that your changes are not yet merged, keep watching the S2API tree and they will soon appear ... along with a lot of general code cleanup (checkpatch violations)
I expect to catchup on my older email tomorrow.
Regards to all,
- Steve
[1] I'll need to review and diff any of the newer HVR4000 driver derivatives that people have been using, before merging those changes into the S2API tree.
[2] Remember you're going to need the cx24116 firmware if you're specifically testing the HVR4000.... but you probably already know that! :)
Quoted 5 lines
Quoted 4 lines
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvbGood news. I will test it with my cx24116 based cards (not HVR4000)
Thanks.
If you have any issues I'm on IRC, ping me - it could be something minor. I'm planning to grab a DVB-S generator today for some more testing this evening.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 8 lines
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Great, that's good to hear :) .
Quoted 11 lines
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
Quoted 5 lines
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the
tune.capp demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]
Even better!
Quoted 7 lines
Obviously,
tune.cisn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.If anyone is willing to pull the tree and begin testing with the
tune.capp then please post all feedback on this thread. [2]
I will test it with the HVR4000.
Looking at the code in dvb_frontend.c I think TV_SET_TONE and TV_SET_VOLTAGE don't do anything. Or am I missing something?
Regards,
Hans
Signature · 9 lines
Release early, release often. Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten Browser-Versionen downloaden: http://www.gmx.net/de/go/browser _______________________________________________ linux-dvb mailing list [email protected] http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 34 lines · Hans Werner
Quoted 8 lines
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Great, that's good to hear :) .
Quoted 11 lines
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
Quoted 5 lines
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the
tune.capp demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]Even better!
Quoted 3 lines
Obviously,
tune.cisn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.
Quoted 7 lines
Quoted 2 lines
If anyone is willing to pull the tree and begin testing with the
tune.capp then please post all feedback on this thread. [2]I will test it with the HVR4000.
Looking at the code in
dvb_frontend.cI thinkTV_SET_TONEandTV_SET_VOLTAGEdon't do anything. Or am I missing something?
My bad.
Pull again from ~stoth/s2, I fixed this last night and tested with a generator.
DVB-S is working fine. 8PSK and NBC-QPSK would also work - assuming you have the right tuning params (pilot etc).
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
В сообщении от 4 September 2008 07:54:33 Steven Toth написал(а):
Quoted 59 lines
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Here's where all of the new S2API patches will now appear:
http://linuxtv.org/hg/~stoth/s2
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the
tune.capp demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]Obviously,
tune.cisn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.QAM/ATSC are working well, the HVR4000 changes look fine according to the debug log (although I have no local satellite feed for testing tonight). DVB-T should just work as-is, but I can't test this for a day or so. I.E. I've tested what I can in the US but we might have a few bugs or gotchas!
If anyone is willing to pull the tree and begin testing with the
tune.capp then please post all feedback on this thread. [2]I've received a lot of good feedback of the original 2007 patches. I expect to start merging those changes of the coming days. Don't be too concerned that your changes are not yet merged, keep watching the S2API tree and they will soon appear ... along with a lot of general code cleanup (checkpatch violations)
I expect to catchup on my older email tomorrow.
Regards to all,
- Steve
[1] I'll need to review and diff any of the newer HVR4000 driver derivatives that people have been using, before merging those changes into the S2API tree.
[2] Remember you're going to need the cx24116 firmware if you're specifically testing the HVR4000.... but you probably already know that! :)
Quoted 4 lines
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Is it possible to add TeVii S460 support to your repository? Patch included.
I have locked signal with tune.c succesfully.
Igor M. Liplianin
# HG changeset patch
# User Igor M. Liplianin <[email protected]> # Date 1220559854 -10800
# Node ID f898da8b5a04287ed5c0ac282dfe9e3b7efb3507 # Parent 3a4c28521d430bfee3eef546b499fc58dd032952 Added support for TeVii S460 DVB-S/S2 card
From: Igor M. Liplianin <[email protected]>
Added support for TeVii S460 DVB-S/S2 card. The card based on cx24116 demodulator.
linux/drivers/media/video/cx88/cx88-cards.c +23 -0
@@ -1746,6 +1746,18 @@ } }, .mpeg = CX88_MPEG_DVB, }, + [CX88_BOARD_TEVII_S460] = { + .name = "TeVii S460 DVB-S/S2", + .tuner_type = UNSET, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .input = {{ + .type = CX88_VMUX_DVB, + .vmux = 0, + } }, + .mpeg = CX88_MPEG_DVB, + }, };/* ------------------------------------------------------------------ */
@@ -2115,6 +2127,10 @@ .subvendor = 0x0070, .subdevice = 0x6906, .card = CX88_BOARD_HAUPPAUGE_HVR4000LITE, + }, { + .subvendor = 0xD460, + .subdevice = 0x9022, + .card = CX88_BOARD_TEVII_S460, }, };
@@ -2686,7 +2702,14 @@ tea5767_cfg.priv = &ctl;cx88_call_i2c_clients (core,TUNER_SET_CONFIG , &tea5767_cfg); +break ; } +case CX88_BOARD_TEVII_S460 : +cx_write (MO_SRST_IO ,0 ); +msleep (100 ); +cx_write (MO_SRST_IO ,1 ); +msleep (100 ); +break ; }/*end switch() */
linux/drivers/media/video/cx88/cx88-dvb.c +40 -0
@@ -377,6 +377,31 @@return 0 ; } +static int tevii_dvbs_set_voltage (struct dvb_frontend *fe, +fe_sec_voltage_t voltage) +{ +struct cx8802_dev *dev= fe->dvb->priv; +struct cx88_core *core = dev->core; + +switch (voltage) { +case SEC_VOLTAGE_13 : +printk ("LNB Voltage SEC_VOLTAGE_13\n" ); +cx_write (MO_GP0_IO ,0x00006040 ); +break ; +case SEC_VOLTAGE_18 : +printk ("LNB Voltage SEC_VOLTAGE_18\n" ); +cx_write (MO_GP0_IO ,0x00006060 ); +break ; +case SEC_VOLTAGE_OFF : +printk ("LNB Voltage SEC_VOLTAGE_off\n" ); +break ; + } + +if (core->prev_set_voltage) +return core->prev_set_voltage (fe, voltage); +return 0 ; +} +static int cx88_pci_nano_callback (void *ptr,int command,int arg) {struct cx88_core *core = ptr;
@@ -553,6 +578,12 @@ .demod_address = 0x05, .set_ts_params = cx24116_set_ts_param, .reset_device = cx24116_reset_device, +}; + +static struct cx24116_config tevii_s460_config = { + .demod_address =0x55 , + .set_ts_params = cx24116_set_ts_param, + .reset_device = cx24116_reset_device, };static int dvb_register (struct cx8802_dev *dev)
@@ -933,6 +964,15 @@ 0x08, 0x00, 0x00); }break ; +case CX88_BOARD_TEVII_S460 : + dev->dvb.frontend =dvb_attach (cx24116_attach, + &tevii_s460_config, + &core->i2c_adap); +if (dev->dvb.frontend !=NULL ) { + core->prev_set_voltage = dev->dvb.frontend->ops.set_voltage; + dev->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; + } +break ;default :printk (KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n" , core->name);
linux/drivers/media/video/cx88/cx88.h +1 -0
@@ -224,6 +224,7 @@#define CX88_BOARD_KWORLD_ATSC_120 67#define CX88_BOARD_HAUPPAUGE_HVR4000 68#define CX88_BOARD_HAUPPAUGE_HVR4000LITE 69 +#define CX88_BOARD_TEVII_S460 70enum cx88_itype {CX88_VMUX_COMPOSITE1 =1 ,
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
-------- Original-Nachricht --------
Quoted 72 lines
Datum: Sat, 6 Sep 2008 14:57:59 +0300
Von: "Igor M. Liplianin" <[email protected]>
An: [email protected]
Betreff: Re: [linux-dvb] S2API - First releaseВ сообщении от 4 September 2008 07:54:33 Steven Toth написал(а):
Quoted 50 lines
Hello,
It's been a crazy few days, please forgive my short absence.
What have I been doing? Well, rather than spending time discussing a new S2API on the mailing list, I wanted to actually produce a working series of patches that kernel and application developers could begin to test.
Here's where all of the new S2API patches will now appear:
http://linuxtv.org/hg/~stoth/s2
In addition, here's is a userland application that demonstrates tuning the current DVB-S/T/C and US ATSC modulations types using the new API. (www.steventoth.net/linux/s2/tune-v0.0.1.tgz)
A tuning demo app? What? Obviously, tuning older modulation types via the new API isn't a requirements, but it's a useful validation exercise for the new S2API. What _IS_ important is..... that it also demonstrates using the same tuning mechanism to tune DVB-S2 8PSK / NBC-QPSK modulation types, and also has rudimentary ISDB-T support for any developers specifically interested.
This S2API tree also contains support for the cx24116 demodulator driver, and the Hauppauge HVR4000 family of S2 products. So those interested testers/developers can modify the
tune.capp demo and make changes specific to their area, and try experimenting with the new API if they desire. [1]Obviously,
tune.cisn't intelligent, it's not a replacement for szap, tzap or whatever - it's simply a standalone S2API test tool, that demonstrates the important API interface.QAM/ATSC are working well, the HVR4000 changes look fine according to the debug log (although I have no local satellite feed for testing tonight). DVB-T should just work as-is, but I can't test this for a day or so. I.E. I've tested what I can in the US but we might have a few bugs or gotchas!
If anyone is willing to pull the tree and begin testing with the
tune.capp then please post all feedback on this thread. [2]I've received a lot of good feedback of the original 2007 patches. I expect to start merging those changes of the coming days. Don't be too concerned that your changes are not yet merged, keep watching the S2API tree and they will soon appear ... along with a lot of general code cleanup (checkpatch violations)
I expect to catchup on my older email tomorrow.
Quoted 8 lines
Regards to all,
- Steve
[1] I'll need to review and diff any of the newer HVR4000 driver derivatives that people have been using, before merging those changes into the S2API tree.
[2] Remember you're going to need the cx24116 firmware if you're specifically testing the HVR4000.... but you probably already know that!:)
Quoted 5 lines
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 5 lines
Is it possible to add TeVii S460 support to your repository? Patch included.
I have locked signal withtune.csuccesfully.Igor M. Liplianin
Steve,
I have been tracking down the following bug which affects the LNB voltage. I now have signal lock for DVB-S and DVB-S2 (QPSK, Astra HD Promo) with the HVR4000.
Regards,
Hans
linux/drivers/media/dvb/dvb-core/dvb_frontend.c Sun Sep 07 02:46:17 2008 +0100 renamed from linux/drivers/media/dvb/dvb-core/dvb_frontend.c Thu Sep 04 20:19:43 2008 -0400 +1 -1
@@ -1301,7 +1301,7 @@ int tv_property_process(struct dvb_front case TV_SET_VOLTAGE: fe->tv_property_cache.voltage = tvp->u.data; r = dvb_frontend_ioctl_legacy(inode, file, FE_SET_VOLTAGE, - &fe->tv_property_cache.voltage); + (void *)fe->tv_property_cache.voltage); break; case TV_GET_VOLTAGE: tvp->u.data = fe->tv_property_cache.voltage;
Signature · 9 lines
Release early, release often. GMX Kostenlose Spiele: Einfach online spielen und Spaß haben mit Pastry Passion! http://games.entertainment.gmx.net/de/entertainment/games/free/puzzle/6169196 _______________________________________________ linux-dvb mailing list [email protected] http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 4 lines
Steve,
I have been tracking down the following bug which affects the LNB voltage. I now have signal lock for DVB-S and DVB-S2 (QPSK, Astra HD Promo) with the HVR4000.
Hans, thanks for fixing this. I've applied it the ~stoth/s2 tree.
Good to hear you're up and running with the HVR4000!
Regards,
Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Steven Toth
AppliedQuoted 6 lines
Is it possible to add TeVii S460 support to your repository? Patch included.
I have locked signal withtune.csuccesfully.Igor M. Liplianin
Applied, thank you. :)
Regards,
Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
PATCH 1/1 S2 - DVBWorld 2104, TeVii S650
Patch for DVBWorld 2104, TeVii S650 cx24116 based cards.
# HG changeset patch
# User Igor M. Liplianin <[email protected]>
# Date 1220905000 -10800
# Node ID f2def1a82981126faf2cc67d30a2994daeb95e69
# Parent ffa9a0c644b388d58682eeacec6e958e9088ea96 Added support for DVBWorld 2104 and TeVii S650 USB DVB-S2 cards
From: Igor M. Liplianin <[email protected]>
Added support for DVBWorld 2104 and TeVii S650 USB DVB-S2 cards This cards based on cx24116 demodulator.
linux/drivers/media/dvb/dvb-usb/dw2102.c +248 -57
@@ -1,4 +1,5 @@ -/* DVB USB framework compliant Linux driver for the DVBWorld DVB-S 2102 Card +/* DVB USB framework compliant Linux driver for the +* DVBWorld DVB-S 2101, 2102, DVB-S2 2104 Card * * Copyright (C) 2008 Igor M. Liplianin ([email protected]) *
@@ -12,9 +13,14 @@#include "dw2102.h" #include "stv0299.h" #include "z0194a.h" +#include "cx24116.h" #ifndef USB_PID_DW2102 #define USB_PID_DW2102 0x2102 +#endif + +#ifndef USB_PID_DW2104 +#define USB_PID_DW2104 0x2104#endif #define DW2102_READ_MSG 0
@@ -23,7 +29,7 @@#define REG_1F_SYMBOLRATE_BYTE0 0x1f#define REG_20_SYMBOLRATE_BYTE1 0x20#define REG_21_SYMBOLRATE_BYTE2 0x21 - +/* on my own*/ #define DW2102_VOLTAGE_CTRL (0x1800)#define DW2102_RC_QUERY (0x1a00)
@@ -35,22 +41,27 @@u32 event; }; +/* debug */ +static int dvb_usb_dw2102_debug; +module_param_named (debug, dvb_usb_dw2102_debug, int,0644 ); +MODULE_PARM_DESC (debug,"set debugging level (1=info 2=xfer (or-able))." DVB_USB_DEBUG_STATUS ); +DVB_DEFINE_MOD_OPT_ADAPTER_NR (adapter_nr);static int dw2102_op_rw (struct usb_device *dev,u8 request,u16 value, -u8 *data,u16 len,int flags) +u16 index,u8 * data,u16 len,int flags) {int ret;u8 u8buf[len];unsigned int pipe = (flags ==DW2102_READ_MSG ) ? -usb_rcvctrlpipe (dev,0 ) :usb_sndctrlpipe (dev,0 ); +usb_rcvctrlpipe (dev,0 ) :usb_sndctrlpipe (dev,0 );u8 request_type = (flags ==DW2102_READ_MSG ) ?USB_DIR_IN :USB_DIR_OUT ;if (flags ==DW2102_WRITE_MSG )memcpy (u8buf, data, len); - ret =usb_control_msg (dev, pipe, request, - request_type |USB_TYPE_VENDOR , value,0 , u8buf, len,2000 ); + ret =usb_control_msg (dev, pipe, request, request_type |USB_TYPE_VENDOR , + value, index , u8buf, len,2000 );if (flags ==DW2102_READ_MSG )memcpy (data, u8buf, len);
@@ -65,7 +76,6 @@struct dvb_usb_device *d =i2c_get_adapdata (adap);int i =0 , ret =0 ;u8 buf6[] = {0x2c ,0x05 ,0xc0 ,0 ,0 ,0 ,0 }; -u8 request;u16 value;if (!d)
@@ -76,12 +86,11 @@switch (num) {case 2 :/* read stv0299 register */ - request =0xb5 ; value = msg[0 ].buf[0 ];/* register */ for (i =0 ; i < msg[1 ].len; i++) { value = value + i; - ret =dw2102_op_rw (d->udev,0xb5 , - value, buf6,2 ,DW2102_READ_MSG ); + ret =dw2102_op_rw (d->udev,0xb5 , value,0 , + buf6,2 ,DW2102_READ_MSG ); msg[1 ].buf[i] = buf6[0 ]; }
@@ -93,8 +102,8 @@ buf6[0 ] =0x2a ; buf6[1 ] = msg[0 ].buf[0 ]; buf6[2 ] = msg[0 ].buf[1 ]; - ret =dw2102_op_rw (d->udev,0xb2 , -0 , buf6,3 ,DW2102_WRITE_MSG ); + ret =dw2102_op_rw (d->udev,0xb2 ,0 ,0 , + buf6,3 ,DW2102_WRITE_MSG );break ;case 0x60 :if (msg[0 ].flags ==0 ) {
@@ -106,27 +115,109 @@ buf6[4 ] = msg[0 ].buf[1 ]; buf6[5 ] = msg[0 ].buf[2 ]; buf6[6 ] = msg[0 ].buf[3 ]; - ret =dw2102_op_rw (d->udev,0xb2 , -0 , buf6,7 ,DW2102_WRITE_MSG ); + ret =dw2102_op_rw (d->udev,0xb2 ,0 ,0 , + buf6,7 ,DW2102_WRITE_MSG ); }else { -/* write to tuner pll */ - ret =dw2102_op_rw (d->udev,0xb5 , -0 , buf6,1 ,DW2102_READ_MSG ); +/* read from tuner */ + ret =dw2102_op_rw (d->udev,0xb5 ,0 ,0 , + buf6,1 ,DW2102_READ_MSG ); msg[0 ].buf[0 ] = buf6[0 ]; }break ;case (DW2102_RC_QUERY ): - ret =dw2102_op_rw (d->udev,0xb8 , -0 , buf6,2 ,DW2102_READ_MSG ); + ret =dw2102_op_rw (d->udev,0xb8 ,0 ,0 , + buf6,2 ,DW2102_READ_MSG ); msg[0 ].buf[0 ] = buf6[0 ]; msg[0 ].buf[1 ] = buf6[1 ];break ;case (DW2102_VOLTAGE_CTRL ): buf6[0 ] =0x30 ; buf6[1 ] = msg[0 ].buf[0 ]; - ret =dw2102_op_rw (d->udev,0xb2 , -0 , buf6,2 ,DW2102_WRITE_MSG ); + ret =dw2102_op_rw (d->udev,0xb2 ,0 ,0 , + buf6,2 ,DW2102_WRITE_MSG );break ; + } + +break ; + } + +mutex_unlock (&d->i2c_mutex); +return num; +} + +static int dw2104_i2c_transfer (struct i2c_adapter *adap,struct i2c_msg msg[],int num) +{ +struct dvb_usb_device *d =i2c_get_adapdata (adap); +int ret =0 ; +int len, i; + +if (!d) +return -ENODEV ; +if (mutex_lock_interruptible (&d->i2c_mutex) <0 ) +return -EAGAIN ; + +switch (num) { +case 2 : { +/* read */ +/* first write first register number */ +u8 ibuf [msg[1 ].len +2 ], obuf[3 ]; + obuf[0 ] =0xaa ; + obuf[1 ] = msg[0 ].len; + obuf[2 ] = msg[0 ].buf[0 ]; + ret =dw2102_op_rw (d->udev,0xc2 ,0 ,0 , + obuf, msg[0 ].len +2 ,DW2102_WRITE_MSG ); +/* second read registers */ + ret =dw2102_op_rw (d->udev,0xc3 ,0xab ,0 , + ibuf, msg[1 ].len +2 ,DW2102_READ_MSG ); +memcpy (msg[1 ].buf, ibuf +2 , msg[1 ].len); + +break ; + } +case 1 : +switch (msg[0 ].addr) { +case 0x55 : { +if (msg[0 ].buf[0 ] ==0xf7 ) { +/* firmware */ +/* Write in small blocks */ +u8 obuf[19 ]; + obuf[0 ] =0xaa ; + obuf[1 ] =0x11 ; + obuf[2 ] =0xf7 ; + len = msg[0 ].len -1 ; + i =1 ; +do { +memcpy (obuf +3 , msg[0 ].buf + i, (len >16 ?16 : len)); + ret =dw2102_op_rw (d->udev,0xc2 ,0 ,0 , + obuf, (len >16 ?16 : len) +3 ,DW2102_WRITE_MSG ); + i +=16 ; + len -=16 ; + }while (len >0 ); + }else { +/* write to register */ +u8 obuf[msg[0 ].len +2 ]; + obuf[0 ] =0xaa ; + obuf[1 ] = msg[0 ].len; +memcpy (obuf +2 , msg[0 ].buf, msg[0 ].len); + ret =dw2102_op_rw (d->udev,0xc2 ,0 ,0 , + obuf, msg[0 ].len +2 ,DW2102_WRITE_MSG ); + } +break ; + } +case (DW2102_RC_QUERY ): { +u8 ibuf[2 ]; + ret =dw2102_op_rw (d->udev,0xb8 ,0 ,0 , + ibuf,2 ,DW2102_READ_MSG ); +memcpy (msg[0 ].buf, ibuf ,2 ); +break ; + } +case (DW2102_VOLTAGE_CTRL ): { +u8 obuf[2 ]; + obuf[0 ] =0x30 ; + obuf[1 ] = msg[0 ].buf[0 ]; + ret =dw2102_op_rw (d->udev,0xb2 ,0 ,0 , + obuf,2 ,DW2102_WRITE_MSG ); +break ; + } }break ;
@@ -146,6 +237,34 @@ .functionality = dw2102_i2c_func, }; +static struct i2c_algorithm dw2104_i2c_algo = { + .master_xfer = dw2104_i2c_transfer, + .functionality = dw2102_i2c_func, +}; + +static int dw2102_read_mac_address (struct dvb_usb_device *d,u8 mac[6 ]) +{ +int i; +u8 ibuf[] = {0 ,0 }; +u8 eeprom[256 ], eepromline[16 ]; + +for (i =0 ; i <256 ; i++) { +if (dw2102_op_rw (d->udev,0xb6 ,0xa0 , i, ibuf,2 ,DW2102_READ_MSG ) <0 ) { +err ("read eeprom failed." ); +return -1 ; + }else { + eepromline[i%16 ] = ibuf[0 ]; + eeprom[i] = ibuf[0 ]; + } +if ((i %16 ) ==15 ) { +deb_xfer ("%02x: " , i -15 ); +debug_dump (eepromline,16 , deb_xfer); + } + } +memcpy (mac, eeprom +8 ,6 ); +return 0 ; +}; +static int dw2102_set_voltage (struct dvb_frontend *fe,fe_sec_voltage_t voltage) {static u8 command_13v[1 ] = {0x00 };
@@ -161,6 +280,22 @@ msg[0 ].buf = command_18v;i2c_transfer (&udev_adap->dev->i2c_adap, msg,1 );return 0 ; +} + +static struct cx24116_config dw2104_config = { + .demod_address =0x55 , +/*.mpg_clk_pos_pol = 0x01,*/ +}; + +static int dw2104_frontend_attach (struct dvb_usb_adapter *d) +{ +if ((d->fe =dvb_attach (cx24116_attach, &dw2104_config, + &d->dev->i2c_adap)) !=NULL ) { + d->fe->ops.set_voltage = dw2102_set_voltage; +info ("Attached cx24116!\n" ); +return 0 ; + } +return -EIO ; }static int dw2102_frontend_attach (struct dvb_usb_adapter *d)
@@ -249,6 +384,8 @@static struct usb_device_id dw2102_table[] = { {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2102 )}, {USB_DEVICE (USB_VID_CYPRESS ,0x2101 )}, + {USB_DEVICE (USB_VID_CYPRESS ,0x2104 )}, + {USB_DEVICE (0x9022 ,0xd650 )}, { } };
@@ -273,25 +410,23 @@return ret; }break ; -case USB_PID_DW2102 : +default : fw = frmwr;break ; } -info ("start downloading DW2102 firmware" ); +info ("start downloading DW210X firmware" ); p =kmalloc (fw->size,GFP_KERNEL ); reset =1 ;/*stop the CPU*/ -dw2102_op_rw (dev,0xa0 ,0x7f92 , &reset,1 ,DW2102_WRITE_MSG ); -dw2102_op_rw (dev,0xa0 ,0xe600 , &reset,1 ,DW2102_WRITE_MSG ); +dw2102_op_rw (dev,0xa0 ,0x7f92 ,0 , &reset,1 ,DW2102_WRITE_MSG ); +dw2102_op_rw (dev,0xa0 ,0xe600 ,0 , &reset,1 ,DW2102_WRITE_MSG );if (p !=NULL ) {memcpy (p, fw->data, fw->size);for (i =0 ; i < fw->size; i +=0x40 ) { b = (u8 *) p + i; -if (dw2102_op_rw - (dev,0xa0 , i, b ,0x40 , -DW2102_WRITE_MSG ) !=0x40 - ) { +if (dw2102_op_rw (dev,0xa0 , i,0 , b ,0x40 , +DW2102_WRITE_MSG ) !=0x40 ) {err ("error while transferring firmware" ); ret = -EINVAL ;break ;
@@ -299,43 +434,45 @@ }/* restart the CPU */ reset =0 ; -if (ret ||dw2102_op_rw - (dev,0xa0 ,0x7f92 , &reset,1 , -DW2102_WRITE_MSG ) !=1 ) { +if (ret ||dw2102_op_rw (dev,0xa0 ,0x7f92 ,0 , &reset,1 , +DW2102_WRITE_MSG ) !=1 ) {err ("could not restart the USB controller CPU." ); ret = -EINVAL ; } -if (ret ||dw2102_op_rw - (dev,0xa0 ,0xe600 , &reset,1 , -DW2102_WRITE_MSG ) !=1 ) { +if (ret ||dw2102_op_rw (dev,0xa0 ,0xe600 ,0 , &reset,1 , +DW2102_WRITE_MSG ) !=1 ) {err ("could not restart the USB controller CPU." ); ret = -EINVAL ; }/* init registers */ switch (dev->descriptor.idProduct) { +case USB_PID_DW2104 : +case 0xd650 : + reset =1 ; +dw2102_op_rw (dev,0xc4 ,0x0000 ,0 , &reset,1 , +DW2102_WRITE_MSG ); + reset =0 ; +dw2102_op_rw (dev,0xbf ,0x0040 ,0 , &reset,0 , +DW2102_WRITE_MSG ); +break ;case USB_PID_DW2102 : -dw2102_op_rw - (dev,0xbf ,0x0040 , &reset,0 , -DW2102_WRITE_MSG ); -dw2102_op_rw - (dev,0xb9 ,0x0000 , &reset16[0 ],2 , -DW2102_READ_MSG ); +dw2102_op_rw (dev,0xbf ,0x0040 ,0 , &reset,0 , +DW2102_WRITE_MSG ); +dw2102_op_rw (dev,0xb9 ,0x0000 ,0 , &reset16[0 ],2 , +DW2102_READ_MSG );break ;case 0x2101 : -dw2102_op_rw - (dev,0xbc ,0x0030 , &reset16[0 ],2 , -DW2102_READ_MSG ); -dw2102_op_rw - (dev,0xba ,0x0000 , &reset16[0 ],7 , -DW2102_READ_MSG ); -dw2102_op_rw - (dev,0xba ,0x0000 , &reset16[0 ],7 , -DW2102_READ_MSG ); -dw2102_op_rw - (dev,0xb9 ,0x0000 , &reset16[0 ],2 , -DW2102_READ_MSG ); +dw2102_op_rw (dev,0xbc ,0x0030 ,0 , &reset16[0 ],2 , +DW2102_READ_MSG ); +dw2102_op_rw (dev,0xba ,0x0000 ,0 , &reset16[0 ],7 , +DW2102_READ_MSG ); +dw2102_op_rw (dev,0xba ,0x0000 ,0 , &reset16[0 ],7 , +DW2102_READ_MSG ); +dw2102_op_rw (dev,0xb9 ,0x0000 ,0 , &reset16[0 ],2 , +DW2102_READ_MSG );break ; } +msleep (100 );kfree (p); }return ret;
@@ -358,7 +495,8 @@/* parameter for the MPEG2-data transfer */ .num_adapters = 1, .download_firmware = dw2102_load_firmware, - .adapter = { + .read_mac_address = dw2102_read_mac_address, + .adapter = { { .frontend_attach = dw2102_frontend_attach, .streaming_ctrl = NULL,
@@ -388,11 +526,64 @@ } }; +static struct dvb_usb_device_properties dw2104_properties = { + .caps =DVB_USB_IS_AN_I2C_ADAPTER , + .usb_ctrl =DEVICE_SPECIFIC , + .firmware ="dvb-usb-dw2104.fw" , + .size_of_priv =sizeof (struct dw2102_state ), + .no_reconnect =1 , + + .i2c_algo = &dw2104_i2c_algo, + .rc_key_map = dw2102_rc_keys, + .rc_key_map_size =ARRAY_SIZE (dw2102_rc_keys), + .rc_interval =150 , + .rc_query = dw2102_rc_query, + + .generic_bulk_ctrl_endpoint =0x81 , +/* parameter for the MPEG2-data transfer */ + .num_adapters =1 , + .download_firmware = dw2102_load_firmware, + .read_mac_address = dw2102_read_mac_address, + .adapter = { + { + .frontend_attach = dw2104_frontend_attach, + .streaming_ctrl =NULL , +/*.tuner_attach = dw2104_tuner_attach,*/ + .stream = { + .type =USB_BULK , + .count =8 , + .endpoint =0x82 , + .u = { + .bulk = { + .buffersize =4096 , + } + } + }, + } + }, + .num_device_descs =2 , + .devices = { + {"DVBWorld DW2104 USB2.0" , + {&dw2102_table[2 ],NULL }, + {NULL }, + }, + {"TeVii S650 USB2.0" , + {&dw2102_table[3 ],NULL }, + {NULL }, + }, + } +}; +static int dw2102_probe (struct usb_interface *intf,const struct usb_device_id *id) { -return dvb_usb_device_init (intf, &dw2102_properties, -THIS_MODULE ,NULL , adapter_nr); +if (0 ==dvb_usb_device_init (intf, &dw2102_properties, +THIS_MODULE ,NULL , adapter_nr) || +0 ==dvb_usb_device_init (intf, &dw2104_properties, +THIS_MODULE ,NULL , adapter_nr)) { +return 0 ; + } +return -ENODEV ; }static struct usb_driver dw2102_driver = {
@@ -420,6 +611,6 @@module_exit (dw2102_module_exit);MODULE_AUTHOR ("Igor M. Liplianin (c) [email protected]" ); -MODULE_DESCRIPTION ("Driver for DVBWorld DVB-S 2101 2102 USB2.0 device" ); +MODULE_DESCRIPTION ("Driver for DVBWorld DVB-S 2101, 2102, DVB-S2 2104 USB2.0 device" );MODULE_VERSION ("0.1" );MODULE_LICENSE ("GPL" );
linux/drivers/media/dvb/dvb-usb/dw2102.h +0 -1
@@ -4,6 +4,5 @@#define DVB_USB_LOG_PREFIX "dw2102"#include "dvb-usb.h" -extern int dvb_usb_dw2102_debug; #define deb_xfer(args...) dprintk(dvb_usb_dw2102_debug, 0x02, args)#endif
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Re: [linux-dvb] [PATCH] S2 - DVBWorld 2104, TeVii S650
В сообщении от 8 September 2008 23:34:04 Igor M. Liplianin написал(а):
Quoted 1 line
Patch for DVBWorld 2104, TeVii S650 cx24116 based cards.
Additionally change Kconfig for DvbWorld cards.
Signature · 1 line
Igor M. Liplianin
# HG changeset patch
# User Igor M. Liplianin <[email protected]>
# Date 1220970583 -10800
# Node ID 94185acebf5c72f507eaca24d1e77cf9fc9cba9a
# Parent e002e5deabad4f8993f5ab9aba79a3fd1f154491Kconfig corrections for DVBWorld 2104 and TeVii S650 USB DVB-S2 cards
From: Igor M. Liplianin <[email protected]>
Change menu item in Kconfig for DVBWorld 2104 and TeVii S650 USB DVB-S2 cards
linux/drivers/media/dvb/dvb-usb/Kconfig +5 -3
@@ -247,12 +247,14 @@ Afatech AF9005 based receiver. config DVB_USB_DW2102 - tristate "DvbWorld 2102 DVB-S USB2.0 receiver" + tristate "DvbWorld DVB-S/S2 USB2.0 support" depends on DVB_USB + select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_STV0299 if !DVB_FE_CUSTOMISE - select DVB_PLL if !DVB_FE_CUSTOMISE + select DVB_CX24116 if !DVB_FE_CUSTOMISE help - Say Y here to support the DvbWorld 2102 DVB-S USB2.0 receiver. + Say Y here to support the DvbWorld DVB-S/S2 USB2.0 receivers + and the TeVii S650. config DVB_USB_ANYSEE tristate "Anysee DVB-T/C USB2.0 support"
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
PATCH 1/1 S2 cx24116: Above 30000 kSym/s symbol rates patch
Hi Steven,
Please apply this patch
Above 30000 kSym/s symbol rates patch
Tested on 44948 transponders (Express AM2)
Igor M. Liplianin
# HG changeset patch
# User Igor M. Liplianin <[email protected]>
# Date 1220977349 -10800
# Node ID c16df309144fe4971cbdbb1e6fb67eb6df0ec727 # Parent 49c174f134f86203f892857b33832c2ff8bd850a
cx24116: Fix lock for high (above 30000 kSyms) symbol rates
From: Igor M. Liplianin <[email protected]>
cx24116: Fix lock for high (above 30000 kSyms) symbol rates
linux/drivers/media/dvb/frontends/cx24116.c +31 -6
@@ -29,6 +29,11 @@* August * Sync with legacy version. * Some clean ups. +*/ +/* Updates by Igor Liplianin +* +* September, 9th 2008 +* Fixed locking on high symbol rates (>30000). */ #include <linux/slab.h>
@@ -809,7 +814,7 @@struct tv_frontend_properties *c = &fe->tv_property_cache;struct cx24116_cmd cmd;fe_status_t tunerstat; -int ret; +int ret, above30msps;u8 retune=4 ;dprintk ("%s()\n" ,__func__);
@@ -839,6 +844,16 @@if (state->config->set_ts_params) state->config->set_ts_params (fe,0 ); + above30msps = (state->dcur.symbol_rate >30000000 ); + +if (above30msps){ +cx24116_writereg (state,0xF9 ,0x01 ); +cx24116_writereg (state,0xF3 ,0x44 ); + }else { +cx24116_writereg (state,0xF9 ,0x00 ); +cx24116_writereg (state,0xF3 ,0x46 ); + } +/* Prepare a tune request */ cmd.args[0x00 ] =CMD_TUNEREQUEST ;
@@ -866,11 +881,21 @@ cmd.args[0x0b ] =0x00 ; cmd.args[0x0c ] =0x02 ; cmd.args[0x0d ] = state->dcur.fec_mask; - cmd.args[0x0e ] =0x06 ; - cmd.args[0x0f ] =0x00 ; - cmd.args[0x10 ] =0x00 ; - cmd.args[0x11 ] =0xFA ; - cmd.args[0x12 ] =0x24 ; + +if (above30msps){ + cmd.args[0x0e ] =0x04 ; + cmd.args[0x0f ] =0x00 ; + cmd.args[0x10 ] =0x01 ; + cmd.args[0x11 ] =0x77 ; + cmd.args[0x12 ] =0x36 ; + }else { + cmd.args[0x0e ] =0x06 ; + cmd.args[0x0f ] =0x00 ; + cmd.args[0x10 ] =0x00 ; + cmd.args[0x11 ] =0xFA ; + cmd.args[0x12 ] =0x24 ; + } + cmd.len=0x13 ;/* We need to support pilot and non-pilot tuning in the
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Steven Toth
AppliedRe: [linux-dvb] [PATCH] S2 cx24116: Above 30000 kSym/s symbol rates patch
Quoted 8 lines · Igor M. Liplianin
Hi Steven,
Please apply this patchAbove 30000 kSym/s symbol rates patch
Tested on 44948 transponders (Express AM2)Igor M. Liplianin
Merged, thanks.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Re: [linux-dvb] [PATCH] S2 cx24116: Above 30000 kSym/s symbol ratespatch
In reply to Igor M. LiplianinHi
I can confirm - with Igor's repo I can lock the transponders with highest SR - 44948 FEC 5/6 (Express AM2)& 44950 fec 3/4 (Express AM22 53E) with my hvr4000
@Igor
thanks
Goga
-----Original Message-----
From: "Igor M. Liplianin" <[email protected]>
To: [email protected]
Date: Tue, 9 Sep 2008 19:31:01 +0300
Subject: [linux-dvb] [PATCH] S2 cx24116: Above 30000 kSym/s symbol ratespatch
Quoted 9 lines
Hi Steven,
Please apply this patchAbove 30000 kSym/s symbol rates patch
Tested on 44948 transponders (Express AM2)Igor M. Liplianin
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
PATCH 1/1 S2 cx24116: MPEG initialization
In reply to Igor M. LiplianinHi again Steven,
Please apply this patch.
Patch to adjust MPEG initialization in cx24116 in order to accomodate different MPEG CLK positions and polarities for different cards.
Igor Liplianin
# HG changeset patch
# User Igor M. Liplianin <[email protected]> # Date 1220979467 -10800
# Node ID 77293218655c3d272705232dc40ad9925473b8c1 # Parent ed37fbee40febc38e74833387ec7d317087056d1 Adjust MPEG initialization in cx24116
From: Igor M. Liplianin <[email protected]>
Adjust MPEG initialization in cx24116 in order to accomodate different MPEG CLK position and polarity in different cards.
linux/drivers/media/dvb/dvb-usb/dw2102.c +1 -1
@@ -284,7 +284,7 @@static struct cx24116_config dw2104_config = { .demod_address =0x55 , -/*.mpg_clk_pos_pol = 0x01,*/ + .mpg_clk_pos_pol =0x01 , };static int dw2104_frontend_attach (struct dvb_usb_adapter *d)
linux/drivers/media/dvb/frontends/cx24116.c +4 -1
@@ -478,7 +478,10 @@ cmd.args[0x01 ] =0x01 ; cmd.args[0x02 ] =0x75 ; cmd.args[0x03 ] =0x00 ; - cmd.args[0x04 ] =0x02 ; +if (state->config->mpg_clk_pos_pol) + cmd.args[0x04 ] = state->config->mpg_clk_pos_pol; +else + cmd.args[0x04 ] =0x02 ; cmd.args[0x05 ] =0x00 ; cmd.len=0x06 ; ret =cx24116_cmd_execute (fe, &cmd);
linux/drivers/media/dvb/frontends/cx24116.h +3 -0
@@ -33,6 +33,9 @@/* Need to reset device during firmware loading */ int (*reset_device)(struct dvb_frontend * fe); + +/* Need to set MPEG parameters */ + u8 mpg_clk_pos_pol:0x02; };#if defined(CONFIG_DVB_CX24116 ) || defined(CONFIG_DVB_CX24116_MODULE )
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Steven Toth
AppliedRe: [linux-dvb] [PATCH] S2 cx24116: MPEG initialization
Quoted 8 lines · Igor M. Liplianin
Hi again Steven,
Please apply this patch.
Patch to adjust MPEG initialization in cx24116 in order to accomodate different MPEG CLK positions and polarities for different cards.Igor Liplianin
Merged, thanks.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Steven Toth
AppliedRe: [linux-dvb] [PATCH] S2 - DVBWorld 2104, TeVii S650
In reply to Igor M. LiplianinQuoted 6 lines · Igor M. Liplianin
? ????????? ?? 8 September 2008 23:34:04 Igor M. Liplianin ???????(?):
Quoted 1 line
Patch for DVBWorld 2104, TeVii S650 cx24116 based cards.
Additionally change
Kconfigfor DvbWorld cards.
Merged, thanks.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Steven Toth
AppliedRe: [linux-dvb] [PATCH] S2 - DVBWorld 2104, TeVii S650
In reply to Igor M. LiplianinQuoted 2 lines · Igor M. Liplianin
Patch for DVBWorld 2104, TeVii S650 cx24116 based cards.
Merged, thanks.
- Steve
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb