<!DOCTYPE html>
<html lang="en" data-content_root="../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ALSA BT87x Driver — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css?v=3918102e" />
<script src="../../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Notes on Maya44 USB Audio Support" href="maya44.html" />
<link rel="prev" title="Alsa driver for Digigram miXart8 and miXart8AES/EBU soundcards" href="mixart.html" />
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../../index.html">
<img class="logo" src="../../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../subsystem-apis.html#human-interfaces">Human interfaces</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../../input/index.html">Input Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../hid/index.html">Human Interface Devices (HID)</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="../index.html">Sound Subsystem Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../gpu/index.html">GPU Driver Developer’s Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../fb/index.html">Frame Buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../leds/index.html">LEDs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/sound/cards/bt87x.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="alsa-bt87x-driver">
<h1>ALSA BT87x Driver<a class="headerlink" href="#alsa-bt87x-driver" title="Link to this heading">¶</a></h1>
<section id="intro">
<h2>Intro<a class="headerlink" href="#intro" title="Link to this heading">¶</a></h2>
<p>You might have noticed that the bt878 grabber cards have actually
<em>two</em> PCI functions:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ lspci
[ ... ]
00:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
00:0a.1 Multimedia controller: Brooktree Corporation Bt878 (rev 02)
[ ... ]
</pre></div>
</div>
<p>The first does video, it is backward compatible to the bt848. The second
does audio. snd-bt87x is a driver for the second function. It’s a sound
driver which can be used for recording sound (and <em>only</em> recording, no
playback). As most TV cards come with a short cable which can be plugged
into your sound card’s line-in you probably don’t need this driver if all
you want to do is just watching TV...</p>
<p>Some cards do not bother to connect anything to the audio input pins of
the chip, and some other cards use the audio function to transport MPEG
video data, so it’s quite possible that audio recording may not work
with your card.</p>
</section>
<section id="driver-status">
<h2>Driver Status<a class="headerlink" href="#driver-status" title="Link to this heading">¶</a></h2>
<p>The driver is now stable. However, it doesn’t know about many TV cards,
and it refuses to load for cards it doesn’t know.</p>
<p>If the driver complains (“Unknown TV card found, the audio driver will
not load”), you can specify the <code class="docutils literal notranslate"><span class="pre">load_all=1</span></code> option to force the driver to
try to use the audio capture function of your card. If the frequency of
recorded data is not right, try to specify the <code class="docutils literal notranslate"><span class="pre">digital_rate</span></code> option with
other values than the default 32000 (often it’s 44100 or 64000).</p>
<p>If you have an unknown card, please mail the ID and board name to
<<a class="reference external" href="mailto:alsa-devel%40alsa-project.org">alsa-devel<span>@</span>alsa-project<span>.</span>org</a>>, regardless of whether audio capture works
or not, so that future versions of this driver know about your card.</p>
</section>
<section id="audio-modes">
<h2>Audio modes<a class="headerlink" href="#audio-modes" title="Link to this heading">¶</a></h2>
<p>The chip knows two different modes (digital/analog). snd-bt87x
registers two PCM devices, one for each mode. They cannot be used at
the same time.</p>
</section>
<section id="digital-audio-mode">
<h2>Digital audio mode<a class="headerlink" href="#digital-audio-mode" title="Link to this heading">¶</a></h2>
<p>The first device (hw:X,0) gives you 16 bit stereo sound. The sample
rate depends on the external source which feeds the Bt87x with digital
sound via I2S interface.</p>
</section>
<section id="analog-audio-mode-a-d">
<h2>Analog audio mode (A/D)<a class="headerlink" href="#analog-audio-mode-a-d" title="Link to this heading">¶</a></h2>
<p>The second device (hw:X,1) gives you 8 or 16 bit mono sound. Supported
sample rates are between 119466 and 448000 Hz (yes, these numbers are
that high). If you’ve set the CONFIG_SND_BT87X_OVERCLOCK option, the
maximum sample rate is 1792000 Hz, but audio data becomes unusable
beyond 896000 Hz on my card.</p>
<p>The chip has three analog inputs. Consequently you’ll get a mixer
device to control these.</p>
<p>Have fun,</p>
<blockquote>
<div><p>Clemens</p>
</div></blockquote>
<p>Written by Clemens Ladisch <<a class="reference external" href="mailto:clemens%40ladisch.de">clemens<span>@</span>ladisch<span>.</span>de</a>>
big parts copied from btaudio.txt by Gerd Knorr <<a class="reference external" href="mailto:kraxel%40bytesex.org">kraxel<span>@</span>bytesex<span>.</span>org</a>></p>
</section>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../../_sources/sound/cards/bt87x.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>