<appendix id="supportedgc">
<title>Supported graphics cards</title>
<sect2>
<title><filename>/dev/i2c-*</filename> versus PCI memory</title>
<para>To control a monitor, DDCcontrol must access the I2C bus of the
graphics card. There are two methods to do so: the first one uses
<filename>/dev/i2c-*</filename> devices provided by kernel drivers (abbreviated
as dev in tables), the second one reads and writes directly in the card PCI
memory (abbreviated as PCI in the tables).</para>
<para>Depending on your hardware, one method or the other may work.  Even both may work.</para>
</sect2>
<sect1>
<title>ATI Radeon series</title>
<sect2>
<title>Direct PCI memory access support</title>
<para>Almost every ATI card should work with direct PCI memory access, even if it has not been very extensively tested.</para>
<para>To use it, you have nothing special to do, everything is done by DDCcontrol.</para>
</sect2>
<sect2>
<title><filename>/dev/i2c-*</filename> devices support</title>
<para>ATI Radeon cards also work with <filename>/dev/i2c-*</filename> devices.
To use <filename>/dev/i2c-*</filename> devices with ATI cards, you must load the <filename>radeonfb</filename> module by typing,
as root:</para>
<screen format="linespecific">
# modprobe radeonfb
</screen>
<para>The kernel configuration options needed to enable Radeon framebuffer
driver and I2C support are:</para>
<itemizedlist mark='bullet'>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Framebuffer support</guimenuitem>
  <guimenuitem>ATI Radeon display support</guimenuitem>
</menuchoice>.
</listitem>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Framebuffer support</guimenuitem>
  <guimenuitem>ATI Radeon display support</guimenuitem>
  <guimenuitem>DDC/I2C for ATI Radeon support</guimenuitem>
</menuchoice>.
<warning>
	<para>The <filename>radeonfb</filename> kernel module may cause system instability (crashes or screen corruption) when used at the same time as the ATI closed source drivers.</para>
	<para>This is why we recommend that you use direct PCI memory access with 
		ATI cards.</para>
</warning>
</listitem>
</itemizedlist>
</sect2>
<sect3>
<title>ATI cards support table</title>
<para>These ATI cards have been reported to work, but others models should also
work. If yours is not listed, please send a message to one of the DDCcontrol
mailing lists (see <xref linkend="report"/>).</para>
<informaltable frame="all">
<tgroup cols='3'>
<colspec colname='name' align="left"/>
<colspec colname='i2c' align="center" class="yesno"/>
<colspec colname='pci' align="center" class="yesno"/>
<thead>
<row>
  <entry morerows='1' valign='middle'>Name</entry>
  <entry namest="i2c" nameend="pci" align="center">Works</entry>
</row>
<row>
  <entry>dev</entry>
  <entry>PCI</entry>
</row>
</thead>
<tbody>
<row>
  <entry>Radeon 7000</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>Radeon 7500</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>Radeon 9200</entry>
  <entry class="yes">Yes</entry>
  <entry class="yes">Yes</entry>
</row>
<row>
        <entry>Radeon 9200 SE</entry>
        <entry class="unknown">???</entry>
        <entry class="yes">Yes</entry>
</row>
<row>
  <entry>Radeon 9500</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>Radeon 9550 SE</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>Radeon 9600 Pro</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>Radeon 9700</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>Radeon 9800 Pro</entry>
  <entry class="yes">Yes</entry>
  <entry class="yes">Yes</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect1>

<sect1>
<title>nVidia</title>
<sect2>
<title><filename>/dev/i2c-*</filename> devices support</title>
<sect3>
<title>Using proprietary drivers</title>
<para>Starting with the proprietary drivers version 8762, nVidia provides access
to the i2c bus through standard <filename>/dev/i2c-*</filename> interface.</para>
<para>To use it, nothing special has to be done, just install and run the
proprietary drivers. Then, when <filename>nvidia</filename> driver is loaded,
the correct devices are accessible as with standard framebuffer drivers.</para>
</sect3>
<sect3>
<title>Using <filename>rivafb</filename> or <filename>nvidiafb</filename></title>
<para>Most nVidia cards, starting with TNT, work with
<filename>/dev/i2c-*</filename> devices. To use them, you must load the
<filename>nvidiafb</filename> (or <filename>rivafb</filename> for old cards)
module by typing, as root:</para>
<screen format="linespecific">
# modprobe nvidiafb
</screen>
or
<screen format="linespecific">
# modprobe rivafb
</screen>
<para>The kernel configuration options needed to enable nVidia framebuffer and
I2C support are:</para>
<itemizedlist mark='bullet'>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Support for frame buffer devices</guimenuitem>
  <guimenuitem>nVidia Framebuffer support (or nVidia Riva support)</guimenuitem>
