Skip to contentSkip to conversation

lgdt3304

DISCUSSION Carl-Fredrik Sundstrom 4 participants 14 messages Jun 27, 2013 – Jul 11, 2013 1 message not in the archive Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

Has the driver for lgdt3304 been tested ? I am trying to get a new card working

AVerMedia AVerTVHD Duet PCTV tuner (A188) A188-AF PCI-Express x1 Interface

It is using

1 x saa7160E
2 x LGDT3304
2 x TDA18271HD/C2

I get so far that I can load a basic driver by modifying the existing saa716x driver, I can detect the TDA18271HD/C2, but I fail to detect the LGDT3304 when attaching it using the 3305 driver.

I always fail at the first read from LGDT3305_GEN_CTRL_2, does this register even exist in lgdt3304 or is it specific to lgdt3305?

        /* verify that we're talking to a lg dt3304/5 */
         ret = lgdt3305_read_reg(state, LGDT3305_GEN_CTRL_2, &val); 
         if ((lg_fail(ret)) | (val == 0))
        {
                printk("fail 1\n");
                goto fail;
        }

Since I do find the TDA18271HD/C2 I don't think there is something wrong with the i2c buss. I also tried every possible i2c address without success. The lgdt3305 has option between address 0x0e and 0x59, is it the same for 3304 ?

This is the first time I am trying to get a driver to work in Linux. Please help me.

Thanks /// Carl-Fredrik

#1 lore raw
Quoted 3 lines

I get so far that I can load a basic driver by modifying the existing saa716x driver, I can detect the TDA18271HD/C2, but I fail to detect the LGDT3304 when attaching it using the 3305 driver.

A GPIO holding the 3304 in reset?

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

#2 lore raw

I found a datasheet for lgdt3305 it does indeed have a reset pin at pin 37 active low with internal pull up.
I will try to attach a probe to that pin and walk through all of the GPIO until I find the right one.

I hope that lgdt3304 and lgdt3305 are pin compatible otherwise I might not have much success.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Steven Toth
Sent: Thursday, June 27, 2013 1:59 PM
To: Carl-Fredrik Sundstrom
Cc: [email protected]
Subject: Re: lgdt3304

Quoted 4 lines

I get so far that I can load a basic driver by modifying the existing saa716x driver, I can detect the TDA18271HD/C2, but I fail to detect the
LGDT3304 when attaching it using the 3305 driver.

A GPIO holding the 3304 in reset?

--
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 [email protected] More majordomo info at
http://vger.kernel.org/majordomo-info.html

#3 lore raw
In reply to Carl-Fredrik Sundstrom
Quoted 27 lines · Carl-Fredrik Sundstrom

Has the driver for lgdt3304 been tested ? I am trying to get a new card working

AVerMedia AVerTVHD Duet PCTV tuner (A188) A188-AF PCI-Express x1 Interface

It is using

1 x saa7160E
2 x LGDT3304
2 x TDA18271HD/C2

I get so far that I can load a basic driver by modifying the existing saa716x driver, I can detect the TDA18271HD/C2, but I fail to detect the LGDT3304 when attaching it using the 3305 driver.

I always fail at the first read from LGDT3305_GEN_CTRL_2, does this register even exist in lgdt3304 or is it specific to lgdt3305?

        /* verify that we're talking to a lg dt3304/5 */
         ret = lgdt3305_read_reg(state, LGDT3305_GEN_CTRL_2, &val);
         if ((lg_fail(ret)) | (val == 0))
        {
                printk("fail 1\n");
                goto fail;
        }
Quoted 7 lines

Since I do find the TDA18271HD/C2 I don't think there is something wrong with the i2c buss. I also tried every possible i2c address without success. The lgdt3305 has option between address 0x0e and 0x59, is it the same for 3304 ?

This is the first time I am trying to get a driver to work in Linux. Please help me.

Either the i2c is broken or the lgdt3304 is being held in reset by a GPIO.

Also, that device has multiple i2c busses, so you could be looking on the wrong bus.

Do you see *any* i2c devices (such as an eeprom).

Devin

Signature · 2 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
#4 lore raw

One of the TDA18271HD/C2 is detected on the secondary i2c bus at address 0x60. I haven't tried yet to find the second one.

The SAA7160E PCI-E interface has the following GPIO

GPIO_[15:1]: interrupts from other external devices GPIO_[23:16]: chip select to other external devices GPIO_[29:26]: general purpose
BOOT_0 and BOOT_1: boot mode. The boot mode pins can be used as application GPIO pins after 500 ms (after power-up). The boot mode has been latched.

All of them are input and output with internal pull-up, so they should all be set high.

Should I just try to change them all to outputs and then set them low one by one until something answers at address 0x0e or 0x59?

Thanks /// Carl

-----Original Message-----
From: Devin Heitmueller [mailto:[email protected]]
Sent: Thursday, June 27, 2013 1:59 PM
To: Carl-Fredrik Sundstrom
Cc: [email protected]
Subject: Re: lgdt3304

Quoted 29 lines · Carl-Fredrik Sundstrom

Has the driver for lgdt3304 been tested ? I am trying to get a new card working

AVerMedia AVerTVHD Duet PCTV tuner (A188) A188-AF PCI-Express x1 Interface

It is using

1 x saa7160E
2 x LGDT3304
2 x TDA18271HD/C2

I get so far that I can load a basic driver by modifying the existing saa716x driver, I can detect the TDA18271HD/C2, but I fail to detect the
LGDT3304 when attaching it using the 3305 driver.

I always fail at the first read from LGDT3305_GEN_CTRL_2, does this register even exist in lgdt3304 or is it specific to lgdt3305?

        /* verify that we're talking to a lg dt3304/5 */
         ret = lgdt3305_read_reg(state, LGDT3305_GEN_CTRL_2, &val);
         if ((lg_fail(ret)) | (val == 0))
        {
                printk("fail 1\n");
                goto fail;
        }
