Conexant Fusion 878A
A PCI interface chipset from Conexant that provides video decoder functionality.
It is supported under Linux by the bttv and associated kernel driver modules.
Overview/Features
An updated version of the former Bt878 chipset (which, upon coming under the Conexant banner, was also sometimes known or referred to as the Fusion Bt878). With the newer Fusion 878A's release, the "Bt" (for Brooktree) was dropped from the product nomenclature. Conexant also refers to the 878A chip by the part number CX25878.
One of the updates that the 878A features is the inclusion of support for the handling of MPEG2 TS used by DVB/DTV services.
- 0000:02:05.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
insert a Bt87x vs 878A comparison table here
Features
- Composite input
- S-Video input
- I2S digital audio input
- FM Radio
- Mono audio input(microphone)
- I2C
- VBI (teletext, closed captioning and Intercast)
- GPIO
- PCI v2.2
- ODFM and VSB
- ATSC, PAL/SECAM/NTSC support
When DVB came along, I guess the manufacturers of the TV cards were used to working with this chip so the digital audio input interface was co-opted to take the MPEG-2 transport stream.
Like the Philips SAA7146 based DVB PCI card designs, this chipset misuses the analog video input of the chip to sample the MPEG-2 Transport Stream in video lines of the framebuffer, programming this is kind of a pain. The original idea behind it was that when you had a window obscured on your display, or you wanted to crop a bit of the input image, you could build a RISC program that just copied the parts of the video lines you wanted, and thus not waste any PCI bandwidth.
The BT878 provides one function each for Video and Audio onto the PCI bus. The two functions have different memory mappings although they have many similar registers - e.g. the I²C bus is only available via the video function and the DVB stream is only available via the audio function. ('function' is a PCI term ... most PCI devices have only one of them...)
We should mention here that I²C probing on a per-address basis is inale since most DVB I²C devices have configurable I²C addresses (not to mention that the basic I²C spec only allows 7-bit addresses, so in theory only 127 different devices would be allowed on the market). unfortunately Linux kernel-I²C folks and their addicted fans don't really like the idea of direct access to the I²C Bus like it is common in STBs and mobile devices. So this "missing feature" or "bug" of the BT878 is not really a chip design flaw but more a misinterpretation of the I²C Protocol Specification of the kernel-I²C folks that had been the cause of some mail threads fought with religious persuasion in the past. See the relevant section in Philosophy and holy Wars or check the linux-dvb mailing list archives.