</menuchoice>.
</listitem>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Support for frame buffer devices</guimenuitem>
  <guimenuitem>nVidia Framebuffer support (or nVidia Riva support)</guimenuitem>
  <guimenuitem>Enable DDC Support</guimenuitem>
</menuchoice>.
</listitem>
</itemizedlist>
<warning>
<para>These kernel modules are <emphasis>not</emphasis> compatible with binary
nVidia X drivers, which are the only drivers for nVidia cards to provide 3D
acceleration.</para>
<para>This is why we recommend that you either use direct PCI memory access with 
nVidia cards, or i2c-dev access through the proprietary drivers.</para>
</warning>
</sect3>
</sect2>
<sect2>
<title>Direct PCI memory access support</title>
<para>Almost every nVidia card works with direct PCI memory access, and this
method is compatible with the nVidia proprietary drivers.</para>
<para>To use it, you have nothing special to do, everything is done by 
DDCcontrol.</para>
</sect2>
<sect3>
<title>nVidia cards support table</title>
<para>Most of these nVidia cards have been reported to work, but other models
should also work. If yours is not listed, please send a message to one of the
DDCcontrol mailing lists (see <xref linkend="report"/>).</para>
<informaltable frame="all">
<tgroup cols='3'>
<colspec colname='name' align="left"/>
<colspec colname='i2c' align="center" class="yesno"/>
<colspec colname='pci' align="center" class="yesno"/>
<colspec colname='i2c2' align="center" class="yesno"/>
<thead>
<row>
  <entry morerows='1' valign='middle'>Name</entry>
  <entry namest="i2c" nameend="i2c2" align="center">Works</entry>
</row>
<row>
  <entry>dev/framebuffer</entry>
  <entry>PCI</entry>
  <entry>dev/proprietary</entry>
</row>
</thead>
<tbody>
<row>
  <entry>GeForce Ti 200</entry>
  <entry class="yes">Yes</entry>
  <entry class="yes">Yes</entry>
  <entry class="yes">Yes</entry>
</row>
<row>
  <entry>GeForce FX 5600</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>GeForce FX 5700</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>GeForce FX 5700 LE</entry>
  <entry class="unknown">???</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
  <entry>GeForce FX 5950 Ultra</entry>
  <entry class="unknown">???</entry>
  <entry class="yes">Yes</entry>
  <entry class="unknown">???</entry>
</row>
<row>
        <entry>GeForce 6200 TC</entry>
        <entry class="unknown">???</entry>
        <entry class="yes">Yes</entry>
	<entry class="unknown">???</entry>
</row>
<row>
        <entry>GeForce 6600</entry>
        <entry class="unknown">???</entry>
        <entry class="yes">Yes</entry>
	<entry class="unknown">???</entry>
</row>
<row>
        <entry>GeForce 6800 GT</entry>
        <entry class="unknown">???</entry>
        <entry class="yes">Yes</entry>
	<entry class="unknown">???</entry>
</row>
<row>
  <entry>nForce 2 IGP</entry>
  <entry class="no">No</entry>
  <entry class="no">No</entry>
  <entry class="unknown">???</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect1>

<sect1>
<title>Intel</title>
<sect2>
<title>i810/i815/i830/i845/i855/i865/i915/i945 with Integrated Graphics Controller</title>
<para>Intel integrated graphics controllers only work with direct PCI memory access, so you
don't have to have any kernel module built or loaded.</para>
</sect2>
<sect3>
<title>Intel chipset support table</title>
<para>These Intel chipsets have been reported to work.
If yours is not listed, please send a message to one of the DDCcontrol
mailing lists (see <xref linkend="report"/>).</para>
<informaltable frame="all">
<tgroup cols='3'>
<colspec colname='name' align="left"/>
<colspec colname='i2c' align="center" class="yesno"/>
<colspec colname='pci' align="center" class="yesno"/>
<thead>
<row>
  <entry morerows='1' valign='middle'>Name</entry>
  <entry namest="i2c" nameend="pci" align="center">Works</entry>
</row>
<row>
  <entry>dev</entry>
  <entry>PCI</entry>
</row>
</thead>
<tbody>
<row>
  <entry>Intel i915G (82915G)</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