Quoted 2 lines

Since I do find the TDA18271HD/C2 I don't think there is something wrong with the i2c buss. I also tried every possible i2c address without

success.

Quoted 6 lines

The lgdt3305 has option between address 0x0e and 0x59, is it the same for
3304 ?

This is the first time I am trying to get a driver to work in Linux. Please help me.

Either the i2c is broken or the lgdt3304 is being held in reset by a GPIO.

Also, that device has multiple i2c busses, so you could be looking on the wrong bus.

Do you see *any* i2c devices (such as an eeprom).

Devin

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

#5 lore raw
In reply to Devin Heitmueller

I am able to detect two lgdt3304 one on each i2c bus now. As you suspected I had to set GPIO pin 17 for them to come alive.

Now to my next question, how do I attach two front ends I have two lgdt3304 and two TDA18271HD/C2
Is there a good driver I can look at where they do that ?

Thanks /// Carl

-----Original Message-----
From: Devin Heitmueller [mailto:[email protected]]
Sent: Thursday, June 27, 2013 1:59 PM
To: Carl-Fredrik Sundstrom
Cc: [email protected]
Subject: Re: lgdt3304

Quoted 29 lines · Carl-Fredrik Sundstrom

Has the driver for lgdt3304 been tested ? I am trying to get a new card working

AVerMedia AVerTVHD Duet PCTV tuner (A188) A188-AF PCI-Express x1 Interface

It is using

1 x saa7160E
2 x LGDT3304
2 x TDA18271HD/C2

I get so far that I can load a basic driver by modifying the existing saa716x driver, I can detect the TDA18271HD/C2, but I fail to detect the
LGDT3304 when attaching it using the 3305 driver.

I always fail at the first read from LGDT3305_GEN_CTRL_2, does this register even exist in lgdt3304 or is it specific to lgdt3305?

        /* verify that we're talking to a lg dt3304/5 */
         ret = lgdt3305_read_reg(state, LGDT3305_GEN_CTRL_2, &val);
         if ((lg_fail(ret)) | (val == 0))
        {
                printk("fail 1\n");
                goto fail;
        }
Quoted 2 lines

Since I do find the TDA18271HD/C2 I don't think there is something wrong with the i2c buss. I also tried every possible i2c address without

success.

Quoted 6 lines

The lgdt3305 has option between address 0x0e and 0x59, is it the same for
3304 ?

This is the first time I am trying to get a driver to work in Linux. Please help me.

Either the i2c is broken or the lgdt3304 is being held in reset by a GPIO.

Also, that device has multiple i2c busses, so you could be looking on the wrong bus.

Do you see *any* i2c devices (such as an eeprom).

Devin

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

#6 lore raw
Quoted 7 lines · Carl-Fredrik Sundstrom

I am able to detect two lgdt3304 one on each i2c bus now. As you suspected I had to set GPIO pin 17 for them to come alive.

Now to my next question, how do I attach two front ends I have two lgdt3304 and two TDA18271HD/C2
Is there a good driver I can look at where they do that ?

The SAA7164 driver (amongst others) demonstrates how to expose multiple tuners on a single card via multiple adapters, /dev/dvb/adapterX.

The cx88 driver demonstrates how to expose multiple tuners/demods via a single transport bus, via a single dvb adapter. /dev/dvb/adapter0/frontendX

- Steve

Signature · 2 lines
Steven Toth - Kernel Labs
http://www.kernellabs.com
#7 lore raw

Need some advice and pointers.
I have gotten both adapters/frontends of the VerMedia AVerTVHD Duet PCTV tuner (A188) A188-AF card to register.

[ 6251.073357] DVB: registering new adapter (SAA716x dvb adapter)
[ 6251.217817] tda18271 1-0060: creating new instance
[ 6251.219671] TDA18271HD/C2 detected @ 1-0060
[ 6251.484794] SAA716x Budget 0000:04:00.0: DVB: registering adapter 0
frontend 0 (LG Electronics LGDT3304 VSB/QAM Frontend)...
[ 6251.485084] DVB: registering new adapter (SAA716x dvb adapter)
[ 6251.601649] tda18271 0-0060: creating new instance
[ 6251.603615] TDA18271HD/C2 detected @ 0-0060
[ 6251.868787] SAA716x Budget 0000:04:00.0: DVB: registering adapter 1

frontend 0 (LG Electronics LGDT3304 VSB/QAM Frontend)...

The card only has one RF input hence I believe the two TDA18271 tuners are setup in master/slave configuration.
When I try to set them up as master slave the slave fails to detect as seen in below log. If I configure both as master
both are detected

[ 5410.137358] DVB: registering new adapter (SAA716x dvb adapter)
[ 5410.281839] tda18271 1-0060: creating new instance
[ 5410.283694] TDA18271HD/C2 detected @ 1-0060
[ 5410.548784] SAA716x Budget 0000:04:00.0: DVB: registering adapter 0
frontend 0 (LG Electronics LGDT3304 VSB/QAM Frontend)...
[ 5410.549081] DVB: registering new adapter (SAA716x dvb adapter)
[ 5410.665649] tda18271 0-0060: creating new instance
[ 5410.669264] Unknown device (0) detected @ 0-0060, device not supported.
[ 5410.669269] tda18271_attach: [0-0060|S] error -22 on line 1285
[ 5410.669272] tda18271 0-0060: destroying instance
[ 5410.704784] SAA716x Budget 0000:04:00.0: DVB: registering adapter 1

frontend 0 (LG Electronics LGDT3304 VSB/QAM Frontend)...

When I try to tune I get the following on all stations.

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB

WARNING: >>> tuning failed!!!

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB (tuning failed)

