Just for those ones who are interested - here a short description how common STB's and DVB cards implement the hardware part of H/V switching, 22kHz signal generation and DiSEqC:
Let's start with the old linux-dvb driver on AV7110 based cards. Here everything is controlled in software by the AV7110 firmware. It switches the 13/18V voltage by it's GPIO pins, it generates the 22kHz by switching on and off the voltage. The DiSEqC commands are generated by modulating the 22kHz signal. When an application sends a DiSEqC sequence, the kernel driver talks to the firmware that it should generate this message and afterwards switch on/off the 22kHz signal. This was necessairy because in the early days there were some tuners on the market which could not generate DiSEqC. Today you can't buy a card anymore which contains a demodulator without a microcontroller which is capable of generating the DiSEqC sequence. The first ones required some external logic which switched the 13/18V voltage and generated 22kHz. The frontend module had a pin called "LNB power" and muted this signal to generate the DiSEqC messages. Newer frontends can generate the 22kHz signal on their own and only need the 13/18V input on the LNB power pin (examples are the Alps BSRU6 and the Grundig 29504-491). Really new frontends can even switch the 13/18V. All real existing STB's I know generate the DiSEqC signal using the frontend. The 13/18V switch and 22kHz signal generation is usually done by external logic, either a microcontroller or a switch, often controlled by the i2c bus. That's why we merged frontend- and sec-device. Most ioctl's go directly to the frontend, those ones that switch the voltage are catched by the special 'before-ioctl' that a box- or card-specific driver registers using the lowlevel frontend API of the driver. A userspace program doesn't needs to know anything about this mechanism, it's perfectly transparent. - Holger -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
