[linux-dvb] [PATCH] Siemens DVB-C PCI: SAA7113 Analog Module, on integrating msp3400.c, fixing stereo

thomas schorpp t.schorpp at gmx.de
Tue Jul 19 00:25:08 CEST 2005


Anders Gunnarsson wrote:
> thomas schorpp wrote:
> 
>> Anders Gunnarsson wrote:
>>  
>>
>>> thomas schorpp wrote:
>>>
>>>   
>>>
>>>> anyway the msp3400 chip of this card shouldnt be used for dvb audio,
>>>> cause the sound output in that way is heavily harmonic distorted and
>>>> the
>>>> proposed "volume setting for dvb with onboard analog mogule" does NOT
>>>> work here anyway, at least not with vdr... so we should drop dvb usage
>>>> for it. spdif soundcards are cheap nowadays.
>>>>
>>>>
>>>>
>>>>     
>>>
>>> The volume setting in vdr worked fine for me the few time I got the
>>> msp3400 working with current sources. When it was working I didn't
>>> notice any distortion, at least not more noticable than the quantisation
>>> noise in analog output without the module.
>>>   
>>
>>
>> for me:
>>
>> -not with vdr 1.3.27
>>
>> and others:
>>
>> -connecting the audio out to soundcard or hifi equipment, the harmonic
>> distortion of this output IS significant (can listen about >10%), not
>> only for my card, others reported too and its stated even in vdr wiki.
>>
>>  
>>
> When I last tried the analog module I used it for 2-3 days straight and
> my experience was that the sound was significally better than without
> the module. I tested with VDR 1.2.6 and 1.3.12. I got it working after a
> long power-off and with a lot of luck. :)
> 
> Maybe it differs with different versions of the chip or something else.
> Mine is an MSP 3403C A1. Don't remember the version number from the
> recognision.

have other:

Jul 18 23:34:33 tom1 kernel: saa7146: register extension 'dvb'.
Jul 18 23:34:33 tom1 kernel: ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI
19 (level, low) -> IRQ 209
Jul 18 23:34:33 tom1 kernel: saa7146: found saa7146 @ mem e0d1ec00
(revision 1, irq 209) (0x110a,0x0000).
Jul 18 23:34:33 tom1 kernel: DVB: registering new adapter (Fujitsu
Siemens DVB-C).
Jul 18 23:34:33 tom1 kernel: adapter has MAC addr = 00:d0:5c:02:05:c6
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: av7110_bootarm(): debi test OK
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: av7110_bootarm(): load boot code
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: av7110_bootarm(): load dram code
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: av7110_bootarm(): load dpram code
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: gpioirq unknown type=0 len=0
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: info @ card 0: firm f0240009,
rtsl b0250018, vid 71010068, app 8000261f
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: firmware @ card 0 supports CI
link layer interface
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: av7110_set_volume():
av7110:de504000,
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: DVB-C analog module @ card 0
detected, initializing MSP3400 kernel driver
Jul 18 23:34:33 tom1 kernel: msp34xx: setvolume: mute=on 58880:32768
v=0x00 b=0x00
***********
Jul 18 23:34:33 tom1 kernel: msp34xx: init: chip=MSP3400C-C8 mode=manual
***********
Jul 18 23:34:33 tom1 kernel: msp3400: kthread started
Jul 18 23:34:33 tom1 kernel: msp3400: thread: sleep
Jul 18 23:34:33 tom1 kernel: msp34xx: setvolume: mute=on 0:0  v=0x00 b=0x00
Jul 18 23:34:33 tom1 kernel: msp3400: thread: wakeup
Jul 18 23:34:33 tom1 kernel: msp3410: thread: restart scan
Jul 18 23:34:33 tom1 kernel: msp34xx: setvolume: mute=on 0:0  v=0x00 b=0x00
Jul 18 23:34:33 tom1 kernel: msp3400: setmode: 0
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: av7110_set_volume():
av7110:de504000,
Jul 18 23:34:33 tom1 kernel: msp3400: carrier1 val:  2171 / 4.5   NTSC
Jul 18 23:34:33 tom1 kernel: saa7146_vv: saa7146 (0): registered device
video1 [v4l2]
Jul 18 23:34:33 tom1 kernel: saa7146_vv: saa7146 (0): registered device
vbi0 [v4l2]
Jul 18 23:34:33 tom1 kernel: DVB: registering frontend 0 (VLSI VES1820
DVB-C)...
Jul 18 23:34:33 tom1 kernel: msp3400: carrier1 val:  1550 / 5.5   PAL B/G
Jul 18 23:34:33 tom1 kernel: dvb-ttpci: found av7110-0.
Jul 18 23:34:33 tom1 input.agent[13739]:      evdev: already loaded
Jul 18 23:34:33 tom1 kernel: msp3400: carrier1 val:  1390 / 6.0   PAL I
Jul 18 23:34:34 tom1 input.agent[13746]:      evdev: already loaded
Jul 18 23:34:34 tom1 kernel: msp3400: carrier1 val:   965 / 6.5   PAL
D/K + SAT + SECAM
Jul 18 23:34:34 tom1 kernel: msp3400: setmode: 3
Jul 18 23:34:34 tom1 kernel: msp3400: FM setstereo: mono
Jul 18 23:34:34 tom1 kernel: msp3400: setstereo final source/matrix = 0x0
Jul 18 23:34:34 tom1 kernel: msp34xx: setvolume: mute=on 58880:32768
v=0x00 b=0x00
Jul 18 23:34:34 tom1 kernel: msp3400: mono sound carrier: 4.501 MHz
Jul 18 23:34:34 tom1 kernel: msp3400: thread: sleep