Sometimes I also get
WARNING: filter timeout pid
This happens mostly on frequencies I know have stations in my dfw area.

Any pointers would be much appreciated, especially how to find out which tda18271 is master and how to setup
the configuration struct's for ATSC , master, slave .

Thanks /// Carl

/*when both tda18271 are configured with below struct they are both found */

/*if I remove .gate and .role comments it fails to detect the tda18271 on the first i2c bus */

static struct tda18271_config averduet_tda_config_master = {
        .std_map           = &averduet_std_map,
        //.gate              = TDA18271_GATE_DIGITAL,
        //.role              = TDA18271_MASTER,
};

static struct tda18271_config averduet_tda_config_slave = {

        .std_map           = &averduet_std_map,
        .gate              = TDA18271_GATE_DIGITAL,
        .role              = TDA18271_SLAVE,
        .output_opt        = TDA18271_OUTPUT_LT_OFF,
        .rf_cal_on_startup = 1,
};
static struct lgdt3305_config averduet_lgdt3304_dev = {
        .i2c_addr           = 0x0e, /*0x0e, 0x59 these are the only two

possible values*/
.demod_chip = LGDT3304,
.spectral_inversion = 1,
.deny_i2c_rptr = 0, /*1,*/
.mpeg_mode = LGDT3305_MPEG_PARALLEL,
.tpclk_edge = LGDT3305_TPCLK_FALLING_EDGE,
.tpvalid_polarity = LGDT3305_TP_VALID_HIGH,
.vsb_if_khz = 3250,
.qam_if_khz = 4000,
};

tridentsx@tridentsx-P5K-E:~/media_build/media$ lsmod
Module                  Size  Used by
tda18271               40860  2
lgdt3305               22788  2
saa716x_budget         18162  0
mb86a16                27023  1 saa716x_budget
saa716x_core           68492  1 saa716x_budget
stv090x                57159  1 saa716x_budget
dvb_core               90348  3 saa716x_core,saa716x_budget,lgdt3305
vesafb                 13500  1
snd_hda_codec_analog    75266  1
parport_pc             27504  0
ppdev                  12817  0
bnep                   17669  2
rfcomm                 37420  0
bluetooth             202069  10 bnep,rfcomm
snd_hda_intel          38307  2
coretemp               13131  0
binfmt_misc            17260  1
kvm_intel             126842  0
snd_hda_codec         117580  2 snd_hda_intel,snd_hda_codec_analog
snd_hwdep              13272  1 snd_hda_codec
kvm                   376505  1 kvm_intel
snd_pcm                80890  2 snd_hda_codec,snd_hda_intel
snd_page_alloc         14230  2 snd_pcm,snd_hda_intel
gpio_ich               13236  0
snd_seq_midi           13132  0
snd_seq_midi_event     14475  1 snd_seq_midi
snd_rawmidi            25114  1 snd_seq_midi
snd_seq                51280  2 snd_seq_midi_event,snd_seq_midi
nvidia               7108000  24
snd_seq_device         14137  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              24411  2 snd_pcm,snd_seq
microcode              18286  0
lpc_ich                16925  0
serio_raw              13031  0
snd                    56485  13
snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,
snd_seq_device,snd_hda_codec_analog
asus_atk0110           17390  0
mac_hid                13037  0
soundcore              12600  1 snd
lp                     13299  0
parport                40753  3 lp,ppdev,parport_pc
pata_acpi              12886  0
firewire_ohci          35292  0
firewire_core          61718  1 firewire_ohci
crc_itu_t              12627  1 firewire_core
usb_storage            47684  0
pata_jmicron           12662  0
floppy                 55441  0
sky2                   52846  0
ahci                   25507  0
libahci                26108  1 ahci

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Steven Toth
Sent: Friday, June 28, 2013 10:23 AM
To: Carl-Fredrik Sundstrom
Cc: Devin Heitmueller; [email protected]
Subject: Re: lgdt3304

Quoted 7 lines · Carl-Fredrik Sundstrom

I am able to detect two lgdt3304 one on each i2c bus now. As you suspected I had to set GPIO pin 17 for them to come alive.

Now to my next question, how do I attach two front ends I have two lgdt3304 and two TDA18271HD/C2 Is there a good driver I can look at where they do that ?

The SAA7164 driver (amongst others) demonstrates how to expose multiple tuners on a single card via multiple adapters, /dev/dvb/adapterX.

The cx88 driver demonstrates how to expose multiple tuners/demods via a single transport bus, via a single dvb adapter. /dev/dvb/adapter0/frontendX

- 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 [email protected] More majordomo info at
http://vger.kernel.org/majordomo-info.html

#8 lore raw
Quoted 4 lines

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB

WARNING: >>> tuning failed!!!

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB (tuning failed)

I don't have a box in front of me but that's usually a sign that the frequency details you are passing in are bogus, so the tuner driver is rejecting it.

Check your command line tuning tools and args.

Here's a one line channels.conf for azap (US digital cable) that works fine, and the azap console output:

ch86:597000000:QAM_256:0:0:101

stoth@mythbackend:~/.azap$ azap ch86
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 597000000 Hz
video pid 0x0000, audio pid 0x0000
status 00 | signal 0000 | snr b770 | ber 00000000 | unc 00000000 |
status 1f | signal 0154 | snr 0154 | ber 000000ad | unc 000000ad | FE_HAS_LOCK
status 1f | signal 0156 | snr 0156 | ber 00000000 | unc 00000000 | FE_HAS_LOCK

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

#9 lore raw

I don't have digital cable only over the air ATSC. No one else on this list has this card ?

Thanks /// Carl

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Steven Toth
Sent: Tuesday, July 09, 2013 9:54 AM
To: Carl-Fredrik Sundstrom
Cc: Devin Heitmueller; [email protected]
Subject: Re: lgdt3304