</row>
<row>
  <entry>Intel i865G (82865G)</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect1>

<sect1>
<title>SiS</title>
<para>SiS graphics controllers only work with direct PCI memory access, so you
don't have to have any kernel module built or loaded.</para>
<sect3>
<title>SiS chipset support table</title>
<para>These SiS chipsets have been reported to work.
If yours is not listed, please send a message to one of the DDCcontrol
mailing lists (see <xref linkend="report"/>).</para>
<informaltable frame="all">
<tgroup cols='3'>
<colspec colname='name' align="left"/>
<colspec colname='i2c' align="center" class="yesno"/>
<colspec colname='pci' align="center" class="yesno"/>
<thead>
<row>
  <entry morerows='1' valign='middle'>Name</entry>
  <entry namest="i2c" nameend="pci" align="center">Works</entry>
</row>
<row>
  <entry>dev</entry>
  <entry>PCI</entry>
</row>
</thead>
<tbody>
<row>
  <entry>SiS [M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect1>

<sect1>
<title>VIA</title>
<para>VIA graphics controllers only work with direct PCI memory access, so you
don't have to have any kernel module built or loaded.</para>
<sect3>
<title>VIA chipset support table</title>
<para>These VIA chipsets have been reported to work.
If yours is not listed, please send a message to one of the DDCcontrol
mailing lists (see <xref linkend="report"/>).</para>
<informaltable frame="all">
<tgroup cols='3'>
<colspec colname='name' align="left"/>
<colspec colname='i2c' align="center" class="yesno"/>
<colspec colname='pci' align="center" class="yesno"/>
<thead>
<row>
  <entry morerows='1' valign='middle'>Name</entry>
  <entry namest="i2c" nameend="pci" align="center">Works</entry>
</row>
<row>
  <entry>dev</entry>
  <entry>PCI</entry>
</row>
</thead>
<tbody>
<row>
  <entry>VIA VT8623 [Apollo CLE266] integrated CastleRock graphics</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
</row>
<row>
  <entry>VIA S3 Unichrome Pro VGA Adapter</entry>
  <entry class="no">No</entry>
  <entry class="yes">Yes</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect1>

<sect1>
<title>Matrox</title>
<sect2>
<title>G200/G400/G450/G550 series</title>
<para>Matrox cards only work with <filename>/dev/i2c-*</filename> devices.
To use them, you must load both <filename>matroxfb</filename> and
<filename>i2c-matroxfb</filename> modules by typing,
as root:</para>
<screen format="linespecific">
# modprobe matroxfb
# modprobe i2c-matroxfb
</screen>
<para>The kernel configuration options needed to enable Matrox framebuffer
driver and I2C support are, at least:</para>
<itemizedlist mark='bullet'>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Framebuffer support</guimenuitem>
  <guimenuitem>Matrox acceleration</guimenuitem>
</menuchoice>.
</listitem>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Framebuffer support</guimenuitem>
  <guimenuitem>Matrox acceleration</guimenuitem>
  <guimenuitem>G100/G200/G400/G450/G550 support</guimenuitem>
</menuchoice>.
</listitem>
<listitem>
<menuchoice>
  <guimenu>Devices drivers</guimenu>
  <guimenuitem>Graphics support</guimenuitem>
  <guimenuitem>Framebuffer support</guimenuitem>
  <guimenuitem>Matrox acceleration</guimenuitem>
  <guimenuitem>Matrox I2C support</guimenuitem>
</menuchoice>.
</listitem>
</itemizedlist>
</sect2>
<sect3>
<title>Matrox cards support table</title>
<para>These Matrox cards have been reported to work.
If yours is not listed, please send a message to one of the DDCcontrol
mailing lists (see <xref linkend="report"/>).</para>
<informaltable frame="all">
<tgroup cols='3'>
<colspec colname='name' align="left"/>
<colspec colname='i2c' align="center" class="yesno"/>
<colspec colname='pci' align="center" class="yesno"/>
<thead>
<row>
  <entry morerows='1' valign='middle'>Name</entry>
  <entry namest="i2c" nameend="pci" align="center">Works</entry>
</row>
<row>
  <entry>dev</entry>
  <entry>PCI</entry>
</row>
</thead>
<tbody>
<row>
  <entry>Matrox G200 AGP</entry>
  <entry class="no">No</entry>
  <entry class="no">No</entry>
</row>
<row>
  <entry>Matrox G450 AGP</entry>
  <entry class="yes">Yes</entry>
  <entry class="no">No</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect1>

</appendix>