> 
> Might also depend on if the level of the outputsignal from the dvb-card
> is to high for the soundcard input. I use an integrated SB16 and can
> have full volume in VDR and full in and out on the sound card without
> distortion, that is with the current settings in the dvb drivers. The
> output with analog module and full volume is a bit higher than without.

sure, im aware of this amplifier input clipping and checked that first.
negative here. and i could set every volume from 0-255 ind driver, vdr
config/commands -> no response at all with my msp chip.

> 
> However when I tested the Siemens drivers in Windows I tested the
> capabilites of analog tv, and the sound there was really crappy. With
> Techno Trends drivers dvb worked fine with volume control and all, but
> with a bit of distorsion. Don't know if the analog module is used then
> or not, but guess so since volume control works in their software.

tested with winxpsp2, using tt-drivers 2.17g and dvb application -> only
spdif sound output, no init of msp by tt-drivers here, no analog
audio/tv functionality. 1.65 siemens software tricked install runs
unusable errornous on xp.
drivers 2.18c from hauppauge download breaks support for this card ->
tuning errors.

> 
>>> Haven't had time to check more what the detection-problem is, but it
>>> should also be solvable in the old code.
>>>   
>>
>>
>> the problem is, the code is insufficent for this chip (tried several
>> hours, will no more, its too complex and risky -> uneconomical redesign
>> effort), does not belong to that file, supports not mostly used
>> international tv-standards (says only pal B/G). this is the job of a
>> specialized driver.
>> since theres one yet, i wont reinvent the wheel ;)
>>
>>  
>>
> Maybe I came out a bit wrong. I'm very glad that someone takes the time
> to fix the drivers for the analog module. I agree that new code is
> needed, it would be great if all features could be used through VDR and
> if all settings was trimed to get it work as good as possible.

ill try my best, but risk of failure is high due to maybe impossible
data syncronisation dvb usage of msp with the msp3400.c scan thread.

> 
> Tell me if I can help with something, I've got the datasheet and am a
> quite skilled software developer, just not for linux drivers yet. :P

a more äquivalent datasheet for MSP3400C-C8 than the intermetall
downloadable for 34xxg, etc, would be great. pls mail it.

at the moment ive to solve a type conversion problem for inter-module
communication with the msp3400.ko, since msp_command() takes i2c_client
type and av7110 type does only provide type i2c_adapter member (which
has a container member of clients). and the i2c_client seems to be
higher level not implemented (or hard hex) in the dvb-driver... on
learning kernel i2c subsystem library. a hint on this could speed up.
*shame*

since im no experienced professionell fulltime "coding horse" expect
this to take some time... ;)

> 
> /Anders
> -- 

-tom




More information about the linux-dvb mailing list