Quoted 4 lines

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB

WARNING: >>> tuning failed!!!

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB (tuning failed)

I don't have a box in front of me but that's usually a sign that the frequency details you are passing in are bogus, so the tuner driver is rejecting it.

Check your command line tuning tools and args.

Here's a one line channels.conf for azap (US digital cable) that works fine, and the azap console output:

ch86:597000000:QAM_256:0:0:101

stoth@mythbackend:~/.azap$ azap ch86
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 597000000 Hz
video pid 0x0000, audio pid 0x0000
status 00 | signal 0000 | snr b770 | ber 00000000 | unc 00000000 | status 1f
| signal 0154 | snr 0154 | ber 000000ad | unc 000000ad | FE_HAS_LOCK status
1f | signal 0156 | snr 0156 | ber 00000000 | unc 00000000 | FE_HAS_LOCK

--
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 [email protected] More majordomo info at
http://vger.kernel.org/majordomo-info.html

#10 lore raw
Quoted 3 lines · Carl-Fredrik Sundstrom

I don't have digital cable only over the air ATSC. No one else on this list has this card ?

You are very welcome, thank you.

We generally recommend Linux users purchase cards that are already supported (or semi supported), such as the HVR2250. If you're keen enough to tackle adding support for a new board then that's great news, but very few people usually have experience with hardware not yet supported.

The channels.conf is capable of support digital cable and ATSC, simply change the modulation scheme and your target frequency and try again.

A quick google for an equivalent ATSC channels.conf provides a lot of useful information.

Create your channels.conf to match your target frequencies in Hz and use azap to debug.

Eg.

KPAX-CW:177028615:8VSB:65:68:2

Quoted 38 lines

Thanks /// Carl

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Steven Toth
Sent: Tuesday, July 09, 2013 9:54 AM
To: Carl-Fredrik Sundstrom
Cc: Devin Heitmueller; [email protected]
Subject: Re: lgdt3304

Quoted 4 lines

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB

WARNING: >>> tuning failed!!!

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB (tuning failed)

I don't have a box in front of me but that's usually a sign that the frequency details you are passing in are bogus, so the tuner driver is rejecting it.

Check your command line tuning tools and args.

Here's a one line channels.conf for azap (US digital cable) that works fine, and the azap console output:

ch86:597000000:QAM_256:0:0:101

stoth@mythbackend:~/.azap$ azap ch86
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 597000000 Hz
video pid 0x0000, audio pid 0x0000
status 00 | signal 0000 | snr b770 | ber 00000000 | unc 00000000 | status 1f
| signal 0154 | snr 0154 | ber 000000ad | unc 000000ad | FE_HAS_LOCK status
1f | signal 0156 | snr 0156 | ber 00000000 | unc 00000000 | FE_HAS_LOCK

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

Signature · 2 lines
Steven Toth - Kernel Labs
http://www.kernellabs.com
#11 lore raw

Thanks Steven for all the support,

Now I got the master slave to work and I can scan the local FOX channel with azap

tridentsx@tridentsx-P5K-E:~/.kde/share/apps/kaffeine$ azap FOX
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 599028615 Hz
video pid 0x0031, audio pid 0x0034
status 01 | signal 0000 | snr 0000 | ber 00000000 | unc 0000ca8b | 
status 1f | signal 8e53 | snr 00c4 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK
status 1f | signal 907a | snr 00c5 | ber 00000000 | unc 00000165 |
FE_HAS_LOCK
status 1f | signal 8dc8 | snr 00c4 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK
status 1f | signal 8d3f | snr 00c1 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK

However when I try to view or scan channels in mplayer or kaffeine it can't find them and there
are some timeouts Similar to the ones I got in scan utility.

kaffeine(5476) DvbScanFilter::timerEvent: timeout while reading section; type = 3 pid = 8187
kaffeine(5476) DvbScanFilter::timerEvent: timeout while reading section; type = 0 pid = 0
kaffeine(5476) DvbScanFilter::timerEvent: timeout while reading section; type = 3 pid = 8187

Playing dvb://.
dvb_tune Freq: 599028615
dvb_streaming_read, attempt N. 6 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 5 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 4 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 3 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 2 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 1 failed with errno 0 when reading 2048 bytes dvb_streaming_read, return 0 bytes
Failed to recognize file format.

When I use the scan tool I get the following for every channel that I can get a lock on in azap

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 473028615:8VSB

WARNING: filter timeout pid 0x0000
WARNING: filter timeout pid 0x1ffb

Below is a kernel trace at the same time. It seems the tuning is successful still no channels are output at the end of scan.

[ 4800.196989] tda18271_tune: [1-0060|M] freq = 473028615, ifc = 3250, bw =
6000000, agc_mode = 3, std = 4
[ 4800.196992] tda18271_agc: [1-0060|M] no agc configuration provided
[ 4800.196996] tda18271_set_standby_mode: [1-0060|M] sm = 0, sm_lt = 0,
sm_xt = 0
[ 4800.199133] tda18271_dump_regs: [1-0060|M] === TDA18271 REG DUMP ===
[ 4800.199136] tda18271_dump_regs: [1-0060|M] ID_BYTE            = 0x84
[ 4800.199140] tda18271_dump_regs: [1-0060|M] THERMO_BYTE        = 0x48
[ 4800.199143] tda18271_dump_regs: [1-0060|M] POWER_LEVEL_BYTE   = 0x80
[ 4800.199146] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_1   = 0xde
[ 4800.199149] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_2   = 0xb4
[ 4800.199152] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_3   = 0x1c
[ 4800.199155] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_4   = 0x64
[ 4800.199157] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_5   = 0x86
[ 4800.199160] tda18271_dump_regs: [1-0060|M] CAL_POST_DIV_BYTE  = 0x98
[ 4800.199163] tda18271_dump_regs: [1-0060|M] CAL_DIV_BYTE_1     = 0x69
[ 4800.199166] tda18271_dump_regs: [1-0060|M] CAL_DIV_BYTE_2     = 0x40
[ 4800.199169] tda18271_dump_regs: [1-0060|M] CAL_DIV_BYTE_3     = 0x00
[ 4800.199172] tda18271_dump_regs: [1-0060|M] MAIN_POST_DIV_BYTE = 0xb1
[ 4800.199175] tda18271_dump_regs: [1-0060|M] MAIN_DIV_BYTE_1    = 0x79
[ 4800.199178] tda18271_dump_regs: [1-0060|M] MAIN_DIV_BYTE_2    = 0xa8
[ 4800.199181] tda18271_dump_regs: [1-0060|M] MAIN_DIV_BYTE_3    = 0x08
[ 4800.199184] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_1    = 0xfc
[ 4800.199187] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_2    = 0x01
[ 4800.199190] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_3    = 0x84
[ 4800.199192] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_4    = 0x41
[ 4800.199195] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_5    = 0x01
[ 4800.199198] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_6    = 0x84
[ 4800.199201] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_7    = 0x41
[ 4800.199204] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_8    = 0x07
[ 4800.199207] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_9  W = 0x00
[ 4800.199210] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_10   = 0x29
[ 4800.199213] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_11   = 0x96
[ 4800.199216] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_12   = 0x13
[ 4800.199219] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_13   = 0xbd
[ 4800.199222] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_14   = 0x11
[ 4800.199224] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_15   = 0x85
[ 4800.199227] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_16 W = 0x00
[ 4800.199230] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_17 W = 0x4c
[ 4800.199233] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_18   = 0x0c
[ 4800.199236] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_19 W = 0x00
[ 4800.199239] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_20 W = 0x20
[ 4800.199242] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_21   = 0xb3
[ 4800.199245] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_22   = 0x37
[ 4800.199248] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_23   = 0xb0
[ 4800.199251] tda18271_set_standby_mode: [1-0060|M] sm = 0, sm_lt = 0,
sm_xt = 0
[ 4800.201715] tda18271_dump_regs: [1-0060|M] === TDA18271 REG DUMP ===
[ 4800.201718] tda18271_dump_regs: [1-0060|M] ID_BYTE            = 0x84
[ 4800.201721] tda18271_dump_regs: [1-0060|M] THERMO_BYTE        = 0x50
[ 4800.201725] tda18271_dump_regs: [1-0060|M] POWER_LEVEL_BYTE   = 0x80
[ 4800.201728] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_1   = 0xde
[ 4800.201731] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_2   = 0xb4
[ 4800.201734] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_3   = 0x1c
[ 4800.201737] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_4   = 0x64
[ 4800.201740] tda18271_dump_regs: [1-0060|M] EASY_PROG_BYTE_5   = 0x86
[ 4800.201743] tda18271_dump_regs: [1-0060|M] CAL_POST_DIV_BYTE  = 0x98
[ 4800.201746] tda18271_dump_regs: [1-0060|M] CAL_DIV_BYTE_1     = 0x69
[ 4800.201749] tda18271_dump_regs: [1-0060|M] CAL_DIV_BYTE_2     = 0x40
[ 4800.201752] tda18271_dump_regs: [1-0060|M] CAL_DIV_BYTE_3     = 0x00
[ 4800.201755] tda18271_dump_regs: [1-0060|M] MAIN_POST_DIV_BYTE = 0xb1
[ 4800.201758] tda18271_dump_regs: [1-0060|M] MAIN_DIV_BYTE_1    = 0x79
[ 4800.201761] tda18271_dump_regs: [1-0060|M] MAIN_DIV_BYTE_2    = 0xa8
[ 4800.201764] tda18271_dump_regs: [1-0060|M] MAIN_DIV_BYTE_3    = 0x08
[ 4800.201766] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_1    = 0xfc
[ 4800.201769] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_2    = 0x01
[ 4800.201772] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_3    = 0x84
[ 4800.201775] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_4    = 0x41
[ 4800.201778] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_5    = 0x01
[ 4800.201781] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_6    = 0x84
[ 4800.201784] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_7    = 0x41
[ 4800.201787] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_8    = 0x07
[ 4800.201790] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_9  W = 0x00
[ 4800.201793] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_10   = 0x29
[ 4800.201796] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_11   = 0x96
[ 4800.201799] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_12   = 0x13
[ 4800.201802] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_13   = 0xbd
[ 4800.201805] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_14   = 0x11
[ 4800.201808] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_15   = 0x85
[ 4800.201811] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_16 W = 0x00
[ 4800.201814] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_17 W = 0x4c
[ 4800.201817] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_18   = 0x0c
[ 4800.201820] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_19 W = 0x00
[ 4800.201823] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_20 W = 0x20
[ 4800.201826] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_21   = 0xb3
[ 4800.201829] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_22   = 0x37
[ 4800.201832] tda18271_dump_regs: [1-0060|M] EXTENDED_BYTE_23   = 0xb0
[ 4800.201835] tda18271_lookup_thermometer: [1-0060|M] (0) tm = 60
[ 4800.202320] tda18271_lookup_map: [1-0060|M] (281) rf_cal: 0x15
[ 4800.202326] tda18271_lookup_rf_band: [1-0060|M] (0) rfmax = 47900000 <
freq = 473028615, rf1_def = 46000, rf2_def = 0, rf3_def = 0, rf1 = 46000,
rf2 = 0, rf3 = 0, rf_a1 = 0, rf_a2 = 0, rf_b1 = -18, rf_b2 = 0
[ 4800.202332] tda18271_lookup_rf_band: [1-0060|M] (1) rfmax = 61100000 <
freq = 473028615, rf1_def = 52200, rf2_def = 0, rf3_def = 0, rf1 = 52200,
rf2 = 0, rf3 = 0, rf_a1 = 0, rf_a2 = 0, rf_b1 = -7, rf_b2 = 0
[ 4800.202338] tda18271_lookup_rf_band: [1-0060|M] (2) rfmax = 152600000 <
freq = 473028615, rf1_def = 70100, rf2_def = 136800, rf3_def = 0, rf1 =
70100, rf2 = 136800, rf3 = 0, rf_a1 = 0, rf_a2 = 0, rf_b1 = 1, rf_b2 = 0
[ 4800.202344] tda18271_lookup_rf_band: [1-0060|M] (3) rfmax = 164700000 <
freq = 473028615, rf1_def = 156700, rf2_def = 0, rf3_def = 0, rf1 = 156700,
rf2 = 0, rf3 = 0, rf_a1 = 0, rf_a2 = 0, rf_b1 = -7, rf_b2 = 0
[ 4800.202349] tda18271_lookup_rf_band: [1-0060|M] (4) rfmax = 203500000 <
freq = 473028615, rf1_def = 186250, rf2_def = 0, rf3_def = 0, rf1 = 186250,
rf2 = 0, rf3 = 0, rf_a1 = 0, rf_a2 = 0, rf_b1 = -4, rf_b2 = 0
[ 4800.202355] tda18271_lookup_rf_band: [1-0060|M] (5) rfmax = 457800000 <
freq = 473028615, rf1_def = 230000, rf2_def = 345000, rf3_def = 426000, rf1
= 230000, rf2 = 345000, rf3 = 426000, rf_a1 = 0, rf_a2 = 0, rf_b1 = 0, rf_b2
= 1
[ 4800.202358] tda18271_lookup_rf_band: [1-0060|M] (6) rf_band = 06
[ 4800.202362] tda18271_lookup_map: [1-0060|M] (54) rf_cal_dc_over_dt: 0x12
[ 4800.202893] tda18271_lookup_map: [1-0060|M] (2) ir_measure: 0x06
[ 4800.202897] tda18271_lookup_map: [1-0060|M] (6) bp_filter: 0x06
[ 4800.202900] tda18271_lookup_map: [1-0060|M] (6) rf_band: 0x06
[ 4800.202904] tda18271_lookup_map: [1-0060|M] (63) gain_taper: 0x19
[ 4800.203180] tda18271_lookup_pll_map: [1-0060|M] (31) main_pll: post div =
0x20, div = 0x10
[ 4800.236205] lgdt3305_set_modulation: 
[ 4800.236211] lgdt3305_read_reg: reg: 0x0000
[ 4800.236761] lgdt3305_write_reg: reg: 0x0000, val: 0x03
[ 4800.237057] lgdt3305_passband_digital_agc: agc ref: 0x32c4
[ 4800.237060] lgdt3305_write_reg: reg: 0x0012, val: 0x32
[ 4800.237433] lgdt3305_write_reg: reg: 0x0013, val: 0xc4
[ 4800.237810] lgdt3305_agc_setup: lockdten = 0, acqen = 0
[ 4800.237812] lgdt3305_write_reg: reg: 0x0314, val: 0xe1
[ 4800.238186] lgdt3305_set_reg_bit: reg: 0x030e, bit: 2, level: 0
[ 4800.238188] lgdt3305_read_reg: reg: 0x030e
[ 4800.238745] lgdt3305_write_reg: reg: 0x030e, val: 0x18
[ 4800.239041] lgdt3305_rfagc_loop: ifbw: 0x8000
[ 4800.239044] lgdt3305_write_reg: reg: 0x0308, val: 0x80
[ 4800.239416] lgdt3305_write_reg: reg: 0x0309, val: 0x00
[ 4800.239793] lgdt3305_write_reg: reg: 0x030d, val: 0x00
[ 4800.240176] lgdt3305_write_reg: reg: 0x0106, val: 0x4f
[ 4800.240552] lgdt3305_write_reg: reg: 0x0107, val: 0x0c
[ 4800.240927] lgdt3305_write_reg: reg: 0x0108, val: 0xac
[ 4800.241304] lgdt3305_write_reg: reg: 0x0109, val: 0xba
[ 4800.241680] lgdt3305_spectral_inversion: (1)
[ 4800.241683] lgdt3305_write_reg: reg: 0x0126, val: 0xf9
[ 4800.242057] lgdt3305_mpeg_mode: (1)
[ 4800.242060] lgdt3305_set_reg_bit: reg: 0x050e, bit: 5, level: 1
[ 4800.242062] lgdt3305_read_reg: reg: 0x050e
[ 4800.242616] lgdt3305_write_reg: reg: 0x050e, val: 0x7b
[ 4800.242911] lgdt3305_mpeg_mode_polarity: edge = 1, valid = 1
[ 4800.242913] lgdt3305_read_reg: reg: 0x050e
[ 4800.243471] lgdt3305_write_reg: reg: 0x050e, val: 0x7b
[ 4800.243767] lgdt3305_soft_reset: 
[ 4800.243770] lgdt3305_set_reg_bit: reg: 0x0002, bit: 0, level: 0
[ 4800.243772] lgdt3305_read_reg: reg: 0x0002
[ 4800.244333] lgdt3305_write_reg: reg: 0x0002, val: 0x9a
[ 4800.268013] lgdt3305_set_reg_bit: reg: 0x0002, bit: 0, level: 1
[ 4800.268017] lgdt3305_read_reg: reg: 0x0002
[ 4800.268479] lgdt3305_write_reg: reg: 0x0002, val: 0x9b
[ 4800.397037] lgdt3305_read_reg: reg: 0x0003
[ 4800.397499] lgdt3305_read_status: SIGNALEXIST INLOCK 
[ 4800.397502] lgdt3305_read_reg: reg: 0x011d
[ 4800.397979] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4800.397998] function : dvb_dmxdev_filter_set, PID=0x1ffb, flags=05,
timeout=0
[ 4800.436025] function : dvb_dmxdev_filter_set, PID=0x0000, flags=05,
timeout=0
[ 4800.768016] lgdt3305_read_reg: reg: 0x0003
[ 4800.768479] lgdt3305_read_status: SIGNALEXIST INLOCK SYNCLOCK NOFECERR
SNRGOOD 
[ 4800.768482] lgdt3305_read_reg: reg: 0x011d
[ 4800.768959] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4800.768961] lgdt3305_get_frontend: 
[ 4802.132014] lgdt3305_read_reg: reg: 0x0003
[ 4802.132477] lgdt3305_read_status: SIGNALEXIST INLOCK SYNCLOCK NOFECERR
SNRGOOD 
[ 4802.132480] lgdt3305_read_reg: reg: 0x011d
[ 4802.132955] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4803.508016] lgdt3305_read_reg: reg: 0x0003
[ 4803.508479] lgdt3305_read_status: SIGNALEXIST INLOCK SYNCLOCK NOFECERR
SNRGOOD 
[ 4803.508482] lgdt3305_read_reg: reg: 0x011d
[ 4803.508957] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4804.900042] lgdt3305_read_reg: reg: 0x0003
[ 4804.900506] lgdt3305_read_status: SIGNALEXIST INLOCK SYNCLOCK NOFECERR
SNRGOOD 
[ 4804.900508] lgdt3305_read_reg: reg: 0x011d
[ 4804.900984] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4806.292015] lgdt3305_read_reg: reg: 0x0003
[ 4806.292479] lgdt3305_read_status: SIGNALEXIST INLOCK SYNCLOCK NOFECERR
SNRGOOD 
[ 4806.292481] lgdt3305_read_reg: reg: 0x011d
[ 4806.292957] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4807.448098] lgdt3305_get_tune_settings: 
[ 4807.448120] lgdt3304_set_parameters: (479028615, 7)
[ 4807.448129] tda18271_tune: [1-0060|M] freq = 479028615, ifc = 3250, bw =
6000000, agc_mode = 3, std = 4
[ 4807.448133] tda18271_agc: [1-0060|M] no agc configuration provided

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Steven Toth
Sent: Wednesday, July 10, 2013 8:51 AM
To: Carl-Fredrik Sundstrom
Cc: Devin Heitmueller; [email protected]
Subject: Re: lgdt3304

Quoted 3 lines · Carl-Fredrik Sundstrom

I don't have digital cable only over the air ATSC. No one else on this list has this card ?

You are very welcome, thank you.

We generally recommend Linux users purchase cards that are already supported (or semi supported), such as the HVR2250. If you're keen enough to tackle adding support for a new board then that's great news, but very few people usually have experience with hardware not yet supported.

The channels.conf is capable of support digital cable and ATSC, simply change the modulation scheme and your target frequency and try again.

A quick google for an equivalent ATSC channels.conf provides a lot of useful information.

Create your channels.conf to match your target frequencies in Hz and use azap to debug.

Eg.

KPAX-CW:177028615:8VSB:65:68:2

Quoted 38 lines

Thanks /// Carl

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Steven Toth
Sent: Tuesday, July 09, 2013 9:54 AM
To: Carl-Fredrik Sundstrom
Cc: Devin Heitmueller; [email protected]
Subject: Re: lgdt3304

Quoted 4 lines

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB

WARNING: >>> tuning failed!!!

Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 57028615:8VSB (tuning failed)

I don't have a box in front of me but that's usually a sign that the frequency details you are passing in are bogus, so the tuner driver is rejecting it.

Check your command line tuning tools and args.

Here's a one line channels.conf for azap (US digital cable) that works fine, and the azap console output:

ch86:597000000:QAM_256:0:0:101

stoth@mythbackend:~/.azap$ azap ch86
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 597000000 Hz
video pid 0x0000, audio pid 0x0000
status 00 | signal 0000 | snr b770 | ber 00000000 | unc 00000000 | 
status 1f
| signal 0154 | snr 0154 | ber 000000ad | unc 000000ad | FE_HAS_LOCK 
| status
1f | signal 0156 | snr 0156 | ber 00000000 | unc 00000000 | 
FE_HAS_LOCK
Quoted 3 lines

--
Steven Toth - Kernel Labs
http://www.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 [email protected] More majordomo info at
http://vger.kernel.org/majordomo-info.html

#12 lore raw

Carl-Fredrik,

Quoted 45 lines · Carl-Fredrik Sundstrom

Thanks Steven for all the support,

Now I got the master slave to work and I can scan the local FOX channel with azap

tridentsx@tridentsx-P5K-E:~/.kde/share/apps/kaffeine$ azap FOX
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 599028615 Hz
video pid 0x0031, audio pid 0x0034
status 01 | signal 0000 | snr 0000 | ber 00000000 | unc 0000ca8b |
status 1f | signal 8e53 | snr 00c4 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK
status 1f | signal 907a | snr 00c5 | ber 00000000 | unc 00000165 |
FE_HAS_LOCK
status 1f | signal 8dc8 | snr 00c4 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK
status 1f | signal 8d3f | snr 00c1 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK

However when I try to view or scan channels in mplayer or kaffeine it can't find them and there
are some timeouts Similar to the ones I got in scan utility.

kaffeine(5476) DvbScanFilter::timerEvent: timeout while reading section; type = 3 pid = 8187
kaffeine(5476) DvbScanFilter::timerEvent: timeout while reading section; type = 0 pid = 0
kaffeine(5476) DvbScanFilter::timerEvent: timeout while reading section; type = 3 pid = 8187

Playing dvb://.
dvb_tune Freq: 599028615
dvb_streaming_read, attempt N. 6 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 5 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 4 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 3 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 2 failed with errno 0 when reading 2048 bytes dvb_streaming_read, attempt N. 1 failed with errno 0 when reading 2048 bytes dvb_streaming_read, return 0 bytes
Failed to recognize file format.

When I use the scan tool I get the following for every channel that I can get a lock on in azap

Quoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

tune to: 473028615:8VSB

WARNING: filter timeout pid 0x0000
WARNING: filter timeout pid 0x1ffb

Below is a kernel trace at the same time. It seems the tuning is successful still no channels are output at the end of scan.

Your problem is somewhere between demod and bus interface. Tuner and demod are working as demod is able to gain lock. Interface between demod and bus interface - bridge - (USB, PCI) is transport stream (aka mpeg TS). There is two main wiring used, serial ts and parallel ts. Check that first. Both demod and bridge should be configured properly.

If TS interface it is correct then bug is somewhere in bridge settings.

regards
Antti

Signature · 1 line
http://palosaari.fi/

A message that is not in the archive (sent off-list or not yet received): [email protected]

#14 lore raw

Carl,

Thanks for writing. Please CC the mailing list at all times.

Comments below.

Quoted 4 lines · Carl-Fredrik Sundstrom

I don't know what happened to the dmeg log formatting when I pasted it I cleaned it up below.
I can't see anything obvious that fail when scanning, it just starts on the next frequency after getting a lock

Ignore scan for now, use the azap tools with the -r arg and dvbtraffic tools in two different terminal sessions.

azap -r FOX, will tune fox reliably for you, as your log messages below indicate tuner and demodulator lock. This is good. This implies the tuner and demodulator are most likely configured for RF reception, this is a big part of the problem solved.

dvbtraffic will show all/any transmitter data coming from the demodulator and entering the kernel. The display is a breakdown pid by pid on how much data 'per pid' is being received by the kernel (from the card). In your case the answer will be zero, or occasional junk. Normal conditions shows 10-25 lines of stable text, show Mbp/s per pid. (Goal being 19.2) for stable reception.

Quoted 2 lines

Probably will give up un this and get that other card.

You're close, don't give up.

Better yet, finish the work, publish it _THEN_ buy the other card, it's a little better in my opinion ;)

Quoted 10 lines

Thanks /// Carl

[ 4806.292479] lgdt3305_read_status: SIGNALEXIST INLOCK SYNCLOCK NOFECERR
SNRGOOD
[ 4806.292481] lgdt3305_read_reg: reg: 0x011d
[ 4806.292957] lgdt3305_read_cr_lock_status: (1) CLOCKVSB
[ 4807.448098] lgdt3305_get_tune_settings:
Quoted 13 lines
tridentsx@tridentsx-P5K-E:~/.kde/share/apps/kaffeine$ azap FOX using
'/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 599028615 Hz
video pid 0x0031, audio pid 0x0034
status 01 | signal 0000 | snr 0000 | ber 00000000 | unc 0000ca8b |
status 1f | signal 8e53 | snr 00c4 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK
status 1f | signal 907a | snr 00c5 | ber 00000000 | unc 00000165 |
FE_HAS_LOCK
status 1f | signal 8dc8 | snr 00c4 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK
status 1f | signal 8d3f | snr 00c1 | ber 00000000 | unc 00000000 |
FE_HAS_LOCK

This is very good. The tuner and demodulator are locked to FOX and your error counts are well within acceptable ranges. Congratulations.

Quoted 4 lines

However when I try to view or scan channels in mplayer or kaffeine it can't find them and there are some timeouts Similar to the ones I got in scan utility.

This is invariably because the electrical interface between the LG demod and the host controller (PCIe or USB - whatever your card is) has been incorrectly configured, or not configured at all. I don't know the specifics of that card so I need to talk generally here.

1. Demodulators and host controllers usually transmit data over either a serial or parallel data bus. Each bus has slightly different control lines to indicate such things as CLOCK, START_OF_PACKET, TSVAL, TSERR, along with the data lines. The control lines help the demod tell the host controller about the state of the data on the bus.

2. The demod and the host controller need to be configured identically else the host controller won't receive any data from the demod, or best case will receive garbage. Linux drivers can vary in respect to windows drivers here in terms of how the bus is configured, somewhat, but some hard and fast rules still apply.

a) Assuming both the host controller and the LG support both serial and parallel (I haven't checked) you'll need to configure that option correctly to match the card. You can't just 'pick one and hope', you have to pick the right mode. Visual inspection of the PCB helps, or knowing their either end of the bus can only be serial due to the nature of the silicon implementation also helps. Or simply, try all combinations.

b) Control lines such as TSVALID, TSERR, START_OF_PACKET usually have polarities HIGH or LOW. These can vary between Windows and Linux, it doesn't matter if they do, as long as each end matches correctly. I personally like to match windows by probing the bus visually with either a logic analyzer or a scope on pads in/around the demodulator. Trial and error changing these configuration settings at one end (usually the demodulator) should very quickly start to show garbage or real data in dvbtraffic. In my experience both ends have their own defaults and they never match. Leave the host controller alone and adjust the demodulator unless the demodulator in questions simply cannot be controlled (highly unusual).

Don't look at scan until dvbtraffic shows real and stable pid data that doesn't jump about the screen and look like junk. Expect dvbtraffic to show you between 10-25 lines of stable data, constantly updating at roughly 19.2Mbps total throughput.

Review the card, determine whether its a serial or parallel bus (or guess), then review the control line polarities.

This should help.

- Steve

Signature · 2 lines
Steven Toth - Kernel Labs
http://www.kernellabs.com